Лучшие практики для реализации параллельного FSM с QT & amp; Переполнение стека

Я сталкиваюсь с проблемой переноса приложения C, состоящего из разных параллельных конечных автоматов (FSM), на новую платформу (на основе YOCTO / Linux).
Приложение C было разработано для работы на микроконтроллере на базе Cortex M3 с использованием Keil RTOS.

Реализация FSM была сделана наивным способом, где каждый FSM написан в собственной RTOS-задаче (в основном просто метод C). Внутри этих методов есть просто большой оператор switch, который определяет поведение на основе текущего состояния (переменная int). FSM взаимодействуют друг с другом, используя глобальные переменные, защищенные мьютексом или событиями.

Так как мы столкнулись с некоторыми аппаратными ограничениями, а также отсутствием требований в реальном времени, я планирую перенести программное обеспечение в систему на основе Yocto, используя C ++ и Qt, с поддержкой параллельных и подсостоящих машин. Кроме того, графический интерфейс должен быть частью системы, использующей QT QML.

Мой вопрос: существует ли какая-то лучшая практика для достижения желаемой функциональности? Может быть, существует какая-то генерация кода для FSM из диаграммы UML с использованием какого-либо инструмента (Enterprise Architect и т. Д.)?
Я читал о QT StateMachine Framework и поддержке SCXML, это будет лучший путь?

Я рад за любую помощь.

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]