Nikolay_Po (25.04.2024 18:16, просмотров: 80) ответил Andrew_Q на Практически в всех проектах использую подобное. Одна (или
несколько) задача является автоматом состояний, управляемым
событиями. Вся логика работы автомата (режимы, состояния, эвенты,
переходы, действия) описана в таблицах. Неизменяемый движек ждет
события из очереди и парсит таблицы на предмет совпадения.
Остальные задачи накидывают события в очередь. Все под RTOS.
Принцип работы автомата здесь описан. Переписать отправку и
получение события, ну под себя попилить.
У меня автомат верхнего уровня всего из четырёх-пяти состояний. По
сути, режимы работы. И от этих состояний зависит, как отработают
другие автоматы и в каких режимах. Ну и некоторые из автоматов
нижнего уровня, могут получать команды от линий связи и менять
режим. Нельзя сказать, что есть централизованное управление. Хотя,
пожалуй, как управление можно выделить переключатель команд в
обработчике команд, полученных со стыка с контроллером выше по
системе.