STAR
Cal STAR — firmware, DAQ server, and engine design
Loading...
Searching...
No Matches
autonomous_pt_calibration.AutonomousPTCalibrator Class Reference

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)

Detailed Description

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.

Constructor & Destructor Documentation

◆ __init__()

autonomous_pt_calibration.AutonomousPTCalibrator.__init__ ( self,
int udp_port = None,
Optional[str] board_ip = None )

Member Function Documentation

◆ _add_calibration_point()

autonomous_pt_calibration.AutonomousPTCalibrator._add_calibration_point ( self,
CalibrationPoint point )
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().

◆ _auto_fit_calibrations()

autonomous_pt_calibration.AutonomousPTCalibrator._auto_fit_calibrations ( self)
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().

◆ _data_collection_loop()

◆ _fit_calibration()

bool autonomous_pt_calibration.AutonomousPTCalibrator._fit_calibration ( self,
int sensor_id )
protected
Fit calibration polynomial for a sensor

Definition at line 430 of file autonomous_pt_calibration.py.

◆ _parse_sensor_packet()

Optional[List[Tuple[int, int, int]]] autonomous_pt_calibration.AutonomousPTCalibrator._parse_sensor_packet ( bytes data)
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().

◆ _process_pt_sample()

autonomous_pt_calibration.AutonomousPTCalibrator._process_pt_sample ( self,
int sensor_id,
int adc_signed,
int adc_raw )
protected

◆ collect_samples()

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.

◆ get_status()

dict autonomous_pt_calibration.AutonomousPTCalibrator.get_status ( self)
Get calibration status

Definition at line 544 of file autonomous_pt_calibration.py.

◆ print_status()

autonomous_pt_calibration.AutonomousPTCalibrator.print_status ( self)
Print calibration status

Definition at line 565 of file autonomous_pt_calibration.py.

◆ save_calibrations()

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().

◆ set_reference_all()

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.

◆ set_reference_pressure()

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.

◆ set_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.

◆ start()

autonomous_pt_calibration.AutonomousPTCalibrator.start ( self)

◆ stop()

autonomous_pt_calibration.AutonomousPTCalibrator.stop ( self)

Member Data Documentation

◆ board_ip

autonomous_pt_calibration.AutonomousPTCalibrator.board_ip = board_ip

◆ collecting

◆ data_thread

◆ live_adc

◆ max_calibration_points

int autonomous_pt_calibration.AutonomousPTCalibrator.max_calibration_points = 20

◆ min_calibration_points

int autonomous_pt_calibration.AutonomousPTCalibrator.min_calibration_points = 5

◆ min_r_squared

float autonomous_pt_calibration.AutonomousPTCalibrator.min_r_squared = 0.95

◆ reference_pressures

dict autonomous_pt_calibration.AutonomousPTCalibrator.reference_pressures = {}

◆ running

◆ sensor_states

◆ stats

◆ target_calibration_points

int autonomous_pt_calibration.AutonomousPTCalibrator.target_calibration_points = 10

◆ target_r_squared

float autonomous_pt_calibration.AutonomousPTCalibrator.target_r_squared = 0.99

◆ udp_connected

bool autonomous_pt_calibration.AutonomousPTCalibrator.udp_connected = False

◆ udp_port

autonomous_pt_calibration.AutonomousPTCalibrator.udp_port = udp_port

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