CSM提供了一整套开发和调试工具,帮你更快地开发、调试和维护应用。工具分为四大类:运行时调试、开发辅助、接口管理和示例浏览。所有调试工具都基于全局日志系统实现。
工具入口
有两个入口可以打开工具:
- 菜单:
Tools->Communicable State Machine(CSM)->Open CSM Tool Launcher... - 函数面板: 在CSM函数面板中选择
CSM Tools

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

运行时调试工具
Running Log Window(运行日志)
实时显示所有CSM事件,包括状态变化、消息通讯、广播等。

核心功能:实时显示、过滤搜索、导出日志、性能监控
适合用来:追踪消息路径、分析时序、排查问题、记录历史
小技巧:用过滤聚焦关注的模块,开启周期性日志折叠提高可读性,高负载时自动调整等级
State Dashboard(状态仪表板)
图形化展示所有模块的当前状态,一眼看清系统运行状况。

核心功能:模块列表、实时状态、状态历史、颜色标识(绿=正常、黄=等待、红=错误、蓝=外部调用)
适合用来:快速查看整体状态、监控多模块协同、发现卡死或异常、验证状态转换
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消息格式、特殊符号(-@, ->, -> | 等)、消息历史、常用消息快速切换 |
小技巧:用模板快速生成、用历史避免重复输入、设收藏夹、快捷键操作
自定义工具开发
基于全局日志系统可以开发自己的调试工具。
开发流程:
- 获取全局日志(使用
CSM - Global Log Queue.vi或CSM - Global Log Event.vi) - 处理日志数据,提取需要的信息
- 实现业务逻辑
- 显示或保存结果
参考代码:
template/CSM - Global Log Queue Monitoring Loop.vitemplate/CSM - Global Log Event Monitoring Loop.vi- 各调试工具源代码
最佳实践:用队列方式提高效率、实现日志过滤、提供友好界面、考虑性能影响、提供导出功能
使用注意事项
性能影响
调试工具会增加系统开销,建议按需使用。大量日志占内存,注意控制缓存大小。生产环境用源端过滤减少日志,不用的工具及时关闭。
安全考虑
调试工具能查看和修改系统状态,注意访问控制。日志可能含敏感信息,注意保护。生产环境谨慎使用调试控制台。
兼容性
确保工具版本与CSM框架兼容,某些工具可能需要特定LabVIEW版本,不同系统上记得测试兼容性。
总结
CSM的工具集覆盖了开发全流程,从编码、调试到接口管理,能大幅提高开发效率和代码质量。合理使用这些工具,可以快速定位问题、深入理解运行机制、提高开发效率、改善代码可维护性。建议根据项目需求选择合适的工具组合,也欢迎根据实际情况定制或开发新工具。
📝 工具持续完善中
CSM工具还在不断增强,欢迎社区贡献新工具和改进!参与贡献请看如何参与贡献