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
Diff: BasicPacket/BasicPacket.cpp
- Revision:
- 2:f4f46b04ab8a
- Parent:
- 1:dda08634a9be
- Child:
- 3:35e5a721f198
diff -r dda08634a9be -r f4f46b04ab8a BasicPacket/BasicPacket.cpp --- a/BasicPacket/BasicPacket.cpp Wed Jun 29 01:49:03 2016 +0000 +++ b/BasicPacket/BasicPacket.cpp Thu Jun 30 09:14:54 2016 +0000 @@ -2,6 +2,10 @@ #include "crc.h" #include <string> +#ifdef _DEBUG +#include <cassert> +#endif + BasicPacket::BasicPacket() { // init variables @@ -36,7 +40,14 @@ bool BasicPacket::verify() { - return _buffer[3] == crc8(_buffer, 3); + if (_isVerified) + { + return true; + } + else + { + return _buffer[3] == crc8(_buffer, 3); + } } void BasicPacket::serialize(uint8_t *buffer) @@ -106,5 +117,48 @@ uint8_t BasicPacket::getCrc() { - return _buffer[3]; + if (_isVerified) + { + return _buffer[3]; + } + else + { + return crc8(_buffer, 3); + } } + +#ifdef _DEBUG +void BasicPacket::unit_test() +{ + // value test + BasicPacket testObject; + testObject.setFid(0x1); + testObject.setField1(0x2); + testObject.setField2(0x34); + testObject.setField3(0x67); + + assert(0x1 == testObject.getFid()); + assert(0x2 == testObject.getField1()); + assert(0x34 == testObject.getField2()); + assert(0x67 == testObject.getField3()); + + assert(false == testObject.verify()); + testObject.generateCrc(); + assert(true == testObject.verify()); + assert(0xeb == testObject.getCrc()); + + // value test 2 + uint8_t testString[] = { 0x12, 0x34, 0x67, 0xeb }; + BasicPacket testObject2(testString); + + assert(0x1 == testObject2.getFid()); + assert(0x2 == testObject2.getField1()); + assert(0x34 == testObject2.getField2()); + assert(0x67 == testObject2.getField3()); + + assert(true == testObject2.verify()); + testObject2.generateCrc(); + assert(true == testObject2.verify()); + assert(0xeb == testObject2.getCrc()); +} +#endif \ No newline at end of file