USRP Hardware Driver and USRP Manual  Version:
UHD and USRP Manual
Coding to the API

Various API interfaces

High-Level: The Multi-USRP

The Multi-USRP class provides a high-level interface to a single USRP device with one or more channels, or multiple USRP devices in a homogeneous setup. See the documentation for uhd::usrp::multi_usrp.

High-Level: The RFNoC API

This is a more granular API than the Multi-USRP API, and can directly interact with RFNoC blocks in a device, and the RFNoC graph. This is available for all Generation-3 USRPs and above.

For more information on RFNoC, see RFNoC.

High-Level: The Multi-USRP-Clock

The Multi-USRP-Clock class provides a high-level interface to a single clock device or set of clock devices, from which the time can be queried. See the documentation for uhd::usrp_clock::multi_usrp_clock.

High-Level: The C API

Both USRP and clock devices can be interacted with using a C API wrapper included by default in all UHD builds. More information can be found here.

Low-Level: The device API

This is an older API for pre-RFNoC devices (N2xx, B2xx, B100, USRP1).

A device is an abstraction for hardware that is connected to the host system. For a USRP device, this means that the motherboard and everything on it would be considered to be a "device". For a clock device, the device itself would be considered a "device" in software. The device API provides ways to:

  • Discover devices that are physically connected to the host system.
  • Create a device object for a particular device identified by address.
  • Register a device driver into the discovery and factory sub-system.
  • Streaming samples with metadata into and out of the device.
  • Set and get properties on the device object.
  • Access various sensors on the device.

See the documentation for uhd::device.