forked from M-Labs/thermostat
Put thermostat parameters constant into mainwindow
This commit is contained in:
parent
f1abab9bd6
commit
50aafa493f
|
@ -22,48 +22,6 @@ from ui_tec_qt import Ui_MainWindow
|
||||||
class CommandsParameter(Parameter):
|
class CommandsParameter(Parameter):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
THERMOSTAT_PARAMETERS = [[
|
|
||||||
{'name': 'Constant Current', 'type': 'float', 'value': 0, 'step': 0.1, 'limits': (-3, 3), 'siPrefix': True,
|
|
||||||
'suffix': 'A', 'commands': [f'pwm {ch} i_set {{value}}']},
|
|
||||||
{'name': 'Temperature PID', 'type': 'bool', 'value': False, 'commands': [f'pwm {ch} pid'],
|
|
||||||
'children': [
|
|
||||||
{'name': 'Set Temperature', 'type': 'float', 'value': 25, 'step': 0.1, 'limits': (-273, 300), 'siPrefix': True,
|
|
||||||
'suffix': '°C', 'commands': [f'pid {ch} target {{value}}']},
|
|
||||||
]},
|
|
||||||
{'name': 'Output Config', 'expanded': False, 'type': 'group', 'children': [
|
|
||||||
{'name': 'Max Current', 'type': 'float', 'value': 0, 'step': 0.1, 'limits': (0, 3), 'siPrefix': True, 'prefix': '±',
|
|
||||||
'suffix': 'A', 'commands': [f'pwm {ch} max_i_pos {{value}}', f'pwm {ch} max_i_neg {{value}}',
|
|
||||||
f'pid {ch} output_min -{{value}}', f'pid {ch} output_max {{value}}']},
|
|
||||||
{'name': 'Max Voltage', 'type': 'float', 'value': 0, 'step': 0.1, 'limits': (0, 5), 'siPrefix': True,
|
|
||||||
'suffix': 'V', 'commands': [f'pwm {ch} max_v {{value}}']},
|
|
||||||
]},
|
|
||||||
{'name': 'Thermistor Config', 'expanded': False, 'type': 'group', 'children': [
|
|
||||||
{'name': 'T₀', 'type': 'float', 'value': 25, 'step': 0.1, 'limits': (-100, 100), 'siPrefix': True,
|
|
||||||
'suffix': '°C', 'commands': [f's-h {ch} t0 {{value}}']},
|
|
||||||
{'name': 'R₀', 'type': 'float', 'value': 10000, 'step': 1, 'siPrefix': True, 'suffix': 'Ω',
|
|
||||||
'commands': [f's-h {ch} r0 {{value}}']},
|
|
||||||
{'name': 'β', 'type': 'float', 'value': 3950, 'step': 1, 'suffix': 'K', 'commands': [f's-h {ch} b {{value}}']},
|
|
||||||
]},
|
|
||||||
{'name': 'Postfilter Config', 'expanded': False, 'type': 'group', 'children': [
|
|
||||||
{'name': 'Rate', 'type': 'float', 'value': 16.67, 'step': 0.01, 'suffix': 'Hz',
|
|
||||||
'commands': [f'postfilter {ch} rate {{value}}']},
|
|
||||||
]},
|
|
||||||
{'name': 'PID Config', 'expanded': False, 'type': 'group', 'children': [
|
|
||||||
{'name': 'Kp', 'type': 'float', 'value': 0, 'step': 0.1, 'suffix': '°C/A', 'commands': [f'pid {ch} kp {{value}}']},
|
|
||||||
{'name': 'Ki', 'type': 'float', 'value': 0, 'step': 0.1, 'suffix': '°C/C', 'commands': [f'pid {ch} ki {{value}}']},
|
|
||||||
{'name': 'Kd', 'type': 'float', 'value': 0, 'step': 0.1, 'suffix': '°Cs²/C', 'commands': [f'pid {ch} kd {{value}}']},
|
|
||||||
{'name': 'PID Auto Tune', 'expanded': False, 'type': 'group', 'children': [
|
|
||||||
{'name': 'Target Temperature', 'type': 'float', 'value': 20, 'step': 0.1, 'siPrefix': True, 'suffix': '°C'},
|
|
||||||
{'name': 'Test Current', 'type': 'float', 'value': 1, 'step': 0.1, 'siPrefix': True, 'suffix': 'A'},
|
|
||||||
{'name': 'Temperature Swing', 'type': 'float', 'value': 1.5, 'step': 0.1, 'siPrefix': True, 'prefix': '±', 'suffix': '°C'},
|
|
||||||
{'name': 'Run', 'type': 'action', 'tip': 'Run'},
|
|
||||||
]},
|
|
||||||
]},
|
|
||||||
{'name': 'Save to flash', 'type': 'action', 'tip': 'Save config to thermostat, applies on reset', 'commands': [f'save {ch}']}
|
|
||||||
] for ch in range(2)]
|
|
||||||
|
|
||||||
|
|
||||||
def get_argparser():
|
def get_argparser():
|
||||||
parser = argparse.ArgumentParser(description="ARTIQ master")
|
parser = argparse.ArgumentParser(description="ARTIQ master")
|
||||||
|
|
||||||
|
@ -168,6 +126,47 @@ class MainWindow(QtWidgets.QMainWindow, Ui_MainWindow):
|
||||||
"""The maximum number of sample points to store."""
|
"""The maximum number of sample points to store."""
|
||||||
DEFAULT_MAX_SAMPLES = 1000
|
DEFAULT_MAX_SAMPLES = 1000
|
||||||
|
|
||||||
|
"""Thermostat parameters that are particular to a channel"""
|
||||||
|
THERMOSTAT_PARAMETERS = [[
|
||||||
|
{'name': 'Constant Current', 'type': 'float', 'value': 0, 'step': 0.1, 'limits': (-3, 3), 'siPrefix': True,
|
||||||
|
'suffix': 'A', 'commands': [f'pwm {ch} i_set {{value}}']},
|
||||||
|
{'name': 'Temperature PID', 'type': 'bool', 'value': False, 'commands': [f'pwm {ch} pid'],
|
||||||
|
'children': [
|
||||||
|
{'name': 'Set Temperature', 'type': 'float', 'value': 25, 'step': 0.1, 'limits': (-273, 300), 'siPrefix': True,
|
||||||
|
'suffix': '°C', 'commands': [f'pid {ch} target {{value}}']},
|
||||||
|
]},
|
||||||
|
{'name': 'Output Config', 'expanded': False, 'type': 'group', 'children': [
|
||||||
|
{'name': 'Max Current', 'type': 'float', 'value': 0, 'step': 0.1, 'limits': (0, 3), 'siPrefix': True, 'prefix': '±',
|
||||||
|
'suffix': 'A', 'commands': [f'pwm {ch} max_i_pos {{value}}', f'pwm {ch} max_i_neg {{value}}',
|
||||||
|
f'pid {ch} output_min -{{value}}', f'pid {ch} output_max {{value}}']},
|
||||||
|
{'name': 'Max Voltage', 'type': 'float', 'value': 0, 'step': 0.1, 'limits': (0, 5), 'siPrefix': True,
|
||||||
|
'suffix': 'V', 'commands': [f'pwm {ch} max_v {{value}}']},
|
||||||
|
]},
|
||||||
|
{'name': 'Thermistor Config', 'expanded': False, 'type': 'group', 'children': [
|
||||||
|
{'name': 'T₀', 'type': 'float', 'value': 25, 'step': 0.1, 'limits': (-100, 100), 'siPrefix': True,
|
||||||
|
'suffix': '°C', 'commands': [f's-h {ch} t0 {{value}}']},
|
||||||
|
{'name': 'R₀', 'type': 'float', 'value': 10000, 'step': 1, 'siPrefix': True, 'suffix': 'Ω',
|
||||||
|
'commands': [f's-h {ch} r0 {{value}}']},
|
||||||
|
{'name': 'β', 'type': 'float', 'value': 3950, 'step': 1, 'suffix': 'K', 'commands': [f's-h {ch} b {{value}}']},
|
||||||
|
]},
|
||||||
|
{'name': 'Postfilter Config', 'expanded': False, 'type': 'group', 'children': [
|
||||||
|
{'name': 'Rate', 'type': 'float', 'value': 16.67, 'step': 0.01, 'suffix': 'Hz',
|
||||||
|
'commands': [f'postfilter {ch} rate {{value}}']},
|
||||||
|
]},
|
||||||
|
{'name': 'PID Config', 'expanded': False, 'type': 'group', 'children': [
|
||||||
|
{'name': 'Kp', 'type': 'float', 'value': 0, 'step': 0.1, 'suffix': '°C/A', 'commands': [f'pid {ch} kp {{value}}']},
|
||||||
|
{'name': 'Ki', 'type': 'float', 'value': 0, 'step': 0.1, 'suffix': '°C/C', 'commands': [f'pid {ch} ki {{value}}']},
|
||||||
|
{'name': 'Kd', 'type': 'float', 'value': 0, 'step': 0.1, 'suffix': '°Cs²/C', 'commands': [f'pid {ch} kd {{value}}']},
|
||||||
|
{'name': 'PID Auto Tune', 'expanded': False, 'type': 'group', 'children': [
|
||||||
|
{'name': 'Target Temperature', 'type': 'float', 'value': 20, 'step': 0.1, 'siPrefix': True, 'suffix': '°C'},
|
||||||
|
{'name': 'Test Current', 'type': 'float', 'value': 1, 'step': 0.1, 'siPrefix': True, 'suffix': 'A'},
|
||||||
|
{'name': 'Temperature Swing', 'type': 'float', 'value': 1.5, 'step': 0.1, 'siPrefix': True, 'prefix': '±', 'suffix': '°C'},
|
||||||
|
{'name': 'Run', 'type': 'action', 'tip': 'Run'},
|
||||||
|
]},
|
||||||
|
]},
|
||||||
|
{'name': 'Save to flash', 'type': 'action', 'tip': 'Save config to thermostat, applies on reset', 'commands': [f'save {ch}']}
|
||||||
|
] for ch in range(2)]
|
||||||
|
|
||||||
def __init__(self, args):
|
def __init__(self, args):
|
||||||
super().__init__()
|
super().__init__()
|
||||||
|
|
||||||
|
@ -180,7 +179,7 @@ class MainWindow(QtWidgets.QMainWindow, Ui_MainWindow):
|
||||||
self._set_up_plot_menu()
|
self._set_up_plot_menu()
|
||||||
|
|
||||||
self.params = [
|
self.params = [
|
||||||
CommandsParameter.create(name=f"Thermostat Channel {ch} Parameters", type='group', value=ch, children=THERMOSTAT_PARAMETERS[ch])
|
CommandsParameter.create(name=f"Thermostat Channel {ch} Parameters", type='group', value=ch, children=self.THERMOSTAT_PARAMETERS[ch])
|
||||||
for ch in range(2)
|
for ch in range(2)
|
||||||
]
|
]
|
||||||
self._set_param_tree()
|
self._set_param_tree()
|
||||||
|
|
Loading…
Reference in New Issue