STAR
Cal STAR — firmware, DAQ server, and engine design
Loading...
Searching...
No Matches
solenoid_characterization_gui.SolenoidCharacterizationWindow Class Reference
Inheritance diagram for solenoid_characterization_gui.SolenoidCharacterizationWindow:
[legend]
Collaboration diagram for solenoid_characterization_gui.SolenoidCharacterizationWindow:
[legend]

Public Member Functions

 __init__ (self, UDPReceiver receiver, str device_ip, int device_port, str bind_address="0.0.0.0")
 init_ui (self)
 save_characterization_csv (self)
Optional[int] get_selected_pt_id (self)
Optional[int] get_selected_actuator_id (self)
float code_to_voltage (self, int code_uint32)
float get_current_board_time (self)
 on_status_update (self, str message)
 on_sensor_data (self, dict header, List[dict] chunks, str source_ip)
 on_open_clicked (self)
 on_closed_clicked (self)
 on_full_plot_clicked (self)
 on_pwm_go_clicked (self)
 on_pause_clicked (self)
 update_plot (self)
 closeEvent (self, event)

Public Attributes

 receiver = receiver
 device_ip = device_ip
 device_port = device_port
 bind_address = bind_address
 stats_start_time = time.time()
dict sensor_data = {}
dict sensor_adc_codes = {}
dict sensor_psi_data = {}
 filter_source_ip = CONFIG.config["network"]["sensor_ip_filter"]
 adc_bits = CONFIG.config["display"]["adc_bits"]
 reference_voltage = CONFIG.config["display"]["ref_voltage"]
 window_seconds = max(10.0, min(120.0, float(config_window)))
 y_axis_auto_scale = CONFIG.config["display"].get("y_axis_autoscale", True)
 y_axis_min = float(CONFIG.config["display"].get("y_axis_min", 0.0))
 y_axis_max = float(CONFIG.config["display"].get("y_axis_max", 700.0))
 pt_calibration
 pt_calibration_error
list actuator_events = []
list event_lines = []
Optional[int] board_t0_ms = None
Optional[Tuple[float, float]] last_sync_params = None
 command_sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
 on_sensor_data
 on_status_update
 update_timer = QtCore.QTimer(self)
 update_plot
bool paused = False
 full_plot_window = None
 pt_combo = QtWidgets.QComboBox()
 actuator_combo = QtWidgets.QComboBox()
 receive_ip_edit = QtWidgets.QLineEdit(self.filter_source_ip)
 send_ip_edit = QtWidgets.QLineEdit(self.device_ip)
 status_label = QtWidgets.QLabel("Starting...")
 pt_sample_rate_label = QtWidgets.QLabel("-- Hz")
 window_slider = QtWidgets.QSlider(QtCore.Qt.Orientation.Horizontal)
 window_label = QtWidgets.QLabel(f"{int(self.window_seconds)} s")
 plot_widget = pg.GraphicsLayoutWidget()
 plot_item = self.plot_widget.addPlot(title="Pressure (selected PT)")
 pt_curve
 pt_readout = pg.TextItem(text="", anchor=(1, 1), color=(200, 220, 255))
 save_csv_btn = QtWidgets.QPushButton("Save CSV")
 save_characterization_csv
 open_btn = QtWidgets.QPushButton("OPEN")
 on_open_clicked
 closed_btn = QtWidgets.QPushButton("CLOSED")
 on_closed_clicked
 full_plot_btn = QtWidgets.QPushButton("Full Plot")
 on_full_plot_clicked
 pause_btn = QtWidgets.QPushButton("Pause")
 on_pause_clicked
 pwm_duty_spin = QtWidgets.QDoubleSpinBox()
 pwm_freq_spin = QtWidgets.QDoubleSpinBox()
 pwm_duration_spin = QtWidgets.QDoubleSpinBox()
 pwm_go_btn = QtWidgets.QPushButton("Go")
 on_pwm_go_clicked

Protected Member Functions

 _fill_pt_combo (self)
 _on_pt_changed (self, int index)
 _on_actuator_changed (self, int index)
 _on_receive_ip_changed (self)
 _on_send_ip_changed (self)
 _on_window_slider_changed (self, int value)
 _send_actuator_command (self, int actuator_id, int hardware_command)
 _add_event_line (self, float t_sec, str kind)

