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

Public Member Functions

 __init__ (self)
 setup_gui (self)
 setup_control_panel (self, parent)
 setup_data_display (self, parent)
 setup_human_input_panel (self, parent)
 setup_realtime_plots (self, parent)
 setup_status_panel (self, parent)
 get_available_ports (self)
 setup_serial (self)
 start_data_processing (self)
 data_processor (self)
float apply_kalman_filter (self, float voltage, int sensor_id)
float predict_pressure (self, int sensor_id, float voltage)
bool can_use_covariance_mapping (self, int sensor_id)
float predict_pressure_covariance (self, int sensor_id, float voltage)
float get_pt_covariance_factor (self, int target_pt, int reference_pt)
bool should_request_human_input_robust (self, int sensor_id, Dict measurement)
bool should_request_human_input (self, int sensor_id, Dict measurement)
bool is_extrapolation (self, int sensor_id, float voltage)
str get_confidence_level (self, int sensor_id)
 update_performance_stats (self)
 update_gui (self)
 process_measurement (self, Dict measurement)
 create_human_input_request (self, int sensor_id, Dict measurement)
 update_data_tree (self)
 update_requests_listbox (self)
 update_plots (self)
 update_statistics (self)
 update_performance_indicators (self)
 toggle_connection (self)
 connect (self)
 disconnect (self)
 start_learning (self)
 stop_learning (self)
 toggle_autonomous_mode (self)
 confirm_human_input (self)
 skip_human_input (self)
 validate_prediction (self)
 save_learning_state (self)
 run (self)
 cleanup (self)

Public Attributes

 root = tk.Tk()
dict sensor_states = {}
list pending_requests = []
dict latest_measurements = {}
dict calibration_frameworks
dict calibration_data = {i: [] for i in range(9)}
 HEADER_STRUCT = struct.Struct("<4sBBHHII")
 RECORD_STRUCT = struct.Struct("<BBiiII")
str MAGIC = b"AD26"
int PACKET_VERSION = 2
int CRC_SIZE_OPTIONAL = 4
 HEADER_SIZE = self.HEADER_STRUCT.size
 RECORD_SIZE = self.RECORD_STRUCT.size
int PACKET_RECORDS = 10
int FLAG_TIMING = 0x01
tuple MAX_PACKET_BYTES
int INT32_MIN = -2147483648
int UINT32_MAX = 0xFFFFFFFF
float V_REF = 2.5
float ADC_SCALE = 2147483648.0
 data_queue = queue.Queue(maxsize=1000)
bool recording_data = False
bool autonomous_mode = False
dict recent_data = {i: [] for i in range(9)}
dict last_update_time = {i: 0.0 for i in range(9)}
Optional[serial.Serial] serial_connection = None
Optional[threading.Thread] serial_thread = None
 stop_serial = threading.Event()
bool synced = False
dict performance_stats
 port_var = tk.StringVar(value="/dev/ttyACM0")
 connect_btn
 autonomous_btn
 learn_btn
 validate_btn
 save_btn
 data_tree
 requests_listbox
 selected_sensor_var = tk.StringVar()
 ref_pressure_var = tk.StringVar()
 confirm_btn
 skip_btn
dict progress_vars = {}
dict progress_bars = {}
 fig = Figure(figsize=(10, 8), dpi=100)
 ax_voltage = self.fig.add_subplot(3, 1, 1)
 ax_pressure = self.fig.add_subplot(3, 1, 2)
 ax_confidence = self.fig.add_subplot(3, 1, 3)
 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")
 accuracy_var = tk.StringVar(value="Accuracy: 0%")
 autonomy_var = tk.StringVar(value="Autonomy: 0%")
 stats_tree
 data_thread = threading.Thread(target=self.data_processor, daemon=True)
dict kalman_states = {}
 update_gui

Protected Member Functions

 _resync (self, buffer)
 _drain_synced (self, buffer)

Detailed Description

Smart calibration GUI with progressive autonomy

Definition at line 74 of file smart_calibration_gui.py.

Constructor & Destructor Documentation

◆ __init__()

smart_calibration_gui.SmartCalibrationGUI.__init__ ( self)

Definition at line 77 of file smart_calibration_gui.py.

