v2024.May: 广播注册增强与多源配置
【v2024.May 精简公告】CSM v2024.May 已发布并推送至 VIPM。本期带来了广播注册系统的全面增强:新增注册状态查询 API(#269)、Log Viewer 中可视化展示注册信息(#270);INI 插件支持临时变量和多配置文件加载;CSM 模块名支持 UTF-8 字符(#272)。
2024 年 5 月的 CSM v2024.May 更新已经推送到 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
版本亮点
- 广播注册查询 API(#269):新增 API 允许在运行时查询模块的广播注册状态,方便调试和状态管理。
- CSM 模块名支持 UTF-8(#272):模块名现在完全支持 UTF-8 字符,中文等非 ASCII 字符可以直接作为模块名使用。
- INI 插件支持临时变量(#10):临时变量可以在会话期间使用而不被持久化,与永久变量形成互补,提供更灵活的配置管理策略。
- INI 插件支持多配置文件加载:支持加载多个配置文件,为不同部署场景或模块提供更灵活的配置来源管理。
- 文件日志大小与文件数限制(#271):FileLogger 现在支持按文件大小(默认 10MB)和文件数量(默认 2 个)滚动日志,避免日志文件无限增长。
按仓库变更
1. Communicable-State-Machine
功能改动(重点)
- 广播注册查询 API(#269):新增一组 API 用于在 BroadcastRegistry 中查询注册状态,开发者可以在运行时确认哪些模块已经注册了哪些状态广播。
- UTF-8 模块名支持(#272):CSM 模块名现在完整支持 UTF-8 字符,中文名称等非 ASCII 字符不再有限制。
- 注册状态可视化(#270):Log Viewer 中新增注册状态信息展示,实时显示各模块的广播注册关系,帮助开发者直观理解系统通信拓扑。
- 文件日志滚动限制(#271):FileLogger 支持通过文件大小(默认 10MB)和文件数量(默认 2 个)参数控制日志滚动,避免磁盘空间被无限占用。
- 修复单模块双消息注册(#239):修复了单个 CSM 模块的状态注册无法同时链接到两条消息的 bug。
- 修复链式 CSM 不在模块列表中的问题(#268):链式(chain type)CSM 现在可以正确出现在
CSM - List Modules.vi的结果中。 - 弹出菜单新增”Highlight All CSM Scripts”:可一次性高亮项目中所有 CSM 脚本常量。
文档与图标(简述)
- 改进工具启动器对话框的 UI 布局。
- 模板名称更新,更加直观易懂;所有模板描述信息已更新。
- API 与线程之间新增握手逻辑,提升并发安全性。
- 更新库图标。
2. CSM-API-String-Arguments-Support
功能改动(重点)
- 新增
CSM - Query Internal Data Names By API String.vi(#39):根据 API String 查询 VI 内部的数据名称列表。 - 新增
CSM - Query CSM VI Ref By API String.vi:通过 API String 查询 CSM VI 引用,取代已废弃的CSM - Module VI Ref.vi。 - Cluster 无标签模式:新增一种 cluster 转换模式,不需要指定标签名即可工作。
- 修复小数点处理(#38):修复了当小数点后无数字时多余小数点未被移除的 bug。
文档与图标(简述)
- 使用内嵌的 OpenG VI 副本,减少对外部依赖。
- 更新模板名称(#37)。
3. CSM-INI-Static-Variable-Support
功能改动(重点)
- 临时变量支持(#10):支持临时变量,这类变量仅在运行期间有效,不会被持久化到配置文件,与永久变量形成互补。
- 多配置文件加载:现在可以加载多个配置文件,为不同部署场景提供更灵活的配置来源管理,减少单一配置文件的维护压力。
文档与图标(简述)
- 全面更新所有 VI 图标,与核心库保持一致。
4. CSM-MassData-Parameter-Support
功能改动(重点)
- 更新状态指示器 VI(#14):
CSM - MassData Update Status Indicator.vi现在包含 UI 控件,使状态展示更加直观。
文档与图标(简述)
- 与核心库版本同步更新。
5. CSM-Continuous-Measurement-and-Logging
功能改动(重点)
- 波形生成频率改为在 10Hz 附近动态变化,更贴近真实测量场景。
- UI 模块新增频率状态显示,实时展示当前生成频率。
文档与图标(简述)
- 更新 CSM 模块图标,与主框架保持一致。
- 更新依赖版本至最新。
6. 其他仓库
- CSM-TCP-Router:本期无该版本发布,已忽略。
按功能变更
1. 功能新增
- 新增广播注册状态查询 API(#269)。
- Log Viewer 中新增注册状态信息展示(#270)。
- FileLogger 新增文件大小和文件数量限制参数(#271)。
- 弹出菜单新增”Highlight All CSM Scripts”选项。
- API String 插件新增
CSM - Query Internal Data Names By API String.vi(#39)和CSM - Query CSM VI Ref By API String.vi。 - API String 插件新增 Cluster 无标签模式。
- INI 插件新增临时变量支持(#10)和多配置文件加载能力。
2. 改进优化
- CSM 模块名全面支持 UTF-8 字符(#272)。
- API 与线程之间新增握手逻辑,提升并发安全性。
- MassData 状态指示器 VI 包含 UI 控件(#14)。
- 模板名称和描述全面更新,更加直观。
- 使用内嵌 OpenG VI 副本,减少外部依赖。
3. 问题修复
- 修复单个 CSM 模块无法同时注册两条状态消息的 bug(#239)。
- 修复链式 CSM 不出现在模块列表中的问题(#268)。
- API String 修复小数点后无数字时多余小数点的问题(#38)。
破坏性变更
CSM - Module VI Ref.vi已废弃:该 VI 被CSM - Query CSM VI Ref By API String.vi取代,建议迁移到新 VI,旧 VI 后续版本可能被移除。
升级指引
- 通过 VIPM 更新到 v2024.May 版本。
- 如果使用了
CSM - Module VI Ref.vi,建议改用新的CSM - Query CSM VI Ref By API String.vi。 - INI 插件临时变量使用方式可参考更新后的模板和示例。
- 如果应用中存在模块名使用中文字符但不正常工作的情况,升级后可尝试直接使用 UTF-8 字符命名。
完整变更来源
Release
- Communicable-State-Machine: https://github.com/NEVSTOP-LAB/Communicable-State-Machine/releases/tag/v2024.May
- CSM-API-String-Arguments-Support: https://github.com/NEVSTOP-LAB/CSM-API-String-Arguments-Support/releases/tag/v2024.May
- CSM-INI-Static-Variable-Support: https://github.com/NEVSTOP-LAB/CSM-INI-Static-Variable-Support/releases/tag/v2024.May
- CSM-MassData-Parameter-Support: https://github.com/NEVSTOP-LAB/CSM-MassData-Parameter-Support/releases/tag/v2024.May
- CSM-Continuous-Measurement-and-Logging: https://github.com/NEVSTOP-LAB/CSM-Continuous-Measurement-and-Logging/releases/tag/v2024.May
结尾
欢迎大家使用并提出反馈!本次更新在广播注册可观测性和 INI 配置灵活性方面迈出了重要步伐。如果你有好的想法,欢迎在 GitHub 提交 Issue 参与讨论!