Restructuring and packet format

This commit is contained in:
Mark Qvist 2018-03-19 16:39:08 +01:00
parent 4c92493bc2
commit 3ea36ff9b3
10 changed files with 236 additions and 74 deletions

View file

@ -1,8 +1,10 @@
from __future__ import print_function
from Interface import Interface
from time import sleep
import sys
import serial
import threading
import FPE
class SerialInterface(Interface):
MAX_CHUNK = 32768
@ -17,6 +19,7 @@ class SerialInterface(Interface):
serial = None
def __init__(self, owner, port, speed, databits, parity, stopbits):
self.serial = None
self.owner = owner
self.port = port
self.speed = speed
@ -31,6 +34,7 @@ class SerialInterface(Interface):
self.parity = serial.PARITY_ODD
try:
FPE.log("Opening serial port "+self.port+"...")
self.serial = serial.Serial(
port = self.port,
baudrate = self.speed,
@ -43,16 +47,16 @@ class SerialInterface(Interface):
write_timeout = None,
dsrdtr = False,
)
print(self.serial.inter_byte_timeout)
except Exception as e:
print("Could not create serial port", file=sys.stderr)
FPE.log("Could not create serial port", FPE.LOG_ERROR)
raise e
#self.serial.open()
if self.serial.is_open:
thread = threading.Thread(target=self.readLoop)
thread.setDaemon(True)
thread.start()
sleep(0.5)
FPE.log("Serial port "+self.port+" is now open")
else:
raise IOError("Could not open serial port")
@ -62,10 +66,13 @@ class SerialInterface(Interface):
def processOutgoing(self,data):
self.serial.write(data)
written = self.serial.write(data)
if written != len(data):
raise IOError("Serial interface only wrote "+str(written)+" bytes of "+str(len(data)))
def readLoop(self):
#pass
while self.serial.is_open:
data = self.serial.read(size=self.owner.__class__.MTU)
if not data == "":