Member Function Documentation

◆ _drain_synced()

◆ _resync()

smart_calibration_gui.SmartCalibrationGUI._resync ( self,
buffer )
protected
EXACT copy from working channel_plotter.py

Definition at line 542 of file smart_calibration_gui.py.

References CRC_SIZE_OPTIONAL, FLAG_TIMING, HEADER_SIZE, HEADER_STRUCT, MAGIC, MAX_PACKET_BYTES, PACKET_RECORDS, PACKET_VERSION, and RECORD_SIZE.

Referenced by data_processor().

◆ apply_kalman_filter()

float smart_calibration_gui.SmartCalibrationGUI.apply_kalman_filter ( self,
float voltage,
int sensor_id )
Apply Kalman filter for high-performance voltage filtering

Definition at line 778 of file smart_calibration_gui.py.

Referenced by _drain_synced().

◆ can_use_covariance_mapping()

bool smart_calibration_gui.SmartCalibrationGUI.can_use_covariance_mapping ( self,
int sensor_id )
Check if we can use covariance mapping from other calibrated PTs

Definition at line 822 of file smart_calibration_gui.py.

References calibration_frameworks.

Referenced by _drain_synced().

◆ cleanup()

smart_calibration_gui.SmartCalibrationGUI.cleanup ( self)

◆ confirm_human_input()

◆ connect()

◆ create_human_input_request()

smart_calibration_gui.SmartCalibrationGUI.create_human_input_request ( self,
int sensor_id,
Dict measurement )

◆ data_processor()

◆ disconnect()

◆ get_available_ports()

smart_calibration_gui.SmartCalibrationGUI.get_available_ports ( self)
Get list of available serial ports

Definition at line 469 of file smart_calibration_gui.py.

◆ get_confidence_level()

◆ get_pt_covariance_factor()

float smart_calibration_gui.SmartCalibrationGUI.get_pt_covariance_factor ( self,
int target_pt,
int reference_pt )
Get covariance scaling factor between PTs

Definition at line 861 of file smart_calibration_gui.py.

Referenced by predict_pressure_covariance().

◆ is_extrapolation()

bool smart_calibration_gui.SmartCalibrationGUI.is_extrapolation ( self,
int sensor_id,
float voltage )
Check if voltage is outside calibration range

Definition at line 955 of file smart_calibration_gui.py.

References robust_pt_calibration_gui.BayesianPTCalibration.calibration_data, calibration_data, max, and min.

Referenced by should_request_human_input().

◆ predict_pressure()

float smart_calibration_gui.SmartCalibrationGUI.predict_pressure ( self,
int sensor_id,
float voltage )
Predict pressure from voltage using calibration data

Definition at line 803 of file smart_calibration_gui.py.

References robust_pt_calibration_gui.BayesianPTCalibration.calibration_data, calibration_data, and min.

◆ predict_pressure_covariance()

float smart_calibration_gui.SmartCalibrationGUI.predict_pressure_covariance ( self,
int sensor_id,
float voltage )
Predict pressure using covariance mapping from other calibrated PTs

Definition at line 832 of file smart_calibration_gui.py.

References calibration_frameworks, and get_pt_covariance_factor().

Referenced by _drain_synced().

◆ process_measurement()

◆ run()

◆ save_learning_state()

◆ setup_control_panel()

smart_calibration_gui.SmartCalibrationGUI.setup_control_panel ( self,
parent )
Setup control panel

Definition at line 165 of file smart_calibration_gui.py.

Referenced by setup_gui().

◆ setup_data_display()

smart_calibration_gui.SmartCalibrationGUI.setup_data_display ( self,
parent )
Setup real-time data display

Definition at line 223 of file smart_calibration_gui.py.

Referenced by setup_gui().

◆ setup_gui()

◆ setup_human_input_panel()

smart_calibration_gui.SmartCalibrationGUI.setup_human_input_panel ( self,
parent )
Setup human input panel

Definition at line 274 of file smart_calibration_gui.py.

Referenced by setup_gui().

◆ setup_realtime_plots()

smart_calibration_gui.SmartCalibrationGUI.setup_realtime_plots ( self,
parent )
Setup real-time plotting area

