5 #include <gtest/gtest.h> 7 #include <root_ns_a/MavlinkMessage.hpp> 8 #include "../clock.hpp" 9 #include "../transport/can/can.hpp" 24 "sizeof(uavcan::Publisher<root_ns_a::MavlinkMessage>): " <<
39 root_ns_a::MavlinkMessage msg;
46 const uint8_t expected_transfer_payload[] = {0x42, 0x72, 0x08, 0xa5,
'M',
's',
'g'};
59 expected_frame.
setPayload(expected_transfer_payload, 7);
60 expected_frame.setStartOfTransfer(
true);
61 expected_frame.setEndOfTransfer(
true);
64 ASSERT_TRUE(expected_frame.compile(expected_can_frame));
66 ASSERT_TRUE(can_driver.
ifaces[0].matchAndPopTx(expected_can_frame, tx_timeout_usec + 100));
67 ASSERT_TRUE(can_driver.
ifaces[1].matchAndPopTx(expected_can_frame, tx_timeout_usec + 100));
68 ASSERT_TRUE(can_driver.
ifaces[0].tx.empty());
69 ASSERT_TRUE(can_driver.
ifaces[1].tx.empty());
75 expected_frame =
uavcan::Frame(root_ns_a::MavlinkMessage::DefaultDataTypeID,
79 expected_frame.setEndOfTransfer(
true);
80 expected_frame.setPayload(expected_transfer_payload, 7);
81 expected_frame.setPriority(10);
82 ASSERT_TRUE(expected_frame.compile(expected_can_frame));
84 ASSERT_TRUE(can_driver.
ifaces[0].matchAndPopTx(expected_can_frame, tx_timeout_usec + 100));
85 ASSERT_TRUE(can_driver.
ifaces[1].matchAndPopTx(expected_can_frame, tx_timeout_usec + 100));
86 ASSERT_TRUE(can_driver.
ifaces[0].tx.empty());
87 ASSERT_TRUE(can_driver.
ifaces[1].tx.empty());
void setPriority(const TransferPriority prio)
void setStartOfTransfer(bool x)
static const NodeID Broadcast
static MonotonicDuration getDefaultTxTimeout()
uint8_t setPayload(const uint8_t *data, unsigned len)
void advance(uint64_t usec) const
TransferSender & getTransferSender()
static GlobalDataTypeRegistry & instance()
std::vector< CanIfaceMock > ifaces
int broadcast(const DataType &message)