USRP Hardware Driver and USRP Manual  Version: 003.009.001-0-gf7a15853
UHD and USRP Manual
usrp.h
Go to the documentation of this file.
1 //
2 // Copyright 2015 Ettus Research LLC
3 //
4 // This program is free software: you can redistribute it and/or modify
5 // it under the terms of the GNU General Public License as published by
6 // the Free Software Foundation, either version 3 of the License, or
7 // (at your option) any later version.
8 //
9 // This program is distributed in the hope that it will be useful,
10 // but WITHOUT ANY WARRANTY; without even the implied warranty of
11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 // GNU General Public License for more details.
13 //
14 // You should have received a copy of the GNU General Public License
15 // along with this program. If not, see <http://www.gnu.org/licenses/>.
16 //
17 
18 #ifndef INCLUDED_UHD_USRP_H
19 #define INCLUDED_UHD_USRP_H
20 
21 #include <uhd/config.h>
22 #include <uhd/error.h>
23 #include <uhd/types/metadata.h>
24 #include <uhd/types/ranges.h>
25 #include <uhd/types/sensors.h>
27 #include <uhd/types/tune_request.h>
28 #include <uhd/types/tune_result.h>
29 #include <uhd/types/usrp_info.h>
30 #include <uhd/usrp/mboard_eeprom.h>
31 #include <uhd/usrp/dboard_eeprom.h>
32 #include <uhd/usrp/subdev_spec.h>
33 
34 #include <stdbool.h>
35 #include <stdlib.h>
36 #include <stdint.h>
37 #include <time.h>
38 
40 typedef struct {
41  size_t bitwidth;
42  bool readable;
43  bool writable;
45 
46 /*
47  * Streamers
48  */
49 
51 
54 typedef struct {
56  char* cpu_format;
58  char* otw_format;
60  char* args;
62  size_t* channel_list;
66 
68 
71 typedef enum {
81 
83 
86 typedef struct {
90  size_t num_samps;
92  bool stream_now;
98 
99 struct uhd_rx_streamer;
100 struct uhd_tx_streamer;
101 
103 
106 typedef struct uhd_rx_streamer* uhd_rx_streamer_handle;
107 
109 
112 typedef struct uhd_tx_streamer* uhd_tx_streamer_handle;
113 
114 #ifdef __cplusplus
115 extern "C" {
116 #endif
117 
118 /*
119  * RX Streamer
120  */
121 
123 
129 );
130 
132 
138 );
139 
143  size_t *num_channels_out
144 );
145 
149  size_t *max_num_samps_out
150 );
151 
153 
166  void** buffs,
167  size_t samps_per_buff,
169  double timeout,
170  bool one_packet,
171  size_t *items_recvd
172 );
173 
175 
180  const uhd_stream_cmd_t *stream_cmd
181 );
182 
184 
194  char* error_out,
195  size_t strbuffer_len
196 );
197 
198 /*
199  * TX Streamer
200  */
201 
203 
209 );
210 
212 
218 );
219 
223  size_t *num_channels_out
224 );
225 
229  size_t *max_num_samps_out
230 );
231 
233 
245  const void **buffs,
246  size_t samps_per_buff,
248  double timeout,
249  size_t *items_sent
250 );
251 
253 
259  double timeout,
260  bool *valid
261 );
262 
264 
274  char* error_out,
275  size_t strbuffer_len
276 );
277 
278 #ifdef __cplusplus
279 }
280 #endif
281 
282 /****************************************************************************
283  * Public Datatypes for USRP / streamer handling.
284  ***************************************************************************/
285 struct uhd_usrp;
286 
288 /*
289  * See uhd::usrp::multi_usrp for more details.
290  *
291  * NOTE: You must pass this handle into uhd_usrp_make before using it.
292  */
293 typedef struct uhd_usrp* uhd_usrp_handle;
294 
295 /****************************************************************************
296  * USRP Make / Free API calls
297  ***************************************************************************/
298 #ifdef __cplusplus
299 extern "C" {
300 #endif
301 
303 
307  const char* args,
308  uhd_string_vector_handle *strings_out
309 );
310 
312 
317  uhd_usrp_handle *h,
318  const char *args
319 );
320 
322 
327  uhd_usrp_handle *h
328 );
329 
332  uhd_usrp_handle h,
333  char* error_out,
334  size_t strbuffer_len
335 );
336 
339  uhd_usrp_handle h,
340  uhd_stream_args_t *stream_args,
342 );
343 
346  uhd_usrp_handle h,
347  uhd_stream_args_t *stream_args,
349 );
350 
351 /****************************************************************************
352  * multi_usrp API calls
353  ***************************************************************************/
354 
356 
360  uhd_usrp_handle h,
361  size_t chan,
362  uhd_usrp_rx_info_t *info_out
363 );
364 
366 
370  uhd_usrp_handle h,
371  size_t chan,
372  uhd_usrp_tx_info_t *info_out
373 );
374 
375 /****************************************************************************
376  * Motherboard methods
377  ***************************************************************************/
378 
380 
384  uhd_usrp_handle h,
385  double rate,
386  size_t mboard
387 );
388 
390 
394  uhd_usrp_handle h,
395  size_t mboard,
396  double *clock_rate_out
397 );
398 
400 
404  uhd_usrp_handle h,
405  char* pp_string_out,
406  size_t strbuffer_len
407 );
408 
410 
414  uhd_usrp_handle h,
415  size_t mboard,
416  char* mboard_name_out,
417  size_t strbuffer_len
418 );
419 
421 
425  uhd_usrp_handle h,
426  size_t mboard,
427  time_t *full_secs_out,
428  double *frac_secs_out
429 );
430 
432 
436  uhd_usrp_handle h,
437  size_t mboard,
438  time_t *full_secs_out,
439  double *frac_secs_out
440 );
441 
443 
447  uhd_usrp_handle h,
448  time_t full_secs,
449  double frac_secs,
450  size_t mboard
451 );
452 
454 
458  uhd_usrp_handle h,
459  time_t full_secs,
460  double frac_secs,
461  size_t mboard
462 );
463 
465 
469  uhd_usrp_handle h,
470  time_t full_secs,
471  double frac_secs
472 );
473 
476  uhd_usrp_handle h,
477  bool *result_out
478 );
479 
481 
485  uhd_usrp_handle h,
486  time_t full_secs,
487  double frac_secs,
488  size_t mboard
489 );
490 
493  uhd_usrp_handle h,
494  size_t mboard
495 );
496 
498 
502  uhd_usrp_handle h,
503  const char* time_source,
504  size_t mboard
505 );
506 
508 
512  uhd_usrp_handle h,
513  size_t mboard,
514  char* time_source_out,
515  size_t strbuffer_len
516 );
517 
520  uhd_usrp_handle h,
521  size_t mboard,
522  uhd_string_vector_handle *time_sources_out
523 );
524 
526 
530  uhd_usrp_handle h,
531  const char* clock_source,
532  size_t mboard
533 );
534 
536 
540  uhd_usrp_handle h,
541  size_t mboard,
542  char* clock_source_out,
543  size_t strbuffer_len
544 );
545 
548  uhd_usrp_handle h,
549  size_t mboard,
550  uhd_string_vector_handle *clock_sources_out
551 );
552 
554 
558  uhd_usrp_handle h,
559  bool enb,
560  size_t mboard
561 );
562 
564 
568  uhd_usrp_handle h,
569  bool enb,
570  size_t mboard
571 );
572 
575  uhd_usrp_handle h,
576  size_t *num_mboards_out
577 );
578 
581  uhd_usrp_handle h,
582  const char* name,
583  size_t mboard,
584  uhd_sensor_value_handle *sensor_value_out
585 );
586 
589  uhd_usrp_handle h,
590  size_t mboard,
591  uhd_string_vector_handle *mboard_sensor_names_out
592 );
593 
595 
599  uhd_usrp_handle h,
600  uint8_t addr,
601  uint32_t data,
602  size_t mboard
603 );
604 
605 /****************************************************************************
606  * EEPROM access methods
607  ***************************************************************************/
608 
611  uhd_usrp_handle h,
612  uhd_mboard_eeprom_handle mb_eeprom,
613  size_t mboard
614 );
615 
618  uhd_usrp_handle h,
619  uhd_mboard_eeprom_handle mb_eeprom,
620  size_t mboard
621 );
622 
625  uhd_usrp_handle h,
626  uhd_dboard_eeprom_handle db_eeprom,
627  const char* unit,
628  const char* slot,
629  size_t mboard
630 );
631 
634  uhd_usrp_handle h,
635  uhd_dboard_eeprom_handle db_eeprom,
636  const char* unit,
637  const char* slot,
638  size_t mboard
639 );
640 
641 /****************************************************************************
642  * RX methods
643  ***************************************************************************/
644 
646 
650  uhd_usrp_handle h,
651  uhd_subdev_spec_handle subdev_spec,
652  size_t mboard
653 );
654 
657  uhd_usrp_handle h,
658  size_t mboard,
659  uhd_subdev_spec_handle subdev_spec_out
660 );
661 
664  uhd_usrp_handle h,
665  size_t *num_channels_out
666 );
667 
670  uhd_usrp_handle h,
671  size_t chan,
672  char* rx_subdev_name_out,
673  size_t strbuffer_len
674 );
675 
678  uhd_usrp_handle h,
679  double rate,
680  size_t chan
681 );
682 
685  uhd_usrp_handle h,
686  size_t chan,
687  double *rate_out
688 );
689 
692  uhd_usrp_handle h,
693  size_t chan,
694  uhd_meta_range_handle rates_out
695 );
696 
699  uhd_usrp_handle h,
700  uhd_tune_request_t *tune_request,
701  size_t chan,
702  uhd_tune_result_t *tune_result
703 );
704 
707  uhd_usrp_handle h,
708  size_t chan,
709  double *freq_out
710 );
711 
713 
717  uhd_usrp_handle h,
718  size_t chan,
719  uhd_meta_range_handle freq_range_out
720 );
721 
724  uhd_usrp_handle h,
725  size_t chan,
726  uhd_meta_range_handle freq_range_out
727 );
728 
731  uhd_usrp_handle h,
732  double gain,
733  size_t chan,
734  const char *gain_name
735 );
736 
738 
742  uhd_usrp_handle h,
743  double gain,
744  size_t chan
745 );
746 
748 
752  uhd_usrp_handle h,
753  bool enable,
754  size_t chan
755 );
756 
759  uhd_usrp_handle h,
760  size_t chan,
761  const char *gain_name,
762  double *gain_out
763 );
764 
766 
770  uhd_usrp_handle h,
771  size_t chan,
772  double *gain_out
773 );
774 
777  uhd_usrp_handle h,
778  const char* name,
779  size_t chan,
780  uhd_meta_range_handle gain_range_out
781 );
782 
785  uhd_usrp_handle h,
786  size_t chan,
787  uhd_string_vector_handle *gain_names_out
788 );
789 
792  uhd_usrp_handle h,
793  const char* ant,
794  size_t chan
795 );
796 
799  uhd_usrp_handle h,
800  size_t chan,
801  char* ant_out,
802  size_t strbuffer_len
803 );
804 
807  uhd_usrp_handle h,
808  size_t chan,
809  uhd_string_vector_handle *antennas_out
810 );
811 
814  uhd_usrp_handle h,
815  size_t chan,
816  uhd_string_vector_handle *sensor_names_out
817 );
818 
821  uhd_usrp_handle h,
822  double bandwidth,
823  size_t chan
824 );
825 
828  uhd_usrp_handle h,
829  size_t chan,
830  double *bandwidth_out
831 );
832 
835  uhd_usrp_handle h,
836  size_t chan,
837  uhd_meta_range_handle bandwidth_range_out
838 );
839 
842  uhd_usrp_handle h,
843  const char* name,
844  size_t chan,
845  uhd_sensor_value_handle *sensor_value_out
846 );
847 
849 
853  uhd_usrp_handle h,
854  bool enb,
855  size_t chan
856 );
857 
860  uhd_usrp_handle h,
861  bool enb,
862  size_t chan
863 );
864 
865 /****************************************************************************
866  * TX methods
867  ***************************************************************************/
868 
870 
874  uhd_usrp_handle h,
875  uhd_subdev_spec_handle subdev_spec,
876  size_t mboard
877 );
878 
881  uhd_usrp_handle h,
882  size_t mboard,
883  uhd_subdev_spec_handle subdev_spec_out
884 );
885 
888  uhd_usrp_handle h,
889  size_t *num_channels_out
890 );
891 
894  uhd_usrp_handle h,
895  size_t chan,
896  char* tx_subdev_name_out,
897  size_t strbuffer_len
898 );
899 
902  uhd_usrp_handle h,
903  double rate,
904  size_t chan
905 );
906 
909  uhd_usrp_handle h,
910  size_t chan,
911  double *rate_out
912 );
913 
916  uhd_usrp_handle h,
917  size_t chan,
918  uhd_meta_range_handle rates_out
919 );
920 
923  uhd_usrp_handle h,
924  uhd_tune_request_t *tune_request,
925  size_t chan,
926  uhd_tune_result_t *tune_result
927 );
928 
931  uhd_usrp_handle h,
932  size_t chan,
933  double *freq_out
934 );
935 
937 
941  uhd_usrp_handle h,
942  size_t chan,
943  uhd_meta_range_handle freq_range_out
944 );
945 
948  uhd_usrp_handle h,
949  size_t chan,
950  uhd_meta_range_handle freq_range_out
951 );
952 
955  uhd_usrp_handle h,
956  double gain,
957  size_t chan,
958  const char *gain_name
959 );
960 
962 
966  uhd_usrp_handle h,
967  double gain,
968  size_t chan
969 );
970 
973  uhd_usrp_handle h,
974  const char* name,
975  size_t chan,
976  uhd_meta_range_handle gain_range_out
977 );
978 
981  uhd_usrp_handle h,
982  size_t chan,
983  const char *gain_name,
984  double *gain_out
985 );
986 
988 
992  uhd_usrp_handle h,
993  size_t chan,
994  double *gain_out
995 );
996 
999  uhd_usrp_handle h,
1000  size_t chan,
1001  uhd_string_vector_handle *gain_names_out
1002 );
1003 
1006  uhd_usrp_handle h,
1007  const char* ant,
1008  size_t chan
1009 );
1010 
1013  uhd_usrp_handle h,
1014  size_t chan,
1015  char* ant_out,
1016  size_t strbuffer_len
1017 );
1018 
1021  uhd_usrp_handle h,
1022  size_t chan,
1023  uhd_string_vector_handle *antennas_out
1024 );
1025 
1028  uhd_usrp_handle h,
1029  double bandwidth,
1030  size_t chan
1031 );
1032 
1035  uhd_usrp_handle h,
1036  size_t chan,
1037  double *bandwidth_out
1038 );
1039 
1042  uhd_usrp_handle h,
1043  size_t chan,
1044  uhd_meta_range_handle bandwidth_range_out
1045 );
1046 
1049  uhd_usrp_handle h,
1050  const char* name,
1051  size_t chan,
1052  uhd_sensor_value_handle *sensor_value_out
1053 );
1054 
1057  uhd_usrp_handle h,
1058  size_t chan,
1059  uhd_string_vector_handle *sensor_names_out
1060 );
1061 
1063 
1067  uhd_usrp_handle h,
1068  bool enb,
1069  size_t chan
1070 );
1071 
1074  uhd_usrp_handle h,
1075  bool enb,
1076  size_t chan
1077 );
1078 
1079 /****************************************************************************
1080  * GPIO methods
1081  ***************************************************************************/
1082 
1085  uhd_usrp_handle h,
1086  size_t mboard,
1087  uhd_string_vector_handle *gpio_banks_out
1088 );
1089 
1091 
1095  uhd_usrp_handle h,
1096  const char* bank,
1097  const char* attr,
1098  uint32_t value,
1099  uint32_t mask,
1100  size_t mboard
1101 );
1102 
1104 
1108  uhd_usrp_handle h,
1109  const char* bank,
1110  const char* attr,
1111  size_t mboard,
1112  uint32_t *attr_out
1113 );
1114 
1117  uhd_usrp_handle h,
1118  size_t mboard,
1119  uhd_string_vector_handle *registers_out
1120 );
1121 
1124  uhd_usrp_handle h,
1125  const char* path,
1126  size_t mboard,
1127  uhd_usrp_register_info_t *register_info_out
1128 );
1129 
1132  uhd_usrp_handle h,
1133  const char* path,
1134  uint32_t field,
1135  uint64_t value,
1136  size_t mboard
1137 );
1138 
1141  uhd_usrp_handle h,
1142  const char* path,
1143  uint32_t field,
1144  size_t mboard,
1145  uint64_t *value_out
1146 );
1147 
1148 #ifdef __cplusplus
1149 }
1150 #endif
1151 
1152 #endif /* INCLUDED_UHD_USRP_H */
Stream samples indefinitely.
Definition: usrp.h:73
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_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:92
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:62
UHD_API uhd_error uhd_usrp_enumerate_registers(uhd_usrp_handle h, size_t mboard, uhd_string_vector_handle *registers_out)
Enumerate the full paths of USRP registers available for read/write.
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_time_now(uhd_usrp_handle h, size_t mboard, time_t *full_secs_out, double *frac_secs_out)
Get the USRP device&#39;s current internal time.
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:54
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:42
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_stream_mode_t stream_mode
How streaming is issued to the device.
Definition: usrp.h:88
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:55
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.
size_t mask(const soft_reg_field_t field)
Definition: soft_register.hpp:98
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_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_set_tx_dc_offset_enabled(uhd_usrp_handle h, bool enb, size_t chan)
Enable or disable TX DC offset correction for the given channel.
double time_spec_frac_secs
If not now, then fractional seconds into future to stream.
Definition: usrp.h:96
bool writable
Definition: usrp.h:43
struct uhd_tx_metadata_t * uhd_tx_metadata_handle
TX metadata interface for describing received IF data.
Definition: metadata.h:71
struct uhd_usrp * uhd_usrp_handle
C-level interface for working with a USRP device.
Definition: usrp.h:293
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_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.
UHD_API uhd_error uhd_usrp_set_time_now(uhd_usrp_handle h, time_t full_secs, double frac_secs, size_t mboard)
Set the USRP device&#39;s time.
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:45
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:29
End continuous streaming.
Definition: usrp.h:75
size_t bitwidth
Definition: usrp.h:41
char * cpu_format
Format of host memory.
Definition: usrp.h:56
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:40
char * args
Other stream args.
Definition: usrp.h:60
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_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_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_register_info(uhd_usrp_handle h, const char *path, size_t mboard, uhd_usrp_register_info_t *register_info_out)
Get more information about a low-level device register.
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:77
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_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:80
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:31
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:28
struct uhd_dboard_eeprom_t * uhd_dboard_eeprom_handle
A C-level interface for interacting with a daughterboard EEPROM.
Definition: dboard_eeprom.h:45
Define how device streams to host.
Definition: usrp.h:86
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_set_time_unknown_pps(uhd_usrp_handle h, time_t full_secs, double frac_secs)
Synchronize the time across all motherboards.
UHD_API uhd_error uhd_usrp_set_command_time(uhd_usrp_handle h, time_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_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 specfication 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_get_time_last_pps(uhd_usrp_handle h, size_t mboard, time_t *full_secs_out, double *frac_secs_out)
Get the time when this device&#39;s last PPS pulse occurred.
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_read_register(uhd_usrp_handle h, const char *path, uint32_t field, size_t mboard, uint64_t *value_out)
Read a low-level register field from a device register in the USRP hardware.
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_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_API uhd_error uhd_usrp_set_tx_iq_balance_enabled(uhd_usrp_handle h, bool enb, size_t chan)
Enable or disable TX IQ imbalance correction for the given channel.
uhd_stream_mode_t
How streaming is issued to the device.
Definition: usrp.h:71
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.
struct uhd_rx_streamer * uhd_rx_streamer_handle
C-level interface for working with an RX streamer.
Definition: usrp.h:106
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_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:43
USRP TX info.
Definition: usrp_info.h:51
#define UHD_API
Definition: config.h:66
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_write_register(uhd_usrp_handle h, const char *path, uint32_t field, uint64_t value, size_t mboard)
Write a low-level register field for a device register in the USRP hardware.
Instructs implementation how to tune the RF chain.
Definition: tune_request.h:39
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.
Stream some number of samples but expect more.
Definition: usrp.h:79
struct uhd_sensor_value_t * uhd_sensor_value_handle
C-level interface for a UHD sensor.
Definition: sensors.h:44
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:62
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:64
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:55
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:90
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 specfication 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.
UHD_API uhd_error uhd_usrp_set_time_next_pps(uhd_usrp_handle h, time_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.
struct uhd_tx_streamer * uhd_tx_streamer_handle
C-level interface for working with a TX streamer.
Definition: usrp.h:112
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_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:58
time_t time_spec_full_secs
If not now, then full seconds into future to stream.
Definition: usrp.h:94
UHD_API uhd_error uhd_rx_streamer_free(uhd_rx_streamer_handle *h)
Free an RX streamer handle.