Protected Attributes

 _on_pt_changed
 _on_actuator_changed
 _on_receive_ip_changed
 _on_send_ip_changed
 _on_window_slider_changed

Detailed Description

Single window: PT selector, actuator selector, one pressure graph, OPEN/CLOSED buttons, vertical event lines.

Definition at line 1263 of file solenoid_characterization_gui.py.

Constructor & Destructor Documentation

◆ __init__()

solenoid_characterization_gui.SolenoidCharacterizationWindow.__init__ ( self,
UDPReceiver receiver,
str device_ip,
int device_port,
str bind_address = "0.0.0.0" )

Definition at line 1266 of file solenoid_characterization_gui.py.

References __init__().

Referenced by __init__().

Member Function Documentation

◆ _add_event_line()

solenoid_characterization_gui.SolenoidCharacterizationWindow._add_event_line ( self,
float t_sec,
str kind )
protected

◆ _fill_pt_combo()

solenoid_characterization_gui.SolenoidCharacterizationWindow._fill_pt_combo ( self)
protected

◆ _on_actuator_changed()

solenoid_characterization_gui.SolenoidCharacterizationWindow._on_actuator_changed ( self,
int index )
protected

Definition at line 1516 of file solenoid_characterization_gui.py.

◆ _on_pt_changed()

solenoid_characterization_gui.SolenoidCharacterizationWindow._on_pt_changed ( self,
int index )
protected

Definition at line 1513 of file solenoid_characterization_gui.py.

References update_plot.

◆ _on_receive_ip_changed()

◆ _on_send_ip_changed()

◆ _on_window_slider_changed()

◆ _send_actuator_command()

◆ closeEvent()

solenoid_characterization_gui.SolenoidCharacterizationWindow.closeEvent ( self,
event )

◆ code_to_voltage()

float solenoid_characterization_gui.SolenoidCharacterizationWindow.code_to_voltage ( self,
int code_uint32 )

◆ get_current_board_time()

float solenoid_characterization_gui.SolenoidCharacterizationWindow.get_current_board_time ( self)

◆ get_selected_actuator_id()

Optional[int] solenoid_characterization_gui.SolenoidCharacterizationWindow.get_selected_actuator_id ( self)

◆ get_selected_pt_id()

Optional[int] solenoid_characterization_gui.SolenoidCharacterizationWindow.get_selected_pt_id ( self)

◆ init_ui()

solenoid_characterization_gui.SolenoidCharacterizationWindow.init_ui ( self)

Definition at line 1327 of file solenoid_characterization_gui.py.

◆ on_closed_clicked()

solenoid_characterization_gui.SolenoidCharacterizationWindow.on_closed_clicked ( self)

◆ on_full_plot_clicked()

solenoid_characterization_gui.SolenoidCharacterizationWindow.on_full_plot_clicked ( self)

◆ on_open_clicked()

solenoid_characterization_gui.SolenoidCharacterizationWindow.on_open_clicked ( self)

◆ on_pause_clicked()

solenoid_characterization_gui.SolenoidCharacterizationWindow.on_pause_clicked ( self)

Definition at line 1851 of file solenoid_characterization_gui.py.

References pause_btn, and paused.

◆ on_pwm_go_clicked()

◆ on_sensor_data()

◆ on_status_update()

◆ save_characterization_csv()

solenoid_characterization_gui.SolenoidCharacterizationWindow.save_characterization_csv ( self)
Save the selected PT pressure and solenoid actuations as one 4-column CSV: time_sec, pressure_psi, ACTUATION, TIMING_EVENT.

Definition at line 1535 of file solenoid_characterization_gui.py.

References solenoid_characterization_gui.FullPlotWindow.actuator_events, actuator_events, solenoid_characterization_gui.extract_solenoid_timing_live(), get_selected_pt_id(), and sensor_psi_data.

◆ update_plot()

Member Data Documentation

◆ _on_actuator_changed

solenoid_characterization_gui.SolenoidCharacterizationWindow._on_actuator_changed
protected

Definition at line 1362 of file solenoid_characterization_gui.py.

◆ _on_pt_changed

solenoid_characterization_gui.SolenoidCharacterizationWindow._on_pt_changed
protected

Definition at line 1343 of file solenoid_characterization_gui.py.

◆ _on_receive_ip_changed

solenoid_characterization_gui.SolenoidCharacterizationWindow._on_receive_ip_changed
protected

