33 lines
819 B
C++
33 lines
819 B
C++
#include "message.hpp"
|
|
#include "ant.hpp"
|
|
|
|
namespace ant {
|
|
Message::Message() { Init(); }
|
|
|
|
Message::Message(uint8_t length, uint8_t type, uint8_t b3, uint8_t b4,
|
|
uint8_t b5, uint8_t b6, uint8_t b7, uint8_t b8, uint8_t b9,
|
|
uint8_t b10, uint8_t b11, uint8_t b12) {
|
|
data[0] = kSyncByte;
|
|
data[1] = length;
|
|
data[2] = type;
|
|
data[3] = b3;
|
|
data[4] = b4;
|
|
data[5] = b5;
|
|
data[6] = b6;
|
|
data[7] = b7;
|
|
data[8] = b8;
|
|
data[9] = b9;
|
|
data[10] = b10;
|
|
data[11] = b11;
|
|
uint8_t crc = 0;
|
|
// iterate over header + actual payload length
|
|
for (int i = 0; i < (length + kHeaderSize); ++i) {
|
|
crc ^= data[i];
|
|
}
|
|
// crc goes after header + payload
|
|
data[length + kHeaderSize] = crc;
|
|
data_length = length + kHeaderSize + kCrcSize;
|
|
}
|
|
|
|
void Message::Init() {}
|
|
} // namespace ant
|