UHD 003.001.001
Namespaces | Classes | Typedefs | Functions

uhd Namespace Reference

Namespaces

namespace  _log
namespace  convert
namespace  msg
namespace  transport
namespace  usrp

Classes

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

Typedefs

typedef std::vector
< device_addr_t
device_addrs_t
 A typedef for a vector of device addresses.
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.

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.
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.
UHD_API bool operator== (const time_spec_t &, const time_spec_t &)
 Implement equality_comparable interface.
UHD_API bool operator< (const time_spec_t &, const time_spec_t &)
 Implement less_than_comparable interface.
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
boost::uint32_t byteswap (boost::uint32_t)
 perform a byteswap on a 32 bit integer
boost::uint64_t byteswap (boost::uint64_t)
 perform a byteswap on a 64 bit integer
template<typename T >
ntohx (T)
 network to host: short, long, or long-long
template<typename T >
htonx (T)
 host to network: short, long, or long-long
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

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

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

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

A typedef for a vector of device addresses.

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

The type for a vector of property names.


Function Documentation

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
boost::uint16_t uhd::byteswap ( boost::uint16_t  )

perform a byteswap on a 16 bit integer

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

perform a byteswap on a 32 bit integer

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

perform a byteswap on a 64 bit integer

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
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.

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
UHD_API std::string uhd::get_version_string ( void  )
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
template<typename T >
T uhd::htonx ( )

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

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

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

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

Implement less_than_comparable interface.

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

Implement equality_comparable interface.

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
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.

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
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
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
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Defines