A generic PubSub communication protocol that enables small microcontrollers to be part of a bigger robot structure. uC considered are 256KB flash, 32KB RAM ( STM32F103 ). The protocol should be able to be passed across serial, USB . Primary intention is to use this via USB CDC and UDP
- implement CBOR serialization for protocol messages : Pub,Sub,..
- use a reflection API via C++ templates ( See Mira project C++ approach on serialization )
- the reflection enables reading, writing , documenting and sharing the structure
- use TinyCBOR for minimal memory footprint
- create generic proxy for any broker : Zenoh , Redis , Iceoryx
- enable selective publishing to lower update rate, maybe
- store historical data for time series
- the smallest possible implementation in C++ at uC side
- very compact protocol that makes maximum use of bandwidth ( topics and message types are identified by 1 byte id's)
- a generic PubSub protocol that enables integration of any PubSub broker at proxy side
- arrive at minimal latency E2E : uC <- middleware-> brain , in the order of a few millisec.
- Support wildcard matching on topics
These messages are send as a CBOR array ( 1 byte start and 1 byte end ) The messageType is 1 byte The id is 1 byte
- id, value , qos
- bi-directional
- id, pattern
- id, topic
- client Id
- error
Keep alive to proxy is implementing by listening to own 'uptime' topic, this enables also latency measurement and publishing