ENEL400 / L3PDU

Dependents:   LoRaBaseStation LoRaTerminal

Committer:
rba90
Date:
Mon Aug 08 11:10:00 2016 +0000
Revision:
5:dcf7271595af
Parent:
2:f4f46b04ab8a
Child:
6:7c719bcd3047
suit new standard

Who changed what in which revision?

UserRevisionLine numberNew contents of line
rba90 0:f32c0e562e9a 1 #ifndef BASICPACKET_H_
rba90 0:f32c0e562e9a 2 #define BASICPACKET_H_
rba90 0:f32c0e562e9a 3
rba90 0:f32c0e562e9a 4 #include <stdint.h>
rba90 0:f32c0e562e9a 5
rba90 0:f32c0e562e9a 6 class BasicPacket
rba90 0:f32c0e562e9a 7 {
rba90 0:f32c0e562e9a 8 private:
rba90 0:f32c0e562e9a 9 // keep those private!
rba90 0:f32c0e562e9a 10 // inherit class should always use public method to access those private
rba90 0:f32c0e562e9a 11 // property
rba90 5:dcf7271595af 12 uint8_t _buffer[8];
rba90 0:f32c0e562e9a 13
rba90 0:f32c0e562e9a 14 // verify() function will toggle this variable
rba90 0:f32c0e562e9a 15 // any other modification to internal properties
rba90 0:f32c0e562e9a 16 // will revert this variable to false
rba90 0:f32c0e562e9a 17 bool _isVerified;
rba90 0:f32c0e562e9a 18
rba90 0:f32c0e562e9a 19 public:
rba90 0:f32c0e562e9a 20 BasicPacket();
rba90 0:f32c0e562e9a 21 BasicPacket(uint8_t *data);
rba90 0:f32c0e562e9a 22 ~BasicPacket();
rba90 0:f32c0e562e9a 23
rba90 0:f32c0e562e9a 24 public:
rba90 0:f32c0e562e9a 25 // calculate CRC value and write it into CRC field
rba90 0:f32c0e562e9a 26 void generateCrc();
rba90 0:f32c0e562e9a 27
rba90 0:f32c0e562e9a 28 // calculate CRC value and compare it with that in CRC field
rba90 0:f32c0e562e9a 29 bool verify();
rba90 0:f32c0e562e9a 30
rba90 0:f32c0e562e9a 31 // make a copy of internal buffer
rba90 0:f32c0e562e9a 32 // the user
rba90 0:f32c0e562e9a 33 void serialize(uint8_t *buffer);
rba90 0:f32c0e562e9a 34
rba90 0:f32c0e562e9a 35 public:
rba90 0:f32c0e562e9a 36 void setFid(uint8_t fid);
rba90 5:dcf7271595af 37 void setSequenceID(uint8_t seqid);
rba90 5:dcf7271595af 38 void setSourceID(uint8_t sid);
rba90 5:dcf7271595af 39 void setDestinationID(uint8_t did);
rba90 5:dcf7271595af 40 void setField(uint8_t idx, uint8_t data);
rba90 0:f32c0e562e9a 41
rba90 0:f32c0e562e9a 42 uint8_t getFid();
rba90 5:dcf7271595af 43 uint8_t getSequenceID();
rba90 5:dcf7271595af 44 uint8_t getSourceID();
rba90 5:dcf7271595af 45 uint8_t getDestinationID();
rba90 5:dcf7271595af 46 uint8_t getField(uint8_t idx);
rba90 0:f32c0e562e9a 47 uint8_t getCrc();
rba90 2:f4f46b04ab8a 48
rba90 2:f4f46b04ab8a 49 #ifdef _DEBUG
rba90 2:f4f46b04ab8a 50 public:
rba90 2:f4f46b04ab8a 51 void unit_test();
rba90 2:f4f46b04ab8a 52 #endif
rba90 0:f32c0e562e9a 53 };
rba90 0:f32c0e562e9a 54
rba90 0:f32c0e562e9a 55 #endif