管理接口(Management API)

CSM - Check If Module Exists.vi

检查CSM模块是否存在。当CSM模块运行在协作者模式或责任链模式下,只有当组成模块的所有节点退出后,模块才会被标记为不存在。

输入控件(Controls)

  • CSM Name: CSM模块名称。

输出控件(Indicators)

  • CSM Name (dup): 输入的CSM模块名称副本。
  • Exist?: 返回模块是否存在。

CSM - List Modules.vi

列出所有活动的CSM模块。该VI具有两组选项:

  • 范围选项:用于标记是否罗列系统级模块,默认不列出,可选择普通/仅系统级模块/所有模块。
  • 是否包含节点选项:针对协作者模式和责任链模式,当包括节点时,将同时列出节点,否则仅列出模块,默认不包含节点。
  • Ref: CSM工作模式

输入控件(Controls)

  • Scope (Normal): 范围选项,可选择 普通/仅系统级模块/所有模块。
  • With Nodes? (F): 是否包含节点,针对协作者模式和责任链模式,当包括节点时,将同时列出节点,否则仅列出模块,默认不包含节点。

输出控件(Indicators)

  • Module Names: CSM模块名称列表。

CSM - List Submodules.vi

列出当前分组或模块的所有子模块。Recursive? (T)为TRUE时,将递归列出所有层级的子模块,否则仅列出直接下一级子模块。

举例: 系统存在Level1.Level2A、Level1.Level2A.Node1、Level1.Level2A.Node2、Level1.Level2B.Node1、Level1.Level2B.Node2这5个模块,
 - 当<b>Parent Name</b>为"Level1"时:
    <b>Recursive? (T)</b>为True时,将递归列出所有层级的子模块,包括Level1.Level2A、Level1.Level2A.Node1、Level1.Level2A.Node2、Level1.Level2B.Node1、Level1.Level2B.Node2
    <b>Recursive? (T)</b>为False时,仅列出直接下一级子模块,仅包括Level1.Level2A,注意Level1.Level2B不是一个模块实例,因此并不会被包含在结果中
  • Ref: CSM子模块

输入控件(Controls)

  • Parent Name: 分组或父节点名称。
  • Recursive? (T): 是否递归列出所有层级的子模块,默认为TRUE。

输出控件(Indicators)

  • Parent Name (Dup): 输入的分组或父节点名称副本。
  • Submodules: 子模块名称列表。

CSM - Module VI Reference.vi

获取输入模块的VI引用。

VI逻辑:

  • 该VI通过发送VI Reference同步消息,查询获取CSM模块的VI引用,因此它具有与发送同步消息VI相类似的输入参数。
  • 该VI在后台缓存了本次主程序运行查询过的CSM模块的VI引用,当再次查询相同的模块且查询到的VI引用依然有效时,将直接返回缓存的VI引用,而不是重新发送同步消息查询。
  • 如果需要强制重新查询模块的VI引用,可设置Force? (F)为TRUE。

对于特殊运行模式的CSM的行为:

  • 协作者模式: 返回处理VI Reference消息的工作者节点的VI引用。
  • 责任链模式: 返回责任链模式的CSM模块的第一个节点的VI引用。
  • 系统级模块: 与普通模式CSM相同,返回系统级模块的VI引用。

输入控件(Controls)

  • Current Module (“” to Generate an ID): 查询CSM模块的标记,为空时将生成一个唯一的ID。
  • CSM Name: CSM模块名称。
  • Force? (F): 是否强制重新查询模块的VI引用,默认为 False。
  • Response Timeout (-2 Using Global Settings): 同步调用的超时时间,默认为-2,使用全局设置。您可以通过CSM - Set TMO of Sync-Reply VI设置全局超时时间。

输出控件(Indicators)

  • CSM Module VIRef: CSM模块的VI引用。

CSM - Set TMO of Sync-Reply.vi

设置CSM程序全局的同步调用超时时间,单位为毫秒。当输入为-2时,将不会修改全局超时时间,返回值为当前全局超时时间;当输入为其他正值时,将修改全局超时时间为该值,返回新的全局超时时间。

