]> Repositories - Adafruit_Blinka-hackapet.git/blobdiff - src/adafruit_blinka/microcontroller/nova/uart.py
Added PulseIn helper
[Adafruit_Blinka-hackapet.git] / src / adafruit_blinka / microcontroller / nova / uart.py
index 3bb471aac239a6942546ef952216701be6a2acf8..ff4dc6022fc52ded2e8af44d1966c036f4af1d6d 100644 (file)
@@ -1,17 +1,28 @@
-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"
     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
         self._nova = Connection.getInstance()
 
         self._id = portid
@@ -23,10 +34,10 @@ class UART():
 
         if flow is not None:  # default 0
             raise NotImplementedError(
 
         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.setBaudRateUART(self._id, baudrate)
         self._nova.setDataBitsUART(self._id, bits)
         self._nova.setParityUART(self._id, parity)
@@ -34,32 +45,43 @@ class UART():
         self._nova.setEscapeSequenceUART(self._id, UART.ESCAPE_SEQUENCE)
         self._nova.beginBridgeUART(self._id)
 
         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):
     def deinit(self):
+        """Deinitialize"""
         self._nova.writeBridgeUART(UART.ESCAPE_SEQUENCE)
         self._nova.stopBridgeUART(UART.ESCAPE_SEQUENCE)
 
     def read(self, nbytes=None):
         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()
         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):
             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
         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):
             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
         out = self._nova.readBridgeUART()
         line = out
-        while out != '\r':
+        while out != "\r":
             out = self._nova.readBridgeUART()
             line += out
         return line
 
     def write(self, buf):
             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)