Changes for page 01 Lua Functions
Last modified by Theodore Xu on 2023/10/26 10:51
Summary
-
Page properties (1 modified, 0 added, 0 removed)
Details
- Page properties
-
- 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 ((( ... ... @@ -1534,7 +1534,7 @@ 1534 1534 Failed: multi 1535 1535 1536 1536 ((( 1537 -== ** 9.2send_sms_ucs2(string number, string message)** ==1546 +== **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: 1695 +**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:1754 +**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: 1816 +**For example:** 1808 1808 1818 +{{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 1832 +{{/code}} 1822 1822 1823 1823 == **normal_setdata_byname(string name, string data)** == 1824 1824 ... ... @@ -1834,13 +1834,10 @@ 1834 1834 1835 1835 Succeed: string: The value of the monitor point before it is written 1836 1836 1837 -Failed: mil1848 +Failed: nil 1838 1838 1839 1839 == **normal_getdata_byname(string name)** == 1840 1840 1841 - 1842 - 1843 - 1844 1844 **Function:** Read the data of the monitoring point name 1845 1845 1846 1846 **Parameter:** ... ... @@ -1851,7 +1851,7 @@ 1851 1851 1852 1852 Succeed: string 1853 1853 1854 -Failed: mil1862 +Failed: nil 1855 1855 1856 1856 = **11 MySQL database operation** = 1857 1857 ... ... @@ -1863,12 +1863,250 @@ 1863 1863 1864 1864 sourcename: the name of database 1865 1865 1866 -username: the connectedusername1874 +username: the username of the connection 1867 1867 1868 -password: 1876 +password: the password of the connection 1869 1869 1878 +host: the host name of the connection 1879 + 1880 +port: the host port of the connection 1881 + 1882 +character: the character set of the connection 1883 + 1870 1870 **Return:** 1871 1871 1872 1872 Succeed: string 1873 1873 1874 -Failed: mil 1888 +Failed: multi 1889 + 1890 +== **luaMySql.exec(string statement)** == 1891 + 1892 +**Function:** Execute the given SQL statement without returning the result set (add, delete, change) 1893 + 1894 +**Parameter:** 1895 + 1896 +statement: the given SQL statement 1897 + 1898 +**Return:** 1899 + 1900 +Succeed: status: returns the number of rows affected by SQL statement execution. 1901 + 1902 +Failed: nil, errorString 1903 + 1904 +== **luaMySql.execWithResult(string statement)** == 1905 + 1906 +**Function:** Execute the given SQL statement returning the result set (check) 1907 + 1908 +**Parameter:** 1909 + 1910 +statement: the given SQL statement 1911 + 1912 +**Return:** 1913 + 1914 +Succeed: table: returns the result set 1915 + 1916 +Failed: nil, errorString 1917 + 1918 +**For example:** 1919 + 1920 +{{code language="LUA"}} 1921 +mysql = require"mysqlclient" 1922 + 1923 +function DataInitRight() 1924 + 1925 +local dbName = "db_lua1" 1926 + 1927 +local user = "root" 1928 + 1929 +local pwd = "123456" 1930 + 1931 +local host = "192.168.56.186" 1932 + 1933 +local port = 3306 1934 +local character = "UTF8" 1935 + 1936 +mysql.init(dbName, user, pwd, host, port, character) 1937 + 1938 +end 1939 + 1940 +function ExecFunc() 1941 + 1942 +status, errorString = mysql.exec("delete from tb_lua1 where mykey = 1943 + 1944 +10;") 1945 + 1946 +if nil == status then 1947 + 1948 +print("ExecFunc() error:", errorString) 1949 + 1950 +return -1 1951 + 1952 +else 1953 + 1954 +print("the number of rows affected by the command:", status) 1955 + 1956 +end 1957 + 1958 +return 0 1959 + 1960 +end 1961 + 1962 +function ExecWithResultFunc() 1963 + 1964 +status, errorString = mysql.execWithResult("select * from tb_lua1;") 1965 + 1966 +if nil == status then 1967 + 1968 +print("ExecWithResultFunc() error:", errorString) 1969 + 1970 +return -1 1971 + 1972 +else 1973 + 1974 +print("ExecWithResultFunc() 1975 + 1976 +success 1977 + 1978 +: status 1979 + 1980 +type 1981 + 1982 += 1983 + 1984 +", 1985 + 1986 +type(status)) 1987 + 1988 +print("ExecWithResultFunc() success : status len = ", #status) 1989 + 1990 +local num = #status 1991 + 1992 +local i = 1 1993 + 1994 +if num > 0 then 1995 + 1996 +for i = 1, num, 1 do 1997 + 1998 +local var = string.format("select result[%d] :mykey = %d, 1999 + 2000 +value = %s", i, status[i].mykey, status[i].value) 2001 + 2002 +print(var) 2003 + 2004 +end 2005 + 2006 +end 2007 + 2008 +print("---------------") 2009 + 2010 +end 2011 + 2012 +return 0 2013 +end 2014 + 2015 +function luaMysql_apiTest.main() 2016 + 2017 +print("script running ...") 2018 + 2019 +DataInitRight() 2020 + 2021 +--use exec demo 2022 + 2023 +if ExecFunc() < 0 then 2024 + 2025 +return 2026 + 2027 +end 2028 + 2029 +--use execWithResult demo 2030 + 2031 +if ExecWithResultFunc() < 0 then 2032 + 2033 +return 2034 + 2035 +end 2036 + 2037 +print("script running success") 2038 + 2039 +end 2040 +{{/code}} 2041 + 2042 += **12 Message summary algorithm** = 2043 + 2044 +== **hmac(string hash_func, string key, string message)** == 2045 + 2046 +**Function:** HMAC calculate 2047 + 2048 +**Function name** 2049 + 2050 +hash_func: 2051 + 2052 +* [md5, sha1, sha224, sha256, sha384, sha512] 2053 +* [sha512_224, sha512_256, sha3_224, sha3_256] 2054 +* [sha3_384, sha3_512] 2055 + 2056 +**Parameter:** 2057 + 2058 +key: the key 2059 + 2060 +message: message content 2061 + 2062 +**Return:** 2063 + 2064 +Succeed: string, calculation result 2065 + 2066 +Failed: nil 2067 + 2068 +**For example:** 2069 + 2070 +{{code language="LUA"}} 2071 +local sha = require"sha2" 2072 + 2073 +function hmac_test.main() 2074 + 2075 +local hmac = sha.hmac 2076 + 2077 +print(hmac(sha.sha1, 2078 + 2079 +"your key", "your message")) 2080 + 2081 +end 2082 +{{/code}} 2083 + 2084 +== **sha(string message** == 2085 + 2086 +**Function:** SHA calculate 2087 + 2088 +**Function name:** 2089 + 2090 +sha: 2091 + 2092 +* sha1, sha224, sha256, sha384, sha512] 2093 +* [sha512_224, sha512_256, sha3_224, sha3_256] 2094 +* [sha3_384, sha3_512] 2095 + 2096 +**Parameter:** 2097 + 2098 +key: the key 2099 + 2100 +message: message content 2101 + 2102 +**Return:** 2103 + 2104 +Succeed: string, calculation result 2105 + 2106 +Failed: nil 2107 + 2108 +For example: 2109 + 2110 +{{code language="LUA"}} 2111 +local sha = require"sha2" 2112 + 2113 +function sha_test.main() 2114 + 2115 +local sha256 = sha.sha256 2116 + 2117 +print(sha256("your message")) 2118 + 2119 +end 2120 +{{/code}}