工具VI(Utility VIs)
状态字符串操作
CSM - Compact Multiple States.vi
将多个状态紧凑成单个字符串以供输入使用。
消息拼接API
该类型API不会直接发送消息,仅用于拼接消息字符串。需将字符串并入CSM的状态队列后,在Parse State Queue++ VI中发送消息并执行操作。在熟悉CSM规则的情况下,可不必使用此类API,直接在字符串中键入对应的消息字符串或操作字符串。
– 输入控件(Controls) –
- Multiple States: CSM状态字符串数组。
– 输出控件(Indicators) –
- States: 包含多行CSM状态字符串的字符串。
CSM - Break Down Multiple States String.vi
将包含多行CSM状态字符串的字符串切割成CSM状态字符串数组。
– 输入控件(Controls) –
- States: 包含多行CSM状态字符串的字符串。
– 输出控件(Indicators) –
- Multiple States: CSM状态字符串数组。
CSM - Build Exit Messages of CSMs.vi
输入CSM模块名称,拼接生成退出消息(Macro: Exit)。
消息拼接API
该类型API不会直接发送消息,仅用于拼接消息字符串。需将字符串并入CSM的状态队列后,在Parse State Queue++ VI中发送消息并执行操作。在熟悉CSM规则的情况下,可不必使用此类API,直接在字符串中键入对应的消息字符串或操作字符串。
– 输入控件(Controls) –
- CSMs: CSM模块名称数组。
- State with Arguments(“Macro: Exit”): 退出消息。
– 输出控件(Indicators) –
- States: 拼接生成的CSM消息字符串。
CSM - Filter Duplicate Messages By Name.vi
过滤重复的消息,只保留最新的消息。
CSM 的状态队列操作API
该类型API不会直接发送消息,只是拼接消息字符串。在Parse State Queue++.vi中发送消息、执行操作。与消息拼接API不同的是,此类API会包含CSM的状态队列字符串输入,相当于在状态队列中插入消息。
– 输入控件(Controls) –
- States: 输入的消息字符串。
- Whole Messages in Check?(T): 是否检查整个消息字符串。如果是FALSE,则只检查消息名称。
– 输出控件(Indicators) –
- Filtered States: 过滤后的消息字符串。
CSM - Remove Duplicated Following Messages.vi
CSM 的状态队列操作API
该类型API不会直接发送消息,只是拼接消息字符串。在Parse State Queue++.vi中发送消息、执行操作。与消息拼接API不同的是,此类API会包含CSM的状态队列字符串输入,相当于在状态队列中插入消息。
– 输入控件(Controls) –
- Current State:
- Remaining States:
– 输出控件(Indicators) –
- Remaining States Left:
- Current State: Controls
- Remaining States Left: Indicators
数据类型字符串描述
CSM Data Type String.vi
获取输入数据对应的数据类型描述字符串,通常用在参数描述中,用于判断参数携带的参数类型。
– 输入控件(Controls) –
- Data: 输入数据。
– 输出控件(Indicators) –
- Data Type String: 数据类型描述字符串。
CSM Data Type String to Enum.vi
从数据类型描述字符串中LabVIEW定义的数据类型枚举。
CSM Data Type String to Enum(String).vi
从数据类型描述字符串中LabVIEW定义的数据类型枚举,子类型使用字符串描述。
– 输入控件(Controls) –
- Data Type String: 输入的数据类型描述字符串。
– 输出控件(Indicators) –
- Primary Type: 数据类型枚举。
- Secondary Type String: 如果是复合的数据类型,返回子类型字符串,例如Array数据类型中的元素类型。
- Array Dim: 如果是数组数据类型,返回数组维度。
CSM Data Type String to Enum(TypeEnum).vi
从数据类型描述字符串中LabVIEW定义的数据类型枚举,并返回Array子类型使用枚举。
– 输入控件(Controls) –
- Data Type String: 输入的数据类型描述字符串。
– 输出控件(Indicators) –
- Primary Type: 数据类型枚举。
- Secondary Type String: Array子类型枚举。
- Array Dim: 如果是数组数据类型,返回数组维度。
CSM Data Type String to Enum(RefnumEnum).vi
从数据类型描述字符串中LabVIEW定义的数据类型枚举,并返回Refnum子类型使用枚举。
– 输入控件(Controls) –
- Data Type String: 输入的数据类型描述字符串。
– 输出控件(Indicators) –
- Primary Type: 数据类型枚举。
- Secondary Type String: Refnum子类型枚举。
- Array Dim: 如果是数组数据类型,返回数组维度。
其他工具VI
uuid.vi
根据标准方法生成Universally Unique Identifier (UUID)。 例如:
- 59703F3AD837
- 106A470BA5EC
- 9B781DB313AF
– 输出控件(Indicators) –
- UUID: 生成的UUID。
String History Cacher.vi
保存当前输入的字符串到缓存,缓存的历史字符串,当超出最大长度限制时,最先进入的缓存字符串将被覆盖。用于调试CSM的历史状态。
– 输入控件(Controls) –
- String: 待缓存字符串。
- length: 缓存的历史字符串最大字符串长度。
- Include Timestamp? (T): 是否在每行开头包含时间戳。
- Format String: 时间戳的格式。
– 输出控件(Indicators) –
- String Cache: 缓存的历史字符串。
Random Change Flag.vi
生成一个随机的数值,用于标记状态的变化,CSM中为了提高效率,有些地方的缓存(cache)利用这个标记来判断是否需要更新。
– 输出控件(Indicators) –
- Random Change Flag: 生成的随机数值。
State Triggered Reason.vi
从Parse State Queue++ VI的输出Additional Information和Source CSM推断出触发当前状态的原因。
结果可能是:
- LocalCall: 本地调用,非外部触发
- Message: 外部消息触发
- Broadcast: 由广播触发
– 输入控件(Controls) –
- Additional Information: 此状态的额外信息。
- Source CSM: 源模块信息。
– 输出控件(Indicators) –
- Additional Information (dup): 输入的额外信息副本。
- Source CSM (dup): 输入的源模块信息副本。
- Reason: 触发当前状态的原因。
Format Timestamp.vi
格式化时间戳为指定的字符串格式, 此VI为CSM Global Log中使用。
– 输入控件(Controls) –
- Timestamp: 时间戳,单位为秒。
- Format String: 时间戳格式字符串,例如:
%<%Y/%m/%d %H:%M:%S%3u>T。
– 输出控件(Indicators) –
- String: 格式化后的时间戳字符串。