fco730 unit test ok
This commit is contained in:
parent
12b0fc937b
commit
587674eabb
|
|
@ -14,7 +14,7 @@ poll_time: 60
|
|||
hold_time: 1
|
||||
|
||||
[furness_controls]
|
||||
port: COM4
|
||||
port: COM3
|
||||
model: fco730
|
||||
|
||||
[label_printer]
|
||||
|
|
|
|||
|
|
@ -9,6 +9,9 @@ cd tmp
|
|||
|
||||
:: Advantech XNAVI
|
||||
Invoke-WebRequest -uri "https://downloadt.advantech.com/download/downloadsr.aspx?File_Id=1-2BZC0F1" -usebasicparsing -outfile xnavi.zip
|
||||
Expand-Archive .\xnavi.zip
|
||||
cd xnavi
|
||||
./xnavi.exe
|
||||
|
||||
:: GXIPY
|
||||
Invoke-WebRequest -uri "https://dahengimaging.com/downloads/Galaxy_Windows_EN_32bits%2064bits_1.18.2208.9301.zip" -usebasicparsing -OutFile Galaxy_Windows_EN_32bits_64bits_1.18.2208.9301.zip
|
||||
|
|
@ -11,7 +11,7 @@ from .tecna_marposs_provaset_t3 import TecnaMarpossProvasetT3
|
|||
from .tecna_screwdriver import TecnaScrewdriver
|
||||
from .usb_586x import USB_586x
|
||||
from .rfid_pn532 import RFID_PN532
|
||||
from furness_controls_leak_tester import FurnessControlsLeakTester
|
||||
from .furness_controls_leak_tester import FurnessControlsLeakTester
|
||||
if "--vision" in sys.argv:
|
||||
from .galaxy_camera import GalaxyCamera
|
||||
from .neo_pixels import NeoPixels
|
||||
|
|
|
|||
|
|
@ -10,17 +10,17 @@ if "--sim-furness-controls" in sys.argv:
|
|||
else:
|
||||
import serial
|
||||
|
||||
ETX=0x03
|
||||
EOT=0x04
|
||||
ENQ=0x05
|
||||
ACK=0X06
|
||||
NACK=0X15
|
||||
ETX=b'\x03'
|
||||
EOT=b'\x04'
|
||||
ENQ=b'\x05'
|
||||
ACK=b'\x06'
|
||||
NACK=b'\x15'
|
||||
|
||||
|
||||
class FurnessControlsLeakTester(Component):
|
||||
|
||||
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, registers=None)
|
||||
super().__init__(config=config, name=name, period=period, lazy=lazy, paused=paused, threaded=threaded)
|
||||
self.bytesize = None
|
||||
self.timeout = None
|
||||
self.parity = None
|
||||
|
|
@ -31,8 +31,8 @@ class FurnessControlsLeakTester(Component):
|
|||
self.model = None
|
||||
self.settings = None
|
||||
self.registers = None
|
||||
self.id1=0
|
||||
self.id2=1
|
||||
self.id1=b'0'
|
||||
self.id2=b'1'
|
||||
|
||||
def config_changed(self):
|
||||
super().config_changed()
|
||||
|
|
@ -46,11 +46,11 @@ class FurnessControlsLeakTester(Component):
|
|||
else:
|
||||
raise NotImplementedError(f"Furness Controls model {self.model!r} not implemented.")
|
||||
self.port = self.config[self.name]["port"]
|
||||
self.baudrate = int(self.config[self.name]["baudrate"])
|
||||
self.stopbits = getattr(serial, self.config[self.name].get("stopbits", "stopbits_one").upper())
|
||||
self.parity = getattr(serial, self.config[self.name].get("parity", "parity_none").upper())
|
||||
self.bytesize = getattr(serial, self.config[self.name].get("bytesize", "eightbits").upper())
|
||||
self.timeout = float(self.config[self.name].get("read_timeout", 1))
|
||||
self.baudrate = 9600
|
||||
self.stopbits = 1
|
||||
self.parity = serial.PARITY_NONE
|
||||
self.bytesize = serial.EIGHTBITS
|
||||
self.timeout = 0.5
|
||||
if self.conn is not None:
|
||||
self.conn.close()
|
||||
self.conn = serial.Serial(
|
||||
|
|
@ -264,33 +264,44 @@ class FurnessControlsLeakTester(Component):
|
|||
|
||||
def send_command(self,command):
|
||||
out_bytes= bytearray()
|
||||
out_bytes.append(EOT)
|
||||
out_bytes.append(self.id1)
|
||||
out_bytes.append(self.id2)
|
||||
|
||||
self.conn.write(out_bytes)
|
||||
response = self.conn.read(1)
|
||||
if response != ACK:
|
||||
self.log.error(f"SEND COMMAND:{response}")
|
||||
|
||||
def send_enquiry(self,enquiry):
|
||||
out_bytes=bytearray(EOT)
|
||||
out_bytes.append(self.id1)
|
||||
out_bytes.append(self.id2)
|
||||
out_bytes.append(enquiry)
|
||||
out_bytes.append(ENQ)
|
||||
out_bytes.extend(EOT)
|
||||
out_bytes.extend(self.id1)
|
||||
out_bytes.extend(self.id2)
|
||||
out_bytes.extend(command)
|
||||
out_bytes.extend(ETX)
|
||||
checksum=self.calc_checksum(out_bytes)
|
||||
out_bytes.append(checksum)
|
||||
|
||||
self.conn.write(out_bytes)
|
||||
response = self.conn.read(1)
|
||||
if response != ACK:
|
||||
response = self.conn.read(100)
|
||||
if response == ACK:
|
||||
return True
|
||||
else:
|
||||
self.log.error(f"SEND COMMAND:{response}")
|
||||
return None
|
||||
|
||||
def calc_checksum(self,data):
|
||||
def send_enquiry(self,enquiry):
|
||||
out_bytes=bytearray(EOT)
|
||||
out_bytes.extend(self.id1)
|
||||
out_bytes.extend(self.id2)
|
||||
out_bytes.extend(enquiry)
|
||||
out_bytes.extend(ENQ)
|
||||
checksum=self.calc_checksum(out_bytes)
|
||||
out_bytes.append(checksum)
|
||||
|
||||
self.conn.write(out_bytes)
|
||||
response = self.conn.read(100)
|
||||
read_checksum = response[-1]
|
||||
calculated_checksum = self.calc_checksum(response[0:-1],start_idx=0)
|
||||
if read_checksum != calculated_checksum:
|
||||
self.log.error(f"SEND COMMAND:{response}")
|
||||
else:
|
||||
return response
|
||||
|
||||
def calc_checksum(self,data,start_idx=1):
|
||||
checksum=0
|
||||
for i,data_byte in enumerate(data):
|
||||
if i==0:
|
||||
if i<start_idx:
|
||||
continue # skip EOT
|
||||
checksum=checksum^data_byte
|
||||
return checksum
|
||||
|
|
|
|||
|
|
@ -7,33 +7,34 @@ if platform.system().lower() == "windows":
|
|||
else:
|
||||
sys.path.append(f"{os.getcwd()}/src/components")
|
||||
|
||||
from furness_controls_leak_tester import FurnessControlsLeakTester
|
||||
from components.furness_controls_leak_tester import FurnessControlsLeakTester
|
||||
from lib.helpers import ConfigReader
|
||||
|
||||
config = ConfigReader(system_id="vm")
|
||||
config = ConfigReader(system_id="ST-TEN-9")
|
||||
|
||||
app = QApplication(sys.argv)
|
||||
|
||||
tester_component = FurnessControlsLeakTester(name="furness_controls")
|
||||
|
||||
tester_component = FurnessControlsLeakTester(name="furness_controls",config=config)
|
||||
tester_component.config_changed()
|
||||
|
||||
# GET STATUS
|
||||
enquiry=bytearray(['M',0,0,0])
|
||||
enquiry=bytearray(b'M000')
|
||||
response=tester_component.send_enquiry(enquiry)
|
||||
|
||||
|
||||
if response is not None:
|
||||
print(f"RESPONSE:{response}")
|
||||
print(f"INQUIRY RESPONSE:{response}")
|
||||
else:
|
||||
print("INQUIRY ERROR")
|
||||
|
||||
# SET PRODUCT 50 (LAST RECIPE)
|
||||
|
||||
command=bytearray(['F',0,5,0])
|
||||
#command=bytearray(b'F050')
|
||||
command=bytearray(b'G000') # START TEST
|
||||
|
||||
response=tester_component.send_command(command)
|
||||
|
||||
if response is not None:
|
||||
print(f"RESPONSE:{response}")
|
||||
if response is True:
|
||||
print(f"COMMAND RESPONSE OK")
|
||||
else:
|
||||
print("COMMAND ERROR")
|
||||
print("COMMAND NO RESPONSE")
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user