我目前正在研究 Python 的习语和库,以帮助我进行控制任务的状态机设计。
我在另一个 SO 问题中找到了很好的建议:Python state-machine design。在答案中,建议使用PySCXML来解释状态图 XML文件。
我关心 PySCXML 自述文件中的以下句子:
您可以使用 StateMachine 实例的 send 方法将事件发送到您的状态机 [...] 当然,您必须从不同的线程发送
这是否意味着我不能让状态机处理同步运行?
当我想象在我的控制任务中使用 PySCXML 时:
- 读入输入
- 将输入转换为状态机域中的抽象输入变量
- 将变量发送到 PySCXML 状态机实例
- PySCXML 状态机实例计算新状态,并设置抽象输出变量
- 将抽象输出变量转换为输出
- 写出输出
- 睡到下一个
(如果 PySCXML 完全可以做到这一点。这将允许我将整个排序逻辑完全分离到一个 SCXML 文件中。)我需要按顺序处理所有步骤,尤其是 4. 不允许异步运行。