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.cpp
- Committer:
- rba90
- Date:
- 2016-06-29
- Revision:
- 1:dda08634a9be
- Parent:
- 0:f32c0e562e9a
- Child:
- 2:f4f46b04ab8a
File content as of revision 1:dda08634a9be:
#include "BasicPacket.h" #include "crc.h" #include <string> BasicPacket::BasicPacket() { // init variables memset(_buffer, 0x0, sizeof(_buffer)); _isVerified = false; } BasicPacket::BasicPacket(uint8_t *data) { // the user takes the responsibility of making sure // they have sufficient memory for data buffer // copy data to internal buffer memcpy(_buffer, data, sizeof(_buffer)); // set verify flag _isVerified = false; } BasicPacket::~BasicPacket() { } void BasicPacket::generateCrc() { _buffer[3] = crc8(_buffer, 3); // set verify flag _isVerified = true; } bool BasicPacket::verify() { return _buffer[3] == crc8(_buffer, 3); } void BasicPacket::serialize(uint8_t *buffer) { memcpy(buffer, _buffer, sizeof(_buffer)); } void BasicPacket::setFid(uint8_t fid) { // clear upper 4 bits _buffer[0] &= 0x0f; // set bits _buffer[0] |= fid << 4; // set verify flag _isVerified = false; } void BasicPacket::setField1(uint8_t field) { // clear lower 4 bits _buffer[0] &= 0xf0; // set bits _buffer[0] |= field & 0x0f; // set verify flag _isVerified = false; } void BasicPacket::setField2(uint8_t field) { _buffer[1] = field; // set verify flag _isVerified = false; } void BasicPacket::setField3(uint8_t field) { _buffer[2] = field; // set verify flag _isVerified = false; } uint8_t BasicPacket::getFid() { return (_buffer[0] & 0xf0) >> 4; } uint8_t BasicPacket::getField1() { return _buffer[0] & 0x0f; } uint8_t BasicPacket::getField2() { return _buffer[1]; } uint8_t BasicPacket::getField3() { return _buffer[2]; } uint8_t BasicPacket::getCrc() { return _buffer[3]; }