可通信状态机框架(CSM)

使用AI更新文档中!请谨慎使用

基于JKI状态机(JKISM)的LabVIEW应用框架,扩展了关键词以描述模块之间的消息通信

快速开始 常见问题解答 View on GitHub


Image Image License GitHub all releases Build_VIPM_Library Check_Broken_VIs

可通信状态机(CSM)简介

可通信状态机(CSM)是一个基于JKI状态机(JKISM)的LabVIEW应用框架。它遵循 JKISM 的模式,扩展了关键词以描述模块之间的消息通信,包括同步消息、异步消息、状态订阅/取消订阅等概念-这些是创建可重用代码模块所必需的要素。请访问CSM Wiki页面了解更多信息: https://nevstop-lab.github.io/CSM-Wiki/

CSM Async Call

📓 如果想了解更多详细信息,请阅读 wiki 的技术细节章节

CSM 的特点

独特之处

CSM 在设计上有以下五大独特之处:

  • :anchor: 纯文本的流程控制 - 以字符串描述状态和消息,代码逻辑直观可读,支持注释、宏状态和外部脚本控制
  • :anchor: 隐形的”通讯总线” - 模块通过虚拟通讯总线交换消息,天然实现解耦,支持同步、异步、广播/订阅等多种通讯模式
  • :anchor: VI 即模块 - CSM 模块就是一个 VI,以子 VI 方式调用,可直接使用断点、探针、高亮执行等熟悉的调试手段
  • :anchor: 内置超级详细的检查接口 - 内置全局日志系统和丰富的调试工具,支持非侵入式调试和远程运行状态分析
  • :anchor: 拓展式的设计 - 通过插件机制扩展参数类型,通过订阅关系灵活扩展模块间协作

框架优势

  • :anchor: 完善且独特的 LabVIEW 应用框架,可与 DQMH、SMO、Actor Framework 互补或替换
  • :anchor: 虚拟总线通讯方式,天然支持插件化方案,新增功能模块无需修改已有代码
  • :anchor: 纯文本描述流程,是 LabVIEW 实现自动化测试任务脚本化的最佳方案
  • :anchor: 适合不同经验的工程师协同工作,新手与老手均可快速参与并行开发
  • :anchor: 同步消息、异步消息均支持响应,并会返回执行时发生的错误
  • :anchor: 全开源项目(MIT License),提供中文技术支持和持续更新迭代

高级特性

  • :anchor: 内置的工作者模式(Worker Mode),可实现任务并发和公平队列处理
  • :anchor: 内置的责任链模式(Chain Mode),能够很简单的实现责任链
  • :anchor: 完善的消息订阅机制,通过文本语句控制订阅关系,可动态创建和取消
  • :anchor: 模块接口清晰,支持模块独立测试,无需等待其他模块完成
  • :anchor: 高度可复用的模块设计,适合跨项目使用

📓 说明:CSM 的调试工具,还有很多在开发中,敬请期待

应用场景

CSM 框架可解决该类项目中的常见挑战:

  • 模块可替换 - 采集模块、算法模块等功能模块接口清晰,在算法不明确或硬件未到位时,可先用模拟模块开发,后期无缝替换真实模块
  • 并行团队开发 - 模块之间完全解耦,不同经验的工程师可并行开发各自的模块,无需等待依赖模块完成
  • 插件化系统扩展 - 虚拟总线设计使增加 TCP 通讯、数据备份等新功能模块无需修改现有代码,天然支持插件化架构
  • 自动化测试脚本化 - 纯文本消息和状态脚本,适合 ATE 自动化测试平台的任务脚本化控制需求
  • 远程控制与运维 - 内置详细日志系统,适合部署到偏远地区后需要远程调试和长期技术支持的应用
  • 多框架对比选型 - 相比 DQMH、SMO、Actor Framework,CSM 具有更低的学习曲线,适合不同规模的团队和项目

下载

🥇 推荐:通过 VIPM 应用搜索 CSM 获取 CSM 的最新发布版本,然后点击安装

vipm-search-csm

📓 更多信息,请参考页面 下载

开源协议

CSM 采用 MIT 开源协议,您可以在 LICENSE 中查看 MIT 开源协议的详细信息。

参与贡献

欢迎参与 CSM 项目!您可以通过提交 Issue、参与讨论、贡献代码或完善 Wiki 文档等方式参与贡献。详细说明请参阅 贡献指南

CSM公开演讲资料

更多 CSM 架构设计、应用场景和实例分析,请参考 csm-keynotes-collection 仓库中的公开演讲资料。


本站点使用了以下的开源项目或服务