v2025.February: 维护更新与DQMH模板

【v2025.February 精简公告】CSM v2025.February 已发布并推送至 VIPM。本期亮点:新增 DQMH 风格模板将 UI 处理器移出 CSM 消息循环、系统级模块自动从 List Module 中排除、新增多项开发辅助工具,以及 INI 插件重构所有示例。

2025 年 2 月的 CSM 更新已经推送到 VIPM。Communicable State Machine Framework - Package List. 如果你觉得 CSM 对你有帮助,请在 GitHub/Gitee 上 star 对应的仓库!也欢迎有经验的 LabVIEW 高手参与到 CSM 的开发中来。

版本亮点

  • 新增 DQMH 风格模板(#386),将 UI 事件处理器从 CSM 消息循环中独立出来,结构更清晰。
  • . 开头的模块名现自动识别为系统级,不再出现在 CSM - List Module.vi 的结果中(#379)。
  • CSM - Forward States to CSM.vi 修复后可正确触发用户事件,打破事件结构等待(#387)。
  • 新增多项开发工具:Make Bent Wire Straight.vi、Go to State RCM、JKISM State Editor 修复工具等(#322#381#374)。
  • INI 插件重构全部示例(#59),同时修复数字后跟反斜杠被误解析为 ASCII 码的问题(#60)。

按仓库变更

1. Communicable-State-Machine

功能改动(重点)

核心(Core)

  • [add] #379. 开头的模块名识别为系统级,CSM - List Module.vi 默认将其排除。
  • [update] 移除 Parse State Queue++.vi 的 inline 选项,减少 CSM 模块加载时间。
  • [update] #288 CSM 现在在处理 Macro: Exit 之前先停止循环。
  • [fix] #387 CSM - Forward States to CSM.vi 现在会生成 notify 用户事件,以打破事件结构的等待状态。

模板(Template)

  • [add] #386 新增 DQMH 风格模板,将 UI 处理器移出 CSM 消息循环。

工具(Tool)

  • [add] #322 在 CSMHelper 中新增 Make Bent Wire Straight.vi
  • [add] #381 新增工具,用于修复 CSM 的 JKISM State Editor RCM 条目。
  • [add] 新增工具,用于在函数根调板中创建 CSM 调板。
  • [add] #374 为字符串常量新增 “Go to State” RCM。
  • [update] 新增 Exit 工具栏按钮,向选定 CSM 模块发送 Macro: Exit
  • [update] #384 适配 jkism 2024 的变更,修复 State Editor RCM 相关问题。

CSM Loop Support

  • [update] 将所有 API 改为子程序(subroutine)。
  • [obsolete] #288 CSMLS - Add Exit State(s) with Loop Check.vi 已不再需要,标记为废弃。

文档与图标(简述)

  • [fix] 小幅文档修复(#380#383)。
  • [update] 更新版权年份(#382)。
  • [update] 改进安装窗口并置于最顶层。
  • [add] 新增依赖检查、VI 路径长度检查、CSM RCM 依赖验证等测试用例(#373)。

2. CSM-INI-Static-Variable-Support

功能改动(重点)

  • [important] #59 重构全部示例,结构更清晰。
  • [update] #55 调整部分路径,避免路径过长。
  • [fix] #60 修复数字后跟反斜杠被错误解析为 ASCII 码的问题。

3. CSM-TCP-Router-App

功能改动(重点)

  • [add] 为客户端新增 IP 地址/端口输入对话框。
  • [update] 更新连接信息显示。
  • [update] 更新 Server/Client VI 图标。
  • [fix] 输入 bye 后,由于服务端主动关闭连接,客户端现在会正确退出。
  • [fix] 小幅修复(#5)。

4. 其他仓库

  • CSM-API-String-Arguments-Support:本期无 v2025.Febrary 发布,已忽略。
  • CSM-MassData-Parameter-Support:本期无 v2025.Febrary 发布,已忽略。
  • CSM-Continuous-Meausrement-and-Logging:本期无 v2025.Febrary 发布,已忽略。

按功能变更

1. 功能新增

  • 新增 DQMH 风格 CSM 模板,UI 处理器独立于 CSM 消息循环(#386)。
  • 新增 Make Bent Wire Straight.vi 开发辅助工具(#322)。
  • 新增 “Go to State” 字符串常量 RCM(#374)。
  • 新增 JKISM State Editor RCM 修复工具(#381)。
  • 新增在函数根调板创建 CSM 调板的工具。
  • TCP Router 客户端新增 IP/端口输入对话框。

2. 改进优化

  • 系统级模块(以 . 开头)自动排除于模块列表(#379)。
  • CSM 退出流程改进:先停止循环再处理 Macro: Exit#288)。
  • CSM Loop Support 全部 API 改为子程序,降低调用开销。
  • INI 插件全部示例重构(#59)。

3. 问题修复

  • 修复 CSM - Forward States to CSM.vi 无法打破事件结构等待的问题(#387)。
  • 修复 INI 中数字后跟反斜杠被错误解析为 ASCII 码的问题(#60)。
  • 修复 jkism 2024 适配导致的 State Editor RCM 问题(#384)。

破坏性变更

  • CSMLS - Add Exit State(s) with Loop Check.vi 已标记为废弃(#288)。如果项目中直接使用了该 VI,请在升级后评估是否需要迁移。
  • 其余本期无明显破坏性变更。

注意:本次 Core 仓库的 Git tag 为 v2025.Febrary(原始拼写有误,与文件名中的 February 不同),Release 链接请参见下方完整变更来源。

升级指引

  1. 直接通过 VIPM 更新即可完成本次升级。
  2. 使用 CSMLS - Add Exit State(s) with Loop Check.vi 的项目,请检查是否可移除对该废弃 VI 的依赖。
  3. INI 插件示例已重构,如有参考旧示例的代码,建议对照新示例验证逻辑。

完整变更来源

Release

结尾

欢迎大家使用并提出反馈!如有问题,请在 GitHub 上提交 Issue,或加入社区讨论。