Definition at line 352 of file smart_calibration_gui.py.

Referenced by setup_gui().

◆ setup_serial()

smart_calibration_gui.SmartCalibrationGUI.setup_serial ( self)

◆ setup_status_panel()

smart_calibration_gui.SmartCalibrationGUI.setup_status_panel ( self,
parent )
Setup status and statistics panel

Definition at line 395 of file smart_calibration_gui.py.

Referenced by setup_gui().

◆ should_request_human_input()

◆ should_request_human_input_robust()

bool smart_calibration_gui.SmartCalibrationGUI.should_request_human_input_robust ( self,
int sensor_id,
Dict measurement )
Robust human input decision using uncertainty quantification

Definition at line 896 of file smart_calibration_gui.py.

References calibration_frameworks.

Referenced by _drain_synced().

◆ skip_human_input()

smart_calibration_gui.SmartCalibrationGUI.skip_human_input ( self)
Skip human input request

Definition at line 1369 of file smart_calibration_gui.py.

References config, confirm_btn, pending_requests, skip_btn, and update_requests_listbox().

◆ start_data_processing()

smart_calibration_gui.SmartCalibrationGUI.start_data_processing ( self)
Start the data processing thread

Definition at line 534 of file smart_calibration_gui.py.

Referenced by connect().

◆ start_learning()

smart_calibration_gui.SmartCalibrationGUI.start_learning ( self)

◆ stop_learning()

smart_calibration_gui.SmartCalibrationGUI.stop_learning ( self)

◆ toggle_autonomous_mode()

smart_calibration_gui.SmartCalibrationGUI.toggle_autonomous_mode ( self)

◆ toggle_connection()

◆ update_data_tree()

smart_calibration_gui.SmartCalibrationGUI.update_data_tree ( self)

◆ update_gui()

◆ update_performance_indicators()

◆ update_performance_stats()

smart_calibration_gui.SmartCalibrationGUI.update_performance_stats ( self)
Update performance statistics

Definition at line 980 of file smart_calibration_gui.py.

References pt_calibration_gui.HighPerformanceCalibrationGUI.performance_stats, performance_stats, and time.time().

Referenced by data_processor().

◆ update_plots()

◆ update_requests_listbox()

smart_calibration_gui.SmartCalibrationGUI.update_requests_listbox ( self)
Update pending requests listbox

Definition at line 1083 of file smart_calibration_gui.py.

References insert(), pending_requests, and requests_listbox.

Referenced by confirm_human_input(), create_human_input_request(), and skip_human_input().

◆ update_statistics()

◆ validate_prediction()

smart_calibration_gui.SmartCalibrationGUI.validate_prediction ( self)
Validate system prediction

Definition at line 1380 of file smart_calibration_gui.py.

Member Data Documentation

◆ accuracy_var

smart_calibration_gui.SmartCalibrationGUI.accuracy_var = tk.StringVar(value="Accuracy: 0%")

Definition at line 417 of file smart_calibration_gui.py.

Referenced by update_performance_indicators().

◆ ADC_SCALE

float smart_calibration_gui.SmartCalibrationGUI.ADC_SCALE = 2147483648.0

Definition at line 115 of file smart_calibration_gui.py.

Referenced by _drain_synced().

◆ autonomous_btn

smart_calibration_gui.SmartCalibrationGUI.autonomous_btn
Initial value:
= ttk.Button(
smart_frame,
text="Enable Autonomous Mode",
command=self.toggle_autonomous_mode,
state="disabled",
)

Definition at line 191 of file smart_calibration_gui.py.

Referenced by disconnect(), start_learning(), and toggle_autonomous_mode().

◆ autonomous_mode

bool smart_calibration_gui.SmartCalibrationGUI.autonomous_mode = False

Definition at line 120 of file smart_calibration_gui.py.

Referenced by process_measurement(), and toggle_autonomous_mode().

◆ autonomy_var

smart_calibration_gui.SmartCalibrationGUI.autonomy_var = tk.StringVar(value="Autonomy: 0%")

Definition at line 418 of file smart_calibration_gui.py.

Referenced by update_performance_indicators().

◆ ax_confidence

smart_calibration_gui.SmartCalibrationGUI.ax_confidence = self.fig.add_subplot(3, 1, 3)