Definition at line 1369 of file solenoid_characterization_gui.py.

◆ _on_send_ip_changed

solenoid_characterization_gui.SolenoidCharacterizationWindow._on_send_ip_changed
protected

Definition at line 1376 of file solenoid_characterization_gui.py.

◆ _on_window_slider_changed

solenoid_characterization_gui.SolenoidCharacterizationWindow._on_window_slider_changed
protected

Definition at line 1400 of file solenoid_characterization_gui.py.

◆ actuator_combo

solenoid_characterization_gui.SolenoidCharacterizationWindow.actuator_combo = QtWidgets.QComboBox()

Definition at line 1347 of file solenoid_characterization_gui.py.

Referenced by get_selected_actuator_id().

◆ actuator_events

list solenoid_characterization_gui.SolenoidCharacterizationWindow.actuator_events = []

◆ adc_bits

solenoid_characterization_gui.SolenoidCharacterizationWindow.adc_bits = CONFIG.config["display"]["adc_bits"]

Definition at line 1285 of file solenoid_characterization_gui.py.

Referenced by code_to_voltage().

◆ bind_address

solenoid_characterization_gui.SolenoidCharacterizationWindow.bind_address = bind_address

Definition at line 1278 of file solenoid_characterization_gui.py.

Referenced by combined_fsw_gui.UDPReceiver.run().

◆ board_t0_ms

solenoid_characterization_gui.SolenoidCharacterizationWindow.board_t0_ms = None

Definition at line 1309 of file solenoid_characterization_gui.py.

Referenced by get_current_board_time(), and on_sensor_data().

◆ closed_btn

solenoid_characterization_gui.SolenoidCharacterizationWindow.closed_btn = QtWidgets.QPushButton("CLOSED")

Definition at line 1447 of file solenoid_characterization_gui.py.

◆ command_sock

solenoid_characterization_gui.SolenoidCharacterizationWindow.command_sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

◆ device_ip

solenoid_characterization_gui.SolenoidCharacterizationWindow.device_ip = device_ip

◆ device_port

solenoid_characterization_gui.SolenoidCharacterizationWindow.device_port = device_port

Definition at line 1277 of file solenoid_characterization_gui.py.

Referenced by _send_actuator_command(), and on_pwm_go_clicked().

◆ event_lines

list solenoid_characterization_gui.SolenoidCharacterizationWindow.event_lines = []

Definition at line 1306 of file solenoid_characterization_gui.py.

Referenced by _add_event_line(), and update_plot().

◆ filter_source_ip

solenoid_characterization_gui.SolenoidCharacterizationWindow.filter_source_ip = CONFIG.config["network"]["sensor_ip_filter"]

Definition at line 1284 of file solenoid_characterization_gui.py.

Referenced by _on_receive_ip_changed(), and on_sensor_data().

◆ full_plot_btn

solenoid_characterization_gui.SolenoidCharacterizationWindow.full_plot_btn = QtWidgets.QPushButton("Full Plot")

Definition at line 1453 of file solenoid_characterization_gui.py.

◆ full_plot_window

solenoid_characterization_gui.SolenoidCharacterizationWindow.full_plot_window = None

Definition at line 1325 of file solenoid_characterization_gui.py.

Referenced by on_full_plot_clicked().

◆ last_sync_params

Optional[Tuple[float, float]] solenoid_characterization_gui.SolenoidCharacterizationWindow.last_sync_params = None

Definition at line 1311 of file solenoid_characterization_gui.py.

Referenced by get_current_board_time(), and on_sensor_data().

◆ on_closed_clicked

solenoid_characterization_gui.SolenoidCharacterizationWindow.on_closed_clicked

Definition at line 1449 of file solenoid_characterization_gui.py.

◆ on_full_plot_clicked

solenoid_characterization_gui.SolenoidCharacterizationWindow.on_full_plot_clicked

Definition at line 1455 of file solenoid_characterization_gui.py.

◆ on_open_clicked

solenoid_characterization_gui.SolenoidCharacterizationWindow.on_open_clicked

Definition at line 1446 of file solenoid_characterization_gui.py.

◆ on_pause_clicked

solenoid_characterization_gui.SolenoidCharacterizationWindow.on_pause_clicked

Definition at line 1461 of file solenoid_characterization_gui.py.

◆ on_pwm_go_clicked

