diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..9fcb4ce --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,20 @@ +{ + "cSpell.words": [ + "Cacher", + "csmdoc", + "csmlog", + "CSMLS", + "CSMP", + "CSMQ", + "Evnt", + "Gevt", + "HEXSTR", + "lvclass", + "ogtk", + "Refnum", + "Splite", + "Struct", + "usecase" + ], + "files.autoGuessEncoding": true +} \ No newline at end of file diff --git a/CSM API String Arguments Support.lvproj b/CSM API String Arguments Support.lvproj index ebc8d2b..4e0bbf5 100644 --- a/CSM API String Arguments Support.lvproj +++ b/CSM API String Arguments Support.lvproj @@ -33,6 +33,9 @@ true + + true + true diff --git a/CSM API String Arguments Support.vipb b/CSM API String Arguments Support.vipb index 35c3e25..85a3215 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.10.0.1 + 2025.11.0.1 false . vip @@ -52,7 +52,10 @@ More information for the supported datatype format, please visit: https://github NEVSTOP https://github.com/NEVSTOP-LAB/CSM-API-String-Arugments-Support - [feature] #95 support lvlibp + [feature] #95 support lvlibp +[fix] #98 Do not check (), to avoid bugs +[fix] #100 for enum type, empty string should be converted to the reference enum value. +[fix] #102 for cluster type, all elements will be used in no-tag mode in Data To API String Arguments.vi @@ -125,6 +128,12 @@ More information for the supported datatype format, please visit: https://github true <user.lib>\_NEVSTOP\Communicable State Machine(CSM) + + LabVIEW + false + true + <application> + @@ -157,6 +166,12 @@ More information for the supported datatype format, please visit: https://github true 1 + + help + 0 + true + 2 + . diff --git a/Example/Get Module Configuration Example/0. Using within CSM - Get Module Configuration.vi b/Example/Get Module Configuration Example/0. Using within CSM - Get Module Configuration.vi index b0ed30b..6f31bf2 100644 Binary files a/Example/Get Module Configuration Example/0. Using within CSM - Get Module Configuration.vi and b/Example/Get Module Configuration Example/0. Using within CSM - Get Module Configuration.vi differ diff --git a/Example/Get Module Configuration Example/SubModule.vi b/Example/Get Module Configuration Example/SubModule.vi deleted file mode 100644 index e9cb6f5..0000000 Binary files a/Example/Get Module Configuration Example/SubModule.vi and /dev/null differ diff --git a/Example/Supported Datatype Examples/1. CSM API String to Typical data types.vi b/Example/Supported Datatype Examples/1. CSM API String to Typical data types.vi deleted file mode 100644 index 5306e43..0000000 Binary files a/Example/Supported Datatype Examples/1. CSM API String to Typical data types.vi and /dev/null differ diff --git a/Example/Supported Datatype Examples/1. Empty String to Typical data types.vi b/Example/Supported Datatype Examples/1. Empty String to Typical data types.vi new file mode 100644 index 0000000..12841fe Binary files /dev/null and b/Example/Supported Datatype Examples/1. Empty String to Typical data types.vi differ diff --git a/Example/Supported Datatype Examples/2. Typical data types to CSM API String.vi b/Example/Supported Datatype Examples/2. CSM API String to Typical datatypes.vi similarity index 53% rename from Example/Supported Datatype Examples/2. Typical data types to CSM API String.vi rename to Example/Supported Datatype Examples/2. CSM API String to Typical datatypes.vi index 51d06df..1791468 100644 Binary files a/Example/Supported Datatype Examples/2. Typical data types to CSM API String.vi and b/Example/Supported Datatype Examples/2. CSM API String to Typical datatypes.vi differ diff --git a/Example/Supported Datatype Examples/3. Incorrect usage collections.vi b/Example/Supported Datatype Examples/3. Incorrect usage collections.vi index d40e2ed..72cea1b 100644 Binary files a/Example/Supported Datatype Examples/3. Incorrect usage collections.vi and b/Example/Supported Datatype Examples/3. Incorrect usage collections.vi differ diff --git a/Example/Supported Datatype Examples/4.1 CSM API String to Float.vi b/Example/Supported Datatype Examples/4.1 CSM API String to Float.vi index 644c03d..1e623b0 100644 Binary files a/Example/Supported Datatype Examples/4.1 CSM API String to Float.vi and b/Example/Supported Datatype Examples/4.1 CSM API String to Float.vi differ diff --git a/Example/Supported Datatype Examples/4.2. CSM API String (Float with Unit) to Float.vi b/Example/Supported Datatype Examples/4.2 Float with Unit CSM API String to Float.vi similarity index 63% rename from Example/Supported Datatype Examples/4.2. CSM API String (Float with Unit) to Float.vi rename to Example/Supported Datatype Examples/4.2 Float with Unit CSM API String to Float.vi index 79ef6ad..c7605e0 100644 Binary files a/Example/Supported Datatype Examples/4.2. CSM API String (Float with Unit) to Float.vi and b/Example/Supported Datatype Examples/4.2 Float with Unit CSM API String to Float.vi differ diff --git a/Example/Supported Datatype Examples/4.3 CSM API String to Complex Numeric.vi b/Example/Supported Datatype Examples/4.3 CSM API String to Complex Numeric.vi index bea47f7..bbacf6b 100644 Binary files a/Example/Supported Datatype Examples/4.3 CSM API String to Complex Numeric.vi and b/Example/Supported Datatype Examples/4.3 CSM API String to Complex Numeric.vi differ diff --git a/Example/Supported Datatype Examples/4.4 CSM API String to TimeStamp.vi b/Example/Supported Datatype Examples/4.4 CSM API String to TimeStamp.vi index c9f93f6..df1e24c 100644 Binary files a/Example/Supported Datatype Examples/4.4 CSM API String to TimeStamp.vi and b/Example/Supported Datatype Examples/4.4 CSM API String to TimeStamp.vi differ diff --git a/Example/Supported Datatype Examples/4.5 CSM API String to Enum(special format).vi b/Example/Supported Datatype Examples/4.5 CSM API String to Enum(special format).vi index 5470513..b2e02f9 100644 Binary files a/Example/Supported Datatype Examples/4.5 CSM API String to Enum(special format).vi and b/Example/Supported Datatype Examples/4.5 CSM API String to Enum(special format).vi differ diff --git a/Example/Supported Datatype Examples/5.1 CSM API String to Array.vi b/Example/Supported Datatype Examples/5.1 CSM API String to Array.vi index 124ae8d..28a0c2b 100644 Binary files a/Example/Supported Datatype Examples/5.1 CSM API String to Array.vi and b/Example/Supported Datatype Examples/5.1 CSM API String to Array.vi differ diff --git a/Example/Supported Datatype Examples/5.2 1D-Cluster to CSM API String.vi b/Example/Supported Datatype Examples/5.2 1D-Cluster to CSM API String.vi deleted file mode 100644 index b82bf2a..0000000 Binary files a/Example/Supported Datatype Examples/5.2 1D-Cluster to CSM API String.vi and /dev/null differ diff --git a/Example/Supported Datatype Examples/5.2 Cluster 1D Array to CSM API String.vi b/Example/Supported Datatype Examples/5.2 Cluster 1D Array to CSM API String.vi new file mode 100644 index 0000000..49fe262 Binary files /dev/null and b/Example/Supported Datatype Examples/5.2 Cluster 1D Array to CSM API String.vi differ diff --git a/Example/Supported Datatype Examples/5.3 2D-Cluster to CSM API String.vi b/Example/Supported Datatype Examples/5.3 2D-Cluster to CSM API String.vi deleted file mode 100644 index fbede6a..0000000 Binary files a/Example/Supported Datatype Examples/5.3 2D-Cluster to CSM API String.vi and /dev/null differ diff --git a/Example/Supported Datatype Examples/5.3 Cluster 2D Array to CSM API String.vi b/Example/Supported Datatype Examples/5.3 Cluster 2D Array to CSM API String.vi new file mode 100644 index 0000000..aec0a14 Binary files /dev/null and b/Example/Supported Datatype Examples/5.3 Cluster 2D Array to CSM API String.vi differ diff --git a/Example/Supported Datatype Examples/6.1 Cluster to CSM API String.vi b/Example/Supported Datatype Examples/6.1 Cluster to CSM API String.vi index 7ae3ecd..b9a63c7 100644 Binary files a/Example/Supported Datatype Examples/6.1 Cluster to CSM API String.vi and b/Example/Supported Datatype Examples/6.1 Cluster to CSM API String.vi differ diff --git a/Example/Supported Datatype Examples/6.2 CSM API String to Cluster.vi b/Example/Supported Datatype Examples/6.2 CSM API String to Cluster.vi index ff7a30a..4b058ac 100644 Binary files a/Example/Supported Datatype Examples/6.2 CSM API String to Cluster.vi and b/Example/Supported Datatype Examples/6.2 CSM API String to Cluster.vi differ diff --git a/Example/Supported Datatype Examples/6.3 CSM API String to Cluster with 2D Array elements.vi b/Example/Supported Datatype Examples/6.3 CSM API String to Cluster with 2D Array elements.vi deleted file mode 100644 index e5dccf4..0000000 Binary files a/Example/Supported Datatype Examples/6.3 CSM API String to Cluster with 2D Array elements.vi and /dev/null differ diff --git a/Example/Supported Datatype Examples/7.1 Complex Cluster in Array.vi b/Example/Supported Datatype Examples/7.1 Complex Cluster in Array.vi new file mode 100644 index 0000000..1c97d7e Binary files /dev/null and b/Example/Supported Datatype Examples/7.1 Complex Cluster in Array.vi differ diff --git a/Example/Supported Datatype Examples/7.2 Cluster with 2D Array elements.vi b/Example/Supported Datatype Examples/7.2 Cluster with 2D Array elements.vi new file mode 100644 index 0000000..06bc2ff Binary files /dev/null and b/Example/Supported Datatype Examples/7.2 Cluster with 2D Array elements.vi differ diff --git a/README(CN).md b/README(CN).md index 433430b..904baf8 100644 --- a/README(CN).md +++ b/README(CN).md @@ -45,7 +45,6 @@ - True/False - On/Off - Enable/Disable - - Active/Inactive - valid/Invalid - 1/0 - Open/Close diff --git a/_test/Untitled 1.vi b/_test/Untitled 1.vi index 6372888..b076336 100644 Binary files a/_test/Untitled 1.vi and b/_test/Untitled 1.vi differ diff --git a/_test/test tag value mode.vi b/_test/test tag value mode.vi index 9295198..4ce6ce5 100644 Binary files a/_test/test tag value mode.vi and b/_test/test tag value mode.vi differ 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 62d547e..d0b7233 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 - Is Supported Datatype.vi b/addons/API-String-Arugments-Support/API String - Is Supported Datatype.vi index 9737941..882aacb 100644 Binary files a/addons/API-String-Arugments-Support/API String - Is Supported Datatype.vi and b/addons/API-String-Arugments-Support/API String - Is Supported Datatype.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 dda461c..ff41ec8 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 acc38ae..25969ea 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 Precision.vi b/addons/API-String-Arugments-Support/API String - Set Float Precision.vi index 53813a2..c861bf8 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 4363116..0d9d3a2 100644 --- a/addons/API-String-Arugments-Support/API String Arguments Support.lvlib +++ b/addons/API-String-Arugments-Support/API String Arguments Support.lvlib @@ -8,13 +8,20 @@ - - - + - + + + + + + + + + + @@ -23,29 +30,28 @@ + + + + - - - - - + + + + + + + + - - - - - - - - @@ -59,7 +65,7 @@ - + diff --git a/addons/API-String-Arugments-Support/CSM - Broadcast Data As API String.vim b/addons/API-String-Arugments-Support/CSM - Broadcast Data As API String.vim index 8072c4c..a508d9a 100644 Binary files a/addons/API-String-Arugments-Support/CSM - Broadcast Data As API String.vim and b/addons/API-String-Arugments-Support/CSM - Broadcast Data As API String.vim differ diff --git a/addons/API-String-Arugments-Support/CSM - Convert HexStr to Data.vim b/addons/API-String-Arugments-Support/CSM - Convert HexStr to Data.vim index 0031bbd..1266506 100644 Binary files a/addons/API-String-Arugments-Support/CSM - Convert HexStr to Data.vim and b/addons/API-String-Arugments-Support/CSM - Convert HexStr to Data.vim differ diff --git a/addons/API-String-Arugments-Support/CSM - Query Internal Data Names By API String.vi b/addons/API-String-Arugments-Support/CSM - Query Internal Data Names By API String.vi index 1e1ec91..e8e2c96 100644 Binary files a/addons/API-String-Arugments-Support/CSM - Query Internal Data Names By API String.vi and b/addons/API-String-Arugments-Support/CSM - Query Internal Data Names By API String.vi differ diff --git a/addons/API-String-Arugments-Support/CSM - Timestamp to API String Arguments.vi b/addons/API-String-Arugments-Support/CSM - Timestamp to API String Arguments.vi index c2b6fb7..701f76d 100644 Binary files a/addons/API-String-Arugments-Support/CSM - Timestamp to API String Arguments.vi and b/addons/API-String-Arugments-Support/CSM - Timestamp to API String Arguments.vi differ diff --git a/addons/API-String-Arugments-Support/Convert API String Arguments to Data.vim b/addons/API-String-Arugments-Support/Convert API String Arguments to Data.vim index 5b260fb..191b8ac 100644 Binary files a/addons/API-String-Arugments-Support/Convert API String Arguments to Data.vim and b/addons/API-String-Arugments-Support/Convert API String Arguments to Data.vim differ diff --git a/addons/API-String-Arugments-Support/Convert Data To API String Arguments.vim b/addons/API-String-Arugments-Support/Convert Data To API String Arguments.vim index 3eb6741..32ee11f 100644 Binary files a/addons/API-String-Arugments-Support/Convert Data To API String Arguments.vim and b/addons/API-String-Arugments-Support/Convert Data To API String Arguments.vim differ diff --git a/addons/API-String-Arugments-Support/Query Data as API String Arguments.vim b/addons/API-String-Arugments-Support/Query Data as API String Arguments.vim index eed2d77..78956c5 100644 Binary files a/addons/API-String-Arugments-Support/Query Data as API String Arguments.vim and b/addons/API-String-Arugments-Support/Query Data as API String Arguments.vim differ diff --git a/addons/API-String-Arugments-Support/_Support/API String to 1D Array.vi b/addons/API-String-Arugments-Support/_Support/API String to 1D Array.vi index a8451e6..dbe85de 100644 Binary files a/addons/API-String-Arugments-Support/_Support/API String to 1D Array.vi and b/addons/API-String-Arugments-Support/_Support/API String to 1D Array.vi differ diff --git a/addons/API-String-Arugments-Support/_Support/Boolean Strings(lvlibp).vi b/addons/API-String-Arugments-Support/_Support/Boolean Strings(lvlibp).vi index abd7109..67d0d5a 100644 Binary files a/addons/API-String-Arugments-Support/_Support/Boolean Strings(lvlibp).vi 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 0ec0190..294abdb 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/Convert API String Arguments to Data(variant).vi b/addons/API-String-Arugments-Support/_Support/Convert API String Arguments to Data(variant).vi index f30fca9..cf78d66 100644 Binary files a/addons/API-String-Arugments-Support/_Support/Convert API String Arguments to Data(variant).vi and b/addons/API-String-Arugments-Support/_Support/Convert API String Arguments to Data(variant).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 53a9c59..fc8d954 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.vi b/addons/API-String-Arugments-Support/_Support/Float Precision.vi index e51a1e8..daf4640 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/Indexed Enum to Numeric_csm.vim b/addons/API-String-Arugments-Support/_Support/Indexed Enum to Numeric_csm.vim index 4820c86..7950f32 100644 Binary files a/addons/API-String-Arugments-Support/_Support/Indexed Enum to Numeric_csm.vim and b/addons/API-String-Arugments-Support/_Support/Indexed Enum to Numeric_csm.vim differ diff --git a/addons/API-String-Arugments-Support/_Support/Indexed String To Enum_csm.vi b/addons/API-String-Arugments-Support/_Support/Indexed String To Enum_csm.vi index 020c3da..a7af5ab 100644 Binary files a/addons/API-String-Arugments-Support/_Support/Indexed String To Enum_csm.vi and b/addons/API-String-Arugments-Support/_Support/Indexed String To Enum_csm.vi differ diff --git a/addons/API-String-Arugments-Support/_Support/Numeric to Indexed Enum_csm.vim b/addons/API-String-Arugments-Support/_Support/Numeric to Indexed Enum_csm.vim index 2e42ef0..c41a064 100644 Binary files a/addons/API-String-Arugments-Support/_Support/Numeric to Indexed Enum_csm.vim and b/addons/API-String-Arugments-Support/_Support/Numeric to Indexed Enum_csm.vim differ diff --git a/addons/API-String-Arugments-Support/_Support/Query Data as API String Arguments(variant).vi b/addons/API-String-Arugments-Support/_Support/Query Data as API String Arguments(variant).vi index 2994ac2..ecd0d88 100644 Binary files a/addons/API-String-Arugments-Support/_Support/Query Data as API String Arguments(variant).vi and b/addons/API-String-Arugments-Support/_Support/Query Data as API String Arguments(variant).vi differ diff --git a/addons/API-String-Arugments-Support/_Support/String To Float_csm.vi b/addons/API-String-Arugments-Support/_Support/String To Float_csm.vi index 666b53b..6cd130a 100644 Binary files a/addons/API-String-Arugments-Support/_Support/String To Float_csm.vi and b/addons/API-String-Arugments-Support/_Support/String To Float_csm.vi differ diff --git a/addons/API-String-Arugments-Support/_Support/String To Indexed Enum_csm.vi b/addons/API-String-Arugments-Support/_Support/String To Indexed Enum_csm.vi index 2cdf85d..8a55b4a 100644 Binary files a/addons/API-String-Arugments-Support/_Support/String To Indexed Enum_csm.vi and b/addons/API-String-Arugments-Support/_Support/String To Indexed Enum_csm.vi differ diff --git a/addons/API-String-Arugments-Support/_Support/String To Number(I64)_csm.vi b/addons/API-String-Arugments-Support/_Support/String To Number(I64)_csm.vi index 3196803..ec2335d 100644 Binary files a/addons/API-String-Arugments-Support/_Support/String To Number(I64)_csm.vi and b/addons/API-String-Arugments-Support/_Support/String To Number(I64)_csm.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 a90780c..bf7bcf5 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/addons/API-String-Arugments-Support/_Support/StringAnalyze/Cluster API String Mode.vi b/addons/API-String-Arugments-Support/_Support/StringAnalyze/Cluster API String Mode.vi index fc3c9ff..08f187a 100644 Binary files a/addons/API-String-Arugments-Support/_Support/StringAnalyze/Cluster API String Mode.vi and b/addons/API-String-Arugments-Support/_Support/StringAnalyze/Cluster API String Mode.vi differ diff --git a/addons/API-String-Arugments-Support/_Support/StringAnalyze/String to 1D Array 2.vi b/addons/API-String-Arugments-Support/_Support/StringAnalyze/String to 1D Array 2.vi index f3ccd16..1a514b2 100644 Binary files a/addons/API-String-Arugments-Support/_Support/StringAnalyze/String to 1D Array 2.vi and b/addons/API-String-Arugments-Support/_Support/StringAnalyze/String to 1D Array 2.vi differ diff --git a/addons/API-String-Arugments-Support/_Support/StringAnalyze/check if brackets Matched 2.vi b/addons/API-String-Arugments-Support/_Support/StringAnalyze/check if brackets Matched 2.vi index d61c470..3d785a4 100644 Binary files a/addons/API-String-Arugments-Support/_Support/StringAnalyze/check if brackets Matched 2.vi and b/addons/API-String-Arugments-Support/_Support/StringAnalyze/check if brackets Matched 2.vi differ diff --git a/addons/API-String-Arugments-Support/_Support/_JDP Science/Text to Timestamp(RFC3339).vi b/addons/API-String-Arugments-Support/_Support/_JDP Science/Text to Timestamp(RFC3339).vi index acd2370..67c8f0e 100644 Binary files a/addons/API-String-Arugments-Support/_Support/_JDP Science/Text to Timestamp(RFC3339).vi and b/addons/API-String-Arugments-Support/_Support/_JDP Science/Text to Timestamp(RFC3339).vi differ diff --git a/addons/API-String-Arugments-Support/_Support/_JDP Science/Timestamp to Text(RFC3339).vi b/addons/API-String-Arugments-Support/_Support/_JDP Science/Timestamp to Text(RFC3339).vi index 740dd9e..269d97b 100644 Binary files a/addons/API-String-Arugments-Support/_Support/_JDP Science/Timestamp to Text(RFC3339).vi and b/addons/API-String-Arugments-Support/_Support/_JDP Science/Timestamp to Text(RFC3339).vi differ diff --git a/help/NEVSTOP/Communicable State Machine(CSM)/Examples/Addons - API String Arguments Support(CN).md b/help/NEVSTOP/Communicable State Machine(CSM)/Examples/Addons - API String Arguments Support(CN).md new file mode 100644 index 0000000..283296a --- /dev/null +++ b/help/NEVSTOP/Communicable State Machine(CSM)/Examples/Addons - API String Arguments Support(CN).md @@ -0,0 +1,342 @@ +# CSM API String Arguments Support + +## 1. Empty String to Typical data types.vi + +### Overview + +本范例展示了CSM API参数中支持的空字符串转换为典型数据类型的示例。空字符串在大多数情况下会被转换为参考数据类型连接的数值。例外场景: + +- **String数据类型:**空字符串会被转换为空字符串。 + +### Introduction + +展示不同的空字符串转换为典型数据类型的示例。特别注意String数据类型的例外情况。界面会显示参考值和转换后的值,供用户比较。 + +### Steps + +- step1: 所有的普通类型,空字符串会被转换为参考数据类型连接的数值。 +- step2: String 数据类型,空字符串会被转换为空字符串。 +- step3: Timestamp 数据类型,空字符串会转换为当前时间。 + +## 2. CSM API String to Typical datatypes.vi + +### Overview + +本范例展示了CSM API参数中支持的字符串转换为典型数据类型的示例。 + +### Introduction + +本范例展示了一些典型的字符串转换为典型的数据类型的实例。 + +### Steps + +- step1: 路径字符串转换为path数据类型 +- step2: 字符串数据类型的转换 +- step3: 典型的Boolean数据类型的描述可以转换为Boolean数据类型。 +- step4: i32数据类型转换 +- step5: DBL数据类型的转换 +- step6: 普通的enum类型转换 +- step7: 具有编号的enum数据类型可以只描述枚举字符串, +- step8: 具有编号的enum数据类型转换也可以描述索引编号 +- step9: 一维数组类型转换 +- step10: Cluster数据类型转换 +- step11: Cluster array数据类型转换 +- step12: 二维数组类型转换 + + +## 3. Incorrect usage collections.vi + +### Overview + +本范例演示一些不正确的API String描述情况。 + +### Instruction + +选择**Action**后,运行VI并查看结果,不正确的格式转换后与预期数据不匹配。 + +### Introduction + +Cluster数据类型是重点描述的情况,因为它的情况比较多。通常cluster数据类型的描述格式是: + +1. 标签-数据对(Tag:Value)模式 +2. 无标签模式 + +本范例演示了一些不正确的API String描述情况。 + +## 常见普通类型数据的转换 + +### Float 类型(4.1 CSM API String to Float.vi) + +#### Overview + +API String支持的Float格式包括:普通浮点数、科学计数法以及特殊浮点数。本范例演示了这些格式的转换。 + +#### Introduction + +API String支持的Float格式包括:普通浮点数、科学计数法以及特殊浮点数。本范例演示了这些格式的转换。例如以下方式: + +``` + - 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) + - 特殊浮点数值: `e`,`-e`,`pi`,`-pi`,`inf`,`+inf`,`-inf`,`NaN` +``` + +注意: + - 空字符串将转换为原型(Prototype)的输入值。 + - 默认精度为6位有效数字。可以通过API String - Set Float Precision.vi修改精度。 + - 标签-数据对(Tag:Value)可以被正确解析。标签仅用于提高可读性,转换过程中会被忽略。 + +#### Steps + +- step1: 往INF方向的浮点数转换测试 +- step2: 往-INF方向的浮点数转换测试 +- step3: 10...0 字符串的转换测试 + +### Float类型,API String 中加入单位 (4.2 Float with Unit CSM API String to Float.vi) + +#### Overview + +本范例演示API String中包含单位的浮点数转换为浮点数的示例。 + +#### Introduction + +API String带有单位的浮点数字符串也支持正确解析。 + +如果浮点数字符串与单位字符串之间存在空格,则浮点数后面的所有内容(包括符号)都被识别为单位字符串。 +例如: + +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 + +e、-e、pi、-pi、inf、+inf、-inf和NaN等特殊浮点数值不支持单位。 + +#### Steps + +- step1: 不同情况的浮点数单位转换测试 +- step2: API String中的转换依赖于String To Float_csm.vi,可以在函数选板找到这个函数。 + +### 复数(4.3 CSM API String to Complex Numeric.vi) + +#### Overview + +本范例用于演示API String对于复数的支持。 + +#### Introduction + +API String支持复数类型。a+bi或a-bi格式表示复数。其中a和b支持所有浮点数的表达方式。 + +特殊情况说明: +- 空字符串将转换为原型(Prototype)的输入值。 +- 标签-数据对(Tag:Value)可以被正确解析。标签仅用于提高可读性,转换过程中会被忽略。 + +### Timestamp 类型(4.4 CSM API String to TimeStamp.vi) + +#### Overview + +本范例用于演示API String对于时间戳的支持。 + +#### Introduction + +API String时间戳的标准格式为:`TimeStamp_String(Format_String)`。其中`Format_String`用于解析`TimeStamp_String`。 + +特殊情况说明: +- 当字符串不包含`Format_String`时,`TimeStamp_String`应符合RFC3339标准格式。 +- "`2023-10-31T14:49:39.597Z`" 为有效的表达方式. +- "`2023-10-31T22:49:39.597+08:00`" 为有效的表达方式. +- 对于时间戳,空字符串将转换为当前时间。 + +#### Steps + +- step1: 空字符串转换为当前时间 +- step2: 标准格式转换为时间戳 +- step3: Timestamp转换为API String,并被正确解析回时间戳数据类型 +- step4: TimeStamp_String(Format_String)格式的示例 + +### Enum 类型(4.5 CSM API String to Enum(special format).vi) + +#### Overview + +本范例用于演示API String对于枚举类型的支持。 + +#### Introduction + +API String Enum 定义为[索引编号(index)\][枚举字符串\]格式的字符串。 + +- 索引编号支持NUMERIC类型的所有表达方式。例如:0x01,0b0001。 +- 分隔符(separator)支持 =、-、_ 三种字符,重复个数不限。 + +转换规则: + +- 转换规则1: 当没有索引编号时,通过字符串匹配进行转换。 +- 转换规则2: 当包含索引编号时,既可以通过字符串匹配转换,也可以通过索引编号匹配转换。 + +示例1: 无索引编号的转换规则 +``` +示例:Enum = {AAA, BBBB, CCCC} + +字符串 "AAA" 将转换为 Enum(AAA),数字值为 0 +字符串 "CCC" 将转换为 Enum(CCC),数字值为 2 +``` + +示例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 数据类型的支持 + +### 5.1 CSM API String to Array.vi + +#### Overview + +本范例用于演示API String对于数组类型的支持。 + +#### Introduction + +API String中对于Array的定义,逗号(,) 用于元素分隔,分号(;) 用于行分隔。方括号([ 和 ]) 用作边界符号。对于非复杂的混合数据类型,方括号可以省略。 + +示例: + +- `a,b,c,d,e` `[a,b,c,d,e]`,`[a;b;c;d;e]` 都表示一个包含5个元素的数组: +- `a1, b1, c1, d1, e1; a2, b2, c2, d2, e2` 和 `[a1, b1, c1, d1, e1; a2, b2, c2, d2, e2]` 表示一个 2×5 的二维数组 + +特殊情况说明: + +- 空字符串将转换为原型(Prototype)的输入值。 + +#### Steps + +- step1: 空字符串转换为原型(Prototype)的输入值 +- step2: 一维数组转换 +- step3: 二维数组转换 + +### 5.2 Cluster 1D Array to CSM API String.vi + +#### Overview + +本范例用于演示Cluster 1D Array的CSM API String表达。 + +#### Introduction + +Array是一种复合数据类型,可能包含不同的数据类型,其中以Cluster 最为复杂。本范例将展示1D Cluster Array的CSM API String表达字符串。 + +### 5.3 Cluster 2D Array to CSM API String.vi + +#### Overview + +本范例用于演示Cluster 2D Array的CSM API String表达。 + +#### Introduction + +Array是一种复合数据类型,可能包含不同的数据类型,其中以 Cluster 最为复杂。本范例将展示2D Cluster Array的CSM API String表达字符串。 + +## Cluster 数据类型支持 + +### 6.1 Cluster to CSM API String.vi + +#### Overview + +本范例用于演示Cluster的CSM API String表达。 + +#### Introduction + +Cluster是一种复杂类型,它由其他的普通数据类型组成。本范例将展示Cluster的CSM API String表达字符串。在API String中,Cluster可以表达为两种方式。 + +1. 标签-数据对(Tag:Value)模式 + +在标签-数据对模式下,输入字符串由多个标签-数据对组成,冒号(:)用于分隔标签和数据,分号(;)用于分隔不同元素。花括号({ 和 })用作边界符号。对于非复杂的混合数据类型,花括号可以省略。 + +2. 无标签模式 + +对于簇,也支持仅输入数据字符串,各值之间用分号分隔。 + +#### Steps + +- step1: 标签-数据对(Tag:Value)模式 +- step2: 无标签模式 + +### 6.2 CSM API String to Cluster.vi + +#### Overview + +本范例用于演示Cluster的CSM API String表达。 + +#### Introduction + +Cluster是一种复杂类型,它由其他的普通数据类型组成。本范例展示Cluster的CSM API String表达字符串。在API String中,Cluster可以表达为两种方式。 + +1. 标签-数据对(Tag:Value)模式:在标签-数据对模式下,输入字符串由多个标签-数据对组成,冒号(:)用于分隔标签和数据,分号(;)用于分隔不同元素。花括号({ 和 })用作边界符号。对于非复杂的混合数据类型,花括号可以省略。其他规则如下: + + - 标签对应簇中元素的名称,值会根据对应元素的数据类型进行转换。 + + - 只需描述需要修改的元素,与数据原型一致的元素可以省略。 + + + - 通过名称匹配元素,顺序无关紧要。 + + + - 对于嵌套簇,子簇元素的标签格式为"父簇标签.子簇元素标签"。 + + + - 嵌套簇中,如果子簇元素的标签名称唯一,可以省略父簇的标签。 + + +2. 无标签模式:对于簇,也支持仅输入数据字符串,各值之间用分号分隔。顺序非常重要。第一个元素值将设置给簇的第一个元素,第二个元素值设置给簇的第二个元素,以此类推。 + - 如果输入字符串的元素数量少于簇的元素数量,剩余的元素将保持不变。 + - 如果输入字符串的元素数量多于簇的元素数量,多余的元素将被忽略。 + +#### Steps + +- step1: 空字符串转换为参考数据 +- step2: 可以只通过tag名称修改参考数据中的某个元素数据 +- step3:没有标签且个数只有一个的情况下,将直接修改参考数据的第一个元素数据 +- step4: 没有标签且个数只有一个的情况下,将直接修改参考数据的第一个元素数据,第一个是Array的情况 +- step5: 无标签模式 +- step6: 无标签模式,但是元素个数小于全部个数 +- step7: 可以只通过tag名称修改参考数据中的某个元素数据 +- step8: 无标签模式,但是其中的boolean 数据使用了其他的表达方式 +- step9: 无标签模式,但是元素个数大于全部个数 +- step10: 多层嵌套下,tag的名称可以包含点号(.),用于表示嵌套簇的层级, 没有歧义的情况下,可以只写最终元素的名称,或者部分子嵌套层级的名称 + +## 一些复杂的情况 + +### 7.1 Complex Cluster in Array.vi + +#### Overview + +通常Array/Cluster的嵌套是一个复杂的情况,本范例展示复杂的Cluster Array的CSM API String表达字符串。但是这并不是一个典型的推荐使用场景。 + +### 7.2 Cluster with 2D Array elements.vi + +#### Overview + +通常Array/Cluster的嵌套是一个复杂的情况,本范例将展示2D Cluster Array的CSM API String表达字符串。但是这并不是一个典型的推荐使用场景。 diff --git a/help/NEVSTOP/Communicable State Machine(CSM)/Examples/Addons - API String Arguments Support(EN).md b/help/NEVSTOP/Communicable State Machine(CSM)/Examples/Addons - API String Arguments Support(EN).md new file mode 100644 index 0000000..ac6bf50 --- /dev/null +++ b/help/NEVSTOP/Communicable State Machine(CSM)/Examples/Addons - API String Arguments Support(EN).md @@ -0,0 +1,356 @@ +# CSM API String Arguments Support + +## 1. Empty String to Typical data types.vi + +### Overview +Demonstrates how the CSM API supports converting empty strings to typical data types. In most cases, an empty string is converted to the numerical value connected to the reference data type. The following is an exception: + +- **String data type:** An empty string converts to an empty string. + +### Introduction +Demonstrates converting various empty strings to typical data types. Pay special attention to the exception regarding the String data type. The front panel displays the reference values and the converted values for comparison. +### Steps + +- step1: For all common types, an empty string converts to the numerical value connected to the reference data type. +- step2: For the String data type, an empty string converts to an empty string. +- step3: For the Timestamp data type, an empty string converts to the current time. + + + +## 2. CSM API String to Typical datatypes.vi + +### Overview + +Demonstrates the conversion of strings to typical data types supported in CSM API. + +### Introduction + +This example illustrates instances of converting typical strings into typical data types. + +### Steps + +- step1: Path string conversion to Path data type. +- step2: Conversion of String data type. +- step3: Conversion of string describing Boolean value to Boolean data type. +- step4: I32 data type conversion. +- step5: DBL (double-precision floating) data type conversion. +- step6: Common Enum type conversion. +- step7: Numbered Enum data types can describe only the enumeration string. +- step8: Numbered Enum data type conversion can also describe the index number. +- step9: 1D Array type conversion. +- step10: Cluster data type conversion. +- step11: Cluster array data type conversion. +- step12: 2D Array type conversion. + + + +## 3. Incorrect usage collections.vi + +### Overview + +Demonstrates incorrect API String descriptions. + +### Instruction + +Select **Action**, run the VI, and view the results. Incorrect formats will result in converted data that does not match the expected data. + +### Introduction + +This example focuses especially on the Cluster data type, due to its complexity. Generally, the description format for Cluster data types falls into two categories: + +1. Tag:Value Mode +2. No-Tag Mode + +This example demonstrates some instances of incorrect API String descriptions. + + + +## Conversion of Common Primitive Types + +### Float Type (4.1 CSM API String to Float.vi) + +#### Overview + +Demonstrates conversion of the following Float formats that API String supports: + +- Standard floating-point numbers +- Scientific notation +- Special floating-point numbers + + + +#### Introduction + +The API String supports float formats such as standard floating-point numbers, scientific notation, and special floating-point numbers. This example demonstrates conversions using formats like the following: + +``` + - 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) + - Special floating-point values: `e`, `-e`, `pi`, `-pi`, `inf`, `+inf`, `-inf`, `NaN` +``` + +**Note:** + +- An empty string converts to the prototype input value. +- The default precision is 6 significant digits. You can modify precision by using `API String - Set Float Precision.vi`. +- Tag:Value can be parsed correctly. Tags are used only for readability and are ignored during the conversion process. + +#### Steps + +- step1: Conversion toward INF float values. +- step2: Conversion toward -INF float values. +- step3: Conversion with strings formatted as 10...0. + + + +### Float with Unit (4.2. Float with Unit CSM API String to Float.vi) + +#### Overview + +Demonstrates the conversion of floating-point numbers with units into floating-point numbers. + +#### Introduction + +CSM supports parsing floating-point numbers with units. + +If there is a space between the floating-point string and the unit string, everything following the floating-point number (including symbols) is recognized as the unit string. For example: + +- `1.23mA` : Float: 1.23m; Unit: A +- `1.23 mA` : Float: 1.23; Unit: mA + +For floating-point numbers expressed in scientific notation, the string following the number is recognized as the unit string, regardless of whether a space exists. For example: + +- `1.23E+5mA`: Float: 1.23E+5; Unit: mA +- `1.23E+5 mA`: Float: 1.23E+5; Unit: mA + +Special floating-point values such as `e`, `-e`, `pi`, `-pi`, `inf`, `+inf`, `-inf`, and `NaN` do not support units. + +#### Steps + +- step1: Testing floating-point unit conversion in various scenarios. +- step2: The conversion in the API String depends on `String To Float_csm.vi`, available on the Functions palette. + + + +### Complex Numeric (4.3 CSM API String to Complex Numeric.vi) + +#### Overview + +Demonstrates API String support for complex numbers. + +#### Introduction + +API String supports complex numeric types. The format `a+bi` or `a-bi` represents a complex number, where `a` and `b` support all floating-point number expressions. The following are special cases: + +- An empty string converts to the prototype input value. +- Tag:Value pairs can be parsed correctly. Tags are used only for readability and are ignored during the conversion process. + + + +### Timestamp Type (4.4 CSM API String to TimeStamp.vi) + +#### Overview + +Demonstrates API String support for timestamps. + +#### Introduction + +The standard format for an API String timestamp is `TimeStamp_String(Format_String)`. The `Format_String` is used to parse the `TimeStamp_String`. + +**Special Case Notes:** + +- When a string does not contain `Format_String`, `TimeStamp_String` must follow the RFC3339 standard format. +- "`2023-10-31T14:49:39.597Z`" is a valid expression. +- "`2023-10-31T22:49:39.597+08:00`" is a valid expression. +- An empty string converts to the current time. + +#### Steps + +- step1: Empty string converts to current time. +- step2: Standard format converts to timestamp. +- step3: Timestamp converts to API String and is correctly parsed back to Timestamp data type. +- step4: Example of the `TimeStamp_String(Format_String)` format. + + + +### Enum Type (4.5 CSM API String to Enum(special format).vi) + +#### Overview + +Demonstrates API String support for enumeration (Enum) data types. + +#### Introduction + +The API String Enum is defined as a string in the format `[Index][Enum String]`. + +- The index supports all expressions of the numeric type, such as `0x01`, `0b0001`. +- Supported separators include `=`, `-`, and `_`. There is no limit on the number of repeated separators. + +**Conversion Rules:** + +- **Rule 1:** When there is no index number, conversion is performed via string matching. +- **Rule 2:** When an index number is included, conversion can be performed via either string matching or index number matching. + +**Example 1: Conversion rule without index number** + +``` +Example: Enum = {AAA, BBBB, CCCC} + +String "AAA" converts to Enum(AAA), numeric value is 0 +String "CCC" converts to Enum(CCC), numeric value is 2 +``` + +**Example 2: Conversion rule with index number** + +``` +Example: Enum = {1- AAA, 5 - BBBB, 9 - CCCC} + +String "AAA" converts to Enum(1- AAA), numeric value is 0 +String "5" converts to Enum(5 - BBBB), numeric value is 1 +String "9 - CCCC" converts to Enum(9 - CCCC), numeric value is 2 +``` + + + +## Array Data Type Support + +### 5.1 CSM API String to Array.vi + +#### Overview + +Demonstrates API String support for array types. + +#### Introduction + +In the API String definition for Arrays, comma (`,`) is used for element separation, semicolon (`;`) is used for row separation, and brackets (`[` and `]`) are used as boundary symbols. For non-complex mixed data types, brackets can be omitted. + +**Examples:** + +- `a,b,c,d,e`, `[a,b,c,d,e]`, and `[a;b;c;d;e]` all represent an array containing 5 elements. +- `a1, b1, c1, d1, e1; a2, b2, c2, d2, e2` and `[a1, b1, c1, d1, e1; a2, b2, c2, d2, e2]` represent a 2x5 2D array. + +**Special Case Note:** + +- An empty string converts to prototype input value. + +#### Steps + +- step1: Empty string converts to prototype input value. +- step2: 1D array conversion. +- step3: 2D array conversion. + + + +### 5.2 Cluster 1D Array to CSM API String.vi + +#### Overview + +Demonstrates API String expression for 1-D array of clusters. + +#### Introduction + +An array is a composite data type that may contain different data types, with cluster being the most complex. This example shows the API String expression for 1-D array of clusters. + + + +### 5.3 Cluster 2D Array to CSM API String.vi + +#### Overview + +Demonstrates API String expression for 2-D array of clusters. + +#### Introduction + +An array is a composite data type that may contain different data types, with cluster being the most complex. This example shows the API String expression for 2-D array of clusters. + + + +## Cluster Data Type Support + +### 6.1 Cluster to CSM API String.vi + +#### Overview + +Demonstrates API String expression for a cluster. + +#### Introduction + +A cluster is a complex type composed of other data types. This example shows API String expression for clusters. In an API String, a cluster can be expressed in the following two ways: + +1. **Tag:Value Mode** In Tag:Value mode, the input string consists of multiple tag-value pairs. A colon (`:`) separates the tag and data, and a semicolon (`;`) separates different elements. Curly braces (`{` and `}`) are used as boundary symbols. For non-complex mixed data types, curly braces can be omitted. +2. **No-Tag Mode** Clusters also support inputting only data strings, with values separated by semicolons. + +#### Steps + +- step1: Tag:Value Mode. +- step2: No-Tag Mode. + + + +### 6.2 CSM API String to Cluster.vi + +#### Overview + +Demonstrates the API String expression for a cluster. + +#### Introduction + +A cluster is a complex type composed of other data types. This example shows API String expression for clusters. In an API String, a cluster can be expressed in the following two ways: + +1. **Tag:Value Mode:** In Tag:Value mode, the input string consists of multiple tag-value pairs. A colon (`:`) separates the tag and data, and a semicolon (`;`) separates different elements. Curly braces (`{` and `}`) are used as boundary symbols. For non-complex mixed data types, curly braces can be omitted. Other rules are as follows: + - Tags correspond to the names of the elements in the cluster, and values are converted according to the data type of the corresponding element. + - Only elements that need modification require description; elements consistent with the data prototype can be omitted. + - Elements are matched by name; order does not matter. + - For nested clusters, the tag format for sub-cluster elements is "ParentClusterTag.SubClusterElementTag". + - In nested clusters, if the sub-cluster element's tag name is unique, the parent cluster's tag can be omitted. +2. **No-Tag Mode:** Clusters also support inputting only data strings, with values separated by semicolons. Order is critical. The first element value sets the first element of the cluster, the second value sets the second element, and so on. + - If the number of elements in the input string is less than the number of elements in the cluster, the remaining elements remain unchanged. + - If the number of elements in the input string is greater than the number of elements in the cluster, the excess elements are ignored. + +#### Steps + +- step1: Empty string converts to reference data. +- step2: Modifying specific element data in the reference data using only the tag name. +- step3: With no tag and only one item count, the first element data of the reference data is modified. +- step4: With no tag and only one item count, the first element data of the reference data is modified, where the first element is an array. +- step5: No-Tag Mode. +- step6: No-Tag Mode, but the element count is less than the total count. +- step7: Modifying specific element data in the reference data using only the tag name. +- step8: No-Tag Mode, but the Boolean data within uses alternative expressions. +- step9: No-Tag Mode, but the element count is greater than the total count. +- step10: Under multi-level nesting, tag names can contain a dot (`.`) to indicate the hierarchy of the nested cluster. Where there is no ambiguity, one can write only the final element name or partial sub-nested level names. + + + +## Complex Scenarios + +### 7.1 Complex Cluster in Array.vi + +#### Overview + +Array/Cluster nesting is a complex scenario. This example shows API String expression for a complex cluster array. However, this is not a typically recommended usage scenario. + + + +### 7.2 Cluster with 2D Array elements.vi + +#### Overview + +Array/Cluster nesting is a complex scenario. This example shows API String expression for a 2-D cluster array. However, this is not a typically recommended usage scenario. \ No newline at end of file diff --git a/help/NEVSTOP/Communicable State Machine(CSM)/VI Description/VI Description(zh-cn) - Addon API String.md b/help/NEVSTOP/Communicable State Machine(CSM)/VI Description/VI Description(zh-cn) - Addon API String.md new file mode 100644 index 0000000..e9865d5 --- /dev/null +++ b/help/NEVSTOP/Communicable State Machine(CSM)/VI Description/VI Description(zh-cn) - Addon API String.md @@ -0,0 +1,337 @@ +# CSM API String Addon + +> [!NOTE] API String ֧ +> API String ֧ǿͨ״̬CSMAPIܣ֧ԴıʽݸͣرŻֶ顣API String δͣArgument Typeͨ CSM - Argument Type.vi ȡĽΪգͨĬϷ֧д +> ֵ֧Ͱ +> - ַ (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 ʾ) +> ϸϢʣhttps://github.com/NEVSTOP-LAB/CSM-API-String-Arguments-Support +> ο;ϸ˵ʾ + +> [!NOTE] TRUE ֵĬַ +> ֧ 1, Active, Enable, Non-null, On, T, True, valid, yes +> ִСд + +> [!NOTE] FALSE ֵĬַ +> ֧ 0, Disable, F, False, Inactive, Invalid, No, Off, Void, null +> ִСд + +> [!NOTE] Ĭϸʽ +> ĬϸʽΪ "%.6p" + +> [!NOTE] ö (Indexed Enum) +> ʽΪ [(index)][ָ(separator)][öַ]ֵֶ֧ʾʽ +> +> ʹ == ָʾ +> 1 == boolean | 2 == string | 4 == dbl | 8 == number +> +> ʹ -- ָʾ +> 0x01 -- boolean | 0x02 -- string | 0x04 -- dbl | 0x08 -- number +> +> ʹ __ ָʾ +> 0b0001 __ boolean | 0b0100 __ dbl | 0b1000 __ number + +## API String Ĺ + +### API String - Is Supported Datatype.vi + +жǷΪ API String ֵ֧ת + +> Ref: API String ֧ +> Ref: CSM HEXSTR ʽ + +-- ؼ (Controls) -- +- Data: + +-- ؼ (Indicators) -- +- Data(Dup): ݸ +- Supported Datatype?: Ƿ֧ API String IJֵ + +### Convert Data To API String Arguments.vim + +תΪ API String ʽ + +> Ref: API String ֧ + +-- ؼ (Controls) -- +- Data: +- Reference Cluster Data: οݣתʱȽݺͲοеԪأȫƥ䣬תԸԪ +- No Tag Mode? (F): ڴݣΪ True ʱתΪ API String ʱǩϢ + +-- ؼ (Indicators) -- +- API String: ת API String ʽ + +### Convert API String Arguments to Data.vim + + API String תΪӦ + +> Ref: API String ֧ + +-- ؼ (Controls) -- +- API String: API String ʽַ +- Strict Label Check? (T): ϸǩ飬Ϊ True ʱοвǩתʧܱ +- Reference Type: ο + +-- ؼ (Indicators) -- +- Data: ת + +### Query Data as API String Arguments.vim + +ѯеָתΪ API String ʽ + +Ӧó API String Addon CSM ģģУ "Data: Get Configuration" ״̬ڴ״̬£ͨϣѯƣɷضӦֵ + + Name Ϊ ""пõб + +-- ؼ (Controls) -- +- Cluster Data: +- Name: + +-- ؼ (Indicators) -- +- Cluster Data(dup): ݸ +- API String: API String ʽIJѯ + +## + +### API String - Add Boolean Strings.vi + +Զ岼ַӵ API String ֵбУظºб + +> Ref: TRUE ֵĬַ +> Ref: FALSE ֵĬַ + +-- ؼ (Controls) -- +- Custom False Boolean Strings: Զ FALSE ַб +- Custom True Boolean Strings: Զ TRUE ַб + +-- ؼ (Indicators) -- +- False Boolean Strings: º FALSE ַб +- True Boolean Strings: º TRUE ַб + +### API String - Remove Boolean Strings.vi + + API String ֵбƳԶ岼ַظºб + +> Ref: TRUE ֵĬַ +> Ref: FALSE ֵĬַ + +-- ؼ (Controls) -- +- Custom False Boolean Strings: ҪƳ FALSE ַб +- Custom True Boolean Strings: ҪƳ TRUE ַб + +-- ؼ (Indicators) -- +- False Boolean Strings: º FALSE ַб +- True Boolean Strings: º TRUE ַб + +### API String - List Boolean Strings.vi + +гǰпõIJֵַ + +> Ref: TRUE ֵĬַ +> Ref: FALSE ֵĬַ + +-- ؼ (Indicators) -- +- False Boolean Strings: ǰ FALSE ַб +- True Boolean Strings: ǰ TRUE ַб + +### API String - Set Float Format String.vi + +øĸʽַɲο LabVIEW format string ʽ + +> Ref: Ĭϸʽ + +-- ؼ (Controls) -- +- Float Format String Setting: ʽַ + +-- ؼ (Indicators) -- +- Float Format String: ǰĸʽַ + +### API String - Float Format String.vi + +ȡǰĸʽַ + +> Ref: Ĭϸʽ + +-- ؼ (Indicators) -- +- Float Format String: ǰĸʽַ + +### API String - Set Float Precision.vi + +øľ + + ע⣺ + - ĬϾΪ 6 λЧ֣ʽΪ "%.6p" + - VI API String - Set Float Format String.vi ļ򻯰汾Чλ + +> Ref: Ĭϸʽ + +-- ؼ (Controls) -- +- Precision: + +-- ؼ (Indicators) -- +- Float Format String: ºĸʽַ + +## ַת + +### String to Boolean_csm.vi + +ַתΪֵֶ֧ TRUE/FALSE ʾʽͨ API String - Add Boolean Strings.vi Զ TRUE/FALSE ַ + +> Ref: TRUE ֵĬַ +> Ref: FALSE ֵĬַ + +-- ؼ (Controls) -- +- String: ַ +- Default (F): תʧʱĬֵ + +-- ؼ (Indicators) -- +- Boolean: תIJֵ + +### String To Float_csm.vi + +ַתΪֶָ֧ʽ͵λͨ API String - Set Float Format String.vi øʽ + +> [!NOTE] +> ַתΪĬݡ +> еλĸַҲ֧ȷ +> `e``-e``pi``-pi``inf``+inf``-inf` `NaN` ⸡ֵֵ֧λ + +> Ref: Ĭϸʽ + +-- ؼ (Controls) -- +- String: ַ +- Default (0): תʧʱĬֵ + +-- ؼ (Indicators) -- +- Float: תĸ +- Unit String: ȡĵλַ + +### String To Number(I64)_csm.vi + +ַתΪ 64 λֶָ֧ʽͨʮơʮơơ˽ƣԼ׺ıʾתʧʱ 0 + +-- ؼ (Controls) -- +- String: ַ + +-- ؼ (Indicators) -- +- Numeric: ת 64 λ + +### String To Indexed Enum_csm.vi + +ַתΪö + +> Ref: ö (Indexed Enum) + + _**ת 1: **_ + + ַͨƥת + + Enum = {AAA, BBBB, CCCC} + + - ַ "AAA" תΪ Enum(AAA)ֵΪ 0 + - ַ "CCC" תΪ Enum(CCC)ֵΪ 2 + + _**ת 2: **_ + + ȿַͨƥתҲͨƥת + + Enum = {1- AAA, 5 - BBBB, 9 - CCCC} + + - ַ "AAA" תΪ Enum(1- AAA)ֵΪ 0 + - ַ "5" תΪ Enum(5 - BBBB)ֵΪ 1 + - ַ "9 - CCCC" תΪ Enum(9 - CCCC)ֵΪ 2 + +-- ؼ (Controls) -- +- String: ַ +- Enum Prototype: öԭ + +-- ؼ (Indicators) -- +- Enum: תöֵ + +### Indexed Enum to Numeric_csm.vim + +öתΪִֵ֧öͣöֵЯʱֱʹΪֵ + +> Ref: ö (Indexed Enum) + +-- ؼ (Controls) -- +- Enum: öֵ + +-- ؼ (Indicators) -- +- Numeric: öٵֵ +- String: öٵַʾ + +### Numeric to Indexed Enum_csm.vim + +ֵתΪö + + 1: ƥ䵽ʱֱʹø + 2: ûƥ䵽ʱʹֵΪö + +> Ref: ö (Indexed Enum) + +-- ؼ (Controls) -- +- Numeric: ֵ +- Enum Prototype: öԭ + +-- ؼ (Indicators) -- +- Enum: תöֵ + +### CSM - Timestamp to API String Arguments.vi + + LabVIEW ʱתΪ API String ַ + +-- ؼ (Controls) -- +- Timestamp (now): ʱĬΪǰʱ +- Format(Empty to use UTC): ʱʽַΪʱʹ UTC ʽ + +-- ؼ (Indicators) -- +- API String: ת API String ʽ + +## ߺ + +### CSM - Convert HexStr to Data.vim + +ṩ CSM - Convert HexStr to Data.vi Ӧ͵İ汾 + +-- ؼ (Controls) -- +- HEX String: HEX ʽַ +- Type: + +-- ؼ (Indicators) -- +- data: ת + +### CSM - Broadcast Data As API String.vim + +ʹ CSM - Generate User Global Log.vi API String ʽ㲥 + +-- ؼ (Controls) -- +- Data: Ҫ㲥 +- CSM: CSM ģ +- API/Condition: API ַ + +-- ؼ (Indicators) -- +- Data (dup): ݸ + +### CSM - Query Internal Data Names By API String.vi + +ѯ CSM ģڲơʵ߼ʹͬϢ "Data: Get Internal Data" Ϊ ""ȡ CSM ģڲб + +-- ؼ (Controls) -- +- Target Module: CSM Ŀģ +- Current Module ("" to Generate an ID): ǰģ飨ַʾ ID +- Wait (5000ms): ȴʱ䣨룩 + +-- ؼ (Indicators) -- +- Configurations: б diff --git a/testcases/testcase-Supported-Datatype/testcase-Supported-Datatype.lvclass b/testcases/testcase-Supported-Datatype/testcase-Supported-Datatype.lvclass index 17a04ef..7a2832a 100644 --- a/testcases/testcase-Supported-Datatype/testcase-Supported-Datatype.lvclass +++ b/testcases/testcase-Supported-Datatype/testcase-Supported-Datatype.lvclass @@ -22,7 +22,7 @@ true &Q#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!6*0%.M>8.U:8)_$1I]4G&N:4Z1:7Y],UZB<75_$1I]4H6N27RU=TYY0#^/>7V&<(2T0AU+0&5T-DY.#DR/97VF0E:P=G6H=G^V<G1A1W^M<X)],UZB<75_$1I]6G&M0DEX.$!Z-D1],V:B<$Y.#DQP64-S0AU+0&5T-DY.#DR/97VF0E*B9WNH=G^V<G1A1W^M<X)],UZB<75_$1I]6G&M0DAW/41W.D)],V:B<$Y.#DQP64-S0AU+0%.M>8.U:8)_$1I]4G&N:4Z';7RM)&"B>(2F=GY],UZB<75_$1I]4H6N27RU=TYY0#^/>7V&<(2T0AU+0&5Y0AU+0%ZB<75_5G^X)$!],UZB<75_$1I]6G&M0D)V.4QP6G&M0AU+0#^6/$Y.#DR6/$Y.#DR/97VF0F*P>S!R0#^/97VF0AU+0&:B<$YS.45],V:B<$Y.#DQP64A_$1I]64A_$1I]4G&N:4Z3<X=A-DQP4G&N:4Y.#DR797Q_-D5V0#^797Q_$1I],V5Y0AU+0&5Y0AU+0%ZB<75_5G^X)$-],UZB<75_$1I]6G&M0D)V.4QP6G&M0AU+0#^6/$Y.#DR6/$Y.#DR/97VF0F*P>S!U0#^/97VF0AU+0&:B<$YS.45],V:B<$Y.#DQP64A_$1I]64A_$1I]4G&N:4Z3<X=A.4QP4G&N:4Y.#DR797Q_-D5V0#^797Q_$1I],V5Y0AU+0&5Y0AU+0%ZB<75_5G^X)$9],UZB<75_$1I]6G&M0D)V.4QP6G&M0AU+0#^6/$Y.#DR6/$Y.#DR/97VF0F*P>S!X0#^/97VF0AU+0&:B<$YS.45],V:B<$Y.#DQP64A_$1I],U.M>8.U:8)_$1I]34%W0AU+0%ZB<75_6WFE>'A],UZB<75_$1I]6G&M0D%],V:B<$Y.#DQP34%W0AU+0%680AU+0%ZB<75_47^E:4QP4G&N:4Y.#DR$;'^J9W5_1W^Q?4QP1WBP;7.F0AU+0%.I<WFD:4Z0=DQP1WBP;7.F0AU+0%.I<WFD:4Z&?'.M>8.J>G5A4X)],U.I<WFD:4Y.#DR$;'^J9W5_1GFU)%.M:7&S0#^$;'^J9W5_$1I]1WBP;7.F0EZP>#"$<X"Z0#^$;'^J9W5_$1I]1WBP;7.F0EZP>#"0=DQP1WBP;7.F0AU+0%.I<WFD:4Z/<X)A28BD<(6T;8:F)%^S0#^$;'^J9W5_$1I]1WBP;7.F0EZP>#"#;81A1WRF98)],U.I<WFD:4Y.#DR797Q_-$QP6G&M0AU+0#^&6TY.#DR&4$Y.#DR/97VF0F.U?7RF0#^/97VF0AU+0%.I<WFD:4Z4<WRJ:$QP1WBP;7.F0AU+0%.I<WFD:4Z%98.I0#^$;'^J9W5_$1I]1WBP;7.F0E2P>$QP1WBP;7.F0AU+0%.I<WFD:4Z%98.I)%2P>$QP1WBP;7.F0AU+0%.I<WFD:4Z%98.I)%2P>#"%<X1],U.I<WFD:4Y.#DR797Q_-$QP6G&M0AU+0#^&4$Y.#DR&4$Y.#DR/97VF0E:J<'QA5H6M:4QP4G&N:4Y.#DR$;'^J9W5_28:F<C"0:'1],U.I<WFD:4Y.#DR$;'^J9W5_6WFO:'FO:TQP1WBP;7.F0AU+0&:B<$YQ0#^797Q_$1I],U6-0AU+0%6-0AU+0%ZB<75_27ZE)%.B=(-],UZB<75_$1I]1WBP;7.F0E2F:G&V<(1],U.I<WFD:4Y.#DR$;'^J9W5_2GRB>$QP1WBP;7.F0AU+0&:B<$YQ0#^797Q_$1I],U6-0AU+0#^$<(6T>'6S0AU+!!!!!! &Q#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!5Y0%.M>8.U:8)_$1I]4G&N:4Z1:7Y],UZB<75_$1I]4H6N27RU=TYY0#^/>7V&<(2T0AU+0&5T-DY.#DR/97VF0E:P=G6H=G^V<G1A1W^M<X)],UZB<75_$1I]6G&M0D%T-4%Y.TQP6G&M0AU+0#^6-T)_$1I]64-S0AU+0%ZB<75_1G&D;W>S<X6O:#"$<WRP=DQP4G&N:4Y.#DR797Q_.49W.T1R-4QP6G&M0AU+0#^6-T)_$1I]1WRV=X2F=DY.#DR/97VF0E:J<'QA5'&U>'6S<DQP4G&N:4Y.#DR/>7V&<(2T0DA],UZV<56M>(-_$1I]64A_$1I]4G&N:4Z3<X=A-$QP4G&N:4Y.#DR797Q_-$QP6G&M0AU+0#^6/$Y.#DR6/$Y.#DR/97VF0F*P>S!R0#^/97VF0AU+0&:B<$YQ0#^797Q_$1I],V5Y0AU+0&5Y0AU+0%ZB<75_5G^X)$)],UZB<75_$1I]6G&M0D!],V:B<$Y.#DQP64A_$1I]64A_$1I]4G&N:4Z3<X=A-TQP4G&N:4Y.#DR797Q_-$QP6G&M0AU+0#^6/$Y.#DR6/$Y.#DR/97VF0F*P>S!U0#^/97VF0AU+0&:B<$YQ0#^797Q_$1I],V5Y0AU+0&5Y0AU+0%ZB<75_5G^X)$5],UZB<75_$1I]6G&M0D!],V:B<$Y.#DQP64A_$1I]64A_$1I]4G&N:4Z3<X=A.DQP4G&N:4Y.#DR797Q_-$QP6G&M0AU+0#^6/$Y.#DR6/$Y.#DR/97VF0F*P>S!X0#^/97VF0AU+0&:B<$YQ0#^797Q_$1I],V5Y0AU+0#^$<(6T>'6S0AU+0%ER.DY.#DR/97VF0F>J:(2I0#^/97VF0AU+0&:B<$YT0#^797Q_$1I],UER.DY.#DR&6TY.#DR/97VF0EVP:'5],UZB<75_$1I]1WBP;7.F0E.P=(E],U.I<WFD:4Y.#DR$;'^J9W5_4X)],U.I<WFD:4Y.#DR$;'^J9W5_28BD<(6T;8:F)%^S0#^$;'^J9W5_$1I]1WBP;7.F0E*J>#"$<'6B=DQP1WBP;7.F0AU+0%.I<WFD:4Z/<X1A1W^Q?4QP1WBP;7.F0AU+0%.I<WFD:4Z/<X1A4X)],U.I<WFD:4Y.#DR$;'^J9W5_4G^S)%6Y9WRV=WFW:3"0=DQP1WBP;7.F0AU+0%.I<WFD:4Z/<X1A1GFU)%.M:7&S0#^$;'^J9W5_$1I]6G&M0D!],V:B<$Y.#DQP26=_$1I]25Q_$1I]4G&N:4Z4>(FM:4QP4G&N:4Y.#DR$;'^J9W5_5W^M;71],U.I<WFD:4Y.#DR$;'^J9W5_2'&T;$QP1WBP;7.F0AU+0%.I<WFD:4Z%<X1],U.I<WFD:4Y.#DR$;'^J9W5_2'&T;#"%<X1],U.I<WFD:4Y.#DR$;'^J9W5_2'&T;#"%<X1A2'^U0#^$;'^J9W5_$1I]6G&M0D!],V:B<$Y.#DQP25Q_$1I]25Q_$1I]4G&N:4Z';7RM)&*V<'5],UZB<75_$1I]1WBP;7.F0E6W:7YA4W2E0#^$;'^J9W5_$1I]1WBP;7.F0F>J<G2J<G=],U.I<WFD:4Y.#DR797Q_-$QP6G&M0AU+0#^&4$Y.#DR&4$Y.#DR/97VF0E6O:#"$98"T0#^/97VF0AU+0%.I<WFD:4Z%:7:B>7RU0#^$;'^J9W5_$1I]1WBP;7.F0E:M981],U.I<WFD:4Y.#DR797Q_-$QP6G&M0AU+0#^&4$Y.#DQP1WRV=X2F=DY.#A!!!!! - &Q#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!"<Y5F.31QU+!!.-6E.$4%*76Q!!%L!!!!2)!!!!)!!!%J!!!!!I!!!!!3.U:8.U9W&T:3V4>8"Q<X*U:71N2'&U982Z='5O<(:D<'&T=Q!!!+!8!)!!!$!!!!A!"!!!!!!%!!-!0!#]!"^!A!)!!!!!!1!"!!<`````!!!!!!!!!!!!!!!!6I$*P+T4WE+\D\98G9^<8Q!!!!Q!!!!1!!!!!,:EWQRE\M>$N0,@IKZP5J@5(9T:DQ#S"/G!#:DM_%*_!!!1!!!!!!!!!!!!!!!!!!!!!!!!!!!!!1!!!0`````5(9T:DQ#S"/G!#:DM_%*_!!!!%!!!!!!!!!!!!!!!!!!!!!!!!!!%!!!!!!!!!#=!!5R71U-!!!!"!!*735R#!!!!!&"53$!!!!!&!!%!!1!!!!!#!!-!!!!!!A!"!!!!!!!G!!!!*HC=9_"E9'JAO-!!R)R!T.4!^!0)`A$C-QBQ1'59!-@U#P%!!!!!!%=!!!%9?*RD9-!%`Y%!3$%S-$#>!N)M;/*A'M;G*M"F,C[\I/,-5$?S1E1:A7*-?Y!-*J!=QC]AQ(13C%_AG]/)R7Q!?.UI&!!!!!!-!!&73524!!!!!!!$!!!"EQ!!!PRYH*P!S-#1;7RB^A")-Q/R/%-$1X*_3CI8!Z$0!!&0G"AI"A&1]\41R!U0(%Y$!DV__29QP`E.4\?,CE"TD9I%5[F)NY_+3+?0#EMHC]K,0````W]_QH/YWS0HO+-.3'UX"V$]O)M+"YA$J&F!^0`!$*!KG(E"1.-Y'CK5'5J9$!^%(4\?9-))M2BG:"3K`5!<11ZA[?Q1!TKX/U2&I(/#&*$69-8!0`6!AS710.BRSO!1`\:,T:]9$1\O!"H(\XI);'%$R0U=1#-%$DZE[7\5!0*\*WJ!4?U-Y:!Y\M+B)Q<E-Z\I".H"!`-6"^S^93!$3I#WGI"]RA)S(;SGG_WYAQ<9HQYC%#I$1F6!K!)1N10MAC-==9@BY<PW^<V>I("H1QJT"S!'/295Z]B9DY'2!71B%Z#MB;KV!<+:I'+QO!/R';$"K)'E2Y5294Z)$UDG$F10C0U)SG[!OA=EJAP5-Q(+"E6.!J2N$72@A,+>A'Q"+.M4R';%M0WA\!>1?X(2TPYOLED?B[>H!(8TAK)!!!!!$"=!A!5!!!1R.SYQ!!!!!!Q8!)!!!!!%-4=O-!!!!!!-&Q#!"1!!"$%X,D!!!!!!$"=!A!!!!!1R.SYQ!!!!!!Q8!)!&!!!%-4=O-!!!!!!5!1!!!068.9*Z*K+-,H.34A:*/:U!!!!.!!!!!!!!!!!!!!!!!!!!!!!!!)$`````A(%9DY"\>^`T_TH@]`N_X`0\%>`T````D!!!!9Q!!!'-"!!"A!P!!9!3'!'!)A/"A%)"A9##!Y'"AA;"A@)'A9(_$)'"`^C"A@`QA9(`])'"``S"A@`XA9(`]1'"``)"A@`W!9$`Z!'!(_A"A!(Q!9!!)!'!!!!"`````Q!!!A$`````````````````````]!!!!!``!!]!$`!!]!$```!!!!!0``$`$`]0``]0`````Q$````Q`Q$`]!``$`````]!````]0]0```Q`Q``````!0````$`!!]!$`]0`````Q$`````````````````]!!C!!!!!!!!!!!!!!!!$`!!)A!!!!!!!!!!!!!!!!`Q!#)!!!$#T!!!!!!!!!!0]!!!!!!-ZG:CT!!!!!!!$`!!!!!!QG:G:G9MQ!!!!!`Q!!!!$#:G:G:G:G\1!!!0]!!!!!*G:G:G:G:G)!!!$`!!!!$G:G:G:G:G<G!!!!`Q!!!/:G:G:G:G:O:A!!!0]!!!$O\G:G:G:GZG9!!!$`!!!!ZG:OZG:G<G:G!!!!`Q!!!#:G:G<O:O:G:A!!!0]!!!!G:G:G:G*G:G9!!!$`!!!!*G:G:G:O:G:C!!!!`Q!!!#:G:G:G<G:G9A!!!0]!!!!G:G:G:GZG:G)!!!$`!!!!*G:G:G:O:G:M!!!!`Q!!!#:G:G:G<G:GQ!!!!0]!!!"G:G:G:GZG9A!!!!$`!!!!T?:G:G:O:C!!!!!!`Q!!!!!-XG:G<G,!!!!!!0]!!!!!!!$.ZGZM!!!!!!$`!!!!!!!!!!T3Q!!!!!!!`Q!!!!!!!!!!!!!!!!!!!0`````````````````````Q!!"!$```````````````````````````````````````````]E*#1E*#1E*0```Q!!!0]!!!$``Q!!!0]!!!$``````S1E*#1E*#1E`````Q$``Q$```]!``````]!````````````*#4`````````!0``!!$```]!!0```Q$```````````]E*0````````]!``]!````````!0``!0```````````S1E`````````Q$``Q!!!0]!!!$```]!````````````*#4```````````````````````````````````]!!!$4UQ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$``Q!!!.04!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!0``!!!!U^-!!!!!!!$WIXHY!!!!!!!!!!!!!!!!!!!!``]!!!!!!!!!!!!!^M>YIJT'H68W!!!!!!!!!!!!!!$``Q!!!!!!!!!!!0;D?(CC?(BY?-;D?3M!!!!!!!!!!0``!!!!!!!!!!$WIXBY?+*Y?(BY?(BYH-?!!!!!!!!!``]!!!!!!!!!!+.Y?(BYIHBY?(BY?(BYH-]!!!!!!!$``Q!!!!!!!!#E?(BY?(CC?(BY?(BY?*T(RA!!!!!!!0``!!!!!!!!J:RY?(BY?+*Y?(BY?(C=RXD'!!!!!!!!``]!!!!!!!$(R]@(H(BYIHBY?(BY?-?=?-9!!!!!!!$``Q!!!!!!!-?=H*T'R]@'?(BY?(D(H(BYRA!!!!!!!0``!!!!!!!!IZS=H*S=H-<(R]:YRZRY?(D'!!!!!!!!``]!!!!!!!#DH*S=H*SCH*S=RM[=?(BY?-9!!!!!!!$``Q!!!!!!!+/=H*S=IJS=H*S=RZRY?(BYIQ!!!!!!!0``!!!!!!!!IZS=H++=H*S=H*T(IK+C?(CD!!!!!!!!``]!!!!!!!#DH*SCH*S=H*S=H-?=?++CIK-!!!!!!!$``Q!!!!!!!+/=IJS=H*S=H*S=RZRY?(C=?1!!!!!!!0``!!!!!!!!I[+=H*S=H*S=H*T(H(BYH(E!!!!!!!!!``]!!!!!!!#CH*S=H*S=H*S=H-?=?*SD!!!!!!!!!!$``Q!!!!!!!0C!R[+=H*S=H*S=RXBYIQ!!!!!!!!!!!0``!!!!!!!!!!!!_)$(RJS=H*T(?+0W!!!!!!!!!!!!``]!!!!!!!!!!!!!!!$Y?M@'H-@'+Q!!!!!!!!!!!!$``Q!!!!!!!!!!!!!!!!!!!#N[KSM!!!!!!!!!!!!!!0``!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!````````````````````````````````````````````!!!!$!!"2F")5!!!!!!!!Q!!!X9!!!D&?*SN6L^05V%50L?UZB9RX#)&;M$_],;3#)GCC#"I!Q].!O78'("1'YO#)>:1-%SQP*"AQE4#9-,+[M$!QK#G=?H#Z#"$QX_A!^&%8J`HPN@WP@Z)K]%/*UVTPP/>=\\PHB3!@G).FB3M+%$9-8Y:5K!SEC!!]69+[5^A$>AE_1WEVE55'+'4\.#3)IU+6%53!8J67I@P[7T3<OFB2ZB[BLGQ7+5#V:&%P?-"4T,_I:'PWT*6(>$%.ED+-M8>0_G'(%6#E*N&>,33&"$*;\8+PN(Q[RG:CV`NL>3FF<1LQ+2%UQ*08M;+30V:+WFJ)2SJUS5"3T<$\O[O!8,II)$7RCX%%+[VWV)#5Y/9'%_W;*B+$9-]\2E?S:X;&,U,5$\UP*2A#%8==G9V0--FO:6A5>SM!L5]W5N>^#DST8:O4.Y$!C4_F+J\[J,!/U*#"3WX"I8Q>R%WA>]H&,AG*ST0Q)J=;AL*?G&4E]';E?'[E/'?*I.>7G>A[,":2A@*'P=V^=UPR2:H&DT2&Z\H]_&9T0.G9?ZN?(('%QEPBH7&G&`P$6(!GQE/Y4?,>E.+O$L%1A3`\B=H7#%)1<-!5>D:W='>9$3A\1CNZ]EMTI&M%EB:%3,'-E5DRD*PYD,^U_"`$.+PBS`&7PV>FFQT3Y;:/^(-$J<@8)[:<`]@-Z>:64@;<C80X^!.6W#YB&>\>*$B<]Q8K/Y3G$O)748\'T')S0#5]P@>!H],<*[`N\;W]PU>T%KCO^R+C/ZS_5!^55_%VU`59_C%%:082V!HZ"/G68]A5S-SZ?AS,(3ZL_HC..RN1W(]:>UN_U,2ACN4J5!)8>@'EY_UEN6;S4KY"&ZIQ]EO$G)>%2VO`:726)5H\N98=2;K:9_7YB72_>,,@%6^IHRB;E16K2D,JZ[_KNVNT$C+-^<RJ..Y749)1!=/O,_`DQ.C,$;A%X@AU6+])G<LTR7WIK=+)XB&,*^[_KLG!=@UKT.N%F(-C&9VW\L9D">Q$2YNR3NCFE)K\+:IKHBQ@Z@Z\U8.%Y\L%U[:*KT3(W0"B#38Q9UJR:K:T;(!.TNI/K0D>PW-6O!:88MCB-$=E/H'U--P3^E`$H3#3WKJ".;0&+M+/+7_GI^M1$2*"WA`W];4D.?ZDG\4Y`D8\&_,_&!7+2`!/\,-X\NJQR`4H5_S!!!!!!!%!!!!+1!!!!1!!!!!!!!!$!!"1E2)5!!!!!!!!Q!!!'5!!!"V?*RD9'!I&*"A_M>1^Z?"3?!LE#(^FY&:U)`R.Q-$JZ`!93$.+#!*&*<^S]!OK!U7VD[CS]%!";JMD"S3()=&/=!S(#U;$0```V=J9O4Y?O1;8.%2(TB4::9]BQ1!:1A:GA!!!!!!!!1!!!!(!!!#:1!!!!=!!!!B8WZJ8URB=X2,<G^X<E^X<GFO:UR71WRB=X.$<(6T>'6S!!!!7B=!A!!!!!!"!!A!-0````]!!1!!!!!!0A!!!!)!#E!B"%ZP<G5!!#R!5!!"!!!D>'6T>'.B=W5N5X6Q='^S>'6E,52B>'&U?8"F,GRW9WRB=X-!!1!"!!!!!!!!!"J-6E.M98.T5(*J>G&U:52B>'&597*0=G2F=A!!!#E8!)!!!!!!!A!&!!=!!!Q!1!!"`````Q!!!!%!!1!!!!%!!!!!!!!!!!!!!"N-6E.M98.T5(*J>G&U:52B>'&5;7VF=X2B<8!!!!!:&Q#!!!!!!!%!"1!(!!!"!!$(U'*6!!!!!!!!!#:-6E.M98.T5(*J>G&U:52B>'&-98.U18"Q<'FF:&2J<76T>'&N=!!!!"E8!)!!!!!!!1!&!!=!!!%!!-@19F5!!!!!!!!!'ER71WRB=X.1=GFW982F2'&U962Z='6%:8.D!!!!5"=!A!!!!!!"!!A!-0````]!!1!!!!!!.!!!!!)!#E!B"%ZP<G5!!#*!5!!"!!!96'6N='RB>'65:8.U1W&T:3ZM>G.M98.T!!!"!!%!!!!!!!!!(ER71WRB=X.1=GFW982F2'&U952G<(2%982B5WF[:1!!!"E8!)!!!!!!!1!&!!-!!!%!!!!!!!%!!!!!!!!!'ER71WRB=X.1=GFW982F2'&U952G<(2%982B!!!!02=!A!!!!!!#!!J!)12/<WZF!!!C1&!!!1!!'&2F<8"M982F6'6T>%.B=W5O<(:D<'&T=Q!!!1!"!!!!!!!!!!!!!!!%!!-!#Q!!!!1!!!"3!!!!+!!!!!)!!!1!!!!!+Q!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!%!!!!"H8C=D9`"3M.!%);`:'/<RF;L6G^CCO"";#__1%$R+%8R<EQW)CRO3$:"<\[>6R^&X]"J7P%AC0TM\-Q```YT#RQ1*>0ASDZJ;0F]?\_`"@RDJWO8J<7?X42F;3OH]^F&[F,X5OKZ;4/4VP828ZL-'5[4"2Y=HJOG>LK+<2&X$_/S?GR4J_.=V'Q)C-D"_]#81KV,TAA9*(V592Y)EV>FL^W+U,:A,/[+(HV#V?3&;+=-OYG2=M_Z?#T%<M!G*``=QU>#<RF%(8)H+Q2=CEX-&NP38G)MX$@].8YT0ZW>$KM0??R+FH7_HBQ9S;VEY&#S03<#4.C8@!2@W)^'N!!!!(=!!1!#!!-!"1!!!&A!$Q!!!!!!$Q$:!.1!!!"B!!]!!!!!!!]!W1$5!!!!;A!0!!!!!!!0!.E!V!!!!(/!!)!!A!!!$Q$:!.1!!!"VA!#!!)!!!!]!W1$5#&.F:W^F)&6*#&.F:W^F)&6*#&.F:W^F)&6*!4)"-!"35V*$$1I!!UR71U.-1F:8!!!3M!!!"%A!!!!A!!!3E!!!!!!!!!!!!!!!)!!!!$1!!!1I!!!!(%R*1EY!!!!!!!!"9%R75V)!!!!!!!!">&*55U=!!!!!!!!"C%.$5V1!!!!!!!!"H%R*>GE!!!!!!!!"M%.04F!!!!!!!!!"R&2./$!!!!!!!!!"W%2'2&-!!!!!!!!"\%R*:(-!!!!!!!!#!&:*1U1!!!!!!!!#&(:F=H-!!!!%!!!#+&.$5V)!!!!!!!!#D%>$5&)!!!!!!!!#I%F$4UY!!!!!!!!#N'FD<$1!!!!!!!!#S'FD<$A!!!!!!!!#X%R*:H!!!!!!!!!#]%:13')!!!!!!!!$"%:15U5!!!!!!!!$'&:12&!!!!!!!!!$,%R*9G1!!!!!!!!$1%*%3')!!!!!!!!$6%*%5U5!!!!!!!!$;&:*6&-!!!!!!!!$@%253&!!!!!!!!!$E%V6351!!!!!!!!$J%B*5V1!!!!!!!!$O&:$6&!!!!!!!!!$T%:515)!!!!!!!!$Y!!!!!$`````!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!,!!!!!!!!!!!`````Q!!!!!!!!$1!!!!!!!!!!$`````!!!!!!!!!/1!!!!!!!!!!0````]!!!!!!!!!\!!!!!!!!!!!`````Q!!!!!!!!%9!!!!!!!!!!$`````!!!!!!!!!3!!!!!!!!!!!0````]!!!!!!!!"4!!!!!!!!!!!`````Q!!!!!!!!'9!!!!!!!!!!$`````!!!!!!!!!;A!!!!!!!!!"0````]!!!!!!!!$1!!!!!!!!!!(`````Q!!!!!!!!.1!!!!!!!!!!D`````!!!!!!!!!W!!!!!!!!!!#@````]!!!!!!!!$=!!!!!!!!!!+`````Q!!!!!!!!/!!!!!!!!!!!$`````!!!!!!!!!Z!!!!!!!!!!!0````]!!!!!!!!$K!!!!!!!!!!!`````Q!!!!!!!!/]!!!!!!!!!!$`````!!!!!!!!"%!!!!!!!!!!!0````]!!!!!!!!'2!!!!!!!!!!!`````Q!!!!!!!!J)!!!!!!!!!!$`````!!!!!!!!#FA!!!!!!!!!!0````]!!!!!!!!.V!!!!!!!!!!!`````Q!!!!!!!!X=!!!!!!!!!!$`````!!!!!!!!$?1!!!!!!!!!!0````]!!!!!!!!.^!!!!!!!!!!!`````Q!!!!!!!!ZA!!!!!!!!!!$`````!!!!!!!!$GA!!!!!!!!!!0````]!!!!!!!!1V!!!!!!!!!!!`````Q!!!!!!!"$=!!!!!!!!!!$`````!!!!!!!!%/1!!!!!!!!!!0````]!!!!!!!!2%!!!!!!!!!#!`````Q!!!!!!!")5!!!!!"^U:8.U9W&T:3V4>8"Q<X*U:71N2'&U982Z='5O9X2M!!!!!! + &Q#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!"=95F.31QU+!!.-6E.$4%*76Q!!%N!!!!2)!!!!)!!!%L!!!!!I!!!!!3.U:8.U9W&T:3V4>8"Q<X*U:71N2'&U982Z='5O<(:D<'&T=Q!!!+!8!)!!!$!!!!A!"!!!!!!%!!-!0!#]!"^!A!)!!!!!!1!"!!<`````!!!!!!!!!!!!!!!!6I$*P+T4WE+\D\98G9^<8Q!!!!Q!!!!1!!!!!,:EWQRE\M>$N0,@IKZP5J@5(9T:DQ#S"/G!#:DM_%*_!!!1!!!!!!!!!!!!!!!!!!!!!!!!!!!!!1!!!0`````5(9T:DQ#S"/G!#:DM_%*_!!!!%!!!!!!!!!!!!!!!!!!!!!!!!!!%!!!!!!!!!#=!!5R71U-!!!!"!!*735R#!!!!!&"53$!!!!!&!!%!!1!!!!!#!!-!!!!!!A!"!!!!!!!G!!!!*HC=9_"E9'JAO-!!R)R!T.4!^!0)`A$C-QBQ1'59!-@U#P%!!!!!!%=!!!%9?*RD9-!%`Y%!3$%S-$#>!N)M;/*A'M;G*M"F,C[\I/,-5$?S1E1:A7*-?Y!-*J!=QC]AQ(13C%_AG]/)R7Q!?.UI&!!!!!!-!!&73524!!!!!!!$!!!"EQ!!!PRYH*P!S-#1;7RB^A")-Q/R/%-$1X*_3CI8!Z$0!!&0G"AI"A&1]\41R!U0(%Y$!DV__29QP`E.4\?,CE"TD9I%5[F)NY_+3+?0#EMHC]K,0````W]_QH/YWS0HO+-.3'UX"V$]O)M+"YA$J&F!^0`!$*!KG(E"1.-Y'CK5'5J9$!^%(4\?9-))M2BG:"3K`5!<11ZA[?Q1!TKX/U2&I(/#&*$69-8!0`6!AS710.BRSO!1`\:,T:]9$1\O!"H(\XI);'%$R0U=1#-%$DZE[7\5!0*\*WJ!4?U-Y:!Y\M+B)Q<E-Z\I".H"!`-6"^S^93!$3I#WGI"]RA)S(;SGG_WYAQ<9HQYC%#I$1F6!K!)1N10MAC-==9@BY<PW^<V>I("H1QJT"S!'/295Z]B9DY'2!71B%Z#MB;KV!<+:I'+QO!/R';$"K)'E2Y5294Z)$UDG$F10C0U)SG[!OA=EJAP5-Q(+"E6.!J2N$72@A,+>A'Q"+.M4R';%M0WA\!>1?X(2TPYOLED?B[>H!(8TAK)!!!!!$"=!A!5!!!1R.SYQ!!!!!!Q8!)!!!!!%-4=O-!!!!!!-&Q#!"1!!"$%X,D!!!!!!$"=!A!!!!!1R.SYQ!!!!!!Q8!)!&!!!%-4=O-!!!!!!5!1!!!068.9*Z*K+-,H.34A:*/:U!!!!.!!!!!!!!!!!!!!!!!!!!!!!!!)$`````A(%9DY"\>^`T_TH@]`N_X`0\%>`T````D!!!!9Q!!!'-"!!"A!P!!9!3'!'!)A/"A%)"A9##!Y'"AA;"A@)'A9(_$)'"`^C"A@`QA9(`])'"``S"A@`XA9(`]1'"``)"A@`W!9$`Z!'!(_A"A!(Q!9!!)!'!!!!"`````Q!!!A$`````````````````````]!!!!!``!!]!$`!!]!$```!!!!!0``$`$`]0``]0`````Q$````Q`Q$`]!``$`````]!````]0]0```Q`Q``````!0````$`!!]!$`]0`````Q$`````````````````]!!C!!!!!!!!!!!!!!!!$`!!)A!!!!!!!!!!!!!!!!`Q!#)!!!$#T!!!!!!!!!!0]!!!!!!-ZG:CT!!!!!!!$`!!!!!!QG:G:G9MQ!!!!!`Q!!!!$#:G:G:G:G\1!!!0]!!!!!*G:G:G:G:G)!!!$`!!!!$G:G:G:G:G<G!!!!`Q!!!/:G:G:G:G:O:A!!!0]!!!$O\G:G:G:GZG9!!!$`!!!!ZG:OZG:G<G:G!!!!`Q!!!#:G:G<O:O:G:A!!!0]!!!!G:G:G:G*G:G9!!!$`!!!!*G:G:G:O:G:C!!!!`Q!!!#:G:G:G<G:G9A!!!0]!!!!G:G:G:GZG:G)!!!$`!!!!*G:G:G:O:G:M!!!!`Q!!!#:G:G:G<G:GQ!!!!0]!!!"G:G:G:GZG9A!!!!$`!!!!T?:G:G:O:C!!!!!!`Q!!!!!-XG:G<G,!!!!!!0]!!!!!!!$.ZGZM!!!!!!$`!!!!!!!!!!T3Q!!!!!!!`Q!!!!!!!!!!!!!!!!!!!0`````````````````````Q!!"!$```````````````````````````````````````````]E*#1E*#1E*0```Q!!!0]!!!$``Q!!!0]!!!$``````S1E*#1E*#1E`````Q$``Q$```]!``````]!````````````*#4`````````!0``!!$```]!!0```Q$```````````]E*0````````]!``]!````````!0``!0```````````S1E`````````Q$``Q!!!0]!!!$```]!````````````*#4```````````````````````````````````]!!!$4UQ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$``Q!!!.04!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!0``!!!!U^-!!!!!!!$WIXHY!!!!!!!!!!!!!!!!!!!!``]!!!!!!!!!!!!!^M>YIJT'H68W!!!!!!!!!!!!!!$``Q!!!!!!!!!!!0;D?(CC?(BY?-;D?3M!!!!!!!!!!0``!!!!!!!!!!$WIXBY?+*Y?(BY?(BYH-?!!!!!!!!!``]!!!!!!!!!!+.Y?(BYIHBY?(BY?(BYH-]!!!!!!!$``Q!!!!!!!!#E?(BY?(CC?(BY?(BY?*T(RA!!!!!!!0``!!!!!!!!J:RY?(BY?+*Y?(BY?(C=RXD'!!!!!!!!``]!!!!!!!$(R]@(H(BYIHBY?(BY?-?=?-9!!!!!!!$``Q!!!!!!!-?=H*T'R]@'?(BY?(D(H(BYRA!!!!!!!0``!!!!!!!!IZS=H*S=H-<(R]:YRZRY?(D'!!!!!!!!``]!!!!!!!#DH*S=H*SCH*S=RM[=?(BY?-9!!!!!!!$``Q!!!!!!!+/=H*S=IJS=H*S=RZRY?(BYIQ!!!!!!!0``!!!!!!!!IZS=H++=H*S=H*T(IK+C?(CD!!!!!!!!``]!!!!!!!#DH*SCH*S=H*S=H-?=?++CIK-!!!!!!!$``Q!!!!!!!+/=IJS=H*S=H*S=RZRY?(C=?1!!!!!!!0``!!!!!!!!I[+=H*S=H*S=H*T(H(BYH(E!!!!!!!!!``]!!!!!!!#CH*S=H*S=H*S=H-?=?*SD!!!!!!!!!!$``Q!!!!!!!0C!R[+=H*S=H*S=RXBYIQ!!!!!!!!!!!0``!!!!!!!!!!!!_)$(RJS=H*T(?+0W!!!!!!!!!!!!``]!!!!!!!!!!!!!!!$Y?M@'H-@'+Q!!!!!!!!!!!!$``Q!!!!!!!!!!!!!!!!!!!#N[KSM!!!!!!!!!!!!!!0``!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!````````````````````````````````````````````!!!!$!!"2F")5!!!!!!!!Q!!!X=!!!D&?*SN6M^0%V%1HF?+?5756X\8!.P76_Q"%E52B9*%&B7"]EM-?&!<CY)B9CA94H$:E'$#S93$#5?Y?O$!B9/;REMPH$T)I?%`U!022,<LP&X;X@Z)KU&)*EUTXXQT]XVP5A$[C>8;%L#M!G&(_'&!B:*QD!"%GSG=`$7O!BMHPY&5OIA+1X3=(>A3J%[&UH#ME6[7V_$\34:JN87S1UQ^QVR9L%3&MH#MRHG@RRH`5-@8CJ.6+U"C[S2BG_$34\KOT#%B+(Y2H=UE!54WW/W+>TDU;ELBYFN(-X8J*2UK-$F70]`DF\!C5H`73^K;#%@KEZ+!*@WQM\.DAJQ'K&&PYQ:C#.@<<=K$+5>-B-?<>%S*DE'?VC30,#8?C>Y&+".;)==91B'XF&Q.4X,*ENK>%T?N1C70X[9O?BD_6HRO2.E&!C4[B'K\WK,!/Y.#"4WX()8QN2-WBJ`(6,CCR'R0Q9Z=WD'3S<#FSW"0SH"6S("(F]%BLT%Q>>AKI).MDXLL?W98)QN4]_[ZZ_ZHM[&)R0V[@O:.;'(+(1YNB!S&G-`I$6(!`13(]&F&OS<(8'VC)9,@]%M.W,(2<KM!=\#^P9U\Q7B#7R&;Q_-J8!7SX1-Z*5,98+:IR&TG>6SG<R*]DU$_^?#&7+OPX::O:NEU]UUUMZ.F.J>GZI\`9_9#KQKA\:9T`!U";)<"0&\N.%#GPT%@I!M#?4">C&GR_BMR!=1-&P<XL3R`#WS'PT=W.D,^X:W3R(#ZH2$$Z=K_>KQ>#[]HN#0IA#',VY>1*_14JN6_)&-$-K8J-CBUO;PL5G7[ORC&]2>UN_).TG6>G6)6AOC[&BZ`K*=MUUP7QE8]<](*'PKRDIB/S8BF*&(EDEL')MZ#G?,75TQC-O`*-F^3LSC@H2L72#L'QKGHL_K1T"G(==:K(K]S8V9R_+%."^T<W]-"-?9;M!JXY.:40#+G[M^ENW+E#C.Y2#S=?PKKVA&(D+MT;2&2T)B7N>I[VYQ8=!VO0=5D9IJ#TOYG:[JY=(_8_?^&L2//'B./7#9]<TT'L!F*/I/%+<G;G5[DQ$@<<TGDIQ\DD"<B'6V^,)4!X+$FRN#$,YOJ(QZUD-N;PA47CR1L+F4*0?5@7:^IEP<28L;**RGP=T8>J%@2L[G@&N'"&&,:B\>EC<_8;/U@"(21'1!!!!!%!!!!+1!!!!1!!!!!!!!!$!!"1E2)5!!!!!!!!Q!!!'5!!!"V?*RD9'!I&*"A_M>1^Z?"3?!LE#(^FY&:U)`R.Q-$JZ`!93$.+#!*&*<^S]!OK!U7VD[CS]%!";JMD"S3()=&/=!S(#U;$0```V=J9O4Y?O1;8.%2(TB4::9]BQ1!:1A:GA!!!!!!!!1!!!!(!!!#:1!!!!=!!!!B8WZJ8URB=X2,<G^X<E^X<GFO:UR71WRB=X.$<(6T>'6S!!!!7B=!A!!!!!!"!!A!-0````]!!1!!!!!!0A!!!!)!#E!B"%ZP<G5!!#R!5!!"!!!D>'6T>'.B=W5N5X6Q='^S>'6E,52B>'&U?8"F,GRW9WRB=X-!!1!"!!!!!!!!!"J-6E.M98.T5(*J>G&U:52B>'&597*0=G2F=A!!!#E8!)!!!!!!!A!&!!=!!!Q!1!!"`````Q!!!!%!!1!!!!%!!!!!!!!!!!!!!"N-6E.M98.T5(*J>G&U:52B>'&5;7VF=X2B<8!!!!!:&Q#!!!!!!!%!"1!(!!!"!!$(U'*6!!!!!!!!!#:-6E.M98.T5(*J>G&U:52B>'&-98.U18"Q<'FF:&2J<76T>'&N=!!!!"E8!)!!!!!!!1!&!!=!!!%!!-@19F5!!!!!!!!!'ER71WRB=X.1=GFW982F2'&U962Z='6%:8.D!!!!5"=!A!!!!!!"!!A!-0````]!!1!!!!!!.!!!!!)!#E!B"%ZP<G5!!#*!5!!"!!!96'6N='RB>'65:8.U1W&T:3ZM>G.M98.T!!!"!!%!!!!!!!!!(ER71WRB=X.1=GFW982F2'&U952G<(2%982B5WF[:1!!!"E8!)!!!!!!!1!&!!-!!!%!!!!!!!%!!!!!!!!!'ER71WRB=X.1=GFW982F2'&U952G<(2%982B!!!!02=!A!!!!!!#!!J!)12/<WZF!!!C1&!!!1!!'&2F<8"M982F6'6T>%.B=W5O<(:D<'&T=Q!!!1!"!!!!!!!!!!!!!!!%!!-!#Q!!!!1!!!"3!!!!+!!!!!)!!!1!!!!!,!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!%!!!!"H8C=D9`"3M.!%);`:'/<RF;L6G^CCO"";#__1%$R+%8R<EQW)CRO3$:"<\[>6R^&X]"J7P%AC0TM\-Q```YT#RQ1*>0ASDZJ;0F]?\_`"@RDJWO8J<7?X42F;3OH]^F&[F,X5OKZ;4/4VP828ZL-'5[4"2Y=HJOG>LK+<2&X$_/S?GR4J_.=V'Q)C-D"_]#81KV,TAA9*(V592Y)EV>FL^W+U,:A,/[+(HV#V?3&;+=-OYG2=M_Z?#T%<M!G*``=QU>#<RF%(8)H+Q2=CEX-&NP38G)MX$@].8YT0ZW>$KM0??R+FH7_HBQ9S;VEY&#S03<#4.C8@!2@W)^'N!!!!*5!!1!#!!-!"1!!!&A!%1!!!!!!%1$R!/5!!!"L!"%!!!!!!"%!]1$F!!!!@A!2!!!!!!!2!0%!Z1!!!*'!!)!!A!!!%1$R!/5!!!#4A!#!!)!!!"%!]1$F%EVJ9X*P=W^G>#":95BF;3"632*.;7.S<X.P:H1A77&):7EA65E347FD=G^T<W:U)&FB3'6J)&6*!4)"-!!!!&*45E-.#A!$4&:$1UR#6F=!!",1!!!%3!!!!#!!!"+Q!!!!!!!!!!!!!!!A!!!!.!!!"#A!!!!=4%F#4A!!!!!!!!&A4&:45A!!!!!!!!&U5F242Q!!!!!!!!')1U.46!!!!!!!!!'=4%FW;1!!!!!!!!'Q1U^/5!!!!!!!!!(%6%UY-!!!!!!!!!(92%:%5Q!!!!!!!!(M4%FE=Q!!!!!!!!)!6EF$2!!!!!!!!!)5>G6S=Q!!!!1!!!)I5U.45A!!!!!!!!+-2U.15A!!!!!!!!+A35.04A!!!!!!!!+U;7.M.!!!!!!!!!,);7.M/!!!!!!!!!,=4%FG=!!!!!!!!!,Q2F")9A!!!!!!!!-%2F"421!!!!!!!!-96F"%5!!!!!!!!!-M4%FC:!!!!!!!!!.!1E2)9A!!!!!!!!.51E2421!!!!!!!!.I6EF55Q!!!!!!!!.]2&2)5!!!!!!!!!/1466*2!!!!!!!!!/E3%F46!!!!!!!!!/Y6E.55!!!!!!!!!0-2F2"1A!!!!!!!!0A!!!!!0````]!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!M!!!!!!!!!!$`````!!!!!!!!!.!!!!!!!!!!!0````]!!!!!!!!!Z!!!!!!!!!!!`````Q!!!!!!!!$M!!!!!!!!!!$`````!!!!!!!!!2A!!!!!!!!!!0````]!!!!!!!!")!!!!!!!!!!!`````Q!!!!!!!!&-!!!!!!!!!!$`````!!!!!!!!!:A!!!!!!!!!!0````]!!!!!!!!"K!!!!!!!!!!%`````Q!!!!!!!!.!!!!!!!!!!!@`````!!!!!!!!!V!!!!!!!!!!#0````]!!!!!!!!$9!!!!!!!!!!*`````Q!!!!!!!!.Q!!!!!!!!!!L`````!!!!!!!!!Y!!!!!!!!!!!0````]!!!!!!!!$E!!!!!!!!!!!`````Q!!!!!!!!/I!!!!!!!!!!$`````!!!!!!!!!\Q!!!!!!!!!!0````]!!!!!!!!%1!!!!!!!!!!!`````Q!!!!!!!!:%!!!!!!!!!!$`````!!!!!!!!#EA!!!!!!!!!!0````]!!!!!!!!+7!!!!!!!!!!!`````Q!!!!!!!!X5!!!!!!!!!!$`````!!!!!!!!$>Q!!!!!!!!!!0````]!!!!!!!!.Z!!!!!!!!!!!`````Q!!!!!!!!XU!!!!!!!!!!$`````!!!!!!!!$G!!!!!!!!!!!0````]!!!!!!!!/;!!!!!!!!!!!`````Q!!!!!!!"$5!!!!!!!!!!$`````!!!!!!!!%.Q!!!!!!!!!!0````]!!!!!!!!1Z!!!!!!!!!!!`````Q!!!!!!!"%1!!!!!!!!!)$`````!!!!!!!!%B1!!!!!(X2F=X2D98.F,6.V=("P=H2F:#V%982B>(FQ:3ZD>'Q!!!!! @@ -235,6 +235,15 @@ 1 1074278928 + + &Q#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!&!!!!!#1!-1#%'=X2B>(6T!!!,1!-!"'.P:'5!!""!-0````]'=W^V=G.F!!!71&!!!Q!!!!%!!AFF=H*P=C"P>81!"!!!!$R!=!!?!!!F)X2F=X2D98.F,6.V=("P=H2F:#V%982B>(FQ:3ZM>G.M98.T!!R5:8.U1W&T:3"P>81!!#"!5!!$!!!!!1!#%W6S=G^S)'FO)#BO<S"F=H*P=CE!/E"Q!"Y!!#5D>'6T>'.B=W5N5X6Q='^S>'6E,52B>'&U?8"F,GRW9WRB=X-!#V2F=X2$98.F)'FO!'%!]!!-!!-!"!!%!!5!"!!%!!1!"!!'!!1!"!!(!Q!!?!!!$1A!!!!!!!!!!!!!$1M!!!!!!!!!!!!!!!!!!!!!!!!+!!!!!!!!!!!!!!!3!!!.!!!!$!!!!!!!!!!!!!!"!!A!!!!! + -1 + 16777216 + true + 1 + 1 + 1107821074 + &Q#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!&#!!!!#1!-1#%'=X2B>(6T!!!,1!-!"'.P:'5!!""!-0````]'=W^V=G.F!!!71&!!!Q!!!!%!!AFF=H*P=C"P>81!"!!!!$R!=!!?!!!F)X2F=X2D98.F,6.V=("P=H2F:#V%982B>(FQ:3ZM>G.M98.T!!VS:7:F=G6O9W5A<X6U!#"!5!!$!!!!!1!#%W6S=G^S)'FO)#BO<S"F=H*P=CE!0%"Q!"Y!!#5D>'6T>'.B=W5N5X6Q='^S>'6E,52B>'&U?8"F,GRW9WRB=X-!$(*F:G6S:7ZD:3"J<A!!91$Q!!Q!!Q!%!!1!"1!%!!1!"!!%!!9!"!!%!!=$!!"Y!!!.#!!!!!!!!!!!!!!.#Q!!!!!!!!!!!!!!!!!!!!!!!!I!!!!!!!!!!!!!!")!!!U!!!!-!!!!!!!!!!!!!!%!#!!!!!! diff --git a/testcases/testcase-Supported-Datatype/testcases/test - #86.vi b/testcases/testcase-Supported-Datatype/testcases/test - #86.vi index 5c47d19..06376a3 100644 Binary files a/testcases/testcase-Supported-Datatype/testcases/test - #86.vi and b/testcases/testcase-Supported-Datatype/testcases/test - #86.vi differ diff --git a/testcases/testcase-Supported-Datatype/testcases/test - #98.vi b/testcases/testcase-Supported-Datatype/testcases/test - #98.vi new file mode 100644 index 0000000..6b19d18 Binary files /dev/null and b/testcases/testcase-Supported-Datatype/testcases/test - #98.vi differ diff --git a/testcases/testcase-Supported-Datatype/testcases/test - Arguments or Respsone.vi b/testcases/testcase-Supported-Datatype/testcases/test - Arguments or Respsone.vi index df74352..6eb0985 100644 Binary files a/testcases/testcase-Supported-Datatype/testcases/test - Arguments or Respsone.vi and b/testcases/testcase-Supported-Datatype/testcases/test - Arguments or Respsone.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 80dd895..d98cc46 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 Changed with Leaf Element Name.vi b/testcases/testcase-Supported-Datatype/testcases/test - Cluster Changed with Leaf Element Name.vi index 2494abd..c1f6503 100644 Binary files a/testcases/testcase-Supported-Datatype/testcases/test - Cluster Changed with Leaf Element Name.vi and b/testcases/testcase-Supported-Datatype/testcases/test - Cluster Changed with Leaf Element Name.vi differ diff --git a/testcases/testcase-Supported-Datatype/testcases/test - Cluster mixed with Array 2.vi b/testcases/testcase-Supported-Datatype/testcases/test - Cluster mixed with Array 2.vi index dbc97cd..6a478bc 100644 Binary files a/testcases/testcase-Supported-Datatype/testcases/test - Cluster mixed with Array 2.vi and b/testcases/testcase-Supported-Datatype/testcases/test - Cluster mixed with Array 2.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 9680225..65a6900 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 with Reference.vi b/testcases/testcase-Supported-Datatype/testcases/test - Cluster with Reference.vi index 7d49994..64d75fb 100644 Binary files a/testcases/testcase-Supported-Datatype/testcases/test - Cluster with Reference.vi and b/testcases/testcase-Supported-Datatype/testcases/test - Cluster with Reference.vi differ diff --git a/testcases/testcase-Supported-Datatype/testcases/test - Cluster.vi b/testcases/testcase-Supported-Datatype/testcases/test - Cluster.vi index 107c41d..d6a6a9f 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 - Cluster2.vi b/testcases/testcase-Supported-Datatype/testcases/test - Cluster2.vi index bf4dba4..e166bc7 100644 Binary files a/testcases/testcase-Supported-Datatype/testcases/test - Cluster2.vi and b/testcases/testcase-Supported-Datatype/testcases/test - Cluster2.vi differ diff --git a/testcases/testcase-Supported-Datatype/testcases/test - Complex.vi b/testcases/testcase-Supported-Datatype/testcases/test - Complex.vi index a5f6392..86fab17 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 - Empty String Check.vi b/testcases/testcase-Supported-Datatype/testcases/test - Empty String Check.vi index c95a893..5f703a8 100644 Binary files a/testcases/testcase-Supported-Datatype/testcases/test - Empty String Check.vi and b/testcases/testcase-Supported-Datatype/testcases/test - Empty String Check.vi differ diff --git a/testcases/testcase-Supported-Datatype/testcases/test - Enum.vi b/testcases/testcase-Supported-Datatype/testcases/test - Enum.vi index fd2e724..7228b3f 100644 Binary files a/testcases/testcase-Supported-Datatype/testcases/test - Enum.vi and b/testcases/testcase-Supported-Datatype/testcases/test - Enum.vi differ diff --git a/testcases/testcase-Supported-Datatype/testcases/test - No Tag Mode.vi b/testcases/testcase-Supported-Datatype/testcases/test - No Tag Mode.vi index 7732a7f..d55b8d3 100644 Binary files a/testcases/testcase-Supported-Datatype/testcases/test - No Tag Mode.vi and b/testcases/testcase-Supported-Datatype/testcases/test - No Tag Mode.vi differ diff --git a/testcases/testcase-Supported-Datatype/testcases/test - Refnum.vi b/testcases/testcase-Supported-Datatype/testcases/test - Refnum.vi index e31f430..4f4ad99 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 230314c..41bc78b 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 f462da1..e6435bd 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 ec0cc97..b2851ef 100644 Binary files a/testcases/testcase-Supported-Datatype/testcases/test - timestamp.vi and b/testcases/testcase-Supported-Datatype/testcases/test - timestamp.vi differ