- set power from slider
This commit is contained in:
@@ -157,6 +157,9 @@ class TaskManager:
|
||||
return asyncio.gather(*funcs)
|
||||
|
||||
|
||||
async def asleep(time):
|
||||
await asyncio.sleep(time)
|
||||
|
||||
if __name__ == '__main__':
|
||||
if 0:
|
||||
taskmgr = PeriodicUpdaterThreaded()
|
||||
|
||||
+9
-10
@@ -12,6 +12,7 @@ class Window(QtWidgets.QMainWindow, Ui_MainWindow):
|
||||
def __init__(self):
|
||||
QtWidgets.QMainWindow.__init__(self)
|
||||
loop = asyncio.new_event_loop()
|
||||
asyncio.set_event_loop(loop)
|
||||
self.msg_dispatch = MessageDispatcher(auto_subscribe=True, loop=loop)
|
||||
self.ws_client = WsClient(listener=self.msg_dispatch, loop=loop)
|
||||
self.msg_pot = self.msg_dispatch.msgio_get('Pot')
|
||||
@@ -25,6 +26,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.send_data = Queue()
|
||||
|
||||
def connect(self):
|
||||
@@ -33,21 +35,18 @@ class Window(QtWidgets.QMainWindow, Ui_MainWindow):
|
||||
def disconnect(self):
|
||||
self.ws_client.disconnect()
|
||||
|
||||
def on_slider_changed(self, value):
|
||||
print("on_slider_changed {}".format(value))
|
||||
self.msg_heater.send_from_thread({'Activate': 1, 'Power': 10*value})
|
||||
|
||||
def on_pot_changed(self, msg):
|
||||
print("on_pot_changed")
|
||||
print("on_pot_changed {}".format(msg))
|
||||
|
||||
def on_sensor_changed(self, msg):
|
||||
print("on_sensor_changed")
|
||||
print("on_sensor_changed {}".format(msg))
|
||||
|
||||
def on_heater_changed(self, msg):
|
||||
print("on_heater_changed")
|
||||
|
||||
async def on_send(self):
|
||||
try:
|
||||
data = await asyncio.get_event_loop().run_in_executor(None, self.send_data.get, True, 1)
|
||||
return data
|
||||
except:
|
||||
return None
|
||||
print("on_heater_changed {}".format(msg))
|
||||
|
||||
def closeEvent(self, event):
|
||||
print("Exitting gracefully!")
|
||||
|
||||
+9
-2
@@ -4,9 +4,10 @@ import json
|
||||
|
||||
|
||||
class MsgIo:
|
||||
def __init__(self, key, send):
|
||||
def __init__(self, key, send, send_from_thread):
|
||||
self.key = key
|
||||
self.sender = send
|
||||
self.send_from_thread_cb = send_from_thread
|
||||
self.receiver = None
|
||||
|
||||
def set_recv_handler(self, handler):
|
||||
@@ -20,6 +21,9 @@ class MsgIo:
|
||||
async def send(self, data):
|
||||
return await self.sender({self.key: data})
|
||||
|
||||
def send_from_thread(self, data):
|
||||
return self.send_from_thread_cb({self.key: data})
|
||||
|
||||
def can_key(self, key):
|
||||
return self.key == key
|
||||
|
||||
@@ -50,9 +54,10 @@ class MessageDispatcher(IConnection):
|
||||
self.state = None
|
||||
self.state = asyncio.Queue(loop=loop)
|
||||
self.auto_subscribe = auto_subscribe
|
||||
self.loop = loop
|
||||
|
||||
def msgio_get(self, key):
|
||||
obj = MsgIo(key, self.send)
|
||||
obj = MsgIo(key, self.send, self.send_from_thread)
|
||||
if key not in self.msg_handlers:
|
||||
self.msg_handlers.append(obj)
|
||||
return obj
|
||||
@@ -81,3 +86,5 @@ class MessageDispatcher(IConnection):
|
||||
async def send(self, data):
|
||||
await self.state.put(data)
|
||||
|
||||
def send_from_thread(self, data):
|
||||
asyncio.ensure_future(self.send(data), loop=self.loop)
|
||||
|
||||
Reference in New Issue
Block a user