Crates.io | codde_protocol |
lib.rs | codde_protocol |
version | 0.1.6 |
source | src |
created_at | 2024-02-23 22:39:35.316131 |
updated_at | 2024-07-10 13:41:42.084083 |
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 |