from lib.helpers import timing from PyQt5.QtGui import QKeySequence from PyQt5.QtWidgets import QShortcut from ui.test_test import Test_Test class Test_Connector(Test_Test): def __init__(self, components=None, recipe=None, step=None, run_once=False, enable_override=False): super().__init__(components=components, recipe=recipe, step=step, run_once=run_once, enable_override=enable_override) QShortcut(QKeySequence("Return"), self).activated.connect(self.get) QShortcut(QKeySequence("Enter"), self).activated.connect(self.get) self.connector_le.setFocus() def start(self, recipe=None, step=None): super().start(recipe=recipe, step=step) if self.run_once is True and self.done is True and self.done_ok is True: return self.visualize() expected = str(self.step.spec.get("connector", "-")) self.parent_assembly_widget().set_text(f"COLLEGARE IL CONNETTORE {expected} AL PEZZO E LEGGERE IL SUO BARCODE") self.expected_l.setText(expected) self.connector_le.setPalette(self.status_palettes[None]) self.connector_le.setText("") self.connector_le.setFocus() # TESTING if "--test-connector" in sys.argv or "--test" in sys.argv: self.connector_le.setText(expected) self.test_timer = QTimer() self.test_timer.setSingleShot(True) self.test_timer.timeout.connect(self.get) self.test_timer.start(500) # /TESTING # def stop(self): # super().stop() # def reset(self): # super().reset() def get(self, data=None, override=False): if self.done: # avoid proccessing if completed return if data is None: data = self.connector_le.text() if not len(data): data = None if data is None: super().get(None, override=override) return connector_ok = data == self.step.spec.get("connector", None) if connector_ok: self.connector_le.setPalette(self.status_palettes[True]) else: self.connector_le.setPalette(self.status_palettes[False]) self.connector_le.setText("") self.connector_le.setFocus() if connector_ok is True: result = data ok = True else: result = None ok = None super().get([{ "time": timing(), "results": { "ok": ok, "result": result, "data": data, }, }], override=override, fail=ok is False) def visualize(self, data=None): if data is None: data = {} self.connector_l.setText(str(data.get("results", {}).get("data", "-"))) super().visualize(data) def check_serial_barcode(self, barcode=None): return barcode is not None and len(barcode)