mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-10-24 16:43:34 +08:00
Renaming TransportPerfCounter --> TransferPerfCounter
This commit is contained in:
@@ -98,7 +98,7 @@ class GenericSubscriber : Noncopyable
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
TransferForwarder(SelfType& obj, const DataTypeDescriptor& data_type, IAllocator& allocator)
|
TransferForwarder(SelfType& obj, const DataTypeDescriptor& data_type, IAllocator& allocator)
|
||||||
: TransferListenerType(obj.node_.getDispatcher().getTransportPerfCounter(), data_type, allocator)
|
: TransferListenerType(obj.node_.getDispatcher().getTransferPerfCounter(), data_type, allocator)
|
||||||
, obj_(obj)
|
, obj_(obj)
|
||||||
{ }
|
{ }
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -58,7 +58,7 @@ class Dispatcher : Noncopyable
|
|||||||
CanIOManager canio_;
|
CanIOManager canio_;
|
||||||
ISystemClock& sysclock_;
|
ISystemClock& sysclock_;
|
||||||
IOutgoingTransferRegistry& outgoing_transfer_reg_;
|
IOutgoingTransferRegistry& outgoing_transfer_reg_;
|
||||||
TransportPerfCounter perf_;
|
TransferPerfCounter perf_;
|
||||||
|
|
||||||
class ListenerRegistry
|
class ListenerRegistry
|
||||||
{
|
{
|
||||||
@@ -144,8 +144,8 @@ public:
|
|||||||
|
|
||||||
const CanIOManager& getCanIOManager() const { return canio_; }
|
const CanIOManager& getCanIOManager() const { return canio_; }
|
||||||
|
|
||||||
const TransportPerfCounter& getTransportPerfCounter() const { return perf_; }
|
const TransferPerfCounter& getTransferPerfCounter() const { return perf_; }
|
||||||
TransportPerfCounter& getTransportPerfCounter() { return perf_; }
|
TransferPerfCounter& getTransferPerfCounter() { return perf_; }
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,14 +9,14 @@
|
|||||||
namespace uavcan
|
namespace uavcan
|
||||||
{
|
{
|
||||||
|
|
||||||
class TransportPerfCounter
|
class TransferPerfCounter
|
||||||
{
|
{
|
||||||
uint64_t transfers_tx_;
|
uint64_t transfers_tx_;
|
||||||
uint64_t transfers_rx_;
|
uint64_t transfers_rx_;
|
||||||
uint64_t errors_;
|
uint64_t errors_;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
TransportPerfCounter()
|
TransferPerfCounter()
|
||||||
: transfers_tx_(0)
|
: transfers_tx_(0)
|
||||||
, transfers_rx_(0)
|
, transfers_rx_(0)
|
||||||
, errors_(0)
|
, errors_(0)
|
||||||
|
|||||||
@@ -89,12 +89,12 @@ class TransferListenerBase : public LinkedListNode<TransferListenerBase>, Noncop
|
|||||||
{
|
{
|
||||||
const DataTypeDescriptor& data_type_;
|
const DataTypeDescriptor& data_type_;
|
||||||
const TransferCRC crc_base_; ///< Pre-initialized with data type hash, thus constant
|
const TransferCRC crc_base_; ///< Pre-initialized with data type hash, thus constant
|
||||||
TransportPerfCounter& perf_;
|
TransferPerfCounter& perf_;
|
||||||
|
|
||||||
bool checkPayloadCrc(const uint16_t compare_with, const ITransferBuffer& tbb) const;
|
bool checkPayloadCrc(const uint16_t compare_with, const ITransferBuffer& tbb) const;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
TransferListenerBase(TransportPerfCounter& perf, const DataTypeDescriptor& data_type)
|
TransferListenerBase(TransferPerfCounter& perf, const DataTypeDescriptor& data_type)
|
||||||
: data_type_(data_type)
|
: data_type_(data_type)
|
||||||
, crc_base_(data_type.getSignature().toTransferCRC())
|
, crc_base_(data_type.getSignature().toTransferCRC())
|
||||||
, perf_(perf)
|
, perf_(perf)
|
||||||
@@ -184,7 +184,7 @@ protected:
|
|||||||
}
|
}
|
||||||
|
|
||||||
public:
|
public:
|
||||||
TransferListener(TransportPerfCounter& perf, const DataTypeDescriptor& data_type, IAllocator& allocator)
|
TransferListener(TransferPerfCounter& perf, const DataTypeDescriptor& data_type, IAllocator& allocator)
|
||||||
: TransferListenerBase(perf, data_type)
|
: TransferListenerBase(perf, data_type)
|
||||||
, bufmgr_(allocator)
|
, bufmgr_(allocator)
|
||||||
, receivers_(allocator)
|
, receivers_(allocator)
|
||||||
@@ -249,7 +249,7 @@ private:
|
|||||||
}
|
}
|
||||||
|
|
||||||
public:
|
public:
|
||||||
ServiceResponseTransferListener(TransportPerfCounter& perf, const DataTypeDescriptor& data_type,
|
ServiceResponseTransferListener(TransferPerfCounter& perf, const DataTypeDescriptor& data_type,
|
||||||
IAllocator& allocator)
|
IAllocator& allocator)
|
||||||
: BaseType(perf, data_type, allocator)
|
: BaseType(perf, data_type, allocator)
|
||||||
{ }
|
{ }
|
||||||
|
|||||||
@@ -12,14 +12,14 @@ namespace uavcan
|
|||||||
|
|
||||||
void TransferSender::registerError()
|
void TransferSender::registerError()
|
||||||
{
|
{
|
||||||
dispatcher_.getTransportPerfCounter().addError();
|
dispatcher_.getTransferPerfCounter().addError();
|
||||||
}
|
}
|
||||||
|
|
||||||
int TransferSender::send(const uint8_t* payload, int payload_len, MonotonicTime tx_deadline,
|
int TransferSender::send(const uint8_t* payload, int payload_len, MonotonicTime tx_deadline,
|
||||||
MonotonicTime blocking_deadline, TransferType transfer_type, NodeID dst_node_id,
|
MonotonicTime blocking_deadline, TransferType transfer_type, NodeID dst_node_id,
|
||||||
TransferID tid)
|
TransferID tid)
|
||||||
{
|
{
|
||||||
dispatcher_.getTransportPerfCounter().addTxTransfer();
|
dispatcher_.getTransferPerfCounter().addTxTransfer();
|
||||||
|
|
||||||
Frame frame(data_type_.getID(), transfer_type, dispatcher_.getNodeID(), dst_node_id, 0, tid);
|
Frame frame(data_type_.getID(), transfer_type, dispatcher_.getNodeID(), dst_node_id, 0, tid);
|
||||||
|
|
||||||
|
|||||||
@@ -68,12 +68,12 @@ TEST(Dispatcher, Reception)
|
|||||||
static const int NUM_SUBSCRIBERS = 6;
|
static const int NUM_SUBSCRIBERS = 6;
|
||||||
SubscriberPtr subscribers[NUM_SUBSCRIBERS] =
|
SubscriberPtr subscribers[NUM_SUBSCRIBERS] =
|
||||||
{
|
{
|
||||||
SubscriberPtr(new Subscriber(dispatcher.getTransportPerfCounter(), TYPES[0], poolmgr)), // msg
|
SubscriberPtr(new Subscriber(dispatcher.getTransferPerfCounter(), TYPES[0], poolmgr)), // msg
|
||||||
SubscriberPtr(new Subscriber(dispatcher.getTransportPerfCounter(), TYPES[0], poolmgr)), // msg // Two similar
|
SubscriberPtr(new Subscriber(dispatcher.getTransferPerfCounter(), TYPES[0], poolmgr)), // msg // Two similar
|
||||||
SubscriberPtr(new Subscriber(dispatcher.getTransportPerfCounter(), TYPES[1], poolmgr)), // msg
|
SubscriberPtr(new Subscriber(dispatcher.getTransferPerfCounter(), TYPES[1], poolmgr)), // msg
|
||||||
SubscriberPtr(new Subscriber(dispatcher.getTransportPerfCounter(), TYPES[2], poolmgr)), // srv
|
SubscriberPtr(new Subscriber(dispatcher.getTransferPerfCounter(), TYPES[2], poolmgr)), // srv
|
||||||
SubscriberPtr(new Subscriber(dispatcher.getTransportPerfCounter(), TYPES[3], poolmgr)), // srv
|
SubscriberPtr(new Subscriber(dispatcher.getTransferPerfCounter(), TYPES[3], poolmgr)), // srv
|
||||||
SubscriberPtr(new Subscriber(dispatcher.getTransportPerfCounter(), TYPES[3], poolmgr)) // srv // Repeat again
|
SubscriberPtr(new Subscriber(dispatcher.getTransferPerfCounter(), TYPES[3], poolmgr)) // srv // Repeat again
|
||||||
};
|
};
|
||||||
|
|
||||||
static const std::string DATA[6] =
|
static const std::string DATA[6] =
|
||||||
@@ -216,9 +216,9 @@ TEST(Dispatcher, Reception)
|
|||||||
/*
|
/*
|
||||||
* Perf counters
|
* Perf counters
|
||||||
*/
|
*/
|
||||||
EXPECT_LT(0, dispatcher.getTransportPerfCounter().getErrorCount()); // Repeated transfers
|
EXPECT_LT(0, dispatcher.getTransferPerfCounter().getErrorCount()); // Repeated transfers
|
||||||
EXPECT_EQ(0, dispatcher.getTransportPerfCounter().getTxTransferCount());
|
EXPECT_EQ(0, dispatcher.getTransferPerfCounter().getTxTransferCount());
|
||||||
EXPECT_EQ(9, dispatcher.getTransportPerfCounter().getRxTransferCount());
|
EXPECT_EQ(9, dispatcher.getTransferPerfCounter().getRxTransferCount());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -271,9 +271,9 @@ TEST(Dispatcher, Transmission)
|
|||||||
/*
|
/*
|
||||||
* Perf counters - all empty because dispatcher itself does not count TX transfers
|
* Perf counters - all empty because dispatcher itself does not count TX transfers
|
||||||
*/
|
*/
|
||||||
EXPECT_EQ(0, dispatcher.getTransportPerfCounter().getErrorCount());
|
EXPECT_EQ(0, dispatcher.getTransferPerfCounter().getErrorCount());
|
||||||
EXPECT_EQ(0, dispatcher.getTransportPerfCounter().getTxTransferCount());
|
EXPECT_EQ(0, dispatcher.getTransferPerfCounter().getTxTransferCount());
|
||||||
EXPECT_EQ(0, dispatcher.getTransportPerfCounter().getRxTransferCount());
|
EXPECT_EQ(0, dispatcher.getTransferPerfCounter().getRxTransferCount());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ TEST(TransferListener, BasicMFT)
|
|||||||
uavcan::PoolManager<1> poolmgr;
|
uavcan::PoolManager<1> poolmgr;
|
||||||
poolmgr.addPool(&pool);
|
poolmgr.addPool(&pool);
|
||||||
|
|
||||||
uavcan::TransportPerfCounter perf;
|
uavcan::TransferPerfCounter perf;
|
||||||
TestListener<256, 1, 1> subscriber(perf, type, poolmgr);
|
TestListener<256, 1, 1> subscriber(perf, type, poolmgr);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -90,7 +90,7 @@ TEST(TransferListener, CrcFailure)
|
|||||||
const uavcan::DataTypeDescriptor type(uavcan::DataTypeKindMessage, 123, uavcan::DataTypeSignature(123456789), "A");
|
const uavcan::DataTypeDescriptor type(uavcan::DataTypeKindMessage, 123, uavcan::DataTypeSignature(123456789), "A");
|
||||||
|
|
||||||
uavcan::PoolManager<1> poolmgr; // No dynamic memory
|
uavcan::PoolManager<1> poolmgr; // No dynamic memory
|
||||||
uavcan::TransportPerfCounter perf;
|
uavcan::TransferPerfCounter perf;
|
||||||
TestListener<256, 2, 2> subscriber(perf, type, poolmgr); // Static buffer only, 2 entries
|
TestListener<256, 2, 2> subscriber(perf, type, poolmgr); // Static buffer only, 2 entries
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -134,7 +134,7 @@ TEST(TransferListener, BasicSFT)
|
|||||||
const uavcan::DataTypeDescriptor type(uavcan::DataTypeKindMessage, 123, uavcan::DataTypeSignature(123456789), "A");
|
const uavcan::DataTypeDescriptor type(uavcan::DataTypeKindMessage, 123, uavcan::DataTypeSignature(123456789), "A");
|
||||||
|
|
||||||
uavcan::PoolManager<1> poolmgr; // No dynamic memory. At all.
|
uavcan::PoolManager<1> poolmgr; // No dynamic memory. At all.
|
||||||
uavcan::TransportPerfCounter perf;
|
uavcan::TransferPerfCounter perf;
|
||||||
TestListener<0, 0, 5> subscriber(perf, type, poolmgr); // Max buf size is 0, i.e. SFT-only
|
TestListener<0, 0, 5> subscriber(perf, type, poolmgr); // Max buf size is 0, i.e. SFT-only
|
||||||
|
|
||||||
TransferListenerEmulator emulator(subscriber, type);
|
TransferListenerEmulator emulator(subscriber, type);
|
||||||
@@ -170,7 +170,7 @@ TEST(TransferListener, Cleanup)
|
|||||||
const uavcan::DataTypeDescriptor type(uavcan::DataTypeKindMessage, 123, uavcan::DataTypeSignature(123456789), "A");
|
const uavcan::DataTypeDescriptor type(uavcan::DataTypeKindMessage, 123, uavcan::DataTypeSignature(123456789), "A");
|
||||||
|
|
||||||
uavcan::PoolManager<1> poolmgr; // No dynamic memory
|
uavcan::PoolManager<1> poolmgr; // No dynamic memory
|
||||||
uavcan::TransportPerfCounter perf;
|
uavcan::TransferPerfCounter perf;
|
||||||
TestListener<256, 1, 2> subscriber(perf, type, poolmgr); // Static buffer only, 1 entry
|
TestListener<256, 1, 2> subscriber(perf, type, poolmgr); // Static buffer only, 1 entry
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -225,7 +225,7 @@ TEST(TransferListener, MaximumTransferLength)
|
|||||||
const uavcan::DataTypeDescriptor type(uavcan::DataTypeKindMessage, 123, uavcan::DataTypeSignature(123456789), "A");
|
const uavcan::DataTypeDescriptor type(uavcan::DataTypeKindMessage, 123, uavcan::DataTypeSignature(123456789), "A");
|
||||||
|
|
||||||
uavcan::PoolManager<1> poolmgr;
|
uavcan::PoolManager<1> poolmgr;
|
||||||
uavcan::TransportPerfCounter perf;
|
uavcan::TransferPerfCounter perf;
|
||||||
TestListener<uavcan::MaxTransferPayloadLen * 2, 2, 2> subscriber(perf, type, poolmgr);
|
TestListener<uavcan::MaxTransferPayloadLen * 2, 2, 2> subscriber(perf, type, poolmgr);
|
||||||
|
|
||||||
static const std::string DATA_OK(uavcan::MaxTransferPayloadLen, 'z');
|
static const std::string DATA_OK(uavcan::MaxTransferPayloadLen, 'z');
|
||||||
|
|||||||
@@ -113,9 +113,9 @@ TEST(TransferSender, Basic)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
TestListener<512, 2, 2> sub_msg(dispatcher_rx.getTransportPerfCounter(), TYPES[0], poolmgr);
|
TestListener<512, 2, 2> sub_msg(dispatcher_rx.getTransferPerfCounter(), TYPES[0], poolmgr);
|
||||||
TestListener<512, 2, 2> sub_srv_req(dispatcher_rx.getTransportPerfCounter(), TYPES[1], poolmgr);
|
TestListener<512, 2, 2> sub_srv_req(dispatcher_rx.getTransferPerfCounter(), TYPES[1], poolmgr);
|
||||||
TestListener<512, 2, 2> sub_srv_resp(dispatcher_rx.getTransportPerfCounter(), TYPES[1], poolmgr);
|
TestListener<512, 2, 2> sub_srv_resp(dispatcher_rx.getTransferPerfCounter(), TYPES[1], poolmgr);
|
||||||
|
|
||||||
dispatcher_rx.registerMessageListener(&sub_msg);
|
dispatcher_rx.registerMessageListener(&sub_msg);
|
||||||
dispatcher_rx.registerServiceRequestListener(&sub_srv_req);
|
dispatcher_rx.registerServiceRequestListener(&sub_srv_req);
|
||||||
@@ -149,13 +149,13 @@ TEST(TransferSender, Basic)
|
|||||||
/*
|
/*
|
||||||
* Perf counters
|
* Perf counters
|
||||||
*/
|
*/
|
||||||
EXPECT_EQ(0, dispatcher_tx.getTransportPerfCounter().getErrorCount());
|
EXPECT_EQ(0, dispatcher_tx.getTransferPerfCounter().getErrorCount());
|
||||||
EXPECT_EQ(8, dispatcher_tx.getTransportPerfCounter().getTxTransferCount());
|
EXPECT_EQ(8, dispatcher_tx.getTransferPerfCounter().getTxTransferCount());
|
||||||
EXPECT_EQ(0, dispatcher_tx.getTransportPerfCounter().getRxTransferCount());
|
EXPECT_EQ(0, dispatcher_tx.getTransferPerfCounter().getRxTransferCount());
|
||||||
|
|
||||||
EXPECT_EQ(0, dispatcher_rx.getTransportPerfCounter().getErrorCount());
|
EXPECT_EQ(0, dispatcher_rx.getTransferPerfCounter().getErrorCount());
|
||||||
EXPECT_EQ(0, dispatcher_rx.getTransportPerfCounter().getTxTransferCount());
|
EXPECT_EQ(0, dispatcher_rx.getTransferPerfCounter().getTxTransferCount());
|
||||||
EXPECT_EQ(8, dispatcher_rx.getTransportPerfCounter().getRxTransferCount());
|
EXPECT_EQ(8, dispatcher_rx.getTransferPerfCounter().getRxTransferCount());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -214,7 +214,7 @@ TEST(TransferSender, Loopback)
|
|||||||
ASSERT_TRUE(TX_NODE_ID == listener.last_frame.getSrcNodeID());
|
ASSERT_TRUE(TX_NODE_ID == listener.last_frame.getSrcNodeID());
|
||||||
ASSERT_TRUE(listener.last_frame.isLast());
|
ASSERT_TRUE(listener.last_frame.isLast());
|
||||||
|
|
||||||
EXPECT_EQ(0, dispatcher.getTransportPerfCounter().getErrorCount());
|
EXPECT_EQ(0, dispatcher.getTransferPerfCounter().getErrorCount());
|
||||||
EXPECT_EQ(1, dispatcher.getTransportPerfCounter().getTxTransferCount());
|
EXPECT_EQ(1, dispatcher.getTransferPerfCounter().getTxTransferCount());
|
||||||
EXPECT_EQ(0, dispatcher.getTransportPerfCounter().getRxTransferCount());
|
EXPECT_EQ(0, dispatcher.getTransferPerfCounter().getRxTransferCount());
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -119,7 +119,7 @@ class TestListener : public uavcan::TransferListener<MAX_BUF_SIZE, NUM_STATIC_BU
|
|||||||
std::queue<Transfer> transfers_;
|
std::queue<Transfer> transfers_;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
TestListener(uavcan::TransportPerfCounter& perf, const uavcan::DataTypeDescriptor& data_type,
|
TestListener(uavcan::TransferPerfCounter& perf, const uavcan::DataTypeDescriptor& data_type,
|
||||||
uavcan::IAllocator& allocator)
|
uavcan::IAllocator& allocator)
|
||||||
: Base(perf, data_type, allocator)
|
: Base(perf, data_type, allocator)
|
||||||
{ }
|
{ }
|
||||||
|
|||||||
Reference in New Issue
Block a user