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
-
... ... @@ -1727,20 +1727,369 @@ 1727 1727 (% class="wikigeneratedid" %) 1728 1728 Table 9-1 1729 1729 1730 -(% class="wikigeneratedid" %) 1731 1731 == **crc:calc(string crcValue)** == 1732 1732 1733 1733 **Function:** Calculate CRC result 1734 1734 1735 -** parameter:**1734 +**Parameter:** 1736 1736 1737 1737 crcValue: the value to be calculated 1738 1738 1739 1739 **Return:** 1740 1740 1741 -Succeed: calcul 1740 +Succeed: calculated result 1742 1742 1743 -Failed: multi 1742 +Failed: multi, error code 1744 1744 ))) 1745 1745 1746 - 1745 +Example: 1746 + 1747 +{{code language="LUA"}} 1748 +function crcTest.main() 1749 + 1750 +local param = { 1751 + 1752 +name = '', 1753 + 1754 +width = 64, 1755 + 1756 +poly = 0x42F0E1EBA9EA3693, 1757 + 1758 +init = 0xFFFFFFFFFFFFFFFF, 1759 + 1760 +xorout = 0xFFFFFFFFFFFFFFFF, 1761 + 1762 +refin = 1, 1763 + 1764 +refout = 1 1765 + 1766 +} 1767 + 1768 +crc64,err = crc.init(param) 1769 + 1770 +if not crc64 then 1771 + 1772 +print("Crc init failed:", err) 1773 +else 1774 + 1775 +crcvalue = crc64:calc("123456789") 1776 + 1777 +print(string.format("crc64 calc :0X%16X", crcvalue)) 1778 + 1779 +end 1780 + 1781 +end 1782 +{{/code}} 1783 + 1784 += **10 Special function for V-NET** = 1785 + 1786 +== **normal_get_alldata()** == 1787 + 1788 +**Function: **Obtain the data of all the monitoring points 1789 + 1790 +**Parameter: None** 1791 + 1792 +**Return:** 1793 + 1794 +Succeed: table two-dimensional arrays, as follows: 1795 + 1796 +* Each item is a monitoring point and contains 4 attributes: 1797 +** 1: ID 1798 +** 2: status 1799 +** 3: tag name 1800 +** 4: value 1801 +* Status contains 3 enumerated values 1802 +** 0: offline 1803 +** 1: online 1804 +** 2: timeout 1805 +* Customization returns an empty table if there is no configuration, otherwise returns "field name/field content" 1806 + 1807 +For example: 1808 + 1809 +{ 1810 + 1811 +[1]= {[1]=1234, [2]=1, [3]='temp', [4]='23.5'}, 1812 + 1813 +[2]= {[1]=1235, [2]=1, [3]='humi', [4]='67'}, 1814 + 1815 +... 1816 + 1817 +[n]= {[1]=xxxx, [2]=x, [3]='xxxx', [4]='xx.x'}, 1818 + 1819 +} 1820 + 1821 +Failed: table, empty table 1822 + 1823 +== **normal_setdata_byname(string name, string data)** == 1824 + 1825 +**Function:** Write data to the monitoring point name 1826 + 1827 +**Parameter:** 1828 + 1829 +name: the name of monitoring point 1830 + 1831 +data: the data to be written 1832 + 1833 +**Return:** 1834 + 1835 +Succeed: string: The value of the monitor point before it is written 1836 + 1837 +Failed: nil 1838 + 1839 +== **normal_getdata_byname(string name)** == 1840 + 1841 + 1842 + 1843 +**Function:** Read the data of the monitoring point name 1844 + 1845 +**Parameter:** 1846 + 1847 +name: the name of monitoring point 1848 + 1849 +**Return:** 1850 + 1851 +Succeed: string 1852 + 1853 +Failed: nil 1854 + 1855 += **11 MySQL database operation** = 1856 + 1857 +== **luaMySql.init(string sourcename, string username, string password, string host, number port, string character)** == 1858 + 1859 +**Function:** Configure database connection parameters 1860 + 1861 +**Parameter:** 1862 + 1863 +sourcename: the name of database 1864 + 1865 +username: the username of the connection 1866 + 1867 +password: the password of the connection 1868 + 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 + 1885 +**Parameter:** 1886 + 1887 +statement: the given SQL statement 1888 + 1889 +**Return:** 1890 + 1891 +Succeed: status: returns the number of rows affected by SQL statement execution. 1892 + 1893 +Failed: nil, 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 + 1903 +**Return:** 1904 + 1905 +Succeed: table: returns the result set 1906 + 1907 +Failed: nil, errorString 1908 + 1909 +For example: 1910 + 1911 +{{code language="LUA"}} 1912 +mysql = require"mysqlclient" 1913 + 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 + 1929 +end 1930 + 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 +end 1948 + 1949 +return 0 1950 + 1951 +end 1952 + 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 + 1995 +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 2031 +{{/code}} 2032 + 2033 += **12 Message summary algorithm** = 2034 + 2035 +== **hmac(string hash_func, string key, string message)** == 2036 + 2037 +**Function:** HMAC calculate 2038 + 2039 +**Function name** 2040 + 2041 +hash_func: use hash algorithm 2042 + 2043 +* [md5, sha1, sha224, sha256, sha384, sha512] 2044 +* [sha512_224, sha512_256, sha3_224, sha3_256] 2045 +* [sha3_384, sha3_512] 2046 + 2047 +**Parameter:** 2048 + 2049 +key: the key 2050 + 2051 +message: message content 2052 + 2053 +**Return:** 2054 + 2055 +Succeed: string, calculation result 2056 + 2057 +Failed: nil 2058 + 2059 +For example: 2060 + 2061 +{{code language="LUA"}} 2062 +local sha = require"sha2" 2063 + 2064 +function hmac_test.main() 2065 + 2066 +local hmac = sha.hmac 2067 + 2068 +print(hmac(sha.sha1, 2069 + 2070 +"your key", "your message")) 2071 + 2072 +end 2073 +{{/code}} 2074 + 2075 +== **sha(string message** == 2076 + 2077 +**Function:** SHA calculate 2078 + 2079 +**Parameter:** 2080 + 2081 +hash_func: use hash algorithm 2082 + 2083 +* [md5, sha1, sha224, sha256, sha384, sha512] 2084 +* [sha512_224, sha512_256, sha3_224, sha3_256] 2085 +* [sha3_384, sha3_512] 2086 + 2087 +key: the key 2088 + 2089 +message: message content 2090 + 2091 +**Return:** 2092 + 2093 +Succeed: string, calculation result 2094 + 2095 +Failed: nil