class AppWindow(QMainWindow): def __init__(self): super().__init__() self.ui = Ui_mainWindow() self.styleFile = open("styles.qss").read() self.setStyleSheet(self.styleFile) self.ui.setupUi(self) self.socketThread = None #self.show() self.listSerialDevices() self.ui.buttonConnect.clicked.connect(self.openMonitor) def openMonitor(self): print("opening monitor") self.connectToSerialDevices() #self.socketThread = None self.monitor_window = QWidget() self.monitor_window.setStyleSheet(self.styleFile) self.monitor = Ui_Monitor() self.monitor.setupUi(self.monitor_window) self.close() self.monitor_window.show() self.console = ConsoleWidget() self.monitor.console.addWidget(self.console) self.runServer() self.openSockets() self.initNFFSim() def listSerialDevices(self): comlist = serial.tools.list_ports.comports() for x in comlist: self.ui.sc_port.addItem(x.device) self.ui.ub_port.addItem(x.device) def connectToSerialDevices(self): sc_port = self.ui.sc_port.itemText(self.ui.sc_port.currentIndex()) ub_port = self.ui.ub_port.itemText(self.ui.ub_port.currentIndex()) self.serialManager = SerialManager(sc_port, ub_port, config.SERIAL_PUBLISH, config.SERIAL_SUBSCRIBE, config.SERIAL_NFF_SUBSCRIBE) self.serialManager.start() def runServer(self): self.server = Server(self.monitor, config.SERVER_SUBSCRIBE, config.SERVER_PUBLISH) self.server.start() def openSockets(self): print("opening gui sockets") try: context = zmq.Context() self.telemSocket = context.socket(zmq.SUB) self.telemSocket.connect(config.GUI_SUBSCRIBE) self.telemSocket.setsockopt_string(zmq.SUBSCRIBE, '') self.commandSocket = context.socket(zmq.PUB) self.commandSocket.bind(config.GUI_PUBLISH) # print("sockets open") except (zmq.ZMQError, zmq.ZMQBindError) as err: print("Error: {}".format(err)) return if (self.socketThread is not None): self.socketThread.terminate() self.socketThread.socket.close() self.socketThread = SocketMonitor(self.telemSocket) self.socketThread.signal.connect(self.gotSig) self.socketThread.start() def initNFFSim(self): self.nffSim = NFFSim(self.monitor, config.NFF_PUBLISH) self.monitor.run_sim.clicked.connect(self.nffSim.start) self.monitor.pause_sim.clicked.connect(self.nffSim.pause) self.monitor.abort_sim.clicked.connect(self.nffSim.stop) def gotSig(self, msg): #print("\nReceived New Packet...") # print(msg) for key in msg: # print(key) # print(msg[key][0]) if self.monitor.nff_groupbox.findChild(QLabel, key): item = self.monitor.nff_groupbox.findChild(QLabel, key) elif self.monitor.sc_groupbox.findChild(QLabel, key): item = self.monitor.sc_groupbox.findChild(QLabel, key) elif self.monitor.ub_groupbox.findChild(QLabel, key): item = self.monitor.ub_groupbox.findChild(QLabel, key) else: continue item.setText(str(msg[key][0])) if msg[key][1] == 1: item.setStyleSheet('color: #f93943') #red else: item.setStyleSheet('color: #063D23') #green