v2025.Q4: PPL支持与文档更新

【v2025.Q4 精简公告】CSM v2025.Q4 已发布并推送至 VIPM。本期为 2025 年度收官版本,亮点包括:lvlibp/PPL 支持正式完善、CSM Data Core 调试信息增强、全局日志新增消息类型与调用链展示、脚本 VI 扩展能力、新增多项管理 API,以及各插件文档与稳定性全面提升。

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

版本亮点

  • lvlibp/PPL 支持正式完善#502#499):修复异步运行时 lvlibp 崩溃问题,全系插件同步完善 PPL 支持。
  • CSM Data Core 调试增强#588):新增 Current StateRemaining States 字段,调试时可直接看到模块当前状态与剩余状态队列。
  • 全局日志能力扩展#596#561#520):新增消息日志类型、Logger 退出日志及剩余日志数量统计、模块创建时的调用链信息。
  • 脚本 VI 增强CSM - Run Script.vi 支持 => VariableName 赋值语法和 wait 指令,脚本编写能力大幅扩展。
  • 新增多项关键 API#543#552):CSM - Resolve Module Name.vi 支持从 worker/chain 节点名解析模块名,CSM - Drop Broadcast Registry.vi 支持清除所有注册关系。
  • Macro: Exit 行为强化#555):开始处理 Macro: Exit 后不再处理任何消息,退出流程更确定。

按仓库变更

1. Communicable-State-Machine

功能改动(重点)

核心(Core)

  • [feature] #502 支持模块打包为 lvlibp(正式完善)。
  • [add] #588 在 CSM Data Core 中增加 Current StateRemaining States,便于调试。
  • [update] #504 不再使用全局变量作为变更标志。
  • [update] #555 CSM 开始处理 Macro: Exit 状态后,不再处理任何消息。
  • [update] #584 为 CSM 错误添加更详细的信息。
  • [fix] #499 修复 CSM 模块打包为 lvlibp 后异步运行时的关键错误。

参数(Argument)

  • [update] #545 ErrStr 现在支持 Warning,Warning 被忽略并转换为空字符串。
  • [update] #501 关键错误改用 ErrString 表示。
  • [update] #498 SafeString 现在以 <SafeStr> 参数类型前缀开头。

全局日志(Global Log)

  • [add] #596 新增消息日志类型(Message Log Type)。
  • [add] #561 新增 <Logger Thread Exit> 日志并显示剩余日志数量。
  • [add] #520 在”模块创建”日志中展示 CSM 模块的调用链信息。

API

  • [add] 支持 CSM - Run Script.vi 中的 => VariableName 语法,可在脚本中赋值给变量。
  • [add] 在 CSM - Run Script.vi 中新增 wait 指令。
  • [add] #543 新增 CSM - Resolve Module Name.vi,可从 worker/chain 节点名解析出模块名。
  • [add] #552 新增 CSM - Drop Broadcast Registry.vi,清除所有广播注册关系。
  • [fix] #549 顶层 VI 重启后重置 CSM - Module VI Reference.vi 的缓存。
  • [fix] #548 修复 CSM - Remove Module in Broadcast Registry.vi

属性(Attribute)

  • [fix] #535 修复 CSM Attribute TagDVR 缓存错误。
  • [fix] #533 CSM Attribute 现在大小写不敏感。

高级模式(Advance Modes)

  • [fix] #540 修复 Chain 模式默认不允许使用 VI Reference 的问题。
  • [fix] #560#556 Management API 现在可以在 Worker 模式和 Chain 模式下正常工作。
  • [fix] #557 修复 chain/worker 模式的内部注册规则删除问题。

调试工具(Debug Tools)

  • [add] 新增示例浏览器工具(Example Browser Tool)。
  • [add] #496 Debug Console 新增脚本运行功能。
  • [update] #461 Logviewer 改用全局日志事件队列。

文档与图标(简述)

  • 新增更多测试用例,覆盖 CSM 全部特性。
  • 调板与文档持续完善。

2. CSM-API-String-Arguments-Support

