forked from M-Labs/thermostat
Use titles for paramtee entries
For conciseness and easier changing of displayed parameter names.
This commit is contained in:
parent
dc8e682ac6
commit
4fb1043b9e
@ -125,23 +125,23 @@ class CtrlPanel(QObject):
|
||||
for settings in pid_settings:
|
||||
channel = settings["channel"]
|
||||
with QSignalBlocker(self.params[channel]):
|
||||
self.params[channel].child("PID Settings", "Kp").setValue(
|
||||
self.params[channel].child("pid", "kp").setValue(
|
||||
settings["parameters"]["kp"]
|
||||
)
|
||||
self.params[channel].child("PID Settings", "Ki").setValue(
|
||||
self.params[channel].child("pid", "ki").setValue(
|
||||
settings["parameters"]["ki"]
|
||||
)
|
||||
self.params[channel].child("PID Settings", "Kd").setValue(
|
||||
self.params[channel].child("pid", "kd").setValue(
|
||||
settings["parameters"]["kd"]
|
||||
)
|
||||
self.params[channel].child(
|
||||
"PID Settings", "PID Output Clamping", "Minimum"
|
||||
"pid", "pid_output_clamping", "output_min"
|
||||
).setValue(settings["parameters"]["output_min"] * 1000)
|
||||
self.params[channel].child(
|
||||
"PID Settings", "PID Output Clamping", "Maximum"
|
||||
"pid", "pid_output_clamping", "output_max"
|
||||
).setValue(settings["parameters"]["output_max"] * 1000)
|
||||
self.params[channel].child(
|
||||
"Output Settings", "Control Method", "Set Temperature"
|
||||
"output", "control_method", "set_temperature"
|
||||
).setValue(settings["target"])
|
||||
|
||||
@pyqtSlot("QVariantList")
|
||||
@ -149,18 +149,18 @@ class CtrlPanel(QObject):
|
||||
for settings in report_data:
|
||||
channel = settings["channel"]
|
||||
with QSignalBlocker(self.params[channel]):
|
||||
self.params[channel].child("Output Settings", "Control Method").setValue(
|
||||
"Temperature PID" if settings["pid_engaged"] else "Constant Current"
|
||||
self.params[channel].child("output", "control_method").setValue(
|
||||
"temperature_pid" if settings["pid_engaged"] else "constant_current"
|
||||
)
|
||||
self.params[channel].child(
|
||||
"Output Settings", "Control Method", "Set Current"
|
||||
"output", "control_method", "set_current"
|
||||
).setValue(settings["i_set"] * 1000)
|
||||
if settings["temperature"] is not None:
|
||||
self.params[channel].child("Temperature").setValue(
|
||||
self.params[channel].child("temperature").setValue(
|
||||
settings["temperature"]
|
||||
)
|
||||
if settings["tec_i"] is not None:
|
||||
self.params[channel].child("Current through TEC").setValue(
|
||||
self.params[channel].child("current").setValue(
|
||||
settings["tec_i"] * 1000
|
||||
)
|
||||
|
||||
@ -169,13 +169,13 @@ class CtrlPanel(QObject):
|
||||
for sh_param in sh_data:
|
||||
channel = sh_param["channel"]
|
||||
with QSignalBlocker(self.params[channel]):
|
||||
self.params[channel].child("Thermistor Settings", "T₀").setValue(
|
||||
self.params[channel].child("thermistor", "t0").setValue(
|
||||
sh_param["params"]["t0"] - 273.15
|
||||
)
|
||||
self.params[channel].child("Thermistor Settings", "R₀").setValue(
|
||||
self.params[channel].child("thermistor", "r0").setValue(
|
||||
sh_param["params"]["r0"]
|
||||
)
|
||||
self.params[channel].child("Thermistor Settings", "B").setValue(
|
||||
self.params[channel].child("thermistor", "b").setValue(
|
||||
sh_param["params"]["b"]
|
||||
)
|
||||
|
||||
@ -187,13 +187,13 @@ class CtrlPanel(QObject):
|
||||
channel = pwm_params["channel"]
|
||||
with QSignalBlocker(self.params[channel]):
|
||||
self.params[channel].child(
|
||||
"Output Settings", "Limits", "Max Voltage Difference"
|
||||
"output", "limits", "max_v"
|
||||
).setValue(pwm_params["max_v"]["value"])
|
||||
self.params[channel].child(
|
||||
"Output Settings", "Limits", "Max Cooling Current"
|
||||
"output", "limits", "max_i_pos"
|
||||
).setValue(pwm_params["max_i_pos"]["value"] * 1000)
|
||||
self.params[channel].child(
|
||||
"Output Settings", "Limits", "Max Heating Current"
|
||||
"output", "limits", "max_i_neg"
|
||||
).setValue(pwm_params["max_i_neg"]["value"] * 1000)
|
||||
|
||||
for limit in "max_i_pos", "max_i_neg", "max_v":
|
||||
@ -207,5 +207,5 @@ class CtrlPanel(QObject):
|
||||
channel = postfilter_params["channel"]
|
||||
with QSignalBlocker(self.params[channel]):
|
||||
self.params[channel].child(
|
||||
"Thermistor Settings", "Postfilter Rate"
|
||||
"thermistor", "postfilter_rate"
|
||||
).setValue(postfilter_params["rate"])
|
||||
|
@ -1,30 +1,34 @@
|
||||
{
|
||||
"ctrl_panel":[
|
||||
{
|
||||
"name":"Temperature",
|
||||
"name":"temperature",
|
||||
"title": "Temperature",
|
||||
"type":"float",
|
||||
"format":"{value:.4f} °C",
|
||||
"readonly":true
|
||||
},
|
||||
{
|
||||
"name":"Current through TEC",
|
||||
"name":"current",
|
||||
"title":"Current through TEC",
|
||||
"type":"float",
|
||||
"suffix":"mA",
|
||||
"decimals":6,
|
||||
"readonly":true
|
||||
},
|
||||
{
|
||||
"name":"Output Settings",
|
||||
"name":"output",
|
||||
"title":"Output Settings",
|
||||
"expanded":true,
|
||||
"type":"group",
|
||||
"children":[
|
||||
{
|
||||
"name":"Control Method",
|
||||
"name":"control_method",
|
||||
"title":"Control Method",
|
||||
"type":"mutex",
|
||||
"limits":[
|
||||
"Constant Current",
|
||||
"Temperature PID"
|
||||
],
|
||||
"limits":{
|
||||
"Constant Current": "constant_current",
|
||||
"Temperature PID": "temperature_pid"
|
||||
},
|
||||
"activaters":[
|
||||
null,
|
||||
[
|
||||
@ -35,7 +39,8 @@
|
||||
],
|
||||
"children":[
|
||||
{
|
||||
"name":"Set Current",
|
||||
"name":"set_current",
|
||||
"title":"Set Current",
|
||||
"type":"float",
|
||||
"value":0,
|
||||
"step":100,
|
||||
@ -54,7 +59,8 @@
|
||||
"lock":false
|
||||
},
|
||||
{
|
||||
"name":"Set Temperature",
|
||||
"name": "set_temperature",
|
||||
"title":"Set Temperature",
|
||||
"type":"float",
|
||||
"value":25,
|
||||
"step":0.1,
|
||||
@ -73,12 +79,14 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"name":"Limits",
|
||||
"name":"limits",
|
||||
"title":"Limits",
|
||||
"expanded":true,
|
||||
"type":"group",
|
||||
"children":[
|
||||
{
|
||||
"name":"Max Cooling Current",
|
||||
"name":"max_i_pos",
|
||||
"title":"Max Cooling Current",
|
||||
"type":"float",
|
||||
"value":0,
|
||||
"step":100,
|
||||
@ -96,7 +104,8 @@
|
||||
"lock":false
|
||||
},
|
||||
{
|
||||
"name":"Max Heating Current",
|
||||
"name":"max_i_neg",
|
||||
"title":"Max Heating Current",
|
||||
"type":"float",
|
||||
"value":0,
|
||||
"step":100,
|
||||
@ -114,7 +123,8 @@
|
||||
"lock":false
|
||||
},
|
||||
{
|
||||
"name":"Max Voltage Difference",
|
||||
"name":"max_v",
|
||||
"title":"Max Voltage Difference",
|
||||
"type":"float",
|
||||
"value":0,
|
||||
"step":0.1,
|
||||
@ -136,13 +146,15 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"name":"Thermistor Settings",
|
||||
"name":"thermistor",
|
||||
"title":"Thermistor Settings",
|
||||
"expanded":true,
|
||||
"type":"group",
|
||||
"tip": "Settings of the connected Thermistor",
|
||||
"children":[
|
||||
{
|
||||
"name":"T₀",
|
||||
"name":"t0",
|
||||
"title":"T₀",
|
||||
"type":"float",
|
||||
"value":25,
|
||||
"step":0.1,
|
||||
@ -160,7 +172,8 @@
|
||||
"lock":false
|
||||
},
|
||||
{
|
||||
"name":"R₀",
|
||||
"name":"r0",
|
||||
"title":"R₀",
|
||||
"type":"float",
|
||||
"value":10000,
|
||||
"step":1,
|
||||
@ -175,7 +188,8 @@
|
||||
"lock":false
|
||||
},
|
||||
{
|
||||
"name":"B",
|
||||
"name":"b",
|
||||
"title":"B",
|
||||
"type":"float",
|
||||
"value":3950,
|
||||
"step":1,
|
||||
@ -189,7 +203,8 @@
|
||||
"lock":false
|
||||
},
|
||||
{
|
||||
"name":"Postfilter Rate",
|
||||
"name":"postfilter_rate",
|
||||
"title":"Postfilter Rate",
|
||||
"type":"list",
|
||||
"value":16.67,
|
||||
"param":[
|
||||
@ -209,12 +224,14 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"name":"PID Settings",
|
||||
"name":"pid",
|
||||
"title":"PID Settings",
|
||||
"expanded":true,
|
||||
"type":"group",
|
||||
"children":[
|
||||
{
|
||||
"name":"Kp",
|
||||
"name":"kp",
|
||||
"title":"Kp",
|
||||
"type":"float",
|
||||
"step":0.1,
|
||||
"suffix":"",
|
||||
@ -226,7 +243,8 @@
|
||||
"lock":false
|
||||
},
|
||||
{
|
||||
"name":"Ki",
|
||||
"name":"ki",
|
||||
"title":"Ki",
|
||||
"type":"float",
|
||||
"step":0.1,
|
||||
"suffix":"Hz",
|
||||
@ -238,7 +256,8 @@
|
||||
"lock":false
|
||||
},
|
||||
{
|
||||
"name":"Kd",
|
||||
"name":"kd",
|
||||
"title":"Kd",
|
||||
"type":"float",
|
||||
"step":0.1,
|
||||
"suffix":"s",
|
||||
@ -250,12 +269,14 @@
|
||||
"lock":false
|
||||
},
|
||||
{
|
||||
"name":"PID Output Clamping",
|
||||
"name":"pid_output_clamping",
|
||||
"title":"PID Output Clamping",
|
||||
"expanded":true,
|
||||
"type":"group",
|
||||
"children":[
|
||||
{
|
||||
"name":"Minimum",
|
||||
"name":"output_min",
|
||||
"title":"Minimum",
|
||||
"type":"float",
|
||||
"step":100,
|
||||
"limits":[
|
||||
@ -272,7 +293,8 @@
|
||||
"lock":false
|
||||
},
|
||||
{
|
||||
"name":"Maximum",
|
||||
"name":"output_max",
|
||||
"title":"Maximum",
|
||||
"type":"float",
|
||||
"step":100,
|
||||
"limits":[
|
||||
@ -291,12 +313,14 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"name":"PID Auto Tune",
|
||||
"name":"pid_autotune",
|
||||
"title":"PID Auto Tune",
|
||||
"expanded":false,
|
||||
"type":"group",
|
||||
"children":[
|
||||
{
|
||||
"name":"Target Temperature",
|
||||
"name":"target_temp",
|
||||
"title":"Target Temperature",
|
||||
"type":"float",
|
||||
"value":20,
|
||||
"step":0.1,
|
||||
@ -307,7 +331,8 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"name":"Test Current",
|
||||
"name":"test_current",
|
||||
"title":"Test Current",
|
||||
"type":"float",
|
||||
"value":0,
|
||||
"decimals":6,
|
||||
@ -323,7 +348,8 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"name":"Temperature Swing",
|
||||
"name":"temp_swing",
|
||||
"title":"Temperature Swing",
|
||||
"type":"float",
|
||||
"value":1.5,
|
||||
"step":0.1,
|
||||
@ -335,7 +361,8 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"name":"Lookback",
|
||||
"name":"lookback",
|
||||
"title":"Lookback",
|
||||
"type":"float",
|
||||
"value":3.0,
|
||||
"step":0.1,
|
||||
@ -346,7 +373,8 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"name":"Run",
|
||||
"name":"run_pid",
|
||||
"title":"Run",
|
||||
"type":"action",
|
||||
"tip":"Run"
|
||||
}
|
||||
@ -355,12 +383,14 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"name":"Save to flash",
|
||||
"name":"save",
|
||||
"title":"Save to flash",
|
||||
"type":"action",
|
||||
"tip":"Save settings to thermostat, applies on reset"
|
||||
},
|
||||
{
|
||||
"name":"Load from flash",
|
||||
"name":"load",
|
||||
"title":"Load from flash",
|
||||
"type":"action",
|
||||
"tip":"Load settings from flash"
|
||||
}
|
||||
|
@ -90,10 +90,10 @@ class MainWindow(QtWidgets.QMainWindow):
|
||||
|
||||
param_tree_sigActivated_handles = [
|
||||
[
|
||||
[["Save to flash"], partial(self.thermostat.save_cfg, ch)],
|
||||
[["Load from flash"], partial(self.thermostat.load_cfg, ch)],
|
||||
[["save"], partial(self.thermostat.save_cfg, ch)],
|
||||
[["load"], partial(self.thermostat.load_cfg, ch)],
|
||||
[
|
||||
["PID Settings", "PID Auto Tune", "Run"],
|
||||
["pid", "pid_autotune", "run_pid"],
|
||||
partial(self.pid_auto_tune_request, ch),
|
||||
],
|
||||
]
|
||||
@ -302,7 +302,7 @@ class MainWindow(QtWidgets.QMainWindow):
|
||||
|
||||
if inner_param.opts.get("activaters", None) is not None:
|
||||
activater = inner_param.opts["activaters"][
|
||||
inner_param.opts["limits"].index(data)
|
||||
inner_param.reverse[0].index(data) # ListParameter.reverse = list of codename values
|
||||
]
|
||||
if activater is not None:
|
||||
if activater[1] == "ch":
|
||||
@ -327,11 +327,11 @@ class MainWindow(QtWidgets.QMainWindow):
|
||||
match self.autotuners.get_state(ch):
|
||||
case PIDAutotuneState.STATE_OFF:
|
||||
self.ctrl_panel_view.change_params_title(
|
||||
ch, ("PID Settings", "PID Auto Tune", "Run"), "Run"
|
||||
ch, ("pid", "pid_autotune", "run_pid"), "Run"
|
||||
)
|
||||
case PIDAutotuneState.STATE_READY | PIDAutotuneState.STATE_RELAY_STEP_UP | PIDAutotuneState.STATE_RELAY_STEP_DOWN:
|
||||
self.ctrl_panel_view.change_params_title(
|
||||
ch, ("PID Settings", "PID Auto Tune", "Run"), "Stop"
|
||||
ch, ("pid", "pid_autotune", "run_pid"), "Stop"
|
||||
)
|
||||
ch_tuning.append(ch)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user