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
Change comment: There is no comment for this version
To version 6.1
edited by Stone Wu
on 2022/07/12 11:17
Change comment: There is no comment for this version

Summary

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.AiXia
1 +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 port
1165 +[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 running success")
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"