65 const std::string& config_path);
73std::map<uint8_t, PtBoardConfig>
load_pt_boards(
const std::string& config_path);
*brief create JSON pointer *sa reference_tokens const string_t const string_t & b
std::map< ActiveBoardKind, std::vector< elodin::BoardChannels > > load_active_boards(const std::string &config_path)
Parse [boards.
std::map< uint8_t, PtBoardConfig > load_pt_boards(const std::string &config_path)
Parse the PT boards' sensor interface and 4-20 mA conversion parameters, keyed by Elodin slot.
bool is_current_loop(const PtBoardConfig &b)
True when this board's channels convert through the 4-20 mA current-loop path.
ActiveBoardKind
Board kinds from [boards.
PtInterface
Sensor interface of a PT board, declared by pt_type in its [boards.
@ CURRENT_LOOP_4_20MA
4-20 mA absolute: supply-independent loop across a shunt resistor.
@ ABSOLUTE_0_5V
0-5V absolute. Not implemented in firmware; see load_pt_boards().
@ RATIOMETRIC_0_5V
0-5V ratiometric: excitation is the reference, ratio cancels in HW.
Motorized ball valve position: raw ADC counts -> % open.
Per-board 4-20 mA conversion parameters, keyed by Elodin slot (board_number).
double sense_resistor_ohms
uint8_t board_number
Elodin slot: board_id % 10, with 0 mapping to 10.