CSM同步消息全局超时

  • CSM模块间通信,或使用同步消息发送VI时,默认的超时时间为-2,此时将使用全局设置的超时时间
  • 全局超时时间可以通过CSM - Set TMO of Sync-Reply VI设置为其他正值,以覆盖全局设置的超时时间
  • 全局超时时间仅对同步调用生效,异步调用不受影响

CSM模块/API调用时,默认的超时时间为-2,此时将使用全局设置的超时时间;如果设置为其他正值,则将使用该值作为超时时间。

输入控件(Controls)

  • TMO For Sync-Rep (ms) In: 全局超时时间输入,-2表示不修改全局超时时间,其他正值表示修改全局超时时间为该值。

输出控件(Indicators)

  • TMO For Sync-Rep (ms) Out: 当前全局超时时间。

CSM - Module Status.vi

获取CSM模块的状态,包括: 工作模式、工作者数量、消息队列中的待处理消息个数。

  • Ref: CSM工作模式

输入控件(Controls)

  • CSM Name: CSM模块名称。

输出控件(Indicators)

  • CSM Name (Dup): 输入的CSM模块名称副本。
  • Mode: 返回模块的工作模式。
  • #Nodes: 协作者模式或责任链模式下的节点数量。
  • #Elements In Queue: CSM消息队列中的待处理消息个数。

CSM - Flush Queue.vi

清空CSM模块后台用于模块间通信的LabVIEW队列。

  • Ref: CSM优先级队列设计

输入控件(Controls)

  • CSM Name: CSM模块名称。
  • Option (Low Priority As Default): 清理的队列。可以选择All、Low Priority、High Priority。默认值为Low Priority。

输出控件(Indicators)

  • CSM Name (Dup): 输入CSM模块名称的副本。
  • #Flushed: 被清理的消息队列中的元素个数。

Filter JKISM String Queue(CSM - Filter JKISM String Queue.vi)

该VI用于过滤CSM状态队列中的特定状态

CSM 的状态队列操作API

该类型API不会直接发送消息,只是拼接消息字符串。在Parse State Queue++.vi中发送消息、执行操作。与消息拼接API不同的是,此类API会包含CSM的状态队列字符串输入,相当于在状态队列中插入消息。

CSM - Filter Local States.vi

该VI用于过滤CSM状态队列中的本地状态。

CSM 的状态队列操作API

该类型API不会直接发送消息,只是拼接消息字符串。在Parse State Queue++.vi中发送消息、执行操作。与消息拼接API不同的是,此类API会包含CSM的状态队列字符串输入,相当于在状态队列中插入消息。

输入控件(Controls)

  • States In: 待过滤的整段状态描述字符串。

输出控件(Indicators)

  • States Out: 过滤后的状态描述字符串。

CSM - Filter Messages.vi

该VI用于过滤CSM状态队列中的所有类型的消息。

CSM 的状态队列操作API

该类型API不会直接发送消息,只是拼接消息字符串。在Parse State Queue++.vi中发送消息、执行操作。与消息拼接API不同的是,此类API会包含CSM的状态队列字符串输入,相当于在状态队列中插入消息。

输入控件(Controls)

  • States In: 待过滤的整段状态描述字符串。

输出控件(Indicators)

  • States Out: 过滤后的状态描述字符串。

CSM - Filter Sync Messages.vi

该VI用于过滤CSM状态队列中的同步消息。

CSM 的状态队列操作API

该类型API不会直接发送消息,只是拼接消息字符串。在Parse State Queue++.vi中发送消息、执行操作。与消息拼接API不同的是,此类API会包含CSM的状态队列字符串输入,相当于在状态队列中插入消息。

输入控件(Controls)

  • States In: 待过滤的整段状态描述字符串。

输出控件(Indicators)

  • States Out: 过滤后的状态描述字符串。

CSM - Filter Async Messages.vi

