from brewpi_win import Ui_MainWindow from PyQt5 import QtWidgets import sys from ws.client.ws_client import WsClient from ws.message import MessageDispatcher class Window(QtWidgets.QMainWindow, Ui_MainWindow): def __init__(self): QtWidgets.QMainWindow.__init__(self) self.msg_dispatch = MessageDispatcher() self.ws_client = WsClient(listener=self.msg_dispatch) 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_pot.set_recv_handler(self.on_pot_changed) self.msg_sensor.set_recv_handler(self.on_sensor_changed) self.msg_heater.set_recv_handler(self.on_heater_changed) self.setupUi(self) self.actionStart.triggered.connect(self.connect) self.actionStop.triggered.connect(self.disconnect) def connect(self): self.ws_client.connect(uri="ws://localhost:8765") def disconnect(self): self.ws_client.disconnect() def on_pot_changed(self, msg): print("on_pot_changed") def on_sensor_changed(self, msg): print("on_sensor_changed") def on_heater_changed(self, msg): print("on_heater_changed") def on_connect(self): self.send_data.put_nowait({'+': 'Pot'}) self.send_data.put_nowait({'+': 'Sensor'}) self.send_data.put_nowait({'+': 'Heater'}) def on_disconnect(self): pass async def on_recv(self, data): pass async def on_send(self): return None def closeEvent(self, event): print("Exitting gracefully!") self.ws_client.disconnect() if __name__ == '__main__': app = QtWidgets.QApplication(sys.argv) win = Window() win.show() sys.exit(app.exec_()) print ("End of program.")