Changes for page 01 Lua Functions

Last modified by Theodore Xu on 2023/10/26 10:51

From version 5.10
edited by Stone Wu
on 2022/07/12 09:30
Change comment: (Autosaved)
To version 5.13
edited by Stone Wu
on 2022/07/12 09:45
Change comment: (Autosaved)

Summary

Details

Page properties
Content
... ... @@ -958,20 +958,17 @@
958 958  
959 959  Parameter:
960 960  
961 -//Topic//, topic name
961 +* //Topic//, topic name
962 +* //Message//, content
962 962  
963 -//Message//, content
964 +**2."arrived" is published by publish, this function will be called after the publication arrives**
964 964  
965 -**2.**"arrived" is published by publish, this function will be called after the publication arrives
966 -
967 967  //Callback// prototype~:// function ()//
968 968  
969 -Parameter:
968 +Parameter: None
970 970  
971 -None
970 +**3.This function will be called after the "offline" connection is lost**
972 972  
973 -**3.**This function will be called after the "offline" connection is lost
974 -
975 975  //Callback// prototype~:// function (string cause)//
976 976  
977 977  Parameter:
... ... @@ -985,17 +985,13 @@
985 985  Failed: multi
986 986  
987 987  (((
988 -== **4.11 mqtt:setup_cfg()** ==
985 +== **mqtt:setup_cfg()** ==
989 989  )))
990 990  
991 -**Function:**
988 +**Function:** Cloud mode interface, to obtain MQTT information configured by the cloud platform
992 992  
993 -Cloud mode interface, to obtain MQTT information configured by the cloud platform
990 +**Parameters:** None
994 994  
995 -**Parameters:**
996 -
997 -None
998 -
999 999  **Return:**
1000 1000  
1001 1001  //serverurl, clientid, conn, lwt, cart //(5 returns, respectively, server address, client ID, connection table, last word table, certificate table)
... ... @@ -1013,39 +1013,27 @@
1013 1013  Lua only has a table data structure, so all arrays and key-value objects of json will be returned as a table.
1014 1014  
1015 1015  (((
1016 -== **5.1 json.encode( lua_object )** ==
1009 +== **json.encode( lua_object )** ==
1017 1017  )))
1018 1018  
1019 -**Function:**
1012 +**Function: **Convert lua data type to json string
1020 1020  
1021 -Convert lua data type to json string
1014 +**Parameters: **Lua data type (including boolean, number, string, table)
1022 1022  
1023 -**Parameters:**
1016 +**Return:** Json format string
1024 1024  
1025 -Lua data type (including boolean, number, string, table)
1026 -
1027 -**Return:**
1028 -
1029 -Json format string
1030 -
1031 1031  (((
1032 -== **5.2 json.decode(string json_string)** ==
1019 +== **json.decode(string json_string)** ==
1033 1033  )))
1034 1034  
1035 -**Function:**
1022 +**Function:** Convert json string to lua data type
1036 1036  
1037 -Convert json string to lua data type
1024 +**Parameters: **//json_string//, string of json data structure
1038 1038  
1039 -**Parameters:**
1026 +**Return: **Lua data type
1040 1040  
1041 -//json_string//, string of json data structure
1042 -
1043 -**Return:**
1044 -
1045 -Lua data type
1046 -
1047 1047  (((
1048 -== **5.3 json.null** ==
1029 +== **json.null** ==
1049 1049  )))
1050 1050  
1051 1051  **Function:**
... ... @@ -1052,32 +1052,24 @@
1052 1052  
1053 1053  This method is used when assembling json data, which is equivalent to null in json. If the user directly uses json.null() to return the address of the function, it must be valid with the use of encode.
1054 1054  
1055 -**Parameters:**
1036 +**Parameters:** None
1056 1056  
1057 -None
1038 +**Return: **None
1058 1058  
1059 -**Return:**
1060 -
1061 -None
1062 -
1063 1063  = **6 Cloud mode** =
1064 1064  
1065 1065  The cloud interface is only used in cloud mode, and V-NET mode is not available.
1066 1066  
1067 1067  (((
1068 -== **6.1 bns_get_alldata()** ==
1045 +== **bns_get_alldata()** ==
1069 1069  )))
1070 1070  
1071 -**Function:**
1048 +**Function:** Obtain all monitoring points (point table) data configured by the end user
1072 1072  
1073 -Obtain all monitoring points (point table) data configured by the end user
1050 +**✎Note: **Assuming there are timing scripts A and B with a period of 1 second, if this function is called in script A, the data will not be obtained if called in script B
1074 1074  
1075 -Note: Assuming there are timing scripts A and B with a period of 1 second, if this function is called in script A, the data will not be obtained if called in script B
1052 +**Parameters:** None
1076 1076  
1077 -**Parameters:**
1078 -
1079 -None
1080 -
1081 1081  **Return:**
1082 1082  
1083 1083  Succeed: table two-dimensional array, the structure is as follows
... ... @@ -1107,13 +1107,11 @@
1107 1107  Failed: //table// empty table
1108 1108  
1109 1109  (((
1110 -== **6.2 bns_get_config(string from)** ==
1083 +== **bns_get_config(string from)** ==
1111 1111  )))
1112 1112  
1113 -**Function:**
1086 +**Function:** Obtain custom configuration parameters with the specified from type
1114 1114  
1115 -Obtain custom configuration parameters with the specified from type
1116 -
1117 1117  **parameter:**
1118 1118  
1119 1119  from type, there are the following two categories, the string must be all lowercase
... ... @@ -1131,13 +1131,11 @@
1131 1131  Failed~:// table// empty table
1132 1132  
1133 1133  (((
1134 -== **6.3 bns_get_data(string name, string data)** ==
1105 +== **bns_get_data(string name, string data)** ==
1135 1135  )))
1136 1136  
1137 -**Function:**
1108 +**Function:**write data to the name of the monitoring point
1138 1138  
1139 -write data to the name of the monitoring point
1140 -
1141 1141  **parameter:**
1142 1142  
1143 1143  //name //The name of the monitoring point
... ... @@ -1151,7 +1151,7 @@
1151 1151  Failed: nil
1152 1152  
1153 1153  (((
1154 -== **6.4 bns_get_data(string name)** ==
1123 +== **bns_get_data(string name)** ==
1155 1155  )))
1156 1156  
1157 1157  **Function:**
... ... @@ -1169,17 +1169,13 @@
1169 1169  Failed: nil
1170 1170  
1171 1171  (((
1172 -== **6.5 bns_get_datadesc()** ==
1141 +== **bns_get_datadesc()** ==
1173 1173  )))
1174 1174  
1175 -**Function:**
1144 +**Function: **Obtain all configured communication ports and monitoring point information
1176 1176  
1177 -Obtain all configured communication ports and monitoring point information
1146 +**Parameters:** None
1178 1178  
1179 -**Parameters:**
1180 -
1181 -None
1182 -
1183 1183  **Return:**
1184 1184  
1185 1185  Succeed: table three-dimensional array, the structure is as follows
... ... @@ -1232,17 +1232,13 @@
1232 1232  Failed~:// table// empty table
1233 1233  
1234 1234  (((
1235 -== **6.6 bns_get_machineinfo()** ==
1200 +== **bns_get_machineinfo()** ==
1236 1236  )))
1237 1237  
1238 -**Function:**
1203 +**Function:** get machine information
1239 1239  
1240 -get machine information
1205 +**Parameters:** None
1241 1241  
1242 -**Parameters:**
1243 -
1244 -None
1245 -
1246 1246  **Return:**
1247 1247  
1248 1248  Succeed: 3 string type results (model, machine code, software version)
... ... @@ -1250,13 +1250,11 @@
1250 1250  Failed: nil
1251 1251  
1252 1252  (((
1253 -== **6.7 bns_get_groupdata(string name)** ==
1214 +== **bns_get_groupdata(string name)** ==
1254 1254  )))
1255 1255  
1256 -**Function:**
1217 +**Function:** Get all monitoring point data under the specified group name
1257 1257  
1258 -Get all monitoring point data under the specified group name
1259 -
1260 1260  **parameter:**
1261 1261  
1262 1262  //Name  // group name
... ... @@ -1268,17 +1268,13 @@
1268 1268  Failed: //table// empty table
1269 1269  
1270 1270  (((
1271 -== **6.8 bns_get_groupdesc()** ==
1230 +== **bns_get_groupdesc()** ==
1272 1272  )))
1273 1273  
1274 -**Function:**
1233 +**Function:** Get all group information
1275 1275  
1276 -Get all group information
1235 +**Parameters:** None
1277 1277  
1278 -**Parameters:**
1279 -
1280 -None
1281 -
1282 1282  **Return:**
1283 1283  
1284 1284  Succeed: //table// two-dimensional array, the structure is as follows
... ... @@ -1292,17 +1292,13 @@
1292 1292  Failed: //table  // empty table
1293 1293  
1294 1294  (((
1295 -== **6.9 bns_get_onecache(string msg)** ==
1250 +== **bns_get_onecache(string msg)** ==
1296 1296  )))
1297 1297  
1298 -**Function:**
1253 +**Function:** Save a message to the cache file, which can be stored after power failure. Store up to 2000 items, delete the old and save the new in a rolling manner when it is full.
1299 1299  
1300 -Save a message to the cache file, which can be stored after power failure. Store up to 2000 items, delete the old and save the new in a rolling manner when it is full.
1255 +**Parameters: **//msg// String
1301 1301  
1302 -**Parameters:**
1303 -
1304 -//msg// String
1305 -
1306 1306  **Return:**
1307 1307  
1308 1308  Succeed: true
... ... @@ -1310,17 +1310,13 @@
1310 1310  Failed: nil
1311 1311  
1312 1312  (((
1313 -== **6.10 bns_get_allcache()** ==
1264 +== **bns_get_allcache()** ==
1314 1314  )))
1315 1315  
1316 -**Function:**
1267 +**Function:** Get all the cached content (once the internal cache file will be emptied)
1317 1317  
1318 -Get all the cached content (once the internal cache file will be emptied)
1269 +**Parameters:** None
1319 1319  
1320 -**Parameters:**
1321 -
1322 -None
1323 -
1324 1324  **Return:**
1325 1325  
1326 1326  Succeed: //table// one-dimensional array
... ... @@ -1348,11 +1348,57 @@
1348 1348  Network communication includes Http request interface, this document does not provide interface description, please refer to the online document for how to use it.
1349 1349  
1350 1350  (((
1351 -== **7.1 http request** ==
1298 +== **http request** ==
1352 1352  )))
1353 1353  
1354 1354  [[http:~~/~~/w3.impa.br/~~~~diego/software/luasocket/http.html#request>>url:http://w3.impa.br/~~diego/software/luasocket/http.html#request]]
1355 1355  
1303 +== **https request** ==
1304 +
1305 +Example:
1306 +
1307 +{{code language="LUA"}}
1308 +local json = require("json")
1309 +
1310 +local https = require("https")
1311 +
1312 +functions https_demo.main()
1313 +
1314 +local url = "https://XXXXXXXXXXXXXXXXXXXXXXXXXX"
1315 +
1316 +local body = {}
1317 +
1318 +body["XXXXXX"] = "XXXXX"
1319 +
1320 +body["XXXXXXX"] = "XXXXXXXXXXX"
1321 +
1322 +local bodyJson = json.encode(body)
1323 +
1324 +local header = {}
1325 +
1326 +header["content-type"] = "application/json"
1327 +
1328 +local result_table, code, headers, status = https.request(url,
1329 +
1330 +bodyJson)
1331 +
1332 +if code == 200 then
1333 +
1334 +print("https suc")
1335 +
1336 +return true
1337 +
1338 +else
1339 +
1340 +print("https fail")
1341 +
1342 +return nil
1343 +
1344 +end
1345 +
1346 +end
1347 +{{/code}}
1348 +
1356 1356  (((
1357 1357  = **8 Internal register** =
1358 1358  )))
... ... @@ -1359,41 +1359,50 @@
1359 1359  
1360 1360  The internal registers of the box are divided into bit addresses and word addresses, which can be accessed in two ways (taking HDW as an example):
1361 1361  
1362 -**~1. **Access by word, prefix @W_HDW,
1355 +**Access by word, prefix @W_HDW.**
1363 1363  
1364 1364  For example: @W_HDW0 represents the first word of the system data area, @W_HDW1 represents the second word of the system data area.
1365 1365  
1366 -**2. **Access in bit mode, the prefix is @B_HDX, the number in front of "." indicates the number of the word, and the number behind is the bit number of the word.
1359 +**Access in bit mode, the prefix is @B_HDX, the number in front of "." indicates the number of the word, and the number behind is the bit number of the word.**
1367 1367  
1368 1368  For example: @B_HDX1020.12, its meaning is to access the system data area in bit mode, the specific location is the 13th bit of the 1020th word.
1369 1369  
1363 +(% class="box infomessage" %)
1364 +(((
1370 1370  **✎Note: **
1371 1371  
1372 -**~1. **The address in @B_HDX is taken from the word in @W_HDW, so pay special attention when using the address.
1367 +* The address in @B_HDX is taken from the word in @W_HDW, so pay special attention when using the address.
1368 +** For example, @B_HDX1020.12 is to access the 13th bit of the 1020th word. The value of this bit is the same as the word obtained by @W_HDW001020. The 13th bit of this word is actually the same bit as @B_HDX1020.12.
1369 +* The address of the bit address @B_HDX has a decimal point, while the word address is an integer.
1370 +)))
1373 1373  
1374 -For example, @B_HDX1020.12 is to access the 13th bit of the 1020th word. The value of this bit is the same as the word obtained by @W_HDW001020. The 13th bit of this word is actually the same bit as @B_HDX1020.12.
1375 1375  
1376 -**2.**The address of the bit address @B_HDX has a decimal point, while the word address is an integer.
1373 +(% class="box errormessage" %)
1374 +(((
1377 1377  
1376 +)))
1377 +
1378 1378  (((
1379 -== **8.1 Data storage area(HDW/HDX)** ==
1379 +== **bvData storage area(HDW/HDX)** ==
1380 1380  )))
1381 1381  
1382 1382  The system storage area (HDW) of the V-BOX is used to store temporary data:
1383 1383  
1384 -~1. Access by word, the number range is: "@W_HDW0"-"@W_HDW299999".
1384 +1. Access by word, the number range is: "@W_HDW0"-"@W_HDW299999".
1385 +1. Access in bit mode, the number range is: "@B_HDX0.0"-"@B_HDX299999.15".
1385 1385  
1386 -2. Access in bit mode, the number range is: "@B_HDX0.0"-"@B_HDX299999.15".
1387 -
1388 1388  (((
1389 1389  == **8.2 Special data area (HSW/HSX)** ==
1390 1390  )))
1391 1391  
1391 +(% class="box errormessage" %)
1392 +(((
1392 1392  **✎Note: **
1393 1393  
1394 -//HSW// is a system special register, so please refer to the system special register table during use. Do not use addresses that are not mentioned in the table, and use the addresses stated in the table with caution (example: restart ("@W_HSW0") Writing a value of 1 will cause V-BOX to restart).
1395 +* //HSW// is a system special register, so please refer to the system special register table during use. Do not use addresses that are not mentioned in the table, and use the addresses stated in the table with caution (example: restart ("@W_HSW0") Writing a value of 1 will cause V-BOX to restart).
1396 +* //Without any conditions. Direct use ("@W_HSW0") will cause the V-BOX to restart continuously.// When using ("@W_HSW0") address, please add judgment conditions, such as: connection to MQTT fails, there is no network, the value of a PLC address meets the condition or counts to a certain value.
1397 +)))
1395 1395  
1396 -//Without any conditions. Direct use ("@W_HSW0") will cause the V-BOX to restart continuously.// When using ("@W_HSW0") address, please add judgment conditions, such as: connection to MQTT fails, there is no network, the value of a PLC address meets the condition or counts to a certain value.
1397 1397  
1398 1398  1.The system data area (HSW) of the box is used for system special registers (system reserved). Use //addr_getword// to obtain the following register information:
1399 1399