v2025.June: CSM核心资源管理与参数Token
【v2025.June 精简公告】CSM v2025.June 已发布并推送至 VIPM。本期重点:异步启动的 CSM 模块资源生命周期绑定到后台线程、引入 Argument Token 概念统一参数类型标识,以及新增识别状态触发原因的工具 VI。
2025 年 7 月的 CSM 更新已经推送到 VIPM。Communicable State Machine Framework - Package List. 如果你觉得 CSM 对你有帮助,请在 GitHub/Gitee 上 star 对应的仓库!也欢迎有经验的 LabVIEW 高手参与到 CSM 的开发中来。
- GitHub: https://github.com/NEVSTOP-LAB
- gitee: https://gitee.com/NEVSTOP-LAB
- vipm: Communicable State Machine Framework - Package List
- VIPM 打包好的 Release Package(VIPC) 合集(包含全部 Addon + Examples,可以离线安装): https://pan.baidu.com/s/10fsnFmJpn-P_HLbpH9IFLg 提取码: CSMF
版本亮点
- 重要架构改进(#437、#474、#472、#469):异步启动的 CSM 模块,其队列、用户事件、DVR 等资源的生命周期现绑定到一个后台线程 VI,确保资源正确释放,避免资源泄漏。
- Argument Token 概念(#466):新增
CSM - Argument Token.vi,使用<NewType>前缀统一标识自定义参数类型,扩展性更强。 - 新增状态触发原因识别 VI(#195):可判断状态是由本地调用、远程调用还是状态回调触发,便于编写更精确的状态逻辑。
- Debug Console 增强(#463):新增广播状态的操作支持。
- INI 插件修复多分区变量优先级逻辑(#81、#82)。
按仓库变更
1. Communicable-State-Machine
功能改动(重点)
核心(Core)
- [important] #437、#474、#472、#469 将异步启动的 CSM 模块的资源(Queue、User Event、DVR)生命周期与后台线程 VI 绑定,确保异步模块退出时资源正确释放。
参数(Arguments)
- [update] #466 引入 Argument Token 概念:自定义参数类型通过
<NewType>前缀标识。新增CSM - Argument Token.vi用于解析参数类型。
工具(Tools)
工具 VI(Utility)
- [add] #195 新增工具 VI,用于识别状态的触发原因(本地调用、远程调用、状态回调)。
2. CSM-INI-Static-Variable-Support
功能改动(重点)
- [fix]
CSM - Sync Configuration Variables to File.vi在无缓存变更时将跳过写入,减少不必要的磁盘操作。 - [fix] #81、#82 修复多个分区中 INI 变量优先级顺序逻辑错误。
3. 其他仓库
- CSM-API-String-Arguments-Support:本期无
v2025.June发布,已忽略。 - CSM-MassData-Parameter-Support:本期无
v2025.June发布,已忽略。 - CSM-TCP-Router-App:本期无
v2025.June发布,已忽略。 - CSM-Continuous-Meausrement-and-Logging:本期无
v2025.June发布,已忽略。
按功能变更
1. 功能新增
2. 改进优化
- 异步启动 CSM 模块的资源生命周期管理从根本上改善,与后台线程绑定(#437 等)。
- Debug Console 新增广播状态操作(#463)。
- Debug Console 日志统计改为显示过滤后速度(#467)。
- INI
Sync to File在无变更时跳过写入,提升性能。
3. 问题修复
破坏性变更
- 资源生命周期变更(#437 等):异步启动的 CSM 模块资源现绑定至后台线程 VI。如果项目中有在 CSM 模块退出后仍访问其队列或用户事件的代码,需要重新评估资源使用时序。
- 其余本期无破坏性变更。
升级指引
- 直接通过 VIPM 更新即可完成本次升级。
- 使用异步启动(Async Start)模式的项目,建议在升级后回归测试模块的创建和销毁流程,确认资源生命周期行为符合预期。
- 如需扩展自定义参数类型,可参考新的 Argument Token 机制(#466)实现标准化的类型标识。
完整变更来源
Release
- Communicable-State-Machine: https://github.com/NEVSTOP-LAB/Communicable-State-Machine/releases/tag/v2025.June
- CSM-INI-Static-Variable-Support: https://github.com/NEVSTOP-LAB/CSM-INI-Static-Variable-Support/releases/tag/v2025.June
结尾
欢迎大家使用并提出反馈!如有问题,请在 GitHub 上提交 Issue,或加入社区讨论。