Changes for page 01 Lua Functions

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

From version 18.1
edited by Theodore Xu
on 2023/08/25 09:48
Change comment: There is no comment for this version
To version 5.38
edited by Stone Wu
on 2022/07/12 11:10
Change comment: (Autosaved)

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  
... ... @@ -1856,10 +1856,12 @@
1856 1856  
1857 1857  Succeed: string: The value of the monitor point before it is written
1858 1858  
1859 -Failed: nil
1837 +Failed: mil
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:**
... ... @@ -1870,86 +1870,198 @@
1870 1870  
1871 1871  Succeed: string
1872 1872  
1873 -Failed: nil
1853 +Failed: mil
1874 1874  
1875 -= (% style="font-size:14px" %) (%%) =
1855 += **11 MySQL database operation** =
1876 1876  
1877 -= **12 Message summary algorithm** =
1857 +== **luaMySql.init(string sourcename, string username, string password, string host, number port, string character)** ==
1878 1878  
1879 -== **hmac(string hash_func, string key, string message)** ==
1859 +**Function:** Configure database connection parameters
1880 1880  
1881 -**Function:** HMAC calculate
1861 +**Parameter:**
1882 1882  
1883 -**Function name**
1863 +sourcename: the name of database
1884 1884  
1885 -hash_func:
1865 +username: the username of the connection
1886 1886  
1887 -* [md5, sha1, sha224, sha256, sha384, sha512]
1888 -* [sha512_224, sha512_256, sha3_224, sha3_256]
1889 -* [sha3_384, sha3_512]
1867 +password: the password of the connection
1890 1890  
1869 +host: the host name of the connection
1870 +
1871 +port: the host port of the connection
1872 +
1873 +character: the character set of the connection
1874 +
1875 +**Return:**
1876 +
1877 +Succeed: string
1878 +
1879 +Failed: multi
1880 +
1881 +== **luaMySql.exec(string statement)** ==
1882 +
1883 +**Function:** Execute the given SQL statement without returning the result set (add, delete, change)
1884 +
1891 1891  **Parameter:**
1892 1892  
1893 -key: the key
1887 +statement: the given SQL statement
1894 1894  
1895 -message: message content
1889 +**Return:**
1896 1896  
1891 +Succeed: status: returns the number of rows affected by SQL statement execution.
1892 +
1893 +Failed: mil, errorString
1894 +
1895 +== **luaMySql.execWithResult(string statement)** ==
1896 +
1897 +**Function:** Execute the given SQL statement returning the result set (check)
1898 +
1899 +**Parameter:**
1900 +
1901 +statement: the given SQL statement
1902 +
1897 1897  **Return:**
1898 1898  
1899 -Succeed: string, calculation result
1905 +Succeed: table: returns the result set
1900 1900  
1901 -Failed: nil
1907 +Failed: mil, errorString
1902 1902  
1903 -**For example:**
1909 +For example:
1904 1904  
1905 1905  {{code language="LUA"}}
1906 -local sha = require"sha2"
1912 +mysql = require"mysqlclient"
1907 1907  
1908 -function hmac_test.main()
1914 +function DataInitRight()
1909 1909  
1910 -local hmac = sha.hmac
1916 +local dbName = "db_lua1"
1911 1911  
1912 -print(hmac(sha.sha1,
1918 +local user = "root"
1913 1913  
1914 -"your key", "your message"))
1920 +local pwd = "123456"
1915 1915  
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 +
1916 1916  end
1917 -{{/code}}
1918 1918  
1919 -== **sha(string message** ==
1931 +function ExecFunc()
1920 1920  
1921 -**Function:** SHA calculate
1933 +status, errorString = mysql.exec("delete from tb_lua1 where mykey =
1922 1922  
1923 -**Function name:**
1935 +10;")
1924 1924  
1925 -sha:
1937 +if nil == status then
1926 1926  
1927 -* sha1, sha224, sha256, sha384, sha512]
1928 -* [sha512_224, sha512_256, sha3_224, sha3_256]
1929 -* [sha3_384, sha3_512]
1939 +print("ExecFunc() error:", errorString)
1930 1930  
1931 -**Parameter:**
1941 +return -1
1932 1932  
1933 -key: the key
1943 +else
1934 1934  
1935 -message: message content
1945 +print("the number of rows affected by the command:", status)
1936 1936  
1937 -**Return:**
1947 +end
1938 1938  
1939 -Succeed: string, calculation result
1949 +return 0
1940 1940  
1941 -Failed: nil
1951 +end
1942 1942  
1943 -For example:
1953 +function ExecWithResultFunc()
1944 1944  
1945 -{{code language="LUA"}}
1946 -local sha = require"sha2"
1955 +status, errorString = mysql.execWithResult("select * from tb_lua1;")
1947 1947  
1948 -function sha_test.main()
1957 +if nil == status then
1949 1949  
1950 -local sha256 = sha.sha256
1959 +print("ExecWithResultFunc() error:", errorString)
1951 1951  
1952 -print(sha256("your message"))
1961 +return -1
1953 1953  
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 +
1954 1954  end
1996 +
1997 +end
1998 +
1999 +print("---------------")
2000 +
2001 +end
2002 +
2003 +return 0
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
1955 1955  {{/code}}
2032 +
2033 += **12 Message summary algorithm** =
2034 +
2035 +== **hmac(string hash_func, string key, string message)** ==
2036 +
2037 +**Function:** Execute the given SQL statement returning the result set (check)
2038 +
2039 +**Parameter:**
2040 +
2041 +statement: the given SQL statement
2042 +
2043 +**Return:**
2044 +
2045 +Succeed: table: returns the result set
2046 +
2047 +Failed: mil, errorString