|
STAR
Cal STAR — firmware, DAQ server, and engine design
|
Public Member Functions | |
| __init__ (self, int udp_port=None, Optional[str] board_ip=None) | |
| set_reference_pressure (self, int sensor_id, float pressure_psi) | |
| set_reference_pressures (self, Dict[int, float] pressures) | |
| set_reference_all (self, float pressure_psi, int num_channels=None) | |
| start (self) | |
| stop (self) | |
| collect_samples (self, float duration_sec=5.0) | |
| save_calibrations (self) | |
| dict | get_status (self) |
| print_status (self) | |
Public Attributes | |
| udp_port = udp_port | |
| board_ip = board_ip | |
| bool | udp_connected = False |
| dict | sensor_states = {} |
| dict | reference_pressures = {} |
| Dict[int, deque] | live_adc = defaultdict(lambda: deque(maxlen=200)) |
| int | min_calibration_points = 5 |
| int | target_calibration_points = 10 |
| int | max_calibration_points = 20 |
| float | min_r_squared = 0.95 |
| float | target_r_squared = 0.99 |
| bool | running = False |
| bool | collecting = False |
| Optional[threading.Thread] | data_thread = None |
| dict | stats |
Protected Member Functions | |
| _data_collection_loop (self) | |
| _process_pt_sample (self, int sensor_id, int adc_signed, int adc_raw) | |
| _add_calibration_point (self, CalibrationPoint point) | |
| _auto_fit_calibrations (self) | |
| bool | _fit_calibration (self, int sensor_id) |
Static Protected Member Functions | |
| Optional[List[Tuple[int, int, int]]] | _parse_sensor_packet (bytes data) |
Autonomous PT calibration system that automatically calibrates sensors by listening to raw DiabloAvionics UDP packets and collecting calibration points at known reference pressures. Data path: Board → UDP → this script (direct, no middleware needed)
Definition at line 138 of file autonomous_pt_calibration.py.
| autonomous_pt_calibration.AutonomousPTCalibrator.__init__ | ( | self, | |
| int | udp_port = None, | ||
| Optional[str] | board_ip = None ) |
Definition at line 147 of file autonomous_pt_calibration.py.
References autonomous_pt_calibration._default_board_ip(), and autonomous_pt_calibration._default_port().
|
protected |
Add a calibration point for a sensor
Definition at line 388 of file autonomous_pt_calibration.py.
Referenced by _data_collection_loop(), and _process_pt_sample().
|
protected |
Automatically fit calibration polynomials when enough points are collected
Definition at line 415 of file autonomous_pt_calibration.py.
Referenced by _data_collection_loop().
|
protected |
Main data collection loop — reads raw UDP packets from boards
Definition at line 290 of file autonomous_pt_calibration.py.
References _add_calibration_point(), robust_pt_calibration_gui.RobustPTCalibrationGUI._add_calibration_point, _auto_fit_calibrations(), autonomous_lc_calibration.AutonomousLCCalibrator._parse_sensor_packet(), _parse_sensor_packet(), autonomous_lc_calibration.AutonomousLCCalibrator.board_ip, board_ip, fsw::config::BoardConfiguration.board_ip, fsw::config::SensorAssignment.board_ip, fsw::control::ControllerService::PWMTarget.board_ip, sequencer::ActuatorRole.board_ip, autonomous_lc_calibration.AutonomousLCCalibrator.collecting, collecting, autonomous_lc_calibration.AutonomousLCCalibrator.live_adc, live_adc, max, min, reference_pressures, autonomous_lc_calibration.AutonomousLCCalibrator.running, running, board_simulator.SimulatedBoard.running, autonomous_lc_calibration.AutonomousLCCalibrator.save_calibrations(), save_calibrations(), calibration_orchestrator_gui.CalibrationOrchestratorGUI.save_calibrations, autonomous_lc_calibration.AutonomousLCCalibrator.stats, stats, emmc_log_t.stats, fsw::time::BoardClockSync::BoardState.stats, time.time(), autonomous_lc_calibration.AutonomousLCCalibrator.udp_connected, udp_connected, autonomous_lc_calibration.AutonomousLCCalibrator.udp_port, and udp_port.
Referenced by start().
|
protected |
Fit calibration polynomial for a sensor
Definition at line 430 of file autonomous_pt_calibration.py.
|
staticprotected |
Parse a DiabloAvionics sensor data packet. Returns list of (sensor_id, adc_signed, adc_raw) or None.
Definition at line 194 of file autonomous_pt_calibration.py.
Referenced by _data_collection_loop(), autonomous_rtd_calibration.AutonomousRTDCalibrator._listen(), and autonomous_tc_calibration.AutonomousTCCalibrator._listen().
|
protected |
Process a single PT ADC sample.
Definition at line 370 of file autonomous_pt_calibration.py.
References _add_calibration_point(), robust_pt_calibration_gui.RobustPTCalibrationGUI._add_calibration_point, autonomous_lc_calibration.AutonomousLCCalibrator.collecting, collecting, autonomous_lc_calibration.AutonomousLCCalibrator.live_adc, live_adc, reference_pressures, and time.time().
| autonomous_pt_calibration.AutonomousPTCalibrator.collect_samples | ( | self, | |
| float | duration_sec = 5.0 ) |
Collect calibration points for `duration_sec` at current references.
Definition at line 273 of file autonomous_pt_calibration.py.
References autonomous_lc_calibration.AutonomousLCCalibrator.collecting, collecting, and reference_pressures.
| dict autonomous_pt_calibration.AutonomousPTCalibrator.get_status | ( | self | ) |
Get calibration status
Definition at line 544 of file autonomous_pt_calibration.py.
| autonomous_pt_calibration.AutonomousPTCalibrator.print_status | ( | self | ) |
Print calibration status
Definition at line 565 of file autonomous_pt_calibration.py.
| autonomous_pt_calibration.AutonomousPTCalibrator.save_calibrations | ( | self | ) |
Save all calibrations to JSON + CSV files (C++ stack reads both)
Definition at line 483 of file autonomous_pt_calibration.py.
Referenced by _data_collection_loop().
| autonomous_pt_calibration.AutonomousPTCalibrator.set_reference_all | ( | self, | |
| float | pressure_psi, | ||
| int | num_channels = None ) |
Set all channels to the same reference pressure (e.g. zero cal)
Definition at line 244 of file autonomous_pt_calibration.py.
References autonomous_pt_calibration._default_connectors(), and reference_pressures.
| autonomous_pt_calibration.AutonomousPTCalibrator.set_reference_pressure | ( | self, | |
| int | sensor_id, | ||
| float | pressure_psi ) |
Set reference pressure for a sensor (from gauge, regulator, etc.)
Definition at line 232 of file autonomous_pt_calibration.py.
References reference_pressures.
| autonomous_pt_calibration.AutonomousPTCalibrator.set_reference_pressures | ( | self, | |
| Dict[int, float] | pressures ) |
Set reference pressures for multiple sensors
Definition at line 239 of file autonomous_pt_calibration.py.
References reference_pressures.
| autonomous_pt_calibration.AutonomousPTCalibrator.start | ( | self | ) |
Start autonomous calibration (UDP listener thread)
Definition at line 256 of file autonomous_pt_calibration.py.
References _data_collection_loop(), autonomous_lc_calibration.AutonomousLCCalibrator.data_thread, data_thread, autonomous_lc_calibration.AutonomousLCCalibrator.running, running, board_simulator.SimulatedBoard.running, and start().
Referenced by start().
| autonomous_pt_calibration.AutonomousPTCalibrator.stop | ( | self | ) |
Stop autonomous calibration
Definition at line 266 of file autonomous_pt_calibration.py.
References autonomous_lc_calibration.AutonomousLCCalibrator.data_thread, data_thread, autonomous_lc_calibration.AutonomousLCCalibrator.running, running, and board_simulator.SimulatedBoard.running.
| autonomous_pt_calibration.AutonomousPTCalibrator.board_ip = board_ip |
Definition at line 153 of file autonomous_pt_calibration.py.
Referenced by _data_collection_loop(), autonomous_rtd_calibration.AutonomousRTDCalibrator._listen(), and autonomous_tc_calibration.AutonomousTCCalibrator._listen().
| bool autonomous_pt_calibration.AutonomousPTCalibrator.collecting = False |
Definition at line 176 of file autonomous_pt_calibration.py.
Referenced by calibration_orchestrator.CalibrationOrchestrator._collect(), _data_collection_loop(), autonomous_rtd_calibration.AutonomousRTDCalibrator._listen(), autonomous_tc_calibration.AutonomousTCCalibrator._listen(), _process_pt_sample(), collect_samples(), autonomous_rtd_calibration.AutonomousRTDCalibrator.collect_samples(), and autonomous_tc_calibration.AutonomousTCCalibrator.collect_samples().
| Optional[threading.Thread] autonomous_pt_calibration.AutonomousPTCalibrator.data_thread = None |
Definition at line 177 of file autonomous_pt_calibration.py.
Referenced by smart_calibration_gui.SmartCalibrationGUI.disconnect(), start(), autonomous_rtd_calibration.AutonomousRTDCalibrator.start(), autonomous_tc_calibration.AutonomousTCCalibrator.start(), stop(), autonomous_rtd_calibration.AutonomousRTDCalibrator.stop(), and autonomous_tc_calibration.AutonomousTCCalibrator.stop().
| Dict[int, deque] autonomous_pt_calibration.AutonomousPTCalibrator.live_adc = defaultdict(lambda: deque(maxlen=200)) |
Definition at line 163 of file autonomous_pt_calibration.py.
Referenced by calibration_orchestrator.CalibrationOrchestrator._adc_uncertainty(), _data_collection_loop(), autonomous_rtd_calibration.AutonomousRTDCalibrator._listen(), autonomous_tc_calibration.AutonomousTCCalibrator._listen(), calibration_orchestrator.CalibrationOrchestrator._online_update(), calibration_orchestrator.CalibrationOrchestrator._print_live(), calibration_orchestrator.CalibrationOrchestrator._print_status(), _process_pt_sample(), calibration_orchestrator.CalibrationOrchestrator._run_consensus_and_self_cal(), autonomous_rtd_calibration.AutonomousRTDCalibrator.print_status(), autonomous_tc_calibration.AutonomousTCCalibrator.print_status(), and calibration_orchestrator.CalibrationOrchestrator.propagate_zero_point().
| int autonomous_pt_calibration.AutonomousPTCalibrator.max_calibration_points = 20 |
Definition at line 168 of file autonomous_pt_calibration.py.
Referenced by autonomous_rtd_calibration.AutonomousRTDCalibrator._add_point(), and autonomous_tc_calibration.AutonomousTCCalibrator._add_point().
| int autonomous_pt_calibration.AutonomousPTCalibrator.min_calibration_points = 5 |
Definition at line 166 of file autonomous_pt_calibration.py.
Referenced by autonomous_rtd_calibration.AutonomousRTDCalibrator.auto_fit(), and autonomous_tc_calibration.AutonomousTCCalibrator.auto_fit().
| float autonomous_pt_calibration.AutonomousPTCalibrator.min_r_squared = 0.95 |
Definition at line 171 of file autonomous_pt_calibration.py.
Referenced by autonomous_rtd_calibration.AutonomousRTDCalibrator.auto_fit(), and autonomous_tc_calibration.AutonomousTCCalibrator.auto_fit().
| dict autonomous_pt_calibration.AutonomousPTCalibrator.reference_pressures = {} |
Definition at line 160 of file autonomous_pt_calibration.py.
Referenced by _data_collection_loop(), _process_pt_sample(), collect_samples(), set_reference_all(), set_reference_pressure(), and set_reference_pressures().
| bool autonomous_pt_calibration.AutonomousPTCalibrator.running = False |
Definition at line 175 of file autonomous_pt_calibration.py.
Referenced by calibration_orchestrator.CalibrationOrchestrator._collect(), _data_collection_loop(), autonomous_rtd_calibration.AutonomousRTDCalibrator._listen(), autonomous_tc_calibration.AutonomousTCCalibrator._listen(), imu_calibration_gui.UDPReceiver.run(), calibration_orchestrator.CalibrationOrchestrator.run_phase1(), calibration_orchestrator.CalibrationOrchestrator.run_phase2(), start(), autonomous_rtd_calibration.AutonomousRTDCalibrator.start(), autonomous_tc_calibration.AutonomousTCCalibrator.start(), calibration_orchestrator.CalibrationOrchestrator.start_receiver(), stop(), autonomous_rtd_calibration.AutonomousRTDCalibrator.stop(), autonomous_tc_calibration.AutonomousTCCalibrator.stop(), and calibration_orchestrator.CalibrationOrchestrator.stop().
| dict autonomous_pt_calibration.AutonomousPTCalibrator.sensor_states = {} |
Definition at line 157 of file autonomous_pt_calibration.py.
Referenced by autonomous_rtd_calibration.AutonomousRTDCalibrator._add_point(), autonomous_tc_calibration.AutonomousTCCalibrator._add_point(), autonomous_rtd_calibration.AutonomousRTDCalibrator.auto_fit(), autonomous_tc_calibration.AutonomousTCCalibrator.auto_fit(), smart_calibration_gui.SmartCalibrationGUI.confirm_human_input(), smart_calibration_gui.SmartCalibrationGUI.get_confidence_level(), autonomous_rtd_calibration.AutonomousRTDCalibrator.print_status(), autonomous_tc_calibration.AutonomousTCCalibrator.print_status(), smart_calibration_gui.SmartCalibrationGUI.process_measurement(), autonomous_rtd_calibration.AutonomousRTDCalibrator.save_calibrations(), autonomous_tc_calibration.AutonomousTCCalibrator.save_calibrations(), smart_calibration_gui.SmartCalibrationGUI.save_learning_state(), smart_calibration_gui.SmartCalibrationGUI.should_request_human_input(), smart_calibration_gui.SmartCalibrationGUI.update_performance_indicators(), and smart_calibration_gui.SmartCalibrationGUI.update_statistics().
| dict autonomous_pt_calibration.AutonomousPTCalibrator.stats |
Definition at line 180 of file autonomous_pt_calibration.py.
Referenced by autonomous_rtd_calibration.AutonomousRTDCalibrator._add_point(), autonomous_tc_calibration.AutonomousTCCalibrator._add_point(), calibration_orchestrator.CalibrationOrchestrator._collect(), _data_collection_loop(), autonomous_rtd_calibration.AutonomousRTDCalibrator._listen(), autonomous_tc_calibration.AutonomousTCCalibrator._listen(), calibration_orchestrator.CalibrationOrchestrator._online_update(), calibration_orchestrator.CalibrationOrchestrator._print_status(), calibration_orchestrator.CalibrationOrchestrator._run_consensus_and_self_cal(), calibration_orchestrator.CalibrationOrchestrator._save_all(), calibration_orchestrator.CalibrationOrchestrator._tls_bayesian_fit_all(), autonomous_rtd_calibration.AutonomousRTDCalibrator.auto_fit(), autonomous_tc_calibration.AutonomousTCCalibrator.auto_fit(), and calibration_orchestrator.UDPSensorReceiver.run().
| int autonomous_pt_calibration.AutonomousPTCalibrator.target_calibration_points = 10 |
Definition at line 167 of file autonomous_pt_calibration.py.
Referenced by autonomous_rtd_calibration.AutonomousRTDCalibrator.auto_fit(), and autonomous_tc_calibration.AutonomousTCCalibrator.auto_fit().
| float autonomous_pt_calibration.AutonomousPTCalibrator.target_r_squared = 0.99 |
Definition at line 172 of file autonomous_pt_calibration.py.
Referenced by autonomous_rtd_calibration.AutonomousRTDCalibrator.auto_fit(), and autonomous_tc_calibration.AutonomousTCCalibrator.auto_fit().
| bool autonomous_pt_calibration.AutonomousPTCalibrator.udp_connected = False |
Definition at line 154 of file autonomous_pt_calibration.py.
Referenced by _data_collection_loop(), autonomous_rtd_calibration.AutonomousRTDCalibrator._listen(), and autonomous_tc_calibration.AutonomousTCCalibrator._listen().
| autonomous_pt_calibration.AutonomousPTCalibrator.udp_port = udp_port |
Definition at line 152 of file autonomous_pt_calibration.py.
Referenced by _data_collection_loop(), autonomous_rtd_calibration.AutonomousRTDCalibrator._listen(), and autonomous_tc_calibration.AutonomousTCCalibrator._listen().