]> Repositories - Adafruit_Blinka-hackapet.git/blob - src/adafruit_blinka/microcontroller/nova/uart.py
Clean up a bit
[Adafruit_Blinka-hackapet.git] / src / adafruit_blinka / microcontroller / nova / uart.py
1 import time
2
3 class UART():
4     ESCAPE_SEQUENCE = "+++UART0"
5     def __init__(self,
6                  portid,
7                  baudrate=9600,
8                  bits=8,
9                  parity=None,
10                  stop=1,
11                  timeout=1000,
12                  read_buf_len=None,
13                  flow=None):
14         from adafruit_blinka.microcontroller.nova import Connection
15         self._nova = Connection.getInstance()
16
17         self._id = portid
18         self._baudrate = baudrate
19         self._parity = parity
20         self._bits = bits
21         self._stop = stop
22         self._timeout = timeout
23
24         if flow is not None:  # default 0
25             raise NotImplementedError(
26                 "Parameter '{}' unsupported on Binho Nova".format(
27                     "flow"))
28
29         self._nova.setOperationMode(self._id, 'UART')
30         self._nova.setBaudRateUART(self._id, baudrate)
31         self._nova.setDataBitsUART(self._id, bits)
32         self._nova.setParityUART(self._id, parity)
33         self._nova.setStopBitsUART(self._id, stop)
34         self._nova.setEscapeSequenceUART(self._id, UART.ESCAPE_SEQUENCE)
35         self._nova.beginBridgeUART(self._id)
36
37     def deinit(self):
38         self._nova.writeBridgeUART(UART.ESCAPE_SEQUENCE)
39         self._nova.stopBridgeUART(UART.ESCAPE_SEQUENCE)
40
41     def read(self, nbytes=None):
42         if nbytes is None:
43             return None
44         data = bytearray()
45         for i in range(nbytes):
46             data.append(ord(self._nova.readBridgeUART()))
47         return data
48
49     def readinto(self, buf, nbytes=None):
50         if nbytes is None:
51             return None
52         for i in range(nbytes):
53             buf.append(ord(self._nova.readBridgeUART()))
54         return buf
55
56     def readline(self):
57         out = self._nova.readBridgeUART()
58         line = out
59         while out != '\r':
60             out = self._nova.readBridgeUART()
61             line += out
62         return line
63
64     def write(self, buf):
65         return self._nova.writeBridgeUART(buf)