Passing priority value of received transfers to application

This commit is contained in:
Pavel Kirienko
2015-04-30 14:35:00 +03:00
parent 20feaba1de
commit 2407157c9c
3 changed files with 11 additions and 6 deletions
@@ -63,6 +63,7 @@ public:
return safeget<MonotonicTime, &IncomingTransfer::getMonotonicTimestamp>(); return safeget<MonotonicTime, &IncomingTransfer::getMonotonicTimestamp>();
} }
UtcTime getUtcTimestamp() const { return safeget<UtcTime, &IncomingTransfer::getUtcTimestamp>(); } UtcTime getUtcTimestamp() const { return safeget<UtcTime, &IncomingTransfer::getUtcTimestamp>(); }
TransferPriority getPriority() const { return safeget<TransferPriority, &IncomingTransfer::getPriority>(); }
TransferType getTransferType() const { return safeget<TransferType, &IncomingTransfer::getTransferType>(); } TransferType getTransferType() const { return safeget<TransferType, &IncomingTransfer::getTransferType>(); }
TransferID getTransferID() const { return safeget<TransferID, &IncomingTransfer::getTransferID>(); } TransferID getTransferID() const { return safeget<TransferID, &IncomingTransfer::getTransferID>(); }
NodeID getSrcNodeID() const { return safeget<NodeID, &IncomingTransfer::getSrcNodeID>(); } NodeID getSrcNodeID() const { return safeget<NodeID, &IncomingTransfer::getSrcNodeID>(); }
@@ -25,6 +25,7 @@ class UAVCAN_EXPORT IncomingTransfer : public ITransferBuffer
{ {
MonotonicTime ts_mono_; MonotonicTime ts_mono_;
UtcTime ts_utc_; UtcTime ts_utc_;
TransferPriority transfer_priority_;
TransferType transfer_type_; TransferType transfer_type_;
TransferID transfer_id_; TransferID transfer_id_;
NodeID src_node_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); virtual int write(unsigned offset, const uint8_t* data, unsigned len);
protected: protected:
IncomingTransfer(MonotonicTime ts_mono, UtcTime ts_utc, TransferType transfer_type, IncomingTransfer(MonotonicTime ts_mono, UtcTime ts_utc, TransferPriority transfer_priority,
TransferID transfer_id, NodeID source_node_id, uint8_t iface_index) TransferType transfer_type, TransferID transfer_id, NodeID source_node_id,
uint8_t iface_index)
: ts_mono_(ts_mono) : ts_mono_(ts_mono)
, ts_utc_(ts_utc) , ts_utc_(ts_utc)
, transfer_priority_(transfer_priority)
, transfer_type_(transfer_type) , transfer_type_(transfer_type)
, transfer_id_(transfer_id) , transfer_id_(transfer_id)
, src_node_id_(source_node_id) , src_node_id_(source_node_id)
@@ -57,6 +60,7 @@ public:
MonotonicTime getMonotonicTimestamp() const { return ts_mono_; } MonotonicTime getMonotonicTimestamp() const { return ts_mono_; }
UtcTime getUtcTimestamp() const { return ts_utc_; } UtcTime getUtcTimestamp() const { return ts_utc_; }
TransferPriority getPriority() const { return transfer_priority_; }
TransferType getTransferType() const { return transfer_type_; } TransferType getTransferType() const { return transfer_type_; }
TransferID getTransferID() const { return transfer_id_; } TransferID getTransferID() const { return transfer_id_; }
NodeID getSrcNodeID() const { return src_node_id_; } NodeID getSrcNodeID() const { return src_node_id_; }
@@ -22,8 +22,8 @@ int IncomingTransfer::write(unsigned, const uint8_t*, unsigned)
* SingleFrameIncomingTransfer * SingleFrameIncomingTransfer
*/ */
SingleFrameIncomingTransfer::SingleFrameIncomingTransfer(const RxFrame& frm) SingleFrameIncomingTransfer::SingleFrameIncomingTransfer(const RxFrame& frm)
: IncomingTransfer(frm.getMonotonicTimestamp(), frm.getUtcTimestamp(), frm.getTransferType(), : IncomingTransfer(frm.getMonotonicTimestamp(), frm.getUtcTimestamp(), frm.getPriority(),
frm.getTransferID(), frm.getSrcNodeID(), frm.getIfaceIndex()) frm.getTransferType(), frm.getTransferID(), frm.getSrcNodeID(), frm.getIfaceIndex())
, payload_(frm.getPayloadPtr()) , payload_(frm.getPayloadPtr())
, payload_len_(uint8_t(frm.getPayloadLen())) , payload_len_(uint8_t(frm.getPayloadLen()))
{ {
@@ -60,8 +60,8 @@ bool SingleFrameIncomingTransfer::isAnonymousTransfer() const
*/ */
MultiFrameIncomingTransfer::MultiFrameIncomingTransfer(MonotonicTime ts_mono, UtcTime ts_utc, MultiFrameIncomingTransfer::MultiFrameIncomingTransfer(MonotonicTime ts_mono, UtcTime ts_utc,
const RxFrame& last_frame, TransferBufferAccessor& tba) const RxFrame& last_frame, TransferBufferAccessor& tba)
: IncomingTransfer(ts_mono, ts_utc, last_frame.getTransferType(), last_frame.getTransferID(), : IncomingTransfer(ts_mono, ts_utc, last_frame.getPriority(), last_frame.getTransferType(),
last_frame.getSrcNodeID(), last_frame.getIfaceIndex()) last_frame.getTransferID(), last_frame.getSrcNodeID(), last_frame.getIfaceIndex())
, buf_acc_(tba) , buf_acc_(tba)
{ {
UAVCAN_ASSERT(last_frame.isValid()); UAVCAN_ASSERT(last_frame.isValid());