STAR
Cal STAR — firmware, DAQ server, and engine design
Loading...
Searching...
No Matches
fsw::calibration::SensorCalibrationManager Class Reference

#include <SensorCalibration.hpp>

Collaboration diagram for fsw::calibration::SensorCalibrationManager:
[legend]

Public Member Functions

 SensorCalibrationManager (const std::string &sensor_type, const std::string &default_unit="", int default_order=3)
 ~SensorCalibrationManager ()=default
bool load_from_json (const std::string &json_path)
 Load calibration from a JSON calibration file.
bool load_from_csv (const std::string &csv_path)
 Load calibration from a CSV file (DiabloAvionics format).
bool load_calibration (const std::string &json_dir, const std::string &csv_path)
 Auto-discover & load from default directories.
void set_calibration (uint8_t channel_id, const PolynomialCalibration &cal)
 Manually set coefficients for a channel.
void clear_calibration (uint8_t channel_id)
 Remove a channel's calibration so is_calibrated() returns false again.
bool is_calibrated (uint8_t channel_id) const
double calculate (uint8_t channel_id, int32_t raw_counts) const
const PolynomialCalibration * get (uint8_t channel_id) const
size_t calibrated_count () const
const std::string & sensor_type () const

Private Member Functions

std::string find_latest_json (const std::string &dir) const

Private Attributes

std::string sensor_type_
std::string default_unit_
int default_order_
std::map< uint8_t, PolynomialCalibration > calibrations_

Detailed Description

Definition at line 69 of file SensorCalibration.hpp.

Constructor & Destructor Documentation

◆ SensorCalibrationManager()

fsw::calibration::SensorCalibrationManager::SensorCalibrationManager ( const std::string & sensor_type,
const std::string & default_unit = "",
int default_order = 3 )
inlineexplicit
Parameters
sensor_type"PT", "TC", "RTD", "LC"
default_unitoutput physical unit
default_orderdefault polynomial order if not specified in file

Definition at line 74 of file SensorCalibration.hpp.

References default_order_, default_unit_, sensor_type(), and sensor_type_.

◆ ~SensorCalibrationManager()

fsw::calibration::SensorCalibrationManager::~SensorCalibrationManager ( )
default

Member Function Documentation

◆ calculate()

double fsw::calibration::SensorCalibrationManager::calculate ( uint8_t channel_id,
int32_t raw_counts ) const

Definition at line 195 of file SensorCalibration.cpp.

References calibrations_.

Referenced by main().

◆ calibrated_count()

size_t fsw::calibration::SensorCalibrationManager::calibrated_count ( ) const
inline

Definition at line 105 of file SensorCalibration.hpp.

References calibrations_.

Referenced by main().

◆ clear_calibration()

void fsw::calibration::SensorCalibrationManager::clear_calibration ( uint8_t channel_id)
inline

Remove a channel's calibration so is_calibrated() returns false again.

Definition at line 97 of file SensorCalibration.hpp.

References calibrations_.

Referenced by main().

◆ find_latest_json()

std::string fsw::calibration::SensorCalibrationManager::find_latest_json ( const std::string & dir) const
private

Definition at line 210 of file SensorCalibration.cpp.

References fs::exists(), and fs::is_directory().

Referenced by load_calibration().

◆ get()

const PolynomialCalibration * fsw::calibration::SensorCalibrationManager::get ( uint8_t channel_id) const

Definition at line 203 of file SensorCalibration.cpp.

References calibrations_.

◆ is_calibrated()

bool fsw::calibration::SensorCalibrationManager::is_calibrated ( uint8_t channel_id) const

Definition at line 191 of file SensorCalibration.cpp.

References calibrations_.

Referenced by main().

◆ load_calibration()

bool fsw::calibration::SensorCalibrationManager::load_calibration ( const std::string & json_dir,
const std::string & csv_path )

Auto-discover & load from default directories.

Definition at line 171 of file SensorCalibration.cpp.

References fs::exists(), find_latest_json(), load_from_csv(), load_from_json(), and sensor_type_.

Referenced by main().

◆ load_from_csv()

bool fsw::calibration::SensorCalibrationManager::load_from_csv ( const std::string & csv_path)

Load calibration from a CSV file (DiabloAvionics format).

Definition at line 92 of file SensorCalibration.cpp.

References calibrations_, ch(), default_unit_, ok, and sensor_type_.

Referenced by load_calibration().

◆ load_from_json()

bool fsw::calibration::SensorCalibrationManager::load_from_json ( const std::string & json_path)

Load calibration from a JSON calibration file.

Definition at line 22 of file SensorCalibration.cpp.

References calibrations_, default_unit_, ok, and sensor_type_.

Referenced by load_calibration().

◆ sensor_type()

const std::string & fsw::calibration::SensorCalibrationManager::sensor_type ( ) const
inline

Definition at line 109 of file SensorCalibration.hpp.

References sensor_type_.

Referenced by SensorCalibrationManager().

◆ set_calibration()

void fsw::calibration::SensorCalibrationManager::set_calibration ( uint8_t channel_id,
const PolynomialCalibration & cal )
inline

Manually set coefficients for a channel.

Definition at line 92 of file SensorCalibration.hpp.

References calibrations_.

Referenced by main().

Member Data Documentation

◆ calibrations_

std::map<uint8_t, PolynomialCalibration> fsw::calibration::SensorCalibrationManager::calibrations_
private

◆ default_order_

int fsw::calibration::SensorCalibrationManager::default_order_
private

Definition at line 116 of file SensorCalibration.hpp.

Referenced by SensorCalibrationManager().

◆ default_unit_

std::string fsw::calibration::SensorCalibrationManager::default_unit_
private

Definition at line 115 of file SensorCalibration.hpp.

Referenced by load_from_csv(), load_from_json(), and SensorCalibrationManager().

◆ sensor_type_

std::string fsw::calibration::SensorCalibrationManager::sensor_type_
private

The documentation for this class was generated from the following files: