From 2407157c9cd3fa2a25d4da4cc05f79d33e69274d Mon Sep 17 00:00:00 2001 From: Pavel Kirienko Date: Thu, 30 Apr 2015 14:35:00 +0300 Subject: [PATCH] Passing priority value of received transfers to application --- libuavcan/include/uavcan/node/generic_subscriber.hpp | 1 + libuavcan/include/uavcan/transport/transfer_listener.hpp | 8 ++++++-- libuavcan/src/transport/uc_transfer_listener.cpp | 8 ++++---- 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/libuavcan/include/uavcan/node/generic_subscriber.hpp b/libuavcan/include/uavcan/node/generic_subscriber.hpp index 8b7ddb320f..e3d51c9440 100644 --- a/libuavcan/include/uavcan/node/generic_subscriber.hpp +++ b/libuavcan/include/uavcan/node/generic_subscriber.hpp @@ -63,6 +63,7 @@ public: return safeget(); } UtcTime getUtcTimestamp() const { return safeget(); } + TransferPriority getPriority() const { return safeget(); } TransferType getTransferType() const { return safeget(); } TransferID getTransferID() const { return safeget(); } NodeID getSrcNodeID() const { return safeget(); } diff --git a/libuavcan/include/uavcan/transport/transfer_listener.hpp b/libuavcan/include/uavcan/transport/transfer_listener.hpp index 9c251d276d..dc0bc66ad2 100644 --- a/libuavcan/include/uavcan/transport/transfer_listener.hpp +++ b/libuavcan/include/uavcan/transport/transfer_listener.hpp @@ -25,6 +25,7 @@ class UAVCAN_EXPORT IncomingTransfer : public ITransferBuffer { MonotonicTime ts_mono_; UtcTime ts_utc_; + TransferPriority transfer_priority_; TransferType transfer_type_; TransferID transfer_id_; NodeID src_node_id_; @@ -34,10 +35,12 @@ class UAVCAN_EXPORT IncomingTransfer : public ITransferBuffer virtual int write(unsigned offset, const uint8_t* data, unsigned len); protected: - IncomingTransfer(MonotonicTime ts_mono, UtcTime ts_utc, TransferType transfer_type, - TransferID transfer_id, NodeID source_node_id, uint8_t iface_index) + IncomingTransfer(MonotonicTime ts_mono, UtcTime ts_utc, TransferPriority transfer_priority, + TransferType transfer_type, TransferID transfer_id, NodeID source_node_id, + uint8_t iface_index) : ts_mono_(ts_mono) , ts_utc_(ts_utc) + , transfer_priority_(transfer_priority) , transfer_type_(transfer_type) , transfer_id_(transfer_id) , src_node_id_(source_node_id) @@ -57,6 +60,7 @@ public: MonotonicTime getMonotonicTimestamp() const { return ts_mono_; } UtcTime getUtcTimestamp() const { return ts_utc_; } + TransferPriority getPriority() const { return transfer_priority_; } TransferType getTransferType() const { return transfer_type_; } TransferID getTransferID() const { return transfer_id_; } NodeID getSrcNodeID() const { return src_node_id_; } diff --git a/libuavcan/src/transport/uc_transfer_listener.cpp b/libuavcan/src/transport/uc_transfer_listener.cpp index 6a5d38fbec..a48878f0c1 100644 --- a/libuavcan/src/transport/uc_transfer_listener.cpp +++ b/libuavcan/src/transport/uc_transfer_listener.cpp @@ -22,8 +22,8 @@ int IncomingTransfer::write(unsigned, const uint8_t*, unsigned) * SingleFrameIncomingTransfer */ SingleFrameIncomingTransfer::SingleFrameIncomingTransfer(const RxFrame& frm) - : IncomingTransfer(frm.getMonotonicTimestamp(), frm.getUtcTimestamp(), frm.getTransferType(), - frm.getTransferID(), frm.getSrcNodeID(), frm.getIfaceIndex()) + : IncomingTransfer(frm.getMonotonicTimestamp(), frm.getUtcTimestamp(), frm.getPriority(), + frm.getTransferType(), frm.getTransferID(), frm.getSrcNodeID(), frm.getIfaceIndex()) , payload_(frm.getPayloadPtr()) , payload_len_(uint8_t(frm.getPayloadLen())) { @@ -60,8 +60,8 @@ bool SingleFrameIncomingTransfer::isAnonymousTransfer() const */ MultiFrameIncomingTransfer::MultiFrameIncomingTransfer(MonotonicTime ts_mono, UtcTime ts_utc, const RxFrame& last_frame, TransferBufferAccessor& tba) - : IncomingTransfer(ts_mono, ts_utc, last_frame.getTransferType(), last_frame.getTransferID(), - last_frame.getSrcNodeID(), last_frame.getIfaceIndex()) + : IncomingTransfer(ts_mono, ts_utc, last_frame.getPriority(), last_frame.getTransferType(), + last_frame.getTransferID(), last_frame.getSrcNodeID(), last_frame.getIfaceIndex()) , buf_acc_(tba) { UAVCAN_ASSERT(last_frame.isValid());