Example of Implementing Controller
# Not a real serial module implementation - this module mocks the serial module from pyserial package,
# but does not communicate with real RS-232 controller and is rather using simulated CPU commands to communicate
# with a simulated controller instead.
from datetime import timedelta
from datetime import datetime
import SimulatedCpuCommands as cpu
SEVENBITS = 7
STOPBITS_ONE = 1
PARITY_NONE = 0
def setSimulatedInputEvents(simulatedInputEvents):
cpu.setSimulatedInputEvents(simulatedInputEvents)
class Serial:
port = None
def open(self):
pass
def read(self, bytesToReceive = 1):
data = []
lastByteTime = datetime.now()
timeoutReached = False
while bytesToReceive > 0:
# Wait for a data byte
statusByte = 0
while statusByte == 0 and not timeoutReached:
currentTime = datetime.now()
if currentTime - lastByteTime > timedelta(seconds=self.timeout):
timeoutReached = True
statusByte = cpu.readStatusRegister(self.port)
if timeoutReached:
break
else:
lastByteTime = currentTime
# Save data byte into resulting variable
dataByte = cpu.readDataRegister(self.port)
data.append(dataByte)
bytesToReceive -= 1
return data
def flushInput(self):
pass
def flushOutput(self):
pass
def setRTS(self, value):
pass
def setDTR(self, value):
pass
def close(self):
pass