模板(Templates)


CSM User Interface(UI) Module Template.vi

用于创建带用户界面的CSM模块的模板,该模板包含用于响应用户操作的用户事件结构。

  • Ref: CSM名称规则
  • Ref: CSM初始化状态
  • Ref: CSM退出状态

输入控件(Controls)

  • Name (“” to use UUID):CSM模块名称。请参考CSM名称规则

CSM Module Template.vi

用于创建无用户界面的CSM模块的模板, 这个模板是最常使用的CSM模板,在模板中还包含了一个用于调试中退出模块的事件响应循环,请在模块调试完成后,将其删除。

  • Ref: CSM名称规则
  • Ref: CSM初始化状态
  • Ref: CSM退出状态

输入控件(Controls)

  • Name (“” to use UUID):CSM模块名称。请参考CSM名称规则

CSM Module Template - Tiny.vi

用于创建无用户界面的CSM模块的紧凑代码模板。该模板功能与CSM Module Template VI完全相同,区别仅在于代码更加紧凑。

  • Ref: CSM名称规则
  • Ref: CSM初始化状态
  • Ref: CSM退出状态

输入控件(Controls)

  • Name (“” to use UUID):CSM模块名称。请参考CSM名称规则

CSM User Interface(UI) Module Template - Tiny.vi

用于创建带用户界面的CSM模块的紧凑代码模板,该模板包含用于响应用户操作的用户事件结构。该模板功能与CSM User Interface(UI) Module Template VI完全相同,区别仅在于代码更加紧凑.

  • Ref: CSM名称规则
  • Ref: CSM初始化状态
  • Ref: CSM退出状态

输入控件(Controls)

  • Name (“” to use UUID):CSM模块名称。请参考CSM名称规则

CSM DQMH-Style Template.vi

用于创建一个DQMH风格的CSM模块模板,该结构将响应用户操作的用户事件结构外置在独立的循环中,主要用于处理一些复杂的用户操作场景。例如:

  • 用户界面操作非常复杂,需要组合逻辑完成协同工作,例如鼠标按下拖动并释放后触发某事件。
  • 用户界面需要响应会快速产生的事件,如鼠标移动、窗口大小调整等。这些事件中如果生成消息,会迅速产生多条重复消息。

用户操作的用户事件结构循环通过CSM - Flood of Events Handler Side Loop VI模板创建。用户也可以通过组合CSM - Flood of Events Handler Side Loop VI与CSM Module Template VI来创建完整的DQMH风格的CSM模块模板。

参考范例[CSM-Example]\4. Advance Examples\CSMLS - Continuous Loop in CSM Example.vi

  • Ref: CSM名称规则
  • Ref: CSM初始化状态
  • Ref: CSM退出状态

输入控件(Controls)

  • Name (“” to use UUID):CSM模块名称。请参考CSM名称规则

其他代码片段

CSM - Start Async Call.vi

异步启动CSM模块的代码片段。拖至程序框图后,请将VI静态引用改为目标CSM模块。

参考范例[CSM-Example]\3. Caller is Other Framework Scenario\CSM Example - Caller is NOT a CSM.vi

CSM - Synchronized Call.vi

同步调用CSM模块的代码片段。实质上是把CSM模块当作子VI直接调用。

参考范例[CSM-Example]\2. Caller is CSM Scenario\CSM Example - Caller is a CSM.vi

CSM - Flood of Events Handler Side Loop.vi

该模板是DQMH风格的CSM模块的用户事件结构循环模板,主要用于处理用户界面操作非常复杂,需要组合逻辑完成协同工作的场景。

参考范例[CSM-Example]\4. Advance Examples\CSMLS - Continuous Loop in CSM Example.vi

CSM - Global Log Queue Monitoring Loop.vi

此模板用于创建一个全局日志队列监控循环,用于查询监控全局日志队列中的消息。

参考范例[CSM-Example]\4. Advance Examples\2. Chain of Responsibility Example\Chain of Responsibility Example.vi

CSM - Global Log Event Monitoring Loop.vi

此模板用于创建一个全局日志事件监控循环,用于查询监控全局日志队列中的消息。

参考范例[CSM-Example]\4. Advance Examples\4. Global Log Filter Example\中的任一范例。

模板支持

CSM - Get New State Notifier Event.vi

获取用户事件句柄,适用于包含事件结构的CSM模块。包含事件结构的CSM模块通常会在事件结构处等待,此事件用于在收到新消息时中断事件结构中的等待,使模块继续执行。

输入控件(Controls)

  • Name (“” to use UUID):CSM模块名称。请参考CSM名称规则

输出控件(Indicators)

  • New State Notifier Event:用户事件句柄,用于在收到消息时中断CSM模块在事件结构中的等待。

Timeout Selector.vi

适用于包含用户事件结构的模板, 如果超时为-1时,Remaining States中依然还有剩余状态,那么超时值将被修改为0,以保证立刻跳出用户事件结构(user event structure),并继续处理剩余状态。

输入控件(Controls)

  • Timeout Expected:预期的超时设置。
  • Remaining States:若还有剩余状态,则输出为0;否则输出为预期值。

输出控件(Indicators)

  • Timeout:仲裁后使用的超时设置。

模板错误处理

CSM Critical Error.vi

生成CSM严重错误描述的错误簇。严重错误为CSM框架发生的严重错误消息,无法有用户代码处理回复,常见原因是模块名称重复。

输入控件(Controls)

  • CSM Name:CSM模块名称。
  • Arguments (As Reason):错误原因。

CSM No Target Error.vi

生成CSM无目标消息错误描述的错误簇。无目标消息错误发生在CSM尝试发送一个消息,但目标模块名称为空字符串。

CSM Target Error.vi

生成CSM消息目标模块不存在的错误描述的错误簇。目标模块不存在错误发生在CSM尝试发送一个消息到一个不存在的目标模块时。

输入控件(Controls)

  • Arguments (As CSM Name):连接参数,传递目标模块名称。

CSM Target Timeout Error.vi

生成CSM消息目标模块超时的错误描述的错误簇。目标模块超时错误发生在CSM尝试发送一个同步消息到一个目标模块,但在指定的超时时间内未收到回复时。

输入控件(Controls)

  • Arguments (As CSM Name):连接参数,传递目标模块名称。

CSM Unhandled State Error.vi

生成 CSM 未处理状态的错误描述的错误簇。CSM未处理状态的错误可能的情况包括:

  • 内部消息轮转中使用了本模块未定义的状态时(与JKISM行为一致)。
  • 收到外部发送至本模块的消息未定义时。

输入控件(Controls)

  • Undefined State:未定义的状态。
  • CSM Name:CSM模块名称。