UHD  003.001.002
Namespaces | Classes | Typedefs | Functions
uhd Namespace Reference

Namespaces

 _log
 
 convert
 
 msg
 
 transport
 
 usrp
 

Classes

struct  assertion_error
 
struct  async_metadata_t
 
struct  clock_config_t
 
class  device
 
class  device_addr_t
 
class  dict
 
struct  environment_error
 
struct  exception
 
struct  gain_fcns_t
 
class  gain_group
 
class  i2c_iface
 
struct  index_error
 
struct  io_error
 
class  io_type_t
 
struct  key_error
 
struct  lookup_error
 
class  mac_addr_t
 
struct  meta_range_t
 
struct  named_prop_t
 
struct  not_implemented_error
 
struct  os_error
 
struct  otw_type_t
 
class  range_t
 
class  ref_vector
 
struct  runtime_error
 
struct  rx_metadata_t
 
struct  sensor_value_t
 
struct  spi_config_t
 
class  spi_iface
 
struct  stream_cmd_t
 
struct  system_error
 
class  time_spec_t
 
struct  tune_request_t
 
struct  tune_result_t
 
struct  tx_metadata_t
 
struct  type_error
 
struct  value_error
 

Typedefs

typedef std::vector< device_addr_tdevice_addrs_t
 A typedef for a vector of device addresses. More...
 
typedef meta_range_t gain_range_t
 
typedef meta_range_t freq_range_t
 
typedef std::vector< boost::uint8_t > byte_vector_t
 
typedef std::vector< std::string > prop_names_t
 The type for a vector of property names. More...
 

Functions

UHD_API device_addrs_t separate_device_addr (const device_addr_t &dev_addr)
 Separate an indexed device address into a vector of device addresses. More...
 
UHD_API device_addr_t combine_device_addrs (const device_addrs_t &dev_addrs)
 Combine a vector of device addresses into an indexed device address. More...
 
UHD_API bool operator== (const time_spec_t &, const time_spec_t &)
 Implement equality_comparable interface. More...
 
UHD_API bool operator< (const time_spec_t &, const time_spec_t &)
 Implement less_than_comparable interface. More...
 
template<typename Range >
Range sorted (const Range &range)
 
template<typename Range >
Range reversed (const Range &range)
 
template<typename Range , typename T >
bool has (const Range &range, const T &value)
 
template<typename T >
clip (const T &val, const T &bound1, const T &bound2)
 
template<typename T , typename Range >
void assert_has (const Range &range, const T &value, const std::string &what="unknown")
 
boost::uint16_t byteswap (boost::uint16_t)
 perform a byteswap on a 16 bit integer More...
 
boost::uint32_t byteswap (boost::uint32_t)
 perform a byteswap on a 32 bit integer More...
 
boost::uint64_t byteswap (boost::uint64_t)
 perform a byteswap on a 64 bit integer More...
 
template<typename T >
ntohx (T)
 network to host: short, long, or long-long More...
 
template<typename T >
htonx (T)
 host to network: short, long, or long-long More...
 
UHD_API std::string find_image_path (const std::string &image_name)
 
UHD_API void set_thread_priority (float priority=default_thread_priority, bool realtime=true)
 
UHD_API bool set_thread_priority_safe (float priority=default_thread_priority, bool realtime=true)
 
UHD_API std::string get_version_string (void)
 

Detailed Description

Define common exceptions used throughout the code:

The code() provides an error code which allows the application the option of printing a cryptic error message from the 1990s.

Useful templated functions and classes that I like to pretend are part of stl. Many of the range wrapper functions come with recent versions of boost (1.43).

Typedef Documentation

◆ byte_vector_t

typedef std::vector<boost::uint8_t> uhd::byte_vector_t

Byte vector typedef for passing data in and out of I2C interfaces.

◆ device_addrs_t

typedef std::vector<device_addr_t> uhd::device_addrs_t

A typedef for a vector of device addresses.

◆ freq_range_t

◆ gain_range_t

◆ prop_names_t

typedef std::vector<std::string> uhd::prop_names_t

The type for a vector of property names.

Function Documentation

◆ assert_has()

template<typename T , typename Range >
void uhd::assert_has ( const Range &  range,
const T &  value,
const std::string &  what = "unknown" 
)

Check that an element is found in a container. If not, throw a meaningful assertion error. The "what" in the error will show what is being set and a list of known good values.

Parameters
rangea list of possible settings
valuean element that may be in the list
whata description of what the value is
Exceptions
assertion_errorwhen elem not in list

◆ byteswap() [1/3]

boost::uint16_t uhd::byteswap ( boost::uint16_t  )

perform a byteswap on a 16 bit integer

◆ byteswap() [2/3]

boost::uint32_t uhd::byteswap ( boost::uint32_t  )

perform a byteswap on a 32 bit integer

◆ byteswap() [3/3]

boost::uint64_t uhd::byteswap ( boost::uint64_t  )

perform a byteswap on a 64 bit integer

◆ clip()

template<typename T >
T uhd::clip ( const T &  val,
const T &  bound1,
const T &  bound2 
)
inline

A templated clip implementation.

Parameters
valthe value to clip between an upper and lower limit
bound1the upper or lower bound
bound2the upper or lower bound
Returns
the value clipped at the bounds

◆ combine_device_addrs()

UHD_API device_addr_t uhd::combine_device_addrs ( const device_addrs_t dev_addrs)

Combine a vector of device addresses into an indexed device address.

◆ find_image_path()

UHD_API std::string uhd::find_image_path ( const std::string &  image_name)

Search for an image in the system image paths: Search compiled-in paths and environment variable paths for a specific image file with the provided file name.

Parameters
image_namethe name of the file
Returns
the full system path to the file
Exceptions
exceptionif the image was not found

◆ get_version_string()

UHD_API std::string uhd::get_version_string ( void  )

◆ has()

template<typename Range , typename T >
bool uhd::has ( const Range &  range,
const T &  value 
)
inline

Is the value found within the elements in this range?

Uses std::find to search the iterable for an element.

Parameters
rangethe elements to search through
valuethe match to look for in the range
Returns
true when the value is found in the range

◆ htonx()

template<typename T >
T uhd::htonx ( )

host to network: short, long, or long-long

◆ ntohx()

template<typename T >
T uhd::ntohx ( )

network to host: short, long, or long-long

◆ operator<()

UHD_API bool uhd::operator< ( const time_spec_t ,
const time_spec_t  
)

Implement less_than_comparable interface.

◆ operator==()

UHD_API bool uhd::operator== ( const time_spec_t ,
const time_spec_t  
)

Implement equality_comparable interface.

◆ reversed()

template<typename Range >
Range uhd::reversed ( const Range &  range)
inline

A wrapper around std::reverse that takes a range instead of an iterator.

The elements are reversed into descending order using the less-than operator. This wrapper reverses the elements non-destructively into a new range. Based on the builtin python function reversed(...)

Parameters
rangethe range of elements to be reversed
Returns
a new range with the elements reversed

◆ separate_device_addr()

UHD_API device_addrs_t uhd::separate_device_addr ( const device_addr_t dev_addr)

Separate an indexed device address into a vector of device addresses.

◆ set_thread_priority()

UHD_API void uhd::set_thread_priority ( float  priority = default_thread_priority,
bool  realtime = true 
)

Set the scheduling priority on the current thread.

A new thread or calling process should make this call with the defailts this to enable realtime scheduling.

A priority of zero corresponds to normal priority. Positive priority values are higher than normal. Negative priority values are lower than normal.

Parameters
prioritya value between -1 and 1
realtimetrue to use realtime mode
Exceptions
exceptionon set priority failure

◆ set_thread_priority_safe()

UHD_API bool uhd::set_thread_priority_safe ( float  priority = default_thread_priority,
bool  realtime = true 
)

Set the scheduling priority on the current thread. Same as set_thread_priority but does not throw on failure.

Returns
true on success, false on failure

◆ sorted()

template<typename Range >
Range uhd::sorted ( const Range &  range)
inline

A wrapper around std::sort that takes a range instead of an iterator.

The elements are sorted into ascending order using the less-than operator. This wrapper sorts the elements non-destructively into a new range. Based on the builtin python function sorted(...)

Parameters
rangethe range of elements to be sorted
Returns
a new range with the elements sorted