Definition at line 364 of file smart_calibration_gui.py.

Referenced by update_plots().

◆ ax_pressure

smart_calibration_gui.SmartCalibrationGUI.ax_pressure = self.fig.add_subplot(3, 1, 2)

Definition at line 363 of file smart_calibration_gui.py.

Referenced by update_plots().

◆ ax_voltage

smart_calibration_gui.SmartCalibrationGUI.ax_voltage = self.fig.add_subplot(3, 1, 1)

Definition at line 362 of file smart_calibration_gui.py.

Referenced by update_plots().

◆ calibration_data

dict smart_calibration_gui.SmartCalibrationGUI.calibration_data = {i: [] for i in range(9)}

◆ calibration_frameworks

dict smart_calibration_gui.SmartCalibrationGUI.calibration_frameworks
Initial value:
= {
i: RobustCalibrationFramework(i) for i in range(9)
}

Definition at line 88 of file smart_calibration_gui.py.

Referenced by _drain_synced(), can_use_covariance_mapping(), confirm_human_input(), predict_pressure_covariance(), and should_request_human_input_robust().

◆ canvas

smart_calibration_gui.SmartCalibrationGUI.canvas = FigureCanvasTkAgg(self.fig, plot_frame)

Definition at line 384 of file smart_calibration_gui.py.

Referenced by update_plots().

◆ confirm_btn

smart_calibration_gui.SmartCalibrationGUI.confirm_btn
Initial value:
= ttk.Button(
input_controls_frame,
text="Confirm Input",
command=self.confirm_human_input,
state="disabled",
)

Definition at line 306 of file smart_calibration_gui.py.

Referenced by confirm_human_input(), create_human_input_request(), and skip_human_input().

◆ connect_btn

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

Definition at line 182 of file smart_calibration_gui.py.

Referenced by connect(), and disconnect().

◆ CRC_SIZE_OPTIONAL

int smart_calibration_gui.SmartCalibrationGUI.CRC_SIZE_OPTIONAL = 4

Definition at line 102 of file smart_calibration_gui.py.

Referenced by _drain_synced(), and _resync().

◆ data_queue

smart_calibration_gui.SmartCalibrationGUI.data_queue = queue.Queue(maxsize=1000)

Definition at line 118 of file smart_calibration_gui.py.

Referenced by data_processor(), and update_gui().

◆ data_rate_var

smart_calibration_gui.SmartCalibrationGUI.data_rate_var = tk.StringVar(value="Data Rate: 0 Hz")

Definition at line 415 of file smart_calibration_gui.py.

Referenced by update_performance_indicators().

◆ data_thread

smart_calibration_gui.SmartCalibrationGUI.data_thread = threading.Thread(target=self.data_processor, daemon=True)

Definition at line 536 of file smart_calibration_gui.py.

Referenced by disconnect().

◆ data_tree

smart_calibration_gui.SmartCalibrationGUI.data_tree
Initial value:
= ttk.Treeview(
data_frame, columns=columns, show="headings", height=12
)

Definition at line 237 of file smart_calibration_gui.py.

Referenced by update_data_tree().

◆ fig

smart_calibration_gui.SmartCalibrationGUI.fig = Figure(figsize=(10, 8), dpi=100)

Definition at line 358 of file smart_calibration_gui.py.

◆ FLAG_TIMING

smart_calibration_gui.SmartCalibrationGUI.FLAG_TIMING = 0x01

Definition at line 106 of file smart_calibration_gui.py.

Referenced by _drain_synced(), and _resync().

◆ HEADER_SIZE

smart_calibration_gui.SmartCalibrationGUI.HEADER_SIZE = self.HEADER_STRUCT.size

Definition at line 103 of file smart_calibration_gui.py.

Referenced by _drain_synced(), and _resync().

◆ HEADER_STRUCT

smart_calibration_gui.SmartCalibrationGUI.HEADER_STRUCT = struct.Struct("<4sBBHHII")

Definition at line 96 of file smart_calibration_gui.py.

Referenced by _drain_synced(), and _resync().

◆ INT32_MIN

smart_calibration_gui.SmartCalibrationGUI.INT32_MIN = -2147483648

