File usrp_driver.cpp

Defines

SET_TIME_COMMAND_DELAY
TUNING_DELAY

Functions

std::vector<std::vector<std::complex<float>>> make_tx_samples(const driverpacket::DriverPacket &driver_packet, const DriverOptions &driver_options)

Makes a set of vectors of the samples for each TX channel from the driver packet.

Values in a protobuffer have no contiguous underlying storage so values need to be parsed into a vector.

Parameters
  • driver_packet[in] A received driver packet from radar_control.

  • driver_options[in] The parsed config options needed by the driver.

Returns

A set of vectors of TX samples for each USRP channel.

void transmit(zmq::context_t &driver_c, USRP &usrp_d, const DriverOptions &driver_options)
void receive(zmq::context_t &driver_c, USRP &usrp_d, const DriverOptions &driver_options)

Runs in a seperate thread to control receiving from the USRPs.

Parameters
  • driver_c[in] The driver ZMQ context.

  • usrp_d[in] The multi-USRP SuperDARN wrapper object.

  • driver_options[in] The driver options parsed from config.

int32_t UHD_SAFE_MAIN(int32_t argc, char *argv[])

UHD wrapped main function to start threads.

Creates a new multi-USRP object using parameters from config file. Starts receive and transmit threads to operate on the multi-USRP object.

Returns

EXIT_SUCCESS

Variables

static clocks_t borealis_clocks
struct clocks_t

Public Members

uhd::time_spec_t usrp_time
std::chrono::time_point<std::chrono::system_clock> system_time