Changes for page 01 Lua Functions
Last modified by Theodore Xu on 2023/10/26 10:51
From version 6.1
edited by Stone Wu
on 2022/07/12 11:17
on 2022/07/12 11:17
Change comment:
There is no comment for this version
To 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. 1\.UserManual.04 Lua Script.WebHome1 +V-BOX.V-Net.Manual.04 Lua Script.WebHome - Author
-
... ... @@ -1,1 +1,1 @@ 1 -XWiki. Stone1 +XWiki.AiXia - Content
-
... ... @@ -140,7 +140,7 @@ 140 140 141 141 Table 2-1 142 142 143 -(% class="box errormessage" %)143 +(% class="box infomessage" %) 144 144 ((( 145 145 **✎Note: **If HLword enters any other value, it will be treated as invalid. 146 146 ))) ... ... @@ -608,11 +608,12 @@ 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"}} 611 611 local setup = { 612 612 613 613 name = "COM2", 614 614 615 -mode = 422, ~-~- COM2 does not support RS422616 +mode = 422, -- COM2 does not support RS422 616 616 617 617 ... 618 618 ... ... @@ -619,6 +619,7 @@ 619 619 } 620 620 621 621 serial.open(setup) 623 +{{/code}} 622 622 ))) 623 623 624 624 **Data bit:** ... ... @@ -1063,8 +1063,9 @@ 1063 1063 1064 1064 If there is no custom configuration, return an empty table, otherwise, return with "field name/field content" 1065 1065 1066 - E.g:1068 +**For example:** 1067 1067 1070 +{{code language="LUA"}} 1068 1068 { 1069 1069 1070 1070 [1]= {[1]=1234, [2]=1, [3]='temp', [4]='23.5', [5]={"fruit"="apple"}}, ... ... @@ -1077,7 +1077,8 @@ 1077 1077 1078 1078 } 1079 1079 1080 -Failed: //table// empty table 1083 +Failed: table empty table 1084 +{{/code}} 1081 1081 1082 1082 ((( 1083 1083 == **bns_get_config(string from)** == ... ... @@ -1157,13 +1157,15 @@ 1157 1157 1158 1158 Type (1: switch, 2: number, 3: string) 1159 1159 1160 -E.g: 1161 - { 1164 +**For example:** 1162 1162 1163 -[1]={~-~-The first communication port 1166 +{{code language="LUA"}} 1167 +{ 1164 1164 1165 -[1]={ ~-~-monitoring point array of the first communication port1169 +[1]={--The first communication port 1166 1166 1171 +[1]={--monitoring point array of the first communication port 1172 + 1167 1167 [1]={[1]=11,[2]='data1',[3]=3,[4]=2}, 1168 1168 1169 1169 [2]={[1]=12,[2]='data2',[3]=3,[4]=2}, ... ... @@ -1170,23 +1170,23 @@ 1170 1170 1171 1171 ... 1172 1172 1173 -[n]={[1]=xx,[2]='datan',[3]=x,[4]=x}, ~-~-n monitoring points1179 +[n]={[1]=xx,[2]='datan',[3]=x,[4]=x},--n monitoring points 1174 1174 1175 1175 }, 1176 1176 1177 -[2]=14, ~-~-ID1183 +[2]=14, --ID 1178 1178 1179 -[3]='Modbus TCP' ~-~-n monitoring points1185 +[3]='Modbus TCP' --n monitoring points 1180 1180 1181 1181 }, 1182 1182 1183 -[2]={ ~-~-The second communication port1189 +[2]={--The second communication port 1184 1184 1185 -[1]={}, ~-~-The monitoring point of the second communication port is not configured and is empty1191 +[1]={},--The monitoring point of the second communication port is not configured and is empty 1186 1186 1187 -[2]=15, ~-~-ID1193 +[2]=15, --ID 1188 1188 1189 -[3]='WECON' ~-~-communication protocol name1195 +[3]='WECON' --communication protocol name 1190 1190 1191 1191 }, 1192 1192 ... ... @@ -1193,6 +1193,7 @@ 1193 1193 ...n communication ports and so on 1194 1194 1195 1195 } 1202 +{{/code}} 1196 1196 1197 1197 Failed~:// table// empty table 1198 1198 ... ... @@ -1272,8 +1272,9 @@ 1272 1272 1273 1273 Succeed: //table// one-dimensional array 1274 1274 1275 - E.g:1282 +**For example:** 1276 1276 1284 +{{code language="LUA"}} 1277 1277 { 1278 1278 1279 1279 [1]="This is the oldest message", - the first is the oldest message ... ... @@ -1285,6 +1285,7 @@ 1285 1285 [n]="This is the latest message", - the last is the latest message 1286 1286 1287 1287 } 1296 +{{/code}} 1288 1288 1289 1289 Failede: nil 1290 1290 ... ... @@ -1302,7 +1302,7 @@ 1302 1302 1303 1303 == **https request** == 1304 1304 1305 - Example:1314 +**For example:** 1306 1306 1307 1307 {{code language="LUA"}} 1308 1308 local json = require("json") ... ... @@ -1358,7 +1358,7 @@ 1358 1358 1359 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.** 1360 1360 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. 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. 1362 1362 1363 1363 (% class="box infomessage" %) 1364 1364 ((( ... ... @@ -1380,7 +1380,7 @@ 1380 1380 1. Access in bit mode, the number range is: "@B_HDX0.0"-"@B_HDX299999.15". 1381 1381 1382 1382 ((( 1383 -== ** 8.2Special data area (HSW/HSX)** ==1392 +== **Special data area (HSW/HSX)** == 1384 1384 1385 1385 (% class="box infomessage" %) 1386 1386 ((( ... ... @@ -1498,8 +1498,19 @@ 1498 1498 ** addr_getstring("@W_HSW191",17) 1499 1499 * Obtaining ICCID (read only) 1500 1500 ** addr_getstring("@W_HSW225",15) 1510 +* ((( 1511 +TSAP settings of Siemens LOGO PLC* 1501 1501 1502 1502 ((( 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 +((( 1503 1503 == **Power-down storage area (HAW/HAX)** == 1504 1504 1505 1505 The system storage area (HAW) is used for the system power-down hold registers: ... ... @@ -1534,7 +1534,7 @@ 1534 1534 Failed: multi 1535 1535 1536 1536 ((( 1537 -== ** 9.2send_sms_ucs2(string number, string message)** ==1557 +== **send_sms_ucs2(string number, string message)** == 1538 1538 ))) 1539 1539 1540 1540 **Function:** ... ... @@ -1683,7 +1683,7 @@ 1683 1683 * number [prarm.refin]: whether each byte of the data to be measured is inverted by bit, true or false. 1684 1684 * number [prarm.refout]: after the calculation or before the heterodyning output, whether the whole data is inverted by bit, true or false. 1685 1685 1686 -Return: 1706 +**Return:** 1687 1687 1688 1688 Success: crc object 1689 1689 ... ... @@ -1742,7 +1742,7 @@ 1742 1742 Failed: multi, error code 1743 1743 ))) 1744 1744 1745 - Example:1765 +**For example:** 1746 1746 1747 1747 {{code language="LUA"}} 1748 1748 function crcTest.main() ... ... @@ -1804,8 +1804,9 @@ 1804 1804 ** 2: timeout 1805 1805 * Customization returns an empty table if there is no configuration, otherwise returns "field name/field content" 1806 1806 1807 -For example: 1827 +**For example:** 1808 1808 1829 +{{code language="LUA"}} 1809 1809 { 1810 1810 1811 1811 [1]= {[1]=1234, [2]=1, [3]='temp', [4]='23.5'}, ... ... @@ -1819,6 +1819,7 @@ 1819 1819 } 1820 1820 1821 1821 Failed: table, empty table 1843 +{{/code}} 1822 1822 1823 1823 == **normal_setdata_byname(string name, string data)** == 1824 1824 ... ... @@ -1838,8 +1838,6 @@ 1838 1838 1839 1839 == **normal_getdata_byname(string name)** == 1840 1840 1841 - 1842 - 1843 1843 **Function:** Read the data of the monitoring point name 1844 1844 1845 1845 **Parameter:** ... ... @@ -1906,128 +1906,72 @@ 1906 1906 1907 1907 Failed: nil, errorString 1908 1908 1909 -For example: 1929 +**For example:** 1910 1910 1911 1911 {{code language="LUA"}} 1912 -mysql = require"mysqlclient" 1932 +-- Assuming the "mysqlclient" library is properly installed and available 1933 +mysql = require("mysqlclient") 1913 1913 1914 1914 function DataInitRight() 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 - 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) 1929 1929 end 1930 1930 1931 1931 function ExecFunc() 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 - 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 1947 1947 end 1948 1948 1949 -return 0 1950 1950 1951 -end 1952 - 1953 1953 function ExecWithResultFunc() 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 - 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 1995 1995 end 1996 1996 1997 -end 1979 +function MySQL.main() 1980 + print("script running ...") 1981 + DataInitRight() 1998 1998 1999 -print("---------------") 1983 + -- use exec demo 1984 + if ExecFunc() < 0 then 1985 + return 1986 + end 2000 2000 2001 -end 1988 + -- use execWithResult demo 1989 + if ExecWithResultFunc() < 0 then 1990 + return 1991 + end 2002 2002 2003 -r eturn01993 + print("script running success") 2004 2004 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 2031 2031 {{/code}} 2032 2032 2033 2033 = **12 Message summary algorithm** = ... ... @@ -2056,7 +2056,7 @@ 2056 2056 2057 2057 Failed: nil 2058 2058 2059 -For example: 2023 +**For example:** 2060 2060 2061 2061 {{code language="LUA"}} 2062 2062 local sha = require"sha2"