usb-5862 tbt
This commit is contained in:
parent
ae8561c05a
commit
001f71b8dc
|
|
@ -13,6 +13,7 @@ galaxy_camera: absent
|
|||
; uvc_camera: present
|
||||
; vision_saver: present
|
||||
; vision: present
|
||||
digital_io: absent
|
||||
|
||||
[galaxy_camera]
|
||||
horizontal_resolution: 2448
|
||||
|
|
|
|||
31
config/machine_settings/st-ten-4.ini
Normal file
31
config/machine_settings/st-ten-4.ini
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
[machine]
|
||||
description = ST-TEN-4 - TERMOFORMATURA MAPPANO
|
||||
|
||||
[hardware_config]
|
||||
archive_synchronizer: present
|
||||
; galaxy_camera: present
|
||||
uvc_camera: present
|
||||
label_printer: present
|
||||
neo_pixels: present
|
||||
remote_api: absent
|
||||
tecna_t3: present
|
||||
vision_saver: absent
|
||||
vision: absent
|
||||
screwdriver: present
|
||||
|
||||
[tecna_t3]
|
||||
port: COM4
|
||||
model: t3l
|
||||
|
||||
[neo_pixels]
|
||||
port: COM5
|
||||
|
||||
[recipe]
|
||||
recipe_name_field: codice_ricetta
|
||||
part_number_field: codice_prodotto
|
||||
label_template_field: modello_etichetta
|
||||
description_field: descrizione
|
||||
|
||||
[label_printer]
|
||||
platform: windows
|
||||
printer: zd420
|
||||
35
config/machine_settings/st-ten-5.ini
Normal file
35
config/machine_settings/st-ten-5.ini
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
[machine]
|
||||
description = ST-TEN-5 IVECO DAILY ELETTRICO
|
||||
|
||||
[hardware_config]
|
||||
archive_synchronizer: present
|
||||
; galaxy_camera: present
|
||||
uvc_camera: present
|
||||
label_printer: present
|
||||
neo_pixels: present
|
||||
remote_api: absent
|
||||
tecna_t3: present
|
||||
vision_saver: absent
|
||||
vision: absent
|
||||
screwdriver: present
|
||||
digital_io: present
|
||||
|
||||
[tecna_t3]
|
||||
port: COM4
|
||||
model: t3l
|
||||
|
||||
[neo_pixels]
|
||||
port: COM5
|
||||
|
||||
[recipe]
|
||||
recipe_name_field: codice_ricetta
|
||||
part_number_field: codice_prodotto
|
||||
label_template_field: modello_etichetta
|
||||
description_field: descrizione
|
||||
|
||||
[label_printer]
|
||||
platform: windows
|
||||
printer: zd420
|
||||
|
||||
[digital_io]
|
||||
id: USB-5862,BID#0
|
||||
35
config/machine_settings/st-ten-6.ini
Normal file
35
config/machine_settings/st-ten-6.ini
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
[machine]
|
||||
description = ST-TEN-6 DOPPIA PROVA PRESSIONE 6/20 BAR
|
||||
|
||||
[hardware_config]
|
||||
archive_synchronizer: present
|
||||
; galaxy_camera: present
|
||||
uvc_camera: present
|
||||
label_printer: present
|
||||
neo_pixels: present
|
||||
remote_api: absent
|
||||
tecna_t3: present
|
||||
vision_saver: absent
|
||||
vision: absent
|
||||
screwdriver: present
|
||||
digital_io: present
|
||||
|
||||
[tecna_t3]
|
||||
port: COM4
|
||||
model: t3l
|
||||
|
||||
[neo_pixels]
|
||||
port: COM5
|
||||
|
||||
[recipe]
|
||||
recipe_name_field: codice_ricetta
|
||||
part_number_field: codice_prodotto
|
||||
label_template_field: modello_etichetta
|
||||
description_field: descrizione
|
||||
|
||||
[label_printer]
|
||||
platform: windows
|
||||
printer: zd420
|
||||
|
||||
[digital_io]
|
||||
id: USB-5860,BID#0
|
||||
|
|
@ -1,33 +0,0 @@
|
|||
[machine]
|
||||
description = ~~~~~~~~~~ THIS ~~~~~~~~~~
|
||||
|
||||
[hardware_config]
|
||||
archive_synchronizer: present
|
||||
galaxy_camera: present
|
||||
label_printer: present
|
||||
multicomp: present
|
||||
neo_pixels: present
|
||||
remote_api: present
|
||||
screwdriver: present
|
||||
tecna_t3: present
|
||||
uvc_camera: present
|
||||
vision_saver: present
|
||||
vision: present
|
||||
|
||||
[tecna_t3]
|
||||
model: t3l
|
||||
port: /dev/ttyUSB0
|
||||
saver: present
|
||||
saver_label_template: 6
|
||||
saver_print_on_fail: yes
|
||||
saver_label_count: 1
|
||||
|
||||
[multicomp]
|
||||
port: /dev/ttyACM0
|
||||
|
||||
[neo_pixels]
|
||||
port: /dev/ttyACM1
|
||||
|
||||
[archive_synchronizer]
|
||||
poll_time: 6
|
||||
hold_time: 1
|
||||
|
|
@ -1,6 +1,7 @@
|
|||
#!/bin/bash -x
|
||||
cd "$(dirname "$0")"
|
||||
#source "./venv/bin/activate" || source "./venv/Scripts/activate" || :
|
||||
source "./venv/bin/activate" || source "./venv/Scripts/activate" || :
|
||||
#python3 -m pip install --upgrade qt5-tools
|
||||
#"$(python3 -c "import sys; print(sys.path[-1])")/qt5_applications/Qt/bin/designer" $*
|
||||
$(pwd)/venv/lib/python3.9/site-packages/qt5_applications/Qt/bin/designer $*
|
||||
"$(python3 -c "import sys; print(sys.path[-1])")/qt5_applications/Qt/bin/designer" $*
|
||||
#$(pwd)/venv/lib/python3.9/site-packages/qt5_applications/Qt/bin/designer $*
|
||||
#$(pwd)/venv/lib/python3.8/site-packages/qt5_applications/Qt/bin/designer $*
|
||||
|
|
|
|||
|
|
@ -140,7 +140,8 @@ class Component(QObject):
|
|||
self._set_requestors.connect(self._do_set_requestors)
|
||||
self._set_period.connect(self._do_set_period)
|
||||
if self.config is not None:
|
||||
self.config.updated.connect(self.reconfigure)
|
||||
if self.config.updated is not None:
|
||||
self.config.updated.connect(self.reconfigure)
|
||||
self._do_reconfigure()
|
||||
self._init_periodic()
|
||||
self._started = True
|
||||
|
|
|
|||
|
|
@ -23,13 +23,7 @@ else:
|
|||
import lib.dummies.libbiodaq as libbiodaq
|
||||
|
||||
|
||||
class USB_5860(Component):
|
||||
class DioPortDir(Enum):
|
||||
Input = 0x00
|
||||
LoutHin = 0x0F
|
||||
LinHout = 0xF0
|
||||
Output = 0xFF
|
||||
|
||||
class USB_586x(Component):
|
||||
class DeviceInformation(ctypes.Structure):
|
||||
_fields_ = [
|
||||
('DeviceNumber', ctypes.c_uint32),
|
||||
|
|
@ -38,13 +32,23 @@ class USB_5860(Component):
|
|||
('Description', ctypes.c_wchar_p)
|
||||
]
|
||||
|
||||
def __init__(self, bench, name, config):
|
||||
super().__init__(bench, name, config)
|
||||
def __init__(self, config):
|
||||
super().__init__(config)
|
||||
self.mutex = QMutex()
|
||||
# DEVICE INFORMATION
|
||||
self.id=config.id
|
||||
if "5860" in self.id:
|
||||
self.type = "5860"
|
||||
self.in_size = 1
|
||||
self.out_size = 1
|
||||
if "5862" in self.id:
|
||||
self.type = "5862"
|
||||
self.in_size = 2
|
||||
self.out_size = 2
|
||||
self.info = self.DeviceInformation()
|
||||
self.info.Description = "USB-5860,BID#0"
|
||||
#self.info.DeviceNumber = -1
|
||||
self.info.Description = config.id
|
||||
|
||||
# self.info.DeviceNumber = -1
|
||||
self.info.DeviceMode = 1
|
||||
self.info.ModuleIndex = 0
|
||||
# DIGITAL INPUTS CLASS
|
||||
|
|
@ -87,8 +91,9 @@ class USB_5860(Component):
|
|||
self.do_init_status = self.do_setSelectedDevice(self.do_ctrl, ctypes.byref(self.info))
|
||||
|
||||
# SET ALL RELAYS OFF
|
||||
for bit in range(0, 8):
|
||||
self.set_bit(0, bit, False)
|
||||
for bit in range(0, self.out_size*8):
|
||||
self.set_bit(int(bit/8), bit%8, False)
|
||||
|
||||
self.state_delay = 1
|
||||
self.last_get = None
|
||||
self.state_count = None
|
||||
|
|
@ -134,19 +139,20 @@ class USB_5860(Component):
|
|||
self.mutex.lock()
|
||||
read = []
|
||||
if win:
|
||||
ret=self.di_read(0, 1 )
|
||||
if ret[0]== ErrorCode.Success:
|
||||
self.buffer=ret[1]
|
||||
byte = self.buffer[0]
|
||||
read.append([bool(byte & m) for m in self.masks])
|
||||
ret = self.di_read(0, self.in_size)
|
||||
if ret[0] == ErrorCode.Success:
|
||||
self.buffer = ret[1]
|
||||
for byte_num in range(len(self.buffer)):
|
||||
byte = self.buffer[byte_num]
|
||||
read.append([bool(byte & m) for m in self.masks])
|
||||
|
||||
else:
|
||||
self.buffer = None
|
||||
else:
|
||||
self.di_read(self.di_ctrl, 0, 1, self.buffer)
|
||||
|
||||
for byte in range(len(self.buffer)):
|
||||
byte = ~int.from_bytes(self.buffer[byte], "little")
|
||||
for byte_num in range(len(self.buffer)):
|
||||
byte = int.from_bytes(self.buffer[byte_num], "little")
|
||||
read.append([bool(byte & m) for m in self.masks])
|
||||
|
||||
self.mutex.unlock()
|
||||
|
|
@ -79,6 +79,7 @@ try:
|
|||
try:
|
||||
# READ CONFIG
|
||||
self.config = ConfigReader()
|
||||
self.config["autotest_done"]=False
|
||||
# INIT COMPONENT
|
||||
self.components_specs = {
|
||||
"archive_synchronizer": {"c": ArchiveSynchronizer},
|
||||
|
|
@ -142,9 +143,6 @@ try:
|
|||
self.main_window.archive_a.triggered.connect(lambda checked, self=weakref.ref(self): self().main_window.open_dialog(Archive(hide_cloud_image="vision_saver" not in self().components)))
|
||||
if "--archive" in sys.argv:
|
||||
self.main_window.archive_a.trigger()
|
||||
# self.main_window.autotests_archive_a.triggered.connect(lambda checked, self=weakref.ref(self): self().main_window.open_dialog(Autotests_Archive()))
|
||||
# if "--autotests-archive" in sys.argv:
|
||||
# self.main_window.autotests_archive_a.trigger()
|
||||
self.main_window.about_a.triggered.connect(lambda checked, self=weakref.ref(self): self().main_window.open_dialog(About()))
|
||||
if "--about" in sys.argv:
|
||||
self.main_window.about_a.trigger()
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@ pillow
|
|||
pycoral
|
||||
pymodbus
|
||||
pyqt5
|
||||
pyqt5-tools
|
||||
pyserial
|
||||
pyserial-asyncio
|
||||
requests
|
||||
|
|
|
|||
|
|
@ -1,18 +0,0 @@
|
|||
import time
|
||||
|
||||
from src.components.usb_5860 import USB_5860
|
||||
|
||||
digital_io = USB_5860(None, None, None)
|
||||
digital_io.start()
|
||||
|
||||
out_val = 0
|
||||
while True:
|
||||
res = digital_io.set_bit(0, 0, out_val)
|
||||
input_data = digital_io.get()
|
||||
print("in:{} out:{}".format(bytes(input_data[0]), out_val))
|
||||
|
||||
time.sleep(1)
|
||||
if out_val == 0:
|
||||
out_val = 1
|
||||
else:
|
||||
out_val = 0
|
||||
32
src/test/test_usb586x.py
Normal file
32
src/test/test_usb586x.py
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
import sys
|
||||
import time
|
||||
|
||||
from src.components.usb_586x import USB_586x
|
||||
|
||||
class config:
|
||||
id = None
|
||||
updated= None
|
||||
|
||||
if "--5862" in sys.argv:
|
||||
config.id = "USB-5860,BID#0"
|
||||
out_size = 16
|
||||
else:
|
||||
config.id = "USB-5860,BID#0"
|
||||
out_size = 8
|
||||
|
||||
digital_io = USB_586x(config)
|
||||
digital_io.start()
|
||||
|
||||
out_num = 0
|
||||
while True:
|
||||
out_bit = out_num % 8
|
||||
out_byte = int(out_num/8)
|
||||
res = digital_io.set_bit(out_byte, out_bit, 1)
|
||||
time.sleep(0.5)
|
||||
res2 = digital_io.set_bit(out_byte, out_bit, 0)
|
||||
input_data = digital_io.get()
|
||||
print("in:{} out:{}".format(bytes(input_data[0]), out_num))
|
||||
time.sleep(0.5)
|
||||
out_num += 1
|
||||
if out_num == out_size:
|
||||
out_num = 0
|
||||
|
|
@ -6,27 +6,45 @@
|
|||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>955</width>
|
||||
<height>161</height>
|
||||
<width>1221</width>
|
||||
<height>252</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>Leak Step Editor</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout">
|
||||
<property name="leftMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="topMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="rightMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="bottomMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<item row="1" column="0">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||
<item>
|
||||
<widget class="QGroupBox" name="groupBox_5">
|
||||
<property name="font">
|
||||
<font>
|
||||
<pointsize>10</pointsize>
|
||||
<weight>50</weight>
|
||||
<bold>false</bold>
|
||||
</font>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string>Elettrovalvole</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_8">
|
||||
<item row="1" column="1">
|
||||
<widget class="QSpinBox" name="relay_config">
|
||||
<property name="maximum">
|
||||
<number>9999</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QLabel" name="label_29">
|
||||
<property name="text">
|
||||
<string>Configurazione relè</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QGroupBox" name="groupBox_2">
|
||||
<property name="font">
|
||||
<font>
|
||||
|
|
@ -39,13 +57,6 @@
|
|||
<string>Pre-Riempimento</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_3">
|
||||
<item row="3" column="1">
|
||||
<widget class="QSpinBox" name="pre_filling_pressure_sb">
|
||||
<property name="maximum">
|
||||
<number>9999</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<widget class="QSpinBox" name="pre_filling_time_sb">
|
||||
<property name="maximum">
|
||||
|
|
@ -81,10 +92,117 @@
|
|||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="1">
|
||||
<widget class="QSpinBox" name="pre_filling_pressure_sb">
|
||||
<property name="maximum">
|
||||
<number>9999</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="2">
|
||||
<item>
|
||||
<widget class="QGroupBox" name="groupBox_7">
|
||||
<property name="font">
|
||||
<font>
|
||||
<pointsize>10</pointsize>
|
||||
<weight>50</weight>
|
||||
<bold>false</bold>
|
||||
</font>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string>Riempimento</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_7">
|
||||
<item row="2" column="0">
|
||||
<widget class="QLabel" name="label_14">
|
||||
<property name="text">
|
||||
<string>PR+ Pressione Max</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="label_8">
|
||||
<property name="text">
|
||||
<string>T1: Riempimento</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="2">
|
||||
<widget class="QLabel" name="label_20">
|
||||
<property name="text">
|
||||
<string>s</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="1">
|
||||
<widget class="QSpinBox" name="settling_pressure_min_percent_sb">
|
||||
<property name="maximum">
|
||||
<number>150</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="QSpinBox" name="filling_time_sb">
|
||||
<property name="maximum">
|
||||
<number>9999</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="0">
|
||||
<widget class="QLabel" name="label_15">
|
||||
<property name="text">
|
||||
<string>PR- Pressione Min</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="1">
|
||||
<widget class="QSpinBox" name="settling_pressure_max_percent_sb">
|
||||
<property name="maximum">
|
||||
<number>100</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="2">
|
||||
<widget class="QLabel" name="label_26">
|
||||
<property name="text">
|
||||
<string>%</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="2">
|
||||
<widget class="QLabel" name="label_27">
|
||||
<property name="text">
|
||||
<string>%</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QLabel" name="label_13">
|
||||
<property name="text">
|
||||
<string>T2: Assestamento</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<widget class="QSpinBox" name="settling_time_sb">
|
||||
<property name="maximum">
|
||||
<number>9999</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="2">
|
||||
<widget class="QLabel" name="label_25">
|
||||
<property name="text">
|
||||
<string>s</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QGroupBox" name="groupBox_3">
|
||||
<property name="font">
|
||||
<font>
|
||||
|
|
@ -187,107 +305,7 @@
|
|||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<widget class="QGroupBox" name="groupBox_7">
|
||||
<property name="font">
|
||||
<font>
|
||||
<pointsize>10</pointsize>
|
||||
<weight>50</weight>
|
||||
<bold>false</bold>
|
||||
</font>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string>Riempimento</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_7">
|
||||
<item row="2" column="0">
|
||||
<widget class="QLabel" name="label_14">
|
||||
<property name="text">
|
||||
<string>PR+ Pressione Max</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="label_8">
|
||||
<property name="text">
|
||||
<string>T1: Riempimento</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="2">
|
||||
<widget class="QLabel" name="label_20">
|
||||
<property name="text">
|
||||
<string>s</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="1">
|
||||
<widget class="QSpinBox" name="settling_pressure_min_percent_sb">
|
||||
<property name="maximum">
|
||||
<number>150</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="QSpinBox" name="filling_time_sb">
|
||||
<property name="maximum">
|
||||
<number>9999</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="0">
|
||||
<widget class="QLabel" name="label_15">
|
||||
<property name="text">
|
||||
<string>PR- Pressione Min</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="1">
|
||||
<widget class="QSpinBox" name="settling_pressure_max_percent_sb">
|
||||
<property name="maximum">
|
||||
<number>100</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="2">
|
||||
<widget class="QLabel" name="label_26">
|
||||
<property name="text">
|
||||
<string>%</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="2">
|
||||
<widget class="QLabel" name="label_27">
|
||||
<property name="text">
|
||||
<string>%</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QLabel" name="label_13">
|
||||
<property name="text">
|
||||
<string>T2: Assestamento</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<widget class="QSpinBox" name="settling_time_sb">
|
||||
<property name="maximum">
|
||||
<number>9999</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="2">
|
||||
<widget class="QLabel" name="label_25">
|
||||
<property name="text">
|
||||
<string>s</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="3">
|
||||
<item>
|
||||
<widget class="QGroupBox" name="groupBox_4">
|
||||
<property name="font">
|
||||
<font>
|
||||
|
|
|
|||
|
|
@ -96,7 +96,8 @@ class Test(Widget):
|
|||
self.autotest_cycle_steps = None
|
||||
if "--no-autotest" not in sys.argv:
|
||||
self.autotest_period = 12 * 60 * 60 * 1000
|
||||
self.request_autotest("init")
|
||||
if not self.config["autotest_done"]:
|
||||
self.request_autotest("init")
|
||||
else:
|
||||
self.autotest_period = None
|
||||
# INIT TEST DATA
|
||||
|
|
@ -223,6 +224,7 @@ class Test(Widget):
|
|||
self.autotesting = False
|
||||
self.autotesting_reason = None
|
||||
self.cycle_index = -1
|
||||
self.config["autotest_done"] = True
|
||||
if not self.autotesting:
|
||||
if len(self.cycle_steps):
|
||||
# goto next step in cycle_steps
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user