- removed MsgIo::send_from_thread
- created sync variant of MessageDispatcher and MsgIo - fixed delay in sending client messages
This commit is contained in:
+23
-17
@@ -2,7 +2,7 @@ from brewpi_win import Ui_MainWindow
|
||||
from PyQt5 import QtWidgets, QtGui
|
||||
import sys
|
||||
from ws.client.ws_client import WsClient
|
||||
from ws.message import MessageDispatcher
|
||||
from ws.message import MessageDispatcherSync
|
||||
from queue import Queue
|
||||
import asyncio
|
||||
from ws.connection import IConnection
|
||||
@@ -15,12 +15,12 @@ class Window(QtWidgets.QMainWindow, Ui_MainWindow):
|
||||
|
||||
loop = asyncio.new_event_loop()
|
||||
asyncio.set_event_loop(loop)
|
||||
self.msg_dispatch = MessageDispatcher(auto_subscribe=True, loop=loop)
|
||||
self.msg_dispatch = MessageDispatcherSync(auto_subscribe=True)
|
||||
self.ws_client = WsClient(listener=self.msg_dispatch, loop=loop)
|
||||
self.msg_pot = self.msg_dispatch.msgio_get('Pot')
|
||||
self.msg_sensor = self.msg_dispatch.msgio_get('Sensor')
|
||||
self.msg_heater = self.msg_dispatch.msgio_get('Heater')
|
||||
self.msg_tempctrl = self.msg_dispatch.msgio_get('Tc')
|
||||
self.msg_tempctrl = self.msg_dispatch.msgio_get('TempCtrl')
|
||||
|
||||
self.msg_pot.set_recv_handler(self.on_pot_changed)
|
||||
self.msg_sensor.set_recv_handler(self.on_sensor_changed)
|
||||
@@ -35,10 +35,14 @@ class Window(QtWidgets.QMainWindow, Ui_MainWindow):
|
||||
|
||||
self.checkbox_heater_activate.stateChanged.connect(self.on_checkbox_changed)
|
||||
self.send_data = Queue()
|
||||
self.slider_initial_update = True
|
||||
self.slider_pwr_initial_update = True
|
||||
self.slider_temp_soll_initial_update = True
|
||||
self.checkbox_heater_activate_initial_update = True
|
||||
|
||||
def connect(self):
|
||||
self.slider_initial_update = True
|
||||
self.slider_pwr_initial_update = True
|
||||
self.slider_temp_soll_initial_update = True
|
||||
self.checkbox_heater_activate_initial_update = True
|
||||
self.ws_client.connect(uri="ws://localhost:8765")
|
||||
|
||||
def disconnect(self):
|
||||
@@ -46,41 +50,43 @@ class Window(QtWidgets.QMainWindow, Ui_MainWindow):
|
||||
|
||||
def on_slider_pwr_soll_changed(self, value):
|
||||
print("on_slider_pwr_soll_changed {}".format(value))
|
||||
self.msg_heater.send_from_thread({'Power': value})
|
||||
self.msg_heater.send({'Power': value})
|
||||
|
||||
def on_slider_temp_soll_changed(self, value):
|
||||
print("on_slider_temp_soll_changed {}".format(value))
|
||||
self.msg_tempctrl.send_from_thread({'Soll': value})
|
||||
self.msg_tempctrl.send({'Soll': value})
|
||||
|
||||
def on_checkbox_changed(self, value):
|
||||
print("on_checkbox_changed {}".format(value))
|
||||
self.msg_heater.send_from_thread({'Activate': int(value == 2)})
|
||||
self.msg_heater.send({'Activate': int(value == 2)})
|
||||
|
||||
async def on_pot_changed(self, msg):
|
||||
def on_pot_changed(self, msg):
|
||||
print("on_pot_changed {}".format(msg))
|
||||
if "Power" in msg:
|
||||
self.lcdNumber_2.display(msg['Power'])
|
||||
|
||||
async def on_sensor_changed(self, msg):
|
||||
def on_sensor_changed(self, msg):
|
||||
print("on_sensor_changed {}".format(msg))
|
||||
if "Temp" in msg:
|
||||
self.lcdNumber_3.display(str(msg['Temp']))
|
||||
|
||||
async def on_tempctrl_changed(self, msg):
|
||||
def on_tempctrl_changed(self, msg):
|
||||
print("on_tempctrl_changed {}".format(msg))
|
||||
# if "Tc" in msg:
|
||||
# self.lcdNumber_3.display(str(msg['Temp']))
|
||||
# if "Tempctrl" in msg:
|
||||
# self.lcdNumber_3.display(str(msg['Temp']))
|
||||
|
||||
async def on_heater_changed(self, msg):
|
||||
def on_heater_changed(self, msg):
|
||||
print("on_heater_changed {}".format(msg))
|
||||
for key in msg:
|
||||
if "Activate" in key:
|
||||
self.checkbox_heater_activate.setCheckState(2 if msg['Activate'] == 1 else 0)
|
||||
if self.checkbox_heater_activate_initial_update:
|
||||
self.checkbox_heater_activate.setCheckState(2 if msg['Activate'] == 1 else 0)
|
||||
self.checkbox_heater_activate_initial_update = False
|
||||
elif "Power" in key:
|
||||
self.lcdNumber.display(msg['Power'])
|
||||
if self.slider_initial_update:
|
||||
if self.slider_pwr_initial_update:
|
||||
self.Slider_pwr_soll.setValue(msg['Power'])
|
||||
self.slider_initial_update = False
|
||||
self.slider_pwr_initial_update = False
|
||||
elif "Capabilities" in key:
|
||||
submsg = msg['Capabilities']
|
||||
if "Power" in submsg:
|
||||
|
||||
Reference in New Issue
Block a user