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

Public Member Functions

 __init__ (self)
 setup_gui (self)
 setup_control_panel (self, parent)
 setup_data_display (self, parent)
 setup_realtime_plots (self, parent)
 setup_status_bar (self, parent)
 get_available_ports (self)
 setup_serial (self)
 on_data_source_changed (self, event=None)
 start_data_processing (self)
 data_processor (self)
 process_elodin_message (self, msg)
float apply_kalman_filter_adc (self, float adc_code, int sensor_id)
float apply_kalman_filter (self, float voltage, int sensor_id)
 update_performance_stats (self)
 update_gui (self)
 update_plots (self)
 toggle_connection (self)
 connect (self)
 disconnect (self)
 toggle_calibration (self)
 record_calibration_point (self)
 fit_calibration (self)
 save_calibration (self)
 run (self)
 cleanup (self)

Public Attributes

 root = tk.Tk()
dict pt_measurements
list calibration_points = []
dict calibration_polynomials = {}
dict reference_gauges = {}
dict gauge_mapping = {}
dict latest_measurements = {}
 data_queue = queue.Queue(maxsize=1000)
bool calibration_active = False
bool recording_data = False
Optional[serial.Serial] serial_connection = None
Optional[threading.Thread] serial_thread = None
 stop_serial = threading.Event()
Optional[ElodinClient] elodin_client = None
Optional[threading.Thread] elodin_thread = None
bool use_elodin = False
bool elodin_connected = False
dict performance_stats
 data_source_var = tk.StringVar(value="Serial")
 on_data_source_changed
 port_var = tk.StringVar(value="/dev/ttyUSB0")
 connect_btn
 elodin_status_label
 calibration_btn
 record_btn
 fit_btn
 save_btn
list ref_pressures = []
 data_tree
 fig = Figure(figsize=(8, 6), dpi=100)
 ax_voltage = self.fig.add_subplot(2, 1, 1)
 ax_pressure = self.fig.add_subplot(2, 1, 2)
 canvas = FigureCanvasTkAgg(self.fig, plot_frame)
dict plot_data
 status_var = tk.StringVar(value="Ready")
 data_rate_var = tk.StringVar(value="Data Rate: 0 Hz")
 latency_var = tk.StringVar(value="Latency: 0 ms")
 data_thread = threading.Thread(target=self.data_processor, daemon=True)
dict kalman_states_adc = {}
dict kalman_states = {}
 update_gui

Detailed Description

High-performance calibration GUI with real-time feedback

Definition at line 79 of file pt_calibration_gui.py.

Constructor & Destructor Documentation

◆ __init__()

pt_calibration_gui.HighPerformanceCalibrationGUI.__init__ ( self)

Definition at line 82 of file pt_calibration_gui.py.

Member Function Documentation

◆ apply_kalman_filter()

float pt_calibration_gui.HighPerformanceCalibrationGUI.apply_kalman_filter ( self,
float voltage,
int sensor_id )
Apply Kalman filter for voltage (for display only)

Definition at line 668 of file pt_calibration_gui.py.

Referenced by smart_calibration_gui.SmartCalibrationGUI._drain_synced().

◆ apply_kalman_filter_adc()

float pt_calibration_gui.HighPerformanceCalibrationGUI.apply_kalman_filter_adc ( self,
float adc_code,
int sensor_id )
Apply Kalman filter for high-performance ADC code filtering

Definition at line 642 of file pt_calibration_gui.py.

◆ cleanup()

pt_calibration_gui.HighPerformanceCalibrationGUI.cleanup ( self)
Cleanup resources

Definition at line 983 of file pt_calibration_gui.py.

Referenced by smart_calibration_gui.SmartCalibrationGUI.run().

◆ connect()

pt_calibration_gui.HighPerformanceCalibrationGUI.connect ( self)
Connect to data source (Serial or Elodin)

Definition at line 801 of file pt_calibration_gui.py.

Referenced by smart_calibration_gui.SmartCalibrationGUI.toggle_connection().

◆ data_processor()

pt_calibration_gui.HighPerformanceCalibrationGUI.data_processor ( self)
High-performance data processing thread

Definition at line 472 of file pt_calibration_gui.py.

◆ disconnect()

pt_calibration_gui.HighPerformanceCalibrationGUI.disconnect ( self)
Disconnect from data source

Definition at line 820 of file pt_calibration_gui.py.

Referenced by smart_calibration_gui.SmartCalibrationGUI.toggle_connection().

◆ fit_calibration()

pt_calibration_gui.HighPerformanceCalibrationGUI.fit_calibration ( self)
Fit calibration polynomials

Definition at line 895 of file pt_calibration_gui.py.

◆ get_available_ports()

pt_calibration_gui.HighPerformanceCalibrationGUI.get_available_ports ( self)
Get list of available serial ports

Definition at line 371 of file pt_calibration_gui.py.

◆ on_data_source_changed()

pt_calibration_gui.HighPerformanceCalibrationGUI.on_data_source_changed ( self,
event = None )
Handle data source change

Definition at line 419 of file pt_calibration_gui.py.

◆ process_elodin_message()

pt_calibration_gui.HighPerformanceCalibrationGUI.process_elodin_message ( self,
msg )
Process PT message from Elodin

Definition at line 551 of file pt_calibration_gui.py.

◆ record_calibration_point()

pt_calibration_gui.HighPerformanceCalibrationGUI.record_calibration_point ( self)
Record current measurements as calibration point

Definition at line 848 of file pt_calibration_gui.py.

◆ run()

pt_calibration_gui.HighPerformanceCalibrationGUI.run ( self)
Run the GUI

Definition at line 974 of file pt_calibration_gui.py.

◆ save_calibration()

pt_calibration_gui.HighPerformanceCalibrationGUI.save_calibration ( self)
Save calibration data

Definition at line 942 of file pt_calibration_gui.py.

◆ setup_control_panel()

pt_calibration_gui.HighPerformanceCalibrationGUI.setup_control_panel ( self,
parent )
Setup control panel

Definition at line 163 of file pt_calibration_gui.py.

Referenced by setup_gui(), and smart_calibration_gui.SmartCalibrationGUI.setup_gui().

◆ setup_data_display()

pt_calibration_gui.HighPerformanceCalibrationGUI.setup_data_display ( self,
parent )
Setup real-time data display

Definition at line 257 of file pt_calibration_gui.py.

Referenced by setup_gui(), and smart_calibration_gui.SmartCalibrationGUI.setup_gui().

◆ setup_gui()

◆ setup_realtime_plots()

pt_calibration_gui.HighPerformanceCalibrationGUI.setup_realtime_plots ( self,
parent )
Setup real-time plotting area

Definition at line 308 of file pt_calibration_gui.py.

Referenced by setup_gui(), and smart_calibration_gui.SmartCalibrationGUI.setup_gui().

◆ setup_serial()

pt_calibration_gui.HighPerformanceCalibrationGUI.setup_serial ( self)
Setup serial connection

Definition at line 391 of file pt_calibration_gui.py.

Referenced by smart_calibration_gui.SmartCalibrationGUI.connect().

◆ setup_status_bar()

pt_calibration_gui.HighPerformanceCalibrationGUI.setup_status_bar ( self,
parent )
Setup status bar

Definition at line 344 of file pt_calibration_gui.py.

Referenced by setup_gui().

◆ start_data_processing()

pt_calibration_gui.HighPerformanceCalibrationGUI.start_data_processing ( self)
Start the data processing thread

Definition at line 464 of file pt_calibration_gui.py.

Referenced by smart_calibration_gui.SmartCalibrationGUI.connect().

◆ toggle_calibration()

pt_calibration_gui.HighPerformanceCalibrationGUI.toggle_calibration ( self)
Toggle calibration mode

Definition at line 835 of file pt_calibration_gui.py.

◆ toggle_connection()

pt_calibration_gui.HighPerformanceCalibrationGUI.toggle_connection ( self)
Toggle data source connection

Definition at line 788 of file pt_calibration_gui.py.

◆ update_gui()

pt_calibration_gui.HighPerformanceCalibrationGUI.update_gui ( self)
Update GUI elements

Definition at line 701 of file pt_calibration_gui.py.

◆ update_performance_stats()

pt_calibration_gui.HighPerformanceCalibrationGUI.update_performance_stats ( self)
Update performance statistics

