模板(Templates)

目录

  1. CSM User Interface(UI) Module Template.vi
  2. CSM Module Template.vi
  3. CSM Module Template - Tiny.vi
  4. CSM User Interface(UI) Module Template - Tiny.vi
  5. CSM DQMH-Style Template.vi
  6. 其他代码片段
    1. CSM - Start Async Call.vi
    2. CSM - Synchronized Call.vi
    3. CSM - Flood of Events Handler Side Loop.vi
    4. CSM - Global Log Queue Monitoring Loop.vi
    5. CSM - Global Log Event Monitoring Loop.vi
  7. 模板支持
    1. CSM - Get New State Notifier Event.vi
    2. Timeout Selector.vi
    3. 模板错误处理
      1. CSM Critical Error.vi
      2. CSM No Target Error.vi
      3. CSM Target Error.vi
      4. CSM Target Timeout Error.vi
      5. CSM Unhandled State Error.vi

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模块名称。