Описание тега boost-msm

Boost.MetaStateMachine - это библиотека C++, позволяющая легко и быстро определять конечные автоматы с очень высокой производительностью.
5 ответов

Повышение Statechart против Meta State Machine

Очевидно, boost содержит две отдельные библиотеки для конечных автоматов: Statechart и Meta State Machine (MSM). Слоганы дают очень похожие описания: Boost.Statechart - произвольно сложные конечные автоматы могут быть реализованы в легко читаемом и …
1 ответ

Безопасность потоков в Boost msm

Я новичок в повышении мета-состояния библиотеки. Я строю одно приложение, где я должен использовать MSM. Мое приложение имеет два потока, где они используют один и тот же объект msm в качестве общих ресурсов. Будет ли msm потокобезопасным, если оба …
18 фев '13 в 07:57
1 ответ

Конечные автоматы без конструкторов по умолчанию в boost:msm

В документации для boost::msm приведен пример конечного автомата без конструктора по умолчанию. Я могу заставить его работать, где я прыгаю прямо из супер-SM в суб-SM. Но когда я прыгаю с одной подсистемы SM на другую подсистему SM, целевой SM созда…
18 июн '15 в 08:15
2 ответа

boost::msm - способ получить строковое представление (т. е. getName) состояния?

Я пытаюсь использовать библиотеку boost:: msm для создания конечного автомата в моем коде. Кто-нибудь знает способ получить строковое имя (не int ID) состояния? Я пытаюсь получить это для целей регистрации / отладки. Например, в функции no_transitio…
04 янв '13 в 23:38
1 ответ

Неисправность сегмента бесконечной петли Boost Meta State Machine

Я пытаюсь использовать Boost State Machine, но у меня возникла ошибка сегментации при работе моей машины в бесконечном цикле. По сути, у меня есть тот же пример в примере функтора буста, показанном ниже: Единственное отличие состоит в том, что тепер…
22 окт '16 в 01:42
1 ответ

Отсрочка событий от подчиненного автомата

В моем проекте есть конечный автомат, реализованный с использованием бета-мета-конечного автомата. Это основной конечный автомат, есть состояние (назовем его SubMachineEntry для простоты), которая представляет точку входа в подчиненный автомат: name…
21 дек '18 в 14:33
1 ответ

Ищу примеры полиморфизма в boost::msm basic state machine

Я новичок в C++, повысить и использовать конечные автоматы. Кто-нибудь знает пример полиморфного буста: машина состояний msm? Я попытался изменить действие перехода на виртуальное в представленном базовом примере, но компоновщик говорит: неопределен…
31 авг '13 в 11:47
1 ответ

Как выйти из автомата в иерархическом SM, который разбит на несколько файлов? (используя boost::MSM)

Есть хороший учебник, который объясняет, как мы можем использовать "exit-pseudo-state" для выхода из автомата, используя boost::MSM здесь. Но мне нужно разделить мой SM на несколько файлов, чтобы сохранить его управляемость, и вот здесь возникает пр…
04 июл '18 в 13:40
0 ответов

QStateMachine автоматические переходы или смешивание boost::msm с QObject

Я довольно новичок в C++ и Qt и хочу разработать систему управления машиной и моделировать процесс с помощью конечных автоматов. До сих пор я разделял свой код на разные объекты QObject, работающие в разных QThreads, которые взаимодействуют через ко…
10 окт '18 в 20:36
1 ответ

Boost msm Sub-Sub-Statemachine

У меня возникли проблемы с реализацией машины sub-sub-state с помощью boost::msm. Я пытаюсь минимизировать мой код здесь... test.cpp: struct SM_ : StateMachineA<SM_> {}; // Pick a back-end typedef boost::msm::back::state_machine<SM_> SM;…
22 фев '16 в 16:48
1 ответ

Как получить boost.msm для правильного изменения состояния при использовании обработчика сигнала для запуска событий?

Мой (boost.msm) конечный автомат выглядит как "откат" при использовании обработчиков сигналов для запуска событий. Однако, когда я использую прямые вызовы для запуска событий, конечный автомат ведет себя правильно. Я посмотрел в документации по буст…
1 ответ

Как повторно использовать код (Guard), определенный в подсистеме в родительском SM (используя boost-msm)?

Я определил охрану в подсистеме состояний, и теперь я хочу использовать точную логику / охрану в родительском SM (используя boost-msm). использование той же защиты в файле transition_table приводит к ошибке компиляции: неизвестное имя типа 'GuardSS'…
1 ответ

Повысьте проблемы с событиями и повторным использованием состояний.

У меня проблемы с таблицей переходов и событиями. Позвольте мне объяснить фальшивый дизайн, который иллюстрирует проблему: У меня есть конечный автомат (myStateMachine), содержащий 2 состояния (s0 и s1) и 1 подсостояние машины (subm1). подсистема su…
10 июл '12 в 20:37
1 ответ

Повысить МСМ, как определить переход между двумя подсостояниями?

Я использую библиотеку Boost 1.64.0 MSM для создания иерархического конечного автомата. Для проверки механизма перехода я реализую конечный автомат, как этот +------------------------------------------------+ | S | | +-------------+ +-------------+ …
04 апр '18 в 04:49
1 ответ

Как передать данные в текущее подсобное состояние мета-состояния (MSM)

В следующем примере, пока текущее выполнение все еще находится в substate1, я хочу непрерывно передавать данные в substate1, а затем отправлять Event3 или Event1 на основе данных. Похоже, что MSM поддерживает только отправку событий с помощью (proce…
08 сен '15 в 00:38
2 ответа

Почему boost::msm::front::state_machine может поддерживать до 10 состояний только для своей таблицы переходов?

Я пытаюсь настроить свой собственный конечный автомат с несколькими состояниями, средствами защиты и действиями, но когда число состояний в таблице переходов превышает 10 состояний, выскакивают обширные сообщения об ошибках, но я все еще не могу опр…
27 фев '18 в 09:48
1 ответ

Периодический конечный автомат с буст-диаграммой состояний

Я хочу реализовать конечный автомат, который будет периодически отслеживать некоторые данные о состоянии (состояние моей системы) и реагировать на них. Кажется, это что-то довольно простое для конечного автомата (у меня была эта проблема много раз р…
1 ответ

Повысить MSM, как я могу определить, произошел ли переход?

Когда я запускаю process_event("eventname"), как я могу проверить, произошел ли переход состояния или был вызван no_transition? По сути, я хотел бы, чтобы класс, который запускает / вызывает process_event ("имя события"), мог определить, произошел л…
13 июн '12 в 03:57
0 ответов

Есть ли простой способ получить количество переходов в конечном компьютере, содержащем вспомогательный конечный автомат?

В настоящее время, мы используем boost msm для создания сложного конечного автомата с несколькими подсостоящими машинами, как показано в следующем примере в документации boost msm. С помощью stm player основной конечный автомат и играющий вспомогате…
17 янв '18 в 09:06
1 ответ

С помощью boost::msm eUML, если я даю attribute_ << конечному автомату или состоянию, как я (пере) устанавливаю их?

Если я добавлю атрибуты к событию, я знаю, что затем смогу использовать имя события как функцию... BOOST_MSM_EUML_EVENT_WITH_ATTRIBUTES(*someEvent*, *someAttributeList*) someStateMachine.process_event( someEvent ( valueOfSomeAttribute1, // sets the …
29 авг '12 в 00:56