solenoid_characterization_gui.SolenoidCharacterizationWindow.on_pwm_go_clicked

Definition at line 1494 of file solenoid_characterization_gui.py.

◆ on_sensor_data

solenoid_characterization_gui.SolenoidCharacterizationWindow.on_sensor_data

Definition at line 1317 of file solenoid_characterization_gui.py.

◆ on_status_update

solenoid_characterization_gui.SolenoidCharacterizationWindow.on_status_update

Definition at line 1318 of file solenoid_characterization_gui.py.

◆ open_btn

solenoid_characterization_gui.SolenoidCharacterizationWindow.open_btn = QtWidgets.QPushButton("OPEN")

Definition at line 1444 of file solenoid_characterization_gui.py.

◆ pause_btn

solenoid_characterization_gui.SolenoidCharacterizationWindow.pause_btn = QtWidgets.QPushButton("Pause")

Definition at line 1458 of file solenoid_characterization_gui.py.

Referenced by on_full_plot_clicked(), and on_pause_clicked().

◆ paused

bool solenoid_characterization_gui.SolenoidCharacterizationWindow.paused = False

◆ plot_item

solenoid_characterization_gui.SolenoidCharacterizationWindow.plot_item = self.plot_widget.addPlot(title="Pressure (selected PT)")

Definition at line 1411 of file solenoid_characterization_gui.py.

Referenced by _add_event_line(), and update_plot().

◆ plot_widget

solenoid_characterization_gui.SolenoidCharacterizationWindow.plot_widget = pg.GraphicsLayoutWidget()

Definition at line 1407 of file solenoid_characterization_gui.py.

◆ pt_calibration

solenoid_characterization_gui.SolenoidCharacterizationWindow.pt_calibration

Definition at line 1299 of file solenoid_characterization_gui.py.

Referenced by _fill_pt_combo(), and on_sensor_data().

◆ pt_calibration_error

solenoid_characterization_gui.SolenoidCharacterizationWindow.pt_calibration_error
Initial value:
= load_pt_calibration(
resolved if resolved else []
)

Definition at line 1299 of file solenoid_characterization_gui.py.

◆ pt_combo

solenoid_characterization_gui.SolenoidCharacterizationWindow.pt_combo = QtWidgets.QComboBox()

Definition at line 1341 of file solenoid_characterization_gui.py.

Referenced by _fill_pt_combo(), and get_selected_pt_id().

◆ pt_curve

solenoid_characterization_gui.SolenoidCharacterizationWindow.pt_curve
Initial value:
= self.plot_item.plot(
[], [], pen=pg.mkPen((80, 150, 255), width=2), name="PT (psi)"
)

Definition at line 1430 of file solenoid_characterization_gui.py.

Referenced by update_plot().

◆ pt_readout

solenoid_characterization_gui.SolenoidCharacterizationWindow.pt_readout = pg.TextItem(text="", anchor=(1, 1), color=(200, 220, 255))

Definition at line 1435 of file solenoid_characterization_gui.py.

Referenced by update_plot().

◆ pt_sample_rate_label

solenoid_characterization_gui.SolenoidCharacterizationWindow.pt_sample_rate_label = QtWidgets.QLabel("-- Hz")

Definition at line 1383 of file solenoid_characterization_gui.py.

Referenced by update_plot().

◆ pwm_duration_spin

solenoid_characterization_gui.SolenoidCharacterizationWindow.pwm_duration_spin = QtWidgets.QDoubleSpinBox()

Definition at line 1486 of file solenoid_characterization_gui.py.

Referenced by on_pwm_go_clicked().

◆ pwm_duty_spin

solenoid_characterization_gui.SolenoidCharacterizationWindow.pwm_duty_spin = QtWidgets.QDoubleSpinBox()

Definition at line 1471 of file solenoid_characterization_gui.py.

Referenced by on_pwm_go_clicked().

◆ pwm_freq_spin

solenoid_characterization_gui.SolenoidCharacterizationWindow.pwm_freq_spin = QtWidgets.QDoubleSpinBox()

Definition at line 1479 of file solenoid_characterization_gui.py.

Referenced by on_pwm_go_clicked().

◆ pwm_go_btn

solenoid_characterization_gui.SolenoidCharacterizationWindow.pwm_go_btn = QtWidgets.QPushButton("Go")

