USRP Hardware Driver and USRP Manual  Version: 4.7.0.0
UHD and USRP Manual
usrp.h
Go to the documentation of this file.
1 //
2 // Copyright 2015-2016 Ettus Research LLC
3 // Copyright 2018 Ettus Research, a National Instruments Company
4 //
5 // SPDX-License-Identifier: GPL-3.0-or-later
6 //
7 
8 #pragma once
9 
10 #include <uhd/config.h>
11 #include <uhd/error.h>
12 #include <uhd/types/metadata.h>
13 #include <uhd/types/ranges.h>
14 #include <uhd/types/sensors.h>
16 #include <uhd/types/tune_request.h>
17 #include <uhd/types/tune_result.h>
18 #include <uhd/types/usrp_info.h>
19 #include <uhd/usrp/dboard_eeprom.h>
20 #include <uhd/usrp/mboard_eeprom.h>
21 #include <uhd/usrp/subdev_spec.h>
22 /* version.hpp is safe to include in C: */
23 #include <uhd/version.hpp> /* Provides UHD_VERSION */
24 
25 #include <stdbool.h>
26 #include <stdint.h>
27 #include <stdlib.h>
28 #include <time.h>
29 
31 typedef struct
32 {
33  size_t bitwidth;
34  bool readable;
35  bool writable;
37 
38 /*
39  * Streamers
40  */
41 
43 
46 typedef struct
47 {
49  char* cpu_format;
51  char* otw_format;
53  char* args;
55  size_t* channel_list;
59 
61 
64 typedef enum {
74 
76 
79 typedef struct
80 {
84  size_t num_samps;
86  bool stream_now;
92 
93 struct uhd_rx_streamer;
94 struct uhd_tx_streamer;
95 
97 
100 typedef struct uhd_rx_streamer* uhd_rx_streamer_handle;
101 
103 
106 typedef struct uhd_tx_streamer* uhd_tx_streamer_handle;
107 
108 #ifdef __cplusplus
109 extern "C" {
110 #endif
111 
112 /*
113  * RX Streamer
114  */
115 
117 
122 
124 
129 
132  uhd_rx_streamer_handle h, size_t* num_channels_out);
133 
136  uhd_rx_streamer_handle h, size_t* max_num_samps_out);
137 
139 
151  void** buffs,
152  size_t samps_per_buff,
154  double timeout,
155  bool one_packet,
156  size_t* items_recvd);
157 
159 
163  uhd_rx_streamer_handle h, const uhd_stream_cmd_t* stream_cmd);
164 
166 
175  uhd_rx_streamer_handle h, char* error_out, size_t strbuffer_len);
176 
177 /*
178  * TX Streamer
179  */
180 
182 
187 
189 
194 
197  uhd_tx_streamer_handle h, size_t* num_channels_out);
198 
201  uhd_tx_streamer_handle h, size_t* max_num_samps_out);
202 
204 
215  const void** buffs,
216  size_t samps_per_buff,
218  double timeout,
219  size_t* items_sent);
220 
222 
226  uhd_tx_streamer_handle h, uhd_async_metadata_handle* md, double timeout, bool* valid);
227 
229 
238  uhd_tx_streamer_handle h, char* error_out, size_t strbuffer_len);
239 
240 #ifdef __cplusplus
241 }
242 #endif
243 
244 /****************************************************************************
245  * Public Datatypes for USRP / streamer handling.
246  ***************************************************************************/
247 struct uhd_usrp;
248 
250 /*
251  * See uhd::usrp::multi_usrp for more details.
252  *
253  * NOTE: You must pass this handle into uhd_usrp_make before using it.
254  */
255 typedef struct uhd_usrp* uhd_usrp_handle;
256 
257 /****************************************************************************
258  * USRP Make / Free API calls
259  ***************************************************************************/
260 #ifdef __cplusplus
261 extern "C" {
262 #endif
263 
265 
268 UHD_API uhd_error uhd_usrp_find(const char* args, uhd_string_vector_handle* strings_out);
269 
271 
275 UHD_API uhd_error uhd_usrp_make(uhd_usrp_handle* h, const char* args);
276 
278 
283 
286  uhd_usrp_handle h, char* error_out, size_t strbuffer_len);
287 
291 
295 
296 /****************************************************************************
297  * multi_usrp API calls
298  ***************************************************************************/
299 
301 
305  uhd_usrp_handle h, size_t chan, uhd_usrp_rx_info_t* info_out);
306 
308 
312  uhd_usrp_handle h, size_t chan, uhd_usrp_tx_info_t* info_out);
313 
314 /****************************************************************************
315  * Motherboard methods
316  ***************************************************************************/
317 
319 
323  uhd_usrp_handle h, double rate, size_t mboard);
324 
326 
330  uhd_usrp_handle h, size_t mboard, double* clock_rate_out);
331 
333 
337  uhd_usrp_handle h, char* pp_string_out, size_t strbuffer_len);
338 
340 
344  uhd_usrp_handle h, size_t mboard, char* mboard_name_out, size_t strbuffer_len);
345 
347 
351  uhd_usrp_handle h, size_t mboard, int64_t* full_secs_out, double* frac_secs_out);
352 
354 
358  uhd_usrp_handle h, size_t mboard, int64_t* full_secs_out, double* frac_secs_out);
359 
361 
365  uhd_usrp_handle h, int64_t full_secs, double frac_secs, size_t mboard);
366 
368 
372  uhd_usrp_handle h, int64_t full_secs, double frac_secs, size_t mboard);
373 
375 
379  uhd_usrp_handle h, int64_t full_secs, double frac_secs);
380 
383 
385 
389  uhd_usrp_handle h, int64_t full_secs, double frac_secs, size_t mboard);
390 
393 
395 
399  uhd_usrp_handle h, const char* time_source, size_t mboard);
400 
402 
406  uhd_usrp_handle h, size_t mboard, char* time_source_out, size_t strbuffer_len);
407 
410  uhd_usrp_handle h, size_t mboard, uhd_string_vector_handle* time_sources_out);
411 
413 
417  uhd_usrp_handle h, const char* clock_source, size_t mboard);
418 
420 
424  uhd_usrp_handle h, size_t mboard, char* clock_source_out, size_t strbuffer_len);
425 
428  uhd_usrp_handle h, size_t mboard, uhd_string_vector_handle* clock_sources_out);
429 
431 
435  uhd_usrp_handle h, bool enb, size_t mboard);
436 
438 
442  uhd_usrp_handle h, bool enb, size_t mboard);
443 
445 UHD_API uhd_error uhd_usrp_get_num_mboards(uhd_usrp_handle h, size_t* num_mboards_out);
446 
449  const char* name,
450  size_t mboard,
451  uhd_sensor_value_handle* sensor_value_out);
452 
455  uhd_usrp_handle h, size_t mboard, uhd_string_vector_handle* mboard_sensor_names_out);
456 
458 
462  uhd_usrp_handle h, uint8_t addr, uint32_t data, size_t mboard);
463 
464 /****************************************************************************
465  * EEPROM access methods
466  ***************************************************************************/
467 
470  uhd_usrp_handle h, uhd_mboard_eeprom_handle mb_eeprom, size_t mboard);
471 
474  uhd_usrp_handle h, uhd_mboard_eeprom_handle mb_eeprom, size_t mboard);
475 
478  uhd_dboard_eeprom_handle db_eeprom,
479  const char* unit,
480  const char* slot,
481  size_t mboard);
482 
485  uhd_dboard_eeprom_handle db_eeprom,
486  const char* unit,
487  const char* slot,
488  size_t mboard);
489 
490 /****************************************************************************
491  * RX methods
492  ***************************************************************************/
493 
495 
499  uhd_usrp_handle h, uhd_subdev_spec_handle subdev_spec, size_t mboard);
500 
503  uhd_usrp_handle h, size_t mboard, uhd_subdev_spec_handle subdev_spec_out);
504 
507  uhd_usrp_handle h, size_t* num_channels_out);
508 
511  uhd_usrp_handle h, size_t chan, char* rx_subdev_name_out, size_t strbuffer_len);
512 
514 UHD_API uhd_error uhd_usrp_set_rx_rate(uhd_usrp_handle h, double rate, size_t chan);
515 
517 UHD_API uhd_error uhd_usrp_get_rx_rate(uhd_usrp_handle h, size_t chan, double* rate_out);
518 
521  uhd_usrp_handle h, size_t chan, uhd_meta_range_handle rates_out);
522 
525  uhd_tune_request_t* tune_request,
526  size_t chan,
527  uhd_tune_result_t* tune_result);
528 
530 UHD_API uhd_error uhd_usrp_get_rx_freq(uhd_usrp_handle h, size_t chan, double* freq_out);
531 
533 
537  uhd_usrp_handle h, size_t chan, uhd_meta_range_handle freq_range_out);
538 
541  uhd_usrp_handle h, size_t chan, uhd_meta_range_handle freq_range_out);
542 
544 UHD_UNUSED(static const char* UHD_USRP_ALL_LOS) = "all";
545 
547 /*
548  * See uhd::usrp::multi_usrp::get_rx_lo_names() for more details.
549  */
551  uhd_usrp_handle h, size_t chan, uhd_string_vector_handle* rx_lo_names_out);
552 
554 /*
555  * See uhd::usrp::multi_usrp::set_rx_lo_source() for more details.
556  */
558  uhd_usrp_handle h, const char* src, const char* name, size_t chan);
559 
562  const char* name,
563  size_t chan,
564  char* rx_lo_source_out,
565  size_t strbuffer_len);
566 
569  const char* name,
570  size_t chan,
571  uhd_string_vector_handle* rx_lo_sources_out);
572 
574 /*
575  * See uhd::usrp::multi_usrp::set_rx_lo_enabled() for more details.
576  */
578  uhd_usrp_handle h, bool enabled, const char* name, size_t chan);
579 
582  uhd_usrp_handle h, const char* name, size_t chan, bool* result_out);
583 
586  double freq,
587  const char* name,
588  size_t chan,
589  double* coerced_freq_out);
590 
593  uhd_usrp_handle h, const char* name, size_t chan, double* rx_lo_freq_out);
594 
597  uhd_usrp_handle h, double gain, size_t chan, const char* gain_name);
598 
600 
604  uhd_usrp_handle h, double gain, size_t chan);
605 
607 
610 UHD_API uhd_error uhd_usrp_set_rx_agc(uhd_usrp_handle h, bool enable, size_t chan);
611 
614  uhd_usrp_handle h, size_t chan, const char* gain_name, double* gain_out);
615 
617 
621  uhd_usrp_handle h, size_t chan, double* gain_out);
622 
625  const char* name,
626  size_t chan,
627  uhd_meta_range_handle gain_range_out);
628 
631  uhd_usrp_handle h, size_t chan, uhd_string_vector_handle* gain_names_out);
632 
635  uhd_usrp_handle h, const char* ant, size_t chan);
636 
639  uhd_usrp_handle h, size_t chan, char* ant_out, size_t strbuffer_len);
640 
643  uhd_usrp_handle h, size_t chan, uhd_string_vector_handle* antennas_out);
644 
647  uhd_usrp_handle h, size_t chan, uhd_string_vector_handle* sensor_names_out);
648 
651  uhd_usrp_handle h, double bandwidth, size_t chan);
652 
655  uhd_usrp_handle h, size_t chan, double* bandwidth_out);
656 
659  uhd_usrp_handle h, size_t chan, uhd_meta_range_handle bandwidth_range_out);
660 
663  const char* name,
664  size_t chan,
665  uhd_sensor_value_handle* sensor_value_out);
666 
668 
672  uhd_usrp_handle h, bool enb, size_t chan);
673 
676  uhd_usrp_handle h, bool enb, size_t chan);
677 
678 /****************************************************************************
679  * TX methods
680  ***************************************************************************/
681 
683 
687  uhd_usrp_handle h, uhd_subdev_spec_handle subdev_spec, size_t mboard);
688 
691  uhd_usrp_handle h, size_t mboard, uhd_subdev_spec_handle subdev_spec_out);
692 
695  uhd_usrp_handle h, size_t* num_channels_out);
696 
699  uhd_usrp_handle h, size_t chan, char* tx_subdev_name_out, size_t strbuffer_len);
700 
702 UHD_API uhd_error uhd_usrp_set_tx_rate(uhd_usrp_handle h, double rate, size_t chan);
703 
705 UHD_API uhd_error uhd_usrp_get_tx_rate(uhd_usrp_handle h, size_t chan, double* rate_out);
706 
709  uhd_usrp_handle h, size_t chan, uhd_meta_range_handle rates_out);
710 
713  uhd_tune_request_t* tune_request,
714  size_t chan,
715  uhd_tune_result_t* tune_result);
716 
718 UHD_API uhd_error uhd_usrp_get_tx_freq(uhd_usrp_handle h, size_t chan, double* freq_out);
719 
721 
725  uhd_usrp_handle h, size_t chan, uhd_meta_range_handle freq_range_out);
726 
729  uhd_usrp_handle h, size_t chan, uhd_meta_range_handle freq_range_out);
730 
732 /*
733  * See uhd::usrp::multi_usrp::get_tx_lo_names() for more details.
734  */
736  uhd_usrp_handle h, size_t chan, uhd_string_vector_handle* tx_lo_names_out);
737 
739 /*
740  * See uhd::usrp::multi_usrp::set_tx_lo_source() for more details.
741  */
743  uhd_usrp_handle h, const char* src, const char* name, size_t chan);
744 
747  const char* name,
748  size_t chan,
749  char* tx_lo_source_out,
750  size_t strbuffer_len);
751 
754  const char* name,
755  size_t chan,
756  uhd_string_vector_handle* tx_lo_sources_out);
757 
759 /*
760  * See uhd::usrp::multi_usrp::set_tx_lo_enabled() for more details.
761  */
763  uhd_usrp_handle h, bool enabled, const char* name, size_t chan);
764 
767  uhd_usrp_handle h, const char* name, size_t chan, bool* result_out);
768 
771  double freq,
772  const char* name,
773  size_t chan,
774  double* coerced_freq_out);
775 
778  uhd_usrp_handle h, const char* name, size_t chan, double* tx_lo_freq_out);
779 
782  uhd_usrp_handle h, double gain, size_t chan, const char* gain_name);
783 
785 
789  uhd_usrp_handle h, double gain, size_t chan);
790 
793  const char* name,
794  size_t chan,
795  uhd_meta_range_handle gain_range_out);
796 
799  uhd_usrp_handle h, size_t chan, const char* gain_name, double* gain_out);
800 
802 
806  uhd_usrp_handle h, size_t chan, double* gain_out);
807 
810  uhd_usrp_handle h, size_t chan, uhd_string_vector_handle* gain_names_out);
811 
814  uhd_usrp_handle h, const char* ant, size_t chan);
815 
818  uhd_usrp_handle h, size_t chan, char* ant_out, size_t strbuffer_len);
819 
822  uhd_usrp_handle h, size_t chan, uhd_string_vector_handle* antennas_out);
823 
826  uhd_usrp_handle h, double bandwidth, size_t chan);
827 
830  uhd_usrp_handle h, size_t chan, double* bandwidth_out);
831 
834  uhd_usrp_handle h, size_t chan, uhd_meta_range_handle bandwidth_range_out);
835 
838  const char* name,
839  size_t chan,
840  uhd_sensor_value_handle* sensor_value_out);
841 
844  uhd_usrp_handle h, size_t chan, uhd_string_vector_handle* sensor_names_out);
845 
846 /****************************************************************************
847  * GPIO methods
848  ***************************************************************************/
849 
852  uhd_usrp_handle h, size_t mboard, uhd_string_vector_handle* gpio_banks_out);
853 
855 
859  const char* bank,
860  const char* attr,
861  uint32_t value,
862  uint32_t mask,
863  size_t mboard);
864 
866 
870  const char* bank,
871  const char* attr,
872  size_t mboard,
873  uint32_t* attr_out);
874 
875 #ifdef __cplusplus
876 }
877 #endif
Stream samples indefinitely.
Definition: usrp.h:66
UHD_API uhd_error uhd_usrp_set_tx_freq(uhd_usrp_handle h, uhd_tune_request_t *tune_request, size_t chan, uhd_tune_result_t *tune_result)
Set the given channel&#39;s center TX frequency.
UHD_API uhd_error uhd_usrp_set_clock_source(uhd_usrp_handle h, const char *clock_source, size_t mboard)
Set the given device&#39;s clock source.
UHD_API uhd_error uhd_usrp_set_tx_antenna(uhd_usrp_handle h, const char *ant, size_t chan)
Set the TX antenna for the given channel.
UHD_API uhd_error uhd_usrp_set_time_next_pps(uhd_usrp_handle h, int64_t full_secs, double frac_secs, size_t mboard)
Set the USRP device&#39;s time to the given value upon the next PPS detection.
UHD_API uhd_error uhd_usrp_get_time_source(uhd_usrp_handle h, size_t mboard, char *time_source_out, size_t strbuffer_len)
Get the time source for the given device.
bool stream_now
Stream now?
Definition: usrp.h:86
UHD_API uhd_error uhd_usrp_set_rx_agc(uhd_usrp_handle h, bool enable, size_t chan)
Enable or disable the given channel&#39;s RX AGC module.
struct uhd_rx_metadata_t * uhd_rx_metadata_handle
RX metadata interface for describing sent IF data.
Definition: metadata.h:54
UHD_API uhd_error uhd_usrp_get_tx_lo_freq(uhd_usrp_handle h, const char *name, size_t chan, double *tx_lo_freq_out)
Get the current Tx LO frequency.
UHD_API uhd_error uhd_usrp_set_gpio_attr(uhd_usrp_handle h, const char *bank, const char *attr, uint32_t value, uint32_t mask, size_t mboard)
Set a GPIO attribute for a given GPIO bank.
UHD_API uhd_error uhd_usrp_set_rx_lo_freq(uhd_usrp_handle h, double freq, const char *name, size_t chan, double *coerced_freq_out)
Set the RX LO frequency.
UHD_API uhd_error uhd_usrp_set_tx_rate(uhd_usrp_handle h, double rate, size_t chan)
Set the given RX channel&#39;s sample rate (in Sps)
UHD_API uhd_error uhd_usrp_get_rx_antenna(uhd_usrp_handle h, size_t chan, char *ant_out, size_t strbuffer_len)
Get the RX antenna for the given channel.
UHD_API uhd_error uhd_usrp_get_rx_antennas(uhd_usrp_handle h, size_t chan, uhd_string_vector_handle *antennas_out)
Get a list of RX antennas associated with the given channels.
A struct of parameters to construct a stream.
Definition: usrp.h:46
UHD_API uhd_error uhd_usrp_get_tx_sensor_names(uhd_usrp_handle h, size_t chan, uhd_string_vector_handle *sensor_names_out)
Get a list of TX sensors associated with the given channels.
UHD_API uhd_error uhd_usrp_get_rx_stream(uhd_usrp_handle h, uhd_stream_args_t *stream_args, uhd_rx_streamer_handle h_out)
Create RX streamer from a USRP handle and given stream args.
bool readable
Definition: usrp.h:34
UHD_API uhd_error uhd_usrp_get_tx_gain_range(uhd_usrp_handle h, const char *name, size_t chan, uhd_meta_range_handle gain_range_out)
Get all possible gain ranges for the given channel and name.
UHD_API uhd_error uhd_usrp_get_rx_lo_export_enabled(uhd_usrp_handle h, const char *name, size_t chan, bool *result_out)
Returns true if the currently selected LO is being exported.
uhd_stream_mode_t stream_mode
How streaming is issued to the device.
Definition: usrp.h:82
UHD_API uhd_error uhd_usrp_set_time_source(uhd_usrp_handle h, const char *time_source, size_t mboard)
Set the time source for the given device.
struct uhd_meta_range_t * uhd_meta_range_handle
C-level interface for dealing with a list of ranges.
Definition: ranges.h:46
UHD_API uhd_error uhd_usrp_get_tx_antenna(uhd_usrp_handle h, size_t chan, char *ant_out, size_t strbuffer_len)
Get the TX antenna for the given channel.
UHD_API uhd_error uhd_usrp_get_gpio_attr(uhd_usrp_handle h, const char *bank, const char *attr, size_t mboard, uint32_t *attr_out)
Get a GPIO attribute on a particular GPIO bank.
UHD_API uhd_error uhd_usrp_set_command_time(uhd_usrp_handle h, int64_t full_secs, double frac_secs, size_t mboard)
Set the time at which timed commands will take place.
UHD_API uhd_error uhd_usrp_get_tx_subdev_name(uhd_usrp_handle h, size_t chan, char *tx_subdev_name_out, size_t strbuffer_len)
Get the name for the RX frontend.
UHD_API uhd_error uhd_usrp_set_mboard_eeprom(uhd_usrp_handle h, uhd_mboard_eeprom_handle mb_eeprom, size_t mboard)
Set values in the given motherboard&#39;s EEPROM.
UHD_API uhd_error uhd_usrp_set_user_register(uhd_usrp_handle h, uint8_t addr, uint32_t data, size_t mboard)
Perform a write on a user configuration register bus.
UHD_API uhd_error uhd_usrp_get_tx_lo_names(uhd_usrp_handle h, size_t chan, uhd_string_vector_handle *tx_lo_names_out)
Get a list of possible LO stage names.
double time_spec_frac_secs
If not now, then fractional seconds into future to stream.
Definition: usrp.h:90
bool writable
Definition: usrp.h:35
struct uhd_tx_metadata_t * uhd_tx_metadata_handle
TX metadata interface for describing received IF data.
Definition: metadata.h:63
struct uhd_usrp * uhd_usrp_handle
C-level interface for working with a USRP device.
Definition: usrp.h:255
UHD_API uhd_error uhd_usrp_set_normalized_rx_gain(uhd_usrp_handle h, double gain, size_t chan)
Set the normalized RX gain [0.0, 1.0] for the given channel.
UHD_API uhd_error uhd_tx_streamer_last_error(uhd_tx_streamer_handle h, char *error_out, size_t strbuffer_len)
Get the last error reported by the TX streamer.
UHD_API uhd_error uhd_usrp_get_num_mboards(uhd_usrp_handle h, size_t *num_mboards_out)
Get the number of devices associated with the given USRP handle.
UHD_API uhd_error uhd_usrp_set_time_now(uhd_usrp_handle h, int64_t full_secs, double frac_secs, size_t mboard)
Set the USRP device&#39;s time.
UHD_API uhd_error uhd_usrp_get_mboard_sensor(uhd_usrp_handle h, const char *name, size_t mboard, uhd_sensor_value_handle *sensor_value_out)
Get the value associated with the given sensor name.
UHD_API uhd_error uhd_usrp_get_time_synchronized(uhd_usrp_handle h, bool *result_out)
Are all motherboard times synchronized?
UHD_API uhd_error uhd_usrp_get_tx_antennas(uhd_usrp_handle h, size_t chan, uhd_string_vector_handle *antennas_out)
Get a list of tx antennas associated with the given channels.
UHD_API uhd_error uhd_tx_streamer_num_channels(uhd_tx_streamer_handle h, size_t *num_channels_out)
Get the number of channels associated with this streamer.
UHD_API uhd_error uhd_rx_streamer_make(uhd_rx_streamer_handle *h)
Create an RX streamer handle.
struct uhd_mboard_eeprom_t * uhd_mboard_eeprom_handle
A C-level interface for interacting with a USRP motherboard&#39;s EEPROM.
Definition: mboard_eeprom.h:35
UHD_API uhd_error uhd_usrp_make(uhd_usrp_handle *h, const char *args)
Create a USRP handle.
Stores RF and DSP tuned frequencies.
Definition: tune_result.h:18
UHD_UNUSED(static const char *UHD_USRP_ALL_LOS)
A wildcard for all LO names.
End continuous streaming.
Definition: usrp.h:68
UHD_API uhd_error uhd_usrp_set_rx_lo_source(uhd_usrp_handle h, const char *src, const char *name, size_t chan)
Set the LO source for the USRP device.
size_t bitwidth
Definition: usrp.h:33
char * cpu_format
Format of host memory.
Definition: usrp.h:49
UHD_API uhd_error uhd_usrp_set_normalized_tx_gain(uhd_usrp_handle h, double gain, size_t chan)
Set the normalized TX gain [0.0, 1.0] for the given channel.
Register info.
Definition: usrp.h:31
char * args
Other stream args.
Definition: usrp.h:53
UHD_API uhd_error uhd_usrp_get_rx_sensor(uhd_usrp_handle h, const char *name, size_t chan, uhd_sensor_value_handle *sensor_value_out)
Get the value for the given RX sensor.
UHD_API uhd_error uhd_usrp_get_rx_lo_sources(uhd_usrp_handle h, const char *name, size_t chan, uhd_string_vector_handle *rx_lo_sources_out)
Get a list of possible LO sources.
UHD_API uhd_error uhd_rx_streamer_recv(uhd_rx_streamer_handle h, void **buffs, size_t samps_per_buff, uhd_rx_metadata_handle *md, double timeout, bool one_packet, size_t *items_recvd)
Receive buffers containing samples into the given RX streamer.
UHD_API uhd_error uhd_usrp_get_tx_bandwidth(uhd_usrp_handle h, size_t chan, double *bandwidth_out)
Get the bandwidth for the given channel&#39;s TX frontend.
UHD_API uhd_error uhd_usrp_get_rx_bandwidth(uhd_usrp_handle h, size_t chan, double *bandwidth_out)
Get the bandwidth for the given channel&#39;s RX frontend.
UHD_API uhd_error uhd_usrp_set_tx_lo_source(uhd_usrp_handle h, const char *src, const char *name, size_t chan)
Set the LO source for the USRP device.
UHD_API uhd_error uhd_usrp_get_tx_num_channels(uhd_usrp_handle h, size_t *num_channels_out)
Get the number of TX channels for the given handle.
UHD_API uhd_error uhd_usrp_get_tx_bandwidth_range(uhd_usrp_handle h, size_t chan, uhd_meta_range_handle bandwidth_range_out)
Get all possible bandwidth ranges for the given channel&#39;s TX frontend.
UHD_API uhd_error uhd_usrp_set_rx_dc_offset_enabled(uhd_usrp_handle h, bool enb, size_t chan)
Enable or disable RX DC offset correction for the given channel.
UHD_API uhd_error uhd_usrp_get_tx_sensor(uhd_usrp_handle h, const char *name, size_t chan, uhd_sensor_value_handle *sensor_value_out)
Get the value for the given TX sensor.
UHD_API uhd_error uhd_usrp_get_rx_freq_range(uhd_usrp_handle h, size_t chan, uhd_meta_range_handle freq_range_out)
Get all possible center frequency ranges for the given channel.
Stream some number of samples and finish.
Definition: usrp.h:70
UHD_API uhd_error uhd_usrp_get_tx_gain(uhd_usrp_handle h, size_t chan, const char *gain_name, double *gain_out)
Get the given channel&#39;s RX gain.
UHD_API uhd_error uhd_usrp_get_fe_rx_freq_range(uhd_usrp_handle h, size_t chan, uhd_meta_range_handle freq_range_out)
Get all possible RF frequency ranges for the given channel&#39;s RX RF frontend.
UHD_API uhd_error uhd_usrp_get_gpio_banks(uhd_usrp_handle h, size_t mboard, uhd_string_vector_handle *gpio_banks_out)
Get a list of GPIO banks associated with the given channels.
UHD_API uhd_error uhd_usrp_set_tx_gain(uhd_usrp_handle h, double gain, size_t chan, const char *gain_name)
Set the TX gain for the given channel and name.
UHD_API uhd_error uhd_usrp_get_pp_string(uhd_usrp_handle h, char *pp_string_out, size_t strbuffer_len)
Get a pretty-print representation of the USRP device.
UHD_API uhd_error uhd_usrp_set_rx_lo_export_enabled(uhd_usrp_handle h, bool enabled, const char *name, size_t chan)
Set whether the LO used by the USRP device is exported.
UHD_API uhd_error uhd_usrp_get_tx_stream(uhd_usrp_handle h, uhd_stream_args_t *stream_args, uhd_tx_streamer_handle h_out)
Create TX streamer from a USRP handle and given stream args.
UHD_API uhd_error uhd_tx_streamer_make(uhd_tx_streamer_handle *h)
Create an TX streamer handle.
UHD_API uhd_error uhd_usrp_get_rx_sensor_names(uhd_usrp_handle h, size_t chan, uhd_string_vector_handle *sensor_names_out)
Get a list of RX sensors associated with the given channels.
UHD_API uhd_error uhd_usrp_get_rx_freq(uhd_usrp_handle h, size_t chan, double *freq_out)
Get the given channel&#39;s center RX frequency.
UHD_API uhd_error uhd_rx_streamer_max_num_samps(uhd_rx_streamer_handle h, size_t *max_num_samps_out)
Get the max number of samples per buffer per packet.
struct uhd_async_metadata_t * uhd_async_metadata_handle
Interface for describing transmit-related events.
Definition: metadata.h:72
UHD_API uhd_error uhd_usrp_get_tx_freq(uhd_usrp_handle h, size_t chan, double *freq_out)
Get the given channel&#39;s center TX frequency.
UHD_API uhd_error uhd_usrp_get_rx_num_channels(uhd_usrp_handle h, size_t *num_channels_out)
Get the number of RX channels for the given handle.
uhd_error
UHD error codes.
Definition: error.h:20
UHD_API uhd_error uhd_usrp_clear_command_time(uhd_usrp_handle h, size_t mboard)
Clear the command time so that commands are sent ASAP.
UHD_API uhd_error uhd_usrp_get_rx_gain_names(uhd_usrp_handle h, size_t chan, uhd_string_vector_handle *gain_names_out)
Get a list of RX gain names for the given channel.
USRP RX info.
Definition: usrp_info.h:17
struct uhd_dboard_eeprom_t * uhd_dboard_eeprom_handle
A C-level interface for interacting with a daughterboard EEPROM.
Definition: dboard_eeprom.h:35
UHD_API uhd_error uhd_usrp_get_time_last_pps(uhd_usrp_handle h, size_t mboard, int64_t *full_secs_out, double *frac_secs_out)
Get the time when this device&#39;s last PPS pulse occurred.
Define how device streams to host.
Definition: usrp.h:79
UHD_API uhd_error uhd_usrp_get_dboard_eeprom(uhd_usrp_handle h, uhd_dboard_eeprom_handle db_eeprom, const char *unit, const char *slot, size_t mboard)
Get a handle for the given device&#39;s daughterboard EEPROM.
UHD_API uhd_error uhd_usrp_get_tx_lo_sources(uhd_usrp_handle h, const char *name, size_t chan, uhd_string_vector_handle *tx_lo_sources_out)
Get a list of possible LO sources.
UHD_API uhd_error uhd_usrp_get_time_sources(uhd_usrp_handle h, size_t mboard, uhd_string_vector_handle *time_sources_out)
Get a list of time sources for the given device.
UHD_API uhd_error uhd_usrp_set_tx_subdev_spec(uhd_usrp_handle h, uhd_subdev_spec_handle subdev_spec, size_t mboard)
Map the given device&#39;s TX frontend to a channel.
UHD_API uhd_error uhd_usrp_get_rx_info(uhd_usrp_handle h, size_t chan, uhd_usrp_rx_info_t *info_out)
Get RX info from the USRP device.
UHD_API uhd_error uhd_usrp_get_tx_subdev_spec(uhd_usrp_handle h, size_t mboard, uhd_subdev_spec_handle subdev_spec_out)
Get the TX frontend specification for the given device.
UHD_API uhd_error uhd_usrp_get_tx_rate(uhd_usrp_handle h, size_t chan, double *rate_out)
Get the given RX channel&#39;s sample rate (in Sps)
UHD_API uhd_error uhd_usrp_set_tx_bandwidth(uhd_usrp_handle h, double bandwidth, size_t chan)
Set the bandwidth for the given channel&#39;s TX frontend.
UHD_API uhd_error uhd_usrp_set_rx_iq_balance_enabled(uhd_usrp_handle h, bool enb, size_t chan)
Enable or disable RX IQ imbalance correction for the given channel.
UHD_API uhd_error uhd_tx_streamer_free(uhd_tx_streamer_handle *h)
Free an TX streamer handle.
UHD_API uhd_error uhd_rx_streamer_issue_stream_cmd(uhd_rx_streamer_handle h, const uhd_stream_cmd_t *stream_cmd)
Issue the given stream command.
UHD_API uhd_error uhd_usrp_set_rx_gain(uhd_usrp_handle h, double gain, size_t chan, const char *gain_name)
Set the RX gain for the given channel and name.
UHD_API uhd_error uhd_usrp_free(uhd_usrp_handle *h)
Safely destroy the USRP object underlying the handle.
UHD_API uhd_error uhd_usrp_get_fe_tx_freq_range(uhd_usrp_handle h, size_t chan, uhd_meta_range_handle freq_range_out)
Get all possible RF frequency ranges for the given channel&#39;s TX RF frontend.
UHD_API uhd_error uhd_usrp_set_master_clock_rate(uhd_usrp_handle h, double rate, size_t mboard)
Set the master clock rate.
UHD_API uhd_error uhd_usrp_set_tx_lo_export_enabled(uhd_usrp_handle h, bool enabled, const char *name, size_t chan)
Set whether the LO used by the USRP device is exported.
UHD_API uhd_error uhd_usrp_get_rx_subdev_name(uhd_usrp_handle h, size_t chan, char *rx_subdev_name_out, size_t strbuffer_len)
Get the name for the RX frontend.
UHD_API uhd_error uhd_usrp_get_tx_info(uhd_usrp_handle h, size_t chan, uhd_usrp_tx_info_t *info_out)
Get TX info from the USRP device.
uhd_stream_mode_t
How streaming is issued to the device.
Definition: usrp.h:64
UHD_API uhd_error uhd_usrp_get_rx_lo_freq(uhd_usrp_handle h, const char *name, size_t chan, double *rx_lo_freq_out)
Get the current RX LO frequency.
UHD_API uhd_error uhd_rx_streamer_last_error(uhd_rx_streamer_handle h, char *error_out, size_t strbuffer_len)
Get the last error reported by the RX streamer.
int64_t time_spec_full_secs
If not now, then full seconds into future to stream.
Definition: usrp.h:88
struct uhd_rx_streamer * uhd_rx_streamer_handle
C-level interface for working with an RX streamer.
Definition: usrp.h:100
UHD_API uhd_error uhd_usrp_set_time_source_out(uhd_usrp_handle h, bool enb, size_t mboard)
Enable or disable sending the time source to an output connector.
UHD_API uhd_error uhd_usrp_get_tx_freq_range(uhd_usrp_handle h, size_t chan, uhd_meta_range_handle freq_range_out)
Get all possible center frequency ranges for the given channel.
UHD_API uhd_error uhd_usrp_set_rx_subdev_spec(uhd_usrp_handle h, uhd_subdev_spec_handle subdev_spec, size_t mboard)
Map the given device&#39;s RX frontend to a channel.
UHD_API uhd_error uhd_usrp_last_error(uhd_usrp_handle h, char *error_out, size_t strbuffer_len)
Get the last error reported by the USRP handle.
UHD_API uhd_error uhd_usrp_get_rx_lo_source(uhd_usrp_handle h, const char *name, size_t chan, char *rx_lo_source_out, size_t strbuffer_len)
Get the currently set LO source.
UHD_API uhd_error uhd_usrp_get_rx_rates(uhd_usrp_handle h, size_t chan, uhd_meta_range_handle rates_out)
Get a range of possible RX rates for the given channel.
uhd_string_vector_t * uhd_string_vector_handle
Definition: string_vector.h:33
USRP TX info.
Definition: usrp_info.h:41
UHD_API uhd_error uhd_usrp_set_time_unknown_pps(uhd_usrp_handle h, int64_t full_secs, double frac_secs)
Synchronize the time across all motherboards.
#define UHD_API
Definition: config.h:87
UHD_INLINE data_t mask(const soft_reg_field_t field)
Definition: soft_register.hpp:86
UHD_API uhd_error uhd_usrp_get_rx_gain_range(uhd_usrp_handle h, const char *name, size_t chan, uhd_meta_range_handle gain_range_out)
Get all possible gain ranges for the given channel and name.
Instructs implementation how to tune the RF chain.
Definition: tune_request.h:28
UHD_API uhd_error uhd_tx_streamer_max_num_samps(uhd_tx_streamer_handle h, size_t *max_num_samps_out)
Get the max number of samples per buffer per packet.
UHD_API uhd_error uhd_usrp_get_rx_gain(uhd_usrp_handle h, size_t chan, const char *gain_name, double *gain_out)
Get the given channel&#39;s RX gain.
UHD_API uhd_error uhd_usrp_get_tx_lo_source(uhd_usrp_handle h, const char *name, size_t chan, char *tx_lo_source_out, size_t strbuffer_len)
Get the currently set LO source.
Stream some number of samples but expect more.
Definition: usrp.h:72
UHD_API uhd_error uhd_usrp_set_tx_lo_freq(uhd_usrp_handle h, double freq, const char *name, size_t chan, double *coerced_freq_out)
Set the Tx LO frequency.
struct uhd_sensor_value_t * uhd_sensor_value_handle
C-level interface for a UHD sensor.
Definition: sensors.h:35
UHD_API uhd_error uhd_usrp_set_rx_rate(uhd_usrp_handle h, double rate, size_t chan)
Set the given RX channel&#39;s sample rate (in Sps)
size_t * channel_list
Array that lists channels.
Definition: usrp.h:55
UHD_API uhd_error uhd_usrp_get_tx_lo_export_enabled(uhd_usrp_handle h, const char *name, size_t chan, bool *result_out)
Returns true if the currently selected LO is being exported.
UHD_API uhd_error uhd_usrp_get_mboard_sensor_names(uhd_usrp_handle h, size_t mboard, uhd_string_vector_handle *mboard_sensor_names_out)
Get a list of motherboard sensors for the given device.
UHD_API uhd_error uhd_tx_streamer_send(uhd_tx_streamer_handle h, const void **buffs, size_t samps_per_buff, uhd_tx_metadata_handle *md, double timeout, size_t *items_sent)
Send buffers containing samples described by the metadata.
int n_channels
Number of channels.
Definition: usrp.h:57
UHD_API uhd_error uhd_usrp_get_tx_rates(uhd_usrp_handle h, size_t chan, uhd_meta_range_handle rates_out)
Get a range of possible RX rates for the given channel.
UHD_API uhd_error uhd_usrp_set_clock_source_out(uhd_usrp_handle h, bool enb, size_t mboard)
Enable or disable sending the clock source to an output connector.
UHD_API uhd_error uhd_usrp_get_tx_gain_names(uhd_usrp_handle h, size_t chan, uhd_string_vector_handle *gain_names_out)
Get a list of TX gain names for the given channel.
UHD_API uhd_error uhd_tx_streamer_recv_async_msg(uhd_tx_streamer_handle h, uhd_async_metadata_handle *md, double timeout, bool *valid)
Receive an asynchronous message from this streamer.
UHD_API uhd_error uhd_usrp_get_mboard_name(uhd_usrp_handle h, size_t mboard, char *mboard_name_out, size_t strbuffer_len)
Get the motherboard name for the given device.
UHD_API uhd_error uhd_usrp_set_rx_antenna(uhd_usrp_handle h, const char *ant, size_t chan)
Set the RX antenna for the given channel.
UHD_API uhd_error uhd_rx_streamer_num_channels(uhd_rx_streamer_handle h, size_t *num_channels_out)
Get the number of channels associated with this streamer.
struct uhd_subdev_spec_t * uhd_subdev_spec_handle
A C-level interface for working with a list of subdevice specifications.
Definition: subdev_spec.h:46
UHD_API uhd_error uhd_usrp_get_rx_lo_names(uhd_usrp_handle h, size_t chan, uhd_string_vector_handle *rx_lo_names_out)
Get a list of possible LO stage names.
UHD_API uhd_error uhd_usrp_set_rx_freq(uhd_usrp_handle h, uhd_tune_request_t *tune_request, size_t chan, uhd_tune_result_t *tune_result)
Set the given channel&#39;s center RX frequency.
UHD_API uhd_error uhd_usrp_get_normalized_rx_gain(uhd_usrp_handle h, size_t chan, double *gain_out)
Get the given channel&#39;s normalized RX gain [0.0, 1.0].
size_t num_samps
Number of samples.
Definition: usrp.h:84
UHD_API uhd_error uhd_usrp_get_rx_subdev_spec(uhd_usrp_handle h, size_t mboard, uhd_subdev_spec_handle subdev_spec_out)
Get the RX frontend specification for the given device.
UHD_API uhd_error uhd_usrp_get_clock_sources(uhd_usrp_handle h, size_t mboard, uhd_string_vector_handle *clock_sources_out)
Get a list of clock sources for the given device.
UHD_API uhd_error uhd_usrp_get_normalized_tx_gain(uhd_usrp_handle h, size_t chan, double *gain_out)
Get the given channel&#39;s normalized TX gain [0.0, 1.0].
UHD_API uhd_error uhd_usrp_set_rx_bandwidth(uhd_usrp_handle h, double bandwidth, size_t chan)
Set the bandwidth for the given channel&#39;s RX frontend.
struct uhd_tx_streamer * uhd_tx_streamer_handle
C-level interface for working with a TX streamer.
Definition: usrp.h:106
UHD_API uhd_error uhd_usrp_get_rx_rate(uhd_usrp_handle h, size_t chan, double *rate_out)
Get the given RX channel&#39;s sample rate (in Sps)
UHD_API uhd_error uhd_usrp_get_time_now(uhd_usrp_handle h, size_t mboard, int64_t *full_secs_out, double *frac_secs_out)
Get the USRP device&#39;s current internal time.
UHD_API uhd_error uhd_usrp_get_clock_source(uhd_usrp_handle h, size_t mboard, char *clock_source_out, size_t strbuffer_len)
Get the given device&#39;s clock source.
UHD_API uhd_error uhd_usrp_get_rx_bandwidth_range(uhd_usrp_handle h, size_t chan, uhd_meta_range_handle bandwidth_range_out)
Get all possible bandwidth ranges for the given channel&#39;s RX frontend.
UHD_API uhd_error uhd_usrp_find(const char *args, uhd_string_vector_handle *strings_out)
Find all connected USRP devices.
UHD_API uhd_error uhd_usrp_get_mboard_eeprom(uhd_usrp_handle h, uhd_mboard_eeprom_handle mb_eeprom, size_t mboard)
Get a handle for the given motherboard&#39;s EEPROM.
UHD_API uhd_error uhd_usrp_get_master_clock_rate(uhd_usrp_handle h, size_t mboard, double *clock_rate_out)
Get the master clock rate.
UHD_API uhd_error uhd_usrp_set_dboard_eeprom(uhd_usrp_handle h, uhd_dboard_eeprom_handle db_eeprom, const char *unit, const char *slot, size_t mboard)
Set values in the given daughterboard&#39;s EEPROM.
char * otw_format
Over-the-wire format.
Definition: usrp.h:51
UHD_API uhd_error uhd_rx_streamer_free(uhd_rx_streamer_handle *h)
Free an RX streamer handle.