-import time
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
+"""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
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)
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)