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.12
edited by Stone Wu
on 2022/07/12 09:40
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,11 +1402,57 @@
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  
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 +
1410 1410  (((
1411 1411  = **8 Internal register** =
1412 1412  )))
... ... @@ -1413,32 +1413,32 @@
1413 1413  
1414 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):
1415 1415  
1416 -**~1. **Access by word, prefix @W_HDW,
1355 +**Access by word, prefix @W_HDW.**
1417 1417  
1418 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.
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.
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.**
1421 1421  
1422 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.
1423 1423  
1363 +(% class="box errormessage" %)
1364 +(((
1424 1424  **✎Note: **
1366 +)))
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.
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.
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.
1429 -
1430 -**2.**The address of the bit address @B_HDX has a decimal point, while the word address is an integer.
1431 -
1432 1432  (((
1433 -== **8.1 Data storage area(HDW/HDX)** ==
1373 +== **Data storage area(HDW/HDX)** ==
1434 1434  )))
1435 1435  
1436 1436  The system storage area (HDW) of the V-BOX is used to store temporary data:
1437 1437  
1438 -~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".
1439 1439  
1440 -2. Access in bit mode, the number range is: "@B_HDX0.0"-"@B_HDX299999.15".
1441 -
1442 1442  (((
1443 1443  == **8.2 Special data area (HSW/HSX)** ==
1444 1444  )))