mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-10-21 00:03:33 +08:00
Signature CRC extension
This commit is contained in:
@@ -32,6 +32,13 @@ class DataTypeSignatureCRC
|
|||||||
uint64_t crc_;
|
uint64_t crc_;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
static DataTypeSignatureCRC extend(uint64_t crc)
|
||||||
|
{
|
||||||
|
DataTypeSignatureCRC ret;
|
||||||
|
ret.crc_ = crc ^ 0xFFFFFFFFFFFFFFFF;
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
DataTypeSignatureCRC() : crc_(0xFFFFFFFFFFFFFFFF) { }
|
DataTypeSignatureCRC() : crc_(0xFFFFFFFFFFFFFFFF) { }
|
||||||
|
|
||||||
void add(uint8_t byte)
|
void add(uint8_t byte)
|
||||||
|
|||||||
@@ -19,3 +19,19 @@ TEST(DataTypeSignatureCRC, Correctness)
|
|||||||
|
|
||||||
ASSERT_EQ(0x62EC59E3F1A4F00A, crc.get());
|
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());
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user