该VI用于过滤CSM状态队列中的异步消息。

CSM 的状态队列操作API

该类型API不会直接发送消息,只是拼接消息字符串。在Parse State Queue++.vi中发送消息、执行操作。与消息拼接API不同的是,此类API会包含CSM的状态队列字符串输入,相当于在状态队列中插入消息。

输入控件(Controls)

  • States In: 待过滤的整段状态描述字符串。

输出控件(Indicators)

  • States Out: 过滤后的状态描述字符串。

CSM - Filter Async without Reply Messages.vi

该VI用于过滤CSM状态队列中的异步无回复消息。

CSM 的状态队列操作API

该类型API不会直接发送消息,只是拼接消息字符串。在Parse State Queue++.vi中发送消息、执行操作。与消息拼接API不同的是,此类API会包含CSM的状态队列字符串输入,相当于在状态队列中插入消息。

输入控件(Controls)

  • States In: 待过滤的整段状态描述字符串。

输出控件(Indicators)

  • States Out: 过滤后的状态描述字符串。

CSM - Filter Messages to Non-Existing Modules.vi

该VI用于过滤CSM状态队列中发送到不存在模块的消息。这个VI中会使用CSM - List Modules VI获取所有活动的CSM模块,然后过滤掉发送给不存在模块的消息。

CSM 的状态队列操作API

该类型API不会直接发送消息,只是拼接消息字符串。在Parse State Queue++.vi中发送消息、执行操作。与消息拼接API不同的是,此类API会包含CSM的状态队列字符串输入,相当于在状态队列中插入消息。

输入控件(Controls)

  • States In: 待过滤的整段状态描述字符串。

输出控件(Indicators)

  • States Out: 过滤后的状态描述字符串。

CSM - Filter Broadcasts.vi

该VI用于过滤CSM状态队列中的广播消息。

CSM 的状态队列操作API

该类型API不会直接发送消息,只是拼接消息字符串。在Parse State Queue++.vi中发送消息、执行操作。与消息拼接API不同的是,此类API会包含CSM的状态队列字符串输入,相当于在状态队列中插入消息。

输入控件(Controls)

  • States In: 待过滤的整段状态描述字符串。

输出控件(Indicators)

  • States Out: 过滤后的状态描述字符串。

CSM - Filter Status Broadcasts.vi

该VI用于过滤CSM状态队列中的状态广播消息。

CSM 的状态队列操作API

该类型API不会直接发送消息,只是拼接消息字符串。在Parse State Queue++.vi中发送消息、执行操作。与消息拼接API不同的是,此类API会包含CSM的状态队列字符串输入,相当于在状态队列中插入消息。

输入控件(Controls)

  • States In: 待过滤的整段状态描述字符串。

输出控件(Indicators)

  • States Out: 过滤后的状态描述字符串。

CSM - Filter Interrupt Broadcasts.vi

该VI用于过滤CSM状态队列中的中断广播消息。

CSM 的状态队列操作API

该类型API不会直接发送消息,只是拼接消息字符串。在Parse State Queue++.vi中发送消息、执行操作。与消息拼接API不同的是,此类API会包含CSM的状态队列字符串输入,相当于在状态队列中插入消息。

输入控件(Controls)

  • States In: 待过滤的整段状态描述字符串。

输出控件(Indicators)

  • States Out: 过滤后的状态描述字符串。

CSM - Filter Duplicated Lines.vi

该VI用于过滤CSM状态队列中的重复行。

CSM 的状态队列操作API

该类型API不会直接发送消息,只是拼接消息字符串。在Parse State Queue++.vi中发送消息、执行操作。与消息拼接API不同的是,此类API会包含CSM的状态队列字符串输入,相当于在状态队列中插入消息。

输入控件(Controls)

  • Keep First Matched? (T): 是否保留第一个匹配项,默认为TRUE。
  • States In: 待过滤的整段状态描述字符串。
  • Option: 过滤选项。

输出控件(Indicators)

  • States Out: 过滤后的状态描述字符串。