codde_protocol

Crates.iocodde_protocol
lib.rscodde_protocol
version0.1.6
sourcesrc
created_at2024-02-23 22:39:35.316131
updated_at2024-07-10 13:41:42.084083
descriptionMulti Communication protocol in heart of the C.O.D.D.E. Pi framework
homepagehttps://github.com/codde-pi/codde_protocol
repository
max_upload_size
id1151040
size69,607
Matt (mat-his)

documentation

README

CODDE Protocol

Build & Test crates.io pub.dev pypi.org

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.

Buy Me A Coffee

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

Widgets & CODDE Protocol

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
Commit count: 0

cargo fmt