|
STAR
Cal STAR — firmware, DAQ server, and engine design
|
Classes | |
| class | ElodinWriter |
| class | ServerState |
| class | CalibrationHTTPRequestHandler |
Functions | |
| Optional[int] | _parse_raw_adc (bytes payload) |
| Optional[int] | _parse_raw_signed (bytes payload) |
| Optional[int] | _parse_int32_at_12 (bytes payload) |
| float | _apply_ema (int key, float value, float alpha=_EMA_ALPHA_DEFAULT) |
| None | _reset_ema_for_packet_channels (list packet_channels) |
| bool | _apply_direct_offset_correction (tuple key, float adc_code, float target_psi) |
| Optional[int] | _parse_pt_raw_for_packet_ch (bytes payload, int packet_ch) |
| str | _throttle_key (str stype, int ch) |
| _get_raw_conversion_config () | |
| None | _process_raw_and_write_calibrated (str stype, int packet_ch, int raw_val, Any writer, dict channel_to_key, *, int connector_id, int raw_packet_low) |
| None | _auto_save_adjustments () |
| relay_subscriber_task () | |
| run_http_server (host, port) | |
| ws_handler (websocket) | |
| broadcast_ws (message) | |
| run_ws_server (host, port) | |
Variables | |
| level | |
| INFO | |
| format | |
| logger = logging.getLogger("CalibrationServer") | |
| config = load_config() | |
| dict | _last_elodin_write = {} |
| set | _first_calibrated_write_logged = set() |
| dict | _hp_pt_channels_cache = {} |
| float | _EMA_ALPHA_DEFAULT = 0.4 |
| dict | _ema_state = {} |
| dict | _raw_conversion_config_cache = {} |
| str | _ADJUSTMENTS_PATH = Path(__file__).resolve().parent / "calibrations" / "adjustments.json" |
| state = ServerState() | |
| sidecar_cfg = config.get("calibration", {}).get("sidecar", {}) | |
| host = sidecar_cfg.get("host", "127.0.0.1") | |
| port = sidecar_cfg.get("port", 8100) | |
| http_thread | |
| ws_thread | |
| pending_alerts | |
| running | |
|
protected |
Directly correct theta_mean[0] (the D intercept) so the RCF outputs target_psi at the given adc_code without disturbing the slope coefficients. Returns True if the correction was applied.
Definition at line 202 of file calibration_server.py.
References max.
Referenced by calibration_server.CalibrationHTTPRequestHandler.do_POST().
|
protected |
Definition at line 186 of file calibration_server.py.
Referenced by _process_raw_and_write_calibrated().
|
protected |
Persist all RLS-learned theta_mean / theta_cov back to adjustments.json so that the next server restart loads the latest autonomous calibration state. Channels are keyed by unique_id = board_id * 100 + connector (framework_v2 format). Only channels that have an active RCF entry are written; any existing channels without an RCF entry are preserved.
Definition at line 384 of file calibration_server.py.
Referenced by relay_subscriber_task().
|
protected |
Get config for raw sense_conversions fallback (cached).
Definition at line 248 of file calibration_server.py.
Referenced by _process_raw_and_write_calibrated().
|
protected |
Signed ADC at offset 12 (PT/LP, TC, RTD raw on wire).
Definition at line 167 of file calibration_server.py.
Referenced by relay_subscriber_task().
|
protected |
4-20 mA PT: unsigned ADC; LP PT: signed ADS1262 counts (matches FSW).
Definition at line 230 of file calibration_server.py.
Referenced by relay_subscriber_task().
|
protected |
Extract raw ADC uint32 from a raw PT/TC/RTD payload (21-byte format).
Definition at line 151 of file calibration_server.py.
|
protected |
Extract raw ADC int32 (for LC signed ADC).
Definition at line 160 of file calibration_server.py.
Referenced by relay_subscriber_task().
|
protected |
Compute calibrated value (RCF or raw conversion) and optionally write to Elodin DB.
Definition at line 269 of file calibration_server.py.
References _apply_ema(), _get_raw_conversion_config(), and _throttle_key().
Referenced by relay_subscriber_task().
|
protected |
Clear EMA state for a list of packet_ch values so corrected values take effect immediately.
Definition at line 196 of file calibration_server.py.
Referenced by calibration_server.CalibrationHTTPRequestHandler.do_POST().
|
protected |
Definition at line 241 of file calibration_server.py.
Referenced by _process_raw_and_write_calibrated().
| calibration_server.broadcast_ws | ( | message | ) |
Definition at line 881 of file calibration_server.py.
Referenced by calibration_server.CalibrationHTTPRequestHandler.do_POST().
| calibration_server.relay_subscriber_task | ( | ) |
Subscribe to the Elodin Relay WebSocket to get raw ADC data. Feeds the calibration engine and writes calibrated values back to Elodin DB. The relay is the sole subscriber to Elodin DB and fans out TABLE packets here.
Definition at line 427 of file calibration_server.py.
References _auto_save_adjustments(), _parse_int32_at_12(), _parse_pt_raw_for_packet_ch(), _parse_raw_signed(), and _process_raw_and_write_calibrated().
Referenced by run_ws_server().
| calibration_server.run_http_server | ( | host, | |
| port ) |
Definition at line 867 of file calibration_server.py.
| calibration_server.run_ws_server | ( | host, | |
| port ) |
Definition at line 886 of file calibration_server.py.
References relay_subscriber_task().
| calibration_server.ws_handler | ( | websocket | ) |
Definition at line 873 of file calibration_server.py.
|
protected |
Definition at line 381 of file calibration_server.py.
|
protected |
Definition at line 182 of file calibration_server.py.
|
protected |
Definition at line 183 of file calibration_server.py.
|
protected |
Definition at line 176 of file calibration_server.py.
|
protected |
Definition at line 177 of file calibration_server.py.
|
protected |
Definition at line 175 of file calibration_server.py.
|
protected |
Definition at line 245 of file calibration_server.py.
| calibration_server.config | ( | void | ) | = load_config() |
Definition at line 45 of file calibration_server.py.
| calibration_server.format |
Definition at line 40 of file calibration_server.py.
| calibration_server.host = sidecar_cfg.get("host", "127.0.0.1") |
Definition at line 902 of file calibration_server.py.
| calibration_server.http_thread |
Definition at line 905 of file calibration_server.py.
| calibration_server.INFO |
Definition at line 40 of file calibration_server.py.
| calibration_server.level |
Definition at line 40 of file calibration_server.py.
| calibration_server.logger = logging.getLogger("CalibrationServer") |
Definition at line 42 of file calibration_server.py.
| calibration_server.pending_alerts |
Definition at line 921 of file calibration_server.py.
| calibration_server.port = sidecar_cfg.get("port", 8100) |
Definition at line 903 of file calibration_server.py.
| calibration_server.running |
Definition at line 944 of file calibration_server.py.
| calibration_server.sidecar_cfg = config.get("calibration", {}).get("sidecar", {}) |
Definition at line 901 of file calibration_server.py.
| calibration_server.state = ServerState() |
Definition at line 573 of file calibration_server.py.
| calibration_server.ws_thread |
Definition at line 908 of file calibration_server.py.