boost-msm相关内容

如何实现"BaseState"?可以在boost :: msm中访问状态机(SM)的后端

我想在状态之间以及整个SM和客户端代码(即SM外部的代码)之间共享数据和访问. 根据我在网上提出的内容,最好的方法是从基类继承所有状态. 添加基类并设置所有状态&从中继承的SM很简单,但是如何将处理程序作为此基类的成员添加到SM的后端/前端,又如何对其进行初始化? 该示例代码可以编译,但是在访问SubState中设置的fsmHandler时崩溃(SubState会通常无法访问根f ..
发布时间:2020-07-18 20:39:16 C/C++开发

Boost msm中的线程安全

我是新来提升元状态库的人.我正在构建一个必须使用msm的应用程序. 我的应用程序有两个线程,它们在其中使用相同的msm对象作为共享资源.现在,如果两个线程都在同一个msm对象上调用process_event,则msm将是线程安全的吗? 欢迎提出任何想法. 解决方案 引用克里斯托夫·亨利(Christophe Henry),当您在Boost.Users列表中询问时,他回答了这个问 ..
发布时间:2020-07-18 20:39:12 其他开发

Boost.MSM:通过联接伪状态退出正交区域

我打算将 boost.msm 与 UML 2.4“上层建筑" 建议 加入 伪状态(即第15.3.8节).在boost中,有一个 fork ,但是我找不到对应的join的任何实现. boost.msm中是否没有连接伪状态?我将如何在boost.msm中应用加入伪状态的概念? 解决方案 您可以使用一个计数器,该计数器在每次进入连接状态时都会增加.当此计数器等于正交区域数时,将激活联接状态 ..
发布时间:2020-07-18 20:39:10 C/C++开发

通过延迟的自我转换来增强MSM并行行为?

我正在使用Boost MSM(基本和函子前端),并试图实现以下状态机: 换句话说: 进入状态State1 进入状态A并执行action_A. 2秒钟后,打印“正在重试..."并重新执行状态A(即调用其输入操作).这会永远循环下去... 与2同时显示(即“并行"),进入状态B并执行action_B. 5秒钟后,打印“正在重试..."并重新执行状态B(即调用其进入操作).这会永远循环下去.. ..
发布时间:2020-05-24 21:06:23 C/C++开发

加强与事件和状态再利用MSM问题

我有我的转换表和事件问题。 让我解释一下假设计,说明了这个问题: 我有一个包含2个状态(S0和S1)和1 substatemachine(subm1)。状态机(myStateMachine)的 substatemachine subm1包含的初始状态'sub0'和还S1(在相同的状态中myStateMachine) 这是主要的转换表: S0-> S1事件“ES1” S0-> S2事件“E ..
发布时间:2016-08-12 19:08:21 C/C++开发

提升状态图与元状态机

显然提振,其中包括状态机的两个独立的库:状态图和元状态机(MSM)。该标语给出非常类似的描述: Boost.Statechart - 任意复杂的有限状态机可以轻松的可读性和可维护性的C ++ code实施 元状态机 - 为前pressive UML2有限状态机非常高的性能库 你知道什么是关键的区别,什么是考虑在两者之间选择? 解决方案 由于似乎有很大的兴趣,请允许我给我的(明 ..
发布时间:2016-08-12 17:48:57 C/C++开发