Здравствуйте, Rrock, Вы писали:
R>Существует ли, по вашему мнению, что-то лучшее для этой цели, чем параллельно работающие конечные автоматы (в виде графов состояний)?
В принципе, всё скатывается или к НДКА, или к реактивному (событийному) управлению, либо к описанию портов/каналов (аля singularity io ports|c# axum). Имхо (но это чисто моё личное субъективное мнение), самый интересный вариант для мейнстрима — последний.
R>Т.е. если бы вам, скажем, необходимо было описать схему работы некоторой системы устройств, где устройства работают параллельно, выполняют несложные функции и передают между друг другом сообщения (например, АЦП считывает температуру, с нее данные собирает микроконтроллер, передает в ПО на ПК, где есть поток сбора данных и основной поток GUI), то как бы вы зарисовали такую схему, в т.ч. протокол взаимодействия устройств?
На низком уровне — как очередь (несколько очередей) сообщений с гибким диспатчингом. В какое API это дело обернуть — уже вопрос типовых сценариев использования.