问题标签 [scxml]
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.
javascript - 如何将 C++ 函数注册到 scxml ecmascript 数据模型?
这个问题已弃用
此后,我将状态机转换为使用额外的状态来调用 C++ 函数,并sendEvent
在函数返回值时触发。
老问题如下:
我有一个用 Qt 设计的简单 SCXML 模型。它缺少一些功能,例如监听 pub/sub 队列,为此我想将一些函数注册到QScxmlStateMachine
实例中,以便我可以从状态机的 ECMAScript 部分调用它们。我看了看QScxmlEcmaScriptDataModel
,但我不明白如何修改评估函数来注册回调。是否可以将 C++ 函数和回调注册到 Qt scxml 状态机?如果是这样,怎么做?
附加信息:
我创建了一个名为 的类RegisterJs
,这是registerjs.h
这是registerjs.cpp
这就是我注册课程的方式:
这是 testflow.js 的内容:
这是来自 testflow.scxml 的相关内容:
但是没有显示信息消息。
python - PySide2 中 QScxmlStateMachine.connectToEvent 的奇怪行为
我正在尝试使用后端的 Python、前端的 QML 和用于创建状态机的 scxml 编写桌面应用程序。我正在使用 PySide2。我的目的是通过状态机来描述应用程序的逻辑。基于状态,QML 中的 UI 应该做出相应的反应。此外,后端应根据进入状态等执行方法。
我的项目包含 3 个文件:main.py
带有后端逻辑、ui.qml
带有 UI、stateMachine.scxml
带有状态机。
内容main.py
:
UI 非常简单:它仅包含 3 个向状态机(ui.qml
文件)提交事件的按钮:
状态机stateMachine.scxml
由 3 个状态组成:、s1
和转换、s2
、:s3
t1
t2
t3
这里的问题是一切正常。行my_state_machine.connectToEvent("t1", backend, "aev_slot()")
有一个错误:方法名称是ev_slot()
,不是aev_slot()
。但是,如果我将其更改为正确的名称,则会收到以下错误:
不知何故,方法名称中的第一个字母被忽略了。难道我做错了什么?我对 Qt 和 PySide2 很陌生。总的来说这是一个好方法吗?我正在使用 PySide2 5.11.1a1.dev1530708810518
c++ - 如何访问 QScxmlEcmaScriptDataModelPrivate 的成员?
我想将一些 C++ 类型注册到一个QScxmlStateMachine
带有 ecmascript 数据模型的实例中。我阅读了 scxml 的源代码,发现为了访问底层的 QJSEngine 实例,我必须使用类的assertEngine()
成员函数QScxmlEcmaScriptDataModelPrivate
。如何调用assertEngine()?如果这不可能,我如何将 C++ 函数注册到 QScxmlStateMachine?我以前的尝试是在这里。
recursion - scxml 事件中的循环调用
我有一个带有“调用”元素的 scxml 事件。当事件被调用时,这个调用元素会更新数据模型元素。我怎样才能使这种情况定期发生?例如,是否可以每秒定期调用此调用?或者也许每秒都过渡到事件?
后者的问题是,如果我在调用的 finalize 部分放置一个转换,调用它自己,它似乎不会多次调用调用部分。
c++ - Events handling in QtScxml state machine
I'm trying to use the QScxmlStateMachine
object, but unfortunately, I don't manage to trigger an event when the cond
attribute of my transition
is filled, whatever the value.
machine.scxml:
main.cpp:
test_scxml.pro:
When I remove this attribute, everything works fine.
Any idea?
java - 从 SCXML 文件生成有限状态机的所有转换
我已经用 SCXML 实现了状态机,我需要知道如何获得从头到尾的所有转换,以便为状态机制作测试用例
c# - 我们如何才能不调用子元素 f scxml(子元素)?
我正在使用 C# 为状态图 XML 制作解析器。正如我们所知,状态图 XML 状态和并行可能有 2 个子级,因此我制作了 2 个函数,一个用于状态,另一个用于并行。我如何才能在我的代码中调用 scxml 的子代而不是其子代的子代,它正在调用所有子代+孙代+grand_grand 等等。所以请有人解释一下如何只调用 scxml 的子代
我试图给它的孩子打电话,但它所有的孩子都来了
错误是在我的 xml 中,xml 的一个子项是状态,并且状态子项是并行的,因此它也调用子项的子项。xml代码是
c++ - 如何在 QScxmlStateMachine 中使用 QScxmlCppDataModel?
在我的项目中,我使用 C++,QScxmlCppDataModel,当我启动状态机时,总是出现错误,“没有数据模型实例化”,
我按照 Qt 文档说
1、在scxml文件中添加数据模型
2、新建数据模型子类
3、加载和启动状态机
错误图像
但仍然有一个错误:“没有数据模型实例化”,当我启动状态机时,有人知道如何修复它吗?谢谢你
javascript - 用于浏览器应用程序的 JavaScript 中的状态图 xml 处理器
我需要 Javascript 中的 State Chart XML 处理器,以便在浏览器上运行单玩家应用程序。有人知道,如果它存在吗?