fco730 dev

This commit is contained in:
neo-dl 2023-10-11 15:15:42 +02:00
parent 656b56eb62
commit 62ce71cfc2
6 changed files with 43 additions and 39 deletions

View File

@ -11,6 +11,7 @@ from .tecna_marposs_provaset_t3 import TecnaMarpossProvasetT3
from .tecna_screwdriver import TecnaScrewdriver from .tecna_screwdriver import TecnaScrewdriver
from .usb_586x import USB_586x from .usb_586x import USB_586x
from .rfid_pn532 import RFID_PN532 from .rfid_pn532 import RFID_PN532
from furness_controls_leak_tester import FurnessControlsLeakTester
if "--vision" in sys.argv: if "--vision" in sys.argv:
from .galaxy_camera import GalaxyCamera from .galaxy_camera import GalaxyCamera
from .neo_pixels import NeoPixels from .neo_pixels import NeoPixels

View File

@ -1,15 +1,10 @@
import sys import sys
from lib.db import Recipes, Steps, db from components.component import Component
from PyQt5.QtCore import QSemaphore, pyqtSignal from components.furness_controls_fco730_registers import registers as fco730_registers
from PyQt5.QtWidgets import QMessageBox from components.furness_controls_fco780_registers import registers as fco780_registers
from components.furness_controls_fco730_registers import settings as fco730_settings
from .component import Component from components.furness_controls_fco780_registers import settings as fco780_settings
from .modbus_component import ModbusComponent
from .furness_controls_fco730_registers import registers as fco730_registers
from .furness_controls_fco780_registers import registers as fco780_registers
from .furness_controls_fco730_registers import settings as fco730_settings
from .furness_controls_fco780_registers import settings as fco780_settings
if "--sim-furness-controls" in sys.argv: if "--sim-furness-controls" in sys.argv:
from components.dummies.serial import serial from components.dummies.serial import serial
else: else:

View File

@ -62,10 +62,10 @@ logging.basicConfig(
) )
try: try:
# IMPORT PROJECT ONLY AFTER SETTING UP SIGNAL, FAULTHANDLER AND LOGGHING # IMPORT PROJECT ONLY AFTER SETTING UP SIGNAL, FAULTHANDLER AND LOGGING
from components import (ArchiveSynchronizer, Multicomp730424, from components import (ArchiveSynchronizer, Multicomp730424,
Os_Label_Printer, RemoteAPI, Os_Label_Printer, RemoteAPI,
TecnaMarpossProvasetT3, TecnaScrewdriver, USB_586x,RFID_PN532) TecnaMarpossProvasetT3,FurnessControlsLeakTester, TecnaScrewdriver, USB_586x,RFID_PN532)
from lib.db import Users from lib.db import Users
from lib.helpers import ConfigReader from lib.helpers import ConfigReader
from PyQt5.QtCore import QObject, QThread, pyqtSignal from PyQt5.QtCore import QObject, QThread, pyqtSignal

0
src/test/__init__.py Normal file
View File

View File

@ -1,8 +1,12 @@
import os
import platform
import sys import sys
from datetime import datetime
from PyQt5.QtWidgets import QApplication from PyQt5.QtWidgets import QApplication
if platform.system().lower() == "windows":
sys.path.append(f"{os.getcwd()}\src\components")
else:
sys.path.append(f"{os.getcwd()}/src/components")
from components import Os_Label_Printer
from furness_controls_leak_tester import FurnessControlsLeakTester from furness_controls_leak_tester import FurnessControlsLeakTester
from lib.helpers import ConfigReader from lib.helpers import ConfigReader
@ -13,20 +17,23 @@ app = QApplication(sys.argv)
tester_component = FurnessControlsLeakTester(name="furness_controls") tester_component = FurnessControlsLeakTester(name="furness_controls")
command=bytearray(['F',0,5,0]) # GET STATUS
response=tester_component.send_command(command) enquiry=bytearray(['M',0,0,0])
if response is not None:
print(f"RESPONSE:{response}")
else:
print("COMMAND ERROR")
enquiry=bytearray(['F',0,5,0])
response=tester_component.send_enquiry(enquiry) response=tester_component.send_enquiry(enquiry)
if response is not None: if response is not None:
print(f"RESPONSE:{response}") print(f"RESPONSE:{response}")
else: else:
print("INQUIRY ERROR") print("INQUIRY ERROR")
# SET PRODUCT 50 (LAST RECIPE)
command=bytearray(['F',0,5,0])
response=tester_component.send_command(command)
if response is not None:
print(f"RESPONSE:{response}")
else:
print("COMMAND ERROR")

View File

