5 releases
0.1.6 | Jul 10, 2024 |
---|---|
0.1.5 | May 28, 2024 |
0.1.4 | Apr 15, 2024 |
0.1.2 | Apr 1, 2024 |
0.1.1 | Feb 23, 2024 |
#240 in Procedural macros
30KB
589 lines
CODDE Protocol
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.
Development
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.
How it works
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
Usage
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()
Roadmap
Libraries
Protocols | Flutter | Python | Rust | MicroPython |
---|---|---|---|---|
WebSocket (client) | Yes | Yes | ||
WebSocket (server) | Yes | Yes | WIP | |
Bluetooth | WIP | |||
USB | ||||
Nearby |
Hardware compatibility
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 |
Dependencies
~10–21MB
~321K SLoC