X-Git-Url: https://git.ayoreis.com/Adafruit_Blinka-hackapet.git/blobdiff_plain/a6837a9dadf8591684c9c17d82e79ab5441a5180..f73c450270e34245d0f5c1a62fbca103bfec99ba:/src/adafruit_blinka/microcontroller/nova/uart.py?ds=inline diff --git a/src/adafruit_blinka/microcontroller/nova/uart.py b/src/adafruit_blinka/microcontroller/nova/uart.py index 3bb471a..5d698f8 100644 --- a/src/adafruit_blinka/microcontroller/nova/uart.py +++ b/src/adafruit_blinka/microcontroller/nova/uart.py @@ -1,17 +1,25 @@ -import time +"""UART Class for Binho Nova""" + +from adafruit_blinka.microcontroller.nova import Connection + + +class UART: + """Custom UART Class for Binho Nova""" -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 + + # pylint: disable=too-many-arguments,unused-argument + def __init__( + self, + portid, + baudrate=9600, + bits=8, + parity=None, + stop=1, + timeout=1000, + read_buf_len=None, + flow=None, + ): self._nova = Connection.getInstance() self._id = portid @@ -23,10 +31,10 @@ class UART(): if flow is not None: # default 0 raise NotImplementedError( - "Parameter '{}' unsupported on Binho Nova".format( - "flow")) + "Parameter '{}' unsupported on Binho Nova".format("flow") + ) - self._nova.setOperationMode(self._id, 'UART') + self._nova.setOperationMode(self._id, "UART") self._nova.setBaudRateUART(self._id, baudrate) self._nova.setDataBitsUART(self._id, bits) self._nova.setParityUART(self._id, parity) @@ -34,32 +42,43 @@ class UART(): self._nova.setEscapeSequenceUART(self._id, UART.ESCAPE_SEQUENCE) self._nova.beginBridgeUART(self._id) + # pylint: enable=too-many-arguments,unused-argument + def __del__(self): + """Close Nova on delete""" + self.deinit() + self._nova.close() + def deinit(self): + """Deinitialize""" self._nova.writeBridgeUART(UART.ESCAPE_SEQUENCE) self._nova.stopBridgeUART(UART.ESCAPE_SEQUENCE) def read(self, nbytes=None): + """Read data from UART and return it""" if nbytes is None: return None data = bytearray() - for i in range(nbytes): + for _ in range(nbytes): data.append(ord(self._nova.readBridgeUART())) return data def readinto(self, buf, nbytes=None): + """Read data from UART and into the buffer""" if nbytes is None: return None - for i in range(nbytes): + for _ in range(nbytes): buf.append(ord(self._nova.readBridgeUART())) return buf def readline(self): + """Read a single line of data from UART""" out = self._nova.readBridgeUART() line = out - while out != '\r': + 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 + """Write data from the buffer to UART""" + return self._nova.writeBridgeUART(buf)