@ -13,6 +13,7 @@ VALVE_TIME=0.5
class Test_Leak(Test_Test): class Test_Leak(Test_Test):
def __init__(self, components=None, recipe=None, step=None, pieces=None, run_once=False, reset_on_start=True, enable_override=False,parent=None): def __init__(self, components=None, recipe=None, step=None, pieces=None, run_once=False, reset_on_start=True, enable_override=False,parent=None):
self.tester_component="tecna_t3" if "tecna_t3" in self.components.keys() else "furness_controls"
super().__init__(components=components, recipe=recipe, step=step, pieces=pieces, run_once=run_once, reset_on_start=reset_on_start, enable_override=enable_override) super().__init__(components=components, recipe=recipe, step=step, pieces=pieces, run_once=run_once, reset_on_start=reset_on_start, enable_override=enable_override)
self.get_connection = None self.get_connection = None
self.io_ok = True self.io_ok = True
@ -31,11 +32,11 @@ class Test_Leak(Test_Test):
dialog.show() dialog.show()
def reset(self): def reset(self):
self.components["tecna_t3"].stop_test() self.components[self.tester_component].stop_test()
super().reset() super().reset()
def stop_test(self): def stop_test(self):
self.components["tecna_t3"].stop_test() self.components[self.tester_component].stop_test()
self.display_text(text="PROVA INTERROTTA", bg_color="yellow") self.display_text(text="PROVA INTERROTTA", bg_color="yellow")
time.sleep(1) time.sleep(1)
self.start_b.setEnabled(True) self.start_b.setEnabled(True)
@ -75,7 +76,7 @@ class Test_Leak(Test_Test):
self.blow_on = False self.blow_on = False
if not self.simulate: if not self.simulate:
self.components["tecna_t3"].start_test() self.components[self.tester_component].start_test()
def start(self, recipe=None, step=None, pieces=None): def start(self, recipe=None, step=None, pieces=None):
@ -109,11 +110,11 @@ class Test_Leak(Test_Test):
self.recipe_written = False self.recipe_written = False
if not self.recipe_written: if not self.recipe_written:
self.components["tecna_t3"].write_recipe(self.recipe, self.step) self.components[self.tester_component].write_recipe(self.recipe, self.step)
self.recipe_written=True self.recipe_written=True
self.get_connection = self.components["tecna_t3"].out.connect(self.get) self.get_connection = self.components[self.tester_component].out.connect(self.get)
self.components["tecna_t3"].resume() self.components[self.tester_component].resume()
if self.parent_assembly_widget is not None: if self.parent_assembly_widget is not None:
self.display_text(text="ATTENDERE") self.display_text(text="ATTENDERE")
self.start_b.setEnabled(False) self.start_b.setEnabled(False)
@ -146,8 +147,8 @@ class Test_Leak(Test_Test):
def stop(self): def stop(self):
# disable test loop # disable test loop
self.components["tecna_t3"].stop_test() self.components[self.tester_component].stop_test()
self.components["tecna_t3"].pause() self.components[self.tester_component].pause()
self.disconnect(self.get_connection) self.disconnect(self.get_connection)
super().stop() super().stop()
self.start_b.setEnabled(False) self.start_b.setEnabled(False)
@ -164,7 +165,7 @@ class Test_Leak(Test_Test):
# TESTING # TESTING
if self.simulate: if self.simulate:
if "--fail-leak" in sys.argv: if "--fail-leak" in sys.argv:
data["tecna_t3"] = { data[self.tester_component] = {
"Running test: active phase": "WAITING START", "Running test: active phase": "WAITING START",
"Running test: result": "-----TESTING----- fail", "Running test: result": "-----TESTING----- fail",
"Running test: filling pressure":"5000", "Running test: filling pressure":"5000",
@ -172,7 +173,7 @@ class Test_Leak(Test_Test):
"Running test: pressure at the end of settling":"4999", "Running test: pressure at the end of settling":"4999",
} }
else: else:
data["tecna_t3"] = { data[self.tester_component] = {
"Running test: active phase": "WAITING START", "Running test: active phase": "WAITING START",
"Running test: result": "-----TESTING----- passed", "Running test: result": "-----TESTING----- passed",
"Running test: filling pressure":"5000", "Running test: filling pressure":"5000",
@ -180,9 +181,9 @@ class Test_Leak(Test_Test):
"Running test: pressure at the end of settling":"4999", "Running test: pressure at the end of settling":"4999",
} }
if "Running test: result" in data["tecna_t3"]: if "Running test: result" in data[self.tester_component]:
# TEST ENDED # TEST ENDED
result = data["tecna_t3"]["Running test: result"] result = data[self.tester_component]["Running test: result"]
step=self.step.spec.get("autotest", "") step=self.step.spec.get("autotest", "")
if step == "ok_check": if step == "ok_check":
ok = type(result) is str and "passed" in result.lower() # AUTOTEST - NO LEAK ok = type(result) is str and "passed" in result.lower() # AUTOTEST - NO LEAK
@ -223,14 +224,14 @@ class Test_Leak(Test_Test):
#"results": { #"results": {
#"ok": ok, #"ok": ok,
#"result": result, #"result": result,
#"data": data["tecna_t3"], #"data": data[self.tester_component],
#}, #},
}], override=override, fail=ok is False) }], override=override, fail=ok is False)
def visualize(self, data=None): def visualize(self, data=None):
if data is None: if data is None:
data = {} data = {}
d = data.get("results", {}).get("tecna_t3", {}) d = data.get("results", {}).get(self.tester_component, {})
for k, l in { for k, l in {
"Running test: active phase": self.test_phase_l, "Running test: active phase": self.test_phase_l,
"Real time test pressure output": self.circuit_pressure_l, "Real time test pressure output": self.circuit_pressure_l,