mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-04-14 10:07:39 +08:00
Signature CRC extension
This commit is contained in:
parent
a73560e1bd
commit
dc2460f264
@ -32,6 +32,13 @@ class DataTypeSignatureCRC
|
||||
uint64_t crc_;
|
||||
|
||||
public:
|
||||
static DataTypeSignatureCRC extend(uint64_t crc)
|
||||
{
|
||||
DataTypeSignatureCRC ret;
|
||||
ret.crc_ = crc ^ 0xFFFFFFFFFFFFFFFF;
|
||||
return ret;
|
||||
}
|
||||
|
||||
DataTypeSignatureCRC() : crc_(0xFFFFFFFFFFFFFFFF) { }
|
||||
|
||||
void add(uint8_t byte)
|
||||
|
||||
@ -19,3 +19,19 @@ TEST(DataTypeSignatureCRC, Correctness)
|
||||
|
||||
ASSERT_EQ(0x62EC59E3F1A4F00A, crc.get());
|
||||
}
|
||||
|
||||
|
||||
TEST(DataTypeSignatureCRC, Extension)
|
||||
{
|
||||
uavcan::DataTypeSignatureCRC crc1;
|
||||
|
||||
crc1.add('1');
|
||||
crc1.add('2');
|
||||
crc1.add('3');
|
||||
|
||||
uavcan::DataTypeSignatureCRC crc2 = uavcan::DataTypeSignatureCRC::extend(crc1.get());
|
||||
|
||||
crc2.add(reinterpret_cast<const uint8_t*>("456789"), 6);
|
||||
|
||||
ASSERT_EQ(0x62EC59E3F1A4F00A, crc2.get());
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user