问题标签 [statechart]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
qt - Qt 状态图:如何调用已编译的状态机?
阅读了SCXML 调用示例后,我问自己如果要调用使用qscxmlc
. 我注意到可以通过使用标签src
中的属性来调用另一个状态机。invoke
我通过设置src
SCXML 文件的文件系统路径来完成这项工作。但是,我无法弄清楚如何在 Qt 资源中引用 SCXML 文件(使用qrc:///...
不起作用)或如何调用已编译的状态机。
更新
我在 Qt 的文档中找不到任何内容,所以我查看了源代码(5.8 版):
加载qscxmlcompiler.cpp
在QScxmlCompilerPrivate::DefaultLoader::load(..)
(第 2447 行)中实现:
我注意到它使用 QUrl,因此应该能够使用我尝试使用的资源:/mystatemachinefile.scxml
而不是rsc://mystatemachinefile.scxm
它并且它有效:) 但是这应该添加到文档恕我直言。
我仍然想知道如果您想在使用状态图之前对其进行编译,应该如何实现它们,但我想这目前是不可能的?
database - UML 状态图 + 导航栏 + 多个退出操作
希望一切顺利!我正在为网站制作 UML 状态图。如果你有一个导航栏,你会/可以有代表每个链接的多个退出操作吗?
return - 如何在 UML 状态机中描述返回语句?
是否可以将返回语句显示为 UML 状态图中的转换描述?
是否有任何定义的语法或约定?
示例: int doSomething()
状态 1 --- 返回 doSomething() ---> 状态 2
我没有找到任何适合该主题的内容,如果要在其中编写 OMG UML 规范,我也没有资格阅读。我发现的唯一东西就是这个
作者使用Methode 状态机来跟踪方法的状态。但我想知道如何将其编写为一个动作,例如使用具有返回值的函数而不是跟踪方法所处的特定状态。
uml - 在 UML 状态图中作为状态的动作
在此视频中,可以看到 UML 状态图的一部分:
但是,“提供资金”状态是一种行动。这有什么意义?
状态是否有可能成为动作(动词)?
“提供资金”行动不应该是一个过渡吗?
下面这样的事情不会更有意义吗?
c++ - 在状态机中提升状态图存储/检索数据不起作用
我想在状态之间共享一些东西,例如模式变量。我将它保存到状态机。但是,我什至无法访问它的值。
上面的 ctor 从不打印值。
上面的分配也失败了。有谁知道如何让它工作?
或者也许在状态之间共享变量的最佳方式是什么?
或者如果 boost::statechart 太糟糕而无法使用?Boost 的文档在解释其 API 时是如此无用。
agent - 如何在 Anylogic 中同时运行代理?
如何在 Anylogic 中同时运行代理?当我在 Anylogic 中定义一些代理然后运行程序时,所有代理都没有同时运行。这意味着所有代理都保持在第一个状态,然后其中一个进入某个状态,其他人等到轮到他们。我的问题有解决方案吗?坦克。
gis - Anylogic CompareRuns 不执行主代理
我正在研究基于代理的模型,现在我正在尝试使用 CompareRuns。
当我执行实验时,它应该多次模拟模型,每次模拟后,应该填充一个样本数据集。Main 代理中还有一个状态图,每个状态都有一个traceln("...")
. 所以在通过每个状态之后,必须打印一些东西。
问题是打印命令都没有返回任何内容,我存储数据的数据集也没有返回零。
PS:我的模型中还有一个 GIS 地图。这可能是 Anylogic 行为不端的原因吗?
statechart - Xstate:导致相同状态的不同动作和守卫
我正在用 xstate 库编写状态图。
状态图代表一个中等复杂的 UI。
我有几个平行状态,但对于这个问题,我们只考虑两个:
SelectionStatus
, 表示选择项,区分子状态SelectedNone
, SelectedOne
, SelectedMany
.
Operation
,表示当前正在进行的操作。它有一个名为Idle
(当然还有其他一些)的子状态。
有一些事件会触发循环回到Idle
子状态的动作,而不是去另一个状态。让我们将它们视为即时操作,例如removeSelected
仅删除所选项目的操作(这就是问题的重点)。
removeSelected
如果选择仅限于单个项目(实际上是树中的一个节点)或多个(树的一个分支),我将向事件添加条件以执行不同的操作。
用于描述事件的动作和条件的 xstate 语法将是:
问题是我Idle
在同一对象嵌套级别编写了两个键,这是无效的。
我已经考虑重组状态图以将两个操作分支作为选择分支的子状态,但这似乎比问题更糟糕。
我也考虑过使用像RemovingOne
and这样的中间虚拟状态,RemovingMany
它只会触发返回到 的转换Idle
,但我对它不太满意。
我可以通过删除保护条件来解决这个问题,在通用removeOneOrMany
动作处理程序中进行测试,但是我会丢失状态图中不同处理的信息。
有人有类似的问题,可以提供一些建议吗?
(注:这里指的是当前版本的xstate,也就是3.1.1,3.2差不多了,不知道能不能更容易处理这种情况)
谢谢!
graph-theory - Is a statechart / finite state machine suitable for modelling a questionnaire
I'd like model the above questionnaire which I believe is a directed acyclic graph.
The two libraries I've been looking at are:
A couple of the issues I have are:
The questionnaire relies on previous states e.g. the answers to previous questions are used to transition to another state (question). Am I right in thinking that "external state" could solve this problem?
If I'm at Q6 and I want to transition to the previous question, then depending on the previous answers, this could be either Q1, Q4, or Q5. I think I could use a stack to push each state as the questionnaire progresses and then pop to get back to a previous state.
Does this all sound feasible or is there a better way to model this problem?