问题标签 [apache-commons-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.

0 投票
2 回答
536 浏览

java - Commons SCXML - 强制跳转到给定状态

我正在使用Apache Commons SCXML,我想知道是否可以告诉状态机 (SCXMLExecutor) 跳转到给定状态。

我不能使用该initialstate属性,因为我希望状态机恢复(即从电源故障中恢复),而我唯一拥有的就是最后一个状态。这就是为什么我想告诉状态机直接跳转到它。

0 投票
4 回答
1410 浏览

java - 状态机中的动态目标

在使用 SCXML 制作的状态机中,有没有办法为转换设置动态目标值?

我的意思是,假设我有一个名为“obj”的对象,它已被设置为 scxml 的数据模型。因此可以在其上设置条件(如果对象中有一个名为 checkCondition 的属性),例如:

cond="obj.checkCondition"

我在 obj 中有另一个属性,称为 nextTarget。我想在这个转换中设置目标,从对象中读取它的值(因为它在条件中完成)。

有什么语法可以做到这一点吗?

谢谢。

0 投票
1 回答
353 浏览

java - Commons SCXML 问题

我一直在考虑 Commons SCXML 的实现。看起来很全面,但我有一些不清楚的地方。

在我看到的所有示例中,状态机的状态基本上是扩展AbstractStateMachine类的类的方法。

对于小型状态图,这是可以的,但对于有很多状态的机器(像在 BCSM 中),这是一个矫枉过正的做法。

默认情况下是否有可能将状态表示为类(又名 StateMachine 是状态的组合)?

0 投票
1 回答
1181 浏览

java - 在 scxml 中引发事件的问题

我在使用以下 scxml 代码时遇到问题:

它工作正常,但是当我添加了 onentry 元素时,处理器会说以下内容:

似乎 raise 不被理解。我试图用“发送”元素来改变“提高”元素,我得到了类似的日志警告。谁能告诉我可能出了什么问题?

谢谢。

更新

我试图改变架构,避免像这样嵌入 if 元素:

但它也给出了以下错误:

0 投票
2 回答
5557 浏览

java - Apache Commons SCXML - 找不到 JexlContext

我是 SCXML 的新手,我什至无法启动最简单的应用程序。当我尝试启动它时,出现以下异常。但是我commons-scxml-0.9.jar在类路径上有那个类的库。有任何想法吗?

这是代码:

Main class

Event

StateMachineImpl

state-machine-cfg.xml

编辑 - 解决方案: 我必须添加额外的依赖项(我认为它们会由 Maven 自动加载)。

pom.xml dependencies

0 投票
2 回答
4037 浏览

java - Apache Commons SCXML 有什么替代品吗?

我正在寻找一个好的通用状态机,到目前为止我已经找到了 SCXML。它使用起来非常简单(我的意思是配置),但源代码过时 - 没有类型安全,所有集合都是原始类型。我不必说要找到这些集合中实际存储的内容有多么困难。那么有没有现代的替代品呢?

0 投票
1 回答
957 浏览

android - 用于建模表示多模式用户界面的状态图的可视化编程工具

是否有任何可视化编程工具来建模表示多模式用户界面的状态图?我想构建一个 android 和 windows metro 应用程序,它接收来自触摸和语音的输入。该应用程序通过问卷引导用户在医疗保健场景中进行筛查。用户可以在文本框中输入文本或通过触摸按钮或说话来生成事件。

我发现状态图用于模拟反应系统行为,例如最初由其创建者 David Harel 使用的航空电子系统,其任务是为以色列飞机工业公司制造的 LAVI 战斗机设计软件;IAI 清晰准确地指定飞机控制行为。他想以一种直观清晰且数学严谨的方式来指定行为。从那时起,状态图就从单纯的规范语言发展成为可执行、可编译和可分析的语言。

由于我要构建的应用程序具有复杂的医疗保健逻辑,并且由屏幕流的层次结构组成,该层次结构会根据交互用户的输入发生变化,将操作发送到外部 Web 服务并从外部 Web 服务接收异步事件——所有这些都在用户界面中保持响应性,我想到了用状态图对应用程序逻辑进行建模。但是,我找不到可以让我分别编写应用程序业务逻辑和 UI(不仅仅是屏幕界面组件)的编程工具。例如,如果我想在 html5/ mxml中表示 UI和在scxml中的业务逻辑。

我找到了几个工具,但没有一个与我的应用程序要求相对应。主要是没有这样一个应用程序的设计示例,将状态图中的行为和某种形式的标记语言的 UI 表示明确分离。我的发现:

0 投票
0 回答
732 浏览

java - SCXML,我不能在事件中使用 fireEvent

我正在使用 Apache Commons SCXML 创建 FSM。使用来自 Apache 的示例 StopWatch,我创建了一个 FSM。

SCXML:

主程序:在主程序中,想法是不触发任何事件。

密克罗尼西亚联邦:

我的问题是,为什么在 FSM 类中,我无法执行该方法:

但是如果我在主程序中执行方法,我没有任何问题。

任何想法。

当前控制台:

0 投票
1 回答
302 浏览

java - 运行 Apache SCXML 引擎时出现异常。参数类型不匹配 -

我正在使用 apache commons scxml 引擎运行微波炉 scxml 。我有扩展 AbstarctStateMachine 的自定义类

现在当创建这个类的一个实例时,我得到一个异常

我知道这与我的数据模型有关,因为数据模型不被视为 XML 节点,

0 投票
1 回答
294 浏览

android - Android 找不到类 'org.apache.commons.scxml.env.jexl.JexlContext'

我正在使用 apache commons SCXML 来定义我的 Android 应用程序的状态机。在我的 Android Studio 项目中,我在 build.gradle 文件的依赖项部分添加了以下内容:

此问题的答案不同,我无法添加 xalan,因为它试图覆盖 Android 系统文件,从而导致此错误。然后我单击“使用 Gradle 文件同步项目”按钮,commons-scxml 和 commons-jexl 文件显示在我项目的“外部依赖项”部分。

但是,当我运行我的应用程序时,我仍然收到此错误: