#include <uhd/cal/database.hpp>
Public Types | |
using | has_data_fn_type = std::function< bool(const std::string &, const std::string &)> |
Function type to look up if there is cal data given a key and serial. More... | |
using | get_data_fn_type = std::function< std::vector< uint8_t >(const std::string &, const std::string &)> |
Function type to return serialized cal data key and serial. More... | |
Static Public Member Functions | |
static std::vector< uint8_t > | read_cal_data (const std::string &key, const std::string &serial, const source source_type=source::ANY) |
Return a calibration data set as a serialized string. More... | |
static bool | has_cal_data (const std::string &key, const std::string &serial, const source source_type=source::ANY) |
Check if calibration data exists for a given source type. More... | |
static void | write_cal_data (const std::string &key, const std::string &serial, const std::vector< uint8_t > &cal_data, const std::string &backup_ext="") |
Store calibration data to the local filesystem database. More... | |
static void | register_lookup (has_data_fn_type has_cal_data, get_data_fn_type get_cal_data, const source source_type=source::FLASH) |
Register a lookup function for cal data. More... | |
Calibration Data Storage/Retrieval Class
UHD can store calibration data on disk or compiled within UHD. This class provides access to both locations.
This class can read and write binary data, but it does not verify the data or expect any kind of format. It simply manages BLOBs (binary large objects). It is up to the consumers and producers of this data to agree on a format. Typically, since this class stores calibration data, it will be consuming data that was produced by uhd::usrp::cal::container::serialize().
Calibration data is indexed by two keys: An arbitrary key that describes the type of calibration data (e.g., "rx_iq") and a serial number. The serial number has to uniquely identify the device for which the calibration data was obtained. This can either be the serial number of the daughterboard (if the calibration data only relates to the daughterboard), the motherboard (for example, if there is no such thing as a daughterboard, or the data only relates to the motherboard), it can be combination of both daughterboard and motherboard serial (if the calibration data is only valid for a combination), or it can be a combination of a device serial number and a channel index (if a device with single serial has different channels that have separate characteristics).
It is up to the individual device drivers which value they use for the serial numbers and keys.
Note that the serial number is irrelevant when the data is pulled out of the resource compiler. By definition, it is not permitted to store data in the resource compiler that is specific to a certain serial number, only data that applies to an entire family of devices is permitted.
using uhd::usrp::cal::database::get_data_fn_type = std::function<std::vector<uint8_t>(const std::string&, const std::string&)> |
Function type to return serialized cal data key and serial.
using uhd::usrp::cal::database::has_data_fn_type = std::function<bool(const std::string&, const std::string&)> |
Function type to look up if there is cal data given a key and serial.
|
static |
Check if calibration data exists for a given source type.
|
static |
Return a calibration data set as a serialized string.
|
static |
Register a lookup function for cal data.
|
static |
Store calibration data to the local filesystem database.