USRP Hardware Driver and USRP Manual  Version: 4.1.0.0-264-g3e5e4eb06
UHD and USRP Manual
ranges.h
Go to the documentation of this file.
1 //
2 // Copyright 2015 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 
13 #include <stdbool.h>
14 #include <stdlib.h>
15 
17 typedef struct {
19  double start;
21  double stop;
23  double step;
24 } uhd_range_t;
25 
26 #ifdef __cplusplus
27 #include <uhd/types/ranges.hpp>
28 #include <string>
29 
30 struct uhd_meta_range_t {
31  uhd::meta_range_t meta_range_cpp;
32  std::string last_error;
33 };
34 
35 extern "C" {
36 #else
37 struct uhd_meta_range_t;
38 #endif
39 
41 
44 typedef struct uhd_meta_range_t* uhd_meta_range_handle;
45 
48  const uhd_range_t *range,
49  char* pp_string_out,
50  size_t strbuffer_len
51 );
52 
54 
59  uhd_meta_range_handle* h
60 );
61 
63 
68  uhd_meta_range_handle* h
69 );
70 
73  uhd_meta_range_handle h,
74  double *start_out
75 );
76 
79  uhd_meta_range_handle h,
80  double *stop_out
81 );
82 
85  uhd_meta_range_handle h,
86  double *step_out
87 );
88 
91  uhd_meta_range_handle h,
92  double value,
93  bool clip_step,
94  double *result_out
95 );
96 
99  uhd_meta_range_handle h,
100  size_t *size_out
101 );
102 
105  uhd_meta_range_handle h,
106  const uhd_range_t *range
107 );
108 
111  uhd_meta_range_handle h,
112  size_t num,
113  uhd_range_t *range_out
114 );
115 
118  uhd_meta_range_handle h,
119  char* pp_string_out,
120  size_t strbuffer_len
121 );
122 
125  uhd_meta_range_handle h,
126  char* error_out,
127  size_t strbuffer_len
128 );
129 
130 #ifdef __cplusplus
131 }
132 
133 UHD_API uhd::range_t uhd_range_c_to_cpp(
134  const uhd_range_t *range_c
135 );
136 
137 UHD_API void uhd_range_cpp_to_c(
138  const uhd::range_t &range_cpp,
139  uhd_range_t *range_c
140 );
141 #endif
UHD_API uhd_error uhd_meta_range_stop(uhd_meta_range_handle h, double *stop_out)
Get the overall stop value for the given meta range.
double stop
Last value.
Definition: ranges.h:21
UHD_API uhd_error uhd_meta_range_at(uhd_meta_range_handle h, size_t num, uhd_range_t *range_out)
Get the range at the given index.
UHD_API uhd_error uhd_meta_range_last_error(uhd_meta_range_handle h, char *error_out, size_t strbuffer_len)
Get the last error recorded by the underlying meta range.
UHD_API uhd_error uhd_meta_range_size(uhd_meta_range_handle h, size_t *size_out)
Get the number of ranges in the given meta range.
Range of floating-point values.
Definition: ranges.h:17
struct uhd_meta_range_t * uhd_meta_range_handle
C-level interface for dealing with a list of ranges.
Definition: ranges.h:44
UHD_API uhd_error uhd_meta_range_clip(uhd_meta_range_handle h, double value, bool clip_step, double *result_out)
Clip the given value to a possible value in the given range.
UHD_API uhd_error uhd_meta_range_make(uhd_meta_range_handle *h)
Create a meta range handle.
UHD_API uhd_error uhd_meta_range_to_pp_string(uhd_meta_range_handle h, char *pp_string_out, size_t strbuffer_len)
Get a string representation of the given meta range.
uhd_error
UHD error codes.
Definition: error.h:20
UHD_API uhd_error uhd_meta_range_start(uhd_meta_range_handle h, double *start_out)
Get the overall start value for the given meta range.
Definition: ranges.hpp:21
UHD_API uhd_error uhd_range_to_pp_string(const uhd_range_t *range, char *pp_string_out, size_t strbuffer_len)
Get a string representation of the given range.
#define UHD_API
Definition: config.h:70
double step
Granularity.
Definition: ranges.h:23
UHD_API uhd_error uhd_meta_range_push_back(uhd_meta_range_handle h, const uhd_range_t *range)
Add a range to the given meta range.
Definition: ranges.hpp:65
UHD_API uhd_error uhd_meta_range_free(uhd_meta_range_handle *h)
Destroy a meta range handle.
double start
First value.
Definition: ranges.h:19
UHD_API uhd_error uhd_meta_range_step(uhd_meta_range_handle h, double *step_out)
Get the overall step value for the given meta range.