X-Git-Url: https://git.ayoreis.com/Adafruit_Blinka-hackapet.git/blobdiff_plain/990be458b9a4ee22dcffc871acdd5af9869d4722..a6837a9dadf8591684c9c17d82e79ab5441a5180:/src/adafruit_blinka/microcontroller/nova/uart.py diff --git a/src/adafruit_blinka/microcontroller/nova/uart.py b/src/adafruit_blinka/microcontroller/nova/uart.py new file mode 100644 index 0000000..3bb471a --- /dev/null +++ b/src/adafruit_blinka/microcontroller/nova/uart.py @@ -0,0 +1,65 @@ +import time + +class UART(): + ESCAPE_SEQUENCE = "+++UART0" + def __init__(self, + portid, + baudrate=9600, + bits=8, + parity=None, + stop=1, + timeout=1000, + read_buf_len=None, + flow=None): + from adafruit_blinka.microcontroller.nova import Connection + self._nova = Connection.getInstance() + + self._id = portid + self._baudrate = baudrate + self._parity = parity + self._bits = bits + self._stop = stop + self._timeout = timeout + + if flow is not None: # default 0 + raise NotImplementedError( + "Parameter '{}' unsupported on Binho Nova".format( + "flow")) + + self._nova.setOperationMode(self._id, 'UART') + self._nova.setBaudRateUART(self._id, baudrate) + self._nova.setDataBitsUART(self._id, bits) + self._nova.setParityUART(self._id, parity) + self._nova.setStopBitsUART(self._id, stop) + self._nova.setEscapeSequenceUART(self._id, UART.ESCAPE_SEQUENCE) + self._nova.beginBridgeUART(self._id) + + def deinit(self): + self._nova.writeBridgeUART(UART.ESCAPE_SEQUENCE) + self._nova.stopBridgeUART(UART.ESCAPE_SEQUENCE) + + def read(self, nbytes=None): + if nbytes is None: + return None + data = bytearray() + for i in range(nbytes): + data.append(ord(self._nova.readBridgeUART())) + return data + + def readinto(self, buf, nbytes=None): + if nbytes is None: + return None + for i in range(nbytes): + buf.append(ord(self._nova.readBridgeUART())) + return buf + + def readline(self): + out = self._nova.readBridgeUART() + line = out + while out != '\r': + out = self._nova.readBridgeUART() + line += out + return line + + def write(self, buf): + return self._nova.writeBridgeUART(buf) \ No newline at end of file