Definition at line 112 of file smart_calibration_gui.py.

Referenced by _drain_synced().

◆ kalman_states

dict smart_calibration_gui.SmartCalibrationGUI.kalman_states = {}

Definition at line 781 of file smart_calibration_gui.py.

◆ last_update_time

dict smart_calibration_gui.SmartCalibrationGUI.last_update_time = {i: 0.0 for i in range(9)}

Definition at line 122 of file smart_calibration_gui.py.

Referenced by disconnect(), and setup_serial().

◆ latency_var

smart_calibration_gui.SmartCalibrationGUI.latency_var = tk.StringVar(value="Latency: 0 ms")

Definition at line 416 of file smart_calibration_gui.py.

Referenced by update_performance_indicators().

◆ latest_measurements

dict smart_calibration_gui.SmartCalibrationGUI.latest_measurements = {}

◆ learn_btn

smart_calibration_gui.SmartCalibrationGUI.learn_btn
Initial value:
= ttk.Button(
smart_frame,
text="Start Learning",
command=self.start_learning,
state="disabled",
)

Definition at line 199 of file smart_calibration_gui.py.

Referenced by connect(), disconnect(), start_learning(), and stop_learning().

◆ MAGIC

smart_calibration_gui.SmartCalibrationGUI.MAGIC = b"AD26"

Definition at line 100 of file smart_calibration_gui.py.

Referenced by _drain_synced(), and _resync().

◆ MAX_PACKET_BYTES

tuple smart_calibration_gui.SmartCalibrationGUI.MAX_PACKET_BYTES
Initial value:
= (
self.HEADER_SIZE
+ self.PACKET_RECORDS * self.RECORD_SIZE
+ self.CRC_SIZE_OPTIONAL
)

Definition at line 107 of file smart_calibration_gui.py.

Referenced by _drain_synced(), and _resync().

◆ PACKET_RECORDS

int smart_calibration_gui.SmartCalibrationGUI.PACKET_RECORDS = 10

Definition at line 105 of file smart_calibration_gui.py.

Referenced by _resync().

◆ PACKET_VERSION

int smart_calibration_gui.SmartCalibrationGUI.PACKET_VERSION = 2

Definition at line 101 of file smart_calibration_gui.py.

Referenced by _drain_synced(), and _resync().

◆ pending_requests

list smart_calibration_gui.SmartCalibrationGUI.pending_requests = []

◆ performance_stats

dict smart_calibration_gui.SmartCalibrationGUI.performance_stats
Initial value:
= {
"data_rate_hz": 0.0,
"latency_ms": 0.0,
"autonomous_accuracy": 0.0,
"human_input_requests": 0,
"last_update": time.time(),
}
TOML_NODISCARD_CTOR time() noexcept=default

Definition at line 131 of file smart_calibration_gui.py.

Referenced by update_performance_stats().

◆ plot_data

dict smart_calibration_gui.SmartCalibrationGUI.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)},
"confidence": {i: deque(maxlen=1000) for i in range(9)},
}

Definition at line 388 of file smart_calibration_gui.py.

Referenced by update_plots().

◆ port_var

smart_calibration_gui.SmartCalibrationGUI.port_var = tk.StringVar(value="/dev/ttyACM0")

Definition at line 177 of file smart_calibration_gui.py.

Referenced by setup_serial().

◆ progress_bars

dict smart_calibration_gui.SmartCalibrationGUI.progress_bars = {}

Definition at line 330 of file smart_calibration_gui.py.

◆ progress_vars

dict smart_calibration_gui.SmartCalibrationGUI.progress_vars = {}

Definition at line 329 of file smart_calibration_gui.py.

◆ recent_data

dict smart_calibration_gui.SmartCalibrationGUI.recent_data = {i: [] for i in range(9)}

Definition at line 121 of file smart_calibration_gui.py.

Referenced by disconnect(), and setup_serial().

◆ RECORD_SIZE

smart_calibration_gui.SmartCalibrationGUI.RECORD_SIZE = self.RECORD_STRUCT.size

Definition at line 104 of file smart_calibration_gui.py.

Referenced by _drain_synced(), and _resync().

◆ RECORD_STRUCT