Definition at line 1492 of file solenoid_characterization_gui.py.

◆ receive_ip_edit

solenoid_characterization_gui.SolenoidCharacterizationWindow.receive_ip_edit = QtWidgets.QLineEdit(self.filter_source_ip)

Definition at line 1366 of file solenoid_characterization_gui.py.

Referenced by _on_receive_ip_changed().

◆ receiver

◆ reference_voltage

solenoid_characterization_gui.SolenoidCharacterizationWindow.reference_voltage = CONFIG.config["display"]["ref_voltage"]

Definition at line 1286 of file solenoid_characterization_gui.py.

Referenced by code_to_voltage().

◆ save_characterization_csv

solenoid_characterization_gui.SolenoidCharacterizationWindow.save_characterization_csv

Definition at line 1442 of file solenoid_characterization_gui.py.

◆ save_csv_btn

solenoid_characterization_gui.SolenoidCharacterizationWindow.save_csv_btn = QtWidgets.QPushButton("Save CSV")

Definition at line 1440 of file solenoid_characterization_gui.py.

◆ send_ip_edit

solenoid_characterization_gui.SolenoidCharacterizationWindow.send_ip_edit = QtWidgets.QLineEdit(self.device_ip)

Definition at line 1373 of file solenoid_characterization_gui.py.

Referenced by _on_send_ip_changed().

◆ sensor_adc_codes

dict solenoid_characterization_gui.SolenoidCharacterizationWindow.sensor_adc_codes = {}

Definition at line 1282 of file solenoid_characterization_gui.py.

Referenced by on_sensor_data().

◆ sensor_data

dict solenoid_characterization_gui.SolenoidCharacterizationWindow.sensor_data = {}

Definition at line 1281 of file solenoid_characterization_gui.py.

Referenced by on_sensor_data().

◆ sensor_psi_data

dict solenoid_characterization_gui.SolenoidCharacterizationWindow.sensor_psi_data = {}

◆ stats_start_time

solenoid_characterization_gui.SolenoidCharacterizationWindow.stats_start_time = time.time()

Definition at line 1280 of file solenoid_characterization_gui.py.

Referenced by get_current_board_time(), and update_plot().

◆ status_label

solenoid_characterization_gui.SolenoidCharacterizationWindow.status_label = QtWidgets.QLabel("Starting...")

◆ update_plot

solenoid_characterization_gui.SolenoidCharacterizationWindow.update_plot

Definition at line 1321 of file solenoid_characterization_gui.py.

Referenced by _on_pt_changed().

◆ update_timer

solenoid_characterization_gui.SolenoidCharacterizationWindow.update_timer = QtCore.QTimer(self)

Definition at line 1320 of file solenoid_characterization_gui.py.

◆ window_label

solenoid_characterization_gui.SolenoidCharacterizationWindow.window_label = QtWidgets.QLabel(f"{int(self.window_seconds)} s")

Definition at line 1402 of file solenoid_characterization_gui.py.

Referenced by _on_window_slider_changed().

◆ window_seconds

solenoid_characterization_gui.SolenoidCharacterizationWindow.window_seconds = max(10.0, min(120.0, float(config_window)))

Definition at line 1291 of file solenoid_characterization_gui.py.

Referenced by _on_window_slider_changed(), and update_plot().

◆ window_slider

solenoid_characterization_gui.SolenoidCharacterizationWindow.window_slider = QtWidgets.QSlider(QtCore.Qt.Orientation.Horizontal)

Definition at line 1394 of file solenoid_characterization_gui.py.

◆ y_axis_auto_scale

solenoid_characterization_gui.SolenoidCharacterizationWindow.y_axis_auto_scale = CONFIG.config["display"].get("y_axis_autoscale", True)

Definition at line 1292 of file solenoid_characterization_gui.py.

Referenced by update_plot().

◆ y_axis_max

solenoid_characterization_gui.SolenoidCharacterizationWindow.y_axis_max = float(CONFIG.config["display"].get("y_axis_max", 700.0))

Definition at line 1294 of file solenoid_characterization_gui.py.

Referenced by update_plot().

◆ y_axis_min

solenoid_characterization_gui.SolenoidCharacterizationWindow.y_axis_min = float(CONFIG.config["display"].get("y_axis_min", 0.0))

Definition at line 1293 of file solenoid_characterization_gui.py.

Referenced by update_plot().


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