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 的开发中来。

版本亮点

  • 广播注册查询 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 后续版本可能被移除。

升级指引

  1. 通过 VIPM 更新到 v2024.May 版本。
  2. 如果使用了 CSM - Module VI Ref.vi,建议改用新的 CSM - Query CSM VI Ref By API String.vi
  3. INI 插件临时变量使用方式可参考更新后的模板和示例。
  4. 如果应用中存在模块名使用中文字符但不正常工作的情况,升级后可尝试直接使用 UTF-8 字符命名。

完整变更来源

Release

结尾

欢迎大家使用并提出反馈!本次更新在广播注册可观测性和 INI 配置灵活性方面迈出了重要步伐。如果你有好的想法,欢迎在 GitHub 提交 Issue 参与讨论!