SEDSnet 4.0.6

A memory safe, no_std-capable networking stack with routing, discovery, reliability, and Rust/C/Python bindings.
Documentation
import sedsnet as seds

from schema_helpers import E2E_PREFER_OFF, UINT8, ensure_endpoint, ensure_type

FLIGHT_STATE = 3100


def main() -> None:
    radio = ensure_endpoint(101, "RADIO", "packed radio link")
    flight_state = ensure_type(
        FLIGHT_STATE,
        "FLIGHT_STATE",
        is_static=True,
        element_count=1,
        message_data_type=UINT8,
        endpoints=[radio],
        priority=90,
        description="network-managed flight state",
        e2e_encryption=E2E_PREFER_OFF,
    )

    router = seds.Router(hostname="FLIGHT_COMPUTER", e2e_mode=1, e2e_key_id=7)
    router.enable_network_variable(flight_state, True, True)
    router.add_side_packed("RADIO", lambda _bytes: None)

    packet = seds.make_packet(flight_state, router.sender_id, [radio], 1, bytes([3]))
    router.set_network_variable(packet)
    cached = router.cached_network_variable(flight_state)
    assert cached is not None
    assert cached.data_as_u8() == b"\x03"
    router.get_network_variable(flight_state, stale_after_ms=0)
    router.process_all_queues()


if __name__ == "__main__":
    main()