smart_calibration_gui.SmartCalibrationGUI.RECORD_STRUCT = struct.Struct("<BBiiII")

Definition at line 97 of file smart_calibration_gui.py.

Referenced by _drain_synced().

◆ recording_data

bool smart_calibration_gui.SmartCalibrationGUI.recording_data = False

Definition at line 119 of file smart_calibration_gui.py.

Referenced by start_learning(), and stop_learning().

◆ ref_pressure_var

smart_calibration_gui.SmartCalibrationGUI.ref_pressure_var = tk.StringVar()

Definition at line 302 of file smart_calibration_gui.py.

Referenced by confirm_human_input().

◆ requests_listbox

smart_calibration_gui.SmartCalibrationGUI.requests_listbox
Initial value:
= tk.Listbox(
input_frame, height=8, bg="#3b3b3b", fg="white"
)

Definition at line 282 of file smart_calibration_gui.py.

Referenced by update_requests_listbox().

◆ root

smart_calibration_gui.SmartCalibrationGUI.root = tk.Tk()

Definition at line 78 of file smart_calibration_gui.py.

Referenced by run(), and setup_gui().

◆ save_btn

smart_calibration_gui.SmartCalibrationGUI.save_btn
Initial value:
= ttk.Button(
smart_frame,
text="Save Learning State",
command=self.save_learning_state,
state="disabled",
)

Definition at line 215 of file smart_calibration_gui.py.

◆ selected_sensor_var

smart_calibration_gui.SmartCalibrationGUI.selected_sensor_var = tk.StringVar()

Definition at line 292 of file smart_calibration_gui.py.

Referenced by confirm_human_input().

◆ sensor_states

dict smart_calibration_gui.SmartCalibrationGUI.sensor_states = {}

◆ serial_connection

Optional[serial.Serial] smart_calibration_gui.SmartCalibrationGUI.serial_connection = None

◆ serial_thread

Optional[threading.Thread] smart_calibration_gui.SmartCalibrationGUI.serial_thread = None

Definition at line 126 of file smart_calibration_gui.py.

◆ skip_btn

smart_calibration_gui.SmartCalibrationGUI.skip_btn
Initial value:
= ttk.Button(
input_controls_frame,
text="Skip Request",
command=self.skip_human_input,
state="disabled",
)

Definition at line 314 of file smart_calibration_gui.py.

Referenced by confirm_human_input(), create_human_input_request(), and skip_human_input().

◆ stats_tree

smart_calibration_gui.SmartCalibrationGUI.stats_tree
Initial value:
= ttk.Treeview(
stats_frame, columns=stats_columns, show="headings", height=4
)

Definition at line 447 of file smart_calibration_gui.py.

Referenced by update_statistics().

◆ status_var

smart_calibration_gui.SmartCalibrationGUI.status_var = tk.StringVar(value="Ready")

◆ stop_serial

smart_calibration_gui.SmartCalibrationGUI.stop_serial = threading.Event()

Definition at line 127 of file smart_calibration_gui.py.

Referenced by cleanup(), connect(), data_processor(), and disconnect().

◆ synced

bool smart_calibration_gui.SmartCalibrationGUI.synced = False

Definition at line 128 of file smart_calibration_gui.py.

Referenced by _drain_synced(), and setup_serial().

◆ UINT32_MAX

int smart_calibration_gui.SmartCalibrationGUI.UINT32_MAX = 0xFFFFFFFF

Definition at line 113 of file smart_calibration_gui.py.

Referenced by _drain_synced().

◆ update_gui

smart_calibration_gui.SmartCalibrationGUI.update_gui

Definition at line 1015 of file smart_calibration_gui.py.

◆ V_REF

float smart_calibration_gui.SmartCalibrationGUI.V_REF = 2.5

Definition at line 114 of file smart_calibration_gui.py.

Referenced by _drain_synced().

◆ validate_btn

smart_calibration_gui.SmartCalibrationGUI.validate_btn
Initial value:
= ttk.Button(
smart_frame,
text="Validate Prediction",
command=self.validate_prediction,
state="disabled",
)

Definition at line 207 of file smart_calibration_gui.py.

Referenced by disconnect(), and start_learning().


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