huohuoh
Dependencies: NetServices mbed C027_Supports mbed-rpcx
AruFraming.h@1:f7d9b0530b73, 2019-09-11 (annotated)
- Committer:
- aldoao
- Date:
- Wed Sep 11 06:32:20 2019 +0000
- Revision:
- 1:f7d9b0530b73
- Parent:
- 0:64967b7043c2
tipe,1
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
irsanjul | 0:64967b7043c2 | 1 | #ifndef ARUFRAMING_H |
irsanjul | 0:64967b7043c2 | 2 | #define ARUFRAMING_H |
irsanjul | 0:64967b7043c2 | 3 | |
irsanjul | 0:64967b7043c2 | 4 | #include <vector> |
irsanjul | 0:64967b7043c2 | 5 | #include <queue> |
irsanjul | 0:64967b7043c2 | 6 | #include <string> |
irsanjul | 0:64967b7043c2 | 7 | |
irsanjul | 0:64967b7043c2 | 8 | //------------------------------------------------------------------------------ |
irsanjul | 0:64967b7043c2 | 9 | class AruFrm; |
irsanjul | 0:64967b7043c2 | 10 | |
irsanjul | 0:64967b7043c2 | 11 | //----------------------------------------------------- |
irsanjul | 0:64967b7043c2 | 12 | class AruFraming |
irsanjul | 0:64967b7043c2 | 13 | { |
irsanjul | 0:64967b7043c2 | 14 | public: |
irsanjul | 0:64967b7043c2 | 15 | AruFraming(); |
irsanjul | 0:64967b7043c2 | 16 | ~AruFraming(); |
irsanjul | 0:64967b7043c2 | 17 | |
irsanjul | 0:64967b7043c2 | 18 | void ProcessFromAru(const std::vector<int> &stream); |
irsanjul | 0:64967b7043c2 | 19 | |
irsanjul | 0:64967b7043c2 | 20 | static std::vector<int> CreateFrame(const AruFrm &f); |
irsanjul | 0:64967b7043c2 | 21 | |
irsanjul | 0:64967b7043c2 | 22 | std::queue<AruFrm> RCV_QUE; |
irsanjul | 0:64967b7043c2 | 23 | private: |
irsanjul | 0:64967b7043c2 | 24 | static unsigned int auchCRCHi[]; |
irsanjul | 0:64967b7043c2 | 25 | static unsigned int auchCRCLo[]; |
irsanjul | 0:64967b7043c2 | 26 | |
irsanjul | 0:64967b7043c2 | 27 | static unsigned int CRC16(const std::vector<int> &puchMsg); |
irsanjul | 0:64967b7043c2 | 28 | }; |
irsanjul | 0:64967b7043c2 | 29 | |
irsanjul | 0:64967b7043c2 | 30 | //----------------------------------------------------- |
irsanjul | 0:64967b7043c2 | 31 | class AruFrm |
irsanjul | 0:64967b7043c2 | 32 | { |
irsanjul | 0:64967b7043c2 | 33 | public: |
irsanjul | 0:64967b7043c2 | 34 | int Identifier; |
irsanjul | 0:64967b7043c2 | 35 | std::vector<int> Data; |
irsanjul | 0:64967b7043c2 | 36 | }; |
irsanjul | 0:64967b7043c2 | 37 | |
irsanjul | 0:64967b7043c2 | 38 | //----------------------------------------------------- |
irsanjul | 0:64967b7043c2 | 39 | class Ack : public AruFrm |
irsanjul | 0:64967b7043c2 | 40 | { |
irsanjul | 0:64967b7043c2 | 41 | public: |
irsanjul | 0:64967b7043c2 | 42 | Ack(int Identifier_) |
irsanjul | 0:64967b7043c2 | 43 | { |
irsanjul | 0:64967b7043c2 | 44 | Identifier = Identifier_; |
irsanjul | 0:64967b7043c2 | 45 | Data.clear(); |
irsanjul | 0:64967b7043c2 | 46 | } |
irsanjul | 0:64967b7043c2 | 47 | }; |
irsanjul | 0:64967b7043c2 | 48 | |
irsanjul | 0:64967b7043c2 | 49 | //----------------------------------------------------- |
irsanjul | 0:64967b7043c2 | 50 | class Can : public AruFrm |
irsanjul | 0:64967b7043c2 | 51 | { |
irsanjul | 0:64967b7043c2 | 52 | public: |
irsanjul | 0:64967b7043c2 | 53 | Can(int Identifier_) |
irsanjul | 0:64967b7043c2 | 54 | { |
irsanjul | 0:64967b7043c2 | 55 | Identifier = Identifier_; |
irsanjul | 0:64967b7043c2 | 56 | Data.clear(); |
irsanjul | 0:64967b7043c2 | 57 | } |
irsanjul | 0:64967b7043c2 | 58 | }; |
irsanjul | 0:64967b7043c2 | 59 | |
irsanjul | 0:64967b7043c2 | 60 | //----------------------------------------------------- |
irsanjul | 0:64967b7043c2 | 61 | class Tef : public AruFrm |
irsanjul | 0:64967b7043c2 | 62 | { |
irsanjul | 0:64967b7043c2 | 63 | public: |
irsanjul | 0:64967b7043c2 | 64 | Tef(int Identifier_) |
irsanjul | 0:64967b7043c2 | 65 | { |
irsanjul | 0:64967b7043c2 | 66 | Identifier = Identifier_; |
irsanjul | 0:64967b7043c2 | 67 | Data.clear(); |
irsanjul | 0:64967b7043c2 | 68 | } |
irsanjul | 0:64967b7043c2 | 69 | }; |
irsanjul | 0:64967b7043c2 | 70 | |
irsanjul | 0:64967b7043c2 | 71 | //----------------------------------------------------- |
irsanjul | 0:64967b7043c2 | 72 | class Eot : public AruFrm |
irsanjul | 0:64967b7043c2 | 73 | { |
irsanjul | 0:64967b7043c2 | 74 | public: |
irsanjul | 0:64967b7043c2 | 75 | Eot(int Identifier_, std::string &data) |
irsanjul | 0:64967b7043c2 | 76 | { |
irsanjul | 0:64967b7043c2 | 77 | Identifier = Identifier_; |
irsanjul | 0:64967b7043c2 | 78 | std::copy(data.begin(), data.end(), back_inserter(Data)); |
irsanjul | 0:64967b7043c2 | 79 | } |
irsanjul | 0:64967b7043c2 | 80 | }; |
irsanjul | 0:64967b7043c2 | 81 | |
irsanjul | 0:64967b7043c2 | 82 | //----------------------------------------------------- |
irsanjul | 0:64967b7043c2 | 83 | class Eor : public AruFrm |
irsanjul | 0:64967b7043c2 | 84 | { |
irsanjul | 0:64967b7043c2 | 85 | public: |
irsanjul | 0:64967b7043c2 | 86 | Eor(int Identifier_, std::string &data) |
irsanjul | 0:64967b7043c2 | 87 | { |
irsanjul | 0:64967b7043c2 | 88 | Identifier = Identifier_; |
irsanjul | 0:64967b7043c2 | 89 | std::copy(data.begin(), data.end(), Data.begin()); |
irsanjul | 0:64967b7043c2 | 90 | } |
irsanjul | 0:64967b7043c2 | 91 | }; |
irsanjul | 0:64967b7043c2 | 92 | |
irsanjul | 0:64967b7043c2 | 93 | //----------------------------------------------------- |
irsanjul | 0:64967b7043c2 | 94 | #endif // ARUFRAMING_H |