- use Valuechanged mechanism

This commit is contained in:
jens
2020-11-29 12:37:18 +01:00
parent 135f2b6898
commit d16b6b272a
9 changed files with 1713 additions and 1673 deletions
+25 -3
View File
@@ -5,7 +5,7 @@ from ws.server.ws_server_multi_user import WsServerMultiUser
from components.sensor.tempSensorSim import TempSensorSim, ATemperatureSensor
from components.plant.pot import Pot, APlant
from components.actor.heater import Heater, AHeater
from components.pid import kalman
from components.pid import kalman, temp_controller
from ws.message import MsgIo, MessageDispatcher
from utils.value import Value, ValueChanged
@@ -179,14 +179,36 @@ if __name__ == '__main__':
"kn" : 0.2
}
pot = Pot(pot_params)
pot.connect_theta_changed(sensor.set_fake_temp)
pot.set_on_changed("temp", ValueChanged(sensor.set_fake_temp, prec=1))
taskmgr.add(PotTask(pot, 0.1, dispatcher.msgio_get("Pot")))
# Heater
heater = Heater()
heater.connect_power_changed(pot.setPower)
heater.set_on_changed("power_eff", ValueChanged(pot.setPower, prec=0))
taskmgr.add(HeaterTask(heater, 0.02, dispatcher.msgio_get("Heater")))
# Temperature Controller
tc_params = {
"dt": 1.0,
"Hold": {
"Pid": {
"kp": 0.5,
"ki": 0.0,
"kd": 0.5,
"rho": 1.0
}
},
"Heat": {
"Pid": {
"kp": 0.002,
"ki": 0.0002,
"kd": 0.0,
"rho": 1.0
}
}
}
tc = temp_controller.TempController(tc_params)
h_dispatcher = taskmgr.start()
h_server = server.listen("localhost", 8765)
asyncio.gather(h_dispatcher, h_server)
+1467 -1433
View File
File diff suppressed because it is too large Load Diff
+4 -4
View File
@@ -28,7 +28,7 @@ class Window(QtWidgets.QMainWindow, Ui_MainWindow):
self.setupUi(self)
self.actionStart.triggered.connect(self.connect)
self.actionStop.triggered.connect(self.disconnect)
self.Slider.valueChanged.connect(self.on_slider_changed)
self.Slider_pwr_soll.valueChanged.connect(self.on_slider_changed)
self.checkbox_heater_activate.stateChanged.connect(self.on_checkbox_changed)
self.send_data = Queue()
self.slider_initial_update = True
@@ -66,14 +66,14 @@ class Window(QtWidgets.QMainWindow, Ui_MainWindow):
elif "Power" in key:
self.lcdNumber.display(msg['Power'])
if self.slider_initial_update:
self.Slider.setValue(msg['Power'])
self.Slider_pwr_soll.setValue(msg['Power'])
self.slider_initial_update = False
elif "Capabilities" in key:
submsg = msg['Capabilities']
if "Power" in submsg:
submsg = submsg['Power']
self.Slider.setLowerBound(submsg['Min'])
self.Slider.setUpperBound(submsg['Max'])
self.Slider_pwr_soll.setLowerBound(submsg['Min'])
self.Slider_pwr_soll.setUpperBound(submsg['Max'])
def closeEvent(self, event):
print("Exitting gracefully!")
+203 -187
View File
@@ -14,7 +14,7 @@ class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.setEnabled(True)
MainWindow.resize(798, 705)
MainWindow.resize(1591, 718)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
@@ -175,15 +175,43 @@ class Ui_MainWindow(object):
self.centralwidget.setObjectName("centralwidget")
self.horizontalTabWidget = QtWidgets.QTabWidget(self.centralwidget)
self.horizontalTabWidget.setEnabled(True)
self.horizontalTabWidget.setGeometry(QtCore.QRect(0, 10, 350, 471))
self.horizontalTabWidget.setGeometry(QtCore.QRect(10, 0, 350, 471))
self.horizontalTabWidget.setObjectName("horizontalTabWidget")
self.horizontalTabWidgetPage1 = QtWidgets.QWidget()
self.horizontalTabWidgetPage1.setObjectName("horizontalTabWidgetPage1")
self.horizontalLayout = QtWidgets.QHBoxLayout(self.horizontalTabWidgetPage1)
self.horizontalLayout.setObjectName("horizontalLayout")
self.verticalLayout = QtWidgets.QVBoxLayout()
self.gridLayout = QtWidgets.QGridLayout()
self.gridLayout.setObjectName("gridLayout")
self.horizontalLayout.addLayout(self.gridLayout)
self.horizontalTabWidget.addTab(self.horizontalTabWidgetPage1, "")
self.tab = QtWidgets.QWidget()
self.tab.setObjectName("tab")
self.horizontalTabWidget.addTab(self.tab, "")
self.tab_2 = QtWidgets.QWidget()
self.tab_2.setObjectName("tab_2")
self.horizontalTabWidget.addTab(self.tab_2, "")
self.groupBox = QtWidgets.QGroupBox(self.centralwidget)
self.groupBox.setGeometry(QtCore.QRect(370, 70, 111, 401))
self.groupBox.setObjectName("groupBox")
self.Slider_pwr_soll = QwtSlider(self.groupBox)
self.Slider_pwr_soll.setGeometry(QtCore.QRect(10, 40, 63, 311))
self.Slider_pwr_soll.setLowerBound(0.0)
self.Slider_pwr_soll.setUpperBound(100.0)
self.Slider_pwr_soll.setScaleMaxMajor(7)
self.Slider_pwr_soll.setScaleMaxMinor(3)
self.Slider_pwr_soll.setScaleStepSize(0.0)
self.Slider_pwr_soll.setObjectName("Slider_pwr_soll")
self.checkbox_heater_activate = QtWidgets.QCheckBox(self.groupBox)
self.checkbox_heater_activate.setGeometry(QtCore.QRect(20, 370, 81, 23))
self.checkbox_heater_activate.setObjectName("checkbox_heater_activate")
self.widget = QtWidgets.QWidget(self.centralwidget)
self.widget.setGeometry(QtCore.QRect(700, 70, 328, 422))
self.widget.setObjectName("widget")
self.verticalLayout = QtWidgets.QVBoxLayout(self.widget)
self.verticalLayout.setContentsMargins(0, 0, 0, 0)
self.verticalLayout.setObjectName("verticalLayout")
self.lcdNumber_3 = QtWidgets.QLCDNumber(self.horizontalTabWidgetPage1)
self.lcdNumber_3 = QtWidgets.QLCDNumber(self.widget)
self.lcdNumber_3.setMinimumSize(QtCore.QSize(0, 120))
palette = QtGui.QPalette()
brush = QtGui.QBrush(QtGui.QColor(0, 0, 0))
@@ -339,161 +367,7 @@ class Ui_MainWindow(object):
self.lcdNumber_3.setProperty("value", 2037.0)
self.lcdNumber_3.setObjectName("lcdNumber_3")
self.verticalLayout.addWidget(self.lcdNumber_3)
self.lcdNumber_2 = QtWidgets.QLCDNumber(self.horizontalTabWidgetPage1)
self.lcdNumber_2.setMinimumSize(QtCore.QSize(0, 120))
palette = QtGui.QPalette()
brush = QtGui.QBrush(QtGui.QColor(0, 0, 0))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.WindowText, brush)
brush = QtGui.QBrush(QtGui.QColor(138, 226, 52))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Button, brush)
brush = QtGui.QBrush(QtGui.QColor(198, 255, 143))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Light, brush)
brush = QtGui.QBrush(QtGui.QColor(168, 240, 97))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Midlight, brush)
brush = QtGui.QBrush(QtGui.QColor(69, 113, 26))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Dark, brush)
brush = QtGui.QBrush(QtGui.QColor(92, 151, 34))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Mid, brush)
brush = QtGui.QBrush(QtGui.QColor(0, 0, 0))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Text, brush)
brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.BrightText, brush)
brush = QtGui.QBrush(QtGui.QColor(0, 0, 0))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.ButtonText, brush)
brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Base, brush)
brush = QtGui.QBrush(QtGui.QColor(138, 226, 52))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Window, brush)
brush = QtGui.QBrush(QtGui.QColor(0, 0, 0))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Shadow, brush)
brush = QtGui.QBrush(QtGui.QColor(196, 240, 153))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.AlternateBase, brush)
brush = QtGui.QBrush(QtGui.QColor(255, 255, 220))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.ToolTipBase, brush)
brush = QtGui.QBrush(QtGui.QColor(0, 0, 0))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.ToolTipText, brush)
brush = QtGui.QBrush(QtGui.QColor(0, 0, 0, 128))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.PlaceholderText, brush)
brush = QtGui.QBrush(QtGui.QColor(0, 0, 0))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.WindowText, brush)
brush = QtGui.QBrush(QtGui.QColor(138, 226, 52))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Button, brush)
brush = QtGui.QBrush(QtGui.QColor(198, 255, 143))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Light, brush)
brush = QtGui.QBrush(QtGui.QColor(168, 240, 97))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Midlight, brush)
brush = QtGui.QBrush(QtGui.QColor(69, 113, 26))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Dark, brush)
brush = QtGui.QBrush(QtGui.QColor(92, 151, 34))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Mid, brush)
brush = QtGui.QBrush(QtGui.QColor(0, 0, 0))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Text, brush)
brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.BrightText, brush)
brush = QtGui.QBrush(QtGui.QColor(0, 0, 0))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.ButtonText, brush)
brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Base, brush)
brush = QtGui.QBrush(QtGui.QColor(138, 226, 52))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Window, brush)
brush = QtGui.QBrush(QtGui.QColor(0, 0, 0))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Shadow, brush)
brush = QtGui.QBrush(QtGui.QColor(196, 240, 153))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.AlternateBase, brush)
brush = QtGui.QBrush(QtGui.QColor(255, 255, 220))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.ToolTipBase, brush)
brush = QtGui.QBrush(QtGui.QColor(0, 0, 0))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.ToolTipText, brush)
brush = QtGui.QBrush(QtGui.QColor(0, 0, 0, 128))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.PlaceholderText, brush)
brush = QtGui.QBrush(QtGui.QColor(69, 113, 26))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.WindowText, brush)
brush = QtGui.QBrush(QtGui.QColor(138, 226, 52))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Button, brush)
brush = QtGui.QBrush(QtGui.QColor(198, 255, 143))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Light, brush)
brush = QtGui.QBrush(QtGui.QColor(168, 240, 97))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Midlight, brush)
brush = QtGui.QBrush(QtGui.QColor(69, 113, 26))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Dark, brush)
brush = QtGui.QBrush(QtGui.QColor(92, 151, 34))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Mid, brush)
brush = QtGui.QBrush(QtGui.QColor(69, 113, 26))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Text, brush)
brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.BrightText, brush)
brush = QtGui.QBrush(QtGui.QColor(69, 113, 26))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.ButtonText, brush)
brush = QtGui.QBrush(QtGui.QColor(138, 226, 52))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Base, brush)
brush = QtGui.QBrush(QtGui.QColor(138, 226, 52))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Window, brush)
brush = QtGui.QBrush(QtGui.QColor(0, 0, 0))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Shadow, brush)
brush = QtGui.QBrush(QtGui.QColor(138, 226, 52))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.AlternateBase, brush)
brush = QtGui.QBrush(QtGui.QColor(255, 255, 220))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.ToolTipBase, brush)
brush = QtGui.QBrush(QtGui.QColor(0, 0, 0))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.ToolTipText, brush)
brush = QtGui.QBrush(QtGui.QColor(0, 0, 0, 128))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.PlaceholderText, brush)
self.lcdNumber_2.setPalette(palette)
self.lcdNumber_2.setFrameShape(QtWidgets.QFrame.Box)
self.lcdNumber_2.setFrameShadow(QtWidgets.QFrame.Raised)
self.lcdNumber_2.setSmallDecimalPoint(False)
self.lcdNumber_2.setProperty("value", 2037.0)
self.lcdNumber_2.setObjectName("lcdNumber_2")
self.verticalLayout.addWidget(self.lcdNumber_2)
self.lcdNumber = QtWidgets.QLCDNumber(self.horizontalTabWidgetPage1)
self.lcdNumber = QtWidgets.QLCDNumber(self.widget)
self.lcdNumber.setMinimumSize(QtCore.QSize(0, 120))
palette = QtGui.QPalette()
brush = QtGui.QBrush(QtGui.QColor(0, 0, 0))
@@ -647,34 +521,174 @@ class Ui_MainWindow(object):
self.lcdNumber.setProperty("value", 2037.0)
self.lcdNumber.setObjectName("lcdNumber")
self.verticalLayout.addWidget(self.lcdNumber)
self.horizontalLayout.addLayout(self.verticalLayout)
self.horizontalTabWidget.addTab(self.horizontalTabWidgetPage1, "")
self.tab = QtWidgets.QWidget()
self.tab.setObjectName("tab")
self.horizontalTabWidget.addTab(self.tab, "")
self.tab_2 = QtWidgets.QWidget()
self.tab_2.setObjectName("tab_2")
self.horizontalTabWidget.addTab(self.tab_2, "")
self.Thermo = QwtThermo(self.centralwidget)
self.Thermo.setGeometry(QtCore.QRect(890, 50, 56, 201))
self.Thermo.setObjectName("Thermo")
self.groupBox = QtWidgets.QGroupBox(self.centralwidget)
self.groupBox.setGeometry(QtCore.QRect(410, 30, 261, 441))
self.groupBox.setObjectName("groupBox")
self.checkbox_heater_activate = QtWidgets.QCheckBox(self.groupBox)
self.checkbox_heater_activate.setGeometry(QtCore.QRect(140, 390, 92, 23))
self.checkbox_heater_activate.setObjectName("checkbox_heater_activate")
self.Slider = QwtSlider(self.groupBox)
self.Slider.setGeometry(QtCore.QRect(10, 40, 91, 381))
self.Slider.setLowerBound(0.0)
self.Slider.setUpperBound(100.0)
self.Slider.setScaleMaxMajor(7)
self.Slider.setScaleMaxMinor(3)
self.Slider.setScaleStepSize(0.0)
self.Slider.setObjectName("Slider")
self.lcdNumber_2 = QtWidgets.QLCDNumber(self.widget)
self.lcdNumber_2.setMinimumSize(QtCore.QSize(0, 120))
palette = QtGui.QPalette()
brush = QtGui.QBrush(QtGui.QColor(0, 0, 0))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.WindowText, brush)
brush = QtGui.QBrush(QtGui.QColor(138, 226, 52))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Button, brush)
brush = QtGui.QBrush(QtGui.QColor(198, 255, 143))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Light, brush)
brush = QtGui.QBrush(QtGui.QColor(168, 240, 97))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Midlight, brush)
brush = QtGui.QBrush(QtGui.QColor(69, 113, 26))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Dark, brush)
brush = QtGui.QBrush(QtGui.QColor(92, 151, 34))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Mid, brush)
brush = QtGui.QBrush(QtGui.QColor(0, 0, 0))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Text, brush)
brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.BrightText, brush)
brush = QtGui.QBrush(QtGui.QColor(0, 0, 0))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.ButtonText, brush)
brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Base, brush)
brush = QtGui.QBrush(QtGui.QColor(138, 226, 52))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Window, brush)
brush = QtGui.QBrush(QtGui.QColor(0, 0, 0))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Shadow, brush)
brush = QtGui.QBrush(QtGui.QColor(196, 240, 153))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.AlternateBase, brush)
brush = QtGui.QBrush(QtGui.QColor(255, 255, 220))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.ToolTipBase, brush)
brush = QtGui.QBrush(QtGui.QColor(0, 0, 0))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.ToolTipText, brush)
brush = QtGui.QBrush(QtGui.QColor(0, 0, 0, 128))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.PlaceholderText, brush)
brush = QtGui.QBrush(QtGui.QColor(0, 0, 0))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.WindowText, brush)
brush = QtGui.QBrush(QtGui.QColor(138, 226, 52))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Button, brush)
brush = QtGui.QBrush(QtGui.QColor(198, 255, 143))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Light, brush)
brush = QtGui.QBrush(QtGui.QColor(168, 240, 97))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Midlight, brush)
brush = QtGui.QBrush(QtGui.QColor(69, 113, 26))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Dark, brush)
brush = QtGui.QBrush(QtGui.QColor(92, 151, 34))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Mid, brush)
brush = QtGui.QBrush(QtGui.QColor(0, 0, 0))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Text, brush)
brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.BrightText, brush)
brush = QtGui.QBrush(QtGui.QColor(0, 0, 0))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.ButtonText, brush)
brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Base, brush)
brush = QtGui.QBrush(QtGui.QColor(138, 226, 52))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Window, brush)
brush = QtGui.QBrush(QtGui.QColor(0, 0, 0))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Shadow, brush)
brush = QtGui.QBrush(QtGui.QColor(196, 240, 153))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.AlternateBase, brush)
brush = QtGui.QBrush(QtGui.QColor(255, 255, 220))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.ToolTipBase, brush)
brush = QtGui.QBrush(QtGui.QColor(0, 0, 0))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.ToolTipText, brush)
brush = QtGui.QBrush(QtGui.QColor(0, 0, 0, 128))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.PlaceholderText, brush)
brush = QtGui.QBrush(QtGui.QColor(69, 113, 26))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.WindowText, brush)
brush = QtGui.QBrush(QtGui.QColor(138, 226, 52))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Button, brush)
brush = QtGui.QBrush(QtGui.QColor(198, 255, 143))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Light, brush)
brush = QtGui.QBrush(QtGui.QColor(168, 240, 97))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Midlight, brush)
brush = QtGui.QBrush(QtGui.QColor(69, 113, 26))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Dark, brush)
brush = QtGui.QBrush(QtGui.QColor(92, 151, 34))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Mid, brush)
brush = QtGui.QBrush(QtGui.QColor(69, 113, 26))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Text, brush)
brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.BrightText, brush)
brush = QtGui.QBrush(QtGui.QColor(69, 113, 26))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.ButtonText, brush)
brush = QtGui.QBrush(QtGui.QColor(138, 226, 52))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Base, brush)
brush = QtGui.QBrush(QtGui.QColor(138, 226, 52))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Window, brush)
brush = QtGui.QBrush(QtGui.QColor(0, 0, 0))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Shadow, brush)
brush = QtGui.QBrush(QtGui.QColor(138, 226, 52))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.AlternateBase, brush)
brush = QtGui.QBrush(QtGui.QColor(255, 255, 220))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.ToolTipBase, brush)
brush = QtGui.QBrush(QtGui.QColor(0, 0, 0))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.ToolTipText, brush)
brush = QtGui.QBrush(QtGui.QColor(0, 0, 0, 128))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.PlaceholderText, brush)
self.lcdNumber_2.setPalette(palette)
self.lcdNumber_2.setFrameShape(QtWidgets.QFrame.Box)
self.lcdNumber_2.setFrameShadow(QtWidgets.QFrame.Raised)
self.lcdNumber_2.setSmallDecimalPoint(False)
self.lcdNumber_2.setProperty("value", 2037.0)
self.lcdNumber_2.setObjectName("lcdNumber_2")
self.verticalLayout.addWidget(self.lcdNumber_2)
self.groupBox_2 = QtWidgets.QGroupBox(self.centralwidget)
self.groupBox_2.setGeometry(QtCore.QRect(500, 70, 111, 401))
self.groupBox_2.setObjectName("groupBox_2")
self.Slider_temp_soll = QwtSlider(self.groupBox_2)
self.Slider_temp_soll.setGeometry(QtCore.QRect(10, 40, 63, 311))
self.Slider_temp_soll.setLowerBound(0.0)
self.Slider_temp_soll.setUpperBound(100.0)
self.Slider_temp_soll.setScaleMaxMajor(7)
self.Slider_temp_soll.setScaleMaxMinor(3)
self.Slider_temp_soll.setScaleStepSize(0.0)
self.Slider_temp_soll.setObjectName("Slider_temp_soll")
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 798, 22))
self.menubar.setGeometry(QtCore.QRect(0, 0, 1591, 22))
self.menubar.setObjectName("menubar")
self.menu_File = QtWidgets.QMenu(self.menubar)
self.menu_File.setObjectName("menu_File")
@@ -706,10 +720,12 @@ class Ui_MainWindow(object):
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "BrewPi"))
self.horizontalTabWidget.setTabText(self.horizontalTabWidget.indexOf(self.tab), _translate("MainWindow", "Seite"))
self.horizontalTabWidget.setTabText(self.horizontalTabWidget.indexOf(self.horizontalTabWidgetPage1), _translate("MainWindow", "Manual"))
self.horizontalTabWidget.setTabText(self.horizontalTabWidget.indexOf(self.tab), _translate("MainWindow", "Automatic"))
self.horizontalTabWidget.setTabText(self.horizontalTabWidget.indexOf(self.tab_2), _translate("MainWindow", "Seite"))
self.groupBox.setTitle(_translate("MainWindow", "Heater"))
self.groupBox.setTitle(_translate("MainWindow", "Power"))
self.checkbox_heater_activate.setText(_translate("MainWindow", "Activate"))
self.groupBox_2.setTitle(_translate("MainWindow", "Temperatur"))
self.menu_File.setTitle(_translate("MainWindow", "&File"))
self.menu_Help.setTitle(_translate("MainWindow", "&Help"))
self.toolBar.setWindowTitle(_translate("MainWindow", "toolBar"))
+5 -16
View File
@@ -3,14 +3,9 @@ from components.aheater import AHeater
class Heater(AHeater):
def __init__(self):
self.power = self.get_power_min()
self.power_last = -1
self.power_set = self.get_power_min()
self.is_active = False
self.power_changed_callback = None
def connect_power_changed(self, func):
self.power_changed_callback = func
self.power_eff = 0
def get_power_min(self):
return 500
@@ -22,18 +17,12 @@ class Heater(AHeater):
self.is_active = enable
def process(self):
if self.getPower() != self.power_last:
if self.power_changed_callback is not None:
self.power_changed_callback(self.getPower())
self.power_last = self.getPower()
self.power_eff = self.power_set if self.is_active else 0
def setPower(self, power):
self.power = max(self.get_power_min(), min(self.get_power_max(), power))
self.power_set = max(self.get_power_min(), min(self.get_power_max(), power))
def getPower(self):
if self.is_active:
return self.power
else:
return 0
return self.power_eff
+2 -8
View File
@@ -1,10 +1,8 @@
import abc
from utils.value import AttributeChange
class AHeater:
def __init__(self):
pass
class AHeater(AttributeChange):
@abc.abstractmethod
def get_power_min(self):
pass
@@ -28,7 +26,3 @@ class AHeater:
@abc.abstractmethod
def getPower(self):
return None
@abc.abstractmethod
def connect_power_changed(self, func):
pass
+3 -9
View File
@@ -1,10 +1,8 @@
import abc
from utils.value import AttributeChange
class APlant:
def __init__(self, params):
pass
class APlant(AttributeChange):
@abc.abstractmethod
def activate(self, enable):
return None
@@ -14,7 +12,7 @@ class APlant:
pass
@abc.abstractmethod
def setPower(self, power_W):
def setPower(self, power):
pass
@abc.abstractmethod
@@ -24,7 +22,3 @@ class APlant:
@abc.abstractmethod
def getTemperature(self):
return None
@abc.abstractmethod
def connect_theta_changed(self, func):
pass
+3 -11
View File
@@ -1,5 +1,4 @@
import numpy as np
import json
from components.aplant import APlant
@@ -20,17 +19,13 @@ class Pot(APlant):
self.theta_amb = params['theta_amb']
self.theta = 0
self.temp = self.theta_amb
self.alpha = self.dt / 1
self.alpha_delay = self.dt/self.Td
self.theta_changed_callback = None
self.power_set = 0
self.power_actual = 0
def connect_theta_changed(self, func):
self.theta_changed_callback = func
def activate(self, enable):
pass
@@ -41,12 +36,9 @@ class Pot(APlant):
self.e = self.e * (1 - ((self.L * self.theta) * self.dt) / (self.M * self.C))
self.x = (1 - self.alpha) * self.x + self.gain * self.alpha * self.power_actual
self.e += self.x
theta = self.e / (self.M * self.C)
self.theta = self.e / (self.M * self.C)
if self.theta_changed_callback is not None:
self.theta_changed_callback(self.getTemperature())
self.theta = theta
self.temp = self.getTemperature()
def setPower(self, power):
self.power_set = power
+1 -2
View File
@@ -33,8 +33,7 @@ class ValueChanged(object):
class AttributeChange(object):
def __init__(self):
self.callbacks = {}
callbacks = {}
def set_on_changed(self, key, on_changed: ValueChanged):
if key not in self.callbacks: