diff options
Diffstat (limited to 'host/lib')
-rw-r--r-- | host/lib/rfnoc/actions.cpp | 16 | ||||
-rw-r--r-- | host/lib/rfnoc/radio_control_impl.cpp | 6 |
2 files changed, 13 insertions, 9 deletions
diff --git a/host/lib/rfnoc/actions.cpp b/host/lib/rfnoc/actions.cpp index 4de05b304..ecc1b3f20 100644 --- a/host/lib/rfnoc/actions.cpp +++ b/host/lib/rfnoc/actions.cpp @@ -66,20 +66,24 @@ rx_event_action_info::sptr rx_event_action_info::make() /*** TX Metadata Action Info *************************************************/ tx_event_action_info::tx_event_action_info( - uhd::async_metadata_t::event_code_t event_code_) - : action_info(ACTION_KEY_TX_EVENT), event_code(event_code_) + uhd::async_metadata_t::event_code_t event_code_, const boost::optional<uint64_t>& tsf_) + : action_info(ACTION_KEY_TX_EVENT), event_code(event_code_), has_tsf(tsf_) { + if (has_tsf) { + tsf = tsf_.get(); + } } tx_event_action_info::sptr tx_event_action_info::make( - uhd::async_metadata_t::event_code_t event_code) + uhd::async_metadata_t::event_code_t event_code, const boost::optional<uint64_t>& tsf) { struct tx_event_action_info_make_shared : public tx_event_action_info { - tx_event_action_info_make_shared(uhd::async_metadata_t::event_code_t event_code) - : tx_event_action_info(event_code) + tx_event_action_info_make_shared(uhd::async_metadata_t::event_code_t event_code, + const boost::optional<uint64_t>& tsf) + : tx_event_action_info(event_code, tsf) { } }; - return std::make_shared<tx_event_action_info_make_shared>(event_code); + return std::make_shared<tx_event_action_info_make_shared>(event_code, tsf); } diff --git a/host/lib/rfnoc/radio_control_impl.cpp b/host/lib/rfnoc/radio_control_impl.cpp index 4d03708bf..6c7a769df 100644 --- a/host/lib/rfnoc/radio_control_impl.cpp +++ b/host/lib/rfnoc/radio_control_impl.cpp @@ -930,7 +930,7 @@ void radio_control_impl::async_message_handler( switch (code) { case err_codes::ERR_TX_UNDERRUN: { auto tx_event_action = tx_event_action_info::make( - uhd::async_metadata_t::EVENT_CODE_UNDERFLOW); + uhd::async_metadata_t::EVENT_CODE_UNDERFLOW, timestamp); post_action(res_source_info{res_source_info::INPUT_EDGE, chan}, tx_event_action); UHD_LOG_FASTPATH("U"); @@ -939,7 +939,7 @@ void radio_control_impl::async_message_handler( } case err_codes::ERR_TX_LATE_DATA: { auto tx_event_action = tx_event_action_info::make( - uhd::async_metadata_t::EVENT_CODE_TIME_ERROR); + uhd::async_metadata_t::EVENT_CODE_TIME_ERROR, timestamp); post_action(res_source_info{res_source_info::INPUT_EDGE, chan}, tx_event_action); UHD_LOG_FASTPATH("L"); @@ -948,7 +948,7 @@ void radio_control_impl::async_message_handler( } case err_codes::EVENT_TX_BURST_ACK: { auto tx_event_action = tx_event_action_info::make( - uhd::async_metadata_t::EVENT_CODE_BURST_ACK); + uhd::async_metadata_t::EVENT_CODE_BURST_ACK, timestamp); post_action(res_source_info{res_source_info::INPUT_EDGE, chan}, tx_event_action); RFNOC_LOG_TRACE("Posting burst ack event action message."); |