USRP Hardware Driver and USRP Manual Version: 4.7.0.0-0-unknown
UHD and USRP Manual
 
Loading...
Searching...
No Matches
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>
18#include <uhd/types/usrp_info.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
31typedef struct
32{
33 size_t bitwidth;
37
38/*
39 * Streamers
40 */
41
43
46typedef struct
47{
53 char* args;
55 size_t* channel_list;
59
61
74
76
92
93struct uhd_rx_streamer;
94struct uhd_tx_streamer;
95
97
100typedef struct uhd_rx_streamer* uhd_rx_streamer_handle;
101
103
106typedef struct uhd_tx_streamer* uhd_tx_streamer_handle;
107
108#ifdef __cplusplus
109extern "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 ***************************************************************************/
247struct 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 */
255typedef struct uhd_usrp* uhd_usrp_handle;
256
257/****************************************************************************
258 * USRP Make / Free API calls
259 ***************************************************************************/
260#ifdef __cplusplus
261extern "C" {
262#endif
263
265
269
271
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
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
515
517UHD_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
530UHD_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
544UHD_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
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
703
705UHD_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
718UHD_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
#define UHD_UNUSED(x)
Definition config.h:68
#define UHD_API
Definition config.h:87
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_error
UHD error codes.
Definition error.h:20
struct uhd_mboard_eeprom_t * uhd_mboard_eeprom_handle
A C-level interface for interacting with a USRP motherboard's EEPROM.
Definition mboard_eeprom.h:35
struct uhd_rx_metadata_t * uhd_rx_metadata_handle
RX metadata interface for describing sent IF data.
Definition metadata.h:54
struct uhd_tx_metadata_t * uhd_tx_metadata_handle
TX metadata interface for describing received IF data.
Definition metadata.h:63
struct uhd_async_metadata_t * uhd_async_metadata_handle
Interface for describing transmit-related events.
Definition metadata.h:72
struct uhd_meta_range_t * uhd_meta_range_handle
C-level interface for dealing with a list of ranges.
Definition ranges.h:46
struct uhd_sensor_value_t * uhd_sensor_value_handle
C-level interface for a UHD sensor.
Definition sensors.h:35
uhd_string_vector_t * uhd_string_vector_handle
Definition string_vector.h:33
A struct of parameters to construct a stream.
Definition usrp.h:47
char * otw_format
Over-the-wire format.
Definition usrp.h:51
char * cpu_format
Format of host memory.
Definition usrp.h:49
int n_channels
Number of channels.
Definition usrp.h:57
size_t * channel_list
Array that lists channels.
Definition usrp.h:55
char * args
Other stream args.
Definition usrp.h:53
Define how device streams to host.
Definition usrp.h:80
bool stream_now
Stream now?
Definition usrp.h:86
int64_t time_spec_full_secs
If not now, then full seconds into future to stream.
Definition usrp.h:88
uhd_stream_mode_t stream_mode
How streaming is issued to the device.
Definition usrp.h:82
double time_spec_frac_secs
If not now, then fractional seconds into future to stream.
Definition usrp.h:90
size_t num_samps
Number of samples.
Definition usrp.h:84
Instructs implementation how to tune the RF chain.
Definition tune_request.h:29
Stores RF and DSP tuned frequencies.
Definition tune_result.h:19
Register info.
Definition usrp.h:32
bool writable
Definition usrp.h:35
size_t bitwidth
Definition usrp.h:33
bool readable
Definition usrp.h:34
USRP RX info.
Definition usrp_info.h:18
USRP TX info.
Definition usrp_info.h:42
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_free(uhd_usrp_handle *h)
Safely destroy the USRP object underlying the handle.
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_set_time_next_pps(uhd_usrp_handle h, int64_t full_secs, double frac_secs, size_t mboard)
Set the USRP device's time to the given value upon the next PPS detection.
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.
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_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.
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_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.
UHD_API uhd_error uhd_usrp_get_normalized_rx_gain(uhd_usrp_handle h, size_t chan, double *gain_out)
Get the given channel's normalized RX gain [0.0, 1.0].
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's center TX frequency.
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_usrp_set_rx_agc(uhd_usrp_handle h, bool enable, size_t chan)
Enable or disable the given channel's RX AGC module.
UHD_API uhd_error uhd_usrp_make(uhd_usrp_handle *h, const char *args)
Create a USRP handle.
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_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_set_tx_subdev_spec(uhd_usrp_handle h, uhd_subdev_spec_handle subdev_spec, size_t mboard)
Map the given device's TX frontend to a channel.
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's TX frontend.
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's daughterboard EEPROM.
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_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_rx_streamer_free(uhd_rx_streamer_handle *h)
Free an RX streamer handle.
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_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_get_clock_source(uhd_usrp_handle h, size_t mboard, char *clock_source_out, size_t strbuffer_len)
Get the given device's clock source.
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_rx_rate(uhd_usrp_handle h, double rate, size_t chan)
Set the given RX channel's sample rate (in Sps)
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_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_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.
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_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_gain(uhd_usrp_handle h, size_t chan, const char *gain_name, double *gain_out)
Get the given channel's RX gain.
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_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.
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.
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_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_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.
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's RX frontend.
uhd_stream_mode_t
How streaming is issued to the device.
Definition usrp.h:64
@ UHD_STREAM_MODE_NUM_SAMPS_AND_DONE
Stream some number of samples and finish.
Definition usrp.h:70
@ UHD_STREAM_MODE_START_CONTINUOUS
Stream samples indefinitely.
Definition usrp.h:66
@ UHD_STREAM_MODE_NUM_SAMPS_AND_MORE
Stream some number of samples but expect more.
Definition usrp.h:72
@ UHD_STREAM_MODE_STOP_CONTINUOUS
End continuous streaming.
Definition usrp.h:68
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's RX frontend.
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_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.
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_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's center RX frequency.
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.
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_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.
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_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_get_tx_freq(uhd_usrp_handle h, size_t chan, double *freq_out)
Get the given channel's center TX frequency.
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_rx_streamer_make(uhd_rx_streamer_handle *h)
Create an RX streamer handle.
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_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_tx_streamer_make(uhd_tx_streamer_handle *h)
Create an TX streamer handle.
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_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's TX RF frontend.
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_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_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.
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_get_mboard_eeprom(uhd_usrp_handle h, uhd_mboard_eeprom_handle mb_eeprom, size_t mboard)
Get a handle for the given motherboard's EEPROM.
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_rate(uhd_usrp_handle h, size_t chan, double *rate_out)
Get the given RX channel's sample rate (in Sps)
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_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_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_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's TX frontend.
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_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.
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_tx_streamer_free(uhd_tx_streamer_handle *h)
Free an TX streamer handle.
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_get_normalized_tx_gain(uhd_usrp_handle h, size_t chan, double *gain_out)
Get the given channel's normalized TX gain [0.0, 1.0].
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_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_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_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_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.
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_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_rate(uhd_usrp_handle h, size_t chan, double *rate_out)
Get the given RX channel's sample rate (in Sps)
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_set_time_now(uhd_usrp_handle h, int64_t full_secs, double frac_secs, size_t mboard)
Set the USRP device's time.
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_API uhd_error uhd_usrp_set_clock_source(uhd_usrp_handle h, const char *clock_source, size_t mboard)
Set the given device's clock source.
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_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's last PPS pulse occurred.
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's current internal time.
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_num_channels(uhd_usrp_handle h, size_t *num_channels_out)
Get the number of RX channels for the given handle.
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_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_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_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_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_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_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's EEPROM.
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_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_usrp_find(const char *args, uhd_string_vector_handle *strings_out)
Find all connected USRP devices.
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_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_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_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_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.
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's TX frontend.
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's RX frontend.
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.
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's EEPROM.
UHD_API uhd_error uhd_usrp_get_rx_freq(uhd_usrp_handle h, size_t chan, double *freq_out)
Get the given channel's center RX frequency.
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_tx_rate(uhd_usrp_handle h, double rate, size_t chan)
Set the given RX channel's sample rate (in Sps)
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's RX frontend to a channel.
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_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's RX RF frontend.
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.
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's RX gain.
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_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.
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_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.
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_set_time_source(uhd_usrp_handle h, const char *time_source, size_t mboard)
Set the time source for the given device.
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.