Add GUI control panel with live measurements and full instrument control

New `mppt-gui` command launches a tkinter app with:
- Live numeric readouts for all 13 measurement channels
- 4-panel real-time matplotlib graphs (power, efficiency, voltage, current)
- Full supply control: voltage, current, OVP, slew, output on/off
- Full load control: mode (CC/CR/CV/CP), setpoint, slew, load on/off
- Meter settings: wiring mode, response speed, coupling per channel
- CSV data logging with start/stop control
- Red SAFE OFF button (also Escape key) bypasses command queue
- Threaded architecture: instrument I/O never blocks the GUI
- Fix apply() silently failing: use set_current + set_voltage instead

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-11 13:42:07 +07:00
parent c50c09a148
commit e2be7109b7
4 changed files with 909 additions and 2 deletions

View File

@@ -384,7 +384,8 @@ class MPPTTestbench:
elif i_start > i_stop and i_step > 0:
i_step = -i_step
self.supply.apply(voltage, current_limit)
self.supply.set_current(current_limit)
self.supply.set_voltage(voltage)
self.supply.output_on()
self.load.set_mode("CC")
self.load.set_cc_current(i_start)
@@ -439,7 +440,8 @@ class MPPTTestbench:
Dict with avg_input_power, avg_output_power, avg_efficiency,
plus individual supply/load readings.
"""
self.supply.apply(voltage, current_limit)
self.supply.set_current(current_limit)
self.supply.set_voltage(voltage)
self.supply.output_on()
time.sleep(settle_time)