diff --git a/src/lib/helpers/timing.py b/src/lib/helpers/timing.py index cae4c92..742b766 100644 --- a/src/lib/helpers/timing.py +++ b/src/lib/helpers/timing.py @@ -1,7 +1,7 @@ from time import perf_counter, time ref = time() - perf_counter() - +pass def timing(): global ref diff --git a/src/test/rfid.py b/src/test/rfid.py index b11665c..74fa362 100644 --- a/src/test/rfid.py +++ b/src/test/rfid.py @@ -4,31 +4,43 @@ import nfc from nfc.clf import RemoteTarget clf = nfc.ContactlessFrontend() -assert clf.open('tty:USB0:pn532') is True # open /dev/ttyUSB0 with pn532 driver - +connected=False while True: - target = clf.sense(RemoteTarget('106A'), RemoteTarget('106B'), RemoteTarget('212F')) - if target is not None: - tag = nfc.tag.activate(clf, target) - print(tag) - if tag.ndef is not None: - for record in tag.ndef.records: - print(record) - else: - print("EMPTY TAG - WRITING...") - if not tag.ndef.is_writeable: - print("This Tag is not writeable.") - break - tag.format() - ret = tag.wr + try: + if not connected: + connected=clf.open('tty:USB0:pn532') + if connected: + target = clf.sense(RemoteTarget('106A'), RemoteTarget('106B'), RemoteTarget('212F')) + if target is not None: + tag = nfc.tag.activate(clf, target) + if tag is not None: + print(tag) + if tag.ndef is not None: + if not len(tag.ndef.records): + print("EMPTY TAG - WRITING...") + if not tag.ndef.is_writeable: + print("This Tag is not writeable.") + break + else: + tag.format() + #tag.ndef.records = [ndef.TextRecord("Errecinque"),ndef.TextRecord("5812345678")] + record=ndef.TextRecord("Errecinque,fixture,5812345678") + tag.ndef.records = [record] + if tag.ndef.has_changed: + print("WRITE ERROR") + else: + print("WRITE OK") - if ret: - print("ERROR") + for record in tag.ndef.records: + print(record) + else: + print("ERROR NOT NDEF") else: - print("OK") - else: - print("NO TARGET") - time.sleep(0.1) + print("NO TARGET") + except Exception as e: + print(f"EXCEPTION {e}") + connected=False + time.sleep(0.3) print("EXITING") clf.close() \ No newline at end of file diff --git a/src/ui/test/test.py b/src/ui/test/test.py index afe75a0..9cdc511 100755 --- a/src/ui/test/test.py +++ b/src/ui/test/test.py @@ -461,7 +461,11 @@ class Test(Widget): self.next() def done(self, ok=True): - self.log.info("cycle done") + self.log.info("cycle done, saving data...") + + #remove useless info + self.data.get("spec",{}).pop("steps") + self.data.get("spec",{}).pop("available_steps") if "vision" in self.data: vision_test_1 = self.data.get("vision", {}).get("0", {}) out_paths = self.components["vision_saver"].save( diff --git a/src/ui/test_leak/test_leak.py b/src/ui/test_leak/test_leak.py index 722908a..548b4b5 100644 --- a/src/ui/test_leak/test_leak.py +++ b/src/ui/test_leak/test_leak.py @@ -150,7 +150,8 @@ class Test_Leak(Test_Test): for k, l in { "Running test: active phase": self.test_phase_l, "Real time test pressure output": self.circuit_pressure_l, - "Real time differential pressure output": self.leak_l, + #"Real time differential pressure output": self.leak_l, + "Running test: measured leak": self.leak_l, "Real time pressure line regulator": self.regulated_pressure_l, # "Active alarm flags": self._l, "Running test: test type": self.test_type_l, diff --git a/src/ui/test_leak/test_leak.ui b/src/ui/test_leak/test_leak.ui index 08f1553..8e9403f 100644 --- a/src/ui/test_leak/test_leak.ui +++ b/src/ui/test_leak/test_leak.ui @@ -6,7 +6,7 @@ 0 0 - 1621 + 1628 894 @@ -26,1075 +26,6 @@ 0 - - - - - 12 - 75 - true - - - - PROVA TENUTA - - - - - - - 16 - 50 - false - - - - Caduta minima ammessa - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - - - 130 - 16777215 - - - - - 20 - 50 - false - - - - background-color: rgb(255, 255, 255); -border: 1px solid black; - - - - - - - - - - - - - 16 - 50 - false - - - - Fase del test - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - - - 36 - 50 - false - - - - background-color: rgb(255, 255, 255); -border: 1px solid black; - - - - 1/1 - - - Qt::AlignCenter - - - - - - - - 0 - 0 - - - - - - - - Qt::AlignCenter - - - - - - - - 16 - 50 - false - - - - Pressione regolatore - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - - - 16 - 50 - false - - - - Caduta di pressione misurata - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - - - 16 - 50 - false - - - - Indice di sequenza del test - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - - - 130 - 16777215 - - - - - 20 - 50 - false - - - - background-color: rgb(255, 255, 255); -border: 1px solid black; - - - - - - - - - - - - - 16 - 50 - false - - - - 0 - - - NUMERO TEST - - - Qt::AlignCenter - - - - - - - - 130 - 16777215 - - - - - 20 - 50 - false - - - - background-color: rgb(255, 255, 255); -border: 1px solid black; - - - - - - - - - - - - - 16 - 50 - false - - - - Caduta massima ammessa - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - - - 130 - 16777215 - - - - - 20 - 50 - false - - - - background-color: rgb(255, 255, 255); -border: 1px solid black; - - - - - - - - - - - - - 130 - 16777215 - - - - - 20 - 50 - false - - - - background-color: rgb(255, 255, 255); -border: 1px solid black; - - - - - - - - - - - - - 16 - 50 - false - - - - Tipo di test - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - - - 16 - 50 - false - - - - Pressione del circuito - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - - - 130 - 16777215 - - - - - 20 - 50 - false - - - - background-color: rgb(255, 255, 255); -border: 1px solid black; - - - - - - - - - - - - - 16 - 50 - false - - - - Pressione di test da ricetta - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - - - 16 - 50 - false - - - - mbar - - - - - - - - 16 - 50 - false - - - - background-color: rgb(255, 255, 255); -border: 1px solid black; - - - - - - - - - - - - - 16 - 50 - false - - - - background-color: rgb(255, 255, 255); -border: 1px solid black; - - - - - - - - - - - - - 16 - 50 - false - - - - mbar - - - - - - - - 16 - 50 - false - - - - mbar - - - - - - - - 16 - 50 - false - - - - mbar - - - - - - - - 16 - 50 - false - - - - mbar - - - - - - - - 16 - 50 - false - - - - mbar - - - - - - - - 16 - 50 - false - - - - background-color: rgb(255, 255, 255); -border: 1px solid black; - - - - - - - - - - - - - - - - 0 - 0 - - - - - 12 - 75 - true - - - - FORZA ACCETTAZIONE - - - - - - - - 0 - 0 - - - - - 0 - 100 - - - - - 16777215 - 16777215 - - - - - - - - - 0 - 0 - 0 - - - - - - - 85 - 255 - 127 - - - - - - - 127 - 255 - 127 - - - - - - - 63 - 255 - 63 - - - - - - - 0 - 127 - 0 - - - - - - - 0 - 170 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 255 - 255 - 255 - - - - - - - 0 - 0 - 0 - - - - - - - 85 - 255 - 127 - - - - - - - 85 - 255 - 127 - - - - - - - 0 - 0 - 0 - - - - - - - 127 - 255 - 127 - - - - - - - 255 - 255 - 220 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - - - 0 - 0 - 0 - - - - - - - 85 - 255 - 127 - - - - - - - 127 - 255 - 127 - - - - - - - 63 - 255 - 63 - - - - - - - 0 - 127 - 0 - - - - - - - 0 - 170 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 255 - 255 - 255 - - - - - - - 0 - 0 - 0 - - - - - - - 85 - 255 - 127 - - - - - - - 85 - 255 - 127 - - - - - - - 0 - 0 - 0 - - - - - - - 127 - 255 - 127 - - - - - - - 255 - 255 - 220 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - - - 0 - 127 - 0 - - - - - - - 85 - 255 - 127 - - - - - - - 127 - 255 - 127 - - - - - - - 63 - 255 - 63 - - - - - - - 0 - 127 - 0 - - - - - - - 0 - 170 - 0 - - - - - - - 0 - 127 - 0 - - - - - - - 255 - 255 - 255 - - - - - - - 0 - 127 - 0 - - - - - - - 85 - 255 - 127 - - - - - - - 85 - 255 - 127 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 255 - 0 - - - - - - - 255 - 255 - 220 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - - - 20 - 75 - true - - - - background-color:rgb(85, 255, 127); - - - START - - - - - - - - 0 - 0 - - - - - 12 - 75 - true - - - - Risultato - - - - - - - 0 - 0 - - - - %v / %m - - - - - - - - 0 - 0 - - - - - 32 - 32 - - - - - - - - - - - @@ -2043,6 +974,1109 @@ border: 1px solid black; + + + + + 0 + 0 + + + + + 12 + 75 + true + + + + Risultato + + + + + + + 0 + 0 + + + + %v / %m + + + + + + + + 0 + 0 + + + + + 32 + 32 + + + + - + + + + + + + + + + + 0 + 0 + + + + + 0 + 100 + + + + + 16777215 + 16777215 + + + + + + + + + 0 + 0 + 0 + + + + + + + 85 + 255 + 127 + + + + + + + 127 + 255 + 127 + + + + + + + 63 + 255 + 63 + + + + + + + 0 + 127 + 0 + + + + + + + 0 + 170 + 0 + + + + + + + 0 + 0 + 0 + + + + + + + 255 + 255 + 255 + + + + + + + 0 + 0 + 0 + + + + + + + 85 + 255 + 127 + + + + + + + 85 + 255 + 127 + + + + + + + 0 + 0 + 0 + + + + + + + 127 + 255 + 127 + + + + + + + 255 + 255 + 220 + + + + + + + 0 + 0 + 0 + + + + + + + 0 + 0 + 0 + + + + + + + + + 0 + 0 + 0 + + + + + + + 85 + 255 + 127 + + + + + + + 127 + 255 + 127 + + + + + + + 63 + 255 + 63 + + + + + + + 0 + 127 + 0 + + + + + + + 0 + 170 + 0 + + + + + + + 0 + 0 + 0 + + + + + + + 255 + 255 + 255 + + + + + + + 0 + 0 + 0 + + + + + + + 85 + 255 + 127 + + + + + + + 85 + 255 + 127 + + + + + + + 0 + 0 + 0 + + + + + + + 127 + 255 + 127 + + + + + + + 255 + 255 + 220 + + + + + + + 0 + 0 + 0 + + + + + + + 0 + 0 + 0 + + + + + + + + + 0 + 127 + 0 + + + + + + + 85 + 255 + 127 + + + + + + + 127 + 255 + 127 + + + + + + + 63 + 255 + 63 + + + + + + + 0 + 127 + 0 + + + + + + + 0 + 170 + 0 + + + + + + + 0 + 127 + 0 + + + + + + + 255 + 255 + 255 + + + + + + + 0 + 127 + 0 + + + + + + + 85 + 255 + 127 + + + + + + + 85 + 255 + 127 + + + + + + + 0 + 0 + 0 + + + + + + + 0 + 255 + 0 + + + + + + + 255 + 255 + 220 + + + + + + + 0 + 0 + 0 + + + + + + + 0 + 0 + 0 + + + + + + + + + 20 + 75 + true + + + + background-color:rgb(85, 255, 127); + + + START + + + + + + + + 0 + 0 + + + + + 12 + 75 + true + + + + FORZA ACCETTAZIONE + + + + + + + + 12 + 75 + true + + + + PROVA TENUTA + + + + + + + 16 + 50 + false + + + + Caduta massima ammessa + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + 16 + 50 + false + + + + background-color: rgb(255, 255, 255); +border: 1px solid black; + + + + - + + + + + + + + 16 + 50 + false + + + + Indice di sequenza del test + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + 16 + 50 + false + + + + Pressione regolatore + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + 16 + 50 + false + + + + mbar + + + + + + + + 130 + 16777215 + + + + + 20 + 50 + false + + + + background-color: rgb(255, 255, 255); +border: 1px solid black; + + + + - + + + + + + + + 16 + 50 + false + + + + Tipo di test + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + 130 + 16777215 + + + + + 20 + 50 + false + + + + background-color: rgb(255, 255, 255); +border: 1px solid black; + + + + - + + + + + + + + 0 + 0 + + + + + 150 + 0 + + + + + 150 + 16777215 + + + + + 48 + 50 + false + + + + background-color: rgb(255, 255, 255); +border: 1px solid black; + + + + 1/1 + + + Qt::AlignCenter + + + + + + + Qt::Horizontal + + + QSizePolicy::Minimum + + + + 40 + 20 + + + + + + + + + 16 + 50 + false + + + + mbar + + + + + + + + 16 + 50 + false + + + + background-color: rgb(255, 255, 255); +border: 1px solid black; + + + + - + + + + + + + + 16 + 50 + false + + + + Pressione del circuito + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + 0 + 0 + + + + - + + + Qt::AlignCenter + + + + + + + + 130 + 16777215 + + + + + 20 + 50 + false + + + + background-color: rgb(255, 255, 255); +border: 1px solid black; + + + + - + + + + + + + + 16 + 50 + false + + + + mbar + + + + + + + + 16 + 50 + false + + + + mbar + + + + + + + + 16 + 50 + false + + + + mbar + + + + + + + + 16 + 50 + false + + + + Fase del test + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + 16 + 50 + false + + + + background-color: rgb(255, 255, 255); +border: 1px solid black; + + + + - + + + + + + + + 130 + 16777215 + + + + + 20 + 50 + false + + + + background-color: rgb(255, 255, 255); +border: 1px solid black; + + + + - + + + + + + + + 16 + 50 + false + + + + Caduta di pressione misurata + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + 130 + 16777215 + + + + + 20 + 50 + false + + + + background-color: rgb(255, 255, 255); +border: 1px solid black; + + + + - + + + + + + + + 16 + 50 + false + + + + Pressione di test da ricetta + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + 16 + 50 + false + + + + Caduta minima ammessa + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + 16 + 50 + false + + + + mbar + + + + + + + + 130 + 16777215 + + + + + 20 + 50 + false + + + + background-color: rgb(255, 255, 255); +border: 1px solid black; + + + + - + + + + + + + + 16 + 50 + false + + + + 0 + + + NUMERO TEST + + + Qt::AlignCenter + + + + + + diff --git a/src/ui/test_test/test_test.py b/src/ui/test_test/test_test.py index 34413bd..e241268 100644 --- a/src/ui/test_test/test_test.py +++ b/src/ui/test_test/test_test.py @@ -1,5 +1,7 @@ import sys +import time import weakref +from datetime import datetime from lib.helpers import timing from PyQt5.QtCore import Qt, QTimer, pyqtSignal @@ -119,6 +121,7 @@ class Test_Test(Widget): self.last = None def get(self, data=None, override=False, fail=False, preserve_counter=False, skip_delay=False): + cur_timing = timing() if self.done: # avoid proccessing if completed return if data is None: @@ -130,17 +133,18 @@ class Test_Test(Widget): else: data = data[-data_usable.index(True) - 1] if data.get("time", None) is None: - data["time"] = timing() + data["time"] = datetime.now().strftime("%H:%M:%S") if fail: result_ok = False elif override: result_ok = True else: result_ok = data.get("results", {}).get("ok", None) + duration=cur_timing - self.start_time self.last = { **data, "overridden": override, - "duration": timing() - self.start_time, + "duration": f"{duration:.2f}", "ok": result_ok, } if fail: