tes
Dependencies: NetServices mbed C027_Supports mbed-rpcx
Diff: AruFraming.h
- Revision:
- 0:64967b7043c2
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/AruFraming.h Tue Aug 06 12:59:05 2019 +0000 @@ -0,0 +1,94 @@ +#ifndef ARUFRAMING_H +#define ARUFRAMING_H + +#include <vector> +#include <queue> +#include <string> + +//------------------------------------------------------------------------------ +class AruFrm; + +//----------------------------------------------------- +class AruFraming +{ +public: + AruFraming(); + ~AruFraming(); + + void ProcessFromAru(const std::vector<int> &stream); + + static std::vector<int> CreateFrame(const AruFrm &f); + + std::queue<AruFrm> RCV_QUE; +private: + static unsigned int auchCRCHi[]; + static unsigned int auchCRCLo[]; + + static unsigned int CRC16(const std::vector<int> &puchMsg); +}; + +//----------------------------------------------------- +class AruFrm +{ +public: + int Identifier; + std::vector<int> Data; +}; + +//----------------------------------------------------- +class Ack : public AruFrm +{ +public: + Ack(int Identifier_) + { + Identifier = Identifier_; + Data.clear(); + } +}; + +//----------------------------------------------------- +class Can : public AruFrm +{ +public: + Can(int Identifier_) + { + Identifier = Identifier_; + Data.clear(); + } +}; + +//----------------------------------------------------- +class Tef : public AruFrm +{ +public: + Tef(int Identifier_) + { + Identifier = Identifier_; + Data.clear(); + } +}; + +//----------------------------------------------------- +class Eot : public AruFrm +{ +public: + Eot(int Identifier_, std::string &data) + { + Identifier = Identifier_; + std::copy(data.begin(), data.end(), back_inserter(Data)); + } +}; + +//----------------------------------------------------- +class Eor : public AruFrm +{ +public: + Eor(int Identifier_, std::string &data) + { + Identifier = Identifier_; + std::copy(data.begin(), data.end(), Data.begin()); + } +}; + +//----------------------------------------------------- +#endif // ARUFRAMING_H