71 lines
2.1 KiB
Python
71 lines
2.1 KiB
Python
import serial
|
|
from serial import SerialException
|
|
import logging
|
|
import time
|
|
import binascii
|
|
|
|
SerialPort = "COM1"
|
|
BaudRate = 19200
|
|
PackageByTime = 0.1
|
|
PackageByLenght = 256
|
|
BufferMax = 2000
|
|
LogFileName = "megasport_new_4.log"
|
|
|
|
logging.basicConfig(level=logging.DEBUG,
|
|
format='%(asctime)s %(levelname)s %(message)s',
|
|
filename=LogFileName,
|
|
filemode="w")
|
|
|
|
ser = serial.Serial()
|
|
ser.port = SerialPort
|
|
ser.baudrate = BaudRate
|
|
ser.bytesize = serial.EIGHTBITS
|
|
ser.parity = serial.PARITY_NONE
|
|
ser.stopbits = serial.STOPBITS_ONE
|
|
ser.timeout = PackageByTime
|
|
ser.xonxoff = False
|
|
ser.rtscts = False
|
|
ser.dsrdtr = False
|
|
ser.write_timeout = 2
|
|
|
|
start = b"\xe0\xe0\xe8\xe8\xe4\xe4\xf8"
|
|
finish = b"\r"
|
|
while True:
|
|
try:
|
|
print("Initializing")
|
|
ser.close()
|
|
ser.open()
|
|
if ser.is_open:
|
|
try:
|
|
RequestCount = 0
|
|
print("Port Opening")
|
|
RetryCount = 0
|
|
remainder_hex = b""
|
|
while True:
|
|
response = ser.read(PackageByLenght)
|
|
print(response)
|
|
|
|
logging.debug(response)
|
|
if len(response) > 0:
|
|
|
|
StarterTime = time.time() * 1000
|
|
response_hex = response.replace(b" ", b"")
|
|
try:
|
|
int(response_hex,16)
|
|
except ValueError:
|
|
response_hex = binascii.hexlify(response)
|
|
response_hex = response_hex.upper()
|
|
|
|
response_hex = remainder_hex + response_hex
|
|
print(response_hex)
|
|
|
|
except Exception as e1:
|
|
logging.error("error communicating...: " + str(e1))
|
|
else:
|
|
print("Port Opening Failed... trying again in 5 seconds")
|
|
time.sleep(5)
|
|
ser.close()
|
|
except SerialException:
|
|
print("No port connected... trying again in 5 seconds")
|
|
time.sleep(5)
|