Changes for page 01 Lua Functions

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

From version 5.8
edited by Stone Wu
on 2022/07/12 09:25
Change comment: (Autosaved)
To version 5.17
edited by Stone Wu
on 2022/07/12 09:55
Change comment: (Autosaved)

Summary

Details

Page properties
Content
... ... @@ -627,13 +627,11 @@
627 627  1. When the data bit is 8, the maximum value of data transmission is 255 (0xFF), which supports the transmission of any character.
628 628  
629 629  (((
630 -== **3.1 serial.open(table setup)** ==
630 +== **serial.open(table setup)** ==
631 631  )))
632 632  
633 -**Function:**
633 +**Function:** Enable one serial port
634 634  
635 -Enable one serial port
636 -
637 637  **Parameters:**
638 638  
639 639  //Setup// is a Lua table; it needs to contain the following fields
... ... @@ -667,17 +667,13 @@
667 667  Failed: multi
668 668  
669 669  (((
670 -== **3.2 serial.close(serial obj)** ==
668 +== **serial.close(serial obj)** ==
671 671  )))
672 672  
673 -**Function:**
671 +**Function:** Disable the serial port
674 674  
675 -Disable the serial port
673 +**Parameters: **//Obj //is the object returned by serial.open
676 676  
677 -**Parameters:**
678 -
679 -//Obj //is the object returned by serial.open
680 -
681 681  **Return:**
682 682  
683 683  Succeed: true
... ... @@ -685,13 +685,11 @@
685 685  Failed: multi
686 686  
687 687  (((
688 -== **3.3 serial:read(number bytes[, number timeout])** ==
682 +== **serial:read(number bytes[, number timeout])** ==
689 689  )))
690 690  
691 -**Function:**
685 +**Function:** Read the specified byte length serial port data
692 692  
693 -Read the specified byte length serial port data
694 -
695 695  **Parameters:**
696 696  
697 697  //bytes//: number of bytes
... ... @@ -705,15 +705,13 @@
705 705  Failed: multi
706 706  
707 707  (((
708 -== **3.4 serial:write(string data)** ==
700 +== **serial:write(string data)** ==
709 709  )))
710 710  
711 -**Function:**
703 +**Function:** Write the specified byte length to serial port data
712 712  
713 -Write the specified byte length to serial port data
705 +**Parameters: **
714 714  
715 -**Parameters:**
716 -
717 717  //data//: serial port data
718 718  
719 719  **Return:**
... ... @@ -723,13 +723,11 @@
723 723  Failed: multi
724 724  
725 725  (((
726 -== **3.5 serial:flush([number flag])** ==
716 +== **serial:flush([number flag])** ==
727 727  )))
728 728  
729 -**Function:**
719 +**Function:** Clear the serial port buffer
730 730  
731 -Clear the serial port buffer
732 -
733 733  **Parameters:**
734 734  
735 735  //[flag=2]// clear option: 0: read, 1: write, 2: read-write
... ... @@ -741,17 +741,13 @@
741 741  Failed: multi
742 742  
743 743  (((
744 -== **3.6 serial:close()** ==
732 +== **serial:close()** ==
745 745  )))
746 746  
747 -**Function:**
735 +**Function:** Close the serial port object
748 748  
749 -Close the serial port object
737 +**Parameters:** None
750 750  
751 -**Parameters:**
752 -
753 -None
754 -
755 755  **Return:**
756 756  
757 757  Succeed: true
... ... @@ -768,12 +768,10 @@
768 768  
769 769  **QoS value:**
770 770  
771 -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.
772 772  
773 -1: The message is delivered at least once, but the message may be delivered repeatedly.
774 -
775 -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.
776 -
777 777  **Retain flag:**
778 778  
779 779  0: not reserved;
... ... @@ -781,13 +781,11 @@
781 781  1: reserved
782 782  
783 783  (((
784 -== **4.1 mqtt.create(string serverurl, string clientid)** ==
766 +== **mqtt.create(string serverurl, string clientid)** ==
785 785  )))
786 786  
787 -**Function:**
769 +**Function:** Create an MQTT object
788 788  
789 -Create an MQTT object
790 -
791 791  **Parameters:**
792 792  
793 793  //serverurl //Server url
... ... @@ -809,17 +809,13 @@
809 809  Failed: multi
810 810  
811 811  (((
812 -== **4.2 mqtt.close(mqtt obj)** ==
792 +== **mqtt.close(mqtt obj)** ==
813 813  )))
814 814  
815 -**Function:**
795 +**Function:** Close the specified MQTT object (if the connected server will be disconnected automatically)
816 816  
817 -Close the specified MQTT object (if the connected server will be disconnected automatically)
797 +**Parameters: **//Obj //ithe objeced returned by mqtt.create
818 818  
819 -**Parameters:**
820 -
821 -//Obj //is the objeced returned by mqtt.create
822 -
823 823  **Return:**
824 824  
825 825  Succeed: true
... ... @@ -827,32 +827,25 @@
827 827  Failed: multi
828 828  
829 829  (((
830 -== **4.3 mqtt:connect(table conn[, table lwt, table cart])** ==
806 +== **mqtt:connect(table conn[, table lwt, table cart])** ==
831 831  )))
832 832  
833 -**Function:**
809 +**Function:**Establish a connection to the server
834 834  
835 -Establish a connection to the server
836 -
837 837  **Parameters:**
838 838  
839 839  //conn //is a Lua table and needs to contain the following fields
840 840  
841 -//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:
842 842  
843 -//string conn.password//, password
844 -
845 -//number [conn.netway=0]//, networking method, if set error number will use Ethernet method
846 -
847 -* 0: Ethernet
848 -* 1: WIFI
849 -* 2: 4G
850 -* 3: 2G
851 -
852 -//number [conn.keepalive=60]//, keep connected heartbeat interval, in seconds
853 -
854 -//number [conn.cleansession=1]//, empty the session as described below:
855 -
856 856  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:
857 857  
858 858  * 1 (Empty): If a session exists and is 1, the previous session messages on the client and server are emptied.
... ... @@ -860,14 +860,11 @@
860 860  
861 861  //lwt// (Last Will and Testament) is a Lua table and needs to contain the following fields
862 862  
863 -//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
864 864  
865 -//string lwt.message//, message
866 -
867 -//number [lwt.qos=0]//, qos value
868 -
869 -//number [lwt.retain=0]//, retain flag
870 -
871 871  **Return:**
872 872  
873 873  Succeed: true
... ... @@ -875,17 +875,13 @@
875 875  Failed: multi
876 876  
877 877  (((
878 -== **4.4 mqtt:disconnect([number timeout])** ==
844 +== **mqtt:disconnect([number timeout])** ==
879 879  )))
880 880  
881 -**Function:**
847 +**Function:** Disconnect from the MQTT server
882 882  
883 -Disconnect from the MQTT server
849 +**Parameters: **//[timeout=10000] //Disconnect waiting timeout, in milliseconds
884 884  
885 -**Parameters:**
886 -
887 -//[timeout=10000] //Disconnect waiting timeout, in milliseconds
888 -
889 889  **Return:**
890 890  
891 891  Succeed: true
... ... @@ -893,17 +893,13 @@
893 893  Failed: multi
894 894  
895 895  (((
896 -== **4.5 mqtt:isconnected()** ==
858 +== **mqtt:isconnected()** ==
897 897  )))
898 898  
899 -**Function:**
861 +**Function:** Test whether or not a client is currently connected to the MQTT server
900 900  
901 -Test whether or not a client is currently connected to the MQTT server
863 +**Parameters:** None
902 902  
903 -**Parameters:**
904 -
905 -None
906 -
907 907  **Return:**
908 908  
909 909  Succeed: true ~-~-Connected
... ... @@ -911,13 +911,11 @@
911 911  Failed: false ~-~- Unconnected and other unknowns
912 912  
913 913  (((
914 -== **4.6 mqtt:subscribe(string topic, number qos)** ==
872 +== **mqtt:subscribe(string topic, number qos)** ==
915 915  )))
916 916  
917 -**Function:**
875 +**Function: **Subscribe to the topic (before the subscription, the user must first call the connect method to connect to the server)
918 918  
919 -Subscribe to the topic (before the subscription, the user must first call the connect method to connect to the server)
920 -
921 921  **Parameters:**
922 922  
923 923  //topic//, topic name
... ... @@ -931,13 +931,11 @@
931 931  Failed: multi
932 932  
933 933  (((
934 -== **4.7 mqtt:unsubscribe(string topic)** ==
890 +== **mqtt:unsubscribe(string topic)** ==
935 935  )))
936 936  
937 -**Function:**
893 +**Function:** Unsubscribe topic
938 938  
939 -Unsubscribe topic
940 -
941 941  **Parameters:**
942 942  
943 943  //topic//, topic name
... ... @@ -949,13 +949,11 @@
949 949  Failed: multi
950 950  
951 951  (((
952 -== **4.8 mqtt:publish(string topic, string message, number qos, number retain[, number timeout])** ==
906 +== **mqtt:publish(string topic, string message, number qos, number retain[, number timeout])** ==
953 953  )))
954 954  
955 -**Function:**
909 +**Function:** Publish message
956 956  
957 -Publish message
958 -
959 959  **Parameters:**
960 960  
961 961  //topic//, topic name
... ... @@ -975,17 +975,13 @@
975 975  Failed: multi
976 976  
977 977  (((
978 -== **4.9 mqtt:close()** ==
930 +== **mqtt:close()** ==
979 979  )))
980 980  
981 -**Function:**
933 +**Function:** Close the mqtt object (the connection to the server will be automatically disconnected)
982 982  
983 -Close the mqtt object (the connection to the server will be automatically disconnected)
935 +**Parameters:** None
984 984  
985 -**Parameters:**
986 -
987 -None
988 -
989 989  **Return:**
990 990  
991 991  Succeed: true
... ... @@ -993,13 +993,11 @@
993 993  Failed: multi
994 994  
995 995  (((
996 -== **4.10 mqtt:on(string method, function callback)** ==
944 +== **mqtt:on(string method, function callback)** ==
997 997  )))
998 998  
999 -**Function:**
947 +**Function:** Register event callback function
1000 1000  
1001 -Register event callback function
1002 -
1003 1003  **Parameters:**
1004 1004  
1005 1005  //method//, It can be message/arrived/offline, these 3 types of events
... ... @@ -1012,20 +1012,17 @@
1012 1012  
1013 1013  Parameter:
1014 1014  
1015 -//Topic//, topic name
961 +* //Topic//, topic name
962 +* //Message//, content
1016 1016  
1017 -//Message//, content
964 +**2."arrived" is published by publish, this function will be called after the publication arrives**
1018 1018  
1019 -**2.**"arrived" is published by publish, this function will be called after the publication arrives
1020 -
1021 1021  //Callback// prototype~:// function ()//
1022 1022  
1023 -Parameter:
968 +Parameter: None
1024 1024  
1025 -None
970 +**3.This function will be called after the "offline" connection is lost**
1026 1026  
1027 -**3.**This function will be called after the "offline" connection is lost
1028 -
1029 1029  //Callback// prototype~:// function (string cause)//
1030 1030  
1031 1031  Parameter:
... ... @@ -1039,17 +1039,13 @@
1039 1039  Failed: multi
1040 1040  
1041 1041  (((
1042 -== **4.11 mqtt:setup_cfg()** ==
985 +== **mqtt:setup_cfg()** ==
1043 1043  )))
1044 1044  
1045 -**Function:**
988 +**Function:** Cloud mode interface, to obtain MQTT information configured by the cloud platform
1046 1046  
1047 -Cloud mode interface, to obtain MQTT information configured by the cloud platform
990 +**Parameters:** None
1048 1048  
1049 -**Parameters:**
1050 -
1051 -None
1052 -
1053 1053  **Return:**
1054 1054  
1055 1055  //serverurl, clientid, conn, lwt, cart //(5 returns, respectively, server address, client ID, connection table, last word table, certificate table)
... ... @@ -1067,39 +1067,27 @@
1067 1067  Lua only has a table data structure, so all arrays and key-value objects of json will be returned as a table.
1068 1068  
1069 1069  (((
1070 -== **5.1 json.encode( lua_object )** ==
1009 +== **json.encode( lua_object )** ==
1071 1071  )))
1072 1072  
1073 -**Function:**
1012 +**Function: **Convert lua data type to json string
1074 1074  
1075 -Convert lua data type to json string
1014 +**Parameters: **Lua data type (including boolean, number, string, table)
1076 1076  
1077 -**Parameters:**
1016 +**Return:** Json format string
1078 1078  
1079 -Lua data type (including boolean, number, string, table)
1080 -
1081 -**Return:**
1082 -
1083 -Json format string
1084 -
1085 1085  (((
1086 -== **5.2 json.decode(string json_string)** ==
1019 +== **json.decode(string json_string)** ==
1087 1087  )))
1088 1088  
1089 -**Function:**
1022 +**Function:** Convert json string to lua data type
1090 1090  
1091 -Convert json string to lua data type
1024 +**Parameters: **//json_string//, string of json data structure
1092 1092  
1093 -**Parameters:**
1026 +**Return: **Lua data type
1094 1094  
1095 -//json_string//, string of json data structure
1096 -
1097 -**Return:**
1098 -
1099 -Lua data type
1100 -
1101 1101  (((
1102 -== **5.3 json.null** ==
1029 +== **json.null** ==
1103 1103  )))
1104 1104  
1105 1105  **Function:**
... ... @@ -1106,32 +1106,24 @@
1106 1106  
1107 1107  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.
1108 1108  
1109 -**Parameters:**
1036 +**Parameters:** None
1110 1110  
1111 -None
1038 +**Return: **None
1112 1112  
1113 -**Return:**
1114 -
1115 -None
1116 -
1117 1117  = **6 Cloud mode** =
1118 1118  
1119 1119  The cloud interface is only used in cloud mode, and V-NET mode is not available.
1120 1120  
1121 1121  (((
1122 -== **6.1 bns_get_alldata()** ==
1045 +== **bns_get_alldata()** ==
1123 1123  )))
1124 1124  
1125 -**Function:**
1048 +**Function:** Obtain all monitoring points (point table) data configured by the end user
1126 1126  
1127 -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
1128 1128  
1129 -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
1130 1130  
1131 -**Parameters:**
1132 -
1133 -None
1134 -
1135 1135  **Return:**
1136 1136  
1137 1137  Succeed: table two-dimensional array, the structure is as follows
... ... @@ -1161,13 +1161,11 @@
1161 1161  Failed: //table// empty table
1162 1162  
1163 1163  (((
1164 -== **6.2 bns_get_config(string from)** ==
1083 +== **bns_get_config(string from)** ==
1165 1165  )))
1166 1166  
1167 -**Function:**
1086 +**Function:** Obtain custom configuration parameters with the specified from type
1168 1168  
1169 -Obtain custom configuration parameters with the specified from type
1170 -
1171 1171  **parameter:**
1172 1172  
1173 1173  from type, there are the following two categories, the string must be all lowercase
... ... @@ -1185,13 +1185,11 @@
1185 1185  Failed~:// table// empty table
1186 1186  
1187 1187  (((
1188 -== **6.3 bns_get_data(string name, string data)** ==
1105 +== **bns_get_data(string name, string data)** ==
1189 1189  )))
1190 1190  
1191 -**Function:**
1108 +**Function:**write data to the name of the monitoring point
1192 1192  
1193 -write data to the name of the monitoring point
1194 -
1195 1195  **parameter:**
1196 1196  
1197 1197  //name //The name of the monitoring point
... ... @@ -1205,7 +1205,7 @@
1205 1205  Failed: nil
1206 1206  
1207 1207  (((
1208 -== **6.4 bns_get_data(string name)** ==
1123 +== **bns_get_data(string name)** ==
1209 1209  )))
1210 1210  
1211 1211  **Function:**
... ... @@ -1223,17 +1223,13 @@
1223 1223  Failed: nil
1224 1224  
1225 1225  (((
1226 -== **6.5 bns_get_datadesc()** ==
1141 +== **bns_get_datadesc()** ==
1227 1227  )))
1228 1228  
1229 -**Function:**
1144 +**Function: **Obtain all configured communication ports and monitoring point information
1230 1230  
1231 -Obtain all configured communication ports and monitoring point information
1146 +**Parameters:** None
1232 1232  
1233 -**Parameters:**
1234 -
1235 -None
1236 -
1237 1237  **Return:**
1238 1238  
1239 1239  Succeed: table three-dimensional array, the structure is as follows
... ... @@ -1286,17 +1286,13 @@
1286 1286  Failed~:// table// empty table
1287 1287  
1288 1288  (((
1289 -== **6.6 bns_get_machineinfo()** ==
1200 +== **bns_get_machineinfo()** ==
1290 1290  )))
1291 1291  
1292 -**Function:**
1203 +**Function:** get machine information
1293 1293  
1294 -get machine information
1205 +**Parameters:** None
1295 1295  
1296 -**Parameters:**
1297 -
1298 -None
1299 -
1300 1300  **Return:**
1301 1301  
1302 1302  Succeed: 3 string type results (model, machine code, software version)
... ... @@ -1304,13 +1304,11 @@
1304 1304  Failed: nil
1305 1305  
1306 1306  (((
1307 -== **6.7 bns_get_groupdata(string name)** ==
1214 +== **bns_get_groupdata(string name)** ==
1308 1308  )))
1309 1309  
1310 -**Function:**
1217 +**Function:** Get all monitoring point data under the specified group name
1311 1311  
1312 -Get all monitoring point data under the specified group name
1313 -
1314 1314  **parameter:**
1315 1315  
1316 1316  //Name  // group name
... ... @@ -1322,17 +1322,13 @@
1322 1322  Failed: //table// empty table
1323 1323  
1324 1324  (((
1325 -== **6.8 bns_get_groupdesc()** ==
1230 +== **bns_get_groupdesc()** ==
1326 1326  )))
1327 1327  
1328 -**Function:**
1233 +**Function:** Get all group information
1329 1329  
1330 -Get all group information
1235 +**Parameters:** None
1331 1331  
1332 -**Parameters:**
1333 -
1334 -None
1335 -
1336 1336  **Return:**
1337 1337  
1338 1338  Succeed: //table// two-dimensional array, the structure is as follows
... ... @@ -1346,17 +1346,13 @@
1346 1346  Failed: //table  // empty table
1347 1347  
1348 1348  (((
1349 -== **6.9 bns_get_onecache(string msg)** ==
1250 +== **bns_get_onecache(string msg)** ==
1350 1350  )))
1351 1351  
1352 -**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.
1353 1353  
1354 -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
1355 1355  
1356 -**Parameters:**
1357 -
1358 -//msg// String
1359 -
1360 1360  **Return:**
1361 1361  
1362 1362  Succeed: true
... ... @@ -1364,17 +1364,13 @@
1364 1364  Failed: nil
1365 1365  
1366 1366  (((
1367 -== **6.10 bns_get_allcache()** ==
1264 +== **bns_get_allcache()** ==
1368 1368  )))
1369 1369  
1370 -**Function:**
1267 +**Function:** Get all the cached content (once the internal cache file will be emptied)
1371 1371  
1372 -Get all the cached content (once the internal cache file will be emptied)
1269 +**Parameters:** None
1373 1373  
1374 -**Parameters:**
1375 -
1376 -None
1377 -
1378 1378  **Return:**
1379 1379  
1380 1380  Succeed: //table// one-dimensional array
... ... @@ -1402,194 +1402,234 @@
1402 1402  Network communication includes Http request interface, this document does not provide interface description, please refer to the online document for how to use it.
1403 1403  
1404 1404  (((
1405 -== **7.1 http request** ==
1298 +== **http request** ==
1406 1406  )))
1407 1407  
1408 1408  [[http:~~/~~/w3.impa.br/~~~~diego/software/luasocket/http.html#request>>url:http://w3.impa.br/~~diego/software/luasocket/http.html#request]]
1409 1409  
1410 -(((
1411 -= **8 Internal register** =
1412 -)))
1303 +== **https request** ==
1413 1413  
1414 -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):
1305 +Example
1415 1415  
1416 -**~1. **Access by word, prefix @W_HDW,
1307 +{{code language="LUA"}}
1308 +local json = require("json")
1417 1417  
1418 -For example: @W_HDW0 represents the first word of the system data area, @W_HDW1 represents the second word of the system data area.
1310 +local https = require("https")
1419 1419  
1420 -**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.
1312 +functions https_demo.main()
1421 1421  
1422 -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.
1314 +local url = "https://XXXXXXXXXXXXXXXXXXXXXXXXXX"
1423 1423  
1424 -**✎Note: **
1316 +local body = {}
1425 1425  
1426 -**~1. **The address in @B_HDX is taken from the word in @W_HDW, so pay special attention when using the address.
1318 +body["XXXXXX"] = "XXXXX"
1427 1427  
1428 -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.
1320 +body["XXXXXXX"] = "XXXXXXXXXXX"
1429 1429  
1430 -**2.**The address of the bit address @B_HDX has a decimal point, while the word address is an integer.
1322 +local bodyJson = json.encode(body)
1431 1431  
1432 -(((
1433 -== **8.1 Data storage area(HDW/HDX)** ==
1434 -)))
1324 +local header = {}
1435 1435  
1436 -The system storage area (HDW) of the V-BOX is used to store temporary data:
1326 +header["content-type"] = "application/json"
1437 1437  
1438 -~1. Access by word, the number range is: "@W_HDW0"-"@W_HDW299999".
1328 +local result_table, code, headers, status = https.request(url,
1439 1439  
1440 -2. Access in bit mode, the number range is: "@B_HDX0.0"-"@B_HDX299999.15".
1330 +bodyJson)
1441 1441  
1442 -(((
1443 -== **8.2 Special data area (HSW/HSX)** ==
1444 -)))
1332 +if code == 200 then
1445 1445  
1446 -**✎Note: **
1334 +print("https suc")
1447 1447  
1448 -//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).
1336 +return true
1449 1449  
1450 -//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.
1338 +else
1451 1451  
1452 -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:
1340 +print("https fail")
1453 1453  
1454 -(% class="table-bordered" %)
1455 -|address|function|Read and write status: read only, write only, read and write
1456 -|@W_HSW0|restart|read and write
1457 -|@W_HSW1|Box time: year|read and write
1458 -|@W_HSW2|Box time: month|read and write
1459 -|@W_HSW3|Box time: day|read and write
1460 -|@W_HSW4|Box time: hour|read and write
1461 -|@W_HSW5|Box time: minute|read and write
1462 -|@W_HSW6|Box time: second|read and write
1463 -|@W_HSW7|Box time: week|read and write
1464 -|@W_HSW8|Ethernet IP1|read only
1465 -|@W_HSW9|Ethernet IP2|read only
1466 -|@W_HSW10|Ethernet IP3|read only
1467 -|@W_HSW11|Ethernet IP4|read only
1468 -|@W_HSW12|Ethernet Mask 1|read only
1469 -|@W_HSW13|Ethernet Mask 2|read only
1470 -|@W_HSW14|Ethernet Mask 3|read only
1471 -|@W_HSW15|Ethernet Mask 4|read only
1472 -|@W_HSW16|Ethernet Gateway 1|read only
1473 -|@W_HSW17|Ethernet Gateway 2|read only
1474 -|@W_HSW18|Ethernet Gateway 3|read only
1475 -|@W_HSW19|Ethernet Gateway 4|read only
1476 -|@W_HSW21|Ethernet MAC1|read only
1477 -|@W_HSW22|Ethernet MAC2|read only
1478 -|@W_HSW23|Ethernet MAC3|read only
1479 -|@W_HSW24|Ethernet MAC4|read only
1480 -|@W_HSW25|Ethernet MAC3|read only
1481 -|@W_HSW26|Ethernet MAC4|read only
1482 -|@W_HSW128|WIFI IP1|read only
1483 -|@W_HSW129|WIFI IP2|read only
1484 -|@W_HSW130|WIFI IP3|read only
1485 -|@W_HSW131|WIFI IP4|read only
1486 -|@W_HSW132|WIFI Mask 1|read only
1487 -|@W_HSW133|WIFI Mask 2|read only
1488 -|@W_HSW134|WIFI Mask 3|read only
1489 -|@W_HSW135|WIFI Mask 4|read only
1490 -|@W_HSW136|WIFI Gateway 1|read only
1491 -|@W_HSW137|WIFI Gateway 2|read only
1492 -|@W_HSW138|WIFI Gateway 3|read only
1493 -|@W_HSW139|WIFI Gateway 4|read only
1494 -|@W_HSW140|WIFI MAC1|read only
1495 -|@W_HSW141|WIFI MAC2|read only
1496 -|@W_HSW142|WIFI MAC3|read only
1497 -|@W_HSW143|WIFI MAC4|read only
1498 -|@W_HSW144|WIFI MAC5|read only
1499 -|@W_HSW145|WIFI MAC6|read only
1500 -|@W_HSW146|WIFI Signal value|read only
1501 -|@W_HSW148|4G IP1|read only
1502 -|@W_HSW149|4G IP2|read only
1503 -|@W_HSW150|4G IP3|read only
1504 -|@W_HSW151|4G IP4|read only
1505 -|@W_HSW152|4G Mask 1|read only
1506 -|@W_HSW153|4G Mask 2|read only
1507 -|@W_HSW154|4G Mask 3|read only
1508 -|@W_HSW155|4G Mask 4|read only
1509 -|@W_HSW156|4G Gateway 1|read only
1510 -|@W_HSW157|4G Gateway 2|read only
1511 -|@W_HSW158|4G Gateway 3|read only
1512 -|@W_HSW159|4G Gateway 4|read only
1513 -|@W_HSW160|4G MAC1|read only
1514 -|@W_HSW161|4G MAC2|read only
1515 -|@W_HSW162|4G MAC3|read only
1516 -|@W_HSW163|4G MAC4|read only
1517 -|@W_HSW164|4G MAC5|read only
1518 -|@W_HSW165|4G MAC6|read only
1519 -|@W_HSW166|4G Signal value|read only
1342 +return nil
1520 1520  
1521 -2. Other
1344 +end
1522 1522  
1523 -2.1 Access password: addr_getstring("@W_HSW27", 16)
1346 +end
1347 +{{/code}}
1524 1524  
1525 -2.2 Machine code: addr_getstring("@W_HSW60", 64)
1349 +(((
1350 += **8 Internal register** =
1351 +)))
1526 1526  
1527 -2.3 Positioning method (@W_HSW167): (read only)
1353 +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):
1528 1528  
1529 -~1. Latitude and longitude
1355 +**Access by word, prefix @W_HDW.**
1530 1530  
1531 -Longitude: addr_getdouble("@W_HSW168") (read only)
1357 +For example: @W_HDW0 represents the first word of the system data area, @W_HDW1 represents the second word of the system data area.
1532 1532  
1533 -Latitude: addr_getdouble("@W_HSW172") (read only)
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.**
1534 1534  
1535 -2. Base station positioning
1361 +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.
1536 1536  
1537 -LAC: addr_getdword("@W_HSW168") (read only)
1363 +(% class="box infomessage" %)
1364 +(((
1365 +**✎Note: **
1538 1538  
1539 -CI: addr_getdword("@W_HSW172") (read only)
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 +)))
1540 1540  
1541 -2.4 Convert base station to latitude and longitude via API
1542 1542  
1543 -Longitude: addr_getdouble("@W_HSW187") (read only)
1544 1544  
1545 -Latitude: addr_getdouble("@W_HSW183") (read only)
1374 +(((
1375 +== **Data storage area(HDW/HDX)** ==
1376 +)))
1546 1546  
1547 -2.5 Operator information: addr_getdword("@W_HSW181") (read only)
1378 +The system storage area (HDW) of the V-BOX is used to store temporary data:
1548 1548  
1549 -2.6 Networking mode: addr_getword("@W_HSW177") (read only)
1380 +1. Access by word, the number range is: "@W_HDW0"-"@W_HDW299999".
1381 +1. Access in bit mode, the number range is: "@B_HDX0.0"-"@B_HDX299999.15".
1550 1550  
1551 -0: Ethernet, 1: WIFI, 2: 4G, 3: 2G
1383 +(((
1384 +== **8.2 Special data area (HSW/HSX)** ==
1552 1552  
1553 -2.7 Map fence flag: addr_getword("@W_HSW178") (read only)
1386 +(% class="box infomessage" %)
1387 +(((
1388 +**✎Note: **
1554 1554  
1555 -0: No map fence is drawn
1390 +* //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).
1391 +* //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.
1392 +)))
1393 +)))
1556 1556  
1557 -1: Draw a map fence and the box is in the fence
1395 +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:
1558 1558  
1559 -2: Draw a map fence and the box is not in the fence
1397 +(% class="table-bordered" %)
1398 +|=(% style="width: 151px;" %)address|=(% style="width: 169px;" %)function|=(% style="width: 456px;" %)Read and write status: read only, write only, read and write
1399 +|(% style="width:151px" %)@W_HSW0|(% style="width:169px" %)restart|(% style="width:456px" %)read and write
1400 +|(% style="width:151px" %)@W_HSW1|(% style="width:169px" %)Box time: year|(% style="width:456px" %)read and write
1401 +|(% style="width:151px" %)@W_HSW2|(% style="width:169px" %)Box time: month|(% style="width:456px" %)read and write
1402 +|(% style="width:151px" %)@W_HSW3|(% style="width:169px" %)Box time: day|(% style="width:456px" %)read and write
1403 +|(% style="width:151px" %)@W_HSW4|(% style="width:169px" %)Box time: hour|(% style="width:456px" %)read and write
1404 +|(% style="width:151px" %)@W_HSW5|(% style="width:169px" %)Box time: minute|(% style="width:456px" %)read and write
1405 +|(% style="width:151px" %)@W_HSW6|(% style="width:169px" %)Box time: second|(% style="width:456px" %)read and write
1406 +|(% style="width:151px" %)@W_HSW7|(% style="width:169px" %)Box time: week|(% style="width:456px" %)read and write
1407 +|(% style="width:151px" %)@W_HSW8|(% style="width:169px" %)Ethernet IP1|(% style="width:456px" %)read only
1408 +|(% style="width:151px" %)@W_HSW9|(% style="width:169px" %)Ethernet IP2|(% style="width:456px" %)read only
1409 +|(% style="width:151px" %)@W_HSW10|(% style="width:169px" %)Ethernet IP3|(% style="width:456px" %)read only
1410 +|(% style="width:151px" %)@W_HSW11|(% style="width:169px" %)Ethernet IP4|(% style="width:456px" %)read only
1411 +|(% style="width:151px" %)@W_HSW12|(% style="width:169px" %)Ethernet Mask 1|(% style="width:456px" %)read only
1412 +|(% style="width:151px" %)@W_HSW13|(% style="width:169px" %)Ethernet Mask 2|(% style="width:456px" %)read only
1413 +|(% style="width:151px" %)@W_HSW14|(% style="width:169px" %)Ethernet Mask 3|(% style="width:456px" %)read only
1414 +|(% style="width:151px" %)@W_HSW15|(% style="width:169px" %)Ethernet Mask 4|(% style="width:456px" %)read only
1415 +|(% style="width:151px" %)@W_HSW16|(% style="width:169px" %)Ethernet Gateway 1|(% style="width:456px" %)read only
1416 +|(% style="width:151px" %)@W_HSW17|(% style="width:169px" %)Ethernet Gateway 2|(% style="width:456px" %)read only
1417 +|(% style="width:151px" %)@W_HSW18|(% style="width:169px" %)Ethernet Gateway 3|(% style="width:456px" %)read only
1418 +|(% style="width:151px" %)@W_HSW19|(% style="width:169px" %)Ethernet Gateway 4|(% style="width:456px" %)read only
1419 +|(% style="width:151px" %)@W_HSW21|(% style="width:169px" %)Ethernet MAC1|(% style="width:456px" %)read only
1420 +|(% style="width:151px" %)@W_HSW22|(% style="width:169px" %)Ethernet MAC2|(% style="width:456px" %)read only
1421 +|(% style="width:151px" %)@W_HSW23|(% style="width:169px" %)Ethernet MAC3|(% style="width:456px" %)read only
1422 +|(% style="width:151px" %)@W_HSW24|(% style="width:169px" %)Ethernet MAC4|(% style="width:456px" %)read only
1423 +|(% style="width:151px" %)@W_HSW25|(% style="width:169px" %)Ethernet MAC3|(% style="width:456px" %)read only
1424 +|(% style="width:151px" %)@W_HSW26|(% style="width:169px" %)Ethernet MAC4|(% style="width:456px" %)read only
1425 +|(% style="width:151px" %)@W_HSW128|(% style="width:169px" %)WIFI IP1|(% style="width:456px" %)read only
1426 +|(% style="width:151px" %)@W_HSW129|(% style="width:169px" %)WIFI IP2|(% style="width:456px" %)read only
1427 +|(% style="width:151px" %)@W_HSW130|(% style="width:169px" %)WIFI IP3|(% style="width:456px" %)read only
1428 +|(% style="width:151px" %)@W_HSW131|(% style="width:169px" %)WIFI IP4|(% style="width:456px" %)read only
1429 +|(% style="width:151px" %)@W_HSW132|(% style="width:169px" %)WIFI Mask 1|(% style="width:456px" %)read only
1430 +|(% style="width:151px" %)@W_HSW133|(% style="width:169px" %)WIFI Mask 2|(% style="width:456px" %)read only
1431 +|(% style="width:151px" %)@W_HSW134|(% style="width:169px" %)WIFI Mask 3|(% style="width:456px" %)read only
1432 +|(% style="width:151px" %)@W_HSW135|(% style="width:169px" %)WIFI Mask 4|(% style="width:456px" %)read only
1433 +|(% style="width:151px" %)@W_HSW136|(% style="width:169px" %)WIFI Gateway 1|(% style="width:456px" %)read only
1434 +|(% style="width:151px" %)@W_HSW137|(% style="width:169px" %)WIFI Gateway 2|(% style="width:456px" %)read only
1435 +|(% style="width:151px" %)@W_HSW138|(% style="width:169px" %)WIFI Gateway 3|(% style="width:456px" %)read only
1436 +|(% style="width:151px" %)@W_HSW139|(% style="width:169px" %)WIFI Gateway 4|(% style="width:456px" %)read only
1437 +|(% style="width:151px" %)@W_HSW140|(% style="width:169px" %)WIFI MAC1|(% style="width:456px" %)read only
1438 +|(% style="width:151px" %)@W_HSW141|(% style="width:169px" %)WIFI MAC2|(% style="width:456px" %)read only
1439 +|(% style="width:151px" %)@W_HSW142|(% style="width:169px" %)WIFI MAC3|(% style="width:456px" %)read only
1440 +|(% style="width:151px" %)@W_HSW143|(% style="width:169px" %)WIFI MAC4|(% style="width:456px" %)read only
1441 +|(% style="width:151px" %)@W_HSW144|(% style="width:169px" %)WIFI MAC5|(% style="width:456px" %)read only
1442 +|(% style="width:151px" %)@W_HSW145|(% style="width:169px" %)WIFI MAC6|(% style="width:456px" %)read only
1443 +|(% style="width:151px" %)@W_HSW146|(% style="width:169px" %)WIFI Signal value|(% style="width:456px" %)read only
1444 +|(% style="width:151px" %)@W_HSW148|(% style="width:169px" %)4G IP1|(% style="width:456px" %)read only
1445 +|(% style="width:151px" %)@W_HSW149|(% style="width:169px" %)4G IP2|(% style="width:456px" %)read only
1446 +|(% style="width:151px" %)@W_HSW150|(% style="width:169px" %)4G IP3|(% style="width:456px" %)read only
1447 +|(% style="width:151px" %)@W_HSW151|(% style="width:169px" %)4G IP4|(% style="width:456px" %)read only
1448 +|(% style="width:151px" %)@W_HSW152|(% style="width:169px" %)4G Mask 1|(% style="width:456px" %)read only
1449 +|(% style="width:151px" %)@W_HSW153|(% style="width:169px" %)4G Mask 2|(% style="width:456px" %)read only
1450 +|(% style="width:151px" %)@W_HSW154|(% style="width:169px" %)4G Mask 3|(% style="width:456px" %)read only
1451 +|(% style="width:151px" %)@W_HSW155|(% style="width:169px" %)4G Mask 4|(% style="width:456px" %)read only
1452 +|(% style="width:151px" %)@W_HSW156|(% style="width:169px" %)4G Gateway 1|(% style="width:456px" %)read only
1453 +|(% style="width:151px" %)@W_HSW157|(% style="width:169px" %)4G Gateway 2|(% style="width:456px" %)read only
1454 +|(% style="width:151px" %)@W_HSW158|(% style="width:169px" %)4G Gateway 3|(% style="width:456px" %)read only
1455 +|(% style="width:151px" %)@W_HSW159|(% style="width:169px" %)4G Gateway 4|(% style="width:456px" %)read only
1456 +|(% style="width:151px" %)@W_HSW160|(% style="width:169px" %)4G MAC1|(% style="width:456px" %)read only
1457 +|(% style="width:151px" %)@W_HSW161|(% style="width:169px" %)4G MAC2|(% style="width:456px" %)read only
1458 +|(% style="width:151px" %)@W_HSW162|(% style="width:169px" %)4G MAC3|(% style="width:456px" %)read only
1459 +|(% style="width:151px" %)@W_HSW163|(% style="width:169px" %)4G MAC4|(% style="width:456px" %)read only
1460 +|(% style="width:151px" %)@W_HSW164|(% style="width:169px" %)4G MAC5|(% style="width:456px" %)read only
1461 +|(% style="width:151px" %)@W_HSW165|(% style="width:169px" %)4G MAC6|(% style="width:456px" %)read only
1462 +|(% style="width:151px" %)@W_HSW166|(% style="width:169px" %)4G Signal value|(% style="width:456px" %)read only
1560 1560  
1561 -2.8 SIM card status addr_getword("@W_HSW179") (read only)
1464 +**Others**
1562 1562  
1563 -1: No card detected
1466 +* Access password: addr_getstring("@W_HSW27", 16)
1467 +* Machine code: addr_getstring("@W_HSW60", 64)
1468 +* Positioning method (@W_HSW167): (read only)
1469 +** Latitude and longitude
1470 +*** Longitude: addr_getdouble("@W_HSW168") (read only)
1471 +*** Latitude: addr_getdouble("@W_HSW172") (read only)
1472 +** Base station positioning
1473 +*** LAC: addr_getdword("@W_HSW168") (read only)
1474 +*** CI: addr_getdword("@W_HSW172") (read only)
1475 +* Convert base station to latitude and longitude via API
1476 +** Longitude: addr_getdouble("@W_HSW187") (read only)
1477 +** Latitude: addr_getdouble("@W_HSW183") (read only)
1478 +* Operator information: addr_getdword("@W_HSW181") (read only)
1479 +* Networking mode: addr_getword("@W_HSW177") (read only)
1480 +** 0: Ethernet
1481 +** 1: WIFI
1482 +** 2: 4G
1483 +** 3: 2G
1484 +* Map fence flag: addr_getword("@W_HSW178") (read only)
1485 +** 0: No map fence is drawn
1486 +** 1: Draw a map fence and the box is in the fence
1487 +** 2: Draw a map fence and the box is not in the fence
1488 +* SIM card status addr_getword("@W_HSW179") (read only)
1489 +** 1: No card detected
1490 +** 2: Card insertion detected
1491 +** 3: The card status is abnormal
1492 +* MQTT status addr_getword("@W_HSW180") (read only)
1493 +** 1: online, 2: offline
1494 +* IO interface, X is read only, Y is read and write (H series)
1495 +** addr_getbit(addr1), addr_setbit(addr2)
1496 +** addr1:"@B_Y0" "@B_Y1" "@B_X0" "@B_X1"
1497 +** addr2:"@B_Y0" "@B_Y1"
1498 +* Obtaining IMEI (read only)
1499 +** addr_getstring("@W_HSW191",17)
1500 +* Obtaining ICCID (read only)
1501 +** addr_getstring("@W_HSW225",15)
1564 1564  
1565 -2: Card insertion detected
1503 +(((
1504 +(% class="wikigeneratedid" %)
1505 +== **Power-down storage area (HAW/HAX)** ==
1566 1566  
1567 -3: The card status is abnormal
1507 +The system storage area (HAW) is used for the system power-down hold registers:
1568 1568  
1569 -2.9 MQTT status addr_getword("@W_HSW180") (read only)
1509 +1. Accessed as a word, numbered in the range: "@W_HAW0"-"@W_HAW199999".
1510 +1. Accessed by bit, the numbering range is: "@B_HAX0.0"-"@B_HAX199999.15".
1570 1570  
1571 -1: online, 2: offline
1572 -
1573 -2.10 IO interface, X is read only, Y is read and write (H series)
1574 -
1575 -addr_getbit(addr1), addr_setbit(addr2)
1576 -
1577 -addr1:"@B_Y0" "@B_Y1" "@B_X0" "@B_X1"
1578 -
1579 -addr2:"@B_Y0" "@B_Y1"
1580 -
1512 +(% class="box infomessage" %)
1581 1581  (((
1514 +**✎Note:** HAW/HAX is a power-down hold, that is, the registers of this type can retain the data before power-down in case of power-down.
1515 +)))
1516 +
1582 1582  = **9 General Functions** =
1583 1583  )))
1584 1584  
1585 1585  (((
1586 -== **9.1 send_sms_ira(string number, string message)** ==
1521 +== **send_sms_ira(string number, string message)** ==
1587 1587  )))
1588 1588  
1589 -**Function:**
1524 +**Function:** Use IRA character set to send English text messages
1590 1590  
1591 -Use IRA character set to send English text messages
1592 -
1593 1593  **Parameters:**
1594 1594  
1595 1595  //number: //number (up to 32 characters, the excess will be discarded)
... ... @@ -1623,13 +1623,11 @@
1623 1623  Failed: multi
1624 1624  
1625 1625  (((
1626 -== **9.3 sms_get_state(number id)** ==
1559 +== **sms_get_state(number id)** ==
1627 1627  )))
1628 1628  
1629 -**Function:**
1562 +**Function:** Get the status of the SMS
1630 1630  
1631 -Get the status of the SMS
1632 -
1633 1633  **parameter:**
1634 1634  
1635 1635  //id~:// SMS corresponding id
... ... @@ -1641,13 +1641,11 @@
1641 1641  Failed: multi
1642 1642  
1643 1643  (((
1644 -== **9.4 jwt_encode(table head, table payload, string aud, number iat, number exp, string key, int jwttype)** ==
1575 +== **jwt_encode(table head, table payload, string aud, number iat, number exp, string key, int jwttype)** ==
1645 1645  )))
1646 1646  
1647 -**Function:**
1578 +**Function:** Convert data to JWT format
1648 1648  
1649 -Convert data to JWT format
1650 -
1651 1651  **parameter:**
1652 1652  
1653 1653  //aud: //project name