mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-07-01 16:50:35 +08:00
Unit tests now check frame priorities
This commit is contained in:
@@ -100,16 +100,16 @@ TEST(Dispatcher, Reception)
|
||||
|
||||
const Transfer transfers[9] =
|
||||
{
|
||||
emulator.makeTransfer(uavcan::TransferTypeMessageBroadcast, 10, DATA[0], TYPES[0]),
|
||||
emulator.makeTransfer(uavcan::TransferTypeMessageUnicast, 11, DATA[1], TYPES[1]),
|
||||
emulator.makeTransfer(uavcan::TransferTypeServiceRequest, 12, DATA[2], TYPES[2]),
|
||||
emulator.makeTransfer(uavcan::TransferTypeServiceResponse, 13, DATA[4], TYPES[3]),
|
||||
emulator.makeTransfer(uavcan::TransferTypeMessageUnicast, 14, DATA[3], TYPES[0]),
|
||||
emulator.makeTransfer(uavcan::TransferTypeMessageBroadcast, 15, DATA[5], TYPES[1]),
|
||||
emulator.makeTransfer(uavcan::TransferPriorityNormal, uavcan::TransferTypeMessageBroadcast, 10, DATA[0], TYPES[0]),
|
||||
emulator.makeTransfer(uavcan::TransferPriorityNormal, uavcan::TransferTypeMessageUnicast, 11, DATA[1], TYPES[1]),
|
||||
emulator.makeTransfer(uavcan::TransferPriorityService, uavcan::TransferTypeServiceRequest, 12, DATA[2], TYPES[2]),
|
||||
emulator.makeTransfer(uavcan::TransferPriorityService, uavcan::TransferTypeServiceResponse, 13, DATA[4], TYPES[3]),
|
||||
emulator.makeTransfer(uavcan::TransferPriorityNormal, uavcan::TransferTypeMessageUnicast, 14, DATA[3], TYPES[0]),
|
||||
emulator.makeTransfer(uavcan::TransferPriorityNormal, uavcan::TransferTypeMessageBroadcast, 15, DATA[5], TYPES[1]),
|
||||
// Wrongly addressed:
|
||||
emulator.makeTransfer(uavcan::TransferTypeServiceResponse, 10, DATA[0], TYPES[3], 100),
|
||||
emulator.makeTransfer(uavcan::TransferTypeServiceRequest, 11, DATA[4], TYPES[2], 101),
|
||||
emulator.makeTransfer(uavcan::TransferTypeMessageUnicast, 12, DATA[2], TYPES[1], 102)
|
||||
emulator.makeTransfer(uavcan::TransferPriorityService, uavcan::TransferTypeServiceResponse, 10, DATA[0], TYPES[3], 100),
|
||||
emulator.makeTransfer(uavcan::TransferPriorityService, uavcan::TransferTypeServiceRequest, 11, DATA[4], TYPES[2], 101),
|
||||
emulator.makeTransfer(uavcan::TransferPriorityNormal, uavcan::TransferTypeMessageUnicast, 12, DATA[2], TYPES[1], 102)
|
||||
};
|
||||
|
||||
/*
|
||||
|
||||
@@ -22,9 +22,10 @@ public:
|
||||
|
||||
void sendOneFrame(const uavcan::RxFrame& frame) { target_.handleFrame(frame); }
|
||||
|
||||
Transfer makeTransfer(uavcan::TransferType transfer_type, uint8_t source_node_id, const std::string& payload)
|
||||
Transfer makeTransfer(uavcan::TransferPriority priority, uavcan::TransferType transfer_type,
|
||||
uint8_t source_node_id, const std::string& payload)
|
||||
{
|
||||
return IncomingTransferEmulatorBase::makeTransfer(transfer_type, source_node_id, payload, data_type_);
|
||||
return IncomingTransferEmulatorBase::makeTransfer(priority, transfer_type, source_node_id, payload, data_type_);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -69,11 +70,11 @@ TEST(TransferListener, BasicMFT)
|
||||
TransferListenerEmulator emulator(subscriber, type);
|
||||
const Transfer transfers[] =
|
||||
{
|
||||
emulator.makeTransfer(uavcan::TransferTypeMessageBroadcast, 1, DATA[0]),
|
||||
emulator.makeTransfer(uavcan::TransferTypeMessageUnicast, 1, DATA[1]), // Same NID
|
||||
emulator.makeTransfer(uavcan::TransferTypeMessageUnicast, 2, DATA[2]),
|
||||
emulator.makeTransfer(uavcan::TransferTypeServiceRequest, 3, DATA[3]),
|
||||
emulator.makeTransfer(uavcan::TransferTypeServiceResponse, 4, DATA[4]),
|
||||
emulator.makeTransfer(uavcan::TransferPriorityNormal, uavcan::TransferTypeMessageBroadcast, 1, DATA[0]),
|
||||
emulator.makeTransfer(uavcan::TransferPriorityNormal, uavcan::TransferTypeMessageUnicast, 1, DATA[1]), // Same NID
|
||||
emulator.makeTransfer(uavcan::TransferPriorityNormal, uavcan::TransferTypeMessageUnicast, 2, DATA[2]),
|
||||
emulator.makeTransfer(uavcan::TransferPriorityService, uavcan::TransferTypeServiceRequest, 3, DATA[3]),
|
||||
emulator.makeTransfer(uavcan::TransferPriorityService, uavcan::TransferTypeServiceResponse, 4, DATA[4]),
|
||||
};
|
||||
|
||||
/*
|
||||
@@ -104,8 +105,8 @@ TEST(TransferListener, CrcFailure)
|
||||
* Generating transfers with damaged payload (CRC is not valid)
|
||||
*/
|
||||
TransferListenerEmulator emulator(subscriber, type);
|
||||
const Transfer tr_mft = emulator.makeTransfer(uavcan::TransferTypeMessageBroadcast, 42, "123456789abcdefghik");
|
||||
const Transfer tr_sft = emulator.makeTransfer(uavcan::TransferTypeMessageUnicast, 11, "abcd");
|
||||
const Transfer tr_mft = emulator.makeTransfer(uavcan::TransferPriorityNormal, uavcan::TransferTypeMessageBroadcast, 42, "123456789abcdefghik");
|
||||
const Transfer tr_sft = emulator.makeTransfer(uavcan::TransferPriorityNormal, uavcan::TransferTypeMessageUnicast, 11, "abcd");
|
||||
|
||||
std::vector<uavcan::RxFrame> ser_mft = serializeTransfer(tr_mft);
|
||||
std::vector<uavcan::RxFrame> ser_sft = serializeTransfer(tr_sft);
|
||||
@@ -146,15 +147,15 @@ TEST(TransferListener, BasicSFT)
|
||||
TransferListenerEmulator emulator(subscriber, type);
|
||||
const Transfer transfers[] =
|
||||
{
|
||||
emulator.makeTransfer(uavcan::TransferTypeMessageBroadcast, 1, "123"),
|
||||
emulator.makeTransfer(uavcan::TransferTypeMessageUnicast, 1, "456"), // Same NID
|
||||
emulator.makeTransfer(uavcan::TransferTypeMessageUnicast, 2, ""),
|
||||
emulator.makeTransfer(uavcan::TransferTypeServiceRequest, 3, "abc"),
|
||||
emulator.makeTransfer(uavcan::TransferTypeServiceResponse, 4, ""),
|
||||
emulator.makeTransfer(uavcan::TransferTypeServiceResponse, 2, ""), // New TT, ignored due to OOM
|
||||
emulator.makeTransfer(uavcan::TransferTypeMessageUnicast, 2, "foo"), // Same as 2, not ignored
|
||||
emulator.makeTransfer(uavcan::TransferTypeMessageUnicast, 2, "123456789abc"), // Same as 2, not SFT - ignore
|
||||
emulator.makeTransfer(uavcan::TransferTypeMessageUnicast, 2, "bar"), // Same as 2, not ignored
|
||||
emulator.makeTransfer(uavcan::TransferPriorityNormal, uavcan::TransferTypeMessageBroadcast, 1, "123"),
|
||||
emulator.makeTransfer(uavcan::TransferPriorityNormal, uavcan::TransferTypeMessageUnicast, 1, "456"), // Same NID
|
||||
emulator.makeTransfer(uavcan::TransferPriorityNormal, uavcan::TransferTypeMessageUnicast, 2, ""),
|
||||
emulator.makeTransfer(uavcan::TransferPriorityService, uavcan::TransferTypeServiceRequest, 3, "abc"),
|
||||
emulator.makeTransfer(uavcan::TransferPriorityService, uavcan::TransferTypeServiceResponse, 4, ""),
|
||||
emulator.makeTransfer(uavcan::TransferPriorityService, uavcan::TransferTypeServiceResponse, 2, ""), // New TT, ignored due to OOM
|
||||
emulator.makeTransfer(uavcan::TransferPriorityNormal, uavcan::TransferTypeMessageUnicast, 2, "foo"), // Same as 2, not ignored
|
||||
emulator.makeTransfer(uavcan::TransferPriorityNormal, uavcan::TransferTypeMessageUnicast, 2, "123456789abc"), // Same as 2, not SFT - ignore
|
||||
emulator.makeTransfer(uavcan::TransferPriorityNormal, uavcan::TransferTypeMessageUnicast, 2, "bar"), // Same as 2, not ignored
|
||||
};
|
||||
|
||||
emulator.send(transfers);
|
||||
@@ -183,8 +184,8 @@ TEST(TransferListener, Cleanup)
|
||||
* Generating transfers
|
||||
*/
|
||||
TransferListenerEmulator emulator(subscriber, type);
|
||||
const Transfer tr_mft = emulator.makeTransfer(uavcan::TransferTypeMessageBroadcast, 42, "123456789abcdefghik");
|
||||
const Transfer tr_sft = emulator.makeTransfer(uavcan::TransferTypeMessageUnicast, 11, "abcd");
|
||||
const Transfer tr_mft = emulator.makeTransfer(uavcan::TransferPriorityNormal, uavcan::TransferTypeMessageBroadcast, 42, "123456789abcdefghik");
|
||||
const Transfer tr_sft = emulator.makeTransfer(uavcan::TransferPriorityNormal, uavcan::TransferTypeMessageUnicast, 11, "abcd");
|
||||
|
||||
const std::vector<uavcan::RxFrame> ser_mft = serializeTransfer(tr_mft);
|
||||
const std::vector<uavcan::RxFrame> ser_sft = serializeTransfer(tr_sft);
|
||||
@@ -237,11 +238,11 @@ TEST(TransferListener, MaximumTransferLength)
|
||||
TransferListenerEmulator emulator(subscriber, type);
|
||||
const Transfer transfers[] =
|
||||
{
|
||||
emulator.makeTransfer(uavcan::TransferTypeServiceRequest, 1,
|
||||
emulator.makeTransfer(uavcan::TransferPriorityService, uavcan::TransferTypeServiceRequest, 1,
|
||||
std::string(uavcan::MaxServiceTransferPayloadLen, 'z')), // Longer
|
||||
emulator.makeTransfer(uavcan::TransferTypeMessageUnicast, 2,
|
||||
emulator.makeTransfer(uavcan::TransferPriorityNormal, uavcan::TransferTypeMessageUnicast, 2,
|
||||
std::string(uavcan::MaxMessageUnicastTransferPayloadLen, 'z')), // Shorter
|
||||
emulator.makeTransfer(uavcan::TransferTypeMessageBroadcast, 3,
|
||||
emulator.makeTransfer(uavcan::TransferPriorityNormal, uavcan::TransferTypeMessageBroadcast, 3,
|
||||
std::string(uavcan::MaxMessageBroadcastTransferPayloadLen, 'z')) // Same as above
|
||||
};
|
||||
|
||||
@@ -266,10 +267,10 @@ TEST(TransferListener, AnonymousTransfers)
|
||||
TransferListenerEmulator emulator(subscriber, type);
|
||||
const Transfer transfers[] =
|
||||
{
|
||||
emulator.makeTransfer(uavcan::TransferTypeMessageUnicast, 0, "12345678"), // Invalid - not broadcast
|
||||
emulator.makeTransfer(uavcan::TransferTypeMessageBroadcast, 0, "12345678"), // Valid
|
||||
emulator.makeTransfer(uavcan::TransferTypeMessageBroadcast, 0, "123456789"), // Invalid - not SFT
|
||||
emulator.makeTransfer(uavcan::TransferTypeMessageBroadcast, 0, "") // Valid
|
||||
emulator.makeTransfer(uavcan::TransferPriorityNormal, uavcan::TransferTypeMessageUnicast, 0, "12345678"), // Invalid - not broadcast
|
||||
emulator.makeTransfer(uavcan::TransferPriorityNormal, uavcan::TransferTypeMessageBroadcast, 0, "12345678"), // Valid
|
||||
emulator.makeTransfer(uavcan::TransferPriorityNormal, uavcan::TransferTypeMessageBroadcast, 0, "123456789"), // Invalid - not SFT
|
||||
emulator.makeTransfer(uavcan::TransferPriorityNormal, uavcan::TransferTypeMessageBroadcast, 0, "") // Valid
|
||||
};
|
||||
|
||||
emulator.send(transfers);
|
||||
|
||||
@@ -8,7 +8,6 @@
|
||||
#include "can/can.hpp"
|
||||
#include <uavcan/transport/transfer_sender.hpp>
|
||||
|
||||
|
||||
static int sendOne(uavcan::TransferSender& sender, const std::string& data,
|
||||
uint64_t monotonic_tx_deadline, uint64_t monotonic_blocking_deadline,
|
||||
uavcan::TransferType transfer_type, uavcan::NodeID dst_node_id)
|
||||
@@ -75,8 +74,13 @@ TEST(TransferSender, Basic)
|
||||
*/
|
||||
static const uint64_t TX_DEADLINE = 1000000;
|
||||
|
||||
// Normal priority
|
||||
sendOne(senders[0], DATA[0], TX_DEADLINE, 0, uavcan::TransferTypeMessageBroadcast, 0);
|
||||
// Low priority
|
||||
senders[0].setPriority(uavcan::TransferPriorityLow);
|
||||
sendOne(senders[0], DATA[1], TX_DEADLINE, 0, uavcan::TransferTypeMessageUnicast, RX_NODE_ID);
|
||||
// High priority
|
||||
senders[0].setPriority(uavcan::TransferPriorityHigh);
|
||||
sendOne(senders[0], "123", TX_DEADLINE, 0, uavcan::TransferTypeMessageBroadcast, 0);
|
||||
sendOne(senders[0], "456", TX_DEADLINE, 0, uavcan::TransferTypeMessageUnicast, RX_NODE_ID);
|
||||
|
||||
@@ -85,17 +89,18 @@ TEST(TransferSender, Basic)
|
||||
sendOne(senders[1], "", TX_DEADLINE, 0, uavcan::TransferTypeServiceRequest, RX_NODE_ID);
|
||||
sendOne(senders[1], "", TX_DEADLINE, 0, uavcan::TransferTypeServiceResponse, RX_NODE_ID, 2);
|
||||
|
||||
using namespace uavcan;
|
||||
static const Transfer TRANSFERS[8] =
|
||||
{
|
||||
Transfer(TX_DEADLINE, 0, uavcan::TransferTypeMessageBroadcast, 0, TX_NODE_ID, 0, DATA[0], TYPES[0]),
|
||||
Transfer(TX_DEADLINE, 0, uavcan::TransferTypeMessageUnicast, 0, TX_NODE_ID, RX_NODE_ID, DATA[1], TYPES[0]),
|
||||
Transfer(TX_DEADLINE, 0, uavcan::TransferTypeMessageBroadcast, 1, TX_NODE_ID, 0, "123", TYPES[0]),
|
||||
Transfer(TX_DEADLINE, 0, uavcan::TransferTypeMessageUnicast, 1, TX_NODE_ID, RX_NODE_ID, "456", TYPES[0]),
|
||||
Transfer(TX_DEADLINE, 0, TransferPriorityNormal, TransferTypeMessageBroadcast, 0, TX_NODE_ID, 0, DATA[0], TYPES[0]),
|
||||
Transfer(TX_DEADLINE, 0, TransferPriorityLow, TransferTypeMessageUnicast, 0, TX_NODE_ID, RX_NODE_ID, DATA[1], TYPES[0]),
|
||||
Transfer(TX_DEADLINE, 0, TransferPriorityHigh, TransferTypeMessageBroadcast, 1, TX_NODE_ID, 0, "123", TYPES[0]),
|
||||
Transfer(TX_DEADLINE, 0, TransferPriorityHigh, TransferTypeMessageUnicast, 1, TX_NODE_ID, RX_NODE_ID, "456", TYPES[0]),
|
||||
|
||||
Transfer(TX_DEADLINE, 0, uavcan::TransferTypeServiceRequest, 0, TX_NODE_ID, RX_NODE_ID, DATA[2], TYPES[1]),
|
||||
Transfer(TX_DEADLINE, 0, uavcan::TransferTypeServiceResponse, 1, TX_NODE_ID, RX_NODE_ID, DATA[3], TYPES[1]),
|
||||
Transfer(TX_DEADLINE, 0, uavcan::TransferTypeServiceRequest, 1, TX_NODE_ID, RX_NODE_ID, "", TYPES[1]),
|
||||
Transfer(TX_DEADLINE, 0, uavcan::TransferTypeServiceResponse, 2, TX_NODE_ID, RX_NODE_ID, "", TYPES[1])
|
||||
Transfer(TX_DEADLINE, 0, TransferPriorityService, TransferTypeServiceRequest, 0, TX_NODE_ID, RX_NODE_ID, DATA[2], TYPES[1]),
|
||||
Transfer(TX_DEADLINE, 0, TransferPriorityService, TransferTypeServiceResponse, 1, TX_NODE_ID, RX_NODE_ID, DATA[3], TYPES[1]),
|
||||
Transfer(TX_DEADLINE, 0, TransferPriorityService, TransferTypeServiceRequest, 1, TX_NODE_ID, RX_NODE_ID, "", TYPES[1]),
|
||||
Transfer(TX_DEADLINE, 0, TransferPriorityService, TransferTypeServiceResponse, 2, TX_NODE_ID, RX_NODE_ID, "", TYPES[1])
|
||||
};
|
||||
|
||||
/*
|
||||
|
||||
@@ -37,7 +37,8 @@ TEST(TransferTestHelpers, MFTSerialization)
|
||||
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);
|
||||
const Transfer transfer(1, 100000, uavcan::TransferPriorityNormal,
|
||||
uavcan::TransferTypeMessageUnicast, 2, 42, 127, DATA, type);
|
||||
|
||||
const std::vector<uavcan::RxFrame> ser = serializeTransfer(transfer);
|
||||
|
||||
@@ -70,25 +71,29 @@ TEST(TransferTestHelpers, SFTSerialization)
|
||||
uavcan::DataTypeDescriptor type(uavcan::DataTypeKindMessage, 123, uavcan::DataTypeSignature(123456789), "Foo");
|
||||
|
||||
{
|
||||
const Transfer transfer(1, 100000, uavcan::TransferTypeMessageBroadcast, 7, 42, 0, "Nvrfrget", type);
|
||||
const Transfer transfer(1, 100000, uavcan::TransferPriorityNormal,
|
||||
uavcan::TransferTypeMessageBroadcast, 7, 42, 0, "Nvrfrget", type);
|
||||
const std::vector<uavcan::RxFrame> ser = serializeTransfer(transfer);
|
||||
ASSERT_EQ(1, ser.size());
|
||||
std::cout << "Serialized transfer:\n\t" << ser[0].toString() << "\n";
|
||||
}
|
||||
{
|
||||
const Transfer transfer(1, 100000, uavcan::TransferTypeServiceRequest, 7, 42, 127, "7-chars", type);
|
||||
const Transfer transfer(1, 100000, uavcan::TransferPriorityService,
|
||||
uavcan::TransferTypeServiceRequest, 7, 42, 127, "7-chars", type);
|
||||
const std::vector<uavcan::RxFrame> ser = serializeTransfer(transfer);
|
||||
ASSERT_EQ(1, ser.size());
|
||||
std::cout << "Serialized transfer:\n\t" << ser[0].toString() << "\n";
|
||||
}
|
||||
{
|
||||
const Transfer transfer(1, 100000, uavcan::TransferTypeMessageBroadcast, 7, 42, 0, "", type);
|
||||
const Transfer transfer(1, 100000, uavcan::TransferPriorityNormal,
|
||||
uavcan::TransferTypeMessageBroadcast, 7, 42, 0, "", type);
|
||||
const std::vector<uavcan::RxFrame> ser = serializeTransfer(transfer);
|
||||
ASSERT_EQ(1, ser.size());
|
||||
std::cout << "Serialized transfer:\n\t" << ser[0].toString() << "\n";
|
||||
}
|
||||
{
|
||||
const Transfer transfer(1, 100000, uavcan::TransferTypeServiceResponse, 7, 42, 127, "", type);
|
||||
const Transfer transfer(1, 100000, uavcan::TransferPriorityService,
|
||||
uavcan::TransferTypeServiceResponse, 7, 42, 127, "", type);
|
||||
const std::vector<uavcan::RxFrame> ser = serializeTransfer(transfer);
|
||||
ASSERT_EQ(1, ser.size());
|
||||
std::cout << "Serialized transfer:\n\t" << ser[0].toString() << "\n";
|
||||
|
||||
@@ -17,6 +17,7 @@ struct Transfer
|
||||
{
|
||||
uavcan::MonotonicTime ts_monotonic;
|
||||
uavcan::UtcTime ts_utc;
|
||||
uavcan::TransferPriority priority;
|
||||
uavcan::TransferType transfer_type;
|
||||
uavcan::TransferID transfer_id;
|
||||
uavcan::NodeID src_node_id;
|
||||
@@ -27,6 +28,7 @@ struct Transfer
|
||||
Transfer(const uavcan::IncomingTransfer& tr, const uavcan::DataTypeDescriptor& data_type)
|
||||
: ts_monotonic(tr.getMonotonicTimestamp())
|
||||
, ts_utc(tr.getUtcTimestamp())
|
||||
, priority(tr.getPriority())
|
||||
, transfer_type(tr.getTransferType())
|
||||
, transfer_id(tr.getTransferID())
|
||||
, src_node_id(tr.getSrcNodeID())
|
||||
@@ -52,11 +54,12 @@ struct Transfer
|
||||
}
|
||||
}
|
||||
|
||||
Transfer(uavcan::MonotonicTime ts_monotonic, uavcan::UtcTime ts_utc, uavcan::TransferType transfer_type,
|
||||
uavcan::TransferID transfer_id, uavcan::NodeID src_node_id, uavcan::NodeID dst_node_id,
|
||||
const std::string& payload, const uavcan::DataTypeDescriptor& data_type)
|
||||
Transfer(uavcan::MonotonicTime ts_monotonic, uavcan::UtcTime ts_utc, uavcan::TransferPriority priority,
|
||||
uavcan::TransferType transfer_type, uavcan::TransferID transfer_id, uavcan::NodeID src_node_id,
|
||||
uavcan::NodeID dst_node_id, const std::string& payload, const uavcan::DataTypeDescriptor& data_type)
|
||||
: ts_monotonic(ts_monotonic)
|
||||
, ts_utc(ts_utc)
|
||||
, priority(priority)
|
||||
, transfer_type(transfer_type)
|
||||
, transfer_id(transfer_id)
|
||||
, src_node_id(src_node_id)
|
||||
@@ -65,11 +68,12 @@ struct Transfer
|
||||
, payload(payload)
|
||||
{ }
|
||||
|
||||
Transfer(uint64_t ts_monotonic, uint64_t ts_utc, uavcan::TransferType transfer_type,
|
||||
uavcan::TransferID transfer_id, uavcan::NodeID src_node_id, uavcan::NodeID dst_node_id,
|
||||
const std::string& payload, const uavcan::DataTypeDescriptor& data_type)
|
||||
Transfer(uint64_t ts_monotonic, uint64_t ts_utc, uavcan::TransferPriority priority,
|
||||
uavcan::TransferType transfer_type, uavcan::TransferID transfer_id, uavcan::NodeID src_node_id,
|
||||
uavcan::NodeID dst_node_id, const std::string& payload, const uavcan::DataTypeDescriptor& data_type)
|
||||
: ts_monotonic(uavcan::MonotonicTime::fromUSec(ts_monotonic))
|
||||
, ts_utc(uavcan::UtcTime::fromUSec(ts_utc))
|
||||
, priority(priority)
|
||||
, transfer_type(transfer_type)
|
||||
, transfer_id(transfer_id)
|
||||
, src_node_id(src_node_id)
|
||||
@@ -83,6 +87,7 @@ struct Transfer
|
||||
return
|
||||
(ts_monotonic == rhs.ts_monotonic) &&
|
||||
((!ts_utc.isZero() && !rhs.ts_utc.isZero()) ? (ts_utc == rhs.ts_utc) : true) &&
|
||||
(priority == rhs.priority) &&
|
||||
(transfer_type == rhs.transfer_type) &&
|
||||
(transfer_id == rhs.transfer_id) &&
|
||||
(src_node_id == rhs.src_node_id) &&
|
||||
@@ -96,6 +101,7 @@ struct Transfer
|
||||
std::ostringstream os;
|
||||
os << "ts_m=" << ts_monotonic
|
||||
<< " ts_utc=" << ts_utc
|
||||
<< " prio=" << priority
|
||||
<< " tt=" << transfer_type
|
||||
<< " tid=" << int(transfer_id.get())
|
||||
<< " snid=" << int(src_node_id.get())
|
||||
@@ -264,8 +270,8 @@ public:
|
||||
|
||||
virtual ~IncomingTransferEmulatorBase() { }
|
||||
|
||||
Transfer makeTransfer(uavcan::TransferType transfer_type, uint8_t source_node_id, const std::string& payload,
|
||||
const uavcan::DataTypeDescriptor& type,
|
||||
Transfer makeTransfer(uavcan::TransferPriority priority, uavcan::TransferType transfer_type,
|
||||
uint8_t source_node_id, const std::string& payload, const uavcan::DataTypeDescriptor& type,
|
||||
uavcan::NodeID dst_node_id_override = uavcan::NodeID())
|
||||
{
|
||||
ts_ += uavcan::MonotonicDuration::fromUSec(100);
|
||||
@@ -273,7 +279,7 @@ public:
|
||||
const uavcan::NodeID dst_node_id = (transfer_type == uavcan::TransferTypeMessageBroadcast) ?
|
||||
uavcan::NodeID::Broadcast :
|
||||
(dst_node_id_override.isValid() ? dst_node_id_override : dst_node_id_);
|
||||
const Transfer tr(ts_, utc, transfer_type, tid_, source_node_id, dst_node_id, payload, type);
|
||||
const Transfer tr(ts_, utc, priority, transfer_type, tid_, source_node_id, dst_node_id, payload, type);
|
||||
tid_.increment();
|
||||
return tr;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user