Brain Software Architecture
Before updating Alive OS to support qCAN (my CANbus-based protocol) I have the last thing to do. To simplify my live in future I need a CAN publisher that can publish messages to many subscribers. My main subscribe of course is AliveOS but also to display information about connected devices I need a second subscriber - a service listening only qCAN Present messages.
To do it I will use a ZeroMQ protocol - an extremely supported and documented for many programming languages standard. I’m going to update my brain_service to support the protocol and it will be responsible for all interaction with Raspberry Pi.
After a lot of experiments with Raspberry, ESP32, STM32 and Arduino boards I’ve decided what will be a spine of the Zakhar project. ROS seems the most interesting and extendible. Inside it, I could combine Python, C, C++ programs (hence, libraries ) working inside a Linux environment and communicate with any other platforms.
Say, I could build a system on a Raspberry, which will communicate with developer board like ESP-WROVER-KIT working on FreeRTOS. Even more, I could use my desktop as a part of the system for High-level computing (say, for image recognition with OpenCV).
I have bought some hardware for the new version of Zakhar, called Zakha_ros: