| 114 | |
| 115 | |
| 116 | class SerialTransport(FramedTransport): |
| 117 | def __init__(self, url, baudrate, **kwargs): |
| 118 | super(SerialTransport, self).__init__() |
| 119 | if not SerialReady: |
| 120 | raise ImportError( |
| 121 | "Please, install pySerial module (sudo pip3 install pyserial).") |
| 122 | self._url = url |
| 123 | self._serial = serial.serial_for_url( |
| 124 | url, baudrate=baudrate, **kwargs) # 8N1 by default |
| 125 | |
| 126 | def close(self): |
| 127 | self._serial.close() |
| 128 | |
| 129 | def _base_send(self, data): |
| 130 | self._serial.write(data) |
| 131 | |
| 132 | def _base_receive(self, count): |
| 133 | return self._serial.read(count) |
| 134 | |
| 135 | |
| 136 | class ConnectionClosed(Exception): |
no outgoing calls