mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-10-13 04:53:34 +08:00
Dispatcher tests fixed, 13 to go
This commit is contained in:
@@ -129,8 +129,8 @@ TEST(Dispatcher, Reception)
|
||||
emulator.makeTransfer(5, uavcan::TransferTypeMessageBroadcast, 11, DATA[1], TYPES[1]),
|
||||
emulator.makeTransfer(10, uavcan::TransferTypeServiceRequest, 12, DATA[2], TYPES[2]),
|
||||
emulator.makeTransfer(15, uavcan::TransferTypeServiceResponse, 13, DATA[4], TYPES[3]),
|
||||
emulator.makeTransfer(20, uavcan::TransferTypeMessageBroadcast, 14, DATA[3], TYPES[0]),
|
||||
emulator.makeTransfer(25, uavcan::TransferTypeMessageBroadcast, 15, DATA[5], TYPES[1]),
|
||||
emulator.makeTransfer(20, uavcan::TransferTypeMessageBroadcast, 14, DATA[3], TYPES[0]),
|
||||
emulator.makeTransfer(25, uavcan::TransferTypeMessageBroadcast, 15, DATA[5], TYPES[1]),
|
||||
// Wrongly addressed:
|
||||
emulator.makeTransfer(29, uavcan::TransferTypeServiceResponse, 10, DATA[0], TYPES[3], 100),
|
||||
emulator.makeTransfer(31, uavcan::TransferTypeServiceRequest, 11, DATA[4], TYPES[2], 101)
|
||||
@@ -198,19 +198,12 @@ TEST(Dispatcher, Reception)
|
||||
|
||||
/*
|
||||
* Matching.
|
||||
* Expected reception order per subsciber:
|
||||
* 0: 0, 4
|
||||
* 1: 0, 4
|
||||
* 2: 5, 1
|
||||
* 3: 2
|
||||
* 4: 3
|
||||
* 5: 3
|
||||
*/
|
||||
ASSERT_TRUE(subscribers[0]->matchAndPop(transfers[0]));
|
||||
ASSERT_TRUE(subscribers[0]->matchAndPop(transfers[4]));
|
||||
ASSERT_TRUE(subscribers[0]->matchAndPop(transfers[0]));
|
||||
|
||||
ASSERT_TRUE(subscribers[1]->matchAndPop(transfers[0]));
|
||||
ASSERT_TRUE(subscribers[1]->matchAndPop(transfers[4]));
|
||||
ASSERT_TRUE(subscribers[1]->matchAndPop(transfers[0]));
|
||||
|
||||
ASSERT_TRUE(subscribers[2]->matchAndPop(transfers[5]));
|
||||
ASSERT_TRUE(subscribers[2]->matchAndPop(transfers[1]));
|
||||
@@ -251,7 +244,7 @@ TEST(Dispatcher, Reception)
|
||||
* RX listener
|
||||
*/
|
||||
std::cout << "Num received frames: " << rx_listener.rx_frames.size() << std::endl;
|
||||
ASSERT_EQ(218, rx_listener.rx_frames.size());
|
||||
ASSERT_EQ(292, rx_listener.rx_frames.size());
|
||||
}
|
||||
|
||||
|
||||
@@ -286,7 +279,7 @@ TEST(Dispatcher, Transmission)
|
||||
|
||||
ASSERT_FALSE(dispatcher.hasPublisher(123));
|
||||
ASSERT_FALSE(dispatcher.hasPublisher(456));
|
||||
const uavcan::OutgoingTransferRegistryKey otr_key(123, uavcan::TransferTypeServiceRequest, 2);
|
||||
const uavcan::OutgoingTransferRegistryKey otr_key(123, uavcan::TransferTypeMessageBroadcast, 0);
|
||||
ASSERT_TRUE(out_trans_reg.accessOrCreate(otr_key, uavcan::MonotonicTime::fromMSec(1000000)));
|
||||
ASSERT_TRUE(dispatcher.hasPublisher(123));
|
||||
ASSERT_FALSE(dispatcher.hasPublisher(456));
|
||||
|
||||
@@ -194,16 +194,16 @@ std::vector<uavcan::RxFrame> serializeTransfer(const Transfer& transfer)
|
||||
uavcan::MonotonicTime ts_monotonic = transfer.ts_monotonic;
|
||||
uavcan::UtcTime ts_utc = transfer.ts_utc;
|
||||
|
||||
uavcan::Frame frm(transfer.data_type.getID(), transfer.transfer_type, transfer.src_node_id,
|
||||
transfer.dst_node_id, transfer.transfer_id);
|
||||
frm.setStartOfTransfer(true);
|
||||
frm.setPriority(transfer.priority);
|
||||
|
||||
while (true)
|
||||
{
|
||||
const int bytes_left = int(raw_payload.size()) - int(offset);
|
||||
EXPECT_TRUE(bytes_left >= 0);
|
||||
|
||||
uavcan::Frame frm(transfer.data_type.getID(), transfer.transfer_type, transfer.src_node_id,
|
||||
transfer.dst_node_id, transfer.transfer_id);
|
||||
|
||||
frm.setStartOfTransfer(true);
|
||||
|
||||
const int spres = frm.setPayload(&*(raw_payload.begin() + offset), unsigned(bytes_left));
|
||||
if (spres < 0)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user