USRP Hardware Driver and USRP Manual Version: 4.1.0.1
UHD and USRP Manual
actions.hpp
Go to the documentation of this file.
1//
2// Copyright 2019 Ettus Research, a National Instruments Brand
3//
4// SPDX-License-Identifier: GPL-3.0-or-later
5//
6
7#pragma once
8
9#include <uhd/config.hpp>
13#include <boost/optional.hpp>
14#include <memory>
15#include <string>
16#include <vector>
17
18namespace uhd { namespace rfnoc {
19
28{
29public:
30 virtual ~action_info() {}
31
32 using sptr = std::shared_ptr<action_info>;
34 const size_t id;
36 std::string key;
38 // (de-)serialize it.
39 std::vector<uint8_t> payload;
42
44 static sptr make(const std::string& key = "",
45 const uhd::device_addr_t& args = uhd::device_addr_t(""));
46
47protected:
49 const std::string& key, const uhd::device_addr_t& args = uhd::device_addr_t(""));
50};
51
53{
54public:
55 using sptr = std::shared_ptr<stream_cmd_action_info>;
56
58
60 static sptr make(const uhd::stream_cmd_t::stream_mode_t stream_mode);
61
62private:
64};
65
67{
68public:
69 using sptr = std::shared_ptr<rx_event_action_info>;
70
73
76
77protected:
79};
80
82{
83public:
84 using sptr = std::shared_ptr<tx_event_action_info>;
85
88
90 bool has_tsf;
91
93 uint64_t tsf;
94
97 const boost::optional<uint64_t>& tsf);
98
99protected:
101 const boost::optional<uint64_t>& tsf);
102};
103
104}} /* namespace uhd::rfnoc */
Definition: device_addr.hpp:38
#define UHD_API
Definition: config.h:70
Definition: build_info.hpp:12
event_code_t
Definition: metadata.hpp:216
Definition: actions.hpp:28
std::vector< uint8_t > payload
An arbitrary payload. It is up to consumers and producers to.
Definition: actions.hpp:39
std::string key
A string identifier for this action.
Definition: actions.hpp:36
virtual ~action_info()
Definition: actions.hpp:30
const size_t id
A unique counter for this action.
Definition: actions.hpp:34
action_info(const std::string &key, const uhd::device_addr_t &args=uhd::device_addr_t(""))
std::shared_ptr< action_info > sptr
Definition: actions.hpp:32
static sptr make(const std::string &key="", const uhd::device_addr_t &args=uhd::device_addr_t(""))
Factory function.
uhd::device_addr_t args
A dictionary of key-value pairs. May be used as desired.
Definition: actions.hpp:41
Definition: actions.hpp:67
static sptr make(uhd::rx_metadata_t::error_code_t error_code)
Factory function.
rx_event_action_info(uhd::rx_metadata_t::error_code_t error_code)
uhd::rx_metadata_t::error_code_t error_code
The error code that describes the event.
Definition: actions.hpp:72
Definition: actions.hpp:53
static sptr make(const uhd::stream_cmd_t::stream_mode_t stream_mode)
Factory function.
uhd::stream_cmd_t stream_cmd
Definition: actions.hpp:57
Definition: actions.hpp:82
uint64_t tsf
When the async event occurred.
Definition: actions.hpp:93
tx_event_action_info(uhd::async_metadata_t::event_code_t event_code, const boost::optional< uint64_t > &tsf)
static sptr make(uhd::async_metadata_t::event_code_t event_code, const boost::optional< uint64_t > &tsf)
Factory function.
bool has_tsf
Has time specification?
Definition: actions.hpp:90
uhd::async_metadata_t::event_code_t event_code
The event code that describes the event.
Definition: actions.hpp:87
error_code_t
Definition: metadata.hpp:113
Definition: stream_cmd.hpp:40
stream_mode_t
Definition: stream_cmd.hpp:41