diff --git a/.github/workflows/Build_VIPM_Library.yml b/.github/workflows/Build_VIPM_Library.yml index 1e77a47..d473f51 100644 --- a/.github/workflows/Build_VIPM_Library.yml +++ b/.github/workflows/Build_VIPM_Library.yml @@ -9,10 +9,24 @@ on: branches: - main types: [closed] + paths-ignore: + - '**.md' + - '**.txt' + - '**.drawio' + - '**.png' + - '**.svg' + - '**.json' + - '**.yml' push: paths-ignore: - '**.md' + - '**.txt' + - '**.drawio' + - '**.png' + - '**.svg' + - '**.json' + - '**.yml' # Allows you to run this workflow manually from the Actions tab workflow_dispatch: diff --git a/.github/workflows/Check_Broken_VIs.yml b/.github/workflows/Check_Broken_VIs.yml index d9f5d4a..bda379f 100644 --- a/.github/workflows/Check_Broken_VIs.yml +++ b/.github/workflows/Check_Broken_VIs.yml @@ -5,12 +5,30 @@ name: Check_Broken_VIs # Controls when the workflow will run on: # Triggers the workflow on push or pull request events but only for the main branch + pull_request: + branches: + - main + types: [closed] + paths-ignore: + - '**.md' + - '**.txt' + - '**.drawio' + - '**.vipb' + - '**.png' + - '**.svg' + - '**.json' + - '**.yml' + push: paths-ignore: - '**.md' - '**.txt' - '**.drawio' - '**.vipb' + - '**.png' + - '**.svg' + - '**.json' + - '**.yml' # A workflow run is made up of one or more jobs that can run sequentially or in parallel jobs: diff --git a/.github/workflows/Run Testcases.yml b/.github/workflows/Run Testcases.yml index 67c6c3f..5caae17 100644 --- a/.github/workflows/Run Testcases.yml +++ b/.github/workflows/Run Testcases.yml @@ -5,6 +5,20 @@ name: Run Testcases # Controls when the workflow will run on: # Triggers the workflow on push or pull request events but only for the main branch + pull_request: + branches: + - main + types: [closed] + paths-ignore: + - '**.md' + - '**.txt' + - '**.drawio' + - '**.vipb' + - '**.png' + - '**.svg' + - '**.json' + - '**.yml' + push: paths-ignore: - '**.md' @@ -12,6 +26,7 @@ on: - '**.drawio' - '**.vipb' - '**.png' + - '**.svg' - '**.json' - '**.yml' diff --git a/CSM API String Arguments Support.vipb b/CSM API String Arguments Support.vipb index a246567..8146b29 100644 --- a/CSM API String Arguments Support.vipb +++ b/CSM API String Arguments Support.vipb @@ -1,7 +1,7 @@ - + NEVSTOP_lib_CSM_API_String_Arguments_Support - 2025.8.0.1 + 2025.9.0.1 false . vip @@ -17,8 +17,8 @@ - labview_open_source_lib_epoch_datetime >=1.3.0.8 - nevstop_lib_communicable_state_machine >=2025.7.30.163451 + labview_open_source_lib_epoch_datetime =1.2.0.6 + nevstop_lib_communicable_state_machine >=2025.9.13.224959 nevstop_lib_jki_state_machine++ >=2023.8.5.2239 @@ -53,9 +53,7 @@ More information for the supported datatype format, please visit: https://github NEVSTOP https://github.com/NEVSTOP-LAB/CSM-API-String-Arugments-Support - [add] Add a sub-palette in argument palette -[update] #90 Mark "CSM - Query CSM VI Ref By API String.vi" as obsolete. Prompt user to use "CSM - Module VI Reference.vi" instead. -[update] update dependency to latest version. + [feature] #95 support lvlibp @@ -268,7 +266,6 @@ More information for the supported datatype format, please visit: https://github false false false - false true diff --git a/README(CN).md b/README(CN).md index cc5919e..bf7d3dd 100644 --- a/README(CN).md +++ b/README(CN).md @@ -2,45 +2,45 @@ [English](./README.md) | [中文](./README(CN).md) -[![Image](https://www.vipm.io/package/nevstop_lib_csm_api_string_arguments_support/badge.svg?metric=installs)](https://www.vipm.io/package/nevstop_lib_csm_api_string_arguments_support/) -[![Image](https://www.vipm.io/package/nevstop_lib_csm_api_string_arguments_support/badge.svg?metric=stars)](https://www.vipm.io/package/nevstop_lib_csm_api_string_arguments_support/) -[![License](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](https://opensource.org/licenses/Apache-2.0) -[![GitHub all releases](https://img.shields.io/github/downloads/NEVSTOP-LAB/CSM-API-String-Arguments-Support/total)](https://github.com/NEVSTOP-LAB/CSM-API-String-Arguments-Support/releases) +[![安装量](https://www.vipm.io/package/nevstop_lib_csm_api_string_arguments_support/badge.svg?metric=installs)](https://www.vipm.io/package/nevstop_lib_csm_api_string_arguments_support/) +[![星级评分](https://www.vipm.io/package/nevstop_lib_csm_api_string_arguments_support/badge.svg?metric=stars)](https://www.vipm.io/package/nevstop_lib_csm_api_string_arguments_support/) +[![许可证](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](https://opensource.org/licenses/Apache-2.0) +[![GitHub下载量](https://img.shields.io/github/downloads/NEVSTOP-LAB/CSM-API-String-Arguments-Support/total)](https://github.com/NEVSTOP-LAB/CSM-API-String-Arguments-Support/releases) -增强通信状态机(CSM)的API参数。它允许以纯文本格式包含各种数据类型,并且保证更加利于手动输入。 +该库用于增强通信状态机(CSM)的API参数功能,支持以纯文本格式传递各种数据类型,且特别优化了手动输入体验。 -这个库提供了两个新的 CSM 模板, 这两个模板都包含 “Data: Get Configuration”和“Data: Set Configuration”两个内置的状态,用于访问存储在 '>> internal data >>' 移位寄存器中的配置数据。 +库中提供了两个新的CSM模板,它们都包含"Data: Get Configuration"和"Data: Set Configuration"两个内置状态,用于访问存储在'>> internal data >>'移位寄存器中的配置数据。 ![example](.github/doc.png) -## 支持数据类型 +## 支持的数据类型 -- 字符串(String) -- 路径(Path) -- 布尔(Boolean) -- 标签(Tag) -- Refnum(IVI/VISA/UserDefinedRefnumTag) -- 整数(I8,I16,I32,I64,U8,U16,U32,U64) -- 浮点数(DBL/SGL) -- 复数(DBL/SGL) -- 时间戳(Timestamp) -- 枚举(Enum) -- 数组(Array) -- 簇(Cluster) -- 其他(使用CSM-Hexstr) +- 字符串 (String) +- 路径 (Path) +- 布尔值 (Boolean) +- 标签 (Tag) +- 引用号 (Refnum,包括IVI/VISA/UserDefinedRefnumTag) +- 整数 (I8,I16,I32,I64,U8,U16,U32,U64) +- 浮点数 (DBL/SGL) +- 复数 (DBL/SGL) +- 时间戳 (Timestamp) +- 枚举 (Enum) +- 数组 (Array) +- 簇 (Cluster) +- 其他类型 (使用CSM-Hexstr表示) -### 字符串(String)/路径(Path)/Refnum(IVI/VISA/UserDefinedRefnumTag)/标签(Tag) +### 字符串(String)/路径(Path)/引用号(Refnum)/标签(Tag) -字符串/路径遵循CSM的规则。'->|' '->' '-@' '-&' '>>' ',' ';' 在传递之前应该被替换为 %[Hex] 字符串。效果与使用 **CSM AdvanceAPI\CSM Make String Arguments Safe.vi** 相同。 +字符串和路径类型遵循CSM的规则,特殊字符如'->|'、'->'、'-@'、'-&'、'>>'、','和';'在传递前会自动转换为%[十六进制]字符串,效果等同于使用**CSM AdvanceAPI\CSM Make String Arguments Safe.vi**。 > [!NOTE] -> LabVIEW 的 Refnum(IVI/VISA/UserDefinedRefnumTag) 和标签(Tag) 也支持,规则与 String 类型相同。 +> LabVIEW的引用号(Refnum,包括IVI/VISA/UserDefinedRefnumTag)和标签(Tag)也支持,转换规则与String类型相同。 -### 布尔(Boolean) +### 布尔值(Boolean) -内置的TRUE/FALSE字符串: +内置的TRUE/FALSE字符串对: -``` text +```text - T/F - True/False - On/Off @@ -53,19 +53,19 @@ ``` > [!NOTE] -> 空字符串将被转换为Prototype的输入值。 +> 空字符串将转换为原型(Prototype)的输入值。 > [!NOTE] -> 你可以使用 `API String - Add Boolean Strings.vi` 或 `API String - Remove Boolean Strings.vi` 来设置你自己的布尔字符串。 +> 可以使用`API String - Add Boolean Strings.vi`或`API String - Remove Boolean Strings.vi`自定义布尔字符串对。 > [!NOTE] -> 标签-数据对(Tag:Value)可以被正确解析。标签只用于提高可读性,转换时会被忽略。 +> 标签-数据对(Tag:Value)可以被正确解析。标签仅用于提高可读性,转换过程中会被忽略。 ### 整数(I8,I16,I32,I64,U8,U16,U32,U64) -支持的数据格式有:普通整数,十进制,十六进制,二进制,八进制,十六进制后缀,十六进制后缀,二进制后缀,八进制后缀。举例如下: +支持的数据格式包括:普通整数、十进制、十六进制、二进制、八进制,以及带后缀的表示方法。例如: -``` text +```text - 12345 - 0d12345 - 0x1234 @@ -79,114 +79,114 @@ ``` > [!NOTE] -> 空字符串将被转换为Prototype的输入值。 +> 空字符串将转换为原型(Prototype)的输入值。 > [!NOTE] -> 标签-数据对(Tag:Value)可以被正确解析。标签只用于提高可读性,转换时会被忽略。 +> 标签-数据对(Tag:Value)可以被正确解析。标签仅用于提高可读性,转换过程中会被忽略。 ### 浮点数(DBL/SGL) -支持的数据格式有:普通浮点数,科学计数法,以及特殊浮点数。举例如下: +支持的数据格式包括:普通浮点数、科学计数法以及特殊浮点数。例如: -``` text +```text - 1.2345 - 1.23E+2 - 1.23E-2 - - 1.23Y (1.23*10^24) - - 1.23Z (1.23*10^21) - - 1.23E (1.23*10^18) - - 1.23P (1.23*10^15) - - 1.23T (1.23*10^12) - - 1.23G (1.23*10^9) - - 1.23M (1.23*10^6) - - 1.23k (1.23*10^3) - - 1.23m (1.23*0.001) - - 1.23u (1.23*0.000001) - - 1.23n (1.23*10^-9) - - 1.23p (1.23*10^-12) - - 1.23f (1.23*10^-15) - - 1.23a (1.23*10^-18) - - 1.23z (1.23*10^-21) - - 1.23y (1.23*10^-24) + - 1.23Y (1.23×10^24) + - 1.23Z (1.23×10^21) + - 1.23E (1.23×10^18) + - 1.23P (1.23×10^15) + - 1.23T (1.23×10^12) + - 1.23G (1.23×10^9) + - 1.23M (1.23×10^6) + - 1.23k (1.23×10^3) + - 1.23m (1.23×0.001) + - 1.23u (1.23×0.000001) + - 1.23n (1.23×10^-9) + - 1.23p (1.23×10^-12) + - 1.23f (1.23×10^-15) + - 1.23a (1.23×10^-18) + - 1.23z (1.23×10^-21) + - 1.23y (1.23×10^-24) - 特殊浮点数值: `e`,`-e`,`pi`,`-pi`,`inf`,`+inf`,`-inf`,`NaN` ``` > [!NOTE] -> 空字符串将被转换为Prototype的输入值。 +> 空字符串将转换为原型(Prototype)的输入值。 > [!NOTE] -> 默认精度为6位有效数字. 可以通过 `API String - Set Float Precision.vi` 修改。 +> 默认精度为6位有效数字。可以通过`API String - Set Float Precision.vi`修改精度。 > [!NOTE] -> 标签-数据对(Tag:Value)可以被正确解析。标签只用于提高可读性,转换时会被忽略。 +> 标签-数据对(Tag:Value)可以被正确解析。标签仅用于提高可读性,转换过程中会被忽略。 > [!NOTE] -> 带有单位的数据字符串也会被正确解析。 +> 带有单位的浮点数字符串也支持正确解析。 _**特殊情况说明**_: -- 如果浮点数字符串与单位字符串之间存在空格,则所有包含浮点数字符串后面的符号的字符串都被识别为单位字符串。 +- 如果浮点数字符串与单位字符串之间存在空格,则浮点数后面的所有内容(包括符号)都被识别为单位字符串。 > 1.23mA : 浮点数: 1.23m; 单位: A > 1.23 mA : 浮点数: 1.23; 单位: mA -- 对于科学计数法模式,无论是否存在空格,浮点数后面的字符串都被识别为单位字符串。 +- 对于科学计数法表示的浮点数,无论是否存在空格,浮点数后面的字符串都被识别为单位字符串。 > 1.23E+5mA: 浮点数: 1.23E+5; 单位: mA > 1.23E+5 mA: 浮点数: 1.23E+5; 单位: mA > [!NOTE] -> `e`,`-e`,`pi`,`-pi`,`inf`,`+inf`,`-inf`,`NaN` 不支持单位。 +> `e`、`-e`、`pi`、`-pi`、`inf`、`+inf`、`-inf` 和 `NaN` 等特殊浮点数值不支持单位。 ### 复数(DBL/SGL) -`a+bi` or `a-bi` 表示复数. `a` 和 `b` 支持所有的浮点数表达方式. +`a+bi` 或 `a-bi` 格式表示复数。其中 `a` 和 `b` 支持所有浮点数的表达方式。 > [!NOTE] -> 空字符串将被转换为Prototype的输入值。 +> 空字符串将转换为原型(Prototype)的输入值。 > [!NOTE] -> 标签-数据对(Tag:Value)可以被正确解析。标签只用于提高可读性,转换时会被忽略。 +> 标签-数据对(Tag:Value)可以被正确解析。标签仅用于提高可读性,转换过程中会被忽略。 ### 时间戳(Timestamp) -时间戳的表达格式为:`TimeStamp_String(Format_String)`. `Format_String` 将用与解析扫描 `TimeStamp_String`. +时间戳的标准格式为:`TimeStamp_String(Format_String)`。其中 `Format_String` 用于解析 `TimeStamp_String`。 -``` text -"2023-10-11 22:54:33(%<%Y-%m-%d %H:%M:%S>T)" 等效于时间戳 "2023-10-11T14:54:33.000Z". +```text +"2023-10-11 22:54:33(%<%Y-%m-%d %H:%M:%S>T)" 等效于 UTC 时间戳 "2023-10-11T14:54:33.000Z". ``` _**特殊情况说明**_: -字符串没有包含 `Format_String`时, `TimeStamp_String` 应该满足 ISO8601 UTC 标准. +当字符串不包含 `Format_String` 时,`TimeStamp_String` 应符合 ISO8601 UTC 标准格式。 -``` text +```text "2023-10-31T14:49:39.597Z" 为有效的表达方式. "2023-10-31T22:49:39.597+08:00" 为有效的表达方式. ``` > [!NOTE] -> 对于时间戳,空字符串将被转换为当前时间。 +> 对于时间戳,空字符串将转换为当前时间。 ### 枚举(Enum) -`Indexed Enum` 定义为 [索引编号(index)][分隔符(separator)][枚举字符串] 格式的字符串。以下都是支持的表达方式: +`Indexed Enum` 定义为 [索引编号(index)][分隔符(separator)][枚举字符串] 格式的字符串。支持以下表达方式: -> 普通数字作为索引编号(index), == 作为分隔符(separator) +> 十进制数字作为索引,== 作为分隔符: > > - 1 == boolean > - 2 == string > - 4 == dbl > - 8 == number > -> HEX数字作为索引编号(index), -- 作为分隔符(separator) +> 十六进制数字作为索引,-- 作为分隔符: > > - 0x01 -- boolean > - 0x02 -- string > - 0x04 -- dbl > - 0x08 -- number > -> 二进制数字作为索引编号(index), -- 作为分隔符(separator) +> 二进制数字作为索引,__ 作为分隔符: > > - 0b0001 __ boolean > - 0b0010 __ string @@ -194,38 +194,42 @@ _**特殊情况说明**_: > - 0b1000 __ number > [!NOTE] -> 索引编号(index)支持所有的整数表达方式。 +> 索引编号(index)支持所有整数的表达方式。 -_**转换规则1: 没有索引编号时,通过字符串匹配进行转换**_ +_**转换规则1: 没有索引编号时**_ -Enum = {AAA,BBBB,CCCC} +当没有索引编号时,通过字符串匹配进行转换。 -- 字符串 "AAA" 将被转换为 Enum(AAA), Enum的数字值为 0 -- 字符串 "CCC" 将被转换为 Enum(CCC), Enum的数字值为 2 +示例:Enum = {AAA, BBBB, CCCC} -_**转换规则2:在包含索引编号时,既可以通过字符串匹配转换,也可以通过索引编号(index)匹配进行转换**_ +- 字符串 "AAA" 将转换为 Enum(AAA),数字值为 0 +- 字符串 "CCC" 将转换为 Enum(CCC),数字值为 2 -Enum = {1- AAA,5 - BBBB, 9 - CCCC} +_**转换规则2:包含索引编号时**_ -- 字符串 "AAA" 将被转换为 Enum(1- AAA), Enum的数字值为 0 -- 字符串 "5" 将被转换为 Enum(5 - BBBB), Enum的数字值为 1 -- 字符串 "9 - CCCC" 将被转换为 Enum(9 - CCCC), Enum的数字值为 2 +当包含索引编号时,既可以通过字符串匹配转换,也可以通过索引编号匹配转换。 + +示例:Enum = {1- AAA, 5 - BBBB, 9 - CCCC} + +- 字符串 "AAA" 将转换为 Enum(1- AAA),数字值为 0 +- 字符串 "5" 将转换为 Enum(5 - BBBB),数字值为 1 +- 字符串 "9 - CCCC" 将转换为 Enum(9 - CCCC),数字值为 2 ### 数组(Array) -',' 用于元素分隔符,';' 用于行分隔符。 '[' 和 ']' 用于边界符号。 如果不是复杂的混合数据类型,'[' 和 ']'可以省略。 +逗号(,) 用于元素分隔,分号(;) 用于行分隔。方括号([ 和 ]) 用作边界符号。对于非复杂的混合数据类型,方括号可以省略。 -**举例:** +**示例:** -`a,b,c,d,e` 和 `[a,b,c,d,e]` 都表示一个5个元素的数组 +`a,b,c,d,e` 和 `[a,b,c,d,e]` 都表示一个包含5个元素的数组: -``` text +```text a b c d e ``` -`a;b;c;d;e` 和 `[a;b;c;d;e]` 都表示一个5个元素的数组 +`a;b;c;d;e` 和 `[a;b;c;d;e]` 都表示一个包含5个元素的数组: -``` text +```text a b c @@ -233,66 +237,66 @@ d e ``` -`a1, b1, c1, d1, e1; a2, b2, c2, d2, e2` 和 `[a1, b1, c1, d1, e1; a2, b2, c2, d2, e2]` 表示一个 2*5 的二维数组。 +`a1, b1, c1, d1, e1; a2, b2, c2, d2, e2` 和 `[a1, b1, c1, d1, e1; a2, b2, c2, d2, e2]` 表示一个 2×5 的二维数组: -``` text +```text a1 b1 c1 d1 e1 a2 b2 c2 d2 e2 ``` > [!NOTE] -> 空字符串将被转换为Prototype的输入值。 +> 空字符串将转换为原型(Prototype)的输入值。 ### 簇(Cluster) **转换规则1: 标签-数据对(Tag:Value)模式** -输入字符串是一些标签-数据对(Tag:Value),':'用于分隔标签和数据,';'用于分隔元素。'{'和'}'用于边界符号。如果不是复杂的混合数据类型,'{'和'}'可以省略。其他规则如下: +在标签-数据对模式下,输入字符串由多个标签-数据对组成,冒号(:)用于分隔标签和数据,分号(;)用于分隔不同元素。花括号({ 和 })用作边界符号。对于非复杂的混合数据类型,花括号可以省略。其他规则如下: + +- 标签对应簇中元素的名称,值会根据对应元素的数据类型进行转换。 +- 只需描述需要修改的元素,与数据原型一致的元素可以省略。 +- 通过名称匹配元素,顺序无关紧要。 +- 对于嵌套簇,子簇元素的标签格式为"父簇标签.子簇元素标签"。 +- 嵌套簇中,如果子簇元素的标签名称唯一,可以省略父簇的标签。 + +**示例:** -- 标签是簇中元素的名称,值转换对应簇中元素的数据类型。 -- 只需要描述发生变化的元素即可,与数据原型中一致的数据,可缺省。 -- 通过名称匹配,顺序并不重要。 -- 嵌套的簇,子簇的标签为簇的标签加上子簇内元素的标签,中间用'.'分隔。 -- 嵌套的簇,如果子簇的标签名字唯一,可以省略父簇的标签。 -s -**举例:** -s -假如一个簇的数据原型如下: +假设有一个簇的数据原型如下: -``` text +```text typedef cluster{ -Boolean b; -String str; -U32 integer -Cluster subCluster - { - Boolean b2; - } + Boolean b; + String str; + U32 integer + Cluster subCluster + { + Boolean b2; + } } ``` -> `b:On` 和 `{b:On}` 表示只修改 cluster's 布尔类型数据 b 为 TRUE. 其他两个元素的值与Prototype的输入值一致。 +> `b:On` 和 `{b:On}` 都表示仅将簇中的布尔类型数据 `b` 设置为 TRUE。其他元素的值保持原型输入值不变。 > -> `b:On;str:abcdef` 和 `{b:On;str:abcdef}` 表示修改 cluster's 布尔类型数据 b 为 TRUE 和 String 类型数据 str 为 "abcdef". 其他元素的值与Prototype的输入值一致。 +> `b:On;str:abcdef` 和 `{b:On;str:abcdef}` 都表示将簇中的布尔类型数据 `b` 设置为 TRUE,字符串类型数据 `str` 设置为 "abcdef"。其他元素的值保持原型输入值不变。 > -> `{subCluster.b2:On}` 表示修改 cluster's 子簇的布尔类型数据 b2 为 TRUE. 其他元素的值与Prototype的输入值一致。由于b2是唯一的,可以省略父簇的标签。`b2:On` 也表示相同的转换。 +> `{subCluster.b2:On}` 表示将簇中子簇的布尔类型数据 `b2` 设置为 TRUE。其他元素的值保持原型输入值不变。由于 `b2` 是唯一的,可以省略父簇标签,直接使用 `b2:On` 也表示相同的转换。 **转换规则2: 无标签模式** -对于簇,支持只输入数据字符串,这些值由分号分隔。 +对于簇,也支持仅输入数据字符串,各值之间用分号分隔。 -- 顺序非常重要,元素的顺序很重要。第一个元素将设置为簇的第一个元素,第二个元素将设置为簇的第二个元素,依此类推。 -- 如果输入字符串的元素少于簇的元素,则剩余的元素将保持不变。 -- 如果输入字符串的元素多于簇的元素,则多余的元素将被忽略。 +- 顺序非常重要。第一个元素值将设置给簇的第一个元素,第二个元素值设置给簇的第二个元素,以此类推。 +- 如果输入字符串的元素数量少于簇的元素数量,剩余的元素将保持不变。 +- 如果输入字符串的元素数量多于簇的元素数量,多余的元素将被忽略。 -> `on;abcdef;13` 和 `{on;abcdef;13}` 表示将簇的 b 更改为 TRUE 和 str 更改为 "abcdef",U32整数更改为 13。如果簇有更多元素,它们将保持不变。 +> `on;abcdef;13` 和 `{on;abcdef;13}` 都表示将簇中的 `b` 更改为 TRUE,`str` 更改为 "abcdef",U32整数更改为 13。如果簇有更多元素,它们将保持不变。 > -> `on;abcdef` 和 `{on;abcdef}` 表示将簇的 b 更改为 TRUE 和 str 更改为 "abcdef"。其他元素的值与Prototype的输入值一致。 +> `on;abcdef` 和 `{on;abcdef}` 都表示将簇中的 `b` 更改为 TRUE,`str` 更改为 "abcdef"。其他元素的值保持原型输入值不变。 > [!NOTE] -> 空字符串将被转换为Prototype的输入值。 +> 空字符串将转换为原型(Prototype)的输入值。 -### 其他(使用CSM-Hexstr) +### 其他类型(使用CSM-Hexstr) -其他数据类型将被先转换为变体(Variant),并使用CSM-HexStr表示。 +其他数据类型将首先被转换为变体(Variant),然后使用CSM-HexStr进行表示和转换。 diff --git a/README.md b/README.md index c604627..f26a582 100644 --- a/README.md +++ b/README.md @@ -2,44 +2,44 @@ [English](./README.md) | [中文](./README(CN).md) -[![Image](https://www.vipm.io/package/nevstop_lib_csm_api_string_arguments_support/badge.svg?metric=installs)](https://www.vipm.io/package/nevstop_lib_csm_api_string_arguments_support/) -[![Image](https://www.vipm.io/package/nevstop_lib_csm_api_string_arguments_support/badge.svg?metric=stars)](https://www.vipm.io/package/nevstop_lib_csm_api_string_arguments_support/) -[![GitHub all releases](https://img.shields.io/github/downloads/NEVSTOP-LAB/CSM-API-String-Arguments-Support/total)](https://github.com/NEVSTOP-LAB/CSM-API-String-Arguments-Support/releases) +[![Installs](https://www.vipm.io/package/nevstop_lib_csm_api_string_arguments_support/badge.svg?metric=installs)](https://www.vipm.io/package/nevstop_lib_csm_api_string_arguments_support/) +[![Stars](https://www.vipm.io/package/nevstop_lib_csm_api_string_arguments_support/badge.svg?metric=stars)](https://www.vipm.io/package/nevstop_lib_csm_api_string_arguments_support/) +[![GitHub Downloads](https://img.shields.io/github/downloads/NEVSTOP-LAB/CSM-API-String-Arguments-Support/total)](https://github.com/NEVSTOP-LAB/CSM-API-String-Arguments-Support/releases) -The purpose of this library is to enhance the API parameters for Communicable State Machine (CSM). It allows for the inclusion of various data types in plain text format. +This library enhances the API parameters for the Communicable State Machine (CSM) framework by enabling the inclusion of various data types in plain text format. -Two more templates which include "Data: Get Configuration", "Data: Set Configuration" and "Data: Get Internal Data" states, are provided in the library. These templates can serve as a starting point for building your CSM module with the ability to access data stored in the '>> internal data >>' shift register. +The library also provides two additional templates that include "Data: Get Configuration", "Data: Set Configuration", and "Data: Get Internal Data" states. These templates serve as a starting point for building CSM modules with the ability to access data stored in the '>> internal data >>' shift register. ![example](.github/doc.png) -## Supported Data Type +## Supported Data Types - String - Path - Tag -- Refnum(IVI/VISA/UserDefinedRefnumTag) +- Refnum (IVI/VISA/UserDefinedRefnumTag) - Boolean -- Integer(I8,I16,I32,I64,U8,U16,U32,U64) -- Float(DBL/SGL) -- Complex(DBL/SGL) +- Integer (I8,I16,I32,I64,U8,U16,U32,U64) +- Float (DBL/SGL) +- Complex (DBL/SGL) - Timestamp - Enum - Array - Cluster -- Other(use CSM-Hexstr) +- Other (using CSM-Hexstr) ### String/Path/Refnum(IVI/VISA/UserDefinedRefnumTag)/Tag -For String/Path datatype, CSM Key words '->|' '->' '-@' '-&' '>>' ',' ';' will be replaced with %[Hex] String before passing, which is as same as using **CSM AdvanceAPI\CSM Make String Arguments Safe.vi**. +For String/Path data types, CSM keywords like '->|', '->', '-@', '-&', '>>', ',', and ';' are automatically replaced with %[Hex] strings before passing, similar to how **CSM AdvanceAPI\CSM Make String Arguments Safe.vi** works. > [!NOTE] -> Refnum(IVI/VISA/UserDefinedRefnumTag) and Tag also support, and the rule is the same as String type. +> Refnum(IVI/VISA/UserDefinedRefnumTag) and Tag are also supported, following the same rules as the String type. ### Boolean Predefined TRUE/FALSE String Pairs: -``` text +```text TRUE/FALSE String Pairs: - T/F - True/False @@ -53,19 +53,19 @@ TRUE/FALSE String Pairs: ``` > [!NOTE] -> For Boolean, empty string will be converted to the input prototype value +> For Boolean values, an empty string will be converted to the input prototype value > [!NOTE] -> Use `API String - Add Boolean Strings.vi` or `API String - Remove Boolean Strings.vi` to set your own boolean string to be used. +> Use `API String - Add Boolean Strings.vi` or `API String - Remove Boolean Strings.vi` to customize your own boolean string pairs. > [!NOTE] -> Tag-value pair(Tag:Value) could be parsed correctly. Tag is used for readability and will be ignored during conversion. +> Tag-value pairs (Tag:Value) can be parsed correctly. Tags improve readability and are ignored during conversion. ### Integer -Supported format: Normal, Hex, Binary, Octal, Hex with suffix H, Octal with suffix O, Binary with suffix B, Decimal with suffix D. Example: +Supported formats: Normal, Hex, Binary, Octal, Hex with suffix H, Octal with suffix O, Binary with suffix B, Decimal with suffix D. Examples: -``` text +```text - 12345 - 0d12345 - 0x1234 @@ -79,116 +79,116 @@ Supported format: Normal, Hex, Binary, Octal, Hex with suffix H, Octal with suff ``` > [!NOTE] -> For Integer, empty string will be converted to the input prototype value +> For Integer values, an empty string will be converted to the input prototype value > [!NOTE] > Tag-value pair(Tag:Value) could be parsed correctly. Tag is used for readability and will be ignored during conversion. ### Float(DBL/SGL) -Supported format: Normal Float, Scientific Notation, Special Float. Example: +Supported formats: Normal Float, Scientific Notation, Special Float. Examples: -``` text +```text - 1.2345 - 1.23E+2 - 1.23E-2 - - 1.23Y (1.23*10^24) - - 1.23Z (1.23*10^21) - - 1.23E (1.23*10^18) - - 1.23P (1.23*10^15) - - 1.23T (1.23*10^12) - - 1.23G (1.23*10^9) - - 1.23M (1.23*10^6) - - 1.23k (1.23*10^3) - - 1.23m (1.23*0.001) - - 1.23u (1.23*0.000001) - - 1.23n (1.23*10^-9) - - 1.23p (1.23*10^-12) - - 1.23f (1.23*10^-15) - - 1.23a (1.23*10^-18) - - 1.23z (1.23*10^-21) - - 1.23y (1.23*10^-24) + - 1.23Y (1.23×10^24) + - 1.23Z (1.23×10^21) + - 1.23E (1.23×10^18) + - 1.23P (1.23×10^15) + - 1.23T (1.23×10^12) + - 1.23G (1.23×10^9) + - 1.23M (1.23×10^6) + - 1.23k (1.23×10^3) + - 1.23m (1.23×0.001) + - 1.23u (1.23×0.000001) + - 1.23n (1.23×10^-9) + - 1.23p (1.23×10^-12) + - 1.23f (1.23×10^-15) + - 1.23a (1.23×10^-18) + - 1.23z (1.23×10^-21) + - 1.23y (1.23×10^-24) - Special Float: `e`,`-e`,`pi`,`-pi`,`inf`,`+inf`,`-inf`,`NaN` ``` > [!NOTE] -> For float datatype, empty string will be converted to the input prototype value. +> For Float values, an empty string will be converted to the input prototype value. > [!NOTE] -> Default precision is 6. You can change it by `API String - Set Float Precision.vi` +> Default precision is 6 decimal places. You can change it using `API String - Set Float Precision.vi`. > [!NOTE] -> Tag-value pair could be parsed correctly. Tag is used for readability and will be ignored during conversion. +> Tag-value pairs can be parsed correctly. Tags improve readability and are ignored during conversion. > [!NOTE] -> Float String with Unit is also supported. +> Float strings with units are also supported. -_**special case**_: +_**Special Cases**_: -- If there is a `space` between float string and unit string, all strings include notation behind float string is recognized as unit string. +- If there is a `space` between the float string and unit string, all text following the float string (including notation) is recognized as the unit string. > 1.23mA : Float: 1.23m; Unit: A > 1.23 mA : Float: 1.23; Unit: mA -- For scientific notation mode, any string behind the float string is recognized as unit string. +- In scientific notation mode, any string following the float string is recognized as the unit string, regardless of spaces. > 1.23E+5mA: Float: 1.23E+5; Unit: mA > 1.23E+5 mA: Float: 1.23E+5; Unit: mA > [!NOTE] -> Unit is not supported for `e`,`-e`,`pi`,`-pi`,`inf`,`+inf`,`-inf`,`NaN` +> Units are not supported for special float values like `e`,`-e`,`pi`,`-pi`,`inf`,`+inf`,`-inf`, and `NaN`. ### Complex(DBL/SGL) -`a+bi` or `a-bi` stands of complex data type. `a` and `b` is supporting all Float format. +`a+bi` or `a-bi` represents complex data types. Both `a` and `b` support all Float formats described above. > [!NOTE] -> For Complex, empty string will be converted to the input prototype value +> For Complex values, an empty string will be converted to the input prototype value > [!NOTE] > Tag-value pair could be parsed correctly. Tag is used for readability and will be ignored during conversion. ### Timestamp -Timestamp's string format is `TimeStamp_String(Format_String)`. `Format_String` will be used to parse the `TimeStamp_String`. +Timestamp strings use the format `TimeStamp_String(Format_String)`. The `Format_String` is used to parse the `TimeStamp_String`. -``` text -"2023-10-11 22:54:33(%<%Y-%m-%d %H:%M:%S>T)" equal to UTC timestamp string "2023-10-11T14:54:33.000Z". +```text +"2023-10-11 22:54:33(%<%Y-%m-%d %H:%M:%S>T)" equals the UTC timestamp string "2023-10-11T14:54:33.000Z". ``` -_**special case**_: +_**Special Case**_: -If no time string format included in string, ISO8601 UTC standard is used. +If no time string format is included, the ISO8601 UTC standard is used by default. -``` text +```text "2023-10-31T14:49:39.597Z" is valid. "2023-10-31T22:49:39.597+08:00" is valid. ``` -`TimeStamp String(FormatString)`is supported. `FormatString` in "" will be used to parse `TimeStamp String`. +`TimeStamp String(FormatString)` is also supported. The `FormatString` enclosed in quotes will be used to parse the `TimeStamp String`. > [!NOTE] -> For Timestamp, empty string will be converted to current time. +> For Timestamp values, an empty string will be converted to the current time. ### Enum -Indexed Enum is defined as Enum Strings composed with [number] [separator] [enum String]. The following are supported expressions: +Indexed Enum is defined as Enum strings composed of [number] [separator] [enum string]. The following expressions are supported: -> hex Number, -- as separator +> Hexadecimal number with "--" as separator: > > - 0x01 -- boolean > - 0x02 -- string > - 0x04 -- dbl > - 0x08 -- number > -> binary Number, -- as separator +> Binary number with "__" as separator: > > - 0b0001 __ boolean > - 0b0010 __ string > - 0b0100 __ dbl > - 0b1000 __ number > -> Decided Number, == as separator +> Decimal number with "==" as separator: > > - 1 == boolean > - 2 == string @@ -196,39 +196,43 @@ Indexed Enum is defined as Enum Strings composed with [number] [separator] [enum > - 8 == number > [!NOTE] -> Index Number supports all integer expression. +> Index numbers support all integer expressions mentioned earlier. + +_**Rule 1: When No Index is Specified**_ -_**Rule1: When Index is not Specified, the string will be converted to Enum by matching the string.**_ +When no index is specified, the string is converted to an Enum by matching the string itself. -Enum = {AAA,BBBB,CCCC} +Example: Enum = {AAA, BBBB, CCCC} -- String "AAA" will be converted to Enum(AAA), IntegerValue = 0 -- String "CCC" will be converted to Enum(CCC), IntegerValue = 2 +- String "AAA" converts to Enum(AAA), IntegerValue = 0 +- String "CCC" converts to Enum(CCC), IntegerValue = 2 -_**Rule2: When Index is Specified, the string will be converted to Enum by matching the string or Index.**_ +_**Rule 2: When Index is Specified**_ -Enum = {1- AAA,5 - BBBB, 9 - CCCC} +When an index is specified, the string can be converted to an Enum by matching either the string or the index. -- String "AAA" will be converted to Enum(1- AAA), IntegerValue = 0 -- String "5" will be converted to Enum(5 - BBBB), IntegerValue = 1 -- String "9 - CCCC" will be converted to Enum(9 - CCCC), IntegerValue = 2 +Example: Enum = {1- AAA, 5 - BBBB, 9 - CCCC} + +- String "AAA" converts to Enum(1- AAA), IntegerValue = 0 +- String "5" converts to Enum(5 - BBBB), IntegerValue = 1 +- String "9 - CCCC" converts to Enum(9 - CCCC), IntegerValue = 2 ### Array -',' is used for element separator, ';' is usd for row separator. '[' & ']' are used for boundary symbol. If it's not a complex mixed data type, '[' & ']' can be omitted. +Commas (',') are used as element separators, and semicolons (';') are used as row separators. Square brackets ('[' and ']') serve as boundary symbols but can be omitted for simple data types. -**Example:** +**Examples:** -`a,b,c,d,e` and `[a,b,c,d,e]` stands for 5 elements array +`a,b,c,d,e` and `[a,b,c,d,e]` both represent a 5-element array: -``` text +```text a b c d e ``` -`a;b;c;d;e` and `[a;b;c;d;e]` stands for 5 elements array +`a;b;c;d;e` and `[a;b;c;d;e]` both represent a 5-element array: -``` text +```text a b c @@ -236,67 +240,67 @@ d e ``` -`a1, b1, c1, d1, e1; a2, b2, c2, d2, e2` and `[a1, b1, c1, d1, e1; a2, b2, c2, d2, e2]` stands for 2*5 2D array +`a1, b1, c1, d1, e1; a2, b2, c2, d2, e2` and `[a1, b1, c1, d1, e1; a2, b2, c2, d2, e2]` both represent a 2×5 2D array: -``` text +```text a1 b1 c1 d1 e1 a2 b2 c2 d2 e2 ``` > [!NOTE] -> Empty String will be ignored and the prototype input will be used as output. +> Empty strings are ignored, and the prototype input value is used as the output. ### Cluster **Tag:Value Mode** -In this mode, the input string is a list of tag:value pairs. The tag is the name of the element in the cluster, and the value is the value to be set. The tag and value are separated by a colon(':'). The tag:value pairs are separated by a semicolon(';'). '{' and '}' are used for boundary symbols. If it's not a complex mixed data type, '{' and '}' can be omitted. Other rules are as follows: +In Tag:Value mode, the input string consists of tag:value pairs. Tags represent element names in the cluster, and values represent the data to be set. Tags and values are separated by colons (':'), while tag:value pairs are separated by semicolons (';'). Curly braces ('{' and '}') serve as boundary symbols but can be omitted for simple data types. Additional rules: -- The tag is the name of the element in the cluster, and the value is the value to be set. -- Only the changing elements need to be described, and the data consistent with the data prototype can be omitted. -- The order is not important. -- For nested clusters, the tag of the sub-cluster is the tag of the cluster plus the tag of the elements in the sub-cluster, separated by '.'. -- For nested clusters, if the tag name of the sub-cluster is unique, the tag of the parent cluster can be omitted. -- If no name is given, the string input will be converted to the first element of the cluster. This is useful to make the first element primary. +- Tags correspond to element names in the cluster, and values are converted based on the corresponding element's data type. +- Only elements that need to change must be described; elements matching the data prototype can be omitted. +- The order of tag:value pairs is not important. +- For nested clusters, sub-cluster tags use dot notation (e.g., `ParentTag.ChildTag`). +- If a sub-cluster's tag name is unique, the parent cluster's tag can be omitted. +- If no name is provided, the string input is converted to the first element of the cluster, making it easy to prioritize the first element. **Example:** -Suppose a cluster as below: +Consider a cluster with the following structure: -``` text +```text typedef cluster{ -Boolean b; -String str; -U32 integer -Cluster subCluster - { - Boolean b2; - } + Boolean b; + String str; + U32 integer + Cluster subCluster + { + Boolean b2; + } } ``` -> `b:On` and `{b:On}` stands for change the input cluster's boolean b to TRUE. Other elements will keep as before. +> `b:On` and `{b:On}` both set the cluster's boolean value `b` to TRUE. All other elements remain unchanged. > -> `b:On;str:abcdef` and `{b:On;str:abcdef}` stands for change the input cluster's boolean b to TRUE and String str to "abcdef". Other elements will keep as before. +> `b:On;str:abcdef` and `{b:On;str:abcdef}` both set the cluster's boolean value `b` to TRUE and string `str` to "abcdef". All other elements remain unchanged. > -> `{subCluster.b2:On}` stands for change the input cluster's subCluster's boolean b2 to TRUE. Other elements will keep as before. Since b2 is unique, the parent cluster's tag can be omitted. `b2:On` also stands for the same conversion. +> `{subCluster.b2:On}` sets the boolean value `b2` in the nested `subCluster` to TRUE. All other elements remain unchanged. Since `b2` is unique, the parent cluster's tag can be omitted: `b2:On` achieves the same result. -**Not Tag Mode** +**Non-Tag Mode** -For Cluster, only input data string is supported. These value strings are separated by semicolons(;). +In Non-Tag mode, the input string consists only of data values separated by semicolons (;). -- The order of the elements is important. The first element will be set as the first element of the cluster, the second element will be set as the second element of the cluster, and so on. -- If the input string has fewer elements than the cluster, the remaining elements will remain unchanged. -- If the input string has more elements than the cluster, the extra elements will be ignored. +- Element order is critical. The first value sets the first cluster element, the second value sets the second cluster element, and so on. +- If the input string contains fewer elements than the cluster, the remaining elements retain their original values. +- If the input string contains more elements than the cluster, the extra values are ignored. -> `on;abcdef;13` 和 `{on;abcdef;13}` stands for change the input cluster's boolean b to TRUE, string str to "abcdef", and U32 integer to 13. If the cluster has more elements, they will remain unchanged. +> `on;abcdef;13` and `{on;abcdef;13}` both set the cluster's boolean value `b` to TRUE, string `str` to "abcdef", and U32 integer to 13. Any additional cluster elements remain unchanged. > -> `on;abcdef` and `{on;abcdef}` stands for change the input cluster's boolean b to TRUE and string str to "abcdef". Other elements will keep as before. +> `on;abcdef` and `{on;abcdef}` both set the cluster's boolean value `b` to TRUE and string `str` to "abcdef". All other elements remain unchanged. > > [!NOTE] -> Empty String will be converted to the input prototype value. +> Empty strings are converted to the input prototype value. -#### Other DataType +### Other Data Types -Other Datatype will be treated as variant and use CSM-HexStr for data transformation. +Other data types are treated as variants and transformed using CSM-HexStr. diff --git a/addons/API-String-Arugments-Support/API String - Add Boolean Strings.vi b/addons/API-String-Arugments-Support/API String - Add Boolean Strings.vi index 7ca0971..1a51154 100644 Binary files a/addons/API-String-Arugments-Support/API String - Add Boolean Strings.vi and b/addons/API-String-Arugments-Support/API String - Add Boolean Strings.vi differ diff --git a/addons/API-String-Arugments-Support/API String - Float Format String.vi b/addons/API-String-Arugments-Support/API String - Float Format String.vi index bb1cc3e..e193a85 100644 Binary files a/addons/API-String-Arugments-Support/API String - Float Format String.vi and b/addons/API-String-Arugments-Support/API String - Float Format String.vi differ diff --git a/addons/API-String-Arugments-Support/API String - List Boolean Strings.vi b/addons/API-String-Arugments-Support/API String - List Boolean Strings.vi index d7a10fb..19639b3 100644 Binary files a/addons/API-String-Arugments-Support/API String - List Boolean Strings.vi and b/addons/API-String-Arugments-Support/API String - List Boolean Strings.vi differ diff --git a/addons/API-String-Arugments-Support/API String - Remove Boolean Strings.vi b/addons/API-String-Arugments-Support/API String - Remove Boolean Strings.vi index 3d8225d..a1033dd 100644 Binary files a/addons/API-String-Arugments-Support/API String - Remove Boolean Strings.vi and b/addons/API-String-Arugments-Support/API String - Remove Boolean Strings.vi differ diff --git a/addons/API-String-Arugments-Support/API String - Set Float Format String.vi b/addons/API-String-Arugments-Support/API String - Set Float Format String.vi index 08f5e80..1e37e57 100644 Binary files a/addons/API-String-Arugments-Support/API String - Set Float Format String.vi and b/addons/API-String-Arugments-Support/API String - Set Float Format String.vi differ diff --git a/addons/API-String-Arugments-Support/API String - Set Float Precision.vi b/addons/API-String-Arugments-Support/API String - Set Float Precision.vi index 236a2fa..9805e39 100644 Binary files a/addons/API-String-Arugments-Support/API String - Set Float Precision.vi and b/addons/API-String-Arugments-Support/API String - Set Float Precision.vi differ diff --git a/addons/API-String-Arugments-Support/API String Arguments Support.lvlib b/addons/API-String-Arugments-Support/API String Arguments Support.lvlib index 6160767..aae99d0 100644 --- a/addons/API-String-Arugments-Support/API String Arguments Support.lvlib +++ b/addons/API-String-Arugments-Support/API String Arguments Support.lvlib @@ -26,13 +26,17 @@ + + + + + + - - diff --git a/addons/API-String-Arugments-Support/_Support/Boolean Strings(lvlibp).vi b/addons/API-String-Arugments-Support/_Support/Boolean Strings(lvlibp).vi new file mode 100644 index 0000000..4c28521 Binary files /dev/null and b/addons/API-String-Arugments-Support/_Support/Boolean Strings(lvlibp).vi differ diff --git a/addons/API-String-Arugments-Support/_Support/Boolean Strings.vi b/addons/API-String-Arugments-Support/_Support/Boolean Strings.vi index b30be4a..0ec0190 100644 Binary files a/addons/API-String-Arugments-Support/_Support/Boolean Strings.vi and b/addons/API-String-Arugments-Support/_Support/Boolean Strings.vi differ diff --git a/addons/API-String-Arugments-Support/_Support/Data To API String Arguments.vi b/addons/API-String-Arugments-Support/_Support/Data To API String Arguments.vi index d17b681..331e4ac 100644 Binary files a/addons/API-String-Arugments-Support/_Support/Data To API String Arguments.vi and b/addons/API-String-Arugments-Support/_Support/Data To API String Arguments.vi differ diff --git a/addons/API-String-Arugments-Support/_Support/Float Precision(lvlibp).vi b/addons/API-String-Arugments-Support/_Support/Float Precision(lvlibp).vi new file mode 100644 index 0000000..f37e326 Binary files /dev/null and b/addons/API-String-Arugments-Support/_Support/Float Precision(lvlibp).vi differ diff --git a/addons/API-String-Arugments-Support/_Support/Float Precision.vi b/addons/API-String-Arugments-Support/_Support/Float Precision.vi index df2aa33..f858058 100644 Binary files a/addons/API-String-Arugments-Support/_Support/Float Precision.vi and b/addons/API-String-Arugments-Support/_Support/Float Precision.vi differ diff --git a/addons/API-String-Arugments-Support/_Support/String to Boolean_csm.vi b/addons/API-String-Arugments-Support/_Support/String to Boolean_csm.vi index 09d39fe..ab2b6cb 100644 Binary files a/addons/API-String-Arugments-Support/_Support/String to Boolean_csm.vi and b/addons/API-String-Arugments-Support/_Support/String to Boolean_csm.vi differ diff --git a/testcases/testcase-Supported-Datatype/testcases/test - Cluster Changed Value as Arguments.vi b/testcases/testcase-Supported-Datatype/testcases/test - Cluster Changed Value as Arguments.vi index 1e2f126..80dd895 100644 Binary files a/testcases/testcase-Supported-Datatype/testcases/test - Cluster Changed Value as Arguments.vi and b/testcases/testcase-Supported-Datatype/testcases/test - Cluster Changed Value as Arguments.vi differ diff --git a/testcases/testcase-Supported-Datatype/testcases/test - Cluster mixed with Array.vi b/testcases/testcase-Supported-Datatype/testcases/test - Cluster mixed with Array.vi index 9ed0738..9680225 100644 Binary files a/testcases/testcase-Supported-Datatype/testcases/test - Cluster mixed with Array.vi and b/testcases/testcase-Supported-Datatype/testcases/test - Cluster mixed with Array.vi differ diff --git a/testcases/testcase-Supported-Datatype/testcases/test - Cluster.vi b/testcases/testcase-Supported-Datatype/testcases/test - Cluster.vi index 1ee00db..107c41d 100644 Binary files a/testcases/testcase-Supported-Datatype/testcases/test - Cluster.vi and b/testcases/testcase-Supported-Datatype/testcases/test - Cluster.vi differ diff --git a/testcases/testcase-Supported-Datatype/testcases/test - Complex.vi b/testcases/testcase-Supported-Datatype/testcases/test - Complex.vi index ccb4282..a5f6392 100644 Binary files a/testcases/testcase-Supported-Datatype/testcases/test - Complex.vi and b/testcases/testcase-Supported-Datatype/testcases/test - Complex.vi differ diff --git a/testcases/testcase-Supported-Datatype/testcases/test - Refnum.vi b/testcases/testcase-Supported-Datatype/testcases/test - Refnum.vi index ed71167..e31f430 100644 Binary files a/testcases/testcase-Supported-Datatype/testcases/test - Refnum.vi and b/testcases/testcase-Supported-Datatype/testcases/test - Refnum.vi differ diff --git a/testcases/testcase-Supported-Datatype/testcases/test - float format.vi b/testcases/testcase-Supported-Datatype/testcases/test - float format.vi index 53e1a1c..230314c 100644 Binary files a/testcases/testcase-Supported-Datatype/testcases/test - float format.vi and b/testcases/testcase-Supported-Datatype/testcases/test - float format.vi differ diff --git a/testcases/testcase-Supported-Datatype/testcases/test - float.vi b/testcases/testcase-Supported-Datatype/testcases/test - float.vi index fd7b3c2..f462da1 100644 Binary files a/testcases/testcase-Supported-Datatype/testcases/test - float.vi and b/testcases/testcase-Supported-Datatype/testcases/test - float.vi differ diff --git a/testcases/testcase-Supported-Datatype/testcases/test - timestamp.vi b/testcases/testcase-Supported-Datatype/testcases/test - timestamp.vi index df7a166..d6abc11 100644 Binary files a/testcases/testcase-Supported-Datatype/testcases/test - timestamp.vi and b/testcases/testcase-Supported-Datatype/testcases/test - timestamp.vi differ