Definition at line 689 of file pt_calibration_gui.py.

Referenced by smart_calibration_gui.SmartCalibrationGUI.data_processor().

◆ update_plots()

pt_calibration_gui.HighPerformanceCalibrationGUI.update_plots ( self)
Update real-time plots

Definition at line 736 of file pt_calibration_gui.py.

Referenced by smart_calibration_gui.SmartCalibrationGUI.update_gui().

Member Data Documentation

◆ ax_pressure

pt_calibration_gui.HighPerformanceCalibrationGUI.ax_pressure = self.fig.add_subplot(2, 1, 2)

◆ ax_voltage

pt_calibration_gui.HighPerformanceCalibrationGUI.ax_voltage = self.fig.add_subplot(2, 1, 1)

◆ calibration_active

bool pt_calibration_gui.HighPerformanceCalibrationGUI.calibration_active = False

Definition at line 100 of file pt_calibration_gui.py.

◆ calibration_btn

pt_calibration_gui.HighPerformanceCalibrationGUI.calibration_btn
Initial value:
= ttk.Button(
calib_frame,
text="Start Calibration",
command=self.toggle_calibration,
state="disabled",
)

Definition at line 213 of file pt_calibration_gui.py.

◆ calibration_points

◆ calibration_polynomials

dict pt_calibration_gui.HighPerformanceCalibrationGUI.calibration_polynomials = {}

Definition at line 93 of file pt_calibration_gui.py.

◆ canvas

pt_calibration_gui.HighPerformanceCalibrationGUI.canvas = FigureCanvasTkAgg(self.fig, plot_frame)

◆ connect_btn

pt_calibration_gui.HighPerformanceCalibrationGUI.connect_btn
Initial value:
= ttk.Button(
conn_frame, text="Connect", command=self.toggle_connection
)

Definition at line 198 of file pt_calibration_gui.py.

Referenced by smart_calibration_gui.SmartCalibrationGUI.connect(), and smart_calibration_gui.SmartCalibrationGUI.disconnect().

◆ data_queue

pt_calibration_gui.HighPerformanceCalibrationGUI.data_queue = queue.Queue(maxsize=1000)

◆ data_rate_var

pt_calibration_gui.HighPerformanceCalibrationGUI.data_rate_var = tk.StringVar(value="Data Rate: 0 Hz")

◆ data_source_var

pt_calibration_gui.HighPerformanceCalibrationGUI.data_source_var = tk.StringVar(value="Serial")

Definition at line 177 of file pt_calibration_gui.py.

◆ data_thread

pt_calibration_gui.HighPerformanceCalibrationGUI.data_thread = threading.Thread(target=self.data_processor, daemon=True)

◆ data_tree

pt_calibration_gui.HighPerformanceCalibrationGUI.data_tree
Initial value:
= ttk.Treeview(
data_frame, columns=columns, show="headings", height=10
)

Definition at line 271 of file pt_calibration_gui.py.

Referenced by smart_calibration_gui.SmartCalibrationGUI.update_data_tree().

◆ elodin_client

Optional[ElodinClient] pt_calibration_gui.HighPerformanceCalibrationGUI.elodin_client = None

Definition at line 109 of file pt_calibration_gui.py.

◆ elodin_connected

bool pt_calibration_gui.HighPerformanceCalibrationGUI.elodin_connected = False

Definition at line 112 of file pt_calibration_gui.py.

◆ elodin_status_label

pt_calibration_gui.HighPerformanceCalibrationGUI.elodin_status_label
Initial value:
= ttk.Label(
conn_frame, text="Elodin: Not Connected", foreground="gray"
)

Definition at line 204 of file pt_calibration_gui.py.

◆ elodin_thread

Optional[threading.Thread] pt_calibration_gui.HighPerformanceCalibrationGUI.elodin_thread = None

Definition at line 110 of file pt_calibration_gui.py.

◆ fig

pt_calibration_gui.HighPerformanceCalibrationGUI.fig = Figure(figsize=(8, 6), dpi=100)

Definition at line 314 of file pt_calibration_gui.py.

◆ fit_btn

