5 #include <gtest/gtest.h>
10 TEST(DynamicNodeIDClient, Basic)
24 uavcan::protocol::HardwareVersion::FieldTypes::unique_id unique_id;
26 ASSERT_LE(-uavcan::ErrInvalidParam, dnidac.
start(unique_id));
36 ASSERT_LE(0, dnidac.
start(unique_id, PreferredNodeID));
46 ASSERT_LE(0, dynid_sub.
start());
54 std::cout <<
"First-stage request:\n" << *dynid_sub.
collector.
msg << std::endl;
56 ASSERT_TRUE(dynid_sub.
collector.
msg->first_part_of_unique_id);
75 ASSERT_LE(0, dynid_pub.
init());
80 for (
int i = 0; i < 10; i++)
82 uavcan::protocol::dynamic_node_id::Allocation msg;
91 const uint8_t BytesPerRequest = uavcan::protocol::dynamic_node_id::Allocation::MAX_LENGTH_OF_UNIQUE_ID_IN_REQUEST;
93 uavcan::protocol::dynamic_node_id::Allocation msg;
94 msg.unique_id.resize(BytesPerRequest);
95 uavcan::copy(unique_id.begin(), unique_id.begin() + BytesPerRequest, msg.unique_id.begin());
97 std::cout <<
"First-stage offer:\n" << msg << std::endl;
104 std::cout <<
"Second-stage request:\n" << *dynid_sub.
collector.
msg << std::endl;
106 ASSERT_FALSE(dynid_sub.
collector.
msg->first_part_of_unique_id);
109 unique_id.begin() + BytesPerRequest));
117 uavcan::protocol::dynamic_node_id::Allocation msg;
118 msg.unique_id.resize(BytesPerRequest * 2);
119 uavcan::copy(unique_id.begin(), unique_id.begin() + BytesPerRequest * 2, msg.unique_id.begin());
121 std::cout <<
"Second-stage offer:\n" << msg << std::endl;
128 std::cout <<
"Last request:\n" << *dynid_sub.
collector.
msg << std::endl;
130 ASSERT_FALSE(dynid_sub.
collector.
msg->first_part_of_unique_id);
133 unique_id.begin() + BytesPerRequest * 2));
145 uavcan::protocol::dynamic_node_id::Allocation msg;
146 msg.unique_id.resize(16);
148 uavcan::copy(unique_id.begin(), unique_id.end(), msg.unique_id.begin());
162 TEST(DynamicNodeIDClient, NonPassiveMode)
172 uavcan::protocol::HardwareVersion::FieldTypes::unique_id unique_id;