基础用法
Step1. 创建基于 CSM 的可重用模块
创建一个可重用模块通常不需要与其他模块进行消息交互;它只需要提供外部接口和发布模块的状态变化。因此,只要明确描述了这两个方面,就可以在不了解内部实现细节的情况下,调用可重用模块。
在CSM模块中,所有 case 分支都可以被视为调用的消息,但建议使用 API 分组作为外部接口。当发送状态更新时,通过发送 Status 或 Interrupt Status 来通知外部模块内部的状态变化。
可参考范例 /Example/1. Create a reusable module
Step2. 在CSM框架中调用模块
在这种情况下,模块之间的通信完全依赖于消息字符串队列操作,你可以使用 Build Message with Arguments++.vi 函数生成一个 Message 字符串,或者,如果你熟悉规则,你可以直接使用编写用于描述通讯的字符串。
#CSM 状态语法
// 本地消息示例
DoSth: DoA >> 参数
// 同步调用示例
API: xxxx >> 参数 -@ TargetModule
// 异步调用示例
API: xxxx >> 参数 -> TargetModule
// 无应答异步调用示例
API: xxxx >> 参数 ->| TargetModule
// 广播正常状态:
Status >> StatusArguments -><status>
// 广播中断状态:
Interrupt >> StatusArguments -><interrupt>
// 将源模块的状态注册到处理程序模块
Status@Source Module >> Handler Module@Handler Module -><register>
// 取消注册源模块的状态
Status@Source Module >> Handler Module -><unregister>
#CSM 注释
// 要添加注释,请使用 "//",右边的所有文本将被忽略。
UI: Initialize // 初始化 UI
// Another comment line
可参考范例 /Example/2. Caller is CSM Scenario.
Step3. 在其他框架中调用模块
在这种情况下,模块之间的通信完全依赖于Post/Send Message API和模块状态更改用户事件。
可参考范例 /Example/3. Caller is Other Framework Scenario.
Step4. CSM参数
CSM 只支持 STRING TYPE 作为参数,但是需要传输的数据种类繁多。因此,对参数的支持至关重要。下表列出了当前支持不同数据类型的一些方法,其中一些是 CSM 内置的,而其他一些则需要安装额外的支持插件。