Я тут опубликовал библиотеку для программирования в парадигме потоков данных (dataflow) на микроконтроллерах: https://github.com/Zubax/ramen
Она чрезвычайно проста (один заголовочный файл) и работает на любой платформе без портирования.
Простейший пример --- сумматор:
┌────────┐
(float) │ Summer │ (float)
in_a ◄────────┤ │◄──────── out_sum
│ │
(float) │ │
in_b ◄────────┤ │
└────────┘
struct Summer
{
ramen::Puller<float> in_a;
ramen::Puller<float> in_b;
ramen::Pullable<float> out_sum = [this](float& out) { out = *in_a + *in_b; };
};
Больше примеров, а также объяснение зачем это нужно при наличии альтернатив, по ссылке. Всем спасибо.