@@ -337,7 +337,8 @@ class TransportImpl final : private TransportDelegate, public ICanTransport
337337 static_cast <CanardMicrosecond>(deadline_us.count ()),
338338 &metadata,
339339 {payload.size (), payload.data ()}, // NOSONAR cpp:S5356
340- static_cast <CanardMicrosecond>(now_us.count ()));
340+ static_cast <CanardMicrosecond>(now_us.count ()),
341+ &tx_frames_expired_);
341342
342343 cetl::optional<AnyFailure> failure =
343344 tryHandleTransientCanardResult<TransientErrorReport::CanardTxPush>(media, result);
@@ -691,7 +692,9 @@ class TransportImpl final : private TransportDelegate, public ICanTransport
691692 auto * const frame_handler_ptr =
692693 static_cast <decltype (frame_handler)*>(user_reference); // NOSONAR cpp:S5356, cpp:S5357
693694 return (*frame_handler_ptr)(deadline, *frame);
694- });
695+ },
696+ &tx_frames_expired_,
697+ &tx_frames_failed_);
695698 }
696699
697700 if ((result == 0 ) && (media.canard_tx_queue ().size == 0 ))
@@ -781,6 +784,8 @@ class TransportImpl final : private TransportDelegate, public ICanTransport
781784 TransientErrorHandler transient_error_handler_;
782785 Callback::Any configure_filters_callback_;
783786 SessionTree<RxSessionTreeNode::Response> svc_response_rx_session_nodes_;
787+ std::uint64_t tx_frames_expired_ = 0 ;
788+ std::uint64_t tx_frames_failed_ = 0 ;
784789
785790}; // TransportImpl
786791
0 commit comments