USRP Hardware Driver and USRP Manual Version: 3.15.0.0-MacPorts-Release
UHD and USRP Manual
metadata.h
Go to the documentation of this file.
1/*
2 * Copyright 2015 Ettus Research
3 * Copyright 2018 Ettus Research, a National Instruments Company
4 *
5 * SPDX-License-Identifier: GPL-3.0-or-later
6 */
7
8#ifndef INCLUDED_UHD_TYPES_METADATA_H
9#define INCLUDED_UHD_TYPES_METADATA_H
10
11#include <uhd/config.h>
12#include <uhd/error.h>
13
14#include <stdbool.h>
15#include <stdint.h>
16#include <stdlib.h>
17#include <time.h>
18
19#ifdef __cplusplus
21#include <string>
22
23struct uhd_rx_metadata_t {
24 uhd::rx_metadata_t rx_metadata_cpp;
25 std::string last_error;
26};
27
28struct uhd_tx_metadata_t {
29 uhd::tx_metadata_t tx_metadata_cpp;
30 std::string last_error;
31};
32
33struct uhd_async_metadata_t {
34 uhd::async_metadata_t async_metadata_cpp;
35 std::string last_error;
36};
37
38extern "C" {
39#else
40struct uhd_rx_metadata_t;
41struct uhd_tx_metadata_t;
42struct uhd_async_metadata_t;
43#endif
44
46
52typedef struct uhd_rx_metadata_t* uhd_rx_metadata_handle;
53
55
61typedef struct uhd_tx_metadata_t* uhd_tx_metadata_handle;
62
64
70typedef struct uhd_async_metadata_t* uhd_async_metadata_handle;
71
73
76typedef enum {
92
93
97);
98
100
105);
106
110 bool *result_out
111);
112
116 int64_t *full_secs_out,
117 double *frac_secs_out
118);
119
123 bool *result_out
124);
125
129 size_t *fragment_offset_out
130);
131
135 bool *result_out
136);
137
141 bool *result_out
142);
143
147 bool *result_out
148);
149
151
161 char* pp_string_out,
162 size_t strbuffer_len
163);
164
168 uhd_rx_metadata_error_code_t *error_code_out
169);
170
172
187 char* strerror_out,
188 size_t strbuffer_len
189);
190
192
207 char* error_out,
208 size_t strbuffer_len
209);
210
214 bool has_time_spec,
215 int64_t full_secs,
216 double frac_secs,
217 bool start_of_burst,
218 bool end_of_burst
219);
220
221
223
228);
229
233 bool *result_out
234);
235
239 int64_t *full_secs_out,
240 double *frac_secs_out
241);
242
246 bool *result_out
247);
248
252 bool *result_out
253);
254
256
266 char* error_out,
267 size_t strbuffer_len
268);
269
271
274typedef enum {
290
294);
295
297
302);
303
307 size_t *channel_out
308);
309
313 bool *result_out
314);
315
319 int64_t *full_secs_out,
320 double *frac_secs_out
321);
322
326 uhd_async_metadata_event_code_t *event_code_out
327);
328
332 uint32_t user_payload_out[4]
333);
334
336
346 char* error_out,
347 size_t strbuffer_len
348);
349
350#ifdef __cplusplus
351}
352#endif
353
354#endif /* INCLUDED_UHD_TYPES_METADATA_H */
#define UHD_API
Definition: config.h:68
uhd_error
UHD error codes.
Definition: error.h:21
UHD_API uhd_error uhd_async_metadata_has_time_spec(uhd_async_metadata_handle h, bool *result_out)
Has time specification?
UHD_API uhd_error uhd_rx_metadata_make(uhd_rx_metadata_handle *handle)
Create a new RX metadata handle.
UHD_API uhd_error uhd_rx_metadata_end_of_burst(uhd_rx_metadata_handle h, bool *result_out)
End of burst?
UHD_API uhd_error uhd_rx_metadata_last_error(uhd_rx_metadata_handle h, char *error_out, size_t strbuffer_len)
Get the last error logged by the RX metadata object.
UHD_API uhd_error uhd_async_metadata_user_payload(uhd_async_metadata_handle h, uint32_t user_payload_out[4])
Get payload from custom FPGA fabric.
UHD_API uhd_error uhd_tx_metadata_has_time_spec(uhd_tx_metadata_handle h, bool *result_out)
Has time specification?
UHD_API uhd_error uhd_rx_metadata_has_time_spec(uhd_rx_metadata_handle h, bool *result_out)
Has time specification?
UHD_API uhd_error uhd_async_metadata_channel(uhd_async_metadata_handle h, size_t *channel_out)
Channel number in a MIMO configuration.
UHD_API uhd_error uhd_async_metadata_free(uhd_async_metadata_handle *handle)
Free an async metadata handle.
struct uhd_rx_metadata_t * uhd_rx_metadata_handle
RX metadata interface for describing sent IF data.
Definition: metadata.h:52
UHD_API uhd_error uhd_async_metadata_last_error(uhd_async_metadata_handle h, char *error_out, size_t strbuffer_len)
Get the last error logged by the async metadata object.
UHD_API uhd_error uhd_rx_metadata_error_code(uhd_rx_metadata_handle h, uhd_rx_metadata_error_code_t *error_code_out)
Get the last error state of the RX metadata object.
uhd_rx_metadata_error_code_t
Error condition on a receive call.
Definition: metadata.h:76
@ UHD_RX_METADATA_ERROR_CODE_TIMEOUT
No packet received, implementation timed out.
Definition: metadata.h:80
@ UHD_RX_METADATA_ERROR_CODE_LATE_COMMAND
A stream command was issued in the past.
Definition: metadata.h:82
@ UHD_RX_METADATA_ERROR_CODE_NONE
No error code associated with this metadata.
Definition: metadata.h:78
@ UHD_RX_METADATA_ERROR_CODE_BAD_PACKET
The packet could not be parsed.
Definition: metadata.h:90
@ UHD_RX_METADATA_ERROR_CODE_OVERFLOW
Overflow or sequence error.
Definition: metadata.h:86
@ UHD_RX_METADATA_ERROR_CODE_BROKEN_CHAIN
Expected another stream command.
Definition: metadata.h:84
@ UHD_RX_METADATA_ERROR_CODE_ALIGNMENT
Multi-channel alignment failed.
Definition: metadata.h:88
UHD_API uhd_error uhd_rx_metadata_fragment_offset(uhd_rx_metadata_handle h, size_t *fragment_offset_out)
Fragmentation offset.
struct uhd_tx_metadata_t * uhd_tx_metadata_handle
TX metadata interface for describing received IF data.
Definition: metadata.h:61
UHD_API uhd_error uhd_tx_metadata_start_of_burst(uhd_tx_metadata_handle h, bool *result_out)
Start of burst?
uhd_async_metadata_event_code_t
The type of event for a receive async message call.
Definition: metadata.h:274
@ UHD_ASYNC_METADATA_EVENT_CODE_UNDERFLOW
An internal send buffer has emptied.
Definition: metadata.h:278
@ UHD_ASYNC_METADATA_EVENT_CODE_SEQ_ERROR_IN_BURST
Packet loss within a burst.
Definition: metadata.h:286
@ UHD_ASYNC_METADATA_EVENT_CODE_USER_PAYLOAD
Some kind of custom user payload.
Definition: metadata.h:288
@ UHD_ASYNC_METADATA_EVENT_CODE_TIME_ERROR
Packet had time that was late.
Definition: metadata.h:282
@ UHD_ASYNC_METADATA_EVENT_CODE_UNDERFLOW_IN_PACKET
Underflow occurred inside a packet.
Definition: metadata.h:284
@ UHD_ASYNC_METADATA_EVENT_CODE_SEQ_ERROR
Packet loss error between host and device.
Definition: metadata.h:280
@ UHD_ASYNC_METADATA_EVENT_CODE_BURST_ACK
A burst was successfully transmitted.
Definition: metadata.h:276
UHD_API uhd_error uhd_rx_metadata_to_pp_string(uhd_rx_metadata_handle h, char *pp_string_out, size_t strbuffer_len)
Return a pretty-print representation of this metadata.
UHD_API uhd_error uhd_rx_metadata_start_of_burst(uhd_rx_metadata_handle h, bool *result_out)
Start of burst?
UHD_API uhd_error uhd_rx_metadata_more_fragments(uhd_rx_metadata_handle h, bool *result_out)
Fragmentation flag.
UHD_API uhd_error uhd_rx_metadata_out_of_sequence(uhd_rx_metadata_handle h, bool *result_out)
Result out of sequence?
UHD_API uhd_error uhd_tx_metadata_end_of_burst(uhd_tx_metadata_handle h, bool *result_out)
End of burst?
UHD_API uhd_error uhd_tx_metadata_time_spec(uhd_tx_metadata_handle h, int64_t *full_secs_out, double *frac_secs_out)
Get time specification.
UHD_API uhd_error uhd_rx_metadata_strerror(uhd_rx_metadata_handle h, char *strerror_out, size_t strbuffer_len)
Get a string representation of the last error state of the RX metadata object.
UHD_API uhd_error uhd_tx_metadata_last_error(uhd_tx_metadata_handle h, char *error_out, size_t strbuffer_len)
Get the last error logged by the TX metadata object.
UHD_API uhd_error uhd_tx_metadata_make(uhd_tx_metadata_handle *handle, bool has_time_spec, int64_t full_secs, double frac_secs, bool start_of_burst, bool end_of_burst)
Create a new TX metadata handle.
struct uhd_async_metadata_t * uhd_async_metadata_handle
Interface for describing transmit-related events.
Definition: metadata.h:70
UHD_API uhd_error uhd_tx_metadata_free(uhd_tx_metadata_handle *handle)
Free an TX metadata handle.
UHD_API uhd_error uhd_async_metadata_make(uhd_async_metadata_handle *handle)
Create a new async metadata handle.
UHD_API uhd_error uhd_async_metadata_time_spec(uhd_async_metadata_handle h, int64_t *full_secs_out, double *frac_secs_out)
Get time specification.
UHD_API uhd_error uhd_rx_metadata_free(uhd_rx_metadata_handle *handle)
Free an RX metadata handle.
UHD_API uhd_error uhd_async_metadata_event_code(uhd_async_metadata_handle h, uhd_async_metadata_event_code_t *event_code_out)
Get last event code.
UHD_API uhd_error uhd_rx_metadata_time_spec(uhd_rx_metadata_handle h, int64_t *full_secs_out, double *frac_secs_out)
Time of first sample.
Definition: metadata.hpp:164
Definition: metadata.hpp:24
Definition: metadata.hpp:136