| Crates.io | codde_protocol |
| lib.rs | codde_protocol |
| version | 0.1.6 |
| created_at | 2024-02-23 22:39:35.316131+00 |
| updated_at | 2024-07-10 13:41:42.084083+00 |
| description | Multi Communication protocol in heart of the C.O.D.D.E. Pi framework |
| homepage | https://github.com/codde-pi/codde_protocol |
| repository | |
| max_upload_size | |
| id | 1151040 |
| size | 69,607 |
CODDE Protocol is the base layer of the CODDE Pi Framework. This protocol let CODDE Pi interacts with any hardware through WiFi, Bluetooth and BLE using an embedded library and a mobile app. This technology enables users to freely interact with hardware thanks to a secure, stable and reliable technology without be (too) intrusive.
This Project is written in Rust, enabling fast serializing/deserializing and data processing. Client side is ported for Dart/Flutter applications, and server side has been translated in python.
CODDE Protocol integrates data generated by CODDE Pi App widgets, and received by embedded systems. See https://codde-pi.com to stay tuned about new widgets integration.
CODDE Pi is based on client-server architecture. Basically, the mobile App you download is the client side, and the base layer you embed on your project is the server side
import codde_protocol
import time
# import gpio
# instantiate server
server = CoddePiServer.use_socket('localhost:12345')
# some hardware control
# pin10 = gpio.DigitalPin(10, gpio.OUTPUT)
@event(server)
def toggle_button_1(*args):
widget: ToggleButton = args[0]
print("value received : ", widget.value)
server.callback(1, ServerStatus.Idle, ConfirmResult(True))
@event(server)
def click_button_2(*args):
pass
# pin10.on()
if __name__ == "__main__":
print('opening server...', end=' ')
server.open()
try:
print('serve')
server.serve()
while True:
sleep(1)
except KeyboardInterrupt:
print("CTRL + C.")
print("Program interrupted.")
finally:
server.close()
| Protocols | Flutter | Python | Rust | MicroPython |
|---|---|---|---|---|
| WebSocket (client) | Yes | Yes | ||
| WebSocket (server) | Yes | Yes | WIP | |
| Bluetooth | WIP | |||
| USB | ||||
| Nearby |
| Protocols | SBC (arm64) | RP2040 | Android | iOS | x86 |
|---|---|---|---|---|---|
| WebSocket (client) | Yes | WIP | Yes | Yes | Yes |
| WebSocket (server) | Yes | WIP | Yes | Yes | Yes |
| Bluetooth | |||||
| USB | No | ||||
| Nearby |