79 lines
2.2 KiB
Python
79 lines
2.2 KiB
Python
|
|
import os.path
|
||
|
|
import sys
|
||
|
|
import weakref
|
||
|
|
|
||
|
|
from PyQt5 import QtSvg
|
||
|
|
from PyQt5.QtCore import Qt
|
||
|
|
|
||
|
|
from lib.helpers import timing
|
||
|
|
from PyQt5.QtCore import QTimer
|
||
|
|
from PyQt5.QtGui import QKeySequence, QPixmap
|
||
|
|
from PyQt5.QtWidgets import QShortcut, QApplication, QVBoxLayout
|
||
|
|
|
||
|
|
from lxml import etree
|
||
|
|
|
||
|
|
from ui import Widget
|
||
|
|
|
||
|
|
|
||
|
|
class Test_Instructions_Reminder(Widget):
|
||
|
|
def __init__(self, recipe=None, bench_name="generic"):
|
||
|
|
super().__init__()
|
||
|
|
self.bench_name = bench_name
|
||
|
|
self.recipe=recipe
|
||
|
|
self.svgWidget=None
|
||
|
|
self.svg_root=None
|
||
|
|
self.flag=False
|
||
|
|
self.inputs={}
|
||
|
|
self.svg_widget=QtSvg.QSvgWidget()
|
||
|
|
self.layout = QVBoxLayout()
|
||
|
|
self.layout.addWidget(self.svg_widget)
|
||
|
|
self.svg_w.setLayout(self.layout)
|
||
|
|
self.svg_path=os.path.join("config","instruction_images",self.bench_name,"")
|
||
|
|
self.timer = QTimer()
|
||
|
|
self.timer.timeout.connect(self.toggle_icons)
|
||
|
|
|
||
|
|
self.start()
|
||
|
|
|
||
|
|
def start(self, recipe=None, step=None, pieces=None):
|
||
|
|
|
||
|
|
svg_path=f"{self.svg_path}{self.recipe}.svg"
|
||
|
|
if not os.path.exists(svg_path):
|
||
|
|
svg_path=f"{self.svg_path}DEFAULT.svg"
|
||
|
|
self.svg_root = etree.parse(svg_path)
|
||
|
|
self.svg_str = etree.tostring(self.svg_root)
|
||
|
|
self.svg_str=etree.tostring(self.svg_root)
|
||
|
|
|
||
|
|
self.monitored_ids=self.svg_root.xpath(f'''.//*[starts-with(@id, 'sensor_')]''')
|
||
|
|
self.tape_ids=self.svg_root.xpath(f'''.//*[starts-with(@id, 'tape_')]''')
|
||
|
|
self.timer.start(1000)
|
||
|
|
def toggle_icons(self):
|
||
|
|
self.flag = not self.flag
|
||
|
|
|
||
|
|
for elem in self.tape_ids:
|
||
|
|
if self.flag:
|
||
|
|
self.show_tape(elem)
|
||
|
|
else:
|
||
|
|
self.hide_tape(elem)
|
||
|
|
|
||
|
|
|
||
|
|
self.show_svg()
|
||
|
|
|
||
|
|
|
||
|
|
def show_icon(self,id):
|
||
|
|
id.set("display", "inline")
|
||
|
|
|
||
|
|
def hide_icon(self,id):
|
||
|
|
id.set("display", "none")
|
||
|
|
|
||
|
|
def show_tape(self,id):
|
||
|
|
id.attrib["{http://www.w3.org/1999/xlink}href"]= f"{self.svg_path}img/tape_black.png"
|
||
|
|
id.set("display", "inline")
|
||
|
|
|
||
|
|
def hide_tape(self,id):
|
||
|
|
id.set("display", "none")
|
||
|
|
|
||
|
|
def show_svg(self):
|
||
|
|
self.svg_str = etree.tostring(self.svg_root)
|
||
|
|
self.svg_widget.load(self.svg_str)
|
||
|
|
QApplication.processEvents()
|