Changes for page 01 Lua Functions
Last modified by Theodore Xu on 2023/10/26 10:51
Summary
-
Page properties (1 modified, 0 added, 0 removed)
Details
- Page properties
-
- Content
-
... ... @@ -752,12 +752,10 @@ 752 752 753 753 **QoS value:** 754 754 755 -0: Only push messages once, messages may be lost or duplicated. It can be used for environmental sensor data, it doesn't matter if lose a record, because there will be a second push message soon. This method is mainly used for normal APP push, but if the user smart device is not connected when the message is pushed, the message will be discarded, and the smart device will not be received when it is networked again. 755 +* 0: Only push messages once, messages may be lost or duplicated. It can be used for environmental sensor data, it doesn't matter if lose a record, because there will be a second push message soon. This method is mainly used for normal APP push, but if the user smart device is not connected when the message is pushed, the message will be discarded, and the smart device will not be received when it is networked again. 756 +* 1: The message is delivered at least once, but the message may be delivered repeatedly. 757 +* 2: The message was delivered exactly once. This level can be used in a billing system. In a billing system, repeated or missing messages can lead to incorrect results. This highest quality message push service can also be used for instant messaging APP pushes, ensuring that users only receive messages once. 756 756 757 -1: The message is delivered at least once, but the message may be delivered repeatedly. 758 - 759 -2: The message was delivered exactly once. This level can be used in a billing system. In a billing system, repeated or missing messages can lead to incorrect results. This highest quality message push service can also be used for instant messaging APP pushes, ensuring that users only receive messages once. 760 - 761 761 **Retain flag:** 762 762 763 763 0: not reserved; ... ... @@ -765,13 +765,11 @@ 765 765 1: reserved 766 766 767 767 ((( 768 -== ** 4.1mqtt.create(string serverurl, string clientid)** ==766 +== **mqtt.create(string serverurl, string clientid)** == 769 769 ))) 770 770 771 -**Function:** 769 +**Function:** Create an MQTT object 772 772 773 -Create an MQTT object 774 - 775 775 **Parameters:** 776 776 777 777 //serverurl //Server url ... ... @@ -793,17 +793,13 @@ 793 793 Failed: multi 794 794 795 795 ((( 796 -== ** 4.2mqtt.close(mqtt obj)** ==792 +== **mqtt.close(mqtt obj)** == 797 797 ))) 798 798 799 -**Function:** 795 +**Function:** Close the specified MQTT object (if the connected server will be disconnected automatically) 800 800 801 - ClosehepecifiedMQTT object(iftheconnectedserverwill be disconnectedautomatically)797 +**Parameters: **//Obj //is the objeced returned by mqtt.create 802 802 803 -**Parameters:** 804 - 805 -//Obj //is the objeced returned by mqtt.create 806 - 807 807 **Return:** 808 808 809 809 Succeed: true ... ... @@ -811,32 +811,25 @@ 811 811 Failed: multi 812 812 813 813 ((( 814 -== ** 4.3mqtt:connect(table conn[, table lwt, table cart])** ==806 +== **mqtt:connect(table conn[, table lwt, table cart])** == 815 815 ))) 816 816 817 -**Function:** 809 +**Function:**Establish a connection to the server 818 818 819 -Establish a connection to the server 820 - 821 821 **Parameters:** 822 822 823 823 //conn //is a Lua table and needs to contain the following fields 824 824 825 -//string conn.username//, user name 815 +* //string conn.username//, user name 816 +* //string conn.password//, password 817 +* //number [conn.netway=0]//, networking method, if set error number will use Ethernet method 818 +** 0: Ethernet 819 +** 1: WIFI 820 +** 2: 4G 821 +** 3: 2G 822 +* //number [conn.keepalive=60]//, keep connected heartbeat interval, in seconds 823 +* //number [conn.cleansession=1]//, empty the session as described below: 826 826 827 -//string conn.password//, password 828 - 829 -//number [conn.netway=0]//, networking method, if set error number will use Ethernet method 830 - 831 -* 0: Ethernet 832 -* 1: WIFI 833 -* 2: 4G 834 -* 3: 2G 835 - 836 -//number [conn.keepalive=60]//, keep connected heartbeat interval, in seconds 837 - 838 -//number [conn.cleansession=1]//, empty the session as described below: 839 - 840 840 This function is used to control the behavior when connecting and disconnecting, and the client and server will retain the session information. This information is used to guarantee "at least once" and "accurately once" delivery, as well as the subject of the client subscription, the user can choose to keep or ignore the session message, set as follows: 841 841 842 842 * 1 (Empty): If a session exists and is 1, the previous session messages on the client and server are emptied. ... ... @@ -844,14 +844,11 @@ 844 844 845 845 //lwt// (Last Will and Testament) is a Lua table and needs to contain the following fields 846 846 847 -//string lwt.topic//, topic 832 +* //string lwt.topic//, topic 833 +* //string lwt.message//, message 834 +* //number [lwt.qos=0]//, qos value 835 +* //number [lwt.retain=0]//, retain flag 848 848 849 -//string lwt.message//, message 850 - 851 -//number [lwt.qos=0]//, qos value 852 - 853 -//number [lwt.retain=0]//, retain flag 854 - 855 855 **Return:** 856 856 857 857 Succeed: true ... ... @@ -859,17 +859,13 @@ 859 859 Failed: multi 860 860 861 861 ((( 862 -== ** 4.4mqtt:disconnect([number timeout])** ==844 +== **mqtt:disconnect([number timeout])** == 863 863 ))) 864 864 865 -**Function:** 847 +**Function:** Disconnect from the MQTT server 866 866 867 -Disconnect fromtheMQTTserver849 +**Parameters: **//[timeout=10000] //Disconnect waiting timeout, in milliseconds 868 868 869 -**Parameters:** 870 - 871 -//[timeout=10000] //Disconnect waiting timeout, in milliseconds 872 - 873 873 **Return:** 874 874 875 875 Succeed: true ... ... @@ -877,17 +877,13 @@ 877 877 Failed: multi 878 878 879 879 ((( 880 -== ** 4.5mqtt:isconnected()** ==858 +== **mqtt:isconnected()** == 881 881 ))) 882 882 883 -**Function:** 861 +**Function:** Test whether or not a client is currently connected to the MQTT server 884 884 885 - Test whetheror notaclientis currently connectedto the MQTT server863 +**Parameters:** None 886 886 887 -**Parameters:** 888 - 889 -None 890 - 891 891 **Return:** 892 892 893 893 Succeed: true ~-~-Connected ... ... @@ -895,13 +895,11 @@ 895 895 Failed: false ~-~- Unconnected and other unknowns 896 896 897 897 ((( 898 -== ** 4.6mqtt:subscribe(string topic, number qos)** ==872 +== **mqtt:subscribe(string topic, number qos)** == 899 899 ))) 900 900 901 -**Function:** 875 +**Function: **Subscribe to the topic (before the subscription, the user must first call the connect method to connect to the server) 902 902 903 -Subscribe to the topic (before the subscription, the user must first call the connect method to connect to the server) 904 - 905 905 **Parameters:** 906 906 907 907 //topic//, topic name ... ... @@ -915,13 +915,11 @@ 915 915 Failed: multi 916 916 917 917 ((( 918 -== ** 4.7mqtt:unsubscribe(string topic)** ==890 +== **mqtt:unsubscribe(string topic)** == 919 919 ))) 920 920 921 -**Function:** 893 +**Function:** Unsubscribe topic 922 922 923 -Unsubscribe topic 924 - 925 925 **Parameters:** 926 926 927 927 //topic//, topic name ... ... @@ -933,13 +933,11 @@ 933 933 Failed: multi 934 934 935 935 ((( 936 -== ** 4.8mqtt:publish(string topic, string message, number qos, number retain[, number timeout])** ==906 +== **mqtt:publish(string topic, string message, number qos, number retain[, number timeout])** == 937 937 ))) 938 938 939 -**Function:** 909 +**Function:** Publish message 940 940 941 -Publish message 942 - 943 943 **Parameters:** 944 944 945 945 //topic//, topic name ... ... @@ -959,17 +959,13 @@ 959 959 Failed: multi 960 960 961 961 ((( 962 -== ** 4.9mqtt:close()** ==930 +== **mqtt:close()** == 963 963 ))) 964 964 965 -**Function:** 933 +**Function:** Close the mqtt object (the connection to the server will be automatically disconnected) 966 966 967 - Close themqtt object(theconnection to the server will be automatically disconnected)935 +**Parameters:** None 968 968 969 -**Parameters:** 970 - 971 -None 972 - 973 973 **Return:** 974 974 975 975 Succeed: true ... ... @@ -977,13 +977,11 @@ 977 977 Failed: multi 978 978 979 979 ((( 980 -== ** 4.10mqtt:on(string method, function callback)** ==944 +== **mqtt:on(string method, function callback)** == 981 981 ))) 982 982 983 -**Function:** 947 +**Function:** Register event callback function 984 984 985 -Register event callback function 986 - 987 987 **Parameters:** 988 988 989 989 //method//, It can be message/arrived/offline, these 3 types of events ... ... @@ -996,20 +996,17 @@ 996 996 997 997 Parameter: 998 998 999 -//Topic//, topic name 961 +* //Topic//, topic name 962 +* //Message//, content 1000 1000 1001 - //Message//, content964 +**2."arrived" is published by publish, this function will be called after the publication arrives** 1002 1002 1003 -**2.**"arrived" is published by publish, this function will be called after the publication arrives 1004 - 1005 1005 //Callback// prototype~:// function ()// 1006 1006 1007 -Parameter: 968 +Parameter: None 1008 1008 1009 - None970 +**3.This function will be called after the "offline" connection is lost** 1010 1010 1011 -**3.**This function will be called after the "offline" connection is lost 1012 - 1013 1013 //Callback// prototype~:// function (string cause)// 1014 1014 1015 1015 Parameter: ... ... @@ -1023,17 +1023,13 @@ 1023 1023 Failed: multi 1024 1024 1025 1025 ((( 1026 -== ** 4.11mqtt:setup_cfg()** ==985 +== **mqtt:setup_cfg()** == 1027 1027 ))) 1028 1028 1029 -**Function:** 988 +**Function:** Cloud mode interface, to obtain MQTT information configured by the cloud platform 1030 1030 1031 - Cloudmodeinterface, toobtainMQTT information configured by the cloud platform990 +**Parameters:** None 1032 1032 1033 -**Parameters:** 1034 - 1035 -None 1036 - 1037 1037 **Return:** 1038 1038 1039 1039 //serverurl, clientid, conn, lwt, cart //(5 returns, respectively, server address, client ID, connection table, last word table, certificate table) ... ... @@ -1051,39 +1051,27 @@ 1051 1051 Lua only has a table data structure, so all arrays and key-value objects of json will be returned as a table. 1052 1052 1053 1053 ((( 1054 -== ** 5.1json.encode( lua_object )** ==1009 +== **json.encode( lua_object )** == 1055 1055 ))) 1056 1056 1057 -**Function:** 1012 +**Function: **Convert lua data type to json string 1058 1058 1059 - Convertlua data typetojson string1014 +**Parameters: **Lua data type (including boolean, number, string, table) 1060 1060 1061 -** Parameters:**1016 +**Return:** Json format string 1062 1062 1063 -Lua data type (including boolean, number, string, table) 1064 - 1065 -**Return:** 1066 - 1067 -Json format string 1068 - 1069 1069 ((( 1070 -== ** 5.2json.decode(string json_string)** ==1019 +== **json.decode(string json_string)** == 1071 1071 ))) 1072 1072 1073 -**Function:** 1022 +**Function:** Convert json string to lua data type 1074 1074 1075 - Convert jsonluadata type1024 +**Parameters: **//json_string//, string of json data structure 1076 1076 1077 -** Parameters:**1026 +**Return: **Lua data type 1078 1078 1079 -//json_string//, string of json data structure 1080 - 1081 -**Return:** 1082 - 1083 -Lua data type 1084 - 1085 1085 ((( 1086 -== ** 5.3json.null** ==1029 +== **json.null** == 1087 1087 ))) 1088 1088 1089 1089 **Function:** ... ... @@ -1090,32 +1090,24 @@ 1090 1090 1091 1091 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. 1092 1092 1093 -**Parameters:** 1036 +**Parameters:** None 1094 1094 1095 -None 1038 +**Return: **None 1096 1096 1097 -**Return:** 1098 - 1099 -None 1100 - 1101 1101 = **6 Cloud mode** = 1102 1102 1103 1103 The cloud interface is only used in cloud mode, and V-NET mode is not available. 1104 1104 1105 1105 ((( 1106 -== ** 6.1bns_get_alldata()** ==1045 +== **bns_get_alldata()** == 1107 1107 ))) 1108 1108 1109 -**Function:** 1048 +**Function:** Obtain all monitoring points (point table) data configured by the end user 1110 1110 1111 - Obtain allmonitoringpoints(point table)dataconfiguredbythe enduser1050 +**✎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 1112 1112 1113 - Note: Assuming thereareiming scripts A and B with a period of 1second, if this function is called in script A, the data will not be obtained if called in script B1052 +**Parameters:** None 1114 1114 1115 -**Parameters:** 1116 - 1117 -None 1118 - 1119 1119 **Return:** 1120 1120 1121 1121 Succeed: table two-dimensional array, the structure is as follows ... ... @@ -1145,13 +1145,11 @@ 1145 1145 Failed: //table// empty table 1146 1146 1147 1147 ((( 1148 -== ** 6.2bns_get_config(string from)** ==1083 +== **bns_get_config(string from)** == 1149 1149 ))) 1150 1150 1151 -**Function:** 1086 +**Function:** Obtain custom configuration parameters with the specified from type 1152 1152 1153 -Obtain custom configuration parameters with the specified from type 1154 - 1155 1155 **parameter:** 1156 1156 1157 1157 from type, there are the following two categories, the string must be all lowercase ... ... @@ -1169,13 +1169,11 @@ 1169 1169 Failed~:// table// empty table 1170 1170 1171 1171 ((( 1172 -== ** 6.3bns_get_data(string name, string data)** ==1105 +== **bns_get_data(string name, string data)** == 1173 1173 ))) 1174 1174 1175 -**Function:** 1108 +**Function:**write data to the name of the monitoring point 1176 1176 1177 -write data to the name of the monitoring point 1178 - 1179 1179 **parameter:** 1180 1180 1181 1181 //name //The name of the monitoring point ... ... @@ -1189,7 +1189,7 @@ 1189 1189 Failed: nil 1190 1190 1191 1191 ((( 1192 -== ** 6.4bns_get_data(string name)** ==1123 +== **bns_get_data(string name)** == 1193 1193 ))) 1194 1194 1195 1195 **Function:** ... ... @@ -1207,17 +1207,13 @@ 1207 1207 Failed: nil 1208 1208 1209 1209 ((( 1210 -== ** 6.5bns_get_datadesc()** ==1141 +== **bns_get_datadesc()** == 1211 1211 ))) 1212 1212 1213 -**Function:** 1144 +**Function: **Obtain all configured communication ports and monitoring point information 1214 1214 1215 - Obtain all configured communication portsand monitoring point information1146 +**Parameters:** None 1216 1216 1217 -**Parameters:** 1218 - 1219 -None 1220 - 1221 1221 **Return:** 1222 1222 1223 1223 Succeed: table three-dimensional array, the structure is as follows ... ... @@ -1270,17 +1270,13 @@ 1270 1270 Failed~:// table// empty table 1271 1271 1272 1272 ((( 1273 -== ** 6.6bns_get_machineinfo()** ==1200 +== **bns_get_machineinfo()** == 1274 1274 ))) 1275 1275 1276 -**Function:** 1203 +**Function:** get machine information 1277 1277 1278 - get machine information1205 +**Parameters:** None 1279 1279 1280 -**Parameters:** 1281 - 1282 -None 1283 - 1284 1284 **Return:** 1285 1285 1286 1286 Succeed: 3 string type results (model, machine code, software version) ... ... @@ -1288,13 +1288,11 @@ 1288 1288 Failed: nil 1289 1289 1290 1290 ((( 1291 -== ** 6.7bns_get_groupdata(string name)** ==1214 +== **bns_get_groupdata(string name)** == 1292 1292 ))) 1293 1293 1294 -**Function:** 1217 +**Function:** Get all monitoring point data under the specified group name 1295 1295 1296 -Get all monitoring point data under the specified group name 1297 - 1298 1298 **parameter:** 1299 1299 1300 1300 //Name // group name ... ... @@ -1306,17 +1306,13 @@ 1306 1306 Failed: //table// empty table 1307 1307 1308 1308 ((( 1309 -== ** 6.8bns_get_groupdesc()** ==1230 +== **bns_get_groupdesc()** == 1310 1310 ))) 1311 1311 1312 -**Function:** 1233 +**Function:** Get all group information 1313 1313 1314 - Getall group information1235 +**Parameters:** None 1315 1315 1316 -**Parameters:** 1317 - 1318 -None 1319 - 1320 1320 **Return:** 1321 1321 1322 1322 Succeed: //table// two-dimensional array, the structure is as follows ... ... @@ -1330,17 +1330,13 @@ 1330 1330 Failed: //table // empty table 1331 1331 1332 1332 ((( 1333 -== ** 6.9bns_get_onecache(string msg)** ==1250 +== **bns_get_onecache(string msg)** == 1334 1334 ))) 1335 1335 1336 -**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. 1337 1337 1338 - Saveassageto thecache file, which can be storedafter power failure. Store up to 2000 items,delete the old and save the new in arollingmanner when it is full.1255 +**Parameters: **//msg// String 1339 1339 1340 -**Parameters:** 1341 - 1342 -//msg// String 1343 - 1344 1344 **Return:** 1345 1345 1346 1346 Succeed: true ... ... @@ -1348,17 +1348,13 @@ 1348 1348 Failed: nil 1349 1349 1350 1350 ((( 1351 -== ** 6.10bns_get_allcache()** ==1264 +== **bns_get_allcache()** == 1352 1352 ))) 1353 1353 1354 -**Function:** 1267 +**Function:** Get all the cached content (once the internal cache file will be emptied) 1355 1355 1356 - Getall the cached content (oncethe internal cache file will be emptied)1269 +**Parameters:** None 1357 1357 1358 -**Parameters:** 1359 - 1360 -None 1361 - 1362 1362 **Return:** 1363 1363 1364 1364 Succeed: //table// one-dimensional array ... ... @@ -1386,11 +1386,57 @@ 1386 1386 Network communication includes Http request interface, this document does not provide interface description, please refer to the online document for how to use it. 1387 1387 1388 1388 ((( 1389 -== ** 7.1http request** ==1298 +== **http request** == 1390 1390 ))) 1391 1391 1392 1392 [[http:~~/~~/w3.impa.br/~~~~diego/software/luasocket/http.html#request>>url:http://w3.impa.br/~~diego/software/luasocket/http.html#request]] 1393 1393 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 + 1394 1394 ((( 1395 1395 = **8 Internal register** = 1396 1396 ))) ... ... @@ -1397,32 +1397,32 @@ 1397 1397 1398 1398 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): 1399 1399 1400 -** ~1. **Access by word, prefix @W_HDW,1355 +**Access by word, prefix @W_HDW.** 1401 1401 1402 1402 For example: @W_HDW0 represents the first word of the system data area, @W_HDW1 represents the second word of the system data area. 1403 1403 1404 -** 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.** 1405 1405 1406 1406 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. 1407 1407 1363 +(% class="box errormessage" %) 1364 +((( 1408 1408 **✎Note: ** 1366 +))) 1409 1409 1410 -**~1. **The address in @B_HDX is taken from the word in @W_HDW, so pay special attention when using the address. 1368 +* The address in @B_HDX is taken from the word in @W_HDW, so pay special attention when using the address. 1369 +** 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. 1370 +* The address of the bit address @B_HDX has a decimal point, while the word address is an integer. 1411 1411 1412 -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. 1413 - 1414 -**2.**The address of the bit address @B_HDX has a decimal point, while the word address is an integer. 1415 - 1416 1416 ((( 1417 -== ** 8.1Data storage area(HDW/HDX)** ==1373 +== **Data storage area(HDW/HDX)** == 1418 1418 ))) 1419 1419 1420 1420 The system storage area (HDW) of the V-BOX is used to store temporary data: 1421 1421 1422 -~1. Access by word, the number range is: "@W_HDW0"-"@W_HDW299999". 1378 +1. Access by word, the number range is: "@W_HDW0"-"@W_HDW299999". 1379 +1. Access in bit mode, the number range is: "@B_HDX0.0"-"@B_HDX299999.15". 1423 1423 1424 -2. Access in bit mode, the number range is: "@B_HDX0.0"-"@B_HDX299999.15". 1425 - 1426 1426 ((( 1427 1427 == **8.2 Special data area (HSW/HSX)** == 1428 1428 )))