Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependents: LoRaBaseStation LoRaTerminal
BasicPacket/BasicPacket.h@5:dcf7271595af, 2016-08-08 (annotated)
- 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?
| User | Revision | Line number | New 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 |