v2024.Aug: 模板更新与全局日志过滤
【v2024.Aug 精简公告】CSM v2024.August 已发布并推送至 VIPM。本期是 2024 年功能最密集的一次更新:全局事件过滤系统正式引入(#234)、广播注册 API 重组为更友好的接口、新增”VI Reference”Case 到所有模板(#298)、CSM Watchdog 看门狗机制上线,以及 CSM Helper API 工具集加入框架。
2024 年 8 月的 CSM v2024.August 更新已经推送到 VIPM。如果你觉得 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
版本亮点
- 全局事件过滤系统(#234):新增全局事件过滤机制,可对全局日志事件进行订阅过滤,只接收关心的事件,大幅降低高频应用中的事件处理开销。
- 广播注册 API 重组:重新组织所有广播注册相关的 API,更加用户友好,命名和分组逻辑更清晰。
- “VI Reference” Case 加入所有模板(#298):所有 CSM 模板都新增了”VI Reference” Case,为工具和外部程序提供获取 CSM VI 引用的标准接口。
- CSM Watchdog 看门狗:新增 CSM Watchdog 机制,确保应用退出时所有 CSM 模块都能正确退出,彻底解决模块”僵尸”问题。
- CSM Helper API:新增 CSM Helper API 工具集,为基于 CSM 构建第三方工具提供统一的接口基础。
按仓库变更
1. Communicable-State-Machine
功能改动(重点)
- 广播注册 API 重组:将所有广播注册相关 API 重新组织,使其更加直观易用,消除了之前 API 命名混乱的问题。
- 全局事件过滤系统(#234):引入全局事件过滤机制,允许订阅者指定过滤规则,只接收匹配的事件,显著降低高频事件场景下的处理压力。
- 新增发送/投递消息 API(#289):新增两个 API 用于从外部向 CSM 发送或投递消息,方便非 CSM 代码与 CSM 模块交互。
CSM - Run Script VI:新增用于一次性执行多个状态的脚本执行 VI。- “VI Reference” Case(#298):在所有模板中添加标准的”VI Reference” Case,为外部工具提供获取 CSM VI 引用的接口。
- CSM Helper API:新增一组 CSM Helper API,为构建 CSM 周边工具提供标准接口支持。
- 修复 VI Reference 工具(#300):新增工具用于修复每个 CSM 模块 VI 中的”VI Reference” Case。
- Show FP/BD 工具按钮:在工具栏新增显示前面板和程序框图的快捷按钮。
- CSM Watchdog:新增 CSM 看门狗机制,确保应用程序正常退出时,所有 CSM 模块都能收到退出信号并安全终止。
- 修复状态注册在 CSM 退出后不保留的问题(#291):状态注册在 CSM 模块退出后不再自动移除,需要显式调用反注册。
- 修复独立模式 CSM 无法注册其他模块状态(#295):Stand-Alone CSM 模式现在可以正常注册其他模块的状态变更。
- 修复模块名大小写不敏感(#299):CSM 模块名现在大小写不敏感,消除了因大小写不一致导致的模块找不到问题。
- LoopSupport 改进(#290):
CSMLS - Append Continious State (CSM)新增是否追加的可选参数。 - 移除”More template”菜单:移除了旧的”More template” mnu 菜单入口,改为使用 “File » New…” 中的模板 VI 体系。
文档与图标(简述)
- 修复了 CSM Logger 线程中的一个边角情况(#293)。
2. CSM-API-String-Arguments-Support
功能改动(重点)
- “VI Reference” Case:在模板中加入”VI Reference” Case,与核心库保持一致。
- 错误处理更新(#56):更新了模板中的错误处理逻辑,使其更加健壮。
文档与图标(简述)
- 与核心库版本同步更新。
3. CSM-INI-Static-Variable-Support
功能改动(重点)
- 全局日志过滤规则读取 API(#42):新增
CSM - Read Log Filter Rules from INI Strings,支持从 INI 配置中读取并应用日志过滤规则,与核心库的全局事件过滤系统联动。 - LabVIEW Config 库新增读取数组键 VI:
Read Array Key.vi加入 LabVIEW Config 库,支持从配置文件中读取数组类型的值。 - 所有 CSM 模块升级”VI Reference”:INI 插件中的所有 CSM 模块均已加入”VI Reference” Case。
文档与图标(简述)
- 与核心库版本同步更新。
4. CSM-Continuous-Measurement-and-Logging
功能改动(重点)
- 更新 CSM 框架至最新版本,同步所有改进。
- 为每个 CSM 模块添加”VI Reference” Case。
- 新增展示 CSM 文件日志 Addon 使用方法的演示。
- 新增展示 CSM Watchdog Addon 使用场景的演示。
文档与图标(简述)
- 与核心库版本同步更新。
5. 其他仓库
- CSM-MassData-Parameter-Support:本期无该版本发布,已忽略。
- CSM-TCP-Router:本期无该版本发布,已忽略。
按功能变更
1. 功能新增
- 全局事件过滤系统(#234)。
- 新增发送/投递消息 API(#289)。
- 新增
CSM - Run Script VI。 - 所有模板加入”VI Reference” Case(#298)。
- CSM Helper API 工具集。
- Show FP/BD 工具按钮。
- CSM Watchdog 看门狗机制。
- 新增修复”VI Reference” Case 工具(#300)。
- INI 插件新增全局日志过滤规则读取 API(#42)。
- INI 插件 LabVIEW Config 库新增读取数组键 VI。
2. 改进优化
- 广播注册 API 全面重组,更加用户友好。
- 移除旧的”More template”菜单,统一使用 “File » New…” 模板体系。
- LoopSupport
CSMLS - Append Continious State新增是否追加的可选输入(#290)。 - API String 模板错误处理改进(#56)。
3. 问题修复
- 修复状态注册在 CSM 退出后不应被自动移除的问题(#291)。
- 修复独立 CSM 模块无法注册其他模块状态变更的问题(#295)。
- 修复 CSM 模块名大小写敏感导致找不到模块的问题(#299)。
- 修复 CSM Logger 线程边角情况(#293)。
破坏性变更
- 状态注册生命周期变更(#291):状态注册在 CSM 模块退出后不再自动移除,必须显式调用反注册 API。如果代码依赖了”模块退出即自动取消注册”的行为,升级后需要添加显式反注册调用。
- “More template”菜单移除:旧的 “More template” mnu 菜单入口已被移除,请使用 “File » New…” 来创建模板 VI。
- 广播注册 API 重组:API 命名和分组有所调整,升级后请检查是否需要更新 API 调用。
升级指引
- 通过 VIPM 更新到 v2024.August 版本。
- 检查代码中是否依赖状态注册在 CSM 退出后自动清除的行为,必要时添加显式反注册调用。
- 使用重组后的广播注册 API 替换旧 API,新 API 更加直观,建议尽快迁移。
- 使用”VI Reference”修复工具更新现有 CSM 模块,为工具支持做好准备。
- 现有项目中使用”More template”菜单创建 VI 的流程,改为使用 “File » New…” 方式。
完整变更来源
Release
- Communicable-State-Machine: https://github.com/NEVSTOP-LAB/Communicable-State-Machine/releases/tag/v2024.August
- CSM-API-String-Arguments-Support: https://github.com/NEVSTOP-LAB/CSM-API-String-Arguments-Support/releases/tag/v2024.August
- CSM-INI-Static-Variable-Support: https://github.com/NEVSTOP-LAB/CSM-INI-Static-Variable-Support/releases/tag/v2024.August
- CSM-Continuous-Measurement-and-Logging: https://github.com/NEVSTOP-LAB/CSM-Continuous-Measurement-and-Logging/releases/tag/v2024.August
结尾
欢迎大家使用并提出反馈!本次更新在框架可观测性、稳定性和可扩展性方面都有重大提升。CSM Watchdog 和 Helper API 的加入,为构建生产级应用打下了坚实基础。如果你有好的想法,欢迎在 GitHub 提交 Issue 参与讨论!