Skip to main content

Multi Communication protocol in heart of the C.O.D.D.E. Pi framework

Project description

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

codde_protocol-0.1.6.tar.gz (39.2 kB view hashes)

Uploaded Source

Built Distributions

codde_protocol-0.1.6-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (450.2 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ x86-64

codde_protocol-0.1.6-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl (509.8 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ s390x

codde_protocol-0.1.6-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (494.0 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ ppc64le

codde_protocol-0.1.6-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux2014_i686.whl (466.6 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ i686

codde_protocol-0.1.6-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (461.4 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ ARMv7l

codde_protocol-0.1.6-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (469.4 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ ARM64

codde_protocol-0.1.6-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (451.5 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ x86-64

codde_protocol-0.1.6-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl (511.2 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ s390x

codde_protocol-0.1.6-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (495.5 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ ppc64le

codde_protocol-0.1.6-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl (468.9 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ i686

codde_protocol-0.1.6-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (462.4 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ ARMv7l

codde_protocol-0.1.6-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (470.0 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ ARM64

codde_protocol-0.1.6-pp38-pypy38_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl (512.1 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ s390x

codde_protocol-0.1.6-pp38-pypy38_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (495.4 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ ppc64le

codde_protocol-0.1.6-pp38-pypy38_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (462.3 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ ARMv7l

codde_protocol-0.1.6-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (471.0 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ ARM64

codde_protocol-0.1.6-cp312-none-win_amd64.whl (269.3 kB view hashes)

Uploaded CPython 3.12 Windows x86-64

codde_protocol-0.1.6-cp312-none-win32.whl (256.9 kB view hashes)

Uploaded CPython 3.12 Windows x86

codde_protocol-0.1.6-cp312-cp312-manylinux_2_34_x86_64.whl (384.8 kB view hashes)

Uploaded CPython 3.12 manylinux: glibc 2.34+ x86-64

codde_protocol-0.1.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (397.9 kB view hashes)

Uploaded CPython 3.12 manylinux: glibc 2.17+ x86-64

codde_protocol-0.1.6-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl (510.4 kB view hashes)

Uploaded CPython 3.12 manylinux: glibc 2.17+ s390x

codde_protocol-0.1.6-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (491.5 kB view hashes)

Uploaded CPython 3.12 manylinux: glibc 2.17+ ppc64le

codde_protocol-0.1.6-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl (467.9 kB view hashes)

Uploaded CPython 3.12 manylinux: glibc 2.17+ i686

codde_protocol-0.1.6-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (462.5 kB view hashes)

Uploaded CPython 3.12 manylinux: glibc 2.17+ ARMv7l

codde_protocol-0.1.6-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (467.6 kB view hashes)

Uploaded CPython 3.12 manylinux: glibc 2.17+ ARM64

codde_protocol-0.1.6-cp312-cp312-macosx_11_0_arm64.whl (391.6 kB view hashes)

Uploaded CPython 3.12 macOS 11.0+ ARM64

codde_protocol-0.1.6-cp312-cp312-macosx_10_12_x86_64.whl (390.8 kB view hashes)

Uploaded CPython 3.12 macOS 10.12+ x86-64

codde_protocol-0.1.6-cp311-none-win_amd64.whl (273.0 kB view hashes)

Uploaded CPython 3.11 Windows x86-64

codde_protocol-0.1.6-cp311-none-win32.whl (258.4 kB view hashes)

Uploaded CPython 3.11 Windows x86

codde_protocol-0.1.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (449.6 kB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

codde_protocol-0.1.6-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl (508.9 kB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ s390x

codde_protocol-0.1.6-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (493.6 kB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ ppc64le

codde_protocol-0.1.6-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl (465.1 kB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ i686

codde_protocol-0.1.6-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (460.1 kB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ ARMv7l

codde_protocol-0.1.6-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (467.9 kB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ ARM64

codde_protocol-0.1.6-cp311-cp311-macosx_11_0_arm64.whl (391.6 kB view hashes)

Uploaded CPython 3.11 macOS 11.0+ ARM64

codde_protocol-0.1.6-cp311-cp311-macosx_10_12_x86_64.whl (391.2 kB view hashes)

Uploaded CPython 3.11 macOS 10.12+ x86-64

codde_protocol-0.1.6-cp310-none-win_amd64.whl (273.0 kB view hashes)

Uploaded CPython 3.10 Windows x86-64

codde_protocol-0.1.6-cp310-none-win32.whl (258.3 kB view hashes)

Uploaded CPython 3.10 Windows x86

codde_protocol-0.1.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (449.8 kB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

codde_protocol-0.1.6-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl (509.0 kB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ s390x

codde_protocol-0.1.6-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (493.2 kB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ ppc64le

codde_protocol-0.1.6-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl (465.0 kB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ i686

codde_protocol-0.1.6-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (460.6 kB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ ARMv7l

codde_protocol-0.1.6-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (467.2 kB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ ARM64

codde_protocol-0.1.6-cp310-cp310-macosx_11_0_arm64.whl (391.6 kB view hashes)

Uploaded CPython 3.10 macOS 11.0+ ARM64

codde_protocol-0.1.6-cp310-cp310-macosx_10_12_x86_64.whl (391.0 kB view hashes)

Uploaded CPython 3.10 macOS 10.12+ x86-64

codde_protocol-0.1.6-cp39-none-win_amd64.whl (273.8 kB view hashes)

Uploaded CPython 3.9 Windows x86-64

codde_protocol-0.1.6-cp39-none-win32.whl (259.1 kB view hashes)

Uploaded CPython 3.9 Windows x86

codde_protocol-0.1.6-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (450.2 kB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

codde_protocol-0.1.6-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl (509.9 kB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.17+ s390x

codde_protocol-0.1.6-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (493.4 kB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.17+ ppc64le

codde_protocol-0.1.6-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl (466.1 kB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.17+ i686

codde_protocol-0.1.6-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (461.5 kB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.17+ ARMv7l

codde_protocol-0.1.6-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (468.0 kB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.17+ ARM64

codde_protocol-0.1.6-cp39-cp39-macosx_11_0_arm64.whl (392.7 kB view hashes)

Uploaded CPython 3.9 macOS 11.0+ ARM64

codde_protocol-0.1.6-cp39-cp39-macosx_10_12_x86_64.whl (391.6 kB view hashes)

Uploaded CPython 3.9 macOS 10.12+ x86-64

codde_protocol-0.1.6-cp38-none-win_amd64.whl (273.7 kB view hashes)

Uploaded CPython 3.8 Windows x86-64

codde_protocol-0.1.6-cp38-none-win32.whl (258.9 kB view hashes)

Uploaded CPython 3.8 Windows x86

codde_protocol-0.1.6-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (450.5 kB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

codde_protocol-0.1.6-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl (509.9 kB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.17+ s390x

codde_protocol-0.1.6-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (492.7 kB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.17+ ppc64le

codde_protocol-0.1.6-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl (465.9 kB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.17+ i686

codde_protocol-0.1.6-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (461.3 kB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.17+ ARMv7l

codde_protocol-0.1.6-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (468.5 kB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.17+ ARM64

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page