mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-10-24 14:03:34 +08:00
DataTypeDescriptor got name_
This commit is contained in:
@@ -91,3 +91,14 @@ TEST(DataTypeSignature, Correctness)
|
||||
ASSERT_FALSE(signature != DataTypeSignature(signature.get()));
|
||||
ASSERT_TRUE(signature != DataTypeSignature::zero());
|
||||
}
|
||||
|
||||
|
||||
TEST(DataTypeDescriptor, ToString)
|
||||
{
|
||||
uavcan::DataTypeDescriptor desc;
|
||||
ASSERT_EQ(":0s:0000000000000000", desc.toString());
|
||||
|
||||
desc = uavcan::DataTypeDescriptor(uavcan::DataTypeKindMessage, 123,
|
||||
uavcan::DataTypeSignature(0xdeadbeef1234), "Bar");
|
||||
ASSERT_EQ("Bar:123m:0000deadbeef1234", desc.toString());
|
||||
}
|
||||
|
||||
@@ -30,7 +30,7 @@ public:
|
||||
|
||||
TEST(TransferListener, BasicMFT)
|
||||
{
|
||||
const uavcan::DataTypeDescriptor type(uavcan::DataTypeKindMessage, 123, uavcan::DataTypeSignature(123456789));
|
||||
const uavcan::DataTypeDescriptor type(uavcan::DataTypeKindMessage, 123, uavcan::DataTypeSignature(123456789), "A");
|
||||
|
||||
static const int NUM_POOL_BLOCKS = 12; // This number is just enough to pass the test
|
||||
uavcan::PoolAllocator<uavcan::MemPoolBlockSize * NUM_POOL_BLOCKS, uavcan::MemPoolBlockSize> pool;
|
||||
@@ -85,7 +85,7 @@ TEST(TransferListener, BasicMFT)
|
||||
|
||||
TEST(TransferListener, CrcFailure)
|
||||
{
|
||||
const uavcan::DataTypeDescriptor type(uavcan::DataTypeKindMessage, 123, uavcan::DataTypeSignature(123456789));
|
||||
const uavcan::DataTypeDescriptor type(uavcan::DataTypeKindMessage, 123, uavcan::DataTypeSignature(123456789), "A");
|
||||
|
||||
uavcan::PoolManager<1> poolmgr; // No dynamic memory
|
||||
TestSubscriber<256, 2, 2> subscriber(type, poolmgr); // Static buffer only, 2 entries
|
||||
@@ -128,7 +128,7 @@ TEST(TransferListener, CrcFailure)
|
||||
|
||||
TEST(TransferListener, BasicSFT)
|
||||
{
|
||||
const uavcan::DataTypeDescriptor type(uavcan::DataTypeKindMessage, 123, uavcan::DataTypeSignature(123456789));
|
||||
const uavcan::DataTypeDescriptor type(uavcan::DataTypeKindMessage, 123, uavcan::DataTypeSignature(123456789), "A");
|
||||
|
||||
uavcan::PoolManager<1> poolmgr; // No dynamic memory. At all.
|
||||
TestSubscriber<0, 0, 5> subscriber(type, poolmgr); // Max buf size is 0, i.e. SFT-only
|
||||
@@ -163,7 +163,7 @@ TEST(TransferListener, BasicSFT)
|
||||
|
||||
TEST(TransferListener, Cleanup)
|
||||
{
|
||||
const uavcan::DataTypeDescriptor type(uavcan::DataTypeKindMessage, 123, uavcan::DataTypeSignature(123456789));
|
||||
const uavcan::DataTypeDescriptor type(uavcan::DataTypeKindMessage, 123, uavcan::DataTypeSignature(123456789), "A");
|
||||
|
||||
uavcan::PoolManager<1> poolmgr; // No dynamic memory
|
||||
TestSubscriber<256, 1, 2> subscriber(type, poolmgr); // Static buffer only, 1 entry
|
||||
@@ -217,7 +217,7 @@ TEST(TransferListener, Cleanup)
|
||||
|
||||
TEST(TransferListener, MaximumTransferLength)
|
||||
{
|
||||
const uavcan::DataTypeDescriptor type(uavcan::DataTypeKindMessage, 123, uavcan::DataTypeSignature(123456789));
|
||||
const uavcan::DataTypeDescriptor type(uavcan::DataTypeKindMessage, 123, uavcan::DataTypeSignature(123456789), "A");
|
||||
|
||||
uavcan::PoolManager<1> poolmgr;
|
||||
TestSubscriber<uavcan::MaxTransferPayloadLen * 2, 2, 2> subscriber(type, poolmgr);
|
||||
|
||||
@@ -32,7 +32,7 @@ TEST(TransferTestHelpers, Transfer)
|
||||
|
||||
TEST(TransferTestHelpers, MFTSerialization)
|
||||
{
|
||||
uavcan::DataTypeDescriptor type(uavcan::DataTypeKindMessage, 123, uavcan::DataTypeSignature(123456789));
|
||||
uavcan::DataTypeDescriptor type(uavcan::DataTypeKindMessage, 123, uavcan::DataTypeSignature(123456789), "Foo");
|
||||
|
||||
static const std::string DATA = "To go wrong in one's own way is better than to go right in someone else's.";
|
||||
const Transfer transfer(1, 100000, uavcan::TransferTypeMessageUnicast, 2, 42, 127, DATA, type);
|
||||
@@ -61,7 +61,7 @@ TEST(TransferTestHelpers, MFTSerialization)
|
||||
|
||||
TEST(TransferTestHelpers, SFTSerialization)
|
||||
{
|
||||
uavcan::DataTypeDescriptor type(uavcan::DataTypeKindMessage, 123, uavcan::DataTypeSignature(123456789));
|
||||
uavcan::DataTypeDescriptor type(uavcan::DataTypeKindMessage, 123, uavcan::DataTypeSignature(123456789), "Foo");
|
||||
|
||||
{
|
||||
const Transfer transfer(1, 100000, uavcan::TransferTypeMessageBroadcast, 7, 42, 0, "Nvrfrget", type);
|
||||
|
||||
@@ -85,7 +85,7 @@ struct Transfer
|
||||
<< " tid=" << int(transfer_id.get())
|
||||
<< " snid=" << int(src_node_id.get())
|
||||
<< " dnid=" << int(dst_node_id.get())
|
||||
<< " dtid=" << int(data_type.id)
|
||||
<< " dtid=" << int(data_type.getID())
|
||||
<< "\n\t'" << payload << "'";
|
||||
return os.str();
|
||||
}
|
||||
@@ -165,7 +165,7 @@ std::vector<uavcan::RxFrame> serializeTransfer(const Transfer& transfer)
|
||||
std::vector<uint8_t> raw_payload;
|
||||
if (need_crc)
|
||||
{
|
||||
uavcan::TransferCRC payload_crc = transfer.data_type.signature.toTransferCRC();
|
||||
uavcan::TransferCRC payload_crc = transfer.data_type.getSignature().toTransferCRC();
|
||||
payload_crc.add(reinterpret_cast<const uint8_t*>(transfer.payload.c_str()), transfer.payload.length());
|
||||
// Little endian
|
||||
raw_payload.push_back(payload_crc.get() & 0xFF);
|
||||
@@ -184,8 +184,8 @@ std::vector<uavcan::RxFrame> serializeTransfer(const Transfer& transfer)
|
||||
const int bytes_left = raw_payload.size() - offset;
|
||||
EXPECT_TRUE(bytes_left >= 0);
|
||||
|
||||
uavcan::Frame frm(transfer.data_type.id, transfer.transfer_type, transfer.src_node_id, transfer.dst_node_id,
|
||||
frame_index, transfer.transfer_id);
|
||||
uavcan::Frame frm(transfer.data_type.getID(), transfer.transfer_type, transfer.src_node_id,
|
||||
transfer.dst_node_id, frame_index, transfer.transfer_id);
|
||||
const int spres = frm.setPayload(&*(raw_payload.begin() + offset), bytes_left);
|
||||
if (spres < 0)
|
||||
{
|
||||
@@ -210,10 +210,10 @@ std::vector<uavcan::RxFrame> serializeTransfer(const Transfer& transfer)
|
||||
return output;
|
||||
}
|
||||
|
||||
uavcan::DataTypeDescriptor makeDataType(uavcan::DataTypeKind kind, uint16_t id)
|
||||
uavcan::DataTypeDescriptor makeDataType(uavcan::DataTypeKind kind, uint16_t id, const char* name = "")
|
||||
{
|
||||
const uavcan::DataTypeSignature signature((uint64_t(kind) << 16) | (id << 8) | (id & 0xFF));
|
||||
return uavcan::DataTypeDescriptor(kind, id, signature);
|
||||
return uavcan::DataTypeDescriptor(kind, id, signature, name);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user