功能改动(重点)

  • [feature] #95 支持 lvlibp。
  • [update] #99 Query Data as API String Arguments.vim 支持叶节点名称搜索。
  • [fix] #98 不检查 (),避免相关 bug。
  • [fix] #100 Enum 类型中,空字符串现在会转换为参考枚举值。
  • [fix] #102 Cluster 类型在 Data To API String Arguments.vi 的无 tag 模式中,所有元素均会被使用。
  • [fix] #104 若 API String 与任何枚举选项均不匹配,现在会抛出错误。

3. CSM-INI-Static-Variable-Support

功能改动(重点)

  • [update] 更新 INIViewer 工具。
  • [fix] #87 提升 Sync to File.vi 的性能。
  • [fix] #92 修复打包为 exe 后的路径问题。

4. CSM-MassData-Parameter-Support

功能改动(重点)

  • [feature] #26 MassData 支持 lvlibp(正式完善)。
  • [update] 文档更新。

5. CSM-TCP-Router-App

功能改动(重点)

  • 同步 CSM Core 版本升级,与核心变更保持一致。

6. CSM-Continuous-Meausrement-and-Logging

功能改动(重点)

  • [update] UI 模块与说明文字小幅更新。
  • [update] #40Macro: Exit 中使用 List Module API。

按功能变更

1. 功能新增

  • CSM Data Core 新增 Current State / Remaining States 调试字段(#588)。
  • 全局日志新增消息类型、Logger 退出日志与调用链信息(#596#561#520)。
  • 脚本 VI 支持 => VariableName 赋值语法和 wait 指令。
  • 新增 CSM - Resolve Module Name.vi#543)和 CSM - Drop Broadcast Registry.vi#552)。
  • Debug Console 新增脚本运行功能(#496)。
  • 新增示例浏览器工具(Example Browser Tool)。
  • API String Query Data as API String Arguments.vim 支持叶节点名称搜索(#99)。

2. 改进优化

  • Macro: Exit 处理期间不再接收任何外部消息(#555)。
  • CSM 错误信息更详细(#584)。
  • SafeString 参数类型现以 <SafeStr> 前缀开头(#498)。
  • ErrStr 支持 Warning 并转换为空字符串(#545)。
  • Logviewer 迁移至全局日志事件队列(#461)。
  • INI Sync to File.vi 性能持续提升(#87)。

3. 问题修复

  • 修复 Chain 模式默认不允许 VI Reference 的问题(#540)。
  • 修复 Management API 在 Worker/Chain 模式下不可用的问题(#560#556)。
  • 修复 CSM Attribute 大小写敏感问题(#533)。
  • 修复 CSM Attribute TagDVR 缓存错误(#535)。
  • 修复顶层 VI 重启后 VI Reference 缓存未清除的问题(#549)。
  • 修复 CSM - Remove Module in Broadcast Registry.vi#548)。
  • 修复 chain/worker 模式内部注册规则删除问题(#557)。
  • API String 修复 Enum 空字符串转换(#100)、Cluster 无 tag 模式元素遗漏(#102)、枚举不匹配时不报错(#104)等多项问题。
  • INI 修复打包为 exe 后的路径问题(#92)。

破坏性变更

  • SafeString 格式变更#498):SafeString 参数现以 <SafeStr> 前缀开头。如果项目中有手动解析 SafeString 格式的代码,升级后需更新相关逻辑。
  • Macro: Exit 行为变更#555):开始处理 Macro: Exit 后不再处理任何消息。若项目依赖”在 Exit 过程中仍可接收消息”的行为,请在升级前评估并调整。
  • API String 枚举不匹配现在报错#104):以前枚举不匹配会静默失败,现在会抛出错误。请检查 API String 枚举参数的合法性。
  • 其余本期无破坏性变更。

升级指引

  1. 直接通过 VIPM 更新即可完成本次升级。
  2. 重点检查:如果项目使用 SafeString 参数,确认 <SafeStr> 前缀变更(#498)不影响现有解析代码。
  3. 重点检查:如果项目中的多模块退出依赖特定时序,重新回归 Macro: Exit 不再处理消息的新行为(#555)。
  4. 重点检查:使用 API String 枚举类型的项目,确认所有枚举参数字符串均合法,避免新的错误报告(#104)影响运行。
  5. 使用 Chain 模式或 Worker 模式且依赖 Management API 的项目,升级后建议全量回归相关功能(#560#556)。

完整变更来源

Release

结尾

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