可通信状态机框架(CSM)
使用AI更新文档中!请谨慎使用
基于JKI状态机(JKISM)的LabVIEW应用框架,扩展了关键词以描述模块之间的消息通信
可通信状态机(CSM)简介
可通信状态机(CSM)是一个基于JKI状态机(JKISM)的LabVIEW应用框架。它遵循 JKISM 的模式,扩展了关键词以描述模块之间的消息通信,包括同步消息、异步消息、状态订阅/取消订阅等概念-这些是创建可重用代码模块所必需的要素。请访问CSM Wiki页面了解更多信息: https://nevstop-lab.github.io/CSM-Wiki/
- 关于 JKI State Machine(JKISM) 更多信息, 请访问: http://jki.net/state-machine/
- 关于 Communicable State Machine(CSM) 更多信息, 请访问: https://github.com/NEVSTOP-LAB

📓 如果想了解更多详细信息,请阅读 wiki 的技术细节章节
CSM 的特点
独特之处
CSM 在设计上有以下五大独特之处:
-
纯文本的流程控制 - 以字符串描述状态和消息,代码逻辑直观可读,支持注释、宏状态和外部脚本控制 -
隐形的”通讯总线” - 模块通过虚拟通讯总线交换消息,天然实现解耦,支持同步、异步、广播/订阅等多种通讯模式 -
VI 即模块 - CSM 模块就是一个 VI,以子 VI 方式调用,可直接使用断点、探针、高亮执行等熟悉的调试手段 -
内置超级详细的检查接口 - 内置全局日志系统和丰富的调试工具,支持非侵入式调试和远程运行状态分析 -
拓展式的设计 - 通过插件机制扩展参数类型,通过订阅关系灵活扩展模块间协作
框架优势
-
完善且独特的 LabVIEW 应用框架,可与 DQMH、SMO、Actor Framework 互补或替换 -
虚拟总线通讯方式,天然支持插件化方案,新增功能模块无需修改已有代码 -
纯文本描述流程,是 LabVIEW 实现自动化测试任务脚本化的最佳方案 -
适合不同经验的工程师协同工作,新手与老手均可快速参与并行开发 -
同步消息、异步消息均支持响应,并会返回执行时发生的错误 -
全开源项目(MIT License),提供中文技术支持和持续更新迭代
高级特性
-
内置的工作者模式(Worker Mode),可实现任务并发和公平队列处理 -
内置的责任链模式(Chain Mode),能够很简单的实现责任链 -
完善的消息订阅机制,通过文本语句控制订阅关系,可动态创建和取消 -
模块接口清晰,支持模块独立测试,无需等待其他模块完成 -
高度可复用的模块设计,适合跨项目使用
📓 说明:CSM 的调试工具,还有很多在开发中,敬请期待
应用场景
CSM 框架可解决该类项目中的常见挑战:
- 模块可替换 - 采集模块、算法模块等功能模块接口清晰,在算法不明确或硬件未到位时,可先用模拟模块开发,后期无缝替换真实模块
- 并行团队开发 - 模块之间完全解耦,不同经验的工程师可并行开发各自的模块,无需等待依赖模块完成
- 插件化系统扩展 - 虚拟总线设计使增加 TCP 通讯、数据备份等新功能模块无需修改现有代码,天然支持插件化架构
- 自动化测试脚本化 - 纯文本消息和状态脚本,适合 ATE 自动化测试平台的任务脚本化控制需求
- 远程控制与运维 - 内置详细日志系统,适合部署到偏远地区后需要远程调试和长期技术支持的应用
- 多框架对比选型 - 相比 DQMH、SMO、Actor Framework,CSM 具有更低的学习曲线,适合不同规模的团队和项目
下载
🥇 推荐:通过 VIPM 应用搜索 CSM 获取 CSM 的最新发布版本,然后点击安装

📓 更多信息,请参考页面 下载。
开源协议
CSM 采用 MIT 开源协议,您可以在 LICENSE 中查看 MIT 开源协议的详细信息。
参与贡献
欢迎参与 CSM 项目!您可以通过提交 Issue、参与讨论、贡献代码或完善 Wiki 文档等方式参与贡献。详细说明请参阅 贡献指南。
CSM公开演讲资料
更多 CSM 架构设计、应用场景和实例分析,请参考 csm-keynotes-collection 仓库中的公开演讲资料。
本站点使用了以下的开源项目或服务:
- 使用 visual-studio-code 作为编辑器
- 使用 copilot 作为提示工具,并补充部分内容
- 使用 markdownlint 用于 markdown 文件的语法检查
- 通过 GitHub Pages 服务发布页面
- 使用 Jekyll 静态网站生成器
- 使用 just-the-docs/just-the-docs 主题