|
21 | 21 | """ |
22 | 22 |
|
23 | 23 | import gc |
| 24 | +import sys |
24 | 25 | from json import dumps, loads |
25 | 26 |
|
26 | | -from network_adapter import NetworkAdapterFactory |
27 | | - |
28 | 27 | __version__ = "0.0.1" |
29 | 28 | __repo__ = "https://github.com/samson0v/CircuitPython_thingsboard-client-sdk.git" |
30 | 29 |
|
|
36 | 35 | CLAIMING_TOPIC = "v1/devices/me/claim" |
37 | 36 |
|
38 | 37 |
|
| 38 | +class NetworkAdapter: |
| 39 | + def get_socket_pool(self): |
| 40 | + pass |
| 41 | + |
| 42 | + def get_ssl_context(self): |
| 43 | + pass |
| 44 | + |
| 45 | + |
| 46 | +class CircuitPythonNetworkAdapter(NetworkAdapter): |
| 47 | + def __init__(self): |
| 48 | + import socketpool |
| 49 | + import wifi |
| 50 | + |
| 51 | + self._pool = socketpool.SocketPool(wifi.radio) |
| 52 | + |
| 53 | + def get_socket_pool(self): |
| 54 | + return self._pool |
| 55 | + |
| 56 | + def get_ssl_context(self): |
| 57 | + return None |
| 58 | + |
| 59 | + |
| 60 | +class CPythonNetworkAdapter(NetworkAdapter): |
| 61 | + def __init__(self): |
| 62 | + import adafruit_connection_manager |
| 63 | + from adafruit_connection_manager import CPythonNetwork |
| 64 | + |
| 65 | + radio = CPythonNetwork() |
| 66 | + self._pool = adafruit_connection_manager.get_radio_socketpool(radio) |
| 67 | + self._ssl_context = adafruit_connection_manager.get_radio_ssl_context(radio) |
| 68 | + |
| 69 | + def get_socket_pool(self): |
| 70 | + return self._pool |
| 71 | + |
| 72 | + def get_ssl_context(self): |
| 73 | + return self._ssl_context |
| 74 | + |
| 75 | + |
| 76 | +class NetworkAdapterFactory: |
| 77 | + @staticmethod |
| 78 | + def create(): |
| 79 | + if sys.implementation.name == "circuitpython": |
| 80 | + print("Using CircuitPython network adapter") |
| 81 | + return CircuitPythonNetworkAdapter() |
| 82 | + print("Using CPython network adapter") |
| 83 | + return CPythonNetworkAdapter() |
| 84 | + |
| 85 | + |
39 | 86 | class TBDeviceMqttClient: |
40 | 87 | def __init__( |
41 | 88 | self, |
|
0 commit comments