Merge remote-tracking branch 'origin/master'

This commit is contained in:
edo-neo 2025-01-14 10:16:15 +01:00
commit 374ea2cfae
6 changed files with 267 additions and 213 deletions

Binary file not shown.

View File

@ -0,0 +1,34 @@
CT~~CD,~CC^~CT~
^XA
~TA000
~JSN
^LT0
^MNW
^MTT
^PON
^PMN
^LH0,0
^JMA
^PR2,2
~SD20
^JUS
^LRN
^CI27
^PA0,1,1,0
^XZ
^XA
^MMT
^PW320
^LL1039
^LS0
^FT9,46^A0N,24,23^FH\^CI28^FD{RECIPE}^FS^CI27
^FT250,38^A0N,16,15^FH\^CI28^FDVEROX^FS^CI27
^FT9,80^A0N,24,23^FH\^CI28^FDFED^FS^CI27
^BY2,3,58^FT65,166^BCN,,Y,N
^FH\^FD>:{RECIPE}^FS
^BY2,3,54^FT131,259^BCN,,Y,N
^FH\^FD>:{SN}^FS
^FT9,316^A0N,24,23^FH\^CI28^FD{DATE}^FS^CI27
^FT109,321^A0N,24,23^FH\^CI28^FD{SN}^FS^CI27
^PQ1,0,1,Y
^XZ

View File

@ -15,7 +15,8 @@ tecna_t3: present
vision_saver: absent
vision: absent
screwdriver: absent
fixture_id: absent
fixture_id: present
barcode_recipe_selection: present
digital_io: present
external_flush_blow: absent
@ -25,11 +26,11 @@ poll_time: 10
hold_time: 10
[tecna_t3]
port: /dev/ttyUSB0
port: /dev/ttyUSB1
model: t3p
[fixture_rfid]
port: COM5
port: USB0
[digital_io]
# OUTPUT MAP FOR VALVE CONTROL UNITS

View File

@ -11,6 +11,7 @@ from src.lib.nfc.clf import RemoteTarget
class RFID_PN532(Component):
new_id_signal = pyqtSignal(str)
rfid_error_signal = pyqtSignal(bool)
def __init__(self, config=None, name=None, period=1, lazy=True, paused=False, threaded=True):
super().__init__(config=config, name=name, period=period, lazy=lazy, paused=paused, threaded=threaded)
@ -49,6 +50,8 @@ class RFID_PN532(Component):
try:
if not self.connected:
self.open_device()
if self.connected:
self.rfid_error_signal.emit(True)
else:
target = self.clf.sense(RemoteTarget('106A'), RemoteTarget('106B'), RemoteTarget('212F'))
if target is not None:
@ -61,6 +64,7 @@ class RFID_PN532(Component):
self.log.info(f"new tag detected:{tag_content}")
self.current_data=tag_content
self.new_id_signal.emit(self.current_data)
self.rfid_error_signal.emit(self.connected)
else:
self.log.error("tag is not NDEF")
else:
@ -68,12 +72,15 @@ class RFID_PN532(Component):
self.log.info(f"tag removed:{self.current_data}")
self.current_data = None
self.new_id_signal.emit(None)
self.rfid_error_signal.emit(False)
self.log.debug("no target present")
except Exception as e:
self.log.info(f"{e}")
self.connected = False
finally:
if not self.connected:
self.rfid_error_signal.emit(False)
self.mutex.unlock()
def write_tag(self,data):

View File

@ -6,6 +6,7 @@ import weakref
from datetime import datetime, timedelta
from PyQt5.QtCore import QTimer, pyqtSlot
from PyQt5.QtWidgets import QMessageBox
from component import Component
from lib.db import Archive, Recipes, Users
from lib.helpers import get_shift
from lib.helpers.step import Step
@ -27,6 +28,7 @@ from ui.test_vision import Test_Vision
from ui.test_warning_img import Test_Warning_Img
from ui.widget import Widget
from components import ArchiveSynchronizer
from src.components.rfid_pn532 import RFID_PN532
class Test(Widget):
@ -54,6 +56,10 @@ class Test(Widget):
self.auto_import = Recipe_Selection
self.archive_synch = ArchiveSynchronizer(config=config)
self.rfid = RFID_PN532(config=config)
self.error_label.setText("")
self.error_label.setStyleSheet("QLabel { color: red; }")
self.rfid.rfid_error_signal.connect(self.handle_rfid_error)
if self.config["hardware_config"]["barcode_recipe_selection"] == "present":
self.recipe_selection_mode = "barcode"
@ -170,6 +176,7 @@ class Test(Widget):
if "fixture_id" in self.components.keys():
self.components["fixture_id"].new_id_signal.connect(self.load_recipe_from_rfid)
self.components["fixture_id"].rfid_error_signal.connect(self.handle_rfid_error)
self.tag_loaded_recipe = self.main_window.tag_loaded_recipe
# TESTING
@ -797,3 +804,11 @@ class Test(Widget):
self.tag_loaded_recipe = None
self.fail_cycle()
self.change_recipe()
@pyqtSlot(bool)
def handle_rfid_error(self, connected):
if connected:
self.error_label.setText("") # Update the label from Designer
else:
self.error_label.setText("Errore RFID.") # Update the label from Designer
self.error_label.setStyleSheet("color: red;")

View File

@ -6,8 +6,8 @@
<rect>
<x>0</x>
<y>0</y>
<width>1252</width>
<height>125</height>
<width>1192</width>
<height>114</height>
</rect>
</property>
<property name="windowTitle">
@ -19,7 +19,6 @@
<property name="font">
<font>
<pointsize>12</pointsize>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
@ -52,33 +51,19 @@
<property name="bottomMargin">
<number>3</number>
</property>
<item row="1" column="12" rowspan="2">
<spacer name="horizontalSpacer_3">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Fixed</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="2" column="10">
<widget class="QLabel" name="label_6">
<item row="2" column="3">
<widget class="QLabel" name="next_at_l">
<property name="font">
<font>
<pointsize>12</pointsize>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>OPERATORE:</string>
<string>-</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
@ -87,7 +72,6 @@
<property name="font">
<font>
<pointsize>12</pointsize>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
@ -96,26 +80,6 @@
</property>
</widget>
</item>
<item row="1" column="10">
<widget class="QLabel" name="label_7">
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="font">
<font>
<pointsize>12</pointsize>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>N. DISEGNO:</string>
</property>
</widget>
</item>
<item row="1" column="0" rowspan="2">
<widget class="QPushButton" name="change_recipe_b">
<property name="sizePolicy">
@ -139,7 +103,6 @@
<property name="font">
<font>
<pointsize>12</pointsize>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
@ -148,62 +111,6 @@
</property>
</widget>
</item>
<item row="2" column="2">
<widget class="QLabel" name="autotests_l">
<property name="font">
<font>
<pointsize>12</pointsize>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>PROSSIMO AUTOTEST:</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item row="1" column="4" rowspan="2">
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="1" column="1" rowspan="2">
<widget class="QPushButton" name="cancel_b">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="maximumSize">
<size>
<width>200</width>
<height>40</height>
</size>
</property>
<property name="font">
<font>
<pointsize>12</pointsize>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>ANNULLA TEST</string>
</property>
</widget>
</item>
<item row="1" column="11">
<widget class="QLabel" name="recipe_l">
<property name="sizePolicy">
@ -227,7 +134,6 @@
<property name="font">
<font>
<pointsize>12</pointsize>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
@ -236,82 +142,16 @@
</property>
</widget>
</item>
<item row="2" column="7">
<widget class="QLabel" name="pieces_count_l">
<item row="1" column="2">
<widget class="QLabel" name="time_l_2">
<property name="font">
<font>
<pointsize>12</pointsize>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>12345</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item row="0" column="0" colspan="13">
<widget class="QLabel" name="machine_description_l">
<property name="font">
<font>
<pointsize>16</pointsize>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>-</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item row="1" column="3">
<widget class="QLabel" name="last_at_l">
<property name="font">
<font>
<pointsize>12</pointsize>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>-</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item row="1" column="6" rowspan="2">
<spacer name="horizontalSpacer_2">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="1" column="5" rowspan="2">
<widget class="QLabel" name="time_l">
<property name="font">
<font>
<pointsize>12</pointsize>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>12345
567</string>
<string>ULTIMO AUTOTEST:</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
@ -331,51 +171,17 @@
</property>
</spacer>
</item>
<item row="1" column="7">
<widget class="QLabel" name="label_9">
<item row="1" column="5" rowspan="2">
<widget class="QLabel" name="time_l">
<property name="font">
<font>
<pointsize>12</pointsize>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>PEZZI FATTI</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item row="1" column="2">
<widget class="QLabel" name="time_l_2">
<property name="font">
<font>
<pointsize>12</pointsize>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>ULTIMO AUTOTEST:</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item row="2" column="3">
<widget class="QLabel" name="next_at_l">
<property name="font">
<font>
<pointsize>12</pointsize>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>-</string>
<string>12345
567</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
@ -388,7 +194,6 @@
<font>
<family>DejaVu Sans</family>
<pointsize>11</pointsize>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
@ -398,6 +203,198 @@ CONTATORE</string>
</property>
</widget>
</item>
<item row="1" column="4" rowspan="2">
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="2" column="10">
<widget class="QLabel" name="label_6">
<property name="font">
<font>
<pointsize>12</pointsize>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>OPERATORE:</string>
</property>
</widget>
</item>
<item row="1" column="10">
<widget class="QLabel" name="label_7">
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="font">
<font>
<pointsize>12</pointsize>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>N. DISEGNO:</string>
</property>
</widget>
</item>
<item row="2" column="7">
<widget class="QLabel" name="pieces_count_l">
<property name="font">
<font>
<pointsize>12</pointsize>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>12345</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item row="1" column="6" rowspan="2">
<spacer name="horizontalSpacer_2">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="2" column="2">
<widget class="QLabel" name="autotests_l">
<property name="font">
<font>
<pointsize>12</pointsize>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>PROSSIMO AUTOTEST:</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item row="1" column="3">
<widget class="QLabel" name="last_at_l">
<property name="font">
<font>
<pointsize>12</pointsize>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>-</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item row="1" column="7">
<widget class="QLabel" name="label_9">
<property name="font">
<font>
<pointsize>12</pointsize>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>PEZZI FATTI</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item row="1" column="1" rowspan="2">
<widget class="QPushButton" name="cancel_b">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="maximumSize">
<size>
<width>200</width>
<height>40</height>
</size>
</property>
<property name="font">
<font>
<pointsize>12</pointsize>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>ANNULLA TEST</string>
</property>
</widget>
</item>
<item row="1" column="12" rowspan="2">
<spacer name="horizontalSpacer_3">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Fixed</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="0" column="2" colspan="8">
<widget class="QLabel" name="machine_description_l">
<property name="font">
<font>
<pointsize>16</pointsize>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>-</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item row="0" column="10" colspan="3">
<widget class="QLabel" name="error_label">
<property name="font">
<font>
<pointsize>16</pointsize>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>TextLabel</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>