Loading...
Searching...
No Matches
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.