Changes for page 01 Lua Functions
Last modified by Theodore Xu on 2023/10/26 10:51
From version 17.1
edited by Theodore Xu
on 2023/08/24 16:45
on 2023/08/24 16:45
Change comment:
There is no comment for this version
Summary
-
Page properties (3 modified, 0 added, 0 removed)
Details
- Page properties
-
- Parent
-
... ... @@ -1,1 +1,1 @@ 1 -V-BOX.V-Net.Manual.04 Lua Script.WebHome 1 +V-BOX.V-Net.1\.User Manual.04 Lua Script.WebHome - Author
-
... ... @@ -1,1 +1,1 @@ 1 -XWiki. AiXia1 +XWiki.Stone - Content
-
... ... @@ -140,7 +140,7 @@ 140 140 141 141 Table 2-1 142 142 143 -(% class="box infomessage" %)143 +(% class="box errormessage" %) 144 144 ((( 145 145 **✎Note: **If HLword enters any other value, it will be treated as invalid. 146 146 ))) ... ... @@ -608,12 +608,11 @@ 608 608 Attempting to use a script to open a serial port in an unsupported mode will result in an error directly, as below. 609 609 610 610 |((( 611 -{{code language="LUA"}} 612 612 local setup = { 613 613 614 614 name = "COM2", 615 615 616 -mode = 422, -- COM2 does not support RS422 615 +mode = 422, ~-~- COM2 does not support RS422 617 617 618 618 ... 619 619 ... ... @@ -620,7 +620,6 @@ 620 620 } 621 621 622 622 serial.open(setup) 623 -{{/code}} 624 624 ))) 625 625 626 626 **Data bit:** ... ... @@ -1065,9 +1065,8 @@ 1065 1065 1066 1066 If there is no custom configuration, return an empty table, otherwise, return with "field name/field content" 1067 1067 1068 - **For example:**1066 +E.g: 1069 1069 1070 -{{code language="LUA"}} 1071 1071 { 1072 1072 1073 1073 [1]= {[1]=1234, [2]=1, [3]='temp', [4]='23.5', [5]={"fruit"="apple"}}, ... ... @@ -1080,8 +1080,7 @@ 1080 1080 1081 1081 } 1082 1082 1083 -Failed: table empty table 1084 -{{/code}} 1080 +Failed: //table// empty table 1085 1085 1086 1086 ((( 1087 1087 == **bns_get_config(string from)** == ... ... @@ -1161,15 +1161,13 @@ 1161 1161 1162 1162 Type (1: switch, 2: number, 3: string) 1163 1163 1164 -**For example:** 1160 +E.g: 1161 + { 1165 1165 1166 -{{code language="LUA"}} 1167 -{ 1163 +[1]={~-~-The first communication port 1168 1168 1169 -[1]={-- The first communication port1165 +[1]={~-~-monitoring point array of the first communication port 1170 1170 1171 -[1]={--monitoring point array of the first communication port 1172 - 1173 1173 [1]={[1]=11,[2]='data1',[3]=3,[4]=2}, 1174 1174 1175 1175 [2]={[1]=12,[2]='data2',[3]=3,[4]=2}, ... ... @@ -1176,23 +1176,23 @@ 1176 1176 1177 1177 ... 1178 1178 1179 -[n]={[1]=xx,[2]='datan',[3]=x,[4]=x},--n monitoring points 1173 +[n]={[1]=xx,[2]='datan',[3]=x,[4]=x},~-~-n monitoring points 1180 1180 1181 1181 }, 1182 1182 1183 -[2]=14, --ID 1177 +[2]=14, ~-~-ID 1184 1184 1185 -[3]='Modbus TCP' --n monitoring points 1179 +[3]='Modbus TCP' ~-~-n monitoring points 1186 1186 1187 1187 }, 1188 1188 1189 -[2]={--The second communication port 1183 +[2]={~-~-The second communication port 1190 1190 1191 -[1]={},--The monitoring point of the second communication port is not configured and is empty 1185 +[1]={},~-~-The monitoring point of the second communication port is not configured and is empty 1192 1192 1193 -[2]=15, --ID 1187 +[2]=15, ~-~-ID 1194 1194 1195 -[3]='WECON' --communication protocol name 1189 +[3]='WECON' ~-~-communication protocol name 1196 1196 1197 1197 }, 1198 1198 ... ... @@ -1199,7 +1199,6 @@ 1199 1199 ...n communication ports and so on 1200 1200 1201 1201 } 1202 -{{/code}} 1203 1203 1204 1204 Failed~:// table// empty table 1205 1205 ... ... @@ -1279,9 +1279,8 @@ 1279 1279 1280 1280 Succeed: //table// one-dimensional array 1281 1281 1282 - **For example:**1275 +E.g: 1283 1283 1284 -{{code language="LUA"}} 1285 1285 { 1286 1286 1287 1287 [1]="This is the oldest message", - the first is the oldest message ... ... @@ -1293,7 +1293,6 @@ 1293 1293 [n]="This is the latest message", - the last is the latest message 1294 1294 1295 1295 } 1296 -{{/code}} 1297 1297 1298 1298 Failede: nil 1299 1299 ... ... @@ -1311,7 +1311,7 @@ 1311 1311 1312 1312 == **https request** == 1313 1313 1314 - **For example:**1305 +Example: 1315 1315 1316 1316 {{code language="LUA"}} 1317 1317 local json = require("json") ... ... @@ -1367,7 +1367,7 @@ 1367 1367 1368 1368 **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.** 1369 1369 1370 - **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.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. 1371 1371 1372 1372 (% class="box infomessage" %) 1373 1373 ((( ... ... @@ -1389,7 +1389,7 @@ 1389 1389 1. Access in bit mode, the number range is: "@B_HDX0.0"-"@B_HDX299999.15". 1390 1390 1391 1391 ((( 1392 -== **Special data area (HSW/HSX)** == 1383 +== **8.2 Special data area (HSW/HSX)** == 1393 1393 1394 1394 (% class="box infomessage" %) 1395 1395 ((( ... ... @@ -1507,19 +1507,8 @@ 1507 1507 ** addr_getstring("@W_HSW191",17) 1508 1508 * Obtaining ICCID (read only) 1509 1509 ** addr_getstring("@W_HSW225",15) 1510 -* ((( 1511 -TSAP settings of Siemens LOGO PLC* 1512 1512 1513 1513 ((( 1514 -addr_setword("@W_0#HSW1200",8192) means set the Local TSAP as 20.00 1515 -))) 1516 - 1517 -* ((( 1518 -addr_setword("@W_0#HSW1201",4096) means set the Remote TSAP as 10.00 1519 -))) 1520 -))) 1521 - 1522 -((( 1523 1523 == **Power-down storage area (HAW/HAX)** == 1524 1524 1525 1525 The system storage area (HAW) is used for the system power-down hold registers: ... ... @@ -1554,7 +1554,7 @@ 1554 1554 Failed: multi 1555 1555 1556 1556 ((( 1557 -== **send_sms_ucs2(string number, string message)** == 1537 +== **9.2 send_sms_ucs2(string number, string message)** == 1558 1558 ))) 1559 1559 1560 1560 **Function:** ... ... @@ -1703,7 +1703,7 @@ 1703 1703 * number [prarm.refin]: whether each byte of the data to be measured is inverted by bit, true or false. 1704 1704 * number [prarm.refout]: after the calculation or before the heterodyning output, whether the whole data is inverted by bit, true or false. 1705 1705 1706 - **Return:**1686 +Return: 1707 1707 1708 1708 Success: crc object 1709 1709 ... ... @@ -1762,7 +1762,7 @@ 1762 1762 Failed: multi, error code 1763 1763 ))) 1764 1764 1765 - **For example:**1745 +Example: 1766 1766 1767 1767 {{code language="LUA"}} 1768 1768 function crcTest.main() ... ... @@ -1824,9 +1824,8 @@ 1824 1824 ** 2: timeout 1825 1825 * Customization returns an empty table if there is no configuration, otherwise returns "field name/field content" 1826 1826 1827 - **For example:**1807 +For example: 1828 1828 1829 -{{code language="LUA"}} 1830 1830 { 1831 1831 1832 1832 [1]= {[1]=1234, [2]=1, [3]='temp', [4]='23.5'}, ... ... @@ -1840,7 +1840,6 @@ 1840 1840 } 1841 1841 1842 1842 Failed: table, empty table 1843 -{{/code}} 1844 1844 1845 1845 == **normal_setdata_byname(string name, string data)** == 1846 1846 ... ... @@ -1860,6 +1860,8 @@ 1860 1860 1861 1861 == **normal_getdata_byname(string name)** == 1862 1862 1841 + 1842 + 1863 1863 **Function:** Read the data of the monitoring point name 1864 1864 1865 1865 **Parameter:** ... ... @@ -1926,72 +1926,128 @@ 1926 1926 1927 1927 Failed: nil, errorString 1928 1928 1929 - **For example:**1909 +For example: 1930 1930 1931 1931 {{code language="LUA"}} 1932 --- Assuming the "mysqlclient" library is properly installed and available 1933 -mysql = require("mysqlclient") 1912 +mysql = require"mysqlclient" 1934 1934 1935 1935 function DataInitRight() 1936 - local dbName = "excel" 1937 - local user = "root" 1938 - local pwd = "XXXXX" 1939 - local host = "192.168.39.146" 1940 - local port = 3306 1941 - local character = "utf8mb3" 1942 - 1943 - mysql.init(dbName, user, pwd, host, port, character) 1915 + 1916 +local dbName = "db_lua1" 1917 + 1918 +local user = "root" 1919 + 1920 +local pwd = "123456" 1921 + 1922 +local host = "192.168.56.186" 1923 + 1924 +local port = 3306 1925 +local character = "UTF8" 1926 + 1927 +mysql.init(dbName, user, pwd, host, port, character) 1928 + 1944 1944 end 1945 1945 1946 1946 function ExecFunc() 1947 - status, errorString = mysql.exec("delete from student where Name = 'XXX';") --Delete statement, column name = table element 1948 - if nil == status then 1949 - print("ExecFunc() error:", errorString) 1950 - return -1 1951 - else 1952 - print("the number of rows affected by the command:", status) 1953 - end 1954 - return 0 1932 + 1933 +status, errorString = mysql.exec("delete from tb_lua1 where mykey = 1934 + 1935 +10;") 1936 + 1937 +if nil == status then 1938 + 1939 +print("ExecFunc() error:", errorString) 1940 + 1941 +return -1 1942 + 1943 +else 1944 + 1945 +print("the number of rows affected by the command:", status) 1946 + 1955 1955 end 1956 1956 1949 +return 0 1957 1957 1951 +end 1952 + 1958 1958 function ExecWithResultFunc() 1959 - status, errorString = mysql.execWithResult("select * from student;") 1960 - if nil == status then 1961 - print("ExecWithResultFunc() error:", errorString) 1962 - return -1 1963 - else 1964 - print("ExecWithResultFunc() success : status type = ", type(status)) 1965 - print("ExecWithResultFunc() success : status len = ", #status) 1966 - local num = #status 1967 - local i = 1 1968 - if num > 0 then 1969 - for i = 1, num, 1 do 1970 - local var = string.format("select result[%d] :Num = %d,Name = %s,Age = %d", i, status[i].Num, status[i].Name,status[i].Age) --Iterate through the data in the table, noting whether the elements are strings or numbers 1971 - print(var) 1972 - end 1973 - end 1974 - print("---------------") 1975 - end 1976 - return 0 1954 + 1955 +status, errorString = mysql.execWithResult("select * from tb_lua1;") 1956 + 1957 +if nil == status then 1958 + 1959 +print("ExecWithResultFunc() error:", errorString) 1960 + 1961 +return -1 1962 + 1963 +else 1964 + 1965 +print("ExecWithResultFunc() 1966 + 1967 +success 1968 + 1969 +: status 1970 + 1971 +type 1972 + 1973 += 1974 + 1975 +", 1976 + 1977 +type(status)) 1978 + 1979 +print("ExecWithResultFunc() success : status len = ", #status) 1980 + 1981 +local num = #status 1982 + 1983 +local i = 1 1984 + 1985 +if num > 0 then 1986 + 1987 +for i = 1, num, 1 do 1988 + 1989 +local var = string.format("select result[%d] :mykey = %d, 1990 + 1991 +value = %s", i, status[i].mykey, status[i].value) 1992 + 1993 +print(var) 1994 + 1977 1977 end 1978 1978 1979 -function MySQL.main() 1980 - print("script running ...") 1981 - DataInitRight() 1997 +end 1982 1982 1983 - -- use exec demo 1984 - if ExecFunc() < 0 then 1985 - return 1986 - end 1999 +print("---------------") 1987 1987 1988 - -- use execWithResult demo 1989 - if ExecWithResultFunc() < 0 then 1990 - return 1991 - end 2001 +end 1992 1992 1993 - print("script runningsuccess")2003 +return 0 1994 1994 end 2005 + 2006 +function luaMysql_apiTest.main() 2007 + 2008 +print("script running ...") 2009 + 2010 +DataInitRight() 2011 + 2012 +--use exec demo 2013 + 2014 +if ExecFunc() < 0 then 2015 + 2016 +return 2017 + 2018 +end 2019 + 2020 +--use execWithResult demo 2021 + 2022 +if ExecWithResultFunc() < 0 then 2023 + 2024 +return 2025 + 2026 +end 2027 + 2028 +print("script running success") 2029 + 2030 +end 1995 1995 {{/code}} 1996 1996 1997 1997 = **12 Message summary algorithm** = ... ... @@ -2020,7 +2020,7 @@ 2020 2020 2021 2021 Failed: nil 2022 2022 2023 - **For example:**2059 +For example: 2024 2024 2025 2025 {{code language="LUA"}} 2026 2026 local sha = require"sha2"