pt_calibration_gui.HighPerformanceCalibrationGUI.fit_btn
Initial value:
= ttk.Button(
calib_frame,
text="Fit Calibration",
command=self.fit_calibration,
state="disabled",
)

Definition at line 229 of file pt_calibration_gui.py.

◆ gauge_mapping

dict pt_calibration_gui.HighPerformanceCalibrationGUI.gauge_mapping = {}

Definition at line 95 of file pt_calibration_gui.py.

◆ kalman_states

dict pt_calibration_gui.HighPerformanceCalibrationGUI.kalman_states = {}

Definition at line 671 of file pt_calibration_gui.py.

◆ kalman_states_adc

dict pt_calibration_gui.HighPerformanceCalibrationGUI.kalman_states_adc = {}

Definition at line 645 of file pt_calibration_gui.py.

◆ latency_var

pt_calibration_gui.HighPerformanceCalibrationGUI.latency_var = tk.StringVar(value="Latency: 0 ms")

◆ latest_measurements

◆ on_data_source_changed

pt_calibration_gui.HighPerformanceCalibrationGUI.on_data_source_changed

Definition at line 186 of file pt_calibration_gui.py.

◆ performance_stats

dict pt_calibration_gui.HighPerformanceCalibrationGUI.performance_stats
Initial value:
= {
"data_rate_hz": 0.0,
"latency_ms": 0.0,
"packet_loss_rate": 0.0,
"last_update": time.time(),
}
TOML_NODISCARD_CTOR time() noexcept=default

Definition at line 115 of file pt_calibration_gui.py.

Referenced by smart_calibration_gui.SmartCalibrationGUI.update_performance_stats().

◆ plot_data

dict pt_calibration_gui.HighPerformanceCalibrationGUI.plot_data
Initial value:
= {
"time": deque(maxlen=1000),
"voltages": {i: deque(maxlen=1000) for i in range(9)},
"pressures": {i: deque(maxlen=1000) for i in range(9)},
}

Definition at line 338 of file pt_calibration_gui.py.

Referenced by smart_calibration_gui.SmartCalibrationGUI.update_plots().

◆ port_var

pt_calibration_gui.HighPerformanceCalibrationGUI.port_var = tk.StringVar(value="/dev/ttyUSB0")

◆ pt_measurements

dict pt_calibration_gui.HighPerformanceCalibrationGUI.pt_measurements
Initial value:
= {
i: deque(maxlen=1000) for i in range(9)
}

Definition at line 89 of file pt_calibration_gui.py.

◆ record_btn

pt_calibration_gui.HighPerformanceCalibrationGUI.record_btn
Initial value:
= ttk.Button(
calib_frame,
text="Record Data Point",
command=self.record_calibration_point,
state="disabled",
)

Definition at line 221 of file pt_calibration_gui.py.

◆ recording_data

bool pt_calibration_gui.HighPerformanceCalibrationGUI.recording_data = False

◆ ref_pressures

pt_calibration_gui.HighPerformanceCalibrationGUI.ref_pressures = []

Definition at line 250 of file pt_calibration_gui.py.

◆ reference_gauges

dict pt_calibration_gui.HighPerformanceCalibrationGUI.reference_gauges = {}

Definition at line 94 of file pt_calibration_gui.py.

◆ root

pt_calibration_gui.HighPerformanceCalibrationGUI.root = tk.Tk()

◆ save_btn

pt_calibration_gui.HighPerformanceCalibrationGUI.save_btn
Initial value:
= ttk.Button(
calib_frame,
text="Save Calibration",
command=self.save_calibration,
state="disabled",
)

Definition at line 237 of file pt_calibration_gui.py.

◆ serial_connection

◆ serial_thread

Optional[threading.Thread] pt_calibration_gui.HighPerformanceCalibrationGUI.serial_thread = None

Definition at line 105 of file pt_calibration_gui.py.

◆ status_var

◆ stop_serial

◆ update_gui

pt_calibration_gui.HighPerformanceCalibrationGUI.update_gui

Definition at line 734 of file pt_calibration_gui.py.

◆ use_elodin

bool pt_calibration_gui.HighPerformanceCalibrationGUI.use_elodin = False

Definition at line 111 of file pt_calibration_gui.py.


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