CSM提供了一整套开发和调试工具,帮你更快地开发、调试和维护应用。工具分为四大类:运行时调试、开发辅助、接口管理和示例浏览。所有调试工具都基于全局日志系统实现。

工具入口

有两个入口可以打开工具:

  • 菜单: Tools -> Communicable State Machine(CSM) -> Open CSM Tool Launcher...
  • 函数面板: 在CSM函数面板中选择CSM Tools

CSM Tool Entry in Menu

打开后会弹出工具选择器,选你需要的工具就行:

CSM Tool Selector

运行时调试工具

Running Log Window(运行日志)

实时显示所有CSM事件,包括状态变化、消息通讯、广播等。

CSM Running Log Window

核心功能:实时显示、过滤搜索、导出日志、性能监控

适合用来:追踪消息路径、分析时序、排查问题、记录历史

小技巧:用过滤聚焦关注的模块,开启周期性日志折叠提高可读性,高负载时自动调整等级

State Dashboard(状态仪表板)

图形化展示所有模块的当前状态,一眼看清系统运行状况。

CSM State Dashboard Window

核心功能:模块列表、实时状态、状态历史、颜色标识(绿=正常、黄=等待、红=错误、蓝=外部调用)

适合用来:快速查看整体状态、监控多模块协同、发现卡死或异常、验证状态转换

Table Log Window(表格日志)

以表格形式记录状态变化,每个模块一列,每次变化一行。特别适合分析多模块的并行状态对应关系。

CSM Table Log Window

核心功能:并行状态对比、时序分析、状态同步、事件关联

适合用来:分析多模块时序、发现并发问题、验证同步机制、追踪消息链

小技巧:横着看同一行的多个模块理解交互,竖着看一列了解单模块的状态序列

开发辅助工具

Debug Console(调试控制台)

交互式测试模块API,选模块、扫API、发消息、看结果。

主要功能:模块选择、API扫描、消息发送(同步/异步)、结果查看、日志监控、脚本执行

适合用来:单元测试、快速验证、调试消息处理、自动化测试

使用流程:启动模块 → 选中模块 → 扫描API → 选API输参 → 发消息看结果 → 调整重测

批量工具

  • Add VI Reference Case: 批量为CSM模块添加”VI Reference”分支,用于外部获取VI引用
  • Switch Language Tool: 切换模块注释语言(中英文互换)
  • Fix JKISM Editor RCM: 修复JKISM State Editor右键菜单在CSM中不能调用的问题
  • Create CSM Palette at Root: 在项目根目录生成CSM函数选板
  • Remove All CSM Bookmarks: 移除所有书签标记

注意: 批量操作前先备份代码,确保VI未被占用

接口与示例工具

Interface Browser(接口浏览器)

浏览项目中所有CSM模块的API,快速查找接口和参数说明。

核心功能:模块列表、接口展示、快速搜索、参数说明、文档链接

适合用来:了解可用模块、查找API、生成文档、接口评审

Example Browser(示例浏览器)

分类浏览和打开CSM示例项目。

示例分类:基础(创建和调用)、高级(工作者/责任链模式)、通讯(同步/异步/订阅)、插件(Addon使用)、工具(全局日志等)

适合用来:学习使用方法、寻找参考代码、快速原型、验证功能

JKISM State Editor

JKI State Machine自带的状态编辑器,CSM完全兼容。在状态字符串控件上右键选”Edit State…“就能用。

主要功能:状态快速输入、状态模板、历史记录、快捷键支持

与CSM集成:支持CSM消息格式、特殊符号(-@, ->, -> 等)、消息历史、常用消息快速切换

小技巧:用模板快速生成、用历史避免重复输入、设收藏夹、快捷键操作

自定义工具开发

基于全局日志系统可以开发自己的调试工具。

开发流程

  1. 获取全局日志(使用CSM - Global Log Queue.viCSM - Global Log Event.vi
  2. 处理日志数据,提取需要的信息
  3. 实现业务逻辑
  4. 显示或保存结果

参考代码

  • template/CSM - Global Log Queue Monitoring Loop.vi
  • template/CSM - Global Log Event Monitoring Loop.vi
  • 各调试工具源代码

最佳实践:用队列方式提高效率、实现日志过滤、提供友好界面、考虑性能影响、提供导出功能

使用注意事项

性能影响

调试工具会增加系统开销,建议按需使用。大量日志占内存,注意控制缓存大小。生产环境用源端过滤减少日志,不用的工具及时关闭。

安全考虑

调试工具能查看和修改系统状态,注意访问控制。日志可能含敏感信息,注意保护。生产环境谨慎使用调试控制台。

兼容性

确保工具版本与CSM框架兼容,某些工具可能需要特定LabVIEW版本,不同系统上记得测试兼容性。

总结

CSM的工具集覆盖了开发全流程,从编码、调试到接口管理,能大幅提高开发效率和代码质量。合理使用这些工具,可以快速定位问题、深入理解运行机制、提高开发效率、改善代码可维护性。建议根据项目需求选择合适的工具组合,也欢迎根据实际情况定制或开发新工具。

📝 工具持续完善中

CSM工具还在不断增强,欢迎社区贡献新工具和改进!参与贡献请看如何参与贡献