From 964b3eee16703cc492742134b31449d6cf684bc5 Mon Sep 17 00:00:00 2001 From: luatos_bot Date: Mon, 6 Nov 2023 02:59:57 +0000 Subject: [PATCH] ci auto translate docs --- docs/_static/luatos-emulator/vs/snippet.json | 2 +- docs/api/index.html | 2 +- docs/api/wlan.html | 9 +- docs/searchindex.js | 2 +- .../_static/luatos-emulator/vs/snippet.json | 2 +- translated-docs/api/wlan.md | 3 +- translation-data/api/wlan.txt | 382 +++++++++--------- 7 files changed, 204 insertions(+), 198 deletions(-) diff --git a/docs/_static/luatos-emulator/vs/snippet.json b/docs/_static/luatos-emulator/vs/snippet.json index c449fa243..34b127fa2 100644 --- a/docs/_static/luatos-emulator/vs/snippet.json +++ b/docs/_static/luatos-emulator/vs/snippet.json @@ -1 +1 @@ -{"_G": {"body": "_G(${0:...})", "description": "_G", "prefix": "_G"}, "_VERSION": {"body": "_VERSION(${0:...})", "description": "_VERSION", "prefix": "_VERSION"}, "assert": {"body": "assert(${1:v}${2:[, message]})", "description": "assert()", "prefix": "assert"}, "collectgarbage": {"body": "collectgarbage(${1:[opt]}${2:[, arg]})", "description": "collectgarbage()", "prefix": "collectgarbage"}, "coroutine.create": {"body": "coroutine.create( ${1:function} )", "description": "coroutine.create", "prefix": "coroutine.create"}, "coroutine.isyieldable": {"body": "coroutine.isyieldable( )", "description": "coroutine.isyieldable", "prefix": "coroutine.isyieldable"}, "coroutine.resume": {"body": "coroutine.resume( ${1:co}${2:[, val1, \u00b7\u00b7\u00b7]} )", "description": "coroutine.resume", "prefix": "coroutine.resume"}, "coroutine.running": {"body": "coroutine.running( )", "description": "coroutine.running", "prefix": "coroutine.running"}, "coroutine.status": {"body": "coroutine.status( ${1:co} )", "description": "coroutine.status", "prefix": "coroutine.status"}, "coroutine.wrap": {"body": "coroutine.wrap( ${1:function} )", "description": "coroutine.wrap", "prefix": "coroutine.wrap"}, "coroutine.yield": {"body": "coroutine.yield( ${1:...} )", "description": "coroutine.yield", "prefix": "coroutine.yield"}, "debug.debug": {"body": "debug.debug()", "description": "debug.debug ()", "prefix": "debug.debug"}, "debug.getfenv": {"body": "debug.getfenv(${0:...})", "description": "debug.getfenv (o)", "prefix": "debug.getfenv"}, "debug.gethook": {"body": "debug.gethook( ${1:[thread]} )", "description": "debug.gethook ([thread])", "prefix": "debug.gethook"}, "debug.getinfo": {"body": "debug.getinfo( ${1:[thread],}${2:f}${3:[, what]} )", "description": "debug.getinfo ([thread,] f [, what])", "prefix": "debug.getinfo"}, "debug.getlocal": {"body": "debug.getlocal( ${1:[thread],}${2:f}${3:[, local]} )", "description": "debug.getlocal ([thread,] f, local)", "prefix": "debug.getlocal"}, "debug.getmetatable": {"body": "debug.getmetatable( ${1:value} )", "description": "debug.getmetatable (value)", "prefix": "debug.getmetatable"}, "debug.getregistry": {"body": "debug.getregistry()", "description": "debug.getregistry ()", "prefix": "debug.getregistry"}, "debug.getupvalue": {"body": "debug.getupvalue( ${1:f}, ${2:up} )", "description": "debug.getupvalue (f, up)", "prefix": "debug.getupvalue"}, "debug.getuservalue": {"body": "debug.getuservalue(${0:...})", "description": "debug.getuservalue (u)", "prefix": "debug.getuservalue"}, "debug.getuservalue ": {"body": "debug.getuservalue ( ${1:u} )", "description": "debug.getuservalue (u)", "prefix": "debug.getuservalue "}, "debug.setfenv": {"body": "debug.setfenv(${0:...})", "description": "debug.setfenv (object, table)", "prefix": "debug.setfenv"}, "debug.sethook": {"body": "debug.sethook( ${1:[thead,]}${2:hook}, ${3:mask}${4:[, count]} )", "description": "debug.sethook ([thread,] hook, mask [, count])", "prefix": "debug.sethook"}, "debug.setlocal": {"body": "debug.setlocal( ${1:[thead,]}${2:level}, ${3:local}, ${4:value} )", "description": "debug.setlocal ([thread,] level, local, value)", "prefix": "debug.setlocal"}, "debug.setmetatable": {"body": "debug.setmetatable( ${1:value}, ${2:table} )", "description": "debug.setmetatable (value, table)", "prefix": "debug.setmetatable"}, "debug.setupvalue": {"body": "debug.setupvalue( ${1:f}, ${2:up}, ${3:value} )", "description": "debug.setupvalue (f, up, value)", "prefix": "debug.setupvalue"}, "debug.setuservalue": {"body": "debug.setuservalue( ${1:udata}, ${2:value} )", "description": "debug.setuservalue (udata, value)", "prefix": "debug.setuservalue"}, "debug.traceback": {"body": "debug.traceback( ${1:[thread,]}${2:[message]}${3:[, level]} )", "description": "debug.traceback ([thread,] [message [, level]])", "prefix": "debug.traceback"}, "debug.upvalueid": {"body": "debug.upvalueid( ${1:f}, ${2:n})", "description": "debug.upvalueid (f, n)", "prefix": "debug.upvalueid"}, "debug.upvaluejoin": {"body": "debug.upvaluejoin( ${1:f1}, ${2:n1}, ${3:f2}, ${4:n2} )", "description": "debug.upvaluejoin (f1, n1, f2, n2)", "prefix": "debug.upvaluejoin"}, "dofile": {"body": "dofile(${1:[filename]})", "description": "dofile ([filename])", "prefix": "dofile"}, "elif": {"body": "else if ${1:condition} then\n\t${0:-- body}\n", "description": "elif", "prefix": "elif"}, "error": {"body": "error(${0:...})", "description": "error (message [, level])", "prefix": "error"}, "file:close": {"body": "file:close(${0:...})", "description": "file:close ()", "prefix": "file:close"}, "file:flush": {"body": "file:flush(${0:...})", "description": "file:flush ()", "prefix": "file:flush"}, "file:lines": {"body": "file:lines(${0:...})", "description": "file:lines ()", "prefix": "file:lines"}, "file:read": {"body": "file:read(${0:...})", "description": "file:read (...)", "prefix": "file:read"}, "file:seek": {"body": "file:seek(${0:...})", "description": "file:seek ([whence] [, offset])", "prefix": "file:seek"}, "file:setvbuf": {"body": "file:setvbuf(${0:...})", "description": "file:setvbuf (mode [, size])", "prefix": "file:setvbuf"}, "file:write": {"body": "file:write(${0:...})", "description": "file:write (...)", "prefix": "file:write"}, "for": {"body": "for ${1:i}=${2:1},${3:10} do\n\t${0:print(i)}\nend", "description": "for i=1,10", "prefix": "for"}, "fori": {"body": "for ${1:i},${2:v} in ipairs(${3:table_name}) do\n\t${0:print(i,v)}\nend", "description": "for i,v in ipairs()", "prefix": "fori"}, "forp": {"body": "for ${1:k},${2:v} in pairs(${3:table_name}) do\n\t${0:print(k,v)}\nend", "description": "for k,v in pairs()", "prefix": "forp"}, "fun": {"body": "function ${1:function_name}( ${2:...} )\n\t${0:-- body}\nend", "description": "function", "prefix": "fun"}, "function": {"body": "function ${1:function_name}( ${2:...} )\n\t${0:-- body}\nend", "description": "function", "prefix": "function"}, "getfenv": {"body": "getfenv(${0:...})", "description": "getfenv ([f])", "prefix": "getfenv"}, "getmetatable": {"body": "getmetatable(${1:object})", "description": "getmetatable (object)", "prefix": "getmetatable"}, "if": {"body": "if ${1:condition} then\n\t${0:-- body}\nend", "description": "if", "prefix": "if"}, "ifel": {"body": "if ${1:condition} then\n\t${2:-- body}\nelse\n\t${0:-- body}\nend", "description": "ifel", "prefix": "ifel"}, "io.close": {"body": "io.close(${0:...})", "description": "io.close ([file])", "prefix": "io.close"}, "io.flush": {"body": "io.flush(${0:...})", "description": "io.flush ()", "prefix": "io.flush"}, "io.input": {"body": "io.input(${0:...})", "description": "io.input ([file])", "prefix": "io.input"}, "io.lines": {"body": "io.lines(${0:...})", "description": "io.lines ([filename])", "prefix": "io.lines"}, "io.open": {"body": "io.open(${0:...})", "description": "io.open (filename [, mode])", "prefix": "io.open"}, "io.output": {"body": "io.output(${0:...})", "description": "io.output ([file])", "prefix": "io.output"}, "io.popen": {"body": "io.popen(${0:...})", "description": "io.popen (prog [, mode])", "prefix": "io.popen"}, "io.read": {"body": "io.read(${0:...})", "description": "io.read (...)", "prefix": "io.read"}, "io.tmpfile": {"body": "io.tmpfile(${0:...})", "description": "io.tmpfile ()", "prefix": "io.tmpfile"}, "io.type": {"body": "io.type(${0:...})", "description": "io.type (obj)", "prefix": "io.type"}, "io.write": {"body": "io.write(${0:...})", "description": "io.write (...)", "prefix": "io.write"}, "ipairs": {"body": "ipairs(${0:...})", "description": "ipairs (t)", "prefix": "ipairs"}, "load": {"body": "load(${0:...})", "description": "load (func [, chunkname])", "prefix": "load"}, "loadfile": {"body": "loadfile(${0:...})", "description": "loadfile ([filename])", "prefix": "loadfile"}, "loadstring": {"body": "loadstring(${0:...})", "description": "loadstring (string [, chunkname])", "prefix": "loadstring"}, "local": {"body": "local ${1:x} = ${0:1}", "description": "local x = 1", "prefix": "local"}, "math.abs": {"body": "math.abs( ${1:x} )", "description": "math.abs", "prefix": "math.abs"}, "math.acos": {"body": "math.acos( ${1:x} )", "description": "math.acos", "prefix": "math.acos"}, "math.asin": {"body": "math.asin( ${1:x} )", "description": "math.asin", "prefix": "math.asin"}, "math.atan": {"body": "math.atan( ${1:y}${2:[, x]} )", "description": "math.atan", "prefix": "math.atan"}, "math.atan2": {"body": "math.atan2(${0:...})", "description": "math.atan2 (y, x)", "prefix": "math.atan2"}, "math.ceil": {"body": "math.ceil( ${1:x} )", "description": "math.ceil", "prefix": "math.ceil"}, "math.cos": {"body": "math.cos( ${1:x} )", "description": "math.cos", "prefix": "math.cos"}, "math.cosh": {"body": "math.cosh(${0:...})", "description": "math.cosh (x)", "prefix": "math.cosh"}, "math.deg": {"body": "math.deg( ${1:x} )", "description": "math.deg", "prefix": "math.deg"}, "math.exp": {"body": "math.exp( ${1:x} )", "description": "math.exp", "prefix": "math.exp"}, "math.floor": {"body": "math.floor( ${1:x} )", "description": "math.floor", "prefix": "math.floor"}, "math.fmod": {"body": "math.fmod( ${1:x},${2:y} )", "description": "math.fmod", "prefix": "math.fmod"}, "math.frexp": {"body": "math.frexp(${0:...})", "description": "math.frexp (x)", "prefix": "math.frexp"}, "math.huge": {"body": "math.huge(${0:...})", "description": "math.huge", "prefix": "math.huge"}, "math.ldexp": {"body": "math.ldexp(${0:...})", "description": "math.ldexp (m, e)", "prefix": "math.ldexp"}, "math.log": {"body": "math.log( ${1:x}${2:[, base]} )", "description": "math.log", "prefix": "math.log"}, "math.log10": {"body": "math.log10(${0:...})", "description": "math.log10 (x)", "prefix": "math.log10"}, "math.math.randomseed": {"body": "math.math.randomseed( ${1:x} )", "description": "math.math.randomseed", "prefix": "math.math.randomseed"}, "math.max": {"body": "math.max( ${1:x},${2:...} )", "description": "math.max", "prefix": "math.max"}, "math.maxinteger": {"body": "math.maxinteger(${0:...})", "description": "math.maxinteger", "prefix": "math.maxinteger"}, "math.min": {"body": "math.min( ${1:x},${2:...} )", "description": "math.min", "prefix": "math.min"}, "math.mininteger": {"body": "math.mininteger(${0:...})", "description": "math.mininteger", "prefix": "math.mininteger"}, "math.modf": {"body": "math.modf( ${1:x} )", "description": "math.modf", "prefix": "math.modf"}, "math.pi": {"body": "math.pi(${0:...})", "description": "math.pi", "prefix": "math.pi"}, "math.pow": {"body": "math.pow(${0:...})", "description": "math.pow (x, y)", "prefix": "math.pow"}, "math.rad": {"body": "math.rad(${0:...})", "description": "math.rad (x)", "prefix": "math.rad"}, "math.random": {"body": "math.random( ${1:[m]}${2:[, n]} )", "description": "math.random", "prefix": "math.random"}, "math.randomseed": {"body": "math.randomseed(${0:...})", "description": "math.randomseed (x)", "prefix": "math.randomseed"}, "math.sin": {"body": "math.sin( ${1:x} )", "description": "math.sin", "prefix": "math.sin"}, "math.sinh": {"body": "math.sinh(${0:...})", "description": "math.sinh (x)", "prefix": "math.sinh"}, "math.sqrt": {"body": "math.sqrt( ${1:x} )", "description": "math.sqrt", "prefix": "math.sqrt"}, "math.tan": {"body": "math.tan( ${1:x} )", "description": "math.tan", "prefix": "math.tan"}, "math.tanh": {"body": "math.tanh(${0:...})", "description": "math.tanh (x)", "prefix": "math.tanh"}, "math.tointeger": {"body": "math.tointeger( ${1:x} )", "description": "math.tointeger", "prefix": "math.tointeger"}, "math.type": {"body": "math.type( ${1:x} )", "description": "math.type", "prefix": "math.type"}, "math.ult": {"body": "math.ult(${0:...})", "description": "math.ult (m, n)", "prefix": "math.ult"}, "module": {"body": "module(${0:...})", "description": "module (name [, ...])", "prefix": "module"}, "next": {"body": "next(${1:table}${2:[, index]})", "description": "next (table [, index])", "prefix": "next"}, "os.clock": {"body": "os.clock()", "description": "os.clock() - \u8fd4\u56de\u7a0b\u5e8f\u4f7f\u7528\u7684\u6309\u79d2\u8ba1 CPU \u65f6\u95f4\u7684\u8fd1\u4f3c\u503c\n\u4f20\u5165\u503c\uff1a\nreturn \u65f6\u95f4\u6233\n\u4f8b\u5b50\uff1a\n-- \u4e0d\u63a8\u8350\u4f7f\u7528\u672cAPI\n-- \u5982\u9700\u8981\u83b7\u53d6 \u65f6\u95f4\u6233, \u8bf7\u4f7f\u7528 os.time()\n-- \u5982\u9700\u83b7\u53d6\u7cfb\u7edf\u8fd0\u884c\u65f6\u957f, \u8bf7\u4f7f\u7528 mcu.ticks()\n", "prefix": "os.clock"}, "os.date": {"body": "os.date(${1:fmt},${2:time})", "description": "os.date(fmt, time) - \u65e5\u671f\u51fd\u6570\n\u4f20\u5165\u503c\uff1a\nstring \u683c\u5f0f\u5316\u5b57\u7b26\u4e32,\u53ef\u4ee5\u662fnil\ntable \u65e5\u671f\u65f6\u95f4\u7684table\n\u8fd4\u56de\u503c\uff1a\ntable/string \u6839\u636efmt\u7684\u4e0d\u540c,\u8fd4\u56de\u503c\u4e0d\u540c\n\u4f8b\u5b50\uff1a\n\n-- \u503c\u5f97\u6ce8\u610f\u7684\u51e0\u70b9:\n-- 1. \u82e5\u9700\u8981UTC\u65f6\u95f4, fmt\u7684\u7b2c\u4e00\u4e2a\u5b57\u7b26\u5199\"!\"\n-- 2. fmt\u7684\u683c\u5f0f\u5316\u9075\u5faa C \u51fd\u6570 strftime, \u53ef\u4ee5\u67e5\u9605 https://developer.aliyun.com/article/320480\n\n-- \u83b7\u53d6\u672c\u5730\u65f6\u95f4\u5b57\u7b26\u4e32\nlog.info(\"\u672c\u5730\u65f6\u95f4\u5b57\u7b26\u4e32\", os.date())\n-- \u83b7\u53d6UTC\u65f6\u95f4\u5b57\u7b26\u4e32\nlog.info(\"UTC\u65f6\u95f4\u5b57\u7b26\u4e32\", os.date(\"!%c\"))\n-- \u683c\u5f0f\u5316\u672c\u5730\u65f6\u95f4\u5b57\u7b26\u4e32\nlog.info(\"\u672c\u5730\u65f6\u95f4\u5b57\u7b26\u4e32\", os.date(\"%Y-%m-%d %H:%M:%S\"))\n-- \u683c\u5f0f\u5316UTC\u65f6\u95f4\u5b57\u7b26\u4e32\nlog.info(\"UTC\u65f6\u95f4\u5b57\u7b26\u4e32\", os.date(\"!%Y-%m-%d %H:%M:%S\"))\n-- \u683c\u5f0f\u5316\u65f6\u95f4\u5b57\u7b26\u4e32\nlog.info(\"\u81ea\u5b9a\u4e49\u65f6\u95f4\u7684\u5b57\u7b26\u4e32\", os.date(\"!%Y-%m-%d %H:%M:%S\", os.time({year=2000, mon=1, day=1, hour=0, min=0, sec=0})))\n\n-- \u83b7\u53d6\u672c\u5730\u65f6\u95f4\u7684table\nlog.info(\"\u672c\u5730\u65f6\u95f4\u5b57\u7b26\u4e32\", json.encode(os.date(\"*t\")))\n-- \u83b7\u53d6UTC\u65f6\u95f4\u7684table\nlog.info(\"UTC\u65f6\u95f4\u5b57\u7b26\u4e32\", json.encode(os.date(\"!*t\")))\n", "prefix": "os.date"}, "os.difftime": {"body": "os.difftime(${1:timeA},${2:timeB})", "description": "os.difftime(timeA, timeB) - \u65f6\u95f4\u5dee\u503c\n\u4f20\u5165\u503c\uff1a\nint \u65f6\u95f4A,\u6570\u503c\u7c7b\u578b\nint \u65f6\u95f4B,\u6570\u503c\u7c7b\u578b\n\u8fd4\u56de\u503c\uff1a\nint \u65f6\u95f4\u5dee\u503c\n", "prefix": "os.difftime"}, "os.execute": {"body": "os.execute(${0:...})", "description": "os.execute ([command])", "prefix": "os.execute"}, "os.exit": {"body": "os.exit(${0:...})", "description": "os.exit ([code])", "prefix": "os.exit"}, "os.getenv": {"body": "os.getenv(${0:...})", "description": "os.getenv (varname)", "prefix": "os.getenv"}, "os.remove": {"body": "os.remove(${1:path})", "description": "os.remove(path) - \u79fb\u9664\u6587\u4ef6\n\u4f20\u5165\u503c\uff1a\nstring \u5f85\u79fb\u9664\u7684\u6587\u4ef6\u5b8c\u6574\u8def\u5f84\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5176\u4ed6\u60c5\u51b5\u8fd4\u56denil\nstring \u5931\u8d25\u65f6\u8fd4\u56de\u539f\u56e0\u5b57\u7b26\u4e32\n\u4f8b\u5b50\uff1a\n-- \u5220\u9664\u6839\u76ee\u5f55\u4e0b\u7684\u67d0\u4e2a\u6587\u4ef6\nos.remove(\"/1.txt\")\n-- \u6ce8\u610f, \u7ebf\u5237\u65f6\u7684\u6587\u4ef6, \u4e00\u822c\u5728 /luadb \u76ee\u5f55, \u8fd9\u4e2a\u76ee\u5f55\u4e0b\u7684\u6587\u4ef6\u662f\u53ea\u8bfb\u7684\n-- \u4e5f\u5c31\u662f\u65e0\u6cd5\u6267\u884c os.remove(\"/luadb/xxx.bin\")\n", "prefix": "os.remove"}, "os.rename": {"body": "os.rename(${1:old_path},${2:new_path})", "description": "os.rename(old_path, new_path) - \u6587\u4ef6\u91cd\u547d\u540d\n\u4f20\u5165\u503c\uff1a\nstring \u6e90\u6587\u4ef6\u5b8c\u6574\u8def\u5f84\nstring \u76ee\u6807\u6587\u4ef6\u5b8c\u6574\u8def\u5f84\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5176\u4ed6\u60c5\u51b5\u8fd4\u56denil\nstring \u5931\u8d25\u65f6\u8fd4\u56de\u539f\u56e0\u5b57\u7b26\u4e32\n\u4f8b\u5b50\uff1a\n-- \u6ce8\u610f, \u53ea\u6709\u5728\u76f8\u540c\u6587\u4ef6\u7cfb\u7edf\u4e0b\u7684\u6587\u4ef6\u53ef\u4ee5\u91cd\u547d\u540d\n-- \u4f8b\u5982:\nos.rename(\"/1.txt\", \"/2.txt\")\n-- \u4e0d\u540c\u6587\u4ef6\u7cfb\u7edf, \u6216\u8005\u6e90\u6587\u4ef6\u7cfb\u7edf\u662f\u53ea\u8bfb\u7684, \u5219\u65e0\u6cd5\u6267\u884c\n--os.rename(\"/luadb/1.txt\", \"/luadb/2.txt\")\n--os.rename(\"/luadb/1.txt\", \"/2.txt\")\n", "prefix": "os.rename"}, "os.setlocale": {"body": "os.setlocale(${0:...})", "description": "os.setlocale (locale [, category])", "prefix": "os.setlocale"}, "os.time": {"body": "os.time(${1:mytime})", "description": "os.time(mytime) - \u65f6\u95f4\u6233\u51fd\u6570\n\u4f20\u5165\u503c\uff1a\ntable \u65e5\u671f\u65f6\u95f4\u7684table\nreturn \u65f6\u95f4\u6233\n\u4f8b\u5b50\uff1a\n-- \u6ce8\u610f\u6ce8\u610f, \u8fd9\u4e2a\u51fd\u6570\u8fd4\u56de\u7684\u662fUTC\u65f6\u95f4\u6233\n-- \u65f6\u95f4\u6233, \u4f46lua\u4e0b\u7684\u7cbe\u5ea6\u53ea\u80fd\u5230\u79d2\nlog.info(\"UTC\u65f6\u95f4\u6233\", os.time())\nlog.info(\"\u81ea\u5b9a\u4e49\u65f6\u95f4\u6233\", os.time({year=2000, mon=1, day=1, hour=0, min=0, sec=0}))\n", "prefix": "os.time"}, "os.tmpname": {"body": "os.tmpname(${0:...})", "description": "os.tmpname ()", "prefix": "os.tmpname"}, "package.config": {"body": "package.config(${0:...})", "description": "package.config", "prefix": "package.config"}, "package.cpath": {"body": "package.cpath(${0:...})", "description": "package.cpath", "prefix": "package.cpath"}, "package.loaded": {"body": "package.loaded(${0:...})", "description": "package.loaded", "prefix": "package.loaded"}, "package.loaders": {"body": "package.loaders(${0:...})", "description": "package.loaders", "prefix": "package.loaders"}, "package.loadlib": {"body": "package.loadlib(${0:...})", "description": "package.loadlib (libname, funcname)", "prefix": "package.loadlib"}, "package.path": {"body": "package.path(${0:...})", "description": "package.path", "prefix": "package.path"}, "package.preload": {"body": "package.preload(${0:...})", "description": "package.preload", "prefix": "package.preload"}, "package.searchers": {"body": "package.searchers(${0:...})", "description": "package.searchers", "prefix": "package.searchers"}, "package.searchpath": {"body": "package.searchpath(${0:...})", "description": "package.searchpath (name, path [, sep [, rep]])", "prefix": "package.searchpath"}, "package.seeall": {"body": "package.seeall(${0:...})", "description": "package.seeall (module)", "prefix": "package.seeall"}, "pairs": {"body": "pairs(${0:...})", "description": "pairs (t)", "prefix": "pairs"}, "pcall": {"body": "pcall(${0:...})", "description": "pcall (f, arg1, ...)", "prefix": "pcall"}, "print": {"body": "print(${1:...})", "description": "print(...)", "prefix": "print"}, "require": {"body": "require\"${1:module}\"", "description": "require()", "prefix": "require"}, "ret": {"body": "return ${1:...}", "description": "return ...", "prefix": "ret"}, "select": {"body": "select(${1:index}, ${2:...})", "description": "select (index, \u00b7\u00b7\u00b7)", "prefix": "select"}, "setfenv": {"body": "setfenv(${0:...})", "description": "setfenv (f, table)", "prefix": "setfenv"}, "setmetatable": {"body": "setmetatable(${1:table}, ${2:metatable})", "description": "setmetatable (table, metatable)", "prefix": "setmetatable"}, "tonumber": {"body": "tonumber(${1:e}${2:[, base]})", "description": "tonumber (e [, base])", "prefix": "tonumber"}, "tostring": {"body": "tostring(${1:v})", "description": "tostring (v)", "prefix": "tostring"}, "type": {"body": "type(${1:v})", "description": "type (v)", "prefix": "type"}, "unpack": {"body": "unpack(${0:...})", "description": "unpack (list [, i [, j]])", "prefix": "unpack"}, "xpcall": {"body": "xpcall(${0:...})", "description": "xpcall (f, err)", "prefix": "xpcall"}, "sys.publish(...)": {"body": "sys.publish(${1:...})", "description": "\u53d1\u5e03\u5185\u90e8\u6d88\u606f\uff0c\u5b58\u50a8\u5728\u5185\u90e8\u6d88\u606f\u961f\u5217\u4e2d\r\n\u8fd4\u56de\u503c\uff1a\r\n\u65e0\r\n\u4f8b\u5b50\uff1a\r\npublish(\"NET_STATUS_IND\")\r\n", "prefix": "sys.publish(...)"}, "sys.restart(r)": {"body": "sys.restart(${1:r})", "description": "\u8f6f\u4ef6\u91cd\u542f\r\n\u8fd4\u56de\u503c\uff1a\r\n\u65e0\r\n\u4f8b\u5b50\uff1a\r\nsys.restart('\u7a0b\u5e8f\u8d85\u65f6\u8f6f\u4ef6\u91cd\u542f')\r\n", "prefix": "sys.restart(r)"}, "sys.run()": {"body": "sys.run()", "description": "run()\u4ece\u5e95\u5c42\u83b7\u53d6core\u6d88\u606f\u5e76\u53ca\u65f6\u5904\u7406\u76f8\u5173\u6d88\u606f\uff0c\u67e5\u8be2\u5b9a\u65f6\u5668\u5e76\u8c03\u5ea6\u5404\u6ce8\u518c\u6210\u529f\u7684\u4efb\u52a1\u7ebf\u7a0b\u8fd0\u884c\u548c\u6302\u8d77\r\n\u8fd4\u56de\u503c\uff1a\r\n\u65e0\r\n\u4f8b\u5b50\uff1a\r\nsys.run()\r\n", "prefix": "sys.run()"}, "sys.setRollBack(flag, secs)": {"body": "sys.setRollBack(${1:flag},${2: secs})", "description": "\u8bbe\u7f6e\u201clua\u811a\u672c\u8fd0\u884c\u51fa\u9519\u65f6\uff0c\u662f\u5426\u56de\u9000\u539f\u59cb\u70e7\u5199\u7248\u672c\u201d\u7684\u529f\u80fd\u5f00\u5173\u3002\u5982\u679c\u6ca1\u6709\u8c03\u7528\u6b64\u63a5\u53e3\u8bbe\u7f6e\uff0c\u9ed8\u8ba4\u56de\u6eda\r\n\u8fd4\u56de\u503c\uff1a\r\nnil\r\n\u4f8b\u5b50\uff1a\r\nsys.setRollBack(true)\r\nsys.setRollBack(false)\r\n", "prefix": "sys.setRollBack(flag, secs)"}, "sys.subscribe(id, callback)": {"body": "sys.subscribe(${1:id},${2: callback})", "description": "\u8ba2\u9605\u6d88\u606f\r\n\u8fd4\u56de\u503c\uff1a\r\n\u65e0\r\n\u4f8b\u5b50\uff1a\r\nsubscribe(\"NET_STATUS_IND\", callback)\r\n", "prefix": "sys.subscribe(id, callback)"}, "sys.taskInit(fun, ...)": {"body": "sys.taskInit(${1:fun},${2: ...})", "description": "\u521b\u5efa\u4e00\u4e2a\u4efb\u52a1\u7ebf\u7a0b,\u5728\u6a21\u5757\u6700\u672b\u884c\u8c03\u7528\u8be5\u51fd\u6570\u5e76\u6ce8\u518c\u6a21\u5757\u4e2d\u7684\u4efb\u52a1\u51fd\u6570\uff0cmain.lua\u5bfc\u5165\u8be5\u6a21\u5757\u5373\u53ef\r\n\u8fd4\u56de\u503c\uff1a\r\nco \u8fd4\u56de\u8be5\u4efb\u52a1\u7684\u7ebf\u7a0b\u53f7\r\n\u4f8b\u5b50\uff1a\r\nsys.taskInit(task1,'a','b')\r\n", "prefix": "sys.taskInit(fun, ...)"}, "sys.timerIsActive(val, ...)": {"body": "sys.timerIsActive(${1:val},${2: ...})", "description": "\u5224\u65ad\u67d0\u4e2a\u5b9a\u65f6\u5668\u662f\u5426\u5904\u4e8e\u5f00\u542f\u72b6\u6001\r\n\u8fd4\u56de\u503c\uff1a\r\nnumber \u5f00\u542f\u72b6\u6001\u8fd4\u56detrue\uff0c\u5426\u5219nil", "prefix": "sys.timerIsActive(val, ...)"}, "sys.timerLoopStart(fnc, ms, ...)": {"body": "sys.timerLoopStart(${1:fnc},${2: ms},${3: ...})", "description": "\u5f00\u542f\u4e00\u4e2a\u5faa\u73af\u5b9a\u65f6\u5668\r\n\u8fd4\u56de\u503c\uff1a\r\nnumber \u5b9a\u65f6\u5668ID\uff0c\u5982\u679c\u5931\u8d25\uff0c\u8fd4\u56denil", "prefix": "sys.timerLoopStart(fnc, ms, ...)"}, "sys.timerStart(fnc, ms, ...)": {"body": "sys.timerStart(${1:fnc},${2: ms},${3: ...})", "description": "\u5f00\u542f\u4e00\u4e2a\u5b9a\u65f6\u5668\r\n\u8fd4\u56de\u503c\uff1a\r\nnumber \u5b9a\u65f6\u5668ID\uff0c\u5982\u679c\u5931\u8d25\uff0c\u8fd4\u56denil", "prefix": "sys.timerStart(fnc, ms, ...)"}, "sys.timerStop(val, ...)": {"body": "sys.timerStop(${1:val},${2: ...})", "description": "\u5173\u95ed\u5b9a\u65f6\u5668\r\n\u8fd4\u56de\u503c\uff1a\r\n\u65e0\r\n\u4f8b\u5b50\uff1a\r\ntimerStop(1)\r\n", "prefix": "sys.timerStop(val, ...)"}, "sys.timerStopAll(fnc)": {"body": "sys.timerStopAll(${1:fnc})", "description": "\u5173\u95ed\u540c\u4e00\u56de\u8c03\u51fd\u6570\u7684\u6240\u6709\u5b9a\u65f6\u5668\r\n\u8fd4\u56de\u503c\uff1a\r\n\u65e0\r\n\u4f8b\u5b50\uff1a\r\ntimerStopAll(cbFnc)\r\n", "prefix": "sys.timerStopAll(fnc)"}, "sys.unsubscribe(id, callback)": {"body": "sys.unsubscribe(${1:id},${2: callback})", "description": "\u53d6\u6d88\u8ba2\u9605\u6d88\u606f\r\n\u8fd4\u56de\u503c\uff1a\r\n\u65e0\r\n\u4f8b\u5b50\uff1a\r\nunsubscribe(\"NET_STATUS_IND\", callback)\r\n", "prefix": "sys.unsubscribe(id, callback)"}, "sys.wait(ms)": {"body": "sys.wait(${1:ms})", "description": "Task\u4efb\u52a1\u5ef6\u65f6\u51fd\u6570\uff0c\u53ea\u80fd\u7528\u4e8e\u4efb\u52a1\u51fd\u6570\u4e2d\r\n\u8fd4\u56de\u503c\uff1a\r\n\u5b9a\u65f6\u7ed3\u675f\u8fd4\u56denil,\u88ab\u5176\u4ed6\u7ebf\u7a0b\u5524\u8d77\u8fd4\u56de\u8c03\u7528\u7ebf\u7a0b\u4f20\u5165\u7684\u53c2\u6570\r\n\u4f8b\u5b50\uff1a\r\nsys.wait(30)\r\n", "prefix": "sys.wait(ms)"}, "sys.waitUntil(id, ms)": {"body": "sys.waitUntil(${1:id},${2: ms})", "description": "Task\u4efb\u52a1\u7684\u6761\u4ef6\u7b49\u5f85\u51fd\u6570\uff08\u5305\u62ec\u4e8b\u4ef6\u6d88\u606f\u548c\u5b9a\u65f6\u5668\u6d88\u606f\u7b49\u6761\u4ef6\uff09\uff0c\u53ea\u80fd\u7528\u4e8e\u4efb\u52a1\u51fd\u6570\u4e2d\u3002\r\n\u8fd4\u56de\u503c\uff1a\r\nresult \u63a5\u6536\u5230\u6d88\u606f\u8fd4\u56detrue\uff0c\u8d85\u65f6\u8fd4\u56defalse\r\n\u4f8b\u5b50\uff1a\r\nresult, data = sys.waitUntil(\"SIM_IND\", 120000)\r\n", "prefix": "sys.waitUntil(id, ms)"}, "sys.waitUntilExt(id, ms)": {"body": "sys.waitUntilExt(${1:id},${2: ms})", "description": "Task\u4efb\u52a1\u7684\u6761\u4ef6\u7b49\u5f85\u51fd\u6570\u6269\u5c55\uff08\u5305\u62ec\u4e8b\u4ef6\u6d88\u606f\u548c\u5b9a\u65f6\u5668\u6d88\u606f\u7b49\u6761\u4ef6\uff09\uff0c\u53ea\u80fd\u7528\u4e8e\u4efb\u52a1\u51fd\u6570\u4e2d\u3002\r\n\u8fd4\u56de\u503c\uff1a\r\nmessage \u63a5\u6536\u5230\u6d88\u606f\u8fd4\u56demessage\uff0c\u8d85\u65f6\u8fd4\u56defalse\r\n\u4f8b\u5b50\uff1a\r\nresult, data = sys.waitUntilExt(\"SIM_IND\", 120000)\r\n", "prefix": "sys.waitUntilExt(id, ms)"}, "table.concat(t,s)": {"body": "table.concat(${1:t},${2: s})", "description": "\u8868\u8fde\u63a5\r\n\u8fd4\u56de\u503c\uff1a\r\n \u5b57\u7b26\u4e32\r\n\u4f8b\u5b50\uff1a\r\nfruits = {\"banana\",\"orange\",\"apple\"}\r\n-- \u8fd4\u56de table \u8fde\u63a5\u540e\u7684\u5b57\u7b26\u4e32\r\nprint(\"\u8fde\u63a5\u540e\u7684\u5b57\u7b26\u4e32 \",table.concat(fruits))\r\n--\u8fde\u63a5\u540e\u7684\u5b57\u7b26\u4e32 bananaorangeapple\r\n\r\n-- \u6307\u5b9a\u8fde\u63a5\u5b57\u7b26\r\nprint(\"\u8fde\u63a5\u540e\u7684\u5b57\u7b26\u4e32 \",table.concat(fruits,\", \"))\r\n--\u8fde\u63a5\u540e\u7684\u5b57\u7b26\u4e32 banana, orange, apple\r\n\r\n-- \u6307\u5b9a\u7d22\u5f15\u6765\u8fde\u63a5 table\r\nprint(\"\u8fde\u63a5\u540e\u7684\u5b57\u7b26\u4e32 \",table.concat(fruits,\", \", 2,3))\r\n--\u8fde\u63a5\u540e\u7684\u5b57\u7b26\u4e32 orange, apple\r\n", "prefix": "table.concat()"}, "table.gsort(t, f)": {"body": "table.gsort(${1:t},${2: f})", "description": "\u8fd4\u56de\u4e00\u4e2a\u8fed\u4ee3\u5668\u51fd\u6570,\u6bcf\u6b21\u8c03\u7528\u51fd\u6570\u90fd\u4f1a\u8fd4\u56dehash\u8868\u7684\u6392\u5e8f\u540e\u7684\u952e\u503c\u5bf9\r\n\u8fd4\u56de\u503c\uff1a\r\nfunction.\r\n\u4f8b\u5b50\uff1a\r\ntest = {a=1,f=9,d=2,c=8,b=5}\r\nfor name,line in pairsByKeys(test) do print(name,line) end\r\n", "prefix": "table.gsort(t, f)"}, "table.insert(t,d)": {"body": "table.insert(${1:t},${2: d})", "description": "\u6dfb\u52a0table\u53c2\u6570\r\n\u8fd4\u56de\u503c\uff1a\r\n table\r\n\u4f8b\u5b50\uff1a\r\nfruits = {\"banana\",\"orange\",\"apple\"}\r\n\r\n-- \u5728\u672b\u5c3e\u63d2\u5165\r\ntable.insert(fruits,\"mango\")\r\nprint(\"\u7d22\u5f15\u4e3a 4 \u7684\u5143\u7d20\u4e3a \",fruits[4])\r\n--\u7d22\u5f15\u4e3a 4 \u7684\u5143\u7d20\u4e3a mango\r\n\r\n-- \u5728\u7d22\u5f15\u4e3a 2 \u7684\u952e\u5904\u63d2\u5165\r\ntable.insert(fruits,2,\"grapes\")\r\nprint(\"\u7d22\u5f15\u4e3a 2 \u7684\u5143\u7d20\u4e3a \",fruits[2])\r\n--\u7d22\u5f15\u4e3a 2 \u7684\u5143\u7d20\u4e3a grapes\r\n\r\nprint(\"\u6700\u540e\u4e00\u4e2a\u5143\u7d20\u4e3a \",fruits[5])\r\n--\u6700\u540e\u4e00\u4e2a\u5143\u7d20\u4e3a mango\r\n", "prefix": "table.insert()"}, "table.remove(t,i)": {"body": "table.remove(${1:t},${2: i})", "description": "\u79fb\u9664table\u53c2\u6570\r\n\u8fd4\u56de\u503c\uff1a\r\n table", "prefix": "table.remove()"}, "string.byte()": {"body": "string.byte()", "description": "\u63a5\u6536\u63a7\u5236\u5b57\u7b26\uff0c\u8fd4\u56deASCII\u7801\r\n\u8fd4\u56de\u503c\uff1a\r\n ASCII\u7801\r\n\u4f8b\u5b50\uff1a\r\nstring.byte(\"ABCD\") --65\r\nstring.byte(\"ABCD\",4) --68\r\n", "prefix": "string.byte()"}, "string.char()": {"body": "string.char()", "description": "\u63a5\u6536ASCII\u7801\uff0c\u8fd4\u56de\u5bf9\u5e94\u7684\u63a7\u5236\u5b57\u7b26\r\n\u8fd4\u56de\u503c\uff1a\r\n \u5b57\u7b26\r\n\u4f8b\u5b50\uff1a\r\nstring.char(97,98,99,100) --abcd\r\n", "prefix": "string.char()"}, "string.find()": {"body": "string.find()", "description": "\u67e5\u627e\u7b2c\u4e00\u4e2a\u5b57\u7b26\u4e32\u00a0s\u00a0\u4e2d\u5339\u914d\u5230\u7684\u00a0pattern\r\n\u8fd4\u56de\u503c\uff1a\r\n \u8fd4\u56de\u5339\u914d\u5b57\u7b26\u5177\u4f53\u4f4d\u7f6e\u3002\u4e0d\u5b58\u5728\u5219\u8fd4\u56de nil\r\n\u4f8b\u5b50\uff1a\r\nstring.find(\"Hello Lua user\", \"Lua\", 1) --7 9\r\n", "prefix": "string.find()"}, "string.format()": {"body": "string.format()", "description": "\u683c\u5f0f\u5316\u5b57\u7b26\u4e32\r\n\u8fd4\u56de\u503c\uff1a\r\n \u5b57\u7b26\u4e32\r\n\u4f8b\u5b50\uff1a\r\nstring.format(\"the value is:%d\",4) --the value is:4\r\n", "prefix": "string.format()"}, "string.gsub()": {"body": "string.gsub()", "description": "\u5b57\u7b26\u4e32\u66ff\u6362", "prefix": "string.gsub()"}, "string.len()": {"body": "string.len()", "description": "\u8ba1\u7b97\u5b57\u7b26\u4e32\u957f\u5ea6\r\n\u8fd4\u56de\u503c\uff1a\r\n \u5b57\u7b26\u4e32\u957f\u5ea6\r\n\u4f8b\u5b50\uff1a\r\nstring.len(\"abc\") --3\r\n", "prefix": "string.len()"}, "string.lower()": {"body": "string.lower()", "description": "\u5b57\u7b26\u4e32\u5168\u90e8\u8f6c\u4e3a\u5c0f\u5199\u5b57\u6bcd\r\n\u8fd4\u56de\u503c\uff1a\r\n \u5c0f\u5199\u5b57\u6bcd\u5b57\u7b26\u4e32", "prefix": "string.lower()"}, "string.rep()": {"body": "string.rep()", "description": "\u5b57\u7b26\u4e32\u62f7\u8d1d\r\n\u8fd4\u56de\u503c\uff1a\r\n \u5b57\u7b26\u4e32\r\n\u4f8b\u5b50\uff1a\r\nstring.rep(\"abcd\",2) --abcdabcd\r\n", "prefix": "string.rep()"}, "string.reverse()": {"body": "string.reverse()", "description": "\u5b57\u7b26\u4e32\u53cd\u8f6c\r\n\u8fd4\u56de\u503c\uff1a\r\n \u53cd\u8f6c\u540e\u7684\u5b57\u7b26\u4e32\r\n\u4f8b\u5b50\uff1a\r\nstring.reverse(\"Luat\") --tauL\r\n", "prefix": "string.reverse()"}, "string.split(str, delimiter)": {"body": "string.split(${1:str},${2: delimiter})", "description": "\u6309\u7167\u6307\u5b9a\u5206\u9694\u7b26\u5206\u5272\u5b57\u7b26\u4e32\r\n\u8fd4\u56de\u503c\uff1a\r\n\u5206\u5272\u540e\u7684\u5b57\u7b26\u4e32\u5217\u8868\r\n\u4f8b\u5b50\uff1a\r\n\"123,456,789\":split(',') -> {'123','456','789'}\r\n", "prefix": "string.split(str, delimiter)"}, "string.upper()": {"body": "string.upper()", "description": "\u5b57\u7b26\u4e32\u5168\u90e8\u8f6c\u4e3a\u5927\u5199\u5b57\u6bcd\r\n\u8fd4\u56de\u503c\uff1a\r\n \u5927\u5199\u5b57\u6bcd\u5b57\u7b26\u4e32", "prefix": "string.upper()"}, "adc.open": {"body": "adc.open(${1:id})", "description": "adc.open(id) - \u6253\u5f00adc\u901a\u9053\n\u4f20\u5165\u503c\uff1a\nint \u901a\u9053id,\u4e0e\u5177\u4f53\u8bbe\u5907\u6709\u5173,\u901a\u5e38\u4ece0\u5f00\u59cb\n\u8fd4\u56de\u503c\uff1a\nboolean \u6253\u5f00\u7ed3\u679c\n\u4f8b\u5b50\uff1a\n-- \u6253\u5f00adc\u901a\u90534,\u5e76\u8bfb\u53d6\nif adc.open(4) then\n log.info(\"adc\", adc.read(4)) -- \u8fd4\u56de\u503c\u67092\u4e2a, \u539f\u59cb\u503c\u548c\u8ba1\u7b97\u503c,\u901a\u5e38\u53ea\u9700\u8981\u540e\u8005\n log.info(\"adc\", adc.get(4)) -- \u8fd4\u56de\u503c\u67091\u4e2a, \u4ec5\u8ba1\u7b97\u503c\nend\nadc.close(4) -- \u82e5\u9700\u8981\u6301\u7eed\u8bfb\u53d6, \u5219\u4e0d\u9700\u8981close, \u529f\u8017\u4f1a\u9ad8\u4e00\u70b9.\n", "prefix": "adc.open"}, "adc.setRange": {"body": "adc.setRange(${1:range})", "description": "adc.setRange(range) - \u8bbe\u7f6eADC\u7684\u6d4b\u91cf\u8303\u56f4\uff0c\u6ce8\u610f\u8fd9\u4e2a\u548c\u5177\u4f53\u82af\u7247\u6709\u5173\uff0c\u76ee\u524d\u53ea\u652f\u6301air105/Air780E\u7cfb\u5217\n\u4f20\u5165\u503c\uff1a\nint range\u53c2\u6570,\u4e0e\u5177\u4f53\u8bbe\u5907\u6709\u5173,\u6bd4\u5982air105\u586badc.ADC_RANGE_1_8\u548cadc.ADC_RANGE_3_6\nreturn nil\n\u4f8b\u5b50\uff1a\n-- \u5173\u95edair105\u5185\u90e8\u5206\u538b\nadc.setRange(adc.ADC_RANGE_1_8)\n-- \u6253\u5f00air105\u5185\u90e8\u5206\u538b\nadc.setRange(adc.ADC_RANGE_3_6)\n\n\n-- EC618\u7cfb\u5217(Air780E\u7b49)\u652f\u63012\u79cd\nadc.setRange(adc.ADC_RANGE_1_2) -- \u5173\u95ed\u5206\u538b\nadc.setRange(adc.ADC_RANGE_3_8) -- \u542f\u7528\u5206\u538b\n", "prefix": "adc.setRange"}, "adc.read": {"body": "adc.read(${1:id})", "description": "adc.read(id) - \u8bfb\u53d6adc\u901a\u9053\n\u4f20\u5165\u503c\uff1a\nint \u901a\u9053id,\u4e0e\u5177\u4f53\u8bbe\u5907\u6709\u5173,\u901a\u5e38\u4ece0\u5f00\u59cb\n\u8fd4\u56de\u503c\uff1a\nint \u539f\u59cb\u503c,\u4e00\u822c\u6ca1\u7528,\u53ef\u4ee5\u76f4\u63a5\u629b\u5f03\nint \u4ece\u539f\u59cb\u503c\u6362\u7b97\u5f97\u51fa\u7684\u5b9e\u9645\u503c\uff0c\u901a\u5e38\u5355\u4f4d\u662fmV\n\u4f8b\u5b50\uff1a\n-- \u6253\u5f00adc\u901a\u90532,\u5e76\u8bfb\u53d6\nif adc.open(2) then\n -- \u8fd9\u91cc\u4f7f\u7528\u7684\u662fadc.read\u4f1a\u8fd4\u56de2\u4e2a\u503c, \u63a8\u8350\u8d70adc.get\u51fd\u6570,\u76f4\u63a5\u53d6\u5b9e\u9645\u503c\n log.info(\"adc\", adc.read(2))\nend\nadc.close(2)\n", "prefix": "adc.read"}, "adc.get": {"body": "adc.get(${1:id})", "description": "adc.get(id) - \u83b7\u53d6adc\u8ba1\u7b97\u503c\n\u4f20\u5165\u503c\uff1a\nint \u901a\u9053id,\u4e0e\u5177\u4f53\u8bbe\u5907\u6709\u5173,\u901a\u5e38\u4ece0\u5f00\u59cb\n\u8fd4\u56de\u503c\uff1a\nint \u5355\u4f4d\u901a\u5e38\u662fmV, \u90e8\u5206\u901a\u9053\u4f1a\u8fd4\u56de\u6e29\u5ea6\u503c,\u5355\u4f4d\u5343\u5206\u4e4b\u4e00\u6444\u6c0f\u5ea6. \u82e5\u8bfb\u53d6\u5931\u8d25,\u4f1a\u8fd4\u56de-1\n\u4f8b\u5b50\uff1a\n-- \u672cAPI \u5728 2022.10.01\u540e\u7f16\u8bd1\u7684\u56fa\u4ef6\u53ef\u7528\n-- \u6253\u5f00adc\u901a\u90532,\u5e76\u8bfb\u53d6\nif adc.open(2) then\n log.info(\"adc\", adc.get(2))\nend\nadc.close(2) -- \u6309\u9700\u5173\u95ed\n", "prefix": "adc.get"}, "adc.close": {"body": "adc.close(${1:id})", "description": "adc.close(id) - \u5173\u95edadc\u901a\u9053\n\u4f20\u5165\u503c\uff1a\nint \u901a\u9053id,\u4e0e\u5177\u4f53\u8bbe\u5907\u6709\u5173,\u901a\u5e38\u4ece0\u5f00\u59cb\n\u4f8b\u5b50\uff1a\n-- \u6253\u5f00adc\u901a\u90532,\u5e76\u8bfb\u53d6\nif adc.open(2) then\n log.info(\"adc\", adc.read(2))\nend\nadc.close(2)\n", "prefix": "adc.close"}, "audio.start": {"body": "audio.start(${1:id},${2:audio_format},${3:num_channels},${4:sample_rate},${5:bits_per_sample},${6:is_signed})", "description": "audio.start(id, audio_format, num_channels, sample_rate, bits_per_sample, is_signed) - \u542f\u52a8\u4e00\u4e2a\u591a\u5a92\u4f53\u901a\u9053\u51c6\u5907\u64ad\u653e\u97f3\u9891\n\u4f20\u5165\u503c\uff1a\nint \u591a\u5a92\u4f53\u64ad\u653e\u901a\u9053\u53f7\uff0c0\u6216\u80051\nint \u97f3\u9891\u683c\u5f0f\nint \u58f0\u97f3\u901a\u9053\u6570\nint \u91c7\u6837\u9891\u7387\nint \u91c7\u6837\u4f4d\u6570\nboolean \u662f\u5426\u6709\u7b26\u53f7\uff0c\u9ed8\u8ba4true\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529ftrue, \u5931\u8d25false\n\u4f8b\u5b50\uff1a\naudio.start(0, audio.PCM, 1, 16000, 16)\n", "prefix": "audio.start"}, "audio.write": {"body": "audio.write(${1:id},${2:data})", "description": "audio.write(id, data) - \u5f80\u4e00\u4e2a\u591a\u5a92\u4f53\u901a\u9053\u5199\u5165\u97f3\u9891\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nstring or zbuff \u97f3\u9891\u6570\u636e\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\naudio.write(0, \"xxxxxx\")\n", "prefix": "audio.write"}, "audio.stop": {"body": "audio.stop(${1:id})", "description": "audio.stop(id) - \u505c\u6b62\u6307\u5b9a\u7684\u591a\u5a92\u4f53\u901a\u9053\n\u4f20\u5165\u503c\uff1a\nint audio id,\u4f8b\u59820\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\naudio.stop(0)\n", "prefix": "audio.stop"}, "audio.pause": {"body": "audio.pause(${1:id},${2:pause})", "description": "audio.pause(id, pause) - \u6682\u505c/\u6062\u590d\u6307\u5b9a\u7684\u591a\u5a92\u4f53\u901a\u9053\n\u4f20\u5165\u503c\uff1a\nint audio id,\u4f8b\u59820\nboolean onoff true \u6682\u505c\uff0cfalse \u6062\u590d\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\naudio.pause(0, true) --\u6682\u505c\u901a\u90530\naudio.pause(0, false) --\u6062\u590d\u901a\u90530\n", "prefix": "audio.pause"}, "audio.on": {"body": "audio.on(${1:id},${2:event},${3:func})", "description": "audio.on(id, event, func) - \u6ce8\u518caudio\u64ad\u653e\u4e8b\u4ef6\u56de\u8c03\n\u4f20\u5165\u503c\uff1a\nint audio id, audio 0\u51990, audio 1\u51991\nfunction \u56de\u8c03\u65b9\u6cd5\uff0c\u56de\u8c03\u65f6\u4f20\u5165\u53c2\u6570\u4e3a1\u3001int \u901a\u9053ID 2\u3001int \u6d88\u606f\u503c\uff0c\u53ea\u6709audio.MORE_DATA\u548caudio.DONE\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\naudio.on(0, function(audio_id, msg)\n log.info(\"msg\", audio_id, msg)\nend)\n", "prefix": "audio.on"}, "audio.play": {"body": "audio.play(${1:id},${2:path},${3:errStop})", "description": "audio.play(id, path, errStop) - \u64ad\u653e\u6216\u8005\u505c\u6b62\u64ad\u653e\u4e00\u4e2a\u6587\u4ef6\uff0c\u64ad\u653e\u5b8c\u6210\u540e\uff0c\u4f1a\u56de\u8c03\u4e00\u4e2aaudio.DONE\u6d88\u606f\uff0c\u53ef\u4ee5\u7528pause\u6765\u6682\u505c\u6216\u8005\u6062\u590d\uff0c\u5176\u4ed6API\u4e0d\u53ef\u7528\u3002\u8003\u8651\u5230\u8bfbSD\u5361\u901f\u5ea6\u6bd4\u8f83\u6162\u800c\u62d6\u7d2fluavm\u8fdb\u7a0b\u7684\u901f\u5ea6\uff0c\u6240\u4ee5\u5c3d\u91cf\u4f7f\u7528\u672cAPI\n\u4f20\u5165\u503c\uff1a\nint \u97f3\u9891\u901a\u9053\nstring/table \u6587\u4ef6\u540d\uff0c\u5982\u679c\u4e3a\u7a7a\uff0c\u5219\u8868\u793a\u505c\u6b62\u64ad\u653e\uff0c\u5982\u679c\u662ftable\uff0c\u5219\u8868\u793a\u8fde\u7eed\u64ad\u653e\u591a\u4e2a\u6587\u4ef6\uff0c\u4e3b\u8981\u5e94\u7528\u4e8e\u4e91\u5587\u53ed\uff0c\u76ee\u524d\u53ea\u6709EC618\u652f\u6301\uff0c\u5e76\u4e14\u4f1a\u7528\u5230errStop\u53c2\u6570\nboolean \u662f\u5426\u5728\u6587\u4ef6\u89e3\u7801\u5931\u8d25\u540e\u505c\u6b62\u89e3\u7801\uff0c\u53ea\u6709\u5728\u8fde\u7eed\u64ad\u653e\u591a\u4e2a\u6587\u4ef6\u65f6\u624d\u6709\u7528\uff0c\u9ed8\u8ba4true\uff0c\u9047\u5230\u89e3\u7801\u9519\u8bef\u81ea\u52a8\u505c\u6b62\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\naudio.play(0, \"xxxxxx\")\t\t--\u5f00\u59cb\u64ad\u653e\u67d0\u4e2a\u6587\u4ef6\naudio.play(0)\t\t\t\t--\u505c\u6b62\u64ad\u653e\u67d0\u4e2a\u6587\u4ef6\n", "prefix": "audio.play"}, "audio.tts": {"body": "audio.tts(${1:id},${2:data})", "description": "audio.tts(id, data) - TTS\u64ad\u653e\u6216\u8005\u505c\u6b62\n\u4f20\u5165\u503c\uff1a\nint \u97f3\u9891\u901a\u9053\nstring/zbuff \u9700\u8981\u64ad\u653e\u7684\u5185\u5bb9\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n", "prefix": "audio.tts"}, "audio.playStop": {"body": "audio.playStop(${1:id})", "description": "audio.playStop(id) - \u505c\u6b62\u64ad\u653e\u6587\u4ef6\uff0c\u548caudio.play(id)\u662f\u4e00\u6837\u7684\u4f5c\u7528\n\u4f20\u5165\u503c\uff1a\nint audio id,\u4f8b\u59820\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\naudio.playStop(0)\n", "prefix": "audio.playStop"}, "audio.isEnd": {"body": "audio.isEnd(${1:id})", "description": "audio.isEnd(id) - \u68c0\u67e5\u5f53\u524d\u6587\u4ef6\u662f\u5426\u5df2\u7ecf\u64ad\u653e\u7ed3\u675f\n\u4f20\u5165\u503c\uff1a\nint \u97f3\u9891\u901a\u9053\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\naudio.isEnd(0)\n\n", "prefix": "audio.isEnd"}, "audio.getError": {"body": "audio.getError(${1:id})", "description": "audio.getError(id) - \u83b7\u53d6\u6700\u8fd1\u4e00\u6b21\u64ad\u653e\u7ed3\u679c\uff0c\u4e0d\u662f\u6240\u6709\u5e73\u53f0\u90fd\u652f\u6301\u7684\uff0c\u76ee\u524d\u53ea\u6709EC618\u652f\u6301\n\u4f20\u5165\u503c\uff1a\nint \u97f3\u9891\u901a\u9053\n\u8fd4\u56de\u503c\uff1a\nboolean \u662f\u5426\u5168\u90e8\u64ad\u653e\u6210\u529f\uff0ctrue\u6210\u529f\uff0cfalse\u6709\u6587\u4ef6\u64ad\u653e\u5931\u8d25\nboolean \u5982\u679c\u64ad\u653e\u5931\u8d25\uff0c\u662f\u5426\u662f\u7528\u6237\u505c\u6b62\uff0ctrue\u662f\uff0cfalse\u4e0d\u662f\nint \u7b2c\u51e0\u4e2a\u6587\u4ef6\u5931\u8d25\u4e86\uff0c\u4ece1\u5f00\u59cb\n\u4f8b\u5b50\uff1a\nlocal result, user_stop, file_no = audio.getError(0)\n", "prefix": "audio.getError"}, "audio.config": {"body": "audio.config(${1:id},${2:paPin},${3:onLevel},${4:dacDelay},${5:paDelay},${6:dacPin},${7:dacLevel},${8:dacTimeDelay})", "description": "audio.config(id, paPin, onLevel, dacDelay, paDelay, dacPin, dacLevel, dacTimeDelay) - \u914d\u7f6e\u4e00\u4e2a\u97f3\u9891\u901a\u9053\u7684\u7279\u6027\uff0c\u6bd4\u5982\u5b9e\u73b0\u81ea\u52a8\u63a7\u5236PA\u5f00\u5173\u3002\u6ce8\u610f\u8fd9\u4e2a\u4e0d\u662f\u5fc5\u987b\u7684\uff0c\u4e00\u822c\u5728\u8c03\u7528play\u7684\u65f6\u5019\u624d\u9700\u8981\u81ea\u52a8\u63a7\u5236\uff0c\u5176\u4ed6\u60c5\u51b5\u6bd4\u5982\u4f60\u624b\u52a8\u63a7\u5236\u64ad\u653e\u65f6\uff0c\u5c31\u53ef\u4ee5\u81ea\u5df1\u63a7\u5236PA\u5f00\u5173\n\u4f20\u5165\u503c\uff1a\nint \u97f3\u9891\u901a\u9053\nint PA\u63a7\u5236IO\nint PA\u6253\u5f00\u65f6\u7684\u7535\u5e73\nint \u5728DAC\u542f\u52a8\u524d\u63d2\u5165\u7684\u5197\u4f59\u65f6\u95f4\uff0c\u5355\u4f4d100ms\uff0c\u4e00\u822c\u7528\u4e8e\u5916\u90e8DAC\nint \u5728DAC\u542f\u52a8\u540e\uff0c\u5ef6\u8fdf\u591a\u957f\u65f6\u95f4\u6253\u5f00PA\uff0c\u5355\u4f4d1ms\nint \u5916\u90e8dac\u7535\u6e90\u63a7\u5236IO\uff0c\u5982\u679c\u4e0d\u586b\uff0c\u5219\u8868\u793a\u4f7f\u7528\u5e73\u53f0\u9ed8\u8ba4IO\uff0c\u6bd4\u5982Air780E\u4f7f\u7528DACEN\u811a\uff0cair105\u5219\u4e0d\u542f\u7528\nint \u5916\u90e8dac\u6253\u5f00\u65f6\uff0c\u7535\u6e90\u63a7\u5236IO\u7684\u7535\u5e73\uff0c\u9ed8\u8ba4\u62c9\u9ad8\nint \u97f3\u9891\u64ad\u653e\u5b8c\u6bd5\u65f6\uff0cPA\u4e0eDAC\u5173\u95ed\u7684\u65f6\u95f4\u95f4\u9694\uff0c\u5355\u4f4d1ms\uff0c\u9ed8\u8ba40ms\n\u4f8b\u5b50\uff1a\naudio.config(0, pin.PC0, 1)\t--PA\u63a7\u5236\u811a\u662fPC0\uff0c\u9ad8\u7535\u5e73\u6253\u5f00\uff0cair105\u7528\u8fd9\u4e2a\u914d\u7f6e\u5c31\u53ef\u4ee5\u7528\u4e86\naudio.config(0, 25, 1, 6, 200)\t--PA\u63a7\u5236\u811a\u662fGPIO25\uff0c\u9ad8\u7535\u5e73\u6253\u5f00\uff0cAir780E\u4e91\u5587\u53ed\u677f\u7528\u8fd9\u4e2a\u914d\u7f6e\u5c31\u53ef\u4ee5\u7528\u4e86\n", "prefix": "audio.config"}, "audio.vol": {"body": "audio.vol(${1:id},${2:value})", "description": "audio.vol(id, value) - \u914d\u7f6e\u4e00\u4e2a\u97f3\u9891\u901a\u9053\u7684\u97f3\u91cf\u8c03\u8282\uff0c\u76f4\u63a5\u5c06\u539f\u59cb\u6570\u636e\u653e\u5927\u6216\u8005\u7f29\u5c0f\uff0c\u4e0d\u662f\u6240\u6709\u5e73\u53f0\u90fd\u652f\u6301\uff0c\u5efa\u8bae\u5c3d\u91cf\u7528\u786c\u4ef6\u65b9\u6cd5\u53bb\u7f29\u653e\n\u4f20\u5165\u503c\uff1a\nint \u97f3\u9891\u901a\u9053\nint \u97f3\u91cf\uff0c\u767e\u5206\u6bd4\uff0c1%~1000%\uff0c\u9ed8\u8ba4100%\uff0c\u5c31\u662f\u4e0d\u8c03\u8282\n\u8fd4\u56de\u503c\uff1a\nint \u5f53\u524d\u97f3\u91cf\n\u4f8b\u5b50\uff1a\nlocal result = audio.vol(0, 90)\t--\u901a\u90530\u7684\u97f3\u91cf\u8c03\u8282\u523090%\uff0cresult\u5b58\u653e\u4e86\u8c03\u8282\u540e\u7684\u97f3\u91cf\u6c34\u5e73\uff0c\u6709\u53ef\u80fd\u4ecd\u7136\u662f100\n", "prefix": "audio.vol"}, "audio.setBus": {"body": "audio.setBus(${1:id},${2:bus_type})", "description": "audio.setBus(id, bus_type) - \u914d\u7f6e\u4e00\u4e2a\u97f3\u9891\u901a\u9053\u7684\u786c\u4ef6\u8f93\u51fa\u603b\u7ebf\uff0c\u53ea\u6709\u5bf9\u5e94soc\u8f6f\u786c\u4ef6\u5e73\u53f0\u652f\u6301\u624d\u8bbe\u7f6e\u5bf9\u5e94\u7c7b\u578b\n\u4f20\u5165\u503c\uff1a\nint \u97f3\u9891\u901a\u9053,\u4f8b\u59820\nint \u603b\u7ebf\u7c7b\u578b, \u4f8b\u5982 audio.BUS_SOFT_DAC\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\naudio.setBus(0, audio.BUS_SOFT_DAC)\t--\u901a\u90530\u7684\u786c\u4ef6\u8f93\u51fa\u901a\u9053\u8bbe\u7f6e\u4e3a\u8f6f\u4ef6DAC\naudio.setBus(0, audio.BUS_I2S)\t--\u901a\u90530\u7684\u786c\u4ef6\u8f93\u51fa\u901a\u9053\u8bbe\u7f6e\u4e3aI2S\n", "prefix": "audio.setBus"}, "audio.debug": {"body": "audio.debug(${1:on_off})", "description": "audio.debug(on_off) - \u914d\u7f6e\u8c03\u8bd5\u4fe1\u606f\u8f93\u51fa\n\u4f20\u5165\u503c\uff1a\nboolean true\u5f00 false\u5173\n", "prefix": "audio.debug"}, "bit64.to32": {"body": "bit64.to32(${1:data64bit})", "description": "bit64.to32(data64bit) - 64bit\u6570\u636e\u8f6c\u621032bit\u8f93\u51fa\n\u4f20\u5165\u503c\uff1a\nstring 9\u5b57\u8282\u6570\u636e\n\u8fd4\u56de\u503c\uff1a\nany \u6839\u636e64bit\u6570\u636e\u8f93\u51faint\u6216\u8005number\n", "prefix": "bit64.to32"}, "bit64.to64": {"body": "bit64.to64(${1:data32bit})", "description": "bit64.to64(data32bit) - 32bit\u6570\u636e\u8f6c\u621064bit\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nint/number 32bit\u6570\u636e\n\u8fd4\u56de\u503c\uff1a\nstring 9\u5b57\u8282\u6570\u636e\n", "prefix": "bit64.to64"}, "bit64.show": {"body": "bit64.show(${1:a},${2:type},${3:flag})", "description": "bit64.show(a,type,flag) - 64bit\u6570\u636e\u683c\u5f0f\u5316\u6253\u5370\u6210\u5b57\u7b26\u4e32\uff0c\u7528\u4e8e\u663e\u793a\u503c\n\u4f20\u5165\u503c\uff1a\nstring \u9700\u8981\u6253\u5370\u768464bit\u6570\u636e\nint \u8fdb\u5236\uff0c10=10\u8fdb\u5236\uff0c16=16\u8fdb\u5236\uff0c\u9ed8\u8ba410\uff0c\u53ea\u652f\u630110\u6216\u800516\nboolean \u6574\u5f62\u662f\u5426\u6309\u7167\u65e0\u7b26\u53f7\u65b9\u5f0f\u6253\u5370\uff0ctrue\u662f\uff0cfalse\u4e0d\u662f\uff0c\u9ed8\u8ba4false\uff0c\u6d6e\u70b9\u5ffd\u7565\n\u8fd4\u56de\u503c\uff1a\nstring \u53ef\u4ee5\u6253\u5370\u7684\u503c\n", "prefix": "bit64.show"}, "bit64.plus": {"body": "bit64.plus(${1:a},${2:b},${3:flag1},${4:flag2})", "description": "bit64.plus(a,b,flag1,flag2) - 64bit\u6570\u636e\u52a0,a+b,a\u548cb\u4e2d\u6709\u4e00\u4e2a\u4e3a\u6d6e\u70b9\uff0c\u5219\u6309\u7167\u6d6e\u70b9\u8fd0\u7b97\n\u4f20\u5165\u503c\uff1a\nstring a\nstring/int/number b\nboolean \u6574\u5f62\u8fd0\u7b97\u65f6\u662f\u5426\u6309\u7167\u65e0\u7b26\u53f7\u65b9\u5f0f\uff0ctrue\u662f\uff0cfalse\u4e0d\u662f\uff0c\u9ed8\u8ba4false\uff0c\u6d6e\u70b9\u8fd0\u7b97\u5ffd\u7565\nboolean \u6d6e\u70b9\u8fd0\u7b97\u7ed3\u679c\u662f\u5426\u8981\u5f3a\u5236\u8f6c\u6210\u6574\u6570\uff0ctrue\u662f\uff0cfalse\u4e0d\u662f\uff0c\u9ed8\u8ba4false\uff0c\u6574\u5f62\u8fd0\u7b97\u5ffd\u7565\n\u8fd4\u56de\u503c\uff1a\nstring 9\u5b57\u8282\u6570\u636e\n", "prefix": "bit64.plus"}, "bit64.minus": {"body": "bit64.minus(${1:a},${2:b},${3:flag1},${4:flag2})", "description": "bit64.minus(a,b,flag1,flag2) - 64bit\u6570\u636e\u51cf,a-b,a\u548cb\u4e2d\u6709\u4e00\u4e2a\u4e3a\u6d6e\u70b9\uff0c\u5219\u6309\u7167\u6d6e\u70b9\u8fd0\u7b97\n\u4f20\u5165\u503c\uff1a\nstring a\nstring/int/number b\nboolean \u6574\u5f62\u8fd0\u7b97\u65f6\u662f\u5426\u6309\u7167\u65e0\u7b26\u53f7\u65b9\u5f0f\uff0ctrue\u662f\uff0cfalse\u4e0d\u662f\uff0c\u9ed8\u8ba4false\uff0c\u6d6e\u70b9\u8fd0\u7b97\u5ffd\u7565\nboolean \u6d6e\u70b9\u8fd0\u7b97\u7ed3\u679c\u662f\u5426\u8981\u5f3a\u5236\u8f6c\u6210\u6574\u6570\uff0ctrue\u662f\uff0cfalse\u4e0d\u662f\uff0c\u9ed8\u8ba4false\uff0c\u6574\u5f62\u8fd0\u7b97\u5ffd\u7565\n\u8fd4\u56de\u503c\uff1a\nstring 9\u5b57\u8282\u6570\u636e\n", "prefix": "bit64.minus"}, "bit64.multi": {"body": "bit64.multi(${1:a},${2:b},${3:flag1},${4:flag2})", "description": "bit64.multi(a,b,flag1,flag2) - 64bit\u6570\u636e\u4e58,a*b,a\u548cb\u4e2d\u6709\u4e00\u4e2a\u4e3a\u6d6e\u70b9\uff0c\u5219\u6309\u7167\u6d6e\u70b9\u8fd0\u7b97\n\u4f20\u5165\u503c\uff1a\nstring a\nstring/int/number b\nboolean \u6574\u5f62\u8fd0\u7b97\u65f6\u662f\u5426\u6309\u7167\u65e0\u7b26\u53f7\u65b9\u5f0f\uff0ctrue\u662f\uff0cfalse\u4e0d\u662f\uff0c\u9ed8\u8ba4false\uff0c\u6d6e\u70b9\u8fd0\u7b97\u5ffd\u7565\nboolean \u6d6e\u70b9\u8fd0\u7b97\u7ed3\u679c\u662f\u5426\u8981\u5f3a\u5236\u8f6c\u6210\u6574\u6570\uff0ctrue\u662f\uff0cfalse\u4e0d\u662f\uff0c\u9ed8\u8ba4false\uff0c\u6574\u5f62\u8fd0\u7b97\u5ffd\u7565\n\u8fd4\u56de\u503c\uff1a\nstring 9\u5b57\u8282\u6570\u636e\n", "prefix": "bit64.multi"}, "bit64.pide": {"body": "bit64.pide(${1:a},${2:b},${3:flag1},${4:flag2})", "description": "bit64.pide(a,b,flag1,flag2) - 64bit\u6570\u636e\u9664,a/b,a\u548cb\u4e2d\u6709\u4e00\u4e2a\u4e3a\u6d6e\u70b9\uff0c\u5219\u6309\u7167\u6d6e\u70b9\u8fd0\u7b97\n\u4f20\u5165\u503c\uff1a\nstring a\nstring/int/number b\nboolean \u6574\u5f62\u8fd0\u7b97\u65f6\u662f\u5426\u6309\u7167\u65e0\u7b26\u53f7\u65b9\u5f0f\uff0ctrue\u662f\uff0cfalse\u4e0d\u662f\uff0c\u9ed8\u8ba4false\uff0c\u6d6e\u70b9\u8fd0\u7b97\u5ffd\u7565\nboolean \u6d6e\u70b9\u8fd0\u7b97\u7ed3\u679c\u662f\u5426\u8981\u5f3a\u5236\u8f6c\u6210\u6574\u6570\uff0ctrue\u662f\uff0cfalse\u4e0d\u662f\uff0c\u9ed8\u8ba4false\uff0c\u6574\u5f62\u8fd0\u7b97\u5ffd\u7565\n\u8fd4\u56de\u503c\uff1a\nstring 9\u5b57\u8282\u6570\u636e\n", "prefix": "bit64.pide"}, "bit64.shift": {"body": "bit64.shift(${1:a},${2:b},${3:flag})", "description": "bit64.shift(a,b,flag) - 64bit\u6570\u636e\u4f4d\u79fb a>>b \u6216\u8005 a<>\uff0c\u9ed8\u8ba4false\n\u8fd4\u56de\u503c\uff1a\nstring 9\u5b57\u8282\u6570\u636e\n", "prefix": "bit64.shift"}, "bit64.strtoll": {"body": "bit64.strtoll(${1:data},${2:base})", "description": "bit64.strtoll(data, base) - \u5c06\u5b57\u7b26\u4e32\u8f6c\u4e3aLongLong\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nstring \u5f85\u8f6c\u6362\u7684\u6570\u636e,\u5fc5\u987b\u5b58\u5728\nint \u8f6c\u6362\u8fdb\u5236, \u9ed8\u8ba410, \u53ef\u900916\u62168\n\u8fd4\u56de\u503c\uff1a\nstring 9\u5b57\u8282\u6570\u636e\n\u4f8b\u5b50\uff1a\n-- \u672cAPI\u4e8e 2023.10.27 \u6dfb\u52a0\n-- \u63d0\u9192, \u5982\u679c\u8f6c\u6362\u5931\u8d25, \u662f\u8fd4\u56de9\u4e2a\u5b57\u8282\u76840x00\nlocal data = bit64.strtoll(\"864040064024194\", 10)\nlog.info(\"data\", data:toHex())\nlog.info(\"data\", bit64.show(data))\n", "prefix": "bit64.strtoll"}, "camera.init": {"body": "camera.init(${1:InitReg})", "description": "camera.init(InitReg) - \u521d\u59cb\u5316\u6444\u50cf\u5934\n\u4f20\u5165\u503c\uff1a\ntable InitReg camera\u521d\u59cb\u5316\u547d\u4ee4 \u89c1demo/camera/AIR105 \u6ce8\u610f:\u5982\u626b\u7801 camera\u521d\u59cb\u5316\u65f6\u9700\u8bbe\u7f6e\u4e3a\u7070\u5ea6\u8f93\u51fa\n\u8fd4\u56de\u503c\uff1a\nint camera_id\n\u4f8b\u5b50\uff1a\ncamera_id = camera.init(GC032A_InitReg)--\u5c4f\u5e55\u8f93\u51fargb\u56fe\u50cf\n--\u521d\u59cb\u5316\u540e\u9700\u8981start\u624d\u5f00\u59cb\u8f93\u51fa/\u626b\u7801\ncamera.start(camera_id)--\u5f00\u59cb\u6307\u5b9a\u7684camera\n", "prefix": "camera.init"}, "camera.on": {"body": "camera.on(${1:id},${2:event},${3:func})", "description": "camera.on(id, event, func) - \u6ce8\u518c\u6444\u50cf\u5934\u4e8b\u4ef6\u56de\u8c03\n\u4f20\u5165\u503c\uff1a\nint camera id, camera 0\u51990, camera 1\u51991\nstring \u4e8b\u4ef6\u540d\u79f0\nfunction \u56de\u8c03\u65b9\u6cd5\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\ncamera.on(0, \"scanned\", function(id, str)\n--id int camera id\n--str \u591a\u79cd\u7c7b\u578b false \u6444\u50cf\u5934\u6ca1\u6709\u6b63\u5e38\u5de5\u4f5c\uff0ctrue \u62cd\u7167\u6a21\u5f0f\u4e0b\u62cd\u7167\u6210\u529f\u5e76\u4fdd\u5b58\u5b8c\u6210\uff0c int \u539f\u59cb\u6570\u636e\u6a21\u5f0f\u4e0b\u672c\u6b21\u8fd4\u56de\u7684\u6570\u636e\u5927\u5c0f\uff0c string \u626b\u7801\u6a21\u5f0f\u4e0b\u626b\u7801\u6210\u529f\u540e\u7684\u89e3\u7801\u503c\n print(id, str)\nend)\n", "prefix": "camera.on"}, "camera.start": {"body": "camera.start(${1:id})", "description": "camera.start(id) - \u5f00\u59cb\u6307\u5b9a\u7684camera\n\u4f20\u5165\u503c\uff1a\nint camera id,\u4f8b\u59820\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\ncamera.start(0)\n", "prefix": "camera.start"}, "camera.stop": {"body": "camera.stop(${1:id})", "description": "camera.stop(id) - \u505c\u6b62\u6307\u5b9a\u7684camera\n\u4f20\u5165\u503c\uff1a\nint camera id,\u4f8b\u59820\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\ncamera.stop(0)\n", "prefix": "camera.stop"}, "camera.close": {"body": "camera.close(${1:id})", "description": "camera.close(id) - \u5173\u95ed\u6307\u5b9a\u7684camera\uff0c\u91ca\u653e\u76f8\u5e94\u7684IO\u8d44\u6e90\n\u4f20\u5165\u503c\uff1a\nint camera id,\u4f8b\u59820\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\ncamera.close(0)\n", "prefix": "camera.close"}, "camera.capture": {"body": "camera.capture(${1:id},${2:save_path},${3:quality})", "description": "camera.capture(id, save_path, quality) - camera\u62cd\u7167\n\u4f20\u5165\u503c\uff1a\nint camera id,\u4f8b\u59820\nstring save_path,\u6587\u4ef6\u4fdd\u5b58\u8def\u5f84\uff0c\u7a7a\u5219\u5199\u5728\u4e0a\u6b21\u8def\u5f84\u91cc\uff0c\u9ed8\u8ba4\u662f/capture.jpg\nint quality, jpeg\u538b\u7f29\u8d28\u91cf\uff0c1\u6700\u5dee\uff0c\u5360\u7528\u7a7a\u95f4\u5c0f\uff0c3\u6700\u9ad8\uff0c\u5360\u7528\u7a7a\u95f4\u6700\u5927\u800c\u4e14\u8d39\u65f6\u95f4\uff0c\u9ed8\u8ba41\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\ncamera.capture(0)\n", "prefix": "camera.capture"}, "camera.video": {"body": "camera.video(${1:id},${2:w},${3:h},${4:out_path})", "description": "camera.video(id, w, h, out_path) - camera\u8f93\u51fa\u89c6\u9891\u6d41\u5230USB\n\u4f20\u5165\u503c\uff1a\nint camera id,\u4f8b\u59820\nint \u5bbd\u5ea6\nint \u9ad8\u5ea6\nint \u8f93\u51fa\u8def\u5f84\uff0c\u76ee\u524d\u53ea\u80fd\u7528\u865a\u62df\u4e32\u53e30\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\ncamera.video(0, 320, 240, uart.VUART_0)\n", "prefix": "camera.video"}, "camera.startRaw": {"body": "camera.startRaw(${1:id},${2:w},${3:h},${4:buff})", "description": "camera.startRaw(id, w, h, buff) - \u542f\u52a8camera\u8f93\u51fa\u539f\u59cb\u6570\u636e\u5230\u7528\u6237\u7684zbuff\u7f13\u5b58\u533a\uff0c\u8f93\u51fa1fps\u540e\u4f1a\u505c\u6b62\uff0c\u5e76\u901a\u8fc7camera.on\u8bbe\u7f6e\u7684\u56de\u8c03\u51fd\u6570\u56de\u8c03\u63a5\u6536\u5230\u7684\u957f\u5ea6\uff0c\u5982\u679c\u9700\u8981\u518d\u6b21\u8f93\u51fa\uff0c\u8bf7\u8c03\u7528camera.getRaw\n\u4f20\u5165\u503c\uff1a\nint camera id,\u4f8b\u59820\nint \u5bbd\u5ea6\nint \u9ad8\u5ea6\nzbuff \u7528\u4e8e\u5b58\u653e\u6570\u636e\u7684\u7f13\u5b58\u533a\uff0c\u5927\u5c0f\u5fc5\u987b\u4e0d\u5c0f\u4e8ew X h X 2 byte\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\ncamera.startRaw(0, 320, 240, buff)\n", "prefix": "camera.startRaw"}, "camera.getRaw": {"body": "camera.getRaw(${1:id})", "description": "camera.getRaw(id) - \u518d\u6b21\u542f\u52a8camera\u8f93\u51fa\u539f\u59cb\u6570\u636e\u5230\u7528\u6237\u7684zbuff\u7f13\u5b58\u533a\uff0c\u8f93\u51fa1fps\u540e\u4f1a\u505c\u6b62\uff0c\u5e76\u901a\u8fc7camera.on\u8bbe\u7f6e\u7684\u56de\u8c03\u51fd\u6570\u56de\u8c03\u63a5\u6536\u5230\u7684\u957f\u5ea6\uff0c\u5982\u679c\u9700\u8981\u518d\u6b21\u8f93\u51fa\uff0c\u8bf7\u7ee7\u7eed\u8c03\u7528\u672cAPI\n\u4f20\u5165\u503c\uff1a\nint camera id,\u4f8b\u59820\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\ncamera.getRaw(0)\n", "prefix": "camera.getRaw"}, "codec.create": {"body": "codec.create(${1:type},${2:isDecoder})", "description": "codec.create(type, isDecoder) - \u521b\u5efa\u7f16\u89e3\u7801\u7528\u7684codec\n\u4f20\u5165\u503c\uff1a\nint \u591a\u5a92\u4f53\u7c7b\u578b\uff0c\u76ee\u524d\u652f\u6301codec.MP3 codec.AMR\nboolean \u662f\u5426\u662f\u89e3\u7801\u5668\uff0ctrue\u89e3\u7801\u5668\uff0cfalse\u7f16\u7801\u5668\uff0c\u9ed8\u8ba4true\uff0c\u662f\u89e3\u7801\u5668\n\u8fd4\u56de\u503c\uff1a\nuserdata \u6210\u529f\u8fd4\u56de\u4e00\u4e2a\u6570\u636e\u7ed3\u6784,\u5426\u5219\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\n-- \u521b\u5efa\u89e3\u7801\u5668\nlocal decoder = codec.create(codec.MP3)--\u521b\u5efa\u4e00\u4e2amp3\u7684decoder\n-- \u521b\u5efa\u7f16\u7801\u5668\nlocal encoder = codec.create(codec.AMR, false)--\u521b\u5efa\u4e00\u4e2aamr\u7684encoder\n", "prefix": "codec.create"}, "codec.info": {"body": "codec.info(${1:decoder},${2:file_path})", "description": "codec.info(decoder, file_path) - decoder\u4ece\u6587\u4ef6\u4e2d\u89e3\u6790\u51fa\u97f3\u9891\u4fe1\u606f\n\u4f20\u5165\u503c\uff1a\nuserdata \u89e3\u7801\u7528\u7684decoder\nstring \u6587\u4ef6\u8def\u5f84\n\u8fd4\u56de\u503c\uff1a\nboolean \u662f\u5426\u6210\u529f\u89e3\u6790\nint \u97f3\u9891\u683c\u5f0f\nint \u58f0\u97f3\u901a\u9053\u6570\nint \u91c7\u6837\u9891\u7387\nint \u91c7\u6837\u4f4d\u6570\nboolean \u662f\u5426\u6709\u7b26\u53f7\n\u4f8b\u5b50\uff1a\nlocal result, audio_format, num_channels, sample_rate, bits_per_sample, is_signed= codec.info(coder, \"xxx\")\n", "prefix": "codec.info"}, "codec.data": {"body": "codec.data(${1:decoder},${2:out_buff})", "description": "codec.data(decoder, out_buff) - decoder\u4ece\u6587\u4ef6\u4e2d\u89e3\u6790\u51fa\u539f\u59cb\u97f3\u9891\u6570\u636e\uff0c\u6bd4\u5982\u4eceMP3\u6587\u4ef6\u91cc\u89e3\u6790\u51faPCM\u6570\u636e\uff0c\u8fd9\u91cc\u7684\u6587\u4ef6\u8def\u5f84\u5df2\u7ecf\u5728codec.info\u4f20\u5165\uff0c\u4e0d\u9700\u8981\u518d\u6b21\u4f20\u5165\n\u4f20\u5165\u503c\uff1a\nuserdata \u89e3\u7801\u7528\u7684decoder\nzbuff \u5b58\u653e\u8f93\u51fa\u6570\u636e\u7684zbuff\uff0c\u7a7a\u95f4\u5fc5\u987b\u4e0d\u5c11\u4e8e16KB\nint \u6700\u5c11\u89e3\u7801\u51fa\u591a\u5c11\u5b57\u8282\u7684\u97f3\u9891\u6570\u636e,\u9ed8\u8ba416384\n\u8fd4\u56de\u503c\uff1a\nboolean \u662f\u5426\u6210\u529f\u89e3\u6790\n\u4f8b\u5b50\uff1a\n-- \u5927\u5185\u5b58\u8bbe\u5907\nlocal buff = zbuff.create(16*1024)\nlocal result = codec.data(coder, buff)\n-- \u5c0f\u5185\u5b58\u8bbe\u5907\nlocal buff = zbuff.create(8*1024)\nlocal result = codec.data(coder, buff, 4096)\n", "prefix": "codec.data"}, "codec.encode": {"body": "codec.encode(${1:coder},${2:in_buffer},${3:out_buffer},${4:mode})", "description": "codec.encode(coder, in_buffer, out_buffer, mode) - \u7f16\u7801\u97f3\u9891\u6570\u636e\uff0c\u7531\u4e8eflash\u548cram\u7a7a\u95f4\u4e00\u822c\u6bd4\u8f83\u6709\u9650\uff0c\u76ee\u524d\u53ea\u652f\u6301amr-nb\u7f16\u7801\n\u4f20\u5165\u503c\uff1a\nuserdata codec.create\u521b\u5efa\u7684\u7f16\u89e3\u7801\u7528\u7684coder\nzbuff \u8f93\u5165\u7684\u6570\u636e,zbuff\u5f62\u5f0f,\u4ece0\u5230used\nzbuff \u8f93\u51fa\u7684\u6570\u636e,zbuff\u5f62\u5f0f,\u81ea\u52a8\u6dfb\u52a0\u5230buff\u7684\u5c3e\u90e8,\u5982\u679c\u7a7a\u95f4\u5927\u5c0f\u4e0d\u8db3,\u4f1a\u81ea\u52a8\u6269\u5c55,\u4f46\u662f\u4f1a\u989d\u5916\u6d88\u8017\u65f6\u95f4,\u751a\u81f3\u4f1a\u5931\u8d25,\u6240\u4ee5\u5c3d\u91cf\u4e00\u5f00\u59cb\u5c31\u7ed9\u8db3\u7a7a\u95f4\nint amr_nb\u7684\u7f16\u7801\u7b49\u7ea7 0~7(\u5373 MR475~MR122)\u503c\u8d8a\u5927\u6d88\u8017\u7684\u7a7a\u95f4\u8d8a\u591a,\u97f3\u8d28\u8d8a\u9ad8,\u9ed8\u8ba40\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u8fd4\u56detrue,\u5931\u8d25\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\ncodec.encode(amr_coder, inbuf, outbuf, codec.AMR_)\n", "prefix": "codec.encode"}, "codec.release": {"body": "codec.release(${1:coder})", "description": "codec.release(coder) - \u91ca\u653e\u7f16\u89e3\u7801\u7528\u7684coder\n\u4f20\u5165\u503c\uff1a\ncoder codec.create\u521b\u5efa\u7684\u7f16\u89e3\u7801\u7528\u7684coder\n\u4f8b\u5b50\uff1a\ncodec.release(coder)\n", "prefix": "codec.release"}, "coremark.run": {"body": "coremark.run()", "description": "coremark.run() - \u5f00\u59cb\u8dd1\u5206\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c,\u7ed3\u679c\u76f4\u63a5\u6253\u5370\u5728\u65e5\u5fd7\u4e2d\n\u4f8b\u5b50\uff1a\n-- \u5927\u90e8\u5206\u60c5\u51b5\u4e0b, \u8fd9\u4e2a\u5e93\u90fd\u4e0d\u4f1a\u5305\u542b\u5728\u6b63\u5f0f\u7248\u56fa\u4ef6\u91cc\n-- \u82e5\u9700\u4f7f\u7528,\u53ef\u4ee5\u53c2\u8003wiki\u6587\u6863\u81ea\u884c\u7f16\u8bd1\u6216\u4f7f\u7528\u4e91\u7f16\u8bd1\n-- https://wiki.luatos.com/develop/compile.html\n\n-- \u8dd1\u5206\u7684main.lua \u5e94\u79fb\u9664\u786c\u72d7\u4ee3\u7801, \u9632\u6b62\u91cd\u542f\n-- \u82e5\u8bbe\u5907\u652f\u6301\u81ea\u52a8\u4f11\u7720, \u5e94\u5173\u95ed\u4f11\u7720\u529f\u80fd\n-- \u82e5\u8bbe\u5907\u652f\u6301\u66f4\u591a\u7684\u9891\u7387\u8fd0\u884c, \u5efa\u8bae\u8bbe\u7f6e\u5230\u6700\u9ad8\u9891\u7387\n-- \u4f7f\u7528 -O3 \u6bd4 -O2 -Os \u7684\u5206\u6570\u66f4\u9ad8, \u901a\u5e38\u60c5\u51b5\u4e0b\n\n-- \u4f1a\u4e00\u76f4\u72ec\u5360\u7ebf\u7a0b\u5230\u6267\u884c\u5b8c\u6bd5, \u7136\u540e\u5728\u63a7\u5236\u53f0\u8f93\u51fa\u7ed3\u679c\ncoremark.run()\n\n-- \u8dd1\u5206\u56fe\u4e00\u4e50^_^\n\n", "prefix": "coremark.run"}, "crypto.md5": {"body": "crypto.md5(${1:str})", "description": "crypto.md5(str) - \u8ba1\u7b97md5\u503c\n\u4f20\u5165\u503c\uff1a\nstring \u9700\u8981\u8ba1\u7b97\u7684\u5b57\u7b26\u4e32\n\u8fd4\u56de\u503c\uff1a\nstring \u8ba1\u7b97\u5f97\u51fa\u7684md5\u503c\u7684hex\u5b57\u7b26\u4e32\n\u4f8b\u5b50\uff1a\n-- \u8ba1\u7b97\u5b57\u7b26\u4e32\"abc\"\u7684md5\nlog.info(\"md5\", crypto.md5(\"abc\"))\n", "prefix": "crypto.md5"}, "crypto.hmac_md5": {"body": "crypto.hmac_md5(${1:str},${2:key})", "description": "crypto.hmac_md5(str, key) - \u8ba1\u7b97hmac_md5\u503c\n\u4f20\u5165\u503c\uff1a\nstring \u9700\u8981\u8ba1\u7b97\u7684\u5b57\u7b26\u4e32\nstring \u5bc6\u94a5\n\u8fd4\u56de\u503c\uff1a\nstring \u8ba1\u7b97\u5f97\u51fa\u7684hmac_md5\u503c\u7684hex\u5b57\u7b26\u4e32\n\u4f8b\u5b50\uff1a\n-- \u8ba1\u7b97\u5b57\u7b26\u4e32\"abc\"\u7684hmac_md5\nlog.info(\"hmac_md5\", crypto.hmac_md5(\"abc\", \"1234567890\"))\n", "prefix": "crypto.hmac_md5"}, "crypto.sha1": {"body": "crypto.sha1(${1:str})", "description": "crypto.sha1(str) - \u8ba1\u7b97sha1\u503c\n\u4f20\u5165\u503c\uff1a\nstring \u9700\u8981\u8ba1\u7b97\u7684\u5b57\u7b26\u4e32\n\u8fd4\u56de\u503c\uff1a\nstring \u8ba1\u7b97\u5f97\u51fa\u7684sha1\u503c\u7684hex\u5b57\u7b26\u4e32\n\u4f8b\u5b50\uff1a\n-- \u8ba1\u7b97\u5b57\u7b26\u4e32\"abc\"\u7684sha1\nlog.info(\"sha1\", crypto.sha1(\"abc\"))\n", "prefix": "crypto.sha1"}, "crypto.hmac_sha1": {"body": "crypto.hmac_sha1(${1:str},${2:key})", "description": "crypto.hmac_sha1(str, key) - \u8ba1\u7b97hmac_sha1\u503c\n\u4f20\u5165\u503c\uff1a\nstring \u9700\u8981\u8ba1\u7b97\u7684\u5b57\u7b26\u4e32\nstring \u5bc6\u94a5\n\u8fd4\u56de\u503c\uff1a\nstring \u8ba1\u7b97\u5f97\u51fa\u7684hmac_sha1\u503c\u7684hex\u5b57\u7b26\u4e32\n\u4f8b\u5b50\uff1a\n-- \u8ba1\u7b97\u5b57\u7b26\u4e32\"abc\"\u7684hmac_sha1\nlog.info(\"hmac_sha1\", crypto.hmac_sha1(\"abc\", \"1234567890\"))\n", "prefix": "crypto.hmac_sha1"}, "crypto.sha256": {"body": "crypto.sha256(${1:str})", "description": "crypto.sha256(str) - \u8ba1\u7b97sha256\u503c\n\u4f20\u5165\u503c\uff1a\nstring \u9700\u8981\u8ba1\u7b97\u7684\u5b57\u7b26\u4e32\n\u8fd4\u56de\u503c\uff1a\nstring \u8ba1\u7b97\u5f97\u51fa\u7684sha256\u503c\u7684hex\u5b57\u7b26\u4e32\n\u4f8b\u5b50\uff1a\n-- \u8ba1\u7b97\u5b57\u7b26\u4e32\"abc\"\u7684sha256\nlog.info(\"sha256\", crypto.sha256(\"abc\"))\n", "prefix": "crypto.sha256"}, "crypto.hmac_sha256": {"body": "crypto.hmac_sha256(${1:str},${2:key})", "description": "crypto.hmac_sha256(str, key) - \u8ba1\u7b97hmac_sha256\u503c\n\u4f20\u5165\u503c\uff1a\nstring \u9700\u8981\u8ba1\u7b97\u7684\u5b57\u7b26\u4e32\nstring \u5bc6\u94a5\n\u8fd4\u56de\u503c\uff1a\nstring \u8ba1\u7b97\u5f97\u51fa\u7684hmac_sha256\u503c\u7684hex\u5b57\u7b26\u4e32\n\u4f8b\u5b50\uff1a\n-- \u8ba1\u7b97\u5b57\u7b26\u4e32\"abc\"\u7684hmac_sha256\nlog.info(\"hmac_sha256\", crypto.hmac_sha256(\"abc\", \"1234567890\"))\n", "prefix": "crypto.hmac_sha256"}, "crypto.sha512": {"body": "crypto.sha512(${1:str})", "description": "crypto.sha512(str) - \u8ba1\u7b97sha512\u503c\n\u4f20\u5165\u503c\uff1a\nstring \u9700\u8981\u8ba1\u7b97\u7684\u5b57\u7b26\u4e32\n\u8fd4\u56de\u503c\uff1a\nstring \u8ba1\u7b97\u5f97\u51fa\u7684sha512\u503c\u7684hex\u5b57\u7b26\u4e32\n\u4f8b\u5b50\uff1a\n-- \u8ba1\u7b97\u5b57\u7b26\u4e32\"abc\"\u7684sha512\nlog.info(\"sha512\", crypto.sha512(\"abc\"))\n", "prefix": "crypto.sha512"}, "crypto.hmac_sha512": {"body": "crypto.hmac_sha512(${1:str},${2:key})", "description": "crypto.hmac_sha512(str, key) - \u8ba1\u7b97hmac_sha512\u503c\n\u4f20\u5165\u503c\uff1a\nstring \u9700\u8981\u8ba1\u7b97\u7684\u5b57\u7b26\u4e32\nstring \u5bc6\u94a5\n\u8fd4\u56de\u503c\uff1a\nstring \u8ba1\u7b97\u5f97\u51fa\u7684hmac_sha512\u503c\u7684hex\u5b57\u7b26\u4e32\n\u4f8b\u5b50\uff1a\n-- \u8ba1\u7b97\u5b57\u7b26\u4e32\"abc\"\u7684hmac_sha512\nlog.info(\"hmac_sha512\", crypto.hmac_sha512(\"abc\", \"1234567890\"))\n", "prefix": "crypto.hmac_sha512"}, "crypto.cipher_encrypt": {"body": "crypto.cipher_encrypt(${1:type},${2:padding},${3:str},${4:key},${5:iv})", "description": "crypto.cipher_encrypt(type, padding, str, key, iv) - \u5bf9\u79f0\u52a0\u5bc6\n\u4f20\u5165\u503c\uff1a\nstring \u7b97\u6cd5\u540d\u79f0, \u4f8b\u5982 AES-128-ECB/AES-128-CBC, \u53ef\u67e5\u9605crypto.cipher_list()\nstring \u5bf9\u9f50\u65b9\u5f0f, \u652f\u6301PKCS7/ZERO/ONE_AND_ZEROS/ZEROS_AND_LEN/NONE\nstring \u9700\u8981\u52a0\u5bc6\u7684\u6570\u636e\nstring \u5bc6\u94a5,\u9700\u8981\u5bf9\u5e94\u7b97\u6cd5\u7684\u5bc6\u94a5\u957f\u5ea6\nstring IV\u503c, \u975eECB\u7b97\u6cd5\u9700\u8981\n\u8fd4\u56de\u503c\uff1a\nstring \u52a0\u5bc6\u540e\u7684\u5b57\u7b26\u4e32\n\u4f8b\u5b50\uff1a\n-- \u8ba1\u7b97AES\nlocal data = crypto.cipher_encrypt(\"AES-128-ECB\", \"PKCS7\", \"1234567890123456\", \"1234567890123456\")\nlocal data2 = crypto.cipher_encrypt(\"AES-128-CBC\", \"PKCS7\", \"1234567890123456\", \"1234567890123456\", \"1234567890666666\")\n", "prefix": "crypto.cipher_encrypt"}, "crypto.cipher_decrypt": {"body": "crypto.cipher_decrypt(${1:type},${2:padding},${3:str},${4:key},${5:iv})", "description": "crypto.cipher_decrypt(type, padding, str, key, iv) - \u5bf9\u79f0\u89e3\u5bc6\n\u4f20\u5165\u503c\uff1a\nstring \u7b97\u6cd5\u540d\u79f0, \u4f8b\u5982 AES-128-ECB/AES-128-CBC, \u53ef\u67e5\u9605crypto.cipher_list()\nstring \u5bf9\u9f50\u65b9\u5f0f, \u652f\u6301PKCS7/ZERO/ONE_AND_ZEROS/ZEROS_AND_LEN/NONE\nstring \u9700\u8981\u89e3\u5bc6\u7684\u6570\u636e\nstring \u5bc6\u94a5,\u9700\u8981\u5bf9\u5e94\u7b97\u6cd5\u7684\u5bc6\u94a5\u957f\u5ea6\nstring IV\u503c, \u975eECB\u7b97\u6cd5\u9700\u8981\n\u8fd4\u56de\u503c\uff1a\nstring \u89e3\u5bc6\u540e\u7684\u5b57\u7b26\u4e32\n\u4f8b\u5b50\uff1a\n-- \u7528AES\u52a0\u5bc6,\u7136\u540e\u7528AES\u89e3\u5bc6\nlocal data = crypto.cipher_encrypt(\"AES-128-ECB\", \"PKCS7\", \"1234567890123456\", \"1234567890123456\")\nlocal data2 = crypto.cipher_decrypt(\"AES-128-ECB\", \"PKCS7\", data, \"1234567890123456\")\n-- data\u7684hex\u4e3a 757CCD0CDC5C90EADBEEECF638DD0000\n-- data2\u7684\u503c\u4e3a 1234567890123456\n", "prefix": "crypto.cipher_decrypt"}, "crypto.crc16": {"body": "crypto.crc16(${1:method},${2:data},${3:poly},${4:initial},${5:finally},${6:inReversemoutReverse})", "description": "crypto.crc16(method, data, poly, initial, finally, inReversem outReverse) - \u8ba1\u7b97CRC16\n\u4f20\u5165\u503c\uff1a\nstring CRC16\u6a21\u5f0f\uff08\"IBM\",\"MAXIM\",\"USB\",\"MODBUS\",\"CCITT\",\"CCITT-FALSE\",\"X25\",\"XMODEM\",\"DNP\",\"USER-DEFINED\"\uff09\nstring \u5b57\u7b26\u4e32\nint poly\u503c\nint initial\u503c\nint finally\u503c\nint \u8f93\u5165\u53cd\u8f6c,1\u53cd\u8f6c,\u9ed8\u8ba40\u4e0d\u53cd\u8f6c\nint \u8f93\u5165\u53cd\u8f6c,1\u53cd\u8f6c,\u9ed8\u8ba40\u4e0d\u53cd\u8f6c\n\u8fd4\u56de\u503c\uff1a\nint \u5bf9\u5e94\u7684CRC16\u503c\n\u4f8b\u5b50\uff1a\n-- \u8ba1\u7b97CRC16\nlocal crc = crypto.crc16(\"\")\n", "prefix": "crypto.crc16"}, "crypto.crc16_modbus": {"body": "crypto.crc16_modbus(${1:data})", "description": "crypto.crc16_modbus(data) - \u76f4\u63a5\u8ba1\u7b97modbus\u7684crc16\u503c\n\u4f20\u5165\u503c\uff1a\nstring \u6570\u636e\n\u8fd4\u56de\u503c\uff1a\nint \u5bf9\u5e94\u7684CRC16\u503c\n\u4f8b\u5b50\uff1a\n-- \u8ba1\u7b97CRC16 modbus\nlocal crc = crypto.crc16_modbus(data)\n", "prefix": "crypto.crc16_modbus"}, "crypto.crc32": {"body": "crypto.crc32(${1:data})", "description": "crypto.crc32(data) - \u8ba1\u7b97crc32\u503c\n\u4f20\u5165\u503c\uff1a\nstring \u6570\u636e\n\u8fd4\u56de\u503c\uff1a\nint \u5bf9\u5e94\u7684CRC32\u503c\n\u4f8b\u5b50\uff1a\n-- \u8ba1\u7b97CRC32\nlocal crc = crypto.crc32(data)\n", "prefix": "crypto.crc32"}, "crypto.crc8": {"body": "crypto.crc8(${1:data},${2:poly},${3:start},${4:revert})", "description": "crypto.crc8(data, poly, start, revert) - \u8ba1\u7b97crc8\u503c\n\u4f20\u5165\u503c\uff1a\nstring \u6570\u636e\nint crc\u591a\u9879\u5f0f\uff0c\u53ef\u9009\uff0c\u5982\u679c\u4e0d\u5199\uff0c\u5c06\u5ffd\u7565\u9664\u4e86\u6570\u636e\u5916\u6240\u6709\u53c2\u6570\nint crc\u521d\u59cb\u503c\uff0c\u53ef\u9009\uff0c\u9ed8\u8ba40\nboolean \u662f\u5426\u9700\u8981\u9006\u5e8f\u5904\u7406\uff0c\u9ed8\u8ba4\u5426\n\u8fd4\u56de\u503c\uff1a\nint \u5bf9\u5e94\u7684CRC8\u503c\n\u4f8b\u5b50\uff1a\n-- \u8ba1\u7b97CRC8\nlocal crc = crypto.crc8(data)\nlocal crc = crypto.crc8(data, 0x31, 0xff, false)\n", "prefix": "crypto.crc8"}, "crypto.crc7": {"body": "crypto.crc7(${1:data},${2:poly},${3:start})", "description": "crypto.crc7(data, poly, start) - \u8ba1\u7b97crc7\u503c\n\u4f20\u5165\u503c\uff1a\nstring \u6570\u636e\nint crc\u591a\u9879\u5f0f\uff0c\u53ef\u9009\uff0c\u9ed8\u8ba40xE5\nint crc\u521d\u59cb\u503c\uff0c\u53ef\u9009\uff0c\u9ed8\u8ba40x00\n\u8fd4\u56de\u503c\uff1a\nint \u5bf9\u5e94\u7684CRC7\u503c\n\u4f8b\u5b50\uff1a\n-- \u8ba1\u7b97CRC7, \u672cAPI\u4e8e2023.10.07\u65b0\u589e\nlocal crc = crypto.crc7(data)\nlocal crc = crypto.crc7(data, 0x31, 0xff)\n", "prefix": "crypto.crc7"}, "crypto.trng": {"body": "crypto.trng(${1:len})", "description": "crypto.trng(len) - \u751f\u6210\u771f\u968f\u673a\u6570\n\u4f20\u5165\u503c\uff1a\nint \u6570\u636e\u957f\u5ea6\n\u8fd4\u56de\u503c\uff1a\nstring \u6307\u5b9a\u968f\u673a\u6570\u5b57\u7b26\u4e32\n\u4f8b\u5b50\uff1a\n-- \u751f\u621032\u4f4d\u968f\u673a\u6570ir\nlocal r = crypto.trng(4)\nlocal _, ir = pack.unpack(r, \"I\")\n", "prefix": "crypto.trng"}, "crypto.totp": {"body": "crypto.totp(${1:secret},${2:time})", "description": "crypto.totp(secret,time) - \u8ba1\u7b97TOTP\u52a8\u6001\u5bc6\u7801\u7684\u7ed3\u679c\n\u4f20\u5165\u503c\uff1a\nstring \u7f51\u7ad9\u63d0\u4f9b\u7684\u5bc6\u94a5\uff08\u5c31\u662fBASE32\u7f16\u7801\u540e\u7684\u7ed3\u679c\uff09\nint \u53ef\u9009\uff0c\u65f6\u95f4\u6233\uff0c\u9ed8\u8ba4\u5f53\u524d\u65f6\u95f4\n\u8fd4\u56de\u503c\uff1a\nint \u8ba1\u7b97\u5f97\u51fa\u7684\u516d\u4f4d\u6570\u7ed3\u679c \u8ba1\u7b97\u5931\u8d25\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\n--\u4f7f\u7528\u5f53\u524d\u7cfb\u7edf\u65f6\u95f4\u8ba1\u7b97\nlocal otp = crypto.totp(\"asdfassdfasdfass\")\n", "prefix": "crypto.totp"}, "crypto.base64_encode": {"body": "crypto.base64_encode(${1:data})", "description": "crypto.base64_encode(data) - \u5c06\u6570\u636e\u8fdb\u884cbase64\u7f16\u7801\n\u4f20\u5165\u503c\uff1a\nstring \u5f85\u7f16\u7801\u7684\u6570\u636e\n\u8fd4\u56de\u503c\uff1a\nstring \u7f16\u7801\u540e\u7684\u6570\u636e\n\u4f8b\u5b50\uff1a\n-- \u672c\u51fd\u6570\u4e0e string.toBase64 \u662f\u540c\u4e00\u4e2a\nlocal data = \"123\"\nlocal bdata = crypto.base64_encode(data)\nlog.info(\"base64\", \"encode\", data, bdata)\ndata = crypto.base64_decode(data)\nlog.info(\"base64\", \"decode\", data, bdata)\n", "prefix": "crypto.base64_encode"}, "crypto.base64_decode": {"body": "crypto.base64_decode(${1:data})", "description": "crypto.base64_decode(data) - \u5c06\u6570\u636e\u8fdb\u884cbase64\u89e3\u7801\n\u4f20\u5165\u503c\uff1a\nstring \u5f85\u89e3\u7801\u7684\u6570\u636e\n\u8fd4\u56de\u503c\uff1a\nstring \u89e3\u7801\u540e\u7684\u6570\u636e\n\u4f8b\u5b50\uff1a\n-- \u672c\u51fd\u6570\u4e0e string.fromBase64 \u662f\u540c\u4e00\u4e2a\nlocal data = \"123\"\nlocal bdata = crypto.base64_encode(data)\nlog.info(\"base64\", \"encode\", data, bdata)\ndata = crypto.base64_decode(data)\nlog.info(\"base64\", \"decode\", data, bdata)\n", "prefix": "crypto.base64_decode"}, "crypto.cipher_list": {"body": "crypto.cipher_list()", "description": "crypto.cipher_list() - \u83b7\u53d6\u5f53\u524d\u56fa\u4ef6\u652f\u6301\u7684cipher\u5217\u8868\n\u8fd4\u56de\u503c\uff1a\ntable \u672c\u56fa\u4ef6\u652f\u6301\u7684cipher\u5217\u8868,\u5b57\u7b26\u4e32\u6570\u7ec4\n\u4f8b\u5b50\uff1a\n-- \u672cAPI\u4e8e2022.07.27\u6dfb\u52a0\nlocal ciphers = crypto.cipher_list()\nif ciphers then\n log.info(\"crypto\", \"ciphers list\", json.encode(ciphers))\nend\n", "prefix": "crypto.cipher_list"}, "crypto.cipher_suites": {"body": "crypto.cipher_suites()", "description": "crypto.cipher_suites() - \u83b7\u53d6\u5f53\u524d\u56fa\u4ef6\u652f\u6301\u7684cipher suites\u5217\u8868\n\u8fd4\u56de\u503c\uff1a\ntable \u672c\u56fa\u4ef6\u652f\u6301\u7684cipher suites\u5217\u8868,\u5b57\u7b26\u4e32\u6570\u7ec4\n\u4f8b\u5b50\uff1a\n-- \u672cAPI\u4e8e2022.11.16\u6dfb\u52a0\nlocal suites = crypto.cipher_suites()\nif suites then\n log.info(\"crypto\", \"ciphers suites\", json.encode(suites))\nend\n", "prefix": "crypto.cipher_suites"}, "crypto.md_file": {"body": "crypto.md_file(${1:tp},${2:path},${3:hmac})", "description": "crypto.md_file(tp, path, hmac) - \u8ba1\u7b97\u6587\u4ef6\u7684hash\u503c(md5/sha1/sha256\u53cahmac\u5f62\u5f0f)\n\u4f20\u5165\u503c\uff1a\nstring hash\u7c7b\u578b, \u5927\u5c0f\u5b57\u6bcd, \u4f8b\u5982 \"MD5\" \"SHA1\" \"SHA256\"\nstring \u6587\u4ef6\u8def\u5f84, \u4f8b\u5982 /luadb/logo.jpg\nstring hmac\u503c,\u53ef\u9009\n\u8fd4\u56de\u503c\uff1a\nstring HEX\u8fc7\u7684hash\u503c,\u82e5\u5931\u8d25\u4f1a\u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n\n-- \u65e0hmac\u7684hash\u503c\nlog.info(\"md5\", crypto.md_file(\"MD5\", \"/luadb/logo.jpg\"))\nlog.info(\"sha1\", crypto.md_file(\"SHA1\", \"/luadb/logo.jpg\"))\nlog.info(\"sha256\", crypto.md_file(\"SHA256\", \"/luadb/logo.jpg\"))\n\n-- \u5e26hmac\u7684hash\u503c\nlog.info(\"hmac_md5\", crypto.md_file(\"MD5\", \"/luadb/logo.jpg\", \"123456\"))\nlog.info(\"hmac_sha1\", crypto.md_file(\"SHA1\", \"/luadb/logo.jpg\", \"123456\"))\nlog.info(\"hmac_sha256\", crypto.md_file(\"SHA256\", \"/luadb/logo.jpg\", \"123456\"))\n", "prefix": "crypto.md_file"}, "crypto.md": {"body": "crypto.md(${1:tp},${2:data},${3:hmac})", "description": "crypto.md(tp, data, hmac) - \u8ba1\u7b97\u6570\u636e\u7684hash\u503c(md5/sha1/sha256\u53cahmac\u5f62\u5f0f)\n\u4f20\u5165\u503c\uff1a\nstring hash\u7c7b\u578b, \u5927\u5c0f\u5b57\u6bcd, \u4f8b\u5982 \"MD5\" \"SHA1\" \"SHA256\"\nstring \u5f85\u5904\u7406\u7684\u6570\u636e\nstring hmac\u503c,\u53ef\u9009\n\u8fd4\u56de\u503c\uff1a\nstring HEX\u8fc7\u7684hash\u503c,\u82e5\u5931\u8d25\u4f1a\u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n\n-- \u65e0hmac\u7684hash\u503c\nlog.info(\"md5\", crypto.md(\"MD5\", \"1234567890\"))\nlog.info(\"sha1\", crypto.md(\"SHA1\", \"1234567890\"))\nlog.info(\"sha256\", crypto.md(\"SHA256\", \"1234567890\"))\n\n-- \u5e26hmac\u7684hash\u503c\nlog.info(\"hmac_md5\", crypto.md(\"MD5\", \"1234567890\", \"123456\"))\nlog.info(\"hmac_sha1\", crypto.md(\"SHA1\", \"1234567890\", \"123456\"))\nlog.info(\"hmac_sha256\", crypto.md(\"SHA256\", \"1234567890\", \"123456\"))\n", "prefix": "crypto.md"}, "crypto.hash_init": {"body": "crypto.hash_init(${1:tp})", "description": "crypto.hash_init(tp) - \u521b\u5efa\u6d41\u5f0fhash\u7528\u7684stream\n\u4f20\u5165\u503c\uff1a\nstring hash\u7c7b\u578b, \u5927\u5199\u5b57\u6bcd, \u4f8b\u5982 \"MD5\" \"SHA1\" \"SHA256\"\nstring hmac\u503c\uff0c\u53ef\u9009\n\u8fd4\u56de\u503c\uff1a\nuserdata \u6210\u529f\u8fd4\u56de\u4e00\u4e2a\u6570\u636e\u7ed3\u6784,\u5426\u5219\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\n-- \u65e0hmac\u7684hash stream\nlocal md5_stream = crypto.hash_init(\"MD5\")\nlocal sha1_stream = crypto.hash_init(\"SHA1\")\nlocal sha256_stream = crypto.hash_init(\"SHA256\")\n\n-- \u5e26hmac\u7684hash stream\nlocal md5_stream = crypto.hash_init(\"MD5\", \"123456\")\nlocal sha1_stream = crypto.hash_init(\"SHA1\", \"123456\")\nlocal sha256_stream = crypto.hash_init(\"SHA256\", \"123456\")\n", "prefix": "crypto.hash_init"}, "crypto.hash_update": {"body": "crypto.hash_update(${1:stream},${2:data})", "description": "crypto.hash_update(stream, data) - \u6d41\u5f0fhash\u66f4\u65b0\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nuserdata crypto.hash_init()\u521b\u5efa\u7684stream, \u5fc5\u9009\nstring \u5f85\u8ba1\u7b97\u7684\u6570\u636e,\u5fc5\u9009\nreturn \u65e0\n\u4f8b\u5b50\uff1a\ncrypto.hash_update(stream, \"OK\")\n", "prefix": "crypto.hash_update"}, "crypto.hash_finish": {"body": "crypto.hash_finish(${1:stream})", "description": "crypto.hash_finish(stream) - \u83b7\u53d6\u6d41\u5f0fhash\u6821\u9a8c\u503c\u5e76\u91ca\u653e\u521b\u5efa\u7684stream\n\u4f20\u5165\u503c\uff1a\nuserdata crypto.hash_init()\u521b\u5efa\u7684stream,\u5fc5\u9009\n\u8fd4\u56de\u503c\uff1a\nstring \u6210\u529f\u8fd4\u56de\u8ba1\u7b97\u5f97\u51fa\u7684\u6d41\u5f0fhash\u503c\u7684hex\u5b57\u7b26\u4e32\uff0c\u5931\u8d25\u65e0\u8fd4\u56de\n\u4f8b\u5b50\uff1a\nlocal hashResult = crypto.hash_finish(stream)\n", "prefix": "crypto.hash_finish"}, "crypto.checksum": {"body": "crypto.checksum(${1:data},${2:mode})", "description": "crypto.checksum(data, mode) - \u8ba1\u7b97checksum\u6821\u9a8c\u548c\n\u4f20\u5165\u503c\uff1a\nstring \u5f85\u8ba1\u7b97\u7684\u6570\u636e,\u5fc5\u9009\nint \u6a21\u5f0f,\u7d2f\u52a0\u6a21\u5f0f, 0 - \u5f02\u6216, 1 - \u7d2f\u52a0, \u9ed8\u8ba4\u4e3a0\n\u8fd4\u56de\u503c\uff1a\nint checksum\u503c,\u6821\u9a8c\u548c\n\u4f8b\u5b50\uff1a\n-- \u672c\u51fd\u6570\u5728 2022.12.28 \u6dfb\u52a0\n-- \u5355\u7eaf\u8ba1\u7b97checksum\u503c\nlocal ck = crypto.checksum(\"OK\")\nlog.info(\"checksum\", \"ok\", string.format(\"%02X\", ck))\n-- \u7b2c\u4e8c\u4e2a\u53c2\u6570mode\u57282023.5.23\u65e5\u6dfb\u52a0\n", "prefix": "crypto.checksum"}, "dac.open": {"body": "dac.open(${1:ch},${2:freq},${3:mode})", "description": "dac.open(ch, freq, mode) - \u6253\u5f00DAC\u901a\u9053,\u5e76\u914d\u7f6e\u53c2\u6570\n\u4f20\u5165\u503c\uff1a\nint \u901a\u9053\u7f16\u53f7,\u4f8b\u59820\nint \u8f93\u51fa\u9891\u7387,\u5355\u4f4dhz\nint \u6a21\u5f0f,\u9ed8\u8ba4\u4e3a0,\u9884\u7559\n\u8fd4\u56de\u503c\uff1a\ntrue \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\nint \u5e95\u5c42\u8fd4\u56de\u503c,\u8c03\u8bd5\u7528\n\u4f8b\u5b50\uff1a\nif dac.open(0, 44000) then\n log.info(\"dac\", \"dac ch0 is opened\")\nend\n\n", "prefix": "dac.open"}, "dac.write": {"body": "dac.write(${1:ch},${2:data})", "description": "dac.write(ch, data) - \u4ece\u6307\u5b9aDAC\u901a\u9053\u8f93\u51fa\u4e00\u6bb5\u6ce2\u5f62,\u6216\u8005\u5355\u4e2a\u503c\n\u4f20\u5165\u503c\uff1a\nint \u901a\u9053\u7f16\u53f7,\u4f8b\u59820\nstring \u82e5\u8f93\u51fa\u56fa\u5b9a\u503c,\u53ef\u4ee5\u586b\u6570\u503c, \u82e5\u8f93\u51fa\u6ce2\u5f62,\u586bstring\n\u8fd4\u56de\u503c\uff1a\ntrue \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\nint \u5e95\u5c42\u8fd4\u56de\u503c,\u8c03\u8bd5\u7528\n\u4f8b\u5b50\uff1a\nif dac.open(0, 44000) then\n log.info(\"dac\", \"dac ch0 is opened\")\n dac.write(0, string.fromHex(\"ABCDABCD\"))\nend\ndac.close(0)\n", "prefix": "dac.write"}, "dac.close": {"body": "dac.close(${1:ch})", "description": "dac.close(ch) - \u5173\u95edDAC\u901a\u9053\n\u4f20\u5165\u503c\uff1a\nint \u901a\u9053\u7f16\u53f7,\u4f8b\u59820\n\u8fd4\u56de\u503c\uff1a\ntrue \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\nint \u5e95\u5c42\u8fd4\u56de\u503c,\u8c03\u8bd5\u7528\n\u4f8b\u5b50\uff1a\nif dac.open(0, 44000) then\n log.info(\"dac\", \"dac ch0 is opened\")\n dac.write(0, string.fromHex(\"ABCDABCD\"))\nend\ndac.close(0)\n", "prefix": "dac.close"}, "disp.init": {"body": "disp.init(${1:conf})", "description": "disp.init(conf) - \u663e\u793a\u5c4f\u521d\u59cb\u5316,\u8bf7\u4f7f\u7528u8g2\u5e93\n\u4f20\u5165\u503c\uff1a\ntable conf \u914d\u7f6e\u4fe1\u606f\n\u8fd4\u56de\u503c\uff1a\nint \u6b63\u5e38\u521d\u59cb\u53161,\u5df2\u7ecf\u521d\u59cb\u5316\u8fc72,\u5185\u5b58\u4e0d\u591f3,\u521d\u59cb\u5316\u5931\u8d25\u8fd4\u56de4\n\u4f8b\u5b50\uff1a\n-- disp\u5e93\u7684\u6240\u6709API\u5747\u5df2\u5408\u5e76\u5230u8g2\u5e93\n-- disp\u5e93\u5df2\u7ecf\u6620\u5c04\u4e3au8g2\u5e93,\u6240\u6709API\u5747\u4ee3\u7406\u5230u8g2,\u8bf7\u67e5\u9605u8g2\u5e93\u7684API\n", "prefix": "disp.init"}, "eink.init": {"body": "eink.init(${1:tp},${2:args},${3:spi_device})", "description": "eink.init(tp, args,spi_device) - eink\u663e\u793a\u5c4f\u521d\u59cb\u5316\n\u4f20\u5165\u503c\uff1a\nnumber eink\u7c7b\u578b\uff0c\u5f53\u524d\u652f\u6301\uff1ahttps://wiki.luatos.com/api/eink.html#id1\ntable \u9644\u52a0\u53c2\u6570,\u4e0e\u5177\u4f53\u8bbe\u5907\u6709\u5173\uff1a
pin_busy\uff08busy\uff09
port\uff1aspi\u7aef\u53e3,\u4f8b\u59820,1,2...\u5982\u679c\u4e3adevice\u65b9\u5f0f\u5219\u4e3a\"device\"
pin_dc\uff1aeink\u6570\u636e/\u547d\u4ee4\u9009\u62e9\u5f15\u811a
pin_rst\uff1aeink\u590d\u4f4d\u5f15\u811a\nuserdata spi\u8bbe\u5907,\u5f53port = \"device\"\u65f6\u6709\u6548\n\u4f8b\u5b50\uff1a\n-- \u521d\u59cb\u5316spi0\u7684eink.MODEL_4in2bc) \u6ce8\u610f:eink\u521d\u59cb\u5316\u4e4b\u524d\u9700\u8981\u5148\u521d\u59cb\u5316spi\nspi_eink = spi.deviceSetup(0,20,0,0,8,20000000,spi.MSB,1,1)\nlog.info(\"eink.init\",\neink.init(eink.MODEL_4in2bc,{port = \"device\",pin_dc = 17, pin_pwr = 7,pin_rst = 19,direction = 2,w = 160,h = 80,xoffset = 1,yoffset = 26},spi_eink))\n", "prefix": "eink.init"}, "eink.setup": {"body": "eink.setup(${1:full},${2:spiid},${3:pin_busy},${4:pin_reset},${5:pin_dc},${6:pin_cs})", "description": "eink.setup(full, spiid, pin_busy, pin_reset, pin_dc, pin_cs) - \u521d\u59cb\u5316eink\n\u4f20\u5165\u503c\uff1a\nint \u5168\u5c4f\u5237\u65b00,\u5c40\u90e8\u5237\u65b01,\u9ed8\u8ba4\u662f\u5168\u5c4f\u5237\u65b0\nint \u6240\u5728\u7684spi,\u9ed8\u8ba4\u662f0\nint Busy \u5fd9\u4fe1\u53f7\u7ba1\u811a\nint Reset \u590d\u4f4d\u7ba1\u811a\nint DC \u6570\u636e\u547d\u4ee4\u9009\u62e9\u7ba1\u811a\nint CS \u4f7f\u80fd\u7ba1\u811a\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n", "prefix": "eink.setup"}, "eink.sleep": {"body": "eink.sleep()", "description": "eink.sleep() - \u8fdb\u5165\u4f11\u7720\u6a21\u5f0f\uff0c\u518d\u6b21\u4f7f\u7528\u65f6\u9700\u8981\u91cd\u65b0\u521d\u59cb\u5316\n", "prefix": "eink.sleep"}, "eink.clear": {"body": "eink.clear(${1:color},${2:force})", "description": "eink.clear(color, force) - \u6e05\u9664\u7ed8\u56fe\u7f13\u51b2\u533a\uff0c\u9ed8\u8ba4\u4e0d\u4f1a\u9a6c\u4e0a\u5237\u65b0\u5230\u8bbe\u5907\n\u4f20\u5165\u503c\uff1a\nnumber color \u53ef\u9009\uff0c\u9ed8\u8ba41\u3002\u5237\u5c4f\u989c\u8272\nbool force \u53ef\u9009\uff0c\u9ed8\u8ba4false\u3002\u5982\u679c\u4e3atrue\u5219\u9a6c\u4e0a\u6e05\u5c4f\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n", "prefix": "eink.clear"}, "eink.setWin": {"body": "eink.setWin(${1:width},${2:height},${3:rotate})", "description": "eink.setWin(width, height, rotate) - \u8bbe\u7f6e\u7a97\u53e3\n\u4f20\u5165\u503c\uff1a\nint width \u5bbd\u5ea6\nint height \u9ad8\u5ea6\nint rotate \u663e\u793a\u65b9\u5411,0/1/2/3, \u76f8\u5f53\u4e8e\u65cb\u8f6c0\u5ea6/90\u5ea6/180\u5ea6/270\u5ea6\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n", "prefix": "eink.setWin"}, "eink.getWin": {"body": "eink.getWin()", "description": "eink.getWin() - \u83b7\u53d6\u7a97\u53e3\u4fe1\u606f\n\u8fd4\u56de\u503c\uff1a\nint width \u5bbd\nint height \u9ad8\nint rotate \u65cb\u8f6c\u65b9\u5411\n", "prefix": "eink.getWin"}, "eink.setFont": {"body": "eink.setFont(${1:font})", "description": "eink.setFont(font) - \u8bbe\u7f6e\u5b57\u4f53\n\u4f20\u5165\u503c\uff1a\nuserdata \u5b57\u4f53\n\u4f8b\u5b50\uff1a\n-- \u8bbe\u7f6e\u4e3a\u5b57\u4f53,\u5bf9\u4e4b\u540e\u7684print\u6709\u6548\neink.setFont(eink.font_opposansm12_chinese)\n", "prefix": "eink.setFont"}, "eink.print": {"body": "eink.print(${1:x},${2:y},${3:str},${4:colored})", "description": "eink.print(x, y, str, colored) - \u7ed8\u5236\u5b57\u7b26\u4e32\n\u4f20\u5165\u503c\uff1a\nint x\u5750\u6807\nint y\u5750\u6807\nstring \u5b57\u7b26\u4e32\nint \u989c\u8272, \u53ef\u4ee5\u662f0\u6216\u80051, \u9ed8\u8ba4\u662f0\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n-- \u5148\u8bbe\u7f6e\u5b57\u4f53, \u7136\u540e\u5199\u5b57\n-- \u53ef\u7528\u5b57\u4f53\u53d6\u51b3\u4e8e\u5177\u4f53\u7684\u56fa\u4ef6, \u5982\u679c\u6ca1\u6709\u4f60\u60f3\u8981\u7684\u5927\u5c0f,\u53ef\u4ee5\u4e91\u7f16\u8bd1\u4e00\u4efd\u81ea\u5b9a\u4e49\u56fa\u4ef6\n-- font_opposansm8_chinese\n-- font_opposansm10_chinese\n-- font_opposansm12_chinese\n-- font_opposansm14_chinese\n-- font_opposansm16_chinese\neink.setFont(eink.font_opposansm12_chinese)\neink.print(10, 20, \"LuatOS\")\n", "prefix": "eink.print"}, "eink.show": {"body": "eink.show(${1:x},${2:y},${3:noClear})", "description": "eink.show(x, y, noClear) - \u5c06\u7f13\u51b2\u533a\u56fe\u50cf\u8f93\u51fa\u5230\u5c4f\u5e55\n\u4f20\u5165\u503c\uff1a\nint x \u8f93\u51fa\u7684x\u5750\u6807,\u9ed8\u8ba40\nint y \u8f93\u51fa\u7684y\u5750\u6807,\u9ed8\u8ba40\nbool \u53ef\u9009\uff0c\u9ed8\u8ba4false\u3002\u5982\u679c\u4e3atrue\u5219\u4e0d\u8fdb\u884c\u6e05\u5c4f\uff0c\u76f4\u63a5\u5237\u4e0a\u65b0\u5185\u5bb9\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n", "prefix": "eink.show"}, "eink.draw": {"body": "eink.draw(${1:buff},${2:buff2},${3:noclear})", "description": "eink.draw(buff, buff2, noclear) - \u76f4\u63a5\u8f93\u51fa\u6570\u636e\u5230\u5c4f\u5e55,\u652f\u6301\u53cc\u8272\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nuserdata zbuff\u6307\u9488\nuserdata zbuff\u6307\u9488\nbool \u53ef\u9009\uff0c\u9ed8\u8ba4false\u3002\u5982\u679c\u4e3atrue\u5219\u4e0d\u8fdb\u884c\u6e05\u5c4f\uff0c\u76f4\u63a5\u5237\u4e0a\u65b0\u5185\u5bb9\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n", "prefix": "eink.draw"}, "eink.line": {"body": "eink.line(${1:x},${2:y},${3:x2},${4:y2},${5:colored})", "description": "eink.line(x, y, x2, y2, colored) - \u7f13\u51b2\u533a\u7ed8\u5236\u7ebf\n\u4f20\u5165\u503c\uff1a\nint \u8d77\u70b9x\u5750\u6807\nint \u8d77\u70b9y\u5750\u6807\nint \u7ec8\u70b9x\u5750\u6807\nint \u7ec8\u70b9y\u5750\u6807\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\neink.line(0, 0, 10, 20, 0)\n", "prefix": "eink.line"}, "eink.rect": {"body": "eink.rect(${1:x},${2:y},${3:x2},${4:y2},${5:colored},${6:fill})", "description": "eink.rect(x, y, x2, y2, colored, fill) - \u7f13\u51b2\u533a\u7ed8\u5236\u77e9\u5f62\n\u4f20\u5165\u503c\uff1a\nint \u5de6\u4e0a\u9876\u70b9x\u5750\u6807\nint \u5de6\u4e0a\u9876\u70b9y\u5750\u6807\nint \u53f3\u4e0b\u9876\u70b9x\u5750\u6807\nint \u53f3\u4e0b\u9876\u70b9y\u5750\u6807\nint \u9ed8\u8ba4\u662f0\nint \u662f\u5426\u586b\u5145,\u9ed8\u8ba4\u662f0,\u4e0d\u586b\u5145\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\neink.rect(0, 0, 10, 20)\neink.rect(0, 0, 10, 20,0, 1) -- Filled\n", "prefix": "eink.rect"}, "eink.circle": {"body": "eink.circle(${1:x},${2:y},${3:radius},${4:colored},${5:fill})", "description": "eink.circle(x, y, radius, colored, fill) - \u7f13\u51b2\u533a\u7ed8\u5236\u5706\u5f62\n\u4f20\u5165\u503c\uff1a\nint \u5706\u5fc3x\u5750\u6807\nint \u5706\u5fc3y\u5750\u6807\nint \u534a\u5f84\nint \u9ed8\u8ba4\u662f0\nint \u662f\u5426\u586b\u5145,\u9ed8\u8ba4\u662f0,\u4e0d\u586b\u5145\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\neink.circle(0, 0, 10)\neink.circle(0, 0, 10, 1, 1) -- Filled\n", "prefix": "eink.circle"}, "eink.qrcode": {"body": "eink.qrcode(${1:x},${2:y},${3:str},${4:size})", "description": "eink.qrcode(x, y, str, size) - \u7f13\u51b2\u533a\u7ed8\u5236QRCode\n\u4f20\u5165\u503c\uff1a\nint x\u5750\u6807\nint y\u5750\u6807\nstring \u4e8c\u7ef4\u7801\u7684\u5185\u5bb9\nint \u663e\u793a\u5927\u5c0f (\u6ce8\u610f:\u4e8c\u7ef4\u7801\u751f\u6210\u5927\u5c0f\u4e0e\u8981\u663e\u793a\u5185\u5bb9\u548c\u7ea0\u9519\u7b49\u7ea7\u6709\u5173,\u751f\u6210\u7248\u672c\u4e3a1-40(\u5bf9\u5e94 21x21 - 177x177)\u7684\u4e0d\u5b9a\u5927\u5c0f,\u5982\u679c\u548c\u8bbe\u7f6e\u5927\u5c0f\u4e0d\u540c\u4f1a\u81ea\u52a8\u5728\u6307\u5b9a\u7684\u533a\u57df\u4e2d\u95f4\u663e\u793a\u4e8c\u7ef4\u7801,\u5982\u4e8c\u7ef4\u7801\u672a\u663e\u793a\u8bf7\u67e5\u770b\u65e5\u5fd7\u63d0\u793a)\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n", "prefix": "eink.qrcode"}, "eink.bat": {"body": "eink.bat(${1:x},${2:y},${3:bat})", "description": "eink.bat(x, y, bat) - \u7f13\u51b2\u533a\u7ed8\u5236\u7535\u6c60\n\u4f20\u5165\u503c\uff1a\nint x\u5750\u6807\nint y\u5750\u6807\nint \u7535\u6c60\u7535\u538b,\u5355\u4f4d\u6beb\u4f0f\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n", "prefix": "eink.bat"}, "eink.weather_icon": {"body": "eink.weather_icon(${1:x},${2:y},${3:code})", "description": "eink.weather_icon(x, y, code) - \u7f13\u51b2\u533a\u7ed8\u5236\u5929\u6c14\u56fe\u6807\n\u4f20\u5165\u503c\uff1a\nint x\u5750\u6807\nint y\u5750\u6807\nint \u5929\u6c14\u4ee3\u53f7\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n", "prefix": "eink.weather_icon"}, "eink.model": {"body": "eink.model(${1:m})", "description": "eink.model(m) - \u8bbe\u7f6e\u58a8\u6c34\u5c4f\u9a71\u52a8\u578b\u53f7\n\u4f20\u5165\u503c\uff1a\nint \u578b\u53f7\u540d\u79f0, \u4f8b\u5982 eink.model(eink.MODEL_1in54_V2)\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n", "prefix": "eink.model"}, "eink.drawXbm": {"body": "eink.drawXbm(${1:x},${2:y},${3:w},${4:h},${5:data})", "description": "eink.drawXbm(x, y, w, h, data) - \u7ed8\u5236\u4f4d\u56fe\n\u4f20\u5165\u503c\uff1a\nint X\u5750\u6807\nint y\u5750\u6807\nint \u4f4d\u56fe\u5bbd\nint \u4f4d\u56fe\u9ad8\nint \u4f4d\u56fe\u6570\u636e,\u6bcf\u4e00\u4f4d\u4ee3\u8868\u4e00\u4e2a\u50cf\u7d20\n\u4f8b\u5b50\uff1a\n-- \u53d6\u6a21\u4f7f\u7528PCtoLCD2002\u8f6f\u4ef6\u5373\u53ef\n-- \u5728(0,0)\u4e3a\u5de6\u4e0a\u89d2,\u7ed8\u5236 16x16 \"\u4eca\" \u7684\u4f4d\u56fe\neink.drawXbm(0, 0, 16,16, string.char(\n 0x80,0x00,0x80,0x00,0x40,0x01,0x20,0x02,0x10,0x04,0x48,0x08,0x84,0x10,0x83,0x60,\n 0x00,0x00,0xF8,0x0F,0x00,0x08,0x00,0x04,0x00,0x04,0x00,0x02,0x00,0x01,0x80,0x00\n))\n", "prefix": "eink.drawXbm"}, "eink.setCtx": {"body": "eink.setCtx(${1:index})", "description": "eink.setCtx(index) - \u5207\u6362\u989c\u8272\u753b\u677f, \u9002\u5408\u591a\u8272\u58a8\u6c34\u5c4f\n\u4f20\u5165\u503c\uff1a\nint \u989c\u8272\u7d22\u5f15, \u9ed1\u8272\u4e3a0, \u7ea2\u8272\u4e3a1\n\u4f8b\u5b50\uff1a\n-- \u4ec5\u9002\u5408\u591a\u8272\u58a8\u6c34\u5c4f, \u5bf9\u5355\u8272\u58a8\u6c34\u5c4f(\u53ea\u6709\u9ed1\u767d)\u7684\u65e0\u6548\neink.setCtx(1)\n-- \u5207\u6362\u540e, \u6240\u6709drawXXX\u90fd\u4f1a\u64cd\u4f5c\u5728\u6307\u5b9a\u989c\u8272\u7684\u753b\u677f\n", "prefix": "eink.setCtx"}, "eink.async": {"body": "eink.async(${1:index})", "description": "eink.async(index) - \u5f02\u6b65\u65b9\u5f0f\uff0c\u4f7f\u7528\u6b64\u65b9\u5f0f\u9700\u8981\u5148 require(\"sysplus\") \u4e4b\u540e eink.clear().wait() eink.show().wait()\u8fdb\u884c\u5237\u5c4f\n\u4f20\u5165\u503c\uff1a\nint 1 \u4f7f\u7528\u5f02\u6b65\n\u4f8b\u5b50\uff1a\n eink.async(1)\n spi_eink = spi.deviceSetup(spi_id,pin_cs,0,0,8,20*1000*1000,spi.MSB,1,1)\n eink.init(eink.MODEL_1in54,\n {port = \"device\",pin_dc = pin_dc, pin_busy = pin_busy,pin_rst = pin_reset},\n spi_eink)\n eink.setWin(200, 200, 0)\n sys.wait(100)\n log.info(\"e-paper 1.54\", \"Testing Go\")\n eink.print(30, 20, \"LuatOS-AIR780E\",0x00)\n eink.show().wait()\n log.info(\"e-paper 1.54\", \"Testing End\")\n", "prefix": "eink.async"}, "errDump.dump": {"body": "errDump.dump(${1:zbuff},${2:type},${3:isDelete})", "description": "errDump.dump(zbuff, type, isDelete) - \u624b\u52a8\u8bfb\u53d6\u5f02\u5e38\u65e5\u5fd7\uff0c\u4e3b\u8981\u7528\u4e8e\u7528\u6237\u5c06\u65e5\u5fd7\u53d1\u9001\u7ed9\u81ea\u5df1\u7684\u670d\u52a1\u5668\u800c\u4e0d\u662fIOT\u5e73\u53f0\uff0c\u5982\u679c\u5728errDump.config\u914d\u7f6e\u4e86\u5468\u671f\u4e0a\u4f20\uff0c\u5219\u4e0d\u80fd\u4f7f\u7528\u672c\u51fd\u6570\n\u4f20\u5165\u503c\uff1a\nzbuff \u65e5\u5fd7\u4fe1\u606f\u7f13\u5b58\uff0c\u5982\u679c\u4e3anil\u5c31\u4e0d\u4f1a\u8bfb\u51fa\uff0c\u4e00\u822c\u5f53\nint \u65e5\u5fd7\u7c7b\u578b\uff0c\u76ee\u524d\u53ea\u6709errDump.TYPE_SYS\u548cerrDump.TYPE_USR\nboolean \u662f\u5426\u5220\u9664\u65e5\u5fd7\n\u8fd4\u56de\u503c\uff1a\nboolean true\u8868\u793a\u672c\u6b21\u8bfb\u53d6\u524d\u5e76\u6ca1\u6709\u5199\u5165\u6570\u636e\uff0cfalse\u53cd\u4e4b\uff0c\u5728\u5220\u9664\u65e5\u5fd7\u524d\uff0c\u6700\u597d\u518d\u8bfb\u4e00\u4e0b\u786e\u4fdd\u6ca1\u6709\u65b0\u7684\u6570\u636e\u5199\u5165\u4e86\n\u4f8b\u5b50\uff1a\nlocal result = errDump.dump(buff, errDump.TYPE_SYS, false) --\u8bfb\u51fa\u7cfb\u7edf\u8bb0\u5f55\u7684\u5f02\u5e38\u65e5\u5fd7\nlocal result = errDump.dump(nil, errDump.TYPE_SYS, true) --\u6e05\u9664\u7cfb\u7edf\u8bb0\u5f55\u7684\u5f02\u5e38\u65e5\u5fd7\n", "prefix": "errDump.dump"}, "errDump.record": {"body": "errDump.record(${1:string})", "description": "errDump.record(string) - \u5199\u5165\u7528\u6237\u7684\u5f02\u5e38\u65e5\u5fd7\uff0c\u6ce8\u610f\u6700\u5927\u53ea\u67094KB\uff0c\u8d85\u8fc7\u90e8\u5206\u65b0\u7684\u8986\u76d6\u65e7\u7684\uff0c\u5f00\u542f\u81ea\u52a8\u4e0a\u4f20\u540e\u4f1a\u4e0a\u4f20\u5230\u5408\u5b99IOT\u5e73\u53f0\n\u4f20\u5165\u503c\uff1a\nstring \u65e5\u5fd7\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\nerrDump.record(\"socket long time no connect\") --\u8bb0\u5f55\u4e0b\"socket long time no connect\"\n", "prefix": "errDump.record"}, "errDump.config": {"body": "errDump.config(${1:enable},${2:period},${3:user_flag},${4:custom_id})", "description": "errDump.config(enable, period, user_flag, custom_id) - \u914d\u7f6e\u5173\u952e\u65e5\u5fd7\u4e0a\u4f20IOT\u5e73\u53f0\uff0c\u8fd9\u91cc\u7684\u65e5\u5fd7\u5305\u62ec\u5f15\u8d77luavm\u5f02\u5e38\u9000\u51fa\u7684\u65e5\u5fd7\u548c\u7528\u6237\u901a\u8fc7record\u5199\u5165\u7684\u65e5\u5fd7\uff0c\u7c7b\u4f3c\u4e8eair\u7684errDump\n\u4f20\u5165\u503c\uff1a\nboolean \u662f\u5426\u542f\u7528\u8bb0\u5f55\u529f\u80fd\uff0cfalse\u7684\u8bdd\u5c06\u4e0d\u4f1a\u8bb0\u5f55\u4efb\u4f55\u65e5\u5fd7\nint \u5b9a\u65f6\u4e0a\u4f20\u5468\u671f\uff0c\u5355\u4f4d\u79d2\uff0c\u9ed8\u8ba4600\u79d2\uff0c\u8fd9\u4e2a\u662f\u81ea\u52a8\u4e0a\u4f20\u65f6\u5019\u540e\u7684\u91cd\u8bd5\u65f6\u95f4\u65f6\u95f4\uff0c\u5728\u5f00\u673a\u540e\u6216\u8005\u6709record\u64cd\u4f5c\u540e\u4f1a\u5f88\u5feb\u5c1d\u8bd5\u4e0a\u4f20\u5230\u5408\u5b99IOT\u5e73\u53f0\u4e00\u6b21\uff0c\u5982\u679c\u4e3a0\uff0c\u5219\u4e0d\u4f1a\u4e0a\u4f20\uff0c\u7531\u7528\u6237dump\u540e\u81ea\u5df1\u4e0a\u4f20\u81ea\u5df1\u7684\u5e73\u53f0\nstring \u7528\u6237\u7684\u7279\u6b8a\u6807\u8bc6\uff0c\u53ef\u4ee5\u4e3a\u7a7a\nstring \u8bbe\u5907\u8bc6\u522b\u53f7, 4G\u8bbe\u5907\u9ed8\u8ba4\u662fimei,\u5176\u4ed6\u8bbe\u5907\u9ed8\u8ba4\u662fmcu.unique_id\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\nerrDump.config(true, 3600, \"12345678\")\t--\u4e00\u4e2a\u5c0f\u65f6\u5c1d\u8bd5\u4e0a\u6b21\u4e00\u6b21\uff0c\u4e0a\u4f20\u65f6\u4f1a\u5728imei\u540e\u9644\u52a0\u4e0a12345678\nerrDump.config(false)\t--\u5173\u95ed\u8bb0\u5f55\u529f\u80fd\uff0c\u4e0d\u518d\u4e0a\u4f20\nerrDump.config(true, 0)\t--\u8bb0\u5f55\uff0c\u4f46\u662f\u4e0d\u4f1a\u4e3b\u52a8\u4e0a\u4f20\uff0c\u7531\u7528\u6237\u5b9e\u73b0\u4e0a\u4f20\u529f\u80fd\n-- 2023.09.22\u65b0\u589ecustom_id\u53c2\u6570\nerrDump.config(true, 3600, nil, \"ABC\")\t--\u4e00\u4e2a\u5c0f\u65f6\u5c1d\u8bd5\u4e0a\u6b21\u4e00\u6b21\uff0c\u4e0a\u4f20\u65f6\u4f7f\u7528\u81ea\u5b9a\u4e49\u7684\u8bbe\u5907\u8bc6\u522b\u53f7ABC\n", "prefix": "errDump.config"}, "fastlz.compress": {"body": "fastlz.compress(${1:data},${2:level})", "description": "fastlz.compress(data, level) - \u5feb\u901f\u538b\u7f29\n\u4f20\u5165\u503c\uff1a\nstring \u5f85\u538b\u7f29\u7684\u6570\u636e, \u5c11\u4e8e400\u5b57\u8282\u7684\u6570\u636e\u4e0d\u5efa\u8bae\u538b\u7f29, \u4e14\u538b\u7f29\u540e\u7684\u6570\u636e\u4e0d\u80fd\u5927\u4e8e32k\nint \u538b\u7f29\u7ea7\u522b,\u9ed8\u8ba41, \u53ef\u90091\u6216\u80052, 2\u7684\u538b\u7f29\u6bd4\u66f4\u9ad8(\u6709\u65f6\u5019)\n\u8fd4\u56de\u503c\uff1a\nstring \u82e5\u538b\u7f29\u6210\u529f,\u8fd4\u56de\u6570\u636e\u5b57\u7b26\u4e32, \u5426\u5219\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\n-- \u6ce8\u610f, \u538b\u7f29\u8fc7\u7a0b\u7684\u5185\u5b58\u6d88\u8017\u5982\u4e0b\n-- \u7cfb\u7edf\u5185\u5b58, \u56fa\u5b9a32k\n-- lua\u5185\u5b58, \u539f\u59cb\u6570\u636e\u7684\u5927\u5c0f\u76841.05\u500d,\u6700\u5c0f\u5360\u75281024\u5b57\u8282.\n", "prefix": "fastlz.compress"}, "fastlz.uncompress": {"body": "fastlz.uncompress(${1:data},${2:maxout})", "description": "fastlz.uncompress(data, maxout) - \u5feb\u901f\u89e3\u538b\n\u4f20\u5165\u503c\uff1a\nstring \u5f85\u89e3\u538b\u7684\u6570\u636e\nint \u89e3\u538b\u540e\u7684\u6700\u5927\u5927\u5c0f, \u9ed8\u8ba4\u662f4k, \u53ef\u6309\u9700\u8c03\u6574\n\u8fd4\u56de\u503c\uff1a\nstring \u82e5\u89e3\u538b\u6210\u529f,\u8fd4\u56de\u6570\u636e\u5b57\u7b26\u4e32, \u5426\u5219\u8fd4\u56denil\n", "prefix": "fastlz.uncompress"}, "fatfs.mount": {"body": "fatfs.mount(${1:mode},${2:mount_point},${3:spiid_or_spidevice},${4:spi_cs},${5:spi_speed},${6:power_pin},${7:power_on_delay},${8:auto_format})", "description": "fatfs.mount(mode,mount_point, spiid_or_spidevice, spi_cs, spi_speed, power_pin, power_on_delay, auto_format) - \u6302\u8f7dfatfs\n\u4f20\u5165\u503c\uff1a\nint fatfs\u6a21\u5f0f,\u53ef\u9009fatfs.SPI,fatfs.SDIO,fatfs.RAM,fatfs.USB\nstring \u865a\u62df\u6587\u4ef6\u7cfb\u7edf\u7684\u6302\u8f7d\u70b9, \u9ed8\u8ba4\u662f /fatfs\nint \u4f20\u5165spi device\u6307\u9488,\u6216\u8005spi\u7684id,\u6216\u8005sdio\u7684id\nint \u7247\u9009\u811a\u7684GPIO \u53f7, spi\u6a21\u5f0f\u6709\u6548,\u82e5\u524d\u4e00\u4e2a\u53c2\u6570\u4f20\u7684\u662fspi device,\u8fd9\u4e2a\u53c2\u6570\u5c31\u4e0d\u9700\u8981\u4f20\nint SPI\u6700\u9ad8\u901f\u5ea6,\u9ed8\u8ba410M, \u82e5\u524d2\u4e2a\u53c2\u6570\u4f20\u7684\u662fspi device,\u8fd9\u4e2a\u53c2\u6570\u5c31\u4e0d\u9700\u8981\u4f20\nint TF\u5361\u7535\u6e90\u63a7\u5236\u811a,TF\u5361\u521d\u59cb\u524d\u5148\u62c9\u4f4e\u590d\u4f4d\u518d\u62c9\u9ad8,\u5982\u679c\u6ca1\u6709,\u6216\u8005\u662f\u5185\u7f6e\u7535\u6e90\u63a7\u5236\u65b9\u5f0f,\u8fd9\u4e2a\u53c2\u6570\u5c31\u4e0d\u9700\u8981\u4f20\nint TF\u5361\u7535\u6e90\u590d\u4f4d\u8fc7\u7a0b\u65f6\u95f4,\u5355\u4f4dms,\u9ed8\u8ba4\u503c\u662f1\nbool \u6302\u8f7d\u5931\u8d25\u662f\u5426\u5c1d\u8bd5\u683c\u5f0f\u5316,\u9ed8\u8ba4\u662ftrue,\u5373\u81ea\u52a8\u683c\u5f0f\u5316. \u672c\u53c2\u6570\u57282023.8.16\u6dfb\u52a0\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue, \u5426\u5219\u8fd4\u56denil\u6216\u8005false\nstring \u5931\u8d25\u7684\u539f\u56e0\n\u4f8b\u5b50\uff1a\n-- \u65b9\u6cd51, \u4f7f\u7528SPI\u6a21\u5f0f\n local spiId = 2\n local result = spi.setup(\n spiId,--\u4e32\u53e3id\n 255, -- \u4e0d\u4f7f\u7528\u9ed8\u8ba4CS\u811a\n 0,--CPHA\n 0,--CPOL\n 8,--\u6570\u636e\u5bbd\u5ea6\n 400*1000 -- \u521d\u59cb\u5316\u65f6\u4f7f\u7528\u8f83\u4f4e\u7684\u9891\u7387\n )\n local TF_CS = pin.PB3\n gpio.setup(TF_CS, 1)\n --fatfs.debug(1) -- \u82e5\u6302\u8f7d\u5931\u8d25,\u53ef\u4ee5\u5c1d\u8bd5\u6253\u5f00\u8c03\u8bd5\u4fe1\u606f,\u67e5\u627e\u539f\u56e0\n\t-- \u63d0\u9192, \u82e5TF/SD\u6a21\u5757\u5e26\u7535\u5e73\u8f6c\u6362, \u901a\u5e38\u4e0d\u652f\u630110M\u4ee5\u4e0a\u7684\u6ce2\u7279\u7387!!\n fatfs.mount(fatfs.SPI,\"SD\", spiId, TF_CS, 24000000)\n local data, err = fatfs.getfree(\"SD\")\n if data then\n log.info(\"fatfs\", \"getfree\", json.encode(data))\n else\n log.info(\"fatfs\", \"err\", err)\n end\n\t-- \u5f80\u4e0b\u7684\u64cd\u4f5c, \u4f7f\u7528 io.open(\"/sd/xxx\", \"w+\") \u7b49io\u5e93\u7684API\u5c31\u53ef\u4ee5\u4e86\n", "prefix": "fatfs.mount"}, "fatfs.getfree": {"body": "fatfs.getfree(${1:mount_point})", "description": "fatfs.getfree(mount_point) - \u83b7\u53d6\u53ef\u7528\u7a7a\u95f4\u4fe1\u606f\n\u4f20\u5165\u503c\uff1a\nstring \u6302\u8f7d\u70b9, \u9700\u8981\u8ddffatfs.mount\u4f20\u5165\u7684\u503c\u4e00\u81f4\n\u8fd4\u56de\u503c\uff1a\ntable \u82e5\u6210\u529f\u4f1a\u8fd4\u56detable,\u5426\u5219\u8fd4\u56denil\nint \u5bfc\u81f4\u5931\u8d25\u7684\u5e95\u5c42\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n-- table\u5305\u542b\u7684\u5185\u5bb9\u6709\n-- total_sectors \u603b\u6247\u533a\u6570\u91cf\n-- free_sectors \u7a7a\u95f2\u6247\u533a\u6570\u91cf\n-- total_kb \u603b\u5b57\u8282\u6570,\u5355\u4f4dkb\n-- free_kb \u7a7a\u95f2\u5b57\u8282\u6570, \u5355\u4f4dkb\n-- \u6ce8\u610f,\u5f53\u524d\u6247\u533a\u5927\u5c0f\u56fa\u5b9a\u5728512\u5b57\u8282\n\n local data, err = fatfs.getfree(\"SD\")\n if data then\n log.info(\"fatfs\", \"getfree\", json.encode(data))\n else\n log.info(\"fatfs\", \"err\", err)\n end\n", "prefix": "fatfs.getfree"}, "fatfs.debug": {"body": "fatfs.debug(${1:value})", "description": "fatfs.debug(value) - \u8bbe\u7f6e\u8c03\u8bd5\u6a21\u5f0f\n\u4f20\u5165\u503c\uff1a\nbool \u662f\u5426\u8fdb\u5165\u8c03\u8bd5\u6a21\u5f0f,true\u4ee3\u8868\u8fdb\u5165\u8c03\u8bd5\u6a21\u5f0f,\u589e\u52a0\u8c03\u8bd5\u65e5\u5fd7\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n", "prefix": "fatfs.debug"}, "fdb.kvdb_init": {"body": "fdb.kvdb_init(${1:name},${2:partition})", "description": "fdb.kvdb_init(name, partition) - \u521d\u59cb\u5316kv\u6570\u636e\u5e93\n\u4f20\u5165\u503c\uff1a\nstring \u6570\u636e\u5e93\u540d,\u5f53\u524d\u4ec5\u652f\u6301env\nstring FAL\u5206\u533a\u540d,\u5f53\u524d\u4ec5\u652f\u6301onchip_fdb\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- fdb\u5e93\u57fa\u4e8e flashdb , \u518d\u6b21\u8868\u793a\u611f\u8c22.\nif fdb.kvdb_init(\"env\", \"onchip_fdb\") then\n log.info(\"fdb\", \"kv\u6570\u636e\u5e93\u521d\u59cb\u5316\u6210\u529f\")\nend\n\n-- \u5173\u4e8e\u6e05\u7a7afdb\u5e93\n-- \u4e0b\u8f7d\u5de5\u5177\u662f\u6ca1\u6709\u63d0\u4f9b\u76f4\u63a5\u6e05\u9664fdb\u6570\u636e\u7684\u9014\u5f84\u7684, \u4f46\u6709\u6709\u529e\u6cd5\u89e3\u51b3\n-- \u5199\u4e00\u4e2amain.lua, \u6267\u884c fdb.kvdb_init \u540e \u6267\u884c fdb.clear() \u5373\u53ef\u5168\u6e05fdb\u6570\u636e.\n", "prefix": "fdb.kvdb_init"}, "fdb.kv_set": {"body": "fdb.kv_set(${1:key},${2:value})", "description": "fdb.kv_set(key, value) - \u8bbe\u7f6e\u4e00\u5bf9kv\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nstring key\u7684\u540d\u79f0,\u5fc5\u586b,\u4e0d\u80fd\u7a7a\u5b57\u7b26\u4e32\nstring \u7528\u6237\u6570\u636e,\u5fc5\u586b,\u4e0d\u80fdnil, \u652f\u6301\u5b57\u7b26\u4e32/\u6570\u503c/table/\u5e03\u5c14\u503c, \u6570\u636e\u957f\u5ea6\u6700\u5927255\u5b57\u8282\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\nnumber \u7b2c\u4e8c\u4e2a\u4e3a\u8fd4\u56de\u4e3aflashdb\u7684fdb_kv_set_blob\u8fd4\u56de\u8be6\u7ec6\u72b6\u6001,0\uff1a\u65e0\u9519\u8bef 1:\u64e6\u9664\u9519\u8bef 2:\u8bfb\u9519\u8bef 3:\u5199\u9519\u8bef 4:\u672a\u627e\u5230 5:kv\u540d\u5b57\u9519\u8bef 6:kv\u540d\u5b57\u5b58\u5728 7:\u5df2\u4fdd\u5b58 8:\u521d\u59cb\u5316\u9519\u8bef\n\u4f8b\u5b50\uff1a\nif fdb.kvdb_init(\"env\", \"onchip_fdb\") then\n log.info(\"fdb\", fdb.kv_set(\"wendal\", \"goodgoodstudy\"))\nend\n", "prefix": "fdb.kv_set"}, "fdb.kv_get": {"body": "fdb.kv_get(${1:key},${2:skey})", "description": "fdb.kv_get(key, skey) - \u6839\u636ekey\u83b7\u53d6\u5bf9\u5e94\u7684\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nstring key\u7684\u540d\u79f0,\u5fc5\u586b,\u4e0d\u80fd\u7a7a\u5b57\u7b26\u4e32\nstring \u53ef\u9009\u7684\u6b21\u7ea7key,\u4ec5\u5f53\u539f\u59cb\u503c\u4e3atable\u65f6\u6709\u6548,\u76f8\u5f53\u4e8e fdb.kv_get(key)[skey]\n\u8fd4\u56de\u503c\uff1a\nany \u5b58\u5728\u5219\u8fd4\u56de\u6570\u636e,\u5426\u5219\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\nif fdb.kvdb_init(\"env\", \"onchip_fdb\") then\n log.info(\"fdb\", fdb.kv_get(\"wendal\"))\nend\n", "prefix": "fdb.kv_get"}, "fdb.kv_del": {"body": "fdb.kv_del(${1:key})", "description": "fdb.kv_del(key) - \u6839\u636ekey\u5220\u9664\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nstring key\u7684\u540d\u79f0,\u5fc5\u586b,\u4e0d\u80fd\u7a7a\u5b57\u7b26\u4e32\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\nif fdb.kvdb_init(\"env\", \"onchip_fdb\") then\n log.info(\"fdb\", fdb.kv_del(\"wendal\"))\nend\n", "prefix": "fdb.kv_del"}, "fdb.kv_clr": {"body": "fdb.kv_clr()", "description": "fdb.kv_clr() - \u6e05\u7a7a\u6574\u4e2akv\u6570\u636e\u5e93\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- \u6e05\u7a7a\nfdb.kv_clr()\n", "prefix": "fdb.kv_clr"}, "fdb.kv_iter": {"body": "fdb.kv_iter(${1:iter})", "description": "fdb.kv_iter(iter) - kv\u8fed\u4ee3\u5668\u83b7\u53d6\u4e0b\u4e00\u4e2akey\n\u4f20\u5165\u503c\uff1a\nuserdata fdb.kv_iter()\u8fd4\u56de\u7684\u6307\u9488\n\u8fd4\u56de\u503c\uff1a\nstring \u6210\u529f\u8fd4\u56de\u5b57\u7b26\u4e32key\u503c, \u5426\u5219\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\n-- \u6e05\u7a7a\nlocal iter = fdb.kv_iter()\nif iter then\n while 1 do\n local k = fdb.kv_next(iter)\n if not k then\n break\n end\n log.info(\"fdb\", k, \"value\", fdb.kv_get(k))\n end\nend\n", "prefix": "fdb.kv_iter"}, "fdb.kv_stat": {"body": "fdb.kv_stat()", "description": "fdb.kv_stat() - \u83b7\u53d6kv\u6570\u636e\u5e93\u72b6\u6001\n\u8fd4\u56de\u503c\uff1a\nint \u5df2\u4f7f\u7528\u7684\u7a7a\u95f4,\u5355\u4f4d\u5b57\u8282\nint \u603b\u53ef\u7528\u7a7a\u95f4, \u5355\u4f4d\u5b57\u8282\nint \u603bkv\u952e\u503c\u5bf9\u6570\u91cf, \u5355\u4f4d\u4e2a\n\u4f8b\u5b50\uff1a\n-- \u672cAPI\u4e8e2022.07.23 \u6dfb\u52a0\nlocal used,maxs,kv_count = fdb.kv_stat()\nlog.info(\"fdb\", \"kv\", used,maxs,kv_count)\n", "prefix": "fdb.kv_stat"}, "fonts.list": {"body": "fonts.list(${1:tp})", "description": "fonts.list(tp) - \u8fd4\u56de\u56fa\u4ef6\u652f\u6301\u7684\u5b57\u4f53\u5217\u8868\n\u4f20\u5165\u503c\uff1a\nstring \u7c7b\u578b, \u9ed8\u8ba4 u8g2, \u8fd8\u53ef\u4ee5\u662flvgl\n\u8fd4\u56de\u503c\uff1a\ntable \u5b57\u4f53\u5217\u8868\n\u4f8b\u5b50\uff1a\n-- API\u65b0\u589e\u4e8e2022-07-12\nif fonts.list then\n log.info(\"fonts\", \"u8g2\", json.encode(fonts.list(\"u8g2\")))\nend\n", "prefix": "fonts.list"}, "fonts.u8g2_get": {"body": "fonts.u8g2_get(${1:name},${2:tp})", "description": "fonts.u8g2_get(name, tp) - \u83b7\u53d6\u5b57\u4f53\n\u4f20\u5165\u503c\uff1a\nstring \u5b57\u4f53\u540d\u79f0, \u4f8b\u5982opposansm8_chinese unifont_t_symbols\nstring \u7c7b\u578b, \u9ed8\u8ba4 u8g2, \u8fd8\u53ef\u4ee5\u662flvgl\n\u8fd4\u56de\u503c\uff1a\nuserdata \u82e5\u5b57\u4f53\u5b58\u653e,\u8fd4\u56de\u5b57\u4f53\u6307\u9488, \u5426\u5219\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\noppo_8 = fonts.get(\"opposansm8_chinese\", \"u8g2\")\nif oppo_8 then\n u8g2.SetFont(oppo_8)\nelse\n log.warn(\"fonts\", \"no such font opposansm8_chinese\")\nend\n-- \u82e5\u4f7f\u7528\u4e91\u7f16\u8bd1\u7684\u81ea\u5b9a\u4e49\u5b57\u5e93, \u4f7f\u7528\u65b9\u5f0f\u5982\u4e0b\noppo_8 = fonts.get(\"oppo_bold_8\", \"u8g2\") -- oppo_bold_8 \u662f\u4e91\u7f16\u8bd1\u754c\u9762\u7684\u5b57\u5e93\u547d\u540d\nif oppo_8 then\n u8g2.SetFont(oppo_8)\nelse\n log.warn(\"fonts\", \"no such font opposansm8_chinese\")\nend\n", "prefix": "fonts.u8g2_get"}, "fonts.u8g2_load": {"body": "fonts.u8g2_load(${1:path},${2:path})", "description": "fonts.u8g2_load(path, path) - \u4ece\u6587\u4ef6\u52a0\u8f7d\u5b57\u4f53\n\u4f20\u5165\u503c\uff1a\nstring \u5b57\u4f53\u8def\u5f84, \u4f8b\u5982 /luadb/abc.bin\nstring \u7c7b\u578b, \u9ed8\u8ba4 u8g2. \u4e5f\u652f\u6301lvgl\n\u8fd4\u56de\u503c\uff1a\nuserdata \u82e5\u5b57\u4f53\u5b58\u653e,\u8fd4\u56de\u5b57\u4f53\u6307\u9488, \u5426\u5219\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\n-- API\u65b0\u589e\u4e8e2022-07-11\n-- \u63d0\u9192: \u82e5\u6587\u4ef6\u4f4d\u4e8e/luadb\u4e0b, \u4e0d\u9700\u8981\u5360\u7528\u5185\u5b58\n-- \u82e5\u6587\u4ef6\u5904\u4e8e\u5176\u4ed6\u8def\u5f84, \u4f8b\u5982tf/sd\u5361, spi flash, \u4f1a\u81ea\u52a8\u52a0\u8f7d\u5230\u5185\u5b58, \u6d88\u8017lua vm\u7684\u5185\u5b58\u7a7a\u95f4\n-- \u52a0\u8f7d\u540e\u8bf7\u9002\u5f53\u5f15\u7528, \u4e0d\u5fc5\u53cd\u590d\u52a0\u8f7d\u540c\u4e00\u4e2a\u5b57\u4f53\u6587\u4ef6\noppo12 = fonts.load(\"/luadb/oppo12.bin\")\nif oppo12 then\n u8g2.SetFont(oppo12)\nelse\n log.warn(\"fonts\", \"no such font file oppo12.bin\")\nend\n", "prefix": "fonts.u8g2_load"}, "fota.init": {"body": "fota.init(${1:storge_location},${2:len},${3:param1})", "description": "fota.init(storge_location, len, param1) - \u521d\u59cb\u5316fota\u6d41\u7a0b\n\u4f20\u5165\u503c\uff1a\nint/string fota\u6570\u636e\u5b58\u50a8\u7684\u8d77\u59cb\u4f4d\u7f6e
\u5982\u679c\u662fint\uff0c\u5219\u662f\u7531\u82af\u7247\u5e73\u53f0\u5177\u4f53\u5224\u65ad
\u5982\u679c\u662fstring\uff0c\u5219\u5b58\u50a8\u5728\u6587\u4ef6\u7cfb\u7edf\u4e2d
\u5982\u679c\u4e3anil\uff0c\u5219\u7531\u5e95\u5c42\u51b3\u5b9a\u5b58\u50a8\u4f4d\u7f6e\nint \u6570\u636e\u5b58\u50a8\u7684\u6700\u5927\u7a7a\u95f4\nuserdata param1\uff0c\u5982\u679c\u6570\u636e\u5b58\u50a8\u5728spiflash\u65f6,\u4e3aspi_device\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u8fd4\u56detrue, \u5931\u8d25\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- \u521d\u59cb\u5316fota\u6d41\u7a0b\nlocal result = fota.init(0, 0x00300000, spi_device)\t--\u7531\u4e8e105\u7684flash\u4ece0x01000000\u5f00\u59cb\uff0c\u6240\u4ee50\u5c31\u662f\u5916\u90e8spiflash\nlocal result = fota.init()\t--ec618\u4f7f\u7528\u56fa\u5b9a\u5185\u90e8\u5730\u5740\uff0c\u6240\u4ee5\u4e0d\u9700\u8981\u53c2\u6570\u4e86\n", "prefix": "fota.init"}, "fota.wait": {"body": "fota.wait()", "description": "fota.wait() - \u7b49\u5f85\u5e95\u5c42fota\u6d41\u7a0b\u51c6\u5907\u597d\n\u4f20\u5165\u503c\uff1a\nboolean \u662f\u5426\u5b8c\u6574\u8d70\u5b8c\u6d41\u7a0b\uff0ctrue \u8868\u793a\u6b63\u786e\u8d70\u5b8c\u6d41\u7a0b\u4e86\n\u8fd4\u56de\u503c\uff1a\nboolean \u51c6\u5907\u597d\u8fd4\u56detrue\n\u4f8b\u5b50\uff1a\nlocal isDone = fota.wait()\n", "prefix": "fota.wait"}, "fota.run": {"body": "fota.run(${1:buff})", "description": "fota.run(buff) - \u5199\u5165fota\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nzbuff/string fota\u6570\u636e\uff0c\u5c3d\u91cf\u7528zbuff\n\u8fd4\u56de\u503c\uff1a\nboolean \u6709\u5f02\u5e38\u8fd4\u56defalse\uff0c\u65e0\u5f02\u5e38\u8fd4\u56detrue\nboolean \u63a5\u6536\u5230\u6700\u540e\u4e00\u5757\u8fd4\u56detrue\nint \u8fd8\u672a\u5199\u5165\u7684\u6570\u636e\u91cf\uff0c\u8d85\u8fc764K\u5fc5\u987b\u505a\u7b49\u5f85\n\u4f8b\u5b50\uff1a\nlocal result, isDone, cache = fota.run(buf) -- \u5199\u5165fota\u6d41\u7a0b\n\n-- \u63d0\u793a: \uff0c\u5982\u679c\u4f20\u5165\u7684\u662fzbuff\uff0c\u5199\u5165\u6210\u529f\u540e\uff0c\u8bf7\u81ea\u884c\u6e05\u7a7azbuff\u5185\u7684\u6570\u636e\n", "prefix": "fota.run"}, "fota.file": {"body": "fota.file(${1:path})", "description": "fota.file(path) - \u4ece\u6307\u5b9a\u6587\u4ef6\u8bfb\u53d6fota\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nstring \u6587\u4ef6\u8def\u5f84\n\u8fd4\u56de\u503c\uff1a\nboolean \u6709\u5f02\u5e38\u8fd4\u56defalse\uff0c\u65e0\u5f02\u5e38\u8fd4\u56detrue\nboolean \u63a5\u6536\u5230\u6700\u540e\u4e00\u5757\u8fd4\u56detrue\nint \u8fd8\u672a\u5199\u5165\u7684\u6570\u636e\u91cf\uff0c\u8d85\u8fc764K\u5fc5\u987b\u505a\u7b49\u5f85\n\u4f8b\u5b50\uff1a\nlocal result, isDone, cache = fota.file(\"/xxx.bin\") -- \u5199\u5165fota\u6d41\u7a0b\n-- \u672cAPI\u4e8e2023.03.23 \u6dfb\u52a0\n", "prefix": "fota.file"}, "fota.isDone": {"body": "fota.isDone()", "description": "fota.isDone() - \u7b49\u5f85\u5e95\u5c42fota\u6d41\u7a0b\u5b8c\u6210\n\u8fd4\u56de\u503c\uff1a\nboolean \u6709\u5f02\u5e38\u8fd4\u56defalse\uff0c\u65e0\u5f02\u5e38\u8fd4\u56detrue\nboolean \u5199\u5165\u5230\u6700\u540e\u4e00\u5757\u8fd4\u56detrue\n\u4f8b\u5b50\uff1a\nlocal result, isDone = fota.isDone()\n", "prefix": "fota.isDone"}, "fota.finish": {"body": "fota.finish(${1:is_ok})", "description": "fota.finish(is_ok) - \u7ed3\u675ffota\u6d41\u7a0b\n\u4f20\u5165\u503c\uff1a\nboolean \u662f\u5426\u5b8c\u6574\u8d70\u5b8c\u6d41\u7a0b\uff0ctrue \u8868\u793a\u6b63\u786e\u8d70\u5b8c\u6d41\u7a0b\u4e86\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u8fd4\u56detrue, \u5931\u8d25\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- \u7ed3\u675ffota\u6d41\u7a0b\nlocal result = fota.finish(true)\n", "prefix": "fota.finish"}, "fs.fsstat": {"body": "fs.fsstat(${1:path})", "description": "fs.fsstat(path) - \u83b7\u53d6\u6587\u4ef6\u7cfb\u7edf\u4fe1\u606f\n\u4f20\u5165\u503c\uff1a\nstring \u8def\u5f84,\u9ed8\u8ba4\"/\",\u53ef\u9009\n\u8fd4\u56de\u503c\uff1a\nboolean \u83b7\u53d6\u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\nint \u603b\u7684block\u6570\u91cf\nint \u5df2\u4f7f\u7528\u7684block\u6570\u91cf\nint block\u7684\u5927\u5c0f,\u5355\u4f4d\u5b57\u8282\nstring \u6587\u4ef6\u7cfb\u7edf\u7c7b\u578b,\u4f8b\u5982lfs\u4ee3\u8868littlefs\n\u4f8b\u5b50\uff1a\n-- \u6253\u5370\u6839\u5206\u533a\u7684\u4fe1\u606f\nlog.info(\"fsstat\", fs.fsstat(\"/\"))\n", "prefix": "fs.fsstat"}, "fs.fsize": {"body": "fs.fsize(${1:path})", "description": "fs.fsize(path) - \u83b7\u53d6\u6587\u4ef6\u5927\u5c0f\n\u4f20\u5165\u503c\uff1a\nstring \u6587\u4ef6\u8def\u5f84\n\u8fd4\u56de\u503c\uff1a\nint \u6587\u4ef6\u5927\u5c0f,\u82e5\u83b7\u53d6\u5931\u8d25\u4f1a\u8fd4\u56de0\n\u4f8b\u5b50\uff1a\n-- \u6253\u5370main.luac\u7684\u5927\u5c0f\nlog.info(\"fsize\", fs.fsize(\"/main.luac\"))\n", "prefix": "fs.fsize"}, "fskv.init": {"body": "fskv.init()", "description": "fskv.init() - \u521d\u59cb\u5316kv\u6570\u636e\u5e93\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\nif fskv.init() then\n log.info(\"fdb\", \"kv\u6570\u636e\u5e93\u521d\u59cb\u5316\u6210\u529f\")\nend\n\n-- \u5173\u4e8e\u6e05\u7a7afdb\u5e93\n-- \u4e0b\u8f7d\u5de5\u5177\u662f\u6ca1\u6709\u63d0\u4f9b\u76f4\u63a5\u6e05\u9664fdb\u6570\u636e\u7684\u9014\u5f84\u7684, \u4f46\u6709\u529e\u6cd5\u89e3\u51b3\n-- \u5199\u4e00\u4e2amain.lua, \u6267\u884c fskv.kvdb_init \u540e \u6267\u884c fskv.clear() \u5373\u53ef\u5168\u6e05fdb\u6570\u636e.\n", "prefix": "fskv.init"}, "fskv.set": {"body": "fskv.set(${1:key},${2:value})", "description": "fskv.set(key, value) - \u8bbe\u7f6e\u4e00\u5bf9kv\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nstring key\u7684\u540d\u79f0,\u5fc5\u586b,\u4e0d\u80fd\u7a7a\u5b57\u7b26\u4e32\nstring \u7528\u6237\u6570\u636e,\u5fc5\u586b,\u4e0d\u80fdnil, \u652f\u6301\u5b57\u7b26\u4e32/\u6570\u503c/table/\u5e03\u5c14\u503c, \u6570\u636e\u957f\u5ea6\u6700\u59274095\u5b57\u8282\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- \u8bbe\u7f6e\u6570\u636e, \u5b57\u7b26\u4e32,\u6570\u503c,table,\u5e03\u5c14\u503c,\u5747\u53ef\n-- \u4f46\u4e0d\u53ef\u4ee5\u662fnil, function, userdata, task\nlog.info(\"fdb\", fskv.set(\"wendal\", \"goodgoodstudy\"))\nlog.info(\"fdb\", fskv.set(\"upgrade\", true))\nlog.info(\"fdb\", fskv.set(\"timer\", 1))\nlog.info(\"fdb\", fskv.set(\"bigd\", {name=\"wendal\",age=123}))\n", "prefix": "fskv.set"}, "fskv.sett": {"body": "fskv.sett(${1:key},${2:skey},${3:value})", "description": "fskv.sett(key, skey, value) - \u8bbe\u7f6etable\u5185\u7684\u952e\u503c\u5bf9\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nstring key\u7684\u540d\u79f0,\u5fc5\u586b,\u4e0d\u80fd\u7a7a\u5b57\u7b26\u4e32\nstring table\u7684key\u540d\u79f0, \u5fc5\u586b, \u4e0d\u80fd\u662f\u7a7a\u5b57\u7b26\u4e32\nstring \u7528\u6237\u6570\u636e,\u5fc5\u586b,\u652f\u6301\u5b57\u7b26\u4e32/\u6570\u503c/table/\u5e03\u5c14\u503c, \u6570\u636e\u957f\u5ea6\u6700\u59274095\u5b57\u8282\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse/nil\n\u4f8b\u5b50\uff1a\n-- \u672cAPI\u57282023.7.26\u65b0\u589e,\u6ce8\u610f\u4e0eset\u51fd\u6570\u533a\u522b\n-- \u8bbe\u7f6e\u6570\u636e, \u5b57\u7b26\u4e32,\u6570\u503c,table,\u5e03\u5c14\u503c,\u5747\u53ef\n-- \u4f46\u4e0d\u53ef\u4ee5\u662ffunction, userdata, task\nlog.info(\"fdb\", fskv.sett(\"mytable\", \"wendal\", \"goodgoodstudy\"))\nlog.info(\"fdb\", fskv.sett(\"mytable\", \"upgrade\", true))\nlog.info(\"fdb\", fskv.sett(\"mytable\", \"timer\", 1))\nlog.info(\"fdb\", fskv.sett(\"mytable\", \"bigd\", {name=\"wendal\",age=123}))\n\n-- \u4e0b\u5217\u8bed\u53e5\u5c06\u6253\u5370\u51fa4\u4e2a\u5143\u7d20\u7684table\nlog.info(\"fdb\", fskv.get(\"mytable\"), json.encode(fskv.get(\"mytable\")))\n-- \u6ce8\u610f: \u5982\u679ckey\u4e0d\u5b58\u5728, \u6216\u8005\u539f\u672c\u7684\u503c\u4e0d\u662ftable\u7c7b\u578b,\u5c06\u4f1a\u5b8c\u5168\u8986\u76d6\n-- \u4f8b\u5982\u4e0b\u5217\u5199\u6cd5,\u6700\u7ec8\u83b7\u53d6\u5230\u7684\u662ftable,\u800c\u975e\u7b2c\u4e00\u884c\u7684\u5b57\u7b26\u4e32\nlog.info(\"fdb\", fskv.set(\"mykv\", \"123\"))\nlog.info(\"fdb\", fskv.sett(\"mykv\", \"age\", \"123\")) -- \u4fdd\u5b58\u7684\u5c06\u662f {age:\"123\"}\n\n\n-- \u5982\u679c\u8bbe\u7f6e\u7684\u6570\u636e\u586bnil, \u4ee3\u8868\u5220\u9664\u5bf9\u5e94\u7684key\nlog.info(\"fdb\", fskv.sett(\"mykv\", \"name\", \"wendal\"))\nlog.info(\"fdb\", fskv.sett(\"mykv\", \"name\")) -- \u76f8\u5f53\u4e8e\u5220\u9664\n-- \n", "prefix": "fskv.sett"}, "fskv.get": {"body": "fskv.get(${1:key},${2:skey})", "description": "fskv.get(key, skey) - \u6839\u636ekey\u83b7\u53d6\u5bf9\u5e94\u7684\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nstring key\u7684\u540d\u79f0,\u5fc5\u586b,\u4e0d\u80fd\u7a7a\u5b57\u7b26\u4e32\nstring \u53ef\u9009\u7684\u6b21\u7ea7key,\u4ec5\u5f53\u539f\u59cb\u503c\u4e3atable\u65f6\u6709\u6548,\u76f8\u5f53\u4e8e fskv.get(key)[skey]\n\u8fd4\u56de\u503c\uff1a\nany \u5b58\u5728\u5219\u8fd4\u56de\u6570\u636e,\u5426\u5219\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\nif fskv.init() then\n log.info(\"fdb\", fskv.get(\"wendal\"))\nend\n\n-- \u82e5\u9700\u8981\"\u9ed8\u8ba4\u503c\", \u5bf9\u5e94\u975ebool\u5e03\u5c14\u503c, \u53ef\u4ee5\u8fd9\u6837\u5199\nlocal v = fskv.get(\"wendal\") or \"123\"\n", "prefix": "fskv.get"}, "fskv.del": {"body": "fskv.del(${1:key})", "description": "fskv.del(key) - \u6839\u636ekey\u5220\u9664\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nstring key\u7684\u540d\u79f0,\u5fc5\u586b,\u4e0d\u80fd\u7a7a\u5b57\u7b26\u4e32\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\nlog.info(\"fdb\", fskv.del(\"wendal\"))\n", "prefix": "fskv.del"}, "fskv.clear": {"body": "fskv.clear()", "description": "fskv.clear() - \u6e05\u7a7a\u6574\u4e2akv\u6570\u636e\u5e93\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- \u6e05\u7a7a\nfskv.clear()\n", "prefix": "fskv.clear"}, "fskv.iter": {"body": "fskv.iter()", "description": "fskv.iter() - kv\u6570\u636e\u5e93\u8fed\u4ee3\u5668\n\u8fd4\u56de\u503c\uff1a\nuserdata \u6210\u529f\u8fd4\u56de\u8fed\u4ee3\u5668\u6307\u9488,\u5426\u5219\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\n-- \u6e05\u7a7a\nlocal iter = fskv.iter()\nif iter then\n while 1 do\n local k = fskv.next(iter)\n if not k then\n break\n end\n log.info(\"fdb\", k, \"value\", fskv.kv_get(k))\n end\nend\n", "prefix": "fskv.iter"}, "fskv.next": {"body": "fskv.next(${1:iter})", "description": "fskv.next(iter) - kv\u8fed\u4ee3\u5668\u83b7\u53d6\u4e0b\u4e00\u4e2akey\n\u4f20\u5165\u503c\uff1a\nuserdata fskv.iter()\u8fd4\u56de\u7684\u6307\u9488\n\u8fd4\u56de\u503c\uff1a\nstring \u6210\u529f\u8fd4\u56de\u5b57\u7b26\u4e32key\u503c, \u5426\u5219\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\n-- \u6e05\u7a7a\nlocal iter = fskv.iter()\nif iter then\n while 1 do\n local k = fskv.next(iter)\n if not k then\n break\n end\n log.info(\"fskv\", k, \"value\", fskv.get(k))\n end\nend\n", "prefix": "fskv.next"}, "fskv.status": {"body": "fskv.status()", "description": "fskv.status() - \u83b7\u53d6kv\u6570\u636e\u5e93\u72b6\u6001\n\u8fd4\u56de\u503c\uff1a\nint \u5df2\u4f7f\u7528\u7684\u7a7a\u95f4,\u5355\u4f4d\u5b57\u8282\nint \u603b\u53ef\u7528\u7a7a\u95f4, \u5355\u4f4d\u5b57\u8282\nint \u603bkv\u952e\u503c\u5bf9\u6570\u91cf, \u5355\u4f4d\u4e2a\n\u4f8b\u5b50\uff1a\nlocal used, total,kv_count = fskv.status()\nlog.info(\"fdb\", \"kv\", used,total,kv_count)\n", "prefix": "fskv.status"}, "ftp.login": {"body": "ftp.login(${1:adapter},${2:ip_addr},${3:port},${4:username},${5:password})", "description": "ftp.login(adapter,ip_addr,port,username,password) - FTP\u5ba2\u6237\u7aef\n\u4f20\u5165\u503c\uff1a\nint \u9002\u914d\u5668\u5e8f\u53f7, \u53ea\u80fd\u662fsocket.ETH0, socket.STA, socket.AP,\u5982\u679c\u4e0d\u586b,\u4f1a\u9009\u62e9\u5e73\u53f0\u81ea\u5e26\u7684\u65b9\u5f0f,\u7136\u540e\u662f\u6700\u540e\u4e00\u4e2a\u6ce8\u518c\u7684\u9002\u914d\u5668\nstring ip_addr \u5730\u5740\nstring port \u7aef\u53e3,\u9ed8\u8ba421\nstring username \u7528\u6237\u540d\nstring password \u5bc6\u7801\nbool/table \u662f\u5426\u4e3assl\u52a0\u5bc6\u8fde\u63a5,\u9ed8\u8ba4\u4e0d\u52a0\u5bc6,true\u4e3a\u65e0\u8bc1\u4e66\u6700\u7b80\u5355\u7684\u52a0\u5bc6\uff0ctable\u4e3a\u6709\u8bc1\u4e66\u7684\u52a0\u5bc6
server_cert \u670d\u52a1\u5668ca\u8bc1\u4e66\u6570\u636e
client_cert \u5ba2\u6237\u7aefca\u8bc1\u4e66\u6570\u636e
client_key \u5ba2\u6237\u7aef\u79c1\u94a5\u52a0\u5bc6\u6570\u636e
client_password \u5ba2\u6237\u7aef\u79c1\u94a5\u53e3\u4ee4\u6570\u636e\n\u8fd4\u56de\u503c\uff1a\nbool/string \u6210\u529f\u8fd4\u56detrue \u5931\u8d25\u8fd4\u56destring\n\u4f8b\u5b50\uff1a\nftp_login = ftp.login(nil,\"xxx\")\n", "prefix": "ftp.login"}, "ftp.command": {"body": "ftp.command(${1:cmd})", "description": "ftp.command(cmd) - FTP\u547d\u4ee4\n\u4f20\u5165\u503c\uff1a\nstring cmd \u547d\u4ee4 \u76ee\u524d\u652f\u6301:NOOP SYST TYPE PWD MKD CWD CDUP RMD DELE LIST\n\u8fd4\u56de\u503c\uff1a\nstring \u6210\u529f\u8fd4\u56detrue \u5931\u8d25\u8fd4\u56destring\n\u4f8b\u5b50\uff1a\n print(ftp.command(\"NOOP\").wait())\n print(ftp.command(\"SYST\").wait())\n print(ftp.command(\"TYPE I\").wait())\n print(ftp.command(\"PWD\").wait())\n print(ftp.command(\"MKD QWER\").wait())\n print(ftp.command(\"CWD /QWER\").wait())\n print(ftp.command(\"CDUP\").wait())\n print(ftp.command(\"RMD QWER\").wait())\n\tprint(ftp.command(\"DELE /1/12222.txt\").wait())\n", "prefix": "ftp.command"}, "ftp.pull": {"body": "ftp.pull(${1:local_name},${2:remote_name})", "description": "ftp.pull(local_name,remote_name) - FTP\u6587\u4ef6\u4e0b\u8f7d\n\u4f20\u5165\u503c\uff1a\nstring local_name \u672c\u5730\u6587\u4ef6\nstring remote_name \u670d\u52a1\u5668\u6587\u4ef6\n\u8fd4\u56de\u503c\uff1a\nbool/string \u6210\u529f\u8fd4\u56detrue \u5931\u8d25\u8fd4\u56destring\n\u4f8b\u5b50\uff1a\nftp.pull(\"/1222.txt\",\"/1222.txt\").wait()\n", "prefix": "ftp.pull"}, "ftp.push": {"body": "ftp.push(${1:local_name},${2:remote_name})", "description": "ftp.push(local_name,remote_name) - FTP\u6587\u4ef6\u4e0a\u4f20\n\u4f20\u5165\u503c\uff1a\nstring local_name \u672c\u5730\u6587\u4ef6\nstring remote_name \u670d\u52a1\u5668\u6587\u4ef6\n\u8fd4\u56de\u503c\uff1a\nbool/string \u6210\u529f\u8fd4\u56detrue \u5931\u8d25\u8fd4\u56destring\n\u4f8b\u5b50\uff1a\nftp.push(\"/1222.txt\",\"/1222.txt\").wait()\n", "prefix": "ftp.push"}, "ftp.close": {"body": "ftp.close()", "description": "ftp.close() - FTP\u5ba2\u6237\u7aef\u5173\u95ed\n\u8fd4\u56de\u503c\uff1a\nbool/string \u6210\u529f\u8fd4\u56detrue \u5931\u8d25\u8fd4\u56destring\n\u4f8b\u5b50\uff1a\nftp.close().wait()\n", "prefix": "ftp.close"}, "sm.sm2encrypt": {"body": "sm.sm2encrypt(${1:pkx},${2:pky},${3:data},${4:mode},${5:mode2})", "description": "sm.sm2encrypt(pkx,pky,data, mode, mode2) - sm2\u7b97\u6cd5\u52a0\u5bc6\n\u4f20\u5165\u503c\uff1a\nstring \u516c\u94a5x,\u5fc5\u9009. HEX\u5b57\u7b26\u4e32\nstring \u516c\u94a5y,\u5fc5\u9009. HEX\u5b57\u7b26\u4e32\nstring \u5f85\u8ba1\u7b97\u7684\u6570\u636e,\u5fc5\u9009,\u6700\u957f32\u5b57\u8282, \u975eHEX\u5b57\u7b26\u4e32\nboolean \u8f93\u51fa\u6a21\u5f0f,\u9ed8\u8ba4false. false-GMSSL\u9ed8\u8ba4\u683c\u5f0fDER, true-\u7f51\u7ad9\u517c\u5bb9\u6a21\u5f0f\nboolean \u6807\u51c6\u7248\u672c,\u9ed8\u8ba4false. false-C1C3C2\u65b0\u56fd\u9645, true-C1C2C3\u8001\u56fd\u9645\n\u8fd4\u56de\u503c\uff1a\nstring \u52a0\u5bc6\u540e\u7684\u5b57\u7b26\u4e32, \u539f\u6837\u8f93\u51fa,\u672a\u7ecfHEX\u8f6c\u6362. \u82e5\u52a0\u5bc6\u5931\u8d25\u4f1a\u8fd4\u56denil\u6216\u7a7a\u5b57\u7b26\u4e32\n\u4f8b\u5b50\uff1a\n-- \u63d0\u793a mode/mode2 \u53c2\u6570\u662f 2023.10.17 \u65b0\u589e\n-- \u7531\u4e8eSM2\u5728\u5404\u5e73\u53f0\u7684\u5b9e\u73b0\u90fd\u6709\u5dee\u5f02,\u7528\u6cd5\u52a1\u5fc5\u53c2\u8003demo\n", "prefix": "sm.sm2encrypt"}, "sm.sm2decrypt": {"body": "sm.sm2decrypt(${1:private},${2:data},${3:mode},${4:mode2})", "description": "sm.sm2decrypt(private,data,mode,mode2) - sm2\u7b97\u6cd5\u89e3\u5bc6\n\u4f20\u5165\u503c\uff1a\nstring \u79c1\u94a5,\u5fc5\u9009,HEX\u5b57\u7b26\u4e32\nstring \u5f85\u8ba1\u7b97\u7684\u6570\u636e,\u5fc5\u9009,\u539f\u59cb\u6570\u636e,\u975eHEX\u5b57\u7b26\u4e32\nboolean \u8f93\u51fa\u6a21\u5f0f,\u9ed8\u8ba4false. false-GMSSL\u9ed8\u8ba4\u683c\u5f0fDER, true-\u7f51\u7ad9\u517c\u5bb9\u6a21\u5f0f\nboolean \u6807\u51c6\u7248\u672c,\u9ed8\u8ba4false. false-C1C3C2\u65b0\u56fd\u9645, true-C1C2C3\u8001\u56fd\u9645\n\u8fd4\u56de\u503c\uff1a\nstring \u89e3\u5bc6\u540e\u7684\u5b57\u7b26\u4e32,\u672a\u7ecfHEX\u8f6c\u6362.\u82e5\u89e3\u5bc6\u5931\u8d25\u4f1a\u8fd4\u56denil\u6216\u7a7a\u5b57\u7b26\u4e32\n\u4f8b\u5b50\uff1a\n-- \u63d0\u793a mode/mode2 \u53c2\u6570\u662f 2023.10.17 \u65b0\u589e\n-- \u7531\u4e8eSM2\u5728\u5404\u5e73\u53f0\u7684\u5b9e\u73b0\u90fd\u6709\u5dee\u5f02,\u7528\u6cd5\u52a1\u5fc5\u53c2\u8003demo\n", "prefix": "sm.sm2decrypt"}, "sm.sm3": {"body": "sm.sm3(${1:data})", "description": "sm.sm3(data) - sm3\u7b97\u6cd5,\u7b97HASH\u503c\n\u4f20\u5165\u503c\uff1a\nstring \u5f85\u8ba1\u7b97\u7684\u6570\u636e,\u5fc5\u9009\n\u8fd4\u56de\u503c\uff1a\nstring \u5bf9\u5e94\u7684hash\u503c\n\u4f8b\u5b50\uff1a\nlocal encodeStr = gmssl.sm3(\"lqlq666lqlq946\")\nlog.info(\"testsm.sm3update\",string.toHex(encodeStr))\n", "prefix": "sm.sm3"}, "sm.sm3hmac": {"body": "sm.sm3hmac(${1:data},${2:key})", "description": "sm.sm3hmac(data, key) - sm3\u7b97\u6cd5,\u7b97HASH\u503c,\u4f46\u5e26HMAC\n\u4f20\u5165\u503c\uff1a\nstring \u5f85\u8ba1\u7b97\u7684\u6570\u636e,\u5fc5\u9009\nstring \u5bc6\u94a5\n\u8fd4\u56de\u503c\uff1a\nstring \u5bf9\u5e94\u7684hash\u503c\n\u4f8b\u5b50\uff1a\nlocal encodeStr = gmssl.sm3hmac(\"lqlq666lqlq946\", \"123\")\nlog.info(\"testsm.sm3update\",string.toHex(encodeStr))\n", "prefix": "sm.sm3hmac"}, "gmssl.sm4encrypt": {"body": "gmssl.sm4encrypt(${1:mode},${2:padding},${3:originStr},${4:password})", "description": "gmssl.sm4encrypt(mode,padding,originStr,password) - SM4\u52a0\u5bc6\u7b97\u6cd5\n\u4f20\u5165\u503c\uff1a\nstring \u52a0\u5bc6\u6a21\u5f0f, CBC\u6216ECB \nstring \u586b\u5145\u65b9\u5f0f, NONE/ZERO/PKCS5/PKCS7\nstring \u52a0\u5bc6\u7684\u5b57\u7b26\u4e32\nstring \u5bc6\u94a5\n\u8fd4\u56de\u503c\uff1a\nstring \u52a0\u5bc6\u540e\u7684\u6570\u636e\n\u4f8b\u5b50\uff1a\nlocal originStr = \"SM4 ECB ZeroPadding test\"\n--\u52a0\u5bc6\u6a21\u5f0f\uff1aECB\uff1b\u586b\u5145\u65b9\u5f0f\uff1aZeroPadding\uff1b\u5bc6\u94a5\uff1a1234567890123456\uff1b\u5bc6\u94a5\u957f\u5ea6\uff1a128 bit\nlocal encodeStr = gmssl.sm4encrypt(\"ECB\",\"ZERO\",originStr,\"1234567890123456\")\nprint(originStr,\"encrypt\",string.toHex(encodeStr))\nlog.info(\"testsm.decrypt\",gmssl.sm4decrypt(\"ECB\",\"ZERO\",encodeStr,\"1234567890123456\"))\n\noriginStr = \"SM4 ECB Pkcs5Padding test\"\n--\u52a0\u5bc6\u6a21\u5f0f\uff1aECB\uff1b\u586b\u5145\u65b9\u5f0f\uff1aPkcs5Padding\uff1b\u5bc6\u94a5\uff1a1234567890123456\uff1b\u5bc6\u94a5\u957f\u5ea6\uff1a128 bit\nencodeStr = gmssl.sm4encrypt(\"ECB\",\"PKCS5\",originStr,\"1234567890123456\")\nprint(originStr,\"encrypt\",string.toHex(encodeStr))\nlog.info(\"testsm.decrypt\",gmssl.sm4decrypt(\"ECB\",\"PKCS5\",encodeStr,\"1234567890123456\"))\n\noriginStr = \"SM4 CBC Pkcs5Padding test\"\n--\u52a0\u5bc6\u6a21\u5f0f\uff1aCBC\uff1b\u586b\u5145\u65b9\u5f0f\uff1aPkcs5Padding\uff1b\u5bc6\u94a5\uff1a1234567890123456\uff1b\u5bc6\u94a5\u957f\u5ea6\uff1a256 bit\uff1b\u504f\u79fb\u91cf\uff1a1234567890666666\nencodeStr = gmssl.sm4encrypt(\"CBC\",\"PKCS5\",originStr,\"1234567890123456\",\"1234567890666666\")\nprint(originStr,\"encrypt\",string.toHex(encodeStr))\nlog.info(\"testsm.decrypt\",gmssl.sm4decrypt(\"CBC\",\"PKCS5\",encodeStr,\"1234567890123456\",\"1234567890666666\"))\n", "prefix": "gmssl.sm4encrypt"}, "gmssl.sm4decrypt": {"body": "gmssl.sm4decrypt(${1:mode},${2:padding},${3:encodeStr},${4:password})", "description": "gmssl.sm4decrypt(mode,padding,encodeStr,password) - SM4\u89e3\u5bc6\u7b97\u6cd5\n\u4f20\u5165\u503c\uff1a\nstring \u52a0\u5bc6\u6a21\u5f0f, CBC\u6216ECB \nstring \u586b\u5145\u65b9\u5f0f, NONE/ZERO/PKCS5/PKCS7\nstring \u5df2\u52a0\u5bc6\u7684\u5b57\u7b26\u4e32\nstring \u5bc6\u94a5\n\u8fd4\u56de\u503c\uff1a\nstring \u89e3\u5bc6\u7684\u5b57\u7b26\u4e32\n\u4f8b\u5b50\uff1a\n-- \u53c2\u8003gmssl.sm4encrypt\n", "prefix": "gmssl.sm4decrypt"}, "sm.sm2sign": {"body": "sm.sm2sign(${1:private},${2:data},${3:id})", "description": "sm.sm2sign(private,data,id) - sm2\u7b97\u6cd5\u7b7e\u540d\n\u4f20\u5165\u503c\uff1a\nstring \u79c1\u94a5,\u5fc5\u9009,HEX\u5b57\u7b26\u4e32\nstring \u5f85\u8ba1\u7b97\u7684\u6570\u636e,\u5fc5\u9009,\u539f\u59cb\u6570\u636e,\u975eHEX\u5b57\u7b26\u4e32\nstring id\u503c,\u975eHEX\u5b57\u7b26\u4e32,\u53ef\u9009,\u9ed8\u8ba4\u503c\"1234567812345678\"\n\u8fd4\u56de\u503c\uff1a\nstring \u524d\u9762\u5b57\u7b26\u4e32,\u672a\u7ecfHEX\u8f6c\u6362.\u82e5\u7b7e\u540d\u5931\u8d25\u4f1a\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\n-- \u672cAPI\u4e8e 2023.10.19 \u65b0\u589e\n-- \u5177\u4f53\u7528\u6cd5\u8bf7\u67e5\u9605demo\n", "prefix": "sm.sm2sign"}, "sm.sm2verify": {"body": "sm.sm2verify(${1:pkx},${2:pky},${3:data},${4:id},${5:sig})", "description": "sm.sm2verify(pkx, pky, data, id, sig) - sm2\u7b97\u6cd5\u9a8c\u7b7e\n\u4f20\u5165\u503c\uff1a\nstring \u516c\u94a5X,\u5fc5\u9009,HEX\u5b57\u7b26\u4e32\nstring \u516c\u94a5Y,\u5fc5\u9009,HEX\u5b57\u7b26\u4e32\nstring \u5f85\u8ba1\u7b97\u7684\u6570\u636e,\u5fc5\u9009,\u539f\u59cb\u6570\u636e,\u975eHEX\u5b57\u7b26\u4e32\nstring id\u503c,\u975eHEX\u5b57\u7b26\u4e32,\u53ef\u9009,\u9ed8\u8ba4\u503c\"1234567812345678\"\nstring \u7b7e\u540d\u6570\u636e,\u5fc5\u987b64\u5b57\u8282,\u975eHEX\u5b57\u7b26\u4e32\n\u8fd4\u56de\u503c\uff1a\nboolean \u9a8c\u8bc1\u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\n-- \u672cAPI\u4e8e 2023.10.19 \u65b0\u589e\n-- \u5177\u4f53\u7528\u6cd5\u8bf7\u67e5\u9605demo\n", "prefix": "sm.sm2verify"}, "gpio.setup": {"body": "gpio.setup(${1:pin},${2:mode},${3:pull},${4:irq},${5:alt})", "description": "gpio.setup(pin, mode, pull, irq, alt) - \u8bbe\u7f6e\u7ba1\u811a\u529f\u80fd\n\u4f20\u5165\u503c\uff1a\nint pin gpio\u7f16\u53f7,\u5fc5\u987b\u662f\u6570\u503c\nany mode \u8f93\u5165\u8f93\u51fa\u6a21\u5f0f\uff1a
\u6570\u5b570/1\u4ee3\u8868\u8f93\u51fa\u6a21\u5f0f
nil\u4ee3\u8868\u8f93\u5165\u6a21\u5f0f
function\u4ee3\u8868\u4e2d\u65ad\u6a21\u5f0f\nint pull \u4e0a\u62c9\u4e0b\u5217\u6a21\u5f0f, \u53ef\u4ee5\u662fgpio.PULLUP \u6216 gpio.PULLDOWN, \u9700\u8981\u6839\u636e\u5b9e\u9645\u786c\u4ef6\u9009\u7528\nint irq \u4e2d\u65ad\u89e6\u53d1\u6a21\u5f0f,\u9ed8\u8ba4gpio.BOTH\u3002\u4e2d\u65ad\u89e6\u53d1\u6a21\u5f0f
\u4e0a\u5347\u6cbfgpio.RISING
\u4e0b\u964d\u6cbfgpio.FALLING
\u4e0a\u5347\u548c\u4e0b\u964d\u90fd\u89e6\u53d1gpio.BOTH \nint alt \u590d\u7528\u9009\u9879\uff0c\u76ee\u524d\u53ea\u6709EC618\u5e73\u53f0\u9700\u8981\u8fd9\u4e2a\u53c2\u6570\uff0c\u6709\u4e9bGPIO\u53ef\u4ee5\u590d\u7528\u5230\u4e0d\u540c\u5f15\u811a\u4e0a\uff0c\u53ef\u4ee5\u9009\u62e9\u590d\u7528\u9009\u9879\uff080\u6216\u80054\uff09\u4ece\u800c\u590d\u7528\u5230\u5bf9\u5e94\u7684\u5f15\u811a\u4e0a\n\u8fd4\u56de\u503c\uff1a\nany \u8f93\u51fa\u6a21\u5f0f\u8fd4\u56de\u8bbe\u7f6e\u7535\u5e73\u7684\u95ed\u5305, \u8f93\u5165\u6a21\u5f0f\u548c\u4e2d\u65ad\u6a21\u5f0f\u8fd4\u56de\u83b7\u53d6\u7535\u5e73\u7684\u95ed\u5305\n\u4f8b\u5b50\uff1a\n-- \u8bbe\u7f6egpio17\u4e3a\u8f93\u5165\ngpio.setup(17, nil)\n-- \u8bbe\u7f6egpio17\u4e3a\u8f93\u51fa,\u4e14\u521d\u59cb\u5316\u7535\u5e73\u4e3a\u4f4e,\u4f7f\u7528\u786c\u4ef6\u9ed8\u8ba4\u4e0a\u4e0b\u62c9\u914d\u7f6e\ngpio.setup(17, 0)\n-- \u8bbe\u7f6egpio17\u4e3a\u8f93\u51fa,\u4e14\u521d\u59cb\u5316\u7535\u5e73\u4e3a\u9ad8,\u4e14\u542f\u7528\u5185\u90e8\u4e0a\u62c9\ngpio.setup(17, 1, gpio.PULLUP)\n-- \u8bbe\u7f6egpio27\u4e3a\u4e2d\u65ad\ngpio.setup(27, function(val) print(\"IRQ_27\",val) end, gpio.PULLUP)\n-- \u8bbe\u7f6egpio27\u4e3a\u4e2d\u65ad\ngpio.setup(27, function(val) print(\"IRQ_27\",val) end, gpio.PULLUP)\n\n-- alt_func \u4e8e2023.7.2\u65b0\u589e\n-- \u8bbe\u7f6eAIR780E\u7684PIN33\u590d\u7528\u6210gpio18\uff0c\u65b9\u5411\u8f93\u51fa,\u4e14\u521d\u59cb\u5316\u7535\u5e73\u4e3a\u4f4e,\u4f7f\u7528\u786c\u4ef6\u9ed8\u8ba4\u4e0a\u4e0b\u62c9\u914d\u7f6e\ngpio.setup(18, 0, nil, nil, 4)\n", "prefix": "gpio.setup"}, "gpio.set": {"body": "gpio.set(${1:pin},${2:value})", "description": "gpio.set(pin, value) - \u8bbe\u7f6e\u7ba1\u811a\u7535\u5e73\n\u4f20\u5165\u503c\uff1a\nint pin GPIO\u7f16\u53f7,\u5fc5\u987b\u662f\u6570\u503c\nint value \u7535\u5e73, \u53ef\u4ee5\u662f \u9ad8\u7535\u5e73gpio.HIGH, \u4f4e\u7535\u5e73gpio.LOW, \u6216\u8005\u76f4\u63a5\u5199\u6570\u503c1\u62160\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n-- \u8bbe\u7f6egpio17\u4e3a\u4f4e\u7535\u5e73\ngpio.set(17, 0)\n", "prefix": "gpio.set"}, "gpio.get": {"body": "gpio.get(${1:pin})", "description": "gpio.get(pin) - \u83b7\u53d6\u7ba1\u811a\u7535\u5e73\n\u4f20\u5165\u503c\uff1a\nint pin GPIO\u7f16\u53f7,\u5fc5\u987b\u662f\u6570\u503c\n\u8fd4\u56de\u503c\uff1a\nvalue \u7535\u5e73, \u9ad8\u7535\u5e73gpio.HIGH, \u4f4e\u7535\u5e73gpio.LOW, \u5bf9\u5e94\u6570\u503c1\u548c0\n\u4f8b\u5b50\uff1a\n-- \u83b7\u53d6gpio17\u7684\u5f53\u524d\u7535\u5e73\ngpio.get(17)\n", "prefix": "gpio.get"}, "gpio.close": {"body": "gpio.close(${1:pin})", "description": "gpio.close(pin) - \u5173\u95ed\u7ba1\u811a\u529f\u80fd(\u9ad8\u963b\u8f93\u5165\u6001),\u5173\u6389\u4e2d\u65ad\n\u4f20\u5165\u503c\uff1a\nint pin GPIO\u7f16\u53f7,\u5fc5\u987b\u662f\u6570\u503c\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c,\u603b\u662f\u6267\u884c\u6210\u529f\n\u4f8b\u5b50\uff1a\n-- \u5173\u95edgpio17\ngpio.close(17)\n", "prefix": "gpio.close"}, "gpio.setDefaultPull": {"body": "gpio.setDefaultPull(${1:val})", "description": "gpio.setDefaultPull(val) - \u8bbe\u7f6eGPIO\u811a\u7684\u9ed8\u8ba4\u4e0a\u62c9/\u4e0b\u62c9\u8bbe\u7f6e, \u9ed8\u8ba4\u662f\u5e73\u53f0\u81ea\u5b9a\u4e49(\u4e00\u822c\u4e3a\u5f00\u6f0f).\n\u4f20\u5165\u503c\uff1a\nint val 0\u5e73\u53f0\u81ea\u5b9a\u4e49,1\u4e0a\u62c9, 2\u4e0b\u62c9\n\u8fd4\u56de\u503c\uff1a\nboolean \u4f20\u503c\u6b63\u786e\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- \u8bbe\u7f6egpio.setup\u7684pull\u9ed8\u8ba4\u503c\u4e3a\u4e0a\u62c9\ngpio.setDefaultPull(1)\n", "prefix": "gpio.setDefaultPull"}, "gpio.toggle": {"body": "gpio.toggle(${1:pin})", "description": "gpio.toggle(pin) - \u53d8\u6362GPIO\u811a\u8f93\u51fa\u7535\u5e73,\u4ec5\u8f93\u51fa\u6a21\u5f0f\u53ef\u7528\n\u4f20\u5165\u503c\uff1a\nint \u7ba1\u811a\u7684GPIO\u53f7\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n-- \u672cAPI\u4e8e 2022.05.17 \u6dfb\u52a0\n-- \u5047\u8bbeGPIO16\u4e0a\u6709LED, \u6bcf500ms\u5207\u6362\u4e00\u6b21\u5f00\u5173\ngpio.setup(16, 0)\nsys.timerLoopStart(function()\n gpio.toggle(16)\nend, 500)\n", "prefix": "gpio.toggle"}, "gpio.pulse": {"body": "gpio.pulse(${1:pin},${2:level},${3:len},${4:delay})", "description": "gpio.pulse(pin,level,len,delay) - \u5728\u540c\u4e00\u4e2aGPIO\u8f93\u51fa\u4e00\u7ec4\u8109\u51b2, \u6ce8\u610f, len\u7684\u5355\u4f4d\u662fbit, \u9ad8\u4f4d\u5728\u524d.\n\u4f20\u5165\u503c\uff1a\nint gpio\u53f7\nint/string \u6570\u503c\u6216\u8005\u5b57\u7b26\u4e32.\nint len \u957f\u5ea6 \u5355\u4f4d\u662fbit, \u9ad8\u4f4d\u5728\u524d.\nint delay \u5ef6\u8fdf,\u5f53\u524d\u65e0\u56fa\u5b9a\u65f6\u95f4\u5355\u4f4d\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n-- \u901a\u8fc7PB06\u811a\u8f93\u51fa\u8f93\u51fa8\u4e2a\u7535\u5e73\u53d8\u5316.\ngpio.pulse(pin.PB06,0xA9, 8, 0)\n", "prefix": "gpio.pulse"}, "gpio.debounce": {"body": "gpio.debounce(${1:pin},${2:ms},${3:mode})", "description": "gpio.debounce(pin, ms, mode) - \u9632\u6296\u8bbe\u7f6e, \u6839\u636e\u786c\u4ef6ticks\u8fdb\u884c\u9632\u6296\n\u4f20\u5165\u503c\uff1a\nint gpio\u53f7, 0~127, \u4e0e\u786c\u4ef6\u76f8\u5173\nint \u9632\u6296\u65f6\u957f,\u5355\u4f4d\u6beb\u79d2, \u6700\u5927 65555 ms, \u8bbe\u7f6e\u4e3a0\u5219\u5173\u95ed\nint \u6a21\u5f0f, 0\u51b7\u5374\u6a21\u5f0f, 1\u5ef6\u65f6\u6a21\u5f0f. \u9ed8\u8ba4\u662f0\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n-- \u6d88\u6296\u6a21\u5f0f, \u5f53\u524d\u652f\u63012\u79cd, 2022.12.16\u5f00\u59cb\u652f\u6301mode=1\n-- 0 \u89e6\u53d1\u4e2d\u65ad\u540e,\u9a6c\u4e0a\u4e0a\u62a5\u4e00\u6b21, \u7136\u540e\u51b7\u5374N\u4e2a\u6beb\u79d2\u540e,\u91cd\u65b0\u63a5\u53d7\u4e2d\u65ad\n-- 1 \u89e6\u53d1\u4e2d\u65ad\u540e,\u5ef6\u8fdfN\u4e2a\u6beb\u79d2,\u671f\u95f4\u6ca1\u6709\u65b0\u4e2d\u65ad\u4e14\u7535\u5e73\u6ca1\u6709\u53d8\u5316,\u4e0a\u62a5\u4e00\u6b21\n\n-- \u5f00\u542f\u9632\u6296, \u6a21\u5f0f0-\u51b7\u5374, \u4e2d\u65ad\u540e\u9a6c\u4e0a\u4e0a\u62a5, \u4f46100ms\u5185\u53ea\u4e0a\u62a5\u4e00\u6b21\ngpio.debounce(7, 100) -- \u82e5\u82af\u7247\u652f\u6301pin\u5e93, \u53ef\u7528pin.PA7\u4ee3\u66ff\u6570\u5b577\n-- \u5f00\u542f\u9632\u6296, \u6a21\u5f0f1-\u5ef6\u65f6, \u4e2d\u65ad\u540e\u7b49\u5f85100ms,\u671f\u95f4\u82e5\u4fdd\u6301\u8be5\u7535\u5e73\u4e86,\u65f6\u95f4\u5230\u4e4b\u540e\u4e0a\u62a5\u4e00\u6b21\n-- \u5bf9\u5e94\u7684,\u5982\u679c\u8f93\u5165\u7684\u662f\u4e00\u4e2a 50hz\u7684\u65b9\u6ce2,\u90a3\u4e48\u4e0d\u4f1a\u89e6\u53d1\u4efb\u4f55\u4e0a\u62a5\ngpio.debounce(7, 100, 1)\n\n-- \u5173\u95ed\u9632\u6296,\u65f6\u95f4\u8bbe\u7f6e\u4e3a0\u5c31\u5173\u95ed\ngpio.debounce(7, 0)\n", "prefix": "gpio.debounce"}, "gtfont.init": {"body": "gtfont.init(${1:spi_device})", "description": "gtfont.init(spi_device) - \u521d\u59cb\u5316\u9ad8\u901a\u5b57\u4f53\u82af\u7247\n\u4f20\u5165\u503c\uff1a\nuserdata \u4ec5\u652f\u6301spi device \u751f\u6210\u7684\u6307\u9488\u6570\u636e\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- \u7279\u522b\u63d0\u9192: \u4f7f\u7528\u672c\u5e93\u7684\u4efb\u4f55\u4ee3\u7801, \u90fd\u9700\u8981 \u989d\u5916 \u7684 \u9ad8\u901a\u5b57\u4f53\u82af\u7247 !!\n-- \u6ca1\u6709\u989d\u5916\u82af\u7247\u662f\u8dd1\u4e0d\u4e86\u7684!!\ngtfont.init(spi_device)\n", "prefix": "gtfont.init"}, "hmeta.model": {"body": "hmeta.model()", "description": "hmeta.model() - \u83b7\u53d6\u6a21\u7ec4\u540d\u79f0\n\u8fd4\u56de\u503c\uff1a\nstring \u82e5\u80fd\u8bc6\u522b\u5230,\u8fd4\u56de\u6a21\u7ec4\u7c7b\u578b, \u5426\u5219\u4f1a\u662fnil\n\u4f8b\u5b50\uff1a\nsys.taskInit(function()\n while 1 do\n sys.wait(3000)\n -- hmeta\u8bc6\u522b\u5e95\u5c42\u6a21\u7ec4\u7c7b\u578b\u7684\n -- \u4e0d\u540c\u7684\u6a21\u7ec4\u53ef\u4ee5\u4f7f\u7528\u76f8\u540c\u7684bsp,\u4f46\u6839\u636e\u5c01\u88c5\u7684\u4e0d\u540c,\u6839\u636e\u5185\u90e8\u6570\u636e\u4ecd\u53ef\u8bc6\u522b\u51fa\u5177\u4f53\u6a21\u5757\n log.info(\"hmeta\", hmeta.model())\n log.info(\"bsp\", rtos.bsp())\n end\nend)\n", "prefix": "hmeta.model"}, "hmeta.hwver": {"body": "hmeta.hwver()", "description": "hmeta.hwver() - \u83b7\u53d6\u6a21\u7ec4\u7684\u786c\u4ef6\u7248\u672c\u53f7\n\u8fd4\u56de\u503c\uff1a\nstring \u82e5\u80fd\u8bc6\u522b\u5230,\u8fd4\u56de\u6a21\u7ec4\u7c7b\u578b, \u5426\u5219\u4f1a\u662fnil\n\u4f8b\u5b50\uff1a\nsys.taskInit(function()\n while 1 do\n sys.wait(3000)\n -- hmeta\u8bc6\u522b\u5e95\u5c42\u6a21\u7ec4\u7c7b\u578b\u7684\n -- \u4e0d\u540c\u7684\u6a21\u7ec4\u53ef\u4ee5\u4f7f\u7528\u76f8\u540c\u7684bsp,\u4f46\u6839\u636e\u5c01\u88c5\u7684\u4e0d\u540c,\u6839\u636e\u5185\u90e8\u6570\u636e\u4ecd\u53ef\u8bc6\u522b\u51fa\u5177\u4f53\u6a21\u5757\n log.info(\"hmeta\", hmeta.model(), hmeta.hwver())\n log.info(\"bsp\", rtos.bsp())\n end\nend)\n", "prefix": "hmeta.hwver"}, "http.request": {"body": "http.request(${1:method},${2:url},${3:headers},${4:body},${5:opts},${6:ca_file},${7:client_ca},${8:client_key},${9:client_password})", "description": "http.request(method,url,headers,body,opts,ca_file,client_ca, client_key, client_password) - http\u5ba2\u6237\u7aef\n\u4f20\u5165\u503c\uff1a\nstring \u8bf7\u6c42\u65b9\u6cd5, \u652f\u6301 GET/POST \u7b49\u5408\u6cd5\u7684HTTP\u65b9\u6cd5\nstring url\u5730\u5740, \u652f\u6301 http\u548chttps, \u652f\u6301\u57df\u540d, \u652f\u6301\u81ea\u5b9a\u4e49\u7aef\u53e3\ntabal \u8bf7\u6c42\u5934 \u53ef\u9009 \u4f8b\u5982 {[\"Content-Type\"] = \"application/x-www-form-urlencoded\"}\nstring body \u53ef\u9009, \u5bf9POST/PUT\u7b49\u8bf7\u6c42\u65b9\u5f0f\u6709\u6548\ntable \u989d\u5916\u914d\u7f6e \u53ef\u9009 \u5305\u542b timeout:\u8d85\u65f6\u65f6\u95f4\u5355\u4f4dms \u53ef\u9009,\u9ed8\u8ba410\u5206\u949f,\u51990\u5373\u6c38\u4e45\u7b49\u5f85 dst:\u4e0b\u8f7d\u8def\u5f84,\u53ef\u9009 adapter:\u9009\u62e9\u4f7f\u7528\u7f51\u5361,\u53ef\u9009 debug:\u662f\u5426\u6253\u5f00debug\u4fe1\u606f,\u53ef\u9009,ipv6:\u662f\u5426\u4e3aipv6 \u9ed8\u8ba4\u4e0d\u662f,\u53ef\u9009 callback:\u4e0b\u8f7d\u56de\u8c03\u51fd\u6570,\u53c2\u6570 content_len:\u603b\u957f\u5ea6 body_len:\u4ee5\u4e0b\u8f7d\u957f\u5ea6 userdata \u7528\u6237\u4f20\u53c2,\u53ef\u9009 userdata:\u56de\u8c03\u81ea\u5b9a\u4e49\u4f20\u53c2 \nstring \u670d\u52a1\u5668ca\u8bc1\u4e66\u6570\u636e, \u53ef\u9009, \u4e00\u822c\u4e0d\u9700\u8981\nstring \u5ba2\u6237\u7aefca\u8bc1\u4e66\u6570\u636e, \u53ef\u9009, \u4e00\u822c\u4e0d\u9700\u8981, \u53cc\u5411https\u8ba4\u8bc1\u624d\u9700\u8981\nstring \u5ba2\u6237\u7aef\u79c1\u94a5\u52a0\u5bc6\u6570\u636e, \u53ef\u9009, \u4e00\u822c\u4e0d\u9700\u8981, \u53cc\u5411https\u8ba4\u8bc1\u624d\u9700\u8981\nstring \u5ba2\u6237\u7aef\u79c1\u94a5\u53e3\u4ee4\u6570\u636e, \u53ef\u9009, \u4e00\u822c\u4e0d\u9700\u8981, \u53cc\u5411https\u8ba4\u8bc1\u624d\u9700\u8981\n\u8fd4\u56de\u503c\uff1a\nint code , \u670d\u52a1\u5668\u53cd\u9988\u7684\u503c>=100, \u6700\u5e38\u89c1\u7684\u662f200.\u5982\u679c\u662f\u5e95\u5c42\u9519\u8bef,\u4f8b\u5982\u8fde\u63a5\u5931\u8d25, \u8fd4\u56de\u503c\u5c0f\u4e8e0\ntabal headers \u5f53code>100\u65f6, \u4ee3\u8868\u670d\u52a1\u5668\u8fd4\u56de\u7684\u5934\u90e8\u6570\u636e \nstring/int body \u670d\u52a1\u5668\u54cd\u5e94\u7684\u5185\u5bb9\u5b57\u7b26\u4e32,\u5982\u679c\u662f\u4e0b\u8f7d\u6a21\u5f0f, \u5219\u8fd4\u56de\u6587\u4ef6\u5927\u5c0f\n\u4f8b\u5b50\uff1a\n\n--[[\ncode\u62a5\u9519\u4fe1\u606f\u5217\u8868:\n-1 HTTP_ERROR_STATE \u9519\u8bef\u7684\u72b6\u6001, \u4e00\u822c\u662f\u5e95\u5c42\u5f02\u5e38,\u8bf7\u62a5issue\n-2 HTTP_ERROR_HEADER \u9519\u8bef\u7684\u54cd\u5e94\u5934\u90e8, \u901a\u5e38\u662f\u670d\u52a1\u5668\u95ee\u9898\n-3 HTTP_ERROR_BODY \u9519\u8bef\u7684\u54cd\u5e94\u4f53,\u901a\u5e38\u662f\u670d\u52a1\u5668\u95ee\u9898\n-4 HTTP_ERROR_CONNECT \u8fde\u63a5\u670d\u52a1\u5668\u5931\u8d25, \u672a\u8054\u7f51,\u5730\u5740\u9519\u8bef,\u57df\u540d\u9519\u8bef\n-5 HTTP_ERROR_CLOSE \u63d0\u524d\u65ad\u5f00\u4e86\u8fde\u63a5, \u7f51\u7edc\u6216\u670d\u52a1\u5668\u95ee\u9898\n-6 HTTP_ERROR_RX \u63a5\u6536\u6570\u636e\u62a5\u9519, \u7f51\u7edc\u95ee\u9898\n-7 HTTP_ERROR_DOWNLOAD \u4e0b\u8f7d\u6587\u4ef6\u8fc7\u7a0b\u62a5\u9519, \u7f51\u7edc\u95ee\u9898\u6216\u4e0b\u8f7d\u8def\u5f84\u95ee\u9898\n-8 HTTP_ERROR_TIMEOUT \u8d85\u65f6, \u5305\u62ec\u8fde\u63a5\u8d85\u65f6,\u8bfb\u53d6\u6570\u636e\u8d85\u65f6\n-9 HTTP_ERROR_FOTA fota\u529f\u80fd\u62a5\u9519,\u901a\u5e38\u662f\u66f4\u65b0\u5305\u4e0d\u5408\u6cd5\n]]\n\n-- GET\u8bf7\u6c42\nlocal code, headers, body = http.request(\"GET\",\"http://site0.cn/api/httptest/simple/time\").wait()\nlog.info(\"http.get\", code, headers, body)\n-- POST\u8bf7\u6c42\nlocal code, headers, body = http.request(\"POST\",\"http://httpbin.com/post\", {}, \"abc=123\").wait()\nlog.info(\"http.post\", code, headers, body)\n\n-- GET\u8bf7\u6c42,\u4f46\u4e0b\u8f7d\u5230\u6587\u4ef6\nlocal code, headers, body = http.request(\"GET\",\"http://httpbin.com/\", {}, \"\", {dst=\"/data.bin\"}).wait()\nlog.info(\"http.get\", code, headers, body)\n\n-- \u81ea\u5b9a\u4e49\u8d85\u65f6\u65f6\u95f4, 5000ms\nhttp.request(\"GET\",\"http://httpbin.com/\", nil, nil, {timeout=5000}).wait()\n", "prefix": "http.request"}, "httpsrv.start": {"body": "httpsrv.start(${1:port},${2:func})", "description": "httpsrv.start(port, func) - \u542f\u52a8\u5e76\u76d1\u542c\u4e00\u4e2ahttp\u7aef\u53e3\n\u4f20\u5165\u503c\uff1a\nint \u7aef\u53e3\u53f7\nfunction \u56de\u8c03\u51fd\u6570\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue, \u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n\n-- \u76d1\u542c80\u7aef\u53e3\nhttpsrv.start(80, function(client, method, uri, headers, body)\n -- method \u662f\u5b57\u7b26\u4e32, \u4f8b\u5982 GET POST PUT DELETE\n -- uri \u4e5f\u662f\u5b57\u7b26\u4e32 \u4f8b\u5982 / /api/abc\n -- headers table\u7c7b\u578b\n -- body \u5b57\u7b26\u4e32\n log.info(\"httpsrv\", method, uri, json.encode(headers), body)\n if uri == \"/led/1\" then\n LEDA(1)\n return 200, {}, \"ok\"\n elseif uri == \"/led/0\" then\n LEDA(0)\n return 200, {}, \"ok\"\n end\n -- \u8fd4\u56de\u503c\u7684\u7ea6\u5b9a code, headers, body\n -- \u82e5\u6ca1\u6709\u8fd4\u56de\u503c, \u5219\u9ed8\u8ba4 404, {} ,\"\"\n return 404, {}, \"Not Found\" .. uri\nend)\n-- \u5173\u4e8e\u9759\u6001\u6587\u4ef6\n-- \u60c5\u51b51: / , \u6620\u5c04\u4e3a /index.html\n-- \u60c5\u51b52: /abc.html , \u5148\u67e5\u627e /abc.html, \u4e0d\u5b58\u5728\u7684\u8bdd\u67e5\u627e /abc.html.gz\n-- \u82e5gz\u5b58\u5728, \u4f1a\u81ea\u52a8\u4ee5\u538b\u7f29\u6587\u4ef6\u8fdb\u884c\u54cd\u5e94, \u7edd\u5927\u90e8\u5206\u6d4f\u89c8\u5668\u652f\u6301.\n-- \u5f53\u524d\u9ed8\u8ba4\u67e5\u627e /luadb/xxx \u4e0b\u7684\u6587\u4ef6,\u6682\u4e0d\u53ef\u914d\u7f6e\n", "prefix": "httpsrv.start"}, "httpsrv.stop": {"body": "httpsrv.stop(${1:port})", "description": "httpsrv.stop(port) - \u505c\u6b62http\u670d\u52a1\n\u4f20\u5165\u503c\uff1a\nint \u7aef\u53e3\u53f7\n\u8fd4\u56de\u503c\uff1a\nnil \u5f53\u524d\u65e0\u8fd4\u56de\u503c\n", "prefix": "httpsrv.stop"}, "i2c.exist": {"body": "i2c.exist(${1:id})", "description": "i2c.exist(id) - i2c\u7f16\u53f7\u662f\u5426\u5b58\u5728\n\u4f20\u5165\u503c\uff1a\nint \u8bbe\u5907id, \u4f8b\u5982i2c1\u7684id\u4e3a1, i2c2\u7684id\u4e3a2\n\u8fd4\u56de\u503c\uff1a\nbool \u5b58\u5728\u5c31\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- \u68c0\u67e5i2c1\u662f\u5426\u5b58\u5728\nif i2c.exist(1) then\n log.info(\"\u5b58\u5728 i2c1\")\nend\n", "prefix": "i2c.exist"}, "i2c.setup": {"body": "i2c.setup(${1:id},${2:speed},${3:slaveAddr})", "description": "i2c.setup(id, speed, slaveAddr) - i2c\u521d\u59cb\u5316\n\u4f20\u5165\u503c\uff1a\nint \u8bbe\u5907id, \u4f8b\u5982i2c1\u7684id\u4e3a1, i2c2\u7684id\u4e3a2\nint I2C\u901f\u5ea6, \u4f8b\u5982i2c.FAST\n\u8fd4\u56de\u503c\uff1a\nint \u6210\u529f\u5c31\u8fd4\u56de1,\u5426\u5219\u8fd4\u56de0\n\u4f8b\u5b50\uff1a\n-- \u521d\u59cb\u5316i2c1\ni2c.setup(1, i2c.FAST) -- \u7aef\u53e3\u6b63\u786e\u5c31\u4e00\u5b9a\u6210\u529f\n-- \u5982\u9700\u5224\u65adi2c id\u662f\u5426\u5408\u6cd5, \u8bf7\u4f7f\u7528 i2c.exist \u51fd\u6570\n", "prefix": "i2c.setup"}, "i2c.createSoft": {"body": "i2c.createSoft(${1:scl},${2:sda},${3:delay})", "description": "i2c.createSoft(scl,sda,delay) - \u65b0\u5efa\u4e00\u4e2a\u8f6f\u4ef6i2c\u5bf9\u8c61\n\u4f20\u5165\u503c\uff1a\nint i2c SCL\u5f15\u811a\u7f16\u53f7(GPIO\u7f16\u53f7)\nint i2c SDA\u5f15\u811a\u7f16\u53f7(GPIO\u7f16\u53f7)\nint \u6bcf\u4e2a\u64cd\u4f5c\u7684\u5ef6\u65f6, \u5355\u4f4dus, \u9ed8\u8ba45\n\u8fd4\u56de\u503c\uff1a\n\u8f6f\u4ef6I2C\u5bf9\u8c61 \u53ef\u5f53\u4f5ci2c\u7684id\u4f7f\u7528\n\u4f8b\u5b50\uff1a\n-- \u6ce8\u610f\uff01\u8fd9\u4e2a\u63a5\u53e3\u662f\u8f6f\u4ef6\u6a21\u62dfi2c\uff0c\u901f\u5ea6\u53ef\u80fd\u4f1a\u6bd4\u786c\u4ef6\u7684\u6162\n-- \u4e0d\u9700\u8981\u8c03\u7528i2c.close\u63a5\u53e3\n-- \u521d\u59cb\u5316\u8f6f\u4ef6i2c\nlocal softI2C = i2c.createSoft(1, 2, 5)\ni2c.send(softI2C, 0x5C, string.char(0x0F, 0x2F))\n-- \u6ce8\u610f, \u7b2c3\u4e2a\u53c2\u6570\u662f 2023.06.19 \u6dfb\u52a0\u7684delay\n-- \u901a\u8fc7\u8c03\u6574delay\u53c2\u6570\u7684\u503c, \u53ef\u589e\u52a0\u6216\u964d\u4f4eI2C\u7684\u901f\u5ea6\n", "prefix": "i2c.createSoft"}, "i2c.send": {"body": "i2c.send(${1:id},${2:addr},${3:data},${4:stop})", "description": "i2c.send(id, addr, data,stop) - i2c\u53d1\u9001\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nint \u8bbe\u5907id, \u4f8b\u5982i2c1\u7684id\u4e3a1, i2c2\u7684id\u4e3a2\nint I2C\u5b50\u8bbe\u5907\u7684\u5730\u5740, 7\u4f4d\u5730\u5740\ninteger/string/table \u5f85\u53d1\u9001\u7684\u6570\u636e,\u81ea\u9002\u5e94\u53c2\u6570\u7c7b\u578b\ninteger \u53ef\u9009\u53c2\u6570 \u662f\u5426\u53d1\u9001\u505c\u6b62\u4f4d 1\u53d1\u9001 0\u4e0d\u53d1\u9001 \u9ed8\u8ba4\u53d1\u9001(105\u4e0d\u652f\u6301)\n\u8fd4\u56de\u503c\uff1a\ntrue/false \u53d1\u9001\u662f\u5426\u6210\u529f\n\u4f8b\u5b50\uff1a\n-- \u5f80i2c0\u53d1\u90011\u4e2a\u5b57\u8282\u7684\u6570\u636e\ni2c.send(0, 0x68, 0x75)\n-- \u5f80i2c1\u53d1\u90012\u4e2a\u5b57\u8282\u7684\u6570\u636e\ni2c.send(1, 0x5C, string.char(0x0F, 0x2F))\ni2c.send(1, 0x5C, {0x0F, 0x2F})\n", "prefix": "i2c.send"}, "i2c.recv": {"body": "i2c.recv(${1:id},${2:addr},${3:len})", "description": "i2c.recv(id, addr, len) - i2c\u63a5\u6536\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nint \u8bbe\u5907id, \u4f8b\u5982i2c1\u7684id\u4e3a1, i2c2\u7684id\u4e3a2\nint I2C\u5b50\u8bbe\u5907\u7684\u5730\u5740, 7\u4f4d\u5730\u5740\nint \u63a5\u6536\u6570\u636e\u7684\u957f\u5ea6\n\u8fd4\u56de\u503c\uff1a\nstring \u6536\u5230\u7684\u6570\u636e\n\u4f8b\u5b50\uff1a\n-- \u4ecei2c1\u8bfb\u53d62\u4e2a\u5b57\u8282\u7684\u6570\u636e\nlocal data = i2c.recv(1, 0x5C, 2)\n", "prefix": "i2c.recv"}, "i2c.writeReg": {"body": "i2c.writeReg(${1:id},${2:addr},${3:reg},${4:data},${5:stop})", "description": "i2c.writeReg(id, addr, reg, data,stop) - i2c\u5199\u5bc4\u5b58\u5668\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nint \u8bbe\u5907id, \u4f8b\u5982i2c1\u7684id\u4e3a1, i2c2\u7684id\u4e3a2\nint I2C\u5b50\u8bbe\u5907\u7684\u5730\u5740, 7\u4f4d\u5730\u5740\nint \u5bc4\u5b58\u5668\u5730\u5740\nstring \u5f85\u53d1\u9001\u7684\u6570\u636e\ninteger \u53ef\u9009\u53c2\u6570 \u662f\u5426\u53d1\u9001\u505c\u6b62\u4f4d 1\u53d1\u9001 0\u4e0d\u53d1\u9001 \u9ed8\u8ba4\u53d1\u9001(105\u4e0d\u652f\u6301)\n\u8fd4\u56de\u503c\uff1a\ntrue/false \u53d1\u9001\u662f\u5426\u6210\u529f\n\u4f8b\u5b50\uff1a\n-- \u4ecei2c1\u7684\u5730\u5740\u4e3a0x5C\u7684\u8bbe\u5907\u7684\u5bc4\u5b58\u56680x01\u5199\u51652\u4e2a\u5b57\u8282\u7684\u6570\u636e\ni2c.writeReg(1, 0x5C, 0x01, string.char(0x00, 0xF2))\n", "prefix": "i2c.writeReg"}, "i2c.readReg": {"body": "i2c.readReg(${1:id},${2:addr},${3:reg},${4:len})", "description": "i2c.readReg(id, addr, reg, len) - i2c\u8bfb\u5bc4\u5b58\u5668\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nint \u8bbe\u5907id, \u4f8b\u5982i2c1\u7684id\u4e3a1, i2c2\u7684id\u4e3a2\nint I2C\u5b50\u8bbe\u5907\u7684\u5730\u5740, 7\u4f4d\u5730\u5740\nint \u5bc4\u5b58\u5668\u5730\u5740\nint \u5f85\u63a5\u6536\u7684\u6570\u636e\u957f\u5ea6\ninteger \u53ef\u9009\u53c2\u6570 \u662f\u5426\u53d1\u9001\u505c\u6b62\u4f4d 1\u53d1\u9001 0\u4e0d\u53d1\u9001 \u9ed8\u8ba4\u53d1\u9001(105\u4e0d\u652f\u6301)\n\u8fd4\u56de\u503c\uff1a\nstring \u6536\u5230\u7684\u6570\u636e\n\u4f8b\u5b50\uff1a\n-- \u4ecei2c1\u7684\u5730\u5740\u4e3a0x5C\u7684\u8bbe\u5907\u7684\u5bc4\u5b58\u56680x01\u8bfb\u51fa2\u4e2a\u5b57\u8282\u7684\u6570\u636e\ni2c.readReg(1, 0x5C, 0x01, 2)\n", "prefix": "i2c.readReg"}, "i2c.close": {"body": "i2c.close(${1:id})", "description": "i2c.close(id) - \u5173\u95edi2c\u8bbe\u5907\n\u4f20\u5165\u503c\uff1a\nint \u8bbe\u5907id, \u4f8b\u5982i2c1\u7684id\u4e3a1, i2c2\u7684id\u4e3a2\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n-- \u5173\u95edi2c1\ni2c.close(1)\n", "prefix": "i2c.close"}, "i2c.readDHT12": {"body": "i2c.readDHT12(${1:id})", "description": "i2c.readDHT12(id) - \u4ecei2c\u603b\u7ebf\u8bfb\u53d6DHT12\u7684\u6e29\u6e7f\u5ea6\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nint \u8bbe\u5907id, \u4f8b\u5982i2c1\u7684id\u4e3a1, i2c2\u7684id\u4e3a2\nint DHT12\u7684\u8bbe\u5907\u5730\u5740,\u9ed8\u8ba40x5C\n\u8fd4\u56de\u503c\uff1a\nboolean \u8bfb\u53d6\u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\nint \u6e7f\u5ea6\u503c,\u5355\u4f4d0.1%, \u4f8b\u5982 591 \u4ee3\u8868 59.1%\nint \u6e29\u5ea6\u503c,\u5355\u4f4d0.1\u6444\u6c0f\u5ea6, \u4f8b\u5982 292 \u4ee3\u8868 29.2\u6444\u6c0f\u5ea6\n\u4f8b\u5b50\uff1a\n-- \u4ecei2c0\u8bfb\u53d6DHT12\ni2c.setup(0)\nlocal re, H, T = i2c.readDHT12(0)\nif re then\n log.info(\"dht12\", H, T)\nend\n", "prefix": "i2c.readDHT12"}, "i2c.readSHT30": {"body": "i2c.readSHT30(${1:id},${2:addr})", "description": "i2c.readSHT30(id,addr) - \u4ecei2c\u603b\u7ebf\u8bfb\u53d6DHT30\u7684\u6e29\u6e7f\u5ea6\u6570\u636e(\u7531\"\u597d\u5947\u661f\"\u8d21\u732e)\n\u4f20\u5165\u503c\uff1a\nint \u8bbe\u5907id, \u4f8b\u5982i2c1\u7684id\u4e3a1, i2c2\u7684id\u4e3a2\nint \u8bbe\u5907addr,SHT30\u7684\u8bbe\u5907\u5730\u5740,\u9ed8\u8ba40x44 bit7\n\u8fd4\u56de\u503c\uff1a\nboolean \u8bfb\u53d6\u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\nint \u6e7f\u5ea6\u503c,\u5355\u4f4d0.1%, \u4f8b\u5982 591 \u4ee3\u8868 59.1%\nint \u6e29\u5ea6\u503c,\u5355\u4f4d0.1\u6444\u6c0f\u5ea6, \u4f8b\u5982 292 \u4ee3\u8868 29.2\u6444\u6c0f\u5ea6\n\u4f8b\u5b50\uff1a\n-- \u4ecei2c0\u8bfb\u53d6SHT30\ni2c.setup(0)\nlocal re, H, T = i2c.readSHT30(0)\nif re then\n log.info(\"sht30\", H, T)\nend\n", "prefix": "i2c.readSHT30"}, "i2c.transfer": {"body": "i2c.transfer(${1:id},${2:addr},${3:txBuff},${4:rxBuff},${5:rxLen})", "description": "i2c.transfer(id, addr, txBuff, rxBuff, rxLen) - i2c\u901a\u7528\u4f20\u8f93\uff0c\u5305\u62ec\u53d1\u9001N\u5b57\u8282\uff0c\u53d1\u9001N\u5b57\u8282+\u63a5\u6536N\u5b57\u8282\uff0c\u63a5\u6536N\u5b57\u8282\u4e09\u79cd\u529f\u80fd\uff0c\u5728\u53d1\u9001\u8f6c\u63a5\u6536\u8fc7\u7a0b\u4e2d\u53d1\u9001reStart\u4fe1\u53f7,\u89e3\u51b3\u7c7b\u4f3cmlx90614\u5fc5\u987b\u5e26restart\u4fe1\u53f7\uff0c\u4f46\u662f\u53c8\u4e0d\u80fd\u7528i2c.send\u6765\u63a7\u5236\u7684\uff0c\u6bd4\u5982air105\n\u4f20\u5165\u503c\uff1a\nint \u8bbe\u5907id, \u4f8b\u5982i2c1\u7684id\u4e3a1, i2c2\u7684id\u4e3a2\nint I2C\u5b50\u8bbe\u5907\u7684\u5730\u5740, 7\u4f4d\u5730\u5740\ninteger/string/zbuff \u5f85\u53d1\u9001\u7684\u6570\u636e,\u81ea\u9002\u5e94\u53c2\u6570\u7c7b\u578b\uff0c\u5982\u679c\u4e3anil\uff0c\u5219\u4e0d\u53d1\u9001\u6570\u636e\nzbuff \u5f85\u63a5\u6536\u6570\u636e\u7684zbuff \u5982\u679c\u4e0d\u7528zbuff\uff0c\u5219\u63a5\u6536\u6570\u636e\u5c06\u5728return\u8fd4\u56de\nint \u9700\u8981\u63a5\u6536\u7684\u6570\u636e\u957f\u5ea6\uff0c\u5982\u679c\u4e3a0\u6216nil\uff0c\u5219\u4e0d\u63a5\u6536\u6570\u636e\n\u8fd4\u56de\u503c\uff1a\nboolean true/false \u53d1\u9001\u662f\u5426\u6210\u529f\nstring or nil \u5982\u679c\u53c2\u65705\u662finterger\uff0c\u5219\u8fd4\u56de\u63a5\u6536\u5230\u7684\u6570\u636e\n\u4f8b\u5b50\uff1a\nlocal result, _ = i2c.transfer(0, 0x11, txbuff, rxbuff, 1)\nlocal result, _ = i2c.transfer(0, 0x11, txbuff, nil, 0)\t--\u53ea\u53d1\u9001txbuff\u91cc\u7684\u6570\u636e\uff0c\u4e0d\u63a5\u6536\u6570\u636e\uff0c\u5178\u578b\u5e94\u7528\u5c31\u662f\u5199\u5bc4\u5b58\u5668\u4e86\uff0c\u8fd9\u91cc\u5bc4\u5b58\u5668\u5730\u5740\u548c\u503c\u90fd\u653e\u5728\u4e86txbuff\u91cc\nlocal result, _ = i2c.transfer(0, 0x11, \"\\x01\\x02\\x03\", nil, 1) --\u53d1\u90010x01\uff0c 0x02\uff0c0x03\uff0c\u4e0d\u63a5\u6536\u6570\u636e\uff0c\u5982\u679c\u662feeprom\uff0c\u5c31\u662f\u5f800x01\u7684\u5730\u5740\u519902\u548c03\uff0c\u6216\u8005\u5f800x0102\u7684\u5730\u5740\u519903\uff0c\u770b\u5177\u4f53\u82af\u7247\u4e86\nlocal result, rxdata = i2c.transfer(0, 0x11, \"\\x01\\x02\", nil, 1) --\u53d1\u90010x01\uff0c 0x02\uff0c\u7136\u540e\u63a5\u65361\u4e2a\u5b57\u8282\uff0c\u5178\u578b\u5e94\u7528\u5c31\u662feeprom\nlocal result, rxdata = i2c.transfer(0, 0x11, 0x00, nil, 1) --\u53d1\u90010x00\uff0c\u7136\u540e\u63a5\u65361\u4e2a\u5b57\u8282\uff0c\u5178\u578b\u5e94\u7528\u5404\u79cd\u4f20\u611f\u5668\n", "prefix": "i2c.transfer"}, "i2c.xfer": {"body": "i2c.xfer(${1:id},${2:addr},${3:txBuff},${4:rxBuff},${5:rxLen},${6:transfer_done_topic},${7:timeout})", "description": "i2c.xfer(id, addr, txBuff, rxBuff, rxLen, transfer_done_topic, timeout) - i2c\u975e\u963b\u585e\u901a\u7528\u4f20\u8f93\uff0c\u7c7b\u4f3ctransfer\uff0c\u4f46\u662f\u4e0d\u4f1a\u7b49\u5230I2C\u4f20\u8f93\u5b8c\u6210\u624d\u8fd4\u56de\uff0c\u8c03\u7528\u672c\u51fd\u6570\u4f1a\u7acb\u523b\u8fd4\u56de\uff0cI2C\u4f20\u8f93\u5b8c\u6210\u540e\uff0c\u901a\u8fc7\u6d88\u606f\u56de\u8c03\n\u4f20\u5165\u503c\uff1a\nint \u8bbe\u5907id, \u4f8b\u5982i2c1\u7684id\u4e3a1, i2c2\u7684id\u4e3a2\nint I2C\u5b50\u8bbe\u5907\u7684\u5730\u5740, 7\u4f4d\u5730\u5740\nzbuff \u5f85\u53d1\u9001\u7684\u6570\u636e\uff0c\u7531\u4e8e\u7528\u7684\u975e\u963b\u585e\u6a21\u578b\uff0c\u4e3a\u4fdd\u8bc1\u52a8\u6001\u6570\u636e\u7684\u6709\u6548\u6027\uff0c\u53ea\u80fd\u4f7f\u7528zbuff\uff0c\u53d1\u9001\u7684\u6570\u636e\u4ecezbuff.addr\u5f00\u59cb\uff0c\u957f\u5ea6\u4e3azbuff.used\nzbuff \u5f85\u63a5\u6536\u6570\u636e\u7684zbuff\uff0c\u5982\u679c\u4e3anil\uff0c\u5219\u5ffd\u7565\u540e\u9762\u53c2\u6570\uff0c \u4e0d\u63a5\u6536\u6570\u636e\u3002\u63a5\u6536\u7684\u6570\u636e\u4f1a\u653e\u5728zbuff.addr\u5f00\u59cb\u7684\u4f4d\u7f6e\uff0c\u4f1a\u8986\u76d6\u6389\u4e4b\u524d\u7684\u6570\u636e\uff0c\u6ce8\u610fzhuff\u7684\u9884\u7559\u7a7a\u95f4\u8981\u8db3\u591f\nint \u9700\u8981\u63a5\u6536\u7684\u6570\u636e\u957f\u5ea6\uff0c\u5982\u679c\u4e3a0\u6216nil\uff0c\u5219\u4e0d\u63a5\u6536\u6570\u636e\nstring \u4f20\u8f93\u5b8c\u6210\u540e\u56de\u8c03\u7684\u6d88\u606f\nint \u8d85\u65f6\u65f6\u95f4\uff0c\u5982\u679c\u586bnil\uff0c\u5219\u4e3a100ms\n\u8fd4\u56de\u503c\uff1a\nboolean true/false \u672c\u6b21\u4f20\u8f93\u662f\u5426\u6b63\u786e\u542f\u52a8\uff0ctrue\uff0c\u542f\u52a8\uff0cfalse\uff0c\u6709\u9519\u8bef\u65e0\u6cd5\u542f\u52a8\u3002\u4f20\u8f93\u5b8c\u6210\u4f1a\u53d1\u5e03\u6d88\u606ftransfer_done_topic\u548cboolean\u578b\u7ed3\u679c\n\u4f8b\u5b50\uff1a\nlocal result = i2c.xfer(0, 0x11, txbuff, rxbuff, 1, \"I2CDONE\") if result then result, i2c_id, succ, error_code = sys.waitUntil(\"I2CDONE\") end if not result or not succ then log.info(\"i2c fail, error code\", error_code) else log.info(\"i2c ok\") end\n\n", "prefix": "i2c.xfer"}, "i2c.scan": {"body": "i2c.scan(${1:id})", "description": "i2c.scan(id) - \u626b\u63cfi2c\u8bbe\u5907\n\u4f20\u5165\u503c\uff1a\nint \u8bbe\u5907id, \u4f8b\u5982i2c1\u7684id\u4e3a1, i2c2\u7684id\u4e3a2\n\u8fd4\u56de\u503c\uff1a\nnil \u5f53\u524d\u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n-- \u672c\u51fd\u6570\u4e8e2023.07.04\u6dfb\u52a0\n-- \u8fd9\u4e2a\u51fd\u6570\u7684\u4e3b\u8981\u76ee\u6807\u662f\u4e3a\u4e86\u5728\u5f00\u53d1\u671f\u626b\u63cfi2c\u8bbe\u5907\n-- \u6709\u4e9bBSP\u5728\u6307\u5b9aaddr\u65e0\u54cd\u5e94\u65f6\u4f1a\u8f93\u51fa\u65e5\u5fd7,\u5bfc\u81f4\u8f93\u51fa\u4f1a\u88ab\u6253\u4e71\ni2c.scan()\n", "prefix": "i2c.scan"}, "i2s.setup": {"body": "i2s.setup(${1:id},${2:mode},${3:sample},${4:bitw},${5:channel},${6:format},${7:mclk})", "description": "i2s.setup(id, mode, sample, bitw, channel, format, mclk) - \u521d\u59cb\u5316i2s\n\u4f20\u5165\u503c\uff1a\nint i2s\u901a\u9053\u53f7,\u4e0e\u5177\u4f53\u8bbe\u5907\u6709\u5173\nint \u6a21\u5f0f, \u5f53\u524d\u4ec5\u652f\u63010, MASTER|TX|RX \u6a21\u5f0f, \u6682\u4e0d\u652f\u6301slave. \u53ef\u9009\nint \u91c7\u6837\u7387,\u9ed8\u8ba444100. \u53ef\u9009\nint \u6570\u636e\u4f4d\u6570,\u9ed8\u8ba416, \u53ef\u4ee5\u662f8\u7684\u500d\u6570\nint \u58f0\u9053, 0 \u5de6\u58f0\u9053, 1 \u53f3\u58f0\u9053, 2 \u53cc\u58f0\u9053. \u53ef\u9009\nint \u683c\u5f0f, \u53ef\u9009MODE_I2S, MODE_LSB, MODE_MSB\nint mclk\u9891\u7387, \u9ed8\u8ba4 8M. \u53ef\u9009\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u4e0e\u5426\nint \u5e95\u5c42\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n-- \u4ee5\u9ed8\u8ba4\u53c2\u6570\u521d\u59cb\u5316i2s\ni2s.setup(0)\n-- \u4ee5\u8be6\u7ec6\u53c2\u6570\u521d\u59cb\u5316i2s, \u793a\u4f8b\u4e3a\u9ed8\u8ba4\u503c\ni2s.setup(0, 0, 44100, 16, 0, 0, 8000000)\n", "prefix": "i2s.setup"}, "i2s.send": {"body": "i2s.send(${1:id},${2:data},${3:len})", "description": "i2s.send(id, data, len) - \u53d1\u9001i2s\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nint \u901a\u9053id\nstring \u6570\u636e, \u53ef\u4ee5\u662f\u5b57\u7b26\u4e32\u6216zbuff\nint \u6570\u636e\u957f\u5ea6,\u5355\u4f4d\u5b57\u8282, \u5b57\u7b26\u4e32\u9ed8\u8ba4\u4e3a\u5b57\u7b26\u4e32\u5168\u957f, zbuff\u9ed8\u8ba4\u4e3a\u6307\u9488\u4f4d\u7f6e\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u4e0e\u5426\nint \u5e95\u5c42\u8fd4\u56de\u503c,\u4f9b\u8c03\u8bd5\u7528\n\u4f8b\u5b50\uff1a\nlocal f = io.open(\"/luadb/abc.wav\")\nwhile 1 do\n local data = f:read(4096)\n if not data or #data == 0 then\n break\n end\n i2s.send(0, data)\n sys.wait(100)\nend\n", "prefix": "i2s.send"}, "i2s.recv": {"body": "i2s.recv(${1:id},${2:buffer},${3:len})", "description": "i2s.recv(id, buffer, len) - \u63a5\u6536i2s\u6570\u636e\uff0c\u6ce8\u610f\u5728\u6570\u636e\u5728\u56de\u8c03\u65f6\u5df2\u7ecf\u5b58\u653e\u5728zbuff\u91cc\uff0c\u76ee\u524d\u53ea\u6709air780e\u7cfb\u5217\u652f\u6301\n\u4f20\u5165\u503c\uff1a\nint \u901a\u9053id\nzbuff \u6570\u636e\u7f13\u5b58\u533a\nint \u5355\u6b21\u8fd4\u56de\u7684\u6570\u636e\u957f\u5ea6,\u5355\u4f4d\u5b57\u8282,\u5fc5\u987b\u4e0e\u4f20\u5165\u7684zbuff\u7684\u5927\u5c0f\u4e00\u81f4\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u4e0e\u5426\n\u4f8b\u5b50\uff1a\nlocal buffer = zbuff.create(3200)\nlocal succ = i2s.recv(0, buffer, 3200);\n", "prefix": "i2s.recv"}, "i2s.close": {"body": "i2s.close(${1:id})", "description": "i2s.close(id) - \u5173\u95edi2s\n\u4f20\u5165\u503c\uff1a\nint \u901a\u9053id\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\ni2s.close(0)\n", "prefix": "i2s.close"}, "i2s.on": {"body": "i2s.on(${1:id},${2:func})", "description": "i2s.on(id, func) - \u6ce8\u518cI2S\u4e8b\u4ef6\u56de\u8c03\n\u4f20\u5165\u503c\uff1a\nint i2s id, i2s0\u51990, i2s1\u51991\nfunction \u56de\u8c03\u65b9\u6cd5\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\ni2s.on(0, function(id, buff)\n\tif buff then\n\t\tlog.info(\"i2s get data in zbuff\")\n\telse\n\t\tlog.info(\"i2s tx one block done\")\n\tend\nend)\n", "prefix": "i2s.on"}, "i2s.txStat": {"body": "i2s.txStat(${1:id})", "description": "i2s.txStat(id) - \u83b7\u53d6i2s\u7684\u53d1\u9001\u7f13\u51b2\u533a\u72b6\u6001\n\u4f20\u5165\u503c\uff1a\nint i2s id, i2s0\u51990, i2s1\u51991\nreturn \u5e95\u5c42\u7f13\u51b2\u533a\u7684\u603b\u5927\u5c0f\nreturn \u5e95\u5c42\u7f13\u51b2\u533a\u7684\u5269\u4f59\u5f85\u53d1\u9001\u6570\u636e\n\u4f8b\u5b50\uff1a\n-- \u8bfb\u53d6\u53d1\u9001\u7f13\u51b2\u533a\u7684\u72b6\u6001, \u4ece\u800c\u5224\u65ad\u662f\u5426\u9700\u8981\u7ee7\u7eed\u4f20\u5165\u97f3\u9891\u6570\u636e\nlocal max, remain = i2s.txStat(0)\nlog.info(\"i2s\u53d1\u9001\u7f13\u51b2\u533a\u72b6\u6001\", max, remain)\n", "prefix": "i2s.txStat"}, "iconv.open": {"body": "iconv.open(${1:tocode},${2:fromcode})", "description": "iconv.open(tocode, fromcode) - \u6253\u5f00\u76f8\u5e94\u5b57\u7b26\u7f16\u7801\u8f6c\u6362\u51fd\u6570\n\u4f20\u5165\u503c\uff1a\nstring tocode$\u76ee\u6807\u7f16\u7801\u683c\u5f0f$gb2312/ucs2/ucs2be/utf8\nstring fromcode$\u6e90\u7f16\u7801\u683c\u5f0f$gb2312/ucs2/ucs2be/utf8\nreturn table$cd$\u7f16\u7801\u8f6c\u6362\u51fd\u6570\u7684\u8f6c\u6362\u53e5\u67c4$ \n\u4f8b\u5b50\uff1a\n--unicode\u5927\u7aef\u7f16\u7801 \u8f6c\u5316\u4e3a utf8\u7f16\u7801\nlocal cd = iconv.open(\"utf8\", \"ucs2be\")\n", "prefix": "iconv.open"}, "iconv:iconv": {"body": "iconv:iconv(${1:inbuf})", "description": "iconv:iconv(inbuf) - \u5b57\u7b26\u7f16\u7801\u8f6c\u6362\n\u4f20\u5165\u503c\uff1a\nstring \u91ca\u4e49\uff1a\u5f85\u8f6c\u6362\u5b57\u7b26\u4e32\n\u8fd4\u56de\u503c\uff1a\nnumber \u91ca\u4e49\uff1a\u8fd4\u56de\u7f16\u7801\u8f6c\u6362\u540e\u7684\u7ed3\u679c
\u53d6\u503c\uff1a0\u6210\u529f,-1\u5931\u8d25\n\u4f8b\u5b50\uff1a\n--unicode\u5927\u7aef\u7f16\u7801 \u8f6c\u5316\u4e3a utf8\u7f16\u7801\nfunction ucs2beToUtf8(ucs2s)\n local iconv = iconv.open(\"utf8\", \"ucs2be\")\n return iconv:iconv(ucs2s)\nend\n", "prefix": "iconv:iconv"}, "cd:iconv": {"body": "cd:iconv(${1:inbuf})", "description": "cd:iconv(inbuf) - \u5b57\u7b26\u7f16\u7801\u8f6c\u6362\n\u4f20\u5165\u503c\uff1a\nstring inbuf$\u8f93\u5165\u5b57\u7b26\u4e32$\u4f8b\u5982:ucs2s \nreturn number$result$\u8fd4\u56de\u7f16\u7801\u8f6c\u6362\u540e\u7684\u7ed3\u679c$0\u6210\u529f,-1\u5931\u8d25\n\u4f8b\u5b50\uff1a\n--unicode\u5927\u7aef\u7f16\u7801 \u8f6c\u5316\u4e3a utf8\u7f16\u7801\nfunction ucs2beToUtf8(ucs2s)\n local cd = iconv.open(\"utf8\", \"ucs2be\")\n return cd:iconv(ucs2s)\nend\n", "prefix": "cd:iconv"}, "iconv.close": {"body": "iconv.close(${1:cd})", "description": "iconv.close(cd) - \u5173\u95ed\u5b57\u7b26\u7f16\u7801\u8f6c\u6362\n\u4f20\u5165\u503c\uff1a\nstring cd$iconv.open\u8fd4\u56de\u7684\u53e5\u67c4$ \nreturn \n\u4f8b\u5b50\uff1a\n--\u5173\u95ed\u5b57\u7b26\u7f16\u7801\u8f6c\u6362\nlocal cd = iconv.open(\"utf8\", \"ucs2be\")\niconv.close(cd)\n", "prefix": "iconv.close"}, "io.exists": {"body": "io.exists(${1:path})", "description": "io.exists(path) - \u5224\u65ad\u6587\u4ef6\u662f\u5426\u5b58\u5728\n\u4f20\u5165\u503c\uff1a\nstring \u6587\u4ef6\u8def\u5f84\n\u8fd4\u56de\u503c\uff1a\nbool \u5b58\u5728\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\nlog.info(\"io\", \"file exists\", io.exists(\"/boottime\"))\n", "prefix": "io.exists"}, "io.fileSize": {"body": "io.fileSize(${1:path})", "description": "io.fileSize(path) - \u83b7\u53d6\u6587\u4ef6\u5927\u5c0f\n\u4f20\u5165\u503c\uff1a\nstring \u6587\u4ef6\u8def\u5f84\n\u8fd4\u56de\u503c\uff1a\nint \u6587\u4ef6\u6570\u636e,\u82e5\u6587\u4ef6\u4e0d\u5b58\u5728\u4f1a\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\nlocal fsize = io.fileSize(\"/bootime\")\nif fsize and fsize > 1024 then\n log.info(\"io\", \"file size\", fsize)\nend\n", "prefix": "io.fileSize"}, "io.readFile": {"body": "io.readFile(${1:path},${2:mode},${3:offset},${4:len})", "description": "io.readFile(path, mode, offset, len) - \u8bfb\u53d6\u6574\u4e2a\u6587\u4ef6,\u8bf7\u6ce8\u610f\u5185\u5b58\u6d88\u8017\n\u4f20\u5165\u503c\uff1a\nstring \u6587\u4ef6\u8def\u5f84\nstring \u8bfb\u53d6\u6a21\u5f0f, \u9ed8\u8ba4 \"rb\"\nint \u8d77\u59cb\u4f4d\u7f6e,\u9ed8\u8ba40\nint \u8bfb\u53d6\u957f\u5ea6,\u9ed8\u8ba4\u6574\u4e2a\u6587\u4ef6\n\u8fd4\u56de\u503c\uff1a\nstring \u6587\u4ef6\u6570\u636e,\u82e5\u6587\u4ef6\u4e0d\u5b58\u5728\u4f1a\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\nlocal data = io.readFile(\"/bootime\")\n-- \u6ce8\u610f: offset\u548clen\u53c2\u6570\u662f 2023.6.6\u6dfb\u52a0\u7684\n-- \u8bfb\u53d6abc.txt, \u5148\u8df3\u8fc7128\u5b57\u8282, \u7136\u540e\u8bfb\u53d6512\u5b57\u8282\u6570\u636e\nlocal data = io.readFile(\"/abc.txt\", \"rb\", 128, 512)\n", "prefix": "io.readFile"}, "io.writeFile": {"body": "io.writeFile(${1:path},${2:data})", "description": "io.writeFile(path, data) - \u5c06\u6570\u636e\u5199\u5165\u6587\u4ef6\n\u4f20\u5165\u503c\uff1a\nstring \u6587\u4ef6\u8def\u5f84\nstring \u6570\u636e\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u8fd4\u56detrue, \u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\nio.writeFile(\"/bootime\", \"1\")\n", "prefix": "io.writeFile"}, "io.fill": {"body": "io.fill(${1:buff},${2:offset},${3:len})", "description": "io.fill(buff, offset, len) - \u8bfb\u53d6\u6587\u4ef6\u5e76\u586b\u5145\u5230zbuff\u5185,\u4f46\u4e0d\u79fb\u52a8\u6307\u9488\u4f4d\u7f6e\n\u4f20\u5165\u503c\uff1a\nuserdata zbuff\u5b9e\u4f53\nint \u5199\u5165\u7684\u4f4d\u7f6e,\u9ed8\u8ba4\u662f0\nint \u5199\u5165\u7684\u957f\u5ea6,\u9ed8\u8ba4\u662fzbuff\u7684len\u51cf\u53bboffset\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\nint \u8fd4\u56de\u5b9e\u9645\u8bfb\u53d6\u5230\u7684\u957f\u5ea6\uff0c\u5982\u679c\u5c0f\u4e8e0\u4e5f\u8bf4\u660e\u662f\u8bfb\u53d6\u5931\u8d25\u4e86\n\u4f8b\u5b50\uff1a\nlocal buff = zbuff.create(1024)\nlocal f = io.open(\"/sd/test.txt\")\nif f then\n f:fill(buff)\nend\n", "prefix": "io.fill"}, "io.mkfs": {"body": "io.mkfs(${1:path})", "description": "io.mkfs(path) - \u683c\u5f0f\u5316\u6587\u4ef6\u7cfb\u7edf,\u9700\u6307\u5b9a\u6302\u8f7d\u70b9\n\u4f20\u5165\u503c\uff1a\nstring \u6302\u8f7d\u70b9\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u4e0e\u5426\nint \u5e95\u5c42\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\nlocal ret, errio = io.mkfs(\"/sd\")\nlog.info(\"fs\", \"mkfs\", ret, errio)\n", "prefix": "io.mkfs"}, "io.mkdir": {"body": "io.mkdir(${1:path})", "description": "io.mkdir(path) - \u521b\u5efa\u6587\u4ef6\u5939\n\u4f20\u5165\u503c\uff1a\nstring \u9700\u8981\u5efa\u7acb\u7684\u76ee\u5f55\u8def\u5f84\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u4e0e\u5426\nint \u5e95\u5c42\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\nlocal ret, errio = io.mkdir(\"/data/\")\nlog.info(\"fs\", \"mkdir\", ret, errio)\n", "prefix": "io.mkdir"}, "io.rmdir": {"body": "io.rmdir(${1:path})", "description": "io.rmdir(path) - \u5220\u9664\u6587\u4ef6\u5939\n\u4f20\u5165\u503c\uff1a\nstring \u9700\u8981\u79fb\u9664\u7684\u76ee\u5f55\u8def\u5f84\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u4e0e\u5426\nint \u5e95\u5c42\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\nlocal ret, errio = io.rmdir(\"/data/\")\nlog.info(\"fs\", \"rmdir\", ret, errio)\n", "prefix": "io.rmdir"}, "io.lsdir": {"body": "io.lsdir(${1:path},${2:len},${3:offset})", "description": "io.lsdir(path, len, offset) - \u5217\u51fa\u76ee\u5f55\u4e0b\u7684\u6587\u4ef6\n\u4f20\u5165\u503c\uff1a\nstring \u9700\u8981\u679a\u4e3e\u7684\u76ee\u5f55\u8def\u5f84\nint \u6700\u5927\u957f\u5ea6, \u9ed8\u8ba410, \u6700\u9ad850\nint \u504f\u79fb\u91cf, \u9ed8\u8ba40, \u5f53\u76ee\u5f55\u6587\u4ef6\u5f88\u591a\u65f6\u5206\u9875\u67e5\u8be2\u7528\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u4e0e\u5426\nint \u5e95\u5c42\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\nlocal ret, data = io.lsdir(\"/data/\", 10, 0)\nif ret then\n log.info(\"fs\", \"lsdir\", json.encode(data))\nelse\n log.info(\"fs\", \"lsdir\", \"fail\", ret, data)\nend\n", "prefix": "io.lsdir"}, "io.lsmount": {"body": "io.lsmount()", "description": "io.lsmount() - \u5217\u51fa\u6240\u6709\u6302\u8f7d\u70b9\n\u8fd4\u56de\u503c\uff1a\ntable \u6302\u8f7d\u70b9\u5217\u8868\n\u4f8b\u5b50\uff1a\nlocal data = io.lsmount()\nlog.info(\"fs\", \"lsmount\", json.encode(data))\n", "prefix": "io.lsmount"}, "ioqueue.init": {"body": "ioqueue.init(${1:hwtimer_id},${2:cmd_cnt},${3:repeat_cnt})", "description": "ioqueue.init(hwtimer_id,cmd_cnt,repeat_cnt) - \u521d\u59cb\u5316\u4e00\u4e2aio\u64cd\u4f5c\u961f\u5217\n\u4f20\u5165\u503c\uff1a\nint \u786c\u4ef6\u5b9a\u65f6\u5668id\uff0c\u9ed8\u8ba4\u75280\uff0c\u6839\u636e\u5b9e\u9645MCU\u786e\u5b9a\uff0cair105\u4e3a0~5\uff0c\u4e0epwm\u5171\u7528\uff0c\u540c\u4e00\u4e2a\u901a\u9053\u53f7\u4e0d\u80fd\u540c\u65f6\u4e3apwm\u548cioqueue\nint \u4e00\u4e2a\u5b8c\u6574\u5468\u671f\u9700\u8981\u7684\u547d\u4ee4\uff0c\u53ef\u4ee5\u6bd4\u5b9e\u9645\u7684\u591a\nint \u91cd\u590d\u6b21\u6570,\u9ed8\u8ba4\u662f1\uff0c\u5982\u679c\u51990\u5219\u8868\u793a\u65e0\u9650\u6b21\u6570\u5faa\u73af\nreturn \u65e0\n\u4f8b\u5b50\uff1a\nioqueue.init(0,10,5) --\u4ee5timer0\u4e3a\u65f6\u949f\u6e90\u521d\u59cb\u5316\u4e00\u4e2aio\u64cd\u4f5c\u961f\u5217\uff0c\u670910\u4e2a\u6709\u6548\u547d\u4ee4\uff0c\u5faa\u73af5\u6b21\n", "prefix": "ioqueue.init"}, "ioqueue.setdelay": {"body": "ioqueue.setdelay(${1:hwtimer_id},${2:time_us},${3:time_tick},${4:continue})", "description": "ioqueue.setdelay(hwtimer_id,time_us,time_tick,continue) - \u5bf9io\u64cd\u4f5c\u961f\u5217\u589e\u52a0\u5ef6\u65f6\u547d\u4ee4\n\u4f20\u5165\u503c\uff1a\nint \u786c\u4ef6\u5b9a\u65f6\u5668id\nint \u5ef6\u65f6\u65f6\u95f4,0~65535us\nint \u5ef6\u65f6\u5fae\u8c03\u65f6\u95f4,0~255tick,\u603b\u7684\u5ef6\u65f6\u65f6\u95f4\u662ftime_us * 1us_tick + time_tick\nboolean \u662f\u5426\u8fde\u7eed\u662f\u8fde\u7eed\u5ef6\u65f6\uff0c\u9ed8\u8ba4\u5426\uff0c\u5982\u679c\u662f\uff0c\u5b9a\u65f6\u5668\u5728\u65f6\u95f4\u5230\u540e\u4e0d\u4f1a\u505c\u6b62\u800c\u662f\u91cd\u65b0\u8ba1\u65f6\uff0c\n", "prefix": "ioqueue.setdelay"}, "ioqueue.delay": {"body": "ioqueue.delay(${1:hwtimer_id})", "description": "ioqueue.delay(hwtimer_id) - \u5bf9io\u64cd\u4f5c\u961f\u5217\u589e\u52a0\u4e00\u6b21\u91cd\u590d\u5ef6\u65f6\uff0c\u5728\u524d\u9762\u5fc5\u987b\u6709setdelay\u4e14\u662f\u8fde\u7eed\u5ef6\u65f6\n\u4f20\u5165\u503c\uff1a\nint \u786c\u4ef6\u5b9a\u65f6\u5668id\nreturn \u65e0\n\u4f8b\u5b50\uff1a\nioqueue.setdelay(0,9,15,true) --\u5ef6\u65f69us+15\u4e2atick,\u5728\u4e4b\u540e\u9047\u5230delay\u547d\u4ee4\u65f6\uff0c\u4f1a\u5ef6\u65f69us+15\u4e2atick\nioqueue.delay(0)\n", "prefix": "ioqueue.delay"}, "ioqueue.setgpio": {"body": "ioqueue.setgpio(${1:hwtimer_id},${2:pin},${3:is_input},${4:pull_mode},${5:init_level})", "description": "ioqueue.setgpio(hwtimer_id,pin,is_input,pull_mode,init_level) - \u5bf9io\u64cd\u4f5c\u961f\u5217\u589e\u52a0\u8bbe\u7f6egpio\u547d\u4ee4\n\u4f20\u5165\u503c\uff1a\nint \u786c\u4ef6\u5b9a\u65f6\u5668id\nint pin\nboolean \u662f\u5426\u662f\u8f93\u5165\nint \u4e0a\u4e0b\u62c9\u6a21\u5f0f,\u53ea\u80fd\u662f0,gpio.PULLUP,gpio.PULLDOWN\nint \u521d\u59cb\u8f93\u51fa\u7535\u5e73\nreturn \u65e0\n\u4f8b\u5b50\uff1a\nioqueue.setgpio(0,pin.PB01,true,gpio.PULLUP,0) --PB01\u8bbe\u7f6e\u6210\u4e0a\u62c9\u8f93\u5165\nioqueue.setgpio(0,pin.PB01,false,0,1)--PB01\u8bbe\u7f6e\u6210\u9ed8\u8ba4\u4e0a\u4e0b\u62c9\u8f93\u51fa\u9ad8\u7535\u5e73\n", "prefix": "ioqueue.setgpio"}, "ioqueue.input": {"body": "ioqueue.input(${1:hwtimer_id},${2:pin})", "description": "ioqueue.input(hwtimer_id,pin) - \u5bf9io\u64cd\u4f5c\u961f\u5217\u589e\u52a0\u8bfb\u53d6gpio\u547d\u4ee4\n\u4f20\u5165\u503c\uff1a\nint \u786c\u4ef6\u5b9a\u65f6\u5668id\nint pin\nreturn \u65e0\n\u4f8b\u5b50\uff1a\nioqueue.input(0,pin.PB01)\n\n", "prefix": "ioqueue.input"}, "ioqueue.output": {"body": "ioqueue.output(${1:hwtimer_id},${2:pin},${3:level})", "description": "ioqueue.output(hwtimer_id,pin,level) - \u5bf9io\u64cd\u4f5c\u961f\u5217\u589e\u52a0\u8f93\u51faGPIO\u547d\u4ee4\n\u4f20\u5165\u503c\uff1a\nint \u786c\u4ef6\u5b9a\u65f6\u5668id\nint pin\nint \u8f93\u51fa\u7535\u5e73\nreturn \u65e0\n\u4f8b\u5b50\uff1a\nioqueue.output(0,pin.PB01,0)\n", "prefix": "ioqueue.output"}, "ioqueue.setcap": {"body": "ioqueue.setcap(${1:hwtimer_id},${2:pin},${3:pull_mode},${4:irq_mode},${5:max_tick})", "description": "ioqueue.setcap(hwtimer_id,pin,pull_mode,irq_mode,max_tick) - \u5bf9io\u64cd\u4f5c\u961f\u5217\u589e\u52a0\u8bbe\u7f6e\u6355\u83b7\u67d0\u4e2aIO\u547d\u4ee4\n\u4f20\u5165\u503c\uff1a\nint \u786c\u4ef6\u5b9a\u65f6\u5668id\nint pin\nint \u4e0a\u4e0b\u62c9\u6a21\u5f0f,\u53ea\u80fd\u662f0,gpio.PULLUP,gpio.PULLDOWN\nint \u4e2d\u65ad\u6a21\u5f0f,\u53ea\u80fd\u662fgpio.BOTH,gpio.RISING,gpio.FALLING\nint \u5b9a\u65f6\u5668\u6700\u5927\u8ba1\u65f6\u65f6\u95f4 \u8003\u8651\u5230lua\u662fint\u7c7b\u578b\uff0c\u6700\u5c0f0x10000, \u6700\u5927\u503c\u4e3a0x7fffffff\uff0c\u9ed8\u8ba4\u4e3a\u6700\u5927\u503c\nreturn \u65e0\n\u4f8b\u5b50\uff1a\nioqueue.setcap(0,pin.PB01,gpio.PULLUP,gpio.FALLING,48000000)\n", "prefix": "ioqueue.setcap"}, "ioqueue.capture": {"body": "ioqueue.capture(${1:hwtimer_id})", "description": "ioqueue.capture(hwtimer_id) - \u5bf9io\u64cd\u4f5c\u961f\u5217\u589e\u52a0\u6355\u83b7\u4e00\u6b21IO\u72b6\u6001\u547d\u4ee4\n\u4f20\u5165\u503c\uff1a\nint \u786c\u4ef6\u5b9a\u65f6\u5668id\nreturn \u65e0\n\u4f8b\u5b50\uff1a\nioqueue.capture(0)\n", "prefix": "ioqueue.capture"}, "ioqueue.capend": {"body": "ioqueue.capend(${1:hwtimer_id},${2:pin})", "description": "ioqueue.capend(hwtimer_id,pin) - \u5bf9io\u64cd\u4f5c\u961f\u5217\u589e\u52a0\u7ed3\u675f\u6355\u83b7\u67d0\u4e2aIO\u547d\u4ee4\n\u4f20\u5165\u503c\uff1a\nint \u786c\u4ef6\u5b9a\u65f6\u5668id\nint pin\nreturn \u65e0\n\u4f8b\u5b50\uff1a\nioqueue.capend(0,pin.PB01)\n", "prefix": "ioqueue.capend"}, "ioqueue.get": {"body": "ioqueue.get(${1:hwtimer_id},${2:input_buff},${3:capture_buff})", "description": "ioqueue.get(hwtimer_id, input_buff, capture_buff) - * \u83b7\u53d6io\u64cd\u4f5c\u961f\u5217\u4e2d\u8f93\u5165\u548c\u6355\u83b7\u7684\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nint \u786c\u4ef6\u5b9a\u65f6\u5668id\nzbuff \u5b58\u653eIO\u8f93\u5165\u6570\u636e\u7684buff\uff0c\u6309\u71671byte pin + 1byte level \u5f62\u5f0f\u5b58\u653e\u6570\u636e\nzbuff \u5b58\u653eIO\u6355\u83b7\u6570\u636e\u7684buff\uff0c\u6309\u71671byte pin + 1byte level + 4byte tick\u5f62\u5f0f\u5b58\u653e\u6570\u636e\n\u8fd4\u56de\u503c\uff1a\nint \u8fd4\u56de\u591a\u5c11\u7ec4IO\u8f93\u5165\u6570\u636e\nint \u8fd4\u56de\u591a\u5c11\u7ec4IO\u6355\u83b7\u6570\u636e\n\u4f8b\u5b50\uff1a\nlocal input_cnt, capture_cnt = ioqueue.get(0, input_buff, capture_buff)\n", "prefix": "ioqueue.get"}, "ioqueue.start": {"body": "ioqueue.start(${1:hwtimer_id})", "description": "ioqueue.start(hwtimer_id) - \u542f\u52a8io\u64cd\u4f5c\u961f\u5217\n\u4f20\u5165\u503c\uff1a\nint \u786c\u4ef6\u5b9a\u65f6\u5668id\nreturn \u65e0\n\u4f8b\u5b50\uff1a\nioqueue.start(0)\n", "prefix": "ioqueue.start"}, "ioqueue.stop": {"body": "ioqueue.stop(${1:hwtimer_id})", "description": "ioqueue.stop(hwtimer_id) - \u505c\u6b62io\u64cd\u4f5c\u961f\u5217\uff0c\u53ef\u4ee5\u901a\u8fc7start\u4ece\u5934\u5f00\u59cb\n\u4f20\u5165\u503c\uff1a\nint \u786c\u4ef6\u5b9a\u65f6\u5668id\n\u8fd4\u56de\u503c\uff1a\nint \u8fd4\u56de\u5df2\u7ecf\u5faa\u73af\u7684\u6b21\u6570\uff0c\u5982\u679c\u662f0\uff0c\u8868\u793a\u4e00\u6b21\u5faa\u73af\u90fd\u6ca1\u6709\u5b8c\u6210\nint \u8fd4\u56de\u5355\u6b21\u5faa\u73af\u4e2d\u5df2\u7ecf\u6267\u884c\u7684cmd\u6b21\u6570\uff0c\u5982\u679c\u662f0\uff0c\u53ef\u80fd\u662f\u4e00\u6b21\u5faa\u73af\u521a\u521a\u7ed3\u675f\n\u4f8b\u5b50\uff1a\nioqueue.stop(0)\n", "prefix": "ioqueue.stop"}, "ioqueue.release": {"body": "ioqueue.release(${1:hwtimer_id})", "description": "ioqueue.release(hwtimer_id) - \u91ca\u653eio\u64cd\u4f5c\u961f\u5217\u7684\u8d44\u6e90\uff0c\u4e0b\u6b21\u4f7f\u7528\u5fc5\u987b\u91cd\u65b0init\n\u4f20\u5165\u503c\uff1a\nint \u786c\u4ef6\u5b9a\u65f6\u5668id\nreturn \u65e0\n\u4f8b\u5b50\uff1a\nioqueue.clear(0)\n", "prefix": "ioqueue.release"}, "ioqueue.clear": {"body": "ioqueue.clear(${1:hwtimer_id})", "description": "ioqueue.clear(hwtimer_id) - \u6e05\u7a7aio\u64cd\u4f5c\u961f\u5217\n\u4f20\u5165\u503c\uff1a\nint \u786c\u4ef6\u5b9a\u65f6\u5668id\nreturn \u65e0\n\u4f8b\u5b50\uff1a\nioqueue.clear(0)\n", "prefix": "ioqueue.clear"}, "ioqueue.done": {"body": "ioqueue.done(${1:hwtimer_id})", "description": "ioqueue.done(hwtimer_id) - \u68c0\u6d4bio\u64cd\u4f5c\u961f\u5217\u662f\u5426\u5df2\u7ecf\u6267\u884c\u5b8c\u6210\n\u4f20\u5165\u503c\uff1a\nint \u786c\u4ef6\u5b9a\u65f6\u5668id\n\u8fd4\u56de\u503c\uff1a\nboolean \u961f\u5217\u662f\u5426\u6267\u884c\u5b8c\u6210\uff0c\n\u4f8b\u5b50\uff1a\nlocal result = ioqueue.done(0)\n", "prefix": "ioqueue.done"}, "ioqueue.exti": {"body": "ioqueue.exti(${1:pin},${2:pull_mode},${3:irq_mode},${4:onoff})", "description": "ioqueue.exti(pin,pull_mode,irq_mode,onoff) - \u542f\u52a8/\u505c\u6b62\u4e00\u4e2a\u5e26\u7cfb\u7edftick\u8fd4\u56de\u7684\u5916\u90e8\u4e2d\u65ad\n\u4f20\u5165\u503c\uff1a\nint pin\nint \u4e0a\u4e0b\u62c9\u6a21\u5f0f,\u53ea\u80fd\u662f0,gpio.PULLUP,gpio.PULLDOWN\nint \u4e2d\u65ad\u6a21\u5f0f,\u53ea\u80fd\u662fgpio.BOTH,gpio.RISING,gpio.FALLING\nboolean \u5f00\u5173\uff0c\u9ed8\u8ba4\u662ffalse\u5173\nreturn \u65e0\n\u4f8b\u5b50\uff1a\nioqueue.exti(pin.PB01, gpio.PULLUP, gpio.BOTH, true)\nioqueue.exti(pin.PB01)\n", "prefix": "ioqueue.exti"}, "iotauth.aliyun": {"body": "iotauth.aliyun(${1:product_key},${2:device_name},${3:device_secret},${4:method},${5:cur_timestamp})", "description": "iotauth.aliyun(product_key, device_name,device_secret,method,cur_timestamp) - \u963f\u91cc\u4e91\u7269\u8054\u7f51\u5e73\u53f0\u4e09\u5143\u7ec4\u751f\u6210\n\u4f20\u5165\u503c\uff1a\nstring product_key\nstring device_name\nstring device_secret\nstring method \u52a0\u5bc6\u65b9\u5f0f,\"hmacmd5\" \"hmacsha1\" \"hmacsha256\" \u53ef\u9009,\u9ed8\u8ba4\"hmacmd5\"\nnumber cur_timestamp \u53ef\u9009 \u9ed8\u8ba4\u4e3a 32472115200(2999-01-01 0:0:0)\nbool istls \u662f\u5426TLS\u76f4\u8fde true:TLS\u76f4\u8fde false:TCP\u76f4\u8fde\u6a21\u5f0f \u9ed8\u8ba4TCP\u76f4\u8fde\u6a21\u5f0f\n\u8fd4\u56de\u503c\uff1a\nstring mqtt\u4e09\u5143\u7ec4 client_id\nstring mqtt\u4e09\u5143\u7ec4 user_name\nstring mqtt\u4e09\u5143\u7ec4 password\n\u4f8b\u5b50\uff1a\nlocal client_id,user_name,password = iotauth.aliyun(\"123456789\",\"abcdefg\",\"Y877Bgo8X5owd3lcB5wWDjryNPoB\")\nprint(client_id,user_name,password)\n", "prefix": "iotauth.aliyun"}, "iotauth.onenet": {"body": "iotauth.onenet(${1:produt_id},${2:device_name},${3:key},${4:method},${5:cur_timestamp},${6:version})", "description": "iotauth.onenet(produt_id, device_name,key,method,cur_timestamp,version) - \u4e2d\u56fd\u79fb\u52a8\u7269\u8054\u7f51\u5e73\u53f0\u4e09\u5143\u7ec4\u751f\u6210\n\u4f20\u5165\u503c\uff1a\nstring produt_id\nstring device_name\nstring key\nstring method \u52a0\u5bc6\u65b9\u5f0f,\"md5\" \"sha1\" \"sha256\" \u53ef\u9009,\u9ed8\u8ba4\"md5\"\nnumber cur_timestamp \u53ef\u9009 \u9ed8\u8ba4\u4e3a 32472115200(2999-01-01 0:0:0)\nstring version \u53ef\u9009 \u9ed8\u8ba4\"2018-10-31\"\n\u8fd4\u56de\u503c\uff1a\nstring mqtt\u4e09\u5143\u7ec4 client_id\nstring mqtt\u4e09\u5143\u7ec4 user_name\nstring mqtt\u4e09\u5143\u7ec4 password\n\u4f8b\u5b50\uff1a\nlocal client_id,user_name,password = iotauth.onenet(\"123456789\",\"test\",\"KuF3NT/jUBJ62LNBB/A8XZA9CqS3Cu79B/ABmfA1UCw=\")\nprint(client_id,user_name,password)\n", "prefix": "iotauth.onenet"}, "iotauth.iotda": {"body": "iotauth.iotda(${1:device_id},${2:device_secret},${3:cur_timestamp})", "description": "iotauth.iotda(device_id,device_secret,cur_timestamp) - \u534e\u4e3a\u7269\u8054\u7f51\u5e73\u53f0\u4e09\u5143\u7ec4\u751f\u6210\n\u4f20\u5165\u503c\uff1a\nstring device_id\nstring device_secret\nnumber cur_timestamp \u53ef\u9009 \u5982\u4e0d\u586b\u5219\u4e0d\u6821\u9a8c\u65f6\u95f4\u6233\n\u8fd4\u56de\u503c\uff1a\nstring mqtt\u4e09\u5143\u7ec4 client_id\nstring mqtt\u4e09\u5143\u7ec4 user_name\nstring mqtt\u4e09\u5143\u7ec4 password\n\u4f8b\u5b50\uff1a\nlocal client_id,user_name,password = iotauth.iotda(\"6203cc94c7fb24029b110408_88888888\",\"123456789\")\nprint(client_id,user_name,password)\n", "prefix": "iotauth.iotda"}, "iotauth.qcloud": {"body": "iotauth.qcloud(${1:product_id},${2:device_name},${3:device_secret},${4:method},${5:cur_timestamp},${6:sdk_appid})", "description": "iotauth.qcloud(product_id, device_name,device_secret,method,cur_timestamp,sdk_appid) - \u817e\u8baf\u8054\u7f51\u5e73\u53f0\u4e09\u5143\u7ec4\u751f\u6210\n\u4f20\u5165\u503c\uff1a\nstring \u4ea7\u54c1id,\u521b\u5efa\u9879\u76ee\u540e\u53ef\u4ee5\u67e5\u770b\u5230,\u7c7b\u4f3c\u4e8eLD8S5J1L07\nstring \u8bbe\u5907\u540d\u79f0,\u4f8b\u5982\u8bbe\u5907\u7684imei\u53f7\nstring \u8bbe\u5907\u5bc6\u94a5,\u521b\u5efa\u8bbe\u5907\u540e,\u67e5\u770b\u8bbe\u5907\u8be6\u60c5\u53ef\u5f97\u5230\nstring method \u52a0\u5bc6\u65b9\u5f0f,\"sha1\" \"sha256\" \u53ef\u9009,\u9ed8\u8ba4\"sha256\"\nnumber cur_timestamp \u53ef\u9009 \u9ed8\u8ba4\u4e3a 32472115200(2999-01-01 0:0:0)\nstring sdk_appid \u53ef\u9009 \u9ed8\u8ba4\u4e3a\"12010126\"\n\u8fd4\u56de\u503c\uff1a\nstring mqtt\u4e09\u5143\u7ec4 client_id\nstring mqtt\u4e09\u5143\u7ec4 user_name\nstring mqtt\u4e09\u5143\u7ec4 password\n\u4f8b\u5b50\uff1a\nlocal client_id,user_name,password = iotauth.qcloud(\"LD8S5J1L07\",\"test\",\"acyv3QDJrRa0fW5UE58KnQ==\")\nprint(client_id,user_name,password)\n", "prefix": "iotauth.qcloud"}, "iotauth.tuya": {"body": "iotauth.tuya(${1:device_id},${2:device_secret},${3:cur_timestamp})", "description": "iotauth.tuya(device_id,device_secret,cur_timestamp) - \u6d82\u9e26\u8054\u7f51\u5e73\u53f0\u4e09\u5143\u7ec4\u751f\u6210\n\u4f20\u5165\u503c\uff1a\nstring device_id\nstring device_secret\nnumber cur_timestamp \u53ef\u9009 \u9ed8\u8ba47258089600(2200-01-01 0:0:0)\n\u8fd4\u56de\u503c\uff1a\nstring mqtt\u4e09\u5143\u7ec4 client_id\nstring mqtt\u4e09\u5143\u7ec4 user_name\nstring mqtt\u4e09\u5143\u7ec4 password\n\u4f8b\u5b50\uff1a\nlocal client_id,user_name,password = iotauth.tuya(\"6c95875d0f5ba69607nzfl\",\"fb803786602df760\")\nprint(client_id,user_name,password)\n", "prefix": "iotauth.tuya"}, "iotauth.baidu": {"body": "iotauth.baidu(${1:iot_core_id},${2:device_key},${3:device_secret},${4:method},${5:cur_timestamp})", "description": "iotauth.baidu(iot_core_id, device_key,device_secret,method,cur_timestamp) - \u767e\u5ea6\u7269\u8054\u7f51\u5e73\u53f0\u4e09\u5143\u7ec4\u751f\u6210\n\u4f20\u5165\u503c\uff1a\nstring iot_core_id\nstring device_key\nstring device_secret\nstring method \u52a0\u5bc6\u65b9\u5f0f,\"MD5\" \"SHA256\" \u53ef\u9009,\u9ed8\u8ba4\"MD5\"\nnumber cur_timestamp \u53ef\u9009 \u5982\u4e0d\u586b\u5219\u4e0d\u6821\u9a8c\u65f6\u95f4\u6233\n\u8fd4\u56de\u503c\uff1a\nstring mqtt\u4e09\u5143\u7ec4 client_id\nstring mqtt\u4e09\u5143\u7ec4 user_name\nstring mqtt\u4e09\u5143\u7ec4 password\n\u4f8b\u5b50\uff1a\nlocal client_id,user_name,password = iotauth.baidu(\"abcd123\",\"mydevice\",\"ImSeCrEt0I1M2jkl\")\nprint(client_id,user_name,password)\n", "prefix": "iotauth.baidu"}, "ir.sendNEC": {"body": "ir.sendNEC(${1:pin},${2:addr},${3:cmd},${4:repeat},${5:disablePWM})", "description": "ir.sendNEC(pin, addr, cmd, repeat, disablePWM) - \u53d1\u9001NEC\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nint \u4f7f\u7528\u7684GPIO\u5f15\u811a\u7f16\u53f7\nint \u7528\u6237\u7801\uff08\u5927\u4e8e0xff\u5219\u91c7\u7528Extended NEC\u6a21\u5f0f\uff09\nint \u6570\u636e\u7801\nint \u53ef\u9009\uff0c\u5f15\u5bfc\u7801\u53d1\u9001\u6b21\u6570\uff08110ms\u4e00\u6b21\uff09\uff0c\u9ed8\u8ba40\u6b21\nbool \u53ef\u9009\uff0c\u662f\u5426\u7981\u6b62\u76f4\u63a5\u53d1\u9001pwm\u6ce2\uff0c\u9ed8\u8ba4false\n\u4f8b\u5b50\uff1a\n--\u76f4\u63a5\u53d1\nir.sendNEC(0, 0x11, 0x22)\n--\u5916\u63a5\u4e8638K\u7684PWM\u8f7d\u6ce2\uff0c\u53ea\u63a7\u5236\u7535\u5e73\nir.sendNEC(0, 0x11, 0x22,0,true)\n", "prefix": "ir.sendNEC"}, "json.encode": {"body": "json.encode(${1:obj},${2:t})", "description": "json.encode(obj,t) - \u5c06\u5bf9\u8c61\u5e8f\u5217\u5316\u4e3ajson\u5b57\u7b26\u4e32\n\u4f20\u5165\u503c\uff1a\nobj \u9700\u8981\u5e8f\u5217\u5316\u7684\u5bf9\u8c61\nstring \u6d6e\u70b9\u6570\u7cbe\u5ea6\u548c\u6a21\u5f0f,\u8fd9\u9879\u4e0d\u5b58\u5728\u7684\u65f6\u5019,\u4e3a\u9ed8\u8ba4\u503c\"7g\",\u6570\u5b57\u53ea\u652f\u6301\"0~14\",\u6a21\u5f0f\u53ea\u652f\u6301\"f/g\"\n\u8fd4\u56de\u503c\uff1a\nstring \u5e8f\u5217\u5316\u540e\u7684json\u5b57\u7b26\u4e32, \u5931\u8d25\u7684\u8bdd\u8fd4\u56denil\nstring \u5e8f\u5217\u5316\u5931\u8d25\u7684\u62a5\u9519\u4fe1\u606f\n\u4f8b\u5b50\uff1a\njson.encode(obj)-->\u6d6e\u70b9\u6570\u7528%.7g\u7684\u65b9\u5f0f\u8f6c\u6362\u4e3a\u5b57\u7b26\u4e32\njson.encode(obj,\"12f\")-->\u6d6e\u70b9\u6570\u7528%.12f\u7684\u65b9\u5f0f\u8f6c\u6362\u4e3a\u5b57\u7b26\u4e32\n", "prefix": "json.encode"}, "json.decode": {"body": "json.decode(${1:str})", "description": "json.decode(str) - \u5c06\u5b57\u7b26\u4e32\u53cd\u5e8f\u5217\u5316\u4e3a\u5bf9\u8c61\n\u4f20\u5165\u503c\uff1a\nstring \u9700\u8981\u53cd\u5e8f\u5217\u5316\u7684json\u5b57\u7b26\u4e32\n\u8fd4\u56de\u503c\uff1a\nobj \u53cd\u5e8f\u5217\u5316\u540e\u7684\u5bf9\u8c61(\u901a\u5e38\u662ftable), \u5931\u8d25\u7684\u8bdd\u8fd4\u56denil\nresult \u6210\u529f\u8fd4\u56de1,\u5426\u5219\u8fd4\u56de0\nerr \u53cd\u5e8f\u5217\u5316\u5931\u8d25\u7684\u62a5\u9519\u4fe1\u606f\n\u4f8b\u5b50\uff1a\njson.decode(\"[1,2,3,4,5,6]\")\n", "prefix": "json.decode"}, "keyboard.init": {"body": "keyboard.init(${1:port},${2:conf},${3:map},${4:debounce})", "description": "keyboard.init(port, conf, map, debounce) - \u521d\u59cb\u5316\u952e\u76d8\u77e9\u9635\n\u4f20\u5165\u503c\uff1a\nint \u9884\u7559, \u5f53\u524d\u586b0\nint \u542f\u7528\u7684keyboard\u7ba1\u811a\u63a9\u7801, \u4f8b\u5982\u4f7f\u7528keyboard0~9, \u5219\u63a9\u7801\u4e3a 0x1FF, \u82e5\u4f7f\u7528 0~3 \u5219 0xF\nint keyboard\u7ba1\u811a\u65b9\u5411\u6620\u5c04, \u5176\u4e2d\u8f93\u5165\u4e3a0,\u8f93\u51fa\u4e3a1, \u6309\u4f4d\u8bbe\u7f6e. \u4f8b\u5982 keyboard0~3\u4f5c\u4e3a\u8f93\u5165, keyboard4~7\u4e3a\u8f93\u5165, \u5219 0xF0\nint \u6d88\u6296\u914d\u7f6e,\u9884\u7559,\u53ef\u4ee5\u4e0d\u586b\n\u4f8b\u5b50\uff1a\n-- \u505a\u4e00\u4e2a 4*4 \u952e\u76d8\u77e9\u9635, \u4f7f\u7528 keyboard0~7, \u5176\u4e2d0~3\u505a\u8f93\u5165, 4~7\u505a\u8f93\u51fa\n-- \u4f7f\u7528 keyboard0~7, \u5bf9\u5e94conf\u4e3a 0xFF\n-- \u5176\u4e2d0~3\u505a\u8f93\u5165, 4~7\u505a\u8f93\u51fa, \u5bf9\u5e94map \u4e3a 0xF0\nkeyboard.init(0, 0xFF, 0xF0)\n\n-- \u505a\u4e00\u4e2a 2*3 \u952e\u76d8\u77e9\u9635, \u4f7f\u7528 keyboard0~4, \u5176\u4e2d0~1\u505a\u8f93\u5165, 2~4\u505a\u8f93\u51fa\n-- \u4f7f\u7528 keyboard0~4, \u4e8c\u8fdb\u5236\u4e3a 11111, \u5bf9\u5e94conf\u7684\u5341\u516d\u8fdb\u5236\u8868\u8fbe\u4e3a 0x1F\n-- \u5176\u4e2d0~1\u505a\u8f93\u5165, 2~4\u505a\u8f93\u51fa, \u4e8c\u8fdb\u5236\u4e3a 11100 \u5bf9\u5e94map \u4e3a 0x14\n-- keyboard.init(0, 0xFF, 0x14)\n\nsys.subscribe(\"KB_INC\", function(port, data, state)\n -- port \u5f53\u524d\u56fa\u5b9a\u4e3a0, \u53ef\u4ee5\u65e0\u89c6\n -- data, \u9700\u8981\u914d\u5408init\u7684map\u8fdb\u884c\u89e3\u6790\n -- state, 1 \u4e3a\u6309\u4e0b, 0 \u4e3a \u91ca\u653e\n -- TODO \u8be6\u7ec6\u4ecb\u7ecd\nend)\n", "prefix": "keyboard.init"}, "lcd.init": {"body": "lcd.init(${1:tp},${2:args})", "description": "lcd.init(tp, args) - lcd\u663e\u793a\u5c4f\u521d\u59cb\u5316\n\u4f20\u5165\u503c\uff1a\nstring lcd\u7c7b\u578b\uff0c\u5f53\u524d\u652f\u6301\uff1a
st7796
st7789
st7735
st7735v
st7735s
gc9a01
gc9106l
gc9306x
ili9486
custom\ntable \u9644\u52a0\u53c2\u6570,\u4e0e\u5177\u4f53\u8bbe\u5907\u6709\u5173\uff1a
pin_pwr\uff08\u80cc\u5149\uff09\u4e3a\u53ef\u9009\u9879,\u53ef\u4e0d\u8bbe\u7f6e
port\uff1aspi\u7aef\u53e3,\u4f8b\u59820,1,2...\u5982\u679c\u4e3adevice\u65b9\u5f0f\u5219\u4e3a\"device\"
pin_dc\uff1alcd\u6570\u636e/\u547d\u4ee4\u9009\u62e9\u5f15\u811a
pin_rst\uff1alcd\u590d\u4f4d\u5f15\u811a
pin_pwr\uff1alcd\u80cc\u5149\u5f15\u811a \u53ef\u9009\u9879,\u53ef\u4e0d\u8bbe\u7f6e
direction\uff1alcd\u5c4f\u5e55\u65b9\u5411 0:0\u00b0 1:180\u00b0 2:270\u00b0 3:90\u00b0
w\uff1alcd \u6c34\u5e73\u5206\u8fa8\u7387
h\uff1alcd \u7ad6\u76f4\u5206\u8fa8\u7387
xoffset\uff1ax\u504f\u79fb(\u4e0d\u540c\u5c4f\u5e55ic \u4e0d\u540c\u5c4f\u5e55\u65b9\u5411\u4f1a\u6709\u5dee\u5f02)
yoffset\uff1ay\u504f\u79fb(\u4e0d\u540c\u5c4f\u5e55ic \u4e0d\u540c\u5c4f\u5e55\u65b9\u5411\u4f1a\u6709\u5dee\u5f02)\nuserdata spi\u8bbe\u5907,\u5f53port = \"device\"\u65f6\u6709\u6548\n\u4f8b\u5b50\uff1a\n-- \u521d\u59cb\u5316spi0\u7684st7735s \u6ce8\u610f:lcd\u521d\u59cb\u5316\u4e4b\u524d\u9700\u8981\u5148\u521d\u59cb\u5316spi\nspi_lcd = spi.deviceSetup(0,20,0,0,8,2000000,spi.MSB,1,1)\nlog.info(\"lcd.init\",\nlcd.init(\"st7735s\",{port = \"device\",pin_dc = 17, pin_pwr = 7,pin_rst = 19,direction = 2,w = 160,h = 80,xoffset = 1,yoffset = 26},spi_lcd))\n", "prefix": "lcd.init"}, "lcd.close": {"body": "lcd.close()", "description": "lcd.close() - \u5173\u95edlcd\u663e\u793a\u5c4f\n\u4f8b\u5b50\uff1a\n-- \u5173\u95edlcd\nlcd.close()\n", "prefix": "lcd.close"}, "lcd.on": {"body": "lcd.on()", "description": "lcd.on() - \u5f00\u542flcd\u663e\u793a\u5c4f\u80cc\u5149\n\u4f8b\u5b50\uff1a\n-- \u5f00\u542flcd\u663e\u793a\u5c4f\u80cc\u5149\nlcd.on()\n", "prefix": "lcd.on"}, "lcd.off": {"body": "lcd.off()", "description": "lcd.off() - \u5173\u95edlcd\u663e\u793a\u5c4f\u80cc\u5149\n\u4f8b\u5b50\uff1a\n-- \u5173\u95edlcd\u663e\u793a\u5c4f\u80cc\u5149\nlcd.off()\n", "prefix": "lcd.off"}, "lcd.sleep": {"body": "lcd.sleep()", "description": "lcd.sleep() - lcd\u7761\u7720\n\u4f8b\u5b50\uff1a\n-- lcd\u7761\u7720\nlcd.sleep()\n", "prefix": "lcd.sleep"}, "lcd.wakeup": {"body": "lcd.wakeup()", "description": "lcd.wakeup() - lcd\u5524\u9192\n\u4f8b\u5b50\uff1a\n-- lcd\u5524\u9192\nlcd.wakeup()\n", "prefix": "lcd.wakeup"}, "lcd.invon": {"body": "lcd.invon()", "description": "lcd.invon() - lcd\u53cd\u663e\n\u4f8b\u5b50\uff1a\n-- lcd\u53cd\u663e\nlcd.invon()\n", "prefix": "lcd.invon"}, "lcd.invoff": {"body": "lcd.invoff()", "description": "lcd.invoff() - lcd\u53cd\u663e\u5173\u95ed\n\u4f8b\u5b50\uff1a\n-- lcd\u53cd\u663e\u5173\u95ed\nlcd.invoff()\n", "prefix": "lcd.invoff"}, "lcd.cmd": {"body": "lcd.cmd(${1:cmd})", "description": "lcd.cmd(cmd) - lcd\u547d\u4ee4\n\u4f20\u5165\u503c\uff1a\nint cmd\n\u4f8b\u5b50\uff1a\n-- lcd\u547d\u4ee4\nlcd.cmd(0x21)\n", "prefix": "lcd.cmd"}, "lcd.data": {"body": "lcd.data(${1:data})", "description": "lcd.data(data) - lcd\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nint data\n\u4f8b\u5b50\uff1a\n-- lcd\u6570\u636e\nlcd.data(0x21)\n", "prefix": "lcd.data"}, "lcd.setColor": {"body": "lcd.setColor(${1:back},${2:fore})", "description": "lcd.setColor(back,fore) - lcd\u989c\u8272\u8bbe\u7f6e\n\u4f20\u5165\u503c\uff1a\nint \u80cc\u666f\u8272\nint \u524d\u666f\u8272\n\u4f8b\u5b50\uff1a\n-- lcd\u989c\u8272\u8bbe\u7f6e\nlcd.setColor(0xFFFF,0x0000)\n", "prefix": "lcd.setColor"}, "lcd.draw": {"body": "lcd.draw(${1:x1},${2:y1},${3:x2},${4:y2},${5:color})", "description": "lcd.draw(x1, y1, x2, y2,color) - lcd\u989c\u8272\u586b\u5145\n\u4f20\u5165\u503c\uff1a\nint \u5de6\u4e0a\u8fb9\u7f18\u7684X\u4f4d\u7f6e.\nint \u5de6\u4e0a\u8fb9\u7f18\u7684Y\u4f4d\u7f6e.\nint \u53f3\u4e0b\u8fb9\u7f18\u7684X\u4f4d\u7f6e.\nint \u53f3\u4e0b\u8fb9\u7f18\u7684Y\u4f4d\u7f6e.\nstring \u5b57\u7b26\u4e32\u6216zbuff\u5bf9\u8c61\n\u4f8b\u5b50\uff1a\n-- lcd\u989c\u8272\u586b\u5145\nlocal buff = zbuff.create({201,1,16},0x001F)\nlcd.draw(20,30,220,30,buff)\n", "prefix": "lcd.draw"}, "lcd.clear": {"body": "lcd.clear(${1:color})", "description": "lcd.clear(color) - lcd\u6e05\u5c4f\n\u4f20\u5165\u503c\uff1a\nint \u5c4f\u5e55\u989c\u8272 \u53ef\u9009\u53c2\u6570,\u9ed8\u8ba4\u80cc\u666f\u8272\n\u4f8b\u5b50\uff1a\n-- lcd\u6e05\u5c4f\nlcd.clear()\n", "prefix": "lcd.clear"}, "lcd.fill": {"body": "lcd.fill(${1:x1},${2:y1},${3:x2},${4:y2},${5:color})", "description": "lcd.fill(x1, y1, x2, y2,color) - lcd\u989c\u8272\u586b\u5145\n\u4f20\u5165\u503c\uff1a\nint \u5de6\u4e0a\u8fb9\u7f18\u7684X\u4f4d\u7f6e.\nint \u5de6\u4e0a\u8fb9\u7f18\u7684Y\u4f4d\u7f6e.\nint \u53f3\u4e0b\u8fb9\u7f18\u7684X\u4f4d\u7f6e,\u4e0d\u542b\nint \u53f3\u4e0b\u8fb9\u7f18\u7684Y\u4f4d\u7f6e,\u4e0d\u542b\nint \u7ed8\u753b\u989c\u8272 \u53ef\u9009\u53c2\u6570,\u9ed8\u8ba4\u80cc\u666f\u8272\n\u4f8b\u5b50\uff1a\n-- lcd\u989c\u8272\u586b\u5145\nlcd.fill(20,30,220,30,0x0000)\n", "prefix": "lcd.fill"}, "lcd.drawPoint": {"body": "lcd.drawPoint(${1:x0},${2:y0},${3:color})", "description": "lcd.drawPoint(x0,y0,color) - \u753b\u4e00\u4e2a\u70b9.\n\u4f20\u5165\u503c\uff1a\nint \u70b9\u7684X\u4f4d\u7f6e.\nint \u70b9\u7684Y\u4f4d\u7f6e.\nint \u7ed8\u753b\u989c\u8272 \u53ef\u9009\u53c2\u6570,\u9ed8\u8ba4\u524d\u666f\u8272\n\u4f8b\u5b50\uff1a\nlcd.drawPoint(20,30,0x001F)\n", "prefix": "lcd.drawPoint"}, "lcd.drawLine": {"body": "lcd.drawLine(${1:x0},${2:y0},${3:x1},${4:y1},${5:color})", "description": "lcd.drawLine(x0,y0,x1,y1,color) - \u5728\u4e24\u70b9\u4e4b\u95f4\u753b\u4e00\u6761\u7ebf.\n\u4f20\u5165\u503c\uff1a\nint \u7b2c\u4e00\u4e2a\u70b9\u7684X\u4f4d\u7f6e.\nint \u7b2c\u4e00\u4e2a\u70b9\u7684Y\u4f4d\u7f6e.\nint \u7b2c\u4e8c\u4e2a\u70b9\u7684X\u4f4d\u7f6e.\nint \u7b2c\u4e8c\u4e2a\u70b9\u7684Y\u4f4d\u7f6e.\nint \u7ed8\u753b\u989c\u8272 \u53ef\u9009\u53c2\u6570,\u9ed8\u8ba4\u524d\u666f\u8272\n\u4f8b\u5b50\uff1a\nlcd.drawLine(20,30,220,30,0x001F)\n", "prefix": "lcd.drawLine"}, "lcd.drawRectangle": {"body": "lcd.drawRectangle(${1:x0},${2:y0},${3:x1},${4:y1},${5:color})", "description": "lcd.drawRectangle(x0,y0,x1,y1,color) - \u4ecex / y\u4f4d\u7f6e\uff08\u5de6\u4e0a\u8fb9\u7f18\uff09\u5f00\u59cb\u7ed8\u5236\u4e00\u4e2a\u6846\n\u4f20\u5165\u503c\uff1a\nint \u5de6\u4e0a\u8fb9\u7f18\u7684X\u4f4d\u7f6e.\nint \u5de6\u4e0a\u8fb9\u7f18\u7684Y\u4f4d\u7f6e.\nint \u53f3\u4e0b\u8fb9\u7f18\u7684X\u4f4d\u7f6e.\nint \u53f3\u4e0b\u8fb9\u7f18\u7684Y\u4f4d\u7f6e.\nint \u7ed8\u753b\u989c\u8272 \u53ef\u9009\u53c2\u6570,\u9ed8\u8ba4\u524d\u666f\u8272\n\u4f8b\u5b50\uff1a\nlcd.drawRectangle(20,40,220,80,0x001F)\n", "prefix": "lcd.drawRectangle"}, "lcd.drawCircle": {"body": "lcd.drawCircle(${1:x0},${2:y0},${3:r},${4:color})", "description": "lcd.drawCircle(x0,y0,r,color) - \u4ecex / y\u4f4d\u7f6e\uff08\u5706\u5fc3\uff09\u5f00\u59cb\u7ed8\u5236\u4e00\u4e2a\u5706\n\u4f20\u5165\u503c\uff1a\nint \u5706\u5fc3\u7684X\u4f4d\u7f6e.\nint \u5706\u5fc3\u7684Y\u4f4d\u7f6e.\nint \u534a\u5f84.\nint \u7ed8\u753b\u989c\u8272 \u53ef\u9009\u53c2\u6570,\u9ed8\u8ba4\u524d\u666f\u8272\n\u4f8b\u5b50\uff1a\nlcd.drawCircle(120,120,20,0x001F)\n", "prefix": "lcd.drawCircle"}, "lcd.drawQrcode": {"body": "lcd.drawQrcode(${1:x},${2:y},${3:str},${4:size})", "description": "lcd.drawQrcode(x, y, str, size) - \u7f13\u51b2\u533a\u7ed8\u5236QRCode\n\u4f20\u5165\u503c\uff1a\nint x\u5750\u6807\nint y\u5750\u6807\nstring \u4e8c\u7ef4\u7801\u7684\u5185\u5bb9\nint \u663e\u793a\u5927\u5c0f (\u6ce8\u610f:\u4e8c\u7ef4\u7801\u751f\u6210\u5927\u5c0f\u4e0e\u8981\u663e\u793a\u5185\u5bb9\u548c\u7ea0\u9519\u7b49\u7ea7\u6709\u5173,\u751f\u6210\u7248\u672c\u4e3a1-40(\u5bf9\u5e94 21x21 - 177x177)\u7684\u4e0d\u5b9a\u5927\u5c0f,\u5982\u679c\u548c\u8bbe\u7f6e\u5927\u5c0f\u4e0d\u540c\u4f1a\u81ea\u52a8\u5728\u6307\u5b9a\u7684\u533a\u57df\u4e2d\u95f4\u663e\u793a\u4e8c\u7ef4\u7801,\u5982\u4e8c\u7ef4\u7801\u672a\u663e\u793a\u8bf7\u67e5\u770b\u65e5\u5fd7\u63d0\u793a)\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n", "prefix": "lcd.drawQrcode"}, "lcd.setFont": {"body": "lcd.setFont(${1:font})", "description": "lcd.setFont(font) - \u8bbe\u7f6e\u5b57\u4f53\n\u4f20\u5165\u503c\uff1a\nint font lcd.font_XXX \u8bf7\u67e5\u9605\u5e38\u91cf\u8868\n\u4f8b\u5b50\uff1a\n-- \u8bbe\u7f6e\u4e3a\u5b57\u4f53,\u5bf9\u4e4b\u540e\u7684drawStr\u6709\u6548,\u8c03\u7528lcd.drawStr\u524d\u4e00\u5b9a\u8981\u5148\u8bbe\u7f6e\n\n-- \u82e5\u63d0\u793a \"only font pointer is allow\" , \u5219\u4ee3\u8868\u5f53\u524d\u56fa\u4ef6\u4e0d\u542b\u5bf9\u5e94\u5b57\u4f53, \u53ef\u4f7f\u7528\u4e91\u7f16\u8bd1\u670d\u52a1\u514d\u8d39\u5b9a\u5236\n-- \u4e91\u7f16\u8bd1\u6587\u6863: https://wiki.luatos.com/develop/compile/Cloud_compilation.html\n\n-- lcd\u5e93\u7684\u9ed8\u8ba4\u5b57\u4f53\u5747\u4ee5 lcd.font_ \u5f00\u5934\nlcd.setFont(lcd.font_opposansm12)\nlcd.drawStr(40,10,\"drawStr\")\nsys.wait(2000)\nlcd.setFont(lcd.font_opposansm12_chinese) -- \u5177\u4f53\u53d6\u503c\u53ef\u53c2\u8003api\u6587\u6863\u7684\u5e38\u91cf\u8868\nlcd.drawStr(40,40,\"drawStr\u6d4b\u8bd5\")\n", "prefix": "lcd.setFont"}, "lcd.drawStr": {"body": "lcd.drawStr(${1:x},${2:y},${3:str},${4:fg_color})", "description": "lcd.drawStr(x,y,str,fg_color) - \u663e\u793a\u5b57\u7b26\u4e32\n\u4f20\u5165\u503c\uff1a\nint x \u6a2a\u5750\u6807\nint y \u7ad6\u5750\u6807 \u6ce8\u610f:\u6b64(x,y)\u4e3a\u5de6\u4e0b\u8d77\u59cb\u5750\u6807\nstring str \u6587\u4ef6\u5185\u5bb9\nint fg_color str\u989c\u8272 \u6ce8\u610f:\u6b64\u53c2\u6570\u53ef\u9009\uff0c\u5982\u4e0d\u586b\u5199\u5219\u4f7f\u7528\u4e4b\u524d\u8bbe\u7f6e\u7684\u989c\u8272\uff0c\u7ed8\u5236\u53ea\u4f1a\u7ed8\u5236\u5b57\u4f53\u90e8\u5206\uff0c\u80cc\u666f\u9700\u8981\u81ea\u5df1\u6e05\u9664\n\u4f8b\u5b50\uff1a\n-- \u663e\u793a\u4e4b\u524d\u5148\u8bbe\u7f6e\u4e3a\u4e2d\u6587\u5b57\u4f53,\u5bf9\u4e4b\u540e\u7684drawStr\u6709\u6548\nlcd.setFont(lcd.font_opposansm12)\nlcd.drawStr(40,10,\"drawStr\")\nsys.wait(2000)\nlcd.setFont(lcd.font_opposansm16_chinese)\nlcd.drawStr(40,40,\"drawStr\u6d4b\u8bd5\")\n", "prefix": "lcd.drawStr"}, "lcd.drawGtfontGb2312": {"body": "lcd.drawGtfontGb2312(${1:str},${2:size},${3:x},${4:y})", "description": "lcd.drawGtfontGb2312(str,size,x,y) - \u4f7f\u7528gtfont\u663e\u793agb2312\u5b57\u7b26\u4e32\n\u4f20\u5165\u503c\uff1a\nstring str \u663e\u793a\u5b57\u7b26\u4e32\nint size \u5b57\u4f53\u5927\u5c0f (\u652f\u630116-192\u53f7\u5927\u5c0f\u5b57\u4f53)\nint x \u6a2a\u5750\u6807\nint y \u7ad6\u5750\u6807\n\u4f8b\u5b50\uff1a\n-- \u6ce8\u610f, gtfont\u662f\u989d\u5916\u7684\u5b57\u4f53\u82af\u7247\u786c\u4ef6, \u9700\u8981\u5916\u6302\u5728SPI\u603b\u7ebf\u624d\u80fd\u8c03\u7528\u672c\u51fd\u6570\u7684\nlcd.drawGtfontGb2312(\"\u554a\u554a\u554a\",32,0,0)\n", "prefix": "lcd.drawGtfontGb2312"}, "lcd.drawGtfontGb2312Gray": {"body": "lcd.drawGtfontGb2312Gray(${1:str},${2:size},${3:gray},${4:x},${5:y})", "description": "lcd.drawGtfontGb2312Gray(str,size,gray,x,y) - \u4f7f\u7528gtfont\u7070\u5ea6\u663e\u793agb2312\u5b57\u7b26\u4e32\n\u4f20\u5165\u503c\uff1a\nstring str \u663e\u793a\u5b57\u7b26\u4e32\nint size \u5b57\u4f53\u5927\u5c0f (\u652f\u630116-192\u53f7\u5927\u5c0f\u5b57\u4f53)\nint gray \u7070\u5ea6[1\u9636/2\u9636/3\u9636/4\u9636]\nint x \u6a2a\u5750\u6807\nint y \u7ad6\u5750\u6807\n\u4f8b\u5b50\uff1a\n-- \u6ce8\u610f, gtfont\u662f\u989d\u5916\u7684\u5b57\u4f53\u82af\u7247\u786c\u4ef6, \u9700\u8981\u5916\u6302\u5728SPI\u603b\u7ebf\u624d\u80fd\u8c03\u7528\u672c\u51fd\u6570\u7684\nlcd.drawGtfontGb2312Gray(\"\u554a\u554a\u554a\",32,4,0,40)\n", "prefix": "lcd.drawGtfontGb2312Gray"}, "lcd.drawGtfontUtf8": {"body": "lcd.drawGtfontUtf8(${1:str},${2:size},${3:x},${4:y})", "description": "lcd.drawGtfontUtf8(str,size,x,y) - \u4f7f\u7528gtfont\u663e\u793aUTF8\u5b57\u7b26\u4e32\n\u4f20\u5165\u503c\uff1a\nstring str \u663e\u793a\u5b57\u7b26\u4e32\nint size \u5b57\u4f53\u5927\u5c0f (\u652f\u630116-192\u53f7\u5927\u5c0f\u5b57\u4f53)\nint x \u6a2a\u5750\u6807\nint y \u7ad6\u5750\u6807\n\u4f8b\u5b50\uff1a\nlcd.drawGtfontUtf8(\"\u554a\u554a\u554a\",32,0,0)\n", "prefix": "lcd.drawGtfontUtf8"}, "lcd.drawGtfontUtf8Gray": {"body": "lcd.drawGtfontUtf8Gray(${1:str},${2:size},${3:gray},${4:x},${5:y})", "description": "lcd.drawGtfontUtf8Gray(str,size,gray,x,y) - \u4f7f\u7528gtfont\u7070\u5ea6\u663e\u793aUTF8\u5b57\u7b26\u4e32\n\u4f20\u5165\u503c\uff1a\nstring str \u663e\u793a\u5b57\u7b26\u4e32\nint size \u5b57\u4f53\u5927\u5c0f (\u652f\u630116-192\u53f7\u5927\u5c0f\u5b57\u4f53)\nint gray \u7070\u5ea6[1\u9636/2\u9636/3\u9636/4\u9636]\nint x \u6a2a\u5750\u6807\nint y \u7ad6\u5750\u6807\n\u4f8b\u5b50\uff1a\nlcd.drawGtfontUtf8Gray(\"\u554a\u554a\u554a\",32,4,0,40)\n", "prefix": "lcd.drawGtfontUtf8Gray"}, "lcd.getSize": {"body": "lcd.getSize()", "description": "lcd.getSize() - \u83b7\u53d6\u5c4f\u5e55\u5c3a\u5bf8\n\u8fd4\u56de\u503c\uff1a\nint \u5bbd, \u5982\u679c\u672a\u521d\u59cb\u5316\u4f1a\u8fd4\u56de0\nint \u9ad8, \u5982\u679c\u672a\u521d\u59cb\u5316\u4f1a\u8fd4\u56de0\n\u4f8b\u5b50\uff1a\nlog.info(\"lcd\", \"size\", lcd.getSize())\n", "prefix": "lcd.getSize"}, "lcd.drawXbm": {"body": "lcd.drawXbm(${1:x},${2:y},${3:w},${4:h},${5:data})", "description": "lcd.drawXbm(x, y, w, h, data) - \u7ed8\u5236\u4f4d\u56fe\n\u4f20\u5165\u503c\uff1a\nint X\u5750\u6807\nint y\u5750\u6807\nint \u4f4d\u56fe\u5bbd\nint \u4f4d\u56fe\u9ad8\nint \u4f4d\u56fe\u6570\u636e,\u6bcf\u4e00\u4f4d\u4ee3\u8868\u4e00\u4e2a\u50cf\u7d20\n\u4f8b\u5b50\uff1a\n-- \u53d6\u6a21\u4f7f\u7528PCtoLCD2002\u8f6f\u4ef6\u5373\u53ef \u9634\u7801 \u9010\u884c \u9006\u5411\n-- \u5728(0,0)\u4e3a\u5de6\u4e0a\u89d2,\u7ed8\u5236 16x16 \"\u4eca\" \u7684\u4f4d\u56fe\nlcd.drawXbm(0, 0, 16,16, string.char(\n 0x80,0x00,0x80,0x00,0x40,0x01,0x20,0x02,0x10,0x04,0x48,0x08,0x84,0x10,0x83,0x60,\n 0x00,0x00,0xF8,0x0F,0x00,0x08,0x00,0x04,0x00,0x04,0x00,0x02,0x00,0x01,0x80,0x00\n))\n", "prefix": "lcd.drawXbm"}, "lcd.showImage": {"body": "lcd.showImage(${1:x},${2:y},${3:file})", "description": "lcd.showImage(x, y, file) - \u663e\u793a\u56fe\u7247,\u5f53\u524d\u53ea\u652f\u6301jpg,jpeg\n\u4f20\u5165\u503c\uff1a\nint X\u5750\u6807\nint y\u5750\u6807\nstring \u6587\u4ef6\u8def\u5f84\n\u4f8b\u5b50\uff1a\nlcd.showImage(0,0,\"/luadb/logo.jpg\")\n", "prefix": "lcd.showImage"}, "lcd.flush": {"body": "lcd.flush()", "description": "lcd.flush() - \u4e3b\u52a8\u5237\u65b0\u6570\u636e\u5230\u754c\u9762, \u4ec5\u8bbe\u7f6ebuff\u4e14\u7981\u7528\u81ea\u52a8\u5c5e\u6027\u540e\u4f7f\u7528\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue, \u5426\u5219\u8fd4\u56denil/false\n", "prefix": "lcd.flush"}, "lcd.setupBuff": {"body": "lcd.setupBuff(${1:conf},${2:onheap})", "description": "lcd.setupBuff(conf, onheap) - \u8bbe\u7f6e\u663e\u793a\u7f13\u51b2\u533a, \u6240\u9700\u5185\u5b58\u5927\u5c0f\u4e3a 2\u00d7\u5bbd\u00d7\u9ad8 \u5b57\u8282. \u8bf7\u8861\u91cf\u5185\u5b58\u9700\u6c42\u4e0e\u4e1a\u52a1\u6240\u9700\u7684\u5237\u65b0\u9891\u6b21.\n\u4f20\u5165\u503c\uff1a\nuserdata conf\u6307\u9488, \u4e0d\u9700\u8981\u4f20\nbool true\u4f7f\u7528heap\u5185\u5b58, false\u4f7f\u7528vm\u5185\u5b58, \u9ed8\u8ba4\u4f7f\u7528vm\u5185\u5b58, \u4e0d\u9700\u8981\u4e3b\u52a8\u4f20\n\u8fd4\u56de\u503c\uff1a\nbool \u662f\u5426\u6210\u529f\n\u4f8b\u5b50\uff1a\n-- \u521d\u59cb\u5316lcd\u7684buff\u7f13\u51b2\u533a, \u53ef\u7406\u89e3\u4e3aFrameBuffer\u533a\u57df.\nlcd.setupBuff()\n", "prefix": "lcd.setupBuff"}, "lcd.autoFlush": {"body": "lcd.autoFlush(${1:enable})", "description": "lcd.autoFlush(enable) - \u8bbe\u7f6e\u81ea\u52a8\u5237\u65b0, \u9700\u914d\u5408lcd.setupBuff\u4f7f\u7528\n\u4f20\u5165\u503c\uff1a\nbool \u662f\u5426\u81ea\u52a8\u5237\u65b0,\u9ed8\u8ba4\u4e3atrue\n\u4f8b\u5b50\uff1a\n-- \u8bbe\u7f6ebuff \u5e76\u7981\u7528\u81ea\u52a8\u66f4\u65b0\nlcd.setupBuff()\nlcd.autoFlush(false)\n-- \u7981\u6b62\u81ea\u52a8\u66f4\u65b0\u540e, \u9700\u8981\u4f7f\u7528 lcd.flush() \u4e3b\u52a8\u5237\u65b0\u6570\u636e\u5230\u5c4f\u5e55\n", "prefix": "lcd.autoFlush"}, "lcd.rgb565": {"body": "lcd.rgb565(${1:r},${2:g},${3:b},${4:swap})", "description": "lcd.rgb565(r, g, b, swap) - RGB565\u989c\u8272\u751f\u6210\n\u4f20\u5165\u503c\uff1a\nint \u7ea2\u8272, 0x00 ~ 0xFF\nint \u7eff\u8272, 0x00 ~ 0xFF\nint \u84dd\u8272, 0x00 ~ 0xFF\nbool \u662f\u5426\u7ffb\u8f6c, true \u7ffb\u8f6c, false \u4e0d\u7ffb\u8f6c. \u9ed8\u8ba4\u7ffb\u8f6c\n\u8fd4\u56de\u503c\uff1a\nint \u989c\u8272\u503c\n\u4f8b\u5b50\uff1a\n-- \u672cAPI\u652f\u6301\u591a\u79cd\u6a21\u5f0f, \u53c2\u6570\u6570\u91cf\u5206\u522b\u662f 1, 2, 3, 4\n-- 1. \u5355\u53c2\u6570\u5f62\u5f0f, 24bit RGB\u503c, swap = true, \u63a8\u8350\nlocal red = lcd.rgb565(0xFF0000)\nlocal green = lcd.rgb565(0x00FF00)\nlocal blue = lcd.rgb565(0x0000FF)\n\n-- 2. \u4e24\u53c2\u6570\u5f62\u5f0f, 24bit RGB\u503c, \u589e\u52a0swap\u7684\u8bbe\u7f6e\nlocal red = lcd.rgb565(0xFF0000, true)\nlocal green = lcd.rgb565(0x00FF00, true)\nlocal blue = lcd.rgb565(0x0000FF, true)\n\n-- 3. \u4e09\u53c2\u6570\u5f62\u5f0f, \u7ea2/\u7eff/\u84dd, \u54048bit\nlocal red = lcd.rgb565(0xFF, 0x00, 0x00)\nlocal green = lcd.rgb565(0x00, 0xFF, 0x00)\nlocal blue = lcd.rgb565(0x00, 0x00, 0xFF)\n\n-- 4. \u56db\u53c2\u6570\u5f62\u5f0f, \u7ea2/\u7eff/\u84dd, \u54048bit, \u589e\u52a0swap\u7684\u8bbe\u7f6e\nlocal red = lcd.rgb565(0xFF, 0x00, 0x00, true)\nlocal green = lcd.rgb565(0x00, 0xFF, 0x00, true)\nlocal blue = lcd.rgb565(0x00, 0x00, 0xFF, true)\n", "prefix": "lcd.rgb565"}, "lcdseg.setup": {"body": "lcdseg.setup(${1:bias},${2:duty},${3:vlcd},${4:com_number},${5:fresh_rate},${6:com_mark},${7:seg_mark})", "description": "lcdseg.setup(bias, duty, vlcd, com_number, fresh_rate, com_mark, seg_mark) - \u521d\u59cb\u5316lcdseg\u5e93\n\u4f20\u5165\u503c\uff1a\nint bias\u503c,\u901a\u5e38\u4e3a 1/3 bias, \u5bf9\u5e94 lcdseg.BIAS_ONETHIRD\nint duty\u503c,\u901a\u5e38\u4e3a 1/4 duty, \u5bf9\u5e94 lcdseg.DUTY_ONEFOURTH\nint \u7535\u538b, \u5355\u4f4d100mV, \u4f8b\u59822.7v\u519927. air103\u652f\u6301\u7684\u503c\u6709 27/29/31/33\nint COM\u811a\u7684\u6570\u91cf, \u53d6\u51b3\u4e8e\u5177\u4f53\u6a21\u5757, air103\u652f\u63011-4\nint \u5237\u65b0\u7387,\u901a\u5e38\u4e3a60, \u5bf9\u5e9460HZ\nint COM\u542f\u7528\u4e0e\u5426\u7684\u63a9\u7801, \u9ed8\u8ba4\u4e3a0xFF,\u5168\u90e8\u542f\u7528.\u82e5\u53ea\u542f\u7528COM0/COM1, \u52190x03\nint seg\u542f\u7528\u4e0e\u5426\u7684\u63a9\u7801, \u9ed8\u8ba4\u4e3a0xFFFFFFFF,\u5373\u5168\u90e8\u542f\u7528. \u82e5\u53ea\u542f\u7528\u524d16\u4e2a, 0xFFFF\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- \u521d\u59cb\u5316lcdseg\nif lcdseg.setup(lcdseg.BIAS_ONETHIRD, lcdseg.DUTY_ONEFOURTH, 33, 4, 60) then\n lcdseg.enable(1)\n\n lcdseg.seg_set(0, 1, 1)\n lcdseg.seg_set(2, 0, 1)\n lcdseg.seg_set(3, 31, 1)\nend\n", "prefix": "lcdseg.setup"}, "lcdseg.enable": {"body": "lcdseg.enable(${1:en})", "description": "lcdseg.enable(en) - \u542f\u7528\u6216\u7981\u7528lcdseg\u5e93\n\u4f20\u5165\u503c\uff1a\nint 1\u542f\u7528,0\u7981\u7528\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u4e0e\u5426\n", "prefix": "lcdseg.enable"}, "lcdseg.power": {"body": "lcdseg.power(${1:en})", "description": "lcdseg.power(en) - \u542f\u7528\u6216\u7981\u7528lcdseg\u7684\u8f93\u51fa\n\u4f20\u5165\u503c\uff1a\nint 1\u542f\u7528,0\u7981\u7528\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u4e0e\u5426\n", "prefix": "lcdseg.power"}, "lcdseg.seg_set": {"body": "lcdseg.seg_set(${1:com},${2:seg},${3:en})", "description": "lcdseg.seg_set(com, seg, en) - \u8bbe\u7f6e\u5177\u4f53\u4e00\u4e2a\u6bb5\u7801\u7684\u72b6\u6001\n\u4f20\u5165\u503c\uff1a\nint COM\u53f7\nint seg\u53f7 \u8981\u66f4\u6539\u7684\u5b57\u6bb5\u7684\u4f4d\u7d22\u5f15\nint 1\u542f\u7528,0\u7981\u7528\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u4e0e\u5426\n", "prefix": "lcdseg.seg_set"}, "libcoap.new": {"body": "libcoap.new(${1:code},${2:uri},${3:headers},${4:payload})", "description": "libcoap.new(code, uri, headers, payload) - \u521b\u5efa\u4e00\u4e2acoap\u6570\u636e\u5305\n\u4f20\u5165\u503c\uff1a\nint coap\u7684code, \u4f8b\u5982libcoap.GET/libcoap.POST/libcoap.PUT/libcoap.DELETE\nstring \u76ee\u6807URI,\u5fc5\u987b\u586b\u5199, \u4e0d\u9700\u8981\u52a0\u4e0a/\u5f00\u5934\ntable \u8bf7\u6c42\u5934,\u7c7b\u4f3c\u4e8ehttp\u7684headers,\u53ef\u9009\nstring \u8bf7\u6c42\u4f53,\u7c7b\u4f3c\u4e8ehttp\u7684body,\u53ef\u9009\n\u8fd4\u56de\u503c\uff1a\nuserdata coap\u6570\u636e\u5305\n\u4f8b\u5b50\uff1a\n-- \u521b\u5efa\u4e00\u4e2a\u8bf7\u6c42\u670d\u52a1\u5668time\u7684\u6570\u636e\u5305\nlocal coapdata = libcoap.new(libcoap.GET, \"time\")\nlocal data = coapdata:rawdata()\n", "prefix": "libcoap.new"}, "libcoap.parse": {"body": "libcoap.parse(${1:str})", "description": "libcoap.parse(str) - \u89e3\u6790coap\u6570\u636e\u5305\n\u4f20\u5165\u503c\uff1a\nstring coap\u6570\u636e\u5305\n\u8fd4\u56de\u503c\uff1a\nuserdata coap\u6570\u636e\u5305,\u5982\u679c\u89e3\u6790\u5931\u8d25\u4f1a\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\n-- \u89e3\u6790\u670d\u52a1\u5668\u4f20\u5165\u7684\u6570\u636e\u5305\nlocal coapdata = libcoap.parse(indata)\nlog.info(\"coapdata\", coapdata:hcode(), coapdata:data())\n", "prefix": "libcoap.parse"}, "coapdata:msgid": {"body": "coapdata:msgid()", "description": "coapdata:msgid() - \u83b7\u53d6coap\u6570\u636e\u5305\u7684msgid\n\u8fd4\u56de\u503c\uff1a\nint coap\u6570\u636e\u5305\u7684msgid\n\u4f8b\u5b50\uff1a\n-- \u89e3\u6790\u670d\u52a1\u5668\u4f20\u5165\u7684\u6570\u636e\u5305\nlocal coapdata = libcoap.parse(indata)\nlog.info(\"coapdata\", coapdata:msgid())\n", "prefix": "coapdata:msgid"}, "coapdata:token": {"body": "coapdata:token()", "description": "coapdata:token() - \u83b7\u53d6coap\u6570\u636e\u5305\u7684token\n\u8fd4\u56de\u503c\uff1a\nstring coap\u6570\u636e\u5305\u7684token\n\u4f8b\u5b50\uff1a\n-- \u89e3\u6790\u670d\u52a1\u5668\u4f20\u5165\u7684\u6570\u636e\u5305\nlocal coapdata = libcoap.parse(indata)\nlog.info(\"coapdata\", coapdata:token())\n", "prefix": "coapdata:token"}, "coapdata:rawdata": {"body": "coapdata:rawdata()", "description": "coapdata:rawdata() - \u83b7\u53d6coap\u6570\u636e\u5305\u7684\u4e8c\u8fdb\u5236\u6570\u636e,\u7528\u4e8e\u53d1\u9001\u5230\u670d\u52a1\u5668\n\u8fd4\u56de\u503c\uff1a\nstring coap\u6570\u636e\u5305\u7684\u4e8c\u8fdb\u5236\u6570\u636e\n\u4f8b\u5b50\uff1a\n-- \u89e3\u6790\u670d\u52a1\u5668\u4f20\u5165\u7684\u6570\u636e\u5305\nlocal coapdata = libcoap.new(libcoap.GET, \"time\")\nnetc:send(coapdata:rawdata())\n", "prefix": "coapdata:rawdata"}, "coapdata:code": {"body": "coapdata:code()", "description": "coapdata:code() - \u83b7\u53d6coap\u6570\u636e\u5305\u7684code\n\u8fd4\u56de\u503c\uff1a\nint coap\u6570\u636e\u5305\u7684code\n\u4f8b\u5b50\uff1a\n-- \u89e3\u6790\u670d\u52a1\u5668\u4f20\u5165\u7684\u6570\u636e\u5305\nlocal coapdata = libcoap.parse(indata)\nlog.info(\"coapdata\", coapdata:code())\n", "prefix": "coapdata:code"}, "coapdata:hcode": {"body": "coapdata:hcode()", "description": "coapdata:hcode() - \u83b7\u53d6coap\u6570\u636e\u5305\u7684http code, \u6bd4coap\u539f\u59cb\u7684code\u8981\u53cb\u597d\n\u8fd4\u56de\u503c\uff1a\nint coap\u6570\u636e\u5305\u7684http code,\u4f8b\u5982200,205,404\n\u4f8b\u5b50\uff1a\n-- \u89e3\u6790\u670d\u52a1\u5668\u4f20\u5165\u7684\u6570\u636e\u5305\nlocal coapdata = libcoap.parse(indata)\nlog.info(\"coapdata\", coapdata:hcode())\n", "prefix": "coapdata:hcode"}, "coapdata:type": {"body": "coapdata:type(${1:t})", "description": "coapdata:type(t) - \u83b7\u53d6coap\u6570\u636e\u5305\u7684type, \u4f8b\u5982libcoap.CON/NON/ACK/RST\n\u4f20\u5165\u503c\uff1a\nint \u65b0\u7684type\u503c,\u53ef\u9009\n\u8fd4\u56de\u503c\uff1a\nint coap\u6570\u636e\u5305\u7684type\n\u4f8b\u5b50\uff1a\n-- \u89e3\u6790\u670d\u52a1\u5668\u4f20\u5165\u7684\u6570\u636e\u5305\nlocal coapdata = libcoap.parse(indata)\nlog.info(\"coapdata\", coapdata:type())\n", "prefix": "coapdata:type"}, "coapdata:data": {"body": "coapdata:data()", "description": "coapdata:data() - \u83b7\u53d6coap\u6570\u636e\u5305\u7684data\n\u8fd4\u56de\u503c\uff1a\nstring coap\u6570\u636e\u5305\u7684data\n\u4f8b\u5b50\uff1a\n-- \u89e3\u6790\u670d\u52a1\u5668\u4f20\u5165\u7684\u6570\u636e\u5305\nlocal coapdata = libcoap.parse(indata)\nlog.info(\"coapdata\", coapdata:data())\n", "prefix": "coapdata:data"}, "libgnss.parse": {"body": "libgnss.parse(${1:str})", "description": "libgnss.parse(str) - \u5904\u7406nmea\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nstring \u539f\u59cbnmea\u6570\u636e\n\u4f8b\u5b50\uff1a\n-- \u89e3\u6790nmea\u6570\u636e\nlibgnss.parse(indata)\nlog.info(\"nmea\", json.encode(libgnss.getRmc(), \"11g\"))\n", "prefix": "libgnss.parse"}, "libgnss.isFix": {"body": "libgnss.isFix()", "description": "libgnss.isFix() - \u5f53\u524d\u662f\u5426\u5df2\u7ecf\u5b9a\u4f4d\u6210\u529f\n\u8fd4\u56de\u503c\uff1a\nboolean \u5b9a\u4f4d\u6210\u529f\u4e0e\u5426\n\u4f8b\u5b50\uff1a\nlog.info(\"nmea\", \"isFix\", libgnss.isFix())\n", "prefix": "libgnss.isFix"}, "libgnss.getIntLocation": {"body": "libgnss.getIntLocation()", "description": "libgnss.getIntLocation() - \u83b7\u53d6\u4f4d\u7f6e\u4fe1\u606f\n\u8fd4\u56de\u503c\uff1a\nint lat\u6570\u636e, \u683c\u5f0f\u4e3a ddddddddd\nint lng\u6570\u636e, \u683c\u5f0f\u4e3a ddddddddd\nint speed\u6570\u636e, \u5355\u4f4d\u7c73. \u4e8e2023.9.26\u4fee\u6b63\n\u4f8b\u5b50\uff1a\n-- \u5efa\u8bae\u7528libgnss.getRmc(1)\nlog.info(\"nmea\", \"loc\", libgnss.getIntLocation())\n", "prefix": "libgnss.getIntLocation"}, "libgnss.getRmc": {"body": "libgnss.getRmc(${1:data_mode})", "description": "libgnss.getRmc(data_mode) - \u83b7\u53d6\u539f\u59cbRMC\u4f4d\u7f6e\u4fe1\u606f\n\u4f20\u5165\u503c\uff1a\nint \u5750\u6807\u7c7b\u6570\u636e\u7684\u683c\u5f0f, 0-DDMM.MMM\u683c\u5f0f, 1-DDDDDDD\u683c\u5f0f, 2-DD.DDDDD\u683c\u5f0f\n\u8fd4\u56de\u503c\uff1a\ntable \u539f\u59cbrmc\u6570\u636e\n\u4f8b\u5b50\uff1a\n-- \u89e3\u6790nmea\nlog.info(\"nmea\", \"rmc\", json.encode(libgnss.getRmc(2)))\n-- \u5b9e\u4f8b\u8f93\u51fa\n--[[\n{\n \"course\":0,\n \"valid\":true, // true\u5b9a\u4f4d\u6210\u529f,false\u5b9a\u4f4d\u4e22\u5931\n \"lat\":23.4067, // \u7eac\u5ea6, \u6b63\u6570\u4e3a\u5317\u7eac, \u8d1f\u6570\u4e3a\u5357\u7eac\n \"lng\":113.231, // \u7ecf\u5ea6, \u6b63\u6570\u4e3a\u4e1c\u7ecf, \u8d1f\u6570\u4e3a\u897f\u7ecf\n \"variation\":0, // \u5730\u9762\u822a\u5411\uff0c\u5355\u4f4d\u4e3a\u5ea6\uff0c\u4ece\u5317\u5411\u8d77\u987a\u65f6\u9488\u8ba1\u7b97\n \"speed\":0 // \u5730\u9762\u901f\u5ea6, \u5355\u4f4d\u4e3a\"\u8282\"\n \"year\":2023, // \u5e74\u4efd\n \"month\":1, // \u6708\u4efd, 1-12\n \"day\":5, // \u6708\u4efd\u5929, 1-31\n \"hour\":7, // \u5c0f\u65f6,0-23\n \"min\":23, // \u5206\u949f,0-59\n \"sec\":20, // \u79d2,0-59\n}\n]]\n", "prefix": "libgnss.getRmc"}, "libgnss.getGsv": {"body": "libgnss.getGsv()", "description": "libgnss.getGsv() - \u83b7\u53d6\u539f\u59cbGSV\u4fe1\u606f\n\u8fd4\u56de\u503c\uff1a\ntable \u539f\u59cbGSV\u6570\u636e\n\u4f8b\u5b50\uff1a\n-- \u89e3\u6790nmea\nlog.info(\"nmea\", \"gsv\", json.encode(libgnss.getGsv()))\n--[[\u5b9e\u4f8b\u8f93\u51fa\n{\n \"total_sats\":24, // \u603b\u53ef\u89c1\u536b\u661f\u6570\u91cf\n \"sats\":[\n {\n \"snr\":27, // \u4fe1\u566a\u6bd4\n \"azimuth\":278, // \u65b9\u5411\u89d2\n \"elevation\":59, // \u4ef0\u89d2\n \"tp\":0, // 0 - GPS/SASS/QSZZ, 1 - BD\n \"nr\":4 // \u536b\u661f\u7f16\u53f7\n },\n // \u8fd9\u91cc\u5ffd\u7565\u4e8622\u4e2a\u536b\u661f\u7684\u4fe1\u606f\n {\n \"snr\":0,\n \"azimuth\":107,\n \"elevation\":19,\n \"tp\":1,\n \"nr\":31\n }\n ]\n}\n]]\n", "prefix": "libgnss.getGsv"}, "libgnss.getGsa": {"body": "libgnss.getGsa(${1:data_mode})", "description": "libgnss.getGsa(data_mode) - \u83b7\u53d6\u539f\u59cbGSA\u4fe1\u606f\n\u4f20\u5165\u503c\uff1a\nint \u5750\u6807\u7c7b\u6570\u636e\u7684\u683c\u5f0f, 0-DDMM.MMM\u683c\u5f0f, 1-DDDDDDD\u683c\u5f0f, 2-DD.DDDDD\u683c\u5f0f\n\u8fd4\u56de\u503c\uff1a\ntable \u539f\u59cbGSA\u6570\u636e\n\u4f8b\u5b50\uff1a\n-- \u83b7\u53d6\nlog.info(\"nmea\", \"gsa\", json.encode(libgnss.getGsa(), \"11g\"))\n-- \u793a\u4f8b\u6570\u636e\n--[[\n{\n \"sats\":[ // \u6b63\u5728\u4f7f\u7528\u7684\u536b\u661f\u7f16\u53f7\n 9,\n 6,\n 16,\n 16,\n 26,\n 21,\n 27,\n 27,\n 4,\n 36,\n 3,\n 7,\n 8,\n 194\n ],\n \"vdop\":0.03083333, // \u5782\u76f4\u7cbe\u5ea6\u56e0\u5b50\uff0c0.00 - 99.99\uff0c\u4e0d\u5b9a\u4f4d\u65f6\u503c\u4e3a 99.99\n \"pdop\":0.0455, // \u6c34\u5e73\u7cbe\u5ea6\u56e0\u5b50\uff0c0.00 - 99.99\uff0c\u4e0d\u5b9a\u4f4d\u65f6\u503c\u4e3a 99.99\n \"fix_type\":3, // \u5b9a\u4f4d\u6a21\u5f0f, 1-\u672a\u5b9a\u4f4d, 2-2D\u5b9a\u4f4d, 3-3D\u5b9a\u4f4d\n \"hdop\":0.0335 // \u4f4d\u7f6e\u7cbe\u5ea6\u56e0\u5b50\uff0c0.00 - 99.99\uff0c\u4e0d\u5b9a\u4f4d\u65f6\u503c\u4e3a 99.99\n}\n]]\n", "prefix": "libgnss.getGsa"}, "libgnss.getVtg": {"body": "libgnss.getVtg(${1:data_mode})", "description": "libgnss.getVtg(data_mode) - \u83b7\u53d6VTA\u901f\u5ea6\u4fe1\u606f\n\u4f20\u5165\u503c\uff1a\nint \u53ef\u9009, 3-\u539f\u59cb\u5b57\u7b26\u4e32, \u4e0d\u4f20\u6216\u8005\u4f20\u5176\u4ed6\u503c, \u5219\u8fd4\u56de\u6d6e\u70b9\u503c\n\u8fd4\u56de\u503c\uff1a\ntable \u539f\u59cbVTA\u6570\u636e\n\u4f8b\u5b50\uff1a\n-- \u89e3\u6790nmea\nlog.info(\"nmea\", \"vtg\", json.encode(libgnss.getVtg()))\n-- \u793a\u4f8b\n--[[\n{\n \"speed_knots\":0, // \u901f\u5ea6, \u82f1\u91cc/\u5c0f\u65f6\n \"true_track_degrees\":0, // \u771f\u5317\u65b9\u5411\u89d2\n \"magnetic_track_degrees\":0, // \u78c1\u5317\u65b9\u5411\u89d2\n \"speed_kph\":0 // \u901f\u5ea6, \u5343\u7c73/\u5c0f\u65f6\n}\n]]\n", "prefix": "libgnss.getVtg"}, "libgnss.getZda": {"body": "libgnss.getZda()", "description": "libgnss.getZda() - \u83b7\u53d6\u539f\u59cbZDA\u65f6\u95f4\u548c\u65e5\u671f\u4fe1\u606f\n\u8fd4\u56de\u503c\uff1a\ntable \u539f\u59cbzda\u6570\u636e\n\u4f8b\u5b50\uff1a\nlog.info(\"nmea\", \"zda\", json.encode(libgnss.getZda()))\n-- \u5b9e\u4f8b\u8f93\u51fa\n--[[\n{\n \"minute_offset\":0, // \u672c\u5730\u65f6\u533a\u7684\u5206\u949f, \u4e00\u822c\u56fa\u5b9a\u8f93\u51fa0\n \"hour_offset\":0, // \u672c\u5730\u65f6\u533a\u7684\u5c0f\u65f6, \u4e00\u822c\u56fa\u5b9a\u8f93\u51fa0\n \"year\":2023 // UTC \u5e74\uff0c\u56db\u4f4d\u6570\u5b57\n \"month\":1, // UTC \u6708\uff0c\u4e24\u4f4d\uff0c01 ~ 12\n \"day\":5, // UTC \u65e5\uff0c\u4e24\u4f4d\u6570\u5b57\uff0c01 ~ 31\n \"hour\":7, // \u5c0f\u65f6\n \"min\":50, // \u5206\n \"sec\":14, // \u79d2\n}\n]]\n", "prefix": "libgnss.getZda"}, "libgnss.debug": {"body": "libgnss.debug(${1:mode})", "description": "libgnss.debug(mode) - \u8bbe\u7f6e\u8c03\u8bd5\u6a21\u5f0f\n\u4f20\u5165\u503c\uff1a\nbool true\u5f00\u542f\u8c03\u8bd5,false\u5173\u95ed\u8c03\u8bd5,\u9ed8\u8ba4\u4e3afalse\n\u4f8b\u5b50\uff1a\n-- \u5f00\u542f\u8c03\u8bd5, \u4f1a\u8f93\u51faGNSS\u539f\u59cb\u6570\u636e\u5230\u65e5\u5fd7\u4e2d\nlibgnss.debug(true)\n-- \u5173\u95ed\u8c03\u8bd5\nlibgnss.debug(false)\n", "prefix": "libgnss.debug"}, "libgnss.getGga": {"body": "libgnss.getGga(${1:data_mode})", "description": "libgnss.getGga(data_mode) - \u83b7\u53d6GGA\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nint \u5750\u6807\u7c7b\u6570\u636e\u7684\u683c\u5f0f, 0-DDMM.MMM\u683c\u5f0f, 1-DDDDDDD\u683c\u5f0f, 2-DD.DDDDD\u683c\u5f0f, 3-\u539f\u59cb\u5b57\u7b26\u4e32\n\u8fd4\u56de\u503c\uff1a\ntable GGA\u6570\u636e, \u82e5\u5982\u4e0d\u5b58\u5728\u4f1a\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\nlocal gga = libgnss.getGga(2)\nif gga then\n log.info(\"GGA\", json.encode(gga, \"11g\"))\nend\n--\u5b9e\u4f8b\u8f93\u51fa\n--[[\n{\n \"dgps_age\":0, // \u5dee\u5206\u6821\u6b63\u65f6\u5ef6\uff0c\u5355\u4f4d\u4e3a\u79d2\n \"fix_quality\":1, // \u5b9a\u4f4d\u72b6\u6001\u6807\u8bc6 0 - \u65e0\u6548,1 - \u5355\u70b9\u5b9a\u4f4d,2 - \u5dee\u5206\u5b9a\u4f4d\n \"satellites_tracked\":14, // \u53c2\u4e0e\u5b9a\u4f4d\u7684\u536b\u661f\u6570\u91cf\n \"altitude\":0.255, // \u6d77\u5e73\u9762\u5206\u79bb\u5ea6, \u6216\u8005\u6210\u4e3a\u6d77\u62d4, \u5355\u4f4d\u662f\u7c73,\n \"hdop\":0.0335, // \u6c34\u5e73\u7cbe\u5ea6\u56e0\u5b50\uff0c0.00 - 99.99\uff0c\u4e0d\u5b9a\u4f4d\u65f6\u503c\u4e3a 99.99\n \"longitude\":113.231, // \u7ecf\u5ea6, \u6b63\u6570\u4e3a\u4e1c\u7ecf, \u8d1f\u6570\u4e3a\u897f\u7ecf\n \"latitude\":23.4067, // \u7eac\u5ea6, \u6b63\u6570\u4e3a\u5317\u7eac, \u8d1f\u6570\u4e3a\u5357\u7eac\n \"height\":0 // \u692d\u7403\u9ad8\uff0c\u56fa\u5b9a\u8f93\u51fa 1 \u4f4d\u5c0f\u6570\n}\n]]\n", "prefix": "libgnss.getGga"}, "libgnss.getGll": {"body": "libgnss.getGll(${1:data_mode})", "description": "libgnss.getGll(data_mode) - \u83b7\u53d6GLL\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nint \u5750\u6807\u7c7b\u6570\u636e\u7684\u683c\u5f0f, 0-DDMM.MMM\u683c\u5f0f, 1-DDDDDDD\u683c\u5f0f, 2-DD.DDDDD\u683c\u5f0f\n\u8fd4\u56de\u503c\uff1a\ntable GLL\u6570\u636e, \u82e5\u5982\u4e0d\u5b58\u5728\u4f1a\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\nlocal gll = libgnss.getGll(2)\nif gll then\n log.info(\"GLL\", json.encode(gll, \"11g\"))\nend\n-- \u5b9e\u4f8b\u6570\u636e\n--[[\n{\n \"status\":\"A\", // \u5b9a\u4f4d\u72b6\u6001, A\u6709\u6548, B\u65e0\u6548\n \"mode\":\"A\", // \u5b9a\u4f4d\u6a21\u5f0f, V\u65e0\u6548, A\u5355\u70b9\u89e3, D\u5dee\u5206\u89e3\n \"sec\":20, // \u79d2, UTC\u65f6\u95f4\u4e3a\u51c6\n \"min\":23, // \u5206\u949f, UTC\u65f6\u95f4\u4e3a\u51c6\n \"hour\":7, // \u5c0f\u65f6, UTC\u65f6\u95f4\u4e3a\u51c6\n \"longitude\":113.231, // \u7ecf\u5ea6, \u6b63\u6570\u4e3a\u4e1c\u7ecf, \u8d1f\u6570\u4e3a\u897f\u7ecf\n \"latitude\":23.4067, // \u7eac\u5ea6, \u6b63\u6570\u4e3a\u5317\u7eac, \u8d1f\u6570\u4e3a\u5357\u7eac\n \"us\":0 // \u5fae\u5999\u6570, \u901a\u5e38\u4e3a0\n}\n]]\n", "prefix": "libgnss.getGll"}, "libgnss.clear": {"body": "libgnss.clear()", "description": "libgnss.clear() - \u6e05\u9664\u5386\u53f2\u5b9a\u4f4d\u6570\u636e\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n-- \u8be5\u64cd\u4f5c\u4f1a\u6e05\u9664\u6240\u6709\u5b9a\u4f4d\u6570\u636e\n", "prefix": "libgnss.clear"}, "libgnss.bind": {"body": "libgnss.bind(${1:id},${2:next_id})", "description": "libgnss.bind(id, next_id) - \u7ed1\u5b9auart\u7aef\u53e3\u8fdb\u884cGNSS\u6570\u636e\u8bfb\u53d6\n\u4f20\u5165\u503c\uff1a\nint uart\u7aef\u53e3\u53f7\nint \u8f6c\u53d1\u5230uart\u7684id, \u4f8b\u5982\u865a\u62dfuart.VUART_0\n\u4f8b\u5b50\uff1a\n-- \u914d\u7f6e\u4e32\u53e3\u4fe1\u606f, \u901a\u5e38\u4e3a 115200 8N1\nuart.setup(2, 115200)\n-- \u7ed1\u5b9auart, \u9a6c\u4e0a\u5f00\u59cb\u89e3\u6790GNSS\u6570\u636e\nlibgnss.bind(2)\n-- \u65e0\u9700\u518d\u8c03\u7528uart.on\u7136\u540e\u8c03\u7528libgnss.parse\n-- \u5f00\u53d1\u671f\u53ef\u6253\u5f00\u8c03\u8bd5\u65e5\u5fd7\nlibgnss.debug(true)\n\n-- 2023-01-02\u4e4b\u540e\u7f16\u8bd1\u7684\u56fa\u4ef6\u6709\u6548\n-- \u4eceuart2\u8bfb\u53d6\u5e76\u89e3\u6790, \u540c\u65f6\u8f6c\u53d1\u5230\u865a\u62df\u4e32\u53e30\nlibgnss.bind(2, uart.VUART_0)\n", "prefix": "libgnss.bind"}, "libgnss.locStr": {"body": "libgnss.locStr(${1:mode})", "description": "libgnss.locStr(mode) - \u83b7\u53d6\u4f4d\u7f6e\u5b57\u7b26\u4e32\n\u4f20\u5165\u503c\uff1a\nint \u5b57\u7b26\u4e32\u6a21\u5f0f. 0- Air780EG\u6240\u9700\u7684\u683c\u5f0f\nreturn \u6307\u5b9a\u6a21\u5f0f\u7684\u5b57\u7b26\u4e32\n\u4f8b\u5b50\uff1a\n-- \u4ec5\u63a8\u8350\u5728\u5b9a\u4f4d\u6210\u529f\u540e\u8c03\u7528\n", "prefix": "libgnss.locStr"}, "libgnss.rtcAuto": {"body": "libgnss.rtcAuto(${1:enable})", "description": "libgnss.rtcAuto(enable) - \u5b9a\u4f4d\u6210\u529f\u540e\u81ea\u52a8\u8bbe\u7f6eRTC\n\u4f20\u5165\u503c\uff1a\nbool \u5f00\u542f\u4e0e\u5426, \u9ed8\u8ba4\u662ffalse\u5173\u95ed\n\u4f8b\u5b50\uff1a\n-- \u5f00\u542f\u81ea\u52a8\u8bbe\u7f6eRTC\nlibgnss.rtcAuto(true)\n", "prefix": "libgnss.rtcAuto"}, "libgnss.on": {"body": "libgnss.on(${1:tp},${2:fn})", "description": "libgnss.on(tp, fn) - \u5e95\u5c42\u4e8b\u4ef6\u56de\u8c03\n\u4f20\u5165\u503c\uff1a\nstring \u4e8b\u4ef6\u7c7b\u578b,\u5f53\u524d\u652f\u6301\"raw\"\n\u4f8b\u5b50\uff1a\n-- \u672c\u51fd\u6570\u4e00\u822c\u7528\u4e8e\u8c03\u8bd5, \u7528\u4e8e\u83b7\u53d6\u5e95\u5c42\u5b9e\u9645\u6536\u5230\u7684\u6570\u636e\nlibgnss.on(\"raw\", function(data)\n log.info(\"GNSS\", data)\nend)\n", "prefix": "libgnss.on"}, "libgnss.getTxt": {"body": "libgnss.getTxt()", "description": "libgnss.getTxt() - \u83b7\u53d6\u975e\u6807\u7684GPTXT\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nreturn GPTXT\u6240\u643a\u5e26\u7684\u5b57\u7b26\u4e32\n\u4f8b\u5b50\uff1a\n-- \u672c\u51fd\u6570\u4e8e2023.6.6 \u6dfb\u52a0\nlog.info(\"gnss\", \"txt\", libgnss.getTxt())\n\n-- \u6d4b\u8bd5\u8bed\u53e5\nlibgnss.parse(\"$GPTXT,01,01,01,ANTENNA SHORT*63\\r\\n\")\nlog.info(\"GNSS\", libgnss.getTxt())\nlibgnss.parse(\"$GPTXT,01,01,01,ANTENNA OPEN*25\\r\\n\")\nlog.info(\"GNSS\", libgnss.getTxt())\nlibgnss.parse(\"$GPTXT,01,01,01,ANTENNA OK*35\\r\\n\")\nlog.info(\"GNSS\", libgnss.getTxt())\n", "prefix": "libgnss.getTxt"}, "log.setLevel": {"body": "log.setLevel(${1:level})", "description": "log.setLevel(level) - \u8bbe\u7f6e\u65e5\u5fd7\u7ea7\u522b\n\u4f20\u5165\u503c\uff1a\nstring level \u65e5\u5fd7\u7ea7\u522b,\u53ef\u7528\u5b57\u7b26\u4e32\u6216\u6570\u503c, \u5b57\u7b26\u4e32\u4e3a(SILENT,DEBUG,INFO,WARN,ERROR,FATAL), \u6570\u503c\u4e3a(0,1,2,3,4,5)\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n-- \u8bbe\u7f6e\u65e5\u5fd7\u7ea7\u522b\u4e3aINFO\nlog.setLevel(\"INFO\")\n", "prefix": "log.setLevel"}, "log.style": {"body": "log.style(${1:val})", "description": "log.style(val) - \u8bbe\u7f6e\u65e5\u5fd7\u98ce\u683c\n\u4f20\u5165\u503c\uff1a\nint \u65e5\u5fd7\u98ce\u683c,\u9ed8\u8ba4\u4e3a0, \u4e0d\u4f20\u5c31\u662f\u83b7\u53d6\u5f53\u524d\u503c\n\u8fd4\u56de\u503c\uff1a\nint \u5f53\u524d\u7684\u65e5\u5fd7\u98ce\u683c\n\u4f8b\u5b50\uff1a\n-- \u4ee5 log.info(\"ABC\", \"DEF\", 123) \u4e3a\u4f8b, \u5047\u8bbe\u8be5\u4ee3\u7801\u4f4d\u4e8emain.lua\u768412\u884c\n-- \u9ed8\u8ba4\u65e5\u5fd70\n-- I/user.ABC DEF 123\n-- \u8c03\u8bd5\u98ce\u683c1, \u6dfb\u52a0\u989d\u5916\u7684\u8c03\u8bd5\u4fe1\u606f\n-- I/main.lua:12 ABC DEF 123\n-- \u8c03\u8bd5\u98ce\u683c2, \u6dfb\u52a0\u989d\u5916\u7684\u8c03\u8bd5\u4fe1\u606f, \u4f4d\u7f6e\u6709\u6240\u533a\u522b\n-- I/user.ABC main.lua:12 DEF 123\n\nlog.style(0) -- \u9ed8\u8ba4\u98ce\u683c0\nlog.style(1) -- \u8c03\u8bd5\u98ce\u683c1\nlog.style(2) -- \u8c03\u8bd5\u98ce\u683c2\n", "prefix": "log.style"}, "log.getLevel": {"body": "log.getLevel()", "description": "log.getLevel() - \u83b7\u53d6\u65e5\u5fd7\u7ea7\u522b\n\u8fd4\u56de\u503c\uff1a\nint \u65e5\u5fd7\u7ea7\u522b\u5bf9\u5e940,1,2,3,4,5\n\u4f8b\u5b50\uff1a\n-- \u5f97\u5230\u65e5\u5fd7\u7ea7\u522b\nlog.getLevel()\n", "prefix": "log.getLevel"}, "log.debug": {"body": "log.debug(${1:tag},${2:val},${3:val2},${4:val3},${5:...})", "description": "log.debug(tag, val, val2, val3, ...) - \u8f93\u51fa\u65e5\u5fd7,\u7ea7\u522bdebug\n\u4f20\u5165\u503c\uff1a\nstring tag \u65e5\u5fd7\u6807\u8bc6,\u5fc5\u987b\u662f\u5b57\u7b26\u4e32\n... \u9700\u6253\u5370\u7684\u53c2\u6570\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n-- \u65e5\u5fd7\u8f93\u51fa D/onenet connect ok\nlog.debug(\"onenet\", \"connect ok\")\n", "prefix": "log.debug"}, "log.info": {"body": "log.info(${1:tag},${2:val},${3:val2},${4:val3},${5:...})", "description": "log.info(tag, val, val2, val3, ...) - \u8f93\u51fa\u65e5\u5fd7,\u7ea7\u522binfo\n\u4f20\u5165\u503c\uff1a\nstring tag \u65e5\u5fd7\u6807\u8bc6,\u5fc5\u987b\u662f\u5b57\u7b26\u4e32\n... \u9700\u6253\u5370\u7684\u53c2\u6570\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n-- \u65e5\u5fd7\u8f93\u51fa I/onenet connect ok\nlog.info(\"onenet\", \"connect ok\")\n", "prefix": "log.info"}, "log.warn": {"body": "log.warn(${1:tag},${2:val},${3:val2},${4:val3},${5:...})", "description": "log.warn(tag, val, val2, val3, ...) - \u8f93\u51fa\u65e5\u5fd7,\u7ea7\u522bwarn\n\u4f20\u5165\u503c\uff1a\nstring tag \u65e5\u5fd7\u6807\u8bc6,\u5fc5\u987b\u662f\u5b57\u7b26\u4e32\n... \u9700\u6253\u5370\u7684\u53c2\u6570\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n-- \u65e5\u5fd7\u8f93\u51fa W/onenet connect ok\nlog.warn(\"onenet\", \"connect ok\")\n", "prefix": "log.warn"}, "log.error": {"body": "log.error(${1:tag},${2:val},${3:val2},${4:val3},${5:...})", "description": "log.error(tag, val, val2, val3, ...) - \u8f93\u51fa\u65e5\u5fd7,\u7ea7\u522berror\n\u4f20\u5165\u503c\uff1a\nstring tag \u65e5\u5fd7\u6807\u8bc6,\u5fc5\u987b\u662f\u5b57\u7b26\u4e32\n... \u9700\u6253\u5370\u7684\u53c2\u6570\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n-- \u65e5\u5fd7\u8f93\u51fa E/onenet connect ok\nlog.error(\"onenet\", \"connect ok\")\n", "prefix": "log.error"}, "lora.init": {"body": "lora.init(${1:ic},${2:loraconfig},${3:spiconfig})", "description": "lora.init(ic, loraconfig,spiconfig) - lora\u521d\u59cb\u5316\n\u4f20\u5165\u503c\uff1a\nstring lora \u578b\u53f7\uff0c\u5f53\u524d\u652f\u6301\uff1a
llcc68
sx1268\ntable lora\u914d\u7f6e\u53c2\u6570,\u4e0e\u5177\u4f53\u8bbe\u5907\u6709\u5173\n\u4f8b\u5b50\uff1a\nlora.init(\"llcc68\",\n {\n id = 0, -- SPI id\n cs = pin.PB04, -- SPI \u7247\u9009\u7684GPIO\u53f7,\u5982\u679c\u6ca1\u6709pin\u5e93,\u586bGPIO\u6570\u5b57\u7f16\u53f7\u5c31\u884c\n res = pin.PB00, -- \u590d\u4f4d\u811a\u8fde\u63a5\u7684GPIO\u53f7,\u5982\u679c\u6ca1\u6709pin\u5e93,\u586bGPIO\u6570\u5b57\u7f16\u53f7\u5c31\u884c\n busy = pin.PB01, -- \u5fd9\u68c0\u6d4b\u811a\u7684GPIO\u53f7\n dio1 = pin.PB06, -- \u6570\u636e\u8f93\u5165\u4e2d\u65ad\u811a\n lora_init = true -- \u662f\u5426\u53d1\u9001\u521d\u59cb\u5316\u547d\u4ee4. \u5982\u679c\u662f\u5524\u9192\u540e\u76f4\u63a5\u8bfb\u53d6, \u5c31\u4f20false\n }\n)\n", "prefix": "lora.init"}, "lora.set_channel": {"body": "lora.set_channel(${1:freq})", "description": "lora.set_channel(freq) - \u8bbe\u7f6e\u9891\u9053\u9891\u7387\n\u4f20\u5165\u503c\uff1a\nnumber \u9891\u7387\n\u4f8b\u5b50\uff1a\nlora.set_channel(433000000)\n", "prefix": "lora.set_channel"}, "lora.set_txconfig": {"body": "lora.set_txconfig(${1:ic},${2:txconfig})", "description": "lora.set_txconfig(ic, txconfig) - lora\u914d\u7f6e\u53d1\u9001\u53c2\u6570\n\u4f20\u5165\u503c\uff1a\nstring lora \u578b\u53f7\uff0c\u5f53\u524d\u652f\u6301\uff1a
llcc68
sx1268\ntable lora\u53d1\u9001\u914d\u7f6e\u53c2\u6570,\u4e0e\u5177\u4f53\u8bbe\u5907\u6709\u5173\n\u4f8b\u5b50\uff1a\nlora.set_txconfig(\"llcc68\",\n {\n mode=1,\n power=22,\n fdev=0,\n bandwidth=0,\n datarate=9,\n coderate=4,\n preambleLen=8,\n fixLen=false,\n crcOn=true,\n freqHopOn=0,\n hopPeriod=0,\n iqInverted=false,\n timeout=3000\n }\n)\n", "prefix": "lora.set_txconfig"}, "lora.set_rxconfig": {"body": "lora.set_rxconfig(${1:ic},${2:set_rxconfig})", "description": "lora.set_rxconfig(ic, set_rxconfig) - lora\u914d\u7f6e\u63a5\u6536\u53c2\u6570\n\u4f20\u5165\u503c\uff1a\nstring lora \u578b\u53f7\uff0c\u5f53\u524d\u652f\u6301\uff1a
llcc68
sx1268\ntable lora\u63a5\u6536\u914d\u7f6e\u53c2\u6570,\u4e0e\u5177\u4f53\u8bbe\u5907\u6709\u5173\n\u4f8b\u5b50\uff1a\nlora.set_rxconfig(\"llcc68\",\n {\n mode=1,\n bandwidth=0,\n datarate=9,\n coderate=4,\n bandwidthAfc=0,\n preambleLen=8,\n symbTimeout=0,\n fixLen=false,\n payloadLen=0,\n crcOn=true,\n freqHopOn=0,\n hopPeriod=0,\n iqInverted=false,\n rxContinuous=false\n }\n)\n", "prefix": "lora.set_rxconfig"}, "lora.send": {"body": "lora.send(${1:data})", "description": "lora.send(data) - \u53d1\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nstring \u5199\u5165\u7684\u6570\u636e\n\u4f8b\u5b50\uff1a\nlora.send(\"PING\")\n", "prefix": "lora.send"}, "lora.recv": {"body": "lora.recv(${1:timeout})", "description": "lora.recv(timeout) - \u5f00\u542f\u6536\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nnumber \u8d85\u65f6\u65f6\u95f4\uff0c\u9ed8\u8ba41000 \u5355\u4f4dms\n\u4f8b\u5b50\uff1a\nsys.subscribe(\"LORA_RX_DONE\", function(data, size)\n log.info(\"LORA_RX_DONE: \", data, size)\n lora.send(\"PING\")\nend)\n-- \u8001\u7248\u672c\u6ca1\u6709recv, \u53ef\u4ee5\u6539\u6210 lora.recive\nlora.recv(1000)\n", "prefix": "lora.recv"}, "lora.mode": {"body": "lora.mode(${1:mode})", "description": "lora.mode(mode) - \u8bbe\u7f6e\u8fdb\u5165\u6a21\u5f0f(\u4f11\u7720\uff0c\u6b63\u5e38\u7b49)\n\u4f20\u5165\u503c\uff1a\nnumber \u6a21\u5f0f \u6b63\u5e38\u6a21\u5f0f:lora.STANDBY \u4f11\u7720\u6a21\u5f0f:lora.SLEEP \u9ed8\u8ba4\u4e3a\u6b63\u5e38\u6a21\u5f0f\n\u4f8b\u5b50\uff1a\nlora.mode(lora.STANDBY)\n", "prefix": "lora.mode"}, "lora2.init": {"body": "lora2.init(${1:ic},${2:loraconfig},${3:spiconfig})", "description": "lora2.init(ic, loraconfig,spiconfig) - lora\u521d\u59cb\u5316\n\u4f20\u5165\u503c\uff1a\nstring lora \u578b\u53f7\uff0c\u5f53\u524d\u652f\u6301\uff1a
llcc68
sx1268\ntable lora\u914d\u7f6e\u53c2\u6570,\u4e0e\u5177\u4f53\u8bbe\u5907\u6709\u5173\n\u8fd4\u56de\u503c\uff1a\nuserdata \u82e5\u6210\u529f\u4f1a\u8fd4\u56delora\u5bf9\u8c61,\u5426\u5219\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\nspi_lora = spi.deviceSetup(spi_id,pin_cs,0,0,8,10*1000*1000,spi.MSB,1,0)\nlora_device = lora2.init(\"llcc68\",{res = pin_reset,busy = pin_busy,dio1 = pin_dio1},spi_lora)\n", "prefix": "lora2.init"}, "lora_device:set_channel": {"body": "lora_device:set_channel(${1:freq})", "description": "lora_device:set_channel(freq) - \u8bbe\u7f6e\u9891\u9053\u9891\u7387\n\u4f20\u5165\u503c\uff1a\nnumber \u9891\u7387\n\u4f8b\u5b50\uff1a\nlora_device:set_channel(433000000)\n", "prefix": "lora_device:set_channel"}, "lora_device:set_txconfig": {"body": "lora_device:set_txconfig(${1:txconfig})", "description": "lora_device:set_txconfig(txconfig) - lora\u914d\u7f6e\u53d1\u9001\u53c2\u6570\n\u4f20\u5165\u503c\uff1a\ntable lora\u53d1\u9001\u914d\u7f6e\u53c2\u6570,\u4e0e\u5177\u4f53\u8bbe\u5907\u6709\u5173\n\u4f8b\u5b50\uff1a\nlora_device:set_txconfig(\n {\n mode=1,\n power=22,\n fdev=0,\n bandwidth=0,\n datarate=9,\n coderate=4,\n preambleLen=8,\n fixLen=false,\n crcOn=true,\n freqHopOn=0,\n hopPeriod=0,\n iqInverted=false,\n timeout=3000\n }\n)\n", "prefix": "lora_device:set_txconfig"}, "lora_device:set_rxconfig": {"body": "lora_device:set_rxconfig(${1:set_rxconfig})", "description": "lora_device:set_rxconfig(set_rxconfig) - lora\u914d\u7f6e\u63a5\u6536\u53c2\u6570\n\u4f20\u5165\u503c\uff1a\ntable lora\u63a5\u6536\u914d\u7f6e\u53c2\u6570,\u4e0e\u5177\u4f53\u8bbe\u5907\u6709\u5173\n\u4f8b\u5b50\uff1a\nlora_device:set_rxconfig(\n {\n mode=1,\n bandwidth=0,\n datarate=9,\n coderate=4,\n bandwidthAfc=0,\n preambleLen=8,\n symbTimeout=0,\n fixLen=false,\n payloadLen=0,\n crcOn=true,\n freqHopOn=0,\n hopPeriod=0,\n iqInverted=false,\n rxContinuous=false\n }\n)\n", "prefix": "lora_device:set_rxconfig"}, "lora_device:send": {"body": "lora_device:send(${1:data})", "description": "lora_device:send(data) - \u53d1\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nstring \u5199\u5165\u7684\u6570\u636e\n\u4f8b\u5b50\uff1a\nlora_device:send(\"PING\")\n", "prefix": "lora_device:send"}, "lora_device:recv": {"body": "lora_device:recv(${1:timeout})", "description": "lora_device:recv(timeout) - \u5f00\u542f\u6536\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nnumber \u8d85\u65f6\u65f6\u95f4\uff0c\u9ed8\u8ba41000 \u5355\u4f4dms\n\u4f8b\u5b50\uff1a\nsys.subscribe(\"LORA_RX_DONE\", function(data, size)\n log.info(\"LORA_RX_DONE: \", data, size)\n lora_device:send(\"PING\")\nend)\nlora_device:recv(1000)\n", "prefix": "lora_device:recv"}, "lora_device:mode": {"body": "lora_device:mode(${1:mode})", "description": "lora_device:mode(mode) - \u8bbe\u7f6e\u8fdb\u5165\u6a21\u5f0f(\u4f11\u7720\uff0c\u6b63\u5e38\u7b49)\n\u4f20\u5165\u503c\uff1a\nnumber \u6a21\u5f0f \u6b63\u5e38\u6a21\u5f0f:lora.STANDBY \u4f11\u7720\u6a21\u5f0f:lora.SLEEP \u9ed8\u8ba4\u4e3a\u6b63\u5e38\u6a21\u5f0f\n\u4f8b\u5b50\uff1a\nlora_device:mode(lora.STANDBY)\n", "prefix": "lora_device:mode"}, "lora_device:on": {"body": "lora_device:on(${1:cb})", "description": "lora_device:on(cb) - \u6ce8\u518clora\u56de\u8c03\n\u4f20\u5165\u503c\uff1a\nfunction cb lora\u56de\u8c03,\u53c2\u6570\u5305\u62eclora_device, event, data, size\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\nlora_device:on(function(lora_device, event, data, size)\n log.info(\"lora\", \"event\", event, lora_device, data, size)\n if event == \"tx_done\" then\n lora_device:recv(1000)\n elseif event == \"rx_done\" then\n lora_device:send(\"PING\")\n elseif event == \"tx_timeout\" then\n\n elseif event == \"rx_timeout\" then\n lora_device:recv(1000)\n elseif event == \"rx_error\" then\n\n end\nend)\n--[[\nevent\u53ef\u80fd\u51fa\u73b0\u7684\u503c\u6709\n tx_done -- \u53d1\u9001\u5b8c\u6210\n rx_done -- \u63a5\u6536\u5b8c\u6210\n tx_timeout -- \u53d1\u9001\u8d85\u65f6\n rx_timeout -- \u63a5\u6536\u8d85\u65f6\n rx_error -- \u63a5\u6536\u9519\u8bef\n]]\n", "prefix": "lora_device:on"}, "lvgl.draw_mask_radius_param_t": {"body": "lvgl.draw_mask_radius_param_t()", "description": "lvgl.draw_mask_radius_param_t() - \u521b\u5efa\u4e00\u4e2alv_draw_mask_radius_param_t\n\u8fd4\u56de\u503c\uff1a\nuserdata lv_draw_mask_radius_param_t\u6307\u9488\n\u4f8b\u5b50\uff1a\nlocal radius = lvgl.draw_mask_radius_param_t()\n", "prefix": "lvgl.draw_mask_radius_param_t"}, "lvgl.draw_mask_radius_param_t_free": {"body": "lvgl.draw_mask_radius_param_t_free(${1:radius})", "description": "lvgl.draw_mask_radius_param_t_free(radius) - \u91ca\u653e\u4e00\u4e2alv_draw_mask_radius_param_t\n\u4f8b\u5b50\uff1a\nlocal lvgl.draw_mask_radius_param_t_free(radius)\n", "prefix": "lvgl.draw_mask_radius_param_t_free"}, "lvgl.draw_mask_line_param_t": {"body": "lvgl.draw_mask_line_param_t()", "description": "lvgl.draw_mask_line_param_t() - \u521b\u5efa\u4e00\u4e2alv_draw_mask_line_param_t\n\u8fd4\u56de\u503c\uff1a\nuserdata lv_draw_mask_line_param_t\u6307\u9488\n\u4f8b\u5b50\uff1a\nlocal line = lvgl.draw_mask_line_param_t()\n", "prefix": "lvgl.draw_mask_line_param_t"}, "lvgl.draw_mask_line_param_t_free": {"body": "lvgl.draw_mask_line_param_t_free(${1:line})", "description": "lvgl.draw_mask_line_param_t_free(line) - \u91ca\u653e\u4e00\u4e2alv_draw_mask_line_param_t\n\u4f8b\u5b50\uff1a\nlocal lvgl.draw_mask_line_param_t_free(line)\n", "prefix": "lvgl.draw_mask_line_param_t_free"}, "lvgl.draw_mask_fade_param_t": {"body": "lvgl.draw_mask_fade_param_t()", "description": "lvgl.draw_mask_fade_param_t() - \u521b\u5efa\u4e00\u4e2alv_draw_mask_fade_param_t\n\u8fd4\u56de\u503c\uff1a\nuserdata lv_draw_mask_fade_param_t\u6307\u9488\n\u4f8b\u5b50\uff1a\nlocal fade = lvgl.draw_mask_fade_param_t()\n", "prefix": "lvgl.draw_mask_fade_param_t"}, "lvgl.draw_mask_fade_param_t_free": {"body": "lvgl.draw_mask_fade_param_t_free(${1:fade})", "description": "lvgl.draw_mask_fade_param_t_free(fade) - \u91ca\u653e\u4e00\u4e2alv_draw_mask_fade_param_t\n\u4f8b\u5b50\uff1a\nlocal lvgl.draw_mask_fade_param_t_free(fade)\n", "prefix": "lvgl.draw_mask_fade_param_t_free"}, "lvgl.font_get": {"body": "lvgl.font_get(${1:name})", "description": "lvgl.font_get(name) - \u83b7\u53d6\u5185\u7f6e\u5b57\u4f53\n\u4f20\u5165\u503c\uff1a\nstring \u5b57\u4f53\u540d\u79f0+\u5b57\u53f7, \u4f8b\u5982 opposans_m_10\n\u8fd4\u56de\u503c\uff1a\nuserdata \u5b57\u4f53\u6307\u9488\n\u4f8b\u5b50\uff1a\n\nlocal font = lvgl.font_get(\"opposans_m_12\")\n", "prefix": "lvgl.font_get"}, "lvgl.font_load": {"body": "lvgl.font_load(${1:path/spi_device},${2:size},${3:bpp},${4:thickness},${5:cache_size},${6:sty_zh},${7:sty_en})", "description": "lvgl.font_load(path/spi_device,size,bpp,thickness,cache_size,sty_zh,sty_en) - \u4ece\u6587\u4ef6\u7cfb\u7edf\u52a0\u8f7d\u5b57\u4f53\n\u4f20\u5165\u503c\uff1a\nstring/userdata \u5b57\u4f53\u8def\u5f84/spi_device (spi_device\u4e3a\u4f7f\u7528\u5916\u7f6e\u9ad8\u901a\u77e2\u91cf\u5b57\u5e93\u82af\u7247)\nnumber size \u53ef\u9009,\u5b57\u53f7 16-192 \u9ed8\u8ba416(\u4f7f\u7528\u9ad8\u901a\u77e2\u91cf\u5b57\u5e93)\nnumber bpp \u53ef\u9009 \u6df1\u5ea6 \u9ed8\u8ba44(\u4f7f\u7528\u9ad8\u901a\u77e2\u91cf\u5b57\u5e93)\nnumber thickness \u53ef\u9009 \u7c97\u7ec6\u503c \u9ed8\u8ba4size * bpp(\u4f7f\u7528\u9ad8\u901a\u77e2\u91cf\u5b57\u5e93)\nnumber cache_size \u53ef\u9009 \u9ed8\u8ba40(\u4f7f\u7528\u9ad8\u901a\u77e2\u91cf\u5b57\u5e93)\nnumber sty_zh \u53ef\u9009 \u9009\u62e9\u5b57\u4f53 \u9ed8\u8ba41(\u4f7f\u7528\u9ad8\u901a\u77e2\u91cf\u5b57\u5e93)\nnumber sty_en \u53ef\u9009 \u9009\u62e9\u5b57\u4f53 \u9ed8\u8ba43(\u4f7f\u7528\u9ad8\u901a\u77e2\u91cf\u5b57\u5e93)\n\u8fd4\u56de\u503c\uff1a\nuserdata \u5b57\u4f53\u6307\u9488\n\u4f8b\u5b50\uff1a\nlocal font = lvgl.font_load(\"/font_32.bin\")\n--local font = lvgl.font_load(spi_device,16)(\u9ad8\u901a\u77e2\u91cf\u5b57\u5e93)\n", "prefix": "lvgl.font_load"}, "lvgl.font_free": {"body": "lvgl.font_free(${1:font})", "description": "lvgl.font_free(font) - \u91ca\u653e\u5b57\u4f53,\u614e\u7528!!!\u4ec5\u901a\u8fc7font_load\u52a0\u8f7d\u7684\u5b57\u4f53\u5141\u8bb8\u5378\u8f7d,\u901a\u8fc7font_get\u83b7\u53d6\u7684\u5b57\u4f53\u4e0d\u5141\u8bb8\u5378\u8f7d\n\u4f20\u5165\u503c\uff1a\nstring \u5b57\u4f53\u8def\u5f84\n\u8fd4\u56de\u503c\uff1a\nuserdata \u5b57\u4f53\u6307\u9488\n\u4f8b\u5b50\uff1a\nlocal font = lvgl.font_load(\"/font_32.bin\")\n-- N N N N \u64cd\u4f5c\n-- \u786e\u5b9a\u5b57\u4f53\u4e0d\u88ab\u4f7f\u7528,\u4e0d\u88ab\u5f15\u7528,\u4e14\u5185\u5b58\u7d27\u5f20\u9700\u8981\u91ca\u653e\nlvgl.font_free(font)\n", "prefix": "lvgl.font_free"}, "lvgl.obj_set_event_cb": {"body": "lvgl.obj_set_event_cb(${1:obj},${2:func})", "description": "lvgl.obj_set_event_cb(obj, func) - \u8bbe\u7f6e\u7ec4\u4ef6\u7684\u4e8b\u4ef6\u56de\u8c03\n\u4f20\u5165\u503c\uff1a\nuserdata lvgl\u7ec4\u4ef6\u6307\u9488\nfunc lua\u51fd\u6570, \u53c2\u6570\u67092\u4e2a (obj, event), \u5176\u4e2dobj\u662f\u5f53\u524d\u5bf9\u8c61, event\u662f\u4e8b\u4ef6\u7c7b\u578b, \u4e3a\u6574\u578b\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n", "prefix": "lvgl.obj_set_event_cb"}, "lvgl.obj_set_signal_cb": {"body": "lvgl.obj_set_signal_cb(${1:obj},${2:func})", "description": "lvgl.obj_set_signal_cb(obj, func) - \u8bbe\u7f6e\u7ec4\u4ef6\u7684\u4fe1\u53f7\u56de\u8c03\n\u4f20\u5165\u503c\uff1a\nuserdata lvgl\u7ec4\u4ef6\u6307\u9488\nfunc lua\u51fd\u6570, \u53c2\u6570\u67092\u4e2a (obj, signal), \u5176\u4e2dobj\u662f\u5f53\u524d\u5bf9\u8c61, signal\u662f\u4fe1\u53f7\u7c7b\u578b, \u4e3a\u6574\u578b\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n", "prefix": "lvgl.obj_set_signal_cb"}, "lvgl.anim_set_exec_cb": {"body": "lvgl.anim_set_exec_cb(${1:anim},${2:func})", "description": "lvgl.anim_set_exec_cb(anim, func) - \u8bbe\u7f6e\u52a8\u753b\u56de\u8c03\n\u4f20\u5165\u503c\uff1a\nuserdata \u52a8\u753b\u6307\u9488\nuserdata lvgl\u7ec4\u4ef6\u6307\u9488\nfunc lua\u51fd\u6570, \u53c2\u6570\u67092\u4e2a (obj, value), \u5176\u4e2dobj\u662f\u5f53\u524d\u5bf9\u8c61, signal\u662f\u4fe1\u53f7\u7c7b\u578b, \u4e3a\u6574\u578b\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n", "prefix": "lvgl.anim_set_exec_cb"}, "lvgl.anim_set_ready_cb": {"body": "lvgl.anim_set_ready_cb(${1:anim},${2:func})", "description": "lvgl.anim_set_ready_cb(anim, func) - \u8bbe\u7f6e\u52a8\u753b\u56de\u8c03\n\u4f20\u5165\u503c\uff1a\nuserdata \u52a8\u753b\u6307\u9488\nuserdata lvgl\u7ec4\u4ef6\u6307\u9488\nfunc lua\u51fd\u6570, \u53c2\u6570\u67091\u4e2a (anim), \u5176\u4e2danim\u662f\u5f53\u524d\u5bf9\u8c61\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n", "prefix": "lvgl.anim_set_ready_cb"}, "lvgl.anim_path_set_cb": {"body": "lvgl.anim_path_set_cb(${1:path},${2:func})", "description": "lvgl.anim_path_set_cb(path, func) - \u8bbe\u7f6e\u52a8\u753b\u56de\u8c03\n\u4f20\u5165\u503c\uff1a\nuserdata \u52a8\u753b\u6307\u9488\nuserdata lvgl\u7ec4\u4ef6\u6307\u9488\nfunc lua\u51fd\u6570, \u53c2\u6570\u67091\u4e2a (path), \u5176\u4e2dpath\u662f\u5f53\u524d\u5bf9\u8c61\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n", "prefix": "lvgl.anim_path_set_cb"}, "lvgl.event_send": {"body": "lvgl.event_send(${1:obj},${2:ent})", "description": "lvgl.event_send(obj, ent) - \u53d1\u9001\u4e8b\u4ef6\u7ed9\u7ec4\u4ef6\n\u4f20\u5165\u503c\uff1a\nuserdata \u7ec4\u4ef6\u6307\u9488\nint \u4e8b\u4ef6id, \u4f8b\u5982 lvgl.EVENT_PRESSED\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue, \u5bf9\u8c61\u5df2\u88ab\u5220\u9664\u7684\u8bdd\u8fd4\u56defalse\u6216\u8005nil\nint \u5e95\u5c42\u8fd4\u56de\u503c,\u5982\u679cobj\u4e3anil\u5c31\u8fd4\u56denil\n", "prefix": "lvgl.event_send"}, "lvgl.scr_act": {"body": "lvgl.scr_act()", "description": "lvgl.scr_act() - \u83b7\u53d6\u5f53\u524d\u6d3b\u8dc3\u7684screen\u5bf9\u8c61\n\u8fd4\u56de\u503c\uff1a\n\u6307\u9488 screen\u6307\u9488\n\u4f8b\u5b50\uff1a\nlocal scr = lvgl.scr_act()\n\n", "prefix": "lvgl.scr_act"}, "lvgl.layer_top": {"body": "lvgl.layer_top()", "description": "lvgl.layer_top() - \u83b7\u53d6layer_top\n\u8fd4\u56de\u503c\uff1a\n\u6307\u9488 layer\u6307\u9488\n", "prefix": "lvgl.layer_top"}, "lvgl.layer_sys": {"body": "lvgl.layer_sys()", "description": "lvgl.layer_sys() - \u83b7\u53d6layer_sys\n\u8fd4\u56de\u503c\uff1a\n\u6307\u9488 layer\u6307\u9488\n", "prefix": "lvgl.layer_sys"}, "lvgl.scr_load": {"body": "lvgl.scr_load(${1:scr})", "description": "lvgl.scr_load(scr) - \u8f7d\u5165\u6307\u5b9a\u7684screen\n\u4f20\u5165\u503c\uff1a\nuserdata screen\u6307\u9488\n\u4f8b\u5b50\uff1a\n local scr = lvgl.obj_create(nil, nil)\n local btn = lvgl.btn_create(scr)\n lvgl.obj_align(btn, lvgl.scr_act(), lvgl.ALIGN_CENTER, 0, 0)\n local label = lvgl.label_create(btn)\n lvgl.label_set_text(label, \"LuatOS!\")\n lvgl.scr_load(scr)\n", "prefix": "lvgl.scr_load"}, "lvgl.scr_load_anim": {"body": "lvgl.scr_load_anim(${1:scr})", "description": "lvgl.scr_load_anim(scr) - \u8f7d\u5165\u6307\u5b9a\u7684screen\u5e76\u4f7f\u7528\u6307\u5b9a\u7684\u8f6c\u573a\u52a8\u753b\n\u4f20\u5165\u503c\uff1a\nuserdata screen\u6307\u9488\n\u4f8b\u5b50\uff1a\n local scr = lvgl.obj_create(nil, nil)\n local btn = lvgl.btn_create(scr)\n lvgl.obj_align(btn, lvgl.scr_act(), lvgl.ALIGN_CENTER, 0, 0)\n local label = lvgl.label_create(btn)\n lvgl.label_set_text(label, \"LuatOS!\")\n\n local scr2 = lvgl.obj_create(nil,nil)\n local btn2 = lvgl.btn_create(scr2)\n lvgl.obj_align(btn, scr2, lvgl.ALIGN_CENTER, 0, 20)\n local label2 = lvgl.label_create(btn2)\n lvgl.label_set_text(label2, \"Btn2\")\n lvgl.scr_load(scr)\n --sys.wait(1000);\n lvgl.scr_load_anim(scr2,lvgl.SCR_LOAD_ANIM_OVER_LEFT,100,100,false)\n\u539f\u51fd\u6570\uff1alv_scr_load_anim(lv_obj_t * new_scr, lv_scr_load_anim_t anim_type, uint32_t time, uint32_t delay, bool auto_del)\n", "prefix": "lvgl.scr_load_anim"}, "lvgl.theme_set_act": {"body": "lvgl.theme_set_act(${1:name})", "description": "lvgl.theme_set_act(name) - \u8bbe\u7f6e\u4e3b\u9898\n\u4f20\u5165\u503c\uff1a\nstring \u4e3b\u9898\u540d\u79f0,\u53ef\u9009\u503c\u6709 default/mono/empty/material_light/material_dark/material_no_transition/material_no_focus\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\n-- \u9ed1\u767d\u4e3b\u9898\nlvgl.theme_set_act(\"mono\")\n-- \u7a7a\u767d\u4e3b\u9898\nlvgl.theme_set_act(\"empty\")\n", "prefix": "lvgl.theme_set_act"}, "lvgl.sleep": {"body": "lvgl.sleep(${1:enable})", "description": "lvgl.sleep(enable) - LVGL\u4f11\u7720\u63a7\u5236\uff0c\u6682\u505c/\u6062\u590d\u5237\u65b0\u5b9a\u65f6\u5668\uff0c\u76ee\u524d\u53ea\u6709105\u548cEC618\u53ef\u4ee5\u7528\n\u4f20\u5165\u503c\uff1a\nboolean true\u6682\u505c false\u6062\u590d\n\u4f8b\u5b50\uff1a\nlvgl.sleep(true)\t\t--\u6682\u505c\u5237\u65b0\uff0c\u7cfb\u7edf\u53ef\u4ee5\u4f11\u7720\nlvgl.sleep(false)\t\t--\u6062\u590d\u5237\u65b0\uff0c\u7cfb\u7edf\u4e0d\u4f11\u7720\n", "prefix": "lvgl.sleep"}, "lvgl.init": {"body": "lvgl.init(${1:w},${2:h},${3:lcd},${4:buff_size},${5:buff_mode})", "description": "lvgl.init(w, h, lcd, buff_size, buff_mode) - \u521d\u59cb\u5316LVGL\n\u4f20\u5165\u503c\uff1a\nint \u5c4f\u5e55\u5bbd,\u53ef\u9009,\u9ed8\u8ba4\u4ecelcd\u53d6\nint \u5c4f\u5e55\u9ad8,\u53ef\u9009,\u9ed8\u8ba4\u4ecelcd\u53d6\nuserdata lcd\u6307\u9488,\u53ef\u9009,lcd\u521d\u59cb\u5316\u540e\u6709\u9ed8\u8ba4\u503c,\u9884\u7559\u7684\u591a\u5c4f\u5165\u53e3\nint \u7f13\u51b2\u533a\u5927\u5c0f,\u9ed8\u8ba4\u5bbd*10, \u4e0d\u542b\u8272\u6df1.\nint \u7f13\u51b2\u6a21\u5f0f,\u9ed8\u8ba40, \u5355buff\u6a21\u5f0f, \u53ef\u90091,\u53ccbuff\u6a21\u5f0f\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n", "prefix": "lvgl.init"}, "lvgl.anim_create": {"body": "lvgl.anim_create()", "description": "lvgl.anim_create() - \u521b\u5efa\u5e76\u521d\u59cb\u5316\u4e00\u4e2aanim\n\u8fd4\u56de\u503c\uff1a\nuserdata anim\u6307\u9488\n\u4f8b\u5b50\uff1a\nlocal anim = lvgl.anim_create()\n", "prefix": "lvgl.anim_create"}, "lvgl.anim_free": {"body": "lvgl.anim_free(${1:anim})", "description": "lvgl.anim_free(anim) - \u91ca\u653e\u4e00\u4e2aanim\n\u4f8b\u5b50\uff1a\nlocal lvgl.anim_free(anim)\n", "prefix": "lvgl.anim_free"}, "lvgl.anim_path_t": {"body": "lvgl.anim_path_t()", "description": "lvgl.anim_path_t() - \u521b\u5efa\u4e00\u4e2alv_anim_path_t\n\u8fd4\u56de\u503c\uff1a\nuserdata lv_anim_path_t\u6307\u9488\n\u4f8b\u5b50\uff1a\nlocal anim_path_t = lvgl.anim_path_t()\n", "prefix": "lvgl.anim_path_t"}, "lvgl.anim_path_t_free": {"body": "lvgl.anim_path_t_free(${1:anim_path_t})", "description": "lvgl.anim_path_t_free(anim_path_t) - \u91ca\u653e\u4e00\u4e2alv_anim_path_t\n\u4f8b\u5b50\uff1a\nlocal lvgl.anim_path_t_free(anim_path_t)\n", "prefix": "lvgl.anim_path_t_free"}, "lvgl.anim_set_path_str": {"body": "lvgl.anim_set_path_str(${1:anim},${2:tp})", "description": "lvgl.anim_set_path_str(anim, tp) - \u8bbe\u7f6e\u52a8\u753b\u8def\u5f84\u65b9\u5f0f\n\u4f20\u5165\u503c\uff1a\nuserdata \u52a8\u753b\u6307\u9488\nstring \u7c7b\u578b, \u652f\u6301 linear/ease_in/ease_out/ease_in_out/overshoot/bounce/step\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n", "prefix": "lvgl.anim_set_path_str"}, "lvgl.qrcode_create": {"body": "lvgl.qrcode_create(${1:parent},${2:size},${3:dark_color},${4:light_color})", "description": "lvgl.qrcode_create(parent, size, dark_color, light_color) - \u521b\u5efaqrcode\u7ec4\u4ef6\n\u4f20\u5165\u503c\uff1a\nuserdata \u7236\u7ec4\u4ef6\nint \u957f\u5ea6,\u56e0\u4e3aqrcode\u662f\u6b63\u65b9\u5f62\nint \u4e8c\u7ef4\u7801\u4e2d\u6570\u636e\u70b9\u7684\u989c\u8272, RGB\u989c\u8272, \u9ed8\u8ba4 0x3333ff\nint \u4e8c\u7ef4\u7801\u4e2d\u80cc\u666f\u70b9\u7684\u989c\u8272, RGB\u989c\u8272, \u9ed8\u8ba4 0xeeeeff\n\u8fd4\u56de\u503c\uff1a\nuserdata qrcode\u7ec4\u4ef6\n\u4f8b\u5b50\uff1a\n-- \u521b\u5efa\u5e76\u663e\u793aqrcode\nlocal qrcode = lvgl.qrcode_create(scr, 100)\nlvgl.qrcode_update(qrcode, \"https://luatos.com\")\nlvgl.obj_align(qrcode, lvgl.scr_act(), lvgl.ALIGN_CENTER, -100, -100)\n", "prefix": "lvgl.qrcode_create"}, "lvgl.qrcode_update": {"body": "lvgl.qrcode_update(${1:qrcode},${2:cnt})", "description": "lvgl.qrcode_update(qrcode, cnt) - \u8bbe\u7f6eqrcode\u7ec4\u4ef6\u7684\u4e8c\u7ef4\u7801\u5185\u5bb9,\u914d\u5408qrcode_create\u4f7f\u7528\n\u4f20\u5165\u503c\uff1a\nuserdata qrcode\u7ec4\u4ef6,\u7531qrcode_create\u521b\u5efa\nstring \u4e8c\u7ef4\u7801\u7684\u5185\u5bb9\u6570\u636e\n\u8fd4\u56de\u503c\uff1a\nbool \u66f4\u65b0\u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse. \u901a\u5e38\u53ea\u6709\u6570\u636e\u592a\u957f\u65e0\u6cd5\u5bb9\u7eb3\u624d\u4f1a\u8fd4\u56defalse\n", "prefix": "lvgl.qrcode_update"}, "lvgl.qrcode_delete": {"body": "lvgl.qrcode_delete(${1:qrcode})", "description": "lvgl.qrcode_delete(qrcode) - \u5220\u9664qrcode\u7ec4\u4ef6\n\u4f20\u5165\u503c\uff1a\nuserdata qrcode\u7ec4\u4ef6,\u7531qrcode_create\u521b\u5efa\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n", "prefix": "lvgl.qrcode_delete"}, "lvgl.style_t": {"body": "lvgl.style_t()", "description": "lvgl.style_t() - \u521b\u5efa\u4e00\u4e2astyle\n\u8fd4\u56de\u503c\uff1a\nuserdata style\u6307\u9488\n\u4f8b\u5b50\uff1a\nlocal style = lvgl.style_t()\nlvgl.style_init(style)\n", "prefix": "lvgl.style_t"}, "lvgl.style_create": {"body": "lvgl.style_create()", "description": "lvgl.style_create() - \u521b\u5efa\u4e00\u4e2astyle\u5e76\u521d\u59cb\u5316\n\u8fd4\u56de\u503c\uff1a\nuserdata style\u6307\u9488\n\u4f8b\u5b50\uff1a\nlocal style = lvgl.style_create()\n", "prefix": "lvgl.style_create"}, "lvgl.style_list_create": {"body": "lvgl.style_list_create()", "description": "lvgl.style_list_create() - \u521b\u5efa\u4e00\u4e2astyle_list\n\u8fd4\u56de\u503c\uff1a\nuserdata style\u6307\u9488\n\u4f8b\u5b50\uff1a\nlocal style_list = lvgl.style_list_create()\n", "prefix": "lvgl.style_list_create"}, "lvgl.style_list_t": {"body": "lvgl.style_list_t()", "description": "lvgl.style_list_t() - \u521b\u5efa\u4e00\u4e2astyle_list\n\u8fd4\u56de\u503c\uff1a\nuserdata style\u6307\u9488\n\u4f8b\u5b50\uff1a\nlocal style = lvgl.style_list_t()\n", "prefix": "lvgl.style_list_t"}, "lvgl.style_delete": {"body": "lvgl.style_delete(${1:style})", "description": "lvgl.style_delete(style) - \u5220\u9664style,\u614e\u7528,\u901a\u5e38\u4e0d\u4f1a\u6267\u884c\u5220\u9664\u64cd\u4f5c\n\u4f20\u5165\u503c\uff1a\nuserdata style\u6307\u9488\n\u4f8b\u5b50\uff1a\nlocal style = lvgl.style_create()\n-- ...\n-- ...\n-- lvgl.style_delete(style)\n", "prefix": "lvgl.style_delete"}, "lvgl.style_list_delete": {"body": "lvgl.style_list_delete(${1:style})", "description": "lvgl.style_list_delete(style) - \u5220\u9664style_list,\u614e\u7528,\u901a\u5e38\u4e0d\u4f1a\u6267\u884c\u5220\u9664\u64cd\u4f5c\n\u4f20\u5165\u503c\uff1a\nuserdata style\u6307\u9488\n\u4f8b\u5b50\uff1a\nlocal style_list = lvgl.style_list_create()\n-- ...\n-- ...\n-- lvgl.style_list_delete(style_list)\n", "prefix": "lvgl.style_list_delete"}, "lvgl.demo_benchmark": {"body": "lvgl.demo_benchmark()", "description": "lvgl.demo_benchmark() - lvgl benchmark demo\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\nlvgl.init()\nlvgl.demo_benchmark()\n", "prefix": "lvgl.demo_benchmark"}, "lvgl.demo_keypad_encoder": {"body": "lvgl.demo_keypad_encoder()", "description": "lvgl.demo_keypad_encoder() - lvgl keypad_encoder demo\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\nlvgl.init()\nlvgl.demo_keypad_encoder()\n", "prefix": "lvgl.demo_keypad_encoder"}, "lvgl.demo_music": {"body": "lvgl.demo_music()", "description": "lvgl.demo_music() - lvgl music demo\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\nlvgl.init()\nlvgl.demo_music()\n", "prefix": "lvgl.demo_music"}, "lvgl.demo_printer": {"body": "lvgl.demo_printer()", "description": "lvgl.demo_printer() - lvgl printer demo\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\nlvgl.init()\nlvgl.demo_printer()\n", "prefix": "lvgl.demo_printer"}, "lvgl.demo_stress": {"body": "lvgl.demo_stress()", "description": "lvgl.demo_stress() - lvgl stress demo\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\nlvgl.init()\nlvgl.demo_stress()\n", "prefix": "lvgl.demo_stress"}, "lvgl.demo_widgets": {"body": "lvgl.demo_widgets()", "description": "lvgl.demo_widgets() - lvgl widgets demo\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\nlvgl.init()\nlvgl.demo_widgets()\n", "prefix": "lvgl.demo_widgets"}, "lvgl.indev_drv_register": {"body": "lvgl.indev_drv_register(${1:tp},${2:dtp})", "description": "lvgl.indev_drv_register(tp, dtp) - \u6ce8\u518c\u8f93\u5165\u8bbe\u5907\u9a71\u52a8\n\u4f20\u5165\u503c\uff1a\nstring \u8bbe\u5907\u7c7b\u578b\uff0c\u5f53\u524d\u652f\u6301\"pointer\",\u6307\u9488\u7c7b/\u89e6\u6478\u7c7b\u5747\u53ef\uff0c\"keyboard\",\u952e\u76d8\u7c7b\u578b\nstring \u8bbe\u5907\u578b\u53f7\uff0c\u5f53\u524d\u652f\u6301\"emulator\",\u6a21\u62df\u5668\u7c7b\u578b\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\nlvgl.indev_drv_register(\"pointer\", \"emulator\")\n", "prefix": "lvgl.indev_drv_register"}, "lvgl.indev_point_emulator_update": {"body": "lvgl.indev_point_emulator_update(${1:x},${2:y},${3:state})", "description": "lvgl.indev_point_emulator_update(x, y, state) - \u66f4\u65b0\u6a21\u62df\u8f93\u5165\u8bbe\u5907\u7684\u5750\u6807\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nint x\u5750\u6807,\u4ee5\u5de6\u4e0a\u89d2\u4e3a0,\u53f3\u4e0b\u89d2\u4e3a\u6700\u5927\u503c\nint y\u5750\u6807,\u4ee5\u5de6\u4e0a\u89d2\u4e3a0,\u53f3\u4e0b\u89d2\u4e3a\u6700\u5927\u503c\nint \u72b6\u6001, 0 \u4e3a \u91ca\u653e, 1 \u4e3a\u6309\u4e0b\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n-- \u6a21\u62df\u5728\u5c4f\u5e55\u4e0a\u7684\u70b9\u51fb,\u901a\u8fc7timeout\u6a21\u62df\u957f\u6309\u548c\u77ed\u6309\nsys.taskInit(function(x, y, timeout)\n lvgl.indev_point_emulator_update(x, y, 1)\n sys.wait(timeout)\n lvgl.indev_point_emulator_update(x, y, 0)\nend, 240, 120, 50)\n", "prefix": "lvgl.indev_point_emulator_update"}, "lvgl.indev_kb_update": {"body": "lvgl.indev_kb_update(${1:key})", "description": "lvgl.indev_kb_update(key) - \u66f4\u65b0\u952e\u76d8\u8f93\u5165\u8bbe\u5907\u7684\u6309\u952e\u503c\n\u4f20\u5165\u503c\uff1a\nint \u6309\u952e\u503c\uff0c\u9ed8\u8ba4\u4e3a0\uff0c\u6309\u952e\u62ac\u8d77\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n", "prefix": "lvgl.indev_kb_update"}, "lvgl.gif_create": {"body": "lvgl.gif_create(${1:parent},${2:path})", "description": "lvgl.gif_create(parent, path) - \u521b\u5efagif\u7ec4\u4ef6\n\u4f20\u5165\u503c\uff1a\nuserdata \u7236\u7ec4\u4ef6,\u53ef\u4ee5\u662fnil,\u4f46\u901a\u5e38\u4e0d\u4f1a\u662fnil\nstring \u6587\u4ef6\u8def\u5f84\n\u8fd4\u56de\u503c\uff1a\nuserdata \u7ec4\u4ef6\u6307\u9488,\u82e5\u5931\u8d25\u4f1a\u8fd4\u56denil,\u5efa\u8bae\u68c0\u67e5\n\u4f8b\u5b50\uff1a\nlocal gif = lvgl.gif_create(scr, \"S/emtry.gif\")\nif gif then\n log.info(\"gif\", \"create ok\")\nend\n\n", "prefix": "lvgl.gif_create"}, "lvgl.gif_restart": {"body": "lvgl.gif_restart(${1:gif})", "description": "lvgl.gif_restart(gif) - \u91cd\u65b0\u64ad\u653egif\u7ec4\u4ef6\n\u4f20\u5165\u503c\uff1a\nuserdata gif\u7ec4\u4ef6\u652f\u6301, \u7531gif_create\u65b9\u6cd5\u8fd4\u56de\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\nlocal gif = lvgl.gif_create(scr, \"S/emtry.gif\")\nif gif then\n log.info(\"gif\", \"create ok\")\nend\n\n", "prefix": "lvgl.gif_restart"}, "max30102.init": {"body": "max30102.init(${1:i2c_id},${2:int})", "description": "max30102.init(i2c_id,int) - \u521d\u59cb\u5316MAX30102\u4f20\u611f\u5668\n\u4f20\u5165\u503c\uff1a\nint \u4f20\u611f\u5668\u6240\u5728\u7684i2c\u603b\u7ebfid,\u9ed8\u8ba4\u4e3a0\nint int\u5f15\u811a\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue, \u5426\u5219\u8fd4\u56denil\u6216\u8005false\n\u4f8b\u5b50\uff1a\nif max30102.init(0,pin.PC05) then\n log.info(\"max30102\", \"init ok\")\nelse\n log.info(\"max30102\", \"init fail\")\nend\n", "prefix": "max30102.init"}, "max30102.get": {"body": "max30102.get()", "description": "max30102.get() - \u83b7\u53d6\u5fc3\u7387\u8840\u6c27(\u5927\u6982\u9700\u898110s\u65f6\u95f4\u6d4b\u91cf)\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue, \u5426\u5219\u8fd4\u56denil\u6216\u8005false\nnumber \u5fc3\u7387\nnumber \u8840\u6c27\n", "prefix": "max30102.get"}, "max30102.shutdown": {"body": "max30102.shutdown()", "description": "max30102.shutdown() - \u5173\u95edmax30102\n", "prefix": "max30102.shutdown"}, "mcu.setClk": {"body": "mcu.setClk(${1:mhz})", "description": "mcu.setClk(mhz) - \u8bbe\u7f6e\u4e3b\u9891,\u5355\u4f4dMHZ\n\u4f20\u5165\u503c\uff1a\nint \u4e3b\u9891,\u6839\u636e\u8bbe\u5907\u7684\u4e0d\u540c\u6709\u4e0d\u540c\u7684\u6709\u6548\u503c,\u8bf7\u67e5\u9605\u624b\u518c\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- \u8bf7\u6ce8\u610f,\u4e3b\u9891\u4e0e\u5916\u8bbe\u4e3b\u9891\u6709\u5173\u8054\u6027, \u4f8b\u5982\u4e3b\u98912M\u65f6SPI\u7684\u6700\u9ad8\u53ea\u80fd1M\n-- \u8bbe\u7f6e\u523080MHZ\nmcu.setClk(80)\nsys.wait(1000)\n-- \u8bbe\u7f6e\u5230240MHZ\nmcu.setClk(240)\nsys.wait(1000)\n-- \u8bbe\u7f6e\u52302MHZ\nmcu.setClk(2)\nsys.wait(1000)\n", "prefix": "mcu.setClk"}, "mcu.getClk": {"body": "mcu.getClk()", "description": "mcu.getClk() - \u83b7\u53d6\u4e3b\u9891,\u5355\u4f4dMHZ\n\u8fd4\u56de\u503c\uff1a\nint \u82e5\u5931\u8d25\u8fd4\u56de-1,\u5426\u5219\u8fd4\u56de\u4e3b\u9891\u6570\u503c,\u82e5\u7b49\u4e8e0,\u53ef\u80fd\u5904\u4e8e32k\u6676\u632f\u7684\u7701\u7535\u6a21\u5f0f\n\u4f8b\u5b50\uff1a\nlocal mhz = mcu.getClk()\nprint(\"Boom\", mhz)\n", "prefix": "mcu.getClk"}, "mcu.unique_id": {"body": "mcu.unique_id()", "description": "mcu.unique_id() - \u83b7\u53d6\u8bbe\u5907\u552f\u4e00id. \u6ce8\u610f,\u53ef\u80fd\u5305\u542b\u4e0d\u53ef\u89c1\u5b57\u7b26,\u5982\u9700\u67e5\u770b\u5efa\u8baetoHex()\u540e\u6253\u5370\n\u8fd4\u56de\u503c\uff1a\nstring \u8bbe\u5907\u552f\u4e00id.\u82e5\u4e0d\u652f\u6301, \u4f1a\u8fd4\u56de\u7a7a\u5b57\u7b26\u4e32.\n\u4f8b\u5b50\uff1a\nlocal unique_id = mcu.unique_id()\nprint(\"unique_id\", unique_id)\n", "prefix": "mcu.unique_id"}, "mcu.ticks": {"body": "mcu.ticks()", "description": "mcu.ticks() - \u83b7\u53d6\u542f\u52a8\u540e\u7684tick\u6570,\u6ce8\u610f\u4f1a\u51fa\u73b0\u6ea2\u51fa\u4f1a\u51fa\u73b0\u8d1f\u6570\n\u8fd4\u56de\u503c\uff1a\nint \u5f53\u524dtick\u503c\n\u4f8b\u5b50\uff1a\nlocal tick = mcu.ticks()\nprint(\"ticks\", tick)\n", "prefix": "mcu.ticks"}, "mcu.hz": {"body": "mcu.hz()", "description": "mcu.hz() - \u83b7\u53d6\u6bcf\u79d2\u7684tick\u6570\u91cf\n\u8fd4\u56de\u503c\uff1a\nint \u6bcf\u79d2\u7684tick\u6570\u91cf,\u901a\u5e38\u4e3a1000\n\u4f8b\u5b50\uff1a\nlocal hz = mcu.hz()\nprint(\"mcu.hz\", hz)\n", "prefix": "mcu.hz"}, "mcu.reg32": {"body": "mcu.reg32(${1:address},${2:value},${3:mask})", "description": "mcu.reg32(address, value, mask) - \u8bfb\u5199mcu\u768432bit\u5bc4\u5b58\u5668\u6216\u8005ram,\u8c28\u614e\u4f7f\u7528\u5199\u529f\u80fd,\u8bf7\u719f\u6089mcu\u7684\u5bc4\u5b58\u5668\u4f7f\u7528\u65b9\u6cd5\u540e\u518d\u4f7f\u7528\n\u4f20\u5165\u503c\uff1a\nint \u5bc4\u5b58\u5668\u6216\u8005ram\u5730\u5740\nint \u5199\u5165\u7684\u503c,\u5982\u679c\u6ca1\u6709,\u5219\u76f4\u63a5\u8fd4\u56de\u5f53\u524d\u503c\nint \u4f4d\u63a9\u7801,\u53ef\u4ee5\u5bf9\u7279\u5b9a\u51e0\u4e2a\u4f4d\u7f6e\u7684bit\u505a\u4fee\u6539, \u9ed8\u8ba40xffffffff,\u4fee\u6539\u5168\u90e832bit\n\u8fd4\u56de\u503c\uff1a\nint \u8fd4\u56de\u5f53\u524d\u5bc4\u5b58\u7684\u503c\n\u4f8b\u5b50\uff1a\nlocal value = mcu.reg32(0x2009FFFC, 0x01, 0x01) --\u5bf90x2009FFFC\u5730\u5740\u4e0a\u7684\u503c,\u4fee\u6539bit0\u4e3a1\n", "prefix": "mcu.reg32"}, "mcu.x32": {"body": "mcu.x32(${1:value})", "description": "mcu.x32(value) - \u8f6c\u636210\u8fdb\u5236\u6570\u4e3a16\u8fdb\u5236\u5b57\u7b26\u4e32\u8f93\u51fa\n\u4f20\u5165\u503c\uff1a\nint \u9700\u8981\u8f6c\u6362\u7684\u503c\n\u8fd4\u56de\u503c\uff1a\nstring 16\u8fdb\u5236\u5b57\u7b26\u4e32\n\u4f8b\u5b50\uff1a\nlocal value = mcu.x32(0x2009FFFC) --\u8f93\u51fa\"0x2009fffc\"\n", "prefix": "mcu.x32"}, "mcu.tick64": {"body": "mcu.tick64()", "description": "mcu.tick64() - \u83b7\u53d6\u542f\u52a8\u540e\u7684\u9ad8\u7cbe\u5ea6tick\uff0c\u5982\u679c\u652f\u6301bit64\u5e93\uff0c\u53ef\u4ee5\u76f4\u63a5\u8f93\u51fa\u8f6c\u6362\u597d\u7684bit64\u7ed3\u6784\n\u4f20\u5165\u503c\uff1a\nboolean \u662f\u5426\u8f93\u51fabit64\u7ed3\u6784,true\u662f,\u5176\u4ed6\u90fd\u662ffalse,\u7559\u7a7a\u4e5f\u662ffalse,\u7528\u4e8e\u517c\u5bb9\u65e7\u7684demo\n\u8fd4\u56de\u503c\uff1a\nstring \u5f53\u524dtick\u503c,8\u4e2a\u5b57\u8282\u7684uint64,\u5982\u679c\u652f\u630164bit\u5e93,\u540c\u65f6\u8981\u6c42\u8f93\u51fa64bit\u7ed3\u6784\u7684\u8bdd,\u4f1a\u8f93\u51fa9\u5b57\u8282\u7684string\nint 1us\u6709\u51e0\u4e2atick,0\u8868\u793a\u672a\u77e5\n\u4f8b\u5b50\uff1a\nlocal tick_str, tick_per = mcu.tick64()\nprint(\"ticks\", tick_str, tick_per)\n", "prefix": "mcu.tick64"}, "mcu.dtick64": {"body": "mcu.dtick64(${1:tick1},${2:tick2},${3:check_value})", "description": "mcu.dtick64(tick1, tick2, check_value) - \u8ba1\u7b972\u4e2a64bit tick\u7684\u5dee\u503c\n\u4f20\u5165\u503c\uff1a\nstring 64bit\u7684string\nstring 64bit\u7684string\nint \u53c2\u8003\u503c,\u53ef\u9009\u9879,\u5982\u679c\u4e3a0,\u5219\u8fd4\u56de\u7ed3\u679c\u4e2d\u7b2c\u4e00\u4e2a\u9879\u76ee\u4e3atrue\n\u8fd4\u56de\u503c\uff1a\nboolean \u4e0e\u53c2\u8003\u503c\u6bd4\u8f83,\u5982\u679c\u5927\u4e8e\u7b49\u4e8e\u4e3atrue,\u53cd\u4e4b\u4e3afalse\nint \u5dee\u503ctick1 - tick2,\u5982\u679c\u8d85\u8fc7\u4e860x7fffffff,\u7ed3\u679c\u53ef\u80fd\u662f\u9519\u7684\n\u4f8b\u5b50\uff1a\nlocal result, diff_tick = mcu.dtick64(tick1, tick2)\nprint(\"ticks\", result, diff_tick)\n", "prefix": "mcu.dtick64"}, "mcu.setXTAL": {"body": "mcu.setXTAL(${1:source_main},${2:source_32k},${3:delay})", "description": "mcu.setXTAL(source_main, source_32k, delay) - \u9009\u62e9\u65f6\u949f\u6e90,\u5f53\u524d\u4ec5air105\u652f\u6301\n\u4f20\u5165\u503c\uff1a\nboolean \u9ad8\u901f\u65f6\u949f\u662f\u5426\u4f7f\u7528\u5916\u90e8\u65f6\u949f\u6e90,\u5982\u679c\u4e3a\u7a7a\u5219\u4e0d\u6539\u53d8\nboolean \u4f4e\u901f32K\u662f\u5426\u4f7f\u7528\u5916\u90e8\u65f6\u949f\u6e90,\u5982\u679c\u4e3a\u7a7a\u5219\u4e0d\u6539\u53d8\nint PLL\u7a33\u5b9a\u65f6\u95f4,\u5728\u5207\u6362\u9ad8\u901f\u65f6\u949f\u7684\u65f6\u5019,\u6839\u636e\u786c\u4ef6\u73af\u5883,\u9700\u8981delay\u4e00\u6bb5\u65f6\u95f4\u7b49\u5f85PLL\u7a33\u5b9a,\u9ed8\u8ba4\u662f1200,\u5efa\u8bae\u4e0d\u5c0f\u4e8e1024\n\u4f8b\u5b50\uff1a\nmcu.setXTAL(true, true, 1248)\t--\u9ad8\u901f\u65f6\u949f\u4f7f\u7528\u5916\u90e8\u65f6\u949f,\u4f4e\u901f32K\u4f7f\u7528\u5916\u90e8\u6676\u632f, delay1248\n", "prefix": "mcu.setXTAL"}, "mcu.hardfault": {"body": "mcu.hardfault(${1:mode})", "description": "mcu.hardfault(mode) - mcu\u6b7b\u673a\u65f6\u5904\u7406\u6a21\u5f0f\uff0c\u76ee\u524d\u53ea\u6709EC618\u5e73\u53f0\u9002\u7528\n\u4f20\u5165\u503c\uff1a\nint \u5904\u7406\u6a21\u5f0f\uff0c0\u6b7b\u673a\u505c\u673a\uff0c1\u6b7b\u673a\u540e\u91cd\u542f\uff0c2\u6b7b\u673a\u540e\u5c3d\u91cf\u5c06\u9519\u8bef\u4fe1\u606f\u63d0\u4ea4\u7ed9\u5916\u90e8\u5de5\u5177\u540e\u91cd\u542f\n\u4f8b\u5b50\uff1a\nmcu.hardfault(0)\t--\u6b7b\u673a\u540e\u505c\u673a\uff0c\u4e00\u822c\u7528\u4e8e\u8c03\u8bd5\u72b6\u6001\nmcu.hardfault(1)\t--\u6b7b\u673a\u540e\u91cd\u542f\uff0c\u4e00\u822c\u7528\u4e8e\u6b63\u5f0f\u4ea7\u54c1\nmcu.hardfault(2)\t--\u6b7b\u673a\u540e\u5c3d\u91cf\u5c06\u9519\u8bef\u4fe1\u606f\u63d0\u4ea4\u7ed9\u5916\u90e8\u5de5\u5177\u540e\u91cd\u542f\uff0c\u4e00\u822c\u7528\u4e8e\u538b\u529b\u6d4b\u8bd5\u6216\u8005\u6b63\u5f0f\u4ea7\u54c1\n", "prefix": "mcu.hardfault"}, "mcu.iomux": {"body": "mcu.iomux(${1:type},${2:channel},${3:value})", "description": "mcu.iomux(type, channel, value) - \u5728\u5916\u8bbe\u6253\u5f00\u524d\uff0c\u5c06\u5916\u8bbeIO\u590d\u7528\u5230\u975e\u9ed8\u8ba4\u914d\u7f6e\u4e0a\uff0c\u76ee\u524d\u53ea\u652f\u6301Air780E\u7684\u90e8\u5206\u5916\u8bbe\u590d\u7528\u5230\u5176\u4ed6\u914d\u7f6e\uff0c\u8fd9\u662f\u4e00\u4e2a\u4e34\u65f6\u63a5\u53e3\uff0c\u5982\u679c\u540e\u7eed\u6709\u66f4\u5408\u9002\u7684api\uff0c\u672c\u63a5\u53e3\u5c06\u4e0d\u518d\u66f4\u65b0\n\u4f20\u5165\u503c\uff1a\nint \u5916\u8bbe\u7c7b\u578b\uff0c\u76ee\u524d\u53ea\u6709mcu.UART,mcu.I2C\nint \u603b\u7ebf\u5e8f\u53f7\uff0c0~N\uff0c\nint \u65b0\u7684\u914d\u7f6e\uff0c\u8fd9\u4e2a\u9700\u8981\u6839\u636e\u5177\u4f53\u5e73\u53f0\u51b3\u5b9a\n\u4f8b\u5b50\uff1a\nmcu.iomux(mcu.UART, 2, 1)\t-- Air780E\u7684UART2\u590d\u7528\u5230gpio12\u548cgpio13(Air780EG\u9ed8\u8ba4\u662f\u8fd9\u4e2a\u590d\u7528\uff0c\u4e0d\u8981\u52a8)\nmcu.iomux(mcu.UART, 2, 2)\t-- Air780E\u7684UART2\u590d\u7528\u5230gpio6\u548cgpio7\nmcu.iomux(mcu.I2C, 0, 1)\t-- Air780E\u7684I2C0\u590d\u7528\u5230gpio12\u548cgpio13\nmcu.iomux(mcu.I2C, 0, 2)\t-- Air780E\u7684I2C0\u590d\u7528\u5230gpio16\u548cgpio17\nmcu.iomux(mcu.I2C, 1, 1)\t-- Air780E\u7684I2C1\u590d\u7528\u5230gpio4\u548cgpio5\n", "prefix": "mcu.iomux"}, "mcu.altfun": {"body": "mcu.altfun(${1:type},${2:sn},${3:pad_index},${4:alt_fun},${5:is_input})", "description": "mcu.altfun(type, sn, pad_index, alt_fun, is_input) - IO\u5916\u8bbe\u529f\u80fd\u590d\u7528\u9009\u62e9\uff0c\u6ce8\u610f\u666e\u901aMCU\u662f\u4ee5GPIO\u53f7\u4e3a\u5e8f\u53f7\uff0c\u4f46\u662f\u4e13\u7528SOC\uff0c\u6bd4\u5982CAT1\u7684\uff0c\u662f\u4ee5PAD\u53f7\u4e3a\u5e8f\u53f7\u3002\u672c\u51fd\u6570\u4e0d\u662f\u6240\u6709\u5e73\u53f0\u9002\u7528\n\u4f20\u5165\u503c\uff1a\nint \u5916\u8bbe\u7c7b\u578b\uff0c\u76ee\u524d\u6709mcu.UART,mcu.I2C,mcu.SPI,mcu.PWM,mcu.GPIO,mcu.I2S,mcu.LCD,mcu.CAM\uff0c\u5177\u4f53\u9700\u8981\u770b\u5e73\u53f0\nint \u603b\u7ebf\u5e8f\u53f7\uff0c0~N\uff0c\u5982\u679c\u662fmcu.GPIO\uff0c\u5219\u662fGPIO\u53f7\u3002\u5177\u4f53\u770b\u5e73\u53f0\u7684IOMUX\u590d\u7528\u8868\nint pad\u53f7\uff0c\u5982\u679c\u7559\u7a7a\u4e0d\u5199\uff0c\u5219\u8868\u793a\u6e05\u9664\u914d\u7f6e\uff0c\u4f7f\u7528\u5e73\u53f0\u7684\u9ed8\u8ba4\u914d\u7f6e\u3002\u5177\u4f53\u770b\u5e73\u53f0\u7684IOMUX\u590d\u7528\u8868\nint \u590d\u7528\u529f\u80fd\u5e8f\u53f7\uff0c0~N\u3002\u5177\u4f53\u770b\u5e73\u53f0\u7684IOMUX\u590d\u7528\u8868\nboolean \u662f\u5426\u662f\u8f93\u5165\u529f\u80fd\uff0ctrue\u662f\uff0c\u7559\u7a7a\u662ffalse\n\u4f8b\u5b50\uff1a\nmcu.altfun(mcu.GPIO, 46, 32, 1, 0)\nmcu.altfun(mcu.GPIO, 46)\n", "prefix": "mcu.altfun"}, "miniz.compress": {"body": "miniz.compress(${1:data},${2:flags})", "description": "miniz.compress(data, flags) - \u5feb\u901f\u538b\u7f29,\u9700\u8981165kb\u7684\u7cfb\u7edf\u5185\u5b58\u548c32kb\u7684LuaVM\u5185\u5b58\n\u4f20\u5165\u503c\uff1a\nstring \u5f85\u538b\u7f29\u7684\u6570\u636e, \u5c11\u4e8e400\u5b57\u8282\u7684\u6570\u636e\u4e0d\u5efa\u8bae\u538b\u7f29, \u4e14\u538b\u7f29\u540e\u7684\u6570\u636e\u4e0d\u80fd\u5927\u4e8e32k.\nflags \u538b\u7f29\u53c2\u6570,\u9ed8\u8ba4\u662f miniz.WRITE_ZLIB_HEADER , \u5373\u5199\u5165zlib\u5934\u90e8\n\u8fd4\u56de\u503c\uff1a\nstring \u82e5\u538b\u7f29\u6210\u529f,\u8fd4\u56de\u6570\u636e\u5b57\u7b26\u4e32, \u5426\u5219\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\n\nlocal bigdata = \"123jfoiq4hlkfjbnasdilfhuqwo;hfashfp9qw38hrfaios;hfiuoaghfluaeisw\"\nlocal cdata = miniz.compress(bigdata)\nif cdata then\n log.info(\"miniz\", \"before\", #bigdata, \"after\", #cdata)\n log.info(\"miniz\", \"cdata as hex\", cdata:toHex())\nend\n\n", "prefix": "miniz.compress"}, "miniz.uncompress": {"body": "miniz.uncompress(${1:data},${2:flags})", "description": "miniz.uncompress(data, flags) - \u5feb\u901f\u89e3\u538b,\u9700\u898132kb\u7684LuaVM\u5185\u5b58\n\u4f20\u5165\u503c\uff1a\nstring \u5f85\u89e3\u538b\u7684\u6570\u636e, \u89e3\u538b\u540e\u7684\u6570\u636e\u4e0d\u80fd\u5927\u4e8e32k\nflags \u89e3\u538b\u53c2\u6570,\u9ed8\u8ba4\u662f miniz.PARSE_ZLIB_HEADER , \u5373\u89e3\u6790zlib\u5934\u90e8\n\u8fd4\u56de\u503c\uff1a\nstring \u82e5\u89e3\u538b\u6210\u529f,\u8fd4\u56de\u6570\u636e\u5b57\u7b26\u4e32, \u5426\u5219\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\n\nlocal bigdata = \"123jfoiq4hlkfjbnasdilfhuqwo;hfashfp9qw38hrfaios;hfiuoaghfluaeisw\"\nlocal cdata = miniz.compress(bigdata)\nif cdata then\n log.info(\"miniz\", \"before\", #bigdata, \"after\", #cdata)\n log.info(\"miniz\", \"cdata as hex\", cdata:toHex())\n\n local udata = miniz.uncompress(cdata)\n log.info(\"miniz\", \"udata\", udata)\nend\n", "prefix": "miniz.uncompress"}, "mlx90640.init": {"body": "mlx90640.init(${1:i2c_id},${2:refresh_rate)(\u6ce8\u610f:2023.5.15\u4e4b\u540e\u4f7f\u7528\u6b64\u63a5\u53e3},${3:\u7528\u6237\u9700\u8981\u81ea\u884c\u521d\u59cb\u5316i2c\u63a5\u53e3})", "description": "mlx90640.init(i2c_id,refresh_rate) (\u6ce8\u610f:2023.5.15\u4e4b\u540e\u4f7f\u7528\u6b64\u63a5\u53e3,\u7528\u6237\u9700\u8981\u81ea\u884c\u521d\u59cb\u5316i2c\u63a5\u53e3) - \u521d\u59cb\u5316MLX90640\u4f20\u611f\u5668\n\u4f20\u5165\u503c\uff1a\nint \u4f20\u611f\u5668\u6240\u5728\u7684i2c\u603b\u7ebfid\u6216\u8005\u8f6fi2c\u5bf9\u8c61,\u9ed8\u8ba4\u4e3a0\nint \u4f20\u611f\u5668\u7684\u6d4b\u91cf\u901f\u7387,\u9ed8\u8ba4\u4e3a4Hz\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue, \u5426\u5219\u8fd4\u56denil\u6216\u8005false\n\u4f8b\u5b50\uff1a\ni2c.setup(i2cid,i2c_speed)\nif mlx90640.init(0,mlx90640.FPS4HZ) then\n log.info(\"mlx90640\", \"init ok\")\n sys.wait(500) -- \u7a0d\u7b49\u7247\u523b\n while 1 do\n mlx90640.feed() -- \u53d6\u4e00\u5e27\u6570\u636e\n mlx90640.draw2lcd(0, 0 ,1)-- \u9700\u63d0\u524d\u628alcd\u521d\u59cb\u5316\u597d\n sys.wait(250) -- \u9ed8\u8ba4\u662f4HZ\n end\nelse\n log.info(\"mlx90640\", \"init fail\")\nend\n\n", "prefix": "mlx90640.init"}, "mlx90640.feed": {"body": "mlx90640.feed()", "description": "mlx90640.feed() - \u53d6\u4e00\u5e27\u6570\u636e\n", "prefix": "mlx90640.feed"}, "mlx90640.raw_data": {"body": "mlx90640.raw_data()", "description": "mlx90640.raw_data() - \u83b7\u53d6\u5e95\u5c42\u88f8\u6570\u636e,\u6d6e\u70b9\u6570\u77e9\u9635\n\u8fd4\u56de\u503c\uff1a\ntable \u6d6e\u70b9\u6570\u6570\u636e,768\u4e2a\u50cf\u7d20\u5bf9\u5e94\u7684\u6e29\u5ea6\u503c\n", "prefix": "mlx90640.raw_data"}, "mlx90640.raw_point": {"body": "mlx90640.raw_point(${1:index})", "description": "mlx90640.raw_point(index) - \u83b7\u53d6\u5355\u4e00\u70b9\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nint \u7d22\u5f15\u503c(0-767)\n\u8fd4\u56de\u503c\uff1a\nnumber \u5355\u70b9\u6e29\u5ea6\u503c\n", "prefix": "mlx90640.raw_point"}, "mlx90640.ta_temp": {"body": "mlx90640.ta_temp()", "description": "mlx90640.ta_temp() - \u83b7\u53d6\u5916\u58f3\u6e29\u5ea6\n\u8fd4\u56de\u503c\uff1a\nnumber \u5916\u58f3\u6e29\u5ea6\n", "prefix": "mlx90640.ta_temp"}, "mlx90640.max_temp": {"body": "mlx90640.max_temp()", "description": "mlx90640.max_temp() - \u83b7\u53d6\u6700\u9ad8\u6e29\u5ea6\n\u8fd4\u56de\u503c\uff1a\nnumber \u6700\u9ad8\u6e29\u5ea6\nnumber \u6700\u9ad8\u6e29\u5ea6\u4f4d\u7f6e\n", "prefix": "mlx90640.max_temp"}, "mlx90640.min_temp": {"body": "mlx90640.min_temp()", "description": "mlx90640.min_temp() - \u83b7\u53d6\u6700\u4f4e\u6e29\u5ea6\n\u8fd4\u56de\u503c\uff1a\nnumber \u6700\u4f4e\u6e29\u5ea6\nnumber \u6700\u4f4e\u6e29\u5ea6\u4f4d\u7f6e\n", "prefix": "mlx90640.min_temp"}, "mlx90640.average_temp": {"body": "mlx90640.average_temp()", "description": "mlx90640.average_temp() - \u83b7\u53d6\u5e73\u5747\u6e29\u5ea6\n\u8fd4\u56de\u503c\uff1a\nnumber \u5e73\u5747\u6e29\u5ea6\n", "prefix": "mlx90640.average_temp"}, "mlx90640.get_vdd": {"body": "mlx90640.get_vdd()", "description": "mlx90640.get_vdd() - \u83b7\u53d6vdd\n\u8fd4\u56de\u503c\uff1a\nnumber vdd\n", "prefix": "mlx90640.get_vdd"}, "mlx90640.draw2lcd": {"body": "mlx90640.draw2lcd(${1:x},${2:y},${3:fold})", "description": "mlx90640.draw2lcd(x, y, fold) - \u7ed8\u5236\u5230lcd\n\u4f20\u5165\u503c\uff1a\nint \u5de6\u4e0a\u89d2x\u5750\u6807\nint \u5de6\u4e0a\u89d2y\u5750\u6807\nint \u653e\u5927\u500d\u6570,\u5fc5\u987b\u4e3a2\u7684\u6307\u6570\u500d(1,2,4,8,16...)\u9ed8\u8ba4\u4e3a1\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n", "prefix": "mlx90640.draw2lcd"}, "mobile.imei": {"body": "mobile.imei(${1:index})", "description": "mobile.imei(index) - \u83b7\u53d6IMEI\n\u4f20\u5165\u503c\uff1a\nint \u7f16\u53f7,\u9ed8\u8ba40. \u5728\u652f\u6301\u53cc\u5361\u7684\u6a21\u5757\u4e0a\u624d\u4f1a\u51fa\u73b00\u62161\u7684\u60c5\u51b5\n\u8fd4\u56de\u503c\uff1a\nstring \u5f53\u524d\u7684IMEI\u503c,\u82e5\u5931\u8d25\u8fd4\u56denil\n", "prefix": "mobile.imei"}, "mobile.imsi": {"body": "mobile.imsi(${1:index})", "description": "mobile.imsi(index) - \u83b7\u53d6IMSI\n\u4f20\u5165\u503c\uff1a\nint \u7f16\u53f7,\u9ed8\u8ba40. \u5728\u652f\u6301\u53cc\u5361\u7684\u6a21\u5757\u4e0a\u624d\u4f1a\u51fa\u73b00\u62161\u7684\u60c5\u51b5\n\u8fd4\u56de\u503c\uff1a\nstring \u5f53\u524d\u7684IMSI\u503c,\u82e5\u5931\u8d25\u8fd4\u56denil\n", "prefix": "mobile.imsi"}, "mobile.sn": {"body": "mobile.sn()", "description": "mobile.sn() - \u83b7\u53d6SN\n\u8fd4\u56de\u503c\uff1a\nstring \u5f53\u524d\u7684SN\u503c,\u82e5\u5931\u8d25\u8fd4\u56denil. \u6ce8\u610f, SN\u53ef\u80fd\u5305\u542b\u4e0d\u53ef\u89c1\u5b57\u7b26\n\u4f8b\u5b50\uff1a\n-- \u6ce8\u610f, \u51fa\u5382\u672a\u5fc5\u6709\u5199SN\n-- \u4e00\u822c\u7528\u9014\u7684\u552f\u4e00id, \u53ef\u4ee5\u7528mobile.imei()\u4ee3\u66ff\n-- \u5982\u9700\u8981\u771f\u6b63\u7684\u552f\u4e00ID, \u4f7f\u7528 mcu.unique_id()\n", "prefix": "mobile.sn"}, "mobile.muid": {"body": "mobile.muid()", "description": "mobile.muid() - \u83b7\u53d6MUID\n\u8fd4\u56de\u503c\uff1a\nstring \u5f53\u524d\u7684MUID\u503c,\u82e5\u5931\u8d25\u8fd4\u56denil\n", "prefix": "mobile.muid"}, "mobile.iccid": {"body": "mobile.iccid(${1:id})", "description": "mobile.iccid(id) - \u83b7\u53d6\u6216\u8bbe\u7f6eICCID\n\u4f20\u5165\u503c\uff1a\nint SIM\u5361\u7684\u7f16\u53f7, \u4f8b\u59820, 1, \u9ed8\u8ba40\n\u8fd4\u56de\u503c\uff1a\nstring ICCID\u503c,\u82e5\u5931\u8d25\u8fd4\u56denil\n", "prefix": "mobile.iccid"}, "mobile.number": {"body": "mobile.number(${1:id})", "description": "mobile.number(id) - \u83b7\u53d6\u624b\u673a\u5361\u53f7\uff0c\u6ce8\u610f\uff0c\u53ea\u6709\u5199\u5165\u4e86\u624b\u673a\u53f7\u624d\u80fd\u8bfb\u51fa\uff0c\u56e0\u6b64\u6709\u53ef\u80fd\u8bfb\u51fa\u6765\u662f\u7a7a\u7684\n\u4f20\u5165\u503c\uff1a\nint SIM\u5361\u7684\u7f16\u53f7, \u4f8b\u59820, 1, \u9ed8\u8ba40\n\u8fd4\u56de\u503c\uff1a\nstring number\u503c,\u82e5\u5931\u8d25\u8fd4\u56denil\n", "prefix": "mobile.number"}, "mobile.simid": {"body": "mobile.simid(${1:id})", "description": "mobile.simid(id) - \u83b7\u53d6\u5f53\u524dSIM\u5361\u69fd,\u6216\u8005\u5207\u6362\u5361\u69fd\n\u4f20\u5165\u503c\uff1a\nint SIM\u5361\u7684\u7f16\u53f7, \u4f8b\u59820, 1, \u5982\u679c\u652f\u6301\u53cc\u5361\uff0c\u6bd4\u5982EC618\uff0c\u53ef\u4ee5\u586b2\u6765\u81ea\u9002\u5e94\uff0c\u4f46\u662f\u4f1a\u5360\u7528\u63894\u4e2aIO(gpio4/5/6/23)\u3002\u5982\u679c\u4e0d\u586b\u5c31\u76f4\u63a5\u8bfb\u53d6\u5f53\u524d\u5361\u69fd\nboolean \u662f\u5426\u4f18\u5148\u7528SIM0\uff0c\u53ea\u6709SIM\u5361\u7f16\u53f7\u51992\u81ea\u9002\u5e94\u624d\u6709\u7528\uff01\uff01\uff01\u3002true\u4f18\u5148\u7528SIM0\uff0cfalse\u5219\u7531\u5177\u4f53\u5e73\u53f0\u51b3\u5b9a\uff0c\u652f\u6301\u53cc\u5361\u53cc\u5f85SIM0\u4f18\u5148\uff0c\u4e0d\u652f\u6301\u7684\u662f\u4e0a\u4e00\u6b21\u68c0\u6d4b\u5230\u7684\u4f18\u5148\uff0c\u9ed8\u8ba4\u662ffalse\uff0c\u5fc5\u987b\u5728\u5f00\u673a\u5c31\u914d\u7f6e\uff0c\u5426\u5219\u5c31\u65e0\u6548\u4e86\n\u8fd4\u56de\u503c\uff1a\nint \u5f53\u524dsim\u5361\u69fd\u7f16\u53f7,\u82e5\u5931\u8d25\u8fd4\u56de-1\n\u4f8b\u5b50\uff1a\nmobile.simid(0) -- \u56fa\u5b9a\u4f7f\u7528SIM0\nmobile.simid(1) -- \u56fa\u4ef6\u4f7f\u7528SIM1\nmobile.simid(2) -- \u81ea\u52a8\u8bc6\u522bSIM0, SIM1, \u4f18\u5148\u7ea7\u770b\u5177\u4f53\u5e73\u53f0\nmobile.simid(2, true) -- -- \u81ea\u52a8\u8bc6\u522bSIM0, SIM1, \u4e14SIM0\u4f18\u5148\n-- \u63d0\u9192, \u81ea\u52a8\u8bc6\u522b\u662f\u4f1a\u589e\u52a0\u65f6\u95f4\u7684\n", "prefix": "mobile.simid"}, "mobile.simPin": {"body": "mobile.simPin(${1:id},${2:operation},${3:pin1},${4:pin2})", "description": "mobile.simPin(id,operation,pin1,pin2) - \u68c0\u6d4b\u5f53\u524dSIM\u5361\u662f\u5426\u51c6\u5907\u597d\uff0c\u5bf9SIM\u5361\u7684PIN\u7801\u505a\u76f8\u5173\u64cd\u4f5c\n\u4f20\u5165\u503c\uff1a\nint SIM\u5361\u7684\u7f16\u53f7, \u4f8b\u59820, 1, \u652f\u6301\u53cc\u5361\u53cc\u5f85\u7684\u624d\u9700\u8981\u9009\u62e9\nint PIN\u7801\u64cd\u4f5c\u7c7b\u578b\uff0c\u53ea\u80fd\u662fmobile.PIN_XXXX\uff0c\u4e0d\u64cd\u4f5c\u5c31\u7559\u7a7a\nstring \u66f4\u6362pin\u65f6\u64cd\u4f5c\u7684pin\u7801\uff0c\u6216\u8005\u9a8c\u8bc1\u64cd\u4f5c\u7684pin\u7801\uff0c\u6216\u8005\u89e3\u9501pin\u7801\u65f6\u7684PUK\uff0c4~8\u5b57\u8282\nstring \u66f4\u6362pin\u7801\u64cd\u4f5c\u65f6\u7684\u65b0\u7684pin\u7801\uff0c\u89e3\u9501pin\u7801\u65f6\u7684\u65b0PIN\uff0c4~8\u5b57\u8282\n\u8fd4\u56de\u503c\uff1a\nboolean \u5f53\u65e0PIN\u64cd\u4f5c\u65f6\uff0c\u8fd4\u56deSIM\u5361\u662f\u5426\u51c6\u5907\u597d\uff0c\u6709PIN\u64cd\u4f5c\u65f6\uff0c\u8fd4\u56de\u662f\u5426\u6210\u529f\n\u4f8b\u5b50\uff1a\nlocal cpin_is_ready = mobile.simPin() -- \u5f53\u524dsim\u5361\u662f\u5426\u51c6\u5907\u597d\uff0c\u4e00\u822c\u8fd4\u56defalse\u5c31\u662f\u6ca1\u5361\nlocal succ = mobile.simPin(0, mobile.PIN_VERIFY, \"1234\")\t-- \u8f93\u5165pin\u7801\u9a8c\u8bc1\n", "prefix": "mobile.simPin"}, "mobile.rtime": {"body": "mobile.rtime(${1:time},${2:auto_reset_stack})", "description": "mobile.rtime(time, auto_reset_stack) - \u8bbe\u7f6eRRC\u81ea\u52a8\u91ca\u653e\u65f6\u95f4\u95f4\u9694\uff0c\u5f53\u5f00\u542f\u65f6\u540e\uff0c\u9047\u5230\u6781\u5f31\u4fe1\u53f7+\u9891\u7e41\u6570\u636e\u64cd\u4f5c\u53ef\u80fd\u4f1a\u5f15\u8d77\u7f51\u7edc\u4e25\u91cd\u6545\u969c\uff0c\u56e0\u6b64\u9700\u8981\u989d\u5916\u8bbe\u7f6e\u81ea\u52a8\u91cd\u542f\u534f\u8bae\u6808\n\u4f20\u5165\u503c\uff1a\nint RRC\u81ea\u52a8\u91ca\u653e\u65f6\u95f4\uff0c\u7b49\u540c\u4e8eAir724\u7684AT+RTIME\uff0c\u5355\u4f4d\u79d2\uff0c\u51990\u6216\u8005\u4e0d\u5199\u5219\u662f\u505c\u7528\uff0c\u4e0d\u8981\u8d85\u8fc720\u79d2\uff0c\u6ca1\u6709\u610f\u4e49\nboolean \u7f51\u7edc\u9047\u5230\u4e25\u91cd\u6545\u969c\u65f6\u5c1d\u8bd5\u81ea\u52a8\u6062\u590d\uff0c\u548c\u98de\u884c\u6a21\u5f0f/SIM\u5361\u5207\u6362\u51b2\u7a81\uff0ctrue\u5f00\u542f\uff0cfalse\u5173\u95ed\uff0c\u7559\u7a7a\u65f6\uff0c\u5982\u679c\u8bbe\u7f6e\u4e86\u65f6\u95f4\u5219\u81ea\u52a8\u5f00\u542f\u3002\u539f\u5382\u4f18\u5316\u8fc7\u534f\u8bae\u6808\u540e\u4e0d\u9700\u8981\u4e86\u3002\u672c\u53c2\u6570\u5e9f\u5f03\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n", "prefix": "mobile.rtime"}, "mobile.setAuto": {"body": "mobile.setAuto(${1:check_sim_period},${2:get_cell_period},${3:search_cell_time},${4:auto_reset_stack},${5:network_check_period})", "description": "mobile.setAuto(check_sim_period, get_cell_period, search_cell_time, auto_reset_stack, network_check_period) - \u8bbe\u7f6e\u4e00\u4e9b\u8f85\u52a9\u5468\u671f\u6027\u6216\u8005\u81ea\u52a8\u529f\u80fd\uff0c\u76ee\u524d\u652f\u6301SIM\u5361\u6682\u65f6\u8131\u79bb\u540e\u6062\u590d\uff0c\u5468\u671f\u6027\u83b7\u53d6\u5c0f\u533a\u4fe1\u606f\uff0c\u7f51\u7edc\u9047\u5230\u4e25\u91cd\u6545\u969c\u65f6\u5c1d\u8bd5\u81ea\u52a8\u6062\u590d\n\u4f20\u5165\u503c\uff1a\nint SIM\u5361\u81ea\u52a8\u6062\u590d\u65f6\u95f4\uff0c\u5355\u4f4d\u6beb\u79d2\uff0c\u5efa\u8bae5000~10000\uff0c\u548c\u98de\u884c\u6a21\u5f0f/SIM\u5361\u5207\u6362\u51b2\u7a81\uff0c\u4e0d\u80fd\u518d\u540c\u4e00\u65f6\u95f4\u4f7f\u7528\uff0c\u5fc5\u987b\u9519\u5f00\u6267\u884c\u3002\u51990\u6216\u8005\u4e0d\u5199\u5219\u662f\u5173\u95ed\u529f\u80fd\nint \u5468\u671f\u6027\u83b7\u53d6\u5c0f\u533a\u4fe1\u606f\u7684\u65f6\u95f4\u95f4\u9694\uff0c\u5355\u4f4d\u6beb\u79d2\u3002\u83b7\u53d6\u5c0f\u533a\u4fe1\u606f\u4f1a\u589e\u52a0\u90e8\u5206\u529f\u8017\u3002\u51990\u6216\u8005\u4e0d\u5199\u5219\u662f\u5173\u95ed\u529f\u80fd\nint \u6bcf\u6b21\u641c\u7d22\u5c0f\u533a\u65f6\u6700\u5927\u641c\u7d22\u65f6\u95f4\uff0c\u5355\u4f4d\u79d2\u3002\u4e0d\u8981\u8d85\u8fc78\u79d2\nboolean \u7f51\u7edc\u9047\u5230\u4e25\u91cd\u6545\u969c\u65f6\u5c1d\u8bd5\u81ea\u52a8\u6062\u590d\uff0c\u548c\u98de\u884c\u6a21\u5f0f/SIM\u5361\u5207\u6362\u51b2\u7a81\uff0ctrue\u5f00\u542f\uff0cfalse\u5173\u95ed\uff0c\u5f00\u59cb\u72b6\u6001\u662ffalse\uff0c\u7559\u7a7a\u5219\u4e0d\u505a\u6539\u53d8\nint \u8bbe\u7f6e\u5b9a\u65f6\u68c0\u6d4b\u7f51\u7edc\u662f\u5426\u6b63\u5e38\u5e76\u4e14\u5728\u68c0\u6d4b\u5230\u957f\u65f6\u95f4\u65e0\u7f51\u65f6\u901a\u8fc7\u91cd\u542f\u534f\u8bae\u6808\u6765\u6062\u590d\uff0c\u65e0\u7f51\u6062\u590d\u65f6\u957f\uff0c\u5355\u4f4dms\uff0c\u5efa\u8bae60000\u4ee5\u4e0a\uff0c\u4e3a\u7f51\u7edc\u641c\u7d22\u7f51\u7edc\u4fdd\u7559\u8db3\u591f\u7684\u65f6\u95f4\uff0c\u7559\u7a7a\u5219\u4e0d\u505a\u66f4\u6539\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n", "prefix": "mobile.setAuto"}, "mobile.apn": {"body": "mobile.apn(${1:index},${2:cid},${3:new_apn_name},${4:user_name},${5:password},${6:ip_type},${7:protocol})", "description": "mobile.apn(index, cid, new_apn_name, user_name, password, ip_type, protocol) - \u83b7\u53d6\u6216\u8bbe\u7f6eAPN\uff0c\u8bbe\u7f6eAPN\u5fc5\u987b\u5728\u5165\u7f51\u524d\u5c31\u8bbe\u7f6e\u597d\uff0c\u6bd4\u5982\u5728SIM\u5361\u8bc6\u522b\u5b8c\u6210\u524d\u5c31\u8bbe\u7f6e\u597d\n\u4f20\u5165\u503c\uff1a\nint \u7f16\u53f7,\u9ed8\u8ba40. \u5728\u652f\u6301\u53cc\u5361\u7684\u6a21\u5757\u4e0a\u624d\u4f1a\u51fa\u73b00\u62161\u7684\u60c5\u51b5\nint cid, \u9ed8\u8ba40\uff0c\u5982\u679c\u8981\u7528\u975e\u9ed8\u8ba4APN\u6765\u6fc0\u6d3b\uff0c\u5fc5\u987b>0\nstring \u65b0\u7684APN,\u4e0d\u586b\u5c31\u662f\u83b7\u53d6APN, \u586b\u4e86\u5c31\u662f\u8bbe\u7f6eAPN, \u662f\u5426\u652f\u6301\u8bbe\u7f6e\u53d6\u51b3\u4e8e\u5e95\u5c42\u5b9e\u73b0\nstring \u65b0\u7684APN\u7684username,\u5982\u679cAPN\u4e0d\u662f\u7a7a,\u90a3\u5fc5\u987b\u586b\u5199,\u5982\u679c\u6ca1\u6709\u7559\u4e2a\u7a7a\u5b57\u7b26\u4e32\"\"\u3002\u5982\u679cAPN\u662f\u7a7a\u7684\uff0c\u90a3\u53ef\u4ee5nil\nstring \u65b0\u7684APN\u7684password,\u5982\u679cAPN\u4e0d\u662f\u7a7a,\u90a3\u5fc5\u987b\u586b\u5199,\u5982\u679c\u6ca1\u6709\u7559\u4e2a\u7a7a\u5b57\u7b26\u4e32\"\"\u3002\u5982\u679cAPN\u662f\u7a7a\u7684\uff0c\u90a3\u53ef\u4ee5nil\nint \u6fc0\u6d3bAPN\u65f6\u7684IP TYPE,1=IPV4 2=IPV6 3=IPV4V6,\u9ed8\u8ba4\u662f1\nint \u6fc0\u6d3bAPN\u65f6,\u5982\u679c\u9700\u8981username\u548cpassword,\u5c31\u8981\u5199\u9274\u6743\u534f\u8bae\u7c7b\u578b,1~3,\u9ed8\u8ba43,\u4ee3\u88681\u548c2\u90fd\u5c1d\u8bd5\u4e00\u4e0b\u3002\u4e0d\u9700\u8981\u9274\u6743\u7684\u51990\nboolean \u662f\u5426\u5220\u9664APN,true\u662f,\u5176\u4ed6\u90fd\u5426,\u53ea\u6709\u53c2\u65703\u65b0\u7684APN\u4e0d\u662fstring\u7684\u65f6\u5019\u624d\u6709\u6548\u679c\n\u8fd4\u56de\u503c\uff1a\nstring \u83b7\u53d6\u5230\u7684\u9ed8\u8ba4APN\u503c,\u5931\u8d25\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\nmobile.apn(0,1,\"cmiot\",\"\",\"\",nil,0) -- \u79fb\u52a8\u516c\u7f51\u5361\u8bbe\u7f6eAPN\u4e3acmiot,\u4e00\u822c\u4e0d\u7528\u8bbe\u7f6e\nmobile.apn(0,1,\"name\",\"user\",\"password\",nil,3) -- \u4e13\u7f51\u5361\u8bbe\u7f6e\u7684demo\uff0cname\uff0cuser\uff0cpassword\u8054\u7cfb\u5361\u5546\u83b7\u53d6\n", "prefix": "mobile.apn"}, "mobile.ipv6": {"body": "mobile.ipv6(${1:onff})", "description": "mobile.ipv6(onff) - \u662f\u5426\u9ed8\u8ba4\u5f00\u542fIPV6\u529f\u80fd\uff0c\u5fc5\u987b\u5728LTE\u7f51\u7edc\u8fde\u63a5\u524d\u5c31\u8bbe\u7f6e\u597d\n\u4f20\u5165\u503c\uff1a\nboolean \u5f00\u5173 true\u5f00\u542f false \u5173\u95ed\n\u8fd4\u56de\u503c\uff1a\nboolean true \u5f53\u524d\u662f\u5f00\u542f\u7684\uff0cfalse \u5f53\u524d\u662f\u5173\u95ed\u7684\n\u4f8b\u5b50\uff1a\n-- \u6ce8\u610f, \u5f00\u542fipv6\u540e, \u5f00\u673a\u8054\u7f51\u4f1a\u61622~3\u79d2\n", "prefix": "mobile.ipv6"}, "mobile.csq": {"body": "mobile.csq()", "description": "mobile.csq() - \u83b7\u53d6csq\n\u8fd4\u56de\u503c\uff1a\nint \u5f53\u524dCSQ\u503c, \u82e5\u5931\u8d25\u8fd4\u56de0. \u8303\u56f4 0 - 31, \u8d8a\u5927\u8d8a\u597d\n\u4f8b\u5b50\uff1a\n-- \u6ce8\u610f, 4G\u6a21\u5757\u7684CSQ\u503c\u4ec5\u4f9b\u53c2\u8003, rsrp/rsrq\u624d\u662f\u771f\u6b63\u7684\u4fe1\u53f7\u5f3a\u5ea6\u6307\u6807\n", "prefix": "mobile.csq"}, "mobile.rssi": {"body": "mobile.rssi()", "description": "mobile.rssi() - \u83b7\u53d6rssi\n\u8fd4\u56de\u503c\uff1a\nint \u5f53\u524drssi\u503c,\u82e5\u5931\u8d25\u8fd4\u56de0. \u8303\u56f4 0 \u5230 -114, \u8d8a\u5c0f\u8d8a\u597d\n", "prefix": "mobile.rssi"}, "mobile.rsrp": {"body": "mobile.rsrp()", "description": "mobile.rsrp() - \u83b7\u53d6rsrp,\u53c2\u8003\u4fe1\u53f7\u63a5\u6536\u529f\u7387\n\u8fd4\u56de\u503c\uff1a\nint \u5f53\u524drsrp\u503c,\u82e5\u5931\u8d25\u8fd4\u56de0. \u53d6\u503c\u8303\u56f4: -44 ~ -140 \uff0c\u503c\u8d8a\u5927\u8d8a\u597d\n", "prefix": "mobile.rsrp"}, "mobile.rsrq": {"body": "mobile.rsrq()", "description": "mobile.rsrq() - \u83b7\u53d6rsrq,\u53c2\u8003\u4fe1\u53f7\u53d1\u9001\u529f\u7387\n\u8fd4\u56de\u503c\uff1a\nint \u5f53\u524drsrq\u503c,\u82e5\u5931\u8d25\u8fd4\u56de0. \u53d6\u503c\u8303\u56f4: -3 ~ -19.5 \uff0c\u503c\u8d8a\u5927\u8d8a\u597d\n", "prefix": "mobile.rsrq"}, "mobile.snr": {"body": "mobile.snr()", "description": "mobile.snr() - \u83b7\u53d6snr,\u4fe1\u566a\u6bd4\n\u8fd4\u56de\u503c\uff1a\nint \u5f53\u524dsnq\u503c,\u82e5\u5931\u8d25\u8fd4\u56de0.\u8303\u56f4 0 - 30, \u8d8a\u5927\u8d8a\u597d\n", "prefix": "mobile.snr"}, "mobile.eci": {"body": "mobile.eci()", "description": "mobile.eci() - \u83b7\u53d6\u5f53\u524d\u670d\u52a1\u5c0f\u533a\u7684ECI(E-UTRAN Cell Identifier)\n\u8fd4\u56de\u503c\uff1a\nint \u5f53\u524deci\u503c,\u82e5\u5931\u8d25\u8fd4\u56de-1\n", "prefix": "mobile.eci"}, "mobile.tac": {"body": "mobile.tac()", "description": "mobile.tac() - \u83b7\u53d6\u5f53\u524d\u670d\u52a1\u5c0f\u533a\u7684TAC\u6216\u8005LAC\n\u8fd4\u56de\u503c\uff1a\nint \u5f53\u524deci\u503c,\u82e5\u5931\u8d25\u8fd4\u56de-1. \u5982\u679c\u5c1a\u672a\u6ce8\u518c\u5230\u7f51\u7edc,\u4f1a\u8fd4\u56de0\n\u4f8b\u5b50\uff1a\n-- \u672cAPI\u4e8e 2023.7.9 \u65b0\u589e\n", "prefix": "mobile.tac"}, "mobile.enbid": {"body": "mobile.enbid()", "description": "mobile.enbid() - \u83b7\u53d6\u5f53\u524d\u670d\u52a1\u5c0f\u533a\u7684eNBID(eNodeB Identifier)\n\u8fd4\u56de\u503c\uff1a\nint \u5f53\u524denbid\u503c,\u82e5\u5931\u8d25\u8fd4\u56de-1\n", "prefix": "mobile.enbid"}, "mobile.flymode": {"body": "mobile.flymode(${1:index},${2:enable})", "description": "mobile.flymode(index, enable) - \u8fdb\u51fa\u98de\u884c\u6a21\u5f0f\n\u4f20\u5165\u503c\uff1a\nint \u7f16\u53f7,\u9ed8\u8ba40. \u5728\u652f\u6301\u53cc\u5361\u7684\u6a21\u5757\u4e0a\u624d\u4f1a\u51fa\u73b00\u62161\u7684\u60c5\u51b5\nbool \u662f\u5426\u8bbe\u7f6e\u4e3a\u98de\u884c\u6a21\u5f0f,true\u4e3a\u8bbe\u7f6e, false\u4e3a\u9000\u51fa,\u53ef\u9009\n\u8fd4\u56de\u503c\uff1a\nbool \u539f\u98de\u884c\u6a21\u5f0f\u7684\u72b6\u6001\n", "prefix": "mobile.flymode"}, "mobile.status": {"body": "mobile.status()", "description": "mobile.status() - \u83b7\u53d6\u7f51\u7edc\u72b6\u6001\n\u8fd4\u56de\u503c\uff1a\nint \u5f53\u524d\u7f51\u7edc\u72b6\u6001,0:\u7f51\u7edc\u672a\u6ce8\u518c;1:\u7f51\u7edc\u5df2\u6ce8\u518c;2:\u6b63\u5728\u641c\u7f51\u4e2d;3:\u7f51\u7edc\u6ce8\u518c\u88ab\u62d2\u7edd\n", "prefix": "mobile.status"}, "mobile.getCellInfo": {"body": "mobile.getCellInfo()", "description": "mobile.getCellInfo() - \u83b7\u53d6\u673a\u5236\u4fe1\u606f\n\u8fd4\u56de\u503c\uff1a\ntable \u5305\u542b\u57fa\u7ad9\u6570\u636e\u7684\u6570\u7ec4\n\u4f8b\u5b50\uff1a\n-- \u6ce8\u610f: \u4ece2023.06.20\u5f00\u59cb, \u9700\u8981\u4e3b\u52a8\u8bf7\u6c42\u4e00\u6b21reqCellInfo\u624d\u4f1a\u6709\u57fa\u7ad9\u6570\u636e.\n\n--\u793a\u4f8b\u8f93\u51fa\n--[[\n[\n {\"rsrq\":-10,\"rssi\":-55,\"cid\":124045360,\"mnc\":17,\"pci\":115,\"earfcn\":1850,\"snr\":15,\"rsrp\":-85,\"mcc\":1120,\"tdd\":0},\n {\"pci\":388,\"rsrq\":-11,\"mnc\":17,\"earfcn\":2452,\"snr\":5,\"rsrp\":-67,\"mcc\":1120,\"cid\":124045331},\n {\"pci\":100,\"rsrq\":-9,\"mnc\":17,\"earfcn\":75,\"snr\":17,\"rsrp\":-109,\"mcc\":1120,\"cid\":227096712}\n]\n]]\n\nmobile.reqCellInfo(60)\n-- \u8ba2\u9605\nsys.subscribe(\"CELL_INFO_UPDATE\", function()\n log.info(\"cell\", json.encode(mobile.getCellInfo()))\nend)\n\n-- \u5b9a\u671f\u8f6e\u8bad\u5f0f\nsys.taskInit(function()\n sys.wait(3000)\n while 1 do\n mobile.reqCellInfo(15)\n sys.waitUntil(\"CELL_INFO_UPDATE\", 15000)\n log.info(\"cell\", json.encode(mobile.getCellInfo()))\n end\nend)\n", "prefix": "mobile.getCellInfo"}, "mobile.reqCellInfo": {"body": "mobile.reqCellInfo(${1:timeout})", "description": "mobile.reqCellInfo(timeout) - \u53d1\u8d77\u57fa\u7ad9\u4fe1\u606f\u67e5\u8be2,\u542b\u4e34\u8fd1\u5c0f\u533a\n\u4f20\u5165\u503c\uff1a\nint \u8d85\u65f6\u65f6\u957f,\u5355\u4f4d\u79d2,\u9ed8\u8ba415. \u6700\u5c115, \u6700\u9ad860\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n-- \u53c2\u8003 mobile.getCellInfo \u51fd\u6570\n", "prefix": "mobile.reqCellInfo"}, "mobile.reset": {"body": "mobile.reset()", "description": "mobile.reset() - \u91cd\u542f\u534f\u8bae\u6808\n\u4f8b\u5b50\uff1a\n-- \u91cd\u542fLTE\u534f\u8bae\u6808\nmobile.reset()\n", "prefix": "mobile.reset"}, "mobile.dataTraffic": {"body": "mobile.dataTraffic(${1:clearUplink},${2:clearDownlink})", "description": "mobile.dataTraffic(clearUplink, clearDownlink) - \u6570\u636e\u91cf\u6d41\u91cf\u5904\u7406\n\u4f20\u5165\u503c\uff1a\nboolean \u6e05\u7a7a\u4e0a\u884c\u6d41\u91cf\u7d2f\u8ba1\u503c\uff0ctrue\u6e05\u7a7a\uff0c\u5176\u4ed6\u5ffd\u7565\nboolean \u6e05\u7a7a\u4e0b\u884c\u6d41\u91cf\u7d2f\u8ba1\u503c\uff0ctrue\u6e05\u7a7a\uff0c\u5176\u4ed6\u5ffd\u7565\n\u8fd4\u56de\u503c\uff1a\nint \u4e0a\u884c\u6d41\u91cfGB\nint \u4e0a\u884c\u6d41\u91cfB\nint \u4e0b\u884c\u6d41\u91cfGB\nint \u4e0b\u884c\u6d41\u91cfB\n\u4f8b\u5b50\uff1a\n-- \u83b7\u53d6\u4e0a\u4e0b\u884c\u6d41\u91cf\u7d2f\u8ba1\u503c\n-- \u4e0a\u884c\u6d41\u91cf\u503cByte = uplinkGB * 1024 * 1024 * 1024 + uplinkB\n-- \u4e0b\u884c\u6d41\u91cf\u503cByte = downlinkGB * 1024 * 1024 * 1024 + downlinkB\nlocal uplinkGB, uplinkB, downlinkGB, downlinkB = mobile.dataTraffic()\n\n-- \u6e05\u7a7a\u4e0a\u4e0b\u884c\u6d41\u91cf\u7d2f\u8ba1\u503c\nmobile.dataTraffic(true, true)\n", "prefix": "mobile.dataTraffic"}, "mobile.config": {"body": "mobile.config(${1:item},${2:value})", "description": "mobile.config(item, value) - \u7f51\u7edc\u7279\u6b8a\u914d\u7f6e\uff0c\u9488\u5bf9\u4e0d\u540c\u5e73\u53f0\u6709\u4e0d\u540c\u7684\u914d\u7f6e\uff0c\u8c28\u614e\u4f7f\u7528\uff0c\u76ee\u524d\u53ea\u6709EC618\n\u4f20\u5165\u503c\uff1a\nint \u914d\u7f6e\u9879\u76ee\uff0c\u770bmobile.CONF_XXX\nint \u914d\u7f6e\u503c\n\u8fd4\u56de\u503c\uff1a\nboolean \u662f\u5426\u6210\u529f\n\u4f8b\u5b50\uff1a\n-- EC618\u914d\u7f6e\u5c0f\u533a\u91cd\u9009\u4fe1\u53f7\u5dee\u503c\u95e8\u9650\uff0c\u4e0d\u80fd\u5927\u4e8e15dbm\uff0c\u5fc5\u987b\u5728\u98de\u884c\u6a21\u5f0f\u4e0b\u624d\u80fd\u7528\nmobile.flymode(0,true)\nmobile.config(mobile.CONF_RESELTOWEAKNCELL, 15)\nmobile.config(mobile.CONF_STATICCONFIG, 1) --\u5f00\u542f\u7f51\u7edc\u9759\u6001\u4f18\u5316\nmobile.flymode(0,false)\n\n-- EC618\u8bbe\u7f6eSIM\u5199\u5165\u6b21\u6570\u7684\u7edf\u8ba1\n-- \u5173\u95ed\u7edf\u8ba1\nmobile.config(mobile.CONF_SIM_WC_MODE, 0)\n-- \u5f00\u542f\u7edf\u8ba1, \u9ed8\u8ba4\u4e5f\u662f\u5f00\u542f\u7684.\nmobile.config(mobile.CONF_SIM_WC_MODE, 1)\n-- \u8bfb\u53d6\u7edf\u8ba1\u503c,\u5f02\u6b65, \u9700\u8981\u901a\u8fc7\u7cfb\u7edf\u6d88\u606fSIM_IND\u83b7\u53d6\nsys.subscribe(\"SIM_IND\", function(stats, value)\n log.info(\"SIM_IND\", stats)\n if stats == \"SIM_WC\" then\n log.info(\"sim\", \"write counter\", value)\n end\nend)\nmobile.config(mobile.CONF_SIM_WC_MODE, 2)\n-- \u6e05\u7a7a\u7edf\u8ba1\u503c\nmobile.config(mobile.CONF_SIM_WC_MODE, 3)\n", "prefix": "mobile.config"}, "mobile.getBand": {"body": "mobile.getBand(${1:band},${2:is_default})", "description": "mobile.getBand(band, is_default) - \u83b7\u53d6\u5f53\u524d\u4f7f\u7528/\u652f\u6301\u7684band\n\u4f20\u5165\u503c\uff1a\nzbuff \u8f93\u51faband\nboolean true\u9ed8\u8ba4\u652f\u6301\uff0cfalse\u5f53\u524d\u652f\u6301\u7684\uff0c\u9ed8\u8ba4\u662ffalse\uff0c\u5f53\u524d\u662f\u9884\u7559\u529f\u80fd\uff0c\u4e0d\u8981\u5199true\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u8fd4\u56detrue\uff0c\u5931\u8d25\u653e\u56defalse\n\u4f8b\u5b50\uff1a\nlocal buff = zbuff.create(40)\nmobile.getBand(buff) --\u8f93\u51fa\u5f53\u524d\u4f7f\u7528\u7684band\uff0cband\u53f7\u653e\u5728buff\u5185\uff0cbuff[0]\uff0cbuff[1]\uff0cbuff[2] .. buff[buff:used() - 1]\n", "prefix": "mobile.getBand"}, "mobile.setBand": {"body": "mobile.setBand(${1:band},${2:num})", "description": "mobile.setBand(band, num) - \u8bbe\u7f6e\u4f7f\u7528\u7684band\n\u4f20\u5165\u503c\uff1a\nzbuff \u8f93\u5165\u4f7f\u7528\u7684band\nint band\u6570\u91cf\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u8fd4\u56detrue\uff0c\u5931\u8d25\u653e\u56defalse\n\u4f8b\u5b50\uff1a\nlocal buff = zbuff.create(40)\nbuff[0] = 3\nbuff[1] = 5\nbuff[2] = 8\nbuff[3] = 40\nmobile.setBand(buff, 4) --\u8bbe\u7f6e\u4f7f\u7528\u7684band\u4e00\u51714\u4e2a\uff0c\u4e3a3,5,8,40\n", "prefix": "mobile.setBand"}, "mobile.nstOnOff": {"body": "mobile.nstOnOff(${1:onoff},${2:uart_id})", "description": "mobile.nstOnOff(onoff, uart_id) - RF\u6d4b\u8bd5\u5f00\u5173\u548c\u914d\u7f6e\n\u4f20\u5165\u503c\uff1a\nboolean true\u5f00\u542f\u6d4b\u8bd5\u6a21\u5f0f\uff0cfalse\u5173\u95ed\nint \u4e32\u53e3\u53f7\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\nmobile.nstOnOff(true, uart.VUART_0)\t--\u6253\u5f00\u6d4b\u8bd5\u6a21\u5f0f\uff0c\u5e76\u4e14\u7528\u865a\u62df\u4e32\u53e3\u53d1\u9001\u7ed3\u679c\nmobile.nstOnOff(false) --\u5173\u95ed\u6d4b\u8bd5\u6a21\u5f0f\n", "prefix": "mobile.nstOnOff"}, "mobile.nstInput": {"body": "mobile.nstInput(${1:data})", "description": "mobile.nstInput(data) - RF\u6d4b\u8bd5\u6570\u636e\u8f93\u5165\n\u4f20\u5165\u503c\uff1a\nstring or zbuff \u7528\u6237\u4ece\u4e32\u53e3\u83b7\u53d6\u7684\u6570\u636e\uff0c\u6ce8\u610f\uff0c\u5f53\u83b7\u53d6\u5b8c\u6240\u6709\u6570\u636e\u540e\uff0c\u9700\u8981\u518d\u4f20\u4e00\u4e2anil\u6765\u4f5c\u4e3a\u4f20\u8f93\u7ed3\u675f\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\nmobile.nstInput(uart_data)\nmobile.nstInput(nil)\n", "prefix": "mobile.nstInput"}, "mqttc:subscribe": {"body": "mqttc:subscribe(${1:topic},${2:qos})", "description": "mqttc:subscribe(topic, qos) - \u8ba2\u9605\u4e3b\u9898\n\u4f20\u5165\u503c\uff1a\nstring/table \u4e3b\u9898\nint topic\u4e3astring\u65f6\u751f\u6548 0/1/2 \u9ed8\u8ba40\n\u8fd4\u56de\u503c\uff1a\nint \u6d88\u606fid,\u5f53qos\u4e3a1/2\u65f6\u6709\u6548, \u82e5\u5e95\u5c42\u8fd4\u56de\u5931\u8d25,\u4f1a\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\n-- \u8ba2\u9605\u5355\u4e2atopic, \u4e14qos=0\nmqttc:subscribe(\"/luatos/123456\", 0)\n-- \u8ba2\u9605\u5355\u4e2atopic, \u4e14qos=1\nmqttc:subscribe(\"/luatos/12345678\", 1)\n-- \u8ba2\u9605\u591a\u4e2atopic, \u4e14\u4f7f\u7528\u4e0d\u540c\u7684qos\nmqttc:subscribe({[\"/luatos/1234567\"]=1,[\"/luatos/12345678\"]=2})\n", "prefix": "mqttc:subscribe"}, "mqttc:unsubscribe": {"body": "mqttc:unsubscribe(${1:topic})", "description": "mqttc:unsubscribe(topic) - \u53d6\u6d88\u8ba2\u9605\u4e3b\u9898\n\u4f20\u5165\u503c\uff1a\nstring/table \u4e3b\u9898\n\u4f8b\u5b50\uff1a\nmqttc:unsubscribe(\"/luatos/123456\")\nmqttc:unsubscribe({\"/luatos/1234567\",\"/luatos/12345678\"})\n", "prefix": "mqttc:unsubscribe"}, "mqttc:debug": {"body": "mqttc:debug(${1:onoff})", "description": "mqttc:debug(onoff) - \u914d\u7f6e\u662f\u5426\u6253\u5f00debug\u4fe1\u606f\n\u4f20\u5165\u503c\uff1a\nboolean \u662f\u5426\u6253\u5f00debug\u5f00\u5173\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n", "prefix": "mqttc:debug"}, "mqtt.create": {"body": "mqtt.create(${1:adapter},${2:host},${3:port},${4:ssl},${5:isipv6})", "description": "mqtt.create(adapter,host,port,ssl,isipv6) - mqtt\u5ba2\u6237\u7aef\u521b\u5efa\n\u4f20\u5165\u503c\uff1a\nint \u9002\u914d\u5668\u5e8f\u53f7, \u53ea\u80fd\u662fsocket.ETH0, socket.STA, socket.AP,\u5982\u679c\u4e0d\u586b,\u4f1a\u9009\u62e9\u5e73\u53f0\u81ea\u5e26\u7684\u65b9\u5f0f,\u7136\u540e\u662f\u6700\u540e\u4e00\u4e2a\u6ce8\u518c\u7684\u9002\u914d\u5668\nstring \u670d\u52a1\u5668\u5730\u5740,\u53ef\u4ee5\u662f\u57df\u540d, \u4e5f\u53ef\u4ee5\u662fip\nint \t\u7aef\u53e3\u53f7\nbool/table \u662f\u5426\u4e3assl\u52a0\u5bc6\u8fde\u63a5,\u9ed8\u8ba4\u4e0d\u52a0\u5bc6,true\u4e3a\u65e0\u8bc1\u4e66\u6700\u7b80\u5355\u7684\u52a0\u5bc6\uff0ctable\u4e3a\u6709\u8bc1\u4e66\u7684\u52a0\u5bc6
server_cert \u670d\u52a1\u5668ca\u8bc1\u4e66\u6570\u636e
client_cert \u5ba2\u6237\u7aef\u8bc1\u4e66\u6570\u636e
client_key \u5ba2\u6237\u7aef\u79c1\u94a5\u52a0\u5bc6\u6570\u636e
client_password \u5ba2\u6237\u7aef\u79c1\u94a5\u53e3\u4ee4\u6570\u636e
verify \u662f\u5426\u5f3a\u5236\u6821\u9a8c 0\u4e0d\u6821\u9a8c/1\u53ef\u9009\u6821\u9a8c/2\u5f3a\u5236\u6821\u9a8c \u9ed8\u8ba42\nbool \u662f\u5426\u4e3aipv6 \u9ed8\u8ba4\u4e0d\u662f\n\u8fd4\u56de\u503c\uff1a\nuserdata \u82e5\u6210\u529f\u4f1a\u8fd4\u56demqtt\u5ba2\u6237\u7aef\u5b9e\u4f8b,\u5426\u5219\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\n-- \u666e\u901aTCP\u94fe\u63a5\nmqttc = mqtt.create(nil,\"120.55.137.106\", 1884)\n-- \u52a0\u5bc6TCP\u94fe\u63a5,\u4e0d\u9a8c\u8bc1\u670d\u52a1\u5668\u8bc1\u4e66\nmqttc = mqtt.create(nil,\"120.55.137.106\", 8883, true)\n-- \u52a0\u5bc6TCPTCP\u94fe\u63a5,\u5355\u670d\u52a1\u5668\u8bc1\u4e66\u9a8c\u8bc1\nmqttc = mqtt.create(nil,\"120.55.137.106\", 8883, {server_cert=io.readFile(\"/luadb/ca.crt\")})\n-- \u52a0\u5bc6TCPTCP\u94fe\u63a5,\u5355\u670d\u52a1\u5668\u8bc1\u4e66\u9a8c\u8bc1, \u4f46\u53ef\u9009\u8ba4\u8bc1\nmqttc = mqtt.create(nil,\"120.55.137.106\", 8883, {server_cert=io.readFile(\"/luadb/ca.crt\"), verify=1})\n-- \u52a0\u5bc6TCPTCP\u94fe\u63a5,\u53cc\u5411\u8bc1\u4e66\u9a8c\u8bc1\nmqttc = mqtt.create(nil,\"120.55.137.106\", 8883, {\n\t\t\t\t\tserver_cert=io.readFile(\"/luadb/ca.crt\"),\n\t\t\t\t\tclient_cert=io.readFile(\"/luadb/client.pem\"),\n\t\t\t\t\tclient_key=\"123456\",\n\t\t\t\t\tclient_password=\"123456\",\n\t\t\t\t\t})\n", "prefix": "mqtt.create"}, "mqttc:auth": {"body": "mqttc:auth(${1:client_id},${2:username},${3:password},${4:cleanSession})", "description": "mqttc:auth(client_id,username,password,cleanSession) - mqtt\u4e09\u5143\u7ec4\u914d\u7f6e\u53cacleanSession\n\u4f20\u5165\u503c\uff1a\nstring \u8bbe\u5907\u8bc6\u522bid,\u5bf9\u4e8e\u540c\u4e00\u4e2amqtt\u670d\u52a1\u5668\u6765\u8bf4, \u901a\u5e38\u8981\u6c42\u552f\u4e00,\u76f8\u540cclient_id\u4f1a\u4e92\u76f8\u8e22\u4e0b\u7ebf\nstring \u8d26\u53f7 \u53ef\u9009\nstring \u5bc6\u7801 \u53ef\u9009\nbool \u6e05\u9664session,\u9ed8\u8ba4true,\u53ef\u9009\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n-- \u65e0\u8d26\u53f7\u5bc6\u7801\u767b\u5f55,\u4ec5clientId\nmqttc:auth(\"123456789\")\n-- \u5e26\u8d26\u53f7\u5bc6\u7801\u767b\u5f55\nmqttc:auth(\"123456789\",\"username\",\"password\")\n-- \u989d\u5916\u914d\u7f6ecleanSession,\u4e0d\u6e05\u9664\nmqttc:auth(\"123456789\",\"username\",\"password\", false)\n-- \u65e0clientId\u6a21\u5f0f, \u670d\u52a1\u5668\u968f\u673a\u751f\u6210id, cleanSession\u4e0d\u53ef\u914d\u7f6e\nmqttc:auth()\n", "prefix": "mqttc:auth"}, "mqttc:keepalive": {"body": "mqttc:keepalive(${1:time})", "description": "mqttc:keepalive(time) - mqtt\u5fc3\u8df3\u8bbe\u7f6e\n\u4f20\u5165\u503c\uff1a\nint \u53ef\u9009 \u5355\u4f4ds \u9ed8\u8ba4240s. \u6700\u514815,\u6700\u9ad8600\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\nmqttc:keepalive(30)\n", "prefix": "mqttc:keepalive"}, "mqttc:on": {"body": "mqttc:on(${1:cb})", "description": "mqttc:on(cb) - \u6ce8\u518cmqtt\u56de\u8c03\n\u4f20\u5165\u503c\uff1a\nfunction cb mqtt\u56de\u8c03,\u53c2\u6570\u5305\u62ecmqtt_client, event, data, payload\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\nmqttc:on(function(mqtt_client, event, data, payload, metas)\n\t-- \u7528\u6237\u81ea\u5b9a\u4e49\u4ee3\u7801\n\tlog.info(\"mqtt\", \"event\", event, mqtt_client, data, payload)\nend)\n--[[\nevent\u53ef\u80fd\u51fa\u73b0\u7684\u503c\u6709\n conack -- \u670d\u52a1\u5668\u9274\u6743\u5b8c\u6210,mqtt\u8fde\u63a5\u5df2\u7ecf\u5efa\u7acb, \u53ef\u4ee5\u8ba2\u9605\u548c\u53d1\u5e03\u6570\u636e\u4e86,\u6ca1\u6709\u9644\u52a0\u6570\u636e\n recv -- \u63a5\u6536\u5230\u6570\u636e,\u7531\u670d\u52a1\u5668\u4e0b\u53d1, data\u4e3atopic\u503c(string), payload\u4e3a\u4e1a\u52a1\u6570\u636e(string).metas\u662f\u5143\u6570\u636e(table), \u4e00\u822c\u4e0d\u5904\u7406. \n -- metas\u5305\u542b\u4ee5\u4e0b\u5185\u5bb9\n\t\t\t -- qos \u53d6\u503c\u8303\u56f40,1,2\n\t\t\t -- retain \u53d6\u503c\u8303\u56f4 0,1\n\t\t\t -- dup \u53d6\u503c\u8303\u56f4 0,1\n sent -- \u53d1\u9001\u5b8c\u6210, qos0\u4f1a\u9a6c\u4e0a\u901a\u77e5, qos1/qos2\u4f1a\u5728\u670d\u52a1\u5668\u5e94\u7b54\u4f1a\u56de\u8c03, data\u4e3a\u6d88\u606fid\n disconnect -- \u670d\u52a1\u5668\u65ad\u5f00\u8fde\u63a5,\u7f51\u7edc\u95ee\u9898\u6216\u670d\u52a1\u5668\u8e22\u4e86\u5ba2\u6237\u7aef,\u4f8b\u5982clientId\u91cd\u590d,\u8d85\u65f6\u672a\u4e0a\u62a5\u4e1a\u52a1\u6570\u636e\n]]\n", "prefix": "mqttc:on"}, "mqttc:connect": {"body": "mqttc:connect()", "description": "mqttc:connect() - \u8fde\u63a5\u670d\u52a1\u5668\n\u8fd4\u56de\u503c\uff1a\nboolean \u53d1\u8d77\u6210\u529f\u8fd4\u56detrue, \u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- \u5f00\u59cb\u5efa\u7acb\u8fde\u63a5\nmqttc:connect()\n-- \u672c\u51fd\u6570\u4ec5\u4ee3\u8868\u53d1\u8d77\u6210\u529f, \u540e\u7eed\u4ecd\u9700\u6839\u636eready\u51fd\u6570\u5224\u65admqtt\u662f\u5426\u8fde\u63a5\u6b63\u5e38\n", "prefix": "mqttc:connect"}, "mqttc:disconnect": {"body": "mqttc:disconnect()", "description": "mqttc:disconnect() - \u65ad\u5f00\u670d\u52a1\u5668\u8fde\u63a5(\u4e0d\u4f1a\u91ca\u653e\u8d44\u6e90)\n\u8fd4\u56de\u503c\uff1a\nboolean \u53d1\u8d77\u6210\u529f\u8fd4\u56detrue, \u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- \u65ad\u5f00\u8fde\u63a5\nmqttc:disconnect()\n", "prefix": "mqttc:disconnect"}, "mqttc:autoreconn": {"body": "mqttc:autoreconn(${1:reconnect},${2:reconnect_time})", "description": "mqttc:autoreconn(reconnect, reconnect_time) - \u81ea\u52a8\u91cd\u8fde\n\u4f20\u5165\u503c\uff1a\nbool \u662f\u5426\u81ea\u52a8\u91cd\u8fde\nint \u81ea\u52a8\u91cd\u8fde\u5468\u671f \u5355\u4f4dms \u9ed8\u8ba43000ms\n\u4f8b\u5b50\uff1a\nmqttc:autoreconn(true)\n", "prefix": "mqttc:autoreconn"}, "mqttc:publish": {"body": "mqttc:publish(${1:topic},${2:data},${3:qos},${4:retain})", "description": "mqttc:publish(topic, data, qos, retain) - \u53d1\u5e03\u6d88\u606f\n\u4f20\u5165\u503c\uff1a\nstring \u4e3b\u9898,\u5fc5\u586b\nstring \u6d88\u606f,\u5fc5\u586b,\u4f46\u957f\u5ea6\u53ef\u4ee5\u662f0\nint \u6d88\u606f\u7ea7\u522b 0/1 \u9ed8\u8ba40\nint \u662f\u5426\u5b58\u6863, 0/1,\u9ed8\u8ba40\n\u8fd4\u56de\u503c\uff1a\nint \u6d88\u606fid, \u5f53qos\u4e3a1\u62162\u65f6\u4f1a\u6709\u6548\u503c. \u82e5\u5e95\u5c42\u8fd4\u56de\u662f\u5426, \u4f1a\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\nmqttc:publish(\"/luatos/123456\", \"123\")\n", "prefix": "mqttc:publish"}, "mqttc:close": {"body": "mqttc:close()", "description": "mqttc:close() - mqtt\u5ba2\u6237\u7aef\u5173\u95ed(\u5173\u95ed\u540e\u8d44\u6e90\u91ca\u653e\u65e0\u6cd5\u518d\u4f7f\u7528)\n\u4f8b\u5b50\uff1a\nmqttc:close()\n", "prefix": "mqttc:close"}, "mqttc:ready": {"body": "mqttc:ready()", "description": "mqttc:ready() - mqtt\u5ba2\u6237\u7aef\u662f\u5426\u5c31\u7eea\n\u8fd4\u56de\u503c\uff1a\nbool \u5ba2\u6237\u7aef\u662f\u5426\u5c31\u7eea\n\u4f8b\u5b50\uff1a\nlocal error = mqttc:ready()\n", "prefix": "mqttc:ready"}, "mqttc:state": {"body": "mqttc:state()", "description": "mqttc:state() - mqtt\u5ba2\u6237\u7aef\u72b6\u6001\n\u8fd4\u56de\u503c\uff1a\nnumber \u5ba2\u6237\u7aef\u72b6\u6001\n\u4f8b\u5b50\uff1a\nlocal state = mqttc:state()\n", "prefix": "mqttc:state"}, "mqttc:will": {"body": "mqttc:will(${1:topic},${2:payload},${3:qos},${4:retain})", "description": "mqttc:will(topic, payload, qos, retain) - \u8bbe\u7f6e\u9057\u5631\u6d88\u606f\n\u4f20\u5165\u503c\uff1a\nstring \u9057\u5631\u6d88\u606f\u7684topic\nstring \u9057\u5631\u6d88\u606f\u7684payload\nstring \u9057\u5631\u6d88\u606f\u7684qos, \u9ed8\u8ba40, \u53ef\u4ee5\u4e0d\u586b\nstring \u9057\u5631\u6d88\u606f\u7684retain, \u9ed8\u8ba40, \u53ef\u4ee5\u4e0d\u586b\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- \u8981\u5728connect\u4e4b\u524d\u8c03\u7528\nmqttc:will(\"/xxx/xxx\", \"xxxxxx\")\n", "prefix": "mqttc:will"}, "nbiot.isReady": {"body": "nbiot.isReady()", "description": "nbiot.isReady() - \u7f51\u7edc\u662f\u5426\u5c31\u7eea\n\u8fd4\u56de\u503c\uff1a\nboolean \u5df2\u8054\u7f51\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- \u5224\u65ad\u662f\u5426\u5df2\u7ecf\u8054\u7f51\nif nbiot.isReady() then \n log.info(\"nbiot\", \"net is ready\")\nend\n", "prefix": "nbiot.isReady"}, "nbiot.imsi": {"body": "nbiot.imsi()", "description": "nbiot.imsi() - \u8bfb\u53d6IMSI\n\u8fd4\u56de\u503c\uff1a\nstring \u8fd4\u56deIMSI\u503c\uff0c\u5982\u679c\u4e0d\u5b58\u5728\u5c31\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\n--\u8bfb\u53d6imsi\nlog.info(\"nbiot\", \"imsi\", nbiot.imsi())\n", "prefix": "nbiot.imsi"}, "nbiot.iccid": {"body": "nbiot.iccid()", "description": "nbiot.iccid() - \u8bfb\u53d6ICCID\n\u8fd4\u56de\u503c\uff1a\nstring \u8fd4\u56deICCID\u503c\uff0c\u5982\u679c\u4e0d\u5b58\u5728\u5c31\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\n-- \u8bfb\u53d6iccid\nlog.info(\"nbiot\", \"iccid\", nbiot.iccid())\n", "prefix": "nbiot.iccid"}, "nbiot.imei": {"body": "nbiot.imei(${1:val})", "description": "nbiot.imei(val) - \u8bfb\u53d6\u6216\u8bbe\u7f6eIMEI\n\u4f20\u5165\u503c\uff1a\nstring \u4f20\u5165\u9700\u8981\u8bbe\u7f6e\u7684imei\u503c\uff0c\u4e0d\u4f20\u5c31\u662f\u8bfb\u53d6\n\u8fd4\u56de\u503c\uff1a\nstring \u8fd4\u56deimei\u503c\uff0c\u5982\u679c\u4e0d\u5b58\u5728\u5c31\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\n-- \u8bfb\u53d6imei\nlog.info(\"nbiot\", \"imei\", nbiot.imei())\n@usage \n-- \u8bbe\u7f6eimei\nlog.info(\"nbiot\", \"imei\", nbiot.imei(\"898989898989899898\"))\n", "prefix": "nbiot.imei"}, "nbiot.rssi": {"body": "nbiot.rssi()", "description": "nbiot.rssi() - \u8bfb\u53d6RSSI\n\u8fd4\u56de\u503c\uff1a\nint \u8fd4\u56derssi\u503c\n\u4f8b\u5b50\uff1a\n-- \u8bfb\u53d6rssi\nlog.info(\"nbiot\", \"rssi\", nbiot.rssi())\n", "prefix": "nbiot.rssi"}, "nbiot.apn": {"body": "nbiot.apn()", "description": "nbiot.apn() - \u8bfb\u53d6APN\n\u8fd4\u56de\u503c\uff1a\nstring \u8fd4\u56deapn\u503c\n\u4f8b\u5b50\uff1a\n-- \u8bfb\u53d6APN\nlog.info(\"nbiot\", \"apn\", nbiot.apn())\n", "prefix": "nbiot.apn"}, "nbiot.userApn": {"body": "nbiot.userApn(${1:apn},${2:Auth_User_Name},${3:Auth_Password},${4:PDN_TYPE})", "description": "nbiot.userApn(apn,Auth_User_Name,Auth_Password,PDN_TYPE) - \u8bfb\u53d6\u8bbe\u7f6e\u7528\u6237APN\n\u4f20\u5165\u503c\uff1a\nreturn \u8bfb\u53d6\u8fd4\u56dePDN_TYPE,Auth_User_Name,Auth_Password\uff0c\u8bbe\u7f6e\u8fd4\u56debool\n\u4f8b\u5b50\uff1a\n-- \u8bfb\u53d6APN\nlog.info(\"nbiot\", \"apn\", nbiot.userApn())\n", "prefix": "nbiot.userApn"}, "nbiot.tac": {"body": "nbiot.tac()", "description": "nbiot.tac() - \u8bfb\u53d6TAC\n\u8fd4\u56de\u503c\uff1a\nint \u8fd4\u56deTAC\u503c\n\u4f8b\u5b50\uff1a\n-- \u8bfb\u53d6TAC\nlog.info(\"nbiot\", \"tac\", nbiot.tac())\n", "prefix": "nbiot.tac"}, "nbiot.tauTime": {"body": "nbiot.tauTime()", "description": "nbiot.tauTime() - \u8bfb\u53d6Tau Time\n\u8fd4\u56de\u503c\uff1a\nint \u8fd4\u56deTau Time\u503c\n\u4f8b\u5b50\uff1a\n-- \u8bfb\u53d6Tau Time\nlog.info(\"nbiot\", \"tau time\", nbiot.tauTime())\n", "prefix": "nbiot.tauTime"}, "nbiot.activeTime": {"body": "nbiot.activeTime()", "description": "nbiot.activeTime() - \u8bfb\u53d6Active Time\n\u8fd4\u56de\u503c\uff1a\nint \u8fd4\u56deActive Time\u503c\n\u4f8b\u5b50\uff1a\n-- \u8bfb\u53d6Active Time\nlog.info(\"nbiot\", \"Active Time\", nbiot.activeTime())\n", "prefix": "nbiot.activeTime"}, "nbiot.cellID": {"body": "nbiot.cellID()", "description": "nbiot.cellID() - \u8bfb\u53d6CellID\n\u8fd4\u56de\u503c\uff1a\nint \u8fd4\u56deCellID\u503c\n\u4f8b\u5b50\uff1a\n-- \u8bfb\u53d6CellID\nlog.info(\"nbiot\", \"CellID\", nbiot.cellID())\n", "prefix": "nbiot.cellID"}, "nbiot.snr": {"body": "nbiot.snr()", "description": "nbiot.snr() - \u8bfb\u53d6SNR\n\u8fd4\u56de\u503c\uff1a\nint \u8fd4\u56deSNR\u503c\n\u4f8b\u5b50\uff1a\n-- \u8bfb\u53d6SNR\nlog.info(\"nbiot\", \"SNR\", nbiot.snr())\n", "prefix": "nbiot.snr"}, "nbiot.csq": {"body": "nbiot.csq()", "description": "nbiot.csq() - \u8bfb\u53d6CSQ, \u5e76\u4e0d\u5b8c\u5168\u7b49\u4ef7\u4e8eGSM\u7684CSQ\n\u8fd4\u56de\u503c\uff1a\nint \u8fd4\u56decsq\u503c\n\u4f8b\u5b50\uff1a\n-- \u8bfb\u53d6csq\nlog.info(\"nbiot\", \"csq\", nbiot.csq())\n", "prefix": "nbiot.csq"}, "nbiot.ceLevel": {"body": "nbiot.ceLevel()", "description": "nbiot.ceLevel() - \u8bfb\u53d6CE Level\n\u8fd4\u56de\u503c\uff1a\nint \u8fd4\u56deCE Level\u503c\n\u4f8b\u5b50\uff1a\n-- \u8bfb\u53d6CE Level\nlog.info(\"nbiot\", \"CE Level\", nbiot.ceLevel())\n", "prefix": "nbiot.ceLevel"}, "nbiot.sn": {"body": "nbiot.sn(${1:val})", "description": "nbiot.sn(val) - \u8bfb\u53d6\u6216\u8bbe\u7f6eSN,\u666e\u901a\u5237\u673a(\u5237\u5e95\u5c42/\u5237\u811a\u672c)\u4e0d\u4f1a\u6e05\u9664\n\u4f20\u5165\u503c\uff1a\nstring \u9700\u8981\u8bbe\u7f6e\u7684SN\u503c(\u53ea\u80fd\u662f\u53ef\u89c1\u5b57\u7b26),\u4e0d\u4f20\u503c\u5219\u4e3a\u8bfb\u53d6\n\u8fd4\u56de\u503c\uff1a\nstring \u8fd4\u56deSN\u503c\n\u4f8b\u5b50\uff1a\n-- \u8bfb\u53d6SN\nlog.info(\"nbiot\", \"SN\", nbiot.sn())\n@usage \n-- \u8bbe\u7f6eSN\nlog.info(\"nbiot\", \"SN\", nbiot.sn(\"My Custom SN\"))\n", "prefix": "nbiot.sn"}, "nbiot.updateCellInfo": {"body": "nbiot.updateCellInfo()", "description": "nbiot.updateCellInfo() - \u5237\u65b0\u7f51\u7edc\u4fe1\u606f,\u53ef\u901a\u8fc7\u5b9a\u65f6\u4efb\u52a1\u5237\u65b0,\u6700\u5c0f\u95f4\u96945\u79d2\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u542f\u52a8\u5237\u65b0\u7ebf\u7a0b\u8fd4\u56detrue\uff0c\u5426\u5219\u8fd4\u56defalse.\n\u4f8b\u5b50\uff1a\n-- \u5237\u65b0\u7f51\u7edc\u4fe1\u606f\nnbiot.updateCellInfo()\nsys.waitUntil(\"CELL_INFO_IND\", 3000)\nlog.info(\"nbiot\", \"cell\", json.encode(nbiot.getCellInfo()))\n", "prefix": "nbiot.updateCellInfo"}, "nbiot.mcc": {"body": "nbiot.mcc()", "description": "nbiot.mcc() - \u8bfb\u53d6MCC\u503c,\u6ce8\u518c\u7f51\u7edc\u540e\u53ef\u7528,\u901a\u8fc7nbiot.updateCellInfo()\u5237\u65b0\n\u8fd4\u56de\u503c\uff1a\nint \u8fd0\u8425\u5546MCC\u503c\n\u4f8b\u5b50\uff1a\n-- \u8bfb\u53d6MCC\nlog.info(\"nbiot\", \"mcc\", nbiot.mcc())\n", "prefix": "nbiot.mcc"}, "nbiot.mnc": {"body": "nbiot.mnc()", "description": "nbiot.mnc() - \u8bfb\u53d6MNC\u503c,\u6ce8\u518c\u7f51\u7edc\u540e\u53ef\u7528,\u901a\u8fc7nbiot.updateCellInfo()\u5237\u65b0\n\u8fd4\u56de\u503c\uff1a\nint \u8fd0\u8425\u5546MNC\u503c\n\u4f8b\u5b50\uff1a\n-- \u8bfb\u53d6MNC\nlog.info(\"nbiot\", \"mnc\", nbiot.mnc())\n", "prefix": "nbiot.mnc"}, "nbiot.earfcn": {"body": "nbiot.earfcn()", "description": "nbiot.earfcn() - \u8bfb\u53d6earfcn\u503c,\u6ce8\u518c\u7f51\u7edc\u540e\u53ef\u7528,\u901a\u8fc7nbiot.updateCellInfo()\u5237\u65b0\n\u8fd4\u56de\u503c\uff1a\nint \u8fd0\u8425\u5546earfcn\u503c\n\u4f8b\u5b50\uff1a\n-- \u8bfb\u53d6earfcn\nlog.info(\"nbiot\", \"earfcn\", nbiot.earfcn())\n", "prefix": "nbiot.earfcn"}, "nbiot.phyCellId": {"body": "nbiot.phyCellId()", "description": "nbiot.phyCellId() - \u8bfb\u53d6phyCellId\u503c,\u6ce8\u518c\u7f51\u7edc\u540e\u53ef\u7528,\u901a\u8fc7nbiot.updateCellInfo()\u5237\u65b0\n\u8fd4\u56de\u503c\uff1a\nint \u8fd0\u8425\u5546phyCellId\u503c\n\u4f8b\u5b50\uff1a\n-- \u8bfb\u53d6phyCellId\nlog.info(\"nbiot\", \"phyCellId\", nbiot.phyCellId())\n", "prefix": "nbiot.phyCellId"}, "nbiot.rsrq": {"body": "nbiot.rsrq()", "description": "nbiot.rsrq() - \u8bfb\u53d6rsrq\u503c,\u6ce8\u518c\u7f51\u7edc\u540e\u53ef\u7528,\u901a\u8fc7nbiot.updateCellInfo()\u5237\u65b0\n\u8fd4\u56de\u503c\uff1a\nint \u8fd0\u8425\u5546ersrq\u503c\n\u4f8b\u5b50\uff1a\n-- \u8bfb\u53d6rsrq\nlog.info(\"nbiot\", \"rsrq\", nbiot.rsrq())\n", "prefix": "nbiot.rsrq"}, "nbiot.rsrp": {"body": "nbiot.rsrp()", "description": "nbiot.rsrp() - \u8bfb\u53d6rsrp\u503c,\u6ce8\u518c\u7f51\u7edc\u540e\u53ef\u7528,\u901a\u8fc7nbiot.updateCellInfo()\u5237\u65b0\n\u8fd4\u56de\u503c\uff1a\nint \u8fd0\u8425\u5546rsrp\u503c\n\u4f8b\u5b50\uff1a\n-- \u8bfb\u53d6rsrp\nlog.info(\"nbiot\", \"rsrp\", nbiot.rsrp())\n", "prefix": "nbiot.rsrp"}, "nbiot.powerLevel": {"body": "nbiot.powerLevel()", "description": "nbiot.powerLevel() - \u8bfb\u53d6PowerLevel\u503c,\u6ce8\u518c\u7f51\u7edc\u540e\u53ef\u7528,\u901a\u8fc7nbiot.updateCellInfo()\u5237\u65b0\n\u8fd4\u56de\u503c\uff1a\nint \u8fd0\u8425\u5546PowerLevel\u503c\n\u4f8b\u5b50\uff1a\n-- \u8bfb\u53d6PowerLevel\nlog.info(\"nbiot\", \"PowerLevel\", nbiot.powerLevel())\n", "prefix": "nbiot.powerLevel"}, "nbiot.getCellInfo": {"body": "nbiot.getCellInfo()", "description": "nbiot.getCellInfo() - \u83b7\u53d6\u7f51\u7edc\u57fa\u7ad9\u8be6\u60c5,\u6ce8\u518c\u7f51\u7edc\u540e\u53ef\u7528,\u901a\u8fc7nbiot.updateCellInfo()\u5237\u65b0\n\u8fd4\u56de\u503c\uff1a\ntable \u7f51\u7edc\u57fa\u7ad9\u8be6\u60c5\n\u4f8b\u5b50\uff1a\n-- \u8bfb\u53d6\u57fa\u7ad9\u4fe1\u606f\nlog.info(\"nbiot\", \"cell info\", json.encode(nbiot.getCellInfo()))\n", "prefix": "nbiot.getCellInfo"}, "nbiot.setCFUN": {"body": "nbiot.setCFUN(${1:val})", "description": "nbiot.setCFUN(val) - \u8fdb\u5165\u6216\u9000\u51fa\u98de\u884c\u6a21\u5f0f\n\u4f20\u5165\u503c\uff1a\nint 0\u98de\u884c\u6a21\u5f0f,1\u666e\u901a\u8054\u7f51\u6a21\u5f0f\n\u8fd4\u56de\u503c\uff1a\nboolean \u8bbe\u7f6e\u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- \u8fdb\u5165\u98de\u884c\u6a21\u5f0f\nnbiot.setCFUN(0)\n", "prefix": "nbiot.setCFUN"}, "nbiot.setBootCFUN": {"body": "nbiot.setBootCFUN(${1:val})", "description": "nbiot.setBootCFUN(val) - \u8bbe\u7f6e\u8bbe\u5907\u4e0a\u7535\u542f\u52a8\u65f6\uff0c\u662f\u5426\u8fdb\u5165\u98de\u884c\u6a21\u5f0f\n\u4f20\u5165\u503c\uff1a\nint 0\u98de\u884c\u6a21\u5f0f,1\u666e\u901a\u8054\u7f51\u6a21\u5f0f\n\u8fd4\u56de\u503c\uff1a\nboolean \u8bbe\u7f6e\u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- \u8bbe\u7f6e\u4e3a\u4e0a\u7535\u8fdb\u5165\u98de\u884c\u6a21\u5f0f\nnbiot.setBootCFUN(0)\n", "prefix": "nbiot.setBootCFUN"}, "nbiot.getBootCFUN": {"body": "nbiot.getBootCFUN(${1:val})", "description": "nbiot.getBootCFUN(val) - \u83b7\u53d6\u8bbe\u5907\u4e0a\u7535\u542f\u52a8\u65f6\uff0c\u662f\u5426\u8fdb\u5165\u98de\u884c\u6a21\u5f0f\n\u8fd4\u56de\u503c\uff1a\nint \u5f00\u673a\u5c31\u8fdb\u5165\u98de\u884c\u6a21\u5f0f\u8fd4\u56de0,\u8fdb\u5165\u666e\u901a\u6a21\u5f0f\u8fd4\u56de1\n\u4f8b\u5b50\uff1a\n-- \u83b7\u53d6\u4e0a\u7535\u6a21\u5f0f\nnbiot.getBootCFUN()\n", "prefix": "nbiot.getBootCFUN"}, "nbiot.setPSM": {"body": "nbiot.setPSM(${1:psmMode},${2:tauTimeS},${3:activeTimeS})", "description": "nbiot.setPSM(psmMode,tauTimeS,activeTimeS) - \u8bbe\u7f6ePSM\u53c2\u6570\n\u4f20\u5165\u503c\uff1a\nint psm\u6a21\u5f0f, CMI_MM_DISABLE_PSM(0)/CMI_MM_ENABLE_PSM(1)/CMI_MM_DISCARD_PSM(2)\nint TAU time(unit: S)---related to T3412\nint active time(unit: S)---related to T3324\n\u8fd4\u56de\u503c\uff1a\nboolean \u8bbe\u7f6e\u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- \u8bbe\u7f6ePSM\nnbiot.setPSM(1, 60, 120)\n", "prefix": "nbiot.setPSM"}, "nbiot.setEDRX": {"body": "nbiot.setEDRX(${1:modeVal},${2:actType},${3:reqEdrxValueMs})", "description": "nbiot.setEDRX(modeVal,actType,reqEdrxValueMs) - \u8bbe\u7f6eEDRX\u53c2\u6570\n\u4f20\u5165\u503c\uff1a\nint \u6a21\u5f0f,CMI_MM_DISABLE_EDRX = 0/CMI_MM_ENABLE_EDRX_AND_DISABLE_IND = 1/CMI_MM_ENABLE_EDRX_AND_ENABLE_IND = 2/CMI_MM_DISCARD_EDRX = 3\nint \u53ef\u9009\u503c, 0\u6216\u80055. CMI_MM_EDRX_NO_ACT_OR_NOT_USE_EDRX = 0/CMI_MM_EDRX_NB_IOT = 5\nint edrx\u503c,4\u4e2a\u5b57\u8282\u957f\u5ea6\u4e8c\u8fdb\u5236\u5b57\u7b26\u4e32\n\u8fd4\u56de\u503c\uff1a\nboolean \u8bbe\u7f6e\u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- \u8bbe\u7f6eEDRX\nnbiot.setPSM(1, 5, \"0101\")\n", "prefix": "nbiot.setEDRX"}, "nbiot.getPSM": {"body": "nbiot.getPSM()", "description": "nbiot.getPSM() - \u83b7\u53d6PSM\u53c2\u6570\n\u8fd4\u56de\u503c\uff1a\nint psm\u6a21\u5f0f, CMI_MM_DISABLE_PSM(0)/CMI_MM_ENABLE_PSM(1)/CMI_MM_DISCARD_PSM(2)\nint TAU time(unit: S)---related to T3412\nint active time(unit: S)---related to T3324\n\u4f8b\u5b50\uff1a\n-- \u83b7\u53d6PSM\nlog.info(\"psm\", nbiot.getPSM())\n", "prefix": "nbiot.getPSM"}, "nbiot.getEDRX": {"body": "nbiot.getEDRX()", "description": "nbiot.getEDRX() - \u83b7\u53d6EDRX\u53c2\u6570\n\u8fd4\u56de\u503c\uff1a\nint \u6a21\u5f0f,CMI_MM_DISABLE_EDRX = 0/CMI_MM_ENABLE_EDRX_AND_DISABLE_IND = 1/CMI_MM_ENABLE_EDRX_AND_ENABLE_IND = 2/CMI_MM_DISCARD_EDRX = 3\nint \u53ef\u9009\u503c, 0\u6216\u80055. CMI_MM_EDRX_NO_ACT_OR_NOT_USE_EDRX = 0/CMI_MM_EDRX_NB_IOT = 5\nint edrx\u503c,\u5355\u4f4d\u6beb\u79d2\n\u4f8b\u5b50\uff1a\n-- \u83b7\u53d6EDRX\nlog.info(\"edrx\", nbiot.getEDRX())\n", "prefix": "nbiot.getEDRX"}, "nbiot.setTZ": {"body": "nbiot.setTZ(${1:tz},${2:auto})", "description": "nbiot.setTZ(tz, auto) - \u8bbe\u7f6e\u65f6\u533a\u53c2\u6570\n\u4f20\u5165\u503c\uff1a\nint \u65f6\u533a\u53c2\u6570,\u53ef\u9009, \u5355\u4f4d\u662f1/4\u65f6\u533a, \u9ed8\u8ba4\u4e3a \u4e1c8\u533a, \u5bf9\u5e94\u7684\u503c\u4e3a32\nboolean \u662f\u5426\u81ea\u52a8\u8bbe\u7f6e\u65f6\u533a,\u53ef\u9009, \u9ed8\u8ba4\u4e3atrue\n\u4f8b\u5b50\uff1a\n-- \u8bbe\u7f6e\u4e3a\u4e1c8\u533a,\u7981\u7528\u81ea\u52a8\u66f4\u65b0\u65f6\u533a\u529f\u80fd\nnbiot.setTZ(32, false)\n@usage \n-- \u542f\u7528\u81ea\u52a8\u66f4\u65b0\u65f6\u533a\u529f\u80fd\nnbiot.setTZ(nil, true)\n", "prefix": "nbiot.setTZ"}, "nbiot.getTZ": {"body": "nbiot.getTZ()", "description": "nbiot.getTZ() - \u83b7\u53d6\u65f6\u533a\u53c2\u6570\n\u8fd4\u56de\u503c\uff1a\nint \u65f6\u533a\u53c2\u6570,\u5355\u4f4d1/4\u65f6\u533a, \u9ed8\u8ba4\u4e1c8\u533a, \u503c\u4e3a32\nboolean \u81ea\u52a8\u8bbe\u7f6e\u65f6\u533a,\u9ed8\u8ba4\u4e3atrue\n\u4f8b\u5b50\uff1a\n-- \u83b7\u53d6\u65f6\u533a\u53c2\u6570\nlog.info(\"timezone\", nbiot.getTZ())\n", "prefix": "nbiot.getTZ"}, "nbiot.setBands": {"body": "nbiot.setBands(${1:modes})", "description": "nbiot.setBands(modes) - \u8bbe\u7f6eBand\u6a21\u5f0f(\u6682\u4e0d\u53ef\u7528)\n\u4f20\u5165\u503c\uff1a\nany \u6a21\u5f0f,\u9700\u8981\u662f\u4e00\u4e2atable\u5f62\u5f0f\u7684\u6570\u7ec4,\u5fc5\u987b\u4f20\u5165\n\u8fd4\u56de\u503c\uff1a\nboolean \u8bbe\u7f6e\u7ed3\u679c\n\u4f8b\u5b50\uff1a\n-- \u4ec5\u641c\u7d22band 8\nlog.info(\"band\", nbiot.setBands({8}))\n", "prefix": "nbiot.setBands"}, "nbiot.getBands": {"body": "nbiot.getBands()", "description": "nbiot.getBands() - \u83b7\u53d6\u5f53\u524d\u4f7f\u7528\u7684Band\u6a21\u5f0f(\u6682\u4e0d\u53ef\u7528)\n\u8fd4\u56de\u503c\uff1a\ntable \u6240\u8bbe\u7f6e\u7684band\u7684\u6570\u7ec4\n\u4f8b\u5b50\uff1a\n-- \u4ec5\u641c\u7d22band 8\nlog.info(\"band\", json.encode(nbiot.getBands()))\n", "prefix": "nbiot.getBands"}, "nbiot.setEDRXPtw": {"body": "nbiot.setEDRXPtw(${1:val})", "description": "nbiot.setEDRXPtw(val) - \u8bbe\u7f6eEDRX PTW\u53c2\u6570\n\u4f20\u5165\u503c\uff1a\nint \u9700\u8981\u8bbe\u7f6e\u7684\u503c\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- \u8bbe\u7f6ePTW\u503c\u4e3aX\nnbiot.setEDRXPtw(val)\n-- \u53ef\u9009\u503c\nreqPtwValue:\nNB-S1 mode\nThe field contains the PTW value in seconds for NB-S1 mode.The PTW value is used\nas specified in 3GPP TS 23.682 [133a].The PTW value is derived as follows:\nbit\n Paging Time Window length\n0 0 0 0 2,56 seconds\n0 0 0 1 5,12 seconds\n0 0 1 0 7,68 seconds\n0 0 1 1 10,24 seconds\n0 1 0 0 12,8 seconds\n0 1 0 1 15,36 seconds\n0 1 1 0 17,92 seconds\n0 1 1 1 20,48 seconds\n1 0 0 0 23,04 seconds\n1 0 0 1 25,6 seconds\n1 0 1 0 28,16 seconds\n1 0 1 1 30,72 seconds\n1 1 0 0 33,28 seconds\n1 1 0 1 35,84 seconds\n1 1 1 0 38,4 seconds\n1 1 1 1 40,96 seconds\n \n", "prefix": "nbiot.setEDRXPtw"}, "nbiot.getEDRXPtw": {"body": "nbiot.getEDRXPtw()", "description": "nbiot.getEDRXPtw() - \u83b7\u53d6EDRX PTW\u53c2\u6570\n\u8fd4\u56de\u503c\uff1a\nint ptw\u503c\n\u4f8b\u5b50\uff1a\n-- \u6253\u5370PTW\u503c\nlog.info(\"ptw\", nbiot.getEDRXPtw())\n", "prefix": "nbiot.getEDRXPtw"}, "nbiot.ticks": {"body": "nbiot.ticks()", "description": "nbiot.ticks() - \u83b7\u53d6tick\u8ba1\u6570\n\u8fd4\u56de\u503c\uff1a\nint tick\u8ba1\u6570\n\u4f8b\u5b50\uff1a\n-- \u6253\u5370PTW\u503c\nlog.info(\"tick\", nbiot.ticks())\n", "prefix": "nbiot.ticks"}, "nes.init": {"body": "nes.init(${1:file_path})", "description": "nes.init(file_path) - nes\u6a21\u62df\u5668\u521d\u59cb\u5316\n\u4f20\u5165\u503c\uff1a\nstring file_path \u6587\u4ef6\u8def\u5f84\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\nnes.init(\"/luadb/super_mario.nes\")\n", "prefix": "nes.init"}, "nes.key": {"body": "nes.key(${1:key},${2:val})", "description": "nes.key(key,val) - nes\u6a21\u62df\u5668\u521d\u59cb\u5316\n\u4f20\u5165\u503c\uff1a\nnumber key \u6309\u952e\nnumber val \u72b6\u6001 1\u6309\u4e0b 0\u62ac\u8d77\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\nnes.init(\"/luadb/super_mario.nes\")\n", "prefix": "nes.key"}, "nimble.init": {"body": "nimble.init(${1:name})", "description": "nimble.init(name) - \u521d\u59cb\u5316BLE\u4e0a\u4e0b\u6587,\u5f00\u59cb\u5bf9\u5916\u5e7f\u64ad/\u626b\u63cf\n\u4f20\u5165\u503c\uff1a\nstring \u84dd\u7259\u8bbe\u5907\u540d\u79f0,\u53ef\u9009,\u5efa\u8bae\u586b\u5199\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u4e0e\u5426\n\u4f8b\u5b50\uff1a\n-- \u53c2\u8003 demo/nimble\n-- \u672c\u51fd\u6570\u5bf9\u6240\u6709\u6a21\u5f0f\u90fd\u9002\u7528\n", "prefix": "nimble.init"}, "nimble.deinit": {"body": "nimble.deinit()", "description": "nimble.deinit() - \u5173\u95edBLE\u4e0a\u4e0b\u6587\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u4e0e\u5426\n\u4f8b\u5b50\uff1a\n-- \u4ec5\u90e8\u5206\u8bbe\u5907\u652f\u6301,\u5f53\u524d\u53ef\u80fd\u90fd\u4e0d\u652f\u6301\n-- \u672c\u51fd\u6570\u5bf9\u6240\u6709\u6a21\u5f0f\u90fd\u9002\u7528\n", "prefix": "nimble.deinit"}, "nimble.mode": {"body": "nimble.mode(${1:tp})", "description": "nimble.mode(tp) - \u8bbe\u7f6e\u6a21\u5f0f\n\u4f20\u5165\u503c\uff1a\nint \u6a21\u5f0f, \u9ed8\u8ba4server/peripheral, \u53ef\u9009 client/central\u6a21\u5f0f nimble.MODE_BLE_CLIENT\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u4e0e\u5426\n\u4f8b\u5b50\uff1a\n-- \u53c2\u8003 demo/nimble\n-- \u5fc5\u987b\u5728nimble.init()\u4e4b\u524d\u8c03\u7528\n-- nimble.mode(nimble.MODE_BLE_CLIENT) -- \u7b80\u79f0\u4ece\u673a\u6a21\u5f0f,\u672a\u5b8c\u5584\n", "prefix": "nimble.mode"}, "nimble.connok": {"body": "nimble.connok()", "description": "nimble.connok() - \u662f\u5426\u5df2\u7ecf\u5efa\u7acb\u8fde\u63a5\n\u8fd4\u56de\u503c\uff1a\nbool \u5df2\u8fde\u63a5\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\nlog.info(\"ble\", \"connected?\", nimble.connok())\n-- \u4ece\u673aperipheral\u6a21\u5f0f, \u8bbe\u5907\u662f\u5426\u5df2\u7ecf\u88ab\u8fde\u63a5\n-- \u4e3b\u673acentral\u6a21\u5f0f, \u662f\u5426\u5df2\u7ecf\u8fde\u63a5\u5230\u8bbe\u5907\n-- ibeacon\u6a21\u5f0f, \u65e0\u610f\u4e49\n", "prefix": "nimble.connok"}, "nimble.send_msg": {"body": "nimble.send_msg(${1:conn},${2:handle},${3:data})", "description": "nimble.send_msg(conn, handle, data) - \u53d1\u9001\u4fe1\u606f\n\u4f20\u5165\u503c\uff1a\nint \u8fde\u63a5id, \u5f53\u524d\u56fa\u5b9a\u586b1\nint \u5904\u7406id, \u5f53\u524d\u56fa\u5b9a\u586b0\nstring \u6570\u636e\u5b57\u7b26\u4e32,\u53ef\u5305\u542b\u4e0d\u53ef\u89c1\u5b57\u7b26\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u4e0e\u5426\n\u4f8b\u5b50\uff1a\n-- \u53c2\u8003 demo/nimble\n-- \u672c\u51fd\u6570\u5bf9peripheral/\u4ece\u673a\u6a21\u5f0f\u9002\u7528\n", "prefix": "nimble.send_msg"}, "nimble.setUUID": {"body": "nimble.setUUID(${1:tp},${2:addr})", "description": "nimble.setUUID(tp, addr) - \u8bbe\u7f6eserver/peripheral\u7684UUID\n\u4f20\u5165\u503c\uff1a\nstring \u914d\u7f6e\u5b57\u7b26\u4e32,\u540e\u9762\u7684\u793a\u4f8b\u6709\u8bf4\u660e\nstring \u5730\u5740\u5b57\u7b26\u4e32\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u4e0e\u5426\n\u4f8b\u5b50\uff1a\n-- \u53c2\u8003 demo/nimble, 2023-02-25\u4e4b\u540e\u7f16\u8bd1\u7684\u56fa\u4ef6\u652f\u6301\u672cAPI\n-- \u5fc5\u987b\u5728nimble.init()\u4e4b\u524d\u8c03\u7528\n-- \u672c\u51fd\u6570\u5bf9peripheral/\u4ece\u673a\u6a21\u5f0f\u9002\u7528\n\n-- \u8bbe\u7f6eSERVER/Peripheral\u6a21\u5f0f\u4e0b\u7684UUID, \u652f\u6301\u8bbe\u7f6e3\u4e2a\n-- \u5730\u5740\u652f\u6301 2/4/16\u5b57\u8282, \u9700\u8981\u4e8c\u8fdb\u5236\u6570\u636e\n-- 2\u5b57\u8282\u5730\u5740\u793a\u4f8b: AABB, \u5199 string.fromHex(\"AABB\") ,\u6216\u8005 string.char(0xAA, 0xBB)\n-- 4\u5b57\u8282\u5730\u5740\u793a\u4f8b: AABBCCDD , \u5199 string.fromHex(\"AABBCCDD\") ,\u6216\u8005 string.char(0xAA, 0xBB, 0xCC, 0xDD)\nnimble.setUUID(\"srv\", string.fromHex(\"380D\")) -- \u670d\u52a1\u4e3bUUID , \u9ed8\u8ba4\u503c 180D\nnimble.setUUID(\"write\", string.fromHex(\"FF31\")) -- \u5f80\u672c\u8bbe\u5907\u5199\u6570\u636e\u7684UUID, \u9ed8\u8ba4\u503c FFF1\nnimble.setUUID(\"indicate\", string.fromHex(\"FF32\")) -- \u8ba2\u9605\u672c\u8bbe\u5907\u7684\u6570\u636e\u7684UUID,\u9ed8\u8ba4\u503c FFF2\n", "prefix": "nimble.setUUID"}, "nimble.mac": {"body": "nimble.mac()", "description": "nimble.mac() - \u83b7\u53d6\u84dd\u7259MAC\n\u8fd4\u56de\u503c\uff1a\nstring \u84dd\u7259MAC\u5730\u5740,6\u5b57\u8282\n\u4f8b\u5b50\uff1a\n-- \u53c2\u8003 demo/nimble, 2023-02-25\u4e4b\u540e\u7f16\u8bd1\u7684\u56fa\u4ef6\u652f\u6301\u672cAPI\n-- \u672c\u51fd\u6570\u5bf9\u6240\u6709\u6a21\u5f0f\u90fd\u9002\u7528\nlocal mac = nimble.mac()\nlog.info(\"ble\", \"mac\", mac and mac:toHex() or \"Unknwn\")\n", "prefix": "nimble.mac"}, "nimble.sendNotify": {"body": "nimble.sendNotify(${1:srv_uuid},${2:chr_uuid},${3:data})", "description": "nimble.sendNotify(srv_uuid, chr_uuid, data) - \u53d1\u9001notify\n\u4f20\u5165\u503c\uff1a\nstring \u670d\u52a1\u7684UUID,\u9884\u7559,\u5f53\u524d\u586bnil\u5c31\u884c\nstring \u7279\u5f81\u7684UUID,\u5fc5\u987b\u586b\u5199\nstring \u6570\u636e, \u5fc5\u586b, \u8ddfMTU\u5927\u5c0f\u76f8\u5173, \u4e00\u822c\u4e0d\u8981\u8d85\u8fc7256\u5b57\u8282\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- \u672cAPI\u4e8e 2023.07.31 \u65b0\u589e\n-- \u672c\u51fd\u6570\u5bf9peripheral\u6a21\u5f0f\u9002\u7528\nnimble.sendNotify(nil, string.fromHex(\"FF01\"), string.char(0x31, 0x32, 0x33, 0x34, 0x35))\n", "prefix": "nimble.sendNotify"}, "nimble.sendIndicate": {"body": "nimble.sendIndicate(${1:srv_uuid},${2:chr_uuid},${3:data})", "description": "nimble.sendIndicate(srv_uuid, chr_uuid, data) - \u53d1\u9001indicate\n\u4f20\u5165\u503c\uff1a\nstring \u670d\u52a1\u7684UUID,\u9884\u7559,\u5f53\u524d\u586bnil\u5c31\u884c\nstring \u7279\u5f81\u7684UUID,\u5fc5\u987b\u586b\u5199\nstring \u6570\u636e, \u5fc5\u586b, \u8ddfMTU\u5927\u5c0f\u76f8\u5173, \u4e00\u822c\u4e0d\u8981\u8d85\u8fc7256\u5b57\u8282\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- \u672cAPI\u4e8e 2023.07.31 \u65b0\u589e\n-- \u672c\u51fd\u6570\u5bf9peripheral\u6a21\u5f0f\u9002\u7528\nnimble.sendIndicate(nil, string.fromHex(\"FF01\"), string.char(0x31, 0x32, 0x33, 0x34, 0x35))\n", "prefix": "nimble.sendIndicate"}, "nimble.advParams": {"body": "nimble.advParams(${1:conn_mode},${2:disc_mode},${3:itvl_min},${4:itvl_max},${5:channel_map},${6:filter_policy},${7:high_duty_cycle})", "description": "nimble.advParams(conn_mode, disc_mode, itvl_min, itvl_max, channel_map, filter_policy, high_duty_cycle) - \u8bbe\u7f6e\u5e7f\u64ad\u53c2\u6570\n\u4f20\u5165\u503c\uff1a\nint \u5e7f\u64ad\u6a21\u5f0f, 0 - \u4e0d\u53ef\u8fde\u63a5, 1 - \u5b9a\u5411\u8fde\u63a5, 2 - \u672a\u5b9a\u5411\u8fde\u63a5, \u9ed8\u8ba40\nint \u53d1\u73b0\u6a21\u5f0f, 0 - \u4e0d\u53ef\u53d1\u73b0, 1 - \u9650\u5236\u53d1\u73b0, 3 - \u901a\u7528\u53d1\u73b0, \u9ed8\u8ba40\nint \u6700\u5c0f\u5e7f\u64ad\u95f4\u9694, 0 - \u4f7f\u7528\u9ed8\u8ba4\u503c, \u8303\u56f4 1 - 65535, \u5355\u4f4d0.625ms, \u9ed8\u8ba40\nint \u6700\u5927\u5e7f\u64ad\u95f4\u9694, 0 - \u4f7f\u7528\u9ed8\u8ba4\u503c, \u8303\u56f4 1 - 65535, \u5355\u4f4d0.625ms, \u9ed8\u8ba40\nint \u5e7f\u64ad\u901a\u9053, \u9ed8\u8ba40, \u4e00\u822c\u4e0d\u9700\u8981\u8bbe\u7f6e\nint \u8fc7\u6ee4\u89c4\u5219, \u9ed8\u8ba40, \u4e00\u822c\u4e0d\u9700\u8981\u8bbe\u7f6e\nint \u5f53\u5e7f\u64ad\u6a21\u5f0f\u4e3a\"\u5b9a\u5411\u8fde\u63a5\"\u65f6,\u662f\u5426\u4f7f\u7528\u9ad8\u5360\u7a7a\u6bd4\u6a21\u5f0f, \u9ed8\u8ba40, \u53ef\u90091\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n-- \u5f53\u524d\u4ec5ibeacon\u6a21\u5f0f/peripheral/\u4ece\u673a\u53ef\u4f7f\u7528\n-- \u4f8b\u5982\u8bbe\u7f6e \u4e0d\u53ef\u8fde\u63a5 + \u9650\u5236\u53d1\u73b0\n-- \u9700\u8981\u5728nimble.init\u4e4b\u524d\u8bbe\u7f6e\u597d\nnimble.advParams(0, 1)\n-- \u6ce8\u610fperipheral\u6a21\u5f0f\u4e0b\u81ea\u52a8\u914d\u7f6e conn_mode \u548c disc_mode\n", "prefix": "nimble.advParams"}, "nimble.setChr": {"body": "nimble.setChr(${1:index},${2:uuid},${3:flags})", "description": "nimble.setChr(index, uuid, flags) - \u8bbe\u7f6echr\u7684\u7279\u5f81\n\u4f20\u5165\u503c\uff1a\nint chr\u7684\u7d22\u5f15, \u9ed8\u8ba40-3\nint chr\u7684UUID, \u53ef\u4ee5\u662f2/4/16\u5b57\u8282\nint chr\u7684FLAGS, \u8bf7\u67e5\u9605\u5e38\u91cf\u8868\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n-- \u4ec5peripheral/\u4ece\u673a\u53ef\u4f7f\u7528\nnimble.setChr(0, string.fromHex(\"FF01\"), nimble.CHR_F_WRITE_NO_RSP | nimble.CHR_F_NOTIFY)\nnimble.setChr(1, string.fromHex(\"FF02\"), nimble.CHR_F_READ | nimble.CHR_F_NOTIFY)\nnimble.setChr(2, string.fromHex(\"FF03\"), nimble.CHR_F_WRITE_NO_RSP)\n-- \u53ef\u67e5\u9605 demo/nimble/kt6368a\n", "prefix": "nimble.setChr"}, "nimble.config": {"body": "nimble.config(${1:id},${2:value})", "description": "nimble.config(id, value) - \u8bbe\u7f6echr\u7684\u7279\u5f81\n\u4f20\u5165\u503c\uff1a\nint \u914d\u7f6e\u7684id,\u8bf7\u67e5\u9605\u5e38\u91cf\u8868\nany \u6839\u636e\u914d\u7f6e\u7684\u4e0d\u540c, \u6709\u4e0d\u540c\u7684\u53ef\u9009\u503c\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n-- \u672c\u51fd\u6570\u5728\u4efb\u610f\u6a21\u5f0f\u53ef\u7528\n-- \u672cAPI\u4e8e 2023.07.31 \u65b0\u589e\n-- \u4f8b\u5982\u8bbe\u7f6e\u5730\u5740\u8f6c\u6362\u7684\u5927\u5c0f\u7aef, \u9ed8\u8ba4\u662f0, \u517c\u5bb9\u8001\u7684\u4ee3\u7801\n-- \u8bbe\u7f6e\u62101, \u670d\u52a1UUID\u548cchr\u7684UUID\u66f4\u76f4\u89c2\nnimble.config(nimble.CFG_ADDR_ORDER, 1)\n", "prefix": "nimble.config"}, "nimble.ibeacon": {"body": "nimble.ibeacon(${1:data},${2:major},${3:minor},${4:measured_power})", "description": "nimble.ibeacon(data, major, minor, measured_power) - \u914d\u7f6eiBeacon\u7684\u53c2\u6570,\u4ec5iBeacon\u6a21\u5f0f\u53ef\u7528\n\u4f20\u5165\u503c\uff1a\nstring \u6570\u636e, \u5fc5\u987b\u662f16\u5b57\u8282\nint \u4e3b\u7248\u672c\u53f7,\u9ed8\u8ba42, \u53ef\u9009, \u8303\u56f4 0 ~ 65536\nint \u6b21\u7248\u672c\u53f7,\u9ed8\u8ba410,\u53ef\u9009, \u8303\u56f4 0 ~ 65536\nint \u540d\u4e49\u529f\u7387, \u9ed8\u8ba40, \u8303\u56f4 -126 \u5230 20 \n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- \u53c2\u8003 demo/nimble, 2023-02-25\u4e4b\u540e\u7f16\u8bd1\u7684\u56fa\u4ef6\u652f\u6301\u672cAPI\n-- \u672c\u51fd\u6570\u5bf9ibeacon\u6a21\u5f0f\u9002\u7528\nnimble.ibeacon(data, 2, 10, 0)\nnimble.init()\n", "prefix": "nimble.ibeacon"}, "nimble.advData": {"body": "nimble.advData(${1:data},${2:flags})", "description": "nimble.advData(data, flags) - \u914d\u7f6e\u5e7f\u64ad\u6570\u636e,\u4ec5iBeacon\u6a21\u5f0f\u53ef\u7528\n\u4f20\u5165\u503c\uff1a\nstring \u5e7f\u64ad\u6570\u636e, \u5f53\u524d\u6700\u9ad8128\u5b57\u8282\nint \u5e7f\u64ad\u6807\u8bc6, \u53ef\u9009, \u9ed8\u8ba4\u503c\u662f 0x06,\u5373 \u4e0d\u652f\u6301\u4f20\u7edf\u84dd\u7259(0x04) + \u666e\u901a\u53d1\u73b0\u6a21\u5f0f(0x02)\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- \u53c2\u8003 demo/nimble/adv_free, 2023-03-18\u4e4b\u540e\u7f16\u8bd1\u7684\u56fa\u4ef6\u652f\u6301\u672cAPI\n-- \u672c\u51fd\u6570\u5bf9ibeacon\u6a21\u5f0f\u9002\u7528\n-- \u6570\u636e\u6765\u6e90\u53ef\u4ee5\u591a\u79cd\u591a\u6837\nlocal data = string.fromHex(\"123487651234876512348765123487651234876512348765\")\n-- local data = crypto.trng(25)\n-- local data = string.char(0x11, 0x13, 0xA3, 0x5A, 0x11, 0x13, 0xA3, 0x5A, 0x11, 0x13, 0xA3, 0x5A, 0x11, 0x13, 0xA3, 0x5A)\nnimble.advData(data)\nnimble.init()\n\n-- nimble\u652f\u6301\u5728init\u4e4b\u540e\u7684\u4efb\u610f\u65f6\u523b\u518d\u6b21\u8c03\u7528, \u4ee5\u5b9e\u73b0\u6570\u636e\u66f4\u65b0\n-- \u4f8b\u5982 1\u5206\u949f\u53d8\u4e00\u6b21\nwhile 1 do\n sys.wait(60000)\n local data = crypto.trng(25)\n nimble.advData(data)\nend\n", "prefix": "nimble.advData"}, "nimble.scan": {"body": "nimble.scan(${1:timeout})", "description": "nimble.scan(timeout) - \u626b\u63cf\u4ece\u673a\n\u4f20\u5165\u503c\uff1a\nint \u8d85\u65f6\u65f6\u95f4,\u5355\u4f4d\u79d2,\u9ed8\u8ba428\u79d2\n\u8fd4\u56de\u503c\uff1a\nbool \u542f\u52a8\u626b\u63cf\u6210\u529f\u4e0e\u5426\n\u4f8b\u5b50\uff1a\n-- \u53c2\u8003 demo/nimble/scan\n-- \u672c\u51fd\u6570\u5bf9central/\u4e3b\u673a\u6a21\u5f0f\u9002\u7528\n-- \u672c\u51fd\u6570\u4f1a\u76f4\u63a5\u8fd4\u56de, \u7136\u540e\u901a\u8fc7\u5f02\u6b65\u56de\u8c03\u8fd4\u56de\u7ed3\u679c\n\n-- \u8c03\u7528\u672c\u51fd\u6570\u524d, \u9700\u8981\u5148\u786e\u4fdd\u5df2\u7ecfnimble.init()\nnimble.scan()\n-- timeout\u53c2\u6570\u4e8e 2023.7.11 \u6dfb\u52a0\n", "prefix": "nimble.scan"}, "nimble.connect": {"body": "nimble.connect(${1:mac})", "description": "nimble.connect(mac) - \u8fde\u63a5\u5230\u4ece\u673a\n\u4f20\u5165\u503c\uff1a\nstring \u8bbe\u5907\u7684MAC\u5730\u5740\n\u8fd4\u56de\u503c\uff1a\nbool \u542f\u52a8\u8fde\u63a5\u6210\u529f\u4e0e\u5426\n\u4f8b\u5b50\uff1a\n-- \u672c\u51fd\u6570\u5bf9central/\u4e3b\u673a\u6a21\u5f0f\u9002\u7528\n-- \u672c\u51fd\u6570\u4f1a\u76f4\u63a5\u8fd4\u56de, \u7136\u540e\u901a\u8fc7\u5f02\u6b65\u56de\u8c03\u8fd4\u56de\u7ed3\u679c\n", "prefix": "nimble.connect"}, "nimble.disconnect": {"body": "nimble.disconnect()", "description": "nimble.disconnect() - \u65ad\u5f00\u4e0e\u4ece\u673a\u7684\u8fde\u63a5\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n-- \u672c\u51fd\u6570\u5bf9central/\u4e3b\u673a\u6a21\u5f0f\u9002\u7528\n-- \u672c\u51fd\u6570\u4f1a\u76f4\u63a5\u8fd4\u56de\n", "prefix": "nimble.disconnect"}, "nimble.discSvr": {"body": "nimble.discSvr()", "description": "nimble.discSvr() - \u626b\u63cf\u4ece\u673a\u7684\u670d\u52a1\u5217\u8868\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n-- \u672c\u51fd\u6570\u5bf9central/\u4e3b\u673a\u6a21\u5f0f\u9002\u7528\n-- \u672c\u51fd\u6570\u4f1a\u76f4\u63a5\u8fd4\u56de,\u7136\u540e\u5f02\u6b65\u8fd4\u56de\u7ed3\u679c\n-- \u8fd9\u4e2aAPI\u901a\u5e38\u4e0d\u9700\u8981\u8c03\u7528, \u5728\u8fde\u63a5\u4ece\u673a\u5b8c\u6210\u540e,\u4f1a\u4e3b\u52a8\u8c03\u7528\u4e00\u6b21\n", "prefix": "nimble.discSvr"}, "nimble.listSvr": {"body": "nimble.listSvr()", "description": "nimble.listSvr() - \u83b7\u53d6\u4ece\u673a\u7684\u670d\u52a1\u5217\u8868\n\u8fd4\u56de\u503c\uff1a\ntable \u670d\u52a1UUID\u7684\u6570\u7ec4\n\u4f8b\u5b50\uff1a\n-- \u672c\u51fd\u6570\u5bf9central/\u4e3b\u673a\u6a21\u5f0f\u9002\u7528\n", "prefix": "nimble.listSvr"}, "nimble.discChr": {"body": "nimble.discChr(${1:svr_uuid})", "description": "nimble.discChr(svr_uuid) - \u626b\u63cf\u4ece\u673a\u7684\u6307\u5b9a\u670d\u52a1\u7684\u7279\u5f81\u503c\n\u4f20\u5165\u503c\uff1a\nstring \u6307\u5b9a\u670d\u52a1\u7684UUID\u503c\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u542f\u52a8\u626b\u63cf\u4e0e\u5426\n\u4f8b\u5b50\uff1a\n-- \u672c\u51fd\u6570\u5bf9central/\u4e3b\u673a\u6a21\u5f0f\u9002\u7528\n", "prefix": "nimble.discChr"}, "nimble.listChr": {"body": "nimble.listChr(${1:svr_uuid})", "description": "nimble.listChr(svr_uuid) - \u83b7\u53d6\u4ece\u673a\u7684\u6307\u5b9a\u670d\u52a1\u7684\u7279\u5f81\u503c\u5217\u8868\n\u4f20\u5165\u503c\uff1a\nstring \u6307\u5b9a\u670d\u52a1\u7684UUID\u503c\n\u8fd4\u56de\u503c\uff1a\ntable \u7279\u5f81\u503c\u5217\u8868,\u5305\u542bUUID\u548cflags\n\u4f8b\u5b50\uff1a\n-- \u672c\u51fd\u6570\u5bf9central/\u4e3b\u673a\u6a21\u5f0f\u9002\u7528\n", "prefix": "nimble.listChr"}, "nimble.discDsc": {"body": "nimble.discDsc(${1:svr_uuid},${2:chr_uuid})", "description": "nimble.discDsc(svr_uuid, chr_uuid) - \u626b\u63cf\u4ece\u673a\u7684\u6307\u5b9a\u670d\u52a1\u7684\u7279\u5f81\u503c\u7684\u5176\u4ed6\u5c5e\u6027\n\u4f20\u5165\u503c\uff1a\nstring \u6307\u5b9a\u670d\u52a1\u7684UUID\u503c\nstring \u7279\u5f81\u503c\u7684UUID\u503c\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u542f\u52a8\u626b\u63cf\u4e0e\u5426\n\u4f8b\u5b50\uff1a\n-- \u672c\u51fd\u6570\u5bf9central/\u4e3b\u673a\u6a21\u5f0f\u9002\u7528\n", "prefix": "nimble.discDsc"}, "nimble.writeChr": {"body": "nimble.writeChr(${1:svr_uuid},${2:chr_uuid})", "description": "nimble.writeChr(svr_uuid, chr_uuid) - \u4ece\u6307\u5b9a\u7684\u670d\u52a1\u7684\u6307\u5b9a\u7279\u5f81\u503c\u8bfb\u53d6\u6570\u636e(\u5f02\u6b65)\n\u4f20\u5165\u503c\uff1a\nstring \u6307\u5b9a\u670d\u52a1\u7684UUID\u503c\nstring \u6307\u5b9a\u7279\u5f81\u503c\u7684UUID\u503c\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u542f\u52a8\u5199\u5165\u4e0e\u5426\n\u4f8b\u5b50\uff1a\n-- \u672c\u51fd\u6570\u5bf9central/\u4e3b\u673a\u6a21\u5f0f\u9002\u7528\n-- \u8be6\u7ec6\u7528\u6cd5\u8bf7\u53c2\u6570 demo/nimble/central\n", "prefix": "nimble.writeChr"}, "nimble.subChr": {"body": "nimble.subChr(${1:svr_uuid},${2:chr_uuid})", "description": "nimble.subChr(svr_uuid, chr_uuid) - \u8ba2\u9605\u6307\u5b9a\u7684\u670d\u52a1\u7684\u6307\u5b9a\u7279\u5f81\u503c\n\u4f20\u5165\u503c\uff1a\nstring \u6307\u5b9a\u670d\u52a1\u7684UUID\u503c\nstring \u6307\u5b9a\u7279\u5f81\u503c\u7684UUID\u503c\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u542f\u52a8\u8ba2\u9605\u4e0e\u5426\n\u4f8b\u5b50\uff1a\n-- \u672c\u51fd\u6570\u5bf9central/\u4e3b\u673a\u6a21\u5f0f\u9002\u7528\n-- \u8be6\u7ec6\u7528\u6cd5\u8bf7\u53c2\u6570 demo/nimble/central\n", "prefix": "nimble.subChr"}, "nimble.unsubChr": {"body": "nimble.unsubChr(${1:svr_uuid},${2:chr_uuid})", "description": "nimble.unsubChr(svr_uuid, chr_uuid) - \u53d6\u6d88\u8ba2\u9605\u6307\u5b9a\u7684\u670d\u52a1\u7684\u6307\u5b9a\u7279\u5f81\u503c\n\u4f20\u5165\u503c\uff1a\nstring \u6307\u5b9a\u670d\u52a1\u7684UUID\u503c\nstring \u6307\u5b9a\u7279\u5f81\u503c\u7684UUID\u503c\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u542f\u52a8\u53d6\u6d88\u8ba2\u9605\u4e0e\u5426\n\u4f8b\u5b50\uff1a\n-- \u672c\u51fd\u6570\u5bf9central/\u4e3b\u673a\u6a21\u5f0f\u9002\u7528\n-- \u8be6\u7ec6\u7528\u6cd5\u8bf7\u53c2\u6570 demo/nimble/central\n", "prefix": "nimble.unsubChr"}, "otp.read": {"body": "otp.read(${1:zone},${2:offset},${3:len})", "description": "otp.read(zone, offset, len) - \u8bfb\u53d6\u6307\u5b9aOTP\u533a\u57df\u8bfb\u53d6\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nint \u533a\u57df, \u901a\u5e38\u4e3a0/1/2/3, \u4e0e\u5177\u4f53\u786c\u4ef6\u76f8\u5173\nint \u504f\u79fb\u91cf\nint \u8bfb\u53d6\u957f\u5ea6, \u5355\u4f4d\u5b57\u8282, \u5fc5\u987b\u662f4\u7684\u500d\u6570, \u4e0d\u80fd\u8d85\u8fc74096\u5b57\u8282\n\u8fd4\u56de\u503c\uff1a\nstring \u6210\u529f\u8fd4\u56de\u5b57\u7b26\u4e32, \u5426\u5219\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\n\nlocal otpdata = otp.read(0, 0, 64)\nif otpdata then\n log.info(\"otp\", otpdata:toHex())\nend\n", "prefix": "otp.read"}, "otp.write": {"body": "otp.write(${1:zone},${2:data},${3:offset})", "description": "otp.write(zone, data, offset) - \u5f80\u6307\u5b9aOTP\u533a\u57df\u5199\u5165\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nint \u533a\u57df, \u901a\u5e38\u4e3a0/1/2/3, \u4e0e\u5177\u4f53\u786c\u4ef6\u76f8\u5173\nstring \u6570\u636e, \u957f\u5ea6\u5fc5\u987b\u662f4\u4e2a\u500d\u6570\nint \u504f\u79fb\u91cf\n\u8fd4\u56de\u503c\uff1a\nbooL \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n", "prefix": "otp.write"}, "otp.erase": {"body": "otp.erase(${1:zone})", "description": "otp.erase(zone) - \u64e6\u9664\u6307\u5b9aOTP\u533a\u57df\n\u4f20\u5165\u503c\uff1a\nint \u533a\u57df, \u901a\u5e38\u4e3a0/1/2/3, \u4e0e\u5177\u4f53\u786c\u4ef6\u76f8\u5173\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n", "prefix": "otp.erase"}, "otp.lock": {"body": "otp.lock(${1:zone})", "description": "otp.lock(zone) - \u9501\u5b9aOTP\u533a\u57df. \u7279\u522b\u6ce8\u610f!!\u4e00\u65e6\u52a0\u9501\u5373\u65e0\u6cd5\u89e3\u9501,OTP\u53d8\u6210\u53ea\u8bfb!!!\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n", "prefix": "otp.lock"}, "pack.unpack": {"body": "pack.unpack(${1:string},${2:format},${3:init})", "description": "pack.unpack( string, format, init) - \u89e3\u5305\u5b57\u7b26\u4e32\n\u4f20\u5165\u503c\uff1a\nstring \u9700\u89e3\u5305\u7684\u5b57\u7b26\u4e32\nstring \u683c\u5f0f\u5316\u7b26\u53f7 '<':\u8bbe\u4e3a\u5c0f\u7aef\u7f16\u7801 '>':\u8bbe\u4e3a\u5927\u7aef\u7f16\u7801 '=':\u5927\u5c0f\u7aef\u9075\u5faa\u672c\u5730\u8bbe\u7f6e 'z':\u7a7a\u5b57\u7b26\u4e32 'p':byte\u5b57\u7b26\u4e32 'P':word\u5b57\u7b26\u4e32 'a':size_t\u5b57\u7b26\u4e32 'A':\u6307\u5b9a\u957f\u5ea6\u5b57\u7b26\u4e32 'f':float 'd':double 'n':Lua number 'c':char 'b':byte = unsigned char 'h':short 'H':unsigned short 'i':int 'I':unsigned int 'l':long 'L':unsigned long\nint \u9ed8\u8ba4\u503c\u4e3a1\uff0c\u6807\u8bb0\u89e3\u5305\u5f00\u59cb\u7684\u4f4d\u7f6e\n\u8fd4\u56de\u503c\uff1a\nint \u5b57\u7b26\u4e32\u6807\u8bb0\u7684\u4f4d\u7f6e\nany \u7b2c\u4e00\u4e2a\u89e3\u5305\u7684\u503c, \u6839\u636eformat\u503c,\u53ef\u80fd\u6709N\u4e2a\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\nlocal _,a = pack.unpack(x,\">h\") --\u89e3\u5305\u6210short (2\u5b57\u8282)\n", "prefix": "pack.unpack"}, "pack.pack": {"body": "pack.pack(${1:format},${2:val1},${3:val2},${4:val3},${5:valn})", "description": "pack.pack( format, val1, val2, val3, valn ) - \u6253\u5305\u5b57\u7b26\u4e32\u7684\u503c\n\u4f20\u5165\u503c\uff1a\nstring format \u683c\u5f0f\u5316\u7b26\u53f7 '<':\u8bbe\u4e3a\u5c0f\u7aef\u7f16\u7801 '>':\u8bbe\u4e3a\u5927\u7aef\u7f16\u7801 '=':\u5927\u5c0f\u7aef\u9075\u5faa\u672c\u5730\u8bbe\u7f6e 'z':\u7a7a\u5b57\u7b26\u4e32 'p':byte\u5b57\u7b26\u4e32 'P':word\u5b57\u7b26\u4e32 'a':size_t\u5b57\u7b26\u4e32 'A':\u6307\u5b9a\u957f\u5ea6\u5b57\u7b26\u4e32 'f':float 'd':double 'n':Lua number 'c':char 'b':byte = unsigned char 'h':short 'H':unsigned short 'i':int 'I':unsigned int 'l':long 'L':unsigned long\nany \u7b2c\u4e00\u4e2a\u9700\u6253\u5305\u7684\u503c\nany \u7b2c\u4e8c\u4e2a\u9700\u6253\u5305\u7684\u503c\nany \u7b2c\u4e8c\u4e2a\u9700\u6253\u5305\u7684\u503c\nany \u7b2cn\u4e2a\u9700\u6253\u5305\u7684\u503c\n\u8fd4\u56de\u503c\uff1a\nstring \u4e00\u4e2a\u5305\u542b\u6240\u6709\u683c\u5f0f\u5316\u53d8\u91cf\u7684\u5b57\u7b26\u4e32\n\u4f8b\u5b50\uff1a\nlocal data = pack.pack('=0 \u662f\u672c\u6b21\u5b9a\u65f6\u5524\u9192\u7684\u5b9a\u65f6\u5668ID\uff0c\u5176\u4ed6\u9519\u8bef\uff0c\u8bf4\u660e\u4e0d\u662f\u5b9a\u65f6\u5524\u9192\u7684\n\u4f8b\u5b50\uff1a\nlocal timer_id = pm.dtimerWkId()\n", "prefix": "dtimerWkId"}, "pm.lastReson": {"body": "pm.lastReson()", "description": "pm.lastReson() - \u5f00\u673a\u539f\u56e0,\u7528\u4e8e\u5224\u65ad\u662f\u4ece\u4f11\u7720\u6a21\u5757\u5f00\u673a,\u8fd8\u662f\u7535\u6e90/\u590d\u4f4d\u5f00\u673a\n\u8fd4\u56de\u503c\uff1a\nint 0-\u4e0a\u7535/\u590d\u4f4d\u5f00\u673a, 1-RTC\u5f00\u673a, 2-WakeupIn/Pad/IO\u5f00\u673a, 3-Wakeup/RTC\u5f00\u673a\nint 0-\u666e\u901a\u5f00\u673a(\u4e0a\u7535/\u590d\u4f4d),3-\u6df1\u7761\u7720\u5f00\u673a,4-\u4f11\u7720\u5f00\u673a\nint \u590d\u4f4d\u5f00\u673a\u8be6\u7ec6\u539f\u56e0\uff1a0-powerkey\u6216\u8005\u4e0a\u7535\u5f00\u673a 1-\u5145\u7535\u6216\u8005AT\u6307\u4ee4\u4e0b\u8f7d\u5b8c\u6210\u540e\u5f00\u673a 2-\u95f9\u949f\u5f00\u673a 3-\u8f6f\u4ef6\u91cd\u542f 4-\u672a\u77e5\u539f\u56e0 5-RESET\u952e 6-\u5f02\u5e38\u91cd\u542f 7-\u5de5\u5177\u63a7\u5236\u91cd\u542f 8-\u5185\u90e8\u770b\u95e8\u72d7\u91cd\u542f 9-\u5916\u90e8\u91cd\u542f 10-\u5145\u7535\u5f00\u673a\n\u4f8b\u5b50\uff1a\n-- \u662f\u54ea\u79cd\u65b9\u5f0f\u5f00\u673a\u5462\nlog.info(\"pm\", \"last power reson\", pm.lastReson())\n", "prefix": "pm.lastReson"}, "pm.force": {"body": "pm.force(${1:mode})", "description": "pm.force(mode) - \u5f3a\u5236\u8fdb\u5165\u6307\u5b9a\u7684\u4f11\u7720\u6a21\u5f0f\uff0c\u5ffd\u7565\u67d0\u4e9b\u5916\u8bbe\u7684\u5f71\u54cd\uff0c\u6bd4\u5982USB\n\u4f20\u5165\u503c\uff1a\nint \u4f11\u7720\u6a21\u5f0f\n\u8fd4\u56de\u503c\uff1a\nboolean \u5904\u7406\u7ed3\u679c,\u82e5\u8fd4\u56de\u6210\u529f,\u5927\u6982\u7387\u4f1a\u9a6c\u4e0a\u8fdb\u5165\u8be5\u4f11\u7720\u6a21\u5f0f\n\u4f8b\u5b50\uff1a\n-- \u8bf7\u6c42\u8fdb\u5165\u4f11\u7720\u6a21\u5f0f\npm.force(pm.HIB)\n-- \u5bf9\u5e94EC618\u7cfb\u5217(Air780E/Air700E\u7b49), \u8be5\u64cd\u4f5c\u4f1a\u5173\u95edUSB\u901a\u4fe1\n-- \u5524\u9192\u540e\u5982\u9700\u5f00\u542fUSB, \u8bf7\u6253\u5f00USB\u7535\u538b\n--pm.power(pm.USB, true)\n", "prefix": "pm.force"}, "pm.check": {"body": "pm.check()", "description": "pm.check() - \u68c0\u67e5\u4f11\u7720\u72b6\u6001\n\u8fd4\u56de\u503c\uff1a\nboolean \u5904\u7406\u7ed3\u679c,\u5982\u679c\u80fd\u987a\u5229\u8fdb\u5165\u4f11\u7720,\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\nint \u5e95\u5c42\u8fd4\u56de\u503c,0\u4ee3\u8868\u80fd\u8fdb\u5165\u6700\u5e95\u5c42\u4f11\u7720,\u5176\u4ed6\u503c\u4ee3\u8868\u6700\u4f4e\u53ef\u4f11\u7720\u7ea7\u522b\n\u4f8b\u5b50\uff1a\n-- \u8bf7\u6c42\u8fdb\u5165\u4f11\u7720\u6a21\u5f0f,\u7136\u540e\u68c0\u67e5\u662f\u5426\u80fd\u771f\u7684\u4f11\u7720\npm.request(pm.HIB)\nif pm.check() then\n log.info(\"pm\", \"it is ok to hib\")\nelse\n -- \u5bf9\u5e94EC618\u7cfb\u5217(Air780E/Air700E\u7b49), \u8be5\u64cd\u4f5c\u4f1a\u5173\u95edUSB\u901a\u4fe1\n pm.force(pm.HIB) -- \u5f3a\u5236\u4f11\u7720\n -- \u5524\u9192\u540e\u5982\u9700\u5f00\u542fUSB, \u8bf7\u6253\u5f00USB\u7535\u538b\n --sys.wait(100)\n --pm.power(pm.USB, true)\nend\n", "prefix": "pm.check"}, "pm.shutdown": {"body": "pm.shutdown()", "description": "pm.shutdown() - \u5173\u673a\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n-- \u5f53\u524d\u4ec5EC618\u7cfb\u5217(Air780E/Air600E/Air700E/Air780EG\u652f\u6301)\n-- \u9700\u89812022-12-22\u4e4b\u540e\u7f16\u8bd1\u7684\u56fa\u4ef6\npm.shutdown()\n", "prefix": "pm.shutdown"}, "pm.reboot": {"body": "pm.reboot()", "description": "pm.reboot() - \u91cd\u542f\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n", "prefix": "pm.reboot"}, "pm.power": {"body": "pm.power(${1:id},${2:onoff})", "description": "pm.power(id, onoff) - \u5f00\u542f\u5185\u90e8\u7684\u7535\u6e90\u63a7\u5236\uff0c\u6ce8\u610f\u4e0d\u662f\u6240\u6709\u7684\u5e73\u53f0\u90fd\u652f\u6301\uff0c\u53ef\u80fd\u90e8\u5206\u5e73\u53f0\u652f\u6301\u90e8\u5206\u9009\u9879\uff0c\u770b\u786c\u4ef6\n\u4f20\u5165\u503c\uff1a\nint \u7535\u6e90\u63a7\u5236id,pm.USB pm.GPS\u4e4b\u7c7b\nboolean or int \u5f00\u5173true/1\u5f00\uff0cfalse/0\u5173\uff0c\u9ed8\u8ba4\u5173\uff0c\u90e8\u5206\u9009\u9879\u652f\u6301\u6570\u503c\n\u8fd4\u56de\u503c\uff1a\nboolean \u5904\u7406\u7ed3\u679ctrue\u6210\u529f\uff0cfalse\u5931\u8d25\n\u4f8b\u5b50\uff1a\n-- \u5173\u95edUSB\u7535\u6e90, \u53cd\u4e4b\u5f00\u542f\u5c31\u662f\u4f20true\npm.power(pm.USB, false) \n\n-- Air780EG,\u4e3a\u5185\u7f6e\u7684GPS\u82af\u7247\u4e0a\u7535. \u6ce8\u610f, Air780EG\u7684GPS\u548cGPS_ANT\u662f\u4e00\u8d77\u63a7\u5236\u7684,\u6240\u4ee5\u5408\u5e76\u4e86.\npm.power(pm.GPS, true)\n\n-- EC618\u7cfb\u5217\u5f00\u542fpwrkey\u5f00\u673a\u9632\u6296\n-- \u6ce8\u610f: \u5f00\u542f\u540e, \u590d\u4f4d\u952e\u5c31\u53d8\u6210\u5173\u673a\u4e86!!! pwrkey\u8981\u957f\u63092\u79d2\u624d\u80fd\u5f00\u673a\n-- pm.power(pm.PWK_MODE, true)\n\n-- EC618\u7cfb\u5217PSM+\u4f4e\u529f\u8017\u8bbe\u7f6e\n-- ec618\u7684\u8282\u80fd\u6a21\u5f0f\uff0c0~3\uff0c0\u5b8c\u5168\u5173\u95ed\uff0c1\u6027\u80fd\u4f18\u5148\uff0c2\u5e73\u8861\uff0c3\u6781\u81f4\u529f\u8017\n-- \u8be6\u60c5\u8bbf\u95ee: https://airpsm.cn\n-- pm.power(pm.WORK_MODE, 1)\n", "prefix": "pm.power"}, "pm.ioVol": {"body": "pm.ioVol(${1:id},${2:val})", "description": "pm.ioVol(id, val) - IO\u9ad8\u7535\u5e73\u7535\u538b\u63a7\u5236,\u5f53\u524d\u4ec5EC618\u7cfb\u5217\u53ef\u7528\n\u4f20\u5165\u503c\uff1a\nint \u7535\u5e73id,\u76ee\u524d\u53ea\u6709pm.IOVOL_ALL_GPIO\nint \u7535\u5e73\u503c,\u5355\u4f4d\u6beb\u4f0f\n\u8fd4\u56de\u503c\uff1a\nboolean \u5904\u7406\u7ed3\u679ctrue\u6210\u529f\uff0cfalse\u5931\u8d25\n\u4f8b\u5b50\uff1a\n-- EC618\u7cfb\u5217\u8bbe\u7f6eIO\u7535\u5e73, \u8303\u56f4 1650 ~ 2000\uff0c2650~3400 , \u5355\u4f4d\u6beb\u4f0f, \u6b65\u8fdb50mv\n-- \u4f8b\u5982Air780E/Air600E/Air700E/Air780EG\n-- \u6ce8\u610f, \u8fd9\u91cc\u7684\u8bbe\u7f6e\u4f18\u5148\u7ea7\u4f1a\u9ad8\u4e8e\u786c\u4ef6IOSEL\u811a\u7684\u914d\u7f6e\n-- \u4f46\u5f00\u673a\u65f6\u4f9d\u7136\u5148\u4f7f\u7528\u786c\u4ef6\u914d\u7f6e,\u76f4\u81f3\u8c03\u7528\u672cAPI\u8fdb\u884c\u914d\u7f6e, \u6240\u4ee5io\u7535\u5e73\u4f1a\u53d8\u5316\n-- pm.ioVol(pm.IOVOL_ALL_GPIO, 3300) -- \u6240\u6709GPIO\u9ad8\u7535\u5e73\u8f93\u51fa3.3V\n-- pm.ioVol(pm.IOVOL_ALL_GPIO, 1800) -- \u6240\u6709GPIO\u9ad8\u7535\u5e73\u8f93\u51fa1.8V\n", "prefix": "pm.ioVol"}, "pm.wakeupPin": {"body": "pm.wakeupPin(${1:pin},${2:level})", "description": "pm.wakeupPin(pin,level) - \u914d\u7f6e\u5524\u9192\u5f15\u811a (\u5f53\u524d\u4ec5\u4ec5esp\u7cfb\u5217\u53ef\u7528)\n\u4f20\u5165\u503c\uff1a\nint/table gpio\u5f15\u811a\nint \u5524\u9192\u7535\u538b \u53ef\u9009,\u9ed8\u8ba4\u4f4e\u7535\u5e73\u5524\u9192\n\u8fd4\u56de\u503c\uff1a\nboolean \u5904\u7406\u7ed3\u679c\n\u4f8b\u5b50\uff1a\npm.wakeupPin(8,0)\n", "prefix": "pm.wakeupPin"}, "protobuf.load": {"body": "protobuf.load(${1:pbdata})", "description": "protobuf.load(pbdata) - \u52a0\u8f7dpb\u4e8c\u8fdb\u5236\u5b9a\u4e49\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nstring \u901a\u8fc7protoc.exe\u7a0b\u5e8f\u8f6c\u6362\u5f97\u5230\u7684\u6570\u636e,\u901a\u5e38\u4ece\u6587\u4ef6\u8bfb\u53d6\u5f97\u5230\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u4e0e\u5426\nint \u8bfb\u53d6\u4e86\u591a\u957f, \u8c03\u8bd5\u7528\n\u4f8b\u5b50\uff1a\n-- \u6ce8\u610f, \u540c\u4e00\u4e2a\u6587\u4ef6\u53ea\u9700\u8981\u52a0\u8f7d\u4e00\u6b21, \u9664\u975e\u8c03\u7528\u8fc7protobuf.clear()\nprotobuf.load(io.readFile(\"/luadb/person.pb\"))\n", "prefix": "protobuf.load"}, "protobuf.clear": {"body": "protobuf.clear()", "description": "protobuf.clear() - \u6e05\u9664\u5df2\u52a0\u8f7d\u7684\u4e8c\u8fdb\u5236\u5b9a\u4e49\u6570\u636e\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c, \u603b\u662f\u6210\u529f\n\u4f8b\u5b50\uff1a\n-- \u6e05\u9664\u6240\u6709\u5df2\u52a0\u8f7d\u7684\u5b9a\u4e49\u6570\u636e\nprotobuf.clear()\n", "prefix": "protobuf.clear"}, "protobuf.encode": {"body": "protobuf.encode(${1:tpname},${2:data})", "description": "protobuf.encode(tpname, data) - \u7f16\u7801protobuffs\u6570\u636e\u5305\n\u4f20\u5165\u503c\uff1a\nstring \u6570\u636e\u7c7b\u578b\u540d\u79f0, \u5b9a\u4e49\u5728pb\u6587\u4ef6\u4e2d, \u7531protobuf.load\u52a0\u8f7d\ntable \u5f85\u7f16\u7801\u6570\u636e, \u5fc5\u987b\u662ftable, \u5185\u5bb9\u7b26\u5408pb\u6587\u4ef6\u91cc\u7684\u5b9a\u4e49\n\u8fd4\u56de\u503c\uff1a\nstring \u7f16\u7801\u540e\u7684\u6570\u636e,\u82e5\u5931\u8d25\u4f1a\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\n-- \u6570\u636e\u7f16\u7801\nlocal tb = {\n name = \"wendal\"\n}\nlocal pbdata = protobuf.encode(\"Person\", tb)\nif pbdata then\n -- \u6ce8\u610f, \u7f16\u7801\u540e\u7684\u6570\u636e\u901a\u5e38\u5e26\u4e0d\u53ef\u89c1\u5b57\u7b26\n log.info(\"protobuf\", #pbdata, pbdata:toHex())\nend\n", "prefix": "protobuf.encode"}, "protobuf.decode": {"body": "protobuf.decode(${1:tpname},${2:data})", "description": "protobuf.decode(tpname, data) - \u89e3\u7801protobuffs\u6570\u636e\u5305\n\u4f20\u5165\u503c\uff1a\nstring \u6570\u636e\u7c7b\u578b\u540d\u79f0, \u5b9a\u4e49\u5728pb\u6587\u4ef6\u4e2d, \u7531protobuf.load\u52a0\u8f7d\nstring \u5f85\u7f16\u7801\u6570\u636e\n\u8fd4\u56de\u503c\uff1a\ntable \u89e3\u7801\u540e\u7684\u6570\u636e\n\u4f8b\u5b50\uff1a\n-- \u6570\u636e\u7f16\u7801\nlocal tb = {\n name = \"wendal\"\n}\nlocal pbdata = protobuf.encode(\"Person\", tb)\nif pbdata then\n -- \u6ce8\u610f, \u7f16\u7801\u540e\u7684\u6570\u636e\u901a\u5e38\u5e26\u4e0d\u53ef\u89c1\u5b57\u7b26\n log.info(\"protobuf\", #pbdata, pbdata:toHex())\nend\n", "prefix": "protobuf.decode"}, "pwm.open": {"body": "pwm.open(${1:channel},${2:period},${3:pulse},${4:pnum},${5:precision})", "description": "pwm.open(channel, period, pulse, pnum, precision) - \u5f00\u542f\u6307\u5b9a\u7684PWM\u901a\u9053\n\u4f20\u5165\u503c\uff1a\nint PWM\u901a\u9053\nint \u9891\u7387, 1-1000000hz\nint \u5360\u7a7a\u6bd4 0-\u5206\u9891\u7cbe\u5ea6\nint \u8f93\u51fa\u5468\u671f 0\u4e3a\u6301\u7eed\u8f93\u51fa, 1\u4e3a\u5355\u6b21\u8f93\u51fa, \u5176\u4ed6\u4e3a\u6307\u5b9a\u8109\u51b2\u6570\u8f93\u51fa\nint \u5206\u9891\u7cbe\u5ea6, 100/256/1000, \u9ed8\u8ba4\u4e3a100, \u82e5\u8bbe\u5907\u4e0d\u652f\u6301\u4f1a\u6709\u65e5\u5fd7\u63d0\u793a\n\u8fd4\u56de\u503c\uff1a\nboolean \u5904\u7406\u7ed3\u679c,\u6210\u529f\u8fd4\u56detrue,\u5931\u8d25\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- \u6253\u5f00PWM5, \u9891\u73871kHz, \u5360\u7a7a\u6bd450%\npwm.open(5, 1000, 50)\n-- \u6253\u5f00PWM5, \u9891\u738710kHz, \u5206\u9891\u4e3a 31/256\npwm.open(5, 10000, 31, 0, 256)\n", "prefix": "pwm.open"}, "pwm.close": {"body": "pwm.close(${1:channel})", "description": "pwm.close(channel) - \u5173\u95ed\u6307\u5b9a\u7684PWM\u901a\u9053\n\u4f20\u5165\u503c\uff1a\nint PWM\u901a\u9053\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u5904\u7406\u7ed3\u679c\n\u4f8b\u5b50\uff1a\n-- \u5173\u95edPWM5\npwm.close(5)\n", "prefix": "pwm.close"}, "pwm.capture": {"body": "pwm.capture(${1:channel})", "description": "pwm.capture(channel) - PWM\u6355\u83b7\n\u4f20\u5165\u503c\uff1a\nint PWM\u901a\u9053\nint \u6355\u83b7\u9891\u7387\n\u8fd4\u56de\u503c\uff1a\nboolean \u5904\u7406\u7ed3\u679c,\u6210\u529f\u8fd4\u56detrue,\u5931\u8d25\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- PWM0\u6355\u83b7\nwhile 1 do\n pwm.capture(0,1000)\n local ret,channel,pulse,pwmH,pwmL = sys.waitUntil(\"PWM_CAPTURE\", 2000)\n if ret then\n log.info(\"PWM_CAPTURE\",\"channel\"..channel,\"pulse\"..pulse,\"pwmH\"..pwmH,\"pwmL\"..pwmL)\n end\nend\n", "prefix": "pwm.capture"}, "repl.enable": {"body": "repl.enable(${1:re})", "description": "repl.enable(re) - \u542f\u7528\u6216\u7981\u7528REPL\u529f\u80fd\n\u4f20\u5165\u503c\uff1a\nbool \u542f\u7528\u4e0e\u5426,\u9ed8\u8ba4\u662f\u542f\u7528\nreturn \u4e4b\u524d\u7684\u8bbe\u7f6e\u72b6\u6001\n\u4f8b\u5b50\uff1a\n-- \u82e5\u56fa\u4ef6\u652f\u6301REPL,\u5373\u7f16\u8bd1\u65f6\u542f\u7528\u4e86REPL,\u662f\u9ed8\u8ba4\u542f\u7528REPL\u529f\u80fd\u7684\n-- \u672c\u51fd\u6570\u662f\u63d0\u4f9b\u5173\u95edREPL\u7684\u9014\u5f84\nrepl.enable(false)\n", "prefix": "repl.enable"}, "repl.push": {"body": "repl.push(${1:data})", "description": "repl.push(data) - \u4e3b\u52a8\u63a8\u9001\u5f85\u5904\u7406\u7684\u6570\u636e\u5230\u5e95\u5c42\n\u4f20\u5165\u503c\uff1a\nstring \u5f85\u5904\u7406\u7684\u6570\u636e,\u901a\u5e38\u4ece\u4e32\u53e3\u6765\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n-- \u865a\u62df\u4e32\u53e3\u7684\u8bbe\u5907\u624d\u9700\u8981\u8fd9\u4e2a\u51fd\u6570\n", "prefix": "repl.push"}, "rsa.encrypt": {"body": "rsa.encrypt(${1:key},${2:data})", "description": "rsa.encrypt(key, data) - RSA\u52a0\u5bc6\n\u4f20\u5165\u503c\uff1a\nstring \u516c\u94a5\u6570\u636e,\u4ec5\u652f\u6301PEM\u683c\u5f0f\nstring \u5f85\u52a0\u5bc6\u6570\u636e, \u4e0d\u80fd\u8d85\u8fc7\u516c\u94a5\u4f4d\u6570\u7684\u4e00\u534a, \u4f8b\u5982 2048bit\u7684\u516c\u94a5, \u53ea\u80fd\u52a0\u5bc6128\u5b57\u8282\u7684\u6570\u636e\n\u8fd4\u56de\u503c\uff1a\nstring \u52a0\u5bc6\u6210\u529f\u540e\u7684\u6570\u636e,\u82e5\u5931\u8d25\u4f1a\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\n-- \u4e0b\u9762\u4ee3\u7801\u4e2d\u7684 \"abc\" \u662f\u5f85\u52a0\u5bc6\u6570\u636e\nlocal res = rsa.encrypt((io.readFile(\"/luadb/public.pem\")), \"abc\")\n-- \u6253\u5370\u7ed3\u679c\nlog.info(\"rsa\", \"encrypt\", res and #res or 0, res and res:toHex() or \"\")\n", "prefix": "rsa.encrypt"}, "rsa.decrypt": {"body": "rsa.decrypt(${1:key},${2:data},${3:pwd})", "description": "rsa.decrypt(key, data, pwd) - RSA\u89e3\u5bc6\n\u4f20\u5165\u503c\uff1a\nstring \u79c1\u94a5\u6570\u636e,\u4ec5\u652f\u6301PEM\u683c\u5f0f\nstring \u5f85\u89e3\u5bc6\u6570\u636e\nstring \u79c1\u94a5\u7684\u5bc6\u7801,\u53ef\u9009\n\u8fd4\u56de\u503c\uff1a\nstring \u89e3\u5bc6\u6210\u529f\u540e\u7684\u6570\u636e,\u82e5\u5931\u8d25\u4f1a\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\n-- \u6ce8\u610f, \u89e3\u5bc6\u901a\u5e38\u5f88\u6162, \u5efa\u8bae\u5728\u670d\u52a1\u5668\u7aef\u8fdb\u884c\n-- res \u662f\u5f85\u89e3\u5bc6\u7684\u6570\u636e\nlocal dst = rsa.decrypt((io.readFile(\"/luadb/privkey.pem\")), res, \"\")\nlog.info(\"rsa\", \"decrypt\", dst and #dst or 0, dst and dst:toHex() or \"\")\n", "prefix": "rsa.decrypt"}, "rsa.verify": {"body": "rsa.verify(${1:key},${2:md},${3:hash},${4:sig})", "description": "rsa.verify(key, md, hash, sig) - RSA\u9a8c\u7b7e\n\u4f20\u5165\u503c\uff1a\nstring \u516c\u94a5\u6570\u636e,\u4ec5\u652f\u6301PEM\u683c\u5f0f\nint \u7b7e\u540d\u6a21\u5f0f, \u4f8b\u5982 rsa.MD_SHA1 , rsa.MD_SHA256\nstring hash\u6570\u636e, \u5982\u679c\u662fHEX\u5b57\u7b26\u4e32,\u8bb0\u5f97fromHex\u8f6c\u4e8c\u8fdb\u5236\u6570\u636e\nstring sig\u6570\u636e, \u5982\u679c\u662fHEX\u5b57\u7b26\u4e32,\u8bb0\u5f97fromHex\u8f6c\u4e8c\u8fdb\u5236\u6570\u636e\n\u8fd4\u56de\u503c\uff1a\nbool \u6709\u6548\u8fd4\u56detrue,\u5426\u5219\u4e3afalse,\u51fa\u9519\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\nlocal ret = rsa.verify((io.readFile(\"/luadb/public.pem\")), rsa.MD_SHA1, hash, sig)\nlog.info(\"rsa\", \"verify\", ret)\n", "prefix": "rsa.verify"}, "rsa.sign": {"body": "rsa.sign(${1:key},${2:md},${3:hash},${4:pwd})", "description": "rsa.sign(key, md, hash, pwd) - RSA\u7b7e\u540d\n\u4f20\u5165\u503c\uff1a\nstring \u79c1\u94a5\u6570\u636e,\u4ec5\u652f\u6301PEM\u683c\u5f0f\nint \u7b7e\u540d\u6a21\u5f0f, \u4f8b\u5982 rsa.MD_SHA1 , rsa.MD_SHA256\nstring hash\u6570\u636e, \u5982\u679c\u662fHEX\u5b57\u7b26\u4e32,\u8bb0\u5f97fromHex\u8f6c\u4e8c\u8fdb\u5236\u6570\u636e\nstring \u79c1\u94a5\u5bc6\u7801, \u53ef\u9009\n\u8fd4\u56de\u503c\uff1a\nstring \u6210\u529f\u8fd4\u56desig\u6570\u636e, \u5426\u5219\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\nlocal sig = rsa.sign((io.readFile(\"/luadb/privkey.pem\")), rsa.MD_SHA1, hash, \"\")\nlog.info(\"rsa\", \"sign\", sig and #sig or 0, sig and sig:toHex() or \"\")\n", "prefix": "rsa.sign"}, "rtc.set": {"body": "rtc.set(${1:tab})", "description": "rtc.set(tab) - \u8bbe\u7f6e\u65f6\u949f\n\u4f20\u5165\u503c\uff1a\ntable or int \u65f6\u949f\u53c2\u6570,\u89c1\u793a\u4f8b\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56denil\u6216false\n\u4f8b\u5b50\uff1a\nrtc.set({year=2021,mon=8,day=31,hour=17,min=8,sec=43})\n--\u76ee\u524d\u53ea\u6709Air101/Air103/Air105/EC618\u7cfb\u5217\u652f\u6301\u65f6\u95f4\u6233\u65b9\u5f0f\nrtc.set(1652230554)\n", "prefix": "rtc.set"}, "rtc.get": {"body": "rtc.get()", "description": "rtc.get() - \u83b7\u53d6\u65f6\u949f\n\u8fd4\u56de\u503c\uff1a\ntable \u65f6\u949f\u53c2\u6570,\u89c1\u793a\u4f8b\n\u4f8b\u5b50\uff1a\nlocal t = rtc.get()\n-- {year=2021,mon=8,day=31,hour=17,min=8,sec=43}\nlog.info(\"rtc\", json.encode(t))\n", "prefix": "rtc.get"}, "rtc.timerStart": {"body": "rtc.timerStart(${1:id},${2:tab})", "description": "rtc.timerStart(id, tab) - \u8bbe\u7f6eRTC\u5524\u9192\u65f6\u95f4\n\u4f20\u5165\u503c\uff1a\nint \u65f6\u949fid,\u901a\u5e38\u53ea\u652f\u63010\ntable \u65f6\u949f\u53c2\u6570,\u89c1\u793a\u4f8b\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56denil\u6216false\n\u4f8b\u5b50\uff1a\n-- \u4f7f\u7528\u524d\u5efa\u8bae\u5148rtc.set\u8bbe\u7f6e\u4e3a\u6b63\u786e\u7684\u65f6\u95f4\nrtc.timerStart(0, {year=2021,mon=9,day=1,hour=17,min=8,sec=43})\n", "prefix": "rtc.timerStart"}, "rtc.timerStop": {"body": "rtc.timerStop(${1:id})", "description": "rtc.timerStop(id) - \u53d6\u6d88RTC\u5524\u9192\u65f6\u95f4\n\u4f20\u5165\u503c\uff1a\nint \u65f6\u949fid,\u901a\u5e38\u53ea\u652f\u63010\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56denil\u6216false\n\u4f8b\u5b50\uff1a\nrtc.timerStop(0)\n", "prefix": "rtc.timerStop"}, "rtc.setBaseYear": {"body": "rtc.setBaseYear(${1:Base_year})", "description": "rtc.setBaseYear(Base_year) - \u8bbe\u7f6eRTC\u57fa\u51c6\u5e74,\u4e0d\u63a8\u8350\n\u4f20\u5165\u503c\uff1a\nint \u57fa\u51c6\u5e74Base_year,\u901a\u5e381900\n\u4f8b\u5b50\uff1a\nrtc.setBaseYear(1900)\n", "prefix": "rtc.setBaseYear"}, "rtc.timezone": {"body": "rtc.timezone(${1:tz})", "description": "rtc.timezone(tz) - \u8bfb\u53d6\u6216\u8bbe\u7f6e\u65f6\u533a\n\u4f20\u5165\u503c\uff1a\nint \u65f6\u533a\u503c,\u6ce8\u610f\u5355\u4f4d\u662f1/4\u65f6\u533a.\u4f8b\u5982\u4e1c\u516b\u533a\u662f 32,\u800c\u975e8. \u53ef\u4ee5\u4e0d\u4f20\nreturn \u5f53\u524d/\u8bbe\u7f6e\u540e\u7684\u65f6\u533a\u503c\n\u4f8b\u5b50\uff1a\n-- \u8bbe\u7f6e\u4e3a\u4e1c8\u533a\nrtc.timezone(32)\n-- \u8bbe\u7f6e\u4e3a\u4e1c3\u533a\nrtc.timezone(12)\n-- \u8bbe\u7f6e\u4e3a\u897f4\u533a\nrtc.timezone(-16)\n-- \u6ce8\u610f: \u65e0\u8bba\u8bbe\u7f6e\u65f6\u533a\u662f\u591a\u5c11, rtc.get/set\u603b\u662fUTC\u65f6\u95f4\n-- \u65f6\u533a\u5f71\u54cd\u7684\u662f os.date/os.time \u51fd\u6570\n-- \u53ea\u6709\u90e8\u5206\u6a21\u5757\u652f\u6301\u8bbe\u7f6e\u65f6\u533a, \u4e14\u9ed8\u8ba4\u503c\u4e00\u822c\u4e3a32, \u5373\u4e1c\u516b\u533a\n", "prefix": "rtc.timezone"}, "rtos.receive": {"body": "rtos.receive(${1:timeout})", "description": "rtos.receive(timeout) - \u63a5\u53d7\u5e76\u5904\u7406\u5e95\u5c42\u6d88\u606f\u961f\u5217.\n\u4f20\u5165\u503c\uff1a\nint \u8d85\u65f6\u65f6\u957f,\u901a\u5e38\u662f-1,\u6c38\u4e45\u7b49\u5f85\n\u8fd4\u56de\u503c\uff1a\nmsgid \u5982\u679c\u662f\u5b9a\u65f6\u5668\u6d88\u606f,\u4f1a\u8fd4\u56de\u5b9a\u65f6\u5668\u6d88\u606fid\u53ca\u9644\u52a0\u4fe1\u606f, \u5176\u4ed6\u6d88\u606f\u7531\u5e95\u5c42\u51b3\u5b9a,\u4e0d\u5411lua\u5c42\u8fdb\u884c\u4efb\u4f55\u4fdd\u8bc1.\n", "prefix": "rtos.receive"}, "rtos.timer_start": {"body": "rtos.timer_start(${1:id},${2:timeout},${3:_repeat})", "description": "rtos.timer_start(id,timeout,_repeat) - \u542f\u52a8\u4e00\u4e2a\u5b9a\u65f6\u5668\n\u4f20\u5165\u503c\uff1a\nint \u5b9a\u65f6\u5668id\nint \u8d85\u65f6\u65f6\u957f,\u5355\u4f4d\u6beb\u79d2\nint \u91cd\u590d\u6b21\u6570,\u9ed8\u8ba4\u662f0\n\u8fd4\u56de\u503c\uff1a\nid \u5982\u679c\u662f\u5b9a\u65f6\u5668\u6d88\u606f,\u4f1a\u8fd4\u56de\u5b9a\u65f6\u5668\u6d88\u606fid\u53ca\u9644\u52a0\u4fe1\u606f, \u5176\u4ed6\u6d88\u606f\u7531\u5e95\u5c42\u51b3\u5b9a,\u4e0d\u5411lua\u5c42\u8fdb\u884c\u4efb\u4f55\u4fdd\u8bc1.\n\u4f8b\u5b50\uff1a\n-- \u7528\u6237\u4ee3\u7801\u8bf7\u4f7f\u7528 sys.timerStart\n-- \u542f\u52a8\u4e00\u4e2a3\u79d2\u7684\u5faa\u73af\u5b9a\u65f6\u5668\nrtos.timer_start(10000, 3000, -1)\n", "prefix": "rtos.timer_start"}, "rtos.timer_stop": {"body": "rtos.timer_stop(${1:id})", "description": "rtos.timer_stop(id) - \u5173\u95ed\u5e76\u91ca\u653e\u4e00\u4e2a\u5b9a\u65f6\u5668\n\u4f20\u5165\u503c\uff1a\nint \u5b9a\u65f6\u5668id\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n-- \u7528\u6237\u4ee3\u7801\u8bf7\u4f7f\u7528sys.timerStop\nrtos.timer_stop(id)\n", "prefix": "rtos.timer_stop"}, "rtos.reboot": {"body": "rtos.reboot()", "description": "rtos.reboot() - \u8bbe\u5907\u91cd\u542f\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n", "prefix": "rtos.reboot"}, "rtos.buildDate": {"body": "rtos.buildDate()", "description": "rtos.buildDate() - \u83b7\u53d6\u56fa\u4ef6\u7f16\u8bd1\u65e5\u671f\n\u8fd4\u56de\u503c\uff1a\nstring \u56fa\u4ef6\u7f16\u8bd1\u65e5\u671f\n\u4f8b\u5b50\uff1a\n-- \u83b7\u53d6\u7f16\u8bd1\u65e5\u671f\nlocal d = rtos.buildDate()\n", "prefix": "rtos.buildDate"}, "rtos.bsp": {"body": "rtos.bsp()", "description": "rtos.bsp() - \u83b7\u53d6\u786c\u4ef6bsp\u578b\u53f7\n\u8fd4\u56de\u503c\uff1a\nstring \u786c\u4ef6bsp\u578b\u53f7\n\u4f8b\u5b50\uff1a\n-- \u83b7\u53d6\u786c\u4ef6bsp\u578b\u53f7\nlocal bsp = rtos.bsp()\n", "prefix": "rtos.bsp"}, "rtos.version": {"body": "rtos.version()", "description": "rtos.version() - \u83b7\u53d6\u56fa\u4ef6\u7248\u672c\u53f7\n\u8fd4\u56de\u503c\uff1a\nstring \u56fa\u4ef6\u7248\u672c\u53f7,\u4f8b\u5982\"V0001\"\n\u4f8b\u5b50\uff1a\n-- \u8bfb\u53d6\u7248\u672c\u53f7\nlocal luatos_version = rtos.version()\n", "prefix": "rtos.version"}, "rtos.standy": {"body": "rtos.standy(${1:timeout})", "description": "rtos.standy(timeout) - \u8fdb\u5165\u5f85\u673a\u6a21\u5f0f, \u4ec5\u90e8\u5206\u8bbe\u5907\u53ef\u7528, \u672cAPI\u5df2\u5e9f\u5f03, \u63a8\u8350\u4f7f\u7528pm\u5e93\n\u4f20\u5165\u503c\uff1a\nint \u4f11\u7720\u65f6\u957f,\u5355\u4f4d\u6beb\u79d2\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n-- \u8fdb\u5165\u5f85\u673a\u6a21\u5f0f\nrtos.standby(5000)\n", "prefix": "rtos.standy"}, "rtos.meminfo": {"body": "rtos.meminfo(${1:type})", "description": "rtos.meminfo(type) - \u83b7\u53d6\u5185\u5b58\u4fe1\u606f\n\u4f20\u5165\u503c\uff1a\ntype \"sys\"\u7cfb\u7edf\u5185\u5b58, \"lua\"\u865a\u62df\u673a\u5185\u5b58, \u9ed8\u8ba4\u4e3alua\u865a\u62df\u673a\u5185\u5b58\n\u8fd4\u56de\u503c\uff1a\nint \u603b\u5185\u5b58\u5927\u5c0f,\u5355\u4f4d\u5b57\u8282\nint \u5f53\u524d\u5df2\u4f7f\u7528\u7684\u5185\u5b58\u5927\u5c0f,\u5355\u4f4d\u5b57\u8282\nint \u5386\u53f2\u6700\u9ad8\u5df2\u4f7f\u7528\u7684\u5185\u5b58\u5927\u5c0f,\u5355\u4f4d\u5b57\u8282\n\u4f8b\u5b50\uff1a\n-- \u6253\u5370\u5185\u5b58\u5360\u7528\nlog.info(\"mem.lua\", rtos.meminfo())\nlog.info(\"mem.sys\", rtos.meminfo(\"sys\"))\n", "prefix": "rtos.meminfo"}, "rtos.firmware": {"body": "rtos.firmware()", "description": "rtos.firmware() - \u8fd4\u56de\u5e95\u5c42\u63cf\u8ff0\u4fe1\u606f,\u683c\u5f0f\u4e3a LuatOS_$VERSION_$BSP,\u53ef\u7528\u4e8eOTA\u5347\u7ea7\u5224\u65ad\u5e95\u5c42\u4fe1\u606f\n\u8fd4\u56de\u503c\uff1a\nstring \u5e95\u5c42\u63cf\u8ff0\u4fe1\u606f\n\u4f8b\u5b50\uff1a\n-- \u6253\u5370\u5e95\u5c42\u63cf\u8ff0\u4fe1\u606f\nlog.info(\"firmware\", rtos.firmware())\n", "prefix": "rtos.firmware"}, "rtos.setPaths": {"body": "rtos.setPaths(${1:pathA},${2:pathB},${3:pathC},${4:pathD})", "description": "rtos.setPaths(pathA, pathB, pathC, pathD) - \u8bbe\u7f6e\u81ea\u5b9a\u4e49lua\u811a\u672c\u641c\u7d22\u8def\u5f84,\u4f18\u5148\u7ea7\u9ad8\u4e8e\u5185\u7f6e\u8def\u5f84\n\u4f20\u5165\u503c\uff1a\nstring \u8def\u5f84A, \u4f8b\u5982 \"/sdcard/%s.luac\",\u82e5\u4e0d\u4f20\u503c,\u5c06\u9ed8\u8ba4\u4e3a\"\",\u53e6\u5916,\u6700\u5927\u957f\u5ea6\u4e0d\u80fd\u8d85\u8fc723\u5b57\u8282\nstring \u8def\u5f84B, \u4f8b\u5982 \"/sdcard/%s.lua\"\nstring \u8def\u5f84C, \u4f8b\u5982 \"/lfs2/%s.luac\"\nstring \u8def\u5f84D, \u4f8b\u5982 \"/lfs2/%s.lua\"\n\u4f8b\u5b50\uff1a\n-- \u6302\u8f7dsd\u5361\u6216\u8005spiflash\u540e\nrtos.setPaths(\"/sdcard/user/%s.luac\", \"/sdcard/user/%s.lua\")\nrequire(\"sd_user_main\") -- \u5c06\u641c\u7d22\u5e76\u52a0\u8f7d /sdcard/user/sd_user_main.luac \u548c /sdcard/user/sd_user_main.lua\n", "prefix": "rtos.setPaths"}, "rtos.nop": {"body": "rtos.nop()", "description": "rtos.nop() - \u7a7a\u51fd\u6570,\u4ec0\u4e48\u90fd\u4e0d\u505a\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n-- \u8fd9\u4e2a\u51fd\u6570\u5355\u7eaf\u5c31\u662f lua -> c -> lua \u8d70\u4e00\u904d\n-- \u6ca1\u6709\u53c2\u6570,\u6ca1\u6709\u8fd4\u56de\u503c,\u6ca1\u6709\u903b\u8f91\u5904\u7406\n-- \u5728\u7edd\u5927\u591a\u6570\u60c5\u51b5\u4e0b,\u4e0d\u4f1a\u9047\u5230\u8fd9\u4e2a\u51fd\u6570\u7684\u8c03\u7528\n-- \u5b83\u901a\u5e38\u53ea\u4f1a\u51fa\u73b0\u5728\u6027\u80fd\u6d4b\u8bd5\u7684\u4ee3\u7801\u91cc, \u56e0\u4e3a\u5b83\u4ec0\u4e48\u90fd\u4e0d\u5e72.\nrtos.nop()\n", "prefix": "rtos.nop"}, "rtos.autoCollectMem": {"body": "rtos.autoCollectMem(${1:period},${2:warning_level},${3:force_level})", "description": "rtos.autoCollectMem(period, warning_level, force_level) - \u5185\u5b58\u81ea\u52a8\u6536\u96c6\u914d\u7f6e\uff0c\u662flua\u672c\u8eab\u6536\u96c6\u673a\u5236\u7684\u4e00\u79cd\u8865\u5145\uff0c\u4e0d\u662f\u5fc5\u8981\u7684\uff0c\u800c\u4e14\u53ea\u5728luavm\u7a7a\u95f2\u65f6\u89e6\u53d1\n", "prefix": "rtos.autoCollectMem"}, "sdio.init": {"body": "sdio.init(${1:id})", "description": "sdio.init(id) - \u521d\u59cb\u5316sdio\n\u4f20\u5165\u503c\uff1a\nint \u901a\u9053id,\u4e0e\u5177\u4f53\u8bbe\u5907\u6709\u5173,\u901a\u5e38\u4ece0\u5f00\u59cb,\u9ed8\u8ba40\n\u8fd4\u56de\u503c\uff1a\nboolean \u6253\u5f00\u7ed3\u679c\n", "prefix": "sdio.init"}, "sdio.sd_read": {"body": "sdio.sd_read(${1:id},${2:offset},${3:len})", "description": "sdio.sd_read(id, offset, len) - \u76f4\u63a5\u8bfb\u5199sd\u5361\u4e0a\u7684\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nint sdio\u603b\u7ebfid\nint \u504f\u79fb\u91cf,\u5fc5\u987b\u662f512\u7684\u500d\u6570\nint \u957f\u5ea6,\u5fc5\u987b\u662f512\u7684\u500d\u6570\n\u8fd4\u56de\u503c\uff1a\nstring \u82e5\u8bfb\u53d6\u6210\u529f,\u8fd4\u56de\u5b57\u7b26\u4e32,\u5426\u5219\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\n-- \u521d\u59cb\u5316sdio\u5e76\u76f4\u63a5\u8bfb\u53d6sd\u5361\u6570\u636e\nsdio.init(0)\nlocal t = sdio.sd_read(0, 0, 1024)\nif t then\n --- xxx\nend\n", "prefix": "sdio.sd_read"}, "sdio.sd_write": {"body": "sdio.sd_write(${1:id},${2:data},${3:offset})", "description": "sdio.sd_write(id, data, offset) - \u76f4\u63a5\u5199sd\u5361\n\u4f20\u5165\u503c\uff1a\nint sdio\u603b\u7ebfid\nstring \u5f85\u5199\u5165\u7684\u6570\u636e,\u957f\u5ea6\u5fc5\u987b\u662f512\u7684\u500d\u6570\nint \u504f\u79fb\u91cf,\u5fc5\u987b\u662f512\u7684\u500d\u6570\n\u8fd4\u56de\u503c\uff1a\nbool \u82e5\u8bfb\u53d6\u6210\u529f,\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- \u521d\u59cb\u5316sdio\u5e76\u76f4\u63a5\u8bfb\u53d6sd\u5361\u6570\u636e\nsdio.init(0)\nlocal t = sdio.sd_write(0, data, 0)\nif t then\n --- xxx\nend\n", "prefix": "sdio.sd_write"}, "sensor.ds18b20": {"body": "sensor.ds18b20(${1:pin})", "description": "sensor.ds18b20(pin) - \u83b7\u53d6DS18B20\u7684\u6e29\u5ea6\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nint gpio\u7aef\u53e3\u53f7\nboolean \u662f\u5426\u6821\u9a8ccrc\u503c,\u9ed8\u8ba4\u4e3atrue. \u4e0d\u6821\u9a8ccrc\u503c\u80fd\u63d0\u9ad8\u8bfb\u53d6\u6210\u529f\u7684\u6982\u7387,\u4f46\u53ef\u80fd\u4f1a\u8bfb\u53d6\u5230\u9519\u8bef\u7684\u503c\n\u8fd4\u56de\u503c\uff1a\nint \u6e29\u5ea6\u6570\u636e,\u5355\u4f4d0.1\u6444\u6c0f\u5ea6\uff0c\u8bfb\u53d6\u5931\u8d25\u65f6\u8fd4\u56de\u9519\u8bef\u7801\nboolean \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\nwhile 1 do\n sys.wait(5000)\n local val,result = sensor.ds18b20(17, true) -- GPIO17\u4e14\u6821\u9a8cCRC\u503c\n -- val 301 == 30.1\u6444\u6c0f\u5ea6\n -- result true \u8bfb\u53d6\u6210\u529f\n log.info(\"ds18b20\", val, result)\nend\n", "prefix": "sensor.ds18b20"}, "sensor.w1_reset": {"body": "sensor.w1_reset(${1:pin})", "description": "sensor.w1_reset(pin) - \u5355\u603b\u7ebf\u534f\u8bae,\u590d\u4f4d\u8bbe\u5907\n\u4f20\u5165\u503c\uff1a\nint gpio\u7aef\u53e3\u53f7\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\n", "prefix": "sensor.w1_reset"}, "sensor.w1_connect": {"body": "sensor.w1_connect(${1:pin})", "description": "sensor.w1_connect(pin) - \u5355\u603b\u7ebf\u534f\u8bae,\u8fde\u63a5\u8bbe\u5907\n\u4f20\u5165\u503c\uff1a\nint gpio\u7aef\u53e3\u53f7\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u8fd4\u56detrue,\u5931\u8d25\u8fd4\u56defalse\n", "prefix": "sensor.w1_connect"}, "sensor.w1_write": {"body": "sensor.w1_write(${1:pin},${2:data1},${3:data2})", "description": "sensor.w1_write(pin, data1,data2) - \u5355\u603b\u7ebf\u534f\u8bae,\u5f80\u603b\u7ebf\u5199\u5165\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nint gpio\u7aef\u53e3\u53f7\nint \u7b2c\u4e00\u4e2a\u6570\u636e\nint \u7b2c\u4e8c\u4e2a\u6570\u636e, \u53ef\u4ee5\u5199N\u4e2a\u6570\u636e\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n", "prefix": "sensor.w1_write"}, "sensor.w1_read": {"body": "sensor.w1_read(${1:pin},${2:len})", "description": "sensor.w1_read(pin, len) - \u5355\u603b\u7ebf\u534f\u8bae,\u4ece\u603b\u7ebf\u8bfb\u53d6\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nint gpio\u7aef\u53e3\u53f7\nint \u8bfb\u53d6\u7684\u957f\u5ea6\n\u8fd4\u56de\u503c\uff1a\nint \u6309\u8bfb\u53d6\u7684\u957f\u5ea6\u8fd4\u56deN\u4e2a\u6574\u6570\n", "prefix": "sensor.w1_read"}, "sensor.hx711": {"body": "sensor.hx711(${1:pin_date},${2:pin_clk})", "description": "sensor.hx711(pin_date,pin_clk) - \u83b7\u53d6Hx711\u7684\u538b\u529b\u4f20\u611f\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nint \u6570\u636e\u7684gpio\u7aef\u53e3\u53f7\nint \u65f6\u949f\u7684gpio\u7aef\u53e3\u53f7\n\u8fd4\u56de\u503c\uff1a\nint hx711\u8bfb\u5230\u7684\u6570\u636e\n\u4f8b\u5b50\uff1a\n-- \u5982\u679c\u8bbe\u5907\u4e0d\u5b58\u5728\u4f1a\u5361\u5728\u8bfb\u53d6\u63a5\u53e3\nsys.taskInit(\n function()\n sys.wait(1000)\n local maopi = sensor.hx711(0,7)\n while true do\n sys.wait(2000)\n a = sensor.hx711(0,7) - maopi\n if a > 0 then\n log.info(\"tag\", a / 4.6)\n end\n end\n end\n)\n", "prefix": "sensor.hx711"}, "sensor.ws2812b": {"body": "sensor.ws2812b(${1:pin},${2:data},${3:T0H},${4:T0L},${5:T1H},${6:T1L})", "description": "sensor.ws2812b(pin,data,T0H,T0L,T1H,T1L) - \u8bbe\u7f6ews2812b\u8f93\u51fa(gpio\u9a71\u52a8\u65b9\u5f0f)\n\u4f20\u5165\u503c\uff1a\nint ws2812b\u7684gpio\u7aef\u53e3\u53f7\nstring/zbuff \u5f85\u53d1\u9001\u7684\u6570\u636e\uff08\u5982\u679c\u4e3azbuff\u6570\u636e\uff0c\u5219\u4f1a\u65e0\u89c6\u6307\u9488\u4f4d\u7f6e\u59cb\u7ec8\u4ece0\u504f\u79fb\u5f00\u59cb\uff09\nint T0H\u65f6\u95f4\uff0c\u8868\u793a\u5ef6\u65f6\u591a\u5c11\u4e2anop\uff0c\u6bcf\u4e2a\u578b\u53f7\u4e0d\u4e00\u6837\uff0c\u81ea\u5df1\u8c03\nint T0L\u65f6\u95f4\uff0c\u8868\u793a\u5ef6\u65f6\u591a\u5c11\u4e2anop\nint T1H\u65f6\u95f4\uff0c\u8868\u793a\u5ef6\u65f6\u591a\u5c11\u4e2anop\nint T1L\u65f6\u95f4\uff0c\u8868\u793a\u5ef6\u65f6\u591a\u5c11\u4e2anop\n\u4f8b\u5b50\uff1a\nlocal buff = zbuff.create({8,8,24})\nbuff:drawLine(1,2,5,6,0x00ffff)\nsensor.ws2812b(7,buff,300,700,700,700)\n", "prefix": "sensor.ws2812b"}, "sensor.ws2812b_pwm": {"body": "sensor.ws2812b_pwm(${1:pin},${2:data})", "description": "sensor.ws2812b_pwm(pin,data) - \u8bbe\u7f6ews2812b\u8f93\u51fa(pwm\u9a71\u52a8\u65b9\u5f0f,\u9700\u8981pwm\u80fd\u8f93\u51fa800k\u9891\u7387\uff0c\u5426\u5219\u65e0\u6cd5\u4f7f\u7528\u6b64\u65b9\u6cd5)\n\u4f20\u5165\u503c\uff1a\nint pwm\u7aef\u53e3\u53f7\nstring/zbuff \u5f85\u53d1\u9001\u7684\u6570\u636e\uff08\u5982\u679c\u4e3azbuff\u6570\u636e\uff0c\u5219\u4f1a\u65e0\u89c6\u6307\u9488\u4f4d\u7f6e\u59cb\u7ec8\u4ece0\u504f\u79fb\u5f00\u59cb\uff09\n\u4f8b\u5b50\uff1a\nlocal buff = zbuff.create({8,8,24})\nbuff:setFrameBuffer(8,8,24,0x0000ff)\nsensor.ws2812b_pwm(7,buff)\n", "prefix": "sensor.ws2812b_pwm"}, "sensor.ws2812b_spi": {"body": "sensor.ws2812b_spi(${1:pin},${2:data})", "description": "sensor.ws2812b_spi(pin,data) - \u8bbe\u7f6ews2812b\u8f93\u51fa(spi\u9a71\u52a8\u65b9\u5f0f,\u9700\u8981spi\u80fd\u8f93\u51fa5M\u9891\u7387\uff0c\u5426\u5219\u65e0\u6cd5\u4f7f\u7528\u6b64\u65b9\u6cd5)\n\u4f20\u5165\u503c\uff1a\nint spi\u7aef\u53e3\u53f7\nstring/zbuff \u5f85\u53d1\u9001\u7684\u6570\u636e\uff08\u5982\u679c\u4e3azbuff\u6570\u636e\uff0c\u5219\u4f1a\u65e0\u89c6\u6307\u9488\u4f4d\u7f6e\u59cb\u7ec8\u4ece0\u504f\u79fb\u5f00\u59cb\uff09\n\u4f8b\u5b50\uff1a\nlocal buff = zbuff.create({8,8,24})\nbuff:setFrameBuffer(8,8,24,0x0000ff)\nsensor.ws2812b_spi(2,buff)\n", "prefix": "sensor.ws2812b_spi"}, "sensor.dht1x": {"body": "sensor.dht1x(${1:pin})", "description": "sensor.dht1x(pin) - \u83b7\u53d6DHT11/DHT12\u7684\u6e29\u6e7f\u5ea6\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nint gpio\u7aef\u53e3\u53f7\nboolean \u662f\u5426\u6821\u9a8ccrc\u503c,\u9ed8\u8ba4\u4e3atrue. \u4e0d\u6821\u9a8ccrc\u503c\u80fd\u63d0\u9ad8\u8bfb\u53d6\u6210\u529f\u7684\u6982\u7387,\u4f46\u53ef\u80fd\u4f1a\u8bfb\u53d6\u5230\u9519\u8bef\u7684\u503c\n\u8fd4\u56de\u503c\uff1a\nint \u6e7f\u5ea6\u6570\u636e,\u5355\u4f4d0.01%\uff0c\u8bfb\u53d6\u5931\u8d25\u65f6\u8fd4\u56de\u9519\u8bef\u503c\nint \u6e29\u5ea6\u6570\u636e,\u5355\u4f4d0.01\u6444\u6c0f\u5ea6\uff0c\u8bfb\u53d6\u5931\u8d25\u65f6\u8fd4\u56de\u9519\u8bef\u503c\nboolean \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\nwhile 1 do\n sys.wait(1000)\n local h,t,r = sensor.dht1x(17, true) -- GPIO17\u4e14\u6821\u9a8cCRC\u503c\n log.info(\"dht11\", h/100,t/100,r)--90.1 23.22\nend\n", "prefix": "sensor.dht1x"}, "sfd.init": {"body": "sfd.init(${1:type},${2:spi_id},${3:spi_cs})", "description": "sfd.init(type, spi_id, spi_cs) - \u521d\u59cb\u5316spi flash\n\u4f20\u5165\u503c\uff1a\nstring \u7c7b\u578b, \u53ef\u4ee5\u662f\"spi\", \u4e5f\u53ef\u4ee5\u662f\"zbuff\", \u6216\u8005\"onchip\"\nint SPI\u603b\u7ebf\u7684id, \u6216\u8005 zbuff\u5b9e\u4f8b\nint SPI FLASH\u7684\u7247\u9009\u811a\u5bf9\u5e94\u7684GPIO, \u5f53\u7c7b\u578b\u662fspi\u65f6\u624d\u9700\u8981\u4f20\n\u8fd4\u56de\u503c\uff1a\nuserdata \u6210\u529f\u8fd4\u56de\u4e00\u4e2a\u6570\u636e\u7ed3\u6784,\u5426\u5219\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\nlocal drv = sfd.init(\"spi\", 0, 17)\nif drv then\n log.info(\"sfd\", \"chip id\", sfd.id(drv):toHex())\nend\n-- 2023.01.15\u4e4b\u540e\u7684\u56fa\u4ef6\u652f\u6301onchip\u7c7b\u578b, \u652f\u6301\u76f4\u63a5\u8bfb\u5199\u7247\u4e0aflash\u7684\u4e00\u5c0f\u5757\u533a\u57df,\u4e00\u822c\u662f64k\n-- \u8fd9\u5757\u533a\u57df\u901a\u5e38\u662ffdb/fskv\u5e93\u6240\u5728\u7684\u533a\u57df, \u6240\u4ee5\u4e0d\u8981\u6df7\u7740\u7528\nlocal onchip = sfd.init(\"onchip\")\nlocal data = sfd.read(onchip, 0x100, 256)\nsfd.erase(onchip, 0x100)\nsfd.write(onchip, 0x100, data or \"Hi\")\n\n", "prefix": "sfd.init"}, "sfd.status": {"body": "sfd.status(${1:drv})", "description": "sfd.status(drv) - \u68c0\u67e5spi flash\u72b6\u6001\n\u4f20\u5165\u503c\uff1a\nuserdata sfd.init\u8fd4\u56de\u7684\u6570\u636e\u7ed3\u6784\n\u8fd4\u56de\u503c\uff1a\nint \u72b6\u6001\u503c, 0 \u672a\u521d\u59cb\u5316\u6210\u529f,1\u521d\u59cb\u5316\u6210\u529f\u4e14\u7a7a\u95f2,2\u6b63\u5fd9\n\u4f8b\u5b50\uff1a\nlocal drv = sfd.init(\"spi\", 0, 17)\nif drv then\n log.info(\"sfd\", \"status\", sfd.status(drv))\nend\n", "prefix": "sfd.status"}, "sfd.read": {"body": "sfd.read(${1:drv},${2:offset},${3:len})", "description": "sfd.read(drv, offset, len) - \u8bfb\u53d6\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nuserdata sfd.init\u8fd4\u56de\u7684\u6570\u636e\u7ed3\u6784\nint \u8d77\u59cb\u504f\u79fb\u91cf\nint \u8bfb\u53d6\u957f\u5ea6,\u5f53\u524d\u9650\u5236\u5728256\u4ee5\u5185\n\u8fd4\u56de\u503c\uff1a\nstring \u6570\u636e\n\u4f8b\u5b50\uff1a\nlocal drv = sfd.init(\"spi\", 0, 17)\nif drv then\n log.info(\"sfd\", \"read\", sfd.read(drv, 0x100, 256))\nend\n", "prefix": "sfd.read"}, "sfd.write": {"body": "sfd.write(${1:drv},${2:offset},${3:data})", "description": "sfd.write(drv, offset, data) - \u5199\u5165\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nuserdata sfd.init\u8fd4\u56de\u7684\u6570\u636e\u7ed3\u6784\nint \u8d77\u59cb\u504f\u79fb\u91cf\nstring \u9700\u8981\u5199\u5165\u7684\u6570\u636e,\u5f53\u524d\u652f\u6301256\u5b57\u8282\u53ca\u4ee5\u4e0b\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u8fd4\u56detrue,\u5931\u8d25\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\nlocal drv = sfd.init(\"spi\", 0, 17)\nif drv then\n log.info(\"sfd\", \"write\", sfd.write(drv, 0x100, \"hi,luatos\"))\nend\n", "prefix": "sfd.write"}, "sfd.erase": {"body": "sfd.erase(${1:drv},${2:offset})", "description": "sfd.erase(drv, offset) - \u64e6\u9664\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nuserdata sfd.init\u8fd4\u56de\u7684\u6570\u636e\u7ed3\u6784\nint \u8d77\u59cb\u504f\u79fb\u91cf\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u8fd4\u56detrue,\u5931\u8d25\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\nlocal drv = sfd.init(\"spi\", 0, 17)\nif drv then\n log.info(\"sfd\", \"write\", sfd.erase(drv, 0x100))\nend\n", "prefix": "sfd.erase"}, "sfd.id": {"body": "sfd.id(${1:drv})", "description": "sfd.id(drv) - \u82af\u7247\u552f\u4e00id\n\u4f20\u5165\u503c\uff1a\nuserdata sfd.init\u8fd4\u56de\u7684\u6570\u636e\u7ed3\u6784\n\u8fd4\u56de\u503c\uff1a\nstring 8\u5b57\u8282(64bit)\u7684\u82af\u7247id\n\u4f8b\u5b50\uff1a\nlocal drv = sfd.init(\"spi\", 0, 17)\nif drv then\n log.info(\"sfd\", \"chip id\", sfd.id(drv))\nend\n", "prefix": "sfd.id"}, "sfud.init": {"body": "sfud.init(${1:spi_id},${2:spi_cs},${3:spi_bandrate)/sfud.init(spi_device})", "description": "sfud.init(spi_id, spi_cs, spi_bandrate)/sfud.init(spi_device) - \u521d\u59cb\u5316sfud\n\u4f20\u5165\u503c\uff1a\nint spi_id SPI\u7684ID/userdata spi_device\nint spi_cs SPI\u7684\u7247\u9009\nint spi_bandrate SPI\u7684\u9891\u7387\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n--spi\nlog.info(\"sfud.init\",sfud.init(0,20,20 * 1000 * 1000))\n--spi_device\nlocal spi_device = spi.deviceSetup(0,17,0,0,8,2000000,spi.MSB,1,0)\nlog.info(\"sfud.init\",sfud.init(spi_device))\n", "prefix": "sfud.init"}, "sfud.getDeviceNum": {"body": "sfud.getDeviceNum()", "description": "sfud.getDeviceNum() - \u83b7\u53d6flash\u8bbe\u5907\u4fe1\u606f\u8868\u4e2d\u7684\u8bbe\u5907\u603b\u6570\n\u8fd4\u56de\u503c\uff1a\nint \u8fd4\u56de\u8bbe\u5907\u603b\u6570\n\u4f8b\u5b50\uff1a\nlog.info(\"sfud.getDeviceNum\",sfud.getDeviceNum())\n", "prefix": "sfud.getDeviceNum"}, "sfud.getDevice": {"body": "sfud.getDevice(${1:index})", "description": "sfud.getDevice(index) - \u901a\u8fc7flash\u4fe1\u606f\u8868\u4e2d\u7684\u7d22\u5f15\u83b7\u53d6flash\u8bbe\u5907\n\u4f20\u5165\u503c\uff1a\nint index flash\u4fe1\u606f\u8868\u4e2d\u7684\u7d22\u5f15\n\u8fd4\u56de\u503c\uff1a\nuserdata \u6210\u529f\u8fd4\u56de\u4e00\u4e2a\u6570\u636e\u7ed3\u6784,\u5426\u5219\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\nlocal sfud_device = sfud.getDevice(1)\n", "prefix": "sfud.getDevice"}, "sfud.getDeviceTable": {"body": "sfud.getDeviceTable()", "description": "sfud.getDeviceTable() - \u83b7\u53d6flash\u8bbe\u5907\u4fe1\u606f\u8868\n\u8fd4\u56de\u503c\uff1a\nuserdata \u6210\u529f\u8fd4\u56de\u4e00\u4e2a\u6570\u636e\u7ed3\u6784,\u5426\u5219\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\nlocal sfud_device = sfud.getDeviceTable()\n", "prefix": "sfud.getDeviceTable"}, "sfud.chipErase": {"body": "sfud.chipErase(${1:flash})", "description": "sfud.chipErase(flash) - \u64e6\u9664 Flash \u5168\u90e8\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nuserdata flash Flash \u8bbe\u5907\u5bf9\u8c61 sfud.get_device_table()\u8fd4\u56de\u7684\u6570\u636e\u7ed3\u6784\n\u8fd4\u56de\u503c\uff1a\nint \u6210\u529f\u8fd4\u56de0\n\u4f8b\u5b50\uff1a\nsfud.chipErase(flash)\n", "prefix": "sfud.chipErase"}, "sfud.erase": {"body": "sfud.erase(${1:flash},${2:add},${3:size})", "description": "sfud.erase(flash,add,size) - \u64e6\u9664 Flash \u6307\u5b9a\u5730\u5740\u6307\u5b9a\u5927\u5c0f\n\u4f20\u5165\u503c\uff1a\nuserdata flash Flash \u8bbe\u5907\u5bf9\u8c61 sfud.get_device_table()\u8fd4\u56de\u7684\u6570\u636e\u7ed3\u6784\nnumber add \u64e6\u9664\u5730\u5740\nnumber size \u64e6\u9664\u5927\u5c0f\n\u8fd4\u56de\u503c\uff1a\nint \u6210\u529f\u8fd4\u56de0\n\u4f8b\u5b50\uff1a\nsfud.erase(flash,add,size)\n", "prefix": "sfud.erase"}, "sfud.read": {"body": "sfud.read(${1:flash},${2:addr},${3:size})", "description": "sfud.read(flash, addr, size) - \u8bfb\u53d6 Flash \u6570\u636e\n\u4f20\u5165\u503c\uff1a\nuserdata flash Flash \u8bbe\u5907\u5bf9\u8c61 sfud.get_device_table()\u8fd4\u56de\u7684\u6570\u636e\u7ed3\u6784\nint addr \u8d77\u59cb\u5730\u5740\nint size \u4ece\u8d77\u59cb\u5730\u5740\u5f00\u59cb\u8bfb\u53d6\u6570\u636e\u7684\u603b\u5927\u5c0f\n\u8fd4\u56de\u503c\uff1a\nstring data \u8bfb\u53d6\u5230\u7684\u6570\u636e\n\u4f8b\u5b50\uff1a\nlog.info(\"sfud.read\",sfud.read(sfud_device,1024,4))\n", "prefix": "sfud.read"}, "sfud.write": {"body": "sfud.write(${1:flash},${2:addr},${3:data})", "description": "sfud.write(flash, addr,data) - \u5411 Flash \u5199\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nuserdata flash Flash \u8bbe\u5907\u5bf9\u8c61 sfud.get_device_table()\u8fd4\u56de\u7684\u6570\u636e\u7ed3\u6784\nint addr \u8d77\u59cb\u5730\u5740\nstring data \u5f85\u5199\u5165\u7684\u6570\u636e\n\u8fd4\u56de\u503c\uff1a\nint \u6210\u529f\u8fd4\u56de0\n\u4f8b\u5b50\uff1a\nlog.info(\"sfud.write\",sfud.write(sfud_device,1024,\"sfud\"))\n", "prefix": "sfud.write"}, "sfud.eraseWrite": {"body": "sfud.eraseWrite(${1:flash},${2:addr},${3:data})", "description": "sfud.eraseWrite(flash, addr,data) - \u5148\u64e6\u9664\u518d\u5f80 Flash \u5199\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nuserdata flash Flash \u8bbe\u5907\u5bf9\u8c61 sfud.get_device_table()\u8fd4\u56de\u7684\u6570\u636e\u7ed3\u6784\nint addr \u8d77\u59cb\u5730\u5740\nstring data \u5f85\u5199\u5165\u7684\u6570\u636e\n\u8fd4\u56de\u503c\uff1a\nint \u6210\u529f\u8fd4\u56de0\n\u4f8b\u5b50\uff1a\nlog.info(\"sfud.eraseWrite\",sfud.eraseWrite(sfud_device,1024,\"sfud\"))\n", "prefix": "sfud.eraseWrite"}, "sfud.mount": {"body": "sfud.mount(${1:flash},${2:mount_point},${3:offset},${4:maxsize})", "description": "sfud.mount(flash, mount_point, offset, maxsize) - \u6302\u8f7dsfud lfs\u6587\u4ef6\u7cfb\u7edf\n\u4f20\u5165\u503c\uff1a\nuserdata flash Flash \u8bbe\u5907\u5bf9\u8c61 sfud.get_device_table()\u8fd4\u56de\u7684\u6570\u636e\u7ed3\u6784\nstring mount_point \u6302\u8f7d\u76ee\u5f55\u540d\nint \u8d77\u59cb\u504f\u79fb\u91cf,\u9ed8\u8ba40\nint \u603b\u5927\u5c0f, \u9ed8\u8ba4\u662f\u6574\u4e2aflash\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue\n\u4f8b\u5b50\uff1a\nlog.info(\"sfud.mount\",sfud.mount(sfud_device,\"/sfud\"))\nlog.info(\"fsstat\", fs.fsstat(\"/\"))\nlog.info(\"fsstat\", fs.fsstat(\"/sfud\"))\n", "prefix": "sfud.mount"}, "sms.send": {"body": "sms.send(${1:phone},${2:msg},${3:auto_phone_fix})", "description": "sms.send(phone, msg, auto_phone_fix) - \u53d1\u9001\u77ed\u4fe1\n\u4f20\u5165\u503c\uff1a\nstring \u7535\u8bdd\u53f7\u7801,\u5fc5\u586b\nstring \u77ed\u4fe1\u5185\u5bb9,\u5fc5\u586b\nbool \u662f\u5426\u81ea\u52a8\u5904\u7406\u7535\u8bdd\u53f7\u53f7\u7801\u7684\u683c\u5f0f,\u9ed8\u8ba4\u662f\u6309\u77ed\u4fe1\u5185\u5bb9\u548c\u53f7\u7801\u683c\u5f0f\u8fdb\u884c\u81ea\u52a8\u5224\u65ad, \u8bbe\u7f6e\u4e3afalse\u53ef\u7981\u7528\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\u6216nil\n", "prefix": "sms.send"}, "sms.setNewSmsCb": {"body": "sms.setNewSmsCb(${1:func})", "description": "sms.setNewSmsCb(func) - \u8bbe\u7f6e\u65b0SMS\u7684\u56de\u8c03\u51fd\u6570\n\u4f20\u5165\u503c\uff1a\nfunction \u56de\u8c03\u51fd\u6570, 3\u4e2a\u53c2\u6570, num, txt, metas\n\u8fd4\u56de\u503c\uff1a\nnil \u4f20\u5165\u662f\u51fd\u6570\u5c31\u80fd\u6210\u529f,\u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n\nsms.setNewSmsCb(function(num, txt, metas)\n -- num \u624b\u673a\u53f7\u7801\n -- txt \u6587\u672c\u5185\u5bb9\n -- metas \u77ed\u4fe1\u7684\u5143\u6570\u636e,\u4f8b\u5982\u53d1\u9001\u7684\u65f6\u95f4,\u957f\u77ed\u4fe1\u7f16\u53f7\n -- \u6ce8\u610f, \u957f\u77ed\u4fe1\u4f1a\u81ea\u52a8\u5408\u5e76\u6210\u4e00\u6761txt\n log.info(\"sms\", num, txt, metas and json.encode(metas) or \"\")\nend)\n", "prefix": "sms.setNewSmsCb"}, "sms.autoLong": {"body": "sms.autoLong(${1:mode})", "description": "sms.autoLong(mode) - \u8bbe\u7f6e\u957f\u77ed\u4fe1\u7684\u81ea\u52a8\u5408\u5e76\u529f\u80fd\n\u4f20\u5165\u503c\uff1a\nbool \u662f\u5426\u81ea\u52a8\u5408\u5e76,true\u4e3a\u81ea\u52a8\u5408\u5e76,\u4e3a\u9ed8\u8ba4\u503c\n\u8fd4\u56de\u503c\uff1a\nbool \u8bbe\u7f6e\u540e\u7684\u503c\n\u4f8b\u5b50\uff1a\n-- \u7981\u7528\u957f\u77ed\u4fe1\u7684\u81ea\u52a8\u5408\u5e76, \u4e00\u822c\u4e0d\u9700\u8981\u7981\u7528\nsms.autoLong(false)\n", "prefix": "sms.autoLong"}, "sms.clearLong": {"body": "sms.clearLong()", "description": "sms.clearLong() - \u6e05\u9664\u957f\u77ed\u4fe1\u7f13\u5b58\n\u8fd4\u56de\u503c\uff1a\nint \u6e05\u7406\u6389\u7684\u7247\u6bb5\u6570\u91cf\n\u4f8b\u5b50\uff1a\nsms.clearLong()\n", "prefix": "sms.clearLong"}, "socket.sntp": {"body": "socket.sntp(${1:sntp_server})", "description": "socket.sntp(sntp_server) - sntp\u65f6\u95f4\u540c\u6b65\n\u4f20\u5165\u503c\uff1a\nstring/table sntp\u670d\u52a1\u5668\u5730\u5740 \u9009\u586b\nint \u9002\u914d\u5668\u5e8f\u53f7\uff0c \u53ea\u80fd\u662fsocket.ETH0\uff08\u5916\u7f6e\u4ee5\u592a\u7f51\uff09\uff0csocket.LWIP_ETH\uff08\u5185\u7f6e\u4ee5\u592a\u7f51\uff09\uff0csocket.LWIP_STA\uff08\u5185\u7f6eWIFI\u7684STA\uff09\uff0csocket.LWIP_AP\uff08\u5185\u7f6eWIFI\u7684AP\uff09\uff0csocket.LWIP_GP\uff08\u5185\u7f6e\u8702\u7a9d\u7f51\u7edc\u7684GPRS\uff09\uff0csocket.USB\uff08\u5916\u7f6eUSB\u7f51\u5361\uff09\uff0c\u5982\u679c\u4e0d\u586b\uff0c\u4f18\u5148\u9009\u62e9soc\u5e73\u53f0\u81ea\u5e26\u80fd\u4e0a\u5916\u7f51\u7684\u9002\u914d\u5668\uff0c\u82e5\u4ecd\u7136\u6ca1\u6709\uff0c\u9009\u62e9\u6700\u540e\u4e00\u4e2a\u6ce8\u518c\u7684\u9002\u914d\u5668\n\u4f8b\u5b50\uff1a\nsocket.sntp()\n--socket.sntp(\"ntp.aliyun.com\") --\u81ea\u5b9a\u4e49sntp\u670d\u52a1\u5668\u5730\u5740\n--socket.sntp({\"ntp.aliyun.com\",\"ntp1.aliyun.com\",\"ntp2.aliyun.com\"}) --sntp\u81ea\u5b9a\u4e49\u670d\u52a1\u5668\u5730\u5740\n--socket.sntp(nil, socket.ETH0) --sntp\u81ea\u5b9a\u4e49\u9002\u914d\u5668\u5e8f\u53f7\nsys.subscribe(\"NTP_UPDATE\", function()\n log.info(\"sntp\", \"time\", os.date())\nend)\nsys.subscribe(\"NTP_ERROR\", function()\n log.info(\"socket\", \"sntp error\")\n socket.sntp()\nend)\n", "prefix": "socket.sntp"}, "socket.localIP": {"body": "socket.localIP(${1:adapter})", "description": "socket.localIP(adapter) - \u83b7\u53d6\u672c\u5730ip\n\u4f20\u5165\u503c\uff1a\nint \u9002\u914d\u5668\u5e8f\u53f7\uff0c \u53ea\u80fd\u662fsocket.ETH0\uff08\u5916\u7f6e\u4ee5\u592a\u7f51\uff09\uff0csocket.LWIP_ETH\uff08\u5185\u7f6e\u4ee5\u592a\u7f51\uff09\uff0csocket.LWIP_STA\uff08\u5185\u7f6eWIFI\u7684STA\uff09\uff0csocket.LWIP_AP\uff08\u5185\u7f6eWIFI\u7684AP\uff09\uff0csocket.LWIP_GP\uff08\u5185\u7f6e\u8702\u7a9d\u7f51\u7edc\u7684GPRS\uff09\uff0csocket.USB\uff08\u5916\u7f6eUSB\u7f51\u5361\uff09\uff0c\u5982\u679c\u4e0d\u586b\uff0c\u4f18\u5148\u9009\u62e9soc\u5e73\u53f0\u81ea\u5e26\u80fd\u4e0a\u5916\u7f51\u7684\u9002\u914d\u5668\uff0c\u82e5\u4ecd\u7136\u6ca1\u6709\uff0c\u9009\u62e9\u6700\u540e\u4e00\u4e2a\u6ce8\u518c\u7684\u9002\u914d\u5668\n\u8fd4\u56de\u503c\uff1a\nstring \u901a\u5e38\u662f\u5185\u7f51ip, \u4e5f\u53ef\u80fd\u662f\u5916\u7f51ip, \u53d6\u51b3\u4e8e\u8fd0\u8425\u5546\u7684\u5206\u914d\nstring \u7f51\u7edc\u63a9\u7801\nstring \u7f51\u5173IP\n\u4f8b\u5b50\uff1a\nsys.taskInit(function()\n while 1 do\n sys.wait(3000)\n log.info(\"socket\", \"ip\", socket.localIP())\n\t\t-- \u8f93\u51fa\u793a\u4f8b\n\t\t-- 62.39.244.10\t255.255.255.255\t0.0.0.0\n end\nend)\n", "prefix": "socket.localIP"}, "socket.create": {"body": "socket.create(${1:adapter},${2:cb})", "description": "socket.create(adapter, cb) - \u5728\u67d0\u4e2a\u9002\u914d\u7684\u7f51\u5361\u4e0a\u7533\u8bf7\u4e00\u4e2asocket_ctrl\n\u4f20\u5165\u503c\uff1a\nint \u9002\u914d\u5668\u5e8f\u53f7\uff0c \u53ea\u80fd\u662fsocket.ETH0\uff08\u5916\u7f6e\u4ee5\u592a\u7f51\uff09\uff0csocket.LWIP_ETH\uff08\u5185\u7f6e\u4ee5\u592a\u7f51\uff09\uff0csocket.LWIP_STA\uff08\u5185\u7f6eWIFI\u7684STA\uff09\uff0csocket.LWIP_AP\uff08\u5185\u7f6eWIFI\u7684AP\uff09\uff0csocket.LWIP_GP\uff08\u5185\u7f6e\u8702\u7a9d\u7f51\u7edc\u7684GPRS\uff09\uff0csocket.USB\uff08\u5916\u7f6eUSB\u7f51\u5361\uff09\uff0c\u5982\u679c\u4e0d\u586b\uff0c\u4f18\u5148\u9009\u62e9soc\u5e73\u53f0\u81ea\u5e26\u80fd\u4e0a\u5916\u7f51\u7684\u9002\u914d\u5668\uff0c\u82e5\u4ecd\u7136\u6ca1\u6709\uff0c\u9009\u62e9\u6700\u540e\u4e00\u4e2a\u6ce8\u518c\u7684\u9002\u914d\u5668\nstring or function string\u4e3a\u6d88\u606f\u901a\u77e5\u7684taskName\uff0cfunction\u5219\u4e3a\u56de\u8c03\u51fd\u6570\uff0c\u5982\u679c\u56fa\u4ef6\u6ca1\u6709\u5185\u7f6esys_wait\uff0c\u5219\u5fc5\u987b\u662ffunction\n", "prefix": "socket.create"}, "socket.debug": {"body": "socket.debug(${1:ctrl},${2:onoff})", "description": "socket.debug(ctrl, onoff) - \u914d\u7f6e\u662f\u5426\u6253\u5f00debug\u4fe1\u606f\n\u4f20\u5165\u503c\uff1a\nuser_data socket.create\u5f97\u5230\u7684ctrl\nboolean true \u6253\u5f00debug\u5f00\u5173\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n-- \u6253\u5f00\u8c03\u8bd5\u4fe1\u606f,\u9ed8\u8ba4\u662f\u5173\u95ed\u72b6\u6001\nsocket.debug(ctrl, true)\n", "prefix": "socket.debug"}, "socket.config": {"body": "socket.config(${1:ctrl},${2:local_port},${3:is_udp},${4:is_tls},${5:keep_idle},${6:keep_interval},${7:keep_cnt},${8:server_cert},${9:client_cert},${10:client_key},${11:client_password})", "description": "socket.config(ctrl, local_port, is_udp, is_tls, keep_idle, keep_interval, keep_cnt, server_cert, client_cert, client_key, client_password) - \u914d\u7f6enetwork\u4e00\u4e9b\u4fe1\u606f\uff0c\n\u4f20\u5165\u503c\uff1a\nuser_data socket.create\u5f97\u5230\u7684ctrl\nint \u672c\u5730\u7aef\u53e3\u53f7\uff0c\u5c0f\u7aef\u683c\u5f0f\uff0c\u5982\u679c\u4e0d\u5199\uff0c\u5219\u81ea\u52a8\u5206\u914d\u4e00\u4e2a\uff0c\u5982\u679c\u7528\u6237\u586b\u4e86\u7aef\u53e3\u53f7\u5219\u9700\u8981\u5c0f\u4e8e60000, \u9ed8\u8ba4\u4e0d\u5199\nboolean \u662f\u5426\u662fUDP\uff0c\u9ed8\u8ba4false\nboolean \u662f\u5426\u662f\u52a0\u5bc6\u4f20\u8f93\uff0c\u9ed8\u8ba4false\nint tcp keep live\u6a21\u5f0f\u4e0b\u7684idle\u65f6\u95f4\uff08\u79d2\uff09\uff0c\u5982\u679c\u7559\u7a7a\u5219\u8868\u793a\u4e0d\u542f\u7528\uff0c\u5982\u679c\u662f\u4e0d\u652f\u6301\u6807\u51c6posix\u63a5\u53e3\u7684\u7f51\u5361\uff08\u6bd4\u5982W5500\uff09\uff0c\u5219\u4e3a\u5fc3\u8df3\u95f4\u9694\nint tcp keep live\u6a21\u5f0f\u4e0b\u7684\u63a2\u6d4b\u95f4\u9694\u65f6\u95f4\uff08\u79d2\uff09\nint tcp keep live\u6a21\u5f0f\u4e0b\u7684\u63a2\u6d4b\u6b21\u6570\nstring TCP\u6a21\u5f0f\u4e0b\u7684\u670d\u52a1\u5668ca\u8bc1\u4e66\u6570\u636e\uff0cUDP\u6a21\u5f0f\u4e0b\u7684PSK\uff0c\u4e0d\u9700\u8981\u52a0\u5bc6\u4f20\u8f93\u5199nil\uff0c\u540e\u7eed\u53c2\u6570\u4e5f\u5168\u90e8nil\nstring TCP\u6a21\u5f0f\u4e0b\u7684\u5ba2\u6237\u7aefca\u8bc1\u4e66\u6570\u636e\uff0cUDP\u6a21\u5f0f\u4e0b\u7684PSK-ID\uff0cTCP\u6a21\u5f0f\u4e0b\u5982\u679c\u4e0d\u9700\u8981\u9a8c\u8bc1\u5ba2\u6237\u7aef\u8bc1\u4e66\u65f6\uff0c\u5ffd\u7565\uff0c\u4e00\u822c\u4e0d\u9700\u8981\u9a8c\u8bc1\u5ba2\u6237\u7aef\u8bc1\u4e66\nstring TCP\u6a21\u5f0f\u4e0b\u7684\u5ba2\u6237\u7aef\u79c1\u94a5\u52a0\u5bc6\u6570\u636e\nstring TCP\u6a21\u5f0f\u4e0b\u7684\u5ba2\u6237\u7aef\u79c1\u94a5\u53e3\u4ee4\u6570\u636e\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u8fd4\u56detrue\uff0c\u5931\u8d25\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n--\u6700\u666e\u901a\u7684TCP\u4f20\u8f93\nsocket.config(ctrl)\n--\u6700\u666e\u901a\u7684\u52a0\u5bc6TCP\u4f20\u8f93\uff0c\u8bc1\u4e66\u90fd\u4e0d\u7528\u9a8c\u8bc1\u7684\u90a3\u79cd\nsocket.config(ctrl, nil, nil ,true)\n", "prefix": "socket.config"}, "socket.linkup": {"body": "socket.linkup(${1:ctrl})", "description": "socket.linkup(ctrl) - \u7b49\u5f85\u7f51\u5361linkup\n\u4f20\u5165\u503c\uff1a\nuser_data socket.create\u5f97\u5230\u7684ctrl\n\u8fd4\u56de\u503c\uff1a\nboolean true\u6ca1\u6709\u5f02\u5e38\u53d1\u751f\uff0cfalse\u5931\u8d25\u4e86\uff0c\u5982\u679cfalse\u5219\u4e0d\u9700\u8981\u770b\u4e0b\u4e00\u4e2a\u8fd4\u56de\u503c\u4e86\nboolean true\u5df2\u7ecflinkup\uff0cfalse\u6ca1\u6709linkup\uff0c\u4e4b\u540e\u9700\u8981\u63a5\u6536socket.LINK\u6d88\u606f\n\u4f8b\u5b50\uff1a\n-- \u5224\u65ad\u4e00\u4e0b\u662f\u5426\u5df2\u7ecf\u8054\u7f51\nlocal succ, result = socket.linkup(ctrl)\n", "prefix": "socket.linkup"}, "socket.connect": {"body": "socket.connect(${1:ctrl},${2:ip},${3:remote_port},${4:need_ipv6_dns})", "description": "socket.connect(ctrl, ip, remote_port, need_ipv6_dns) - \u4f5c\u4e3a\u5ba2\u6237\u7aef\u8fde\u63a5\u670d\u52a1\u5668\n\u4f20\u5165\u503c\uff1a\nuser_data socket.create\u5f97\u5230\u7684ctrl\nstring or int ip\u6216\u8005\u57df\u540d\uff0c\u5982\u679c\u662fIPV4\uff0c\u53ef\u4ee5\u662f\u5927\u7aef\u683c\u5f0f\u7684int\u503c\nint \u670d\u52a1\u5668\u7aef\u53e3\u53f7\uff0c\u5c0f\u7aef\u683c\u5f0f\nboolean \u57df\u540d\u89e3\u6790\u662f\u5426\u8981IPV6\uff0ctrue\u8981\uff0cfalse\u4e0d\u8981\uff0c\u9ed8\u8ba4false\u4e0d\u8981\uff0c\u53ea\u6709\u652f\u6301IPV6\u7684\u534f\u8bae\u6808\u624d\u6709\u6548\u679c\n\u8fd4\u56de\u503c\uff1a\nboolean true\u6ca1\u6709\u5f02\u5e38\u53d1\u751f\uff0cfalse\u5931\u8d25\u4e86\uff0c\u5982\u679cfalse\u5219\u4e0d\u9700\u8981\u770b\u4e0b\u4e00\u4e2a\u8fd4\u56de\u503c\u4e86\uff0c\u5982\u679c\u6709\u5f02\u5e38\uff0c\u540e\u7eed\u8981close\nboolean true\u5df2\u7ecfconnect\uff0cfalse\u6ca1\u6709connect\uff0c\u4e4b\u540e\u9700\u8981\u63a5\u6536socket.ON_LINE\u6d88\u606f\n\u4f8b\u5b50\uff1a\n\nlocal succ, result = socket.connect(ctrl, \"netlab.luatos.com\", 40123)\n\n--[[\n\u5e38\u89c1\u7684\u8fde\u63a5\u5931\u8d25\u7684code\u503c, \u4f1a\u5728\u65e5\u5fd7\u4e2d\u663e\u793a\n-1 \u5e95\u5c42\u5185\u5b58\u4e0d\u8db3\n-3 \u8d85\u65f6\n-8 \u7aef\u53e3\u5df2\u7ecf\u88ab\u5360\u7528\n-11 \u94fe\u63a5\u672a\u5efa\u7acb\n-13 \u6a21\u5757\u4e3b\u52a8\u65ad\u5f00\u8fde\u63a5\n-14 \u670d\u52a1\u5668\u4e3b\u52a8\u65ad\u5f00\u8fde\u63a5\n]]\n", "prefix": "socket.connect"}, "socket.discon": {"body": "socket.discon(${1:ctrl})", "description": "socket.discon(ctrl) - \u4f5c\u4e3a\u5ba2\u6237\u7aef\u65ad\u5f00\u8fde\u63a5\n\u4f20\u5165\u503c\uff1a\nuser_data socket.create\u5f97\u5230\u7684ctrl\n\u8fd4\u56de\u503c\uff1a\nboolean true\u6ca1\u6709\u5f02\u5e38\u53d1\u751f\uff0cfalse\u5931\u8d25\u4e86\uff0c\u5982\u679cfalse\u5219\u4e0d\u9700\u8981\u770b\u4e0b\u4e00\u4e2a\u8fd4\u56de\u503c\u4e86\nboolean true\u5df2\u7ecf\u65ad\u5f00\uff0cfalse\u6ca1\u6709\u65ad\u5f00\uff0c\u4e4b\u540e\u9700\u8981\u63a5\u6536socket.CLOSED\u6d88\u606f\n\u4f8b\u5b50\uff1a\nlocal succ, result = socket.discon(ctrl)\n", "prefix": "socket.discon"}, "socket.close": {"body": "socket.close(${1:ctrl})", "description": "socket.close(ctrl) - \u5f3a\u5236\u5173\u95edsocket\n\u4f20\u5165\u503c\uff1a\nuser_data socket.create\u5f97\u5230\u7684ctrl\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n", "prefix": "socket.close"}, "socket.tx": {"body": "socket.tx(${1:ctrl},${2:data},${3:ip},${4:port},${5:flag})", "description": "socket.tx(ctrl, data, ip, port, flag) - \u53d1\u9001\u6570\u636e\u7ed9\u5bf9\u7aef\uff0cUDP\u5355\u6b21\u53d1\u9001\u4e0d\u8981\u8d85\u8fc71460\u5b57\u8282\uff0c\u5426\u5219\u5f88\u5bb9\u6613\u5931\u8d25\n\u4f20\u5165\u503c\uff1a\nuser_data socket.create\u5f97\u5230\u7684ctrl\nstring or user_data zbuff \u8981\u53d1\u9001\u7684\u6570\u636e\nstring or int \u5bf9\u7aefIP\uff0c\u5982\u679c\u662fTCP\u5e94\u7528\u5219\u5ffd\u7565\uff0c\u5982\u679c\u662fUDP\uff0c\u5982\u679c\u7559\u7a7a\u5219\u7528connect\u65f6\u5019\u7684\u53c2\u6570\uff0c\u5982\u679c\u662fIPV4\uff0c\u53ef\u4ee5\u662f\u5927\u7aef\u683c\u5f0f\u7684int\u503c\nint \u5bf9\u7aef\u7aef\u53e3\u53f7\uff0c\u5c0f\u7aef\u683c\u5f0f\uff0c\u5982\u679c\u662fTCP\u5e94\u7528\u5219\u5ffd\u7565\uff0c\u5982\u679c\u662fUDP\uff0c\u5982\u679c\u7559\u7a7a\u5219\u7528connect\u65f6\u5019\u7684\u53c2\u6570\nint \u53d1\u9001\u53c2\u6570\uff0c\u76ee\u524d\u9884\u7559\uff0c\u4e0d\u8d77\u4f5c\u7528\n\u8fd4\u56de\u503c\uff1a\nboolean true\u6ca1\u6709\u5f02\u5e38\u53d1\u751f\uff0cfalse\u5931\u8d25\u4e86\uff0c\u5982\u679cfalse\u5219\u4e0d\u9700\u8981\u770b\u4e0b\u4e00\u4e2a\u8fd4\u56de\u503c\u4e86\uff0c\u5982\u679cfalse\uff0c\u540e\u7eed\u8981close\nboolean true\u7f13\u51b2\u533a\u6ee1\u4e86\uff0cfalse\u6ca1\u6709\u6ee1\uff0c\u5982\u679ctrue\uff0c\u5219\u9700\u8981\u7b49\u5f85\u4e00\u6bb5\u65f6\u95f4\u6216\u8005\u7b49\u5230socket.TX_OK\u6d88\u606f\u540e\u518d\u5c1d\u8bd5\u53d1\u9001\uff0c\u540c\u65f6\u5ffd\u7565\u4e0b\u4e00\u4e2a\u8fd4\u56de\u503c\nboolean true\u5df2\u7ecf\u6536\u5230\u5e94\u7b54\uff0cfalse\u6ca1\u6709\u6536\u5230\u5e94\u7b54\uff0c\u4e4b\u540e\u9700\u8981\u63a5\u6536socket.TX_OK\u6d88\u606f\uff0c \u4e5f\u53ef\u4ee5\u5ffd\u7565\u7ee7\u7eed\u53d1\u9001\uff0c\u76f4\u5230full==true\n\u4f8b\u5b50\uff1a\n\nlocal succ, full, result = socket.tx(ctrl, \"123456\", \"xxx.xxx.xxx.xxx\", xxxx)\n", "prefix": "socket.tx"}, "socket.rx": {"body": "socket.rx(${1:ctrl},${2:buff},${3:flag})", "description": "socket.rx(ctrl, buff, flag) - \u63a5\u6536\u5bf9\u7aef\u53d1\u51fa\u7684\u6570\u636e\uff0c\u6ce8\u610f\u6570\u636e\u5df2\u7ecf\u7f13\u5b58\u5728\u5e95\u5c42\uff0c\u4f7f\u7528\u672c\u51fd\u6570\u53ea\u662f\u63d0\u53d6\u51fa\u6765\uff0cUDP\u6a21\u5f0f\u4e0b\u4e00\u6b21\u53ea\u4f1a\u53d6\u51fa\u4e00\u4e2a\u6570\u636e\u5305\n\u4f20\u5165\u503c\uff1a\nuser_data socket.create\u5f97\u5230\u7684ctrl\nuser_data zbuff \u5b58\u653e\u63a5\u6536\u7684\u6570\u636e\uff0c\u5982\u679c\u7f13\u51b2\u533a\u4e0d\u591f\u5927\u4f1a\u81ea\u52a8\u6269\u5bb9\nint \u63a5\u6536\u53c2\u6570\uff0c\u76ee\u524d\u9884\u7559\uff0c\u4e0d\u8d77\u4f5c\u7528\n\u8fd4\u56de\u503c\uff1a\nboolean true\u6ca1\u6709\u5f02\u5e38\u53d1\u751f\uff0cfalse\u5931\u8d25\u4e86\uff0c\u5982\u679cfalse\u5219\u4e0d\u9700\u8981\u770b\u4e0b\u4e00\u4e2a\u8fd4\u56de\u503c\u4e86\uff0c\u5982\u679cfalse\uff0c\u540e\u7eed\u8981close\nint \u672c\u6b21\u63a5\u6536\u5230\u6570\u636e\u957f\u5ea6\nstring \u5bf9\u7aefIP\uff0c\u53ea\u6709UDP\u6a21\u5f0f\u4e0b\u624d\u6709\u610f\u4e49\uff0cTCP\u6a21\u5f0f\u8fd4\u56denil\uff0c\u6ce8\u610f\u8fd4\u56de\u7684\u683c\u5f0f\uff0c\u5982\u679c\u662fIPV4\uff0c1byte 0x00 + 4byte\u5730\u5740 \u5982\u679c\u662fIPV6\uff0c1byte 0x01 + 16byte\u5730\u5740\nint \u5bf9\u7aefport\uff0c\u53ea\u6709UDP\u6a21\u5f0f\u4e0b\u624d\u6709\u610f\u4e49\uff0cTCP\u6a21\u5f0f\u8fd4\u56de0\n\u4f8b\u5b50\uff1a\nlocal succ, data_len, ip, port = socket.rx(ctrl, buff)\n", "prefix": "socket.rx"}, "socket.wait": {"body": "socket.wait(${1:ctrl})", "description": "socket.wait(ctrl) - \u7b49\u5f85\u65b0\u7684socket\u6d88\u606f\uff0c\u5728\u8fde\u63a5\u6210\u529f\u548c\u53d1\u9001\u6570\u636e\u6210\u529f\u540e\uff0c\u4f7f\u7528\u4e00\u6b21\u5c06network\u72b6\u6001\u8f6c\u6362\u5230\u63a5\u6536\u65b0\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nuser_data socket.create\u5f97\u5230\u7684ctrl\n\u8fd4\u56de\u503c\uff1a\nboolean true\u6ca1\u6709\u5f02\u5e38\u53d1\u751f\uff0cfalse\u5931\u8d25\u4e86\uff0c\u5982\u679cfalse\u5219\u4e0d\u9700\u8981\u770b\u4e0b\u4e00\u4e2a\u8fd4\u56de\u503c\u4e86\uff0c\u5982\u679cfalse\uff0c\u540e\u7eed\u8981close\nboolean true\u6709\u65b0\u7684\u6570\u636e\u9700\u8981\u63a5\u6536\uff0cfalse\u6ca1\u6709\u6570\u636e\uff0c\u4e4b\u540e\u9700\u8981\u63a5\u6536socket.EVENT\u6d88\u606f\n\u4f8b\u5b50\uff1a\nlocal succ, result = socket.wait(ctrl)\n", "prefix": "socket.wait"}, "socket.listen": {"body": "socket.listen(${1:ctrl})", "description": "socket.listen(ctrl) - \u4f5c\u4e3a\u670d\u52a1\u7aef\u5f00\u59cb\u76d1\u542c\n\u4f20\u5165\u503c\uff1a\nuser_data socket.create\u5f97\u5230\u7684ctrl\n\u8fd4\u56de\u503c\uff1a\nboolean true\u6ca1\u6709\u5f02\u5e38\u53d1\u751f\uff0cfalse\u5931\u8d25\u4e86\uff0c\u5982\u679cfalse\u5219\u4e0d\u9700\u8981\u770b\u4e0b\u4e00\u4e2a\u8fd4\u56de\u503c\u4e86\uff0c\u5982\u679cfalse\uff0c\u540e\u7eed\u8981close\nboolean true\u5df2\u7ecfconnect\uff0cfalse\u6ca1\u6709connect\uff0c\u4e4b\u540e\u9700\u8981\u63a5\u6536socket.ON_LINE\u6d88\u606f\n\u4f8b\u5b50\uff1a\nlocal succ, result = socket.listen(ctrl)\n", "prefix": "socket.listen"}, "socket.accept": {"body": "socket.accept(${1:ctrl})", "description": "socket.accept(ctrl) - \u4f5c\u4e3a\u670d\u52a1\u7aef\u63a5\u6536\u5230\u4e00\u4e2a\u65b0\u7684\u5ba2\u6237\u7aef\uff0c\u6ce8\u610f\uff0c\u5982\u679c\u662f\u7c7b\u4f3cW5500\u7684\u786c\u4ef6\u534f\u8bae\u6808\u4e0d\u652f\u63011\u5bf9\u591a\uff0c\u5219\u4e0d\u9700\u8981\u7b2c\u4e8c\u4e2a\u53c2\u6570\n\u4f20\u5165\u503c\uff1a\nuser_data socket.create\u5f97\u5230\u7684ctrl\uff0c\u8fd9\u91cc\u662f\u670d\u52a1\u5668\u7aef\nstring or function or nil string\u4e3a\u6d88\u606f\u901a\u77e5\u7684taskName\uff0cfunction\u5219\u4e3a\u56de\u8c03\u51fd\u6570\uff0c\u548csocket.create\u53c2\u6570\u4e00\u81f4\n\u8fd4\u56de\u503c\uff1a\nboolean true\u6ca1\u6709\u5f02\u5e38\u53d1\u751f\uff0cfalse\u5931\u8d25\u4e86\uff0c\u5982\u679cfalse\u5219\u4e0d\u9700\u8981\u770b\u4e0b\u4e00\u4e2a\u8fd4\u56de\u503c\u4e86\uff0c\u5982\u679cfalse\uff0c\u540e\u7eed\u8981close\nuser_data or nil \u5982\u679c\u652f\u63011\u5bf9\u591a\uff0c\u5219\u4f1a\u8fd4\u56de\u65b0\u7684ctrl\uff0c\u81ea\u52a8create\uff0c\u5982\u679c\u4e0d\u652f\u6301\u5219\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\nlocal succ, new_netc = socket.listen(ctrl, cb)\n", "prefix": "socket.accept"}, "socket.release": {"body": "socket.release(${1:ctrl})", "description": "socket.release(ctrl) - \u4e3b\u52a8\u91ca\u653e\u6389network_ctrl\n", "prefix": "socket.release"}, "socket.setDNS": {"body": "socket.setDNS(${1:adapter_index},${2:dns_index},${3:ip})", "description": "socket.setDNS(adapter_index, dns_index, ip) - \u8bbe\u7f6eDNS\u670d\u52a1\u5668\n\u4f20\u5165\u503c\uff1a\nint \u9002\u914d\u5668\u5e8f\u53f7\uff0c \u53ea\u80fd\u662fsocket.ETH0\uff0csocket.STA\uff0csocket.AP\uff0c\u5982\u679c\u4e0d\u586b\uff0c\u4f1a\u9009\u62e9\u6700\u540e\u4e00\u4e2a\u6ce8\u518c\u7684\u9002\u914d\u5668\nint dns\u670d\u52a1\u5668\u5e8f\u53f7\uff0c\u4ece1\u5f00\u59cb\nstring or int dns\uff0c\u5982\u679c\u662fIPV4\uff0c\u53ef\u4ee5\u662f\u5927\u7aef\u683c\u5f0f\u7684int\u503c\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u8fd4\u56detrue\uff0c\u5931\u8d25\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- \u8bbe\u7f6e\u9ed8\u8ba4\u7f51\u7edc\u9002\u914d\u5668\u7684DNS\u914d\u7f6e\nsocket.setDNS(nil, 1, \"114.114.114.114\")\n-- \u8bbe\u7f6e\u5236\u5b9a\u7f51\u7edc\u9002\u914d\u5668\u7684DNS\u914d\u7f6e\nsocket.setDNS(socket.ETH0, 1, \"114.114.114.114\")\n", "prefix": "socket.setDNS"}, "socket.sslLog": {"body": "socket.sslLog(${1:log_level})", "description": "socket.sslLog(log_level) - \u8bbe\u7f6eSSL\u7684log\u767b\u8bb0\n\u4f20\u5165\u503c\uff1a\nint\tmbedtls log\u7b49\u7ea7\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n--[[\nSSL/TLS log\u7ea7\u522b\u8bf4\u660e\n0\u4e0d\u6253\u5370\n1\u53ea\u6253\u5370\u9519\u8bef\u548c\u8b66\n2\u5927\u90e8\u5206info\n3\u53ca3\u4ee5\u4e0a\u8be6\u7ec6\u7684debug\n\n\u8fc7\u591a\u7684\u4fe1\u606f\u53ef\u80fd\u4f1a\u9020\u6210\u5185\u5b58\u788e\u7247\u5316\n]]\n-- \u6253\u5370\u5927\u90e8\u5206info\u65e5\u5fd7\nsocket.sslLog(2)\n", "prefix": "socket.sslLog"}, "socket.adapter": {"body": "socket.adapter(${1:index})", "description": "socket.adapter(index) - \u67e5\u770b\u7f51\u5361\u9002\u914d\u5668\u7684\u8054\u7f51\u72b6\u6001\n\u4f20\u5165\u503c\uff1a\nint \u9700\u8981\u67e5\u770b\u7684\u9002\u914d\u5668\u5e8f\u53f7\uff0c\u53ef\u4ee5\u7559\u7a7a\u4f1a\u67e5\u770b\u5168\u90e8\u7f51\u5361\uff0c\u76f4\u5230\u9047\u5230IP READY\u7684\uff0c\u5982\u679c\u6307\u5b9a\u7f51\u5361\uff0c\u53ea\u80fd\u662fsocket.ETH0\uff08\u5916\u7f6e\u4ee5\u592a\u7f51\uff09\uff0csocket.LWIP_ETH\uff08\u5185\u7f6e\u4ee5\u592a\u7f51\uff09\uff0csocket.LWIP_STA\uff08\u5185\u7f6eWIFI\u7684STA\uff09\uff0csocket.LWIP_AP\uff08\u5185\u7f6eWIFI\u7684AP\uff09\uff0csocket.LWIP_GP\uff08\u5185\u7f6e\u8702\u7a9d\u7f51\u7edc\u7684GPRS\uff09\uff0csocket.USB\uff08\u5916\u7f6eUSB\u7f51\u5361\uff09\n\u8fd4\u56de\u503c\uff1a\nboolean \u88ab\u67e5\u770b\u7684\u9002\u914d\u5668\u662f\u5426IP READY,true\u8868\u793a\u5df2\u7ecf\u51c6\u5907\u597d\u53ef\u4ee5\u8054\u7f51\u4e86,false\u6682\u65f6\u4e0d\u53ef\u4ee5\u8054\u7f51\nint \u6700\u540e\u4e00\u4e2a\u88ab\u67e5\u770b\u7684\u9002\u914d\u5668\u5e8f\u53f7\n\u4f8b\u5b50\uff1a\n-- \u67e5\u770b\u5168\u90e8\u7f51\u5361\uff0c\u76f4\u5230\u627e\u5230\u4e00\u4e2a\u662fIP READY\u7684\nlocal isReady,index = socket.adapter() --\u5982\u679cisReady\u4e3atrue,\u5219index\u4e3aIP READY\u7684\u7f51\u5361\u9002\u914d\u5668\u5e8f\u53f7\n--\u67e5\u770b\u5916\u7f6e\u4ee5\u592a\u7f51\uff08\u6bd4\u5982W5500\uff09\u662f\u5426IP READY\nlocal isReady,default = socket.adapter(socket.ETH0)\n", "prefix": "socket.adapter"}, "socket.remoteIP": {"body": "socket.remoteIP(${1:ctrl})", "description": "socket.remoteIP(ctrl) - \u83b7\u53d6\u5bf9\u7aefip\n\u4f20\u5165\u503c\uff1a\nuser_data socket.create\u5f97\u5230\u7684ctrl\n\u8fd4\u56de\u503c\uff1a\nstring IP1\uff0c\u5982\u679c\u4e3anil\uff0c\u5219\u8868\u793a\u6ca1\u6709\u83b7\u53d6\u5230IP\u5730\u5740\nstring IP2\uff0c\u5982\u679c\u4e3anil\uff0c\u5219\u8868\u793a\u6ca1\u6709IP2\nstring IP3\uff0c\u5982\u679c\u4e3anil\uff0c\u5219\u8868\u793a\u6ca1\u6709IP3\nstring IP4\uff0c\u5982\u679c\u4e3anil\uff0c\u5219\u8868\u793a\u6ca1\u6709IP4\n\u4f8b\u5b50\uff1a\n-- \u6ce8\u610f: \uff0c\u5fc5\u987b\u5728\u63a5\u6536\u5230socket.ON_LINE\u6d88\u606f\u4e4b\u540e\u624d\u53ef\u80fd\u83b7\u53d6\u5230\uff0c\u6700\u591a\u8fd4\u56de4\u4e2aIP\u3002\n-- socket.connect\u91cc\u5982\u679cremote_port\u8bbe\u7f6e\u62100\uff0c\u5219\u5f53DNS\u5b8c\u6210\u65f6\u5c31\u8fd4\u56desocket.ON_LINE\u6d88\u606f\nlocal ip1,ip2,ip3,ip4 = socket.remoteIP(ctrl)\n", "prefix": "socket.remoteIP"}, "softkb.init": {"body": "softkb.init(${1:port},${2:key_in},${3:key_out})", "description": "softkb.init(port, key_in, key_out) - \u521d\u59cb\u5316\u8f6f\u4ef6\u952e\u76d8\u77e9\u9635\n\u4f20\u5165\u503c\uff1a\nint \u9884\u7559, \u5f53\u524d\u586b0\ntable \u77e9\u9635\u8f93\u5165\u6309\u952e\u8868\ntable \u77e9\u9635\u8f93\u51fa\u6309\u952e\u8868\n\u4f8b\u5b50\uff1a\n key_in = {pin.PD10,pin.PE00,pin.PE01,pin.PE02}\n key_out = {pin.PD12,pin.PD13,pin.PD14,pin.PD15}\n softkb.init(0,key_in,key_out)\n\nsys.subscribe(\"SOFT_KB_INC\", function(port, data, state)\n -- port \u5f53\u524d\u56fa\u5b9a\u4e3a0, \u53ef\u4ee5\u65e0\u89c6\n -- data, \u9700\u8981\u914d\u5408init\u7684map\u8fdb\u884c\u89e3\u6790\n -- state, 1 \u4e3a\u6309\u4e0b, 0 \u4e3a \u91ca\u653e\n -- TODO \u8be6\u7ec6\u4ecb\u7ecd\nend)\n", "prefix": "softkb.init"}, "softkb.deinit": {"body": "softkb.deinit(${1:port})", "description": "softkb.deinit(port) - \u5220\u9664\u8f6f\u4ef6\u952e\u76d8\u77e9\u9635\n\u4f20\u5165\u503c\uff1a\nint \u9884\u7559, \u5f53\u524d\u586b0\n\u4f8b\u5b50\uff1a\n softkb.deinit(0)\n", "prefix": "softkb.deinit"}, "spi.setup": {"body": "spi.setup(${1:id},${2:cs},${3:CPHA},${4:CPOL},${5:dataw},${6:bandrate},${7:bitdict},${8:ms},${9:mode})", "description": "spi.setup(id, cs, CPHA, CPOL, dataw, bandrate, bitdict, ms, mode) - \u8bbe\u7f6e\u5e76\u542f\u7528SPI\n\u4f20\u5165\u503c\uff1a\nint SPI\u53f7,\u4f8b\u59820\nint CS \u7247\u9009\u811a,\u5728w600\u4e0d\u53ef\u7528\u8bf7\u586bnil\nint CPHA \u9ed8\u8ba40,\u53ef\u90090/1\nint CPOL \u9ed8\u8ba40,\u53ef\u90090/1\nint \u6570\u636e\u5bbd\u5ea6,\u9ed8\u8ba48bit\nint \u6ce2\u7279\u7387,\u9ed8\u8ba42M=2000000\nint \u5927\u5c0f\u7aef, \u9ed8\u8ba4spi.MSB, \u53ef\u9009spi.LSB\nint \u4e3b\u4ece\u8bbe\u7f6e, \u9ed8\u8ba4\u4e3b1, \u53ef\u9009\u4ece\u673a0. \u901a\u5e38\u53ea\u652f\u6301\u4e3b\u673a\u6a21\u5f0f\nint \u5de5\u4f5c\u6a21\u5f0f, \u5168\u53cc\u5de51, \u534a\u53cc\u5de50, \u9ed8\u8ba4\u5168\u53cc\u5de5\n\u8fd4\u56de\u503c\uff1a\nint \u6210\u529f\u8fd4\u56de0,\u5426\u5219\u8fd4\u56de\u5176\u4ed6\u503c\n\u4f8b\u5b50\uff1a\n-- \u521d\u59cb\u5316spi\nspi.setup(0,20,0,0,8,2000000,spi.MSB,1,1)\n", "prefix": "spi.setup"}, "spi.createSoft": {"body": "spi.createSoft(${1:cs},${2:mosi},${3:miso},${4:clk},${5:CPHA},${6:CPOL},${7:dataw},${8:bitdict},${9:ms},${10:mode})", "description": "spi.createSoft(cs, mosi, miso, clk, CPHA, CPOL, dataw, bitdict, ms, mode) - \u8bbe\u7f6e\u5e76\u542f\u7528\u8f6f\u4ef6SPI\n\u4f20\u5165\u503c\uff1a\nint cs\u5f15\u811a\u7f16\u53f7\uff0c\u4f20\u5165nil\u610f\u4e3aLua\u63a7\u5236cs\u811a\nint mosi\u5f15\u811a\u7f16\u53f7\nint miso\u5f15\u811a\u7f16\u53f7\nint clk\u5f15\u811a\u7f16\u53f7\nint \u9ed8\u8ba40\uff0c\u53ef\u90090/1\nint \u9ed8\u8ba40\uff0c\u53ef\u90090/1\nint \u6570\u636e\u5bbd\u5ea6\uff0c\u9ed8\u8ba48bit\nint \u5927\u5c0f\u7aef\uff0c\u9ed8\u8ba4spi.MSB, \u53ef\u9009spi.LSB\nint \u4e3b\u4ece\u8bbe\u7f6e\uff0c\u9ed8\u8ba4\u4e3b1, \u53ef\u9009\u4ece\u673a0. \u901a\u5e38\u53ea\u652f\u6301\u4e3b\u673a\u6a21\u5f0f\nint \u5de5\u4f5c\u6a21\u5f0f\uff0c\u5168\u53cc\u5de51\uff0c\u534a\u53cc\u5de50\uff0c\u9ed8\u8ba4\u534a\u53cc\u5de5\n\u8fd4\u56de\u503c\uff1a\n\u8f6f\u4ef6SPI\u5bf9\u8c61 \u53ef\u5f53\u4f5cSPI\u7684id\u4f7f\u7528\n\u4f8b\u5b50\uff1a\n-- \u521d\u59cb\u5316\u8f6f\u4ef6spi\nlocal softSpiDevice = spi.createSoft(0, 1, 2, 3, 0, 0, 8, spi.MSB, 1, 1)\nlocal result = spi.send(softSpiDevice, string.char(0x9f))\n", "prefix": "spi.createSoft"}, "spi.close": {"body": "spi.close(${1:id})", "description": "spi.close(id) - \u5173\u95ed\u6307\u5b9a\u7684SPI\n\u4f20\u5165\u503c\uff1a\nint SPI\u53f7,\u4f8b\u59820\n\u8fd4\u56de\u503c\uff1a\nint \u6210\u529f\u8fd4\u56de0,\u5426\u5219\u8fd4\u56de\u5176\u4ed6\u503c\n\u4f8b\u5b50\uff1a\n-- \u521d\u59cb\u5316spi\nspi.close(0)\n", "prefix": "spi.close"}, "spi.transfer": {"body": "spi.transfer(${1:id},${2:send_data[},${3:len]})", "description": "spi.transfer(id, send_data[, len]) - \u4f20\u8f93SPI\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nint SPI\u53f7(\u4f8b\u59820)\u6216\u8f6f\u4ef6SPI\u5bf9\u8c61\nstring/zbuff \u5f85\u53d1\u9001\u7684\u6570\u636e\uff0c\u5982\u679c\u4e3azbuff\u6570\u636e\uff0c\u5219\u4f1a\u4ece\u5bf9\u8c61\u6240\u5904\u7684\u6307\u9488\u5904\u5f00\u59cb\u8bfb\nint \u53ef\u9009\u3002\u5f85\u53d1\u9001\u6570\u636e\u7684\u957f\u5ea6\uff0c\u9ed8\u8ba4\u4e3adata\u957f\u5ea6\nint \u53ef\u9009\u3002\u8bfb\u53d6\u6570\u636e\u7684\u957f\u5ea6\uff0c\u9ed8\u8ba4\u4e3a1\n\u8fd4\u56de\u503c\uff1a\nstring \u8bfb\u53d6\u6210\u529f\u8fd4\u56de\u5b57\u7b26\u4e32,\u5426\u5219\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\n-- \u521d\u59cb\u5316spi\nspi.setup(0,nil,0,0,8,2000000,spi.MSB,1,1)\nlocal recv = spi.transfer(0, \"123\")--\u53d1\u9001123,\u5e76\u8bfb\u53d6\u6570\u636e\n\nlocal buff = zbuff.create(1024, 0x33) --\u521b\u5efa\u4e00\u4e2a\u521d\u503c\u5168\u4e3a0x33\u7684\u5185\u5b58\u533a\u57df\nlocal recv = spi.transfer(0, buff)--\u628azbuff\u6570\u636e\u4ece\u6307\u9488\u5f00\u59cb\uff0c\u5168\u53d1\u51fa\u53bb,\u5e76\u8bfb\u53d6\u6570\u636e\n", "prefix": "spi.transfer"}, "spi.recv": {"body": "spi.recv(${1:id},${2:size})", "description": "spi.recv(id, size) - \u63a5\u6536\u6307\u5b9a\u957f\u5ea6\u7684SPI\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nint SPI\u53f7,\u4f8b\u59820\nint \u6570\u636e\u957f\u5ea6\n\u8fd4\u56de\u503c\uff1a\nstring \u8bfb\u53d6\u6210\u529f\u8fd4\u56de\u5b57\u7b26\u4e32,\u5426\u5219\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\n-- \u521d\u59cb\u5316spi\nspi.setup(0,nil,0,0,8,2000000,spi.MSB,1,1)\nlocal recv = spi.recv(0, 4)--\u63a5\u65364\u5b57\u8282\u6570\u636e\n", "prefix": "spi.recv"}, "spi.send": {"body": "spi.send(${1:id},${2:data[},${3:len]})", "description": "spi.send(id, data[, len]) - \u53d1\u9001SPI\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nint SPI\u53f7,\u4f8b\u59820\nstring/zbuff \u5f85\u53d1\u9001\u7684\u6570\u636e\uff0c\u5982\u679c\u4e3azbuff\u6570\u636e\uff0c\u5219\u4f1a\u4ece\u5bf9\u8c61\u6240\u5904\u7684\u6307\u9488\u5904\u5f00\u59cb\u8bfb\nint \u53ef\u9009\u3002\u5f85\u53d1\u9001\u6570\u636e\u7684\u957f\u5ea6\uff0c\u9ed8\u8ba4\u4e3adata\u957f\u5ea6\n\u8fd4\u56de\u503c\uff1a\nint \u53d1\u9001\u7ed3\u679c\n\u4f8b\u5b50\uff1a\n-- \u521d\u59cb\u5316spi\nspi.setup(0,nil,0,0,8,2000000,spi.MSB,1,1)\nlocal result = spi.send(0, \"123\")--\u53d1\u9001123\n\nlocal buff = zbuff.create(1024, 0x33) --\u521b\u5efa\u4e00\u4e2a\u521d\u503c\u5168\u4e3a0x33\u7684\u5185\u5b58\u533a\u57df\nlocal result = spi.send(0, buff)--\u628azbuff\u6570\u636e\u4ece\u6307\u9488\u5f00\u59cb\uff0c\u5168\u53d1\u51fa\u53bb\n", "prefix": "spi.send"}, "spi.deviceSetup": {"body": "spi.deviceSetup(${1:id},${2:cs},${3:CPHA},${4:CPOL},${5:dataw},${6:bandrate},${7:bitdict},${8:ms},${9:mode})", "description": "spi.deviceSetup(id, cs, CPHA, CPOL, dataw, bandrate, bitdict, ms, mode) - \u8bbe\u7f6e\u5e76\u542f\u7528SPI(\u5bf9\u8c61\u65b9\u5f0f)\n\u4f20\u5165\u503c\uff1a\nint SPI\u53f7,\u4f8b\u59820\nint CS \u7247\u9009\u811a,\u5728w600\u4e0d\u53ef\u7528\u8bf7\u586bnil\nint CPHA \u9ed8\u8ba40,\u53ef\u90090/1\nint CPOL \u9ed8\u8ba40,\u53ef\u90090/1\nint \u6570\u636e\u5bbd\u5ea6,\u9ed8\u8ba48bit\nint \u6ce2\u7279\u7387,\u9ed8\u8ba420M=20000000\nint \u5927\u5c0f\u7aef, \u9ed8\u8ba4spi.MSB, \u53ef\u9009spi.LSB\nint \u4e3b\u4ece\u8bbe\u7f6e, \u9ed8\u8ba4\u4e3b1, \u53ef\u9009\u4ece\u673a0. \u901a\u5e38\u53ea\u652f\u6301\u4e3b\u673a\u6a21\u5f0f\nint \u5de5\u4f5c\u6a21\u5f0f, \u5168\u53cc\u5de51, \u534a\u53cc\u5de50, \u9ed8\u8ba4\u5168\u53cc\u5de5\n\u8fd4\u56de\u503c\uff1a\nuserdata spi_device\n\u4f8b\u5b50\uff1a\n-- \u521d\u59cb\u5316spi\nlocal spi_device = spi.deviceSetup(0,17,0,0,8,2000000,spi.MSB,1,1)\n", "prefix": "spi.deviceSetup"}, "spi_device:close": {"body": "spi_device:close()", "description": "spi_device:close() - \u5173\u95ed\u6307\u5b9a\u7684SPI(\u5bf9\u8c61\u65b9\u5f0f)\n\u4f20\u5165\u503c\uff1a\nuserdata spi_device\n\u8fd4\u56de\u503c\uff1a\nint \u6210\u529f\u8fd4\u56de0,\u5426\u5219\u8fd4\u56de\u5176\u4ed6\u503c\n\u4f8b\u5b50\uff1a\n-- \u521d\u59cb\u5316spi\nspi_device.close()\n", "prefix": "spi_device:close"}, "spi_device:transfer": {"body": "spi_device:transfer(${1:send_data[},${2:len]})", "description": "spi_device:transfer(send_data[, len]) - \u4f20\u8f93SPI\u6570\u636e(\u5bf9\u8c61\u65b9\u5f0f)\n\u4f20\u5165\u503c\uff1a\nuserdata spi_device\nstring/zbuff \u5f85\u53d1\u9001\u7684\u6570\u636e\uff0c\u5982\u679c\u4e3azbuff\u6570\u636e\uff0c\u5219\u4f1a\u4ece\u5bf9\u8c61\u6240\u5904\u7684\u6307\u9488\u5904\u5f00\u59cb\u8bfb\nint \u53ef\u9009\u3002\u5f85\u53d1\u9001\u6570\u636e\u7684\u957f\u5ea6\uff0c\u9ed8\u8ba4\u4e3adata\u957f\u5ea6\nint \u53ef\u9009\u3002\u8bfb\u53d6\u6570\u636e\u7684\u957f\u5ea6\uff0c\u9ed8\u8ba4\u4e3a1\n\u8fd4\u56de\u503c\uff1a\nstring \u8bfb\u53d6\u6210\u529f\u8fd4\u56de\u5b57\u7b26\u4e32,\u5426\u5219\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\n-- \u521d\u59cb\u5316spi\nlocal spi_device = spi.device_setup(0,17,0,0,8,2000000,spi.MSB,1,1)\nlocal recv = spi_device:transfer(\"123\")--\u53d1\u9001123,\u5e76\u8bfb\u53d6\u6570\u636e\n\nlocal buff = zbuff.create(1024, 0x33) --\u521b\u5efa\u4e00\u4e2a\u521d\u503c\u5168\u4e3a0x33\u7684\u5185\u5b58\u533a\u57df\nlocal recv = spi_device:transfer(buff)--\u628azbuff\u6570\u636e\u4ece\u6307\u9488\u5f00\u59cb\uff0c\u5168\u53d1\u51fa\u53bb,\u5e76\u8bfb\u53d6\u6570\u636e\n", "prefix": "spi_device:transfer"}, "spi_device:send": {"body": "spi_device:send(${1:data[},${2:len]})", "description": "spi_device:send(data[, len]) - \u53d1\u9001SPI\u6570\u636e(\u5bf9\u8c61\u65b9\u5f0f)\n\u4f20\u5165\u503c\uff1a\nuserdata spi_device\nstring/zbuff \u5f85\u53d1\u9001\u7684\u6570\u636e\uff0c\u5982\u679c\u4e3azbuff\u6570\u636e\uff0c\u5219\u4f1a\u4ece\u5bf9\u8c61\u6240\u5904\u7684\u6307\u9488\u5904\u5f00\u59cb\u8bfb\n\u8fd4\u56de\u503c\uff1a\nint \u53d1\u9001\u7ed3\u679c\n\u4f8b\u5b50\uff1a\n-- \u521d\u59cb\u5316spi\nlocal spi_device = spi.device_setup(0,17,0,0,8,2000000,spi.MSB,1,1)\nlocal result = spi_device:send(\"123\")--\u53d1\u9001123\n\nlocal buff = zbuff.create(1024, 0x33) --\u521b\u5efa\u4e00\u4e2a\u521d\u503c\u5168\u4e3a0x33\u7684\u5185\u5b58\u533a\u57df\nlocal result = spi_device:send(buff)--\u628azbuff\u6570\u636e\u4ece\u6307\u9488\u5f00\u59cb\uff0c\u5168\u53d1\u51fa\u53bb\n", "prefix": "spi_device:send"}, "spi_device:recv": {"body": "spi_device:recv(${1:size})", "description": "spi_device:recv(size) - \u63a5\u6536\u6307\u5b9a\u957f\u5ea6\u7684SPI\u6570\u636e(\u5bf9\u8c61\u65b9\u5f0f)\n\u4f20\u5165\u503c\uff1a\nuserdata spi_device\nint \u6570\u636e\u957f\u5ea6\n\u8fd4\u56de\u503c\uff1a\nstring \u8bfb\u53d6\u6210\u529f\u8fd4\u56de\u5b57\u7b26\u4e32,\u5426\u5219\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\n-- \u521d\u59cb\u5316spi\nlocal spi_device = spi.device_setup(0,17,0,0,8,2000000,spi.MSB,1,1)\nlocal recv = spi_device:recv(4)--\u63a5\u65364\u5b57\u8282\u6570\u636e\n", "prefix": "spi_device:recv"}, "spi.xfer": {"body": "spi.xfer(${1:id},${2:txbuff},${3:rxbuff},${4:rx_len},${5:transfer_done_topic})", "description": "spi.xfer(id, txbuff, rxbuff, rx_len, transfer_done_topic) - \u975e\u963b\u585e\u65b9\u5f0f\u786c\u4ef6SPI\u4f20\u8f93SPI\u6570\u636e\uff0c\u76ee\u7684\u4e3a\u4e86\u63d0\u9ad8\u6838\u5fc3\u5229\u7528\u7387\u3002API\u76f4\u63a5\u8fd4\u56de\u662f\u5426\u542f\u52a8\u4f20\u8f93\uff0c\u4f20\u8f93\u5b8c\u6210\u540e\u901a\u8fc7topic\u56de\u8c03\uff0c\u672cAPI\u9002\u5408\u786c\u4ef6SPI\u4f20\u8f93\u5927\u91cf\u6570\u636e\u4f20\u8f93\uff0c\u5916\u8bbe\u529f\u80fd\uff08LCD SPI\uff0cW5500 SPI\u4e4b\u7c7b\u7684\uff09\u5360\u636e\u7684SPI\u548c\u8f6f\u4ef6SPI\u4e0d\u80fd\u7528\uff0c\u5c11\u91cf\u6570\u636e\u4f20\u8f93\u5efa\u8bae\u4f7f\u7528\u4f20\u7edf\u963b\u585e\u578bAPI\n\u4f20\u5165\u503c\uff1a\nuserdata or int spi_device\u6216\u8005spi_id\uff0c\u6ce8\u610f\uff0c\u5982\u679c\u662fspi_device\uff0c\u9700\u8981\u624b\u52a8\u5728\u4f20\u8f93\u5b8c\u6210\u540e\u62c9\u9ad8cs!!!!!!\nzbuff \u5f85\u53d1\u9001\u7684\u6570\u636e\uff0c\u5982\u679c\u4e3anil\uff0c\u5219\u53ea\u63a5\u6536\u6570\u636e\uff0c\u7531\u4e8e\u7528\u7684\u975e\u963b\u585e\u6a21\u578b\uff0c\u4e3a\u4fdd\u8bc1\u52a8\u6001\u6570\u636e\u7684\u6709\u6548\u6027\uff0c\u53ea\u80fd\u4f7f\u7528zbuff\uff0c\u53d1\u9001\u7684\u6570\u636e\u4ecezbuff.addr\nzbuff \u63a5\u6536\u6570\u636e\uff0c\u5982\u679c\u4e3anil\uff0c\u5219\u53ea\u53d1\u9001\u6570\u636e\uff0c\u7531\u4e8e\u7528\u7684\u975e\u963b\u585e\u6a21\u578b\uff0c\u4e3a\u4fdd\u8bc1\u52a8\u6001\u6570\u636e\u7684\u6709\u6548\u6027\uff0c\u53ea\u80fd\u4f7f\u7528zbuff\uff0c\u63a5\u6536\u7684\u6570\u636e\u4ecezbuff.addr\u5f00\u59cb\u5b58\u50a8\nint \u4f20\u8f93\u6570\u636e\u957f\u5ea6\uff0c\u7279\u522b\u8bf4\u660e \u5982\u679c\u4e3a\u534a\u53cc\u5de5\uff0c\u5148\u53d1\u540e\u6536\uff0c\u6bd4\u5982spi flash\u64cd\u4f5c\u8fd9\u79cd\uff0c\u5219\u957f\u5ea6=\u53d1\u9001\u5b57\u8282+\u63a5\u6536\u5b57\u8282\uff0c\u6ce8\u610f\u4e0a\u9762\u53d1\u9001\u548c\u63a5\u6536buff\u90fd\u8981\u7559\u8db3\u591f\u7684\u6570\u636e\uff0c\u540e\u7eed\u63a5\u6536\u6570\u636e\u5904\u7406\u9700\u8981\u8df3\u8fc7\u53d1\u9001\u6570\u636e\u957f\u5ea6\u5b57\u8282\nstring \u4f20\u8f93\u5b8c\u6210\u540e\u56de\u8c03\u7684topic\n\u8fd4\u56de\u503c\uff1a\nboolean true/false \u672c\u6b21\u4f20\u8f93\u662f\u5426\u6b63\u786e\u542f\u52a8\uff0ctrue\uff0c\u542f\u52a8\uff0cfalse\uff0c\u6709\u9519\u8bef\u65e0\u6cd5\u542f\u52a8\u3002\u4f20\u8f93\u5b8c\u6210\u4f1a\u53d1\u5e03\u6d88\u606ftransfer_done_topic\u548cboolean\u578b\u7ed3\u679c\n\u4f8b\u5b50\uff1a\nlocal result = spi.xfer(spi.SPI_0, txbuff, rxbuff, 1024, \"SPIDONE\") if result then result, spi_id, succ, error_code = sys.waitUntil(\"SPIDONE\") end if not result or not succ then log.info(\"spi fail, error code\", error_code) else log.info(\"spi ok\") end\n\n", "prefix": "spi.xfer"}, "statem.create": {"body": "statem.create(${1:count},${2:repeat})", "description": "statem.create(count, repeat) - \u521b\u5efa\u4e00\u4e2a\u65b0\u7684\u72b6\u6001\u673a.\n\u4f20\u5165\u503c\uff1a\nint \u6307\u4ee4\u6761\u6570,\u9ed8\u8ba432\u6761\nint \u91cd\u590d\u6267\u884c\u7684\u6b21\u6570, 0 \u4ee3\u8868\u4e0d\u91cd\u590d, \u6b63\u6574\u6570\u4ee3\u8868\u5177\u4f53\u91cd\u590d\u6267\u884c\u7684\u6b21\u6570. \u6682\u4e0d\u652f\u6301\u6c38\u7eed\u6267\u884c\n\u8fd4\u56de\u503c\uff1a\nsome \u82e5\u6210\u529f,\u8fd4\u56de\u72b6\u6001\u673a\u6307\u9488,\u5426\u5219\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\ngpio.setup(7, 0, gpio.PULLUP)\ngpio.setup(12, 0, gpio.PULLUP)\ngpio.setup(13, 0, gpio.PULLUP)\ngpio.setup(14, 0, gpio.PULLUP)\nlocal sm = statem.create()\n :gpio_set(7, 0) -- gpio\u8bbe\u7f6e\u4e3a\u4f4e\u7535\u5e73\n :usleep(10) -- \u4f11\u772010us\n :gpio_set(7, 1) -- gpio\u8bbe\u7f6e\u4e3a\u9ad8\u7535\u5e73\n :usleep(40) -- \u4f11\u772040us\n :gpio_set(12, 1) -- gpio\u8bbe\u7f6e\u4e3a\u9ad8\u7535\u5e73\n :gpio_set(13, 1) -- gpio\u8bbe\u7f6e\u4e3a\u9ad8\u7535\u5e73\n :gpio_set(14, 1) -- gpio\u8bbe\u7f6e\u4e3a\u9ad8\u7535\u5e73\n :usleep(40) -- \u4f11\u772040us\n :gpio_set(7, 0) -- gpio\u8bbe\u7f6e\u4e3a\u4f4e\u7535\u5e73\n :finish()\n\n-- \u6267\u884c\u4e4b,\u540e\u7eed\u4f1a\u652f\u6301\u540e\u53f0\u6267\u884c\nsm:exec()\n", "prefix": "statem.create"}, "string.toHex": {"body": "string.toHex(${1:str},${2:separator})", "description": "string.toHex(str, separator) - \u5c06\u5b57\u7b26\u4e32\u8f6c\u6210HEX\n\u4f20\u5165\u503c\uff1a\nstring \u9700\u8981\u8f6c\u6362\u7684\u5b57\u7b26\u4e32\nstring \u5206\u9694\u7b26, \u9ed8\u8ba4\u4e3a\"\"\n\u8fd4\u56de\u503c\uff1a\nstring HEX\u5b57\u7b26\u4e32\nnumber HEX\u5b57\u7b26\u4e32\u7684\u957f\u5ea6\n\u4f8b\u5b50\uff1a\nstring.toHex(\"\\1\\2\\3\") --> \"010203\" 6\nstring.toHex(\"123abc\") --> \"313233616263\" 12\nstring.toHex(\"123abc\", \" \") --> \"31 32 33 61 62 63 \" 12\n", "prefix": "string.toHex"}, "string.fromHex": {"body": "string.fromHex(${1:hex})", "description": "string.fromHex(hex) - \u5c06HEX\u8f6c\u6210\u5b57\u7b26\u4e32\n\u4f20\u5165\u503c\uff1a\nstring hex,16\u8fdb\u5236\u7ec4\u6210\u7684\u4e32\n\u8fd4\u56de\u503c\uff1a\nstring \u5b57\u7b26\u4e32\n\u4f8b\u5b50\uff1a\nstring.fromHex(\"010203\") --> \"\\1\\2\\3\"\nstring.fromHex(\"313233616263\") --> \"123abc\"\n", "prefix": "string.fromHex"}, "string.split": {"body": "string.split(${1:str},${2:delimiter},${3:keepEmtry})", "description": "string.split(str, delimiter, keepEmtry) - \u6309\u7167\u6307\u5b9a\u5206\u9694\u7b26\u5206\u5272\u5b57\u7b26\u4e32\n\u4f20\u5165\u503c\uff1a\nstring \u8f93\u5165\u5b57\u7b26\u4e32\nstring \u5206\u9694\u7b26,\u53ef\u9009,\u9ed8\u8ba4 \",\"\nbool \u662f\u5426\u4fdd\u7559\u7a7a\u767d\u7247\u6bb5,\u9ed8\u8ba4\u4e3afalse,\u4e0d\u4fdd\u7559. 2023.4.11\u4e4b\u540e\u7684\u56fa\u4ef6\u53ef\u7528\n\u8fd4\u56de\u503c\uff1a\ntable \u5206\u5272\u540e\u7684\u5b57\u7b26\u4e32\u8868\n\u4f8b\u5b50\uff1a\nlocal tmp = string.split(\"123,233333,122\")\nlog.info(\"tmp\", json.encode(tmp))\nlocal tmp = (\"123,456,789\"):split(',') --> {'123','456','789'}\nlog.info(\"tmp\", json.encode(tmp))\n\n-- \u4fdd\u7559\u7a7a\u7247\u6bb5, 2023.4.11\u4e4b\u540e\u7684\u56fa\u4ef6\u53ef\u7528\nlocal str = \"/tmp//def/1234/\"\nlocal tmp = str:split(\"/\", true) \nlog.info(\"str.split\", #tmp, json.encode(tmp))\n", "prefix": "string.split"}, "string.toValue": {"body": "string.toValue(${1:str})", "description": "string.toValue(str) - \u8fd4\u56de\u5b57\u7b26\u4e32tonumber\u7684\u8f6c\u4e49\u5b57\u7b26\u4e32(\u7528\u6765\u652f\u6301\u8d85\u8fc731\u4f4d\u6574\u6570\u7684\u8f6c\u6362)\n\u4f20\u5165\u503c\uff1a\nstring \u8f93\u5165\u5b57\u7b26\u4e32\n\u8fd4\u56de\u503c\uff1a\nstring \u8f6c\u6362\u540e\u7684\u4e8c\u8fdb\u5236\u5b57\u7b26\u4e32\nnumber \u8f6c\u6362\u4e86\u591a\u5c11\u4e2a\u5b57\u7b26\n\u4f8b\u5b50\uff1a\nstring.toValue(\"123456\") --> \"\\1\\2\\3\\4\\5\\6\" 6\nstring.toValue(\"123abc\") --> \"\\1\\2\\3\\a\\b\\c\" 6\n", "prefix": "string.toValue"}, "string.urlEncode": {"body": "string.urlEncode(${1:\"123abc\"})", "description": "string.urlEncode(\"123 abc\") - \u5c06\u5b57\u7b26\u4e32\u8fdb\u884curl\u7f16\u7801\u8f6c\u6362\n\u4f20\u5165\u503c\uff1a\nstring \u9700\u8981\u8f6c\u6362\u7684\u5b57\u7b26\u4e32\n", "prefix": "string.urlEncode"}, "string.toBase64": {"body": "string.toBase64(${1:str})", "description": "string.toBase64(str) - \u5c06\u5b57\u7b26\u4e32\u8fdb\u884cbase64\u7f16\u7801\n\u4f20\u5165\u503c\uff1a\nstring \u9700\u8981\u8f6c\u6362\u7684\u5b57\u7b26\u4e32\n\u8fd4\u56de\u503c\uff1a\nstring \u89e3\u7801\u540e\u7684\u5b57\u7b26\u4e32,\u5982\u679c\u89e3\u7801\u5931\u8d25\u4f1a\u8fd4\u56de\u7a7a\u5b57\u7b26\u4e32\n", "prefix": "string.toBase64"}, "string.fromBase64": {"body": "string.fromBase64(${1:str})", "description": "string.fromBase64(str) - \u5c06\u5b57\u7b26\u4e32\u8fdb\u884cbase64\u89e3\u7801\n\u4f20\u5165\u503c\uff1a\nstring \u9700\u8981\u8f6c\u6362\u7684\u5b57\u7b26\u4e32\n\u8fd4\u56de\u503c\uff1a\nstring \u89e3\u7801\u540e\u7684\u5b57\u7b26\u4e32,\u5982\u679c\u89e3\u7801\u5931\u8d25\u4f1a\u8fd4\u56de\u7a7a\u5b57\u7b26\u4e32\n", "prefix": "string.fromBase64"}, "string.toBase32": {"body": "string.toBase32(${1:str})", "description": "string.toBase32(str) - \u5c06\u5b57\u7b26\u4e32\u8fdb\u884cbase32\u7f16\u7801\n\u4f20\u5165\u503c\uff1a\nstring \u9700\u8981\u8f6c\u6362\u7684\u5b57\u7b26\u4e32\n\u8fd4\u56de\u503c\uff1a\nstring \u89e3\u7801\u540e\u7684\u5b57\u7b26\u4e32,\u5982\u679c\u89e3\u7801\u5931\u8d25\u4f1a\u8fd4\u56de0\u957f\u5ea6\u5b57\u7b26\u4e32\n", "prefix": "string.toBase32"}, "string.fromBase32": {"body": "string.fromBase32(${1:str})", "description": "string.fromBase32(str) - \u5c06\u5b57\u7b26\u4e32\u8fdb\u884cbase32\u89e3\u7801\n\u4f20\u5165\u503c\uff1a\nstring \u9700\u8981\u8f6c\u6362\u7684\u5b57\u7b26\u4e32\n\u8fd4\u56de\u503c\uff1a\nstring \u89e3\u7801\u540e\u7684\u5b57\u7b26\u4e32,\u5982\u679c\u89e3\u7801\u5931\u8d25\u4f1a\u8fd4\u56de0\u957f\u5ea6\u5b57\u7b26\u4e32\n", "prefix": "string.fromBase32"}, "string.startsWith": {"body": "string.startsWith(${1:str},${2:prefix})", "description": "string.startsWith(str, prefix) - \u5224\u65ad\u5b57\u7b26\u4e32\u524d\u7f00\n\u4f20\u5165\u503c\uff1a\nstring \u9700\u8981\u68c0\u67e5\u7684\u5b57\u7b26\u4e32\nstring \u524d\u7f00\u5b57\u7b26\u4e32\n\u8fd4\u56de\u503c\uff1a\nbool \u771f\u4e3atrue, \u5047\u4e3afalse\n\u4f8b\u5b50\uff1a\nlocal str = \"abc\"\nlog.info(\"str\", str:startsWith(\"a\"))\nlog.info(\"str\", str:startsWith(\"b\"))\n", "prefix": "string.startsWith"}, "string.endsWith": {"body": "string.endsWith(${1:str},${2:suffix})", "description": "string.endsWith(str, suffix) - \u5224\u65ad\u5b57\u7b26\u4e32\u540e\u7f00\n\u4f20\u5165\u503c\uff1a\nstring \u9700\u8981\u68c0\u67e5\u7684\u5b57\u7b26\u4e32\nstring \u540e\u7f00\u5b57\u7b26\u4e32\n\u8fd4\u56de\u503c\uff1a\nbool \u771f\u4e3atrue, \u5047\u4e3afalse\n\u4f8b\u5b50\uff1a\nlocal str = \"abc\"\nlog.info(\"str\", str:endsWith(\"c\"))\nlog.info(\"str\", str:endsWith(\"b\"))\n", "prefix": "string.endsWith"}, "string.trim": {"body": "string.trim(${1:str},${2:ltrim},${3:rtrim})", "description": "string.trim(str, ltrim, rtrim) - \u88c1\u526a\u5b57\u7b26\u4e32,\u53bb\u9664\u5934\u5c3e\u7684\u7a7a\u683c\n\u4f20\u5165\u503c\uff1a\nstring \u9700\u8981\u5904\u7406\u7684\u5b57\u7b26\u4e32\nbool \u6e05\u7406\u524d\u7f00,\u9ed8\u8ba4\u4e3atrue\nbool \u6e05\u7406\u540e\u7f00,\u9ed8\u8ba4\u4e3atrue\n\u8fd4\u56de\u503c\uff1a\nstring \u6e05\u7406\u540e\u7684\u5b57\u7b26\u4e32\n\u4f8b\u5b50\uff1a\nlocal str = \"\\r\\nabc\\r\\n\"\nlog.info(\"str\", string.trim(str)) -- \u6253\u5370 \"abc\"\nlog.info(\"str\", str:trim()) -- \u6253\u5370 \"abc\"\nlog.info(\"str\", #string.trim(str, false, true)) -- \u4ec5\u88c1\u526a\u540e\u7f00,\u6240\u4ee5\u957f\u5ea6\u662f5\n", "prefix": "string.trim"}, "sys.wait": {"body": "sys.wait(${1:timeout})", "description": "sys.wait(timeout) - Task\u534f\u7a0b\u7b49\u5f85\u6307\u5b9a\u65f6\u957f\n\u4f20\u5165\u503c\uff1a\nint \u7b49\u5f85\u65f6\u957f,\u5355\u4f4d\u6beb\u79d2,\u5fc5\u987b\u5927\u4e8e0,\u5426\u5219\u65e0\u6548\n\u8fd4\u56de\u503c\uff1a\nany \u901a\u5e38\u4e3anil,\u9664\u975e\u4e3b\u52a8\u88ab\u5524\u9192(\u901a\u5e38\u4e0d\u4f1a)\n\u4f8b\u5b50\uff1a\nsys.taskInit(function()\n while 1 do\n sys.wait(500)\n end\nend)\n", "prefix": "sys.wait"}, "sys.waitUntil": {"body": "sys.waitUntil(${1:topic},${2:timeout})", "description": "sys.waitUntil(topic, timeout) - Task\u534f\u7a0b\u7b49\u5f85\u6307\u5b9a\u65f6\u957f\u6216\u8005\u7279\u5b9a\u7684topic\n\u4f20\u5165\u503c\uff1a\nstring \u4e8b\u4ef6topic\nint \u7b49\u5f85\u65f6\u957f,\u5355\u4f4d\u6beb\u79d2,\u5fc5\u987b\u5927\u4e8e0,\u5426\u5219\u65e0\u6548\n\u8fd4\u56de\u503c\uff1a\nboolean \u5982\u679c\u662f\u8d85\u65f6,\u8fd4\u56defalse,\u5426\u5219\u8fd4\u56detrue\nany \u5bf9\u5e94topic\u7684\u5185\u5bb9\n\u4f8b\u5b50\uff1a\nsys.taskInit(function()\n // do something\n local result, data = sys.waitUntil(\"NET_READY\", 30000)\n // do something else\nend)\n", "prefix": "sys.waitUntil"}, "sys.taskInit": {"body": "sys.taskInit(${1:func},${2:arg1},${3:arg2},${4:argN})", "description": "sys.taskInit(func, arg1, arg2, argN) - \u521b\u5efa\u4e00\u4e2aTask\u534f\u7a0b\n\u4f20\u5165\u503c\uff1a\nfunction \u5f85\u6267\u884c\u7684\u51fd\u6570,\u53ef\u4ee5\u662f\u533f\u540d\u51fd\u6570, \u4e5f\u53ef\u4ee5\u662flocal\u6216\u5168\u5c40\u51fd\u6570\nany \u9700\u8981\u4f20\u9012\u7684\u53c2\u65701,\u53ef\u9009 \nany \u9700\u8981\u4f20\u9012\u7684\u53c2\u65702,\u53ef\u9009 \nany \u9700\u8981\u4f20\u9012\u7684\u53c2\u6570N,\u53ef\u9009 \n\u8fd4\u56de\u503c\uff1a\ntask \u534f\u7a0b\u5bf9\u8c61\n\u4f8b\u5b50\uff1a\nsys.taskInit(function(a, b, c)\n log.info(\"task\", a, b, c) -- \u6253\u5370 task A B C\nend, \"A\", \"B\", \"N\")\n", "prefix": "sys.taskInit"}, "sys.timerStart": {"body": "sys.timerStart(${1:func},${2:timeout},${3:arg1},${4:arg2},${5:argN})", "description": "sys.timerStart(func, timeout, arg1, arg2, argN) - \u521b\u5efa\u4e00\u4e2a\u5b9a\u65f6\u5668.\u975eTask,\u51fd\u6570\u91cc\u4e0d\u80fd\u76f4\u63a5sys.waitXXX\n\u4f20\u5165\u503c\uff1a\nfunction \u5f85\u6267\u884c\u7684\u51fd\u6570,\u53ef\u4ee5\u662f\u533f\u540d\u51fd\u6570, \u4e5f\u53ef\u4ee5\u662flocal\u6216\u5168\u5c40\u51fd\u6570\nint \u5ef6\u65f6\u65f6\u957f,\u5355\u4f4d\u6beb\u79d2\nany \u9700\u8981\u4f20\u9012\u7684\u53c2\u65701,\u53ef\u9009 \nany \u9700\u8981\u4f20\u9012\u7684\u53c2\u65702,\u53ef\u9009 \nany \u9700\u8981\u4f20\u9012\u7684\u53c2\u6570N,\u53ef\u9009 \n\u8fd4\u56de\u503c\uff1a\nint \u5b9a\u65f6\u5668id\n\u4f8b\u5b50\uff1a\nsys.timerStart(function(a, b, c)\n log.info(\"task\", a, b, c) -- 1000\u6beb\u79d2\u540e\u624d\u4f1a\u6267\u884c, \u6253\u5370 task A B C\nend, 1000, \"A\", \"B\", \"N\")\n", "prefix": "sys.timerStart"}, "sys.timerLoopStart": {"body": "sys.timerLoopStart(${1:func},${2:timeout},${3:arg1},${4:arg2},${5:argN})", "description": "sys.timerLoopStart(func, timeout, arg1, arg2, argN) - \u521b\u5efa\u4e00\u4e2a\u5faa\u73af\u5b9a\u65f6\u5668.\u975eTask,\u51fd\u6570\u91cc\u4e0d\u80fd\u76f4\u63a5sys.waitXXX\n\u4f20\u5165\u503c\uff1a\nfunction \u5f85\u6267\u884c\u7684\u51fd\u6570,\u53ef\u4ee5\u662f\u533f\u540d\u51fd\u6570, \u4e5f\u53ef\u4ee5\u662flocal\u6216\u5168\u5c40\u51fd\u6570\nint \u5ef6\u65f6\u65f6\u957f,\u5355\u4f4d\u6beb\u79d2\nany \u9700\u8981\u4f20\u9012\u7684\u53c2\u65701,\u53ef\u9009 \nany \u9700\u8981\u4f20\u9012\u7684\u53c2\u65702,\u53ef\u9009 \nany \u9700\u8981\u4f20\u9012\u7684\u53c2\u6570N,\u53ef\u9009 \n\u8fd4\u56de\u503c\uff1a\nint \u5b9a\u65f6\u5668id\n\u4f8b\u5b50\uff1a\nsys.timerLoopStart(function(a, b, c)\n log.info(\"task\", a, b, c) -- 1000\u6beb\u79d2\u540e\u624d\u4f1a\u6267\u884c, \u6253\u5370 task A B C\nend, 1000, \"A\", \"B\", \"N\")\n", "prefix": "sys.timerLoopStart"}, "sys.timerStop": {"body": "sys.timerStop(${1:id})", "description": "sys.timerStop(id) - \u5173\u95ed\u4e00\u4e2a\u5b9a\u65f6\u5668.\n\u4f20\u5165\u503c\uff1a\nint \u5b9a\u65f6\u5668id\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\nlocal tcount = 0\nlocal tid \ntid = sys.timerLoopStart(function(a, b, c)\n log.info(\"task\", a, b, c) -- 1000\u6beb\u79d2\u540e\u624d\u4f1a\u6267\u884c, \u6253\u5370 task A B C\n if tcount > 10 then\n sys.timerStop(tid)\n end\n tcount = tcount + 1\nend, 1000, \"A\", \"B\", \"N\")\n", "prefix": "sys.timerStop"}, "sys.publish": {"body": "sys.publish(${1:topic},${2:arg1},${3:agr2},${4:argN})", "description": "sys.publish(topic, arg1, agr2, argN) - \u5f80\u7279\u5b9atopic\u901a\u9053\u53d1\u5e03\u4e00\u4e2a\u6d88\u606f\n\u4f20\u5165\u503c\uff1a\nstring topic\u7684\u503c\nany \u9644\u5e26\u7684\u53c2\u65701\nany \u9644\u5e26\u7684\u53c2\u65702\nany \u9644\u5e26\u7684\u53c2\u6570N\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\nsys.publish(\"BT_READY\", false)\n", "prefix": "sys.publish"}, "sys.subscribe": {"body": "sys.subscribe(${1:topic},${2:func})", "description": "sys.subscribe(topic, func) - \u8ba2\u9605\u4e00\u4e2atopic\u901a\u9053\n\u4f20\u5165\u503c\uff1a\nstring topic\u7684\u503c\nfunction \u56de\u8c03\u51fd\u6570, \u6ce8\u610f, \u4e0d\u80fd\u76f4\u63a5\u4f7f\u7528sys.waitXXX\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\nlocal function bt_cb(state)\n log.info(\"bt\", state)\nend\nsys.subscribe(\"BT_READY\", bt_cb)\nsys.subscribe(\"BT_READY\", function(state)\n log.info(\"sys\", \"Got BT_READY\", state)\nend)\n", "prefix": "sys.subscribe"}, "sys.unsubscribe": {"body": "sys.unsubscribe(${1:topic},${2:func})", "description": "sys.unsubscribe(topic, func) - \u53d6\u6d88\u8ba2\u9605topic\u901a\u9053\n\u4f20\u5165\u503c\uff1a\nstring topic\u7684\u503c\nfunction \u56de\u8c03\u51fd\u6570, \u6ce8\u610f, \u4e0d\u80fd\u76f4\u63a5\u4f7f\u7528sys.waitXXX\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\nlocal function bt_cb(state)\n log.info(\"bt\", state)\nend\nsys.unsubscribe(\"BT_READY\", bt_cb)\n", "prefix": "sys.unsubscribe"}, "sys.run": {"body": "sys.run()", "description": "sys.run() - sys\u5e93\u4e3b\u5faa\u73af\u65b9\u6cd5,\u4ec5\u5141\u8bb8\u5728main.lua\u7684\u672b\u5c3e\u8c03\u7528\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c. \u8fd9\u4e2a\u65b9\u6cd5\u51e0\u4e4e\u4e0d\u53ef\u80fd\u8fd4\u56de.\n\u4f8b\u5b50\uff1a\n-- \u603b\u662fmain.lua\u7684\u7ed3\u5c3e\u4e00\u53e5,\u5c06\u6765\u4e5f\u8bb8\u4f1a\u7b80\u5316\u6389\nsys.run()\n-- \u4e4b\u540e\u7684\u4ee3\u7801\u4e0d\u4f1a\u88ab\u6267\u884c\n", "prefix": "sys.run"}, "sysplus.waitMsg": {"body": "sysplus.waitMsg(${1:taskName},${2:target},${3:timeout})", "description": "sysplus.waitMsg(taskName, target, timeout) - \u7b49\u5f85\u63a5\u6536\u4e00\u4e2a\u76ee\u6807\u6d88\u606f\n\u4f20\u5165\u503c\uff1a\nstring \u4efb\u52a1\u540d\u79f0\uff0c\u7528\u4e8e\u5524\u9192\u4efb\u52a1\u7684id\nstring \u76ee\u6807\u6d88\u606f\uff0c\u5982\u679c\u4e3anil\uff0c\u5219\u8868\u793a\u63a5\u6536\u5230\u4efb\u610f\u6d88\u606f\u90fd\u4f1a\u9000\u51fa\nint \u8d85\u65f6\u65f6\u95f4\uff0c\u5982\u679c\u4e3anil\uff0c\u5219\u8868\u793a\u65e0\u8d85\u65f6\uff0c\u6c38\u8fdc\u7b49\u5f85\n\u8fd4\u56de\u503c\uff1a\ntable \u6210\u529f\u8fd4\u56detable\u578b\u7684msg\uff0c\u8d85\u65f6\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- \u7b49\u5f85\u4efb\u52a1\nsysplus.waitMsg('a', 'b', 1000)\n-- \u6ce8\u610f, \u672c\u51fd\u6570\u4f1a\u81ea\u52a8\u6ce8\u518c\u6210\u5168\u5c40\u51fd\u6570 sys_wait\n", "prefix": "sysplus.waitMsg"}, "sysplus.sendMsg": {"body": "sysplus.sendMsg(${1:taskName},${2:target},${3:arg2},${4:arg3},${5:arg4})", "description": "sysplus.sendMsg(taskName, target, arg2, arg3, arg4) - \u5411\u76ee\u6807\u4efb\u52a1\u53d1\u9001\u4e00\u4e2a\u6d88\u606f\n\u4f20\u5165\u503c\uff1a\nstring \u4efb\u52a1\u540d\u79f0\uff0c\u7528\u4e8e\u5524\u9192\u4efb\u52a1\u7684id\nany \u6d88\u606f\u4e2d\u7684\u53c2\u65701\uff0c\u540c\u65f6\u4e5f\u662fwaitMsg\u91cc\u7684target\nany \u6d88\u606f\u4e2d\u7684\u53c2\u65702\nany \u6d88\u606f\u4e2d\u7684\u53c2\u65703\nany \u6d88\u606f\u4e2d\u7684\u53c2\u65704\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue, \u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- \u5411\u4efb\u52a1a,\u76ee\u6807b\u53d1\u9001\u6d88\u606f\nsysplus.sendMsg('a', 'b')\n-- \u6ce8\u610f, \u672c\u51fd\u6570\u4f1a\u81ea\u52a8\u6ce8\u518c\u6210\u5168\u5c40\u51fd\u6570 sys_send\n", "prefix": "sysplus.sendMsg"}, "sysplus.taskInitEx": {"body": "sysplus.taskInitEx(${1:fun},${2:taskName},${3:cbFun},${4:...})", "description": "sysplus.taskInitEx(fun, taskName, cbFun, ...) - \u521b\u5efa\u4e00\u4e2a\u4efb\u52a1\u7ebf\u7a0b,\u5728\u6a21\u5757\u6700\u672b\u884c\u8c03\u7528\u8be5\u51fd\u6570\u5e76\u6ce8\u518c\u6a21\u5757\u4e2d\u7684\u4efb\u52a1\u51fd\u6570,main.lua\u5bfc\u5165\u8be5\u6a21\u5757\u5373\u53ef\n\u4f20\u5165\u503c\uff1a\nfunction \u4efb\u52a1\u51fd\u6570\u540d,\u7528\u4e8eresume\u5524\u9192\u65f6\u8c03\u7528\nstring \u4efb\u52a1\u540d\u79f0,\u7528\u4e8e\u5524\u9192\u4efb\u52a1\u7684id\nfunction \u63a5\u6536\u5230\u975e\u76ee\u6807\u6d88\u606f\u65f6\u7684\u56de\u8c03\u51fd\u6570\nany ... \u4efb\u52a1\u51fd\u6570fun\u7684\u53ef\u53d8\u53c2\u6570\n\u8fd4\u56de\u503c\uff1a\nnumber \u8fd4\u56de\u8be5\u4efb\u52a1\u7684\u7ebf\u7a0b\u53f7\n\u4f8b\u5b50\uff1a\nsysplus.taskInitEx(task1,'a',callback)\n", "prefix": "sysplus.taskInitEx"}, "sysplus.taskDel": {"body": "sysplus.taskDel(${1:taskName})", "description": "sysplus.taskDel(taskName) - \u5220\u9664\u7531taskInitEx\u521b\u5efa\u7684\u4efb\u52a1\u7ebf\u7a0b\n\u4f20\u5165\u503c\uff1a\nstring \u4efb\u52a1\u540d\u79f0,\u7528\u4e8e\u5524\u9192\u4efb\u52a1\u7684id\n\u4f8b\u5b50\uff1a\nsysplus.taskDel('a')\n", "prefix": "sysplus.taskDel"}, "sysplus.cleanMsg": {"body": "sysplus.cleanMsg(${1:taskName})", "description": "sysplus.cleanMsg(taskName) - \u6e05\u9664\u6307\u5b9atask\u7684\u6d88\u606f\u961f\u5217\n\u4f20\u5165\u503c\uff1a\nstring \u4efb\u52a1\u540d\u79f0\n\u4f8b\u5b50\uff1a\nsysplus.cleanMsg('a')\n", "prefix": "sysplus.cleanMsg"}, "timer.mdelay": {"body": "timer.mdelay(${1:timeout})", "description": "timer.mdelay(timeout) - \u786c\u963b\u585e\u6307\u5b9a\u65f6\u957f\n\u4f20\u5165\u503c\uff1a\nint \u963b\u585e\u65f6\u957f,\u5355\u4f4dms, \u6700\u9ad81024ms, \u5b9e\u9645\u4f7f\u7528\u5f3a\u70c8\u5efa\u8bae\u4e0d\u8981\u8d85\u8fc7200ms\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n-- \u671f\u95f4\u6ca1\u6709\u4efb\u4f55luat\u4ee3\u7801\u4f1a\u6267\u884c,\u5305\u62ec\u5e95\u5c42\u6d88\u606f\u5904\u7406\u673a\u5236\n-- \u672c\u65b9\u6cd5\u901a\u5e38\u4e0d\u4f1a\u4f7f\u7528,\u9664\u975e\u4f60\u5f88\u6e05\u695a\u4f1a\u53d1\u751f\u4ec0\u4e48\ntimer.mdelay(10)\n", "prefix": "timer.mdelay"}, "timer.udelay": {"body": "timer.udelay(${1:timeout})", "description": "timer.udelay(timeout) - \u786c\u963b\u585e\u6307\u5b9a\u65f6\u957f\u4f46us\u7ea7\u522b,\u4e0d\u4f1a\u5f88\u7cbe\u51c6\n\u4f20\u5165\u503c\uff1a\nint \u963b\u585e\u65f6\u957f,\u5355\u4f4dus, \u6700\u59273000us\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n-- \u672c\u65b9\u6cd5\u901a\u5e38\u4e0d\u4f1a\u4f7f\u7528,\u9664\u975e\u4f60\u5f88\u6e05\u695a\u4f1a\u53d1\u751f\u4ec0\u4e48\n-- \u672cAPI\u5728 2023.05.18 \u6dfb\u52a0\ntimer.udelay(10)\n-- \u5b9e\u9645\u963b\u585e\u65f6\u957f\u662f\u6709\u6ce2\u52a8\u7684\n", "prefix": "timer.udelay"}, "touchkey.setup": {"body": "touchkey.setup(${1:id},${2:scan_period},${3:window},${4:threshold})", "description": "touchkey.setup(id, scan_period, window, threshold) - \u914d\u7f6e\u89e6\u6478\u6309\u952e\n\u4f20\u5165\u503c\uff1a\nint \u4f20\u611f\u5668id,\u8bf7\u67e5\u9605\u786c\u4ef6\u6587\u6863, \u4f8b\u5982air101/air103\u652f\u6301 1~15, \u4f8b\u5982PA7\u5bf9\u5e94touch id=1\nint \u626b\u63cf\u95f4\u9694,\u8303\u56f41 ~ 0x3F, \u5355\u4f4d16ms,\u53ef\u9009\nint \u626b\u63cf\u7a97\u53e3,\u8303\u56f42-7, \u53ef\u9009\nint \u9600\u503c, \u8303\u56f40-127, \u53ef\u9009\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue, \u5931\u8d25\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\ntouchkey.setup(1)\nsys.subscribe(\"TOUCHKEY_INC\", function(id, count)\n -- \u4f20\u611f\u5668id\n -- \u8ba1\u6570\u5668,\u89e6\u6478\u6b21\u6570\u7edf\u8ba1\n log.info(\"touchkey\", id, count)\nend)\n", "prefix": "touchkey.setup"}, "touchkey.close": {"body": "touchkey.close(${1:id})", "description": "touchkey.close(id) - \u5173\u95ed\u521d\u59cb\u89e6\u6478\u6309\u952e\n\u4f20\u5165\u503c\uff1a\nint \u4f20\u611f\u5668id,\u8bf7\u67e5\u9605\u786c\u4ef6\u6587\u6863\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n-- \u4e0d\u592a\u53ef\u80fd\u9700\u8981\u5173\u6389\u7684\u6837\u5b50\ntouchkey.close(1)\n", "prefix": "touchkey.close"}, "u8g2.begin": {"body": "u8g2.begin(${1:conf})", "description": "u8g2.begin(conf) - u8g2\u663e\u793a\u5c4f\u521d\u59cb\u5316\n\u4f20\u5165\u503c\uff1a\ntable conf \u914d\u7f6e\u4fe1\u606f ic:\u652f\u6301 custom(\u81ea\u5b9a\u4e49\u547d\u4ee4) ssd1306(\u9ed8\u8ba4) ssd1309 ssd1322 sh1106 sh1107 sh1108 st7567 uc1701 ssd1306_128x32, direction:\u65b9\u5411,\u53ef\u90090 90 180 270 \u9ed8\u8ba40 mode:\u6a21\u5f0f,\u53ef\u9009i2c_sw:\u8f6f\u4ef6i2c i2c_hw:\u786c\u4ef6i2c spi_hw_4pin:\u786c\u4ef6spi i2c_id:\u786c\u4ef6i2c\u65f6\u6709\u6548 i2c_scl=1\u3001i2c_sda:\u8f6f\u4ef6i2c\u65f6\u6709\u6548 spi_id\u3001spi_res\u3001spi_dc\u3001spi_cs:\u786c\u4ef6spi\u65f6\u751f\u6548\n\u8fd4\u56de\u503c\uff1a\nint \u6b63\u5e38\u521d\u59cb\u53161,\u5df2\u7ecf\u521d\u59cb\u5316\u8fc72,\u5185\u5b58\u4e0d\u591f3,\u521d\u59cb\u5316\u5931\u8d25\u8fd4\u56de4\n\u4f8b\u5b50\uff1a\n-- \u521d\u59cb\u5316\u786c\u4ef6i2c\u7684ssd1306\nu8g2.begin({ic = \"ssd1306\",direction = 0,mode=\"i2c_hw\",i2c_id=0}) -- direction \u53ef\u90090 90 180 270\n-- \u521d\u59cb\u5316\u786c\u4ef6spi\u7684ssd1306\nu8g2.begin({ic = \"ssd1306\",direction = 0,mode=\"spi_hw_4pin\",spi_id=0,spi_res=pin.PB03,spi_dc=pin.PB01,spi_cs=pin.PB04}) -- direction \u53ef\u90090 90 180 270\n-- \u521d\u59cb\u5316\u8f6f\u4ef6i2c\u7684ssd1306\nu8g2.begin({ic = \"ssd1306\",direction = 0,mode=\"i2c_sw\", i2c_scl=1, i2c_sda=4}) -- \u901a\u8fc7PA1 SCL / PA4 SDA\u6a21\u62df\n\n", "prefix": "u8g2.begin"}, "u8g2.close": {"body": "u8g2.close()", "description": "u8g2.close() - \u5173\u95ed\u663e\u793a\u5c4f\n\u4f8b\u5b50\uff1a\n-- \u5173\u95eddisp,\u518d\u6b21\u4f7f\u7528disp\u76f8\u5173API\u7684\u8bdd,\u9700\u8981\u91cd\u65b0\u521d\u59cb\u5316\nu8g2.close()\n", "prefix": "u8g2.close"}, "u8g2.ClearBuffer": {"body": "u8g2.ClearBuffer()", "description": "u8g2.ClearBuffer() - \u6e05\u5c4f\uff0c\u6e05\u9664\u5185\u5b58\u5e27\u7f13\u51b2\u533a\u4e2d\u7684\u6240\u6709\u50cf\u7d20\n\u4f8b\u5b50\uff1a\n-- \u6e05\u5c4f\nu8g2.ClearBuffer()\n", "prefix": "u8g2.ClearBuffer"}, "u8g2.SendBuffer": {"body": "u8g2.SendBuffer()", "description": "u8g2.SendBuffer() - \u5c06\u6570\u636e\u66f4\u65b0\u5230\u5c4f\u5e55\uff0c\u5c06\u5b58\u50a8\u5668\u5e27\u7f13\u51b2\u533a\u7684\u5185\u5bb9\u53d1\u9001\u5230\u663e\u793a\u5668\n\u4f8b\u5b50\uff1a\n-- \u628a\u663e\u793a\u6570\u636e\u66f4\u65b0\u5230\u5c4f\u5e55\nu8g2.SendBuffer()\n", "prefix": "u8g2.SendBuffer"}, "u8g2.DrawUTF8": {"body": "u8g2.DrawUTF8(${1:str},${2:x},${3:y})", "description": "u8g2.DrawUTF8(str, x, y) - \u5728\u663e\u793a\u5c4f\u4e0a\u753b\u4e00\u6bb5\u6587\u5b57\uff0c\u5728\u663e\u793a\u5c4f\u4e0a\u753b\u4e00\u6bb5\u6587\u5b57,\u8981\u8c03\u7528u8g2.SendBuffer()\u624d\u4f1a\u66f4\u65b0\u5230\u5c4f\u5e55\n\u4f20\u5165\u503c\uff1a\nstring \u6587\u4ef6\u5185\u5bb9\nint \u6a2a\u5750\u6807\nint \u7ad6\u5750\u6807\n\u4f8b\u5b50\uff1a\nu8g2.DrawUTF8(\"wifi is ready\", 10, 20)\n", "prefix": "u8g2.DrawUTF8"}, "u8g2.DrawButtonUTF8": {"body": "u8g2.DrawButtonUTF8(${1:str},${2:x},${3:y},${4:flags},${5:w},${6:h},${7:v},${8:str})", "description": "u8g2.DrawButtonUTF8(str, x, y, flags, w, h, v, str) - \u5728\u63d0\u4f9b\u7684\u6587\u672c\u5468\u56f4\u753b\u4e00\u4e2a\u6846\u3002\u8fd9\u4e0e DrawUTF8 \u7c7b\u4f3c\uff0c\u4f46\u4e3a\u6587\u672c\u6dfb\u52a0\u4e86\u4e00\u4e9b\u88c5\u9970\u3002,\u8981\u8c03\u7528u8g2.SendBuffer()\u624d\u4f1a\u66f4\u65b0\u5230\u5c4f\u5e55\n\u4f20\u5165\u503c\uff1a\nstring \u6587\u4ef6\u5185\u5bb9\nint \u6a2a\u5750\u6807\nint \u7ad6\u5750\u6807\nint \u6807\u5fd7 \u591a\u4e2a\u6807\u5fd7\u53ef\u4ee5\u4e0e\u201c\u6216\u201d\u8fd0\u7b97\u7b26\u4e00\u8d77\u4f7f\u7528\u3002\nint \u6587\u672c\u7684\u6700\u5c0f\u5bbd\u5ea6\u3002\u5982\u679c\u4e3a0\uff08\u6216\u4f4e\u4e8e\u6587\u672c\u5bbd\u5ea6\uff09\uff0c\u5219\u6587\u672c\u5bbd\u5ea6\u5c06\u7528\u4e8e\u6846\u67b6\u3002\nint \u6587\u672c\u524d\u540e\u7684\u989d\u5916\u7a7a\u95f4\u3002\nint \u6587\u672c\u4e0a\u4e0b\u7684\u989d\u5916\u7a7a\u95f4\u3002\n\u4f8b\u5b50\uff1a\nu8g2.DrawButtonUTF8(\"str\", 10, 20,u8g2.BTN_BW2,0,2,2)\n", "prefix": "u8g2.DrawButtonUTF8"}, "u8g2.SetFontMode": {"body": "u8g2.SetFontMode(${1:mode})", "description": "u8g2.SetFontMode(mode) - \u8bbe\u7f6e\u5b57\u4f53\u6a21\u5f0f\n\u4f20\u5165\u503c\uff1a\nint mode\u5b57\u4f53\u6a21\u5f0f\uff0c\u542f\u7528\uff081\uff09\u6216\u7981\u7528\uff080\uff09\u900f\u660e\u6a21\u5f0f\n\u4f8b\u5b50\uff1a\nu8g2.SetFontMode(1)\n", "prefix": "u8g2.SetFontMode"}, "u8g2.SetFont": {"body": "u8g2.SetFont(${1:font})", "description": "u8g2.SetFont(font) - \u8bbe\u7f6e\u5b57\u4f53\n\u4f20\u5165\u503c\uff1a\nuserdata font, u8g2.font_opposansm8 \u4e3a\u7eaf\u82f1\u65878\u53f7\u5b57\u4f53,\u8fd8\u6709font_opposansm10 font_opposansm12 font_opposansm16 font_opposansm18 font_opposansm20 font_opposansm22 font_opposansm24 font_opposansm32 \u53ef\u9009 u8g2.font_opposansm12_chinese \u4e3a12x12\u5168\u4e2d\u6587,\u8fd8\u6709 font_opposansm16_chinese font_opposansm24_chinese font_opposansm32_chinese \u53ef\u9009, u8g2.font_unifont_t_symbols \u4e3a\u7b26\u53f7.\n\u4f8b\u5b50\uff1a\n-- \u8bbe\u7f6e\u4e3a\u4e2d\u6587\u5b57\u4f53,\u5bf9\u4e4b\u540e\u7684drawStr\u6709\u6548\nu8g2.SetFont(u8g2.font_opposansm12)\n", "prefix": "u8g2.SetFont"}, "u8g2.GetDisplayHeight": {"body": "u8g2.GetDisplayHeight()", "description": "u8g2.GetDisplayHeight() - \u83b7\u53d6\u663e\u793a\u5c4f\u9ad8\u5ea6\n\u8fd4\u56de\u503c\uff1a\nint \u663e\u793a\u5c4f\u9ad8\u5ea6\n\u4f8b\u5b50\uff1a\nu8g2.GetDisplayHeight()\n", "prefix": "u8g2.GetDisplayHeight"}, "u8g2.GetDisplayWidth": {"body": "u8g2.GetDisplayWidth()", "description": "u8g2.GetDisplayWidth() - \u83b7\u53d6\u663e\u793a\u5c4f\u5bbd\u5ea6\n\u8fd4\u56de\u503c\uff1a\nint \u663e\u793a\u5c4f\u5bbd\u5ea6\n\u4f8b\u5b50\uff1a\nu8g2.GetDisplayWidth()\n", "prefix": "u8g2.GetDisplayWidth"}, "u8g2.SetDrawColor": {"body": "u8g2.SetDrawColor(${1:c})", "description": "u8g2.SetDrawColor(c) - \u4e3a\u6240\u6709\u7ed8\u56fe\u529f\u80fd\u5206\u914d\u7ed8\u56fe\u989c\u8272\u3002\n\u4f20\u5165\u503c\uff1a\nint c\u4e3a\u989c\u8272\u503c 0\u6ca1\u6709\u8272 1\u6709\u8272 2\u4e0e\u5e95\u8272xor\n\u4f8b\u5b50\uff1a\nu8g2.SetDrawColor(0)\n", "prefix": "u8g2.SetDrawColor"}, "u8g2.DrawPixel": {"body": "u8g2.DrawPixel(${1:x},${2:y})", "description": "u8g2.DrawPixel(x,y) - \u753b\u4e00\u4e2a\u70b9.\n\u4f20\u5165\u503c\uff1a\nint X\u4f4d\u7f6e.\nint Y\u4f4d\u7f6e.\n\u4f8b\u5b50\uff1a\nu8g2.DrawPixel(20, 5)\n", "prefix": "u8g2.DrawPixel"}, "u8g2.DrawLine": {"body": "u8g2.DrawLine(${1:x0},${2:y0},${3:x1},${4:y1})", "description": "u8g2.DrawLine(x0,y0,x1,y1) - \u5728\u4e24\u70b9\u4e4b\u95f4\u753b\u4e00\u6761\u7ebf.\n\u4f20\u5165\u503c\uff1a\nint \u7b2c\u4e00\u4e2a\u70b9\u7684X\u4f4d\u7f6e.\nint \u7b2c\u4e00\u4e2a\u70b9\u7684Y\u4f4d\u7f6e.\nint \u7b2c\u4e8c\u4e2a\u70b9\u7684X\u4f4d\u7f6e.\nint \u7b2c\u4e8c\u4e2a\u70b9\u7684Y\u4f4d\u7f6e.\n\u4f8b\u5b50\uff1a\nu8g2.DrawLine(20, 5, 5, 32)\n", "prefix": "u8g2.DrawLine"}, "u8g2.DrawCircle": {"body": "u8g2.DrawCircle(${1:x0},${2:y0},${3:rad},${4:opt})", "description": "u8g2.DrawCircle(x0,y0,rad,opt) - \u5728x,y\u4f4d\u7f6e\u753b\u4e00\u4e2a\u534a\u5f84\u4e3arad\u7684\u7a7a\u5fc3\u5706.\n\u4f20\u5165\u503c\uff1a\nint \u5706\u5fc3\u4f4d\u7f6e\nint \u5706\u5fc3\u4f4d\u7f6e\nint \u5706\u534a\u5f84.\nint \u9009\u62e9\u5706\u7684\u90e8\u5206\u6216\u5168\u90e8. \u9ed8\u8ba4\u5168\u753b \u53ef\u9009 u8g2.DRAW_UPPER_RIGHT u8g2.DRAW_UPPER_LEFT u8g2.DRAW_LOWER_LEFT u8g2.DRAW_LOWER_RIGHT u8g2.DRAW_ALL\n\u4f8b\u5b50\uff1a\nu8g2.DrawCircle(60,30,8,u8g2.DRAW_ALL)\n", "prefix": "u8g2.DrawCircle"}, "u8g2.DrawDisc": {"body": "u8g2.DrawDisc(${1:x0},${2:y0},${3:rad},${4:opt})", "description": "u8g2.DrawDisc(x0,y0,rad,opt) - \u5728x,y\u4f4d\u7f6e\u753b\u4e00\u4e2a\u534a\u5f84\u4e3arad\u7684\u5b9e\u5fc3\u5706.\n\u4f20\u5165\u503c\uff1a\nint \u5706\u5fc3\u4f4d\u7f6e\nint \u5706\u5fc3\u4f4d\u7f6e\nint \u5706\u534a\u5f84.\nint \u9009\u62e9\u5706\u7684\u90e8\u5206\u6216\u5168\u90e8. \u9ed8\u8ba4\u5168\u753b \u53ef\u9009 u8g2.DRAW_UPPER_RIGHT u8g2.DRAW_UPPER_LEFT u8g2.DRAW_LOWER_LEFT u8g2.DRAW_LOWER_RIGHT u8g2.DRAW_ALL\n\u4f8b\u5b50\uff1a\nu8g2.DrawDisc(60,30,8,u8g2.DRAW_ALL)\n", "prefix": "u8g2.DrawDisc"}, "u8g2.DrawEllipse": {"body": "u8g2.DrawEllipse(${1:x0},${2:y0},${3:rx},${4:ry},${5:opt})", "description": "u8g2.DrawEllipse(x0,y0,rx,ry,opt) - \u5728x,y\u4f4d\u7f6e\u753b\u4e00\u4e2a\u534a\u5f84\u4e3arad\u7684\u7a7a\u5fc3\u692d\u5706.\n\u4f20\u5165\u503c\uff1a\nint \u5706\u5fc3\u4f4d\u7f6e\nint \u5706\u5fc3\u4f4d\u7f6e\nint \u692d\u5706\u5927\u5c0f\nint \u692d\u5706\u5927\u5c0f\nint \u9009\u62e9\u5706\u7684\u90e8\u5206\u6216\u5168\u90e8. \u9ed8\u8ba4\u5168\u753b \u53ef\u9009 u8g2.DRAW_UPPER_RIGHT u8g2.DRAW_UPPER_LEFT u8g2.DRAW_LOWER_LEFT u8g2.DRAW_LOWER_RIGHT u8g2.DRAW_ALL\n\u4f8b\u5b50\uff1a\nu8g2.DrawEllipse(60,30,8,u8g2.DRAW_ALL)\n", "prefix": "u8g2.DrawEllipse"}, "u8g2.DrawFilledEllipse": {"body": "u8g2.DrawFilledEllipse(${1:x0},${2:y0},${3:rx},${4:ry},${5:opt})", "description": "u8g2.DrawFilledEllipse(x0,y0,rx,ry,opt) - \u5728x,y\u4f4d\u7f6e\u753b\u4e00\u4e2a\u534a\u5f84\u4e3arad\u7684\u5b9e\u5fc3\u692d\u5706.\n\u4f20\u5165\u503c\uff1a\nint \u5706\u5fc3\u4f4d\u7f6e\nint \u5706\u5fc3\u4f4d\u7f6e\nint \u692d\u5706\u5927\u5c0f\nint \u692d\u5706\u5927\u5c0f\nint \u9009\u62e9\u5706\u7684\u90e8\u5206\u6216\u5168\u90e8. \u9ed8\u8ba4\u5168\u753b \u53ef\u9009 u8g2.DRAW_UPPER_RIGHT u8g2.DRAW_UPPER_LEFT u8g2.DRAW_LOWER_LEFT u8g2.DRAW_LOWER_RIGHT u8g2.DRAW_ALL\n\u4f8b\u5b50\uff1a\nu8g2.DrawFilledEllipse(60,30,8,15)\n", "prefix": "u8g2.DrawFilledEllipse"}, "u8g2.DrawBox": {"body": "u8g2.DrawBox(${1:x},${2:y},${3:w},${4:h})", "description": "u8g2.DrawBox(x,y,w,h) - \u4ecex / y\u4f4d\u7f6e\uff08\u5de6\u4e0a\u8fb9\u7f18\uff09\u5f00\u59cb\u7ed8\u5236\u4e00\u4e2a\u6846\uff08\u586b\u5145\u7684\u6846\uff09.\n\u4f20\u5165\u503c\uff1a\nint \u5de6\u4e0a\u8fb9\u7f18\u7684X\u4f4d\u7f6e\nint \u5de6\u4e0a\u8fb9\u7f18\u7684Y\u4f4d\u7f6e\nint \u76d2\u5b50\u7684\u5bbd\u5ea6\nint \u76d2\u5b50\u7684\u9ad8\u5ea6\n\u4f8b\u5b50\uff1a\nu8g2.DrawBox(3,7,25,15)\n", "prefix": "u8g2.DrawBox"}, "u8g2.DrawFrame": {"body": "u8g2.DrawFrame(${1:x},${2:y},${3:w},${4:h})", "description": "u8g2.DrawFrame(x,y,w,h) - \u4ecex / y\u4f4d\u7f6e\uff08\u5de6\u4e0a\u8fb9\u7f18\uff09\u5f00\u59cb\u7ed8\u5236\u4e00\u4e2a\u6846\uff08\u7a7a\u6846\uff09.\n\u4f20\u5165\u503c\uff1a\nint \u5de6\u4e0a\u8fb9\u7f18\u7684X\u4f4d\u7f6e\nint \u5de6\u4e0a\u8fb9\u7f18\u7684Y\u4f4d\u7f6e\nint \u76d2\u5b50\u7684\u5bbd\u5ea6\nint \u76d2\u5b50\u7684\u9ad8\u5ea6\n\u4f8b\u5b50\uff1a\nu8g2.DrawFrame(3,7,25,15)\n", "prefix": "u8g2.DrawFrame"}, "u8g2.DrawRBox": {"body": "u8g2.DrawRBox(${1:x},${2:y},${3:w},${4:h},${5:r})", "description": "u8g2.DrawRBox(x,y,w,h,r) - \u7ed8\u5236\u4e00\u4e2a\u4ecex / y\u4f4d\u7f6e\uff08\u5de6\u4e0a\u8fb9\u7f18\uff09\u5f00\u59cb\u5177\u6709\u5706\u5f62\u8fb9\u7f18\u7684\u586b\u5145\u6846/\u6846\u67b6.\n\u4f20\u5165\u503c\uff1a\nint \u5de6\u4e0a\u8fb9\u7f18\u7684X\u4f4d\u7f6e\nint \u5de6\u4e0a\u8fb9\u7f18\u7684Y\u4f4d\u7f6e\nint \u76d2\u5b50\u7684\u5bbd\u5ea6\nint \u76d2\u5b50\u7684\u9ad8\u5ea6\nint \u56db\u4e2a\u8fb9\u7f18\u7684\u534a\u5f84\n\u4f8b\u5b50\uff1a\nu8g2.DrawRBox(3,7,25,15)\n", "prefix": "u8g2.DrawRBox"}, "u8g2.DrawRFrame": {"body": "u8g2.DrawRFrame(${1:x},${2:y},${3:w},${4:h},${5:r})", "description": "u8g2.DrawRFrame(x,y,w,h,r) - \u7ed8\u5236\u4e00\u4e2a\u4ecex / y\u4f4d\u7f6e\uff08\u5de6\u4e0a\u8fb9\u7f18\uff09\u5f00\u59cb\u5177\u6709\u5706\u5f62\u8fb9\u7f18\u7684\u7a7a\u6846/\u6846\u67b6.\n\u4f20\u5165\u503c\uff1a\nint \u5de6\u4e0a\u8fb9\u7f18\u7684X\u4f4d\u7f6e\nint \u5de6\u4e0a\u8fb9\u7f18\u7684Y\u4f4d\u7f6e\nint \u76d2\u5b50\u7684\u5bbd\u5ea6\nint \u76d2\u5b50\u7684\u9ad8\u5ea6\nint \u56db\u4e2a\u8fb9\u7f18\u7684\u534a\u5f84\n\u4f8b\u5b50\uff1a\nu8g2.DrawRFrame(3,7,25,15)\n", "prefix": "u8g2.DrawRFrame"}, "u8g2.DrawGlyph": {"body": "u8g2.DrawGlyph(${1:x},${2:y},${3:encoding})", "description": "u8g2.DrawGlyph(x,y,encoding) - \u7ed8\u5236\u4e00\u4e2a\u56fe\u5f62\u5b57\u7b26\u3002\u5b57\u7b26\u653e\u7f6e\u5728\u6307\u5b9a\u7684\u50cf\u7d20\u4f4d\u7f6ex\u548cy.\n\u4f20\u5165\u503c\uff1a\nint \u5b57\u7b26\u5728\u663e\u793a\u5c4f\u4e0a\u7684\u4f4d\u7f6e\nint \u5b57\u7b26\u5728\u663e\u793a\u5c4f\u4e0a\u7684\u4f4d\u7f6e\nint \u5b57\u7b26\u7684Unicode\u503c\n\u4f8b\u5b50\uff1a\nu8g2.SetFont(u8g2_font_unifont_t_symbols)\nu8g2.DrawGlyph(5, 20, 0x2603)\t-- dec 9731/hex 2603 Snowman\n", "prefix": "u8g2.DrawGlyph"}, "u8g2.DrawTriangle": {"body": "u8g2.DrawTriangle(${1:x0},${2:y0},${3:x1},${4:y1},${5:x2},${6:y2})", "description": "u8g2.DrawTriangle(x0,y0,x1,y1,x2,y2) - \u7ed8\u5236\u4e00\u4e2a\u4e09\u89d2\u5f62\uff08\u5b9e\u5fc3\u591a\u8fb9\u5f62\uff09.\n\u4f20\u5165\u503c\uff1a\nint \u70b90X\u4f4d\u7f6e\nint \u70b90Y\u4f4d\u7f6e\nint \u70b91X\u4f4d\u7f6e\nint \u70b91Y\u4f4d\u7f6e\nint \u70b92X\u4f4d\u7f6e\nint \u70b92Y\u4f4d\u7f6e\n\u4f8b\u5b50\uff1a\nu8g2.DrawTriangle(20,5, 27,50, 5,32)\n", "prefix": "u8g2.DrawTriangle"}, "u8g2.SetBitmapMode": {"body": "u8g2.SetBitmapMode(${1:mode})", "description": "u8g2.SetBitmapMode(mode) - \u5b9a\u4e49\u4f4d\u56fe\u51fd\u6570\u662f\u5426\u5c06\u5199\u5165\u80cc\u666f\u8272\n\u4f20\u5165\u503c\uff1a\nint mode\u5b57\u4f53\u6a21\u5f0f\uff0c\u542f\u7528\uff081\uff09\u6216\u7981\u7528\uff080\uff09\u900f\u660e\u6a21\u5f0f\n\u4f8b\u5b50\uff1a\nu8g2.SetBitmapMode(1)\n", "prefix": "u8g2.SetBitmapMode"}, "u8g2.DrawXBM": {"body": "u8g2.DrawXBM(${1:x},${2:y},${3:w},${4:h},${5:data})", "description": "u8g2.DrawXBM(x, y, w, h, data) - \u7ed8\u5236\u4f4d\u56fe\n\u4f20\u5165\u503c\uff1a\nint X\u5750\u6807\nint y\u5750\u6807\nint \u4f4d\u56fe\u5bbd\nint \u4f4d\u56fe\u9ad8\nint \u4f4d\u56fe\u6570\u636e,\u6bcf\u4e00\u4f4d\u4ee3\u8868\u4e00\u4e2a\u50cf\u7d20\n\u4f8b\u5b50\uff1a\n-- \u53d6\u6a21\u4f7f\u7528PCtoLCD2002\u8f6f\u4ef6\u5373\u53ef\n-- \u5728(0,0)\u4e3a\u5de6\u4e0a\u89d2,\u7ed8\u5236 16x16 \"\u4eca\" \u7684\u4f4d\u56fe\nu8g2.DrawXBM(0, 0, 16,16, string.char(\n 0x80,0x00,0x80,0x00,0x40,0x01,0x20,0x02,0x10,0x04,0x48,0x08,0x84,0x10,0x83,0x60,\n 0x00,0x00,0xF8,0x0F,0x00,0x08,0x00,0x04,0x00,0x04,0x00,0x02,0x00,0x01,0x80,0x00\n))\n", "prefix": "u8g2.DrawXBM"}, "u8g2.DrawDrcode": {"body": "u8g2.DrawDrcode(${1:x},${2:y},${3:str},${4:size})", "description": "u8g2.DrawDrcode(x, y, str, size) - \u7f13\u51b2\u533a\u7ed8\u5236QRCode\n\u4f20\u5165\u503c\uff1a\nint x\u5750\u6807\nint y\u5750\u6807\nstring \u4e8c\u7ef4\u7801\u7684\u5185\u5bb9\nint \u663e\u793a\u5927\u5c0f (\u6ce8\u610f:\u4e8c\u7ef4\u7801\u751f\u6210\u5927\u5c0f\u4e0e\u8981\u663e\u793a\u5185\u5bb9\u548c\u7ea0\u9519\u7b49\u7ea7\u6709\u5173,\u751f\u6210\u7248\u672c\u4e3a1-40(\u5bf9\u5e94 21x21 - 177x177)\u7684\u4e0d\u5b9a\u5927\u5c0f,\u5982\u679c\u548c\u8bbe\u7f6e\u5927\u5c0f\u4e0d\u540c\u4f1a\u81ea\u52a8\u5728\u6307\u5b9a\u7684\u533a\u57df\u4e2d\u95f4\u663e\u793a\u4e8c\u7ef4\u7801,\u5982\u4e8c\u7ef4\u7801\u672a\u663e\u793a\u8bf7\u67e5\u770b\u65e5\u5fd7\u63d0\u793a)\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n", "prefix": "u8g2.DrawDrcode"}, "u8g2.SetContrast": {"body": "u8g2.SetContrast(${1:contrast})", "description": "u8g2.SetContrast(contrast) - \u8c03\u6574\u5c4f\u5e55\u5bf9\u6bd4\u5ea6\n\u4f20\u5165\u503c\uff1a\nint \u5bf9\u6bd4\u5ea6\uff08\u53d6\u503c\u8303\u56f4\u4e0eIC\u6709\u5173\uff0c\u5982st7567\u4e3a0-63\uff09\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n", "prefix": "u8g2.SetContrast"}, "u8g2.drawGtfontGb2312": {"body": "u8g2.drawGtfontGb2312(${1:str},${2:size},${3:x},${4:y})", "description": "u8g2.drawGtfontGb2312(str,size,x,y) - \u4f7f\u7528gtfont\u663e\u793agb2312\u5b57\u7b26\u4e32\n\u4f20\u5165\u503c\uff1a\nstring str \u663e\u793a\u5b57\u7b26\u4e32\nint size \u5b57\u4f53\u5927\u5c0f (\u652f\u630116-192\u53f7\u5927\u5c0f\u5b57\u4f53)\nint x \u6a2a\u5750\u6807\nint y \u7ad6\u5750\u6807\n\u4f8b\u5b50\uff1a\nu8g2.drawGtfontGb2312(\"\u554a\u554a\u554a\",32,0,0)\n", "prefix": "u8g2.drawGtfontGb2312"}, "u8g2.drawGtfontUtf8": {"body": "u8g2.drawGtfontUtf8(${1:str},${2:size},${3:x},${4:y})", "description": "u8g2.drawGtfontUtf8(str,size,x,y) - \u4f7f\u7528gtfont\u663e\u793aUTF8\u5b57\u7b26\u4e32\n\u4f20\u5165\u503c\uff1a\nstring str \u663e\u793a\u5b57\u7b26\u4e32\nint size \u5b57\u4f53\u5927\u5c0f (\u652f\u630116-192\u53f7\u5927\u5c0f\u5b57\u4f53)\nint x \u6a2a\u5750\u6807\nint y \u7ad6\u5750\u6807\n\u4f8b\u5b50\uff1a\nu8g2.drawGtfontUtf8(\"\u554a\u554a\u554a\",32,0,0)\n", "prefix": "u8g2.drawGtfontUtf8"}, "u8g2.CopyBuffer": {"body": "u8g2.CopyBuffer(${1:buff})", "description": "u8g2.CopyBuffer(buff) - \u83b7\u53d6\u5e95\u5c42\u56fe\u50cf\u7f13\u51b2\u533a\n\u4f20\u5165\u503c\uff1a\nuserdata zbuff\u5b9e\u4f8b,\u7a7a\u95f4\u8981\u5927\u4e8e\u7b49\u4e8e\u5e95\u5c42buff\u7684\u5927\u5c0f\n\u8fd4\u56de\u503c\uff1a\nint \u6210\u529f\u8fd4\u56debuff\u5927\u5c0f,\u5426\u5219\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\n-- \u672c\u51fd\u6570\u5728u8g2\u521d\u59cb\u5316\u4e4b\u540e\u624d\u80fd\u8c03\u7528\n\n-- \u83b7\u53d6\u5927\u5c0f\nlocal sz = u8g2.CopyBuffer()\n\n-- \u62f7\u8d1d\u5e95\u5c42buff\nlocal buff = zbuff.create(sz)\nu8g2.CopyBuffer(buff)\n\n", "prefix": "u8g2.CopyBuffer"}, "u8g2.SetPowerSave": {"body": "u8g2.SetPowerSave(${1:is_enable})", "description": "u8g2.SetPowerSave(is_enable) - \u8bbe\u7f6e\u7701\u7535\u6a21\u5f0f\n\u4f20\u5165\u503c\uff1a\nboolean \u542f\u7528\u4e0e\u5426. true \u542f\u7528, false\u7981\u7528\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n-- \u672cAPI\u4e8e2023.11.02\u65b0\u589e\n-- \u5f00\u542f\u7701\u7535\nu8g2.SetPowerSave(true)\n-- \u5173\u95ed\u7701\u7535\nu8g2.SetPowerSave(false)\n", "prefix": "u8g2.SetPowerSave"}, "uart.setup": {"body": "uart.setup(${1:id},${2:baud_rate},${3:data_bits},${4:stop_bits},${5:partiy},${6:bit_order},${7:buff_size},${8:rs485_gpio},${9:rs485_level},${10:rs485_delay})", "description": "uart.setup(id, baud_rate, data_bits, stop_bits, partiy, bit_order, buff_size, rs485_gpio, rs485_level, rs485_delay) - \u914d\u7f6e\u4e32\u53e3\u53c2\u6570\n\u4f20\u5165\u503c\uff1a\nint \u4e32\u53e3id, uart0\u51990, uart1\u51991, \u5982\u6b64\u7c7b\u63a8, \u6700\u5927\u503c\u53d6\u51b3\u4e8e\u8bbe\u5907\nint \u6ce2\u7279\u7387, \u9ed8\u8ba4115200\uff0c\u53ef\u9009\u62e9\u6ce2\u7279\u7387\u8868:{2000000,921600,460800,230400,115200,57600,38400,19200,9600,4800,2400}\nint \u6570\u636e\u4f4d\uff0c\u9ed8\u8ba4\u4e3a8, \u53ef\u9009 7/8\nint \u505c\u6b62\u4f4d\uff0c\u9ed8\u8ba4\u4e3a1, \u6839\u636e\u5b9e\u9645\u60c5\u51b5\uff0c\u53ef\u4ee5\u67090.5/1/1.5/2\u7b49\nint \u6821\u9a8c\u4f4d\uff0c\u53ef\u9009 uart.None/uart.Even/uart.Odd\nint \u5927\u5c0f\u7aef\uff0c\u9ed8\u8ba4\u5c0f\u7aef uart.LSB, \u53ef\u9009 uart.MSB\nint \u7f13\u51b2\u533a\u5927\u5c0f\uff0c\u9ed8\u8ba4\u503c1024\nint 485\u6a21\u5f0f\u4e0b\u7684\u8f6c\u6362GPIO, \u9ed8\u8ba4\u503c0xffffffff\nint 485\u6a21\u5f0f\u4e0b\u7684rx\u65b9\u5411GPIO\u7684\u7535\u5e73, \u9ed8\u8ba4\u503c0\nint 485\u6a21\u5f0f\u4e0btx\u5411rx\u8f6c\u6362\u7684\u5ef6\u8fdf\u65f6\u95f4\uff0c\u9ed8\u8ba4\u503c12bit\u7684\u65f6\u95f4\uff0c\u5355\u4f4dus\n\u8fd4\u56de\u503c\uff1a\nint \u6210\u529f\u8fd4\u56de0,\u5931\u8d25\u8fd4\u56de\u5176\u4ed6\u503c\n\u4f8b\u5b50\uff1a\n-- \u6700\u5e38\u7528115200 8N1\nuart.setup(1, 115200, 8, 1, uart.NONE)\n-- \u53ef\u4ee5\u7b80\u5199\u4e3a uart.setup(1)\n\n-- 485\u81ea\u52a8\u5207\u6362, \u9009\u53d6GPIO10\u4f5c\u4e3a\u6536\u53d1\u8f6c\u6362\u811a\nuart.setup(1, 115200, 8, 1, uart.NONE, uart.LSB, 1024, 10, 0, 100)\n", "prefix": "uart.setup"}, "uart.write": {"body": "uart.write(${1:id},${2:data})", "description": "uart.write(id, data) - \u5199\u4e32\u53e3\n\u4f20\u5165\u503c\uff1a\nint \u4e32\u53e3id, uart0\u51990, uart1\u51991\nstring/zbuff \u5f85\u5199\u5165\u7684\u6570\u636e\uff0c\u5982\u679c\u662fzbuff\u4f1a\u4ece\u6307\u9488\u8d77\u59cb\u4f4d\u7f6e\u5f00\u59cb\u8bfb\nint \u53ef\u9009\uff0c\u8981\u53d1\u9001\u7684\u6570\u636e\u957f\u5ea6\uff0c\u9ed8\u8ba4\u5168\u53d1\n\u8fd4\u56de\u503c\uff1a\nint \u6210\u529f\u7684\u6570\u636e\u957f\u5ea6\n\u4f8b\u5b50\uff1a\n-- \u5199\u5165\u53ef\u89c1\u5b57\u7b26\u4e32\nuart.write(1, \"rdy\\r\\n\")\n-- \u5199\u5165\u5341\u516d\u8fdb\u5236\u7684\u6570\u636e\u4e32\nuart.write(1, string.char(0x55,0xAA,0x4B,0x03,0x86))\n", "prefix": "uart.write"}, "uart.read": {"body": "uart.read(${1:id},${2:len})", "description": "uart.read(id, len) - \u8bfb\u4e32\u53e3\n\u4f20\u5165\u503c\uff1a\nint \u4e32\u53e3id, uart0\u51990, uart1\u51991\nint \u8bfb\u53d6\u957f\u5ea6\nfile/zbuff \u53ef\u9009\uff1a\u6587\u4ef6\u53e5\u67c4\u6216zbuff\u5bf9\u8c61\n\u8fd4\u56de\u503c\uff1a\nstring \u8bfb\u53d6\u5230\u7684\u6570\u636e / \u4f20\u5165zbuff\u65f6\uff0c\u8fd4\u56de\u8bfb\u5230\u7684\u957f\u5ea6\uff0c\u5e76\u628azbuff\u6307\u9488\u540e\u79fb\n\u4f8b\u5b50\uff1a\nuart.read(1, 16)\n", "prefix": "uart.read"}, "uart.close": {"body": "uart.close(${1:id})", "description": "uart.close(id) - \u5173\u95ed\u4e32\u53e3\n\u4f20\u5165\u503c\uff1a\nint \u4e32\u53e3id, uart0\u51990, uart1\u51991\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\nuart.close(1)\n", "prefix": "uart.close"}, "uart.on": {"body": "uart.on(${1:id},${2:event},${3:func})", "description": "uart.on(id, event, func) - \u6ce8\u518c\u4e32\u53e3\u4e8b\u4ef6\u56de\u8c03\n\u4f20\u5165\u503c\uff1a\nint \u4e32\u53e3id, uart0\u51990, uart1\u51991\nstring \u4e8b\u4ef6\u540d\u79f0\nfunction \u56de\u8c03\u65b9\u6cd5\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\nuart.on(1, \"receive\", function(id, len)\n local data = uart.read(id, len)\n log.info(\"uart\", id, len, data)\nend)\n", "prefix": "uart.on"}, "uart.wait485": {"body": "uart.wait485(${1:id})", "description": "uart.wait485(id) - \u7b49\u5f85485\u6a21\u5f0f\u4e0bTX\u5b8c\u6210\uff0cmcu\u4e0d\u652f\u6301\u4e32\u53e3\u53d1\u9001\u79fb\u4f4d\u5bc4\u5b58\u5668\u7a7a\u6216\u8005\u7c7b\u4f3c\u4e2d\u65ad\u65f6\u624d\u9700\u8981\uff0c\u5728sent\u4e8b\u4ef6\u56de\u8c03\u540e\u4f7f\u7528\n\u4f20\u5165\u503c\uff1a\nint \u4e32\u53e3id, uart0\u51990, uart1\u51991\n\u8fd4\u56de\u503c\uff1a\nint \u7b49\u5f85\u4e86\u591a\u5c11\u6b21\u5faa\u73af\u624d\u7b49\u5230tx\u5b8c\u6210\uff0c\u7528\u4e8e\u7c97\u52a3\u7684\u89c2\u5bdfdelay\u65f6\u95f4\u662f\u5426\u8db3\u591f\uff0c\u8fd4\u56de\u4e0d\u4e3a0\u8bf4\u660e\u8fd8\u9700\u8981\u653e\u5927delay\n", "prefix": "uart.wait485"}, "uart.exist": {"body": "uart.exist(${1:id})", "description": "uart.exist(id) - \u68c0\u67e5\u4e32\u53e3\u53f7\u662f\u5426\u5b58\u5728\n\u4f20\u5165\u503c\uff1a\nint \u4e32\u53e3id, uart0\u51990, uart1\u51991, \u5982\u6b64\u7c7b\u63a8\n\u8fd4\u56de\u503c\uff1a\nbool \u5b58\u5728\u8fd4\u56detrue\n", "prefix": "uart.exist"}, "uart.rx": {"body": "uart.rx(${1:id},${2:buff})", "description": "uart.rx(id, buff) - buff\u5f62\u5f0f\u8bfb\u4e32\u53e3\uff0c\u4e00\u6b21\u8bfb\u51fa\u5168\u90e8\u6570\u636e\u5b58\u5165buff\u4e2d\uff0c\u5982\u679cbuff\u7a7a\u95f4\u4e0d\u591f\u4f1a\u81ea\u52a8\u6269\u5c55\uff0c\u76ee\u524dair105,air780e\u652f\u6301\u8fd9\u4e2a\u64cd\u4f5c\n\u4f20\u5165\u503c\uff1a\nint \u4e32\u53e3id, uart0\u51990, uart1\u51991\nzbuff zbuff\u5bf9\u8c61\n\u8fd4\u56de\u503c\uff1a\nint \u8fd4\u56de\u8bfb\u5230\u7684\u957f\u5ea6\uff0c\u5e76\u628azbuff\u6307\u9488\u540e\u79fb\n\u4f8b\u5b50\uff1a\nuart.rx(1, buff)\n", "prefix": "uart.rx"}, "uart.rxSize": {"body": "uart.rxSize(${1:id})", "description": "uart.rxSize(id) - \u8bfb\u4e32\u53e3Rx\u7f13\u5b58\u4e2d\u5269\u4f59\u6570\u636e\u91cf\uff0c\u76ee\u524dair105,air780e\u652f\u6301\u8fd9\u4e2a\u64cd\u4f5c\n\u4f20\u5165\u503c\uff1a\nint \u4e32\u53e3id, uart0\u51990, uart1\u51991\n\u8fd4\u56de\u503c\uff1a\nint \u8fd4\u56de\u8bfb\u5230\u7684\u957f\u5ea6\n\u4f8b\u5b50\uff1a\nlocal size = uart.rxSize(1)\n", "prefix": "uart.rxSize"}, "uart.rxClear": {"body": "uart.rxClear(${1:id})", "description": "uart.rxClear(id) - \u6e05\u9664\u4e32\u53e3Rx\u7f13\u5b58\u4e2d\u5269\u4f59\u6570\u636e\u91cf\uff0c\u76ee\u524dair105,air780e\u652f\u6301\u8fd9\u4e2a\u64cd\u4f5c\n\u4f20\u5165\u503c\uff1a\nint \u4e32\u53e3id, uart0\u51990, uart1\u51991\n\u4f8b\u5b50\uff1a\nuart.rxClear(1)\n", "prefix": "uart.rxClear"}, "uart.tx": {"body": "uart.tx(${1:id},${2:buff},${3:start},${4:len})", "description": "uart.tx(id, buff, start, len) - buff\u5f62\u5f0f\u5199\u4e32\u53e3,\u7b49\u540c\u4e8ec\u8bed\u8a00uart_tx(uart_id, &buff[start], len);\n\u4f20\u5165\u503c\uff1a\nint \u4e32\u53e3id, uart0\u51990, uart1\u51991\nzbuff \u5f85\u5199\u5165\u7684\u6570\u636e\uff0c\u5982\u679c\u662fzbuff\u4f1a\u4ece\u6307\u9488\u8d77\u59cb\u4f4d\u7f6e\u5f00\u59cb\u8bfb\nint \u53ef\u9009\uff0c\u8981\u53d1\u9001\u7684\u6570\u636e\u8d77\u59cb\u4f4d\u7f6e\uff0c\u9ed8\u8ba4\u4e3a0\nint \u53ef\u9009\uff0c\u8981\u53d1\u9001\u7684\u6570\u636e\u957f\u5ea6\uff0c\u9ed8\u8ba4\u4e3azbuff\u5185\u6709\u6548\u6570\u636e\uff0c\u6700\u5927\u503c\u4e0d\u8d85\u8fc7zbuff\u7684\u6700\u5927\u7a7a\u95f4\n\u8fd4\u56de\u503c\uff1a\nint \u6210\u529f\u7684\u6570\u636e\u957f\u5ea6\n\u4f8b\u5b50\uff1a\nuart.tx(1, buf)\n", "prefix": "uart.tx"}, "uart.createSoft": {"body": "uart.createSoft(${1:tx_pin},${2:tx_hwtimer_id},${3:rx_pin},${4:rx_hwtimer_id},${5:adjust_period})", "description": "uart.createSoft(tx_pin, tx_hwtimer_id, rx_pin, rx_hwtimer_id, adjust_period) - \u8bbe\u7f6e\u8f6f\u4ef6uart\u7684\u786c\u4ef6\u914d\u7f6e\uff0c\u53ea\u6709\u652f\u6301\u786c\u4ef6\u5b9a\u65f6\u5668\u7684SOC\u624d\u80fd\u4f7f\u7528\uff0c\u76ee\u524d\u53ea\u80fd\u8bbe\u7f6e\u4e00\u4e2a\uff0c\u6ce2\u7279\u7387\u6839\u636e\u5e73\u53f0\u7684\u8f6f\u786c\u4ef6\u914d\u7f6e\u6709\u4e0d\u540c\u7684\u6781\u9650\uff0c\u5efa\u8bae9600\uff0c\u63a5\u6536\u7f13\u5b58\u4e0d\u8d85\u8fc765535\uff0c\u4e0d\u652f\u6301MSB\uff0c\u652f\u6301485\u81ea\u52a8\u63a7\u5236\u3002\u540e\u7eed\u4ecd\u8981setup\u64cd\u4f5c\n\u4f20\u5165\u503c\uff1a\nint \u53d1\u9001\u5f15\u811a\u7f16\u53f7\nint \u53d1\u9001\u7528\u7684\u786c\u4ef6\u5b9a\u65f6\u5668ID\nint \u63a5\u6536\u5f15\u811a\u7f16\u53f7\nint \u63a5\u6536\u7528\u7684\u786c\u4ef6\u5b9a\u65f6\u5668ID\nint \u53d1\u9001\u65f6\u5e8f\u8c03\u6574\uff0c\u5355\u4f4d\u662f\u5b9a\u65f6\u5668\u65f6\u949f\u5468\u671f\uff0c\u9ed8\u8ba4\u662f0\uff0c\u9700\u8981\u6839\u636e\u793a\u6ce2\u5668\u6216\u8005\u903b\u8f91\u5206\u6790\u4eea\u8fdb\u884c\u5fae\u8c03\nint \u63a5\u6536\u65f6\u5e8f\u8c03\u6574\uff0c\u5355\u4f4d\u662f\u5b9a\u65f6\u5668\u65f6\u949f\u5468\u671f\uff0c\u9ed8\u8ba4\u662f0\uff0c\u9700\u8981\u6839\u636e\u793a\u6ce2\u5668\u6216\u8005\u903b\u8f91\u5206\u6790\u4eea\u8fdb\u884c\u5fae\u8c03\n\u8fd4\u56de\u503c\uff1a\nint \u8f6f\u4ef6uart\u7684id\uff0c\u5982\u679c\u5931\u8d25\u5219\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\n-- \u521d\u59cb\u5316\u8f6f\u4ef6uart\nlocal uart_id = uart.createSoft(21, 0, 1, 2) --air780e\u5efa\u8bae\u7528\u5b9a\u65f6\u56680\u548c2\uff0ctx_pin\u6700\u597d\u7528AGPIO\uff0c\u9632\u6b62\u4f11\u7720\u65f6\u8bef\u89e6\u53d1\u5bf9\u7aefRX\n", "prefix": "uart.createSoft"}, "uart.list": {"body": "uart.list(${1:max})", "description": "uart.list(max) - \u83b7\u53d6\u53ef\u7528\u4e32\u53e3\u53f7\u5217\u8868\uff0c\u5f53\u524d\u4ec5\u9650win32\n\u4f20\u5165\u503c\uff1a\nint \u53ef\u9009\uff0c\u9ed8\u8ba4256\uff0c\u6700\u591a\u83b7\u53d6\u591a\u5c11\u4e2a\u4e32\u53e3\n\u8fd4\u56de\u503c\uff1a\ntable \u83b7\u53d6\u5230\u7684\u53ef\u7528\u4e32\u53e3\u53f7\u5217\u8868\n", "prefix": "uart.list"}, "ufont.get": {"body": "ufont.get(${1:name})", "description": "ufont.get(name) - \u83b7\u53d6\u5b57\u4f53\n\u4f20\u5165\u503c\uff1a\nstring \u5b57\u4f53\u540d\u79f0, \u4f8b\u5982\n\u8fd4\u56de\u503c\uff1a\nuserdata \u82e5\u5b57\u4f53\u5b58\u5728,\u8fd4\u56de\u5b57\u4f53\u6307\u9488, \u5426\u5219\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\n-- TODO\n", "prefix": "ufont.get"}, "ufont.list": {"body": "ufont.list()", "description": "ufont.list() - \u8fd4\u56de\u56fa\u4ef6\u652f\u6301\u7684\u5b57\u4f53\u5217\u8868\n\u8fd4\u56de\u503c\uff1a\ntable \u5b57\u4f53\u5217\u8868\n\u4f8b\u5b50\uff1a\n-- API\u65b0\u589e\u4e8e2022-08-05\nlog.info(\"fonts\", \"u8g2\", json.encode(ufont.list()))\n", "prefix": "ufont.list"}, "usbapp.set_id": {"body": "usbapp.set_id(${1:id},${2:vid},${3:pid})", "description": "usbapp.set_id(id, vid, pid) - USB \u8bbe\u7f6eVID\u548cPID\n\u4f20\u5165\u503c\uff1a\nint \u8bbe\u5907id,\u9ed8\u8ba4\u4e3a0\nint vid \u5c0f\u7aef\u683c\u5f0f\nint pid \u5c0f\u7aef\u683c\u5f0f\n\u4f8b\u5b50\uff1a\nusbapp.set_id(0, 0x1234, 0x5678)\n", "prefix": "usbapp.set_id"}, "usbapp.hid_mode": {"body": "usbapp.hid_mode(${1:id},${2:mode},${3:buff_size})", "description": "usbapp.hid_mode(id, mode, buff_size) - USB HID\u8bbe\u5907\u6a21\u5f0f\n\u4f20\u5165\u503c\uff1a\nint \u8bbe\u5907id,\u9ed8\u8ba4\u4e3a0\nint mode\uff0c\u76ee\u524d0\u662f\u952e\u76d8\uff0c1\u662f\u81ea\u5b9a\u4e49\nint buff_size\uff0c\u53ea\u80fd\u662f8,16,32,64\uff0c\u5982\u679c\u662f\u952e\u76d8\u6a21\u5f0f\u6216\u8005\u586b\u4e86\u5176\u4ed6\u503c\uff0c\u81ea\u52a8\u4e3a8\n\u4f8b\u5b50\uff1a\nusbapp.hid_mode(0, 0) -- usb hid\u952e\u76d8\u6a21\u5f0f\nusbapp.hid_mode(0, 1) -- usb hid\u81ea\u5b9a\u4e49\u6a21\u5f0f\uff0c\u7528\u4e8e\u514d\u9a71USB\u4ea4\u4e92\n", "prefix": "usbapp.hid_mode"}, "usbapp.start": {"body": "usbapp.start(${1:id})", "description": "usbapp.start(id) - \u542f\u52a8USB\u8bbe\u5907\n\u4f20\u5165\u503c\uff1a\nint \u8bbe\u5907id,\u9ed8\u8ba4\u4e3a0\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- \u542f\u52a8USB\nusbapp.start(0)\n", "prefix": "usbapp.start"}, "usbapp.stop": {"body": "usbapp.stop(${1:id})", "description": "usbapp.stop(id) - \u5173\u95edUSB\u8bbe\u5907\n\u4f20\u5165\u503c\uff1a\nint \u8bbe\u5907id,\u9ed8\u8ba4\u4e3a0\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- \u5173\u95edUSB\nusbapp.stop(0)\n", "prefix": "usbapp.stop"}, "usbapp.vhid_upload": {"body": "usbapp.vhid_upload(${1:id},${2:data})", "description": "usbapp.vhid_upload(id, data) - USB HID\u8bbe\u5907\u4e0a\u4f20\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nint \u8bbe\u5907id,\u9ed8\u8ba4\u4e3a0\nstring \u6570\u636e. \u6ce8\u610f, HID\u7684\u53ef\u7528\u5b57\u7b26\u662f\u6709\u9650\u5236\u7684, \u57fa\u672c\u4e0a\u53ea\u6709\u53ef\u89c1\u5b57\u7b26\u662f\u652f\u6301\u7684, \u4e0d\u652f\u6301\u7684\u5b57\u7b26\u4f1a\u66ff\u6362\u4e3a\u7a7a\u683c.\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- HID\u4e0a\u4f20\u6570\u636e\nusbapp.vhid_upload(0, \"1234\") -- usb hid\u4f1a\u6a21\u62df\u6572\u51fa1234\n", "prefix": "usbapp.vhid_upload"}, "usbapp.hid_tx": {"body": "usbapp.hid_tx(${1:id},${2:data},${3:start},${4:len})", "description": "usbapp.hid_tx(id, data, start, len) - USB HID\u8bbe\u5907\u4e0a\u4f20\u7528\u6237\u81ea\u5b9a\u4e49\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nint \u8bbe\u5907id,\u9ed8\u8ba4\u4e3a0\nstring or zbuff \u6ce8\u610f\u6570\u636e\u91cf\u4e0d\u8db3\u65f6\u4f1a\u81ea\u52a8\u586b\u51450\nint \u53ef\u9009\uff0cdata\u4e3azbuff\u624d\u6709\u6548\uff0c\u8981\u53d1\u9001\u7684\u6570\u636e\u8d77\u59cb\u4f4d\u7f6e\uff0c\u9ed8\u8ba4\u4e3a0\nint \u53ef\u9009\uff0cdata\u4e3azbuff\u624d\u6709\u6548\uff0c\u8981\u53d1\u9001\u7684\u6570\u636e\u957f\u5ea6\uff0c\u9ed8\u8ba4\u4e3azbuff\u5185\u6709\u6548\u6570\u636e\uff0c\u6700\u5927\u503c\u4e0d\u8d85\u8fc7zbuff\u7684\u6700\u5927\u7a7a\u95f4\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- HID\u4e0a\u4f20\u6570\u636e\nusbapp.hid_tx(0, \"1234\") -- usb hid\u4e0a\u4f200x31 0x32 0x33 0x34 + N\u4e2a0\n", "prefix": "usbapp.hid_tx"}, "usbapp.hid_rx": {"body": "usbapp.hid_rx(${1:id},${2:buff})", "description": "usbapp.hid_rx(id, buff) - buff\u5f62\u5f0f\u8bfb\u63a5\u6536\u5230\u7684\u6570\u636e\uff0c\u4e00\u6b21\u8bfb\u51fa\u5168\u90e8\u6570\u636e\u5b58\u5165buff\u4e2d\uff0c\u5982\u679cbuff\u7a7a\u95f4\u4e0d\u591f\u4f1a\u81ea\u52a8\u6269\u5c55\uff0c\u76ee\u524d\u53ea\u6709air105\u652f\u6301\u8fd9\u4e2a\u64cd\u4f5c\n\u4f20\u5165\u503c\uff1a\nint \u8bbe\u5907id,\u9ed8\u8ba4\u4e3a0\nzbuff zbuff\u5bf9\u8c61\n\u8fd4\u56de\u503c\uff1a\nint \u8fd4\u56de\u8bfb\u5230\u7684\u957f\u5ea6\uff0c\u5e76\u628azbuff\u6307\u9488\u540e\u79fb\n\u4f8b\u5b50\uff1a\nusbapp.hid_rx(0, buff)\n", "prefix": "usbapp.hid_rx"}, "usbapp.vhid_cancel_upload": {"body": "usbapp.vhid_cancel_upload(${1:id})", "description": "usbapp.vhid_cancel_upload(id) - USB HID\u8bbe\u5907\u53d6\u6d88\u4e0a\u4f20\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nint \u8bbe\u5907id,\u9ed8\u8ba4\u4e3a0\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n-- \u53d6\u6d88\u4e0a\u4f20\u6570\u636e,\u901a\u5e38\u4e0d\u9700\u8981\nusbapp.vhid_cancel_upload(0)\n", "prefix": "usbapp.vhid_cancel_upload"}, "usbapp.udisk_attach_sdhc": {"body": "usbapp.udisk_attach_sdhc(${1:id})", "description": "usbapp.udisk_attach_sdhc(id) - USB U\u76d8\u8bbe\u5907\u6302\u8f7dSDHC\uff0cTF\u5361\n\u4f20\u5165\u503c\uff1a\nint \u8bbe\u5907id,\u9ed8\u8ba4\u4e3a0\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\nusbapp.udisk_attach_sdhc(0)\n", "prefix": "usbapp.udisk_attach_sdhc"}, "usbapp.udisk_detach_sdhc": {"body": "usbapp.udisk_detach_sdhc(${1:id})", "description": "usbapp.udisk_detach_sdhc(id) - USB U\u76d8\u8bbe\u5907\u53bb\u9664\u6302\u8f7dSDHC\uff0cTF\u5361\n\u4f20\u5165\u503c\uff1a\nint \u8bbe\u5907id,\u9ed8\u8ba4\u4e3a0\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\nusbapp.udisk_detach_sdhc(0)\n", "prefix": "usbapp.udisk_detach_sdhc"}, "w5500.init": {"body": "w5500.init(${1:spiid},${2:speed},${3:cs_pin},${4:irq_pin},${5:rst_pin},${6:link_pin})", "description": "w5500.init(spiid, speed, cs_pin, irq_pin, rst_pin, link_pin) - \u521d\u59cb\u5316w5500\n\u4f20\u5165\u503c\uff1a\nint spi\u901a\u9053\u53f7, \u4f8b\u5982 0, 1, 5, \u6309\u8bbe\u5907\u5b9e\u9645\u60c5\u51b5\u9009\nint spi\u901f\u5ea6, \u53ef\u4ee5\u8bbe\u7f6e\u5230\u5bf9\u5e94SPI\u7684\u6700\u9ad8\u901f\u5ea6\nint cs pin, \u7247\u9009\u811a, \u5bf9\u5e94W5500\u7684SCS\nint irq pin, \u4e2d\u65ad\u811a, \u5bf9\u5e94W5500\u7684INT\nint reset pin, \u590d\u4f4d\u811a, \u5bf9\u5e94W5500\u7684RST\nint link \u72b6\u6001 pin\uff0c\u53ef\u4ee5\u7559\u7a7a\u4e0d\u4f7f\u7528\uff0c\u9ed8\u8ba4\u4e0d\u4f7f\u7528\n\u4f8b\u5b50\uff1a\nw5500.init(spi.SPI_0, 24000000, pin.PB13, pin.PC08, pin.PC09)\n", "prefix": "w5500.init"}, "w5500.config": {"body": "w5500.config(${1:ip},${2:submask},${3:gateway},${4:mac},${5:RTR},${6:RCR},${7:speed})", "description": "w5500.config(ip, submask, gateway, mac, RTR, RCR, speed) - w5500\u914d\u7f6e\u7f51\u7edc\u4fe1\u606f\n\u4f20\u5165\u503c\uff1a\nstring \u9759\u6001ip\u5730\u5740\uff0c\u5982\u679c\u9700\u8981\u7528DHCP\u83b7\u53d6\uff0c\u8bf7\u5199nil\nstring \u5b50\u7f51\u63a9\u7801\uff0c\u5982\u679c\u4f7f\u7528\u52a8\u6001ip\uff0c\u5219\u5ffd\u7565\nstring \u7f51\u5173\uff0c\u5982\u679c\u4f7f\u7528\u52a8\u6001ip\uff0c\u5219\u5ffd\u7565\nstring MAC\uff0c\u5199nil\u5219\u901a\u8fc7MCU\u552f\u4e00\u7801\u81ea\u52a8\u751f\u6210\uff0c\u5982\u679c\u8981\u5199\uff0c\u957f\u5ea6\u5fc5\u987b\u662f6byte\nint \u91cd\u8bd5\u95f4\u9694\u65f6\u95f4\uff0c\u9ed8\u8ba42000\uff0c\u5355\u4f4d100us\uff0c\u4e0d\u61c2\u7684\u4e0d\u8981\u6539\nint \u6700\u5927\u91cd\u8bd5\u6b21\u6570\uff0c\u9ed8\u8ba48\uff0c\u4e0d\u61c2\u7684\u4e0d\u8981\u6539\nint \u901f\u5ea6\u7c7b\u578b\uff0c\u76ee\u524d\u53ea\u67090\u786c\u4ef6\u914d\u7f6e\uff0c1\u81ea\u9002\u5e94\uff0c\u9ed8\u8ba4\u4e3a0\n\u4f8b\u5b50\uff1a\nw5500.config(\"192.168.1.2\", \"255.255.255.0\", \"192.168.1.1\", string.fromHex(\"102a3b4c5d6e\"))\n", "prefix": "w5500.config"}, "w5500.bind": {"body": "w5500.bind(${1:id})", "description": "w5500.bind(id) - \u5c06w5500\u6ce8\u518c\u8fdb\u901a\u7528\u7f51\u7edc\u63a5\u53e3\n\u4f20\u5165\u503c\uff1a\nint \u901a\u7528\u7f51\u7edc\u901a\u9053\u53f7\n\u4f8b\u5b50\uff1a\n-- \u82e5\u4f7f\u7528\u7684\u7248\u672c\u4e0d\u5e26socket\u5e93, \u6539\u6210 network.ETH0\nw5500.bind(socket.ETH0)\n", "prefix": "w5500.bind"}, "w5500.getMac": {"body": "w5500.getMac()", "description": "w5500.getMac() - \u83b7\u53d6w5500\u5f53\u524d\u7684MAC\uff0c\u5fc5\u987b\u5728init\u4e4b\u540e\u7528\uff0c\u5982\u679cconfig\u4e2d\u8bbe\u7f6e\u4e86\u81ea\u5df1\u7684MAC\uff0c\u9700\u8981\u5ef6\u8fdf\u4e00\u70b9\u65f6\u95f4\u518d\u8bfb\n\u8fd4\u56de\u503c\uff1a\nstring \u5f53\u524d\u7684MAC\n\u4f8b\u5b50\uff1a\nlocal mac = w5500.getMac()\nlog.info(\"w5500 mac\", mac:toHex())\n", "prefix": "w5500.getMac"}, "wdt.init": {"body": "wdt.init(${1:timeout})", "description": "wdt.init(timeout) - \u521d\u59cb\u5316watchdog\u5e76\u9a6c\u4e0a\u542f\u7528.\u5927\u90e8\u5206\u8bbe\u5907\u7684watchdog\u4e00\u65e6\u542f\u7528\u5c31\u65e0\u6cd5\u5173\u95ed.\n\u4f20\u5165\u503c\uff1a\nint \u8d85\u65f6\u65f6\u957f,\u5355\u4f4d\u4e3a\u6beb\u79d2\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse(\u4f8b\u5982\u5e95\u5c42\u4e0d\u652f\u6301)\n\u4f8b\u5b50\uff1a\nwdt.init(9000)\nsys.timerLoopStart(wdt.feed, 3000)\n", "prefix": "wdt.init"}, "wdt.setTimeout": {"body": "wdt.setTimeout(${1:timeout})", "description": "wdt.setTimeout(timeout) - \u90e8\u5206\u8bbe\u5907\u652f\u6301\u91cd\u65b0\u8bbe\u7f6ewatchdog\u8d85\u65f6\u65f6\u957f\n\u4f20\u5165\u503c\uff1a\nint \u8d85\u65f6\u65f6\u957f,\u5355\u4f4d\u4e3a\u6beb\u79d2\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse(\u4f8b\u5982\u5e95\u5c42\u4e0d\u652f\u6301)\n\u4f8b\u5b50\uff1a\nwdt.init(10000)\nsys.timerLoopStart(wdt.feed, 3000)\nsys.wait(5000)\nsys.setTimeout(5000)\n", "prefix": "wdt.setTimeout"}, "wdt.feed": {"body": "wdt.feed()", "description": "wdt.feed() - \u5582\u72d7,\u4f7f\u5f97\u8d85\u65f6\u8ba1\u65f6\u590d\u4f4d,\u91cd\u65b0\u8ba1\u65f6\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse(\u4f8b\u5982\u5e95\u5c42\u4e0d\u652f\u6301)\n\u4f8b\u5b50\uff1a\nwdt.init(10000)\n-- \u5b9a\u65f6\u5582\u72d7,\u6216\u8005\u6839\u636e\u4e1a\u52a1\u6309\u9700\u5582\u72d7\nsys.timerLoopStart(wdt.feed, 3000)\n", "prefix": "wdt.feed"}, "wdt.close": {"body": "wdt.close()", "description": "wdt.close() - \u5173\u95edwatchdog,\u901a\u5e38\u4e0d\u88ab\u652f\u6301\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse(\u4f8b\u5982\u5e95\u5c42\u4e0d\u652f\u6301)\n\u4f8b\u5b50\uff1a\nwdt.init(10000)\nsys.wait(9000)\nwdt.close()\n", "prefix": "wdt.close"}, "wsc:debug": {"body": "wsc:debug(${1:onoff})", "description": "wsc:debug(onoff) - \u914d\u7f6e\u662f\u5426\u6253\u5f00debug\u4fe1\u606f\n\u4f20\u5165\u503c\uff1a\nboolean \u662f\u5426\u6253\u5f00debug\u5f00\u5173\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n", "prefix": "wsc:debug"}, "websocket.create": {"body": "websocket.create(${1:adapter},${2:url})", "description": "websocket.create(adapter, url) - websocket\u5ba2\u6237\u7aef\u521b\u5efa\n\u4f20\u5165\u503c\uff1a\nint \u9002\u914d\u5668\u5e8f\u53f7, \u53ea\u80fd\u662fsocket.ETH0, socket.STA, socket.AP,\u5982\u679c\u4e0d\u586b,\u4f1a\u9009\u62e9\u5e73\u53f0\u81ea\u5e26\u7684\u65b9\u5f0f,\u7136\u540e\u662f\u6700\u540e\u4e00\u4e2a\u6ce8\u518c\u7684\u9002\u914d\u5668\nstring \u8fde\u63a5\u5b57\u7b26\u4e32,\u53c2\u8003usage\n\u8fd4\u56de\u503c\uff1a\nuserdata \u82e5\u6210\u529f\u4f1a\u8fd4\u56dewebsocket\u5ba2\u6237\u7aef\u5b9e\u4f8b,\u5426\u5219\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\n-- \u666e\u901aTCP\u94fe\u63a5\nwsc = websocket.create(nil,\"ws://air32.cn/abc\")\n-- \u52a0\u5bc6TCP\u94fe\u63a5\nwsc = websocket.create(nil,\"wss://air32.cn/abc\")\n", "prefix": "websocket.create"}, "wsc:on": {"body": "wsc:on(${1:cb})", "description": "wsc:on(cb) - \u6ce8\u518cwebsocket\u56de\u8c03\n\u4f20\u5165\u503c\uff1a\nfunction cb websocket\u56de\u8c03,\u53c2\u6570\u5305\u62ecwebsocket_client, event, data, payload\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\nwsc:on(function(websocket_client, event, data, payload)\n\t-- \u6253\u5370\u5404\u79cd\u4e8b\u4ef6\n\tlog.info(\"websocket\", \"event\", event, data, payload)\nend)\n--[[\nevent\u7684\u503c\u6709:\n\tconack \u8fde\u63a5\u670d\u52a1\u5668\u6210\u529f,\u5df2\u7ecf\u6536\u5230websocket\u534f\u8bae\u5934\u90e8\u4fe1\u606f,\u901a\u4fe1\u5df2\u5efa\u7acb\n\trecv \u6536\u5230\u670d\u52a1\u5668\u4e0b\u53d1\u7684\u4fe1\u606f, data, payload \u4e0d\u4e3anil\n\tsent send\u51fd\u6570\u53d1\u9001\u7684\u6d88\u606f,\u670d\u52a1\u5668\u5728TCP\u534f\u8bae\u5c42\u5df2\u786e\u8ba4\u6536\u5230\n\tdisconnect \u670d\u52a1\u5668\u8fde\u63a5\u5df2\u65ad\u5f00\n\n\u5176\u4e2d sent/disconnect \u4e8b\u4ef6\u5728 2023.04.01 \u65b0\u589e\n]]\n", "prefix": "wsc:on"}, "wsc:connect": {"body": "wsc:connect()", "description": "wsc:connect() - \u8fde\u63a5\u670d\u52a1\u5668\n\u8fd4\u56de\u503c\uff1a\nboolean \u53d1\u8d77\u6210\u529f\u8fd4\u56detrue, \u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- \u5f00\u59cb\u5efa\u7acb\u8fde\u63a5\nwsc:connect()\n-- \u672c\u51fd\u6570\u4ec5\u4ee3\u8868\u53d1\u8d77\u6210\u529f, \u540e\u7eed\u4ecd\u9700\u6839\u636eready\u51fd\u6570\u5224\u65adwebsocket\u662f\u5426\u8fde\u63a5\u6b63\u5e38\n", "prefix": "wsc:connect"}, "wsc:autoreconn": {"body": "wsc:autoreconn(${1:reconnect},${2:reconnect_time})", "description": "wsc:autoreconn(reconnect, reconnect_time) - \u81ea\u52a8\u91cd\u8fde\n\u4f20\u5165\u503c\uff1a\nbool \u662f\u5426\u81ea\u52a8\u91cd\u8fde\nint \u81ea\u52a8\u91cd\u8fde\u5468\u671f \u5355\u4f4dms \u9ed8\u8ba43000ms\n\u4f8b\u5b50\uff1a\nwsc:autoreconn(true)\n", "prefix": "wsc:autoreconn"}, "wsc:send": {"body": "wsc:send(${1:data},${2:fin},${3:opt})", "description": "wsc:send(data, fin, opt) - \u53d1\u5e03\u6d88\u606f\n\u4f20\u5165\u503c\uff1a\nstring \u5f85\u53d1\u9001\u7684\u6570\u636e,\u5fc5\u586b\nint \u662f\u5426\u4e3a\u6700\u540e\u4e00\u5e27,\u9ed8\u8ba41,\u5373\u9a6c\u4e0a\u8bbe\u7f6e\u4e3a\u6700\u540e\u4e00\u5e27, \u4e5f\u5c31\u662f\u5355\u5e27\u53d1\u9001\nint \u64cd\u4f5c\u7801, \u9ed8\u8ba4\u4e3a\u5b57\u7b26\u4e32\u5e270, \u53ef\u90091\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u4e3afalse\u6216\u8005nil\n\u4f8b\u5b50\uff1a\n-- \u7b80\u5355\u53d1\u9001\u6570\u636e\nwsc:send(\"123\")\n-- \u5206\u6bb5\u53d1\u9001\u6570\u636e, \u6700\u540e\u8981\u75281(\u5373FIN\u5e27\u7ed3\u675f)\nwsc:send(\"123\", 0)\nwsc:send(\"456\", 0)\nwsc:send(\"789\", 1)\n", "prefix": "wsc:send"}, "wsc:close": {"body": "wsc:close()", "description": "wsc:close() - websocket\u5ba2\u6237\u7aef\u5173\u95ed(\u5173\u95ed\u540e\u8d44\u6e90\u91ca\u653e\u65e0\u6cd5\u518d\u4f7f\u7528)\n\u4f8b\u5b50\uff1a\nwsc:close()\n", "prefix": "wsc:close"}, "wsc:ready": {"body": "wsc:ready()", "description": "wsc:ready() - websocket\u5ba2\u6237\u7aef\u662f\u5426\u5c31\u7eea\n\u8fd4\u56de\u503c\uff1a\nbool \u5ba2\u6237\u7aef\u662f\u5426\u5c31\u7eea\n\u4f8b\u5b50\uff1a\nlocal stat = wsc:ready()\n", "prefix": "wsc:ready"}, "wsc:headers": {"body": "wsc:headers(${1:headers})", "description": "wsc:headers(headers) - \u8bbe\u7f6e\u989d\u5916\u7684headers\n\u4f20\u5165\u503c\uff1a\ntable/string \u53ef\u4ee5\u662ftable,\u4e5f\u53ef\u4ee5\u662f\u5b57\u7b26\u4e32\n\u8fd4\u56de\u503c\uff1a\nbool \u5ba2\u6237\u7aef\u662f\u5426\u5c31\u7eea\n\u4f8b\u5b50\uff1a\n-- table\u5f62\u5f0f\nwsc:headers({\n\tAuth=\"Basic ABCDEFGG\"\n})\n-- \u5b57\u7b26\u4e32\u5f62\u5f0f\nwsc:headers(\"Auth: Basic ABCDERG\\r\\n\")\n", "prefix": "wsc:headers"}, "wlan.init": {"body": "wlan.init()", "description": "wlan.init() - \u521d\u59cb\u5316\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n", "prefix": "wlan.init"}, "wlan.setMode": {"body": "wlan.setMode(${1:mode})", "description": "wlan.setMode(mode) - \u8bbe\u7f6ewifi\u6a21\u5f0f\n\u4f20\u5165\u503c\uff1a\nint wifi\u6a21\u5f0f\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- \u8bbe\u7f6e\u4e3aAP\u6a21\u5f0f, \u5e7f\u64adssid, \u63a5\u6536wifi\u5ba2\u6237\u7aef\u7684\u94fe\u63a5\nwlan.setMode(wlan.AP)\n\n-- \u8bbe\u7f6e\u4e3aSTATION\u6a21\u5f0f, \u4e5f\u662f\u521d\u59cb\u5316\u540e\u7684\u9ed8\u8ba4\u6a21\u5f0f\nwlan.setMode(wlan.STATION)\n\n-- \u6df7\u5408\u6a21\u5f0f, \u505aAP\u53c8\u505aSTATION\nwlan.setMode(wlan.APSTA)\n", "prefix": "wlan.setMode"}, "wlan.ready": {"body": "wlan.ready()", "description": "wlan.ready() - \u4f5c\u4e3aSTATION\u65f6,\u662f\u5426\u5df2\u7ecf\u8fde\u63a5\u4e0aAP,\u4e14\u83b7\u53d6IP\u6210\u529f\n\u8fd4\u56de\u503c\uff1a\nbool \u5df2\u7ecf\u8fde\u63a5\u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n", "prefix": "wlan.ready"}, "wlan.connect": {"body": "wlan.connect(${1:ssid},${2:password})", "description": "wlan.connect(ssid, password) - \u4f5c\u4e3aSTATION\u65f6,\u8fde\u63a5\u5230\u6307\u5b9aAP\n\u4f20\u5165\u503c\uff1a\nstring AP\u7684ssid\nstring AP\u7684password,\u53ef\u9009\n\u8fd4\u56de\u503c\uff1a\nbool \u53d1\u8d77\u8fde\u63a5\u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse.\u6ce8\u610f,\u4e0d\u4ee3\u8868\u8fde\u63a5AP\u6210\u529f!!\n\u4f8b\u5b50\uff1a\n\n-- \u666e\u901a\u6a21\u5f0f,\u5e26\u5bc6\u7801\nwlan.connect(\"myap\", \"12345678\")\n-- \u666e\u901a\u6a21\u5f0f,\u4e0d\u5e26\u5bc6\u7801\nwlan.connect(\"myap\")\n-- \u7279\u6b8a\u6a21\u5f0f, \u91cd\u7528\u4e4b\u524d\u7684ssid\u548c\u5bc6\u7801,\u672c\u6b21\u76f4\u63a5\u8fde\u63a5\n-- \u6ce8\u610f, \u524d\u63d0\u662f\u672c\u6b21\u4e0a\u7535\u540e\u5df2\u7ecf\u4f20\u8fc7ssid\u548c\u6216password,\u5426\u5219\u5fc5\u5931\u8d25\nwlan.connect()\n", "prefix": "wlan.connect"}, "wlan.disconnect": {"body": "wlan.disconnect()", "description": "wlan.disconnect() - \u4f5c\u4e3aSTATION\u65f6,\u65ad\u5f00AP\n", "prefix": "wlan.disconnect"}, "wlan.scan": {"body": "wlan.scan()", "description": "wlan.scan() - \u626b\u63cfwifi\u9891\u6bb5\n\u4f8b\u5b50\uff1a\n-- \u6ce8\u610f, wlan.scan()\u662f\u5f02\u6b65API,\u542f\u52a8\u626b\u63cf\u540e\u4f1a\u9a6c\u4e0a\u8fd4\u56de\n\n-- wifi\u626b\u63cf\u6210\u529f\u540e, \u4f1a\u6709WLAN_SCAN_DONE\u6d88\u606f, \u8bfb\u53d6\u5373\u53ef\nsys.subscribe(\"WLAN_SCAN_DONE\", function ()\n local results = wlan.scanResult()\n log.info(\"scan\", \"results\", #results)\n for k,v in pairs(results) do\n log.info(\"scan\", v[\"ssid\"], v[\"rssi\"], (v[\"bssid\"]:toHex()))\n end\nend)\n\n-- \u4e0b\u9762\u6f14\u793a\u7684\u662f\u521d\u59cb\u5316wifi\u540e\u5b9a\u65f6\u626b\u63cf,\u8bf7\u6309\u5b9e\u9645\u4e1a\u52a1\u9700\u6c42\u4fee\u6539\nsys.taskInit(function()\n sys.wait(1000)\n wlan.init()\n while 1 do\n wlan.scan()\n sys.wait(15000)\n end\nend)\n", "prefix": "wlan.scan"}, "wlan.scanResult": {"body": "wlan.scanResult()", "description": "wlan.scanResult() - \u83b7\u53d6wifi\u626b\u63cf\u7ed3\u679c\n\u8fd4\u56de\u503c\uff1a\ntable \u626b\u63cf\u7ed3\u679c\n\u4f8b\u5b50\uff1a\n-- \u7528\u6cd5\u8bf7\u67e5\u9605 wlan.scan() \u51fd\u6570\n", "prefix": "wlan.scanResult"}, "wlan.smartconfig": {"body": "wlan.smartconfig(${1:mode})", "description": "wlan.smartconfig(mode) - \u914d\u7f51\n\u4f20\u5165\u503c\uff1a\nint \u914d\u7f51\u6a21\u5f0f, \u9ed8\u8ba4\u4e3aesptouch, \u82e5\u4f200\u5219\u4e3b\u52a8\u505c\u6b62\u914d\u7f51\n\u8fd4\u56de\u503c\uff1a\nbool \u542f\u52a8\u6210\u529f\u6216\u505c\u6b62\u6210\u529f, \u8fd4\u56detrue, \u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\nwlan.smartconfig()\nlocal ret, ssid, passwd = sys.waitUntil(\"SC_RESULT\", 180*1000) -- \u6700\u591a\u7b493\u5206\u949f\nlog.info(\"sc\", ret, ssid, passwd)\n-- \u8be6\u7ec6\u7528\u6cd5\u8bf7\u67e5\u770bdemo\n", "prefix": "wlan.smartconfig"}, "wlan.getMac": {"body": "wlan.getMac(${1:tp},${2:hexstr})", "description": "wlan.getMac(tp, hexstr) - \u83b7\u53d6mac\n\u4f20\u5165\u503c\uff1a\nint \u8bbe\u7f6e\u4f55\u79cdmac\u5730\u5740,\u5bf9ESP32\u7cfb\u5217\u6765\u8bf4,\u53ea\u80fd\u8bbe\u7f6eSTA\u7684\u5730\u5740,\u53730,\u9ed8\u8ba4\u503c\u4e5f\u662f0\nbool \u662f\u5426\u8f6cHEX\u5b57\u7b26, \u9ed8\u8ba4\u662ftrue,\u5373\u8f93\u51fahex\u5b57\u7b26\u4e32\n\u8fd4\u56de\u503c\uff1a\nstring MAC\u5730\u5740,\u5341\u516d\u8fdb\u5236\u5b57\u7b26\u4e32\u5f62\u5f0f \"AABBCCDDEEFF\" \u6216\u539f\u59cb\u6570\u636e\n", "prefix": "wlan.getMac"}, "wlan.setMac": {"body": "wlan.setMac(${1:tp},${2:mac})", "description": "wlan.setMac(tp, mac) - \u8bbe\u7f6emac\n\u4f20\u5165\u503c\uff1a\nint \u8bbe\u7f6e\u4f55\u79cdmac\u5730\u5740,\u5bf9ESP32\u7cfb\u5217\u6765\u8bf4,\u53ea\u80fd\u8bbe\u7f6eSTA\u7684\u5730\u5740,\u53730\nstring \u5f85\u8bbe\u7f6e\u7684MAC\u5730\u5740,\u957f\u5ea66\u5b57\u8282\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- \u8bbe\u7f6eMAC\u5730\u5740, 2023-03-01\u4e4b\u540e\u7f16\u8bd1\u7684\u56fa\u4ef6\u53ef\u7528\nlocal mac = string.fromHex(\"F01122334455\")\nwlan.setMac(0, mac)\n\n-- \u90e8\u5206\u6a21\u5757\u652f\u6301\u6062\u590d\u9ed8\u8ba4MAC, \u4f8b\u5982esp32\u7cfb\u5217\n-- \u57282023-11-01 \u4e4b\u540e\u7f16\u8bd1\u7684\u56fa\u4ef6\u53ef\u7528\nlocal mac = string.fromHex(\"000000000000\")\nwlan.setMac(0, mac)\n", "prefix": "wlan.setMac"}, "wlan.getIP": {"body": "wlan.getIP()", "description": "wlan.getIP() - \u83b7\u53d6ip,\u4ec5STATION\u6216APSTA\u6a21\u5f0f\u4e0b\u6709\u610f\u4e49\n\u8fd4\u56de\u503c\uff1a\nstring ip\u5730\u5740,\u5f53\u524d\u4ec5\u8fd4\u56deipv4\u5730\u5740,\u4f8b\u5982 \"192.168.1.25\"\n", "prefix": "wlan.getIP"}, "wlan.createAP": {"body": "wlan.createAP(${1:ssid},${2:passwd},${3:gateway},${4:netmask},${5:channel})", "description": "wlan.createAP(ssid, passwd, gateway, netmask, channel) - \u542f\u52a8AP\n\u4f20\u5165\u503c\uff1a\nstring AP\u7684SSID,\u5fc5\u586b\nstring AP\u7684\u5bc6\u7801,\u53ef\u9009\nstring AP\u7684\u7f51\u5173\u5730\u5740, \u9ed8\u8ba4192.168.4.1\nstring AP\u7684\u7f51\u5173\u63a9\u7801, \u9ed8\u8ba4255.255.255.0\nint AP\u5efa\u7acb\u7684\u901a\u9053, \u9ed8\u8ba46\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u521b\u5efa\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- \u6ce8\u610f, \u8c03\u7528\u672cAP\u65f6,\u82e5wifi\u6a21\u5f0f\u4e3aSTATION,\u4f1a\u81ea\u52a8\u5207\u6362\u6210 APSTA\nwlan.createAP(\"uiot\", \"12345678\")\n-- \u8bbe\u7f6e\u7f51\u5173IP,\u63a9\u7801, \u901a\u9053, 2023.7.13 \u65b0\u589e, BSP\u672a\u5fc5\u652f\u6301\n-- wlan.createAP(\"uiot\", \"12345678\", \"192.168.4.1\", \"255.255.255.0\", 6)\n", "prefix": "wlan.createAP"}, "wlan.stopAP": {"body": "wlan.stopAP()", "description": "wlan.stopAP() - \u5173\u95edAP\u529f\u80fd\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u521b\u5efa\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\nwlan.stopAP()\n", "prefix": "wlan.stopAP"}, "wlan.getInfo": {"body": "wlan.getInfo()", "description": "wlan.getInfo() - \u83b7\u53d6\u4fe1\u606f,\u5982AP\u7684bssid,\u4fe1\u53f7\u5f3a\u5ea6\n\u8fd4\u56de\u503c\uff1a\ntable \u8be6\u60c5,\u952e\u503c\u5bf9\u5f62\u5f0f\n\u4f8b\u5b50\uff1a\n\nlog.info(\"wlan\", \"info\", json.encode(wlan.getInfo()))\n--[[\n\u5178\u578b\u8f93\u51fa\n{\n \"bssid\" : \"xxxxxx\",\n \"rssi\" : -89,\n \"gw\" : \"192.168.1.1\"\n}\n]]\n", "prefix": "wlan.getInfo"}, "wlan.powerSave": {"body": "wlan.powerSave(${1:mode})", "description": "wlan.powerSave(mode) - \u8bfb\u53d6\u6216\u8bbe\u7f6e\u7701\u7535\u6a21\u5f0f\n\u4f20\u5165\u503c\uff1a\nint \u7701\u7535\u6a21\u5f0f,\u53ef\u9009, \u4f20\u5165\u5c31\u662f\u8bbe\u7f6e, \u4f8b\u5982wlan.PS_NONE\n\u8fd4\u56de\u503c\uff1a\nint \u5f53\u524d\u7701\u7535\u6a21\u5f0f/\u8bbe\u7f6e\u540e\u7684\u7701\u7535\u6a21\u5f0f\n\u4f8b\u5b50\uff1a\n-- \u8bf7\u67e5\u9605\u5e38\u91cf\u8868 PS_NONE/PS_MIN_MODEM/PS_MAX_MODEM\nlog.info(\"wlan\", \"PS\", wlan.powerSave(wlan.PS_NONE))\n-- \u672cAPI\u4e8e 2023.03.31 \u65b0\u589e\n", "prefix": "wlan.powerSave"}, "wlan.hostname": {"body": "wlan.hostname(${1:new_name})", "description": "wlan.hostname(new_name) - \u8bfb\u53d6\u6216\u8bbe\u7f6eHostname\n\u4f20\u5165\u503c\uff1a\nstring \u65b0\u7684hostname,\u53ef\u9009, \u4f20\u5165\u5c31\u662f\u8bbe\u7f6e\n\u8fd4\u56de\u503c\uff1a\nstring \u5f53\u524d\u7684hostname\u6216\u8005\u8bbe\u7f6e\u540e\u7684hostname\n\u4f8b\u5b50\uff1a\n-- \u672cAPI\u4e8e 2023.07.23 \u65b0\u589e\n-- \u672c\u51fd\u6570\u5e94\u8be5\u5728wlan.init\u4e4b\u524d\u8bbe\u7f6e\u597d, \u6700\u665a\u5e94\u65e9\u4e8ewlan.connect\n-- hostname\u7684\u9ed8\u8ba4\u503c\u662f \"LUATOS_\" + \u8bbe\u5907\u7684MAC\u503c\n-- \u4f8b\u5982: LUATOS_0022EECC2399\n\nwlan.hostname(\"\u6211\u7684wifi\u7269\u8054\u7f51\u8bbe\u5907\")\n", "prefix": "wlan.hostname"}, "wlan.staIp": {"body": "wlan.staIp(${1:dhcp_enable},${2:ip},${3:netmask},${4:gateway})", "description": "wlan.staIp(dhcp_enable, ip, netmask, gateway) - \u8bbe\u7f6eStation\u6a21\u5f0f\u4e0b\u7684IP\u83b7\u53d6\u6a21\u5f0f\n\u4f20\u5165\u503c\uff1a\nbool \u662f\u5426\u542f\u7528DHCP,\u9ed8\u8ba4\u662ftrue\nstring \u672c\u673aIP\u5730\u5740,\u4f8b\u5982192.168.2.200, \u7981\u7528DHCP\u65f6\u5fc5\u586b\nstring \u672c\u673aIP\u63a9\u7801,\u4f8b\u5982255.255.255.0, \u7981\u7528DHCP\u65f6\u5fc5\u586b\nstring \u672c\u673aIP\u7f51\u5173,\u4f8b\u5982192.168.2.1, \u7981\u7528DHCP\u65f6\u5fc5\u586b\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- \u672cAPI\u4e8e 2023.10.06 \u65b0\u589e\n-- \u672c\u51fd\u6570\u9700\u8981\u5728wlan.init\u4e4b\u540e\u624d\u5141\u8bb8\u8c03\u7528\n\n-- \u542f\u7528DHCP, \u9ed8\u8ba4\u4e5f\u662f\u542f\u7528DHCP,\u8fd9\u91cc\u662f\u6f14\u793aAPI\u4f7f\u7528\nwlan.staIp(true)\n-- \u7981\u7528DHCP,\u81ea\u884c\u8bbe\u7f6eIP/\u63a9\u7801/\u7f51\u5173\nwlan.staIp(false, \"192.168.2.200\", \"255.255.255.0\", \"192.168.2.1\")\n", "prefix": "wlan.staIp"}, "ymodem.create": {"body": "ymodem.create(${1:dir_path},${2:file_path})", "description": "ymodem.create(dir_path,file_path) - \u521b\u5efa\u4e00\u4e2aymodem\u5904\u7406\u53e5\u67c4\n\u4f20\u5165\u503c\uff1a\nstring \u4fdd\u5b58\u7684\u6587\u4ef6\u5939\u8def\u5f84\uff0c\u9ed8\u8ba4\u662f\"/\"\nstring \u5f3a\u5236\u4fdd\u5b58\u7684\u7edd\u5bf9\u6587\u4ef6\u8def\u5f84\uff0c\u9ed8\u8ba4\u662f\u7a7a\uff0c\u5982\u679c\u8bbe\u7f6e\u4e86\uff0c\u5c31\u4f1a\u76f4\u63a5\u4fdd\u5b58\u5728\u8be5\u6587\u4ef6\u4e2d\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529ftrue, \u5931\u8d25false\n\u4f8b\u5b50\uff1a\nlocal handler = ymodem.create(\"/\")\n", "prefix": "ymodem.create"}, "ymodem.receive": {"body": "ymodem.receive(${1:handler},${2:data})", "description": "ymodem.receive(handler, data) - ymodem\u63a5\u6536\u6587\u4ef6\u6570\u636e\u5e76\u4fdd\u5b58\n\u4f20\u5165\u503c\uff1a\nuserdata ymodem\u5904\u7406\u53e5\u67c4\nzbuff/string \u8f93\u5165\u7684\u6570\u636e\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529ftrue\uff0c\u5931\u8d25false\nint ack\u503c\uff0c\u9700\u8981\u901a\u8fc7\u4e32\u53e3/\u7f51\u7edc\u7b49\u9014\u5f84\u8fd4\u56de\u53d1\u9001\u65b9\nint flag\u503c\uff0c\u9700\u8981\u901a\u8fc7\u4e32\u53e3/\u7f51\u7edc\u7b49\u9014\u5f84\u8fd4\u56de\u53d1\u9001\u65b9\uff0c\u5982\u679c\u6709ack\u503c\u5219\u4e0d\u53d1\u9001flag\nboolean, \u4e00\u4e2a\u6587\u4ef6\u63a5\u6536\u5b8c\u6210true\uff0c\u4f20\u8f93\u4e2dfalse\nboolean, \u6574\u4e2a\u4f20\u8f93\u5b8c\u6210true \u5426\u5219false\n\u4f8b\u5b50\uff1a\n-- \u6ce8\u610f, \u6570\u636e\u6765\u6e90\u4e0d\u9650, \u901a\u5e38\u662fuart.read\u5f97\u5230data\nno_error,ack,flag,file_done,all_done = ymodem.receive(handler, data)\n", "prefix": "ymodem.receive"}, "ymodem.reset": {"body": "ymodem.reset(${1:handler})", "description": "ymodem.reset(handler) - \u91cd\u7f6eymodem\u5904\u7406\u8fc7\u7a0b\n\u4f20\u5165\u503c\uff1a\nuserdata ymodem\u5904\u7406\u53e5\u67c4\n\u4f8b\u5b50\uff1a\n-- \u6062\u590d\u5230\u521d\u59cb\u72b6\u6001\uff0c\u4e00\u822c\u7528\u4e8e\u63a5\u6536\u51fa\u9519\u540e\u91cd\u7f6e\uff0c\u4ece\u800c\u8fdb\u884c\u4e0b\u4e00\u6b21\u63a5\u6536\nymodem.reset(handler)\n", "prefix": "ymodem.reset"}, "ymodem.release": {"body": "ymodem.release(${1:handler})", "description": "ymodem.release(handler) - \u91ca\u653eymodem\u5904\u7406\u53e5\u67c4\n\u4f20\u5165\u503c\uff1a\nuserdata handler\n\u4f8b\u5b50\uff1a\nymodem.release(handler)\n", "prefix": "ymodem.release"}, "zbuff.create": {"body": "zbuff.create(${1:{width},${2:height},${3:bit}},${4:data})", "description": "zbuff.create({width,height,bit},data) - \u521b\u5efaframebuff\u7528\u7684zbuff\n\u4f20\u5165\u503c\uff1a\ntable \u5bbd\u5ea6\u3001\u9ad8\u5ea6\u3001\u8272\u4f4d\u6df1\u5ea6\nint \u53ef\u9009\u53c2\u6570\uff0c\u586b\u5145\u6570\u636e\n\u8fd4\u56de\u503c\uff1a\nobject zbuff\u5bf9\u8c61\uff0c\u5982\u679c\u521b\u5efa\u5931\u8d25\u4f1a\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\n-- \u521b\u5efazbuff\nlocal buff = zbuff.create({128,160,16})--\u521b\u5efa\u4e00\u4e2a128*160\u7684framebuff\nlocal buff = zbuff.create({128,160,16},0xf800)--\u521b\u5efa\u4e00\u4e2a128*160\u7684framebuff\uff0c\u521d\u59cb\u72b6\u6001\u7ea2\u8272\n", "prefix": "zbuff.create"}, "buff:write": {"body": "buff:write(${1:para},${2:...})", "description": "buff:write(para,...) - zbuff\u5199\u6570\u636e\uff08\u4ece\u5f53\u524d\u6307\u9488\u4f4d\u7f6e\u5f00\u59cb\uff1b\u6267\u884c\u540e\u6307\u9488\u4f1a\u5411\u540e\u79fb\u52a8\uff09\n\u4f20\u5165\u503c\uff1a\nany \u5199\u5165buff\u7684\u6570\u636e\uff0cstring\u65f6\u4e3a\u4e00\u4e2a\u53c2\u6570\uff0cnumber\u65f6\u53ef\u4e3a\u591a\u4e2a\u53c2\u6570\n\u8fd4\u56de\u503c\uff1a\nnumber \u6570\u636e\u6210\u529f\u5199\u5165\u7684\u957f\u5ea6\n\u4f8b\u5b50\uff1a\n-- \u7c7bfile\u7684\u8bfb\u5199\u64cd\u4f5c\nlocal len = buff:write(\"123\") -- \u5199\u5165\u6570\u636e, \u6307\u9488\u76f8\u5e94\u5730\u5f80\u540e\u79fb\u52a8\uff0c\u8fd4\u56de\u5199\u5165\u7684\u6570\u636e\u957f\u5ea6\nlocal len = buff:write(0x1a,0x30,0x31,0x32,0x00,0x01) -- \u6309\u6570\u503c\u5199\u5165\u591a\u4e2a\u5b57\u8282\u6570\u636e\n", "prefix": "buff:write"}, "buff:read": {"body": "buff:read(${1:length})", "description": "buff:read(length) - zbuff\u8bfb\u6570\u636e\uff08\u4ece\u5f53\u524d\u6307\u9488\u4f4d\u7f6e\u5f00\u59cb\uff1b\u6267\u884c\u540e\u6307\u9488\u4f1a\u5411\u540e\u79fb\u52a8\uff09\n\u4f20\u5165\u503c\uff1a\nint \u8bfb\u53d6buff\u4e2d\u7684\u5b57\u8282\u6570\n\u8fd4\u56de\u503c\uff1a\nstring \u8bfb\u53d6\u7ed3\u679c\n\u4f8b\u5b50\uff1a\n-- \u7c7bfile\u7684\u8bfb\u5199\u64cd\u4f5c\nlocal str = buff:read(3)\n", "prefix": "buff:read"}, "buff:clear": {"body": "buff:clear(${1:num})", "description": "buff:clear(num) - zbuff\u6e05\u7a7a\u6570\u636e\uff08\u4e0e\u5f53\u524d\u6307\u9488\u4f4d\u7f6e\u65e0\u5173\uff1b\u6267\u884c\u540e\u6307\u9488\u4f4d\u7f6e\u4e0d\u53d8\uff09\n\u4f20\u5165\u503c\uff1a\nint \u53ef\u9009\uff0c\u9ed8\u8ba4\u4e3a0\u3002\u8981\u8bbe\u7f6e\u4e3a\u7684\u503c\uff0c\u4e0d\u4f1a\u6539\u53d8buff\u6307\u9488\u4f4d\u7f6e\n\u4f8b\u5b50\uff1a\n-- \u5168\u90e8\u521d\u59cb\u5316\u4e3a0\nbuff:clear(0)\n", "prefix": "buff:clear"}, "buff:seek": {"body": "buff:seek(${1:base},${2:offset})", "description": "buff:seek(base,offset) - zbuff\u8bbe\u7f6e\u5149\u6807\u4f4d\u7f6e\uff08\u53ef\u80fd\u4e0e\u5f53\u524d\u6307\u9488\u4f4d\u7f6e\u6709\u5173\uff1b\u6267\u884c\u540e\u6307\u9488\u4f1a\u88ab\u8bbe\u7f6e\u5230\u6307\u5b9a\u4f4d\u7f6e\uff09\n\u4f20\u5165\u503c\uff1a\nint \u504f\u79fb\u957f\u5ea6\nint where, \u57fa\u70b9\uff0c\u9ed8\u8ba4zbuff.SEEK_SET\u3002zbuff.SEEK_SET: \u57fa\u70b9\u4e3a 0 \uff08\u6587\u4ef6\u5f00\u5934\uff09\uff0czbuff.SEEK_CUR: \u57fa\u70b9\u4e3a\u5f53\u524d\u4f4d\u7f6e\uff0czbuff.SEEK_END: \u57fa\u70b9\u4e3a\u6587\u4ef6\u5c3e\n\u8fd4\u56de\u503c\uff1a\nint \u8bbe\u7f6e\u5149\u6807\u540e\u4ecebuff\u5f00\u5934\u8ba1\u7b97\u8d77\u7684\u5149\u6807\u7684\u4f4d\u7f6e\n\u4f8b\u5b50\uff1a\nbuff:seek(0) -- \u628a\u5149\u6807\u8bbe\u7f6e\u5230\u6307\u5b9a\u4f4d\u7f6e\nbuff:seek(5,zbuff.SEEK_CUR)\nbuff:seek(-3,zbuff.SEEK_END)\n", "prefix": "buff:seek"}, "buff:pack": {"body": "buff:pack(${1:format},${2:val1},${3:val2},${4:...})", "description": "buff:pack(format,val1, val2,...) - \u5c06\u4e00\u7cfb\u5217\u6570\u636e\u6309\u7167\u683c\u5f0f\u5b57\u7b26\u8f6c\u5316\uff0c\u5e76\u5199\u5165\uff08\u4ece\u5f53\u524d\u6307\u9488\u4f4d\u7f6e\u5f00\u59cb\uff1b\u6267\u884c\u540e\u6307\u9488\u4f1a\u5411\u540e\u79fb\u52a8\uff09\n\u4f20\u5165\u503c\uff1a\nstring \u540e\u9762\u6570\u636e\u7684\u683c\u5f0f\uff08\u7b26\u53f7\u542b\u4e49\u89c1\u4e0b\u9762\u7684\u4f8b\u5b50\uff09\nval \u4f20\u5165\u7684\u6570\u636e\uff0c\u53ef\u4ee5\u4e3a\u591a\u4e2a\u6570\u636e\n\u8fd4\u56de\u503c\uff1a\nint \u6210\u529f\u5199\u5165\u7684\u6570\u636e\u957f\u5ea6\n\u4f8b\u5b50\uff1a\nbuff:pack(\">IIHA\", 0x1234, 0x4567, 0x12,\"abcdefg\") -- \u6309\u683c\u5f0f\u5199\u5165\u51e0\u4e2a\u6570\u636e\n-- A string\n-- f float\n-- d double\n-- n Lua number\n-- c char\n-- b byte / unsignen char\n-- h short\n-- H unsigned short\n-- i int\n-- I unsigned int\n-- l long\n-- L unsigned long\n-- < \u5c0f\u7aef\n-- > \u5927\u7aef\n-- = \u9ed8\u8ba4\u5927\u5c0f\u7aef\n", "prefix": "buff:pack"}, "buff:unpack": {"body": "buff:unpack(${1:format})", "description": "buff:unpack(format) - \u5c06\u4e00\u7cfb\u5217\u6570\u636e\u6309\u7167\u683c\u5f0f\u5b57\u7b26\u8bfb\u53d6\u51fa\u6765\uff08\u4ece\u5f53\u524d\u6307\u9488\u4f4d\u7f6e\u5f00\u59cb\uff1b\u6267\u884c\u540e\u6307\u9488\u4f1a\u5411\u540e\u79fb\u52a8\uff09\n\u4f20\u5165\u503c\uff1a\nstring \u6570\u636e\u7684\u683c\u5f0f\uff08\u7b26\u53f7\u542b\u4e49\u89c1\u4e0a\u9762pack\u63a5\u53e3\u7684\u4f8b\u5b50\uff09\n\u8fd4\u56de\u503c\uff1a\nint \u6210\u529f\u8bfb\u53d6\u7684\u6570\u636e\u5b57\u8282\u957f\u5ea6\nany \u6309\u683c\u5f0f\u8bfb\u51fa\u6765\u7684\u6570\u636e\n\u4f8b\u5b50\uff1a\nlocal cnt,a,b,c,s = buff:unpack(\">IIHA10\") -- \u6309\u683c\u5f0f\u8bfb\u53d6\u51e0\u4e2a\u6570\u636e\n--\u5982\u679c\u5168\u90e8\u6210\u529f\u8bfb\u53d6\uff0ccnt\u5c31\u662f4+4+2+10=20\n", "prefix": "buff:unpack"}, "buff:read\u7c7b\u578b": {"body": "buff:read\u7c7b\u578b()", "description": "buff:read\u7c7b\u578b() - \u8bfb\u53d6\u4e00\u4e2a\u6307\u5b9a\u7c7b\u578b\u7684\u6570\u636e\uff08\u4ece\u5f53\u524d\u6307\u9488\u4f4d\u7f6e\u5f00\u59cb\uff1b\u6267\u884c\u540e\u6307\u9488\u4f1a\u5411\u540e\u79fb\u52a8\uff09\n\u4f20\u5165\u503c\uff1a\n\u6ce8\u91ca \u8bfb\u53d6\u7c7b\u578b\u53ef\u4e3a\uff1aI8\u3001U8\u3001I16\u3001U16\u3001I32\u3001U32\u3001I64\u3001U64\u3001F32\u3001F64\n\u8fd4\u56de\u503c\uff1a\nnumber \u8bfb\u53d6\u7684\u6570\u636e\uff0c\u5982\u679c\u8d8a\u754c\u5219\u4e3anil\n\u4f8b\u5b50\uff1a\nlocal data = buff:readI8()\nlocal data = buff:readU32()\n", "prefix": "buff:read\u7c7b\u578b"}, "buff:write\u7c7b\u578b": {"body": "buff:write\u7c7b\u578b()", "description": "buff:write\u7c7b\u578b() - \u5199\u5165\u4e00\u4e2a\u6307\u5b9a\u7c7b\u578b\u7684\u6570\u636e\uff08\u4ece\u5f53\u524d\u6307\u9488\u4f4d\u7f6e\u5f00\u59cb\uff1b\u6267\u884c\u540e\u6307\u9488\u4f1a\u5411\u540e\u79fb\u52a8\uff09\n\u4f20\u5165\u503c\uff1a\nnumber \u5f85\u5199\u5165\u7684\u6570\u636e\n\u6ce8\u91ca \u5199\u5165\u7c7b\u578b\u53ef\u4e3a\uff1aI8\u3001U8\u3001I16\u3001U16\u3001I32\u3001U32\u3001I64\u3001U64\u3001F32\u3001F64\n\u8fd4\u56de\u503c\uff1a\nnumber \u6210\u529f\u5199\u5165\u7684\u957f\u5ea6\n\u4f8b\u5b50\uff1a\nlocal len = buff:writeI8(10)\nlocal len = buff:writeU32(1024)\n", "prefix": "buff:write\u7c7b\u578b"}, "buff:toStr": {"body": "buff:toStr(${1:offset},${2:length})", "description": "buff:toStr(offset,length) - \u6309\u8d77\u59cb\u4f4d\u7f6e\u548c\u957f\u5ea6\u53d6\u51fa\u6570\u636e\uff08\u4e0e\u5f53\u524d\u6307\u9488\u4f4d\u7f6e\u65e0\u5173\uff1b\u6267\u884c\u540e\u6307\u9488\u4f4d\u7f6e\u4e0d\u53d8\uff09\n\u4f20\u5165\u503c\uff1a\nint \u6570\u636e\u7684\u8d77\u59cb\u4f4d\u7f6e\uff08\u8d77\u59cb\u4f4d\u7f6e\u4e3a0\uff09,\u9ed8\u8ba4\u503c\u4e5f\u662f0\nint \u6570\u636e\u7684\u957f\u5ea6,\u9ed8\u8ba4\u662f\u5168\u90e8\u6570\u636e\n\u8fd4\u56de\u503c\uff1a\nstring \u8bfb\u51fa\u6765\u7684\u6570\u636e\n\u4f8b\u5b50\uff1a\nlocal s = buff:toStr(0,5)--\u8bfb\u53d6\u5f00\u5934\u7684\u4e94\u4e2a\u5b57\u8282\u6570\u636e\nlocal s = buff:toStr() -- \u53d6\u51fa\u6574\u4e2azbuff\u7684\u6570\u636e\nlocal s = buff:toStr(0, buff:used()) -- \u53d6\u51fa\u5df2\u4f7f\u7528\u7684\u90e8\u5206, \u4e0ebuff:query()\u4e00\u6837\n", "prefix": "buff:toStr"}, "buff:len": {"body": "buff:len()", "description": "buff:len() - \u83b7\u53d6zbuff\u5bf9\u8c61\u7684\u957f\u5ea6\uff08\u4e0e\u5f53\u524d\u6307\u9488\u4f4d\u7f6e\u65e0\u5173\uff1b\u6267\u884c\u540e\u6307\u9488\u4f4d\u7f6e\u4e0d\u53d8\uff09\n\u8fd4\u56de\u503c\uff1a\nint zbuff\u5bf9\u8c61\u7684\u957f\u5ea6\n\u4f8b\u5b50\uff1a\nlen = buff:len()\nlen = #buff\n", "prefix": "buff:len"}, "buff:setFrameBuffer": {"body": "buff:setFrameBuffer(${1:width},${2:height},${3:bit},${4:color})", "description": "buff:setFrameBuffer(width,height,bit,color) - \u8bbe\u7f6ebuff\u5bf9\u8c61\u7684FrameBuffer\u5c5e\u6027\uff08\u4e0e\u5f53\u524d\u6307\u9488\u4f4d\u7f6e\u65e0\u5173\uff1b\u6267\u884c\u540e\u6307\u9488\u4f4d\u7f6e\u4e0d\u53d8\uff09\n\u4f20\u5165\u503c\uff1a\nint FrameBuffer\u7684\u5bbd\u5ea6\nint FrameBuffer\u7684\u9ad8\u5ea6\nint FrameBuffer\u7684\u8272\u4f4d\u6df1\u5ea6\nint FrameBuffer\u7684\u521d\u59cb\u989c\u8272\n\u8fd4\u56de\u503c\uff1a\nbool \u8bbe\u7f6e\u6210\u529f\u4f1a\u8fd4\u56detrue\n\u4f8b\u5b50\uff1a\nresult = buff:setFrameBuffer(320,240,16,0xffff)\n", "prefix": "buff:setFrameBuffer"}, "buff:pixel": {"body": "buff:pixel(${1:x},${2:y},${3:color})", "description": "buff:pixel(x,y,color) - \u8bbe\u7f6e\u6216\u83b7\u53d6FrameBuffer\u67d0\u4e2a\u50cf\u7d20\u70b9\u7684\u989c\u8272\uff08\u4e0e\u5f53\u524d\u6307\u9488\u4f4d\u7f6e\u65e0\u5173\uff1b\u6267\u884c\u540e\u6307\u9488\u4f4d\u7f6e\u4e0d\u53d8\uff09\n\u4f20\u5165\u503c\uff1a\nint \u4e0e\u6700\u5de6\u8fb9\u7684\u8ddd\u79bb\uff0c\u8303\u56f4\u662f0~\u5bbd\u5ea6-1\nint \u4e0e\u6700\u4e0a\u8fb9\u7684\u8ddd\u79bb\uff0c\u8303\u56f4\u662f0~\u9ad8\u5ea6-1\nint \u989c\u8272\uff0c\u5982\u679c\u7559\u7a7a\u5219\u8868\u793a\u83b7\u53d6\u8be5\u4f4d\u7f6e\u7684\u989c\u8272\n\u8fd4\u56de\u503c\uff1a\nany \u8bbe\u7f6e\u989c\u8272\u65f6\uff0c\u8bbe\u7f6e\u6210\u529f\u4f1a\u8fd4\u56detrue\uff1b\u8bfb\u53d6\u989c\u8272\u65f6\uff0c\u8fd4\u56de\u989c\u8272\u7684\u503c\uff0c\u8bfb\u53d6\u5931\u8d25\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\nrerult = buff:pixel(0,3,0)\ncolor = buff:pixel(0,3)\n", "prefix": "buff:pixel"}, "buff:drawLine": {"body": "buff:drawLine(${1:x1},${2:y1},${3:x2},${4:y2},${5:color})", "description": "buff:drawLine(x1,y1,x2,y2,color) - \u753b\u4e00\u6761\u7ebf\uff08\u4e0e\u5f53\u524d\u6307\u9488\u4f4d\u7f6e\u65e0\u5173\uff1b\u6267\u884c\u540e\u6307\u9488\u4f4d\u7f6e\u4e0d\u53d8\uff09\n\u4f20\u5165\u503c\uff1a\nint \u8d77\u59cb\u5750\u6807\u70b9\u4e0e\u6700\u5de6\u8fb9\u7684\u8ddd\u79bb\uff0c\u8303\u56f4\u662f0~\u5bbd\u5ea6-1\nint \u8d77\u59cb\u5750\u6807\u70b9\u4e0e\u6700\u4e0a\u8fb9\u7684\u8ddd\u79bb\uff0c\u8303\u56f4\u662f0~\u9ad8\u5ea6-1\nint \u7ed3\u675f\u5750\u6807\u70b9\u4e0e\u6700\u5de6\u8fb9\u7684\u8ddd\u79bb\uff0c\u8303\u56f4\u662f0~\u5bbd\u5ea6-1\nint \u7ed3\u675f\u5750\u6807\u70b9\u4e0e\u6700\u4e0a\u8fb9\u7684\u8ddd\u79bb\uff0c\u8303\u56f4\u662f0~\u9ad8\u5ea6-1\nint \u53ef\u9009\uff0c\u989c\u8272\uff0c\u9ed8\u8ba4\u4e3a0\n\u8fd4\u56de\u503c\uff1a\nbool \u753b\u6210\u529f\u4f1a\u8fd4\u56detrue\n\u4f8b\u5b50\uff1a\nrerult = buff:drawLine(0,0,2,3,0xffff)\n", "prefix": "buff:drawLine"}, "buff:drawRect": {"body": "buff:drawRect(${1:x1},${2:y1},${3:x2},${4:y2},${5:color},${6:fill})", "description": "buff:drawRect(x1,y1,x2,y2,color,fill) - \u753b\u4e00\u4e2a\u77e9\u5f62\uff08\u4e0e\u5f53\u524d\u6307\u9488\u4f4d\u7f6e\u65e0\u5173\uff1b\u6267\u884c\u540e\u6307\u9488\u4f4d\u7f6e\u4e0d\u53d8\uff09\n\u4f20\u5165\u503c\uff1a\nint \u8d77\u59cb\u5750\u6807\u70b9\u4e0e\u6700\u5de6\u8fb9\u7684\u8ddd\u79bb\uff0c\u8303\u56f4\u662f0~\u5bbd\u5ea6-1\nint \u8d77\u59cb\u5750\u6807\u70b9\u4e0e\u6700\u4e0a\u8fb9\u7684\u8ddd\u79bb\uff0c\u8303\u56f4\u662f0~\u9ad8\u5ea6-1\nint \u7ed3\u675f\u5750\u6807\u70b9\u4e0e\u6700\u5de6\u8fb9\u7684\u8ddd\u79bb\uff0c\u8303\u56f4\u662f0~\u5bbd\u5ea6-1\nint \u7ed3\u675f\u5750\u6807\u70b9\u4e0e\u6700\u4e0a\u8fb9\u7684\u8ddd\u79bb\uff0c\u8303\u56f4\u662f0~\u9ad8\u5ea6-1\nint \u53ef\u9009\uff0c\u989c\u8272\uff0c\u9ed8\u8ba4\u4e3a0\nbool \u53ef\u9009\uff0c\u662f\u5426\u5728\u5185\u90e8\u586b\u5145\uff0c\u9ed8\u8ba4nil\n\u8fd4\u56de\u503c\uff1a\nbool \u753b\u6210\u529f\u4f1a\u8fd4\u56detrue\n\u4f8b\u5b50\uff1a\nrerult = buff:drawRect(0,0,2,3,0xffff)\n", "prefix": "buff:drawRect"}, "buff:drawCircle": {"body": "buff:drawCircle(${1:x},${2:y},${3:r},${4:color},${5:fill})", "description": "buff:drawCircle(x,y,r,color,fill) - \u753b\u4e00\u4e2a\u5706\u5f62\uff08\u4e0e\u5f53\u524d\u6307\u9488\u4f4d\u7f6e\u65e0\u5173\uff1b\u6267\u884c\u540e\u6307\u9488\u4f4d\u7f6e\u4e0d\u53d8\uff09\n\u4f20\u5165\u503c\uff1a\nint **\u5706\u5fc3**\u4e0e\u6700\u5de6\u8fb9\u7684\u8ddd\u79bb\uff0c\u8303\u56f4\u662f0~\u5bbd\u5ea6-1\nint **\u5706\u5fc3**\u4e0e\u6700\u4e0a\u8fb9\u7684\u8ddd\u79bb\uff0c\u8303\u56f4\u662f0~\u9ad8\u5ea6-1\nint \u5706\u7684\u534a\u5f84\nint \u53ef\u9009\uff0c\u5706\u7684\u989c\u8272\uff0c\u9ed8\u8ba4\u4e3a0\nbool \u53ef\u9009\uff0c\u662f\u5426\u5728\u5185\u90e8\u586b\u5145\uff0c\u9ed8\u8ba4nil\n\u8fd4\u56de\u503c\uff1a\nbool \u753b\u6210\u529f\u4f1a\u8fd4\u56detrue\n\u4f8b\u5b50\uff1a\nrerult = buff:drawCircle(15,5,3,0xC)\nrerult = buff:drawCircle(15,5,3,0xC,true)\n", "prefix": "buff:drawCircle"}, "buff[n": {"body": "buff[n]", "description": "buff[n] - \u4ee5\u4e0b\u6807\u5f62\u5f0f\u8fdb\u884c\u6570\u636e\u8bfb\u5199\uff08\u4e0e\u5f53\u524d\u6307\u9488\u4f4d\u7f6e\u65e0\u5173\uff1b\u6267\u884c\u540e\u6307\u9488\u4f4d\u7f6e\u4e0d\u53d8\uff09\n\u4f20\u5165\u503c\uff1a\nint \u7b2c\u51e0\u4e2a\u6570\u636e\uff0c\u4ee50\u5f00\u59cb\u7684\u4e0b\u6807\uff08C\u6807\u51c6\uff09\n\u8fd4\u56de\u503c\uff1a\nnumber \u8be5\u4f4d\u7f6e\u7684\u6570\u636e\n\u4f8b\u5b50\uff1a\nbuff[0] = 0xc8\nlocal data = buff[0]\n", "prefix": "buff[n"}, "buff:resize": {"body": "buff:resize(${1:n})", "description": "buff:resize(n) - \u8c03\u6574zbuff\u5b9e\u9645\u5206\u914d\u7a7a\u95f4\u7684\u5927\u5c0f\uff0c\u7c7b\u4f3c\u4e8erealloc\u7684\u6548\u679c\uff0cnew = realloc(old, n)\uff0c\u53ef\u4ee5\u6269\u5927\u6216\u8005\u7f29\u5c0f\uff08\u5982\u679c\u7f29\u5c0f\u540elen\u5c0f\u4e8e\u4e86used\uff0c\u90a3\u4e48used=\u65b0len\uff09\n\u4f20\u5165\u503c\uff1a\nint \u65b0\u7a7a\u95f4\u5927\u5c0f\n\u4f8b\u5b50\uff1a\nbuff:resize(20)\n", "prefix": "buff:resize"}, "buff:copy": {"body": "buff:copy(${1:start},${2:para},${3:...})", "description": "buff:copy(start, para,...) - zbuff\u52a8\u6001\u5199\u6570\u636e\uff0c\u7c7b\u4f3c\u4e8ememcpy\u6548\u679c\uff0c\u5f53\u539f\u6709\u7a7a\u95f4\u4e0d\u8db3\u65f6\u52a8\u6001\u6269\u5927\u7a7a\u95f4\n\u4f20\u5165\u503c\uff1a\nint \u5199\u5165buff\u7684\u8d77\u59cb\u4f4d\u7f6e\uff0c\u5982\u679c\u4e0d\u4e3a\u6570\u5b57\uff0c\u5219\u4e3abuff\u7684used\uff0c\u5982\u679c\u5c0f\u4e8e0\uff0c\u5219\u4eceused\u5f80\u524d\u6570\uff0c-1 = used - 1\nany \u5199\u5165buff\u7684\u6570\u636e\uff0cstring\u6216zbuff\u8005\u65f6\u4e3a\u4e00\u4e2a\u53c2\u6570\uff0cnumber\u65f6\u53ef\u4e3a\u591a\u4e2a\u53c2\u6570\n\u8fd4\u56de\u503c\uff1a\nnumber \u6570\u636e\u6210\u529f\u5199\u5165\u7684\u957f\u5ea6\n\u4f8b\u5b50\uff1a\nlocal len = buff:copy(nil, \"123\") -- \u7c7b\u4f3c\u4e8ememcpy(&buff[used], \"123\", 3) used+= 3 \u4ecebuff\u5f00\u59cb\u5199\u5165\u6570\u636e,\u6307\u9488\u76f8\u5e94\u5730\u5f80\u540e\u79fb\u52a8\nlocal len = buff:copy(0, \"123\") -- \u7c7b\u4f3c\u4e8ememcpy(&buff[0], \"123\", 3) if (used < 3) used = 3 \u4ece\u4f4d\u7f6e0\u5199\u5165\u6570\u636e,\u6307\u9488\u6709\u53ef\u80fd\u4f1a\u79fb\u52a8\nlocal len = buff:copy(2, 0x1a,0x30,0x31,0x32,0x00,0x01) -- \u7c7b\u4f3c\u4e8ememcpy(&buff[2], [0x1a,0x30,0x31,0x32,0x00,0x01], 6) if (used < (2+6)) used = (2+6)\u4ece\u4f4d\u7f6e2\u5f00\u59cb\uff0c\u6309\u6570\u503c\u5199\u5165\u591a\u4e2a\u5b57\u8282\u6570\u636e\nlocal len = buff:copy(9, buff2) -- \u7c7b\u4f3c\u4e8ememcpy(&buff[9], &buff2[0], buff2\u7684used) if (used < (9+buff2\u7684used)) used = (9+buff2\u7684used) \u4ece\u4f4d\u7f6e9\u5f00\u59cb\uff0c\u5408\u5e76\u5165buff2\u91cc0~used\u7684\u5185\u5bb9\nlocal len = buff:copy(5, buff2, 10, 1024) -- \u7c7b\u4f3c\u4e8ememcpy(&buff[5], &buff2[10], 1024) if (used < (5+1024)) used = (5+1024)\n", "prefix": "buff:copy"}, "buff:used": {"body": "buff:used()", "description": "buff:used() - \u83b7\u53d6zbuff\u91cc\u6700\u540e\u4e00\u4e2a\u6570\u636e\u4f4d\u7f6e\u6307\u9488\u5230\u9996\u5730\u5740\u7684\u504f\u79fb\u91cf\uff0c\u6765\u8868\u793azbuff\u5185\u5df2\u6709\u6709\u6548\u6570\u636e\u91cf\u5927\u5c0f\uff0c\u6ce8\u610f\u8fd9\u4e2a\u4e0d\u540c\u4e8e\u5206\u914d\u7684\u7a7a\u95f4\u5927\u5c0f\uff0c\u7531\u4e8eseek()\u4f1a\u6539\u53d8\u6700\u540e\u4e00\u4e2a\u6570\u636e\u4f4d\u7f6e\u6307\u9488\uff0c\u56e0\u6b64\u4e5f\u4f1a\u5f71\u54cd\u5230used()\u8fd4\u56de\u503c\u3002\n\u8fd4\u56de\u503c\uff1a\nint \u6709\u6548\u6570\u636e\u91cf\u5927\u5c0f\n\u4f8b\u5b50\uff1a\nbuff:used()\n", "prefix": "buff:used"}, "buff:del": {"body": "buff:del(${1:offset},${2:length})", "description": "buff:del(offset,length) - \u5220\u9664zbuff 0~used\u8303\u56f4\u5185\u7684\u4e00\u6bb5\u6570\u636e\uff0c\u6ce8\u610f\u53ea\u662f\u6539\u53d8\u4e86used\u7684\u503c\uff0c\u5e76\u4e0d\u662f\u771f\u7684\u5728ram\u91cc\u53bb\u6e05\u9664\u6389\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nint \u8d77\u59cb\u4f4d\u7f6estart, \u9ed8\u8ba40\uff0c\u5982\u679c<0\u5219\u4eceused\u5f80\u524d\u6570\uff0c\u6bd4\u5982 -1 \u90a3\u4e48start= used - 1\nint \u957f\u5ea6del_len\uff0c\u9ed8\u8ba4\u4e3aused\uff0c\u5982\u679cstart + del_len\u6570\u503c\u5927\u4e8eused\uff0c\u4f1a\u5f3a\u5236\u8c03\u6574del_len = used - start\n\u4f8b\u5b50\uff1a\nbuff:del(1,4)\t--\u4ece\u4f4d\u7f6e1\u5f00\u59cb\u5220\u96644\u4e2a\u5b57\u8282\u6570\u636e\nbuff:del(-1,4)\t--\u4ece\u4f4d\u7f6eused-1\u5f00\u59cb\u5220\u96644\u4e2a\u5b57\u8282\u6570\u636e\uff0c\u4f46\u662f\u8fd9\u80af\u5b9a\u4f1a\u8d85\u8fc7used\uff0c\u6240\u4ee5del_len\u4f1a\u8c03\u6574\u4e3a1\uff0c\u5b9e\u9645\u4e0a\u5c31\u662f\u5220\u6389\u4e86\u6700\u540e\u4e00\u4e2a\u5b57\u8282\n", "prefix": "buff:del"}, "buff:query": {"body": "buff:query(${1:offset},${2:length},${3:isbigend},${4:issigned},${5:isfloat})", "description": "buff:query(offset,length,isbigend,issigned,isfloat) - \u6309\u8d77\u59cb\u4f4d\u7f6e\u548c\u957f\u5ea60~used\u8303\u56f4\u5185\u53d6\u51fa\u6570\u636e\uff0c\u5982\u679c\u662f1,2,4,8\u5b57\u8282\uff0c\u6839\u636e\u540e\u7eed\u53c2\u6570\u8f6c\u6362\u6210\u6d6e\u70b9\u6216\u8005\u6574\u5f62\n\u4f20\u5165\u503c\uff1a\nint \u6570\u636e\u7684\u8d77\u59cb\u4f4d\u7f6e\uff08\u8d77\u59cb\u4f4d\u7f6e\u4e3a0\uff09\nint \u6570\u636e\u7684\u957f\u5ea6\nboolean \u662f\u5426\u662f\u5927\u7aef\u683c\u5f0f\uff0c\u5982\u679c\u4e3anil\uff0c\u5219\u4e0d\u4f1a\u8f6c\u6362\uff0c\u76f4\u63a5\u5b57\u8282\u6d41\u8f93\u51fa\nboolean \u662f\u5426\u662f\u6709\u7b26\u53f7\u7684\uff0c\u9ed8\u8ba4\u4e3afalse\nboolean \u662f\u5426\u662f\u6d6e\u70b9\u578b\uff0c\u9ed8\u8ba4\u4e3afalse\n\u8fd4\u56de\u503c\uff1a\nstring \u8bfb\u51fa\u6765\u7684\u6570\u636e\n\u4f8b\u5b50\uff1a\nlocal s = buff:query(0,5)--\u8bfb\u53d6\u5f00\u5934\u7684\u4e94\u4e2a\u5b57\u8282\u6570\u636e\n", "prefix": "buff:query"}, "buff:set": {"body": "buff:set(${1:start},${2:num},${3:len})", "description": "buff:set(start, num, len) - zbuff\u7684\u7c7b\u4f3c\u4e8ememset\u64cd\u4f5c\uff0c\u7c7b\u4f3c\u4e8ememset(&buff[start], num, len)\uff0c\u5f53\u7136\u6709ram\u8d8a\u754c\u4fdd\u62a4\uff0c\u4f1a\u5bf9len\u6709\u4e00\u5b9a\u7684\u9650\u5236\n\u4f20\u5165\u503c\uff1a\nint \u53ef\u9009\uff0c\u5f00\u59cb\u4f4d\u7f6e\uff0c\u9ed8\u8ba4\u4e3a0,\nint \u53ef\u9009\uff0c\u9ed8\u8ba4\u4e3a0\u3002\u8981\u8bbe\u7f6e\u4e3a\u7684\u503c\nint \u53ef\u9009\uff0c\u957f\u5ea6\uff0c\u9ed8\u8ba4\u4e3a\u5168\u90e8\u7a7a\u95f4\uff0c\u5982\u679c\u8d85\u51fa\u8303\u56f4\u4e86\uff0c\u4f1a\u81ea\u52a8\u622a\u65ad\n\u4f8b\u5b50\uff1a\n-- \u5168\u90e8\u521d\u59cb\u5316\u4e3a0\nbuff:set() --\u7b49\u540c\u4e8e memset(buff, 0, sizeof(buff))\nbuff:set(8) --\u7b49\u540c\u4e8e memset(&buff[8], 0, sizeof(buff) - 8)\nbuff:set(0, 0x55) --\u7b49\u540c\u4e8e memset(buff, 0x55, sizeof(buff))\nbuff:set(4, 0xaa, 12) --\u7b49\u7528\u4e8e memset(&buff[4], 0xaa, 12)\n", "prefix": "buff:set"}, "buff:isEqual": {"body": "buff:isEqual(${1:start},${2:buff2},${3:start2},${4:len})", "description": "buff:isEqual(start, buff2, start2, len) - zbuff\u7684\u7c7b\u4f3c\u4e8ememcmp\u64cd\u4f5c\uff0c\u7c7b\u4f3c\u4e8ememcmp(&buff[start], &buff2[start2], len)\n\u4f20\u5165\u503c\uff1a\nint \u53ef\u9009\uff0c\u5f00\u59cb\u4f4d\u7f6e\uff0c\u9ed8\u8ba4\u4e3a0,\nzbuff \u6bd4\u8f83\u7684\u5bf9\u8c61\nint \u53ef\u9009\uff0c\u6bd4\u8f83\u7684\u5bf9\u8c61\u7684\u5f00\u59cb\u4f4d\u7f6e\uff0c\u9ed8\u8ba4\u4e3a0\nint \u6bd4\u8f83\u957f\u5ea6\n\u8fd4\u56de\u503c\uff1a\nboolean true\u76f8\u7b49\uff0cfalse\u4e0d\u76f8\u7b49\nint \u76f8\u7b49\u8fd4\u56de0\uff0c\u4e0d\u76f8\u7b49\u8fd4\u56de\u7b2c\u4e00\u4e2a\u4e0d\u76f8\u7b49\u4f4d\u7f6e\u7684\u5e8f\u53f7\n\u4f8b\u5b50\uff1a\nlocal result, offset = buff:isEqual(1, buff2, 2, 10) --\u7b49\u540c\u4e8ememcmp(&buff[1], &buff2[2], 10)\n", "prefix": "buff:isEqual"}, "zlib.c": {"body": "zlib.c(${1:input_file},${2:output_file})", "description": "zlib.c(input_file,output_file) - zlib\u538b\u7f29(\u9700\u8981\u5927\u7ea6270k\u5185\u5b58\uff0c\u5927\u90e8\u5206mcu\u4e0d\u652f\u6301)\n\u4f20\u5165\u503c\uff1a\nstring input_file \u8f93\u5165\u6587\u4ef6\nstring output_file \u8f93\u51fa\u6587\u4ef6\n\u8fd4\u56de\u503c\uff1a\nbool \u6b63\u5e38\u8fd4\u56de ture \u5931\u8d25\u8fd4\u56de false\n\u4f8b\u5b50\uff1a\nzlib.c(\"/sd/1.txt\",\"/sd/zlib\")\n", "prefix": "zlib.c"}, "zlib.d": {"body": "zlib.d(${1:input_file},${2:output_file})", "description": "zlib.d(input_file,output_file) - zlib\u89e3\u538b\u7f29(\u9700\u8981\u5927\u7ea618k\u5185\u5b58\uff0c\u5927\u90e8\u5206mcu\u90fd\u652f\u6301)\n\u4f20\u5165\u503c\uff1a\nstring input_file \u8f93\u5165\u6587\u4ef6\nstring output_file \u8f93\u51fa\u6587\u4ef6\n\u8fd4\u56de\u503c\uff1a\nbool \u6b63\u5e38\u8fd4\u56de ture \u5931\u8d25\u8fd4\u56de false\n\u4f8b\u5b50\uff1a\nzlib.d(\"/sd/zlib\",\"/sd/1.txt\")\n", "prefix": "zlib.d"}} \ No newline at end of file +{"_G": {"body": "_G(${0:...})", "description": "_G", "prefix": "_G"}, "_VERSION": {"body": "_VERSION(${0:...})", "description": "_VERSION", "prefix": "_VERSION"}, "assert": {"body": "assert(${1:v}${2:[, message]})", "description": "assert()", "prefix": "assert"}, "collectgarbage": {"body": "collectgarbage(${1:[opt]}${2:[, arg]})", "description": "collectgarbage()", "prefix": "collectgarbage"}, "coroutine.create": {"body": "coroutine.create( ${1:function} )", "description": "coroutine.create", "prefix": "coroutine.create"}, "coroutine.isyieldable": {"body": "coroutine.isyieldable( )", "description": "coroutine.isyieldable", "prefix": "coroutine.isyieldable"}, "coroutine.resume": {"body": "coroutine.resume( ${1:co}${2:[, val1, \u00b7\u00b7\u00b7]} )", "description": "coroutine.resume", "prefix": "coroutine.resume"}, "coroutine.running": {"body": "coroutine.running( )", "description": "coroutine.running", "prefix": "coroutine.running"}, "coroutine.status": {"body": "coroutine.status( ${1:co} )", "description": "coroutine.status", "prefix": "coroutine.status"}, "coroutine.wrap": {"body": "coroutine.wrap( ${1:function} )", "description": "coroutine.wrap", "prefix": "coroutine.wrap"}, "coroutine.yield": {"body": "coroutine.yield( ${1:...} )", "description": "coroutine.yield", "prefix": "coroutine.yield"}, "debug.debug": {"body": "debug.debug()", "description": "debug.debug ()", "prefix": "debug.debug"}, "debug.getfenv": {"body": "debug.getfenv(${0:...})", "description": "debug.getfenv (o)", "prefix": "debug.getfenv"}, "debug.gethook": {"body": "debug.gethook( ${1:[thread]} )", "description": "debug.gethook ([thread])", "prefix": "debug.gethook"}, "debug.getinfo": {"body": "debug.getinfo( ${1:[thread],}${2:f}${3:[, what]} )", "description": "debug.getinfo ([thread,] f [, what])", "prefix": "debug.getinfo"}, "debug.getlocal": {"body": "debug.getlocal( ${1:[thread],}${2:f}${3:[, local]} )", "description": "debug.getlocal ([thread,] f, local)", "prefix": "debug.getlocal"}, "debug.getmetatable": {"body": "debug.getmetatable( ${1:value} )", "description": "debug.getmetatable (value)", "prefix": "debug.getmetatable"}, "debug.getregistry": {"body": "debug.getregistry()", "description": "debug.getregistry ()", "prefix": "debug.getregistry"}, "debug.getupvalue": {"body": "debug.getupvalue( ${1:f}, ${2:up} )", "description": "debug.getupvalue (f, up)", "prefix": "debug.getupvalue"}, "debug.getuservalue": {"body": "debug.getuservalue(${0:...})", "description": "debug.getuservalue (u)", "prefix": "debug.getuservalue"}, "debug.getuservalue ": {"body": "debug.getuservalue ( ${1:u} )", "description": "debug.getuservalue (u)", "prefix": "debug.getuservalue "}, "debug.setfenv": {"body": "debug.setfenv(${0:...})", "description": "debug.setfenv (object, table)", "prefix": "debug.setfenv"}, "debug.sethook": {"body": "debug.sethook( ${1:[thead,]}${2:hook}, ${3:mask}${4:[, count]} )", "description": "debug.sethook ([thread,] hook, mask [, count])", "prefix": "debug.sethook"}, "debug.setlocal": {"body": "debug.setlocal( ${1:[thead,]}${2:level}, ${3:local}, ${4:value} )", "description": "debug.setlocal ([thread,] level, local, value)", "prefix": "debug.setlocal"}, "debug.setmetatable": {"body": "debug.setmetatable( ${1:value}, ${2:table} )", "description": "debug.setmetatable (value, table)", "prefix": "debug.setmetatable"}, "debug.setupvalue": {"body": "debug.setupvalue( ${1:f}, ${2:up}, ${3:value} )", "description": "debug.setupvalue (f, up, value)", "prefix": "debug.setupvalue"}, "debug.setuservalue": {"body": "debug.setuservalue( ${1:udata}, ${2:value} )", "description": "debug.setuservalue (udata, value)", "prefix": "debug.setuservalue"}, "debug.traceback": {"body": "debug.traceback( ${1:[thread,]}${2:[message]}${3:[, level]} )", "description": "debug.traceback ([thread,] [message [, level]])", "prefix": "debug.traceback"}, "debug.upvalueid": {"body": "debug.upvalueid( ${1:f}, ${2:n})", "description": "debug.upvalueid (f, n)", "prefix": "debug.upvalueid"}, "debug.upvaluejoin": {"body": "debug.upvaluejoin( ${1:f1}, ${2:n1}, ${3:f2}, ${4:n2} )", "description": "debug.upvaluejoin (f1, n1, f2, n2)", "prefix": "debug.upvaluejoin"}, "dofile": {"body": "dofile(${1:[filename]})", "description": "dofile ([filename])", "prefix": "dofile"}, "elif": {"body": "else if ${1:condition} then\n\t${0:-- body}\n", "description": "elif", "prefix": "elif"}, "error": {"body": "error(${0:...})", "description": "error (message [, level])", "prefix": "error"}, "file:close": {"body": "file:close(${0:...})", "description": "file:close ()", "prefix": "file:close"}, "file:flush": {"body": "file:flush(${0:...})", "description": "file:flush ()", "prefix": "file:flush"}, "file:lines": {"body": "file:lines(${0:...})", "description": "file:lines ()", "prefix": "file:lines"}, "file:read": {"body": "file:read(${0:...})", "description": "file:read (...)", "prefix": "file:read"}, "file:seek": {"body": "file:seek(${0:...})", "description": "file:seek ([whence] [, offset])", "prefix": "file:seek"}, "file:setvbuf": {"body": "file:setvbuf(${0:...})", "description": "file:setvbuf (mode [, size])", "prefix": "file:setvbuf"}, "file:write": {"body": "file:write(${0:...})", "description": "file:write (...)", "prefix": "file:write"}, "for": {"body": "for ${1:i}=${2:1},${3:10} do\n\t${0:print(i)}\nend", "description": "for i=1,10", "prefix": "for"}, "fori": {"body": "for ${1:i},${2:v} in ipairs(${3:table_name}) do\n\t${0:print(i,v)}\nend", "description": "for i,v in ipairs()", "prefix": "fori"}, "forp": {"body": "for ${1:k},${2:v} in pairs(${3:table_name}) do\n\t${0:print(k,v)}\nend", "description": "for k,v in pairs()", "prefix": "forp"}, "fun": {"body": "function ${1:function_name}( ${2:...} )\n\t${0:-- body}\nend", "description": "function", "prefix": "fun"}, "function": {"body": "function ${1:function_name}( ${2:...} )\n\t${0:-- body}\nend", "description": "function", "prefix": "function"}, "getfenv": {"body": "getfenv(${0:...})", "description": "getfenv ([f])", "prefix": "getfenv"}, "getmetatable": {"body": "getmetatable(${1:object})", "description": "getmetatable (object)", "prefix": "getmetatable"}, "if": {"body": "if ${1:condition} then\n\t${0:-- body}\nend", "description": "if", "prefix": "if"}, "ifel": {"body": "if ${1:condition} then\n\t${2:-- body}\nelse\n\t${0:-- body}\nend", "description": "ifel", "prefix": "ifel"}, "io.close": {"body": "io.close(${0:...})", "description": "io.close ([file])", "prefix": "io.close"}, "io.flush": {"body": "io.flush(${0:...})", "description": "io.flush ()", "prefix": "io.flush"}, "io.input": {"body": "io.input(${0:...})", "description": "io.input ([file])", "prefix": "io.input"}, "io.lines": {"body": "io.lines(${0:...})", "description": "io.lines ([filename])", "prefix": "io.lines"}, "io.open": {"body": "io.open(${0:...})", "description": "io.open (filename [, mode])", "prefix": "io.open"}, "io.output": {"body": "io.output(${0:...})", "description": "io.output ([file])", "prefix": "io.output"}, "io.popen": {"body": "io.popen(${0:...})", "description": "io.popen (prog [, mode])", "prefix": "io.popen"}, "io.read": {"body": "io.read(${0:...})", "description": "io.read (...)", "prefix": "io.read"}, "io.tmpfile": {"body": "io.tmpfile(${0:...})", "description": "io.tmpfile ()", "prefix": "io.tmpfile"}, "io.type": {"body": "io.type(${0:...})", "description": "io.type (obj)", "prefix": "io.type"}, "io.write": {"body": "io.write(${0:...})", "description": "io.write (...)", "prefix": "io.write"}, "ipairs": {"body": "ipairs(${0:...})", "description": "ipairs (t)", "prefix": "ipairs"}, "load": {"body": "load(${0:...})", "description": "load (func [, chunkname])", "prefix": "load"}, "loadfile": {"body": "loadfile(${0:...})", "description": "loadfile ([filename])", "prefix": "loadfile"}, "loadstring": {"body": "loadstring(${0:...})", "description": "loadstring (string [, chunkname])", "prefix": "loadstring"}, "local": {"body": "local ${1:x} = ${0:1}", "description": "local x = 1", "prefix": "local"}, "math.abs": {"body": "math.abs( ${1:x} )", "description": "math.abs", "prefix": "math.abs"}, "math.acos": {"body": "math.acos( ${1:x} )", "description": "math.acos", "prefix": "math.acos"}, "math.asin": {"body": "math.asin( ${1:x} )", "description": "math.asin", "prefix": "math.asin"}, "math.atan": {"body": "math.atan( ${1:y}${2:[, x]} )", "description": "math.atan", "prefix": "math.atan"}, "math.atan2": {"body": "math.atan2(${0:...})", "description": "math.atan2 (y, x)", "prefix": "math.atan2"}, "math.ceil": {"body": "math.ceil( ${1:x} )", "description": "math.ceil", "prefix": "math.ceil"}, "math.cos": {"body": "math.cos( ${1:x} )", "description": "math.cos", "prefix": "math.cos"}, "math.cosh": {"body": "math.cosh(${0:...})", "description": "math.cosh (x)", "prefix": "math.cosh"}, "math.deg": {"body": "math.deg( ${1:x} )", "description": "math.deg", "prefix": "math.deg"}, "math.exp": {"body": "math.exp( ${1:x} )", "description": "math.exp", "prefix": "math.exp"}, "math.floor": {"body": "math.floor( ${1:x} )", "description": "math.floor", "prefix": "math.floor"}, "math.fmod": {"body": "math.fmod( ${1:x},${2:y} )", "description": "math.fmod", "prefix": "math.fmod"}, "math.frexp": {"body": "math.frexp(${0:...})", "description": "math.frexp (x)", "prefix": "math.frexp"}, "math.huge": {"body": "math.huge(${0:...})", "description": "math.huge", "prefix": "math.huge"}, "math.ldexp": {"body": "math.ldexp(${0:...})", "description": "math.ldexp (m, e)", "prefix": "math.ldexp"}, "math.log": {"body": "math.log( ${1:x}${2:[, base]} )", "description": "math.log", "prefix": "math.log"}, "math.log10": {"body": "math.log10(${0:...})", "description": "math.log10 (x)", "prefix": "math.log10"}, "math.math.randomseed": {"body": "math.math.randomseed( ${1:x} )", "description": "math.math.randomseed", "prefix": "math.math.randomseed"}, "math.max": {"body": "math.max( ${1:x},${2:...} )", "description": "math.max", "prefix": "math.max"}, "math.maxinteger": {"body": "math.maxinteger(${0:...})", "description": "math.maxinteger", "prefix": "math.maxinteger"}, "math.min": {"body": "math.min( ${1:x},${2:...} )", "description": "math.min", "prefix": "math.min"}, "math.mininteger": {"body": "math.mininteger(${0:...})", "description": "math.mininteger", "prefix": "math.mininteger"}, "math.modf": {"body": "math.modf( ${1:x} )", "description": "math.modf", "prefix": "math.modf"}, "math.pi": {"body": "math.pi(${0:...})", "description": "math.pi", "prefix": "math.pi"}, "math.pow": {"body": "math.pow(${0:...})", "description": "math.pow (x, y)", "prefix": "math.pow"}, "math.rad": {"body": "math.rad(${0:...})", "description": "math.rad (x)", "prefix": "math.rad"}, "math.random": {"body": "math.random( ${1:[m]}${2:[, n]} )", "description": "math.random", "prefix": "math.random"}, "math.randomseed": {"body": "math.randomseed(${0:...})", "description": "math.randomseed (x)", "prefix": "math.randomseed"}, "math.sin": {"body": "math.sin( ${1:x} )", "description": "math.sin", "prefix": "math.sin"}, "math.sinh": {"body": "math.sinh(${0:...})", "description": "math.sinh (x)", "prefix": "math.sinh"}, "math.sqrt": {"body": "math.sqrt( ${1:x} )", "description": "math.sqrt", "prefix": "math.sqrt"}, "math.tan": {"body": "math.tan( ${1:x} )", "description": "math.tan", "prefix": "math.tan"}, "math.tanh": {"body": "math.tanh(${0:...})", "description": "math.tanh (x)", "prefix": "math.tanh"}, "math.tointeger": {"body": "math.tointeger( ${1:x} )", "description": "math.tointeger", "prefix": "math.tointeger"}, "math.type": {"body": "math.type( ${1:x} )", "description": "math.type", "prefix": "math.type"}, "math.ult": {"body": "math.ult(${0:...})", "description": "math.ult (m, n)", "prefix": "math.ult"}, "module": {"body": "module(${0:...})", "description": "module (name [, ...])", "prefix": "module"}, "next": {"body": "next(${1:table}${2:[, index]})", "description": "next (table [, index])", "prefix": "next"}, "os.clock": {"body": "os.clock()", "description": "os.clock() - \u8fd4\u56de\u7a0b\u5e8f\u4f7f\u7528\u7684\u6309\u79d2\u8ba1 CPU \u65f6\u95f4\u7684\u8fd1\u4f3c\u503c\n\u4f20\u5165\u503c\uff1a\nreturn \u65f6\u95f4\u6233\n\u4f8b\u5b50\uff1a\n-- \u4e0d\u63a8\u8350\u4f7f\u7528\u672cAPI\n-- \u5982\u9700\u8981\u83b7\u53d6 \u65f6\u95f4\u6233, \u8bf7\u4f7f\u7528 os.time()\n-- \u5982\u9700\u83b7\u53d6\u7cfb\u7edf\u8fd0\u884c\u65f6\u957f, \u8bf7\u4f7f\u7528 mcu.ticks()\n", "prefix": "os.clock"}, "os.date": {"body": "os.date(${1:fmt},${2:time})", "description": "os.date(fmt, time) - \u65e5\u671f\u51fd\u6570\n\u4f20\u5165\u503c\uff1a\nstring \u683c\u5f0f\u5316\u5b57\u7b26\u4e32,\u53ef\u4ee5\u662fnil\ntable \u65e5\u671f\u65f6\u95f4\u7684table\n\u8fd4\u56de\u503c\uff1a\ntable/string \u6839\u636efmt\u7684\u4e0d\u540c,\u8fd4\u56de\u503c\u4e0d\u540c\n\u4f8b\u5b50\uff1a\n\n-- \u503c\u5f97\u6ce8\u610f\u7684\u51e0\u70b9:\n-- 1. \u82e5\u9700\u8981UTC\u65f6\u95f4, fmt\u7684\u7b2c\u4e00\u4e2a\u5b57\u7b26\u5199\"!\"\n-- 2. fmt\u7684\u683c\u5f0f\u5316\u9075\u5faa C \u51fd\u6570 strftime, \u53ef\u4ee5\u67e5\u9605 https://developer.aliyun.com/article/320480\n\n-- \u83b7\u53d6\u672c\u5730\u65f6\u95f4\u5b57\u7b26\u4e32\nlog.info(\"\u672c\u5730\u65f6\u95f4\u5b57\u7b26\u4e32\", os.date())\n-- \u83b7\u53d6UTC\u65f6\u95f4\u5b57\u7b26\u4e32\nlog.info(\"UTC\u65f6\u95f4\u5b57\u7b26\u4e32\", os.date(\"!%c\"))\n-- \u683c\u5f0f\u5316\u672c\u5730\u65f6\u95f4\u5b57\u7b26\u4e32\nlog.info(\"\u672c\u5730\u65f6\u95f4\u5b57\u7b26\u4e32\", os.date(\"%Y-%m-%d %H:%M:%S\"))\n-- \u683c\u5f0f\u5316UTC\u65f6\u95f4\u5b57\u7b26\u4e32\nlog.info(\"UTC\u65f6\u95f4\u5b57\u7b26\u4e32\", os.date(\"!%Y-%m-%d %H:%M:%S\"))\n-- \u683c\u5f0f\u5316\u65f6\u95f4\u5b57\u7b26\u4e32\nlog.info(\"\u81ea\u5b9a\u4e49\u65f6\u95f4\u7684\u5b57\u7b26\u4e32\", os.date(\"!%Y-%m-%d %H:%M:%S\", os.time({year=2000, mon=1, day=1, hour=0, min=0, sec=0})))\n\n-- \u83b7\u53d6\u672c\u5730\u65f6\u95f4\u7684table\nlog.info(\"\u672c\u5730\u65f6\u95f4\u5b57\u7b26\u4e32\", json.encode(os.date(\"*t\")))\n-- \u83b7\u53d6UTC\u65f6\u95f4\u7684table\nlog.info(\"UTC\u65f6\u95f4\u5b57\u7b26\u4e32\", json.encode(os.date(\"!*t\")))\n", "prefix": "os.date"}, "os.difftime": {"body": "os.difftime(${1:timeA},${2:timeB})", "description": "os.difftime(timeA, timeB) - \u65f6\u95f4\u5dee\u503c\n\u4f20\u5165\u503c\uff1a\nint \u65f6\u95f4A,\u6570\u503c\u7c7b\u578b\nint \u65f6\u95f4B,\u6570\u503c\u7c7b\u578b\n\u8fd4\u56de\u503c\uff1a\nint \u65f6\u95f4\u5dee\u503c\n", "prefix": "os.difftime"}, "os.execute": {"body": "os.execute(${0:...})", "description": "os.execute ([command])", "prefix": "os.execute"}, "os.exit": {"body": "os.exit(${0:...})", "description": "os.exit ([code])", "prefix": "os.exit"}, "os.getenv": {"body": "os.getenv(${0:...})", "description": "os.getenv (varname)", "prefix": "os.getenv"}, "os.remove": {"body": "os.remove(${1:path})", "description": "os.remove(path) - \u79fb\u9664\u6587\u4ef6\n\u4f20\u5165\u503c\uff1a\nstring \u5f85\u79fb\u9664\u7684\u6587\u4ef6\u5b8c\u6574\u8def\u5f84\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5176\u4ed6\u60c5\u51b5\u8fd4\u56denil\nstring \u5931\u8d25\u65f6\u8fd4\u56de\u539f\u56e0\u5b57\u7b26\u4e32\n\u4f8b\u5b50\uff1a\n-- \u5220\u9664\u6839\u76ee\u5f55\u4e0b\u7684\u67d0\u4e2a\u6587\u4ef6\nos.remove(\"/1.txt\")\n-- \u6ce8\u610f, \u7ebf\u5237\u65f6\u7684\u6587\u4ef6, \u4e00\u822c\u5728 /luadb \u76ee\u5f55, \u8fd9\u4e2a\u76ee\u5f55\u4e0b\u7684\u6587\u4ef6\u662f\u53ea\u8bfb\u7684\n-- \u4e5f\u5c31\u662f\u65e0\u6cd5\u6267\u884c os.remove(\"/luadb/xxx.bin\")\n", "prefix": "os.remove"}, "os.rename": {"body": "os.rename(${1:old_path},${2:new_path})", "description": "os.rename(old_path, new_path) - \u6587\u4ef6\u91cd\u547d\u540d\n\u4f20\u5165\u503c\uff1a\nstring \u6e90\u6587\u4ef6\u5b8c\u6574\u8def\u5f84\nstring \u76ee\u6807\u6587\u4ef6\u5b8c\u6574\u8def\u5f84\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5176\u4ed6\u60c5\u51b5\u8fd4\u56denil\nstring \u5931\u8d25\u65f6\u8fd4\u56de\u539f\u56e0\u5b57\u7b26\u4e32\n\u4f8b\u5b50\uff1a\n-- \u6ce8\u610f, \u53ea\u6709\u5728\u76f8\u540c\u6587\u4ef6\u7cfb\u7edf\u4e0b\u7684\u6587\u4ef6\u53ef\u4ee5\u91cd\u547d\u540d\n-- \u4f8b\u5982:\nos.rename(\"/1.txt\", \"/2.txt\")\n-- \u4e0d\u540c\u6587\u4ef6\u7cfb\u7edf, \u6216\u8005\u6e90\u6587\u4ef6\u7cfb\u7edf\u662f\u53ea\u8bfb\u7684, \u5219\u65e0\u6cd5\u6267\u884c\n--os.rename(\"/luadb/1.txt\", \"/luadb/2.txt\")\n--os.rename(\"/luadb/1.txt\", \"/2.txt\")\n", "prefix": "os.rename"}, "os.setlocale": {"body": "os.setlocale(${0:...})", "description": "os.setlocale (locale [, category])", "prefix": "os.setlocale"}, "os.time": {"body": "os.time(${1:mytime})", "description": "os.time(mytime) - \u65f6\u95f4\u6233\u51fd\u6570\n\u4f20\u5165\u503c\uff1a\ntable \u65e5\u671f\u65f6\u95f4\u7684table\nreturn \u65f6\u95f4\u6233\n\u4f8b\u5b50\uff1a\n-- \u6ce8\u610f\u6ce8\u610f, \u8fd9\u4e2a\u51fd\u6570\u8fd4\u56de\u7684\u662fUTC\u65f6\u95f4\u6233\n-- \u65f6\u95f4\u6233, \u4f46lua\u4e0b\u7684\u7cbe\u5ea6\u53ea\u80fd\u5230\u79d2\nlog.info(\"UTC\u65f6\u95f4\u6233\", os.time())\nlog.info(\"\u81ea\u5b9a\u4e49\u65f6\u95f4\u6233\", os.time({year=2000, mon=1, day=1, hour=0, min=0, sec=0}))\n", "prefix": "os.time"}, "os.tmpname": {"body": "os.tmpname(${0:...})", "description": "os.tmpname ()", "prefix": "os.tmpname"}, "package.config": {"body": "package.config(${0:...})", "description": "package.config", "prefix": "package.config"}, "package.cpath": {"body": "package.cpath(${0:...})", "description": "package.cpath", "prefix": "package.cpath"}, "package.loaded": {"body": "package.loaded(${0:...})", "description": "package.loaded", "prefix": "package.loaded"}, "package.loaders": {"body": "package.loaders(${0:...})", "description": "package.loaders", "prefix": "package.loaders"}, "package.loadlib": {"body": "package.loadlib(${0:...})", "description": "package.loadlib (libname, funcname)", "prefix": "package.loadlib"}, "package.path": {"body": "package.path(${0:...})", "description": "package.path", "prefix": "package.path"}, "package.preload": {"body": "package.preload(${0:...})", "description": "package.preload", "prefix": "package.preload"}, "package.searchers": {"body": "package.searchers(${0:...})", "description": "package.searchers", "prefix": "package.searchers"}, "package.searchpath": {"body": "package.searchpath(${0:...})", "description": "package.searchpath (name, path [, sep [, rep]])", "prefix": "package.searchpath"}, "package.seeall": {"body": "package.seeall(${0:...})", "description": "package.seeall (module)", "prefix": "package.seeall"}, "pairs": {"body": "pairs(${0:...})", "description": "pairs (t)", "prefix": "pairs"}, "pcall": {"body": "pcall(${0:...})", "description": "pcall (f, arg1, ...)", "prefix": "pcall"}, "print": {"body": "print(${1:...})", "description": "print(...)", "prefix": "print"}, "require": {"body": "require\"${1:module}\"", "description": "require()", "prefix": "require"}, "ret": {"body": "return ${1:...}", "description": "return ...", "prefix": "ret"}, "select": {"body": "select(${1:index}, ${2:...})", "description": "select (index, \u00b7\u00b7\u00b7)", "prefix": "select"}, "setfenv": {"body": "setfenv(${0:...})", "description": "setfenv (f, table)", "prefix": "setfenv"}, "setmetatable": {"body": "setmetatable(${1:table}, ${2:metatable})", "description": "setmetatable (table, metatable)", "prefix": "setmetatable"}, "tonumber": {"body": "tonumber(${1:e}${2:[, base]})", "description": "tonumber (e [, base])", "prefix": "tonumber"}, "tostring": {"body": "tostring(${1:v})", "description": "tostring (v)", "prefix": "tostring"}, "type": {"body": "type(${1:v})", "description": "type (v)", "prefix": "type"}, "unpack": {"body": "unpack(${0:...})", "description": "unpack (list [, i [, j]])", "prefix": "unpack"}, "xpcall": {"body": "xpcall(${0:...})", "description": "xpcall (f, err)", "prefix": "xpcall"}, "sys.publish(...)": {"body": "sys.publish(${1:...})", "description": "\u53d1\u5e03\u5185\u90e8\u6d88\u606f\uff0c\u5b58\u50a8\u5728\u5185\u90e8\u6d88\u606f\u961f\u5217\u4e2d\r\n\u8fd4\u56de\u503c\uff1a\r\n\u65e0\r\n\u4f8b\u5b50\uff1a\r\npublish(\"NET_STATUS_IND\")\r\n", "prefix": "sys.publish(...)"}, "sys.restart(r)": {"body": "sys.restart(${1:r})", "description": "\u8f6f\u4ef6\u91cd\u542f\r\n\u8fd4\u56de\u503c\uff1a\r\n\u65e0\r\n\u4f8b\u5b50\uff1a\r\nsys.restart('\u7a0b\u5e8f\u8d85\u65f6\u8f6f\u4ef6\u91cd\u542f')\r\n", "prefix": "sys.restart(r)"}, "sys.run()": {"body": "sys.run()", "description": "run()\u4ece\u5e95\u5c42\u83b7\u53d6core\u6d88\u606f\u5e76\u53ca\u65f6\u5904\u7406\u76f8\u5173\u6d88\u606f\uff0c\u67e5\u8be2\u5b9a\u65f6\u5668\u5e76\u8c03\u5ea6\u5404\u6ce8\u518c\u6210\u529f\u7684\u4efb\u52a1\u7ebf\u7a0b\u8fd0\u884c\u548c\u6302\u8d77\r\n\u8fd4\u56de\u503c\uff1a\r\n\u65e0\r\n\u4f8b\u5b50\uff1a\r\nsys.run()\r\n", "prefix": "sys.run()"}, "sys.setRollBack(flag, secs)": {"body": "sys.setRollBack(${1:flag},${2: secs})", "description": "\u8bbe\u7f6e\u201clua\u811a\u672c\u8fd0\u884c\u51fa\u9519\u65f6\uff0c\u662f\u5426\u56de\u9000\u539f\u59cb\u70e7\u5199\u7248\u672c\u201d\u7684\u529f\u80fd\u5f00\u5173\u3002\u5982\u679c\u6ca1\u6709\u8c03\u7528\u6b64\u63a5\u53e3\u8bbe\u7f6e\uff0c\u9ed8\u8ba4\u56de\u6eda\r\n\u8fd4\u56de\u503c\uff1a\r\nnil\r\n\u4f8b\u5b50\uff1a\r\nsys.setRollBack(true)\r\nsys.setRollBack(false)\r\n", "prefix": "sys.setRollBack(flag, secs)"}, "sys.subscribe(id, callback)": {"body": "sys.subscribe(${1:id},${2: callback})", "description": "\u8ba2\u9605\u6d88\u606f\r\n\u8fd4\u56de\u503c\uff1a\r\n\u65e0\r\n\u4f8b\u5b50\uff1a\r\nsubscribe(\"NET_STATUS_IND\", callback)\r\n", "prefix": "sys.subscribe(id, callback)"}, "sys.taskInit(fun, ...)": {"body": "sys.taskInit(${1:fun},${2: ...})", "description": "\u521b\u5efa\u4e00\u4e2a\u4efb\u52a1\u7ebf\u7a0b,\u5728\u6a21\u5757\u6700\u672b\u884c\u8c03\u7528\u8be5\u51fd\u6570\u5e76\u6ce8\u518c\u6a21\u5757\u4e2d\u7684\u4efb\u52a1\u51fd\u6570\uff0cmain.lua\u5bfc\u5165\u8be5\u6a21\u5757\u5373\u53ef\r\n\u8fd4\u56de\u503c\uff1a\r\nco \u8fd4\u56de\u8be5\u4efb\u52a1\u7684\u7ebf\u7a0b\u53f7\r\n\u4f8b\u5b50\uff1a\r\nsys.taskInit(task1,'a','b')\r\n", "prefix": "sys.taskInit(fun, ...)"}, "sys.timerIsActive(val, ...)": {"body": "sys.timerIsActive(${1:val},${2: ...})", "description": "\u5224\u65ad\u67d0\u4e2a\u5b9a\u65f6\u5668\u662f\u5426\u5904\u4e8e\u5f00\u542f\u72b6\u6001\r\n\u8fd4\u56de\u503c\uff1a\r\nnumber \u5f00\u542f\u72b6\u6001\u8fd4\u56detrue\uff0c\u5426\u5219nil", "prefix": "sys.timerIsActive(val, ...)"}, "sys.timerLoopStart(fnc, ms, ...)": {"body": "sys.timerLoopStart(${1:fnc},${2: ms},${3: ...})", "description": "\u5f00\u542f\u4e00\u4e2a\u5faa\u73af\u5b9a\u65f6\u5668\r\n\u8fd4\u56de\u503c\uff1a\r\nnumber \u5b9a\u65f6\u5668ID\uff0c\u5982\u679c\u5931\u8d25\uff0c\u8fd4\u56denil", "prefix": "sys.timerLoopStart(fnc, ms, ...)"}, "sys.timerStart(fnc, ms, ...)": {"body": "sys.timerStart(${1:fnc},${2: ms},${3: ...})", "description": "\u5f00\u542f\u4e00\u4e2a\u5b9a\u65f6\u5668\r\n\u8fd4\u56de\u503c\uff1a\r\nnumber \u5b9a\u65f6\u5668ID\uff0c\u5982\u679c\u5931\u8d25\uff0c\u8fd4\u56denil", "prefix": "sys.timerStart(fnc, ms, ...)"}, "sys.timerStop(val, ...)": {"body": "sys.timerStop(${1:val},${2: ...})", "description": "\u5173\u95ed\u5b9a\u65f6\u5668\r\n\u8fd4\u56de\u503c\uff1a\r\n\u65e0\r\n\u4f8b\u5b50\uff1a\r\ntimerStop(1)\r\n", "prefix": "sys.timerStop(val, ...)"}, "sys.timerStopAll(fnc)": {"body": "sys.timerStopAll(${1:fnc})", "description": "\u5173\u95ed\u540c\u4e00\u56de\u8c03\u51fd\u6570\u7684\u6240\u6709\u5b9a\u65f6\u5668\r\n\u8fd4\u56de\u503c\uff1a\r\n\u65e0\r\n\u4f8b\u5b50\uff1a\r\ntimerStopAll(cbFnc)\r\n", "prefix": "sys.timerStopAll(fnc)"}, "sys.unsubscribe(id, callback)": {"body": "sys.unsubscribe(${1:id},${2: callback})", "description": "\u53d6\u6d88\u8ba2\u9605\u6d88\u606f\r\n\u8fd4\u56de\u503c\uff1a\r\n\u65e0\r\n\u4f8b\u5b50\uff1a\r\nunsubscribe(\"NET_STATUS_IND\", callback)\r\n", "prefix": "sys.unsubscribe(id, callback)"}, "sys.wait(ms)": {"body": "sys.wait(${1:ms})", "description": "Task\u4efb\u52a1\u5ef6\u65f6\u51fd\u6570\uff0c\u53ea\u80fd\u7528\u4e8e\u4efb\u52a1\u51fd\u6570\u4e2d\r\n\u8fd4\u56de\u503c\uff1a\r\n\u5b9a\u65f6\u7ed3\u675f\u8fd4\u56denil,\u88ab\u5176\u4ed6\u7ebf\u7a0b\u5524\u8d77\u8fd4\u56de\u8c03\u7528\u7ebf\u7a0b\u4f20\u5165\u7684\u53c2\u6570\r\n\u4f8b\u5b50\uff1a\r\nsys.wait(30)\r\n", "prefix": "sys.wait(ms)"}, "sys.waitUntil(id, ms)": {"body": "sys.waitUntil(${1:id},${2: ms})", "description": "Task\u4efb\u52a1\u7684\u6761\u4ef6\u7b49\u5f85\u51fd\u6570\uff08\u5305\u62ec\u4e8b\u4ef6\u6d88\u606f\u548c\u5b9a\u65f6\u5668\u6d88\u606f\u7b49\u6761\u4ef6\uff09\uff0c\u53ea\u80fd\u7528\u4e8e\u4efb\u52a1\u51fd\u6570\u4e2d\u3002\r\n\u8fd4\u56de\u503c\uff1a\r\nresult \u63a5\u6536\u5230\u6d88\u606f\u8fd4\u56detrue\uff0c\u8d85\u65f6\u8fd4\u56defalse\r\n\u4f8b\u5b50\uff1a\r\nresult, data = sys.waitUntil(\"SIM_IND\", 120000)\r\n", "prefix": "sys.waitUntil(id, ms)"}, "sys.waitUntilExt(id, ms)": {"body": "sys.waitUntilExt(${1:id},${2: ms})", "description": "Task\u4efb\u52a1\u7684\u6761\u4ef6\u7b49\u5f85\u51fd\u6570\u6269\u5c55\uff08\u5305\u62ec\u4e8b\u4ef6\u6d88\u606f\u548c\u5b9a\u65f6\u5668\u6d88\u606f\u7b49\u6761\u4ef6\uff09\uff0c\u53ea\u80fd\u7528\u4e8e\u4efb\u52a1\u51fd\u6570\u4e2d\u3002\r\n\u8fd4\u56de\u503c\uff1a\r\nmessage \u63a5\u6536\u5230\u6d88\u606f\u8fd4\u56demessage\uff0c\u8d85\u65f6\u8fd4\u56defalse\r\n\u4f8b\u5b50\uff1a\r\nresult, data = sys.waitUntilExt(\"SIM_IND\", 120000)\r\n", "prefix": "sys.waitUntilExt(id, ms)"}, "table.concat(t,s)": {"body": "table.concat(${1:t},${2: s})", "description": "\u8868\u8fde\u63a5\r\n\u8fd4\u56de\u503c\uff1a\r\n \u5b57\u7b26\u4e32\r\n\u4f8b\u5b50\uff1a\r\nfruits = {\"banana\",\"orange\",\"apple\"}\r\n-- \u8fd4\u56de table \u8fde\u63a5\u540e\u7684\u5b57\u7b26\u4e32\r\nprint(\"\u8fde\u63a5\u540e\u7684\u5b57\u7b26\u4e32 \",table.concat(fruits))\r\n--\u8fde\u63a5\u540e\u7684\u5b57\u7b26\u4e32 bananaorangeapple\r\n\r\n-- \u6307\u5b9a\u8fde\u63a5\u5b57\u7b26\r\nprint(\"\u8fde\u63a5\u540e\u7684\u5b57\u7b26\u4e32 \",table.concat(fruits,\", \"))\r\n--\u8fde\u63a5\u540e\u7684\u5b57\u7b26\u4e32 banana, orange, apple\r\n\r\n-- \u6307\u5b9a\u7d22\u5f15\u6765\u8fde\u63a5 table\r\nprint(\"\u8fde\u63a5\u540e\u7684\u5b57\u7b26\u4e32 \",table.concat(fruits,\", \", 2,3))\r\n--\u8fde\u63a5\u540e\u7684\u5b57\u7b26\u4e32 orange, apple\r\n", "prefix": "table.concat()"}, "table.gsort(t, f)": {"body": "table.gsort(${1:t},${2: f})", "description": "\u8fd4\u56de\u4e00\u4e2a\u8fed\u4ee3\u5668\u51fd\u6570,\u6bcf\u6b21\u8c03\u7528\u51fd\u6570\u90fd\u4f1a\u8fd4\u56dehash\u8868\u7684\u6392\u5e8f\u540e\u7684\u952e\u503c\u5bf9\r\n\u8fd4\u56de\u503c\uff1a\r\nfunction.\r\n\u4f8b\u5b50\uff1a\r\ntest = {a=1,f=9,d=2,c=8,b=5}\r\nfor name,line in pairsByKeys(test) do print(name,line) end\r\n", "prefix": "table.gsort(t, f)"}, "table.insert(t,d)": {"body": "table.insert(${1:t},${2: d})", "description": "\u6dfb\u52a0table\u53c2\u6570\r\n\u8fd4\u56de\u503c\uff1a\r\n table\r\n\u4f8b\u5b50\uff1a\r\nfruits = {\"banana\",\"orange\",\"apple\"}\r\n\r\n-- \u5728\u672b\u5c3e\u63d2\u5165\r\ntable.insert(fruits,\"mango\")\r\nprint(\"\u7d22\u5f15\u4e3a 4 \u7684\u5143\u7d20\u4e3a \",fruits[4])\r\n--\u7d22\u5f15\u4e3a 4 \u7684\u5143\u7d20\u4e3a mango\r\n\r\n-- \u5728\u7d22\u5f15\u4e3a 2 \u7684\u952e\u5904\u63d2\u5165\r\ntable.insert(fruits,2,\"grapes\")\r\nprint(\"\u7d22\u5f15\u4e3a 2 \u7684\u5143\u7d20\u4e3a \",fruits[2])\r\n--\u7d22\u5f15\u4e3a 2 \u7684\u5143\u7d20\u4e3a grapes\r\n\r\nprint(\"\u6700\u540e\u4e00\u4e2a\u5143\u7d20\u4e3a \",fruits[5])\r\n--\u6700\u540e\u4e00\u4e2a\u5143\u7d20\u4e3a mango\r\n", "prefix": "table.insert()"}, "table.remove(t,i)": {"body": "table.remove(${1:t},${2: i})", "description": "\u79fb\u9664table\u53c2\u6570\r\n\u8fd4\u56de\u503c\uff1a\r\n table", "prefix": "table.remove()"}, "string.byte()": {"body": "string.byte()", "description": "\u63a5\u6536\u63a7\u5236\u5b57\u7b26\uff0c\u8fd4\u56deASCII\u7801\r\n\u8fd4\u56de\u503c\uff1a\r\n ASCII\u7801\r\n\u4f8b\u5b50\uff1a\r\nstring.byte(\"ABCD\") --65\r\nstring.byte(\"ABCD\",4) --68\r\n", "prefix": "string.byte()"}, "string.char()": {"body": "string.char()", "description": "\u63a5\u6536ASCII\u7801\uff0c\u8fd4\u56de\u5bf9\u5e94\u7684\u63a7\u5236\u5b57\u7b26\r\n\u8fd4\u56de\u503c\uff1a\r\n \u5b57\u7b26\r\n\u4f8b\u5b50\uff1a\r\nstring.char(97,98,99,100) --abcd\r\n", "prefix": "string.char()"}, "string.find()": {"body": "string.find()", "description": "\u67e5\u627e\u7b2c\u4e00\u4e2a\u5b57\u7b26\u4e32\u00a0s\u00a0\u4e2d\u5339\u914d\u5230\u7684\u00a0pattern\r\n\u8fd4\u56de\u503c\uff1a\r\n \u8fd4\u56de\u5339\u914d\u5b57\u7b26\u5177\u4f53\u4f4d\u7f6e\u3002\u4e0d\u5b58\u5728\u5219\u8fd4\u56de nil\r\n\u4f8b\u5b50\uff1a\r\nstring.find(\"Hello Lua user\", \"Lua\", 1) --7 9\r\n", "prefix": "string.find()"}, "string.format()": {"body": "string.format()", "description": "\u683c\u5f0f\u5316\u5b57\u7b26\u4e32\r\n\u8fd4\u56de\u503c\uff1a\r\n \u5b57\u7b26\u4e32\r\n\u4f8b\u5b50\uff1a\r\nstring.format(\"the value is:%d\",4) --the value is:4\r\n", "prefix": "string.format()"}, "string.gsub()": {"body": "string.gsub()", "description": "\u5b57\u7b26\u4e32\u66ff\u6362", "prefix": "string.gsub()"}, "string.len()": {"body": "string.len()", "description": "\u8ba1\u7b97\u5b57\u7b26\u4e32\u957f\u5ea6\r\n\u8fd4\u56de\u503c\uff1a\r\n \u5b57\u7b26\u4e32\u957f\u5ea6\r\n\u4f8b\u5b50\uff1a\r\nstring.len(\"abc\") --3\r\n", "prefix": "string.len()"}, "string.lower()": {"body": "string.lower()", "description": "\u5b57\u7b26\u4e32\u5168\u90e8\u8f6c\u4e3a\u5c0f\u5199\u5b57\u6bcd\r\n\u8fd4\u56de\u503c\uff1a\r\n \u5c0f\u5199\u5b57\u6bcd\u5b57\u7b26\u4e32", "prefix": "string.lower()"}, "string.rep()": {"body": "string.rep()", "description": "\u5b57\u7b26\u4e32\u62f7\u8d1d\r\n\u8fd4\u56de\u503c\uff1a\r\n \u5b57\u7b26\u4e32\r\n\u4f8b\u5b50\uff1a\r\nstring.rep(\"abcd\",2) --abcdabcd\r\n", "prefix": "string.rep()"}, "string.reverse()": {"body": "string.reverse()", "description": "\u5b57\u7b26\u4e32\u53cd\u8f6c\r\n\u8fd4\u56de\u503c\uff1a\r\n \u53cd\u8f6c\u540e\u7684\u5b57\u7b26\u4e32\r\n\u4f8b\u5b50\uff1a\r\nstring.reverse(\"Luat\") --tauL\r\n", "prefix": "string.reverse()"}, "string.split(str, delimiter)": {"body": "string.split(${1:str},${2: delimiter})", "description": "\u6309\u7167\u6307\u5b9a\u5206\u9694\u7b26\u5206\u5272\u5b57\u7b26\u4e32\r\n\u8fd4\u56de\u503c\uff1a\r\n\u5206\u5272\u540e\u7684\u5b57\u7b26\u4e32\u5217\u8868\r\n\u4f8b\u5b50\uff1a\r\n\"123,456,789\":split(',') -> {'123','456','789'}\r\n", "prefix": "string.split(str, delimiter)"}, "string.upper()": {"body": "string.upper()", "description": "\u5b57\u7b26\u4e32\u5168\u90e8\u8f6c\u4e3a\u5927\u5199\u5b57\u6bcd\r\n\u8fd4\u56de\u503c\uff1a\r\n \u5927\u5199\u5b57\u6bcd\u5b57\u7b26\u4e32", "prefix": "string.upper()"}, "adc.open": {"body": "adc.open(${1:id})", "description": "adc.open(id) - \u6253\u5f00adc\u901a\u9053\n\u4f20\u5165\u503c\uff1a\nint \u901a\u9053id,\u4e0e\u5177\u4f53\u8bbe\u5907\u6709\u5173,\u901a\u5e38\u4ece0\u5f00\u59cb\n\u8fd4\u56de\u503c\uff1a\nboolean \u6253\u5f00\u7ed3\u679c\n\u4f8b\u5b50\uff1a\n-- \u6253\u5f00adc\u901a\u90534,\u5e76\u8bfb\u53d6\nif adc.open(4) then\n log.info(\"adc\", adc.read(4)) -- \u8fd4\u56de\u503c\u67092\u4e2a, \u539f\u59cb\u503c\u548c\u8ba1\u7b97\u503c,\u901a\u5e38\u53ea\u9700\u8981\u540e\u8005\n log.info(\"adc\", adc.get(4)) -- \u8fd4\u56de\u503c\u67091\u4e2a, \u4ec5\u8ba1\u7b97\u503c\nend\nadc.close(4) -- \u82e5\u9700\u8981\u6301\u7eed\u8bfb\u53d6, \u5219\u4e0d\u9700\u8981close, \u529f\u8017\u4f1a\u9ad8\u4e00\u70b9.\n", "prefix": "adc.open"}, "adc.setRange": {"body": "adc.setRange(${1:range})", "description": "adc.setRange(range) - \u8bbe\u7f6eADC\u7684\u6d4b\u91cf\u8303\u56f4\uff0c\u6ce8\u610f\u8fd9\u4e2a\u548c\u5177\u4f53\u82af\u7247\u6709\u5173\uff0c\u76ee\u524d\u53ea\u652f\u6301air105/Air780E\u7cfb\u5217\n\u4f20\u5165\u503c\uff1a\nint range\u53c2\u6570,\u4e0e\u5177\u4f53\u8bbe\u5907\u6709\u5173,\u6bd4\u5982air105\u586badc.ADC_RANGE_1_8\u548cadc.ADC_RANGE_3_6\nreturn nil\n\u4f8b\u5b50\uff1a\n-- \u5173\u95edair105\u5185\u90e8\u5206\u538b\nadc.setRange(adc.ADC_RANGE_1_8)\n-- \u6253\u5f00air105\u5185\u90e8\u5206\u538b\nadc.setRange(adc.ADC_RANGE_3_6)\n\n\n-- EC618\u7cfb\u5217(Air780E\u7b49)\u652f\u63012\u79cd\nadc.setRange(adc.ADC_RANGE_1_2) -- \u5173\u95ed\u5206\u538b\nadc.setRange(adc.ADC_RANGE_3_8) -- \u542f\u7528\u5206\u538b\n", "prefix": "adc.setRange"}, "adc.read": {"body": "adc.read(${1:id})", "description": "adc.read(id) - \u8bfb\u53d6adc\u901a\u9053\n\u4f20\u5165\u503c\uff1a\nint \u901a\u9053id,\u4e0e\u5177\u4f53\u8bbe\u5907\u6709\u5173,\u901a\u5e38\u4ece0\u5f00\u59cb\n\u8fd4\u56de\u503c\uff1a\nint \u539f\u59cb\u503c,\u4e00\u822c\u6ca1\u7528,\u53ef\u4ee5\u76f4\u63a5\u629b\u5f03\nint \u4ece\u539f\u59cb\u503c\u6362\u7b97\u5f97\u51fa\u7684\u5b9e\u9645\u503c\uff0c\u901a\u5e38\u5355\u4f4d\u662fmV\n\u4f8b\u5b50\uff1a\n-- \u6253\u5f00adc\u901a\u90532,\u5e76\u8bfb\u53d6\nif adc.open(2) then\n -- \u8fd9\u91cc\u4f7f\u7528\u7684\u662fadc.read\u4f1a\u8fd4\u56de2\u4e2a\u503c, \u63a8\u8350\u8d70adc.get\u51fd\u6570,\u76f4\u63a5\u53d6\u5b9e\u9645\u503c\n log.info(\"adc\", adc.read(2))\nend\nadc.close(2)\n", "prefix": "adc.read"}, "adc.get": {"body": "adc.get(${1:id})", "description": "adc.get(id) - \u83b7\u53d6adc\u8ba1\u7b97\u503c\n\u4f20\u5165\u503c\uff1a\nint \u901a\u9053id,\u4e0e\u5177\u4f53\u8bbe\u5907\u6709\u5173,\u901a\u5e38\u4ece0\u5f00\u59cb\n\u8fd4\u56de\u503c\uff1a\nint \u5355\u4f4d\u901a\u5e38\u662fmV, \u90e8\u5206\u901a\u9053\u4f1a\u8fd4\u56de\u6e29\u5ea6\u503c,\u5355\u4f4d\u5343\u5206\u4e4b\u4e00\u6444\u6c0f\u5ea6. \u82e5\u8bfb\u53d6\u5931\u8d25,\u4f1a\u8fd4\u56de-1\n\u4f8b\u5b50\uff1a\n-- \u672cAPI \u5728 2022.10.01\u540e\u7f16\u8bd1\u7684\u56fa\u4ef6\u53ef\u7528\n-- \u6253\u5f00adc\u901a\u90532,\u5e76\u8bfb\u53d6\nif adc.open(2) then\n log.info(\"adc\", adc.get(2))\nend\nadc.close(2) -- \u6309\u9700\u5173\u95ed\n", "prefix": "adc.get"}, "adc.close": {"body": "adc.close(${1:id})", "description": "adc.close(id) - \u5173\u95edadc\u901a\u9053\n\u4f20\u5165\u503c\uff1a\nint \u901a\u9053id,\u4e0e\u5177\u4f53\u8bbe\u5907\u6709\u5173,\u901a\u5e38\u4ece0\u5f00\u59cb\n\u4f8b\u5b50\uff1a\n-- \u6253\u5f00adc\u901a\u90532,\u5e76\u8bfb\u53d6\nif adc.open(2) then\n log.info(\"adc\", adc.read(2))\nend\nadc.close(2)\n", "prefix": "adc.close"}, "audio.start": {"body": "audio.start(${1:id},${2:audio_format},${3:num_channels},${4:sample_rate},${5:bits_per_sample},${6:is_signed})", "description": "audio.start(id, audio_format, num_channels, sample_rate, bits_per_sample, is_signed) - \u542f\u52a8\u4e00\u4e2a\u591a\u5a92\u4f53\u901a\u9053\u51c6\u5907\u64ad\u653e\u97f3\u9891\n\u4f20\u5165\u503c\uff1a\nint \u591a\u5a92\u4f53\u64ad\u653e\u901a\u9053\u53f7\uff0c0\u6216\u80051\nint \u97f3\u9891\u683c\u5f0f\nint \u58f0\u97f3\u901a\u9053\u6570\nint \u91c7\u6837\u9891\u7387\nint \u91c7\u6837\u4f4d\u6570\nboolean \u662f\u5426\u6709\u7b26\u53f7\uff0c\u9ed8\u8ba4true\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529ftrue, \u5931\u8d25false\n\u4f8b\u5b50\uff1a\naudio.start(0, audio.PCM, 1, 16000, 16)\n", "prefix": "audio.start"}, "audio.write": {"body": "audio.write(${1:id},${2:data})", "description": "audio.write(id, data) - \u5f80\u4e00\u4e2a\u591a\u5a92\u4f53\u901a\u9053\u5199\u5165\u97f3\u9891\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nstring or zbuff \u97f3\u9891\u6570\u636e\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\naudio.write(0, \"xxxxxx\")\n", "prefix": "audio.write"}, "audio.stop": {"body": "audio.stop(${1:id})", "description": "audio.stop(id) - \u505c\u6b62\u6307\u5b9a\u7684\u591a\u5a92\u4f53\u901a\u9053\n\u4f20\u5165\u503c\uff1a\nint audio id,\u4f8b\u59820\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\naudio.stop(0)\n", "prefix": "audio.stop"}, "audio.pause": {"body": "audio.pause(${1:id},${2:pause})", "description": "audio.pause(id, pause) - \u6682\u505c/\u6062\u590d\u6307\u5b9a\u7684\u591a\u5a92\u4f53\u901a\u9053\n\u4f20\u5165\u503c\uff1a\nint audio id,\u4f8b\u59820\nboolean onoff true \u6682\u505c\uff0cfalse \u6062\u590d\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\naudio.pause(0, true) --\u6682\u505c\u901a\u90530\naudio.pause(0, false) --\u6062\u590d\u901a\u90530\n", "prefix": "audio.pause"}, "audio.on": {"body": "audio.on(${1:id},${2:event},${3:func})", "description": "audio.on(id, event, func) - \u6ce8\u518caudio\u64ad\u653e\u4e8b\u4ef6\u56de\u8c03\n\u4f20\u5165\u503c\uff1a\nint audio id, audio 0\u51990, audio 1\u51991\nfunction \u56de\u8c03\u65b9\u6cd5\uff0c\u56de\u8c03\u65f6\u4f20\u5165\u53c2\u6570\u4e3a1\u3001int \u901a\u9053ID 2\u3001int \u6d88\u606f\u503c\uff0c\u53ea\u6709audio.MORE_DATA\u548caudio.DONE\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\naudio.on(0, function(audio_id, msg)\n log.info(\"msg\", audio_id, msg)\nend)\n", "prefix": "audio.on"}, "audio.play": {"body": "audio.play(${1:id},${2:path},${3:errStop})", "description": "audio.play(id, path, errStop) - \u64ad\u653e\u6216\u8005\u505c\u6b62\u64ad\u653e\u4e00\u4e2a\u6587\u4ef6\uff0c\u64ad\u653e\u5b8c\u6210\u540e\uff0c\u4f1a\u56de\u8c03\u4e00\u4e2aaudio.DONE\u6d88\u606f\uff0c\u53ef\u4ee5\u7528pause\u6765\u6682\u505c\u6216\u8005\u6062\u590d\uff0c\u5176\u4ed6API\u4e0d\u53ef\u7528\u3002\u8003\u8651\u5230\u8bfbSD\u5361\u901f\u5ea6\u6bd4\u8f83\u6162\u800c\u62d6\u7d2fluavm\u8fdb\u7a0b\u7684\u901f\u5ea6\uff0c\u6240\u4ee5\u5c3d\u91cf\u4f7f\u7528\u672cAPI\n\u4f20\u5165\u503c\uff1a\nint \u97f3\u9891\u901a\u9053\nstring/table \u6587\u4ef6\u540d\uff0c\u5982\u679c\u4e3a\u7a7a\uff0c\u5219\u8868\u793a\u505c\u6b62\u64ad\u653e\uff0c\u5982\u679c\u662ftable\uff0c\u5219\u8868\u793a\u8fde\u7eed\u64ad\u653e\u591a\u4e2a\u6587\u4ef6\uff0c\u4e3b\u8981\u5e94\u7528\u4e8e\u4e91\u5587\u53ed\uff0c\u76ee\u524d\u53ea\u6709EC618\u652f\u6301\uff0c\u5e76\u4e14\u4f1a\u7528\u5230errStop\u53c2\u6570\nboolean \u662f\u5426\u5728\u6587\u4ef6\u89e3\u7801\u5931\u8d25\u540e\u505c\u6b62\u89e3\u7801\uff0c\u53ea\u6709\u5728\u8fde\u7eed\u64ad\u653e\u591a\u4e2a\u6587\u4ef6\u65f6\u624d\u6709\u7528\uff0c\u9ed8\u8ba4true\uff0c\u9047\u5230\u89e3\u7801\u9519\u8bef\u81ea\u52a8\u505c\u6b62\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\naudio.play(0, \"xxxxxx\")\t\t--\u5f00\u59cb\u64ad\u653e\u67d0\u4e2a\u6587\u4ef6\naudio.play(0)\t\t\t\t--\u505c\u6b62\u64ad\u653e\u67d0\u4e2a\u6587\u4ef6\n", "prefix": "audio.play"}, "audio.tts": {"body": "audio.tts(${1:id},${2:data})", "description": "audio.tts(id, data) - TTS\u64ad\u653e\u6216\u8005\u505c\u6b62\n\u4f20\u5165\u503c\uff1a\nint \u97f3\u9891\u901a\u9053\nstring/zbuff \u9700\u8981\u64ad\u653e\u7684\u5185\u5bb9\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n", "prefix": "audio.tts"}, "audio.playStop": {"body": "audio.playStop(${1:id})", "description": "audio.playStop(id) - \u505c\u6b62\u64ad\u653e\u6587\u4ef6\uff0c\u548caudio.play(id)\u662f\u4e00\u6837\u7684\u4f5c\u7528\n\u4f20\u5165\u503c\uff1a\nint audio id,\u4f8b\u59820\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\naudio.playStop(0)\n", "prefix": "audio.playStop"}, "audio.isEnd": {"body": "audio.isEnd(${1:id})", "description": "audio.isEnd(id) - \u68c0\u67e5\u5f53\u524d\u6587\u4ef6\u662f\u5426\u5df2\u7ecf\u64ad\u653e\u7ed3\u675f\n\u4f20\u5165\u503c\uff1a\nint \u97f3\u9891\u901a\u9053\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\naudio.isEnd(0)\n\n", "prefix": "audio.isEnd"}, "audio.getError": {"body": "audio.getError(${1:id})", "description": "audio.getError(id) - \u83b7\u53d6\u6700\u8fd1\u4e00\u6b21\u64ad\u653e\u7ed3\u679c\uff0c\u4e0d\u662f\u6240\u6709\u5e73\u53f0\u90fd\u652f\u6301\u7684\uff0c\u76ee\u524d\u53ea\u6709EC618\u652f\u6301\n\u4f20\u5165\u503c\uff1a\nint \u97f3\u9891\u901a\u9053\n\u8fd4\u56de\u503c\uff1a\nboolean \u662f\u5426\u5168\u90e8\u64ad\u653e\u6210\u529f\uff0ctrue\u6210\u529f\uff0cfalse\u6709\u6587\u4ef6\u64ad\u653e\u5931\u8d25\nboolean \u5982\u679c\u64ad\u653e\u5931\u8d25\uff0c\u662f\u5426\u662f\u7528\u6237\u505c\u6b62\uff0ctrue\u662f\uff0cfalse\u4e0d\u662f\nint \u7b2c\u51e0\u4e2a\u6587\u4ef6\u5931\u8d25\u4e86\uff0c\u4ece1\u5f00\u59cb\n\u4f8b\u5b50\uff1a\nlocal result, user_stop, file_no = audio.getError(0)\n", "prefix": "audio.getError"}, "audio.config": {"body": "audio.config(${1:id},${2:paPin},${3:onLevel},${4:dacDelay},${5:paDelay},${6:dacPin},${7:dacLevel},${8:dacTimeDelay})", "description": "audio.config(id, paPin, onLevel, dacDelay, paDelay, dacPin, dacLevel, dacTimeDelay) - \u914d\u7f6e\u4e00\u4e2a\u97f3\u9891\u901a\u9053\u7684\u7279\u6027\uff0c\u6bd4\u5982\u5b9e\u73b0\u81ea\u52a8\u63a7\u5236PA\u5f00\u5173\u3002\u6ce8\u610f\u8fd9\u4e2a\u4e0d\u662f\u5fc5\u987b\u7684\uff0c\u4e00\u822c\u5728\u8c03\u7528play\u7684\u65f6\u5019\u624d\u9700\u8981\u81ea\u52a8\u63a7\u5236\uff0c\u5176\u4ed6\u60c5\u51b5\u6bd4\u5982\u4f60\u624b\u52a8\u63a7\u5236\u64ad\u653e\u65f6\uff0c\u5c31\u53ef\u4ee5\u81ea\u5df1\u63a7\u5236PA\u5f00\u5173\n\u4f20\u5165\u503c\uff1a\nint \u97f3\u9891\u901a\u9053\nint PA\u63a7\u5236IO\nint PA\u6253\u5f00\u65f6\u7684\u7535\u5e73\nint \u5728DAC\u542f\u52a8\u524d\u63d2\u5165\u7684\u5197\u4f59\u65f6\u95f4\uff0c\u5355\u4f4d100ms\uff0c\u4e00\u822c\u7528\u4e8e\u5916\u90e8DAC\nint \u5728DAC\u542f\u52a8\u540e\uff0c\u5ef6\u8fdf\u591a\u957f\u65f6\u95f4\u6253\u5f00PA\uff0c\u5355\u4f4d1ms\nint \u5916\u90e8dac\u7535\u6e90\u63a7\u5236IO\uff0c\u5982\u679c\u4e0d\u586b\uff0c\u5219\u8868\u793a\u4f7f\u7528\u5e73\u53f0\u9ed8\u8ba4IO\uff0c\u6bd4\u5982Air780E\u4f7f\u7528DACEN\u811a\uff0cair105\u5219\u4e0d\u542f\u7528\nint \u5916\u90e8dac\u6253\u5f00\u65f6\uff0c\u7535\u6e90\u63a7\u5236IO\u7684\u7535\u5e73\uff0c\u9ed8\u8ba4\u62c9\u9ad8\nint \u97f3\u9891\u64ad\u653e\u5b8c\u6bd5\u65f6\uff0cPA\u4e0eDAC\u5173\u95ed\u7684\u65f6\u95f4\u95f4\u9694\uff0c\u5355\u4f4d1ms\uff0c\u9ed8\u8ba40ms\n\u4f8b\u5b50\uff1a\naudio.config(0, pin.PC0, 1)\t--PA\u63a7\u5236\u811a\u662fPC0\uff0c\u9ad8\u7535\u5e73\u6253\u5f00\uff0cair105\u7528\u8fd9\u4e2a\u914d\u7f6e\u5c31\u53ef\u4ee5\u7528\u4e86\naudio.config(0, 25, 1, 6, 200)\t--PA\u63a7\u5236\u811a\u662fGPIO25\uff0c\u9ad8\u7535\u5e73\u6253\u5f00\uff0cAir780E\u4e91\u5587\u53ed\u677f\u7528\u8fd9\u4e2a\u914d\u7f6e\u5c31\u53ef\u4ee5\u7528\u4e86\n", "prefix": "audio.config"}, "audio.vol": {"body": "audio.vol(${1:id},${2:value})", "description": "audio.vol(id, value) - \u914d\u7f6e\u4e00\u4e2a\u97f3\u9891\u901a\u9053\u7684\u97f3\u91cf\u8c03\u8282\uff0c\u76f4\u63a5\u5c06\u539f\u59cb\u6570\u636e\u653e\u5927\u6216\u8005\u7f29\u5c0f\uff0c\u4e0d\u662f\u6240\u6709\u5e73\u53f0\u90fd\u652f\u6301\uff0c\u5efa\u8bae\u5c3d\u91cf\u7528\u786c\u4ef6\u65b9\u6cd5\u53bb\u7f29\u653e\n\u4f20\u5165\u503c\uff1a\nint \u97f3\u9891\u901a\u9053\nint \u97f3\u91cf\uff0c\u767e\u5206\u6bd4\uff0c1%~1000%\uff0c\u9ed8\u8ba4100%\uff0c\u5c31\u662f\u4e0d\u8c03\u8282\n\u8fd4\u56de\u503c\uff1a\nint \u5f53\u524d\u97f3\u91cf\n\u4f8b\u5b50\uff1a\nlocal result = audio.vol(0, 90)\t--\u901a\u90530\u7684\u97f3\u91cf\u8c03\u8282\u523090%\uff0cresult\u5b58\u653e\u4e86\u8c03\u8282\u540e\u7684\u97f3\u91cf\u6c34\u5e73\uff0c\u6709\u53ef\u80fd\u4ecd\u7136\u662f100\n", "prefix": "audio.vol"}, "audio.setBus": {"body": "audio.setBus(${1:id},${2:bus_type})", "description": "audio.setBus(id, bus_type) - \u914d\u7f6e\u4e00\u4e2a\u97f3\u9891\u901a\u9053\u7684\u786c\u4ef6\u8f93\u51fa\u603b\u7ebf\uff0c\u53ea\u6709\u5bf9\u5e94soc\u8f6f\u786c\u4ef6\u5e73\u53f0\u652f\u6301\u624d\u8bbe\u7f6e\u5bf9\u5e94\u7c7b\u578b\n\u4f20\u5165\u503c\uff1a\nint \u97f3\u9891\u901a\u9053,\u4f8b\u59820\nint \u603b\u7ebf\u7c7b\u578b, \u4f8b\u5982 audio.BUS_SOFT_DAC\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\naudio.setBus(0, audio.BUS_SOFT_DAC)\t--\u901a\u90530\u7684\u786c\u4ef6\u8f93\u51fa\u901a\u9053\u8bbe\u7f6e\u4e3a\u8f6f\u4ef6DAC\naudio.setBus(0, audio.BUS_I2S)\t--\u901a\u90530\u7684\u786c\u4ef6\u8f93\u51fa\u901a\u9053\u8bbe\u7f6e\u4e3aI2S\n", "prefix": "audio.setBus"}, "audio.debug": {"body": "audio.debug(${1:on_off})", "description": "audio.debug(on_off) - \u914d\u7f6e\u8c03\u8bd5\u4fe1\u606f\u8f93\u51fa\n\u4f20\u5165\u503c\uff1a\nboolean true\u5f00 false\u5173\n", "prefix": "audio.debug"}, "bit64.to32": {"body": "bit64.to32(${1:data64bit})", "description": "bit64.to32(data64bit) - 64bit\u6570\u636e\u8f6c\u621032bit\u8f93\u51fa\n\u4f20\u5165\u503c\uff1a\nstring 9\u5b57\u8282\u6570\u636e\n\u8fd4\u56de\u503c\uff1a\nany \u6839\u636e64bit\u6570\u636e\u8f93\u51faint\u6216\u8005number\n", "prefix": "bit64.to32"}, "bit64.to64": {"body": "bit64.to64(${1:data32bit})", "description": "bit64.to64(data32bit) - 32bit\u6570\u636e\u8f6c\u621064bit\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nint/number 32bit\u6570\u636e\n\u8fd4\u56de\u503c\uff1a\nstring 9\u5b57\u8282\u6570\u636e\n", "prefix": "bit64.to64"}, "bit64.show": {"body": "bit64.show(${1:a},${2:type},${3:flag})", "description": "bit64.show(a,type,flag) - 64bit\u6570\u636e\u683c\u5f0f\u5316\u6253\u5370\u6210\u5b57\u7b26\u4e32\uff0c\u7528\u4e8e\u663e\u793a\u503c\n\u4f20\u5165\u503c\uff1a\nstring \u9700\u8981\u6253\u5370\u768464bit\u6570\u636e\nint \u8fdb\u5236\uff0c10=10\u8fdb\u5236\uff0c16=16\u8fdb\u5236\uff0c\u9ed8\u8ba410\uff0c\u53ea\u652f\u630110\u6216\u800516\nboolean \u6574\u5f62\u662f\u5426\u6309\u7167\u65e0\u7b26\u53f7\u65b9\u5f0f\u6253\u5370\uff0ctrue\u662f\uff0cfalse\u4e0d\u662f\uff0c\u9ed8\u8ba4false\uff0c\u6d6e\u70b9\u5ffd\u7565\n\u8fd4\u56de\u503c\uff1a\nstring \u53ef\u4ee5\u6253\u5370\u7684\u503c\n", "prefix": "bit64.show"}, "bit64.plus": {"body": "bit64.plus(${1:a},${2:b},${3:flag1},${4:flag2})", "description": "bit64.plus(a,b,flag1,flag2) - 64bit\u6570\u636e\u52a0,a+b,a\u548cb\u4e2d\u6709\u4e00\u4e2a\u4e3a\u6d6e\u70b9\uff0c\u5219\u6309\u7167\u6d6e\u70b9\u8fd0\u7b97\n\u4f20\u5165\u503c\uff1a\nstring a\nstring/int/number b\nboolean \u6574\u5f62\u8fd0\u7b97\u65f6\u662f\u5426\u6309\u7167\u65e0\u7b26\u53f7\u65b9\u5f0f\uff0ctrue\u662f\uff0cfalse\u4e0d\u662f\uff0c\u9ed8\u8ba4false\uff0c\u6d6e\u70b9\u8fd0\u7b97\u5ffd\u7565\nboolean \u6d6e\u70b9\u8fd0\u7b97\u7ed3\u679c\u662f\u5426\u8981\u5f3a\u5236\u8f6c\u6210\u6574\u6570\uff0ctrue\u662f\uff0cfalse\u4e0d\u662f\uff0c\u9ed8\u8ba4false\uff0c\u6574\u5f62\u8fd0\u7b97\u5ffd\u7565\n\u8fd4\u56de\u503c\uff1a\nstring 9\u5b57\u8282\u6570\u636e\n", "prefix": "bit64.plus"}, "bit64.minus": {"body": "bit64.minus(${1:a},${2:b},${3:flag1},${4:flag2})", "description": "bit64.minus(a,b,flag1,flag2) - 64bit\u6570\u636e\u51cf,a-b,a\u548cb\u4e2d\u6709\u4e00\u4e2a\u4e3a\u6d6e\u70b9\uff0c\u5219\u6309\u7167\u6d6e\u70b9\u8fd0\u7b97\n\u4f20\u5165\u503c\uff1a\nstring a\nstring/int/number b\nboolean \u6574\u5f62\u8fd0\u7b97\u65f6\u662f\u5426\u6309\u7167\u65e0\u7b26\u53f7\u65b9\u5f0f\uff0ctrue\u662f\uff0cfalse\u4e0d\u662f\uff0c\u9ed8\u8ba4false\uff0c\u6d6e\u70b9\u8fd0\u7b97\u5ffd\u7565\nboolean \u6d6e\u70b9\u8fd0\u7b97\u7ed3\u679c\u662f\u5426\u8981\u5f3a\u5236\u8f6c\u6210\u6574\u6570\uff0ctrue\u662f\uff0cfalse\u4e0d\u662f\uff0c\u9ed8\u8ba4false\uff0c\u6574\u5f62\u8fd0\u7b97\u5ffd\u7565\n\u8fd4\u56de\u503c\uff1a\nstring 9\u5b57\u8282\u6570\u636e\n", "prefix": "bit64.minus"}, "bit64.multi": {"body": "bit64.multi(${1:a},${2:b},${3:flag1},${4:flag2})", "description": "bit64.multi(a,b,flag1,flag2) - 64bit\u6570\u636e\u4e58,a*b,a\u548cb\u4e2d\u6709\u4e00\u4e2a\u4e3a\u6d6e\u70b9\uff0c\u5219\u6309\u7167\u6d6e\u70b9\u8fd0\u7b97\n\u4f20\u5165\u503c\uff1a\nstring a\nstring/int/number b\nboolean \u6574\u5f62\u8fd0\u7b97\u65f6\u662f\u5426\u6309\u7167\u65e0\u7b26\u53f7\u65b9\u5f0f\uff0ctrue\u662f\uff0cfalse\u4e0d\u662f\uff0c\u9ed8\u8ba4false\uff0c\u6d6e\u70b9\u8fd0\u7b97\u5ffd\u7565\nboolean \u6d6e\u70b9\u8fd0\u7b97\u7ed3\u679c\u662f\u5426\u8981\u5f3a\u5236\u8f6c\u6210\u6574\u6570\uff0ctrue\u662f\uff0cfalse\u4e0d\u662f\uff0c\u9ed8\u8ba4false\uff0c\u6574\u5f62\u8fd0\u7b97\u5ffd\u7565\n\u8fd4\u56de\u503c\uff1a\nstring 9\u5b57\u8282\u6570\u636e\n", "prefix": "bit64.multi"}, "bit64.pide": {"body": "bit64.pide(${1:a},${2:b},${3:flag1},${4:flag2})", "description": "bit64.pide(a,b,flag1,flag2) - 64bit\u6570\u636e\u9664,a/b,a\u548cb\u4e2d\u6709\u4e00\u4e2a\u4e3a\u6d6e\u70b9\uff0c\u5219\u6309\u7167\u6d6e\u70b9\u8fd0\u7b97\n\u4f20\u5165\u503c\uff1a\nstring a\nstring/int/number b\nboolean \u6574\u5f62\u8fd0\u7b97\u65f6\u662f\u5426\u6309\u7167\u65e0\u7b26\u53f7\u65b9\u5f0f\uff0ctrue\u662f\uff0cfalse\u4e0d\u662f\uff0c\u9ed8\u8ba4false\uff0c\u6d6e\u70b9\u8fd0\u7b97\u5ffd\u7565\nboolean \u6d6e\u70b9\u8fd0\u7b97\u7ed3\u679c\u662f\u5426\u8981\u5f3a\u5236\u8f6c\u6210\u6574\u6570\uff0ctrue\u662f\uff0cfalse\u4e0d\u662f\uff0c\u9ed8\u8ba4false\uff0c\u6574\u5f62\u8fd0\u7b97\u5ffd\u7565\n\u8fd4\u56de\u503c\uff1a\nstring 9\u5b57\u8282\u6570\u636e\n", "prefix": "bit64.pide"}, "bit64.shift": {"body": "bit64.shift(${1:a},${2:b},${3:flag})", "description": "bit64.shift(a,b,flag) - 64bit\u6570\u636e\u4f4d\u79fb a>>b \u6216\u8005 a<>\uff0c\u9ed8\u8ba4false\n\u8fd4\u56de\u503c\uff1a\nstring 9\u5b57\u8282\u6570\u636e\n", "prefix": "bit64.shift"}, "bit64.strtoll": {"body": "bit64.strtoll(${1:data},${2:base})", "description": "bit64.strtoll(data, base) - \u5c06\u5b57\u7b26\u4e32\u8f6c\u4e3aLongLong\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nstring \u5f85\u8f6c\u6362\u7684\u6570\u636e,\u5fc5\u987b\u5b58\u5728\nint \u8f6c\u6362\u8fdb\u5236, \u9ed8\u8ba410, \u53ef\u900916\u62168\n\u8fd4\u56de\u503c\uff1a\nstring 9\u5b57\u8282\u6570\u636e\n\u4f8b\u5b50\uff1a\n-- \u672cAPI\u4e8e 2023.10.27 \u6dfb\u52a0\n-- \u63d0\u9192, \u5982\u679c\u8f6c\u6362\u5931\u8d25, \u662f\u8fd4\u56de9\u4e2a\u5b57\u8282\u76840x00\nlocal data = bit64.strtoll(\"864040064024194\", 10)\nlog.info(\"data\", data:toHex())\nlog.info(\"data\", bit64.show(data))\n", "prefix": "bit64.strtoll"}, "camera.init": {"body": "camera.init(${1:InitReg})", "description": "camera.init(InitReg) - \u521d\u59cb\u5316\u6444\u50cf\u5934\n\u4f20\u5165\u503c\uff1a\ntable InitReg camera\u521d\u59cb\u5316\u547d\u4ee4 \u89c1demo/camera/AIR105 \u6ce8\u610f:\u5982\u626b\u7801 camera\u521d\u59cb\u5316\u65f6\u9700\u8bbe\u7f6e\u4e3a\u7070\u5ea6\u8f93\u51fa\n\u8fd4\u56de\u503c\uff1a\nint camera_id\n\u4f8b\u5b50\uff1a\ncamera_id = camera.init(GC032A_InitReg)--\u5c4f\u5e55\u8f93\u51fargb\u56fe\u50cf\n--\u521d\u59cb\u5316\u540e\u9700\u8981start\u624d\u5f00\u59cb\u8f93\u51fa/\u626b\u7801\ncamera.start(camera_id)--\u5f00\u59cb\u6307\u5b9a\u7684camera\n", "prefix": "camera.init"}, "camera.on": {"body": "camera.on(${1:id},${2:event},${3:func})", "description": "camera.on(id, event, func) - \u6ce8\u518c\u6444\u50cf\u5934\u4e8b\u4ef6\u56de\u8c03\n\u4f20\u5165\u503c\uff1a\nint camera id, camera 0\u51990, camera 1\u51991\nstring \u4e8b\u4ef6\u540d\u79f0\nfunction \u56de\u8c03\u65b9\u6cd5\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\ncamera.on(0, \"scanned\", function(id, str)\n--id int camera id\n--str \u591a\u79cd\u7c7b\u578b false \u6444\u50cf\u5934\u6ca1\u6709\u6b63\u5e38\u5de5\u4f5c\uff0ctrue \u62cd\u7167\u6a21\u5f0f\u4e0b\u62cd\u7167\u6210\u529f\u5e76\u4fdd\u5b58\u5b8c\u6210\uff0c int \u539f\u59cb\u6570\u636e\u6a21\u5f0f\u4e0b\u672c\u6b21\u8fd4\u56de\u7684\u6570\u636e\u5927\u5c0f\uff0c string \u626b\u7801\u6a21\u5f0f\u4e0b\u626b\u7801\u6210\u529f\u540e\u7684\u89e3\u7801\u503c\n print(id, str)\nend)\n", "prefix": "camera.on"}, "camera.start": {"body": "camera.start(${1:id})", "description": "camera.start(id) - \u5f00\u59cb\u6307\u5b9a\u7684camera\n\u4f20\u5165\u503c\uff1a\nint camera id,\u4f8b\u59820\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\ncamera.start(0)\n", "prefix": "camera.start"}, "camera.stop": {"body": "camera.stop(${1:id})", "description": "camera.stop(id) - \u505c\u6b62\u6307\u5b9a\u7684camera\n\u4f20\u5165\u503c\uff1a\nint camera id,\u4f8b\u59820\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\ncamera.stop(0)\n", "prefix": "camera.stop"}, "camera.close": {"body": "camera.close(${1:id})", "description": "camera.close(id) - \u5173\u95ed\u6307\u5b9a\u7684camera\uff0c\u91ca\u653e\u76f8\u5e94\u7684IO\u8d44\u6e90\n\u4f20\u5165\u503c\uff1a\nint camera id,\u4f8b\u59820\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\ncamera.close(0)\n", "prefix": "camera.close"}, "camera.capture": {"body": "camera.capture(${1:id},${2:save_path},${3:quality})", "description": "camera.capture(id, save_path, quality) - camera\u62cd\u7167\n\u4f20\u5165\u503c\uff1a\nint camera id,\u4f8b\u59820\nstring save_path,\u6587\u4ef6\u4fdd\u5b58\u8def\u5f84\uff0c\u7a7a\u5219\u5199\u5728\u4e0a\u6b21\u8def\u5f84\u91cc\uff0c\u9ed8\u8ba4\u662f/capture.jpg\nint quality, jpeg\u538b\u7f29\u8d28\u91cf\uff0c1\u6700\u5dee\uff0c\u5360\u7528\u7a7a\u95f4\u5c0f\uff0c3\u6700\u9ad8\uff0c\u5360\u7528\u7a7a\u95f4\u6700\u5927\u800c\u4e14\u8d39\u65f6\u95f4\uff0c\u9ed8\u8ba41\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\ncamera.capture(0)\n", "prefix": "camera.capture"}, "camera.video": {"body": "camera.video(${1:id},${2:w},${3:h},${4:out_path})", "description": "camera.video(id, w, h, out_path) - camera\u8f93\u51fa\u89c6\u9891\u6d41\u5230USB\n\u4f20\u5165\u503c\uff1a\nint camera id,\u4f8b\u59820\nint \u5bbd\u5ea6\nint \u9ad8\u5ea6\nint \u8f93\u51fa\u8def\u5f84\uff0c\u76ee\u524d\u53ea\u80fd\u7528\u865a\u62df\u4e32\u53e30\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\ncamera.video(0, 320, 240, uart.VUART_0)\n", "prefix": "camera.video"}, "camera.startRaw": {"body": "camera.startRaw(${1:id},${2:w},${3:h},${4:buff})", "description": "camera.startRaw(id, w, h, buff) - \u542f\u52a8camera\u8f93\u51fa\u539f\u59cb\u6570\u636e\u5230\u7528\u6237\u7684zbuff\u7f13\u5b58\u533a\uff0c\u8f93\u51fa1fps\u540e\u4f1a\u505c\u6b62\uff0c\u5e76\u901a\u8fc7camera.on\u8bbe\u7f6e\u7684\u56de\u8c03\u51fd\u6570\u56de\u8c03\u63a5\u6536\u5230\u7684\u957f\u5ea6\uff0c\u5982\u679c\u9700\u8981\u518d\u6b21\u8f93\u51fa\uff0c\u8bf7\u8c03\u7528camera.getRaw\n\u4f20\u5165\u503c\uff1a\nint camera id,\u4f8b\u59820\nint \u5bbd\u5ea6\nint \u9ad8\u5ea6\nzbuff \u7528\u4e8e\u5b58\u653e\u6570\u636e\u7684\u7f13\u5b58\u533a\uff0c\u5927\u5c0f\u5fc5\u987b\u4e0d\u5c0f\u4e8ew X h X 2 byte\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\ncamera.startRaw(0, 320, 240, buff)\n", "prefix": "camera.startRaw"}, "camera.getRaw": {"body": "camera.getRaw(${1:id})", "description": "camera.getRaw(id) - \u518d\u6b21\u542f\u52a8camera\u8f93\u51fa\u539f\u59cb\u6570\u636e\u5230\u7528\u6237\u7684zbuff\u7f13\u5b58\u533a\uff0c\u8f93\u51fa1fps\u540e\u4f1a\u505c\u6b62\uff0c\u5e76\u901a\u8fc7camera.on\u8bbe\u7f6e\u7684\u56de\u8c03\u51fd\u6570\u56de\u8c03\u63a5\u6536\u5230\u7684\u957f\u5ea6\uff0c\u5982\u679c\u9700\u8981\u518d\u6b21\u8f93\u51fa\uff0c\u8bf7\u7ee7\u7eed\u8c03\u7528\u672cAPI\n\u4f20\u5165\u503c\uff1a\nint camera id,\u4f8b\u59820\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\ncamera.getRaw(0)\n", "prefix": "camera.getRaw"}, "codec.create": {"body": "codec.create(${1:type},${2:isDecoder})", "description": "codec.create(type, isDecoder) - \u521b\u5efa\u7f16\u89e3\u7801\u7528\u7684codec\n\u4f20\u5165\u503c\uff1a\nint \u591a\u5a92\u4f53\u7c7b\u578b\uff0c\u76ee\u524d\u652f\u6301codec.MP3 codec.AMR\nboolean \u662f\u5426\u662f\u89e3\u7801\u5668\uff0ctrue\u89e3\u7801\u5668\uff0cfalse\u7f16\u7801\u5668\uff0c\u9ed8\u8ba4true\uff0c\u662f\u89e3\u7801\u5668\n\u8fd4\u56de\u503c\uff1a\nuserdata \u6210\u529f\u8fd4\u56de\u4e00\u4e2a\u6570\u636e\u7ed3\u6784,\u5426\u5219\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\n-- \u521b\u5efa\u89e3\u7801\u5668\nlocal decoder = codec.create(codec.MP3)--\u521b\u5efa\u4e00\u4e2amp3\u7684decoder\n-- \u521b\u5efa\u7f16\u7801\u5668\nlocal encoder = codec.create(codec.AMR, false)--\u521b\u5efa\u4e00\u4e2aamr\u7684encoder\n", "prefix": "codec.create"}, "codec.info": {"body": "codec.info(${1:decoder},${2:file_path})", "description": "codec.info(decoder, file_path) - decoder\u4ece\u6587\u4ef6\u4e2d\u89e3\u6790\u51fa\u97f3\u9891\u4fe1\u606f\n\u4f20\u5165\u503c\uff1a\nuserdata \u89e3\u7801\u7528\u7684decoder\nstring \u6587\u4ef6\u8def\u5f84\n\u8fd4\u56de\u503c\uff1a\nboolean \u662f\u5426\u6210\u529f\u89e3\u6790\nint \u97f3\u9891\u683c\u5f0f\nint \u58f0\u97f3\u901a\u9053\u6570\nint \u91c7\u6837\u9891\u7387\nint \u91c7\u6837\u4f4d\u6570\nboolean \u662f\u5426\u6709\u7b26\u53f7\n\u4f8b\u5b50\uff1a\nlocal result, audio_format, num_channels, sample_rate, bits_per_sample, is_signed= codec.info(coder, \"xxx\")\n", "prefix": "codec.info"}, "codec.data": {"body": "codec.data(${1:decoder},${2:out_buff})", "description": "codec.data(decoder, out_buff) - decoder\u4ece\u6587\u4ef6\u4e2d\u89e3\u6790\u51fa\u539f\u59cb\u97f3\u9891\u6570\u636e\uff0c\u6bd4\u5982\u4eceMP3\u6587\u4ef6\u91cc\u89e3\u6790\u51faPCM\u6570\u636e\uff0c\u8fd9\u91cc\u7684\u6587\u4ef6\u8def\u5f84\u5df2\u7ecf\u5728codec.info\u4f20\u5165\uff0c\u4e0d\u9700\u8981\u518d\u6b21\u4f20\u5165\n\u4f20\u5165\u503c\uff1a\nuserdata \u89e3\u7801\u7528\u7684decoder\nzbuff \u5b58\u653e\u8f93\u51fa\u6570\u636e\u7684zbuff\uff0c\u7a7a\u95f4\u5fc5\u987b\u4e0d\u5c11\u4e8e16KB\nint \u6700\u5c11\u89e3\u7801\u51fa\u591a\u5c11\u5b57\u8282\u7684\u97f3\u9891\u6570\u636e,\u9ed8\u8ba416384\n\u8fd4\u56de\u503c\uff1a\nboolean \u662f\u5426\u6210\u529f\u89e3\u6790\n\u4f8b\u5b50\uff1a\n-- \u5927\u5185\u5b58\u8bbe\u5907\nlocal buff = zbuff.create(16*1024)\nlocal result = codec.data(coder, buff)\n-- \u5c0f\u5185\u5b58\u8bbe\u5907\nlocal buff = zbuff.create(8*1024)\nlocal result = codec.data(coder, buff, 4096)\n", "prefix": "codec.data"}, "codec.encode": {"body": "codec.encode(${1:coder},${2:in_buffer},${3:out_buffer},${4:mode})", "description": "codec.encode(coder, in_buffer, out_buffer, mode) - \u7f16\u7801\u97f3\u9891\u6570\u636e\uff0c\u7531\u4e8eflash\u548cram\u7a7a\u95f4\u4e00\u822c\u6bd4\u8f83\u6709\u9650\uff0c\u76ee\u524d\u53ea\u652f\u6301amr-nb\u7f16\u7801\n\u4f20\u5165\u503c\uff1a\nuserdata codec.create\u521b\u5efa\u7684\u7f16\u89e3\u7801\u7528\u7684coder\nzbuff \u8f93\u5165\u7684\u6570\u636e,zbuff\u5f62\u5f0f,\u4ece0\u5230used\nzbuff \u8f93\u51fa\u7684\u6570\u636e,zbuff\u5f62\u5f0f,\u81ea\u52a8\u6dfb\u52a0\u5230buff\u7684\u5c3e\u90e8,\u5982\u679c\u7a7a\u95f4\u5927\u5c0f\u4e0d\u8db3,\u4f1a\u81ea\u52a8\u6269\u5c55,\u4f46\u662f\u4f1a\u989d\u5916\u6d88\u8017\u65f6\u95f4,\u751a\u81f3\u4f1a\u5931\u8d25,\u6240\u4ee5\u5c3d\u91cf\u4e00\u5f00\u59cb\u5c31\u7ed9\u8db3\u7a7a\u95f4\nint amr_nb\u7684\u7f16\u7801\u7b49\u7ea7 0~7(\u5373 MR475~MR122)\u503c\u8d8a\u5927\u6d88\u8017\u7684\u7a7a\u95f4\u8d8a\u591a,\u97f3\u8d28\u8d8a\u9ad8,\u9ed8\u8ba40\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u8fd4\u56detrue,\u5931\u8d25\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\ncodec.encode(amr_coder, inbuf, outbuf, codec.AMR_)\n", "prefix": "codec.encode"}, "codec.release": {"body": "codec.release(${1:coder})", "description": "codec.release(coder) - \u91ca\u653e\u7f16\u89e3\u7801\u7528\u7684coder\n\u4f20\u5165\u503c\uff1a\ncoder codec.create\u521b\u5efa\u7684\u7f16\u89e3\u7801\u7528\u7684coder\n\u4f8b\u5b50\uff1a\ncodec.release(coder)\n", "prefix": "codec.release"}, "coremark.run": {"body": "coremark.run()", "description": "coremark.run() - \u5f00\u59cb\u8dd1\u5206\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c,\u7ed3\u679c\u76f4\u63a5\u6253\u5370\u5728\u65e5\u5fd7\u4e2d\n\u4f8b\u5b50\uff1a\n-- \u5927\u90e8\u5206\u60c5\u51b5\u4e0b, \u8fd9\u4e2a\u5e93\u90fd\u4e0d\u4f1a\u5305\u542b\u5728\u6b63\u5f0f\u7248\u56fa\u4ef6\u91cc\n-- \u82e5\u9700\u4f7f\u7528,\u53ef\u4ee5\u53c2\u8003wiki\u6587\u6863\u81ea\u884c\u7f16\u8bd1\u6216\u4f7f\u7528\u4e91\u7f16\u8bd1\n-- https://wiki.luatos.com/develop/compile.html\n\n-- \u8dd1\u5206\u7684main.lua \u5e94\u79fb\u9664\u786c\u72d7\u4ee3\u7801, \u9632\u6b62\u91cd\u542f\n-- \u82e5\u8bbe\u5907\u652f\u6301\u81ea\u52a8\u4f11\u7720, \u5e94\u5173\u95ed\u4f11\u7720\u529f\u80fd\n-- \u82e5\u8bbe\u5907\u652f\u6301\u66f4\u591a\u7684\u9891\u7387\u8fd0\u884c, \u5efa\u8bae\u8bbe\u7f6e\u5230\u6700\u9ad8\u9891\u7387\n-- \u4f7f\u7528 -O3 \u6bd4 -O2 -Os \u7684\u5206\u6570\u66f4\u9ad8, \u901a\u5e38\u60c5\u51b5\u4e0b\n\n-- \u4f1a\u4e00\u76f4\u72ec\u5360\u7ebf\u7a0b\u5230\u6267\u884c\u5b8c\u6bd5, \u7136\u540e\u5728\u63a7\u5236\u53f0\u8f93\u51fa\u7ed3\u679c\ncoremark.run()\n\n-- \u8dd1\u5206\u56fe\u4e00\u4e50^_^\n\n", "prefix": "coremark.run"}, "crypto.md5": {"body": "crypto.md5(${1:str})", "description": "crypto.md5(str) - \u8ba1\u7b97md5\u503c\n\u4f20\u5165\u503c\uff1a\nstring \u9700\u8981\u8ba1\u7b97\u7684\u5b57\u7b26\u4e32\n\u8fd4\u56de\u503c\uff1a\nstring \u8ba1\u7b97\u5f97\u51fa\u7684md5\u503c\u7684hex\u5b57\u7b26\u4e32\n\u4f8b\u5b50\uff1a\n-- \u8ba1\u7b97\u5b57\u7b26\u4e32\"abc\"\u7684md5\nlog.info(\"md5\", crypto.md5(\"abc\"))\n", "prefix": "crypto.md5"}, "crypto.hmac_md5": {"body": "crypto.hmac_md5(${1:str},${2:key})", "description": "crypto.hmac_md5(str, key) - \u8ba1\u7b97hmac_md5\u503c\n\u4f20\u5165\u503c\uff1a\nstring \u9700\u8981\u8ba1\u7b97\u7684\u5b57\u7b26\u4e32\nstring \u5bc6\u94a5\n\u8fd4\u56de\u503c\uff1a\nstring \u8ba1\u7b97\u5f97\u51fa\u7684hmac_md5\u503c\u7684hex\u5b57\u7b26\u4e32\n\u4f8b\u5b50\uff1a\n-- \u8ba1\u7b97\u5b57\u7b26\u4e32\"abc\"\u7684hmac_md5\nlog.info(\"hmac_md5\", crypto.hmac_md5(\"abc\", \"1234567890\"))\n", "prefix": "crypto.hmac_md5"}, "crypto.sha1": {"body": "crypto.sha1(${1:str})", "description": "crypto.sha1(str) - \u8ba1\u7b97sha1\u503c\n\u4f20\u5165\u503c\uff1a\nstring \u9700\u8981\u8ba1\u7b97\u7684\u5b57\u7b26\u4e32\n\u8fd4\u56de\u503c\uff1a\nstring \u8ba1\u7b97\u5f97\u51fa\u7684sha1\u503c\u7684hex\u5b57\u7b26\u4e32\n\u4f8b\u5b50\uff1a\n-- \u8ba1\u7b97\u5b57\u7b26\u4e32\"abc\"\u7684sha1\nlog.info(\"sha1\", crypto.sha1(\"abc\"))\n", "prefix": "crypto.sha1"}, "crypto.hmac_sha1": {"body": "crypto.hmac_sha1(${1:str},${2:key})", "description": "crypto.hmac_sha1(str, key) - \u8ba1\u7b97hmac_sha1\u503c\n\u4f20\u5165\u503c\uff1a\nstring \u9700\u8981\u8ba1\u7b97\u7684\u5b57\u7b26\u4e32\nstring \u5bc6\u94a5\n\u8fd4\u56de\u503c\uff1a\nstring \u8ba1\u7b97\u5f97\u51fa\u7684hmac_sha1\u503c\u7684hex\u5b57\u7b26\u4e32\n\u4f8b\u5b50\uff1a\n-- \u8ba1\u7b97\u5b57\u7b26\u4e32\"abc\"\u7684hmac_sha1\nlog.info(\"hmac_sha1\", crypto.hmac_sha1(\"abc\", \"1234567890\"))\n", "prefix": "crypto.hmac_sha1"}, "crypto.sha256": {"body": "crypto.sha256(${1:str})", "description": "crypto.sha256(str) - \u8ba1\u7b97sha256\u503c\n\u4f20\u5165\u503c\uff1a\nstring \u9700\u8981\u8ba1\u7b97\u7684\u5b57\u7b26\u4e32\n\u8fd4\u56de\u503c\uff1a\nstring \u8ba1\u7b97\u5f97\u51fa\u7684sha256\u503c\u7684hex\u5b57\u7b26\u4e32\n\u4f8b\u5b50\uff1a\n-- \u8ba1\u7b97\u5b57\u7b26\u4e32\"abc\"\u7684sha256\nlog.info(\"sha256\", crypto.sha256(\"abc\"))\n", "prefix": "crypto.sha256"}, "crypto.hmac_sha256": {"body": "crypto.hmac_sha256(${1:str},${2:key})", "description": "crypto.hmac_sha256(str, key) - \u8ba1\u7b97hmac_sha256\u503c\n\u4f20\u5165\u503c\uff1a\nstring \u9700\u8981\u8ba1\u7b97\u7684\u5b57\u7b26\u4e32\nstring \u5bc6\u94a5\n\u8fd4\u56de\u503c\uff1a\nstring \u8ba1\u7b97\u5f97\u51fa\u7684hmac_sha256\u503c\u7684hex\u5b57\u7b26\u4e32\n\u4f8b\u5b50\uff1a\n-- \u8ba1\u7b97\u5b57\u7b26\u4e32\"abc\"\u7684hmac_sha256\nlog.info(\"hmac_sha256\", crypto.hmac_sha256(\"abc\", \"1234567890\"))\n", "prefix": "crypto.hmac_sha256"}, "crypto.sha512": {"body": "crypto.sha512(${1:str})", "description": "crypto.sha512(str) - \u8ba1\u7b97sha512\u503c\n\u4f20\u5165\u503c\uff1a\nstring \u9700\u8981\u8ba1\u7b97\u7684\u5b57\u7b26\u4e32\n\u8fd4\u56de\u503c\uff1a\nstring \u8ba1\u7b97\u5f97\u51fa\u7684sha512\u503c\u7684hex\u5b57\u7b26\u4e32\n\u4f8b\u5b50\uff1a\n-- \u8ba1\u7b97\u5b57\u7b26\u4e32\"abc\"\u7684sha512\nlog.info(\"sha512\", crypto.sha512(\"abc\"))\n", "prefix": "crypto.sha512"}, "crypto.hmac_sha512": {"body": "crypto.hmac_sha512(${1:str},${2:key})", "description": "crypto.hmac_sha512(str, key) - \u8ba1\u7b97hmac_sha512\u503c\n\u4f20\u5165\u503c\uff1a\nstring \u9700\u8981\u8ba1\u7b97\u7684\u5b57\u7b26\u4e32\nstring \u5bc6\u94a5\n\u8fd4\u56de\u503c\uff1a\nstring \u8ba1\u7b97\u5f97\u51fa\u7684hmac_sha512\u503c\u7684hex\u5b57\u7b26\u4e32\n\u4f8b\u5b50\uff1a\n-- \u8ba1\u7b97\u5b57\u7b26\u4e32\"abc\"\u7684hmac_sha512\nlog.info(\"hmac_sha512\", crypto.hmac_sha512(\"abc\", \"1234567890\"))\n", "prefix": "crypto.hmac_sha512"}, "crypto.cipher_encrypt": {"body": "crypto.cipher_encrypt(${1:type},${2:padding},${3:str},${4:key},${5:iv})", "description": "crypto.cipher_encrypt(type, padding, str, key, iv) - \u5bf9\u79f0\u52a0\u5bc6\n\u4f20\u5165\u503c\uff1a\nstring \u7b97\u6cd5\u540d\u79f0, \u4f8b\u5982 AES-128-ECB/AES-128-CBC, \u53ef\u67e5\u9605crypto.cipher_list()\nstring \u5bf9\u9f50\u65b9\u5f0f, \u652f\u6301PKCS7/ZERO/ONE_AND_ZEROS/ZEROS_AND_LEN/NONE\nstring \u9700\u8981\u52a0\u5bc6\u7684\u6570\u636e\nstring \u5bc6\u94a5,\u9700\u8981\u5bf9\u5e94\u7b97\u6cd5\u7684\u5bc6\u94a5\u957f\u5ea6\nstring IV\u503c, \u975eECB\u7b97\u6cd5\u9700\u8981\n\u8fd4\u56de\u503c\uff1a\nstring \u52a0\u5bc6\u540e\u7684\u5b57\u7b26\u4e32\n\u4f8b\u5b50\uff1a\n-- \u8ba1\u7b97AES\nlocal data = crypto.cipher_encrypt(\"AES-128-ECB\", \"PKCS7\", \"1234567890123456\", \"1234567890123456\")\nlocal data2 = crypto.cipher_encrypt(\"AES-128-CBC\", \"PKCS7\", \"1234567890123456\", \"1234567890123456\", \"1234567890666666\")\n", "prefix": "crypto.cipher_encrypt"}, "crypto.cipher_decrypt": {"body": "crypto.cipher_decrypt(${1:type},${2:padding},${3:str},${4:key},${5:iv})", "description": "crypto.cipher_decrypt(type, padding, str, key, iv) - \u5bf9\u79f0\u89e3\u5bc6\n\u4f20\u5165\u503c\uff1a\nstring \u7b97\u6cd5\u540d\u79f0, \u4f8b\u5982 AES-128-ECB/AES-128-CBC, \u53ef\u67e5\u9605crypto.cipher_list()\nstring \u5bf9\u9f50\u65b9\u5f0f, \u652f\u6301PKCS7/ZERO/ONE_AND_ZEROS/ZEROS_AND_LEN/NONE\nstring \u9700\u8981\u89e3\u5bc6\u7684\u6570\u636e\nstring \u5bc6\u94a5,\u9700\u8981\u5bf9\u5e94\u7b97\u6cd5\u7684\u5bc6\u94a5\u957f\u5ea6\nstring IV\u503c, \u975eECB\u7b97\u6cd5\u9700\u8981\n\u8fd4\u56de\u503c\uff1a\nstring \u89e3\u5bc6\u540e\u7684\u5b57\u7b26\u4e32\n\u4f8b\u5b50\uff1a\n-- \u7528AES\u52a0\u5bc6,\u7136\u540e\u7528AES\u89e3\u5bc6\nlocal data = crypto.cipher_encrypt(\"AES-128-ECB\", \"PKCS7\", \"1234567890123456\", \"1234567890123456\")\nlocal data2 = crypto.cipher_decrypt(\"AES-128-ECB\", \"PKCS7\", data, \"1234567890123456\")\n-- data\u7684hex\u4e3a 757CCD0CDC5C90EADBEEECF638DD0000\n-- data2\u7684\u503c\u4e3a 1234567890123456\n", "prefix": "crypto.cipher_decrypt"}, "crypto.crc16": {"body": "crypto.crc16(${1:method},${2:data},${3:poly},${4:initial},${5:finally},${6:inReversemoutReverse})", "description": "crypto.crc16(method, data, poly, initial, finally, inReversem outReverse) - \u8ba1\u7b97CRC16\n\u4f20\u5165\u503c\uff1a\nstring CRC16\u6a21\u5f0f\uff08\"IBM\",\"MAXIM\",\"USB\",\"MODBUS\",\"CCITT\",\"CCITT-FALSE\",\"X25\",\"XMODEM\",\"DNP\",\"USER-DEFINED\"\uff09\nstring \u5b57\u7b26\u4e32\nint poly\u503c\nint initial\u503c\nint finally\u503c\nint \u8f93\u5165\u53cd\u8f6c,1\u53cd\u8f6c,\u9ed8\u8ba40\u4e0d\u53cd\u8f6c\nint \u8f93\u5165\u53cd\u8f6c,1\u53cd\u8f6c,\u9ed8\u8ba40\u4e0d\u53cd\u8f6c\n\u8fd4\u56de\u503c\uff1a\nint \u5bf9\u5e94\u7684CRC16\u503c\n\u4f8b\u5b50\uff1a\n-- \u8ba1\u7b97CRC16\nlocal crc = crypto.crc16(\"\")\n", "prefix": "crypto.crc16"}, "crypto.crc16_modbus": {"body": "crypto.crc16_modbus(${1:data})", "description": "crypto.crc16_modbus(data) - \u76f4\u63a5\u8ba1\u7b97modbus\u7684crc16\u503c\n\u4f20\u5165\u503c\uff1a\nstring \u6570\u636e\n\u8fd4\u56de\u503c\uff1a\nint \u5bf9\u5e94\u7684CRC16\u503c\n\u4f8b\u5b50\uff1a\n-- \u8ba1\u7b97CRC16 modbus\nlocal crc = crypto.crc16_modbus(data)\n", "prefix": "crypto.crc16_modbus"}, "crypto.crc32": {"body": "crypto.crc32(${1:data})", "description": "crypto.crc32(data) - \u8ba1\u7b97crc32\u503c\n\u4f20\u5165\u503c\uff1a\nstring \u6570\u636e\n\u8fd4\u56de\u503c\uff1a\nint \u5bf9\u5e94\u7684CRC32\u503c\n\u4f8b\u5b50\uff1a\n-- \u8ba1\u7b97CRC32\nlocal crc = crypto.crc32(data)\n", "prefix": "crypto.crc32"}, "crypto.crc8": {"body": "crypto.crc8(${1:data},${2:poly},${3:start},${4:revert})", "description": "crypto.crc8(data, poly, start, revert) - \u8ba1\u7b97crc8\u503c\n\u4f20\u5165\u503c\uff1a\nstring \u6570\u636e\nint crc\u591a\u9879\u5f0f\uff0c\u53ef\u9009\uff0c\u5982\u679c\u4e0d\u5199\uff0c\u5c06\u5ffd\u7565\u9664\u4e86\u6570\u636e\u5916\u6240\u6709\u53c2\u6570\nint crc\u521d\u59cb\u503c\uff0c\u53ef\u9009\uff0c\u9ed8\u8ba40\nboolean \u662f\u5426\u9700\u8981\u9006\u5e8f\u5904\u7406\uff0c\u9ed8\u8ba4\u5426\n\u8fd4\u56de\u503c\uff1a\nint \u5bf9\u5e94\u7684CRC8\u503c\n\u4f8b\u5b50\uff1a\n-- \u8ba1\u7b97CRC8\nlocal crc = crypto.crc8(data)\nlocal crc = crypto.crc8(data, 0x31, 0xff, false)\n", "prefix": "crypto.crc8"}, "crypto.crc7": {"body": "crypto.crc7(${1:data},${2:poly},${3:start})", "description": "crypto.crc7(data, poly, start) - \u8ba1\u7b97crc7\u503c\n\u4f20\u5165\u503c\uff1a\nstring \u6570\u636e\nint crc\u591a\u9879\u5f0f\uff0c\u53ef\u9009\uff0c\u9ed8\u8ba40xE5\nint crc\u521d\u59cb\u503c\uff0c\u53ef\u9009\uff0c\u9ed8\u8ba40x00\n\u8fd4\u56de\u503c\uff1a\nint \u5bf9\u5e94\u7684CRC7\u503c\n\u4f8b\u5b50\uff1a\n-- \u8ba1\u7b97CRC7, \u672cAPI\u4e8e2023.10.07\u65b0\u589e\nlocal crc = crypto.crc7(data)\nlocal crc = crypto.crc7(data, 0x31, 0xff)\n", "prefix": "crypto.crc7"}, "crypto.trng": {"body": "crypto.trng(${1:len})", "description": "crypto.trng(len) - \u751f\u6210\u771f\u968f\u673a\u6570\n\u4f20\u5165\u503c\uff1a\nint \u6570\u636e\u957f\u5ea6\n\u8fd4\u56de\u503c\uff1a\nstring \u6307\u5b9a\u968f\u673a\u6570\u5b57\u7b26\u4e32\n\u4f8b\u5b50\uff1a\n-- \u751f\u621032\u4f4d\u968f\u673a\u6570ir\nlocal r = crypto.trng(4)\nlocal _, ir = pack.unpack(r, \"I\")\n", "prefix": "crypto.trng"}, "crypto.totp": {"body": "crypto.totp(${1:secret},${2:time})", "description": "crypto.totp(secret,time) - \u8ba1\u7b97TOTP\u52a8\u6001\u5bc6\u7801\u7684\u7ed3\u679c\n\u4f20\u5165\u503c\uff1a\nstring \u7f51\u7ad9\u63d0\u4f9b\u7684\u5bc6\u94a5\uff08\u5c31\u662fBASE32\u7f16\u7801\u540e\u7684\u7ed3\u679c\uff09\nint \u53ef\u9009\uff0c\u65f6\u95f4\u6233\uff0c\u9ed8\u8ba4\u5f53\u524d\u65f6\u95f4\n\u8fd4\u56de\u503c\uff1a\nint \u8ba1\u7b97\u5f97\u51fa\u7684\u516d\u4f4d\u6570\u7ed3\u679c \u8ba1\u7b97\u5931\u8d25\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\n--\u4f7f\u7528\u5f53\u524d\u7cfb\u7edf\u65f6\u95f4\u8ba1\u7b97\nlocal otp = crypto.totp(\"asdfassdfasdfass\")\n", "prefix": "crypto.totp"}, "crypto.base64_encode": {"body": "crypto.base64_encode(${1:data})", "description": "crypto.base64_encode(data) - \u5c06\u6570\u636e\u8fdb\u884cbase64\u7f16\u7801\n\u4f20\u5165\u503c\uff1a\nstring \u5f85\u7f16\u7801\u7684\u6570\u636e\n\u8fd4\u56de\u503c\uff1a\nstring \u7f16\u7801\u540e\u7684\u6570\u636e\n\u4f8b\u5b50\uff1a\n-- \u672c\u51fd\u6570\u4e0e string.toBase64 \u662f\u540c\u4e00\u4e2a\nlocal data = \"123\"\nlocal bdata = crypto.base64_encode(data)\nlog.info(\"base64\", \"encode\", data, bdata)\ndata = crypto.base64_decode(data)\nlog.info(\"base64\", \"decode\", data, bdata)\n", "prefix": "crypto.base64_encode"}, "crypto.base64_decode": {"body": "crypto.base64_decode(${1:data})", "description": "crypto.base64_decode(data) - \u5c06\u6570\u636e\u8fdb\u884cbase64\u89e3\u7801\n\u4f20\u5165\u503c\uff1a\nstring \u5f85\u89e3\u7801\u7684\u6570\u636e\n\u8fd4\u56de\u503c\uff1a\nstring \u89e3\u7801\u540e\u7684\u6570\u636e\n\u4f8b\u5b50\uff1a\n-- \u672c\u51fd\u6570\u4e0e string.fromBase64 \u662f\u540c\u4e00\u4e2a\nlocal data = \"123\"\nlocal bdata = crypto.base64_encode(data)\nlog.info(\"base64\", \"encode\", data, bdata)\ndata = crypto.base64_decode(data)\nlog.info(\"base64\", \"decode\", data, bdata)\n", "prefix": "crypto.base64_decode"}, "crypto.cipher_list": {"body": "crypto.cipher_list()", "description": "crypto.cipher_list() - \u83b7\u53d6\u5f53\u524d\u56fa\u4ef6\u652f\u6301\u7684cipher\u5217\u8868\n\u8fd4\u56de\u503c\uff1a\ntable \u672c\u56fa\u4ef6\u652f\u6301\u7684cipher\u5217\u8868,\u5b57\u7b26\u4e32\u6570\u7ec4\n\u4f8b\u5b50\uff1a\n-- \u672cAPI\u4e8e2022.07.27\u6dfb\u52a0\nlocal ciphers = crypto.cipher_list()\nif ciphers then\n log.info(\"crypto\", \"ciphers list\", json.encode(ciphers))\nend\n", "prefix": "crypto.cipher_list"}, "crypto.cipher_suites": {"body": "crypto.cipher_suites()", "description": "crypto.cipher_suites() - \u83b7\u53d6\u5f53\u524d\u56fa\u4ef6\u652f\u6301\u7684cipher suites\u5217\u8868\n\u8fd4\u56de\u503c\uff1a\ntable \u672c\u56fa\u4ef6\u652f\u6301\u7684cipher suites\u5217\u8868,\u5b57\u7b26\u4e32\u6570\u7ec4\n\u4f8b\u5b50\uff1a\n-- \u672cAPI\u4e8e2022.11.16\u6dfb\u52a0\nlocal suites = crypto.cipher_suites()\nif suites then\n log.info(\"crypto\", \"ciphers suites\", json.encode(suites))\nend\n", "prefix": "crypto.cipher_suites"}, "crypto.md_file": {"body": "crypto.md_file(${1:tp},${2:path},${3:hmac})", "description": "crypto.md_file(tp, path, hmac) - \u8ba1\u7b97\u6587\u4ef6\u7684hash\u503c(md5/sha1/sha256\u53cahmac\u5f62\u5f0f)\n\u4f20\u5165\u503c\uff1a\nstring hash\u7c7b\u578b, \u5927\u5c0f\u5b57\u6bcd, \u4f8b\u5982 \"MD5\" \"SHA1\" \"SHA256\"\nstring \u6587\u4ef6\u8def\u5f84, \u4f8b\u5982 /luadb/logo.jpg\nstring hmac\u503c,\u53ef\u9009\n\u8fd4\u56de\u503c\uff1a\nstring HEX\u8fc7\u7684hash\u503c,\u82e5\u5931\u8d25\u4f1a\u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n\n-- \u65e0hmac\u7684hash\u503c\nlog.info(\"md5\", crypto.md_file(\"MD5\", \"/luadb/logo.jpg\"))\nlog.info(\"sha1\", crypto.md_file(\"SHA1\", \"/luadb/logo.jpg\"))\nlog.info(\"sha256\", crypto.md_file(\"SHA256\", \"/luadb/logo.jpg\"))\n\n-- \u5e26hmac\u7684hash\u503c\nlog.info(\"hmac_md5\", crypto.md_file(\"MD5\", \"/luadb/logo.jpg\", \"123456\"))\nlog.info(\"hmac_sha1\", crypto.md_file(\"SHA1\", \"/luadb/logo.jpg\", \"123456\"))\nlog.info(\"hmac_sha256\", crypto.md_file(\"SHA256\", \"/luadb/logo.jpg\", \"123456\"))\n", "prefix": "crypto.md_file"}, "crypto.md": {"body": "crypto.md(${1:tp},${2:data},${3:hmac})", "description": "crypto.md(tp, data, hmac) - \u8ba1\u7b97\u6570\u636e\u7684hash\u503c(md5/sha1/sha256\u53cahmac\u5f62\u5f0f)\n\u4f20\u5165\u503c\uff1a\nstring hash\u7c7b\u578b, \u5927\u5c0f\u5b57\u6bcd, \u4f8b\u5982 \"MD5\" \"SHA1\" \"SHA256\"\nstring \u5f85\u5904\u7406\u7684\u6570\u636e\nstring hmac\u503c,\u53ef\u9009\n\u8fd4\u56de\u503c\uff1a\nstring HEX\u8fc7\u7684hash\u503c,\u82e5\u5931\u8d25\u4f1a\u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n\n-- \u65e0hmac\u7684hash\u503c\nlog.info(\"md5\", crypto.md(\"MD5\", \"1234567890\"))\nlog.info(\"sha1\", crypto.md(\"SHA1\", \"1234567890\"))\nlog.info(\"sha256\", crypto.md(\"SHA256\", \"1234567890\"))\n\n-- \u5e26hmac\u7684hash\u503c\nlog.info(\"hmac_md5\", crypto.md(\"MD5\", \"1234567890\", \"123456\"))\nlog.info(\"hmac_sha1\", crypto.md(\"SHA1\", \"1234567890\", \"123456\"))\nlog.info(\"hmac_sha256\", crypto.md(\"SHA256\", \"1234567890\", \"123456\"))\n", "prefix": "crypto.md"}, "crypto.hash_init": {"body": "crypto.hash_init(${1:tp})", "description": "crypto.hash_init(tp) - \u521b\u5efa\u6d41\u5f0fhash\u7528\u7684stream\n\u4f20\u5165\u503c\uff1a\nstring hash\u7c7b\u578b, \u5927\u5199\u5b57\u6bcd, \u4f8b\u5982 \"MD5\" \"SHA1\" \"SHA256\"\nstring hmac\u503c\uff0c\u53ef\u9009\n\u8fd4\u56de\u503c\uff1a\nuserdata \u6210\u529f\u8fd4\u56de\u4e00\u4e2a\u6570\u636e\u7ed3\u6784,\u5426\u5219\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\n-- \u65e0hmac\u7684hash stream\nlocal md5_stream = crypto.hash_init(\"MD5\")\nlocal sha1_stream = crypto.hash_init(\"SHA1\")\nlocal sha256_stream = crypto.hash_init(\"SHA256\")\n\n-- \u5e26hmac\u7684hash stream\nlocal md5_stream = crypto.hash_init(\"MD5\", \"123456\")\nlocal sha1_stream = crypto.hash_init(\"SHA1\", \"123456\")\nlocal sha256_stream = crypto.hash_init(\"SHA256\", \"123456\")\n", "prefix": "crypto.hash_init"}, "crypto.hash_update": {"body": "crypto.hash_update(${1:stream},${2:data})", "description": "crypto.hash_update(stream, data) - \u6d41\u5f0fhash\u66f4\u65b0\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nuserdata crypto.hash_init()\u521b\u5efa\u7684stream, \u5fc5\u9009\nstring \u5f85\u8ba1\u7b97\u7684\u6570\u636e,\u5fc5\u9009\nreturn \u65e0\n\u4f8b\u5b50\uff1a\ncrypto.hash_update(stream, \"OK\")\n", "prefix": "crypto.hash_update"}, "crypto.hash_finish": {"body": "crypto.hash_finish(${1:stream})", "description": "crypto.hash_finish(stream) - \u83b7\u53d6\u6d41\u5f0fhash\u6821\u9a8c\u503c\u5e76\u91ca\u653e\u521b\u5efa\u7684stream\n\u4f20\u5165\u503c\uff1a\nuserdata crypto.hash_init()\u521b\u5efa\u7684stream,\u5fc5\u9009\n\u8fd4\u56de\u503c\uff1a\nstring \u6210\u529f\u8fd4\u56de\u8ba1\u7b97\u5f97\u51fa\u7684\u6d41\u5f0fhash\u503c\u7684hex\u5b57\u7b26\u4e32\uff0c\u5931\u8d25\u65e0\u8fd4\u56de\n\u4f8b\u5b50\uff1a\nlocal hashResult = crypto.hash_finish(stream)\n", "prefix": "crypto.hash_finish"}, "crypto.checksum": {"body": "crypto.checksum(${1:data},${2:mode})", "description": "crypto.checksum(data, mode) - \u8ba1\u7b97checksum\u6821\u9a8c\u548c\n\u4f20\u5165\u503c\uff1a\nstring \u5f85\u8ba1\u7b97\u7684\u6570\u636e,\u5fc5\u9009\nint \u6a21\u5f0f,\u7d2f\u52a0\u6a21\u5f0f, 0 - \u5f02\u6216, 1 - \u7d2f\u52a0, \u9ed8\u8ba4\u4e3a0\n\u8fd4\u56de\u503c\uff1a\nint checksum\u503c,\u6821\u9a8c\u548c\n\u4f8b\u5b50\uff1a\n-- \u672c\u51fd\u6570\u5728 2022.12.28 \u6dfb\u52a0\n-- \u5355\u7eaf\u8ba1\u7b97checksum\u503c\nlocal ck = crypto.checksum(\"OK\")\nlog.info(\"checksum\", \"ok\", string.format(\"%02X\", ck))\n-- \u7b2c\u4e8c\u4e2a\u53c2\u6570mode\u57282023.5.23\u65e5\u6dfb\u52a0\n", "prefix": "crypto.checksum"}, "dac.open": {"body": "dac.open(${1:ch},${2:freq},${3:mode})", "description": "dac.open(ch, freq, mode) - \u6253\u5f00DAC\u901a\u9053,\u5e76\u914d\u7f6e\u53c2\u6570\n\u4f20\u5165\u503c\uff1a\nint \u901a\u9053\u7f16\u53f7,\u4f8b\u59820\nint \u8f93\u51fa\u9891\u7387,\u5355\u4f4dhz\nint \u6a21\u5f0f,\u9ed8\u8ba4\u4e3a0,\u9884\u7559\n\u8fd4\u56de\u503c\uff1a\ntrue \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\nint \u5e95\u5c42\u8fd4\u56de\u503c,\u8c03\u8bd5\u7528\n\u4f8b\u5b50\uff1a\nif dac.open(0, 44000) then\n log.info(\"dac\", \"dac ch0 is opened\")\nend\n\n", "prefix": "dac.open"}, "dac.write": {"body": "dac.write(${1:ch},${2:data})", "description": "dac.write(ch, data) - \u4ece\u6307\u5b9aDAC\u901a\u9053\u8f93\u51fa\u4e00\u6bb5\u6ce2\u5f62,\u6216\u8005\u5355\u4e2a\u503c\n\u4f20\u5165\u503c\uff1a\nint \u901a\u9053\u7f16\u53f7,\u4f8b\u59820\nstring \u82e5\u8f93\u51fa\u56fa\u5b9a\u503c,\u53ef\u4ee5\u586b\u6570\u503c, \u82e5\u8f93\u51fa\u6ce2\u5f62,\u586bstring\n\u8fd4\u56de\u503c\uff1a\ntrue \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\nint \u5e95\u5c42\u8fd4\u56de\u503c,\u8c03\u8bd5\u7528\n\u4f8b\u5b50\uff1a\nif dac.open(0, 44000) then\n log.info(\"dac\", \"dac ch0 is opened\")\n dac.write(0, string.fromHex(\"ABCDABCD\"))\nend\ndac.close(0)\n", "prefix": "dac.write"}, "dac.close": {"body": "dac.close(${1:ch})", "description": "dac.close(ch) - \u5173\u95edDAC\u901a\u9053\n\u4f20\u5165\u503c\uff1a\nint \u901a\u9053\u7f16\u53f7,\u4f8b\u59820\n\u8fd4\u56de\u503c\uff1a\ntrue \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\nint \u5e95\u5c42\u8fd4\u56de\u503c,\u8c03\u8bd5\u7528\n\u4f8b\u5b50\uff1a\nif dac.open(0, 44000) then\n log.info(\"dac\", \"dac ch0 is opened\")\n dac.write(0, string.fromHex(\"ABCDABCD\"))\nend\ndac.close(0)\n", "prefix": "dac.close"}, "disp.init": {"body": "disp.init(${1:conf})", "description": "disp.init(conf) - \u663e\u793a\u5c4f\u521d\u59cb\u5316,\u8bf7\u4f7f\u7528u8g2\u5e93\n\u4f20\u5165\u503c\uff1a\ntable conf \u914d\u7f6e\u4fe1\u606f\n\u8fd4\u56de\u503c\uff1a\nint \u6b63\u5e38\u521d\u59cb\u53161,\u5df2\u7ecf\u521d\u59cb\u5316\u8fc72,\u5185\u5b58\u4e0d\u591f3,\u521d\u59cb\u5316\u5931\u8d25\u8fd4\u56de4\n\u4f8b\u5b50\uff1a\n-- disp\u5e93\u7684\u6240\u6709API\u5747\u5df2\u5408\u5e76\u5230u8g2\u5e93\n-- disp\u5e93\u5df2\u7ecf\u6620\u5c04\u4e3au8g2\u5e93,\u6240\u6709API\u5747\u4ee3\u7406\u5230u8g2,\u8bf7\u67e5\u9605u8g2\u5e93\u7684API\n", "prefix": "disp.init"}, "eink.init": {"body": "eink.init(${1:tp},${2:args},${3:spi_device})", "description": "eink.init(tp, args,spi_device) - eink\u663e\u793a\u5c4f\u521d\u59cb\u5316\n\u4f20\u5165\u503c\uff1a\nnumber eink\u7c7b\u578b\uff0c\u5f53\u524d\u652f\u6301\uff1ahttps://wiki.luatos.com/api/eink.html#id1\ntable \u9644\u52a0\u53c2\u6570,\u4e0e\u5177\u4f53\u8bbe\u5907\u6709\u5173\uff1a
pin_busy\uff08busy\uff09
port\uff1aspi\u7aef\u53e3,\u4f8b\u59820,1,2...\u5982\u679c\u4e3adevice\u65b9\u5f0f\u5219\u4e3a\"device\"
pin_dc\uff1aeink\u6570\u636e/\u547d\u4ee4\u9009\u62e9\u5f15\u811a
pin_rst\uff1aeink\u590d\u4f4d\u5f15\u811a\nuserdata spi\u8bbe\u5907,\u5f53port = \"device\"\u65f6\u6709\u6548\n\u4f8b\u5b50\uff1a\n-- \u521d\u59cb\u5316spi0\u7684eink.MODEL_4in2bc) \u6ce8\u610f:eink\u521d\u59cb\u5316\u4e4b\u524d\u9700\u8981\u5148\u521d\u59cb\u5316spi\nspi_eink = spi.deviceSetup(0,20,0,0,8,20000000,spi.MSB,1,1)\nlog.info(\"eink.init\",\neink.init(eink.MODEL_4in2bc,{port = \"device\",pin_dc = 17, pin_pwr = 7,pin_rst = 19,direction = 2,w = 160,h = 80,xoffset = 1,yoffset = 26},spi_eink))\n", "prefix": "eink.init"}, "eink.setup": {"body": "eink.setup(${1:full},${2:spiid},${3:pin_busy},${4:pin_reset},${5:pin_dc},${6:pin_cs})", "description": "eink.setup(full, spiid, pin_busy, pin_reset, pin_dc, pin_cs) - \u521d\u59cb\u5316eink\n\u4f20\u5165\u503c\uff1a\nint \u5168\u5c4f\u5237\u65b00,\u5c40\u90e8\u5237\u65b01,\u9ed8\u8ba4\u662f\u5168\u5c4f\u5237\u65b0\nint \u6240\u5728\u7684spi,\u9ed8\u8ba4\u662f0\nint Busy \u5fd9\u4fe1\u53f7\u7ba1\u811a\nint Reset \u590d\u4f4d\u7ba1\u811a\nint DC \u6570\u636e\u547d\u4ee4\u9009\u62e9\u7ba1\u811a\nint CS \u4f7f\u80fd\u7ba1\u811a\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n", "prefix": "eink.setup"}, "eink.sleep": {"body": "eink.sleep()", "description": "eink.sleep() - \u8fdb\u5165\u4f11\u7720\u6a21\u5f0f\uff0c\u518d\u6b21\u4f7f\u7528\u65f6\u9700\u8981\u91cd\u65b0\u521d\u59cb\u5316\n", "prefix": "eink.sleep"}, "eink.clear": {"body": "eink.clear(${1:color},${2:force})", "description": "eink.clear(color, force) - \u6e05\u9664\u7ed8\u56fe\u7f13\u51b2\u533a\uff0c\u9ed8\u8ba4\u4e0d\u4f1a\u9a6c\u4e0a\u5237\u65b0\u5230\u8bbe\u5907\n\u4f20\u5165\u503c\uff1a\nnumber color \u53ef\u9009\uff0c\u9ed8\u8ba41\u3002\u5237\u5c4f\u989c\u8272\nbool force \u53ef\u9009\uff0c\u9ed8\u8ba4false\u3002\u5982\u679c\u4e3atrue\u5219\u9a6c\u4e0a\u6e05\u5c4f\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n", "prefix": "eink.clear"}, "eink.setWin": {"body": "eink.setWin(${1:width},${2:height},${3:rotate})", "description": "eink.setWin(width, height, rotate) - \u8bbe\u7f6e\u7a97\u53e3\n\u4f20\u5165\u503c\uff1a\nint width \u5bbd\u5ea6\nint height \u9ad8\u5ea6\nint rotate \u663e\u793a\u65b9\u5411,0/1/2/3, \u76f8\u5f53\u4e8e\u65cb\u8f6c0\u5ea6/90\u5ea6/180\u5ea6/270\u5ea6\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n", "prefix": "eink.setWin"}, "eink.getWin": {"body": "eink.getWin()", "description": "eink.getWin() - \u83b7\u53d6\u7a97\u53e3\u4fe1\u606f\n\u8fd4\u56de\u503c\uff1a\nint width \u5bbd\nint height \u9ad8\nint rotate \u65cb\u8f6c\u65b9\u5411\n", "prefix": "eink.getWin"}, "eink.setFont": {"body": "eink.setFont(${1:font})", "description": "eink.setFont(font) - \u8bbe\u7f6e\u5b57\u4f53\n\u4f20\u5165\u503c\uff1a\nuserdata \u5b57\u4f53\n\u4f8b\u5b50\uff1a\n-- \u8bbe\u7f6e\u4e3a\u5b57\u4f53,\u5bf9\u4e4b\u540e\u7684print\u6709\u6548\neink.setFont(eink.font_opposansm12_chinese)\n", "prefix": "eink.setFont"}, "eink.print": {"body": "eink.print(${1:x},${2:y},${3:str},${4:colored})", "description": "eink.print(x, y, str, colored) - \u7ed8\u5236\u5b57\u7b26\u4e32\n\u4f20\u5165\u503c\uff1a\nint x\u5750\u6807\nint y\u5750\u6807\nstring \u5b57\u7b26\u4e32\nint \u989c\u8272, \u53ef\u4ee5\u662f0\u6216\u80051, \u9ed8\u8ba4\u662f0\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n-- \u5148\u8bbe\u7f6e\u5b57\u4f53, \u7136\u540e\u5199\u5b57\n-- \u53ef\u7528\u5b57\u4f53\u53d6\u51b3\u4e8e\u5177\u4f53\u7684\u56fa\u4ef6, \u5982\u679c\u6ca1\u6709\u4f60\u60f3\u8981\u7684\u5927\u5c0f,\u53ef\u4ee5\u4e91\u7f16\u8bd1\u4e00\u4efd\u81ea\u5b9a\u4e49\u56fa\u4ef6\n-- font_opposansm8_chinese\n-- font_opposansm10_chinese\n-- font_opposansm12_chinese\n-- font_opposansm14_chinese\n-- font_opposansm16_chinese\neink.setFont(eink.font_opposansm12_chinese)\neink.print(10, 20, \"LuatOS\")\n", "prefix": "eink.print"}, "eink.show": {"body": "eink.show(${1:x},${2:y},${3:noClear})", "description": "eink.show(x, y, noClear) - \u5c06\u7f13\u51b2\u533a\u56fe\u50cf\u8f93\u51fa\u5230\u5c4f\u5e55\n\u4f20\u5165\u503c\uff1a\nint x \u8f93\u51fa\u7684x\u5750\u6807,\u9ed8\u8ba40\nint y \u8f93\u51fa\u7684y\u5750\u6807,\u9ed8\u8ba40\nbool \u53ef\u9009\uff0c\u9ed8\u8ba4false\u3002\u5982\u679c\u4e3atrue\u5219\u4e0d\u8fdb\u884c\u6e05\u5c4f\uff0c\u76f4\u63a5\u5237\u4e0a\u65b0\u5185\u5bb9\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n", "prefix": "eink.show"}, "eink.draw": {"body": "eink.draw(${1:buff},${2:buff2},${3:noclear})", "description": "eink.draw(buff, buff2, noclear) - \u76f4\u63a5\u8f93\u51fa\u6570\u636e\u5230\u5c4f\u5e55,\u652f\u6301\u53cc\u8272\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nuserdata zbuff\u6307\u9488\nuserdata zbuff\u6307\u9488\nbool \u53ef\u9009\uff0c\u9ed8\u8ba4false\u3002\u5982\u679c\u4e3atrue\u5219\u4e0d\u8fdb\u884c\u6e05\u5c4f\uff0c\u76f4\u63a5\u5237\u4e0a\u65b0\u5185\u5bb9\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n", "prefix": "eink.draw"}, "eink.line": {"body": "eink.line(${1:x},${2:y},${3:x2},${4:y2},${5:colored})", "description": "eink.line(x, y, x2, y2, colored) - \u7f13\u51b2\u533a\u7ed8\u5236\u7ebf\n\u4f20\u5165\u503c\uff1a\nint \u8d77\u70b9x\u5750\u6807\nint \u8d77\u70b9y\u5750\u6807\nint \u7ec8\u70b9x\u5750\u6807\nint \u7ec8\u70b9y\u5750\u6807\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\neink.line(0, 0, 10, 20, 0)\n", "prefix": "eink.line"}, "eink.rect": {"body": "eink.rect(${1:x},${2:y},${3:x2},${4:y2},${5:colored},${6:fill})", "description": "eink.rect(x, y, x2, y2, colored, fill) - \u7f13\u51b2\u533a\u7ed8\u5236\u77e9\u5f62\n\u4f20\u5165\u503c\uff1a\nint \u5de6\u4e0a\u9876\u70b9x\u5750\u6807\nint \u5de6\u4e0a\u9876\u70b9y\u5750\u6807\nint \u53f3\u4e0b\u9876\u70b9x\u5750\u6807\nint \u53f3\u4e0b\u9876\u70b9y\u5750\u6807\nint \u9ed8\u8ba4\u662f0\nint \u662f\u5426\u586b\u5145,\u9ed8\u8ba4\u662f0,\u4e0d\u586b\u5145\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\neink.rect(0, 0, 10, 20)\neink.rect(0, 0, 10, 20,0, 1) -- Filled\n", "prefix": "eink.rect"}, "eink.circle": {"body": "eink.circle(${1:x},${2:y},${3:radius},${4:colored},${5:fill})", "description": "eink.circle(x, y, radius, colored, fill) - \u7f13\u51b2\u533a\u7ed8\u5236\u5706\u5f62\n\u4f20\u5165\u503c\uff1a\nint \u5706\u5fc3x\u5750\u6807\nint \u5706\u5fc3y\u5750\u6807\nint \u534a\u5f84\nint \u9ed8\u8ba4\u662f0\nint \u662f\u5426\u586b\u5145,\u9ed8\u8ba4\u662f0,\u4e0d\u586b\u5145\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\neink.circle(0, 0, 10)\neink.circle(0, 0, 10, 1, 1) -- Filled\n", "prefix": "eink.circle"}, "eink.qrcode": {"body": "eink.qrcode(${1:x},${2:y},${3:str},${4:size})", "description": "eink.qrcode(x, y, str, size) - \u7f13\u51b2\u533a\u7ed8\u5236QRCode\n\u4f20\u5165\u503c\uff1a\nint x\u5750\u6807\nint y\u5750\u6807\nstring \u4e8c\u7ef4\u7801\u7684\u5185\u5bb9\nint \u663e\u793a\u5927\u5c0f (\u6ce8\u610f:\u4e8c\u7ef4\u7801\u751f\u6210\u5927\u5c0f\u4e0e\u8981\u663e\u793a\u5185\u5bb9\u548c\u7ea0\u9519\u7b49\u7ea7\u6709\u5173,\u751f\u6210\u7248\u672c\u4e3a1-40(\u5bf9\u5e94 21x21 - 177x177)\u7684\u4e0d\u5b9a\u5927\u5c0f,\u5982\u679c\u548c\u8bbe\u7f6e\u5927\u5c0f\u4e0d\u540c\u4f1a\u81ea\u52a8\u5728\u6307\u5b9a\u7684\u533a\u57df\u4e2d\u95f4\u663e\u793a\u4e8c\u7ef4\u7801,\u5982\u4e8c\u7ef4\u7801\u672a\u663e\u793a\u8bf7\u67e5\u770b\u65e5\u5fd7\u63d0\u793a)\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n", "prefix": "eink.qrcode"}, "eink.bat": {"body": "eink.bat(${1:x},${2:y},${3:bat})", "description": "eink.bat(x, y, bat) - \u7f13\u51b2\u533a\u7ed8\u5236\u7535\u6c60\n\u4f20\u5165\u503c\uff1a\nint x\u5750\u6807\nint y\u5750\u6807\nint \u7535\u6c60\u7535\u538b,\u5355\u4f4d\u6beb\u4f0f\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n", "prefix": "eink.bat"}, "eink.weather_icon": {"body": "eink.weather_icon(${1:x},${2:y},${3:code})", "description": "eink.weather_icon(x, y, code) - \u7f13\u51b2\u533a\u7ed8\u5236\u5929\u6c14\u56fe\u6807\n\u4f20\u5165\u503c\uff1a\nint x\u5750\u6807\nint y\u5750\u6807\nint \u5929\u6c14\u4ee3\u53f7\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n", "prefix": "eink.weather_icon"}, "eink.model": {"body": "eink.model(${1:m})", "description": "eink.model(m) - \u8bbe\u7f6e\u58a8\u6c34\u5c4f\u9a71\u52a8\u578b\u53f7\n\u4f20\u5165\u503c\uff1a\nint \u578b\u53f7\u540d\u79f0, \u4f8b\u5982 eink.model(eink.MODEL_1in54_V2)\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n", "prefix": "eink.model"}, "eink.drawXbm": {"body": "eink.drawXbm(${1:x},${2:y},${3:w},${4:h},${5:data})", "description": "eink.drawXbm(x, y, w, h, data) - \u7ed8\u5236\u4f4d\u56fe\n\u4f20\u5165\u503c\uff1a\nint X\u5750\u6807\nint y\u5750\u6807\nint \u4f4d\u56fe\u5bbd\nint \u4f4d\u56fe\u9ad8\nint \u4f4d\u56fe\u6570\u636e,\u6bcf\u4e00\u4f4d\u4ee3\u8868\u4e00\u4e2a\u50cf\u7d20\n\u4f8b\u5b50\uff1a\n-- \u53d6\u6a21\u4f7f\u7528PCtoLCD2002\u8f6f\u4ef6\u5373\u53ef\n-- \u5728(0,0)\u4e3a\u5de6\u4e0a\u89d2,\u7ed8\u5236 16x16 \"\u4eca\" \u7684\u4f4d\u56fe\neink.drawXbm(0, 0, 16,16, string.char(\n 0x80,0x00,0x80,0x00,0x40,0x01,0x20,0x02,0x10,0x04,0x48,0x08,0x84,0x10,0x83,0x60,\n 0x00,0x00,0xF8,0x0F,0x00,0x08,0x00,0x04,0x00,0x04,0x00,0x02,0x00,0x01,0x80,0x00\n))\n", "prefix": "eink.drawXbm"}, "eink.setCtx": {"body": "eink.setCtx(${1:index})", "description": "eink.setCtx(index) - \u5207\u6362\u989c\u8272\u753b\u677f, \u9002\u5408\u591a\u8272\u58a8\u6c34\u5c4f\n\u4f20\u5165\u503c\uff1a\nint \u989c\u8272\u7d22\u5f15, \u9ed1\u8272\u4e3a0, \u7ea2\u8272\u4e3a1\n\u4f8b\u5b50\uff1a\n-- \u4ec5\u9002\u5408\u591a\u8272\u58a8\u6c34\u5c4f, \u5bf9\u5355\u8272\u58a8\u6c34\u5c4f(\u53ea\u6709\u9ed1\u767d)\u7684\u65e0\u6548\neink.setCtx(1)\n-- \u5207\u6362\u540e, \u6240\u6709drawXXX\u90fd\u4f1a\u64cd\u4f5c\u5728\u6307\u5b9a\u989c\u8272\u7684\u753b\u677f\n", "prefix": "eink.setCtx"}, "eink.async": {"body": "eink.async(${1:index})", "description": "eink.async(index) - \u5f02\u6b65\u65b9\u5f0f\uff0c\u4f7f\u7528\u6b64\u65b9\u5f0f\u9700\u8981\u5148 require(\"sysplus\") \u4e4b\u540e eink.clear().wait() eink.show().wait()\u8fdb\u884c\u5237\u5c4f\n\u4f20\u5165\u503c\uff1a\nint 1 \u4f7f\u7528\u5f02\u6b65\n\u4f8b\u5b50\uff1a\n eink.async(1)\n spi_eink = spi.deviceSetup(spi_id,pin_cs,0,0,8,20*1000*1000,spi.MSB,1,1)\n eink.init(eink.MODEL_1in54,\n {port = \"device\",pin_dc = pin_dc, pin_busy = pin_busy,pin_rst = pin_reset},\n spi_eink)\n eink.setWin(200, 200, 0)\n sys.wait(100)\n log.info(\"e-paper 1.54\", \"Testing Go\")\n eink.print(30, 20, \"LuatOS-AIR780E\",0x00)\n eink.show().wait()\n log.info(\"e-paper 1.54\", \"Testing End\")\n", "prefix": "eink.async"}, "errDump.dump": {"body": "errDump.dump(${1:zbuff},${2:type},${3:isDelete})", "description": "errDump.dump(zbuff, type, isDelete) - \u624b\u52a8\u8bfb\u53d6\u5f02\u5e38\u65e5\u5fd7\uff0c\u4e3b\u8981\u7528\u4e8e\u7528\u6237\u5c06\u65e5\u5fd7\u53d1\u9001\u7ed9\u81ea\u5df1\u7684\u670d\u52a1\u5668\u800c\u4e0d\u662fIOT\u5e73\u53f0\uff0c\u5982\u679c\u5728errDump.config\u914d\u7f6e\u4e86\u5468\u671f\u4e0a\u4f20\uff0c\u5219\u4e0d\u80fd\u4f7f\u7528\u672c\u51fd\u6570\n\u4f20\u5165\u503c\uff1a\nzbuff \u65e5\u5fd7\u4fe1\u606f\u7f13\u5b58\uff0c\u5982\u679c\u4e3anil\u5c31\u4e0d\u4f1a\u8bfb\u51fa\uff0c\u4e00\u822c\u5f53\nint \u65e5\u5fd7\u7c7b\u578b\uff0c\u76ee\u524d\u53ea\u6709errDump.TYPE_SYS\u548cerrDump.TYPE_USR\nboolean \u662f\u5426\u5220\u9664\u65e5\u5fd7\n\u8fd4\u56de\u503c\uff1a\nboolean true\u8868\u793a\u672c\u6b21\u8bfb\u53d6\u524d\u5e76\u6ca1\u6709\u5199\u5165\u6570\u636e\uff0cfalse\u53cd\u4e4b\uff0c\u5728\u5220\u9664\u65e5\u5fd7\u524d\uff0c\u6700\u597d\u518d\u8bfb\u4e00\u4e0b\u786e\u4fdd\u6ca1\u6709\u65b0\u7684\u6570\u636e\u5199\u5165\u4e86\n\u4f8b\u5b50\uff1a\nlocal result = errDump.dump(buff, errDump.TYPE_SYS, false) --\u8bfb\u51fa\u7cfb\u7edf\u8bb0\u5f55\u7684\u5f02\u5e38\u65e5\u5fd7\nlocal result = errDump.dump(nil, errDump.TYPE_SYS, true) --\u6e05\u9664\u7cfb\u7edf\u8bb0\u5f55\u7684\u5f02\u5e38\u65e5\u5fd7\n", "prefix": "errDump.dump"}, "errDump.record": {"body": "errDump.record(${1:string})", "description": "errDump.record(string) - \u5199\u5165\u7528\u6237\u7684\u5f02\u5e38\u65e5\u5fd7\uff0c\u6ce8\u610f\u6700\u5927\u53ea\u67094KB\uff0c\u8d85\u8fc7\u90e8\u5206\u65b0\u7684\u8986\u76d6\u65e7\u7684\uff0c\u5f00\u542f\u81ea\u52a8\u4e0a\u4f20\u540e\u4f1a\u4e0a\u4f20\u5230\u5408\u5b99IOT\u5e73\u53f0\n\u4f20\u5165\u503c\uff1a\nstring \u65e5\u5fd7\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\nerrDump.record(\"socket long time no connect\") --\u8bb0\u5f55\u4e0b\"socket long time no connect\"\n", "prefix": "errDump.record"}, "errDump.config": {"body": "errDump.config(${1:enable},${2:period},${3:user_flag},${4:custom_id})", "description": "errDump.config(enable, period, user_flag, custom_id) - \u914d\u7f6e\u5173\u952e\u65e5\u5fd7\u4e0a\u4f20IOT\u5e73\u53f0\uff0c\u8fd9\u91cc\u7684\u65e5\u5fd7\u5305\u62ec\u5f15\u8d77luavm\u5f02\u5e38\u9000\u51fa\u7684\u65e5\u5fd7\u548c\u7528\u6237\u901a\u8fc7record\u5199\u5165\u7684\u65e5\u5fd7\uff0c\u7c7b\u4f3c\u4e8eair\u7684errDump\n\u4f20\u5165\u503c\uff1a\nboolean \u662f\u5426\u542f\u7528\u8bb0\u5f55\u529f\u80fd\uff0cfalse\u7684\u8bdd\u5c06\u4e0d\u4f1a\u8bb0\u5f55\u4efb\u4f55\u65e5\u5fd7\nint \u5b9a\u65f6\u4e0a\u4f20\u5468\u671f\uff0c\u5355\u4f4d\u79d2\uff0c\u9ed8\u8ba4600\u79d2\uff0c\u8fd9\u4e2a\u662f\u81ea\u52a8\u4e0a\u4f20\u65f6\u5019\u540e\u7684\u91cd\u8bd5\u65f6\u95f4\u65f6\u95f4\uff0c\u5728\u5f00\u673a\u540e\u6216\u8005\u6709record\u64cd\u4f5c\u540e\u4f1a\u5f88\u5feb\u5c1d\u8bd5\u4e0a\u4f20\u5230\u5408\u5b99IOT\u5e73\u53f0\u4e00\u6b21\uff0c\u5982\u679c\u4e3a0\uff0c\u5219\u4e0d\u4f1a\u4e0a\u4f20\uff0c\u7531\u7528\u6237dump\u540e\u81ea\u5df1\u4e0a\u4f20\u81ea\u5df1\u7684\u5e73\u53f0\nstring \u7528\u6237\u7684\u7279\u6b8a\u6807\u8bc6\uff0c\u53ef\u4ee5\u4e3a\u7a7a\nstring \u8bbe\u5907\u8bc6\u522b\u53f7, 4G\u8bbe\u5907\u9ed8\u8ba4\u662fimei,\u5176\u4ed6\u8bbe\u5907\u9ed8\u8ba4\u662fmcu.unique_id\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\nerrDump.config(true, 3600, \"12345678\")\t--\u4e00\u4e2a\u5c0f\u65f6\u5c1d\u8bd5\u4e0a\u6b21\u4e00\u6b21\uff0c\u4e0a\u4f20\u65f6\u4f1a\u5728imei\u540e\u9644\u52a0\u4e0a12345678\nerrDump.config(false)\t--\u5173\u95ed\u8bb0\u5f55\u529f\u80fd\uff0c\u4e0d\u518d\u4e0a\u4f20\nerrDump.config(true, 0)\t--\u8bb0\u5f55\uff0c\u4f46\u662f\u4e0d\u4f1a\u4e3b\u52a8\u4e0a\u4f20\uff0c\u7531\u7528\u6237\u5b9e\u73b0\u4e0a\u4f20\u529f\u80fd\n-- 2023.09.22\u65b0\u589ecustom_id\u53c2\u6570\nerrDump.config(true, 3600, nil, \"ABC\")\t--\u4e00\u4e2a\u5c0f\u65f6\u5c1d\u8bd5\u4e0a\u6b21\u4e00\u6b21\uff0c\u4e0a\u4f20\u65f6\u4f7f\u7528\u81ea\u5b9a\u4e49\u7684\u8bbe\u5907\u8bc6\u522b\u53f7ABC\n", "prefix": "errDump.config"}, "fastlz.compress": {"body": "fastlz.compress(${1:data},${2:level})", "description": "fastlz.compress(data, level) - \u5feb\u901f\u538b\u7f29\n\u4f20\u5165\u503c\uff1a\nstring \u5f85\u538b\u7f29\u7684\u6570\u636e, \u5c11\u4e8e400\u5b57\u8282\u7684\u6570\u636e\u4e0d\u5efa\u8bae\u538b\u7f29, \u4e14\u538b\u7f29\u540e\u7684\u6570\u636e\u4e0d\u80fd\u5927\u4e8e32k\nint \u538b\u7f29\u7ea7\u522b,\u9ed8\u8ba41, \u53ef\u90091\u6216\u80052, 2\u7684\u538b\u7f29\u6bd4\u66f4\u9ad8(\u6709\u65f6\u5019)\n\u8fd4\u56de\u503c\uff1a\nstring \u82e5\u538b\u7f29\u6210\u529f,\u8fd4\u56de\u6570\u636e\u5b57\u7b26\u4e32, \u5426\u5219\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\n-- \u6ce8\u610f, \u538b\u7f29\u8fc7\u7a0b\u7684\u5185\u5b58\u6d88\u8017\u5982\u4e0b\n-- \u7cfb\u7edf\u5185\u5b58, \u56fa\u5b9a32k\n-- lua\u5185\u5b58, \u539f\u59cb\u6570\u636e\u7684\u5927\u5c0f\u76841.05\u500d,\u6700\u5c0f\u5360\u75281024\u5b57\u8282.\n", "prefix": "fastlz.compress"}, "fastlz.uncompress": {"body": "fastlz.uncompress(${1:data},${2:maxout})", "description": "fastlz.uncompress(data, maxout) - \u5feb\u901f\u89e3\u538b\n\u4f20\u5165\u503c\uff1a\nstring \u5f85\u89e3\u538b\u7684\u6570\u636e\nint \u89e3\u538b\u540e\u7684\u6700\u5927\u5927\u5c0f, \u9ed8\u8ba4\u662f4k, \u53ef\u6309\u9700\u8c03\u6574\n\u8fd4\u56de\u503c\uff1a\nstring \u82e5\u89e3\u538b\u6210\u529f,\u8fd4\u56de\u6570\u636e\u5b57\u7b26\u4e32, \u5426\u5219\u8fd4\u56denil\n", "prefix": "fastlz.uncompress"}, "fatfs.mount": {"body": "fatfs.mount(${1:mode},${2:mount_point},${3:spiid_or_spidevice},${4:spi_cs},${5:spi_speed},${6:power_pin},${7:power_on_delay},${8:auto_format})", "description": "fatfs.mount(mode,mount_point, spiid_or_spidevice, spi_cs, spi_speed, power_pin, power_on_delay, auto_format) - \u6302\u8f7dfatfs\n\u4f20\u5165\u503c\uff1a\nint fatfs\u6a21\u5f0f,\u53ef\u9009fatfs.SPI,fatfs.SDIO,fatfs.RAM,fatfs.USB\nstring \u865a\u62df\u6587\u4ef6\u7cfb\u7edf\u7684\u6302\u8f7d\u70b9, \u9ed8\u8ba4\u662f /fatfs\nint \u4f20\u5165spi device\u6307\u9488,\u6216\u8005spi\u7684id,\u6216\u8005sdio\u7684id\nint \u7247\u9009\u811a\u7684GPIO \u53f7, spi\u6a21\u5f0f\u6709\u6548,\u82e5\u524d\u4e00\u4e2a\u53c2\u6570\u4f20\u7684\u662fspi device,\u8fd9\u4e2a\u53c2\u6570\u5c31\u4e0d\u9700\u8981\u4f20\nint SPI\u6700\u9ad8\u901f\u5ea6,\u9ed8\u8ba410M, \u82e5\u524d2\u4e2a\u53c2\u6570\u4f20\u7684\u662fspi device,\u8fd9\u4e2a\u53c2\u6570\u5c31\u4e0d\u9700\u8981\u4f20\nint TF\u5361\u7535\u6e90\u63a7\u5236\u811a,TF\u5361\u521d\u59cb\u524d\u5148\u62c9\u4f4e\u590d\u4f4d\u518d\u62c9\u9ad8,\u5982\u679c\u6ca1\u6709,\u6216\u8005\u662f\u5185\u7f6e\u7535\u6e90\u63a7\u5236\u65b9\u5f0f,\u8fd9\u4e2a\u53c2\u6570\u5c31\u4e0d\u9700\u8981\u4f20\nint TF\u5361\u7535\u6e90\u590d\u4f4d\u8fc7\u7a0b\u65f6\u95f4,\u5355\u4f4dms,\u9ed8\u8ba4\u503c\u662f1\nbool \u6302\u8f7d\u5931\u8d25\u662f\u5426\u5c1d\u8bd5\u683c\u5f0f\u5316,\u9ed8\u8ba4\u662ftrue,\u5373\u81ea\u52a8\u683c\u5f0f\u5316. \u672c\u53c2\u6570\u57282023.8.16\u6dfb\u52a0\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue, \u5426\u5219\u8fd4\u56denil\u6216\u8005false\nstring \u5931\u8d25\u7684\u539f\u56e0\n\u4f8b\u5b50\uff1a\n-- \u65b9\u6cd51, \u4f7f\u7528SPI\u6a21\u5f0f\n local spiId = 2\n local result = spi.setup(\n spiId,--\u4e32\u53e3id\n 255, -- \u4e0d\u4f7f\u7528\u9ed8\u8ba4CS\u811a\n 0,--CPHA\n 0,--CPOL\n 8,--\u6570\u636e\u5bbd\u5ea6\n 400*1000 -- \u521d\u59cb\u5316\u65f6\u4f7f\u7528\u8f83\u4f4e\u7684\u9891\u7387\n )\n local TF_CS = pin.PB3\n gpio.setup(TF_CS, 1)\n --fatfs.debug(1) -- \u82e5\u6302\u8f7d\u5931\u8d25,\u53ef\u4ee5\u5c1d\u8bd5\u6253\u5f00\u8c03\u8bd5\u4fe1\u606f,\u67e5\u627e\u539f\u56e0\n\t-- \u63d0\u9192, \u82e5TF/SD\u6a21\u5757\u5e26\u7535\u5e73\u8f6c\u6362, \u901a\u5e38\u4e0d\u652f\u630110M\u4ee5\u4e0a\u7684\u6ce2\u7279\u7387!!\n fatfs.mount(fatfs.SPI,\"SD\", spiId, TF_CS, 24000000)\n local data, err = fatfs.getfree(\"SD\")\n if data then\n log.info(\"fatfs\", \"getfree\", json.encode(data))\n else\n log.info(\"fatfs\", \"err\", err)\n end\n\t-- \u5f80\u4e0b\u7684\u64cd\u4f5c, \u4f7f\u7528 io.open(\"/sd/xxx\", \"w+\") \u7b49io\u5e93\u7684API\u5c31\u53ef\u4ee5\u4e86\n", "prefix": "fatfs.mount"}, "fatfs.getfree": {"body": "fatfs.getfree(${1:mount_point})", "description": "fatfs.getfree(mount_point) - \u83b7\u53d6\u53ef\u7528\u7a7a\u95f4\u4fe1\u606f\n\u4f20\u5165\u503c\uff1a\nstring \u6302\u8f7d\u70b9, \u9700\u8981\u8ddffatfs.mount\u4f20\u5165\u7684\u503c\u4e00\u81f4\n\u8fd4\u56de\u503c\uff1a\ntable \u82e5\u6210\u529f\u4f1a\u8fd4\u56detable,\u5426\u5219\u8fd4\u56denil\nint \u5bfc\u81f4\u5931\u8d25\u7684\u5e95\u5c42\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n-- table\u5305\u542b\u7684\u5185\u5bb9\u6709\n-- total_sectors \u603b\u6247\u533a\u6570\u91cf\n-- free_sectors \u7a7a\u95f2\u6247\u533a\u6570\u91cf\n-- total_kb \u603b\u5b57\u8282\u6570,\u5355\u4f4dkb\n-- free_kb \u7a7a\u95f2\u5b57\u8282\u6570, \u5355\u4f4dkb\n-- \u6ce8\u610f,\u5f53\u524d\u6247\u533a\u5927\u5c0f\u56fa\u5b9a\u5728512\u5b57\u8282\n\n local data, err = fatfs.getfree(\"SD\")\n if data then\n log.info(\"fatfs\", \"getfree\", json.encode(data))\n else\n log.info(\"fatfs\", \"err\", err)\n end\n", "prefix": "fatfs.getfree"}, "fatfs.debug": {"body": "fatfs.debug(${1:value})", "description": "fatfs.debug(value) - \u8bbe\u7f6e\u8c03\u8bd5\u6a21\u5f0f\n\u4f20\u5165\u503c\uff1a\nbool \u662f\u5426\u8fdb\u5165\u8c03\u8bd5\u6a21\u5f0f,true\u4ee3\u8868\u8fdb\u5165\u8c03\u8bd5\u6a21\u5f0f,\u589e\u52a0\u8c03\u8bd5\u65e5\u5fd7\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n", "prefix": "fatfs.debug"}, "fdb.kvdb_init": {"body": "fdb.kvdb_init(${1:name},${2:partition})", "description": "fdb.kvdb_init(name, partition) - \u521d\u59cb\u5316kv\u6570\u636e\u5e93\n\u4f20\u5165\u503c\uff1a\nstring \u6570\u636e\u5e93\u540d,\u5f53\u524d\u4ec5\u652f\u6301env\nstring FAL\u5206\u533a\u540d,\u5f53\u524d\u4ec5\u652f\u6301onchip_fdb\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- fdb\u5e93\u57fa\u4e8e flashdb , \u518d\u6b21\u8868\u793a\u611f\u8c22.\nif fdb.kvdb_init(\"env\", \"onchip_fdb\") then\n log.info(\"fdb\", \"kv\u6570\u636e\u5e93\u521d\u59cb\u5316\u6210\u529f\")\nend\n\n-- \u5173\u4e8e\u6e05\u7a7afdb\u5e93\n-- \u4e0b\u8f7d\u5de5\u5177\u662f\u6ca1\u6709\u63d0\u4f9b\u76f4\u63a5\u6e05\u9664fdb\u6570\u636e\u7684\u9014\u5f84\u7684, \u4f46\u6709\u6709\u529e\u6cd5\u89e3\u51b3\n-- \u5199\u4e00\u4e2amain.lua, \u6267\u884c fdb.kvdb_init \u540e \u6267\u884c fdb.clear() \u5373\u53ef\u5168\u6e05fdb\u6570\u636e.\n", "prefix": "fdb.kvdb_init"}, "fdb.kv_set": {"body": "fdb.kv_set(${1:key},${2:value})", "description": "fdb.kv_set(key, value) - \u8bbe\u7f6e\u4e00\u5bf9kv\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nstring key\u7684\u540d\u79f0,\u5fc5\u586b,\u4e0d\u80fd\u7a7a\u5b57\u7b26\u4e32\nstring \u7528\u6237\u6570\u636e,\u5fc5\u586b,\u4e0d\u80fdnil, \u652f\u6301\u5b57\u7b26\u4e32/\u6570\u503c/table/\u5e03\u5c14\u503c, \u6570\u636e\u957f\u5ea6\u6700\u5927255\u5b57\u8282\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\nnumber \u7b2c\u4e8c\u4e2a\u4e3a\u8fd4\u56de\u4e3aflashdb\u7684fdb_kv_set_blob\u8fd4\u56de\u8be6\u7ec6\u72b6\u6001,0\uff1a\u65e0\u9519\u8bef 1:\u64e6\u9664\u9519\u8bef 2:\u8bfb\u9519\u8bef 3:\u5199\u9519\u8bef 4:\u672a\u627e\u5230 5:kv\u540d\u5b57\u9519\u8bef 6:kv\u540d\u5b57\u5b58\u5728 7:\u5df2\u4fdd\u5b58 8:\u521d\u59cb\u5316\u9519\u8bef\n\u4f8b\u5b50\uff1a\nif fdb.kvdb_init(\"env\", \"onchip_fdb\") then\n log.info(\"fdb\", fdb.kv_set(\"wendal\", \"goodgoodstudy\"))\nend\n", "prefix": "fdb.kv_set"}, "fdb.kv_get": {"body": "fdb.kv_get(${1:key},${2:skey})", "description": "fdb.kv_get(key, skey) - \u6839\u636ekey\u83b7\u53d6\u5bf9\u5e94\u7684\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nstring key\u7684\u540d\u79f0,\u5fc5\u586b,\u4e0d\u80fd\u7a7a\u5b57\u7b26\u4e32\nstring \u53ef\u9009\u7684\u6b21\u7ea7key,\u4ec5\u5f53\u539f\u59cb\u503c\u4e3atable\u65f6\u6709\u6548,\u76f8\u5f53\u4e8e fdb.kv_get(key)[skey]\n\u8fd4\u56de\u503c\uff1a\nany \u5b58\u5728\u5219\u8fd4\u56de\u6570\u636e,\u5426\u5219\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\nif fdb.kvdb_init(\"env\", \"onchip_fdb\") then\n log.info(\"fdb\", fdb.kv_get(\"wendal\"))\nend\n", "prefix": "fdb.kv_get"}, "fdb.kv_del": {"body": "fdb.kv_del(${1:key})", "description": "fdb.kv_del(key) - \u6839\u636ekey\u5220\u9664\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nstring key\u7684\u540d\u79f0,\u5fc5\u586b,\u4e0d\u80fd\u7a7a\u5b57\u7b26\u4e32\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\nif fdb.kvdb_init(\"env\", \"onchip_fdb\") then\n log.info(\"fdb\", fdb.kv_del(\"wendal\"))\nend\n", "prefix": "fdb.kv_del"}, "fdb.kv_clr": {"body": "fdb.kv_clr()", "description": "fdb.kv_clr() - \u6e05\u7a7a\u6574\u4e2akv\u6570\u636e\u5e93\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- \u6e05\u7a7a\nfdb.kv_clr()\n", "prefix": "fdb.kv_clr"}, "fdb.kv_iter": {"body": "fdb.kv_iter(${1:iter})", "description": "fdb.kv_iter(iter) - kv\u8fed\u4ee3\u5668\u83b7\u53d6\u4e0b\u4e00\u4e2akey\n\u4f20\u5165\u503c\uff1a\nuserdata fdb.kv_iter()\u8fd4\u56de\u7684\u6307\u9488\n\u8fd4\u56de\u503c\uff1a\nstring \u6210\u529f\u8fd4\u56de\u5b57\u7b26\u4e32key\u503c, \u5426\u5219\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\n-- \u6e05\u7a7a\nlocal iter = fdb.kv_iter()\nif iter then\n while 1 do\n local k = fdb.kv_next(iter)\n if not k then\n break\n end\n log.info(\"fdb\", k, \"value\", fdb.kv_get(k))\n end\nend\n", "prefix": "fdb.kv_iter"}, "fdb.kv_stat": {"body": "fdb.kv_stat()", "description": "fdb.kv_stat() - \u83b7\u53d6kv\u6570\u636e\u5e93\u72b6\u6001\n\u8fd4\u56de\u503c\uff1a\nint \u5df2\u4f7f\u7528\u7684\u7a7a\u95f4,\u5355\u4f4d\u5b57\u8282\nint \u603b\u53ef\u7528\u7a7a\u95f4, \u5355\u4f4d\u5b57\u8282\nint \u603bkv\u952e\u503c\u5bf9\u6570\u91cf, \u5355\u4f4d\u4e2a\n\u4f8b\u5b50\uff1a\n-- \u672cAPI\u4e8e2022.07.23 \u6dfb\u52a0\nlocal used,maxs,kv_count = fdb.kv_stat()\nlog.info(\"fdb\", \"kv\", used,maxs,kv_count)\n", "prefix": "fdb.kv_stat"}, "fonts.list": {"body": "fonts.list(${1:tp})", "description": "fonts.list(tp) - \u8fd4\u56de\u56fa\u4ef6\u652f\u6301\u7684\u5b57\u4f53\u5217\u8868\n\u4f20\u5165\u503c\uff1a\nstring \u7c7b\u578b, \u9ed8\u8ba4 u8g2, \u8fd8\u53ef\u4ee5\u662flvgl\n\u8fd4\u56de\u503c\uff1a\ntable \u5b57\u4f53\u5217\u8868\n\u4f8b\u5b50\uff1a\n-- API\u65b0\u589e\u4e8e2022-07-12\nif fonts.list then\n log.info(\"fonts\", \"u8g2\", json.encode(fonts.list(\"u8g2\")))\nend\n", "prefix": "fonts.list"}, "fonts.u8g2_get": {"body": "fonts.u8g2_get(${1:name},${2:tp})", "description": "fonts.u8g2_get(name, tp) - \u83b7\u53d6\u5b57\u4f53\n\u4f20\u5165\u503c\uff1a\nstring \u5b57\u4f53\u540d\u79f0, \u4f8b\u5982opposansm8_chinese unifont_t_symbols\nstring \u7c7b\u578b, \u9ed8\u8ba4 u8g2, \u8fd8\u53ef\u4ee5\u662flvgl\n\u8fd4\u56de\u503c\uff1a\nuserdata \u82e5\u5b57\u4f53\u5b58\u653e,\u8fd4\u56de\u5b57\u4f53\u6307\u9488, \u5426\u5219\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\noppo_8 = fonts.get(\"opposansm8_chinese\", \"u8g2\")\nif oppo_8 then\n u8g2.SetFont(oppo_8)\nelse\n log.warn(\"fonts\", \"no such font opposansm8_chinese\")\nend\n-- \u82e5\u4f7f\u7528\u4e91\u7f16\u8bd1\u7684\u81ea\u5b9a\u4e49\u5b57\u5e93, \u4f7f\u7528\u65b9\u5f0f\u5982\u4e0b\noppo_8 = fonts.get(\"oppo_bold_8\", \"u8g2\") -- oppo_bold_8 \u662f\u4e91\u7f16\u8bd1\u754c\u9762\u7684\u5b57\u5e93\u547d\u540d\nif oppo_8 then\n u8g2.SetFont(oppo_8)\nelse\n log.warn(\"fonts\", \"no such font opposansm8_chinese\")\nend\n", "prefix": "fonts.u8g2_get"}, "fonts.u8g2_load": {"body": "fonts.u8g2_load(${1:path},${2:path})", "description": "fonts.u8g2_load(path, path) - \u4ece\u6587\u4ef6\u52a0\u8f7d\u5b57\u4f53\n\u4f20\u5165\u503c\uff1a\nstring \u5b57\u4f53\u8def\u5f84, \u4f8b\u5982 /luadb/abc.bin\nstring \u7c7b\u578b, \u9ed8\u8ba4 u8g2. \u4e5f\u652f\u6301lvgl\n\u8fd4\u56de\u503c\uff1a\nuserdata \u82e5\u5b57\u4f53\u5b58\u653e,\u8fd4\u56de\u5b57\u4f53\u6307\u9488, \u5426\u5219\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\n-- API\u65b0\u589e\u4e8e2022-07-11\n-- \u63d0\u9192: \u82e5\u6587\u4ef6\u4f4d\u4e8e/luadb\u4e0b, \u4e0d\u9700\u8981\u5360\u7528\u5185\u5b58\n-- \u82e5\u6587\u4ef6\u5904\u4e8e\u5176\u4ed6\u8def\u5f84, \u4f8b\u5982tf/sd\u5361, spi flash, \u4f1a\u81ea\u52a8\u52a0\u8f7d\u5230\u5185\u5b58, \u6d88\u8017lua vm\u7684\u5185\u5b58\u7a7a\u95f4\n-- \u52a0\u8f7d\u540e\u8bf7\u9002\u5f53\u5f15\u7528, \u4e0d\u5fc5\u53cd\u590d\u52a0\u8f7d\u540c\u4e00\u4e2a\u5b57\u4f53\u6587\u4ef6\noppo12 = fonts.load(\"/luadb/oppo12.bin\")\nif oppo12 then\n u8g2.SetFont(oppo12)\nelse\n log.warn(\"fonts\", \"no such font file oppo12.bin\")\nend\n", "prefix": "fonts.u8g2_load"}, "fota.init": {"body": "fota.init(${1:storge_location},${2:len},${3:param1})", "description": "fota.init(storge_location, len, param1) - \u521d\u59cb\u5316fota\u6d41\u7a0b\n\u4f20\u5165\u503c\uff1a\nint/string fota\u6570\u636e\u5b58\u50a8\u7684\u8d77\u59cb\u4f4d\u7f6e
\u5982\u679c\u662fint\uff0c\u5219\u662f\u7531\u82af\u7247\u5e73\u53f0\u5177\u4f53\u5224\u65ad
\u5982\u679c\u662fstring\uff0c\u5219\u5b58\u50a8\u5728\u6587\u4ef6\u7cfb\u7edf\u4e2d
\u5982\u679c\u4e3anil\uff0c\u5219\u7531\u5e95\u5c42\u51b3\u5b9a\u5b58\u50a8\u4f4d\u7f6e\nint \u6570\u636e\u5b58\u50a8\u7684\u6700\u5927\u7a7a\u95f4\nuserdata param1\uff0c\u5982\u679c\u6570\u636e\u5b58\u50a8\u5728spiflash\u65f6,\u4e3aspi_device\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u8fd4\u56detrue, \u5931\u8d25\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- \u521d\u59cb\u5316fota\u6d41\u7a0b\nlocal result = fota.init(0, 0x00300000, spi_device)\t--\u7531\u4e8e105\u7684flash\u4ece0x01000000\u5f00\u59cb\uff0c\u6240\u4ee50\u5c31\u662f\u5916\u90e8spiflash\nlocal result = fota.init()\t--ec618\u4f7f\u7528\u56fa\u5b9a\u5185\u90e8\u5730\u5740\uff0c\u6240\u4ee5\u4e0d\u9700\u8981\u53c2\u6570\u4e86\n", "prefix": "fota.init"}, "fota.wait": {"body": "fota.wait()", "description": "fota.wait() - \u7b49\u5f85\u5e95\u5c42fota\u6d41\u7a0b\u51c6\u5907\u597d\n\u4f20\u5165\u503c\uff1a\nboolean \u662f\u5426\u5b8c\u6574\u8d70\u5b8c\u6d41\u7a0b\uff0ctrue \u8868\u793a\u6b63\u786e\u8d70\u5b8c\u6d41\u7a0b\u4e86\n\u8fd4\u56de\u503c\uff1a\nboolean \u51c6\u5907\u597d\u8fd4\u56detrue\n\u4f8b\u5b50\uff1a\nlocal isDone = fota.wait()\n", "prefix": "fota.wait"}, "fota.run": {"body": "fota.run(${1:buff})", "description": "fota.run(buff) - \u5199\u5165fota\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nzbuff/string fota\u6570\u636e\uff0c\u5c3d\u91cf\u7528zbuff\n\u8fd4\u56de\u503c\uff1a\nboolean \u6709\u5f02\u5e38\u8fd4\u56defalse\uff0c\u65e0\u5f02\u5e38\u8fd4\u56detrue\nboolean \u63a5\u6536\u5230\u6700\u540e\u4e00\u5757\u8fd4\u56detrue\nint \u8fd8\u672a\u5199\u5165\u7684\u6570\u636e\u91cf\uff0c\u8d85\u8fc764K\u5fc5\u987b\u505a\u7b49\u5f85\n\u4f8b\u5b50\uff1a\nlocal result, isDone, cache = fota.run(buf) -- \u5199\u5165fota\u6d41\u7a0b\n\n-- \u63d0\u793a: \uff0c\u5982\u679c\u4f20\u5165\u7684\u662fzbuff\uff0c\u5199\u5165\u6210\u529f\u540e\uff0c\u8bf7\u81ea\u884c\u6e05\u7a7azbuff\u5185\u7684\u6570\u636e\n", "prefix": "fota.run"}, "fota.file": {"body": "fota.file(${1:path})", "description": "fota.file(path) - \u4ece\u6307\u5b9a\u6587\u4ef6\u8bfb\u53d6fota\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nstring \u6587\u4ef6\u8def\u5f84\n\u8fd4\u56de\u503c\uff1a\nboolean \u6709\u5f02\u5e38\u8fd4\u56defalse\uff0c\u65e0\u5f02\u5e38\u8fd4\u56detrue\nboolean \u63a5\u6536\u5230\u6700\u540e\u4e00\u5757\u8fd4\u56detrue\nint \u8fd8\u672a\u5199\u5165\u7684\u6570\u636e\u91cf\uff0c\u8d85\u8fc764K\u5fc5\u987b\u505a\u7b49\u5f85\n\u4f8b\u5b50\uff1a\nlocal result, isDone, cache = fota.file(\"/xxx.bin\") -- \u5199\u5165fota\u6d41\u7a0b\n-- \u672cAPI\u4e8e2023.03.23 \u6dfb\u52a0\n", "prefix": "fota.file"}, "fota.isDone": {"body": "fota.isDone()", "description": "fota.isDone() - \u7b49\u5f85\u5e95\u5c42fota\u6d41\u7a0b\u5b8c\u6210\n\u8fd4\u56de\u503c\uff1a\nboolean \u6709\u5f02\u5e38\u8fd4\u56defalse\uff0c\u65e0\u5f02\u5e38\u8fd4\u56detrue\nboolean \u5199\u5165\u5230\u6700\u540e\u4e00\u5757\u8fd4\u56detrue\n\u4f8b\u5b50\uff1a\nlocal result, isDone = fota.isDone()\n", "prefix": "fota.isDone"}, "fota.finish": {"body": "fota.finish(${1:is_ok})", "description": "fota.finish(is_ok) - \u7ed3\u675ffota\u6d41\u7a0b\n\u4f20\u5165\u503c\uff1a\nboolean \u662f\u5426\u5b8c\u6574\u8d70\u5b8c\u6d41\u7a0b\uff0ctrue \u8868\u793a\u6b63\u786e\u8d70\u5b8c\u6d41\u7a0b\u4e86\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u8fd4\u56detrue, \u5931\u8d25\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- \u7ed3\u675ffota\u6d41\u7a0b\nlocal result = fota.finish(true)\n", "prefix": "fota.finish"}, "fs.fsstat": {"body": "fs.fsstat(${1:path})", "description": "fs.fsstat(path) - \u83b7\u53d6\u6587\u4ef6\u7cfb\u7edf\u4fe1\u606f\n\u4f20\u5165\u503c\uff1a\nstring \u8def\u5f84,\u9ed8\u8ba4\"/\",\u53ef\u9009\n\u8fd4\u56de\u503c\uff1a\nboolean \u83b7\u53d6\u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\nint \u603b\u7684block\u6570\u91cf\nint \u5df2\u4f7f\u7528\u7684block\u6570\u91cf\nint block\u7684\u5927\u5c0f,\u5355\u4f4d\u5b57\u8282\nstring \u6587\u4ef6\u7cfb\u7edf\u7c7b\u578b,\u4f8b\u5982lfs\u4ee3\u8868littlefs\n\u4f8b\u5b50\uff1a\n-- \u6253\u5370\u6839\u5206\u533a\u7684\u4fe1\u606f\nlog.info(\"fsstat\", fs.fsstat(\"/\"))\n", "prefix": "fs.fsstat"}, "fs.fsize": {"body": "fs.fsize(${1:path})", "description": "fs.fsize(path) - \u83b7\u53d6\u6587\u4ef6\u5927\u5c0f\n\u4f20\u5165\u503c\uff1a\nstring \u6587\u4ef6\u8def\u5f84\n\u8fd4\u56de\u503c\uff1a\nint \u6587\u4ef6\u5927\u5c0f,\u82e5\u83b7\u53d6\u5931\u8d25\u4f1a\u8fd4\u56de0\n\u4f8b\u5b50\uff1a\n-- \u6253\u5370main.luac\u7684\u5927\u5c0f\nlog.info(\"fsize\", fs.fsize(\"/main.luac\"))\n", "prefix": "fs.fsize"}, "fskv.init": {"body": "fskv.init()", "description": "fskv.init() - \u521d\u59cb\u5316kv\u6570\u636e\u5e93\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\nif fskv.init() then\n log.info(\"fdb\", \"kv\u6570\u636e\u5e93\u521d\u59cb\u5316\u6210\u529f\")\nend\n\n-- \u5173\u4e8e\u6e05\u7a7afdb\u5e93\n-- \u4e0b\u8f7d\u5de5\u5177\u662f\u6ca1\u6709\u63d0\u4f9b\u76f4\u63a5\u6e05\u9664fdb\u6570\u636e\u7684\u9014\u5f84\u7684, \u4f46\u6709\u529e\u6cd5\u89e3\u51b3\n-- \u5199\u4e00\u4e2amain.lua, \u6267\u884c fskv.kvdb_init \u540e \u6267\u884c fskv.clear() \u5373\u53ef\u5168\u6e05fdb\u6570\u636e.\n", "prefix": "fskv.init"}, "fskv.set": {"body": "fskv.set(${1:key},${2:value})", "description": "fskv.set(key, value) - \u8bbe\u7f6e\u4e00\u5bf9kv\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nstring key\u7684\u540d\u79f0,\u5fc5\u586b,\u4e0d\u80fd\u7a7a\u5b57\u7b26\u4e32\nstring \u7528\u6237\u6570\u636e,\u5fc5\u586b,\u4e0d\u80fdnil, \u652f\u6301\u5b57\u7b26\u4e32/\u6570\u503c/table/\u5e03\u5c14\u503c, \u6570\u636e\u957f\u5ea6\u6700\u59274095\u5b57\u8282\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- \u8bbe\u7f6e\u6570\u636e, \u5b57\u7b26\u4e32,\u6570\u503c,table,\u5e03\u5c14\u503c,\u5747\u53ef\n-- \u4f46\u4e0d\u53ef\u4ee5\u662fnil, function, userdata, task\nlog.info(\"fdb\", fskv.set(\"wendal\", \"goodgoodstudy\"))\nlog.info(\"fdb\", fskv.set(\"upgrade\", true))\nlog.info(\"fdb\", fskv.set(\"timer\", 1))\nlog.info(\"fdb\", fskv.set(\"bigd\", {name=\"wendal\",age=123}))\n", "prefix": "fskv.set"}, "fskv.sett": {"body": "fskv.sett(${1:key},${2:skey},${3:value})", "description": "fskv.sett(key, skey, value) - \u8bbe\u7f6etable\u5185\u7684\u952e\u503c\u5bf9\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nstring key\u7684\u540d\u79f0,\u5fc5\u586b,\u4e0d\u80fd\u7a7a\u5b57\u7b26\u4e32\nstring table\u7684key\u540d\u79f0, \u5fc5\u586b, \u4e0d\u80fd\u662f\u7a7a\u5b57\u7b26\u4e32\nstring \u7528\u6237\u6570\u636e,\u5fc5\u586b,\u652f\u6301\u5b57\u7b26\u4e32/\u6570\u503c/table/\u5e03\u5c14\u503c, \u6570\u636e\u957f\u5ea6\u6700\u59274095\u5b57\u8282\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse/nil\n\u4f8b\u5b50\uff1a\n-- \u672cAPI\u57282023.7.26\u65b0\u589e,\u6ce8\u610f\u4e0eset\u51fd\u6570\u533a\u522b\n-- \u8bbe\u7f6e\u6570\u636e, \u5b57\u7b26\u4e32,\u6570\u503c,table,\u5e03\u5c14\u503c,\u5747\u53ef\n-- \u4f46\u4e0d\u53ef\u4ee5\u662ffunction, userdata, task\nlog.info(\"fdb\", fskv.sett(\"mytable\", \"wendal\", \"goodgoodstudy\"))\nlog.info(\"fdb\", fskv.sett(\"mytable\", \"upgrade\", true))\nlog.info(\"fdb\", fskv.sett(\"mytable\", \"timer\", 1))\nlog.info(\"fdb\", fskv.sett(\"mytable\", \"bigd\", {name=\"wendal\",age=123}))\n\n-- \u4e0b\u5217\u8bed\u53e5\u5c06\u6253\u5370\u51fa4\u4e2a\u5143\u7d20\u7684table\nlog.info(\"fdb\", fskv.get(\"mytable\"), json.encode(fskv.get(\"mytable\")))\n-- \u6ce8\u610f: \u5982\u679ckey\u4e0d\u5b58\u5728, \u6216\u8005\u539f\u672c\u7684\u503c\u4e0d\u662ftable\u7c7b\u578b,\u5c06\u4f1a\u5b8c\u5168\u8986\u76d6\n-- \u4f8b\u5982\u4e0b\u5217\u5199\u6cd5,\u6700\u7ec8\u83b7\u53d6\u5230\u7684\u662ftable,\u800c\u975e\u7b2c\u4e00\u884c\u7684\u5b57\u7b26\u4e32\nlog.info(\"fdb\", fskv.set(\"mykv\", \"123\"))\nlog.info(\"fdb\", fskv.sett(\"mykv\", \"age\", \"123\")) -- \u4fdd\u5b58\u7684\u5c06\u662f {age:\"123\"}\n\n\n-- \u5982\u679c\u8bbe\u7f6e\u7684\u6570\u636e\u586bnil, \u4ee3\u8868\u5220\u9664\u5bf9\u5e94\u7684key\nlog.info(\"fdb\", fskv.sett(\"mykv\", \"name\", \"wendal\"))\nlog.info(\"fdb\", fskv.sett(\"mykv\", \"name\")) -- \u76f8\u5f53\u4e8e\u5220\u9664\n-- \n", "prefix": "fskv.sett"}, "fskv.get": {"body": "fskv.get(${1:key},${2:skey})", "description": "fskv.get(key, skey) - \u6839\u636ekey\u83b7\u53d6\u5bf9\u5e94\u7684\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nstring key\u7684\u540d\u79f0,\u5fc5\u586b,\u4e0d\u80fd\u7a7a\u5b57\u7b26\u4e32\nstring \u53ef\u9009\u7684\u6b21\u7ea7key,\u4ec5\u5f53\u539f\u59cb\u503c\u4e3atable\u65f6\u6709\u6548,\u76f8\u5f53\u4e8e fskv.get(key)[skey]\n\u8fd4\u56de\u503c\uff1a\nany \u5b58\u5728\u5219\u8fd4\u56de\u6570\u636e,\u5426\u5219\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\nif fskv.init() then\n log.info(\"fdb\", fskv.get(\"wendal\"))\nend\n\n-- \u82e5\u9700\u8981\"\u9ed8\u8ba4\u503c\", \u5bf9\u5e94\u975ebool\u5e03\u5c14\u503c, \u53ef\u4ee5\u8fd9\u6837\u5199\nlocal v = fskv.get(\"wendal\") or \"123\"\n", "prefix": "fskv.get"}, "fskv.del": {"body": "fskv.del(${1:key})", "description": "fskv.del(key) - \u6839\u636ekey\u5220\u9664\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nstring key\u7684\u540d\u79f0,\u5fc5\u586b,\u4e0d\u80fd\u7a7a\u5b57\u7b26\u4e32\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\nlog.info(\"fdb\", fskv.del(\"wendal\"))\n", "prefix": "fskv.del"}, "fskv.clear": {"body": "fskv.clear()", "description": "fskv.clear() - \u6e05\u7a7a\u6574\u4e2akv\u6570\u636e\u5e93\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- \u6e05\u7a7a\nfskv.clear()\n", "prefix": "fskv.clear"}, "fskv.iter": {"body": "fskv.iter()", "description": "fskv.iter() - kv\u6570\u636e\u5e93\u8fed\u4ee3\u5668\n\u8fd4\u56de\u503c\uff1a\nuserdata \u6210\u529f\u8fd4\u56de\u8fed\u4ee3\u5668\u6307\u9488,\u5426\u5219\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\n-- \u6e05\u7a7a\nlocal iter = fskv.iter()\nif iter then\n while 1 do\n local k = fskv.next(iter)\n if not k then\n break\n end\n log.info(\"fdb\", k, \"value\", fskv.kv_get(k))\n end\nend\n", "prefix": "fskv.iter"}, "fskv.next": {"body": "fskv.next(${1:iter})", "description": "fskv.next(iter) - kv\u8fed\u4ee3\u5668\u83b7\u53d6\u4e0b\u4e00\u4e2akey\n\u4f20\u5165\u503c\uff1a\nuserdata fskv.iter()\u8fd4\u56de\u7684\u6307\u9488\n\u8fd4\u56de\u503c\uff1a\nstring \u6210\u529f\u8fd4\u56de\u5b57\u7b26\u4e32key\u503c, \u5426\u5219\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\n-- \u6e05\u7a7a\nlocal iter = fskv.iter()\nif iter then\n while 1 do\n local k = fskv.next(iter)\n if not k then\n break\n end\n log.info(\"fskv\", k, \"value\", fskv.get(k))\n end\nend\n", "prefix": "fskv.next"}, "fskv.status": {"body": "fskv.status()", "description": "fskv.status() - \u83b7\u53d6kv\u6570\u636e\u5e93\u72b6\u6001\n\u8fd4\u56de\u503c\uff1a\nint \u5df2\u4f7f\u7528\u7684\u7a7a\u95f4,\u5355\u4f4d\u5b57\u8282\nint \u603b\u53ef\u7528\u7a7a\u95f4, \u5355\u4f4d\u5b57\u8282\nint \u603bkv\u952e\u503c\u5bf9\u6570\u91cf, \u5355\u4f4d\u4e2a\n\u4f8b\u5b50\uff1a\nlocal used, total,kv_count = fskv.status()\nlog.info(\"fdb\", \"kv\", used,total,kv_count)\n", "prefix": "fskv.status"}, "ftp.login": {"body": "ftp.login(${1:adapter},${2:ip_addr},${3:port},${4:username},${5:password})", "description": "ftp.login(adapter,ip_addr,port,username,password) - FTP\u5ba2\u6237\u7aef\n\u4f20\u5165\u503c\uff1a\nint \u9002\u914d\u5668\u5e8f\u53f7, \u53ea\u80fd\u662fsocket.ETH0, socket.STA, socket.AP,\u5982\u679c\u4e0d\u586b,\u4f1a\u9009\u62e9\u5e73\u53f0\u81ea\u5e26\u7684\u65b9\u5f0f,\u7136\u540e\u662f\u6700\u540e\u4e00\u4e2a\u6ce8\u518c\u7684\u9002\u914d\u5668\nstring ip_addr \u5730\u5740\nstring port \u7aef\u53e3,\u9ed8\u8ba421\nstring username \u7528\u6237\u540d\nstring password \u5bc6\u7801\nbool/table \u662f\u5426\u4e3assl\u52a0\u5bc6\u8fde\u63a5,\u9ed8\u8ba4\u4e0d\u52a0\u5bc6,true\u4e3a\u65e0\u8bc1\u4e66\u6700\u7b80\u5355\u7684\u52a0\u5bc6\uff0ctable\u4e3a\u6709\u8bc1\u4e66\u7684\u52a0\u5bc6
server_cert \u670d\u52a1\u5668ca\u8bc1\u4e66\u6570\u636e
client_cert \u5ba2\u6237\u7aefca\u8bc1\u4e66\u6570\u636e
client_key \u5ba2\u6237\u7aef\u79c1\u94a5\u52a0\u5bc6\u6570\u636e
client_password \u5ba2\u6237\u7aef\u79c1\u94a5\u53e3\u4ee4\u6570\u636e\n\u8fd4\u56de\u503c\uff1a\nbool/string \u6210\u529f\u8fd4\u56detrue \u5931\u8d25\u8fd4\u56destring\n\u4f8b\u5b50\uff1a\nftp_login = ftp.login(nil,\"xxx\")\n", "prefix": "ftp.login"}, "ftp.command": {"body": "ftp.command(${1:cmd})", "description": "ftp.command(cmd) - FTP\u547d\u4ee4\n\u4f20\u5165\u503c\uff1a\nstring cmd \u547d\u4ee4 \u76ee\u524d\u652f\u6301:NOOP SYST TYPE PWD MKD CWD CDUP RMD DELE LIST\n\u8fd4\u56de\u503c\uff1a\nstring \u6210\u529f\u8fd4\u56detrue \u5931\u8d25\u8fd4\u56destring\n\u4f8b\u5b50\uff1a\n print(ftp.command(\"NOOP\").wait())\n print(ftp.command(\"SYST\").wait())\n print(ftp.command(\"TYPE I\").wait())\n print(ftp.command(\"PWD\").wait())\n print(ftp.command(\"MKD QWER\").wait())\n print(ftp.command(\"CWD /QWER\").wait())\n print(ftp.command(\"CDUP\").wait())\n print(ftp.command(\"RMD QWER\").wait())\n\tprint(ftp.command(\"DELE /1/12222.txt\").wait())\n", "prefix": "ftp.command"}, "ftp.pull": {"body": "ftp.pull(${1:local_name},${2:remote_name})", "description": "ftp.pull(local_name,remote_name) - FTP\u6587\u4ef6\u4e0b\u8f7d\n\u4f20\u5165\u503c\uff1a\nstring local_name \u672c\u5730\u6587\u4ef6\nstring remote_name \u670d\u52a1\u5668\u6587\u4ef6\n\u8fd4\u56de\u503c\uff1a\nbool/string \u6210\u529f\u8fd4\u56detrue \u5931\u8d25\u8fd4\u56destring\n\u4f8b\u5b50\uff1a\nftp.pull(\"/1222.txt\",\"/1222.txt\").wait()\n", "prefix": "ftp.pull"}, "ftp.push": {"body": "ftp.push(${1:local_name},${2:remote_name})", "description": "ftp.push(local_name,remote_name) - FTP\u6587\u4ef6\u4e0a\u4f20\n\u4f20\u5165\u503c\uff1a\nstring local_name \u672c\u5730\u6587\u4ef6\nstring remote_name \u670d\u52a1\u5668\u6587\u4ef6\n\u8fd4\u56de\u503c\uff1a\nbool/string \u6210\u529f\u8fd4\u56detrue \u5931\u8d25\u8fd4\u56destring\n\u4f8b\u5b50\uff1a\nftp.push(\"/1222.txt\",\"/1222.txt\").wait()\n", "prefix": "ftp.push"}, "ftp.close": {"body": "ftp.close()", "description": "ftp.close() - FTP\u5ba2\u6237\u7aef\u5173\u95ed\n\u8fd4\u56de\u503c\uff1a\nbool/string \u6210\u529f\u8fd4\u56detrue \u5931\u8d25\u8fd4\u56destring\n\u4f8b\u5b50\uff1a\nftp.close().wait()\n", "prefix": "ftp.close"}, "sm.sm2encrypt": {"body": "sm.sm2encrypt(${1:pkx},${2:pky},${3:data},${4:mode},${5:mode2})", "description": "sm.sm2encrypt(pkx,pky,data, mode, mode2) - sm2\u7b97\u6cd5\u52a0\u5bc6\n\u4f20\u5165\u503c\uff1a\nstring \u516c\u94a5x,\u5fc5\u9009. HEX\u5b57\u7b26\u4e32\nstring \u516c\u94a5y,\u5fc5\u9009. HEX\u5b57\u7b26\u4e32\nstring \u5f85\u8ba1\u7b97\u7684\u6570\u636e,\u5fc5\u9009,\u6700\u957f32\u5b57\u8282, \u975eHEX\u5b57\u7b26\u4e32\nboolean \u8f93\u51fa\u6a21\u5f0f,\u9ed8\u8ba4false. false-GMSSL\u9ed8\u8ba4\u683c\u5f0fDER, true-\u7f51\u7ad9\u517c\u5bb9\u6a21\u5f0f\nboolean \u6807\u51c6\u7248\u672c,\u9ed8\u8ba4false. false-C1C3C2\u65b0\u56fd\u9645, true-C1C2C3\u8001\u56fd\u9645\n\u8fd4\u56de\u503c\uff1a\nstring \u52a0\u5bc6\u540e\u7684\u5b57\u7b26\u4e32, \u539f\u6837\u8f93\u51fa,\u672a\u7ecfHEX\u8f6c\u6362. \u82e5\u52a0\u5bc6\u5931\u8d25\u4f1a\u8fd4\u56denil\u6216\u7a7a\u5b57\u7b26\u4e32\n\u4f8b\u5b50\uff1a\n-- \u63d0\u793a mode/mode2 \u53c2\u6570\u662f 2023.10.17 \u65b0\u589e\n-- \u7531\u4e8eSM2\u5728\u5404\u5e73\u53f0\u7684\u5b9e\u73b0\u90fd\u6709\u5dee\u5f02,\u7528\u6cd5\u52a1\u5fc5\u53c2\u8003demo\n", "prefix": "sm.sm2encrypt"}, "sm.sm2decrypt": {"body": "sm.sm2decrypt(${1:private},${2:data},${3:mode},${4:mode2})", "description": "sm.sm2decrypt(private,data,mode,mode2) - sm2\u7b97\u6cd5\u89e3\u5bc6\n\u4f20\u5165\u503c\uff1a\nstring \u79c1\u94a5,\u5fc5\u9009,HEX\u5b57\u7b26\u4e32\nstring \u5f85\u8ba1\u7b97\u7684\u6570\u636e,\u5fc5\u9009,\u539f\u59cb\u6570\u636e,\u975eHEX\u5b57\u7b26\u4e32\nboolean \u8f93\u51fa\u6a21\u5f0f,\u9ed8\u8ba4false. false-GMSSL\u9ed8\u8ba4\u683c\u5f0fDER, true-\u7f51\u7ad9\u517c\u5bb9\u6a21\u5f0f\nboolean \u6807\u51c6\u7248\u672c,\u9ed8\u8ba4false. false-C1C3C2\u65b0\u56fd\u9645, true-C1C2C3\u8001\u56fd\u9645\n\u8fd4\u56de\u503c\uff1a\nstring \u89e3\u5bc6\u540e\u7684\u5b57\u7b26\u4e32,\u672a\u7ecfHEX\u8f6c\u6362.\u82e5\u89e3\u5bc6\u5931\u8d25\u4f1a\u8fd4\u56denil\u6216\u7a7a\u5b57\u7b26\u4e32\n\u4f8b\u5b50\uff1a\n-- \u63d0\u793a mode/mode2 \u53c2\u6570\u662f 2023.10.17 \u65b0\u589e\n-- \u7531\u4e8eSM2\u5728\u5404\u5e73\u53f0\u7684\u5b9e\u73b0\u90fd\u6709\u5dee\u5f02,\u7528\u6cd5\u52a1\u5fc5\u53c2\u8003demo\n", "prefix": "sm.sm2decrypt"}, "sm.sm3": {"body": "sm.sm3(${1:data})", "description": "sm.sm3(data) - sm3\u7b97\u6cd5,\u7b97HASH\u503c\n\u4f20\u5165\u503c\uff1a\nstring \u5f85\u8ba1\u7b97\u7684\u6570\u636e,\u5fc5\u9009\n\u8fd4\u56de\u503c\uff1a\nstring \u5bf9\u5e94\u7684hash\u503c\n\u4f8b\u5b50\uff1a\nlocal encodeStr = gmssl.sm3(\"lqlq666lqlq946\")\nlog.info(\"testsm.sm3update\",string.toHex(encodeStr))\n", "prefix": "sm.sm3"}, "sm.sm3hmac": {"body": "sm.sm3hmac(${1:data},${2:key})", "description": "sm.sm3hmac(data, key) - sm3\u7b97\u6cd5,\u7b97HASH\u503c,\u4f46\u5e26HMAC\n\u4f20\u5165\u503c\uff1a\nstring \u5f85\u8ba1\u7b97\u7684\u6570\u636e,\u5fc5\u9009\nstring \u5bc6\u94a5\n\u8fd4\u56de\u503c\uff1a\nstring \u5bf9\u5e94\u7684hash\u503c\n\u4f8b\u5b50\uff1a\nlocal encodeStr = gmssl.sm3hmac(\"lqlq666lqlq946\", \"123\")\nlog.info(\"testsm.sm3update\",string.toHex(encodeStr))\n", "prefix": "sm.sm3hmac"}, "gmssl.sm4encrypt": {"body": "gmssl.sm4encrypt(${1:mode},${2:padding},${3:originStr},${4:password})", "description": "gmssl.sm4encrypt(mode,padding,originStr,password) - SM4\u52a0\u5bc6\u7b97\u6cd5\n\u4f20\u5165\u503c\uff1a\nstring \u52a0\u5bc6\u6a21\u5f0f, CBC\u6216ECB \nstring \u586b\u5145\u65b9\u5f0f, NONE/ZERO/PKCS5/PKCS7\nstring \u52a0\u5bc6\u7684\u5b57\u7b26\u4e32\nstring \u5bc6\u94a5\n\u8fd4\u56de\u503c\uff1a\nstring \u52a0\u5bc6\u540e\u7684\u6570\u636e\n\u4f8b\u5b50\uff1a\nlocal originStr = \"SM4 ECB ZeroPadding test\"\n--\u52a0\u5bc6\u6a21\u5f0f\uff1aECB\uff1b\u586b\u5145\u65b9\u5f0f\uff1aZeroPadding\uff1b\u5bc6\u94a5\uff1a1234567890123456\uff1b\u5bc6\u94a5\u957f\u5ea6\uff1a128 bit\nlocal encodeStr = gmssl.sm4encrypt(\"ECB\",\"ZERO\",originStr,\"1234567890123456\")\nprint(originStr,\"encrypt\",string.toHex(encodeStr))\nlog.info(\"testsm.decrypt\",gmssl.sm4decrypt(\"ECB\",\"ZERO\",encodeStr,\"1234567890123456\"))\n\noriginStr = \"SM4 ECB Pkcs5Padding test\"\n--\u52a0\u5bc6\u6a21\u5f0f\uff1aECB\uff1b\u586b\u5145\u65b9\u5f0f\uff1aPkcs5Padding\uff1b\u5bc6\u94a5\uff1a1234567890123456\uff1b\u5bc6\u94a5\u957f\u5ea6\uff1a128 bit\nencodeStr = gmssl.sm4encrypt(\"ECB\",\"PKCS5\",originStr,\"1234567890123456\")\nprint(originStr,\"encrypt\",string.toHex(encodeStr))\nlog.info(\"testsm.decrypt\",gmssl.sm4decrypt(\"ECB\",\"PKCS5\",encodeStr,\"1234567890123456\"))\n\noriginStr = \"SM4 CBC Pkcs5Padding test\"\n--\u52a0\u5bc6\u6a21\u5f0f\uff1aCBC\uff1b\u586b\u5145\u65b9\u5f0f\uff1aPkcs5Padding\uff1b\u5bc6\u94a5\uff1a1234567890123456\uff1b\u5bc6\u94a5\u957f\u5ea6\uff1a256 bit\uff1b\u504f\u79fb\u91cf\uff1a1234567890666666\nencodeStr = gmssl.sm4encrypt(\"CBC\",\"PKCS5\",originStr,\"1234567890123456\",\"1234567890666666\")\nprint(originStr,\"encrypt\",string.toHex(encodeStr))\nlog.info(\"testsm.decrypt\",gmssl.sm4decrypt(\"CBC\",\"PKCS5\",encodeStr,\"1234567890123456\",\"1234567890666666\"))\n", "prefix": "gmssl.sm4encrypt"}, "gmssl.sm4decrypt": {"body": "gmssl.sm4decrypt(${1:mode},${2:padding},${3:encodeStr},${4:password})", "description": "gmssl.sm4decrypt(mode,padding,encodeStr,password) - SM4\u89e3\u5bc6\u7b97\u6cd5\n\u4f20\u5165\u503c\uff1a\nstring \u52a0\u5bc6\u6a21\u5f0f, CBC\u6216ECB \nstring \u586b\u5145\u65b9\u5f0f, NONE/ZERO/PKCS5/PKCS7\nstring \u5df2\u52a0\u5bc6\u7684\u5b57\u7b26\u4e32\nstring \u5bc6\u94a5\n\u8fd4\u56de\u503c\uff1a\nstring \u89e3\u5bc6\u7684\u5b57\u7b26\u4e32\n\u4f8b\u5b50\uff1a\n-- \u53c2\u8003gmssl.sm4encrypt\n", "prefix": "gmssl.sm4decrypt"}, "sm.sm2sign": {"body": "sm.sm2sign(${1:private},${2:data},${3:id})", "description": "sm.sm2sign(private,data,id) - sm2\u7b97\u6cd5\u7b7e\u540d\n\u4f20\u5165\u503c\uff1a\nstring \u79c1\u94a5,\u5fc5\u9009,HEX\u5b57\u7b26\u4e32\nstring \u5f85\u8ba1\u7b97\u7684\u6570\u636e,\u5fc5\u9009,\u539f\u59cb\u6570\u636e,\u975eHEX\u5b57\u7b26\u4e32\nstring id\u503c,\u975eHEX\u5b57\u7b26\u4e32,\u53ef\u9009,\u9ed8\u8ba4\u503c\"1234567812345678\"\n\u8fd4\u56de\u503c\uff1a\nstring \u524d\u9762\u5b57\u7b26\u4e32,\u672a\u7ecfHEX\u8f6c\u6362.\u82e5\u7b7e\u540d\u5931\u8d25\u4f1a\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\n-- \u672cAPI\u4e8e 2023.10.19 \u65b0\u589e\n-- \u5177\u4f53\u7528\u6cd5\u8bf7\u67e5\u9605demo\n", "prefix": "sm.sm2sign"}, "sm.sm2verify": {"body": "sm.sm2verify(${1:pkx},${2:pky},${3:data},${4:id},${5:sig})", "description": "sm.sm2verify(pkx, pky, data, id, sig) - sm2\u7b97\u6cd5\u9a8c\u7b7e\n\u4f20\u5165\u503c\uff1a\nstring \u516c\u94a5X,\u5fc5\u9009,HEX\u5b57\u7b26\u4e32\nstring \u516c\u94a5Y,\u5fc5\u9009,HEX\u5b57\u7b26\u4e32\nstring \u5f85\u8ba1\u7b97\u7684\u6570\u636e,\u5fc5\u9009,\u539f\u59cb\u6570\u636e,\u975eHEX\u5b57\u7b26\u4e32\nstring id\u503c,\u975eHEX\u5b57\u7b26\u4e32,\u53ef\u9009,\u9ed8\u8ba4\u503c\"1234567812345678\"\nstring \u7b7e\u540d\u6570\u636e,\u5fc5\u987b64\u5b57\u8282,\u975eHEX\u5b57\u7b26\u4e32\n\u8fd4\u56de\u503c\uff1a\nboolean \u9a8c\u8bc1\u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\n-- \u672cAPI\u4e8e 2023.10.19 \u65b0\u589e\n-- \u5177\u4f53\u7528\u6cd5\u8bf7\u67e5\u9605demo\n", "prefix": "sm.sm2verify"}, "gpio.setup": {"body": "gpio.setup(${1:pin},${2:mode},${3:pull},${4:irq},${5:alt})", "description": "gpio.setup(pin, mode, pull, irq, alt) - \u8bbe\u7f6e\u7ba1\u811a\u529f\u80fd\n\u4f20\u5165\u503c\uff1a\nint pin gpio\u7f16\u53f7,\u5fc5\u987b\u662f\u6570\u503c\nany mode \u8f93\u5165\u8f93\u51fa\u6a21\u5f0f\uff1a
\u6570\u5b570/1\u4ee3\u8868\u8f93\u51fa\u6a21\u5f0f
nil\u4ee3\u8868\u8f93\u5165\u6a21\u5f0f
function\u4ee3\u8868\u4e2d\u65ad\u6a21\u5f0f\nint pull \u4e0a\u62c9\u4e0b\u5217\u6a21\u5f0f, \u53ef\u4ee5\u662fgpio.PULLUP \u6216 gpio.PULLDOWN, \u9700\u8981\u6839\u636e\u5b9e\u9645\u786c\u4ef6\u9009\u7528\nint irq \u4e2d\u65ad\u89e6\u53d1\u6a21\u5f0f,\u9ed8\u8ba4gpio.BOTH\u3002\u4e2d\u65ad\u89e6\u53d1\u6a21\u5f0f
\u4e0a\u5347\u6cbfgpio.RISING
\u4e0b\u964d\u6cbfgpio.FALLING
\u4e0a\u5347\u548c\u4e0b\u964d\u90fd\u89e6\u53d1gpio.BOTH \nint alt \u590d\u7528\u9009\u9879\uff0c\u76ee\u524d\u53ea\u6709EC618\u5e73\u53f0\u9700\u8981\u8fd9\u4e2a\u53c2\u6570\uff0c\u6709\u4e9bGPIO\u53ef\u4ee5\u590d\u7528\u5230\u4e0d\u540c\u5f15\u811a\u4e0a\uff0c\u53ef\u4ee5\u9009\u62e9\u590d\u7528\u9009\u9879\uff080\u6216\u80054\uff09\u4ece\u800c\u590d\u7528\u5230\u5bf9\u5e94\u7684\u5f15\u811a\u4e0a\n\u8fd4\u56de\u503c\uff1a\nany \u8f93\u51fa\u6a21\u5f0f\u8fd4\u56de\u8bbe\u7f6e\u7535\u5e73\u7684\u95ed\u5305, \u8f93\u5165\u6a21\u5f0f\u548c\u4e2d\u65ad\u6a21\u5f0f\u8fd4\u56de\u83b7\u53d6\u7535\u5e73\u7684\u95ed\u5305\n\u4f8b\u5b50\uff1a\n-- \u8bbe\u7f6egpio17\u4e3a\u8f93\u5165\ngpio.setup(17, nil)\n-- \u8bbe\u7f6egpio17\u4e3a\u8f93\u51fa,\u4e14\u521d\u59cb\u5316\u7535\u5e73\u4e3a\u4f4e,\u4f7f\u7528\u786c\u4ef6\u9ed8\u8ba4\u4e0a\u4e0b\u62c9\u914d\u7f6e\ngpio.setup(17, 0)\n-- \u8bbe\u7f6egpio17\u4e3a\u8f93\u51fa,\u4e14\u521d\u59cb\u5316\u7535\u5e73\u4e3a\u9ad8,\u4e14\u542f\u7528\u5185\u90e8\u4e0a\u62c9\ngpio.setup(17, 1, gpio.PULLUP)\n-- \u8bbe\u7f6egpio27\u4e3a\u4e2d\u65ad\ngpio.setup(27, function(val) print(\"IRQ_27\",val) end, gpio.PULLUP)\n-- \u8bbe\u7f6egpio27\u4e3a\u4e2d\u65ad\ngpio.setup(27, function(val) print(\"IRQ_27\",val) end, gpio.PULLUP)\n\n-- alt_func \u4e8e2023.7.2\u65b0\u589e\n-- \u8bbe\u7f6eAIR780E\u7684PIN33\u590d\u7528\u6210gpio18\uff0c\u65b9\u5411\u8f93\u51fa,\u4e14\u521d\u59cb\u5316\u7535\u5e73\u4e3a\u4f4e,\u4f7f\u7528\u786c\u4ef6\u9ed8\u8ba4\u4e0a\u4e0b\u62c9\u914d\u7f6e\ngpio.setup(18, 0, nil, nil, 4)\n", "prefix": "gpio.setup"}, "gpio.set": {"body": "gpio.set(${1:pin},${2:value})", "description": "gpio.set(pin, value) - \u8bbe\u7f6e\u7ba1\u811a\u7535\u5e73\n\u4f20\u5165\u503c\uff1a\nint pin GPIO\u7f16\u53f7,\u5fc5\u987b\u662f\u6570\u503c\nint value \u7535\u5e73, \u53ef\u4ee5\u662f \u9ad8\u7535\u5e73gpio.HIGH, \u4f4e\u7535\u5e73gpio.LOW, \u6216\u8005\u76f4\u63a5\u5199\u6570\u503c1\u62160\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n-- \u8bbe\u7f6egpio17\u4e3a\u4f4e\u7535\u5e73\ngpio.set(17, 0)\n", "prefix": "gpio.set"}, "gpio.get": {"body": "gpio.get(${1:pin})", "description": "gpio.get(pin) - \u83b7\u53d6\u7ba1\u811a\u7535\u5e73\n\u4f20\u5165\u503c\uff1a\nint pin GPIO\u7f16\u53f7,\u5fc5\u987b\u662f\u6570\u503c\n\u8fd4\u56de\u503c\uff1a\nvalue \u7535\u5e73, \u9ad8\u7535\u5e73gpio.HIGH, \u4f4e\u7535\u5e73gpio.LOW, \u5bf9\u5e94\u6570\u503c1\u548c0\n\u4f8b\u5b50\uff1a\n-- \u83b7\u53d6gpio17\u7684\u5f53\u524d\u7535\u5e73\ngpio.get(17)\n", "prefix": "gpio.get"}, "gpio.close": {"body": "gpio.close(${1:pin})", "description": "gpio.close(pin) - \u5173\u95ed\u7ba1\u811a\u529f\u80fd(\u9ad8\u963b\u8f93\u5165\u6001),\u5173\u6389\u4e2d\u65ad\n\u4f20\u5165\u503c\uff1a\nint pin GPIO\u7f16\u53f7,\u5fc5\u987b\u662f\u6570\u503c\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c,\u603b\u662f\u6267\u884c\u6210\u529f\n\u4f8b\u5b50\uff1a\n-- \u5173\u95edgpio17\ngpio.close(17)\n", "prefix": "gpio.close"}, "gpio.setDefaultPull": {"body": "gpio.setDefaultPull(${1:val})", "description": "gpio.setDefaultPull(val) - \u8bbe\u7f6eGPIO\u811a\u7684\u9ed8\u8ba4\u4e0a\u62c9/\u4e0b\u62c9\u8bbe\u7f6e, \u9ed8\u8ba4\u662f\u5e73\u53f0\u81ea\u5b9a\u4e49(\u4e00\u822c\u4e3a\u5f00\u6f0f).\n\u4f20\u5165\u503c\uff1a\nint val 0\u5e73\u53f0\u81ea\u5b9a\u4e49,1\u4e0a\u62c9, 2\u4e0b\u62c9\n\u8fd4\u56de\u503c\uff1a\nboolean \u4f20\u503c\u6b63\u786e\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- \u8bbe\u7f6egpio.setup\u7684pull\u9ed8\u8ba4\u503c\u4e3a\u4e0a\u62c9\ngpio.setDefaultPull(1)\n", "prefix": "gpio.setDefaultPull"}, "gpio.toggle": {"body": "gpio.toggle(${1:pin})", "description": "gpio.toggle(pin) - \u53d8\u6362GPIO\u811a\u8f93\u51fa\u7535\u5e73,\u4ec5\u8f93\u51fa\u6a21\u5f0f\u53ef\u7528\n\u4f20\u5165\u503c\uff1a\nint \u7ba1\u811a\u7684GPIO\u53f7\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n-- \u672cAPI\u4e8e 2022.05.17 \u6dfb\u52a0\n-- \u5047\u8bbeGPIO16\u4e0a\u6709LED, \u6bcf500ms\u5207\u6362\u4e00\u6b21\u5f00\u5173\ngpio.setup(16, 0)\nsys.timerLoopStart(function()\n gpio.toggle(16)\nend, 500)\n", "prefix": "gpio.toggle"}, "gpio.pulse": {"body": "gpio.pulse(${1:pin},${2:level},${3:len},${4:delay})", "description": "gpio.pulse(pin,level,len,delay) - \u5728\u540c\u4e00\u4e2aGPIO\u8f93\u51fa\u4e00\u7ec4\u8109\u51b2, \u6ce8\u610f, len\u7684\u5355\u4f4d\u662fbit, \u9ad8\u4f4d\u5728\u524d.\n\u4f20\u5165\u503c\uff1a\nint gpio\u53f7\nint/string \u6570\u503c\u6216\u8005\u5b57\u7b26\u4e32.\nint len \u957f\u5ea6 \u5355\u4f4d\u662fbit, \u9ad8\u4f4d\u5728\u524d.\nint delay \u5ef6\u8fdf,\u5f53\u524d\u65e0\u56fa\u5b9a\u65f6\u95f4\u5355\u4f4d\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n-- \u901a\u8fc7PB06\u811a\u8f93\u51fa\u8f93\u51fa8\u4e2a\u7535\u5e73\u53d8\u5316.\ngpio.pulse(pin.PB06,0xA9, 8, 0)\n", "prefix": "gpio.pulse"}, "gpio.debounce": {"body": "gpio.debounce(${1:pin},${2:ms},${3:mode})", "description": "gpio.debounce(pin, ms, mode) - \u9632\u6296\u8bbe\u7f6e, \u6839\u636e\u786c\u4ef6ticks\u8fdb\u884c\u9632\u6296\n\u4f20\u5165\u503c\uff1a\nint gpio\u53f7, 0~127, \u4e0e\u786c\u4ef6\u76f8\u5173\nint \u9632\u6296\u65f6\u957f,\u5355\u4f4d\u6beb\u79d2, \u6700\u5927 65555 ms, \u8bbe\u7f6e\u4e3a0\u5219\u5173\u95ed\nint \u6a21\u5f0f, 0\u51b7\u5374\u6a21\u5f0f, 1\u5ef6\u65f6\u6a21\u5f0f. \u9ed8\u8ba4\u662f0\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n-- \u6d88\u6296\u6a21\u5f0f, \u5f53\u524d\u652f\u63012\u79cd, 2022.12.16\u5f00\u59cb\u652f\u6301mode=1\n-- 0 \u89e6\u53d1\u4e2d\u65ad\u540e,\u9a6c\u4e0a\u4e0a\u62a5\u4e00\u6b21, \u7136\u540e\u51b7\u5374N\u4e2a\u6beb\u79d2\u540e,\u91cd\u65b0\u63a5\u53d7\u4e2d\u65ad\n-- 1 \u89e6\u53d1\u4e2d\u65ad\u540e,\u5ef6\u8fdfN\u4e2a\u6beb\u79d2,\u671f\u95f4\u6ca1\u6709\u65b0\u4e2d\u65ad\u4e14\u7535\u5e73\u6ca1\u6709\u53d8\u5316,\u4e0a\u62a5\u4e00\u6b21\n\n-- \u5f00\u542f\u9632\u6296, \u6a21\u5f0f0-\u51b7\u5374, \u4e2d\u65ad\u540e\u9a6c\u4e0a\u4e0a\u62a5, \u4f46100ms\u5185\u53ea\u4e0a\u62a5\u4e00\u6b21\ngpio.debounce(7, 100) -- \u82e5\u82af\u7247\u652f\u6301pin\u5e93, \u53ef\u7528pin.PA7\u4ee3\u66ff\u6570\u5b577\n-- \u5f00\u542f\u9632\u6296, \u6a21\u5f0f1-\u5ef6\u65f6, \u4e2d\u65ad\u540e\u7b49\u5f85100ms,\u671f\u95f4\u82e5\u4fdd\u6301\u8be5\u7535\u5e73\u4e86,\u65f6\u95f4\u5230\u4e4b\u540e\u4e0a\u62a5\u4e00\u6b21\n-- \u5bf9\u5e94\u7684,\u5982\u679c\u8f93\u5165\u7684\u662f\u4e00\u4e2a 50hz\u7684\u65b9\u6ce2,\u90a3\u4e48\u4e0d\u4f1a\u89e6\u53d1\u4efb\u4f55\u4e0a\u62a5\ngpio.debounce(7, 100, 1)\n\n-- \u5173\u95ed\u9632\u6296,\u65f6\u95f4\u8bbe\u7f6e\u4e3a0\u5c31\u5173\u95ed\ngpio.debounce(7, 0)\n", "prefix": "gpio.debounce"}, "gtfont.init": {"body": "gtfont.init(${1:spi_device})", "description": "gtfont.init(spi_device) - \u521d\u59cb\u5316\u9ad8\u901a\u5b57\u4f53\u82af\u7247\n\u4f20\u5165\u503c\uff1a\nuserdata \u4ec5\u652f\u6301spi device \u751f\u6210\u7684\u6307\u9488\u6570\u636e\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- \u7279\u522b\u63d0\u9192: \u4f7f\u7528\u672c\u5e93\u7684\u4efb\u4f55\u4ee3\u7801, \u90fd\u9700\u8981 \u989d\u5916 \u7684 \u9ad8\u901a\u5b57\u4f53\u82af\u7247 !!\n-- \u6ca1\u6709\u989d\u5916\u82af\u7247\u662f\u8dd1\u4e0d\u4e86\u7684!!\ngtfont.init(spi_device)\n", "prefix": "gtfont.init"}, "hmeta.model": {"body": "hmeta.model()", "description": "hmeta.model() - \u83b7\u53d6\u6a21\u7ec4\u540d\u79f0\n\u8fd4\u56de\u503c\uff1a\nstring \u82e5\u80fd\u8bc6\u522b\u5230,\u8fd4\u56de\u6a21\u7ec4\u7c7b\u578b, \u5426\u5219\u4f1a\u662fnil\n\u4f8b\u5b50\uff1a\nsys.taskInit(function()\n while 1 do\n sys.wait(3000)\n -- hmeta\u8bc6\u522b\u5e95\u5c42\u6a21\u7ec4\u7c7b\u578b\u7684\n -- \u4e0d\u540c\u7684\u6a21\u7ec4\u53ef\u4ee5\u4f7f\u7528\u76f8\u540c\u7684bsp,\u4f46\u6839\u636e\u5c01\u88c5\u7684\u4e0d\u540c,\u6839\u636e\u5185\u90e8\u6570\u636e\u4ecd\u53ef\u8bc6\u522b\u51fa\u5177\u4f53\u6a21\u5757\n log.info(\"hmeta\", hmeta.model())\n log.info(\"bsp\", rtos.bsp())\n end\nend)\n", "prefix": "hmeta.model"}, "hmeta.hwver": {"body": "hmeta.hwver()", "description": "hmeta.hwver() - \u83b7\u53d6\u6a21\u7ec4\u7684\u786c\u4ef6\u7248\u672c\u53f7\n\u8fd4\u56de\u503c\uff1a\nstring \u82e5\u80fd\u8bc6\u522b\u5230,\u8fd4\u56de\u6a21\u7ec4\u7c7b\u578b, \u5426\u5219\u4f1a\u662fnil\n\u4f8b\u5b50\uff1a\nsys.taskInit(function()\n while 1 do\n sys.wait(3000)\n -- hmeta\u8bc6\u522b\u5e95\u5c42\u6a21\u7ec4\u7c7b\u578b\u7684\n -- \u4e0d\u540c\u7684\u6a21\u7ec4\u53ef\u4ee5\u4f7f\u7528\u76f8\u540c\u7684bsp,\u4f46\u6839\u636e\u5c01\u88c5\u7684\u4e0d\u540c,\u6839\u636e\u5185\u90e8\u6570\u636e\u4ecd\u53ef\u8bc6\u522b\u51fa\u5177\u4f53\u6a21\u5757\n log.info(\"hmeta\", hmeta.model(), hmeta.hwver())\n log.info(\"bsp\", rtos.bsp())\n end\nend)\n", "prefix": "hmeta.hwver"}, "http.request": {"body": "http.request(${1:method},${2:url},${3:headers},${4:body},${5:opts},${6:ca_file},${7:client_ca},${8:client_key},${9:client_password})", "description": "http.request(method,url,headers,body,opts,ca_file,client_ca, client_key, client_password) - http\u5ba2\u6237\u7aef\n\u4f20\u5165\u503c\uff1a\nstring \u8bf7\u6c42\u65b9\u6cd5, \u652f\u6301 GET/POST \u7b49\u5408\u6cd5\u7684HTTP\u65b9\u6cd5\nstring url\u5730\u5740, \u652f\u6301 http\u548chttps, \u652f\u6301\u57df\u540d, \u652f\u6301\u81ea\u5b9a\u4e49\u7aef\u53e3\ntabal \u8bf7\u6c42\u5934 \u53ef\u9009 \u4f8b\u5982 {[\"Content-Type\"] = \"application/x-www-form-urlencoded\"}\nstring body \u53ef\u9009, \u5bf9POST/PUT\u7b49\u8bf7\u6c42\u65b9\u5f0f\u6709\u6548\ntable \u989d\u5916\u914d\u7f6e \u53ef\u9009 \u5305\u542b timeout:\u8d85\u65f6\u65f6\u95f4\u5355\u4f4dms \u53ef\u9009,\u9ed8\u8ba410\u5206\u949f,\u51990\u5373\u6c38\u4e45\u7b49\u5f85 dst:\u4e0b\u8f7d\u8def\u5f84,\u53ef\u9009 adapter:\u9009\u62e9\u4f7f\u7528\u7f51\u5361,\u53ef\u9009 debug:\u662f\u5426\u6253\u5f00debug\u4fe1\u606f,\u53ef\u9009,ipv6:\u662f\u5426\u4e3aipv6 \u9ed8\u8ba4\u4e0d\u662f,\u53ef\u9009 callback:\u4e0b\u8f7d\u56de\u8c03\u51fd\u6570,\u53c2\u6570 content_len:\u603b\u957f\u5ea6 body_len:\u4ee5\u4e0b\u8f7d\u957f\u5ea6 userdata \u7528\u6237\u4f20\u53c2,\u53ef\u9009 userdata:\u56de\u8c03\u81ea\u5b9a\u4e49\u4f20\u53c2 \nstring \u670d\u52a1\u5668ca\u8bc1\u4e66\u6570\u636e, \u53ef\u9009, \u4e00\u822c\u4e0d\u9700\u8981\nstring \u5ba2\u6237\u7aefca\u8bc1\u4e66\u6570\u636e, \u53ef\u9009, \u4e00\u822c\u4e0d\u9700\u8981, \u53cc\u5411https\u8ba4\u8bc1\u624d\u9700\u8981\nstring \u5ba2\u6237\u7aef\u79c1\u94a5\u52a0\u5bc6\u6570\u636e, \u53ef\u9009, \u4e00\u822c\u4e0d\u9700\u8981, \u53cc\u5411https\u8ba4\u8bc1\u624d\u9700\u8981\nstring \u5ba2\u6237\u7aef\u79c1\u94a5\u53e3\u4ee4\u6570\u636e, \u53ef\u9009, \u4e00\u822c\u4e0d\u9700\u8981, \u53cc\u5411https\u8ba4\u8bc1\u624d\u9700\u8981\n\u8fd4\u56de\u503c\uff1a\nint code , \u670d\u52a1\u5668\u53cd\u9988\u7684\u503c>=100, \u6700\u5e38\u89c1\u7684\u662f200.\u5982\u679c\u662f\u5e95\u5c42\u9519\u8bef,\u4f8b\u5982\u8fde\u63a5\u5931\u8d25, \u8fd4\u56de\u503c\u5c0f\u4e8e0\ntabal headers \u5f53code>100\u65f6, \u4ee3\u8868\u670d\u52a1\u5668\u8fd4\u56de\u7684\u5934\u90e8\u6570\u636e \nstring/int body \u670d\u52a1\u5668\u54cd\u5e94\u7684\u5185\u5bb9\u5b57\u7b26\u4e32,\u5982\u679c\u662f\u4e0b\u8f7d\u6a21\u5f0f, \u5219\u8fd4\u56de\u6587\u4ef6\u5927\u5c0f\n\u4f8b\u5b50\uff1a\n\n--[[\ncode\u62a5\u9519\u4fe1\u606f\u5217\u8868:\n-1 HTTP_ERROR_STATE \u9519\u8bef\u7684\u72b6\u6001, \u4e00\u822c\u662f\u5e95\u5c42\u5f02\u5e38,\u8bf7\u62a5issue\n-2 HTTP_ERROR_HEADER \u9519\u8bef\u7684\u54cd\u5e94\u5934\u90e8, \u901a\u5e38\u662f\u670d\u52a1\u5668\u95ee\u9898\n-3 HTTP_ERROR_BODY \u9519\u8bef\u7684\u54cd\u5e94\u4f53,\u901a\u5e38\u662f\u670d\u52a1\u5668\u95ee\u9898\n-4 HTTP_ERROR_CONNECT \u8fde\u63a5\u670d\u52a1\u5668\u5931\u8d25, \u672a\u8054\u7f51,\u5730\u5740\u9519\u8bef,\u57df\u540d\u9519\u8bef\n-5 HTTP_ERROR_CLOSE \u63d0\u524d\u65ad\u5f00\u4e86\u8fde\u63a5, \u7f51\u7edc\u6216\u670d\u52a1\u5668\u95ee\u9898\n-6 HTTP_ERROR_RX \u63a5\u6536\u6570\u636e\u62a5\u9519, \u7f51\u7edc\u95ee\u9898\n-7 HTTP_ERROR_DOWNLOAD \u4e0b\u8f7d\u6587\u4ef6\u8fc7\u7a0b\u62a5\u9519, \u7f51\u7edc\u95ee\u9898\u6216\u4e0b\u8f7d\u8def\u5f84\u95ee\u9898\n-8 HTTP_ERROR_TIMEOUT \u8d85\u65f6, \u5305\u62ec\u8fde\u63a5\u8d85\u65f6,\u8bfb\u53d6\u6570\u636e\u8d85\u65f6\n-9 HTTP_ERROR_FOTA fota\u529f\u80fd\u62a5\u9519,\u901a\u5e38\u662f\u66f4\u65b0\u5305\u4e0d\u5408\u6cd5\n]]\n\n-- GET\u8bf7\u6c42\nlocal code, headers, body = http.request(\"GET\",\"http://site0.cn/api/httptest/simple/time\").wait()\nlog.info(\"http.get\", code, headers, body)\n-- POST\u8bf7\u6c42\nlocal code, headers, body = http.request(\"POST\",\"http://httpbin.com/post\", {}, \"abc=123\").wait()\nlog.info(\"http.post\", code, headers, body)\n\n-- GET\u8bf7\u6c42,\u4f46\u4e0b\u8f7d\u5230\u6587\u4ef6\nlocal code, headers, body = http.request(\"GET\",\"http://httpbin.com/\", {}, \"\", {dst=\"/data.bin\"}).wait()\nlog.info(\"http.get\", code, headers, body)\n\n-- \u81ea\u5b9a\u4e49\u8d85\u65f6\u65f6\u95f4, 5000ms\nhttp.request(\"GET\",\"http://httpbin.com/\", nil, nil, {timeout=5000}).wait()\n", "prefix": "http.request"}, "httpsrv.start": {"body": "httpsrv.start(${1:port},${2:func})", "description": "httpsrv.start(port, func) - \u542f\u52a8\u5e76\u76d1\u542c\u4e00\u4e2ahttp\u7aef\u53e3\n\u4f20\u5165\u503c\uff1a\nint \u7aef\u53e3\u53f7\nfunction \u56de\u8c03\u51fd\u6570\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue, \u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n\n-- \u76d1\u542c80\u7aef\u53e3\nhttpsrv.start(80, function(client, method, uri, headers, body)\n -- method \u662f\u5b57\u7b26\u4e32, \u4f8b\u5982 GET POST PUT DELETE\n -- uri \u4e5f\u662f\u5b57\u7b26\u4e32 \u4f8b\u5982 / /api/abc\n -- headers table\u7c7b\u578b\n -- body \u5b57\u7b26\u4e32\n log.info(\"httpsrv\", method, uri, json.encode(headers), body)\n if uri == \"/led/1\" then\n LEDA(1)\n return 200, {}, \"ok\"\n elseif uri == \"/led/0\" then\n LEDA(0)\n return 200, {}, \"ok\"\n end\n -- \u8fd4\u56de\u503c\u7684\u7ea6\u5b9a code, headers, body\n -- \u82e5\u6ca1\u6709\u8fd4\u56de\u503c, \u5219\u9ed8\u8ba4 404, {} ,\"\"\n return 404, {}, \"Not Found\" .. uri\nend)\n-- \u5173\u4e8e\u9759\u6001\u6587\u4ef6\n-- \u60c5\u51b51: / , \u6620\u5c04\u4e3a /index.html\n-- \u60c5\u51b52: /abc.html , \u5148\u67e5\u627e /abc.html, \u4e0d\u5b58\u5728\u7684\u8bdd\u67e5\u627e /abc.html.gz\n-- \u82e5gz\u5b58\u5728, \u4f1a\u81ea\u52a8\u4ee5\u538b\u7f29\u6587\u4ef6\u8fdb\u884c\u54cd\u5e94, \u7edd\u5927\u90e8\u5206\u6d4f\u89c8\u5668\u652f\u6301.\n-- \u5f53\u524d\u9ed8\u8ba4\u67e5\u627e /luadb/xxx \u4e0b\u7684\u6587\u4ef6,\u6682\u4e0d\u53ef\u914d\u7f6e\n", "prefix": "httpsrv.start"}, "httpsrv.stop": {"body": "httpsrv.stop(${1:port})", "description": "httpsrv.stop(port) - \u505c\u6b62http\u670d\u52a1\n\u4f20\u5165\u503c\uff1a\nint \u7aef\u53e3\u53f7\n\u8fd4\u56de\u503c\uff1a\nnil \u5f53\u524d\u65e0\u8fd4\u56de\u503c\n", "prefix": "httpsrv.stop"}, "i2c.exist": {"body": "i2c.exist(${1:id})", "description": "i2c.exist(id) - i2c\u7f16\u53f7\u662f\u5426\u5b58\u5728\n\u4f20\u5165\u503c\uff1a\nint \u8bbe\u5907id, \u4f8b\u5982i2c1\u7684id\u4e3a1, i2c2\u7684id\u4e3a2\n\u8fd4\u56de\u503c\uff1a\nbool \u5b58\u5728\u5c31\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- \u68c0\u67e5i2c1\u662f\u5426\u5b58\u5728\nif i2c.exist(1) then\n log.info(\"\u5b58\u5728 i2c1\")\nend\n", "prefix": "i2c.exist"}, "i2c.setup": {"body": "i2c.setup(${1:id},${2:speed},${3:slaveAddr})", "description": "i2c.setup(id, speed, slaveAddr) - i2c\u521d\u59cb\u5316\n\u4f20\u5165\u503c\uff1a\nint \u8bbe\u5907id, \u4f8b\u5982i2c1\u7684id\u4e3a1, i2c2\u7684id\u4e3a2\nint I2C\u901f\u5ea6, \u4f8b\u5982i2c.FAST\n\u8fd4\u56de\u503c\uff1a\nint \u6210\u529f\u5c31\u8fd4\u56de1,\u5426\u5219\u8fd4\u56de0\n\u4f8b\u5b50\uff1a\n-- \u521d\u59cb\u5316i2c1\ni2c.setup(1, i2c.FAST) -- \u7aef\u53e3\u6b63\u786e\u5c31\u4e00\u5b9a\u6210\u529f\n-- \u5982\u9700\u5224\u65adi2c id\u662f\u5426\u5408\u6cd5, \u8bf7\u4f7f\u7528 i2c.exist \u51fd\u6570\n", "prefix": "i2c.setup"}, "i2c.createSoft": {"body": "i2c.createSoft(${1:scl},${2:sda},${3:delay})", "description": "i2c.createSoft(scl,sda,delay) - \u65b0\u5efa\u4e00\u4e2a\u8f6f\u4ef6i2c\u5bf9\u8c61\n\u4f20\u5165\u503c\uff1a\nint i2c SCL\u5f15\u811a\u7f16\u53f7(GPIO\u7f16\u53f7)\nint i2c SDA\u5f15\u811a\u7f16\u53f7(GPIO\u7f16\u53f7)\nint \u6bcf\u4e2a\u64cd\u4f5c\u7684\u5ef6\u65f6, \u5355\u4f4dus, \u9ed8\u8ba45\n\u8fd4\u56de\u503c\uff1a\n\u8f6f\u4ef6I2C\u5bf9\u8c61 \u53ef\u5f53\u4f5ci2c\u7684id\u4f7f\u7528\n\u4f8b\u5b50\uff1a\n-- \u6ce8\u610f\uff01\u8fd9\u4e2a\u63a5\u53e3\u662f\u8f6f\u4ef6\u6a21\u62dfi2c\uff0c\u901f\u5ea6\u53ef\u80fd\u4f1a\u6bd4\u786c\u4ef6\u7684\u6162\n-- \u4e0d\u9700\u8981\u8c03\u7528i2c.close\u63a5\u53e3\n-- \u521d\u59cb\u5316\u8f6f\u4ef6i2c\nlocal softI2C = i2c.createSoft(1, 2, 5)\ni2c.send(softI2C, 0x5C, string.char(0x0F, 0x2F))\n-- \u6ce8\u610f, \u7b2c3\u4e2a\u53c2\u6570\u662f 2023.06.19 \u6dfb\u52a0\u7684delay\n-- \u901a\u8fc7\u8c03\u6574delay\u53c2\u6570\u7684\u503c, \u53ef\u589e\u52a0\u6216\u964d\u4f4eI2C\u7684\u901f\u5ea6\n", "prefix": "i2c.createSoft"}, "i2c.send": {"body": "i2c.send(${1:id},${2:addr},${3:data},${4:stop})", "description": "i2c.send(id, addr, data,stop) - i2c\u53d1\u9001\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nint \u8bbe\u5907id, \u4f8b\u5982i2c1\u7684id\u4e3a1, i2c2\u7684id\u4e3a2\nint I2C\u5b50\u8bbe\u5907\u7684\u5730\u5740, 7\u4f4d\u5730\u5740\ninteger/string/table \u5f85\u53d1\u9001\u7684\u6570\u636e,\u81ea\u9002\u5e94\u53c2\u6570\u7c7b\u578b\ninteger \u53ef\u9009\u53c2\u6570 \u662f\u5426\u53d1\u9001\u505c\u6b62\u4f4d 1\u53d1\u9001 0\u4e0d\u53d1\u9001 \u9ed8\u8ba4\u53d1\u9001(105\u4e0d\u652f\u6301)\n\u8fd4\u56de\u503c\uff1a\ntrue/false \u53d1\u9001\u662f\u5426\u6210\u529f\n\u4f8b\u5b50\uff1a\n-- \u5f80i2c0\u53d1\u90011\u4e2a\u5b57\u8282\u7684\u6570\u636e\ni2c.send(0, 0x68, 0x75)\n-- \u5f80i2c1\u53d1\u90012\u4e2a\u5b57\u8282\u7684\u6570\u636e\ni2c.send(1, 0x5C, string.char(0x0F, 0x2F))\ni2c.send(1, 0x5C, {0x0F, 0x2F})\n", "prefix": "i2c.send"}, "i2c.recv": {"body": "i2c.recv(${1:id},${2:addr},${3:len})", "description": "i2c.recv(id, addr, len) - i2c\u63a5\u6536\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nint \u8bbe\u5907id, \u4f8b\u5982i2c1\u7684id\u4e3a1, i2c2\u7684id\u4e3a2\nint I2C\u5b50\u8bbe\u5907\u7684\u5730\u5740, 7\u4f4d\u5730\u5740\nint \u63a5\u6536\u6570\u636e\u7684\u957f\u5ea6\n\u8fd4\u56de\u503c\uff1a\nstring \u6536\u5230\u7684\u6570\u636e\n\u4f8b\u5b50\uff1a\n-- \u4ecei2c1\u8bfb\u53d62\u4e2a\u5b57\u8282\u7684\u6570\u636e\nlocal data = i2c.recv(1, 0x5C, 2)\n", "prefix": "i2c.recv"}, "i2c.writeReg": {"body": "i2c.writeReg(${1:id},${2:addr},${3:reg},${4:data},${5:stop})", "description": "i2c.writeReg(id, addr, reg, data,stop) - i2c\u5199\u5bc4\u5b58\u5668\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nint \u8bbe\u5907id, \u4f8b\u5982i2c1\u7684id\u4e3a1, i2c2\u7684id\u4e3a2\nint I2C\u5b50\u8bbe\u5907\u7684\u5730\u5740, 7\u4f4d\u5730\u5740\nint \u5bc4\u5b58\u5668\u5730\u5740\nstring \u5f85\u53d1\u9001\u7684\u6570\u636e\ninteger \u53ef\u9009\u53c2\u6570 \u662f\u5426\u53d1\u9001\u505c\u6b62\u4f4d 1\u53d1\u9001 0\u4e0d\u53d1\u9001 \u9ed8\u8ba4\u53d1\u9001(105\u4e0d\u652f\u6301)\n\u8fd4\u56de\u503c\uff1a\ntrue/false \u53d1\u9001\u662f\u5426\u6210\u529f\n\u4f8b\u5b50\uff1a\n-- \u4ecei2c1\u7684\u5730\u5740\u4e3a0x5C\u7684\u8bbe\u5907\u7684\u5bc4\u5b58\u56680x01\u5199\u51652\u4e2a\u5b57\u8282\u7684\u6570\u636e\ni2c.writeReg(1, 0x5C, 0x01, string.char(0x00, 0xF2))\n", "prefix": "i2c.writeReg"}, "i2c.readReg": {"body": "i2c.readReg(${1:id},${2:addr},${3:reg},${4:len})", "description": "i2c.readReg(id, addr, reg, len) - i2c\u8bfb\u5bc4\u5b58\u5668\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nint \u8bbe\u5907id, \u4f8b\u5982i2c1\u7684id\u4e3a1, i2c2\u7684id\u4e3a2\nint I2C\u5b50\u8bbe\u5907\u7684\u5730\u5740, 7\u4f4d\u5730\u5740\nint \u5bc4\u5b58\u5668\u5730\u5740\nint \u5f85\u63a5\u6536\u7684\u6570\u636e\u957f\u5ea6\ninteger \u53ef\u9009\u53c2\u6570 \u662f\u5426\u53d1\u9001\u505c\u6b62\u4f4d 1\u53d1\u9001 0\u4e0d\u53d1\u9001 \u9ed8\u8ba4\u53d1\u9001(105\u4e0d\u652f\u6301)\n\u8fd4\u56de\u503c\uff1a\nstring \u6536\u5230\u7684\u6570\u636e\n\u4f8b\u5b50\uff1a\n-- \u4ecei2c1\u7684\u5730\u5740\u4e3a0x5C\u7684\u8bbe\u5907\u7684\u5bc4\u5b58\u56680x01\u8bfb\u51fa2\u4e2a\u5b57\u8282\u7684\u6570\u636e\ni2c.readReg(1, 0x5C, 0x01, 2)\n", "prefix": "i2c.readReg"}, "i2c.close": {"body": "i2c.close(${1:id})", "description": "i2c.close(id) - \u5173\u95edi2c\u8bbe\u5907\n\u4f20\u5165\u503c\uff1a\nint \u8bbe\u5907id, \u4f8b\u5982i2c1\u7684id\u4e3a1, i2c2\u7684id\u4e3a2\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n-- \u5173\u95edi2c1\ni2c.close(1)\n", "prefix": "i2c.close"}, "i2c.readDHT12": {"body": "i2c.readDHT12(${1:id})", "description": "i2c.readDHT12(id) - \u4ecei2c\u603b\u7ebf\u8bfb\u53d6DHT12\u7684\u6e29\u6e7f\u5ea6\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nint \u8bbe\u5907id, \u4f8b\u5982i2c1\u7684id\u4e3a1, i2c2\u7684id\u4e3a2\nint DHT12\u7684\u8bbe\u5907\u5730\u5740,\u9ed8\u8ba40x5C\n\u8fd4\u56de\u503c\uff1a\nboolean \u8bfb\u53d6\u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\nint \u6e7f\u5ea6\u503c,\u5355\u4f4d0.1%, \u4f8b\u5982 591 \u4ee3\u8868 59.1%\nint \u6e29\u5ea6\u503c,\u5355\u4f4d0.1\u6444\u6c0f\u5ea6, \u4f8b\u5982 292 \u4ee3\u8868 29.2\u6444\u6c0f\u5ea6\n\u4f8b\u5b50\uff1a\n-- \u4ecei2c0\u8bfb\u53d6DHT12\ni2c.setup(0)\nlocal re, H, T = i2c.readDHT12(0)\nif re then\n log.info(\"dht12\", H, T)\nend\n", "prefix": "i2c.readDHT12"}, "i2c.readSHT30": {"body": "i2c.readSHT30(${1:id},${2:addr})", "description": "i2c.readSHT30(id,addr) - \u4ecei2c\u603b\u7ebf\u8bfb\u53d6DHT30\u7684\u6e29\u6e7f\u5ea6\u6570\u636e(\u7531\"\u597d\u5947\u661f\"\u8d21\u732e)\n\u4f20\u5165\u503c\uff1a\nint \u8bbe\u5907id, \u4f8b\u5982i2c1\u7684id\u4e3a1, i2c2\u7684id\u4e3a2\nint \u8bbe\u5907addr,SHT30\u7684\u8bbe\u5907\u5730\u5740,\u9ed8\u8ba40x44 bit7\n\u8fd4\u56de\u503c\uff1a\nboolean \u8bfb\u53d6\u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\nint \u6e7f\u5ea6\u503c,\u5355\u4f4d0.1%, \u4f8b\u5982 591 \u4ee3\u8868 59.1%\nint \u6e29\u5ea6\u503c,\u5355\u4f4d0.1\u6444\u6c0f\u5ea6, \u4f8b\u5982 292 \u4ee3\u8868 29.2\u6444\u6c0f\u5ea6\n\u4f8b\u5b50\uff1a\n-- \u4ecei2c0\u8bfb\u53d6SHT30\ni2c.setup(0)\nlocal re, H, T = i2c.readSHT30(0)\nif re then\n log.info(\"sht30\", H, T)\nend\n", "prefix": "i2c.readSHT30"}, "i2c.transfer": {"body": "i2c.transfer(${1:id},${2:addr},${3:txBuff},${4:rxBuff},${5:rxLen})", "description": "i2c.transfer(id, addr, txBuff, rxBuff, rxLen) - i2c\u901a\u7528\u4f20\u8f93\uff0c\u5305\u62ec\u53d1\u9001N\u5b57\u8282\uff0c\u53d1\u9001N\u5b57\u8282+\u63a5\u6536N\u5b57\u8282\uff0c\u63a5\u6536N\u5b57\u8282\u4e09\u79cd\u529f\u80fd\uff0c\u5728\u53d1\u9001\u8f6c\u63a5\u6536\u8fc7\u7a0b\u4e2d\u53d1\u9001reStart\u4fe1\u53f7,\u89e3\u51b3\u7c7b\u4f3cmlx90614\u5fc5\u987b\u5e26restart\u4fe1\u53f7\uff0c\u4f46\u662f\u53c8\u4e0d\u80fd\u7528i2c.send\u6765\u63a7\u5236\u7684\uff0c\u6bd4\u5982air105\n\u4f20\u5165\u503c\uff1a\nint \u8bbe\u5907id, \u4f8b\u5982i2c1\u7684id\u4e3a1, i2c2\u7684id\u4e3a2\nint I2C\u5b50\u8bbe\u5907\u7684\u5730\u5740, 7\u4f4d\u5730\u5740\ninteger/string/zbuff \u5f85\u53d1\u9001\u7684\u6570\u636e,\u81ea\u9002\u5e94\u53c2\u6570\u7c7b\u578b\uff0c\u5982\u679c\u4e3anil\uff0c\u5219\u4e0d\u53d1\u9001\u6570\u636e\nzbuff \u5f85\u63a5\u6536\u6570\u636e\u7684zbuff \u5982\u679c\u4e0d\u7528zbuff\uff0c\u5219\u63a5\u6536\u6570\u636e\u5c06\u5728return\u8fd4\u56de\nint \u9700\u8981\u63a5\u6536\u7684\u6570\u636e\u957f\u5ea6\uff0c\u5982\u679c\u4e3a0\u6216nil\uff0c\u5219\u4e0d\u63a5\u6536\u6570\u636e\n\u8fd4\u56de\u503c\uff1a\nboolean true/false \u53d1\u9001\u662f\u5426\u6210\u529f\nstring or nil \u5982\u679c\u53c2\u65705\u662finterger\uff0c\u5219\u8fd4\u56de\u63a5\u6536\u5230\u7684\u6570\u636e\n\u4f8b\u5b50\uff1a\nlocal result, _ = i2c.transfer(0, 0x11, txbuff, rxbuff, 1)\nlocal result, _ = i2c.transfer(0, 0x11, txbuff, nil, 0)\t--\u53ea\u53d1\u9001txbuff\u91cc\u7684\u6570\u636e\uff0c\u4e0d\u63a5\u6536\u6570\u636e\uff0c\u5178\u578b\u5e94\u7528\u5c31\u662f\u5199\u5bc4\u5b58\u5668\u4e86\uff0c\u8fd9\u91cc\u5bc4\u5b58\u5668\u5730\u5740\u548c\u503c\u90fd\u653e\u5728\u4e86txbuff\u91cc\nlocal result, _ = i2c.transfer(0, 0x11, \"\\x01\\x02\\x03\", nil, 1) --\u53d1\u90010x01\uff0c 0x02\uff0c0x03\uff0c\u4e0d\u63a5\u6536\u6570\u636e\uff0c\u5982\u679c\u662feeprom\uff0c\u5c31\u662f\u5f800x01\u7684\u5730\u5740\u519902\u548c03\uff0c\u6216\u8005\u5f800x0102\u7684\u5730\u5740\u519903\uff0c\u770b\u5177\u4f53\u82af\u7247\u4e86\nlocal result, rxdata = i2c.transfer(0, 0x11, \"\\x01\\x02\", nil, 1) --\u53d1\u90010x01\uff0c 0x02\uff0c\u7136\u540e\u63a5\u65361\u4e2a\u5b57\u8282\uff0c\u5178\u578b\u5e94\u7528\u5c31\u662feeprom\nlocal result, rxdata = i2c.transfer(0, 0x11, 0x00, nil, 1) --\u53d1\u90010x00\uff0c\u7136\u540e\u63a5\u65361\u4e2a\u5b57\u8282\uff0c\u5178\u578b\u5e94\u7528\u5404\u79cd\u4f20\u611f\u5668\n", "prefix": "i2c.transfer"}, "i2c.xfer": {"body": "i2c.xfer(${1:id},${2:addr},${3:txBuff},${4:rxBuff},${5:rxLen},${6:transfer_done_topic},${7:timeout})", "description": "i2c.xfer(id, addr, txBuff, rxBuff, rxLen, transfer_done_topic, timeout) - i2c\u975e\u963b\u585e\u901a\u7528\u4f20\u8f93\uff0c\u7c7b\u4f3ctransfer\uff0c\u4f46\u662f\u4e0d\u4f1a\u7b49\u5230I2C\u4f20\u8f93\u5b8c\u6210\u624d\u8fd4\u56de\uff0c\u8c03\u7528\u672c\u51fd\u6570\u4f1a\u7acb\u523b\u8fd4\u56de\uff0cI2C\u4f20\u8f93\u5b8c\u6210\u540e\uff0c\u901a\u8fc7\u6d88\u606f\u56de\u8c03\n\u4f20\u5165\u503c\uff1a\nint \u8bbe\u5907id, \u4f8b\u5982i2c1\u7684id\u4e3a1, i2c2\u7684id\u4e3a2\nint I2C\u5b50\u8bbe\u5907\u7684\u5730\u5740, 7\u4f4d\u5730\u5740\nzbuff \u5f85\u53d1\u9001\u7684\u6570\u636e\uff0c\u7531\u4e8e\u7528\u7684\u975e\u963b\u585e\u6a21\u578b\uff0c\u4e3a\u4fdd\u8bc1\u52a8\u6001\u6570\u636e\u7684\u6709\u6548\u6027\uff0c\u53ea\u80fd\u4f7f\u7528zbuff\uff0c\u53d1\u9001\u7684\u6570\u636e\u4ecezbuff.addr\u5f00\u59cb\uff0c\u957f\u5ea6\u4e3azbuff.used\nzbuff \u5f85\u63a5\u6536\u6570\u636e\u7684zbuff\uff0c\u5982\u679c\u4e3anil\uff0c\u5219\u5ffd\u7565\u540e\u9762\u53c2\u6570\uff0c \u4e0d\u63a5\u6536\u6570\u636e\u3002\u63a5\u6536\u7684\u6570\u636e\u4f1a\u653e\u5728zbuff.addr\u5f00\u59cb\u7684\u4f4d\u7f6e\uff0c\u4f1a\u8986\u76d6\u6389\u4e4b\u524d\u7684\u6570\u636e\uff0c\u6ce8\u610fzhuff\u7684\u9884\u7559\u7a7a\u95f4\u8981\u8db3\u591f\nint \u9700\u8981\u63a5\u6536\u7684\u6570\u636e\u957f\u5ea6\uff0c\u5982\u679c\u4e3a0\u6216nil\uff0c\u5219\u4e0d\u63a5\u6536\u6570\u636e\nstring \u4f20\u8f93\u5b8c\u6210\u540e\u56de\u8c03\u7684\u6d88\u606f\nint \u8d85\u65f6\u65f6\u95f4\uff0c\u5982\u679c\u586bnil\uff0c\u5219\u4e3a100ms\n\u8fd4\u56de\u503c\uff1a\nboolean true/false \u672c\u6b21\u4f20\u8f93\u662f\u5426\u6b63\u786e\u542f\u52a8\uff0ctrue\uff0c\u542f\u52a8\uff0cfalse\uff0c\u6709\u9519\u8bef\u65e0\u6cd5\u542f\u52a8\u3002\u4f20\u8f93\u5b8c\u6210\u4f1a\u53d1\u5e03\u6d88\u606ftransfer_done_topic\u548cboolean\u578b\u7ed3\u679c\n\u4f8b\u5b50\uff1a\nlocal result = i2c.xfer(0, 0x11, txbuff, rxbuff, 1, \"I2CDONE\") if result then result, i2c_id, succ, error_code = sys.waitUntil(\"I2CDONE\") end if not result or not succ then log.info(\"i2c fail, error code\", error_code) else log.info(\"i2c ok\") end\n\n", "prefix": "i2c.xfer"}, "i2c.scan": {"body": "i2c.scan(${1:id})", "description": "i2c.scan(id) - \u626b\u63cfi2c\u8bbe\u5907\n\u4f20\u5165\u503c\uff1a\nint \u8bbe\u5907id, \u4f8b\u5982i2c1\u7684id\u4e3a1, i2c2\u7684id\u4e3a2\n\u8fd4\u56de\u503c\uff1a\nnil \u5f53\u524d\u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n-- \u672c\u51fd\u6570\u4e8e2023.07.04\u6dfb\u52a0\n-- \u8fd9\u4e2a\u51fd\u6570\u7684\u4e3b\u8981\u76ee\u6807\u662f\u4e3a\u4e86\u5728\u5f00\u53d1\u671f\u626b\u63cfi2c\u8bbe\u5907\n-- \u6709\u4e9bBSP\u5728\u6307\u5b9aaddr\u65e0\u54cd\u5e94\u65f6\u4f1a\u8f93\u51fa\u65e5\u5fd7,\u5bfc\u81f4\u8f93\u51fa\u4f1a\u88ab\u6253\u4e71\ni2c.scan()\n", "prefix": "i2c.scan"}, "i2s.setup": {"body": "i2s.setup(${1:id},${2:mode},${3:sample},${4:bitw},${5:channel},${6:format},${7:mclk})", "description": "i2s.setup(id, mode, sample, bitw, channel, format, mclk) - \u521d\u59cb\u5316i2s\n\u4f20\u5165\u503c\uff1a\nint i2s\u901a\u9053\u53f7,\u4e0e\u5177\u4f53\u8bbe\u5907\u6709\u5173\nint \u6a21\u5f0f, \u5f53\u524d\u4ec5\u652f\u63010, MASTER|TX|RX \u6a21\u5f0f, \u6682\u4e0d\u652f\u6301slave. \u53ef\u9009\nint \u91c7\u6837\u7387,\u9ed8\u8ba444100. \u53ef\u9009\nint \u6570\u636e\u4f4d\u6570,\u9ed8\u8ba416, \u53ef\u4ee5\u662f8\u7684\u500d\u6570\nint \u58f0\u9053, 0 \u5de6\u58f0\u9053, 1 \u53f3\u58f0\u9053, 2 \u53cc\u58f0\u9053. \u53ef\u9009\nint \u683c\u5f0f, \u53ef\u9009MODE_I2S, MODE_LSB, MODE_MSB\nint mclk\u9891\u7387, \u9ed8\u8ba4 8M. \u53ef\u9009\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u4e0e\u5426\nint \u5e95\u5c42\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n-- \u4ee5\u9ed8\u8ba4\u53c2\u6570\u521d\u59cb\u5316i2s\ni2s.setup(0)\n-- \u4ee5\u8be6\u7ec6\u53c2\u6570\u521d\u59cb\u5316i2s, \u793a\u4f8b\u4e3a\u9ed8\u8ba4\u503c\ni2s.setup(0, 0, 44100, 16, 0, 0, 8000000)\n", "prefix": "i2s.setup"}, "i2s.send": {"body": "i2s.send(${1:id},${2:data},${3:len})", "description": "i2s.send(id, data, len) - \u53d1\u9001i2s\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nint \u901a\u9053id\nstring \u6570\u636e, \u53ef\u4ee5\u662f\u5b57\u7b26\u4e32\u6216zbuff\nint \u6570\u636e\u957f\u5ea6,\u5355\u4f4d\u5b57\u8282, \u5b57\u7b26\u4e32\u9ed8\u8ba4\u4e3a\u5b57\u7b26\u4e32\u5168\u957f, zbuff\u9ed8\u8ba4\u4e3a\u6307\u9488\u4f4d\u7f6e\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u4e0e\u5426\nint \u5e95\u5c42\u8fd4\u56de\u503c,\u4f9b\u8c03\u8bd5\u7528\n\u4f8b\u5b50\uff1a\nlocal f = io.open(\"/luadb/abc.wav\")\nwhile 1 do\n local data = f:read(4096)\n if not data or #data == 0 then\n break\n end\n i2s.send(0, data)\n sys.wait(100)\nend\n", "prefix": "i2s.send"}, "i2s.recv": {"body": "i2s.recv(${1:id},${2:buffer},${3:len})", "description": "i2s.recv(id, buffer, len) - \u63a5\u6536i2s\u6570\u636e\uff0c\u6ce8\u610f\u5728\u6570\u636e\u5728\u56de\u8c03\u65f6\u5df2\u7ecf\u5b58\u653e\u5728zbuff\u91cc\uff0c\u76ee\u524d\u53ea\u6709air780e\u7cfb\u5217\u652f\u6301\n\u4f20\u5165\u503c\uff1a\nint \u901a\u9053id\nzbuff \u6570\u636e\u7f13\u5b58\u533a\nint \u5355\u6b21\u8fd4\u56de\u7684\u6570\u636e\u957f\u5ea6,\u5355\u4f4d\u5b57\u8282,\u5fc5\u987b\u4e0e\u4f20\u5165\u7684zbuff\u7684\u5927\u5c0f\u4e00\u81f4\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u4e0e\u5426\n\u4f8b\u5b50\uff1a\nlocal buffer = zbuff.create(3200)\nlocal succ = i2s.recv(0, buffer, 3200);\n", "prefix": "i2s.recv"}, "i2s.close": {"body": "i2s.close(${1:id})", "description": "i2s.close(id) - \u5173\u95edi2s\n\u4f20\u5165\u503c\uff1a\nint \u901a\u9053id\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\ni2s.close(0)\n", "prefix": "i2s.close"}, "i2s.on": {"body": "i2s.on(${1:id},${2:func})", "description": "i2s.on(id, func) - \u6ce8\u518cI2S\u4e8b\u4ef6\u56de\u8c03\n\u4f20\u5165\u503c\uff1a\nint i2s id, i2s0\u51990, i2s1\u51991\nfunction \u56de\u8c03\u65b9\u6cd5\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\ni2s.on(0, function(id, buff)\n\tif buff then\n\t\tlog.info(\"i2s get data in zbuff\")\n\telse\n\t\tlog.info(\"i2s tx one block done\")\n\tend\nend)\n", "prefix": "i2s.on"}, "i2s.txStat": {"body": "i2s.txStat(${1:id})", "description": "i2s.txStat(id) - \u83b7\u53d6i2s\u7684\u53d1\u9001\u7f13\u51b2\u533a\u72b6\u6001\n\u4f20\u5165\u503c\uff1a\nint i2s id, i2s0\u51990, i2s1\u51991\nreturn \u5e95\u5c42\u7f13\u51b2\u533a\u7684\u603b\u5927\u5c0f\nreturn \u5e95\u5c42\u7f13\u51b2\u533a\u7684\u5269\u4f59\u5f85\u53d1\u9001\u6570\u636e\n\u4f8b\u5b50\uff1a\n-- \u8bfb\u53d6\u53d1\u9001\u7f13\u51b2\u533a\u7684\u72b6\u6001, \u4ece\u800c\u5224\u65ad\u662f\u5426\u9700\u8981\u7ee7\u7eed\u4f20\u5165\u97f3\u9891\u6570\u636e\nlocal max, remain = i2s.txStat(0)\nlog.info(\"i2s\u53d1\u9001\u7f13\u51b2\u533a\u72b6\u6001\", max, remain)\n", "prefix": "i2s.txStat"}, "iconv.open": {"body": "iconv.open(${1:tocode},${2:fromcode})", "description": "iconv.open(tocode, fromcode) - \u6253\u5f00\u76f8\u5e94\u5b57\u7b26\u7f16\u7801\u8f6c\u6362\u51fd\u6570\n\u4f20\u5165\u503c\uff1a\nstring tocode$\u76ee\u6807\u7f16\u7801\u683c\u5f0f$gb2312/ucs2/ucs2be/utf8\nstring fromcode$\u6e90\u7f16\u7801\u683c\u5f0f$gb2312/ucs2/ucs2be/utf8\nreturn table$cd$\u7f16\u7801\u8f6c\u6362\u51fd\u6570\u7684\u8f6c\u6362\u53e5\u67c4$ \n\u4f8b\u5b50\uff1a\n--unicode\u5927\u7aef\u7f16\u7801 \u8f6c\u5316\u4e3a utf8\u7f16\u7801\nlocal cd = iconv.open(\"utf8\", \"ucs2be\")\n", "prefix": "iconv.open"}, "iconv:iconv": {"body": "iconv:iconv(${1:inbuf})", "description": "iconv:iconv(inbuf) - \u5b57\u7b26\u7f16\u7801\u8f6c\u6362\n\u4f20\u5165\u503c\uff1a\nstring \u91ca\u4e49\uff1a\u5f85\u8f6c\u6362\u5b57\u7b26\u4e32\n\u8fd4\u56de\u503c\uff1a\nnumber \u91ca\u4e49\uff1a\u8fd4\u56de\u7f16\u7801\u8f6c\u6362\u540e\u7684\u7ed3\u679c
\u53d6\u503c\uff1a0\u6210\u529f,-1\u5931\u8d25\n\u4f8b\u5b50\uff1a\n--unicode\u5927\u7aef\u7f16\u7801 \u8f6c\u5316\u4e3a utf8\u7f16\u7801\nfunction ucs2beToUtf8(ucs2s)\n local iconv = iconv.open(\"utf8\", \"ucs2be\")\n return iconv:iconv(ucs2s)\nend\n", "prefix": "iconv:iconv"}, "cd:iconv": {"body": "cd:iconv(${1:inbuf})", "description": "cd:iconv(inbuf) - \u5b57\u7b26\u7f16\u7801\u8f6c\u6362\n\u4f20\u5165\u503c\uff1a\nstring inbuf$\u8f93\u5165\u5b57\u7b26\u4e32$\u4f8b\u5982:ucs2s \nreturn number$result$\u8fd4\u56de\u7f16\u7801\u8f6c\u6362\u540e\u7684\u7ed3\u679c$0\u6210\u529f,-1\u5931\u8d25\n\u4f8b\u5b50\uff1a\n--unicode\u5927\u7aef\u7f16\u7801 \u8f6c\u5316\u4e3a utf8\u7f16\u7801\nfunction ucs2beToUtf8(ucs2s)\n local cd = iconv.open(\"utf8\", \"ucs2be\")\n return cd:iconv(ucs2s)\nend\n", "prefix": "cd:iconv"}, "iconv.close": {"body": "iconv.close(${1:cd})", "description": "iconv.close(cd) - \u5173\u95ed\u5b57\u7b26\u7f16\u7801\u8f6c\u6362\n\u4f20\u5165\u503c\uff1a\nstring cd$iconv.open\u8fd4\u56de\u7684\u53e5\u67c4$ \nreturn \n\u4f8b\u5b50\uff1a\n--\u5173\u95ed\u5b57\u7b26\u7f16\u7801\u8f6c\u6362\nlocal cd = iconv.open(\"utf8\", \"ucs2be\")\niconv.close(cd)\n", "prefix": "iconv.close"}, "io.exists": {"body": "io.exists(${1:path})", "description": "io.exists(path) - \u5224\u65ad\u6587\u4ef6\u662f\u5426\u5b58\u5728\n\u4f20\u5165\u503c\uff1a\nstring \u6587\u4ef6\u8def\u5f84\n\u8fd4\u56de\u503c\uff1a\nbool \u5b58\u5728\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\nlog.info(\"io\", \"file exists\", io.exists(\"/boottime\"))\n", "prefix": "io.exists"}, "io.fileSize": {"body": "io.fileSize(${1:path})", "description": "io.fileSize(path) - \u83b7\u53d6\u6587\u4ef6\u5927\u5c0f\n\u4f20\u5165\u503c\uff1a\nstring \u6587\u4ef6\u8def\u5f84\n\u8fd4\u56de\u503c\uff1a\nint \u6587\u4ef6\u6570\u636e,\u82e5\u6587\u4ef6\u4e0d\u5b58\u5728\u4f1a\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\nlocal fsize = io.fileSize(\"/bootime\")\nif fsize and fsize > 1024 then\n log.info(\"io\", \"file size\", fsize)\nend\n", "prefix": "io.fileSize"}, "io.readFile": {"body": "io.readFile(${1:path},${2:mode},${3:offset},${4:len})", "description": "io.readFile(path, mode, offset, len) - \u8bfb\u53d6\u6574\u4e2a\u6587\u4ef6,\u8bf7\u6ce8\u610f\u5185\u5b58\u6d88\u8017\n\u4f20\u5165\u503c\uff1a\nstring \u6587\u4ef6\u8def\u5f84\nstring \u8bfb\u53d6\u6a21\u5f0f, \u9ed8\u8ba4 \"rb\"\nint \u8d77\u59cb\u4f4d\u7f6e,\u9ed8\u8ba40\nint \u8bfb\u53d6\u957f\u5ea6,\u9ed8\u8ba4\u6574\u4e2a\u6587\u4ef6\n\u8fd4\u56de\u503c\uff1a\nstring \u6587\u4ef6\u6570\u636e,\u82e5\u6587\u4ef6\u4e0d\u5b58\u5728\u4f1a\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\nlocal data = io.readFile(\"/bootime\")\n-- \u6ce8\u610f: offset\u548clen\u53c2\u6570\u662f 2023.6.6\u6dfb\u52a0\u7684\n-- \u8bfb\u53d6abc.txt, \u5148\u8df3\u8fc7128\u5b57\u8282, \u7136\u540e\u8bfb\u53d6512\u5b57\u8282\u6570\u636e\nlocal data = io.readFile(\"/abc.txt\", \"rb\", 128, 512)\n", "prefix": "io.readFile"}, "io.writeFile": {"body": "io.writeFile(${1:path},${2:data})", "description": "io.writeFile(path, data) - \u5c06\u6570\u636e\u5199\u5165\u6587\u4ef6\n\u4f20\u5165\u503c\uff1a\nstring \u6587\u4ef6\u8def\u5f84\nstring \u6570\u636e\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u8fd4\u56detrue, \u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\nio.writeFile(\"/bootime\", \"1\")\n", "prefix": "io.writeFile"}, "io.fill": {"body": "io.fill(${1:buff},${2:offset},${3:len})", "description": "io.fill(buff, offset, len) - \u8bfb\u53d6\u6587\u4ef6\u5e76\u586b\u5145\u5230zbuff\u5185,\u4f46\u4e0d\u79fb\u52a8\u6307\u9488\u4f4d\u7f6e\n\u4f20\u5165\u503c\uff1a\nuserdata zbuff\u5b9e\u4f53\nint \u5199\u5165\u7684\u4f4d\u7f6e,\u9ed8\u8ba4\u662f0\nint \u5199\u5165\u7684\u957f\u5ea6,\u9ed8\u8ba4\u662fzbuff\u7684len\u51cf\u53bboffset\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\nint \u8fd4\u56de\u5b9e\u9645\u8bfb\u53d6\u5230\u7684\u957f\u5ea6\uff0c\u5982\u679c\u5c0f\u4e8e0\u4e5f\u8bf4\u660e\u662f\u8bfb\u53d6\u5931\u8d25\u4e86\n\u4f8b\u5b50\uff1a\nlocal buff = zbuff.create(1024)\nlocal f = io.open(\"/sd/test.txt\")\nif f then\n f:fill(buff)\nend\n", "prefix": "io.fill"}, "io.mkfs": {"body": "io.mkfs(${1:path})", "description": "io.mkfs(path) - \u683c\u5f0f\u5316\u6587\u4ef6\u7cfb\u7edf,\u9700\u6307\u5b9a\u6302\u8f7d\u70b9\n\u4f20\u5165\u503c\uff1a\nstring \u6302\u8f7d\u70b9\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u4e0e\u5426\nint \u5e95\u5c42\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\nlocal ret, errio = io.mkfs(\"/sd\")\nlog.info(\"fs\", \"mkfs\", ret, errio)\n", "prefix": "io.mkfs"}, "io.mkdir": {"body": "io.mkdir(${1:path})", "description": "io.mkdir(path) - \u521b\u5efa\u6587\u4ef6\u5939\n\u4f20\u5165\u503c\uff1a\nstring \u9700\u8981\u5efa\u7acb\u7684\u76ee\u5f55\u8def\u5f84\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u4e0e\u5426\nint \u5e95\u5c42\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\nlocal ret, errio = io.mkdir(\"/data/\")\nlog.info(\"fs\", \"mkdir\", ret, errio)\n", "prefix": "io.mkdir"}, "io.rmdir": {"body": "io.rmdir(${1:path})", "description": "io.rmdir(path) - \u5220\u9664\u6587\u4ef6\u5939\n\u4f20\u5165\u503c\uff1a\nstring \u9700\u8981\u79fb\u9664\u7684\u76ee\u5f55\u8def\u5f84\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u4e0e\u5426\nint \u5e95\u5c42\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\nlocal ret, errio = io.rmdir(\"/data/\")\nlog.info(\"fs\", \"rmdir\", ret, errio)\n", "prefix": "io.rmdir"}, "io.lsdir": {"body": "io.lsdir(${1:path},${2:len},${3:offset})", "description": "io.lsdir(path, len, offset) - \u5217\u51fa\u76ee\u5f55\u4e0b\u7684\u6587\u4ef6\n\u4f20\u5165\u503c\uff1a\nstring \u9700\u8981\u679a\u4e3e\u7684\u76ee\u5f55\u8def\u5f84\nint \u6700\u5927\u957f\u5ea6, \u9ed8\u8ba410, \u6700\u9ad850\nint \u504f\u79fb\u91cf, \u9ed8\u8ba40, \u5f53\u76ee\u5f55\u6587\u4ef6\u5f88\u591a\u65f6\u5206\u9875\u67e5\u8be2\u7528\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u4e0e\u5426\nint \u5e95\u5c42\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\nlocal ret, data = io.lsdir(\"/data/\", 10, 0)\nif ret then\n log.info(\"fs\", \"lsdir\", json.encode(data))\nelse\n log.info(\"fs\", \"lsdir\", \"fail\", ret, data)\nend\n", "prefix": "io.lsdir"}, "io.lsmount": {"body": "io.lsmount()", "description": "io.lsmount() - \u5217\u51fa\u6240\u6709\u6302\u8f7d\u70b9\n\u8fd4\u56de\u503c\uff1a\ntable \u6302\u8f7d\u70b9\u5217\u8868\n\u4f8b\u5b50\uff1a\nlocal data = io.lsmount()\nlog.info(\"fs\", \"lsmount\", json.encode(data))\n", "prefix": "io.lsmount"}, "ioqueue.init": {"body": "ioqueue.init(${1:hwtimer_id},${2:cmd_cnt},${3:repeat_cnt})", "description": "ioqueue.init(hwtimer_id,cmd_cnt,repeat_cnt) - \u521d\u59cb\u5316\u4e00\u4e2aio\u64cd\u4f5c\u961f\u5217\n\u4f20\u5165\u503c\uff1a\nint \u786c\u4ef6\u5b9a\u65f6\u5668id\uff0c\u9ed8\u8ba4\u75280\uff0c\u6839\u636e\u5b9e\u9645MCU\u786e\u5b9a\uff0cair105\u4e3a0~5\uff0c\u4e0epwm\u5171\u7528\uff0c\u540c\u4e00\u4e2a\u901a\u9053\u53f7\u4e0d\u80fd\u540c\u65f6\u4e3apwm\u548cioqueue\nint \u4e00\u4e2a\u5b8c\u6574\u5468\u671f\u9700\u8981\u7684\u547d\u4ee4\uff0c\u53ef\u4ee5\u6bd4\u5b9e\u9645\u7684\u591a\nint \u91cd\u590d\u6b21\u6570,\u9ed8\u8ba4\u662f1\uff0c\u5982\u679c\u51990\u5219\u8868\u793a\u65e0\u9650\u6b21\u6570\u5faa\u73af\nreturn \u65e0\n\u4f8b\u5b50\uff1a\nioqueue.init(0,10,5) --\u4ee5timer0\u4e3a\u65f6\u949f\u6e90\u521d\u59cb\u5316\u4e00\u4e2aio\u64cd\u4f5c\u961f\u5217\uff0c\u670910\u4e2a\u6709\u6548\u547d\u4ee4\uff0c\u5faa\u73af5\u6b21\n", "prefix": "ioqueue.init"}, "ioqueue.setdelay": {"body": "ioqueue.setdelay(${1:hwtimer_id},${2:time_us},${3:time_tick},${4:continue})", "description": "ioqueue.setdelay(hwtimer_id,time_us,time_tick,continue) - \u5bf9io\u64cd\u4f5c\u961f\u5217\u589e\u52a0\u5ef6\u65f6\u547d\u4ee4\n\u4f20\u5165\u503c\uff1a\nint \u786c\u4ef6\u5b9a\u65f6\u5668id\nint \u5ef6\u65f6\u65f6\u95f4,0~65535us\nint \u5ef6\u65f6\u5fae\u8c03\u65f6\u95f4,0~255tick,\u603b\u7684\u5ef6\u65f6\u65f6\u95f4\u662ftime_us * 1us_tick + time_tick\nboolean \u662f\u5426\u8fde\u7eed\u662f\u8fde\u7eed\u5ef6\u65f6\uff0c\u9ed8\u8ba4\u5426\uff0c\u5982\u679c\u662f\uff0c\u5b9a\u65f6\u5668\u5728\u65f6\u95f4\u5230\u540e\u4e0d\u4f1a\u505c\u6b62\u800c\u662f\u91cd\u65b0\u8ba1\u65f6\uff0c\n", "prefix": "ioqueue.setdelay"}, "ioqueue.delay": {"body": "ioqueue.delay(${1:hwtimer_id})", "description": "ioqueue.delay(hwtimer_id) - \u5bf9io\u64cd\u4f5c\u961f\u5217\u589e\u52a0\u4e00\u6b21\u91cd\u590d\u5ef6\u65f6\uff0c\u5728\u524d\u9762\u5fc5\u987b\u6709setdelay\u4e14\u662f\u8fde\u7eed\u5ef6\u65f6\n\u4f20\u5165\u503c\uff1a\nint \u786c\u4ef6\u5b9a\u65f6\u5668id\nreturn \u65e0\n\u4f8b\u5b50\uff1a\nioqueue.setdelay(0,9,15,true) --\u5ef6\u65f69us+15\u4e2atick,\u5728\u4e4b\u540e\u9047\u5230delay\u547d\u4ee4\u65f6\uff0c\u4f1a\u5ef6\u65f69us+15\u4e2atick\nioqueue.delay(0)\n", "prefix": "ioqueue.delay"}, "ioqueue.setgpio": {"body": "ioqueue.setgpio(${1:hwtimer_id},${2:pin},${3:is_input},${4:pull_mode},${5:init_level})", "description": "ioqueue.setgpio(hwtimer_id,pin,is_input,pull_mode,init_level) - \u5bf9io\u64cd\u4f5c\u961f\u5217\u589e\u52a0\u8bbe\u7f6egpio\u547d\u4ee4\n\u4f20\u5165\u503c\uff1a\nint \u786c\u4ef6\u5b9a\u65f6\u5668id\nint pin\nboolean \u662f\u5426\u662f\u8f93\u5165\nint \u4e0a\u4e0b\u62c9\u6a21\u5f0f,\u53ea\u80fd\u662f0,gpio.PULLUP,gpio.PULLDOWN\nint \u521d\u59cb\u8f93\u51fa\u7535\u5e73\nreturn \u65e0\n\u4f8b\u5b50\uff1a\nioqueue.setgpio(0,pin.PB01,true,gpio.PULLUP,0) --PB01\u8bbe\u7f6e\u6210\u4e0a\u62c9\u8f93\u5165\nioqueue.setgpio(0,pin.PB01,false,0,1)--PB01\u8bbe\u7f6e\u6210\u9ed8\u8ba4\u4e0a\u4e0b\u62c9\u8f93\u51fa\u9ad8\u7535\u5e73\n", "prefix": "ioqueue.setgpio"}, "ioqueue.input": {"body": "ioqueue.input(${1:hwtimer_id},${2:pin})", "description": "ioqueue.input(hwtimer_id,pin) - \u5bf9io\u64cd\u4f5c\u961f\u5217\u589e\u52a0\u8bfb\u53d6gpio\u547d\u4ee4\n\u4f20\u5165\u503c\uff1a\nint \u786c\u4ef6\u5b9a\u65f6\u5668id\nint pin\nreturn \u65e0\n\u4f8b\u5b50\uff1a\nioqueue.input(0,pin.PB01)\n\n", "prefix": "ioqueue.input"}, "ioqueue.output": {"body": "ioqueue.output(${1:hwtimer_id},${2:pin},${3:level})", "description": "ioqueue.output(hwtimer_id,pin,level) - \u5bf9io\u64cd\u4f5c\u961f\u5217\u589e\u52a0\u8f93\u51faGPIO\u547d\u4ee4\n\u4f20\u5165\u503c\uff1a\nint \u786c\u4ef6\u5b9a\u65f6\u5668id\nint pin\nint \u8f93\u51fa\u7535\u5e73\nreturn \u65e0\n\u4f8b\u5b50\uff1a\nioqueue.output(0,pin.PB01,0)\n", "prefix": "ioqueue.output"}, "ioqueue.setcap": {"body": "ioqueue.setcap(${1:hwtimer_id},${2:pin},${3:pull_mode},${4:irq_mode},${5:max_tick})", "description": "ioqueue.setcap(hwtimer_id,pin,pull_mode,irq_mode,max_tick) - \u5bf9io\u64cd\u4f5c\u961f\u5217\u589e\u52a0\u8bbe\u7f6e\u6355\u83b7\u67d0\u4e2aIO\u547d\u4ee4\n\u4f20\u5165\u503c\uff1a\nint \u786c\u4ef6\u5b9a\u65f6\u5668id\nint pin\nint \u4e0a\u4e0b\u62c9\u6a21\u5f0f,\u53ea\u80fd\u662f0,gpio.PULLUP,gpio.PULLDOWN\nint \u4e2d\u65ad\u6a21\u5f0f,\u53ea\u80fd\u662fgpio.BOTH,gpio.RISING,gpio.FALLING\nint \u5b9a\u65f6\u5668\u6700\u5927\u8ba1\u65f6\u65f6\u95f4 \u8003\u8651\u5230lua\u662fint\u7c7b\u578b\uff0c\u6700\u5c0f0x10000, \u6700\u5927\u503c\u4e3a0x7fffffff\uff0c\u9ed8\u8ba4\u4e3a\u6700\u5927\u503c\nreturn \u65e0\n\u4f8b\u5b50\uff1a\nioqueue.setcap(0,pin.PB01,gpio.PULLUP,gpio.FALLING,48000000)\n", "prefix": "ioqueue.setcap"}, "ioqueue.capture": {"body": "ioqueue.capture(${1:hwtimer_id})", "description": "ioqueue.capture(hwtimer_id) - \u5bf9io\u64cd\u4f5c\u961f\u5217\u589e\u52a0\u6355\u83b7\u4e00\u6b21IO\u72b6\u6001\u547d\u4ee4\n\u4f20\u5165\u503c\uff1a\nint \u786c\u4ef6\u5b9a\u65f6\u5668id\nreturn \u65e0\n\u4f8b\u5b50\uff1a\nioqueue.capture(0)\n", "prefix": "ioqueue.capture"}, "ioqueue.capend": {"body": "ioqueue.capend(${1:hwtimer_id},${2:pin})", "description": "ioqueue.capend(hwtimer_id,pin) - \u5bf9io\u64cd\u4f5c\u961f\u5217\u589e\u52a0\u7ed3\u675f\u6355\u83b7\u67d0\u4e2aIO\u547d\u4ee4\n\u4f20\u5165\u503c\uff1a\nint \u786c\u4ef6\u5b9a\u65f6\u5668id\nint pin\nreturn \u65e0\n\u4f8b\u5b50\uff1a\nioqueue.capend(0,pin.PB01)\n", "prefix": "ioqueue.capend"}, "ioqueue.get": {"body": "ioqueue.get(${1:hwtimer_id},${2:input_buff},${3:capture_buff})", "description": "ioqueue.get(hwtimer_id, input_buff, capture_buff) - * \u83b7\u53d6io\u64cd\u4f5c\u961f\u5217\u4e2d\u8f93\u5165\u548c\u6355\u83b7\u7684\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nint \u786c\u4ef6\u5b9a\u65f6\u5668id\nzbuff \u5b58\u653eIO\u8f93\u5165\u6570\u636e\u7684buff\uff0c\u6309\u71671byte pin + 1byte level \u5f62\u5f0f\u5b58\u653e\u6570\u636e\nzbuff \u5b58\u653eIO\u6355\u83b7\u6570\u636e\u7684buff\uff0c\u6309\u71671byte pin + 1byte level + 4byte tick\u5f62\u5f0f\u5b58\u653e\u6570\u636e\n\u8fd4\u56de\u503c\uff1a\nint \u8fd4\u56de\u591a\u5c11\u7ec4IO\u8f93\u5165\u6570\u636e\nint \u8fd4\u56de\u591a\u5c11\u7ec4IO\u6355\u83b7\u6570\u636e\n\u4f8b\u5b50\uff1a\nlocal input_cnt, capture_cnt = ioqueue.get(0, input_buff, capture_buff)\n", "prefix": "ioqueue.get"}, "ioqueue.start": {"body": "ioqueue.start(${1:hwtimer_id})", "description": "ioqueue.start(hwtimer_id) - \u542f\u52a8io\u64cd\u4f5c\u961f\u5217\n\u4f20\u5165\u503c\uff1a\nint \u786c\u4ef6\u5b9a\u65f6\u5668id\nreturn \u65e0\n\u4f8b\u5b50\uff1a\nioqueue.start(0)\n", "prefix": "ioqueue.start"}, "ioqueue.stop": {"body": "ioqueue.stop(${1:hwtimer_id})", "description": "ioqueue.stop(hwtimer_id) - \u505c\u6b62io\u64cd\u4f5c\u961f\u5217\uff0c\u53ef\u4ee5\u901a\u8fc7start\u4ece\u5934\u5f00\u59cb\n\u4f20\u5165\u503c\uff1a\nint \u786c\u4ef6\u5b9a\u65f6\u5668id\n\u8fd4\u56de\u503c\uff1a\nint \u8fd4\u56de\u5df2\u7ecf\u5faa\u73af\u7684\u6b21\u6570\uff0c\u5982\u679c\u662f0\uff0c\u8868\u793a\u4e00\u6b21\u5faa\u73af\u90fd\u6ca1\u6709\u5b8c\u6210\nint \u8fd4\u56de\u5355\u6b21\u5faa\u73af\u4e2d\u5df2\u7ecf\u6267\u884c\u7684cmd\u6b21\u6570\uff0c\u5982\u679c\u662f0\uff0c\u53ef\u80fd\u662f\u4e00\u6b21\u5faa\u73af\u521a\u521a\u7ed3\u675f\n\u4f8b\u5b50\uff1a\nioqueue.stop(0)\n", "prefix": "ioqueue.stop"}, "ioqueue.release": {"body": "ioqueue.release(${1:hwtimer_id})", "description": "ioqueue.release(hwtimer_id) - \u91ca\u653eio\u64cd\u4f5c\u961f\u5217\u7684\u8d44\u6e90\uff0c\u4e0b\u6b21\u4f7f\u7528\u5fc5\u987b\u91cd\u65b0init\n\u4f20\u5165\u503c\uff1a\nint \u786c\u4ef6\u5b9a\u65f6\u5668id\nreturn \u65e0\n\u4f8b\u5b50\uff1a\nioqueue.clear(0)\n", "prefix": "ioqueue.release"}, "ioqueue.clear": {"body": "ioqueue.clear(${1:hwtimer_id})", "description": "ioqueue.clear(hwtimer_id) - \u6e05\u7a7aio\u64cd\u4f5c\u961f\u5217\n\u4f20\u5165\u503c\uff1a\nint \u786c\u4ef6\u5b9a\u65f6\u5668id\nreturn \u65e0\n\u4f8b\u5b50\uff1a\nioqueue.clear(0)\n", "prefix": "ioqueue.clear"}, "ioqueue.done": {"body": "ioqueue.done(${1:hwtimer_id})", "description": "ioqueue.done(hwtimer_id) - \u68c0\u6d4bio\u64cd\u4f5c\u961f\u5217\u662f\u5426\u5df2\u7ecf\u6267\u884c\u5b8c\u6210\n\u4f20\u5165\u503c\uff1a\nint \u786c\u4ef6\u5b9a\u65f6\u5668id\n\u8fd4\u56de\u503c\uff1a\nboolean \u961f\u5217\u662f\u5426\u6267\u884c\u5b8c\u6210\uff0c\n\u4f8b\u5b50\uff1a\nlocal result = ioqueue.done(0)\n", "prefix": "ioqueue.done"}, "ioqueue.exti": {"body": "ioqueue.exti(${1:pin},${2:pull_mode},${3:irq_mode},${4:onoff})", "description": "ioqueue.exti(pin,pull_mode,irq_mode,onoff) - \u542f\u52a8/\u505c\u6b62\u4e00\u4e2a\u5e26\u7cfb\u7edftick\u8fd4\u56de\u7684\u5916\u90e8\u4e2d\u65ad\n\u4f20\u5165\u503c\uff1a\nint pin\nint \u4e0a\u4e0b\u62c9\u6a21\u5f0f,\u53ea\u80fd\u662f0,gpio.PULLUP,gpio.PULLDOWN\nint \u4e2d\u65ad\u6a21\u5f0f,\u53ea\u80fd\u662fgpio.BOTH,gpio.RISING,gpio.FALLING\nboolean \u5f00\u5173\uff0c\u9ed8\u8ba4\u662ffalse\u5173\nreturn \u65e0\n\u4f8b\u5b50\uff1a\nioqueue.exti(pin.PB01, gpio.PULLUP, gpio.BOTH, true)\nioqueue.exti(pin.PB01)\n", "prefix": "ioqueue.exti"}, "iotauth.aliyun": {"body": "iotauth.aliyun(${1:product_key},${2:device_name},${3:device_secret},${4:method},${5:cur_timestamp})", "description": "iotauth.aliyun(product_key, device_name,device_secret,method,cur_timestamp) - \u963f\u91cc\u4e91\u7269\u8054\u7f51\u5e73\u53f0\u4e09\u5143\u7ec4\u751f\u6210\n\u4f20\u5165\u503c\uff1a\nstring product_key\nstring device_name\nstring device_secret\nstring method \u52a0\u5bc6\u65b9\u5f0f,\"hmacmd5\" \"hmacsha1\" \"hmacsha256\" \u53ef\u9009,\u9ed8\u8ba4\"hmacmd5\"\nnumber cur_timestamp \u53ef\u9009 \u9ed8\u8ba4\u4e3a 32472115200(2999-01-01 0:0:0)\nbool istls \u662f\u5426TLS\u76f4\u8fde true:TLS\u76f4\u8fde false:TCP\u76f4\u8fde\u6a21\u5f0f \u9ed8\u8ba4TCP\u76f4\u8fde\u6a21\u5f0f\n\u8fd4\u56de\u503c\uff1a\nstring mqtt\u4e09\u5143\u7ec4 client_id\nstring mqtt\u4e09\u5143\u7ec4 user_name\nstring mqtt\u4e09\u5143\u7ec4 password\n\u4f8b\u5b50\uff1a\nlocal client_id,user_name,password = iotauth.aliyun(\"123456789\",\"abcdefg\",\"Y877Bgo8X5owd3lcB5wWDjryNPoB\")\nprint(client_id,user_name,password)\n", "prefix": "iotauth.aliyun"}, "iotauth.onenet": {"body": "iotauth.onenet(${1:produt_id},${2:device_name},${3:key},${4:method},${5:cur_timestamp},${6:version})", "description": "iotauth.onenet(produt_id, device_name,key,method,cur_timestamp,version) - \u4e2d\u56fd\u79fb\u52a8\u7269\u8054\u7f51\u5e73\u53f0\u4e09\u5143\u7ec4\u751f\u6210\n\u4f20\u5165\u503c\uff1a\nstring produt_id\nstring device_name\nstring key\nstring method \u52a0\u5bc6\u65b9\u5f0f,\"md5\" \"sha1\" \"sha256\" \u53ef\u9009,\u9ed8\u8ba4\"md5\"\nnumber cur_timestamp \u53ef\u9009 \u9ed8\u8ba4\u4e3a 32472115200(2999-01-01 0:0:0)\nstring version \u53ef\u9009 \u9ed8\u8ba4\"2018-10-31\"\n\u8fd4\u56de\u503c\uff1a\nstring mqtt\u4e09\u5143\u7ec4 client_id\nstring mqtt\u4e09\u5143\u7ec4 user_name\nstring mqtt\u4e09\u5143\u7ec4 password\n\u4f8b\u5b50\uff1a\nlocal client_id,user_name,password = iotauth.onenet(\"123456789\",\"test\",\"KuF3NT/jUBJ62LNBB/A8XZA9CqS3Cu79B/ABmfA1UCw=\")\nprint(client_id,user_name,password)\n", "prefix": "iotauth.onenet"}, "iotauth.iotda": {"body": "iotauth.iotda(${1:device_id},${2:device_secret},${3:cur_timestamp})", "description": "iotauth.iotda(device_id,device_secret,cur_timestamp) - \u534e\u4e3a\u7269\u8054\u7f51\u5e73\u53f0\u4e09\u5143\u7ec4\u751f\u6210\n\u4f20\u5165\u503c\uff1a\nstring device_id\nstring device_secret\nnumber cur_timestamp \u53ef\u9009 \u5982\u4e0d\u586b\u5219\u4e0d\u6821\u9a8c\u65f6\u95f4\u6233\n\u8fd4\u56de\u503c\uff1a\nstring mqtt\u4e09\u5143\u7ec4 client_id\nstring mqtt\u4e09\u5143\u7ec4 user_name\nstring mqtt\u4e09\u5143\u7ec4 password\n\u4f8b\u5b50\uff1a\nlocal client_id,user_name,password = iotauth.iotda(\"6203cc94c7fb24029b110408_88888888\",\"123456789\")\nprint(client_id,user_name,password)\n", "prefix": "iotauth.iotda"}, "iotauth.qcloud": {"body": "iotauth.qcloud(${1:product_id},${2:device_name},${3:device_secret},${4:method},${5:cur_timestamp},${6:sdk_appid})", "description": "iotauth.qcloud(product_id, device_name,device_secret,method,cur_timestamp,sdk_appid) - \u817e\u8baf\u8054\u7f51\u5e73\u53f0\u4e09\u5143\u7ec4\u751f\u6210\n\u4f20\u5165\u503c\uff1a\nstring \u4ea7\u54c1id,\u521b\u5efa\u9879\u76ee\u540e\u53ef\u4ee5\u67e5\u770b\u5230,\u7c7b\u4f3c\u4e8eLD8S5J1L07\nstring \u8bbe\u5907\u540d\u79f0,\u4f8b\u5982\u8bbe\u5907\u7684imei\u53f7\nstring \u8bbe\u5907\u5bc6\u94a5,\u521b\u5efa\u8bbe\u5907\u540e,\u67e5\u770b\u8bbe\u5907\u8be6\u60c5\u53ef\u5f97\u5230\nstring method \u52a0\u5bc6\u65b9\u5f0f,\"sha1\" \"sha256\" \u53ef\u9009,\u9ed8\u8ba4\"sha256\"\nnumber cur_timestamp \u53ef\u9009 \u9ed8\u8ba4\u4e3a 32472115200(2999-01-01 0:0:0)\nstring sdk_appid \u53ef\u9009 \u9ed8\u8ba4\u4e3a\"12010126\"\n\u8fd4\u56de\u503c\uff1a\nstring mqtt\u4e09\u5143\u7ec4 client_id\nstring mqtt\u4e09\u5143\u7ec4 user_name\nstring mqtt\u4e09\u5143\u7ec4 password\n\u4f8b\u5b50\uff1a\nlocal client_id,user_name,password = iotauth.qcloud(\"LD8S5J1L07\",\"test\",\"acyv3QDJrRa0fW5UE58KnQ==\")\nprint(client_id,user_name,password)\n", "prefix": "iotauth.qcloud"}, "iotauth.tuya": {"body": "iotauth.tuya(${1:device_id},${2:device_secret},${3:cur_timestamp})", "description": "iotauth.tuya(device_id,device_secret,cur_timestamp) - \u6d82\u9e26\u8054\u7f51\u5e73\u53f0\u4e09\u5143\u7ec4\u751f\u6210\n\u4f20\u5165\u503c\uff1a\nstring device_id\nstring device_secret\nnumber cur_timestamp \u53ef\u9009 \u9ed8\u8ba47258089600(2200-01-01 0:0:0)\n\u8fd4\u56de\u503c\uff1a\nstring mqtt\u4e09\u5143\u7ec4 client_id\nstring mqtt\u4e09\u5143\u7ec4 user_name\nstring mqtt\u4e09\u5143\u7ec4 password\n\u4f8b\u5b50\uff1a\nlocal client_id,user_name,password = iotauth.tuya(\"6c95875d0f5ba69607nzfl\",\"fb803786602df760\")\nprint(client_id,user_name,password)\n", "prefix": "iotauth.tuya"}, "iotauth.baidu": {"body": "iotauth.baidu(${1:iot_core_id},${2:device_key},${3:device_secret},${4:method},${5:cur_timestamp})", "description": "iotauth.baidu(iot_core_id, device_key,device_secret,method,cur_timestamp) - \u767e\u5ea6\u7269\u8054\u7f51\u5e73\u53f0\u4e09\u5143\u7ec4\u751f\u6210\n\u4f20\u5165\u503c\uff1a\nstring iot_core_id\nstring device_key\nstring device_secret\nstring method \u52a0\u5bc6\u65b9\u5f0f,\"MD5\" \"SHA256\" \u53ef\u9009,\u9ed8\u8ba4\"MD5\"\nnumber cur_timestamp \u53ef\u9009 \u5982\u4e0d\u586b\u5219\u4e0d\u6821\u9a8c\u65f6\u95f4\u6233\n\u8fd4\u56de\u503c\uff1a\nstring mqtt\u4e09\u5143\u7ec4 client_id\nstring mqtt\u4e09\u5143\u7ec4 user_name\nstring mqtt\u4e09\u5143\u7ec4 password\n\u4f8b\u5b50\uff1a\nlocal client_id,user_name,password = iotauth.baidu(\"abcd123\",\"mydevice\",\"ImSeCrEt0I1M2jkl\")\nprint(client_id,user_name,password)\n", "prefix": "iotauth.baidu"}, "ir.sendNEC": {"body": "ir.sendNEC(${1:pin},${2:addr},${3:cmd},${4:repeat},${5:disablePWM})", "description": "ir.sendNEC(pin, addr, cmd, repeat, disablePWM) - \u53d1\u9001NEC\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nint \u4f7f\u7528\u7684GPIO\u5f15\u811a\u7f16\u53f7\nint \u7528\u6237\u7801\uff08\u5927\u4e8e0xff\u5219\u91c7\u7528Extended NEC\u6a21\u5f0f\uff09\nint \u6570\u636e\u7801\nint \u53ef\u9009\uff0c\u5f15\u5bfc\u7801\u53d1\u9001\u6b21\u6570\uff08110ms\u4e00\u6b21\uff09\uff0c\u9ed8\u8ba40\u6b21\nbool \u53ef\u9009\uff0c\u662f\u5426\u7981\u6b62\u76f4\u63a5\u53d1\u9001pwm\u6ce2\uff0c\u9ed8\u8ba4false\n\u4f8b\u5b50\uff1a\n--\u76f4\u63a5\u53d1\nir.sendNEC(0, 0x11, 0x22)\n--\u5916\u63a5\u4e8638K\u7684PWM\u8f7d\u6ce2\uff0c\u53ea\u63a7\u5236\u7535\u5e73\nir.sendNEC(0, 0x11, 0x22,0,true)\n", "prefix": "ir.sendNEC"}, "json.encode": {"body": "json.encode(${1:obj},${2:t})", "description": "json.encode(obj,t) - \u5c06\u5bf9\u8c61\u5e8f\u5217\u5316\u4e3ajson\u5b57\u7b26\u4e32\n\u4f20\u5165\u503c\uff1a\nobj \u9700\u8981\u5e8f\u5217\u5316\u7684\u5bf9\u8c61\nstring \u6d6e\u70b9\u6570\u7cbe\u5ea6\u548c\u6a21\u5f0f,\u8fd9\u9879\u4e0d\u5b58\u5728\u7684\u65f6\u5019,\u4e3a\u9ed8\u8ba4\u503c\"7g\",\u6570\u5b57\u53ea\u652f\u6301\"0~14\",\u6a21\u5f0f\u53ea\u652f\u6301\"f/g\"\n\u8fd4\u56de\u503c\uff1a\nstring \u5e8f\u5217\u5316\u540e\u7684json\u5b57\u7b26\u4e32, \u5931\u8d25\u7684\u8bdd\u8fd4\u56denil\nstring \u5e8f\u5217\u5316\u5931\u8d25\u7684\u62a5\u9519\u4fe1\u606f\n\u4f8b\u5b50\uff1a\njson.encode(obj)-->\u6d6e\u70b9\u6570\u7528%.7g\u7684\u65b9\u5f0f\u8f6c\u6362\u4e3a\u5b57\u7b26\u4e32\njson.encode(obj,\"12f\")-->\u6d6e\u70b9\u6570\u7528%.12f\u7684\u65b9\u5f0f\u8f6c\u6362\u4e3a\u5b57\u7b26\u4e32\n", "prefix": "json.encode"}, "json.decode": {"body": "json.decode(${1:str})", "description": "json.decode(str) - \u5c06\u5b57\u7b26\u4e32\u53cd\u5e8f\u5217\u5316\u4e3a\u5bf9\u8c61\n\u4f20\u5165\u503c\uff1a\nstring \u9700\u8981\u53cd\u5e8f\u5217\u5316\u7684json\u5b57\u7b26\u4e32\n\u8fd4\u56de\u503c\uff1a\nobj \u53cd\u5e8f\u5217\u5316\u540e\u7684\u5bf9\u8c61(\u901a\u5e38\u662ftable), \u5931\u8d25\u7684\u8bdd\u8fd4\u56denil\nresult \u6210\u529f\u8fd4\u56de1,\u5426\u5219\u8fd4\u56de0\nerr \u53cd\u5e8f\u5217\u5316\u5931\u8d25\u7684\u62a5\u9519\u4fe1\u606f\n\u4f8b\u5b50\uff1a\njson.decode(\"[1,2,3,4,5,6]\")\n", "prefix": "json.decode"}, "keyboard.init": {"body": "keyboard.init(${1:port},${2:conf},${3:map},${4:debounce})", "description": "keyboard.init(port, conf, map, debounce) - \u521d\u59cb\u5316\u952e\u76d8\u77e9\u9635\n\u4f20\u5165\u503c\uff1a\nint \u9884\u7559, \u5f53\u524d\u586b0\nint \u542f\u7528\u7684keyboard\u7ba1\u811a\u63a9\u7801, \u4f8b\u5982\u4f7f\u7528keyboard0~9, \u5219\u63a9\u7801\u4e3a 0x1FF, \u82e5\u4f7f\u7528 0~3 \u5219 0xF\nint keyboard\u7ba1\u811a\u65b9\u5411\u6620\u5c04, \u5176\u4e2d\u8f93\u5165\u4e3a0,\u8f93\u51fa\u4e3a1, \u6309\u4f4d\u8bbe\u7f6e. \u4f8b\u5982 keyboard0~3\u4f5c\u4e3a\u8f93\u5165, keyboard4~7\u4e3a\u8f93\u5165, \u5219 0xF0\nint \u6d88\u6296\u914d\u7f6e,\u9884\u7559,\u53ef\u4ee5\u4e0d\u586b\n\u4f8b\u5b50\uff1a\n-- \u505a\u4e00\u4e2a 4*4 \u952e\u76d8\u77e9\u9635, \u4f7f\u7528 keyboard0~7, \u5176\u4e2d0~3\u505a\u8f93\u5165, 4~7\u505a\u8f93\u51fa\n-- \u4f7f\u7528 keyboard0~7, \u5bf9\u5e94conf\u4e3a 0xFF\n-- \u5176\u4e2d0~3\u505a\u8f93\u5165, 4~7\u505a\u8f93\u51fa, \u5bf9\u5e94map \u4e3a 0xF0\nkeyboard.init(0, 0xFF, 0xF0)\n\n-- \u505a\u4e00\u4e2a 2*3 \u952e\u76d8\u77e9\u9635, \u4f7f\u7528 keyboard0~4, \u5176\u4e2d0~1\u505a\u8f93\u5165, 2~4\u505a\u8f93\u51fa\n-- \u4f7f\u7528 keyboard0~4, \u4e8c\u8fdb\u5236\u4e3a 11111, \u5bf9\u5e94conf\u7684\u5341\u516d\u8fdb\u5236\u8868\u8fbe\u4e3a 0x1F\n-- \u5176\u4e2d0~1\u505a\u8f93\u5165, 2~4\u505a\u8f93\u51fa, \u4e8c\u8fdb\u5236\u4e3a 11100 \u5bf9\u5e94map \u4e3a 0x14\n-- keyboard.init(0, 0xFF, 0x14)\n\nsys.subscribe(\"KB_INC\", function(port, data, state)\n -- port \u5f53\u524d\u56fa\u5b9a\u4e3a0, \u53ef\u4ee5\u65e0\u89c6\n -- data, \u9700\u8981\u914d\u5408init\u7684map\u8fdb\u884c\u89e3\u6790\n -- state, 1 \u4e3a\u6309\u4e0b, 0 \u4e3a \u91ca\u653e\n -- TODO \u8be6\u7ec6\u4ecb\u7ecd\nend)\n", "prefix": "keyboard.init"}, "lcd.init": {"body": "lcd.init(${1:tp},${2:args})", "description": "lcd.init(tp, args) - lcd\u663e\u793a\u5c4f\u521d\u59cb\u5316\n\u4f20\u5165\u503c\uff1a\nstring lcd\u7c7b\u578b\uff0c\u5f53\u524d\u652f\u6301\uff1a
st7796
st7789
st7735
st7735v
st7735s
gc9a01
gc9106l
gc9306x
ili9486
custom\ntable \u9644\u52a0\u53c2\u6570,\u4e0e\u5177\u4f53\u8bbe\u5907\u6709\u5173\uff1a
pin_pwr\uff08\u80cc\u5149\uff09\u4e3a\u53ef\u9009\u9879,\u53ef\u4e0d\u8bbe\u7f6e
port\uff1aspi\u7aef\u53e3,\u4f8b\u59820,1,2...\u5982\u679c\u4e3adevice\u65b9\u5f0f\u5219\u4e3a\"device\"
pin_dc\uff1alcd\u6570\u636e/\u547d\u4ee4\u9009\u62e9\u5f15\u811a
pin_rst\uff1alcd\u590d\u4f4d\u5f15\u811a
pin_pwr\uff1alcd\u80cc\u5149\u5f15\u811a \u53ef\u9009\u9879,\u53ef\u4e0d\u8bbe\u7f6e
direction\uff1alcd\u5c4f\u5e55\u65b9\u5411 0:0\u00b0 1:180\u00b0 2:270\u00b0 3:90\u00b0
w\uff1alcd \u6c34\u5e73\u5206\u8fa8\u7387
h\uff1alcd \u7ad6\u76f4\u5206\u8fa8\u7387
xoffset\uff1ax\u504f\u79fb(\u4e0d\u540c\u5c4f\u5e55ic \u4e0d\u540c\u5c4f\u5e55\u65b9\u5411\u4f1a\u6709\u5dee\u5f02)
yoffset\uff1ay\u504f\u79fb(\u4e0d\u540c\u5c4f\u5e55ic \u4e0d\u540c\u5c4f\u5e55\u65b9\u5411\u4f1a\u6709\u5dee\u5f02)\nuserdata spi\u8bbe\u5907,\u5f53port = \"device\"\u65f6\u6709\u6548\n\u4f8b\u5b50\uff1a\n-- \u521d\u59cb\u5316spi0\u7684st7735s \u6ce8\u610f:lcd\u521d\u59cb\u5316\u4e4b\u524d\u9700\u8981\u5148\u521d\u59cb\u5316spi\nspi_lcd = spi.deviceSetup(0,20,0,0,8,2000000,spi.MSB,1,1)\nlog.info(\"lcd.init\",\nlcd.init(\"st7735s\",{port = \"device\",pin_dc = 17, pin_pwr = 7,pin_rst = 19,direction = 2,w = 160,h = 80,xoffset = 1,yoffset = 26},spi_lcd))\n", "prefix": "lcd.init"}, "lcd.close": {"body": "lcd.close()", "description": "lcd.close() - \u5173\u95edlcd\u663e\u793a\u5c4f\n\u4f8b\u5b50\uff1a\n-- \u5173\u95edlcd\nlcd.close()\n", "prefix": "lcd.close"}, "lcd.on": {"body": "lcd.on()", "description": "lcd.on() - \u5f00\u542flcd\u663e\u793a\u5c4f\u80cc\u5149\n\u4f8b\u5b50\uff1a\n-- \u5f00\u542flcd\u663e\u793a\u5c4f\u80cc\u5149\nlcd.on()\n", "prefix": "lcd.on"}, "lcd.off": {"body": "lcd.off()", "description": "lcd.off() - \u5173\u95edlcd\u663e\u793a\u5c4f\u80cc\u5149\n\u4f8b\u5b50\uff1a\n-- \u5173\u95edlcd\u663e\u793a\u5c4f\u80cc\u5149\nlcd.off()\n", "prefix": "lcd.off"}, "lcd.sleep": {"body": "lcd.sleep()", "description": "lcd.sleep() - lcd\u7761\u7720\n\u4f8b\u5b50\uff1a\n-- lcd\u7761\u7720\nlcd.sleep()\n", "prefix": "lcd.sleep"}, "lcd.wakeup": {"body": "lcd.wakeup()", "description": "lcd.wakeup() - lcd\u5524\u9192\n\u4f8b\u5b50\uff1a\n-- lcd\u5524\u9192\nlcd.wakeup()\n", "prefix": "lcd.wakeup"}, "lcd.invon": {"body": "lcd.invon()", "description": "lcd.invon() - lcd\u53cd\u663e\n\u4f8b\u5b50\uff1a\n-- lcd\u53cd\u663e\nlcd.invon()\n", "prefix": "lcd.invon"}, "lcd.invoff": {"body": "lcd.invoff()", "description": "lcd.invoff() - lcd\u53cd\u663e\u5173\u95ed\n\u4f8b\u5b50\uff1a\n-- lcd\u53cd\u663e\u5173\u95ed\nlcd.invoff()\n", "prefix": "lcd.invoff"}, "lcd.cmd": {"body": "lcd.cmd(${1:cmd})", "description": "lcd.cmd(cmd) - lcd\u547d\u4ee4\n\u4f20\u5165\u503c\uff1a\nint cmd\n\u4f8b\u5b50\uff1a\n-- lcd\u547d\u4ee4\nlcd.cmd(0x21)\n", "prefix": "lcd.cmd"}, "lcd.data": {"body": "lcd.data(${1:data})", "description": "lcd.data(data) - lcd\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nint data\n\u4f8b\u5b50\uff1a\n-- lcd\u6570\u636e\nlcd.data(0x21)\n", "prefix": "lcd.data"}, "lcd.setColor": {"body": "lcd.setColor(${1:back},${2:fore})", "description": "lcd.setColor(back,fore) - lcd\u989c\u8272\u8bbe\u7f6e\n\u4f20\u5165\u503c\uff1a\nint \u80cc\u666f\u8272\nint \u524d\u666f\u8272\n\u4f8b\u5b50\uff1a\n-- lcd\u989c\u8272\u8bbe\u7f6e\nlcd.setColor(0xFFFF,0x0000)\n", "prefix": "lcd.setColor"}, "lcd.draw": {"body": "lcd.draw(${1:x1},${2:y1},${3:x2},${4:y2},${5:color})", "description": "lcd.draw(x1, y1, x2, y2,color) - lcd\u989c\u8272\u586b\u5145\n\u4f20\u5165\u503c\uff1a\nint \u5de6\u4e0a\u8fb9\u7f18\u7684X\u4f4d\u7f6e.\nint \u5de6\u4e0a\u8fb9\u7f18\u7684Y\u4f4d\u7f6e.\nint \u53f3\u4e0b\u8fb9\u7f18\u7684X\u4f4d\u7f6e.\nint \u53f3\u4e0b\u8fb9\u7f18\u7684Y\u4f4d\u7f6e.\nstring \u5b57\u7b26\u4e32\u6216zbuff\u5bf9\u8c61\n\u4f8b\u5b50\uff1a\n-- lcd\u989c\u8272\u586b\u5145\nlocal buff = zbuff.create({201,1,16},0x001F)\nlcd.draw(20,30,220,30,buff)\n", "prefix": "lcd.draw"}, "lcd.clear": {"body": "lcd.clear(${1:color})", "description": "lcd.clear(color) - lcd\u6e05\u5c4f\n\u4f20\u5165\u503c\uff1a\nint \u5c4f\u5e55\u989c\u8272 \u53ef\u9009\u53c2\u6570,\u9ed8\u8ba4\u80cc\u666f\u8272\n\u4f8b\u5b50\uff1a\n-- lcd\u6e05\u5c4f\nlcd.clear()\n", "prefix": "lcd.clear"}, "lcd.fill": {"body": "lcd.fill(${1:x1},${2:y1},${3:x2},${4:y2},${5:color})", "description": "lcd.fill(x1, y1, x2, y2,color) - lcd\u989c\u8272\u586b\u5145\n\u4f20\u5165\u503c\uff1a\nint \u5de6\u4e0a\u8fb9\u7f18\u7684X\u4f4d\u7f6e.\nint \u5de6\u4e0a\u8fb9\u7f18\u7684Y\u4f4d\u7f6e.\nint \u53f3\u4e0b\u8fb9\u7f18\u7684X\u4f4d\u7f6e,\u4e0d\u542b\nint \u53f3\u4e0b\u8fb9\u7f18\u7684Y\u4f4d\u7f6e,\u4e0d\u542b\nint \u7ed8\u753b\u989c\u8272 \u53ef\u9009\u53c2\u6570,\u9ed8\u8ba4\u80cc\u666f\u8272\n\u4f8b\u5b50\uff1a\n-- lcd\u989c\u8272\u586b\u5145\nlcd.fill(20,30,220,30,0x0000)\n", "prefix": "lcd.fill"}, "lcd.drawPoint": {"body": "lcd.drawPoint(${1:x0},${2:y0},${3:color})", "description": "lcd.drawPoint(x0,y0,color) - \u753b\u4e00\u4e2a\u70b9.\n\u4f20\u5165\u503c\uff1a\nint \u70b9\u7684X\u4f4d\u7f6e.\nint \u70b9\u7684Y\u4f4d\u7f6e.\nint \u7ed8\u753b\u989c\u8272 \u53ef\u9009\u53c2\u6570,\u9ed8\u8ba4\u524d\u666f\u8272\n\u4f8b\u5b50\uff1a\nlcd.drawPoint(20,30,0x001F)\n", "prefix": "lcd.drawPoint"}, "lcd.drawLine": {"body": "lcd.drawLine(${1:x0},${2:y0},${3:x1},${4:y1},${5:color})", "description": "lcd.drawLine(x0,y0,x1,y1,color) - \u5728\u4e24\u70b9\u4e4b\u95f4\u753b\u4e00\u6761\u7ebf.\n\u4f20\u5165\u503c\uff1a\nint \u7b2c\u4e00\u4e2a\u70b9\u7684X\u4f4d\u7f6e.\nint \u7b2c\u4e00\u4e2a\u70b9\u7684Y\u4f4d\u7f6e.\nint \u7b2c\u4e8c\u4e2a\u70b9\u7684X\u4f4d\u7f6e.\nint \u7b2c\u4e8c\u4e2a\u70b9\u7684Y\u4f4d\u7f6e.\nint \u7ed8\u753b\u989c\u8272 \u53ef\u9009\u53c2\u6570,\u9ed8\u8ba4\u524d\u666f\u8272\n\u4f8b\u5b50\uff1a\nlcd.drawLine(20,30,220,30,0x001F)\n", "prefix": "lcd.drawLine"}, "lcd.drawRectangle": {"body": "lcd.drawRectangle(${1:x0},${2:y0},${3:x1},${4:y1},${5:color})", "description": "lcd.drawRectangle(x0,y0,x1,y1,color) - \u4ecex / y\u4f4d\u7f6e\uff08\u5de6\u4e0a\u8fb9\u7f18\uff09\u5f00\u59cb\u7ed8\u5236\u4e00\u4e2a\u6846\n\u4f20\u5165\u503c\uff1a\nint \u5de6\u4e0a\u8fb9\u7f18\u7684X\u4f4d\u7f6e.\nint \u5de6\u4e0a\u8fb9\u7f18\u7684Y\u4f4d\u7f6e.\nint \u53f3\u4e0b\u8fb9\u7f18\u7684X\u4f4d\u7f6e.\nint \u53f3\u4e0b\u8fb9\u7f18\u7684Y\u4f4d\u7f6e.\nint \u7ed8\u753b\u989c\u8272 \u53ef\u9009\u53c2\u6570,\u9ed8\u8ba4\u524d\u666f\u8272\n\u4f8b\u5b50\uff1a\nlcd.drawRectangle(20,40,220,80,0x001F)\n", "prefix": "lcd.drawRectangle"}, "lcd.drawCircle": {"body": "lcd.drawCircle(${1:x0},${2:y0},${3:r},${4:color})", "description": "lcd.drawCircle(x0,y0,r,color) - \u4ecex / y\u4f4d\u7f6e\uff08\u5706\u5fc3\uff09\u5f00\u59cb\u7ed8\u5236\u4e00\u4e2a\u5706\n\u4f20\u5165\u503c\uff1a\nint \u5706\u5fc3\u7684X\u4f4d\u7f6e.\nint \u5706\u5fc3\u7684Y\u4f4d\u7f6e.\nint \u534a\u5f84.\nint \u7ed8\u753b\u989c\u8272 \u53ef\u9009\u53c2\u6570,\u9ed8\u8ba4\u524d\u666f\u8272\n\u4f8b\u5b50\uff1a\nlcd.drawCircle(120,120,20,0x001F)\n", "prefix": "lcd.drawCircle"}, "lcd.drawQrcode": {"body": "lcd.drawQrcode(${1:x},${2:y},${3:str},${4:size})", "description": "lcd.drawQrcode(x, y, str, size) - \u7f13\u51b2\u533a\u7ed8\u5236QRCode\n\u4f20\u5165\u503c\uff1a\nint x\u5750\u6807\nint y\u5750\u6807\nstring \u4e8c\u7ef4\u7801\u7684\u5185\u5bb9\nint \u663e\u793a\u5927\u5c0f (\u6ce8\u610f:\u4e8c\u7ef4\u7801\u751f\u6210\u5927\u5c0f\u4e0e\u8981\u663e\u793a\u5185\u5bb9\u548c\u7ea0\u9519\u7b49\u7ea7\u6709\u5173,\u751f\u6210\u7248\u672c\u4e3a1-40(\u5bf9\u5e94 21x21 - 177x177)\u7684\u4e0d\u5b9a\u5927\u5c0f,\u5982\u679c\u548c\u8bbe\u7f6e\u5927\u5c0f\u4e0d\u540c\u4f1a\u81ea\u52a8\u5728\u6307\u5b9a\u7684\u533a\u57df\u4e2d\u95f4\u663e\u793a\u4e8c\u7ef4\u7801,\u5982\u4e8c\u7ef4\u7801\u672a\u663e\u793a\u8bf7\u67e5\u770b\u65e5\u5fd7\u63d0\u793a)\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n", "prefix": "lcd.drawQrcode"}, "lcd.setFont": {"body": "lcd.setFont(${1:font})", "description": "lcd.setFont(font) - \u8bbe\u7f6e\u5b57\u4f53\n\u4f20\u5165\u503c\uff1a\nint font lcd.font_XXX \u8bf7\u67e5\u9605\u5e38\u91cf\u8868\n\u4f8b\u5b50\uff1a\n-- \u8bbe\u7f6e\u4e3a\u5b57\u4f53,\u5bf9\u4e4b\u540e\u7684drawStr\u6709\u6548,\u8c03\u7528lcd.drawStr\u524d\u4e00\u5b9a\u8981\u5148\u8bbe\u7f6e\n\n-- \u82e5\u63d0\u793a \"only font pointer is allow\" , \u5219\u4ee3\u8868\u5f53\u524d\u56fa\u4ef6\u4e0d\u542b\u5bf9\u5e94\u5b57\u4f53, \u53ef\u4f7f\u7528\u4e91\u7f16\u8bd1\u670d\u52a1\u514d\u8d39\u5b9a\u5236\n-- \u4e91\u7f16\u8bd1\u6587\u6863: https://wiki.luatos.com/develop/compile/Cloud_compilation.html\n\n-- lcd\u5e93\u7684\u9ed8\u8ba4\u5b57\u4f53\u5747\u4ee5 lcd.font_ \u5f00\u5934\nlcd.setFont(lcd.font_opposansm12)\nlcd.drawStr(40,10,\"drawStr\")\nsys.wait(2000)\nlcd.setFont(lcd.font_opposansm12_chinese) -- \u5177\u4f53\u53d6\u503c\u53ef\u53c2\u8003api\u6587\u6863\u7684\u5e38\u91cf\u8868\nlcd.drawStr(40,40,\"drawStr\u6d4b\u8bd5\")\n", "prefix": "lcd.setFont"}, "lcd.drawStr": {"body": "lcd.drawStr(${1:x},${2:y},${3:str},${4:fg_color})", "description": "lcd.drawStr(x,y,str,fg_color) - \u663e\u793a\u5b57\u7b26\u4e32\n\u4f20\u5165\u503c\uff1a\nint x \u6a2a\u5750\u6807\nint y \u7ad6\u5750\u6807 \u6ce8\u610f:\u6b64(x,y)\u4e3a\u5de6\u4e0b\u8d77\u59cb\u5750\u6807\nstring str \u6587\u4ef6\u5185\u5bb9\nint fg_color str\u989c\u8272 \u6ce8\u610f:\u6b64\u53c2\u6570\u53ef\u9009\uff0c\u5982\u4e0d\u586b\u5199\u5219\u4f7f\u7528\u4e4b\u524d\u8bbe\u7f6e\u7684\u989c\u8272\uff0c\u7ed8\u5236\u53ea\u4f1a\u7ed8\u5236\u5b57\u4f53\u90e8\u5206\uff0c\u80cc\u666f\u9700\u8981\u81ea\u5df1\u6e05\u9664\n\u4f8b\u5b50\uff1a\n-- \u663e\u793a\u4e4b\u524d\u5148\u8bbe\u7f6e\u4e3a\u4e2d\u6587\u5b57\u4f53,\u5bf9\u4e4b\u540e\u7684drawStr\u6709\u6548\nlcd.setFont(lcd.font_opposansm12)\nlcd.drawStr(40,10,\"drawStr\")\nsys.wait(2000)\nlcd.setFont(lcd.font_opposansm16_chinese)\nlcd.drawStr(40,40,\"drawStr\u6d4b\u8bd5\")\n", "prefix": "lcd.drawStr"}, "lcd.drawGtfontGb2312": {"body": "lcd.drawGtfontGb2312(${1:str},${2:size},${3:x},${4:y})", "description": "lcd.drawGtfontGb2312(str,size,x,y) - \u4f7f\u7528gtfont\u663e\u793agb2312\u5b57\u7b26\u4e32\n\u4f20\u5165\u503c\uff1a\nstring str \u663e\u793a\u5b57\u7b26\u4e32\nint size \u5b57\u4f53\u5927\u5c0f (\u652f\u630116-192\u53f7\u5927\u5c0f\u5b57\u4f53)\nint x \u6a2a\u5750\u6807\nint y \u7ad6\u5750\u6807\n\u4f8b\u5b50\uff1a\n-- \u6ce8\u610f, gtfont\u662f\u989d\u5916\u7684\u5b57\u4f53\u82af\u7247\u786c\u4ef6, \u9700\u8981\u5916\u6302\u5728SPI\u603b\u7ebf\u624d\u80fd\u8c03\u7528\u672c\u51fd\u6570\u7684\nlcd.drawGtfontGb2312(\"\u554a\u554a\u554a\",32,0,0)\n", "prefix": "lcd.drawGtfontGb2312"}, "lcd.drawGtfontGb2312Gray": {"body": "lcd.drawGtfontGb2312Gray(${1:str},${2:size},${3:gray},${4:x},${5:y})", "description": "lcd.drawGtfontGb2312Gray(str,size,gray,x,y) - \u4f7f\u7528gtfont\u7070\u5ea6\u663e\u793agb2312\u5b57\u7b26\u4e32\n\u4f20\u5165\u503c\uff1a\nstring str \u663e\u793a\u5b57\u7b26\u4e32\nint size \u5b57\u4f53\u5927\u5c0f (\u652f\u630116-192\u53f7\u5927\u5c0f\u5b57\u4f53)\nint gray \u7070\u5ea6[1\u9636/2\u9636/3\u9636/4\u9636]\nint x \u6a2a\u5750\u6807\nint y \u7ad6\u5750\u6807\n\u4f8b\u5b50\uff1a\n-- \u6ce8\u610f, gtfont\u662f\u989d\u5916\u7684\u5b57\u4f53\u82af\u7247\u786c\u4ef6, \u9700\u8981\u5916\u6302\u5728SPI\u603b\u7ebf\u624d\u80fd\u8c03\u7528\u672c\u51fd\u6570\u7684\nlcd.drawGtfontGb2312Gray(\"\u554a\u554a\u554a\",32,4,0,40)\n", "prefix": "lcd.drawGtfontGb2312Gray"}, "lcd.drawGtfontUtf8": {"body": "lcd.drawGtfontUtf8(${1:str},${2:size},${3:x},${4:y})", "description": "lcd.drawGtfontUtf8(str,size,x,y) - \u4f7f\u7528gtfont\u663e\u793aUTF8\u5b57\u7b26\u4e32\n\u4f20\u5165\u503c\uff1a\nstring str \u663e\u793a\u5b57\u7b26\u4e32\nint size \u5b57\u4f53\u5927\u5c0f (\u652f\u630116-192\u53f7\u5927\u5c0f\u5b57\u4f53)\nint x \u6a2a\u5750\u6807\nint y \u7ad6\u5750\u6807\n\u4f8b\u5b50\uff1a\nlcd.drawGtfontUtf8(\"\u554a\u554a\u554a\",32,0,0)\n", "prefix": "lcd.drawGtfontUtf8"}, "lcd.drawGtfontUtf8Gray": {"body": "lcd.drawGtfontUtf8Gray(${1:str},${2:size},${3:gray},${4:x},${5:y})", "description": "lcd.drawGtfontUtf8Gray(str,size,gray,x,y) - \u4f7f\u7528gtfont\u7070\u5ea6\u663e\u793aUTF8\u5b57\u7b26\u4e32\n\u4f20\u5165\u503c\uff1a\nstring str \u663e\u793a\u5b57\u7b26\u4e32\nint size \u5b57\u4f53\u5927\u5c0f (\u652f\u630116-192\u53f7\u5927\u5c0f\u5b57\u4f53)\nint gray \u7070\u5ea6[1\u9636/2\u9636/3\u9636/4\u9636]\nint x \u6a2a\u5750\u6807\nint y \u7ad6\u5750\u6807\n\u4f8b\u5b50\uff1a\nlcd.drawGtfontUtf8Gray(\"\u554a\u554a\u554a\",32,4,0,40)\n", "prefix": "lcd.drawGtfontUtf8Gray"}, "lcd.getSize": {"body": "lcd.getSize()", "description": "lcd.getSize() - \u83b7\u53d6\u5c4f\u5e55\u5c3a\u5bf8\n\u8fd4\u56de\u503c\uff1a\nint \u5bbd, \u5982\u679c\u672a\u521d\u59cb\u5316\u4f1a\u8fd4\u56de0\nint \u9ad8, \u5982\u679c\u672a\u521d\u59cb\u5316\u4f1a\u8fd4\u56de0\n\u4f8b\u5b50\uff1a\nlog.info(\"lcd\", \"size\", lcd.getSize())\n", "prefix": "lcd.getSize"}, "lcd.drawXbm": {"body": "lcd.drawXbm(${1:x},${2:y},${3:w},${4:h},${5:data})", "description": "lcd.drawXbm(x, y, w, h, data) - \u7ed8\u5236\u4f4d\u56fe\n\u4f20\u5165\u503c\uff1a\nint X\u5750\u6807\nint y\u5750\u6807\nint \u4f4d\u56fe\u5bbd\nint \u4f4d\u56fe\u9ad8\nint \u4f4d\u56fe\u6570\u636e,\u6bcf\u4e00\u4f4d\u4ee3\u8868\u4e00\u4e2a\u50cf\u7d20\n\u4f8b\u5b50\uff1a\n-- \u53d6\u6a21\u4f7f\u7528PCtoLCD2002\u8f6f\u4ef6\u5373\u53ef \u9634\u7801 \u9010\u884c \u9006\u5411\n-- \u5728(0,0)\u4e3a\u5de6\u4e0a\u89d2,\u7ed8\u5236 16x16 \"\u4eca\" \u7684\u4f4d\u56fe\nlcd.drawXbm(0, 0, 16,16, string.char(\n 0x80,0x00,0x80,0x00,0x40,0x01,0x20,0x02,0x10,0x04,0x48,0x08,0x84,0x10,0x83,0x60,\n 0x00,0x00,0xF8,0x0F,0x00,0x08,0x00,0x04,0x00,0x04,0x00,0x02,0x00,0x01,0x80,0x00\n))\n", "prefix": "lcd.drawXbm"}, "lcd.showImage": {"body": "lcd.showImage(${1:x},${2:y},${3:file})", "description": "lcd.showImage(x, y, file) - \u663e\u793a\u56fe\u7247,\u5f53\u524d\u53ea\u652f\u6301jpg,jpeg\n\u4f20\u5165\u503c\uff1a\nint X\u5750\u6807\nint y\u5750\u6807\nstring \u6587\u4ef6\u8def\u5f84\n\u4f8b\u5b50\uff1a\nlcd.showImage(0,0,\"/luadb/logo.jpg\")\n", "prefix": "lcd.showImage"}, "lcd.flush": {"body": "lcd.flush()", "description": "lcd.flush() - \u4e3b\u52a8\u5237\u65b0\u6570\u636e\u5230\u754c\u9762, \u4ec5\u8bbe\u7f6ebuff\u4e14\u7981\u7528\u81ea\u52a8\u5c5e\u6027\u540e\u4f7f\u7528\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue, \u5426\u5219\u8fd4\u56denil/false\n", "prefix": "lcd.flush"}, "lcd.setupBuff": {"body": "lcd.setupBuff(${1:conf},${2:onheap})", "description": "lcd.setupBuff(conf, onheap) - \u8bbe\u7f6e\u663e\u793a\u7f13\u51b2\u533a, \u6240\u9700\u5185\u5b58\u5927\u5c0f\u4e3a 2\u00d7\u5bbd\u00d7\u9ad8 \u5b57\u8282. \u8bf7\u8861\u91cf\u5185\u5b58\u9700\u6c42\u4e0e\u4e1a\u52a1\u6240\u9700\u7684\u5237\u65b0\u9891\u6b21.\n\u4f20\u5165\u503c\uff1a\nuserdata conf\u6307\u9488, \u4e0d\u9700\u8981\u4f20\nbool true\u4f7f\u7528heap\u5185\u5b58, false\u4f7f\u7528vm\u5185\u5b58, \u9ed8\u8ba4\u4f7f\u7528vm\u5185\u5b58, \u4e0d\u9700\u8981\u4e3b\u52a8\u4f20\n\u8fd4\u56de\u503c\uff1a\nbool \u662f\u5426\u6210\u529f\n\u4f8b\u5b50\uff1a\n-- \u521d\u59cb\u5316lcd\u7684buff\u7f13\u51b2\u533a, \u53ef\u7406\u89e3\u4e3aFrameBuffer\u533a\u57df.\nlcd.setupBuff()\n", "prefix": "lcd.setupBuff"}, "lcd.autoFlush": {"body": "lcd.autoFlush(${1:enable})", "description": "lcd.autoFlush(enable) - \u8bbe\u7f6e\u81ea\u52a8\u5237\u65b0, \u9700\u914d\u5408lcd.setupBuff\u4f7f\u7528\n\u4f20\u5165\u503c\uff1a\nbool \u662f\u5426\u81ea\u52a8\u5237\u65b0,\u9ed8\u8ba4\u4e3atrue\n\u4f8b\u5b50\uff1a\n-- \u8bbe\u7f6ebuff \u5e76\u7981\u7528\u81ea\u52a8\u66f4\u65b0\nlcd.setupBuff()\nlcd.autoFlush(false)\n-- \u7981\u6b62\u81ea\u52a8\u66f4\u65b0\u540e, \u9700\u8981\u4f7f\u7528 lcd.flush() \u4e3b\u52a8\u5237\u65b0\u6570\u636e\u5230\u5c4f\u5e55\n", "prefix": "lcd.autoFlush"}, "lcd.rgb565": {"body": "lcd.rgb565(${1:r},${2:g},${3:b},${4:swap})", "description": "lcd.rgb565(r, g, b, swap) - RGB565\u989c\u8272\u751f\u6210\n\u4f20\u5165\u503c\uff1a\nint \u7ea2\u8272, 0x00 ~ 0xFF\nint \u7eff\u8272, 0x00 ~ 0xFF\nint \u84dd\u8272, 0x00 ~ 0xFF\nbool \u662f\u5426\u7ffb\u8f6c, true \u7ffb\u8f6c, false \u4e0d\u7ffb\u8f6c. \u9ed8\u8ba4\u7ffb\u8f6c\n\u8fd4\u56de\u503c\uff1a\nint \u989c\u8272\u503c\n\u4f8b\u5b50\uff1a\n-- \u672cAPI\u652f\u6301\u591a\u79cd\u6a21\u5f0f, \u53c2\u6570\u6570\u91cf\u5206\u522b\u662f 1, 2, 3, 4\n-- 1. \u5355\u53c2\u6570\u5f62\u5f0f, 24bit RGB\u503c, swap = true, \u63a8\u8350\nlocal red = lcd.rgb565(0xFF0000)\nlocal green = lcd.rgb565(0x00FF00)\nlocal blue = lcd.rgb565(0x0000FF)\n\n-- 2. \u4e24\u53c2\u6570\u5f62\u5f0f, 24bit RGB\u503c, \u589e\u52a0swap\u7684\u8bbe\u7f6e\nlocal red = lcd.rgb565(0xFF0000, true)\nlocal green = lcd.rgb565(0x00FF00, true)\nlocal blue = lcd.rgb565(0x0000FF, true)\n\n-- 3. \u4e09\u53c2\u6570\u5f62\u5f0f, \u7ea2/\u7eff/\u84dd, \u54048bit\nlocal red = lcd.rgb565(0xFF, 0x00, 0x00)\nlocal green = lcd.rgb565(0x00, 0xFF, 0x00)\nlocal blue = lcd.rgb565(0x00, 0x00, 0xFF)\n\n-- 4. \u56db\u53c2\u6570\u5f62\u5f0f, \u7ea2/\u7eff/\u84dd, \u54048bit, \u589e\u52a0swap\u7684\u8bbe\u7f6e\nlocal red = lcd.rgb565(0xFF, 0x00, 0x00, true)\nlocal green = lcd.rgb565(0x00, 0xFF, 0x00, true)\nlocal blue = lcd.rgb565(0x00, 0x00, 0xFF, true)\n", "prefix": "lcd.rgb565"}, "lcdseg.setup": {"body": "lcdseg.setup(${1:bias},${2:duty},${3:vlcd},${4:com_number},${5:fresh_rate},${6:com_mark},${7:seg_mark})", "description": "lcdseg.setup(bias, duty, vlcd, com_number, fresh_rate, com_mark, seg_mark) - \u521d\u59cb\u5316lcdseg\u5e93\n\u4f20\u5165\u503c\uff1a\nint bias\u503c,\u901a\u5e38\u4e3a 1/3 bias, \u5bf9\u5e94 lcdseg.BIAS_ONETHIRD\nint duty\u503c,\u901a\u5e38\u4e3a 1/4 duty, \u5bf9\u5e94 lcdseg.DUTY_ONEFOURTH\nint \u7535\u538b, \u5355\u4f4d100mV, \u4f8b\u59822.7v\u519927. air103\u652f\u6301\u7684\u503c\u6709 27/29/31/33\nint COM\u811a\u7684\u6570\u91cf, \u53d6\u51b3\u4e8e\u5177\u4f53\u6a21\u5757, air103\u652f\u63011-4\nint \u5237\u65b0\u7387,\u901a\u5e38\u4e3a60, \u5bf9\u5e9460HZ\nint COM\u542f\u7528\u4e0e\u5426\u7684\u63a9\u7801, \u9ed8\u8ba4\u4e3a0xFF,\u5168\u90e8\u542f\u7528.\u82e5\u53ea\u542f\u7528COM0/COM1, \u52190x03\nint seg\u542f\u7528\u4e0e\u5426\u7684\u63a9\u7801, \u9ed8\u8ba4\u4e3a0xFFFFFFFF,\u5373\u5168\u90e8\u542f\u7528. \u82e5\u53ea\u542f\u7528\u524d16\u4e2a, 0xFFFF\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- \u521d\u59cb\u5316lcdseg\nif lcdseg.setup(lcdseg.BIAS_ONETHIRD, lcdseg.DUTY_ONEFOURTH, 33, 4, 60) then\n lcdseg.enable(1)\n\n lcdseg.seg_set(0, 1, 1)\n lcdseg.seg_set(2, 0, 1)\n lcdseg.seg_set(3, 31, 1)\nend\n", "prefix": "lcdseg.setup"}, "lcdseg.enable": {"body": "lcdseg.enable(${1:en})", "description": "lcdseg.enable(en) - \u542f\u7528\u6216\u7981\u7528lcdseg\u5e93\n\u4f20\u5165\u503c\uff1a\nint 1\u542f\u7528,0\u7981\u7528\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u4e0e\u5426\n", "prefix": "lcdseg.enable"}, "lcdseg.power": {"body": "lcdseg.power(${1:en})", "description": "lcdseg.power(en) - \u542f\u7528\u6216\u7981\u7528lcdseg\u7684\u8f93\u51fa\n\u4f20\u5165\u503c\uff1a\nint 1\u542f\u7528,0\u7981\u7528\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u4e0e\u5426\n", "prefix": "lcdseg.power"}, "lcdseg.seg_set": {"body": "lcdseg.seg_set(${1:com},${2:seg},${3:en})", "description": "lcdseg.seg_set(com, seg, en) - \u8bbe\u7f6e\u5177\u4f53\u4e00\u4e2a\u6bb5\u7801\u7684\u72b6\u6001\n\u4f20\u5165\u503c\uff1a\nint COM\u53f7\nint seg\u53f7 \u8981\u66f4\u6539\u7684\u5b57\u6bb5\u7684\u4f4d\u7d22\u5f15\nint 1\u542f\u7528,0\u7981\u7528\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u4e0e\u5426\n", "prefix": "lcdseg.seg_set"}, "libcoap.new": {"body": "libcoap.new(${1:code},${2:uri},${3:headers},${4:payload})", "description": "libcoap.new(code, uri, headers, payload) - \u521b\u5efa\u4e00\u4e2acoap\u6570\u636e\u5305\n\u4f20\u5165\u503c\uff1a\nint coap\u7684code, \u4f8b\u5982libcoap.GET/libcoap.POST/libcoap.PUT/libcoap.DELETE\nstring \u76ee\u6807URI,\u5fc5\u987b\u586b\u5199, \u4e0d\u9700\u8981\u52a0\u4e0a/\u5f00\u5934\ntable \u8bf7\u6c42\u5934,\u7c7b\u4f3c\u4e8ehttp\u7684headers,\u53ef\u9009\nstring \u8bf7\u6c42\u4f53,\u7c7b\u4f3c\u4e8ehttp\u7684body,\u53ef\u9009\n\u8fd4\u56de\u503c\uff1a\nuserdata coap\u6570\u636e\u5305\n\u4f8b\u5b50\uff1a\n-- \u521b\u5efa\u4e00\u4e2a\u8bf7\u6c42\u670d\u52a1\u5668time\u7684\u6570\u636e\u5305\nlocal coapdata = libcoap.new(libcoap.GET, \"time\")\nlocal data = coapdata:rawdata()\n", "prefix": "libcoap.new"}, "libcoap.parse": {"body": "libcoap.parse(${1:str})", "description": "libcoap.parse(str) - \u89e3\u6790coap\u6570\u636e\u5305\n\u4f20\u5165\u503c\uff1a\nstring coap\u6570\u636e\u5305\n\u8fd4\u56de\u503c\uff1a\nuserdata coap\u6570\u636e\u5305,\u5982\u679c\u89e3\u6790\u5931\u8d25\u4f1a\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\n-- \u89e3\u6790\u670d\u52a1\u5668\u4f20\u5165\u7684\u6570\u636e\u5305\nlocal coapdata = libcoap.parse(indata)\nlog.info(\"coapdata\", coapdata:hcode(), coapdata:data())\n", "prefix": "libcoap.parse"}, "coapdata:msgid": {"body": "coapdata:msgid()", "description": "coapdata:msgid() - \u83b7\u53d6coap\u6570\u636e\u5305\u7684msgid\n\u8fd4\u56de\u503c\uff1a\nint coap\u6570\u636e\u5305\u7684msgid\n\u4f8b\u5b50\uff1a\n-- \u89e3\u6790\u670d\u52a1\u5668\u4f20\u5165\u7684\u6570\u636e\u5305\nlocal coapdata = libcoap.parse(indata)\nlog.info(\"coapdata\", coapdata:msgid())\n", "prefix": "coapdata:msgid"}, "coapdata:token": {"body": "coapdata:token()", "description": "coapdata:token() - \u83b7\u53d6coap\u6570\u636e\u5305\u7684token\n\u8fd4\u56de\u503c\uff1a\nstring coap\u6570\u636e\u5305\u7684token\n\u4f8b\u5b50\uff1a\n-- \u89e3\u6790\u670d\u52a1\u5668\u4f20\u5165\u7684\u6570\u636e\u5305\nlocal coapdata = libcoap.parse(indata)\nlog.info(\"coapdata\", coapdata:token())\n", "prefix": "coapdata:token"}, "coapdata:rawdata": {"body": "coapdata:rawdata()", "description": "coapdata:rawdata() - \u83b7\u53d6coap\u6570\u636e\u5305\u7684\u4e8c\u8fdb\u5236\u6570\u636e,\u7528\u4e8e\u53d1\u9001\u5230\u670d\u52a1\u5668\n\u8fd4\u56de\u503c\uff1a\nstring coap\u6570\u636e\u5305\u7684\u4e8c\u8fdb\u5236\u6570\u636e\n\u4f8b\u5b50\uff1a\n-- \u89e3\u6790\u670d\u52a1\u5668\u4f20\u5165\u7684\u6570\u636e\u5305\nlocal coapdata = libcoap.new(libcoap.GET, \"time\")\nnetc:send(coapdata:rawdata())\n", "prefix": "coapdata:rawdata"}, "coapdata:code": {"body": "coapdata:code()", "description": "coapdata:code() - \u83b7\u53d6coap\u6570\u636e\u5305\u7684code\n\u8fd4\u56de\u503c\uff1a\nint coap\u6570\u636e\u5305\u7684code\n\u4f8b\u5b50\uff1a\n-- \u89e3\u6790\u670d\u52a1\u5668\u4f20\u5165\u7684\u6570\u636e\u5305\nlocal coapdata = libcoap.parse(indata)\nlog.info(\"coapdata\", coapdata:code())\n", "prefix": "coapdata:code"}, "coapdata:hcode": {"body": "coapdata:hcode()", "description": "coapdata:hcode() - \u83b7\u53d6coap\u6570\u636e\u5305\u7684http code, \u6bd4coap\u539f\u59cb\u7684code\u8981\u53cb\u597d\n\u8fd4\u56de\u503c\uff1a\nint coap\u6570\u636e\u5305\u7684http code,\u4f8b\u5982200,205,404\n\u4f8b\u5b50\uff1a\n-- \u89e3\u6790\u670d\u52a1\u5668\u4f20\u5165\u7684\u6570\u636e\u5305\nlocal coapdata = libcoap.parse(indata)\nlog.info(\"coapdata\", coapdata:hcode())\n", "prefix": "coapdata:hcode"}, "coapdata:type": {"body": "coapdata:type(${1:t})", "description": "coapdata:type(t) - \u83b7\u53d6coap\u6570\u636e\u5305\u7684type, \u4f8b\u5982libcoap.CON/NON/ACK/RST\n\u4f20\u5165\u503c\uff1a\nint \u65b0\u7684type\u503c,\u53ef\u9009\n\u8fd4\u56de\u503c\uff1a\nint coap\u6570\u636e\u5305\u7684type\n\u4f8b\u5b50\uff1a\n-- \u89e3\u6790\u670d\u52a1\u5668\u4f20\u5165\u7684\u6570\u636e\u5305\nlocal coapdata = libcoap.parse(indata)\nlog.info(\"coapdata\", coapdata:type())\n", "prefix": "coapdata:type"}, "coapdata:data": {"body": "coapdata:data()", "description": "coapdata:data() - \u83b7\u53d6coap\u6570\u636e\u5305\u7684data\n\u8fd4\u56de\u503c\uff1a\nstring coap\u6570\u636e\u5305\u7684data\n\u4f8b\u5b50\uff1a\n-- \u89e3\u6790\u670d\u52a1\u5668\u4f20\u5165\u7684\u6570\u636e\u5305\nlocal coapdata = libcoap.parse(indata)\nlog.info(\"coapdata\", coapdata:data())\n", "prefix": "coapdata:data"}, "libgnss.parse": {"body": "libgnss.parse(${1:str})", "description": "libgnss.parse(str) - \u5904\u7406nmea\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nstring \u539f\u59cbnmea\u6570\u636e\n\u4f8b\u5b50\uff1a\n-- \u89e3\u6790nmea\u6570\u636e\nlibgnss.parse(indata)\nlog.info(\"nmea\", json.encode(libgnss.getRmc(), \"11g\"))\n", "prefix": "libgnss.parse"}, "libgnss.isFix": {"body": "libgnss.isFix()", "description": "libgnss.isFix() - \u5f53\u524d\u662f\u5426\u5df2\u7ecf\u5b9a\u4f4d\u6210\u529f\n\u8fd4\u56de\u503c\uff1a\nboolean \u5b9a\u4f4d\u6210\u529f\u4e0e\u5426\n\u4f8b\u5b50\uff1a\nlog.info(\"nmea\", \"isFix\", libgnss.isFix())\n", "prefix": "libgnss.isFix"}, "libgnss.getIntLocation": {"body": "libgnss.getIntLocation()", "description": "libgnss.getIntLocation() - \u83b7\u53d6\u4f4d\u7f6e\u4fe1\u606f\n\u8fd4\u56de\u503c\uff1a\nint lat\u6570\u636e, \u683c\u5f0f\u4e3a ddddddddd\nint lng\u6570\u636e, \u683c\u5f0f\u4e3a ddddddddd\nint speed\u6570\u636e, \u5355\u4f4d\u7c73. \u4e8e2023.9.26\u4fee\u6b63\n\u4f8b\u5b50\uff1a\n-- \u5efa\u8bae\u7528libgnss.getRmc(1)\nlog.info(\"nmea\", \"loc\", libgnss.getIntLocation())\n", "prefix": "libgnss.getIntLocation"}, "libgnss.getRmc": {"body": "libgnss.getRmc(${1:data_mode})", "description": "libgnss.getRmc(data_mode) - \u83b7\u53d6\u539f\u59cbRMC\u4f4d\u7f6e\u4fe1\u606f\n\u4f20\u5165\u503c\uff1a\nint \u5750\u6807\u7c7b\u6570\u636e\u7684\u683c\u5f0f, 0-DDMM.MMM\u683c\u5f0f, 1-DDDDDDD\u683c\u5f0f, 2-DD.DDDDD\u683c\u5f0f\n\u8fd4\u56de\u503c\uff1a\ntable \u539f\u59cbrmc\u6570\u636e\n\u4f8b\u5b50\uff1a\n-- \u89e3\u6790nmea\nlog.info(\"nmea\", \"rmc\", json.encode(libgnss.getRmc(2)))\n-- \u5b9e\u4f8b\u8f93\u51fa\n--[[\n{\n \"course\":0,\n \"valid\":true, // true\u5b9a\u4f4d\u6210\u529f,false\u5b9a\u4f4d\u4e22\u5931\n \"lat\":23.4067, // \u7eac\u5ea6, \u6b63\u6570\u4e3a\u5317\u7eac, \u8d1f\u6570\u4e3a\u5357\u7eac\n \"lng\":113.231, // \u7ecf\u5ea6, \u6b63\u6570\u4e3a\u4e1c\u7ecf, \u8d1f\u6570\u4e3a\u897f\u7ecf\n \"variation\":0, // \u5730\u9762\u822a\u5411\uff0c\u5355\u4f4d\u4e3a\u5ea6\uff0c\u4ece\u5317\u5411\u8d77\u987a\u65f6\u9488\u8ba1\u7b97\n \"speed\":0 // \u5730\u9762\u901f\u5ea6, \u5355\u4f4d\u4e3a\"\u8282\"\n \"year\":2023, // \u5e74\u4efd\n \"month\":1, // \u6708\u4efd, 1-12\n \"day\":5, // \u6708\u4efd\u5929, 1-31\n \"hour\":7, // \u5c0f\u65f6,0-23\n \"min\":23, // \u5206\u949f,0-59\n \"sec\":20, // \u79d2,0-59\n}\n]]\n", "prefix": "libgnss.getRmc"}, "libgnss.getGsv": {"body": "libgnss.getGsv()", "description": "libgnss.getGsv() - \u83b7\u53d6\u539f\u59cbGSV\u4fe1\u606f\n\u8fd4\u56de\u503c\uff1a\ntable \u539f\u59cbGSV\u6570\u636e\n\u4f8b\u5b50\uff1a\n-- \u89e3\u6790nmea\nlog.info(\"nmea\", \"gsv\", json.encode(libgnss.getGsv()))\n--[[\u5b9e\u4f8b\u8f93\u51fa\n{\n \"total_sats\":24, // \u603b\u53ef\u89c1\u536b\u661f\u6570\u91cf\n \"sats\":[\n {\n \"snr\":27, // \u4fe1\u566a\u6bd4\n \"azimuth\":278, // \u65b9\u5411\u89d2\n \"elevation\":59, // \u4ef0\u89d2\n \"tp\":0, // 0 - GPS/SASS/QSZZ, 1 - BD\n \"nr\":4 // \u536b\u661f\u7f16\u53f7\n },\n // \u8fd9\u91cc\u5ffd\u7565\u4e8622\u4e2a\u536b\u661f\u7684\u4fe1\u606f\n {\n \"snr\":0,\n \"azimuth\":107,\n \"elevation\":19,\n \"tp\":1,\n \"nr\":31\n }\n ]\n}\n]]\n", "prefix": "libgnss.getGsv"}, "libgnss.getGsa": {"body": "libgnss.getGsa(${1:data_mode})", "description": "libgnss.getGsa(data_mode) - \u83b7\u53d6\u539f\u59cbGSA\u4fe1\u606f\n\u4f20\u5165\u503c\uff1a\nint \u5750\u6807\u7c7b\u6570\u636e\u7684\u683c\u5f0f, 0-DDMM.MMM\u683c\u5f0f, 1-DDDDDDD\u683c\u5f0f, 2-DD.DDDDD\u683c\u5f0f\n\u8fd4\u56de\u503c\uff1a\ntable \u539f\u59cbGSA\u6570\u636e\n\u4f8b\u5b50\uff1a\n-- \u83b7\u53d6\nlog.info(\"nmea\", \"gsa\", json.encode(libgnss.getGsa(), \"11g\"))\n-- \u793a\u4f8b\u6570\u636e\n--[[\n{\n \"sats\":[ // \u6b63\u5728\u4f7f\u7528\u7684\u536b\u661f\u7f16\u53f7\n 9,\n 6,\n 16,\n 16,\n 26,\n 21,\n 27,\n 27,\n 4,\n 36,\n 3,\n 7,\n 8,\n 194\n ],\n \"vdop\":0.03083333, // \u5782\u76f4\u7cbe\u5ea6\u56e0\u5b50\uff0c0.00 - 99.99\uff0c\u4e0d\u5b9a\u4f4d\u65f6\u503c\u4e3a 99.99\n \"pdop\":0.0455, // \u6c34\u5e73\u7cbe\u5ea6\u56e0\u5b50\uff0c0.00 - 99.99\uff0c\u4e0d\u5b9a\u4f4d\u65f6\u503c\u4e3a 99.99\n \"fix_type\":3, // \u5b9a\u4f4d\u6a21\u5f0f, 1-\u672a\u5b9a\u4f4d, 2-2D\u5b9a\u4f4d, 3-3D\u5b9a\u4f4d\n \"hdop\":0.0335 // \u4f4d\u7f6e\u7cbe\u5ea6\u56e0\u5b50\uff0c0.00 - 99.99\uff0c\u4e0d\u5b9a\u4f4d\u65f6\u503c\u4e3a 99.99\n}\n]]\n", "prefix": "libgnss.getGsa"}, "libgnss.getVtg": {"body": "libgnss.getVtg(${1:data_mode})", "description": "libgnss.getVtg(data_mode) - \u83b7\u53d6VTA\u901f\u5ea6\u4fe1\u606f\n\u4f20\u5165\u503c\uff1a\nint \u53ef\u9009, 3-\u539f\u59cb\u5b57\u7b26\u4e32, \u4e0d\u4f20\u6216\u8005\u4f20\u5176\u4ed6\u503c, \u5219\u8fd4\u56de\u6d6e\u70b9\u503c\n\u8fd4\u56de\u503c\uff1a\ntable \u539f\u59cbVTA\u6570\u636e\n\u4f8b\u5b50\uff1a\n-- \u89e3\u6790nmea\nlog.info(\"nmea\", \"vtg\", json.encode(libgnss.getVtg()))\n-- \u793a\u4f8b\n--[[\n{\n \"speed_knots\":0, // \u901f\u5ea6, \u82f1\u91cc/\u5c0f\u65f6\n \"true_track_degrees\":0, // \u771f\u5317\u65b9\u5411\u89d2\n \"magnetic_track_degrees\":0, // \u78c1\u5317\u65b9\u5411\u89d2\n \"speed_kph\":0 // \u901f\u5ea6, \u5343\u7c73/\u5c0f\u65f6\n}\n]]\n", "prefix": "libgnss.getVtg"}, "libgnss.getZda": {"body": "libgnss.getZda()", "description": "libgnss.getZda() - \u83b7\u53d6\u539f\u59cbZDA\u65f6\u95f4\u548c\u65e5\u671f\u4fe1\u606f\n\u8fd4\u56de\u503c\uff1a\ntable \u539f\u59cbzda\u6570\u636e\n\u4f8b\u5b50\uff1a\nlog.info(\"nmea\", \"zda\", json.encode(libgnss.getZda()))\n-- \u5b9e\u4f8b\u8f93\u51fa\n--[[\n{\n \"minute_offset\":0, // \u672c\u5730\u65f6\u533a\u7684\u5206\u949f, \u4e00\u822c\u56fa\u5b9a\u8f93\u51fa0\n \"hour_offset\":0, // \u672c\u5730\u65f6\u533a\u7684\u5c0f\u65f6, \u4e00\u822c\u56fa\u5b9a\u8f93\u51fa0\n \"year\":2023 // UTC \u5e74\uff0c\u56db\u4f4d\u6570\u5b57\n \"month\":1, // UTC \u6708\uff0c\u4e24\u4f4d\uff0c01 ~ 12\n \"day\":5, // UTC \u65e5\uff0c\u4e24\u4f4d\u6570\u5b57\uff0c01 ~ 31\n \"hour\":7, // \u5c0f\u65f6\n \"min\":50, // \u5206\n \"sec\":14, // \u79d2\n}\n]]\n", "prefix": "libgnss.getZda"}, "libgnss.debug": {"body": "libgnss.debug(${1:mode})", "description": "libgnss.debug(mode) - \u8bbe\u7f6e\u8c03\u8bd5\u6a21\u5f0f\n\u4f20\u5165\u503c\uff1a\nbool true\u5f00\u542f\u8c03\u8bd5,false\u5173\u95ed\u8c03\u8bd5,\u9ed8\u8ba4\u4e3afalse\n\u4f8b\u5b50\uff1a\n-- \u5f00\u542f\u8c03\u8bd5, \u4f1a\u8f93\u51faGNSS\u539f\u59cb\u6570\u636e\u5230\u65e5\u5fd7\u4e2d\nlibgnss.debug(true)\n-- \u5173\u95ed\u8c03\u8bd5\nlibgnss.debug(false)\n", "prefix": "libgnss.debug"}, "libgnss.getGga": {"body": "libgnss.getGga(${1:data_mode})", "description": "libgnss.getGga(data_mode) - \u83b7\u53d6GGA\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nint \u5750\u6807\u7c7b\u6570\u636e\u7684\u683c\u5f0f, 0-DDMM.MMM\u683c\u5f0f, 1-DDDDDDD\u683c\u5f0f, 2-DD.DDDDD\u683c\u5f0f, 3-\u539f\u59cb\u5b57\u7b26\u4e32\n\u8fd4\u56de\u503c\uff1a\ntable GGA\u6570\u636e, \u82e5\u5982\u4e0d\u5b58\u5728\u4f1a\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\nlocal gga = libgnss.getGga(2)\nif gga then\n log.info(\"GGA\", json.encode(gga, \"11g\"))\nend\n--\u5b9e\u4f8b\u8f93\u51fa\n--[[\n{\n \"dgps_age\":0, // \u5dee\u5206\u6821\u6b63\u65f6\u5ef6\uff0c\u5355\u4f4d\u4e3a\u79d2\n \"fix_quality\":1, // \u5b9a\u4f4d\u72b6\u6001\u6807\u8bc6 0 - \u65e0\u6548,1 - \u5355\u70b9\u5b9a\u4f4d,2 - \u5dee\u5206\u5b9a\u4f4d\n \"satellites_tracked\":14, // \u53c2\u4e0e\u5b9a\u4f4d\u7684\u536b\u661f\u6570\u91cf\n \"altitude\":0.255, // \u6d77\u5e73\u9762\u5206\u79bb\u5ea6, \u6216\u8005\u6210\u4e3a\u6d77\u62d4, \u5355\u4f4d\u662f\u7c73,\n \"hdop\":0.0335, // \u6c34\u5e73\u7cbe\u5ea6\u56e0\u5b50\uff0c0.00 - 99.99\uff0c\u4e0d\u5b9a\u4f4d\u65f6\u503c\u4e3a 99.99\n \"longitude\":113.231, // \u7ecf\u5ea6, \u6b63\u6570\u4e3a\u4e1c\u7ecf, \u8d1f\u6570\u4e3a\u897f\u7ecf\n \"latitude\":23.4067, // \u7eac\u5ea6, \u6b63\u6570\u4e3a\u5317\u7eac, \u8d1f\u6570\u4e3a\u5357\u7eac\n \"height\":0 // \u692d\u7403\u9ad8\uff0c\u56fa\u5b9a\u8f93\u51fa 1 \u4f4d\u5c0f\u6570\n}\n]]\n", "prefix": "libgnss.getGga"}, "libgnss.getGll": {"body": "libgnss.getGll(${1:data_mode})", "description": "libgnss.getGll(data_mode) - \u83b7\u53d6GLL\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nint \u5750\u6807\u7c7b\u6570\u636e\u7684\u683c\u5f0f, 0-DDMM.MMM\u683c\u5f0f, 1-DDDDDDD\u683c\u5f0f, 2-DD.DDDDD\u683c\u5f0f\n\u8fd4\u56de\u503c\uff1a\ntable GLL\u6570\u636e, \u82e5\u5982\u4e0d\u5b58\u5728\u4f1a\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\nlocal gll = libgnss.getGll(2)\nif gll then\n log.info(\"GLL\", json.encode(gll, \"11g\"))\nend\n-- \u5b9e\u4f8b\u6570\u636e\n--[[\n{\n \"status\":\"A\", // \u5b9a\u4f4d\u72b6\u6001, A\u6709\u6548, B\u65e0\u6548\n \"mode\":\"A\", // \u5b9a\u4f4d\u6a21\u5f0f, V\u65e0\u6548, A\u5355\u70b9\u89e3, D\u5dee\u5206\u89e3\n \"sec\":20, // \u79d2, UTC\u65f6\u95f4\u4e3a\u51c6\n \"min\":23, // \u5206\u949f, UTC\u65f6\u95f4\u4e3a\u51c6\n \"hour\":7, // \u5c0f\u65f6, UTC\u65f6\u95f4\u4e3a\u51c6\n \"longitude\":113.231, // \u7ecf\u5ea6, \u6b63\u6570\u4e3a\u4e1c\u7ecf, \u8d1f\u6570\u4e3a\u897f\u7ecf\n \"latitude\":23.4067, // \u7eac\u5ea6, \u6b63\u6570\u4e3a\u5317\u7eac, \u8d1f\u6570\u4e3a\u5357\u7eac\n \"us\":0 // \u5fae\u5999\u6570, \u901a\u5e38\u4e3a0\n}\n]]\n", "prefix": "libgnss.getGll"}, "libgnss.clear": {"body": "libgnss.clear()", "description": "libgnss.clear() - \u6e05\u9664\u5386\u53f2\u5b9a\u4f4d\u6570\u636e\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n-- \u8be5\u64cd\u4f5c\u4f1a\u6e05\u9664\u6240\u6709\u5b9a\u4f4d\u6570\u636e\n", "prefix": "libgnss.clear"}, "libgnss.bind": {"body": "libgnss.bind(${1:id},${2:next_id})", "description": "libgnss.bind(id, next_id) - \u7ed1\u5b9auart\u7aef\u53e3\u8fdb\u884cGNSS\u6570\u636e\u8bfb\u53d6\n\u4f20\u5165\u503c\uff1a\nint uart\u7aef\u53e3\u53f7\nint \u8f6c\u53d1\u5230uart\u7684id, \u4f8b\u5982\u865a\u62dfuart.VUART_0\n\u4f8b\u5b50\uff1a\n-- \u914d\u7f6e\u4e32\u53e3\u4fe1\u606f, \u901a\u5e38\u4e3a 115200 8N1\nuart.setup(2, 115200)\n-- \u7ed1\u5b9auart, \u9a6c\u4e0a\u5f00\u59cb\u89e3\u6790GNSS\u6570\u636e\nlibgnss.bind(2)\n-- \u65e0\u9700\u518d\u8c03\u7528uart.on\u7136\u540e\u8c03\u7528libgnss.parse\n-- \u5f00\u53d1\u671f\u53ef\u6253\u5f00\u8c03\u8bd5\u65e5\u5fd7\nlibgnss.debug(true)\n\n-- 2023-01-02\u4e4b\u540e\u7f16\u8bd1\u7684\u56fa\u4ef6\u6709\u6548\n-- \u4eceuart2\u8bfb\u53d6\u5e76\u89e3\u6790, \u540c\u65f6\u8f6c\u53d1\u5230\u865a\u62df\u4e32\u53e30\nlibgnss.bind(2, uart.VUART_0)\n", "prefix": "libgnss.bind"}, "libgnss.locStr": {"body": "libgnss.locStr(${1:mode})", "description": "libgnss.locStr(mode) - \u83b7\u53d6\u4f4d\u7f6e\u5b57\u7b26\u4e32\n\u4f20\u5165\u503c\uff1a\nint \u5b57\u7b26\u4e32\u6a21\u5f0f. 0- Air780EG\u6240\u9700\u7684\u683c\u5f0f\nreturn \u6307\u5b9a\u6a21\u5f0f\u7684\u5b57\u7b26\u4e32\n\u4f8b\u5b50\uff1a\n-- \u4ec5\u63a8\u8350\u5728\u5b9a\u4f4d\u6210\u529f\u540e\u8c03\u7528\n", "prefix": "libgnss.locStr"}, "libgnss.rtcAuto": {"body": "libgnss.rtcAuto(${1:enable})", "description": "libgnss.rtcAuto(enable) - \u5b9a\u4f4d\u6210\u529f\u540e\u81ea\u52a8\u8bbe\u7f6eRTC\n\u4f20\u5165\u503c\uff1a\nbool \u5f00\u542f\u4e0e\u5426, \u9ed8\u8ba4\u662ffalse\u5173\u95ed\n\u4f8b\u5b50\uff1a\n-- \u5f00\u542f\u81ea\u52a8\u8bbe\u7f6eRTC\nlibgnss.rtcAuto(true)\n", "prefix": "libgnss.rtcAuto"}, "libgnss.on": {"body": "libgnss.on(${1:tp},${2:fn})", "description": "libgnss.on(tp, fn) - \u5e95\u5c42\u4e8b\u4ef6\u56de\u8c03\n\u4f20\u5165\u503c\uff1a\nstring \u4e8b\u4ef6\u7c7b\u578b,\u5f53\u524d\u652f\u6301\"raw\"\n\u4f8b\u5b50\uff1a\n-- \u672c\u51fd\u6570\u4e00\u822c\u7528\u4e8e\u8c03\u8bd5, \u7528\u4e8e\u83b7\u53d6\u5e95\u5c42\u5b9e\u9645\u6536\u5230\u7684\u6570\u636e\nlibgnss.on(\"raw\", function(data)\n log.info(\"GNSS\", data)\nend)\n", "prefix": "libgnss.on"}, "libgnss.getTxt": {"body": "libgnss.getTxt()", "description": "libgnss.getTxt() - \u83b7\u53d6\u975e\u6807\u7684GPTXT\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nreturn GPTXT\u6240\u643a\u5e26\u7684\u5b57\u7b26\u4e32\n\u4f8b\u5b50\uff1a\n-- \u672c\u51fd\u6570\u4e8e2023.6.6 \u6dfb\u52a0\nlog.info(\"gnss\", \"txt\", libgnss.getTxt())\n\n-- \u6d4b\u8bd5\u8bed\u53e5\nlibgnss.parse(\"$GPTXT,01,01,01,ANTENNA SHORT*63\\r\\n\")\nlog.info(\"GNSS\", libgnss.getTxt())\nlibgnss.parse(\"$GPTXT,01,01,01,ANTENNA OPEN*25\\r\\n\")\nlog.info(\"GNSS\", libgnss.getTxt())\nlibgnss.parse(\"$GPTXT,01,01,01,ANTENNA OK*35\\r\\n\")\nlog.info(\"GNSS\", libgnss.getTxt())\n", "prefix": "libgnss.getTxt"}, "log.setLevel": {"body": "log.setLevel(${1:level})", "description": "log.setLevel(level) - \u8bbe\u7f6e\u65e5\u5fd7\u7ea7\u522b\n\u4f20\u5165\u503c\uff1a\nstring level \u65e5\u5fd7\u7ea7\u522b,\u53ef\u7528\u5b57\u7b26\u4e32\u6216\u6570\u503c, \u5b57\u7b26\u4e32\u4e3a(SILENT,DEBUG,INFO,WARN,ERROR,FATAL), \u6570\u503c\u4e3a(0,1,2,3,4,5)\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n-- \u8bbe\u7f6e\u65e5\u5fd7\u7ea7\u522b\u4e3aINFO\nlog.setLevel(\"INFO\")\n", "prefix": "log.setLevel"}, "log.style": {"body": "log.style(${1:val})", "description": "log.style(val) - \u8bbe\u7f6e\u65e5\u5fd7\u98ce\u683c\n\u4f20\u5165\u503c\uff1a\nint \u65e5\u5fd7\u98ce\u683c,\u9ed8\u8ba4\u4e3a0, \u4e0d\u4f20\u5c31\u662f\u83b7\u53d6\u5f53\u524d\u503c\n\u8fd4\u56de\u503c\uff1a\nint \u5f53\u524d\u7684\u65e5\u5fd7\u98ce\u683c\n\u4f8b\u5b50\uff1a\n-- \u4ee5 log.info(\"ABC\", \"DEF\", 123) \u4e3a\u4f8b, \u5047\u8bbe\u8be5\u4ee3\u7801\u4f4d\u4e8emain.lua\u768412\u884c\n-- \u9ed8\u8ba4\u65e5\u5fd70\n-- I/user.ABC DEF 123\n-- \u8c03\u8bd5\u98ce\u683c1, \u6dfb\u52a0\u989d\u5916\u7684\u8c03\u8bd5\u4fe1\u606f\n-- I/main.lua:12 ABC DEF 123\n-- \u8c03\u8bd5\u98ce\u683c2, \u6dfb\u52a0\u989d\u5916\u7684\u8c03\u8bd5\u4fe1\u606f, \u4f4d\u7f6e\u6709\u6240\u533a\u522b\n-- I/user.ABC main.lua:12 DEF 123\n\nlog.style(0) -- \u9ed8\u8ba4\u98ce\u683c0\nlog.style(1) -- \u8c03\u8bd5\u98ce\u683c1\nlog.style(2) -- \u8c03\u8bd5\u98ce\u683c2\n", "prefix": "log.style"}, "log.getLevel": {"body": "log.getLevel()", "description": "log.getLevel() - \u83b7\u53d6\u65e5\u5fd7\u7ea7\u522b\n\u8fd4\u56de\u503c\uff1a\nint \u65e5\u5fd7\u7ea7\u522b\u5bf9\u5e940,1,2,3,4,5\n\u4f8b\u5b50\uff1a\n-- \u5f97\u5230\u65e5\u5fd7\u7ea7\u522b\nlog.getLevel()\n", "prefix": "log.getLevel"}, "log.debug": {"body": "log.debug(${1:tag},${2:val},${3:val2},${4:val3},${5:...})", "description": "log.debug(tag, val, val2, val3, ...) - \u8f93\u51fa\u65e5\u5fd7,\u7ea7\u522bdebug\n\u4f20\u5165\u503c\uff1a\nstring tag \u65e5\u5fd7\u6807\u8bc6,\u5fc5\u987b\u662f\u5b57\u7b26\u4e32\n... \u9700\u6253\u5370\u7684\u53c2\u6570\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n-- \u65e5\u5fd7\u8f93\u51fa D/onenet connect ok\nlog.debug(\"onenet\", \"connect ok\")\n", "prefix": "log.debug"}, "log.info": {"body": "log.info(${1:tag},${2:val},${3:val2},${4:val3},${5:...})", "description": "log.info(tag, val, val2, val3, ...) - \u8f93\u51fa\u65e5\u5fd7,\u7ea7\u522binfo\n\u4f20\u5165\u503c\uff1a\nstring tag \u65e5\u5fd7\u6807\u8bc6,\u5fc5\u987b\u662f\u5b57\u7b26\u4e32\n... \u9700\u6253\u5370\u7684\u53c2\u6570\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n-- \u65e5\u5fd7\u8f93\u51fa I/onenet connect ok\nlog.info(\"onenet\", \"connect ok\")\n", "prefix": "log.info"}, "log.warn": {"body": "log.warn(${1:tag},${2:val},${3:val2},${4:val3},${5:...})", "description": "log.warn(tag, val, val2, val3, ...) - \u8f93\u51fa\u65e5\u5fd7,\u7ea7\u522bwarn\n\u4f20\u5165\u503c\uff1a\nstring tag \u65e5\u5fd7\u6807\u8bc6,\u5fc5\u987b\u662f\u5b57\u7b26\u4e32\n... \u9700\u6253\u5370\u7684\u53c2\u6570\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n-- \u65e5\u5fd7\u8f93\u51fa W/onenet connect ok\nlog.warn(\"onenet\", \"connect ok\")\n", "prefix": "log.warn"}, "log.error": {"body": "log.error(${1:tag},${2:val},${3:val2},${4:val3},${5:...})", "description": "log.error(tag, val, val2, val3, ...) - \u8f93\u51fa\u65e5\u5fd7,\u7ea7\u522berror\n\u4f20\u5165\u503c\uff1a\nstring tag \u65e5\u5fd7\u6807\u8bc6,\u5fc5\u987b\u662f\u5b57\u7b26\u4e32\n... \u9700\u6253\u5370\u7684\u53c2\u6570\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n-- \u65e5\u5fd7\u8f93\u51fa E/onenet connect ok\nlog.error(\"onenet\", \"connect ok\")\n", "prefix": "log.error"}, "lora.init": {"body": "lora.init(${1:ic},${2:loraconfig},${3:spiconfig})", "description": "lora.init(ic, loraconfig,spiconfig) - lora\u521d\u59cb\u5316\n\u4f20\u5165\u503c\uff1a\nstring lora \u578b\u53f7\uff0c\u5f53\u524d\u652f\u6301\uff1a
llcc68
sx1268\ntable lora\u914d\u7f6e\u53c2\u6570,\u4e0e\u5177\u4f53\u8bbe\u5907\u6709\u5173\n\u4f8b\u5b50\uff1a\nlora.init(\"llcc68\",\n {\n id = 0, -- SPI id\n cs = pin.PB04, -- SPI \u7247\u9009\u7684GPIO\u53f7,\u5982\u679c\u6ca1\u6709pin\u5e93,\u586bGPIO\u6570\u5b57\u7f16\u53f7\u5c31\u884c\n res = pin.PB00, -- \u590d\u4f4d\u811a\u8fde\u63a5\u7684GPIO\u53f7,\u5982\u679c\u6ca1\u6709pin\u5e93,\u586bGPIO\u6570\u5b57\u7f16\u53f7\u5c31\u884c\n busy = pin.PB01, -- \u5fd9\u68c0\u6d4b\u811a\u7684GPIO\u53f7\n dio1 = pin.PB06, -- \u6570\u636e\u8f93\u5165\u4e2d\u65ad\u811a\n lora_init = true -- \u662f\u5426\u53d1\u9001\u521d\u59cb\u5316\u547d\u4ee4. \u5982\u679c\u662f\u5524\u9192\u540e\u76f4\u63a5\u8bfb\u53d6, \u5c31\u4f20false\n }\n)\n", "prefix": "lora.init"}, "lora.set_channel": {"body": "lora.set_channel(${1:freq})", "description": "lora.set_channel(freq) - \u8bbe\u7f6e\u9891\u9053\u9891\u7387\n\u4f20\u5165\u503c\uff1a\nnumber \u9891\u7387\n\u4f8b\u5b50\uff1a\nlora.set_channel(433000000)\n", "prefix": "lora.set_channel"}, "lora.set_txconfig": {"body": "lora.set_txconfig(${1:ic},${2:txconfig})", "description": "lora.set_txconfig(ic, txconfig) - lora\u914d\u7f6e\u53d1\u9001\u53c2\u6570\n\u4f20\u5165\u503c\uff1a\nstring lora \u578b\u53f7\uff0c\u5f53\u524d\u652f\u6301\uff1a
llcc68
sx1268\ntable lora\u53d1\u9001\u914d\u7f6e\u53c2\u6570,\u4e0e\u5177\u4f53\u8bbe\u5907\u6709\u5173\n\u4f8b\u5b50\uff1a\nlora.set_txconfig(\"llcc68\",\n {\n mode=1,\n power=22,\n fdev=0,\n bandwidth=0,\n datarate=9,\n coderate=4,\n preambleLen=8,\n fixLen=false,\n crcOn=true,\n freqHopOn=0,\n hopPeriod=0,\n iqInverted=false,\n timeout=3000\n }\n)\n", "prefix": "lora.set_txconfig"}, "lora.set_rxconfig": {"body": "lora.set_rxconfig(${1:ic},${2:set_rxconfig})", "description": "lora.set_rxconfig(ic, set_rxconfig) - lora\u914d\u7f6e\u63a5\u6536\u53c2\u6570\n\u4f20\u5165\u503c\uff1a\nstring lora \u578b\u53f7\uff0c\u5f53\u524d\u652f\u6301\uff1a
llcc68
sx1268\ntable lora\u63a5\u6536\u914d\u7f6e\u53c2\u6570,\u4e0e\u5177\u4f53\u8bbe\u5907\u6709\u5173\n\u4f8b\u5b50\uff1a\nlora.set_rxconfig(\"llcc68\",\n {\n mode=1,\n bandwidth=0,\n datarate=9,\n coderate=4,\n bandwidthAfc=0,\n preambleLen=8,\n symbTimeout=0,\n fixLen=false,\n payloadLen=0,\n crcOn=true,\n freqHopOn=0,\n hopPeriod=0,\n iqInverted=false,\n rxContinuous=false\n }\n)\n", "prefix": "lora.set_rxconfig"}, "lora.send": {"body": "lora.send(${1:data})", "description": "lora.send(data) - \u53d1\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nstring \u5199\u5165\u7684\u6570\u636e\n\u4f8b\u5b50\uff1a\nlora.send(\"PING\")\n", "prefix": "lora.send"}, "lora.recv": {"body": "lora.recv(${1:timeout})", "description": "lora.recv(timeout) - \u5f00\u542f\u6536\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nnumber \u8d85\u65f6\u65f6\u95f4\uff0c\u9ed8\u8ba41000 \u5355\u4f4dms\n\u4f8b\u5b50\uff1a\nsys.subscribe(\"LORA_RX_DONE\", function(data, size)\n log.info(\"LORA_RX_DONE: \", data, size)\n lora.send(\"PING\")\nend)\n-- \u8001\u7248\u672c\u6ca1\u6709recv, \u53ef\u4ee5\u6539\u6210 lora.recive\nlora.recv(1000)\n", "prefix": "lora.recv"}, "lora.mode": {"body": "lora.mode(${1:mode})", "description": "lora.mode(mode) - \u8bbe\u7f6e\u8fdb\u5165\u6a21\u5f0f(\u4f11\u7720\uff0c\u6b63\u5e38\u7b49)\n\u4f20\u5165\u503c\uff1a\nnumber \u6a21\u5f0f \u6b63\u5e38\u6a21\u5f0f:lora.STANDBY \u4f11\u7720\u6a21\u5f0f:lora.SLEEP \u9ed8\u8ba4\u4e3a\u6b63\u5e38\u6a21\u5f0f\n\u4f8b\u5b50\uff1a\nlora.mode(lora.STANDBY)\n", "prefix": "lora.mode"}, "lora2.init": {"body": "lora2.init(${1:ic},${2:loraconfig},${3:spiconfig})", "description": "lora2.init(ic, loraconfig,spiconfig) - lora\u521d\u59cb\u5316\n\u4f20\u5165\u503c\uff1a\nstring lora \u578b\u53f7\uff0c\u5f53\u524d\u652f\u6301\uff1a
llcc68
sx1268\ntable lora\u914d\u7f6e\u53c2\u6570,\u4e0e\u5177\u4f53\u8bbe\u5907\u6709\u5173\n\u8fd4\u56de\u503c\uff1a\nuserdata \u82e5\u6210\u529f\u4f1a\u8fd4\u56delora\u5bf9\u8c61,\u5426\u5219\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\nspi_lora = spi.deviceSetup(spi_id,pin_cs,0,0,8,10*1000*1000,spi.MSB,1,0)\nlora_device = lora2.init(\"llcc68\",{res = pin_reset,busy = pin_busy,dio1 = pin_dio1},spi_lora)\n", "prefix": "lora2.init"}, "lora_device:set_channel": {"body": "lora_device:set_channel(${1:freq})", "description": "lora_device:set_channel(freq) - \u8bbe\u7f6e\u9891\u9053\u9891\u7387\n\u4f20\u5165\u503c\uff1a\nnumber \u9891\u7387\n\u4f8b\u5b50\uff1a\nlora_device:set_channel(433000000)\n", "prefix": "lora_device:set_channel"}, "lora_device:set_txconfig": {"body": "lora_device:set_txconfig(${1:txconfig})", "description": "lora_device:set_txconfig(txconfig) - lora\u914d\u7f6e\u53d1\u9001\u53c2\u6570\n\u4f20\u5165\u503c\uff1a\ntable lora\u53d1\u9001\u914d\u7f6e\u53c2\u6570,\u4e0e\u5177\u4f53\u8bbe\u5907\u6709\u5173\n\u4f8b\u5b50\uff1a\nlora_device:set_txconfig(\n {\n mode=1,\n power=22,\n fdev=0,\n bandwidth=0,\n datarate=9,\n coderate=4,\n preambleLen=8,\n fixLen=false,\n crcOn=true,\n freqHopOn=0,\n hopPeriod=0,\n iqInverted=false,\n timeout=3000\n }\n)\n", "prefix": "lora_device:set_txconfig"}, "lora_device:set_rxconfig": {"body": "lora_device:set_rxconfig(${1:set_rxconfig})", "description": "lora_device:set_rxconfig(set_rxconfig) - lora\u914d\u7f6e\u63a5\u6536\u53c2\u6570\n\u4f20\u5165\u503c\uff1a\ntable lora\u63a5\u6536\u914d\u7f6e\u53c2\u6570,\u4e0e\u5177\u4f53\u8bbe\u5907\u6709\u5173\n\u4f8b\u5b50\uff1a\nlora_device:set_rxconfig(\n {\n mode=1,\n bandwidth=0,\n datarate=9,\n coderate=4,\n bandwidthAfc=0,\n preambleLen=8,\n symbTimeout=0,\n fixLen=false,\n payloadLen=0,\n crcOn=true,\n freqHopOn=0,\n hopPeriod=0,\n iqInverted=false,\n rxContinuous=false\n }\n)\n", "prefix": "lora_device:set_rxconfig"}, "lora_device:send": {"body": "lora_device:send(${1:data})", "description": "lora_device:send(data) - \u53d1\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nstring \u5199\u5165\u7684\u6570\u636e\n\u4f8b\u5b50\uff1a\nlora_device:send(\"PING\")\n", "prefix": "lora_device:send"}, "lora_device:recv": {"body": "lora_device:recv(${1:timeout})", "description": "lora_device:recv(timeout) - \u5f00\u542f\u6536\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nnumber \u8d85\u65f6\u65f6\u95f4\uff0c\u9ed8\u8ba41000 \u5355\u4f4dms\n\u4f8b\u5b50\uff1a\nsys.subscribe(\"LORA_RX_DONE\", function(data, size)\n log.info(\"LORA_RX_DONE: \", data, size)\n lora_device:send(\"PING\")\nend)\nlora_device:recv(1000)\n", "prefix": "lora_device:recv"}, "lora_device:mode": {"body": "lora_device:mode(${1:mode})", "description": "lora_device:mode(mode) - \u8bbe\u7f6e\u8fdb\u5165\u6a21\u5f0f(\u4f11\u7720\uff0c\u6b63\u5e38\u7b49)\n\u4f20\u5165\u503c\uff1a\nnumber \u6a21\u5f0f \u6b63\u5e38\u6a21\u5f0f:lora.STANDBY \u4f11\u7720\u6a21\u5f0f:lora.SLEEP \u9ed8\u8ba4\u4e3a\u6b63\u5e38\u6a21\u5f0f\n\u4f8b\u5b50\uff1a\nlora_device:mode(lora.STANDBY)\n", "prefix": "lora_device:mode"}, "lora_device:on": {"body": "lora_device:on(${1:cb})", "description": "lora_device:on(cb) - \u6ce8\u518clora\u56de\u8c03\n\u4f20\u5165\u503c\uff1a\nfunction cb lora\u56de\u8c03,\u53c2\u6570\u5305\u62eclora_device, event, data, size\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\nlora_device:on(function(lora_device, event, data, size)\n log.info(\"lora\", \"event\", event, lora_device, data, size)\n if event == \"tx_done\" then\n lora_device:recv(1000)\n elseif event == \"rx_done\" then\n lora_device:send(\"PING\")\n elseif event == \"tx_timeout\" then\n\n elseif event == \"rx_timeout\" then\n lora_device:recv(1000)\n elseif event == \"rx_error\" then\n\n end\nend)\n--[[\nevent\u53ef\u80fd\u51fa\u73b0\u7684\u503c\u6709\n tx_done -- \u53d1\u9001\u5b8c\u6210\n rx_done -- \u63a5\u6536\u5b8c\u6210\n tx_timeout -- \u53d1\u9001\u8d85\u65f6\n rx_timeout -- \u63a5\u6536\u8d85\u65f6\n rx_error -- \u63a5\u6536\u9519\u8bef\n]]\n", "prefix": "lora_device:on"}, "lvgl.draw_mask_radius_param_t": {"body": "lvgl.draw_mask_radius_param_t()", "description": "lvgl.draw_mask_radius_param_t() - \u521b\u5efa\u4e00\u4e2alv_draw_mask_radius_param_t\n\u8fd4\u56de\u503c\uff1a\nuserdata lv_draw_mask_radius_param_t\u6307\u9488\n\u4f8b\u5b50\uff1a\nlocal radius = lvgl.draw_mask_radius_param_t()\n", "prefix": "lvgl.draw_mask_radius_param_t"}, "lvgl.draw_mask_radius_param_t_free": {"body": "lvgl.draw_mask_radius_param_t_free(${1:radius})", "description": "lvgl.draw_mask_radius_param_t_free(radius) - \u91ca\u653e\u4e00\u4e2alv_draw_mask_radius_param_t\n\u4f8b\u5b50\uff1a\nlocal lvgl.draw_mask_radius_param_t_free(radius)\n", "prefix": "lvgl.draw_mask_radius_param_t_free"}, "lvgl.draw_mask_line_param_t": {"body": "lvgl.draw_mask_line_param_t()", "description": "lvgl.draw_mask_line_param_t() - \u521b\u5efa\u4e00\u4e2alv_draw_mask_line_param_t\n\u8fd4\u56de\u503c\uff1a\nuserdata lv_draw_mask_line_param_t\u6307\u9488\n\u4f8b\u5b50\uff1a\nlocal line = lvgl.draw_mask_line_param_t()\n", "prefix": "lvgl.draw_mask_line_param_t"}, "lvgl.draw_mask_line_param_t_free": {"body": "lvgl.draw_mask_line_param_t_free(${1:line})", "description": "lvgl.draw_mask_line_param_t_free(line) - \u91ca\u653e\u4e00\u4e2alv_draw_mask_line_param_t\n\u4f8b\u5b50\uff1a\nlocal lvgl.draw_mask_line_param_t_free(line)\n", "prefix": "lvgl.draw_mask_line_param_t_free"}, "lvgl.draw_mask_fade_param_t": {"body": "lvgl.draw_mask_fade_param_t()", "description": "lvgl.draw_mask_fade_param_t() - \u521b\u5efa\u4e00\u4e2alv_draw_mask_fade_param_t\n\u8fd4\u56de\u503c\uff1a\nuserdata lv_draw_mask_fade_param_t\u6307\u9488\n\u4f8b\u5b50\uff1a\nlocal fade = lvgl.draw_mask_fade_param_t()\n", "prefix": "lvgl.draw_mask_fade_param_t"}, "lvgl.draw_mask_fade_param_t_free": {"body": "lvgl.draw_mask_fade_param_t_free(${1:fade})", "description": "lvgl.draw_mask_fade_param_t_free(fade) - \u91ca\u653e\u4e00\u4e2alv_draw_mask_fade_param_t\n\u4f8b\u5b50\uff1a\nlocal lvgl.draw_mask_fade_param_t_free(fade)\n", "prefix": "lvgl.draw_mask_fade_param_t_free"}, "lvgl.font_get": {"body": "lvgl.font_get(${1:name})", "description": "lvgl.font_get(name) - \u83b7\u53d6\u5185\u7f6e\u5b57\u4f53\n\u4f20\u5165\u503c\uff1a\nstring \u5b57\u4f53\u540d\u79f0+\u5b57\u53f7, \u4f8b\u5982 opposans_m_10\n\u8fd4\u56de\u503c\uff1a\nuserdata \u5b57\u4f53\u6307\u9488\n\u4f8b\u5b50\uff1a\n\nlocal font = lvgl.font_get(\"opposans_m_12\")\n", "prefix": "lvgl.font_get"}, "lvgl.font_load": {"body": "lvgl.font_load(${1:path/spi_device},${2:size},${3:bpp},${4:thickness},${5:cache_size},${6:sty_zh},${7:sty_en})", "description": "lvgl.font_load(path/spi_device,size,bpp,thickness,cache_size,sty_zh,sty_en) - \u4ece\u6587\u4ef6\u7cfb\u7edf\u52a0\u8f7d\u5b57\u4f53\n\u4f20\u5165\u503c\uff1a\nstring/userdata \u5b57\u4f53\u8def\u5f84/spi_device (spi_device\u4e3a\u4f7f\u7528\u5916\u7f6e\u9ad8\u901a\u77e2\u91cf\u5b57\u5e93\u82af\u7247)\nnumber size \u53ef\u9009,\u5b57\u53f7 16-192 \u9ed8\u8ba416(\u4f7f\u7528\u9ad8\u901a\u77e2\u91cf\u5b57\u5e93)\nnumber bpp \u53ef\u9009 \u6df1\u5ea6 \u9ed8\u8ba44(\u4f7f\u7528\u9ad8\u901a\u77e2\u91cf\u5b57\u5e93)\nnumber thickness \u53ef\u9009 \u7c97\u7ec6\u503c \u9ed8\u8ba4size * bpp(\u4f7f\u7528\u9ad8\u901a\u77e2\u91cf\u5b57\u5e93)\nnumber cache_size \u53ef\u9009 \u9ed8\u8ba40(\u4f7f\u7528\u9ad8\u901a\u77e2\u91cf\u5b57\u5e93)\nnumber sty_zh \u53ef\u9009 \u9009\u62e9\u5b57\u4f53 \u9ed8\u8ba41(\u4f7f\u7528\u9ad8\u901a\u77e2\u91cf\u5b57\u5e93)\nnumber sty_en \u53ef\u9009 \u9009\u62e9\u5b57\u4f53 \u9ed8\u8ba43(\u4f7f\u7528\u9ad8\u901a\u77e2\u91cf\u5b57\u5e93)\n\u8fd4\u56de\u503c\uff1a\nuserdata \u5b57\u4f53\u6307\u9488\n\u4f8b\u5b50\uff1a\nlocal font = lvgl.font_load(\"/font_32.bin\")\n--local font = lvgl.font_load(spi_device,16)(\u9ad8\u901a\u77e2\u91cf\u5b57\u5e93)\n", "prefix": "lvgl.font_load"}, "lvgl.font_free": {"body": "lvgl.font_free(${1:font})", "description": "lvgl.font_free(font) - \u91ca\u653e\u5b57\u4f53,\u614e\u7528!!!\u4ec5\u901a\u8fc7font_load\u52a0\u8f7d\u7684\u5b57\u4f53\u5141\u8bb8\u5378\u8f7d,\u901a\u8fc7font_get\u83b7\u53d6\u7684\u5b57\u4f53\u4e0d\u5141\u8bb8\u5378\u8f7d\n\u4f20\u5165\u503c\uff1a\nstring \u5b57\u4f53\u8def\u5f84\n\u8fd4\u56de\u503c\uff1a\nuserdata \u5b57\u4f53\u6307\u9488\n\u4f8b\u5b50\uff1a\nlocal font = lvgl.font_load(\"/font_32.bin\")\n-- N N N N \u64cd\u4f5c\n-- \u786e\u5b9a\u5b57\u4f53\u4e0d\u88ab\u4f7f\u7528,\u4e0d\u88ab\u5f15\u7528,\u4e14\u5185\u5b58\u7d27\u5f20\u9700\u8981\u91ca\u653e\nlvgl.font_free(font)\n", "prefix": "lvgl.font_free"}, "lvgl.obj_set_event_cb": {"body": "lvgl.obj_set_event_cb(${1:obj},${2:func})", "description": "lvgl.obj_set_event_cb(obj, func) - \u8bbe\u7f6e\u7ec4\u4ef6\u7684\u4e8b\u4ef6\u56de\u8c03\n\u4f20\u5165\u503c\uff1a\nuserdata lvgl\u7ec4\u4ef6\u6307\u9488\nfunc lua\u51fd\u6570, \u53c2\u6570\u67092\u4e2a (obj, event), \u5176\u4e2dobj\u662f\u5f53\u524d\u5bf9\u8c61, event\u662f\u4e8b\u4ef6\u7c7b\u578b, \u4e3a\u6574\u578b\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n", "prefix": "lvgl.obj_set_event_cb"}, "lvgl.obj_set_signal_cb": {"body": "lvgl.obj_set_signal_cb(${1:obj},${2:func})", "description": "lvgl.obj_set_signal_cb(obj, func) - \u8bbe\u7f6e\u7ec4\u4ef6\u7684\u4fe1\u53f7\u56de\u8c03\n\u4f20\u5165\u503c\uff1a\nuserdata lvgl\u7ec4\u4ef6\u6307\u9488\nfunc lua\u51fd\u6570, \u53c2\u6570\u67092\u4e2a (obj, signal), \u5176\u4e2dobj\u662f\u5f53\u524d\u5bf9\u8c61, signal\u662f\u4fe1\u53f7\u7c7b\u578b, \u4e3a\u6574\u578b\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n", "prefix": "lvgl.obj_set_signal_cb"}, "lvgl.anim_set_exec_cb": {"body": "lvgl.anim_set_exec_cb(${1:anim},${2:func})", "description": "lvgl.anim_set_exec_cb(anim, func) - \u8bbe\u7f6e\u52a8\u753b\u56de\u8c03\n\u4f20\u5165\u503c\uff1a\nuserdata \u52a8\u753b\u6307\u9488\nuserdata lvgl\u7ec4\u4ef6\u6307\u9488\nfunc lua\u51fd\u6570, \u53c2\u6570\u67092\u4e2a (obj, value), \u5176\u4e2dobj\u662f\u5f53\u524d\u5bf9\u8c61, signal\u662f\u4fe1\u53f7\u7c7b\u578b, \u4e3a\u6574\u578b\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n", "prefix": "lvgl.anim_set_exec_cb"}, "lvgl.anim_set_ready_cb": {"body": "lvgl.anim_set_ready_cb(${1:anim},${2:func})", "description": "lvgl.anim_set_ready_cb(anim, func) - \u8bbe\u7f6e\u52a8\u753b\u56de\u8c03\n\u4f20\u5165\u503c\uff1a\nuserdata \u52a8\u753b\u6307\u9488\nuserdata lvgl\u7ec4\u4ef6\u6307\u9488\nfunc lua\u51fd\u6570, \u53c2\u6570\u67091\u4e2a (anim), \u5176\u4e2danim\u662f\u5f53\u524d\u5bf9\u8c61\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n", "prefix": "lvgl.anim_set_ready_cb"}, "lvgl.anim_path_set_cb": {"body": "lvgl.anim_path_set_cb(${1:path},${2:func})", "description": "lvgl.anim_path_set_cb(path, func) - \u8bbe\u7f6e\u52a8\u753b\u56de\u8c03\n\u4f20\u5165\u503c\uff1a\nuserdata \u52a8\u753b\u6307\u9488\nuserdata lvgl\u7ec4\u4ef6\u6307\u9488\nfunc lua\u51fd\u6570, \u53c2\u6570\u67091\u4e2a (path), \u5176\u4e2dpath\u662f\u5f53\u524d\u5bf9\u8c61\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n", "prefix": "lvgl.anim_path_set_cb"}, "lvgl.event_send": {"body": "lvgl.event_send(${1:obj},${2:ent})", "description": "lvgl.event_send(obj, ent) - \u53d1\u9001\u4e8b\u4ef6\u7ed9\u7ec4\u4ef6\n\u4f20\u5165\u503c\uff1a\nuserdata \u7ec4\u4ef6\u6307\u9488\nint \u4e8b\u4ef6id, \u4f8b\u5982 lvgl.EVENT_PRESSED\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue, \u5bf9\u8c61\u5df2\u88ab\u5220\u9664\u7684\u8bdd\u8fd4\u56defalse\u6216\u8005nil\nint \u5e95\u5c42\u8fd4\u56de\u503c,\u5982\u679cobj\u4e3anil\u5c31\u8fd4\u56denil\n", "prefix": "lvgl.event_send"}, "lvgl.scr_act": {"body": "lvgl.scr_act()", "description": "lvgl.scr_act() - \u83b7\u53d6\u5f53\u524d\u6d3b\u8dc3\u7684screen\u5bf9\u8c61\n\u8fd4\u56de\u503c\uff1a\n\u6307\u9488 screen\u6307\u9488\n\u4f8b\u5b50\uff1a\nlocal scr = lvgl.scr_act()\n\n", "prefix": "lvgl.scr_act"}, "lvgl.layer_top": {"body": "lvgl.layer_top()", "description": "lvgl.layer_top() - \u83b7\u53d6layer_top\n\u8fd4\u56de\u503c\uff1a\n\u6307\u9488 layer\u6307\u9488\n", "prefix": "lvgl.layer_top"}, "lvgl.layer_sys": {"body": "lvgl.layer_sys()", "description": "lvgl.layer_sys() - \u83b7\u53d6layer_sys\n\u8fd4\u56de\u503c\uff1a\n\u6307\u9488 layer\u6307\u9488\n", "prefix": "lvgl.layer_sys"}, "lvgl.scr_load": {"body": "lvgl.scr_load(${1:scr})", "description": "lvgl.scr_load(scr) - \u8f7d\u5165\u6307\u5b9a\u7684screen\n\u4f20\u5165\u503c\uff1a\nuserdata screen\u6307\u9488\n\u4f8b\u5b50\uff1a\n local scr = lvgl.obj_create(nil, nil)\n local btn = lvgl.btn_create(scr)\n lvgl.obj_align(btn, lvgl.scr_act(), lvgl.ALIGN_CENTER, 0, 0)\n local label = lvgl.label_create(btn)\n lvgl.label_set_text(label, \"LuatOS!\")\n lvgl.scr_load(scr)\n", "prefix": "lvgl.scr_load"}, "lvgl.scr_load_anim": {"body": "lvgl.scr_load_anim(${1:scr})", "description": "lvgl.scr_load_anim(scr) - \u8f7d\u5165\u6307\u5b9a\u7684screen\u5e76\u4f7f\u7528\u6307\u5b9a\u7684\u8f6c\u573a\u52a8\u753b\n\u4f20\u5165\u503c\uff1a\nuserdata screen\u6307\u9488\n\u4f8b\u5b50\uff1a\n local scr = lvgl.obj_create(nil, nil)\n local btn = lvgl.btn_create(scr)\n lvgl.obj_align(btn, lvgl.scr_act(), lvgl.ALIGN_CENTER, 0, 0)\n local label = lvgl.label_create(btn)\n lvgl.label_set_text(label, \"LuatOS!\")\n\n local scr2 = lvgl.obj_create(nil,nil)\n local btn2 = lvgl.btn_create(scr2)\n lvgl.obj_align(btn, scr2, lvgl.ALIGN_CENTER, 0, 20)\n local label2 = lvgl.label_create(btn2)\n lvgl.label_set_text(label2, \"Btn2\")\n lvgl.scr_load(scr)\n --sys.wait(1000);\n lvgl.scr_load_anim(scr2,lvgl.SCR_LOAD_ANIM_OVER_LEFT,100,100,false)\n\u539f\u51fd\u6570\uff1alv_scr_load_anim(lv_obj_t * new_scr, lv_scr_load_anim_t anim_type, uint32_t time, uint32_t delay, bool auto_del)\n", "prefix": "lvgl.scr_load_anim"}, "lvgl.theme_set_act": {"body": "lvgl.theme_set_act(${1:name})", "description": "lvgl.theme_set_act(name) - \u8bbe\u7f6e\u4e3b\u9898\n\u4f20\u5165\u503c\uff1a\nstring \u4e3b\u9898\u540d\u79f0,\u53ef\u9009\u503c\u6709 default/mono/empty/material_light/material_dark/material_no_transition/material_no_focus\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\n-- \u9ed1\u767d\u4e3b\u9898\nlvgl.theme_set_act(\"mono\")\n-- \u7a7a\u767d\u4e3b\u9898\nlvgl.theme_set_act(\"empty\")\n", "prefix": "lvgl.theme_set_act"}, "lvgl.sleep": {"body": "lvgl.sleep(${1:enable})", "description": "lvgl.sleep(enable) - LVGL\u4f11\u7720\u63a7\u5236\uff0c\u6682\u505c/\u6062\u590d\u5237\u65b0\u5b9a\u65f6\u5668\uff0c\u76ee\u524d\u53ea\u6709105\u548cEC618\u53ef\u4ee5\u7528\n\u4f20\u5165\u503c\uff1a\nboolean true\u6682\u505c false\u6062\u590d\n\u4f8b\u5b50\uff1a\nlvgl.sleep(true)\t\t--\u6682\u505c\u5237\u65b0\uff0c\u7cfb\u7edf\u53ef\u4ee5\u4f11\u7720\nlvgl.sleep(false)\t\t--\u6062\u590d\u5237\u65b0\uff0c\u7cfb\u7edf\u4e0d\u4f11\u7720\n", "prefix": "lvgl.sleep"}, "lvgl.init": {"body": "lvgl.init(${1:w},${2:h},${3:lcd},${4:buff_size},${5:buff_mode})", "description": "lvgl.init(w, h, lcd, buff_size, buff_mode) - \u521d\u59cb\u5316LVGL\n\u4f20\u5165\u503c\uff1a\nint \u5c4f\u5e55\u5bbd,\u53ef\u9009,\u9ed8\u8ba4\u4ecelcd\u53d6\nint \u5c4f\u5e55\u9ad8,\u53ef\u9009,\u9ed8\u8ba4\u4ecelcd\u53d6\nuserdata lcd\u6307\u9488,\u53ef\u9009,lcd\u521d\u59cb\u5316\u540e\u6709\u9ed8\u8ba4\u503c,\u9884\u7559\u7684\u591a\u5c4f\u5165\u53e3\nint \u7f13\u51b2\u533a\u5927\u5c0f,\u9ed8\u8ba4\u5bbd*10, \u4e0d\u542b\u8272\u6df1.\nint \u7f13\u51b2\u6a21\u5f0f,\u9ed8\u8ba40, \u5355buff\u6a21\u5f0f, \u53ef\u90091,\u53ccbuff\u6a21\u5f0f\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n", "prefix": "lvgl.init"}, "lvgl.anim_create": {"body": "lvgl.anim_create()", "description": "lvgl.anim_create() - \u521b\u5efa\u5e76\u521d\u59cb\u5316\u4e00\u4e2aanim\n\u8fd4\u56de\u503c\uff1a\nuserdata anim\u6307\u9488\n\u4f8b\u5b50\uff1a\nlocal anim = lvgl.anim_create()\n", "prefix": "lvgl.anim_create"}, "lvgl.anim_free": {"body": "lvgl.anim_free(${1:anim})", "description": "lvgl.anim_free(anim) - \u91ca\u653e\u4e00\u4e2aanim\n\u4f8b\u5b50\uff1a\nlocal lvgl.anim_free(anim)\n", "prefix": "lvgl.anim_free"}, "lvgl.anim_path_t": {"body": "lvgl.anim_path_t()", "description": "lvgl.anim_path_t() - \u521b\u5efa\u4e00\u4e2alv_anim_path_t\n\u8fd4\u56de\u503c\uff1a\nuserdata lv_anim_path_t\u6307\u9488\n\u4f8b\u5b50\uff1a\nlocal anim_path_t = lvgl.anim_path_t()\n", "prefix": "lvgl.anim_path_t"}, "lvgl.anim_path_t_free": {"body": "lvgl.anim_path_t_free(${1:anim_path_t})", "description": "lvgl.anim_path_t_free(anim_path_t) - \u91ca\u653e\u4e00\u4e2alv_anim_path_t\n\u4f8b\u5b50\uff1a\nlocal lvgl.anim_path_t_free(anim_path_t)\n", "prefix": "lvgl.anim_path_t_free"}, "lvgl.anim_set_path_str": {"body": "lvgl.anim_set_path_str(${1:anim},${2:tp})", "description": "lvgl.anim_set_path_str(anim, tp) - \u8bbe\u7f6e\u52a8\u753b\u8def\u5f84\u65b9\u5f0f\n\u4f20\u5165\u503c\uff1a\nuserdata \u52a8\u753b\u6307\u9488\nstring \u7c7b\u578b, \u652f\u6301 linear/ease_in/ease_out/ease_in_out/overshoot/bounce/step\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n", "prefix": "lvgl.anim_set_path_str"}, "lvgl.qrcode_create": {"body": "lvgl.qrcode_create(${1:parent},${2:size},${3:dark_color},${4:light_color})", "description": "lvgl.qrcode_create(parent, size, dark_color, light_color) - \u521b\u5efaqrcode\u7ec4\u4ef6\n\u4f20\u5165\u503c\uff1a\nuserdata \u7236\u7ec4\u4ef6\nint \u957f\u5ea6,\u56e0\u4e3aqrcode\u662f\u6b63\u65b9\u5f62\nint \u4e8c\u7ef4\u7801\u4e2d\u6570\u636e\u70b9\u7684\u989c\u8272, RGB\u989c\u8272, \u9ed8\u8ba4 0x3333ff\nint \u4e8c\u7ef4\u7801\u4e2d\u80cc\u666f\u70b9\u7684\u989c\u8272, RGB\u989c\u8272, \u9ed8\u8ba4 0xeeeeff\n\u8fd4\u56de\u503c\uff1a\nuserdata qrcode\u7ec4\u4ef6\n\u4f8b\u5b50\uff1a\n-- \u521b\u5efa\u5e76\u663e\u793aqrcode\nlocal qrcode = lvgl.qrcode_create(scr, 100)\nlvgl.qrcode_update(qrcode, \"https://luatos.com\")\nlvgl.obj_align(qrcode, lvgl.scr_act(), lvgl.ALIGN_CENTER, -100, -100)\n", "prefix": "lvgl.qrcode_create"}, "lvgl.qrcode_update": {"body": "lvgl.qrcode_update(${1:qrcode},${2:cnt})", "description": "lvgl.qrcode_update(qrcode, cnt) - \u8bbe\u7f6eqrcode\u7ec4\u4ef6\u7684\u4e8c\u7ef4\u7801\u5185\u5bb9,\u914d\u5408qrcode_create\u4f7f\u7528\n\u4f20\u5165\u503c\uff1a\nuserdata qrcode\u7ec4\u4ef6,\u7531qrcode_create\u521b\u5efa\nstring \u4e8c\u7ef4\u7801\u7684\u5185\u5bb9\u6570\u636e\n\u8fd4\u56de\u503c\uff1a\nbool \u66f4\u65b0\u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse. \u901a\u5e38\u53ea\u6709\u6570\u636e\u592a\u957f\u65e0\u6cd5\u5bb9\u7eb3\u624d\u4f1a\u8fd4\u56defalse\n", "prefix": "lvgl.qrcode_update"}, "lvgl.qrcode_delete": {"body": "lvgl.qrcode_delete(${1:qrcode})", "description": "lvgl.qrcode_delete(qrcode) - \u5220\u9664qrcode\u7ec4\u4ef6\n\u4f20\u5165\u503c\uff1a\nuserdata qrcode\u7ec4\u4ef6,\u7531qrcode_create\u521b\u5efa\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n", "prefix": "lvgl.qrcode_delete"}, "lvgl.style_t": {"body": "lvgl.style_t()", "description": "lvgl.style_t() - \u521b\u5efa\u4e00\u4e2astyle\n\u8fd4\u56de\u503c\uff1a\nuserdata style\u6307\u9488\n\u4f8b\u5b50\uff1a\nlocal style = lvgl.style_t()\nlvgl.style_init(style)\n", "prefix": "lvgl.style_t"}, "lvgl.style_create": {"body": "lvgl.style_create()", "description": "lvgl.style_create() - \u521b\u5efa\u4e00\u4e2astyle\u5e76\u521d\u59cb\u5316\n\u8fd4\u56de\u503c\uff1a\nuserdata style\u6307\u9488\n\u4f8b\u5b50\uff1a\nlocal style = lvgl.style_create()\n", "prefix": "lvgl.style_create"}, "lvgl.style_list_create": {"body": "lvgl.style_list_create()", "description": "lvgl.style_list_create() - \u521b\u5efa\u4e00\u4e2astyle_list\n\u8fd4\u56de\u503c\uff1a\nuserdata style\u6307\u9488\n\u4f8b\u5b50\uff1a\nlocal style_list = lvgl.style_list_create()\n", "prefix": "lvgl.style_list_create"}, "lvgl.style_list_t": {"body": "lvgl.style_list_t()", "description": "lvgl.style_list_t() - \u521b\u5efa\u4e00\u4e2astyle_list\n\u8fd4\u56de\u503c\uff1a\nuserdata style\u6307\u9488\n\u4f8b\u5b50\uff1a\nlocal style = lvgl.style_list_t()\n", "prefix": "lvgl.style_list_t"}, "lvgl.style_delete": {"body": "lvgl.style_delete(${1:style})", "description": "lvgl.style_delete(style) - \u5220\u9664style,\u614e\u7528,\u901a\u5e38\u4e0d\u4f1a\u6267\u884c\u5220\u9664\u64cd\u4f5c\n\u4f20\u5165\u503c\uff1a\nuserdata style\u6307\u9488\n\u4f8b\u5b50\uff1a\nlocal style = lvgl.style_create()\n-- ...\n-- ...\n-- lvgl.style_delete(style)\n", "prefix": "lvgl.style_delete"}, "lvgl.style_list_delete": {"body": "lvgl.style_list_delete(${1:style})", "description": "lvgl.style_list_delete(style) - \u5220\u9664style_list,\u614e\u7528,\u901a\u5e38\u4e0d\u4f1a\u6267\u884c\u5220\u9664\u64cd\u4f5c\n\u4f20\u5165\u503c\uff1a\nuserdata style\u6307\u9488\n\u4f8b\u5b50\uff1a\nlocal style_list = lvgl.style_list_create()\n-- ...\n-- ...\n-- lvgl.style_list_delete(style_list)\n", "prefix": "lvgl.style_list_delete"}, "lvgl.demo_benchmark": {"body": "lvgl.demo_benchmark()", "description": "lvgl.demo_benchmark() - lvgl benchmark demo\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\nlvgl.init()\nlvgl.demo_benchmark()\n", "prefix": "lvgl.demo_benchmark"}, "lvgl.demo_keypad_encoder": {"body": "lvgl.demo_keypad_encoder()", "description": "lvgl.demo_keypad_encoder() - lvgl keypad_encoder demo\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\nlvgl.init()\nlvgl.demo_keypad_encoder()\n", "prefix": "lvgl.demo_keypad_encoder"}, "lvgl.demo_music": {"body": "lvgl.demo_music()", "description": "lvgl.demo_music() - lvgl music demo\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\nlvgl.init()\nlvgl.demo_music()\n", "prefix": "lvgl.demo_music"}, "lvgl.demo_printer": {"body": "lvgl.demo_printer()", "description": "lvgl.demo_printer() - lvgl printer demo\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\nlvgl.init()\nlvgl.demo_printer()\n", "prefix": "lvgl.demo_printer"}, "lvgl.demo_stress": {"body": "lvgl.demo_stress()", "description": "lvgl.demo_stress() - lvgl stress demo\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\nlvgl.init()\nlvgl.demo_stress()\n", "prefix": "lvgl.demo_stress"}, "lvgl.demo_widgets": {"body": "lvgl.demo_widgets()", "description": "lvgl.demo_widgets() - lvgl widgets demo\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\nlvgl.init()\nlvgl.demo_widgets()\n", "prefix": "lvgl.demo_widgets"}, "lvgl.indev_drv_register": {"body": "lvgl.indev_drv_register(${1:tp},${2:dtp})", "description": "lvgl.indev_drv_register(tp, dtp) - \u6ce8\u518c\u8f93\u5165\u8bbe\u5907\u9a71\u52a8\n\u4f20\u5165\u503c\uff1a\nstring \u8bbe\u5907\u7c7b\u578b\uff0c\u5f53\u524d\u652f\u6301\"pointer\",\u6307\u9488\u7c7b/\u89e6\u6478\u7c7b\u5747\u53ef\uff0c\"keyboard\",\u952e\u76d8\u7c7b\u578b\nstring \u8bbe\u5907\u578b\u53f7\uff0c\u5f53\u524d\u652f\u6301\"emulator\",\u6a21\u62df\u5668\u7c7b\u578b\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\nlvgl.indev_drv_register(\"pointer\", \"emulator\")\n", "prefix": "lvgl.indev_drv_register"}, "lvgl.indev_point_emulator_update": {"body": "lvgl.indev_point_emulator_update(${1:x},${2:y},${3:state})", "description": "lvgl.indev_point_emulator_update(x, y, state) - \u66f4\u65b0\u6a21\u62df\u8f93\u5165\u8bbe\u5907\u7684\u5750\u6807\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nint x\u5750\u6807,\u4ee5\u5de6\u4e0a\u89d2\u4e3a0,\u53f3\u4e0b\u89d2\u4e3a\u6700\u5927\u503c\nint y\u5750\u6807,\u4ee5\u5de6\u4e0a\u89d2\u4e3a0,\u53f3\u4e0b\u89d2\u4e3a\u6700\u5927\u503c\nint \u72b6\u6001, 0 \u4e3a \u91ca\u653e, 1 \u4e3a\u6309\u4e0b\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n-- \u6a21\u62df\u5728\u5c4f\u5e55\u4e0a\u7684\u70b9\u51fb,\u901a\u8fc7timeout\u6a21\u62df\u957f\u6309\u548c\u77ed\u6309\nsys.taskInit(function(x, y, timeout)\n lvgl.indev_point_emulator_update(x, y, 1)\n sys.wait(timeout)\n lvgl.indev_point_emulator_update(x, y, 0)\nend, 240, 120, 50)\n", "prefix": "lvgl.indev_point_emulator_update"}, "lvgl.indev_kb_update": {"body": "lvgl.indev_kb_update(${1:key})", "description": "lvgl.indev_kb_update(key) - \u66f4\u65b0\u952e\u76d8\u8f93\u5165\u8bbe\u5907\u7684\u6309\u952e\u503c\n\u4f20\u5165\u503c\uff1a\nint \u6309\u952e\u503c\uff0c\u9ed8\u8ba4\u4e3a0\uff0c\u6309\u952e\u62ac\u8d77\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n", "prefix": "lvgl.indev_kb_update"}, "lvgl.gif_create": {"body": "lvgl.gif_create(${1:parent},${2:path})", "description": "lvgl.gif_create(parent, path) - \u521b\u5efagif\u7ec4\u4ef6\n\u4f20\u5165\u503c\uff1a\nuserdata \u7236\u7ec4\u4ef6,\u53ef\u4ee5\u662fnil,\u4f46\u901a\u5e38\u4e0d\u4f1a\u662fnil\nstring \u6587\u4ef6\u8def\u5f84\n\u8fd4\u56de\u503c\uff1a\nuserdata \u7ec4\u4ef6\u6307\u9488,\u82e5\u5931\u8d25\u4f1a\u8fd4\u56denil,\u5efa\u8bae\u68c0\u67e5\n\u4f8b\u5b50\uff1a\nlocal gif = lvgl.gif_create(scr, \"S/emtry.gif\")\nif gif then\n log.info(\"gif\", \"create ok\")\nend\n\n", "prefix": "lvgl.gif_create"}, "lvgl.gif_restart": {"body": "lvgl.gif_restart(${1:gif})", "description": "lvgl.gif_restart(gif) - \u91cd\u65b0\u64ad\u653egif\u7ec4\u4ef6\n\u4f20\u5165\u503c\uff1a\nuserdata gif\u7ec4\u4ef6\u652f\u6301, \u7531gif_create\u65b9\u6cd5\u8fd4\u56de\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\nlocal gif = lvgl.gif_create(scr, \"S/emtry.gif\")\nif gif then\n log.info(\"gif\", \"create ok\")\nend\n\n", "prefix": "lvgl.gif_restart"}, "max30102.init": {"body": "max30102.init(${1:i2c_id},${2:int})", "description": "max30102.init(i2c_id,int) - \u521d\u59cb\u5316MAX30102\u4f20\u611f\u5668\n\u4f20\u5165\u503c\uff1a\nint \u4f20\u611f\u5668\u6240\u5728\u7684i2c\u603b\u7ebfid,\u9ed8\u8ba4\u4e3a0\nint int\u5f15\u811a\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue, \u5426\u5219\u8fd4\u56denil\u6216\u8005false\n\u4f8b\u5b50\uff1a\nif max30102.init(0,pin.PC05) then\n log.info(\"max30102\", \"init ok\")\nelse\n log.info(\"max30102\", \"init fail\")\nend\n", "prefix": "max30102.init"}, "max30102.get": {"body": "max30102.get()", "description": "max30102.get() - \u83b7\u53d6\u5fc3\u7387\u8840\u6c27(\u5927\u6982\u9700\u898110s\u65f6\u95f4\u6d4b\u91cf)\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue, \u5426\u5219\u8fd4\u56denil\u6216\u8005false\nnumber \u5fc3\u7387\nnumber \u8840\u6c27\n", "prefix": "max30102.get"}, "max30102.shutdown": {"body": "max30102.shutdown()", "description": "max30102.shutdown() - \u5173\u95edmax30102\n", "prefix": "max30102.shutdown"}, "mcu.setClk": {"body": "mcu.setClk(${1:mhz})", "description": "mcu.setClk(mhz) - \u8bbe\u7f6e\u4e3b\u9891,\u5355\u4f4dMHZ\n\u4f20\u5165\u503c\uff1a\nint \u4e3b\u9891,\u6839\u636e\u8bbe\u5907\u7684\u4e0d\u540c\u6709\u4e0d\u540c\u7684\u6709\u6548\u503c,\u8bf7\u67e5\u9605\u624b\u518c\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- \u8bf7\u6ce8\u610f,\u4e3b\u9891\u4e0e\u5916\u8bbe\u4e3b\u9891\u6709\u5173\u8054\u6027, \u4f8b\u5982\u4e3b\u98912M\u65f6SPI\u7684\u6700\u9ad8\u53ea\u80fd1M\n-- \u8bbe\u7f6e\u523080MHZ\nmcu.setClk(80)\nsys.wait(1000)\n-- \u8bbe\u7f6e\u5230240MHZ\nmcu.setClk(240)\nsys.wait(1000)\n-- \u8bbe\u7f6e\u52302MHZ\nmcu.setClk(2)\nsys.wait(1000)\n", "prefix": "mcu.setClk"}, "mcu.getClk": {"body": "mcu.getClk()", "description": "mcu.getClk() - \u83b7\u53d6\u4e3b\u9891,\u5355\u4f4dMHZ\n\u8fd4\u56de\u503c\uff1a\nint \u82e5\u5931\u8d25\u8fd4\u56de-1,\u5426\u5219\u8fd4\u56de\u4e3b\u9891\u6570\u503c,\u82e5\u7b49\u4e8e0,\u53ef\u80fd\u5904\u4e8e32k\u6676\u632f\u7684\u7701\u7535\u6a21\u5f0f\n\u4f8b\u5b50\uff1a\nlocal mhz = mcu.getClk()\nprint(\"Boom\", mhz)\n", "prefix": "mcu.getClk"}, "mcu.unique_id": {"body": "mcu.unique_id()", "description": "mcu.unique_id() - \u83b7\u53d6\u8bbe\u5907\u552f\u4e00id. \u6ce8\u610f,\u53ef\u80fd\u5305\u542b\u4e0d\u53ef\u89c1\u5b57\u7b26,\u5982\u9700\u67e5\u770b\u5efa\u8baetoHex()\u540e\u6253\u5370\n\u8fd4\u56de\u503c\uff1a\nstring \u8bbe\u5907\u552f\u4e00id.\u82e5\u4e0d\u652f\u6301, \u4f1a\u8fd4\u56de\u7a7a\u5b57\u7b26\u4e32.\n\u4f8b\u5b50\uff1a\nlocal unique_id = mcu.unique_id()\nprint(\"unique_id\", unique_id)\n", "prefix": "mcu.unique_id"}, "mcu.ticks": {"body": "mcu.ticks()", "description": "mcu.ticks() - \u83b7\u53d6\u542f\u52a8\u540e\u7684tick\u6570,\u6ce8\u610f\u4f1a\u51fa\u73b0\u6ea2\u51fa\u4f1a\u51fa\u73b0\u8d1f\u6570\n\u8fd4\u56de\u503c\uff1a\nint \u5f53\u524dtick\u503c\n\u4f8b\u5b50\uff1a\nlocal tick = mcu.ticks()\nprint(\"ticks\", tick)\n", "prefix": "mcu.ticks"}, "mcu.hz": {"body": "mcu.hz()", "description": "mcu.hz() - \u83b7\u53d6\u6bcf\u79d2\u7684tick\u6570\u91cf\n\u8fd4\u56de\u503c\uff1a\nint \u6bcf\u79d2\u7684tick\u6570\u91cf,\u901a\u5e38\u4e3a1000\n\u4f8b\u5b50\uff1a\nlocal hz = mcu.hz()\nprint(\"mcu.hz\", hz)\n", "prefix": "mcu.hz"}, "mcu.reg32": {"body": "mcu.reg32(${1:address},${2:value},${3:mask})", "description": "mcu.reg32(address, value, mask) - \u8bfb\u5199mcu\u768432bit\u5bc4\u5b58\u5668\u6216\u8005ram,\u8c28\u614e\u4f7f\u7528\u5199\u529f\u80fd,\u8bf7\u719f\u6089mcu\u7684\u5bc4\u5b58\u5668\u4f7f\u7528\u65b9\u6cd5\u540e\u518d\u4f7f\u7528\n\u4f20\u5165\u503c\uff1a\nint \u5bc4\u5b58\u5668\u6216\u8005ram\u5730\u5740\nint \u5199\u5165\u7684\u503c,\u5982\u679c\u6ca1\u6709,\u5219\u76f4\u63a5\u8fd4\u56de\u5f53\u524d\u503c\nint \u4f4d\u63a9\u7801,\u53ef\u4ee5\u5bf9\u7279\u5b9a\u51e0\u4e2a\u4f4d\u7f6e\u7684bit\u505a\u4fee\u6539, \u9ed8\u8ba40xffffffff,\u4fee\u6539\u5168\u90e832bit\n\u8fd4\u56de\u503c\uff1a\nint \u8fd4\u56de\u5f53\u524d\u5bc4\u5b58\u7684\u503c\n\u4f8b\u5b50\uff1a\nlocal value = mcu.reg32(0x2009FFFC, 0x01, 0x01) --\u5bf90x2009FFFC\u5730\u5740\u4e0a\u7684\u503c,\u4fee\u6539bit0\u4e3a1\n", "prefix": "mcu.reg32"}, "mcu.x32": {"body": "mcu.x32(${1:value})", "description": "mcu.x32(value) - \u8f6c\u636210\u8fdb\u5236\u6570\u4e3a16\u8fdb\u5236\u5b57\u7b26\u4e32\u8f93\u51fa\n\u4f20\u5165\u503c\uff1a\nint \u9700\u8981\u8f6c\u6362\u7684\u503c\n\u8fd4\u56de\u503c\uff1a\nstring 16\u8fdb\u5236\u5b57\u7b26\u4e32\n\u4f8b\u5b50\uff1a\nlocal value = mcu.x32(0x2009FFFC) --\u8f93\u51fa\"0x2009fffc\"\n", "prefix": "mcu.x32"}, "mcu.tick64": {"body": "mcu.tick64()", "description": "mcu.tick64() - \u83b7\u53d6\u542f\u52a8\u540e\u7684\u9ad8\u7cbe\u5ea6tick\uff0c\u5982\u679c\u652f\u6301bit64\u5e93\uff0c\u53ef\u4ee5\u76f4\u63a5\u8f93\u51fa\u8f6c\u6362\u597d\u7684bit64\u7ed3\u6784\n\u4f20\u5165\u503c\uff1a\nboolean \u662f\u5426\u8f93\u51fabit64\u7ed3\u6784,true\u662f,\u5176\u4ed6\u90fd\u662ffalse,\u7559\u7a7a\u4e5f\u662ffalse,\u7528\u4e8e\u517c\u5bb9\u65e7\u7684demo\n\u8fd4\u56de\u503c\uff1a\nstring \u5f53\u524dtick\u503c,8\u4e2a\u5b57\u8282\u7684uint64,\u5982\u679c\u652f\u630164bit\u5e93,\u540c\u65f6\u8981\u6c42\u8f93\u51fa64bit\u7ed3\u6784\u7684\u8bdd,\u4f1a\u8f93\u51fa9\u5b57\u8282\u7684string\nint 1us\u6709\u51e0\u4e2atick,0\u8868\u793a\u672a\u77e5\n\u4f8b\u5b50\uff1a\nlocal tick_str, tick_per = mcu.tick64()\nprint(\"ticks\", tick_str, tick_per)\n", "prefix": "mcu.tick64"}, "mcu.dtick64": {"body": "mcu.dtick64(${1:tick1},${2:tick2},${3:check_value})", "description": "mcu.dtick64(tick1, tick2, check_value) - \u8ba1\u7b972\u4e2a64bit tick\u7684\u5dee\u503c\n\u4f20\u5165\u503c\uff1a\nstring 64bit\u7684string\nstring 64bit\u7684string\nint \u53c2\u8003\u503c,\u53ef\u9009\u9879,\u5982\u679c\u4e3a0,\u5219\u8fd4\u56de\u7ed3\u679c\u4e2d\u7b2c\u4e00\u4e2a\u9879\u76ee\u4e3atrue\n\u8fd4\u56de\u503c\uff1a\nboolean \u4e0e\u53c2\u8003\u503c\u6bd4\u8f83,\u5982\u679c\u5927\u4e8e\u7b49\u4e8e\u4e3atrue,\u53cd\u4e4b\u4e3afalse\nint \u5dee\u503ctick1 - tick2,\u5982\u679c\u8d85\u8fc7\u4e860x7fffffff,\u7ed3\u679c\u53ef\u80fd\u662f\u9519\u7684\n\u4f8b\u5b50\uff1a\nlocal result, diff_tick = mcu.dtick64(tick1, tick2)\nprint(\"ticks\", result, diff_tick)\n", "prefix": "mcu.dtick64"}, "mcu.setXTAL": {"body": "mcu.setXTAL(${1:source_main},${2:source_32k},${3:delay})", "description": "mcu.setXTAL(source_main, source_32k, delay) - \u9009\u62e9\u65f6\u949f\u6e90,\u5f53\u524d\u4ec5air105\u652f\u6301\n\u4f20\u5165\u503c\uff1a\nboolean \u9ad8\u901f\u65f6\u949f\u662f\u5426\u4f7f\u7528\u5916\u90e8\u65f6\u949f\u6e90,\u5982\u679c\u4e3a\u7a7a\u5219\u4e0d\u6539\u53d8\nboolean \u4f4e\u901f32K\u662f\u5426\u4f7f\u7528\u5916\u90e8\u65f6\u949f\u6e90,\u5982\u679c\u4e3a\u7a7a\u5219\u4e0d\u6539\u53d8\nint PLL\u7a33\u5b9a\u65f6\u95f4,\u5728\u5207\u6362\u9ad8\u901f\u65f6\u949f\u7684\u65f6\u5019,\u6839\u636e\u786c\u4ef6\u73af\u5883,\u9700\u8981delay\u4e00\u6bb5\u65f6\u95f4\u7b49\u5f85PLL\u7a33\u5b9a,\u9ed8\u8ba4\u662f1200,\u5efa\u8bae\u4e0d\u5c0f\u4e8e1024\n\u4f8b\u5b50\uff1a\nmcu.setXTAL(true, true, 1248)\t--\u9ad8\u901f\u65f6\u949f\u4f7f\u7528\u5916\u90e8\u65f6\u949f,\u4f4e\u901f32K\u4f7f\u7528\u5916\u90e8\u6676\u632f, delay1248\n", "prefix": "mcu.setXTAL"}, "mcu.hardfault": {"body": "mcu.hardfault(${1:mode})", "description": "mcu.hardfault(mode) - mcu\u6b7b\u673a\u65f6\u5904\u7406\u6a21\u5f0f\uff0c\u76ee\u524d\u53ea\u6709EC618\u5e73\u53f0\u9002\u7528\n\u4f20\u5165\u503c\uff1a\nint \u5904\u7406\u6a21\u5f0f\uff0c0\u6b7b\u673a\u505c\u673a\uff0c1\u6b7b\u673a\u540e\u91cd\u542f\uff0c2\u6b7b\u673a\u540e\u5c3d\u91cf\u5c06\u9519\u8bef\u4fe1\u606f\u63d0\u4ea4\u7ed9\u5916\u90e8\u5de5\u5177\u540e\u91cd\u542f\n\u4f8b\u5b50\uff1a\nmcu.hardfault(0)\t--\u6b7b\u673a\u540e\u505c\u673a\uff0c\u4e00\u822c\u7528\u4e8e\u8c03\u8bd5\u72b6\u6001\nmcu.hardfault(1)\t--\u6b7b\u673a\u540e\u91cd\u542f\uff0c\u4e00\u822c\u7528\u4e8e\u6b63\u5f0f\u4ea7\u54c1\nmcu.hardfault(2)\t--\u6b7b\u673a\u540e\u5c3d\u91cf\u5c06\u9519\u8bef\u4fe1\u606f\u63d0\u4ea4\u7ed9\u5916\u90e8\u5de5\u5177\u540e\u91cd\u542f\uff0c\u4e00\u822c\u7528\u4e8e\u538b\u529b\u6d4b\u8bd5\u6216\u8005\u6b63\u5f0f\u4ea7\u54c1\n", "prefix": "mcu.hardfault"}, "mcu.iomux": {"body": "mcu.iomux(${1:type},${2:channel},${3:value})", "description": "mcu.iomux(type, channel, value) - \u5728\u5916\u8bbe\u6253\u5f00\u524d\uff0c\u5c06\u5916\u8bbeIO\u590d\u7528\u5230\u975e\u9ed8\u8ba4\u914d\u7f6e\u4e0a\uff0c\u76ee\u524d\u53ea\u652f\u6301Air780E\u7684\u90e8\u5206\u5916\u8bbe\u590d\u7528\u5230\u5176\u4ed6\u914d\u7f6e\uff0c\u8fd9\u662f\u4e00\u4e2a\u4e34\u65f6\u63a5\u53e3\uff0c\u5982\u679c\u540e\u7eed\u6709\u66f4\u5408\u9002\u7684api\uff0c\u672c\u63a5\u53e3\u5c06\u4e0d\u518d\u66f4\u65b0\n\u4f20\u5165\u503c\uff1a\nint \u5916\u8bbe\u7c7b\u578b\uff0c\u76ee\u524d\u53ea\u6709mcu.UART,mcu.I2C\nint \u603b\u7ebf\u5e8f\u53f7\uff0c0~N\uff0c\nint \u65b0\u7684\u914d\u7f6e\uff0c\u8fd9\u4e2a\u9700\u8981\u6839\u636e\u5177\u4f53\u5e73\u53f0\u51b3\u5b9a\n\u4f8b\u5b50\uff1a\nmcu.iomux(mcu.UART, 2, 1)\t-- Air780E\u7684UART2\u590d\u7528\u5230gpio12\u548cgpio13(Air780EG\u9ed8\u8ba4\u662f\u8fd9\u4e2a\u590d\u7528\uff0c\u4e0d\u8981\u52a8)\nmcu.iomux(mcu.UART, 2, 2)\t-- Air780E\u7684UART2\u590d\u7528\u5230gpio6\u548cgpio7\nmcu.iomux(mcu.I2C, 0, 1)\t-- Air780E\u7684I2C0\u590d\u7528\u5230gpio12\u548cgpio13\nmcu.iomux(mcu.I2C, 0, 2)\t-- Air780E\u7684I2C0\u590d\u7528\u5230gpio16\u548cgpio17\nmcu.iomux(mcu.I2C, 1, 1)\t-- Air780E\u7684I2C1\u590d\u7528\u5230gpio4\u548cgpio5\n", "prefix": "mcu.iomux"}, "mcu.altfun": {"body": "mcu.altfun(${1:type},${2:sn},${3:pad_index},${4:alt_fun},${5:is_input})", "description": "mcu.altfun(type, sn, pad_index, alt_fun, is_input) - IO\u5916\u8bbe\u529f\u80fd\u590d\u7528\u9009\u62e9\uff0c\u6ce8\u610f\u666e\u901aMCU\u662f\u4ee5GPIO\u53f7\u4e3a\u5e8f\u53f7\uff0c\u4f46\u662f\u4e13\u7528SOC\uff0c\u6bd4\u5982CAT1\u7684\uff0c\u662f\u4ee5PAD\u53f7\u4e3a\u5e8f\u53f7\u3002\u672c\u51fd\u6570\u4e0d\u662f\u6240\u6709\u5e73\u53f0\u9002\u7528\n\u4f20\u5165\u503c\uff1a\nint \u5916\u8bbe\u7c7b\u578b\uff0c\u76ee\u524d\u6709mcu.UART,mcu.I2C,mcu.SPI,mcu.PWM,mcu.GPIO,mcu.I2S,mcu.LCD,mcu.CAM\uff0c\u5177\u4f53\u9700\u8981\u770b\u5e73\u53f0\nint \u603b\u7ebf\u5e8f\u53f7\uff0c0~N\uff0c\u5982\u679c\u662fmcu.GPIO\uff0c\u5219\u662fGPIO\u53f7\u3002\u5177\u4f53\u770b\u5e73\u53f0\u7684IOMUX\u590d\u7528\u8868\nint pad\u53f7\uff0c\u5982\u679c\u7559\u7a7a\u4e0d\u5199\uff0c\u5219\u8868\u793a\u6e05\u9664\u914d\u7f6e\uff0c\u4f7f\u7528\u5e73\u53f0\u7684\u9ed8\u8ba4\u914d\u7f6e\u3002\u5177\u4f53\u770b\u5e73\u53f0\u7684IOMUX\u590d\u7528\u8868\nint \u590d\u7528\u529f\u80fd\u5e8f\u53f7\uff0c0~N\u3002\u5177\u4f53\u770b\u5e73\u53f0\u7684IOMUX\u590d\u7528\u8868\nboolean \u662f\u5426\u662f\u8f93\u5165\u529f\u80fd\uff0ctrue\u662f\uff0c\u7559\u7a7a\u662ffalse\n\u4f8b\u5b50\uff1a\nmcu.altfun(mcu.GPIO, 46, 32, 1, 0)\nmcu.altfun(mcu.GPIO, 46)\n", "prefix": "mcu.altfun"}, "miniz.compress": {"body": "miniz.compress(${1:data},${2:flags})", "description": "miniz.compress(data, flags) - \u5feb\u901f\u538b\u7f29,\u9700\u8981165kb\u7684\u7cfb\u7edf\u5185\u5b58\u548c32kb\u7684LuaVM\u5185\u5b58\n\u4f20\u5165\u503c\uff1a\nstring \u5f85\u538b\u7f29\u7684\u6570\u636e, \u5c11\u4e8e400\u5b57\u8282\u7684\u6570\u636e\u4e0d\u5efa\u8bae\u538b\u7f29, \u4e14\u538b\u7f29\u540e\u7684\u6570\u636e\u4e0d\u80fd\u5927\u4e8e32k.\nflags \u538b\u7f29\u53c2\u6570,\u9ed8\u8ba4\u662f miniz.WRITE_ZLIB_HEADER , \u5373\u5199\u5165zlib\u5934\u90e8\n\u8fd4\u56de\u503c\uff1a\nstring \u82e5\u538b\u7f29\u6210\u529f,\u8fd4\u56de\u6570\u636e\u5b57\u7b26\u4e32, \u5426\u5219\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\n\nlocal bigdata = \"123jfoiq4hlkfjbnasdilfhuqwo;hfashfp9qw38hrfaios;hfiuoaghfluaeisw\"\nlocal cdata = miniz.compress(bigdata)\nif cdata then\n log.info(\"miniz\", \"before\", #bigdata, \"after\", #cdata)\n log.info(\"miniz\", \"cdata as hex\", cdata:toHex())\nend\n\n", "prefix": "miniz.compress"}, "miniz.uncompress": {"body": "miniz.uncompress(${1:data},${2:flags})", "description": "miniz.uncompress(data, flags) - \u5feb\u901f\u89e3\u538b,\u9700\u898132kb\u7684LuaVM\u5185\u5b58\n\u4f20\u5165\u503c\uff1a\nstring \u5f85\u89e3\u538b\u7684\u6570\u636e, \u89e3\u538b\u540e\u7684\u6570\u636e\u4e0d\u80fd\u5927\u4e8e32k\nflags \u89e3\u538b\u53c2\u6570,\u9ed8\u8ba4\u662f miniz.PARSE_ZLIB_HEADER , \u5373\u89e3\u6790zlib\u5934\u90e8\n\u8fd4\u56de\u503c\uff1a\nstring \u82e5\u89e3\u538b\u6210\u529f,\u8fd4\u56de\u6570\u636e\u5b57\u7b26\u4e32, \u5426\u5219\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\n\nlocal bigdata = \"123jfoiq4hlkfjbnasdilfhuqwo;hfashfp9qw38hrfaios;hfiuoaghfluaeisw\"\nlocal cdata = miniz.compress(bigdata)\nif cdata then\n log.info(\"miniz\", \"before\", #bigdata, \"after\", #cdata)\n log.info(\"miniz\", \"cdata as hex\", cdata:toHex())\n\n local udata = miniz.uncompress(cdata)\n log.info(\"miniz\", \"udata\", udata)\nend\n", "prefix": "miniz.uncompress"}, "mlx90640.init": {"body": "mlx90640.init(${1:i2c_id},${2:refresh_rate)(\u6ce8\u610f:2023.5.15\u4e4b\u540e\u4f7f\u7528\u6b64\u63a5\u53e3},${3:\u7528\u6237\u9700\u8981\u81ea\u884c\u521d\u59cb\u5316i2c\u63a5\u53e3})", "description": "mlx90640.init(i2c_id,refresh_rate) (\u6ce8\u610f:2023.5.15\u4e4b\u540e\u4f7f\u7528\u6b64\u63a5\u53e3,\u7528\u6237\u9700\u8981\u81ea\u884c\u521d\u59cb\u5316i2c\u63a5\u53e3) - \u521d\u59cb\u5316MLX90640\u4f20\u611f\u5668\n\u4f20\u5165\u503c\uff1a\nint \u4f20\u611f\u5668\u6240\u5728\u7684i2c\u603b\u7ebfid\u6216\u8005\u8f6fi2c\u5bf9\u8c61,\u9ed8\u8ba4\u4e3a0\nint \u4f20\u611f\u5668\u7684\u6d4b\u91cf\u901f\u7387,\u9ed8\u8ba4\u4e3a4Hz\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue, \u5426\u5219\u8fd4\u56denil\u6216\u8005false\n\u4f8b\u5b50\uff1a\ni2c.setup(i2cid,i2c_speed)\nif mlx90640.init(0,mlx90640.FPS4HZ) then\n log.info(\"mlx90640\", \"init ok\")\n sys.wait(500) -- \u7a0d\u7b49\u7247\u523b\n while 1 do\n mlx90640.feed() -- \u53d6\u4e00\u5e27\u6570\u636e\n mlx90640.draw2lcd(0, 0 ,1)-- \u9700\u63d0\u524d\u628alcd\u521d\u59cb\u5316\u597d\n sys.wait(250) -- \u9ed8\u8ba4\u662f4HZ\n end\nelse\n log.info(\"mlx90640\", \"init fail\")\nend\n\n", "prefix": "mlx90640.init"}, "mlx90640.feed": {"body": "mlx90640.feed()", "description": "mlx90640.feed() - \u53d6\u4e00\u5e27\u6570\u636e\n", "prefix": "mlx90640.feed"}, "mlx90640.raw_data": {"body": "mlx90640.raw_data()", "description": "mlx90640.raw_data() - \u83b7\u53d6\u5e95\u5c42\u88f8\u6570\u636e,\u6d6e\u70b9\u6570\u77e9\u9635\n\u8fd4\u56de\u503c\uff1a\ntable \u6d6e\u70b9\u6570\u6570\u636e,768\u4e2a\u50cf\u7d20\u5bf9\u5e94\u7684\u6e29\u5ea6\u503c\n", "prefix": "mlx90640.raw_data"}, "mlx90640.raw_point": {"body": "mlx90640.raw_point(${1:index})", "description": "mlx90640.raw_point(index) - \u83b7\u53d6\u5355\u4e00\u70b9\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nint \u7d22\u5f15\u503c(0-767)\n\u8fd4\u56de\u503c\uff1a\nnumber \u5355\u70b9\u6e29\u5ea6\u503c\n", "prefix": "mlx90640.raw_point"}, "mlx90640.ta_temp": {"body": "mlx90640.ta_temp()", "description": "mlx90640.ta_temp() - \u83b7\u53d6\u5916\u58f3\u6e29\u5ea6\n\u8fd4\u56de\u503c\uff1a\nnumber \u5916\u58f3\u6e29\u5ea6\n", "prefix": "mlx90640.ta_temp"}, "mlx90640.max_temp": {"body": "mlx90640.max_temp()", "description": "mlx90640.max_temp() - \u83b7\u53d6\u6700\u9ad8\u6e29\u5ea6\n\u8fd4\u56de\u503c\uff1a\nnumber \u6700\u9ad8\u6e29\u5ea6\nnumber \u6700\u9ad8\u6e29\u5ea6\u4f4d\u7f6e\n", "prefix": "mlx90640.max_temp"}, "mlx90640.min_temp": {"body": "mlx90640.min_temp()", "description": "mlx90640.min_temp() - \u83b7\u53d6\u6700\u4f4e\u6e29\u5ea6\n\u8fd4\u56de\u503c\uff1a\nnumber \u6700\u4f4e\u6e29\u5ea6\nnumber \u6700\u4f4e\u6e29\u5ea6\u4f4d\u7f6e\n", "prefix": "mlx90640.min_temp"}, "mlx90640.average_temp": {"body": "mlx90640.average_temp()", "description": "mlx90640.average_temp() - \u83b7\u53d6\u5e73\u5747\u6e29\u5ea6\n\u8fd4\u56de\u503c\uff1a\nnumber \u5e73\u5747\u6e29\u5ea6\n", "prefix": "mlx90640.average_temp"}, "mlx90640.get_vdd": {"body": "mlx90640.get_vdd()", "description": "mlx90640.get_vdd() - \u83b7\u53d6vdd\n\u8fd4\u56de\u503c\uff1a\nnumber vdd\n", "prefix": "mlx90640.get_vdd"}, "mlx90640.draw2lcd": {"body": "mlx90640.draw2lcd(${1:x},${2:y},${3:fold})", "description": "mlx90640.draw2lcd(x, y, fold) - \u7ed8\u5236\u5230lcd\n\u4f20\u5165\u503c\uff1a\nint \u5de6\u4e0a\u89d2x\u5750\u6807\nint \u5de6\u4e0a\u89d2y\u5750\u6807\nint \u653e\u5927\u500d\u6570,\u5fc5\u987b\u4e3a2\u7684\u6307\u6570\u500d(1,2,4,8,16...)\u9ed8\u8ba4\u4e3a1\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n", "prefix": "mlx90640.draw2lcd"}, "mobile.imei": {"body": "mobile.imei(${1:index})", "description": "mobile.imei(index) - \u83b7\u53d6IMEI\n\u4f20\u5165\u503c\uff1a\nint \u7f16\u53f7,\u9ed8\u8ba40. \u5728\u652f\u6301\u53cc\u5361\u7684\u6a21\u5757\u4e0a\u624d\u4f1a\u51fa\u73b00\u62161\u7684\u60c5\u51b5\n\u8fd4\u56de\u503c\uff1a\nstring \u5f53\u524d\u7684IMEI\u503c,\u82e5\u5931\u8d25\u8fd4\u56denil\n", "prefix": "mobile.imei"}, "mobile.imsi": {"body": "mobile.imsi(${1:index})", "description": "mobile.imsi(index) - \u83b7\u53d6IMSI\n\u4f20\u5165\u503c\uff1a\nint \u7f16\u53f7,\u9ed8\u8ba40. \u5728\u652f\u6301\u53cc\u5361\u7684\u6a21\u5757\u4e0a\u624d\u4f1a\u51fa\u73b00\u62161\u7684\u60c5\u51b5\n\u8fd4\u56de\u503c\uff1a\nstring \u5f53\u524d\u7684IMSI\u503c,\u82e5\u5931\u8d25\u8fd4\u56denil\n", "prefix": "mobile.imsi"}, "mobile.sn": {"body": "mobile.sn()", "description": "mobile.sn() - \u83b7\u53d6SN\n\u8fd4\u56de\u503c\uff1a\nstring \u5f53\u524d\u7684SN\u503c,\u82e5\u5931\u8d25\u8fd4\u56denil. \u6ce8\u610f, SN\u53ef\u80fd\u5305\u542b\u4e0d\u53ef\u89c1\u5b57\u7b26\n\u4f8b\u5b50\uff1a\n-- \u6ce8\u610f, \u51fa\u5382\u672a\u5fc5\u6709\u5199SN\n-- \u4e00\u822c\u7528\u9014\u7684\u552f\u4e00id, \u53ef\u4ee5\u7528mobile.imei()\u4ee3\u66ff\n-- \u5982\u9700\u8981\u771f\u6b63\u7684\u552f\u4e00ID, \u4f7f\u7528 mcu.unique_id()\n", "prefix": "mobile.sn"}, "mobile.muid": {"body": "mobile.muid()", "description": "mobile.muid() - \u83b7\u53d6MUID\n\u8fd4\u56de\u503c\uff1a\nstring \u5f53\u524d\u7684MUID\u503c,\u82e5\u5931\u8d25\u8fd4\u56denil\n", "prefix": "mobile.muid"}, "mobile.iccid": {"body": "mobile.iccid(${1:id})", "description": "mobile.iccid(id) - \u83b7\u53d6\u6216\u8bbe\u7f6eICCID\n\u4f20\u5165\u503c\uff1a\nint SIM\u5361\u7684\u7f16\u53f7, \u4f8b\u59820, 1, \u9ed8\u8ba40\n\u8fd4\u56de\u503c\uff1a\nstring ICCID\u503c,\u82e5\u5931\u8d25\u8fd4\u56denil\n", "prefix": "mobile.iccid"}, "mobile.number": {"body": "mobile.number(${1:id})", "description": "mobile.number(id) - \u83b7\u53d6\u624b\u673a\u5361\u53f7\uff0c\u6ce8\u610f\uff0c\u53ea\u6709\u5199\u5165\u4e86\u624b\u673a\u53f7\u624d\u80fd\u8bfb\u51fa\uff0c\u56e0\u6b64\u6709\u53ef\u80fd\u8bfb\u51fa\u6765\u662f\u7a7a\u7684\n\u4f20\u5165\u503c\uff1a\nint SIM\u5361\u7684\u7f16\u53f7, \u4f8b\u59820, 1, \u9ed8\u8ba40\n\u8fd4\u56de\u503c\uff1a\nstring number\u503c,\u82e5\u5931\u8d25\u8fd4\u56denil\n", "prefix": "mobile.number"}, "mobile.simid": {"body": "mobile.simid(${1:id})", "description": "mobile.simid(id) - \u83b7\u53d6\u5f53\u524dSIM\u5361\u69fd,\u6216\u8005\u5207\u6362\u5361\u69fd\n\u4f20\u5165\u503c\uff1a\nint SIM\u5361\u7684\u7f16\u53f7, \u4f8b\u59820, 1, \u5982\u679c\u652f\u6301\u53cc\u5361\uff0c\u6bd4\u5982EC618\uff0c\u53ef\u4ee5\u586b2\u6765\u81ea\u9002\u5e94\uff0c\u4f46\u662f\u4f1a\u5360\u7528\u63894\u4e2aIO(gpio4/5/6/23)\u3002\u5982\u679c\u4e0d\u586b\u5c31\u76f4\u63a5\u8bfb\u53d6\u5f53\u524d\u5361\u69fd\nboolean \u662f\u5426\u4f18\u5148\u7528SIM0\uff0c\u53ea\u6709SIM\u5361\u7f16\u53f7\u51992\u81ea\u9002\u5e94\u624d\u6709\u7528\uff01\uff01\uff01\u3002true\u4f18\u5148\u7528SIM0\uff0cfalse\u5219\u7531\u5177\u4f53\u5e73\u53f0\u51b3\u5b9a\uff0c\u652f\u6301\u53cc\u5361\u53cc\u5f85SIM0\u4f18\u5148\uff0c\u4e0d\u652f\u6301\u7684\u662f\u4e0a\u4e00\u6b21\u68c0\u6d4b\u5230\u7684\u4f18\u5148\uff0c\u9ed8\u8ba4\u662ffalse\uff0c\u5fc5\u987b\u5728\u5f00\u673a\u5c31\u914d\u7f6e\uff0c\u5426\u5219\u5c31\u65e0\u6548\u4e86\n\u8fd4\u56de\u503c\uff1a\nint \u5f53\u524dsim\u5361\u69fd\u7f16\u53f7,\u82e5\u5931\u8d25\u8fd4\u56de-1\n\u4f8b\u5b50\uff1a\nmobile.simid(0) -- \u56fa\u5b9a\u4f7f\u7528SIM0\nmobile.simid(1) -- \u56fa\u4ef6\u4f7f\u7528SIM1\nmobile.simid(2) -- \u81ea\u52a8\u8bc6\u522bSIM0, SIM1, \u4f18\u5148\u7ea7\u770b\u5177\u4f53\u5e73\u53f0\nmobile.simid(2, true) -- -- \u81ea\u52a8\u8bc6\u522bSIM0, SIM1, \u4e14SIM0\u4f18\u5148\n-- \u63d0\u9192, \u81ea\u52a8\u8bc6\u522b\u662f\u4f1a\u589e\u52a0\u65f6\u95f4\u7684\n", "prefix": "mobile.simid"}, "mobile.simPin": {"body": "mobile.simPin(${1:id},${2:operation},${3:pin1},${4:pin2})", "description": "mobile.simPin(id,operation,pin1,pin2) - \u68c0\u6d4b\u5f53\u524dSIM\u5361\u662f\u5426\u51c6\u5907\u597d\uff0c\u5bf9SIM\u5361\u7684PIN\u7801\u505a\u76f8\u5173\u64cd\u4f5c\n\u4f20\u5165\u503c\uff1a\nint SIM\u5361\u7684\u7f16\u53f7, \u4f8b\u59820, 1, \u652f\u6301\u53cc\u5361\u53cc\u5f85\u7684\u624d\u9700\u8981\u9009\u62e9\nint PIN\u7801\u64cd\u4f5c\u7c7b\u578b\uff0c\u53ea\u80fd\u662fmobile.PIN_XXXX\uff0c\u4e0d\u64cd\u4f5c\u5c31\u7559\u7a7a\nstring \u66f4\u6362pin\u65f6\u64cd\u4f5c\u7684pin\u7801\uff0c\u6216\u8005\u9a8c\u8bc1\u64cd\u4f5c\u7684pin\u7801\uff0c\u6216\u8005\u89e3\u9501pin\u7801\u65f6\u7684PUK\uff0c4~8\u5b57\u8282\nstring \u66f4\u6362pin\u7801\u64cd\u4f5c\u65f6\u7684\u65b0\u7684pin\u7801\uff0c\u89e3\u9501pin\u7801\u65f6\u7684\u65b0PIN\uff0c4~8\u5b57\u8282\n\u8fd4\u56de\u503c\uff1a\nboolean \u5f53\u65e0PIN\u64cd\u4f5c\u65f6\uff0c\u8fd4\u56deSIM\u5361\u662f\u5426\u51c6\u5907\u597d\uff0c\u6709PIN\u64cd\u4f5c\u65f6\uff0c\u8fd4\u56de\u662f\u5426\u6210\u529f\n\u4f8b\u5b50\uff1a\nlocal cpin_is_ready = mobile.simPin() -- \u5f53\u524dsim\u5361\u662f\u5426\u51c6\u5907\u597d\uff0c\u4e00\u822c\u8fd4\u56defalse\u5c31\u662f\u6ca1\u5361\nlocal succ = mobile.simPin(0, mobile.PIN_VERIFY, \"1234\")\t-- \u8f93\u5165pin\u7801\u9a8c\u8bc1\n", "prefix": "mobile.simPin"}, "mobile.rtime": {"body": "mobile.rtime(${1:time},${2:auto_reset_stack})", "description": "mobile.rtime(time, auto_reset_stack) - \u8bbe\u7f6eRRC\u81ea\u52a8\u91ca\u653e\u65f6\u95f4\u95f4\u9694\uff0c\u5f53\u5f00\u542f\u65f6\u540e\uff0c\u9047\u5230\u6781\u5f31\u4fe1\u53f7+\u9891\u7e41\u6570\u636e\u64cd\u4f5c\u53ef\u80fd\u4f1a\u5f15\u8d77\u7f51\u7edc\u4e25\u91cd\u6545\u969c\uff0c\u56e0\u6b64\u9700\u8981\u989d\u5916\u8bbe\u7f6e\u81ea\u52a8\u91cd\u542f\u534f\u8bae\u6808\n\u4f20\u5165\u503c\uff1a\nint RRC\u81ea\u52a8\u91ca\u653e\u65f6\u95f4\uff0c\u7b49\u540c\u4e8eAir724\u7684AT+RTIME\uff0c\u5355\u4f4d\u79d2\uff0c\u51990\u6216\u8005\u4e0d\u5199\u5219\u662f\u505c\u7528\uff0c\u4e0d\u8981\u8d85\u8fc720\u79d2\uff0c\u6ca1\u6709\u610f\u4e49\nboolean \u7f51\u7edc\u9047\u5230\u4e25\u91cd\u6545\u969c\u65f6\u5c1d\u8bd5\u81ea\u52a8\u6062\u590d\uff0c\u548c\u98de\u884c\u6a21\u5f0f/SIM\u5361\u5207\u6362\u51b2\u7a81\uff0ctrue\u5f00\u542f\uff0cfalse\u5173\u95ed\uff0c\u7559\u7a7a\u65f6\uff0c\u5982\u679c\u8bbe\u7f6e\u4e86\u65f6\u95f4\u5219\u81ea\u52a8\u5f00\u542f\u3002\u539f\u5382\u4f18\u5316\u8fc7\u534f\u8bae\u6808\u540e\u4e0d\u9700\u8981\u4e86\u3002\u672c\u53c2\u6570\u5e9f\u5f03\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n", "prefix": "mobile.rtime"}, "mobile.setAuto": {"body": "mobile.setAuto(${1:check_sim_period},${2:get_cell_period},${3:search_cell_time},${4:auto_reset_stack},${5:network_check_period})", "description": "mobile.setAuto(check_sim_period, get_cell_period, search_cell_time, auto_reset_stack, network_check_period) - \u8bbe\u7f6e\u4e00\u4e9b\u8f85\u52a9\u5468\u671f\u6027\u6216\u8005\u81ea\u52a8\u529f\u80fd\uff0c\u76ee\u524d\u652f\u6301SIM\u5361\u6682\u65f6\u8131\u79bb\u540e\u6062\u590d\uff0c\u5468\u671f\u6027\u83b7\u53d6\u5c0f\u533a\u4fe1\u606f\uff0c\u7f51\u7edc\u9047\u5230\u4e25\u91cd\u6545\u969c\u65f6\u5c1d\u8bd5\u81ea\u52a8\u6062\u590d\n\u4f20\u5165\u503c\uff1a\nint SIM\u5361\u81ea\u52a8\u6062\u590d\u65f6\u95f4\uff0c\u5355\u4f4d\u6beb\u79d2\uff0c\u5efa\u8bae5000~10000\uff0c\u548c\u98de\u884c\u6a21\u5f0f/SIM\u5361\u5207\u6362\u51b2\u7a81\uff0c\u4e0d\u80fd\u518d\u540c\u4e00\u65f6\u95f4\u4f7f\u7528\uff0c\u5fc5\u987b\u9519\u5f00\u6267\u884c\u3002\u51990\u6216\u8005\u4e0d\u5199\u5219\u662f\u5173\u95ed\u529f\u80fd\nint \u5468\u671f\u6027\u83b7\u53d6\u5c0f\u533a\u4fe1\u606f\u7684\u65f6\u95f4\u95f4\u9694\uff0c\u5355\u4f4d\u6beb\u79d2\u3002\u83b7\u53d6\u5c0f\u533a\u4fe1\u606f\u4f1a\u589e\u52a0\u90e8\u5206\u529f\u8017\u3002\u51990\u6216\u8005\u4e0d\u5199\u5219\u662f\u5173\u95ed\u529f\u80fd\nint \u6bcf\u6b21\u641c\u7d22\u5c0f\u533a\u65f6\u6700\u5927\u641c\u7d22\u65f6\u95f4\uff0c\u5355\u4f4d\u79d2\u3002\u4e0d\u8981\u8d85\u8fc78\u79d2\nboolean \u7f51\u7edc\u9047\u5230\u4e25\u91cd\u6545\u969c\u65f6\u5c1d\u8bd5\u81ea\u52a8\u6062\u590d\uff0c\u548c\u98de\u884c\u6a21\u5f0f/SIM\u5361\u5207\u6362\u51b2\u7a81\uff0ctrue\u5f00\u542f\uff0cfalse\u5173\u95ed\uff0c\u5f00\u59cb\u72b6\u6001\u662ffalse\uff0c\u7559\u7a7a\u5219\u4e0d\u505a\u6539\u53d8\nint \u8bbe\u7f6e\u5b9a\u65f6\u68c0\u6d4b\u7f51\u7edc\u662f\u5426\u6b63\u5e38\u5e76\u4e14\u5728\u68c0\u6d4b\u5230\u957f\u65f6\u95f4\u65e0\u7f51\u65f6\u901a\u8fc7\u91cd\u542f\u534f\u8bae\u6808\u6765\u6062\u590d\uff0c\u65e0\u7f51\u6062\u590d\u65f6\u957f\uff0c\u5355\u4f4dms\uff0c\u5efa\u8bae60000\u4ee5\u4e0a\uff0c\u4e3a\u7f51\u7edc\u641c\u7d22\u7f51\u7edc\u4fdd\u7559\u8db3\u591f\u7684\u65f6\u95f4\uff0c\u7559\u7a7a\u5219\u4e0d\u505a\u66f4\u6539\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n", "prefix": "mobile.setAuto"}, "mobile.apn": {"body": "mobile.apn(${1:index},${2:cid},${3:new_apn_name},${4:user_name},${5:password},${6:ip_type},${7:protocol})", "description": "mobile.apn(index, cid, new_apn_name, user_name, password, ip_type, protocol) - \u83b7\u53d6\u6216\u8bbe\u7f6eAPN\uff0c\u8bbe\u7f6eAPN\u5fc5\u987b\u5728\u5165\u7f51\u524d\u5c31\u8bbe\u7f6e\u597d\uff0c\u6bd4\u5982\u5728SIM\u5361\u8bc6\u522b\u5b8c\u6210\u524d\u5c31\u8bbe\u7f6e\u597d\n\u4f20\u5165\u503c\uff1a\nint \u7f16\u53f7,\u9ed8\u8ba40. \u5728\u652f\u6301\u53cc\u5361\u7684\u6a21\u5757\u4e0a\u624d\u4f1a\u51fa\u73b00\u62161\u7684\u60c5\u51b5\nint cid, \u9ed8\u8ba40\uff0c\u5982\u679c\u8981\u7528\u975e\u9ed8\u8ba4APN\u6765\u6fc0\u6d3b\uff0c\u5fc5\u987b>0\nstring \u65b0\u7684APN,\u4e0d\u586b\u5c31\u662f\u83b7\u53d6APN, \u586b\u4e86\u5c31\u662f\u8bbe\u7f6eAPN, \u662f\u5426\u652f\u6301\u8bbe\u7f6e\u53d6\u51b3\u4e8e\u5e95\u5c42\u5b9e\u73b0\nstring \u65b0\u7684APN\u7684username,\u5982\u679cAPN\u4e0d\u662f\u7a7a,\u90a3\u5fc5\u987b\u586b\u5199,\u5982\u679c\u6ca1\u6709\u7559\u4e2a\u7a7a\u5b57\u7b26\u4e32\"\"\u3002\u5982\u679cAPN\u662f\u7a7a\u7684\uff0c\u90a3\u53ef\u4ee5nil\nstring \u65b0\u7684APN\u7684password,\u5982\u679cAPN\u4e0d\u662f\u7a7a,\u90a3\u5fc5\u987b\u586b\u5199,\u5982\u679c\u6ca1\u6709\u7559\u4e2a\u7a7a\u5b57\u7b26\u4e32\"\"\u3002\u5982\u679cAPN\u662f\u7a7a\u7684\uff0c\u90a3\u53ef\u4ee5nil\nint \u6fc0\u6d3bAPN\u65f6\u7684IP TYPE,1=IPV4 2=IPV6 3=IPV4V6,\u9ed8\u8ba4\u662f1\nint \u6fc0\u6d3bAPN\u65f6,\u5982\u679c\u9700\u8981username\u548cpassword,\u5c31\u8981\u5199\u9274\u6743\u534f\u8bae\u7c7b\u578b,1~3,\u9ed8\u8ba43,\u4ee3\u88681\u548c2\u90fd\u5c1d\u8bd5\u4e00\u4e0b\u3002\u4e0d\u9700\u8981\u9274\u6743\u7684\u51990\nboolean \u662f\u5426\u5220\u9664APN,true\u662f,\u5176\u4ed6\u90fd\u5426,\u53ea\u6709\u53c2\u65703\u65b0\u7684APN\u4e0d\u662fstring\u7684\u65f6\u5019\u624d\u6709\u6548\u679c\n\u8fd4\u56de\u503c\uff1a\nstring \u83b7\u53d6\u5230\u7684\u9ed8\u8ba4APN\u503c,\u5931\u8d25\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\nmobile.apn(0,1,\"cmiot\",\"\",\"\",nil,0) -- \u79fb\u52a8\u516c\u7f51\u5361\u8bbe\u7f6eAPN\u4e3acmiot,\u4e00\u822c\u4e0d\u7528\u8bbe\u7f6e\nmobile.apn(0,1,\"name\",\"user\",\"password\",nil,3) -- \u4e13\u7f51\u5361\u8bbe\u7f6e\u7684demo\uff0cname\uff0cuser\uff0cpassword\u8054\u7cfb\u5361\u5546\u83b7\u53d6\n", "prefix": "mobile.apn"}, "mobile.ipv6": {"body": "mobile.ipv6(${1:onff})", "description": "mobile.ipv6(onff) - \u662f\u5426\u9ed8\u8ba4\u5f00\u542fIPV6\u529f\u80fd\uff0c\u5fc5\u987b\u5728LTE\u7f51\u7edc\u8fde\u63a5\u524d\u5c31\u8bbe\u7f6e\u597d\n\u4f20\u5165\u503c\uff1a\nboolean \u5f00\u5173 true\u5f00\u542f false \u5173\u95ed\n\u8fd4\u56de\u503c\uff1a\nboolean true \u5f53\u524d\u662f\u5f00\u542f\u7684\uff0cfalse \u5f53\u524d\u662f\u5173\u95ed\u7684\n\u4f8b\u5b50\uff1a\n-- \u6ce8\u610f, \u5f00\u542fipv6\u540e, \u5f00\u673a\u8054\u7f51\u4f1a\u61622~3\u79d2\n", "prefix": "mobile.ipv6"}, "mobile.csq": {"body": "mobile.csq()", "description": "mobile.csq() - \u83b7\u53d6csq\n\u8fd4\u56de\u503c\uff1a\nint \u5f53\u524dCSQ\u503c, \u82e5\u5931\u8d25\u8fd4\u56de0. \u8303\u56f4 0 - 31, \u8d8a\u5927\u8d8a\u597d\n\u4f8b\u5b50\uff1a\n-- \u6ce8\u610f, 4G\u6a21\u5757\u7684CSQ\u503c\u4ec5\u4f9b\u53c2\u8003, rsrp/rsrq\u624d\u662f\u771f\u6b63\u7684\u4fe1\u53f7\u5f3a\u5ea6\u6307\u6807\n", "prefix": "mobile.csq"}, "mobile.rssi": {"body": "mobile.rssi()", "description": "mobile.rssi() - \u83b7\u53d6rssi\n\u8fd4\u56de\u503c\uff1a\nint \u5f53\u524drssi\u503c,\u82e5\u5931\u8d25\u8fd4\u56de0. \u8303\u56f4 0 \u5230 -114, \u8d8a\u5c0f\u8d8a\u597d\n", "prefix": "mobile.rssi"}, "mobile.rsrp": {"body": "mobile.rsrp()", "description": "mobile.rsrp() - \u83b7\u53d6rsrp,\u53c2\u8003\u4fe1\u53f7\u63a5\u6536\u529f\u7387\n\u8fd4\u56de\u503c\uff1a\nint \u5f53\u524drsrp\u503c,\u82e5\u5931\u8d25\u8fd4\u56de0. \u53d6\u503c\u8303\u56f4: -44 ~ -140 \uff0c\u503c\u8d8a\u5927\u8d8a\u597d\n", "prefix": "mobile.rsrp"}, "mobile.rsrq": {"body": "mobile.rsrq()", "description": "mobile.rsrq() - \u83b7\u53d6rsrq,\u53c2\u8003\u4fe1\u53f7\u53d1\u9001\u529f\u7387\n\u8fd4\u56de\u503c\uff1a\nint \u5f53\u524drsrq\u503c,\u82e5\u5931\u8d25\u8fd4\u56de0. \u53d6\u503c\u8303\u56f4: -3 ~ -19.5 \uff0c\u503c\u8d8a\u5927\u8d8a\u597d\n", "prefix": "mobile.rsrq"}, "mobile.snr": {"body": "mobile.snr()", "description": "mobile.snr() - \u83b7\u53d6snr,\u4fe1\u566a\u6bd4\n\u8fd4\u56de\u503c\uff1a\nint \u5f53\u524dsnq\u503c,\u82e5\u5931\u8d25\u8fd4\u56de0.\u8303\u56f4 0 - 30, \u8d8a\u5927\u8d8a\u597d\n", "prefix": "mobile.snr"}, "mobile.eci": {"body": "mobile.eci()", "description": "mobile.eci() - \u83b7\u53d6\u5f53\u524d\u670d\u52a1\u5c0f\u533a\u7684ECI(E-UTRAN Cell Identifier)\n\u8fd4\u56de\u503c\uff1a\nint \u5f53\u524deci\u503c,\u82e5\u5931\u8d25\u8fd4\u56de-1\n", "prefix": "mobile.eci"}, "mobile.tac": {"body": "mobile.tac()", "description": "mobile.tac() - \u83b7\u53d6\u5f53\u524d\u670d\u52a1\u5c0f\u533a\u7684TAC\u6216\u8005LAC\n\u8fd4\u56de\u503c\uff1a\nint \u5f53\u524deci\u503c,\u82e5\u5931\u8d25\u8fd4\u56de-1. \u5982\u679c\u5c1a\u672a\u6ce8\u518c\u5230\u7f51\u7edc,\u4f1a\u8fd4\u56de0\n\u4f8b\u5b50\uff1a\n-- \u672cAPI\u4e8e 2023.7.9 \u65b0\u589e\n", "prefix": "mobile.tac"}, "mobile.enbid": {"body": "mobile.enbid()", "description": "mobile.enbid() - \u83b7\u53d6\u5f53\u524d\u670d\u52a1\u5c0f\u533a\u7684eNBID(eNodeB Identifier)\n\u8fd4\u56de\u503c\uff1a\nint \u5f53\u524denbid\u503c,\u82e5\u5931\u8d25\u8fd4\u56de-1\n", "prefix": "mobile.enbid"}, "mobile.flymode": {"body": "mobile.flymode(${1:index},${2:enable})", "description": "mobile.flymode(index, enable) - \u8fdb\u51fa\u98de\u884c\u6a21\u5f0f\n\u4f20\u5165\u503c\uff1a\nint \u7f16\u53f7,\u9ed8\u8ba40. \u5728\u652f\u6301\u53cc\u5361\u7684\u6a21\u5757\u4e0a\u624d\u4f1a\u51fa\u73b00\u62161\u7684\u60c5\u51b5\nbool \u662f\u5426\u8bbe\u7f6e\u4e3a\u98de\u884c\u6a21\u5f0f,true\u4e3a\u8bbe\u7f6e, false\u4e3a\u9000\u51fa,\u53ef\u9009\n\u8fd4\u56de\u503c\uff1a\nbool \u539f\u98de\u884c\u6a21\u5f0f\u7684\u72b6\u6001\n", "prefix": "mobile.flymode"}, "mobile.status": {"body": "mobile.status()", "description": "mobile.status() - \u83b7\u53d6\u7f51\u7edc\u72b6\u6001\n\u8fd4\u56de\u503c\uff1a\nint \u5f53\u524d\u7f51\u7edc\u72b6\u6001,0:\u7f51\u7edc\u672a\u6ce8\u518c;1:\u7f51\u7edc\u5df2\u6ce8\u518c;2:\u6b63\u5728\u641c\u7f51\u4e2d;3:\u7f51\u7edc\u6ce8\u518c\u88ab\u62d2\u7edd\n", "prefix": "mobile.status"}, "mobile.getCellInfo": {"body": "mobile.getCellInfo()", "description": "mobile.getCellInfo() - \u83b7\u53d6\u673a\u5236\u4fe1\u606f\n\u8fd4\u56de\u503c\uff1a\ntable \u5305\u542b\u57fa\u7ad9\u6570\u636e\u7684\u6570\u7ec4\n\u4f8b\u5b50\uff1a\n-- \u6ce8\u610f: \u4ece2023.06.20\u5f00\u59cb, \u9700\u8981\u4e3b\u52a8\u8bf7\u6c42\u4e00\u6b21reqCellInfo\u624d\u4f1a\u6709\u57fa\u7ad9\u6570\u636e.\n\n--\u793a\u4f8b\u8f93\u51fa\n--[[\n[\n {\"rsrq\":-10,\"rssi\":-55,\"cid\":124045360,\"mnc\":17,\"pci\":115,\"earfcn\":1850,\"snr\":15,\"rsrp\":-85,\"mcc\":1120,\"tdd\":0},\n {\"pci\":388,\"rsrq\":-11,\"mnc\":17,\"earfcn\":2452,\"snr\":5,\"rsrp\":-67,\"mcc\":1120,\"cid\":124045331},\n {\"pci\":100,\"rsrq\":-9,\"mnc\":17,\"earfcn\":75,\"snr\":17,\"rsrp\":-109,\"mcc\":1120,\"cid\":227096712}\n]\n]]\n\nmobile.reqCellInfo(60)\n-- \u8ba2\u9605\nsys.subscribe(\"CELL_INFO_UPDATE\", function()\n log.info(\"cell\", json.encode(mobile.getCellInfo()))\nend)\n\n-- \u5b9a\u671f\u8f6e\u8bad\u5f0f\nsys.taskInit(function()\n sys.wait(3000)\n while 1 do\n mobile.reqCellInfo(15)\n sys.waitUntil(\"CELL_INFO_UPDATE\", 15000)\n log.info(\"cell\", json.encode(mobile.getCellInfo()))\n end\nend)\n", "prefix": "mobile.getCellInfo"}, "mobile.reqCellInfo": {"body": "mobile.reqCellInfo(${1:timeout})", "description": "mobile.reqCellInfo(timeout) - \u53d1\u8d77\u57fa\u7ad9\u4fe1\u606f\u67e5\u8be2,\u542b\u4e34\u8fd1\u5c0f\u533a\n\u4f20\u5165\u503c\uff1a\nint \u8d85\u65f6\u65f6\u957f,\u5355\u4f4d\u79d2,\u9ed8\u8ba415. \u6700\u5c115, \u6700\u9ad860\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n-- \u53c2\u8003 mobile.getCellInfo \u51fd\u6570\n", "prefix": "mobile.reqCellInfo"}, "mobile.reset": {"body": "mobile.reset()", "description": "mobile.reset() - \u91cd\u542f\u534f\u8bae\u6808\n\u4f8b\u5b50\uff1a\n-- \u91cd\u542fLTE\u534f\u8bae\u6808\nmobile.reset()\n", "prefix": "mobile.reset"}, "mobile.dataTraffic": {"body": "mobile.dataTraffic(${1:clearUplink},${2:clearDownlink})", "description": "mobile.dataTraffic(clearUplink, clearDownlink) - \u6570\u636e\u91cf\u6d41\u91cf\u5904\u7406\n\u4f20\u5165\u503c\uff1a\nboolean \u6e05\u7a7a\u4e0a\u884c\u6d41\u91cf\u7d2f\u8ba1\u503c\uff0ctrue\u6e05\u7a7a\uff0c\u5176\u4ed6\u5ffd\u7565\nboolean \u6e05\u7a7a\u4e0b\u884c\u6d41\u91cf\u7d2f\u8ba1\u503c\uff0ctrue\u6e05\u7a7a\uff0c\u5176\u4ed6\u5ffd\u7565\n\u8fd4\u56de\u503c\uff1a\nint \u4e0a\u884c\u6d41\u91cfGB\nint \u4e0a\u884c\u6d41\u91cfB\nint \u4e0b\u884c\u6d41\u91cfGB\nint \u4e0b\u884c\u6d41\u91cfB\n\u4f8b\u5b50\uff1a\n-- \u83b7\u53d6\u4e0a\u4e0b\u884c\u6d41\u91cf\u7d2f\u8ba1\u503c\n-- \u4e0a\u884c\u6d41\u91cf\u503cByte = uplinkGB * 1024 * 1024 * 1024 + uplinkB\n-- \u4e0b\u884c\u6d41\u91cf\u503cByte = downlinkGB * 1024 * 1024 * 1024 + downlinkB\nlocal uplinkGB, uplinkB, downlinkGB, downlinkB = mobile.dataTraffic()\n\n-- \u6e05\u7a7a\u4e0a\u4e0b\u884c\u6d41\u91cf\u7d2f\u8ba1\u503c\nmobile.dataTraffic(true, true)\n", "prefix": "mobile.dataTraffic"}, "mobile.config": {"body": "mobile.config(${1:item},${2:value})", "description": "mobile.config(item, value) - \u7f51\u7edc\u7279\u6b8a\u914d\u7f6e\uff0c\u9488\u5bf9\u4e0d\u540c\u5e73\u53f0\u6709\u4e0d\u540c\u7684\u914d\u7f6e\uff0c\u8c28\u614e\u4f7f\u7528\uff0c\u76ee\u524d\u53ea\u6709EC618\n\u4f20\u5165\u503c\uff1a\nint \u914d\u7f6e\u9879\u76ee\uff0c\u770bmobile.CONF_XXX\nint \u914d\u7f6e\u503c\n\u8fd4\u56de\u503c\uff1a\nboolean \u662f\u5426\u6210\u529f\n\u4f8b\u5b50\uff1a\n-- EC618\u914d\u7f6e\u5c0f\u533a\u91cd\u9009\u4fe1\u53f7\u5dee\u503c\u95e8\u9650\uff0c\u4e0d\u80fd\u5927\u4e8e15dbm\uff0c\u5fc5\u987b\u5728\u98de\u884c\u6a21\u5f0f\u4e0b\u624d\u80fd\u7528\nmobile.flymode(0,true)\nmobile.config(mobile.CONF_RESELTOWEAKNCELL, 15)\nmobile.config(mobile.CONF_STATICCONFIG, 1) --\u5f00\u542f\u7f51\u7edc\u9759\u6001\u4f18\u5316\nmobile.flymode(0,false)\n\n-- EC618\u8bbe\u7f6eSIM\u5199\u5165\u6b21\u6570\u7684\u7edf\u8ba1\n-- \u5173\u95ed\u7edf\u8ba1\nmobile.config(mobile.CONF_SIM_WC_MODE, 0)\n-- \u5f00\u542f\u7edf\u8ba1, \u9ed8\u8ba4\u4e5f\u662f\u5f00\u542f\u7684.\nmobile.config(mobile.CONF_SIM_WC_MODE, 1)\n-- \u8bfb\u53d6\u7edf\u8ba1\u503c,\u5f02\u6b65, \u9700\u8981\u901a\u8fc7\u7cfb\u7edf\u6d88\u606fSIM_IND\u83b7\u53d6\nsys.subscribe(\"SIM_IND\", function(stats, value)\n log.info(\"SIM_IND\", stats)\n if stats == \"SIM_WC\" then\n log.info(\"sim\", \"write counter\", value)\n end\nend)\nmobile.config(mobile.CONF_SIM_WC_MODE, 2)\n-- \u6e05\u7a7a\u7edf\u8ba1\u503c\nmobile.config(mobile.CONF_SIM_WC_MODE, 3)\n", "prefix": "mobile.config"}, "mobile.getBand": {"body": "mobile.getBand(${1:band},${2:is_default})", "description": "mobile.getBand(band, is_default) - \u83b7\u53d6\u5f53\u524d\u4f7f\u7528/\u652f\u6301\u7684band\n\u4f20\u5165\u503c\uff1a\nzbuff \u8f93\u51faband\nboolean true\u9ed8\u8ba4\u652f\u6301\uff0cfalse\u5f53\u524d\u652f\u6301\u7684\uff0c\u9ed8\u8ba4\u662ffalse\uff0c\u5f53\u524d\u662f\u9884\u7559\u529f\u80fd\uff0c\u4e0d\u8981\u5199true\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u8fd4\u56detrue\uff0c\u5931\u8d25\u653e\u56defalse\n\u4f8b\u5b50\uff1a\nlocal buff = zbuff.create(40)\nmobile.getBand(buff) --\u8f93\u51fa\u5f53\u524d\u4f7f\u7528\u7684band\uff0cband\u53f7\u653e\u5728buff\u5185\uff0cbuff[0]\uff0cbuff[1]\uff0cbuff[2] .. buff[buff:used() - 1]\n", "prefix": "mobile.getBand"}, "mobile.setBand": {"body": "mobile.setBand(${1:band},${2:num})", "description": "mobile.setBand(band, num) - \u8bbe\u7f6e\u4f7f\u7528\u7684band\n\u4f20\u5165\u503c\uff1a\nzbuff \u8f93\u5165\u4f7f\u7528\u7684band\nint band\u6570\u91cf\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u8fd4\u56detrue\uff0c\u5931\u8d25\u653e\u56defalse\n\u4f8b\u5b50\uff1a\nlocal buff = zbuff.create(40)\nbuff[0] = 3\nbuff[1] = 5\nbuff[2] = 8\nbuff[3] = 40\nmobile.setBand(buff, 4) --\u8bbe\u7f6e\u4f7f\u7528\u7684band\u4e00\u51714\u4e2a\uff0c\u4e3a3,5,8,40\n", "prefix": "mobile.setBand"}, "mobile.nstOnOff": {"body": "mobile.nstOnOff(${1:onoff},${2:uart_id})", "description": "mobile.nstOnOff(onoff, uart_id) - RF\u6d4b\u8bd5\u5f00\u5173\u548c\u914d\u7f6e\n\u4f20\u5165\u503c\uff1a\nboolean true\u5f00\u542f\u6d4b\u8bd5\u6a21\u5f0f\uff0cfalse\u5173\u95ed\nint \u4e32\u53e3\u53f7\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\nmobile.nstOnOff(true, uart.VUART_0)\t--\u6253\u5f00\u6d4b\u8bd5\u6a21\u5f0f\uff0c\u5e76\u4e14\u7528\u865a\u62df\u4e32\u53e3\u53d1\u9001\u7ed3\u679c\nmobile.nstOnOff(false) --\u5173\u95ed\u6d4b\u8bd5\u6a21\u5f0f\n", "prefix": "mobile.nstOnOff"}, "mobile.nstInput": {"body": "mobile.nstInput(${1:data})", "description": "mobile.nstInput(data) - RF\u6d4b\u8bd5\u6570\u636e\u8f93\u5165\n\u4f20\u5165\u503c\uff1a\nstring or zbuff \u7528\u6237\u4ece\u4e32\u53e3\u83b7\u53d6\u7684\u6570\u636e\uff0c\u6ce8\u610f\uff0c\u5f53\u83b7\u53d6\u5b8c\u6240\u6709\u6570\u636e\u540e\uff0c\u9700\u8981\u518d\u4f20\u4e00\u4e2anil\u6765\u4f5c\u4e3a\u4f20\u8f93\u7ed3\u675f\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\nmobile.nstInput(uart_data)\nmobile.nstInput(nil)\n", "prefix": "mobile.nstInput"}, "mqttc:subscribe": {"body": "mqttc:subscribe(${1:topic},${2:qos})", "description": "mqttc:subscribe(topic, qos) - \u8ba2\u9605\u4e3b\u9898\n\u4f20\u5165\u503c\uff1a\nstring/table \u4e3b\u9898\nint topic\u4e3astring\u65f6\u751f\u6548 0/1/2 \u9ed8\u8ba40\n\u8fd4\u56de\u503c\uff1a\nint \u6d88\u606fid,\u5f53qos\u4e3a1/2\u65f6\u6709\u6548, \u82e5\u5e95\u5c42\u8fd4\u56de\u5931\u8d25,\u4f1a\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\n-- \u8ba2\u9605\u5355\u4e2atopic, \u4e14qos=0\nmqttc:subscribe(\"/luatos/123456\", 0)\n-- \u8ba2\u9605\u5355\u4e2atopic, \u4e14qos=1\nmqttc:subscribe(\"/luatos/12345678\", 1)\n-- \u8ba2\u9605\u591a\u4e2atopic, \u4e14\u4f7f\u7528\u4e0d\u540c\u7684qos\nmqttc:subscribe({[\"/luatos/1234567\"]=1,[\"/luatos/12345678\"]=2})\n", "prefix": "mqttc:subscribe"}, "mqttc:unsubscribe": {"body": "mqttc:unsubscribe(${1:topic})", "description": "mqttc:unsubscribe(topic) - \u53d6\u6d88\u8ba2\u9605\u4e3b\u9898\n\u4f20\u5165\u503c\uff1a\nstring/table \u4e3b\u9898\n\u4f8b\u5b50\uff1a\nmqttc:unsubscribe(\"/luatos/123456\")\nmqttc:unsubscribe({\"/luatos/1234567\",\"/luatos/12345678\"})\n", "prefix": "mqttc:unsubscribe"}, "mqttc:debug": {"body": "mqttc:debug(${1:onoff})", "description": "mqttc:debug(onoff) - \u914d\u7f6e\u662f\u5426\u6253\u5f00debug\u4fe1\u606f\n\u4f20\u5165\u503c\uff1a\nboolean \u662f\u5426\u6253\u5f00debug\u5f00\u5173\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n", "prefix": "mqttc:debug"}, "mqtt.create": {"body": "mqtt.create(${1:adapter},${2:host},${3:port},${4:ssl},${5:isipv6})", "description": "mqtt.create(adapter,host,port,ssl,isipv6) - mqtt\u5ba2\u6237\u7aef\u521b\u5efa\n\u4f20\u5165\u503c\uff1a\nint \u9002\u914d\u5668\u5e8f\u53f7, \u53ea\u80fd\u662fsocket.ETH0, socket.STA, socket.AP,\u5982\u679c\u4e0d\u586b,\u4f1a\u9009\u62e9\u5e73\u53f0\u81ea\u5e26\u7684\u65b9\u5f0f,\u7136\u540e\u662f\u6700\u540e\u4e00\u4e2a\u6ce8\u518c\u7684\u9002\u914d\u5668\nstring \u670d\u52a1\u5668\u5730\u5740,\u53ef\u4ee5\u662f\u57df\u540d, \u4e5f\u53ef\u4ee5\u662fip\nint \t\u7aef\u53e3\u53f7\nbool/table \u662f\u5426\u4e3assl\u52a0\u5bc6\u8fde\u63a5,\u9ed8\u8ba4\u4e0d\u52a0\u5bc6,true\u4e3a\u65e0\u8bc1\u4e66\u6700\u7b80\u5355\u7684\u52a0\u5bc6\uff0ctable\u4e3a\u6709\u8bc1\u4e66\u7684\u52a0\u5bc6
server_cert \u670d\u52a1\u5668ca\u8bc1\u4e66\u6570\u636e
client_cert \u5ba2\u6237\u7aef\u8bc1\u4e66\u6570\u636e
client_key \u5ba2\u6237\u7aef\u79c1\u94a5\u52a0\u5bc6\u6570\u636e
client_password \u5ba2\u6237\u7aef\u79c1\u94a5\u53e3\u4ee4\u6570\u636e
verify \u662f\u5426\u5f3a\u5236\u6821\u9a8c 0\u4e0d\u6821\u9a8c/1\u53ef\u9009\u6821\u9a8c/2\u5f3a\u5236\u6821\u9a8c \u9ed8\u8ba42\nbool \u662f\u5426\u4e3aipv6 \u9ed8\u8ba4\u4e0d\u662f\n\u8fd4\u56de\u503c\uff1a\nuserdata \u82e5\u6210\u529f\u4f1a\u8fd4\u56demqtt\u5ba2\u6237\u7aef\u5b9e\u4f8b,\u5426\u5219\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\n-- \u666e\u901aTCP\u94fe\u63a5\nmqttc = mqtt.create(nil,\"120.55.137.106\", 1884)\n-- \u52a0\u5bc6TCP\u94fe\u63a5,\u4e0d\u9a8c\u8bc1\u670d\u52a1\u5668\u8bc1\u4e66\nmqttc = mqtt.create(nil,\"120.55.137.106\", 8883, true)\n-- \u52a0\u5bc6TCPTCP\u94fe\u63a5,\u5355\u670d\u52a1\u5668\u8bc1\u4e66\u9a8c\u8bc1\nmqttc = mqtt.create(nil,\"120.55.137.106\", 8883, {server_cert=io.readFile(\"/luadb/ca.crt\")})\n-- \u52a0\u5bc6TCPTCP\u94fe\u63a5,\u5355\u670d\u52a1\u5668\u8bc1\u4e66\u9a8c\u8bc1, \u4f46\u53ef\u9009\u8ba4\u8bc1\nmqttc = mqtt.create(nil,\"120.55.137.106\", 8883, {server_cert=io.readFile(\"/luadb/ca.crt\"), verify=1})\n-- \u52a0\u5bc6TCPTCP\u94fe\u63a5,\u53cc\u5411\u8bc1\u4e66\u9a8c\u8bc1\nmqttc = mqtt.create(nil,\"120.55.137.106\", 8883, {\n\t\t\t\t\tserver_cert=io.readFile(\"/luadb/ca.crt\"),\n\t\t\t\t\tclient_cert=io.readFile(\"/luadb/client.pem\"),\n\t\t\t\t\tclient_key=\"123456\",\n\t\t\t\t\tclient_password=\"123456\",\n\t\t\t\t\t})\n", "prefix": "mqtt.create"}, "mqttc:auth": {"body": "mqttc:auth(${1:client_id},${2:username},${3:password},${4:cleanSession})", "description": "mqttc:auth(client_id,username,password,cleanSession) - mqtt\u4e09\u5143\u7ec4\u914d\u7f6e\u53cacleanSession\n\u4f20\u5165\u503c\uff1a\nstring \u8bbe\u5907\u8bc6\u522bid,\u5bf9\u4e8e\u540c\u4e00\u4e2amqtt\u670d\u52a1\u5668\u6765\u8bf4, \u901a\u5e38\u8981\u6c42\u552f\u4e00,\u76f8\u540cclient_id\u4f1a\u4e92\u76f8\u8e22\u4e0b\u7ebf\nstring \u8d26\u53f7 \u53ef\u9009\nstring \u5bc6\u7801 \u53ef\u9009\nbool \u6e05\u9664session,\u9ed8\u8ba4true,\u53ef\u9009\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n-- \u65e0\u8d26\u53f7\u5bc6\u7801\u767b\u5f55,\u4ec5clientId\nmqttc:auth(\"123456789\")\n-- \u5e26\u8d26\u53f7\u5bc6\u7801\u767b\u5f55\nmqttc:auth(\"123456789\",\"username\",\"password\")\n-- \u989d\u5916\u914d\u7f6ecleanSession,\u4e0d\u6e05\u9664\nmqttc:auth(\"123456789\",\"username\",\"password\", false)\n-- \u65e0clientId\u6a21\u5f0f, \u670d\u52a1\u5668\u968f\u673a\u751f\u6210id, cleanSession\u4e0d\u53ef\u914d\u7f6e\nmqttc:auth()\n", "prefix": "mqttc:auth"}, "mqttc:keepalive": {"body": "mqttc:keepalive(${1:time})", "description": "mqttc:keepalive(time) - mqtt\u5fc3\u8df3\u8bbe\u7f6e\n\u4f20\u5165\u503c\uff1a\nint \u53ef\u9009 \u5355\u4f4ds \u9ed8\u8ba4240s. \u6700\u514815,\u6700\u9ad8600\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\nmqttc:keepalive(30)\n", "prefix": "mqttc:keepalive"}, "mqttc:on": {"body": "mqttc:on(${1:cb})", "description": "mqttc:on(cb) - \u6ce8\u518cmqtt\u56de\u8c03\n\u4f20\u5165\u503c\uff1a\nfunction cb mqtt\u56de\u8c03,\u53c2\u6570\u5305\u62ecmqtt_client, event, data, payload\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\nmqttc:on(function(mqtt_client, event, data, payload, metas)\n\t-- \u7528\u6237\u81ea\u5b9a\u4e49\u4ee3\u7801\n\tlog.info(\"mqtt\", \"event\", event, mqtt_client, data, payload)\nend)\n--[[\nevent\u53ef\u80fd\u51fa\u73b0\u7684\u503c\u6709\n conack -- \u670d\u52a1\u5668\u9274\u6743\u5b8c\u6210,mqtt\u8fde\u63a5\u5df2\u7ecf\u5efa\u7acb, \u53ef\u4ee5\u8ba2\u9605\u548c\u53d1\u5e03\u6570\u636e\u4e86,\u6ca1\u6709\u9644\u52a0\u6570\u636e\n recv -- \u63a5\u6536\u5230\u6570\u636e,\u7531\u670d\u52a1\u5668\u4e0b\u53d1, data\u4e3atopic\u503c(string), payload\u4e3a\u4e1a\u52a1\u6570\u636e(string).metas\u662f\u5143\u6570\u636e(table), \u4e00\u822c\u4e0d\u5904\u7406. \n -- metas\u5305\u542b\u4ee5\u4e0b\u5185\u5bb9\n\t\t\t -- qos \u53d6\u503c\u8303\u56f40,1,2\n\t\t\t -- retain \u53d6\u503c\u8303\u56f4 0,1\n\t\t\t -- dup \u53d6\u503c\u8303\u56f4 0,1\n sent -- \u53d1\u9001\u5b8c\u6210, qos0\u4f1a\u9a6c\u4e0a\u901a\u77e5, qos1/qos2\u4f1a\u5728\u670d\u52a1\u5668\u5e94\u7b54\u4f1a\u56de\u8c03, data\u4e3a\u6d88\u606fid\n disconnect -- \u670d\u52a1\u5668\u65ad\u5f00\u8fde\u63a5,\u7f51\u7edc\u95ee\u9898\u6216\u670d\u52a1\u5668\u8e22\u4e86\u5ba2\u6237\u7aef,\u4f8b\u5982clientId\u91cd\u590d,\u8d85\u65f6\u672a\u4e0a\u62a5\u4e1a\u52a1\u6570\u636e\n]]\n", "prefix": "mqttc:on"}, "mqttc:connect": {"body": "mqttc:connect()", "description": "mqttc:connect() - \u8fde\u63a5\u670d\u52a1\u5668\n\u8fd4\u56de\u503c\uff1a\nboolean \u53d1\u8d77\u6210\u529f\u8fd4\u56detrue, \u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- \u5f00\u59cb\u5efa\u7acb\u8fde\u63a5\nmqttc:connect()\n-- \u672c\u51fd\u6570\u4ec5\u4ee3\u8868\u53d1\u8d77\u6210\u529f, \u540e\u7eed\u4ecd\u9700\u6839\u636eready\u51fd\u6570\u5224\u65admqtt\u662f\u5426\u8fde\u63a5\u6b63\u5e38\n", "prefix": "mqttc:connect"}, "mqttc:disconnect": {"body": "mqttc:disconnect()", "description": "mqttc:disconnect() - \u65ad\u5f00\u670d\u52a1\u5668\u8fde\u63a5(\u4e0d\u4f1a\u91ca\u653e\u8d44\u6e90)\n\u8fd4\u56de\u503c\uff1a\nboolean \u53d1\u8d77\u6210\u529f\u8fd4\u56detrue, \u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- \u65ad\u5f00\u8fde\u63a5\nmqttc:disconnect()\n", "prefix": "mqttc:disconnect"}, "mqttc:autoreconn": {"body": "mqttc:autoreconn(${1:reconnect},${2:reconnect_time})", "description": "mqttc:autoreconn(reconnect, reconnect_time) - \u81ea\u52a8\u91cd\u8fde\n\u4f20\u5165\u503c\uff1a\nbool \u662f\u5426\u81ea\u52a8\u91cd\u8fde\nint \u81ea\u52a8\u91cd\u8fde\u5468\u671f \u5355\u4f4dms \u9ed8\u8ba43000ms\n\u4f8b\u5b50\uff1a\nmqttc:autoreconn(true)\n", "prefix": "mqttc:autoreconn"}, "mqttc:publish": {"body": "mqttc:publish(${1:topic},${2:data},${3:qos},${4:retain})", "description": "mqttc:publish(topic, data, qos, retain) - \u53d1\u5e03\u6d88\u606f\n\u4f20\u5165\u503c\uff1a\nstring \u4e3b\u9898,\u5fc5\u586b\nstring \u6d88\u606f,\u5fc5\u586b,\u4f46\u957f\u5ea6\u53ef\u4ee5\u662f0\nint \u6d88\u606f\u7ea7\u522b 0/1 \u9ed8\u8ba40\nint \u662f\u5426\u5b58\u6863, 0/1,\u9ed8\u8ba40\n\u8fd4\u56de\u503c\uff1a\nint \u6d88\u606fid, \u5f53qos\u4e3a1\u62162\u65f6\u4f1a\u6709\u6548\u503c. \u82e5\u5e95\u5c42\u8fd4\u56de\u662f\u5426, \u4f1a\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\nmqttc:publish(\"/luatos/123456\", \"123\")\n", "prefix": "mqttc:publish"}, "mqttc:close": {"body": "mqttc:close()", "description": "mqttc:close() - mqtt\u5ba2\u6237\u7aef\u5173\u95ed(\u5173\u95ed\u540e\u8d44\u6e90\u91ca\u653e\u65e0\u6cd5\u518d\u4f7f\u7528)\n\u4f8b\u5b50\uff1a\nmqttc:close()\n", "prefix": "mqttc:close"}, "mqttc:ready": {"body": "mqttc:ready()", "description": "mqttc:ready() - mqtt\u5ba2\u6237\u7aef\u662f\u5426\u5c31\u7eea\n\u8fd4\u56de\u503c\uff1a\nbool \u5ba2\u6237\u7aef\u662f\u5426\u5c31\u7eea\n\u4f8b\u5b50\uff1a\nlocal error = mqttc:ready()\n", "prefix": "mqttc:ready"}, "mqttc:state": {"body": "mqttc:state()", "description": "mqttc:state() - mqtt\u5ba2\u6237\u7aef\u72b6\u6001\n\u8fd4\u56de\u503c\uff1a\nnumber \u5ba2\u6237\u7aef\u72b6\u6001\n\u4f8b\u5b50\uff1a\nlocal state = mqttc:state()\n", "prefix": "mqttc:state"}, "mqttc:will": {"body": "mqttc:will(${1:topic},${2:payload},${3:qos},${4:retain})", "description": "mqttc:will(topic, payload, qos, retain) - \u8bbe\u7f6e\u9057\u5631\u6d88\u606f\n\u4f20\u5165\u503c\uff1a\nstring \u9057\u5631\u6d88\u606f\u7684topic\nstring \u9057\u5631\u6d88\u606f\u7684payload\nstring \u9057\u5631\u6d88\u606f\u7684qos, \u9ed8\u8ba40, \u53ef\u4ee5\u4e0d\u586b\nstring \u9057\u5631\u6d88\u606f\u7684retain, \u9ed8\u8ba40, \u53ef\u4ee5\u4e0d\u586b\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- \u8981\u5728connect\u4e4b\u524d\u8c03\u7528\nmqttc:will(\"/xxx/xxx\", \"xxxxxx\")\n", "prefix": "mqttc:will"}, "nbiot.isReady": {"body": "nbiot.isReady()", "description": "nbiot.isReady() - \u7f51\u7edc\u662f\u5426\u5c31\u7eea\n\u8fd4\u56de\u503c\uff1a\nboolean \u5df2\u8054\u7f51\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- \u5224\u65ad\u662f\u5426\u5df2\u7ecf\u8054\u7f51\nif nbiot.isReady() then \n log.info(\"nbiot\", \"net is ready\")\nend\n", "prefix": "nbiot.isReady"}, "nbiot.imsi": {"body": "nbiot.imsi()", "description": "nbiot.imsi() - \u8bfb\u53d6IMSI\n\u8fd4\u56de\u503c\uff1a\nstring \u8fd4\u56deIMSI\u503c\uff0c\u5982\u679c\u4e0d\u5b58\u5728\u5c31\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\n--\u8bfb\u53d6imsi\nlog.info(\"nbiot\", \"imsi\", nbiot.imsi())\n", "prefix": "nbiot.imsi"}, "nbiot.iccid": {"body": "nbiot.iccid()", "description": "nbiot.iccid() - \u8bfb\u53d6ICCID\n\u8fd4\u56de\u503c\uff1a\nstring \u8fd4\u56deICCID\u503c\uff0c\u5982\u679c\u4e0d\u5b58\u5728\u5c31\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\n-- \u8bfb\u53d6iccid\nlog.info(\"nbiot\", \"iccid\", nbiot.iccid())\n", "prefix": "nbiot.iccid"}, "nbiot.imei": {"body": "nbiot.imei(${1:val})", "description": "nbiot.imei(val) - \u8bfb\u53d6\u6216\u8bbe\u7f6eIMEI\n\u4f20\u5165\u503c\uff1a\nstring \u4f20\u5165\u9700\u8981\u8bbe\u7f6e\u7684imei\u503c\uff0c\u4e0d\u4f20\u5c31\u662f\u8bfb\u53d6\n\u8fd4\u56de\u503c\uff1a\nstring \u8fd4\u56deimei\u503c\uff0c\u5982\u679c\u4e0d\u5b58\u5728\u5c31\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\n-- \u8bfb\u53d6imei\nlog.info(\"nbiot\", \"imei\", nbiot.imei())\n@usage \n-- \u8bbe\u7f6eimei\nlog.info(\"nbiot\", \"imei\", nbiot.imei(\"898989898989899898\"))\n", "prefix": "nbiot.imei"}, "nbiot.rssi": {"body": "nbiot.rssi()", "description": "nbiot.rssi() - \u8bfb\u53d6RSSI\n\u8fd4\u56de\u503c\uff1a\nint \u8fd4\u56derssi\u503c\n\u4f8b\u5b50\uff1a\n-- \u8bfb\u53d6rssi\nlog.info(\"nbiot\", \"rssi\", nbiot.rssi())\n", "prefix": "nbiot.rssi"}, "nbiot.apn": {"body": "nbiot.apn()", "description": "nbiot.apn() - \u8bfb\u53d6APN\n\u8fd4\u56de\u503c\uff1a\nstring \u8fd4\u56deapn\u503c\n\u4f8b\u5b50\uff1a\n-- \u8bfb\u53d6APN\nlog.info(\"nbiot\", \"apn\", nbiot.apn())\n", "prefix": "nbiot.apn"}, "nbiot.userApn": {"body": "nbiot.userApn(${1:apn},${2:Auth_User_Name},${3:Auth_Password},${4:PDN_TYPE})", "description": "nbiot.userApn(apn,Auth_User_Name,Auth_Password,PDN_TYPE) - \u8bfb\u53d6\u8bbe\u7f6e\u7528\u6237APN\n\u4f20\u5165\u503c\uff1a\nreturn \u8bfb\u53d6\u8fd4\u56dePDN_TYPE,Auth_User_Name,Auth_Password\uff0c\u8bbe\u7f6e\u8fd4\u56debool\n\u4f8b\u5b50\uff1a\n-- \u8bfb\u53d6APN\nlog.info(\"nbiot\", \"apn\", nbiot.userApn())\n", "prefix": "nbiot.userApn"}, "nbiot.tac": {"body": "nbiot.tac()", "description": "nbiot.tac() - \u8bfb\u53d6TAC\n\u8fd4\u56de\u503c\uff1a\nint \u8fd4\u56deTAC\u503c\n\u4f8b\u5b50\uff1a\n-- \u8bfb\u53d6TAC\nlog.info(\"nbiot\", \"tac\", nbiot.tac())\n", "prefix": "nbiot.tac"}, "nbiot.tauTime": {"body": "nbiot.tauTime()", "description": "nbiot.tauTime() - \u8bfb\u53d6Tau Time\n\u8fd4\u56de\u503c\uff1a\nint \u8fd4\u56deTau Time\u503c\n\u4f8b\u5b50\uff1a\n-- \u8bfb\u53d6Tau Time\nlog.info(\"nbiot\", \"tau time\", nbiot.tauTime())\n", "prefix": "nbiot.tauTime"}, "nbiot.activeTime": {"body": "nbiot.activeTime()", "description": "nbiot.activeTime() - \u8bfb\u53d6Active Time\n\u8fd4\u56de\u503c\uff1a\nint \u8fd4\u56deActive Time\u503c\n\u4f8b\u5b50\uff1a\n-- \u8bfb\u53d6Active Time\nlog.info(\"nbiot\", \"Active Time\", nbiot.activeTime())\n", "prefix": "nbiot.activeTime"}, "nbiot.cellID": {"body": "nbiot.cellID()", "description": "nbiot.cellID() - \u8bfb\u53d6CellID\n\u8fd4\u56de\u503c\uff1a\nint \u8fd4\u56deCellID\u503c\n\u4f8b\u5b50\uff1a\n-- \u8bfb\u53d6CellID\nlog.info(\"nbiot\", \"CellID\", nbiot.cellID())\n", "prefix": "nbiot.cellID"}, "nbiot.snr": {"body": "nbiot.snr()", "description": "nbiot.snr() - \u8bfb\u53d6SNR\n\u8fd4\u56de\u503c\uff1a\nint \u8fd4\u56deSNR\u503c\n\u4f8b\u5b50\uff1a\n-- \u8bfb\u53d6SNR\nlog.info(\"nbiot\", \"SNR\", nbiot.snr())\n", "prefix": "nbiot.snr"}, "nbiot.csq": {"body": "nbiot.csq()", "description": "nbiot.csq() - \u8bfb\u53d6CSQ, \u5e76\u4e0d\u5b8c\u5168\u7b49\u4ef7\u4e8eGSM\u7684CSQ\n\u8fd4\u56de\u503c\uff1a\nint \u8fd4\u56decsq\u503c\n\u4f8b\u5b50\uff1a\n-- \u8bfb\u53d6csq\nlog.info(\"nbiot\", \"csq\", nbiot.csq())\n", "prefix": "nbiot.csq"}, "nbiot.ceLevel": {"body": "nbiot.ceLevel()", "description": "nbiot.ceLevel() - \u8bfb\u53d6CE Level\n\u8fd4\u56de\u503c\uff1a\nint \u8fd4\u56deCE Level\u503c\n\u4f8b\u5b50\uff1a\n-- \u8bfb\u53d6CE Level\nlog.info(\"nbiot\", \"CE Level\", nbiot.ceLevel())\n", "prefix": "nbiot.ceLevel"}, "nbiot.sn": {"body": "nbiot.sn(${1:val})", "description": "nbiot.sn(val) - \u8bfb\u53d6\u6216\u8bbe\u7f6eSN,\u666e\u901a\u5237\u673a(\u5237\u5e95\u5c42/\u5237\u811a\u672c)\u4e0d\u4f1a\u6e05\u9664\n\u4f20\u5165\u503c\uff1a\nstring \u9700\u8981\u8bbe\u7f6e\u7684SN\u503c(\u53ea\u80fd\u662f\u53ef\u89c1\u5b57\u7b26),\u4e0d\u4f20\u503c\u5219\u4e3a\u8bfb\u53d6\n\u8fd4\u56de\u503c\uff1a\nstring \u8fd4\u56deSN\u503c\n\u4f8b\u5b50\uff1a\n-- \u8bfb\u53d6SN\nlog.info(\"nbiot\", \"SN\", nbiot.sn())\n@usage \n-- \u8bbe\u7f6eSN\nlog.info(\"nbiot\", \"SN\", nbiot.sn(\"My Custom SN\"))\n", "prefix": "nbiot.sn"}, "nbiot.updateCellInfo": {"body": "nbiot.updateCellInfo()", "description": "nbiot.updateCellInfo() - \u5237\u65b0\u7f51\u7edc\u4fe1\u606f,\u53ef\u901a\u8fc7\u5b9a\u65f6\u4efb\u52a1\u5237\u65b0,\u6700\u5c0f\u95f4\u96945\u79d2\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u542f\u52a8\u5237\u65b0\u7ebf\u7a0b\u8fd4\u56detrue\uff0c\u5426\u5219\u8fd4\u56defalse.\n\u4f8b\u5b50\uff1a\n-- \u5237\u65b0\u7f51\u7edc\u4fe1\u606f\nnbiot.updateCellInfo()\nsys.waitUntil(\"CELL_INFO_IND\", 3000)\nlog.info(\"nbiot\", \"cell\", json.encode(nbiot.getCellInfo()))\n", "prefix": "nbiot.updateCellInfo"}, "nbiot.mcc": {"body": "nbiot.mcc()", "description": "nbiot.mcc() - \u8bfb\u53d6MCC\u503c,\u6ce8\u518c\u7f51\u7edc\u540e\u53ef\u7528,\u901a\u8fc7nbiot.updateCellInfo()\u5237\u65b0\n\u8fd4\u56de\u503c\uff1a\nint \u8fd0\u8425\u5546MCC\u503c\n\u4f8b\u5b50\uff1a\n-- \u8bfb\u53d6MCC\nlog.info(\"nbiot\", \"mcc\", nbiot.mcc())\n", "prefix": "nbiot.mcc"}, "nbiot.mnc": {"body": "nbiot.mnc()", "description": "nbiot.mnc() - \u8bfb\u53d6MNC\u503c,\u6ce8\u518c\u7f51\u7edc\u540e\u53ef\u7528,\u901a\u8fc7nbiot.updateCellInfo()\u5237\u65b0\n\u8fd4\u56de\u503c\uff1a\nint \u8fd0\u8425\u5546MNC\u503c\n\u4f8b\u5b50\uff1a\n-- \u8bfb\u53d6MNC\nlog.info(\"nbiot\", \"mnc\", nbiot.mnc())\n", "prefix": "nbiot.mnc"}, "nbiot.earfcn": {"body": "nbiot.earfcn()", "description": "nbiot.earfcn() - \u8bfb\u53d6earfcn\u503c,\u6ce8\u518c\u7f51\u7edc\u540e\u53ef\u7528,\u901a\u8fc7nbiot.updateCellInfo()\u5237\u65b0\n\u8fd4\u56de\u503c\uff1a\nint \u8fd0\u8425\u5546earfcn\u503c\n\u4f8b\u5b50\uff1a\n-- \u8bfb\u53d6earfcn\nlog.info(\"nbiot\", \"earfcn\", nbiot.earfcn())\n", "prefix": "nbiot.earfcn"}, "nbiot.phyCellId": {"body": "nbiot.phyCellId()", "description": "nbiot.phyCellId() - \u8bfb\u53d6phyCellId\u503c,\u6ce8\u518c\u7f51\u7edc\u540e\u53ef\u7528,\u901a\u8fc7nbiot.updateCellInfo()\u5237\u65b0\n\u8fd4\u56de\u503c\uff1a\nint \u8fd0\u8425\u5546phyCellId\u503c\n\u4f8b\u5b50\uff1a\n-- \u8bfb\u53d6phyCellId\nlog.info(\"nbiot\", \"phyCellId\", nbiot.phyCellId())\n", "prefix": "nbiot.phyCellId"}, "nbiot.rsrq": {"body": "nbiot.rsrq()", "description": "nbiot.rsrq() - \u8bfb\u53d6rsrq\u503c,\u6ce8\u518c\u7f51\u7edc\u540e\u53ef\u7528,\u901a\u8fc7nbiot.updateCellInfo()\u5237\u65b0\n\u8fd4\u56de\u503c\uff1a\nint \u8fd0\u8425\u5546ersrq\u503c\n\u4f8b\u5b50\uff1a\n-- \u8bfb\u53d6rsrq\nlog.info(\"nbiot\", \"rsrq\", nbiot.rsrq())\n", "prefix": "nbiot.rsrq"}, "nbiot.rsrp": {"body": "nbiot.rsrp()", "description": "nbiot.rsrp() - \u8bfb\u53d6rsrp\u503c,\u6ce8\u518c\u7f51\u7edc\u540e\u53ef\u7528,\u901a\u8fc7nbiot.updateCellInfo()\u5237\u65b0\n\u8fd4\u56de\u503c\uff1a\nint \u8fd0\u8425\u5546rsrp\u503c\n\u4f8b\u5b50\uff1a\n-- \u8bfb\u53d6rsrp\nlog.info(\"nbiot\", \"rsrp\", nbiot.rsrp())\n", "prefix": "nbiot.rsrp"}, "nbiot.powerLevel": {"body": "nbiot.powerLevel()", "description": "nbiot.powerLevel() - \u8bfb\u53d6PowerLevel\u503c,\u6ce8\u518c\u7f51\u7edc\u540e\u53ef\u7528,\u901a\u8fc7nbiot.updateCellInfo()\u5237\u65b0\n\u8fd4\u56de\u503c\uff1a\nint \u8fd0\u8425\u5546PowerLevel\u503c\n\u4f8b\u5b50\uff1a\n-- \u8bfb\u53d6PowerLevel\nlog.info(\"nbiot\", \"PowerLevel\", nbiot.powerLevel())\n", "prefix": "nbiot.powerLevel"}, "nbiot.getCellInfo": {"body": "nbiot.getCellInfo()", "description": "nbiot.getCellInfo() - \u83b7\u53d6\u7f51\u7edc\u57fa\u7ad9\u8be6\u60c5,\u6ce8\u518c\u7f51\u7edc\u540e\u53ef\u7528,\u901a\u8fc7nbiot.updateCellInfo()\u5237\u65b0\n\u8fd4\u56de\u503c\uff1a\ntable \u7f51\u7edc\u57fa\u7ad9\u8be6\u60c5\n\u4f8b\u5b50\uff1a\n-- \u8bfb\u53d6\u57fa\u7ad9\u4fe1\u606f\nlog.info(\"nbiot\", \"cell info\", json.encode(nbiot.getCellInfo()))\n", "prefix": "nbiot.getCellInfo"}, "nbiot.setCFUN": {"body": "nbiot.setCFUN(${1:val})", "description": "nbiot.setCFUN(val) - \u8fdb\u5165\u6216\u9000\u51fa\u98de\u884c\u6a21\u5f0f\n\u4f20\u5165\u503c\uff1a\nint 0\u98de\u884c\u6a21\u5f0f,1\u666e\u901a\u8054\u7f51\u6a21\u5f0f\n\u8fd4\u56de\u503c\uff1a\nboolean \u8bbe\u7f6e\u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- \u8fdb\u5165\u98de\u884c\u6a21\u5f0f\nnbiot.setCFUN(0)\n", "prefix": "nbiot.setCFUN"}, "nbiot.setBootCFUN": {"body": "nbiot.setBootCFUN(${1:val})", "description": "nbiot.setBootCFUN(val) - \u8bbe\u7f6e\u8bbe\u5907\u4e0a\u7535\u542f\u52a8\u65f6\uff0c\u662f\u5426\u8fdb\u5165\u98de\u884c\u6a21\u5f0f\n\u4f20\u5165\u503c\uff1a\nint 0\u98de\u884c\u6a21\u5f0f,1\u666e\u901a\u8054\u7f51\u6a21\u5f0f\n\u8fd4\u56de\u503c\uff1a\nboolean \u8bbe\u7f6e\u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- \u8bbe\u7f6e\u4e3a\u4e0a\u7535\u8fdb\u5165\u98de\u884c\u6a21\u5f0f\nnbiot.setBootCFUN(0)\n", "prefix": "nbiot.setBootCFUN"}, "nbiot.getBootCFUN": {"body": "nbiot.getBootCFUN(${1:val})", "description": "nbiot.getBootCFUN(val) - \u83b7\u53d6\u8bbe\u5907\u4e0a\u7535\u542f\u52a8\u65f6\uff0c\u662f\u5426\u8fdb\u5165\u98de\u884c\u6a21\u5f0f\n\u8fd4\u56de\u503c\uff1a\nint \u5f00\u673a\u5c31\u8fdb\u5165\u98de\u884c\u6a21\u5f0f\u8fd4\u56de0,\u8fdb\u5165\u666e\u901a\u6a21\u5f0f\u8fd4\u56de1\n\u4f8b\u5b50\uff1a\n-- \u83b7\u53d6\u4e0a\u7535\u6a21\u5f0f\nnbiot.getBootCFUN()\n", "prefix": "nbiot.getBootCFUN"}, "nbiot.setPSM": {"body": "nbiot.setPSM(${1:psmMode},${2:tauTimeS},${3:activeTimeS})", "description": "nbiot.setPSM(psmMode,tauTimeS,activeTimeS) - \u8bbe\u7f6ePSM\u53c2\u6570\n\u4f20\u5165\u503c\uff1a\nint psm\u6a21\u5f0f, CMI_MM_DISABLE_PSM(0)/CMI_MM_ENABLE_PSM(1)/CMI_MM_DISCARD_PSM(2)\nint TAU time(unit: S)---related to T3412\nint active time(unit: S)---related to T3324\n\u8fd4\u56de\u503c\uff1a\nboolean \u8bbe\u7f6e\u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- \u8bbe\u7f6ePSM\nnbiot.setPSM(1, 60, 120)\n", "prefix": "nbiot.setPSM"}, "nbiot.setEDRX": {"body": "nbiot.setEDRX(${1:modeVal},${2:actType},${3:reqEdrxValueMs})", "description": "nbiot.setEDRX(modeVal,actType,reqEdrxValueMs) - \u8bbe\u7f6eEDRX\u53c2\u6570\n\u4f20\u5165\u503c\uff1a\nint \u6a21\u5f0f,CMI_MM_DISABLE_EDRX = 0/CMI_MM_ENABLE_EDRX_AND_DISABLE_IND = 1/CMI_MM_ENABLE_EDRX_AND_ENABLE_IND = 2/CMI_MM_DISCARD_EDRX = 3\nint \u53ef\u9009\u503c, 0\u6216\u80055. CMI_MM_EDRX_NO_ACT_OR_NOT_USE_EDRX = 0/CMI_MM_EDRX_NB_IOT = 5\nint edrx\u503c,4\u4e2a\u5b57\u8282\u957f\u5ea6\u4e8c\u8fdb\u5236\u5b57\u7b26\u4e32\n\u8fd4\u56de\u503c\uff1a\nboolean \u8bbe\u7f6e\u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- \u8bbe\u7f6eEDRX\nnbiot.setPSM(1, 5, \"0101\")\n", "prefix": "nbiot.setEDRX"}, "nbiot.getPSM": {"body": "nbiot.getPSM()", "description": "nbiot.getPSM() - \u83b7\u53d6PSM\u53c2\u6570\n\u8fd4\u56de\u503c\uff1a\nint psm\u6a21\u5f0f, CMI_MM_DISABLE_PSM(0)/CMI_MM_ENABLE_PSM(1)/CMI_MM_DISCARD_PSM(2)\nint TAU time(unit: S)---related to T3412\nint active time(unit: S)---related to T3324\n\u4f8b\u5b50\uff1a\n-- \u83b7\u53d6PSM\nlog.info(\"psm\", nbiot.getPSM())\n", "prefix": "nbiot.getPSM"}, "nbiot.getEDRX": {"body": "nbiot.getEDRX()", "description": "nbiot.getEDRX() - \u83b7\u53d6EDRX\u53c2\u6570\n\u8fd4\u56de\u503c\uff1a\nint \u6a21\u5f0f,CMI_MM_DISABLE_EDRX = 0/CMI_MM_ENABLE_EDRX_AND_DISABLE_IND = 1/CMI_MM_ENABLE_EDRX_AND_ENABLE_IND = 2/CMI_MM_DISCARD_EDRX = 3\nint \u53ef\u9009\u503c, 0\u6216\u80055. CMI_MM_EDRX_NO_ACT_OR_NOT_USE_EDRX = 0/CMI_MM_EDRX_NB_IOT = 5\nint edrx\u503c,\u5355\u4f4d\u6beb\u79d2\n\u4f8b\u5b50\uff1a\n-- \u83b7\u53d6EDRX\nlog.info(\"edrx\", nbiot.getEDRX())\n", "prefix": "nbiot.getEDRX"}, "nbiot.setTZ": {"body": "nbiot.setTZ(${1:tz},${2:auto})", "description": "nbiot.setTZ(tz, auto) - \u8bbe\u7f6e\u65f6\u533a\u53c2\u6570\n\u4f20\u5165\u503c\uff1a\nint \u65f6\u533a\u53c2\u6570,\u53ef\u9009, \u5355\u4f4d\u662f1/4\u65f6\u533a, \u9ed8\u8ba4\u4e3a \u4e1c8\u533a, \u5bf9\u5e94\u7684\u503c\u4e3a32\nboolean \u662f\u5426\u81ea\u52a8\u8bbe\u7f6e\u65f6\u533a,\u53ef\u9009, \u9ed8\u8ba4\u4e3atrue\n\u4f8b\u5b50\uff1a\n-- \u8bbe\u7f6e\u4e3a\u4e1c8\u533a,\u7981\u7528\u81ea\u52a8\u66f4\u65b0\u65f6\u533a\u529f\u80fd\nnbiot.setTZ(32, false)\n@usage \n-- \u542f\u7528\u81ea\u52a8\u66f4\u65b0\u65f6\u533a\u529f\u80fd\nnbiot.setTZ(nil, true)\n", "prefix": "nbiot.setTZ"}, "nbiot.getTZ": {"body": "nbiot.getTZ()", "description": "nbiot.getTZ() - \u83b7\u53d6\u65f6\u533a\u53c2\u6570\n\u8fd4\u56de\u503c\uff1a\nint \u65f6\u533a\u53c2\u6570,\u5355\u4f4d1/4\u65f6\u533a, \u9ed8\u8ba4\u4e1c8\u533a, \u503c\u4e3a32\nboolean \u81ea\u52a8\u8bbe\u7f6e\u65f6\u533a,\u9ed8\u8ba4\u4e3atrue\n\u4f8b\u5b50\uff1a\n-- \u83b7\u53d6\u65f6\u533a\u53c2\u6570\nlog.info(\"timezone\", nbiot.getTZ())\n", "prefix": "nbiot.getTZ"}, "nbiot.setBands": {"body": "nbiot.setBands(${1:modes})", "description": "nbiot.setBands(modes) - \u8bbe\u7f6eBand\u6a21\u5f0f(\u6682\u4e0d\u53ef\u7528)\n\u4f20\u5165\u503c\uff1a\nany \u6a21\u5f0f,\u9700\u8981\u662f\u4e00\u4e2atable\u5f62\u5f0f\u7684\u6570\u7ec4,\u5fc5\u987b\u4f20\u5165\n\u8fd4\u56de\u503c\uff1a\nboolean \u8bbe\u7f6e\u7ed3\u679c\n\u4f8b\u5b50\uff1a\n-- \u4ec5\u641c\u7d22band 8\nlog.info(\"band\", nbiot.setBands({8}))\n", "prefix": "nbiot.setBands"}, "nbiot.getBands": {"body": "nbiot.getBands()", "description": "nbiot.getBands() - \u83b7\u53d6\u5f53\u524d\u4f7f\u7528\u7684Band\u6a21\u5f0f(\u6682\u4e0d\u53ef\u7528)\n\u8fd4\u56de\u503c\uff1a\ntable \u6240\u8bbe\u7f6e\u7684band\u7684\u6570\u7ec4\n\u4f8b\u5b50\uff1a\n-- \u4ec5\u641c\u7d22band 8\nlog.info(\"band\", json.encode(nbiot.getBands()))\n", "prefix": "nbiot.getBands"}, "nbiot.setEDRXPtw": {"body": "nbiot.setEDRXPtw(${1:val})", "description": "nbiot.setEDRXPtw(val) - \u8bbe\u7f6eEDRX PTW\u53c2\u6570\n\u4f20\u5165\u503c\uff1a\nint \u9700\u8981\u8bbe\u7f6e\u7684\u503c\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- \u8bbe\u7f6ePTW\u503c\u4e3aX\nnbiot.setEDRXPtw(val)\n-- \u53ef\u9009\u503c\nreqPtwValue:\nNB-S1 mode\nThe field contains the PTW value in seconds for NB-S1 mode.The PTW value is used\nas specified in 3GPP TS 23.682 [133a].The PTW value is derived as follows:\nbit\n Paging Time Window length\n0 0 0 0 2,56 seconds\n0 0 0 1 5,12 seconds\n0 0 1 0 7,68 seconds\n0 0 1 1 10,24 seconds\n0 1 0 0 12,8 seconds\n0 1 0 1 15,36 seconds\n0 1 1 0 17,92 seconds\n0 1 1 1 20,48 seconds\n1 0 0 0 23,04 seconds\n1 0 0 1 25,6 seconds\n1 0 1 0 28,16 seconds\n1 0 1 1 30,72 seconds\n1 1 0 0 33,28 seconds\n1 1 0 1 35,84 seconds\n1 1 1 0 38,4 seconds\n1 1 1 1 40,96 seconds\n \n", "prefix": "nbiot.setEDRXPtw"}, "nbiot.getEDRXPtw": {"body": "nbiot.getEDRXPtw()", "description": "nbiot.getEDRXPtw() - \u83b7\u53d6EDRX PTW\u53c2\u6570\n\u8fd4\u56de\u503c\uff1a\nint ptw\u503c\n\u4f8b\u5b50\uff1a\n-- \u6253\u5370PTW\u503c\nlog.info(\"ptw\", nbiot.getEDRXPtw())\n", "prefix": "nbiot.getEDRXPtw"}, "nbiot.ticks": {"body": "nbiot.ticks()", "description": "nbiot.ticks() - \u83b7\u53d6tick\u8ba1\u6570\n\u8fd4\u56de\u503c\uff1a\nint tick\u8ba1\u6570\n\u4f8b\u5b50\uff1a\n-- \u6253\u5370PTW\u503c\nlog.info(\"tick\", nbiot.ticks())\n", "prefix": "nbiot.ticks"}, "nes.init": {"body": "nes.init(${1:file_path})", "description": "nes.init(file_path) - nes\u6a21\u62df\u5668\u521d\u59cb\u5316\n\u4f20\u5165\u503c\uff1a\nstring file_path \u6587\u4ef6\u8def\u5f84\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\nnes.init(\"/luadb/super_mario.nes\")\n", "prefix": "nes.init"}, "nes.key": {"body": "nes.key(${1:key},${2:val})", "description": "nes.key(key,val) - nes\u6a21\u62df\u5668\u521d\u59cb\u5316\n\u4f20\u5165\u503c\uff1a\nnumber key \u6309\u952e\nnumber val \u72b6\u6001 1\u6309\u4e0b 0\u62ac\u8d77\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\nnes.init(\"/luadb/super_mario.nes\")\n", "prefix": "nes.key"}, "nimble.init": {"body": "nimble.init(${1:name})", "description": "nimble.init(name) - \u521d\u59cb\u5316BLE\u4e0a\u4e0b\u6587,\u5f00\u59cb\u5bf9\u5916\u5e7f\u64ad/\u626b\u63cf\n\u4f20\u5165\u503c\uff1a\nstring \u84dd\u7259\u8bbe\u5907\u540d\u79f0,\u53ef\u9009,\u5efa\u8bae\u586b\u5199\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u4e0e\u5426\n\u4f8b\u5b50\uff1a\n-- \u53c2\u8003 demo/nimble\n-- \u672c\u51fd\u6570\u5bf9\u6240\u6709\u6a21\u5f0f\u90fd\u9002\u7528\n", "prefix": "nimble.init"}, "nimble.deinit": {"body": "nimble.deinit()", "description": "nimble.deinit() - \u5173\u95edBLE\u4e0a\u4e0b\u6587\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u4e0e\u5426\n\u4f8b\u5b50\uff1a\n-- \u4ec5\u90e8\u5206\u8bbe\u5907\u652f\u6301,\u5f53\u524d\u53ef\u80fd\u90fd\u4e0d\u652f\u6301\n-- \u672c\u51fd\u6570\u5bf9\u6240\u6709\u6a21\u5f0f\u90fd\u9002\u7528\n", "prefix": "nimble.deinit"}, "nimble.mode": {"body": "nimble.mode(${1:tp})", "description": "nimble.mode(tp) - \u8bbe\u7f6e\u6a21\u5f0f\n\u4f20\u5165\u503c\uff1a\nint \u6a21\u5f0f, \u9ed8\u8ba4server/peripheral, \u53ef\u9009 client/central\u6a21\u5f0f nimble.MODE_BLE_CLIENT\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u4e0e\u5426\n\u4f8b\u5b50\uff1a\n-- \u53c2\u8003 demo/nimble\n-- \u5fc5\u987b\u5728nimble.init()\u4e4b\u524d\u8c03\u7528\n-- nimble.mode(nimble.MODE_BLE_CLIENT) -- \u7b80\u79f0\u4ece\u673a\u6a21\u5f0f,\u672a\u5b8c\u5584\n", "prefix": "nimble.mode"}, "nimble.connok": {"body": "nimble.connok()", "description": "nimble.connok() - \u662f\u5426\u5df2\u7ecf\u5efa\u7acb\u8fde\u63a5\n\u8fd4\u56de\u503c\uff1a\nbool \u5df2\u8fde\u63a5\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\nlog.info(\"ble\", \"connected?\", nimble.connok())\n-- \u4ece\u673aperipheral\u6a21\u5f0f, \u8bbe\u5907\u662f\u5426\u5df2\u7ecf\u88ab\u8fde\u63a5\n-- \u4e3b\u673acentral\u6a21\u5f0f, \u662f\u5426\u5df2\u7ecf\u8fde\u63a5\u5230\u8bbe\u5907\n-- ibeacon\u6a21\u5f0f, \u65e0\u610f\u4e49\n", "prefix": "nimble.connok"}, "nimble.send_msg": {"body": "nimble.send_msg(${1:conn},${2:handle},${3:data})", "description": "nimble.send_msg(conn, handle, data) - \u53d1\u9001\u4fe1\u606f\n\u4f20\u5165\u503c\uff1a\nint \u8fde\u63a5id, \u5f53\u524d\u56fa\u5b9a\u586b1\nint \u5904\u7406id, \u5f53\u524d\u56fa\u5b9a\u586b0\nstring \u6570\u636e\u5b57\u7b26\u4e32,\u53ef\u5305\u542b\u4e0d\u53ef\u89c1\u5b57\u7b26\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u4e0e\u5426\n\u4f8b\u5b50\uff1a\n-- \u53c2\u8003 demo/nimble\n-- \u672c\u51fd\u6570\u5bf9peripheral/\u4ece\u673a\u6a21\u5f0f\u9002\u7528\n", "prefix": "nimble.send_msg"}, "nimble.setUUID": {"body": "nimble.setUUID(${1:tp},${2:addr})", "description": "nimble.setUUID(tp, addr) - \u8bbe\u7f6eserver/peripheral\u7684UUID\n\u4f20\u5165\u503c\uff1a\nstring \u914d\u7f6e\u5b57\u7b26\u4e32,\u540e\u9762\u7684\u793a\u4f8b\u6709\u8bf4\u660e\nstring \u5730\u5740\u5b57\u7b26\u4e32\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u4e0e\u5426\n\u4f8b\u5b50\uff1a\n-- \u53c2\u8003 demo/nimble, 2023-02-25\u4e4b\u540e\u7f16\u8bd1\u7684\u56fa\u4ef6\u652f\u6301\u672cAPI\n-- \u5fc5\u987b\u5728nimble.init()\u4e4b\u524d\u8c03\u7528\n-- \u672c\u51fd\u6570\u5bf9peripheral/\u4ece\u673a\u6a21\u5f0f\u9002\u7528\n\n-- \u8bbe\u7f6eSERVER/Peripheral\u6a21\u5f0f\u4e0b\u7684UUID, \u652f\u6301\u8bbe\u7f6e3\u4e2a\n-- \u5730\u5740\u652f\u6301 2/4/16\u5b57\u8282, \u9700\u8981\u4e8c\u8fdb\u5236\u6570\u636e\n-- 2\u5b57\u8282\u5730\u5740\u793a\u4f8b: AABB, \u5199 string.fromHex(\"AABB\") ,\u6216\u8005 string.char(0xAA, 0xBB)\n-- 4\u5b57\u8282\u5730\u5740\u793a\u4f8b: AABBCCDD , \u5199 string.fromHex(\"AABBCCDD\") ,\u6216\u8005 string.char(0xAA, 0xBB, 0xCC, 0xDD)\nnimble.setUUID(\"srv\", string.fromHex(\"380D\")) -- \u670d\u52a1\u4e3bUUID , \u9ed8\u8ba4\u503c 180D\nnimble.setUUID(\"write\", string.fromHex(\"FF31\")) -- \u5f80\u672c\u8bbe\u5907\u5199\u6570\u636e\u7684UUID, \u9ed8\u8ba4\u503c FFF1\nnimble.setUUID(\"indicate\", string.fromHex(\"FF32\")) -- \u8ba2\u9605\u672c\u8bbe\u5907\u7684\u6570\u636e\u7684UUID,\u9ed8\u8ba4\u503c FFF2\n", "prefix": "nimble.setUUID"}, "nimble.mac": {"body": "nimble.mac()", "description": "nimble.mac() - \u83b7\u53d6\u84dd\u7259MAC\n\u8fd4\u56de\u503c\uff1a\nstring \u84dd\u7259MAC\u5730\u5740,6\u5b57\u8282\n\u4f8b\u5b50\uff1a\n-- \u53c2\u8003 demo/nimble, 2023-02-25\u4e4b\u540e\u7f16\u8bd1\u7684\u56fa\u4ef6\u652f\u6301\u672cAPI\n-- \u672c\u51fd\u6570\u5bf9\u6240\u6709\u6a21\u5f0f\u90fd\u9002\u7528\nlocal mac = nimble.mac()\nlog.info(\"ble\", \"mac\", mac and mac:toHex() or \"Unknwn\")\n", "prefix": "nimble.mac"}, "nimble.sendNotify": {"body": "nimble.sendNotify(${1:srv_uuid},${2:chr_uuid},${3:data})", "description": "nimble.sendNotify(srv_uuid, chr_uuid, data) - \u53d1\u9001notify\n\u4f20\u5165\u503c\uff1a\nstring \u670d\u52a1\u7684UUID,\u9884\u7559,\u5f53\u524d\u586bnil\u5c31\u884c\nstring \u7279\u5f81\u7684UUID,\u5fc5\u987b\u586b\u5199\nstring \u6570\u636e, \u5fc5\u586b, \u8ddfMTU\u5927\u5c0f\u76f8\u5173, \u4e00\u822c\u4e0d\u8981\u8d85\u8fc7256\u5b57\u8282\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- \u672cAPI\u4e8e 2023.07.31 \u65b0\u589e\n-- \u672c\u51fd\u6570\u5bf9peripheral\u6a21\u5f0f\u9002\u7528\nnimble.sendNotify(nil, string.fromHex(\"FF01\"), string.char(0x31, 0x32, 0x33, 0x34, 0x35))\n", "prefix": "nimble.sendNotify"}, "nimble.sendIndicate": {"body": "nimble.sendIndicate(${1:srv_uuid},${2:chr_uuid},${3:data})", "description": "nimble.sendIndicate(srv_uuid, chr_uuid, data) - \u53d1\u9001indicate\n\u4f20\u5165\u503c\uff1a\nstring \u670d\u52a1\u7684UUID,\u9884\u7559,\u5f53\u524d\u586bnil\u5c31\u884c\nstring \u7279\u5f81\u7684UUID,\u5fc5\u987b\u586b\u5199\nstring \u6570\u636e, \u5fc5\u586b, \u8ddfMTU\u5927\u5c0f\u76f8\u5173, \u4e00\u822c\u4e0d\u8981\u8d85\u8fc7256\u5b57\u8282\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- \u672cAPI\u4e8e 2023.07.31 \u65b0\u589e\n-- \u672c\u51fd\u6570\u5bf9peripheral\u6a21\u5f0f\u9002\u7528\nnimble.sendIndicate(nil, string.fromHex(\"FF01\"), string.char(0x31, 0x32, 0x33, 0x34, 0x35))\n", "prefix": "nimble.sendIndicate"}, "nimble.advParams": {"body": "nimble.advParams(${1:conn_mode},${2:disc_mode},${3:itvl_min},${4:itvl_max},${5:channel_map},${6:filter_policy},${7:high_duty_cycle})", "description": "nimble.advParams(conn_mode, disc_mode, itvl_min, itvl_max, channel_map, filter_policy, high_duty_cycle) - \u8bbe\u7f6e\u5e7f\u64ad\u53c2\u6570\n\u4f20\u5165\u503c\uff1a\nint \u5e7f\u64ad\u6a21\u5f0f, 0 - \u4e0d\u53ef\u8fde\u63a5, 1 - \u5b9a\u5411\u8fde\u63a5, 2 - \u672a\u5b9a\u5411\u8fde\u63a5, \u9ed8\u8ba40\nint \u53d1\u73b0\u6a21\u5f0f, 0 - \u4e0d\u53ef\u53d1\u73b0, 1 - \u9650\u5236\u53d1\u73b0, 3 - \u901a\u7528\u53d1\u73b0, \u9ed8\u8ba40\nint \u6700\u5c0f\u5e7f\u64ad\u95f4\u9694, 0 - \u4f7f\u7528\u9ed8\u8ba4\u503c, \u8303\u56f4 1 - 65535, \u5355\u4f4d0.625ms, \u9ed8\u8ba40\nint \u6700\u5927\u5e7f\u64ad\u95f4\u9694, 0 - \u4f7f\u7528\u9ed8\u8ba4\u503c, \u8303\u56f4 1 - 65535, \u5355\u4f4d0.625ms, \u9ed8\u8ba40\nint \u5e7f\u64ad\u901a\u9053, \u9ed8\u8ba40, \u4e00\u822c\u4e0d\u9700\u8981\u8bbe\u7f6e\nint \u8fc7\u6ee4\u89c4\u5219, \u9ed8\u8ba40, \u4e00\u822c\u4e0d\u9700\u8981\u8bbe\u7f6e\nint \u5f53\u5e7f\u64ad\u6a21\u5f0f\u4e3a\"\u5b9a\u5411\u8fde\u63a5\"\u65f6,\u662f\u5426\u4f7f\u7528\u9ad8\u5360\u7a7a\u6bd4\u6a21\u5f0f, \u9ed8\u8ba40, \u53ef\u90091\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n-- \u5f53\u524d\u4ec5ibeacon\u6a21\u5f0f/peripheral/\u4ece\u673a\u53ef\u4f7f\u7528\n-- \u4f8b\u5982\u8bbe\u7f6e \u4e0d\u53ef\u8fde\u63a5 + \u9650\u5236\u53d1\u73b0\n-- \u9700\u8981\u5728nimble.init\u4e4b\u524d\u8bbe\u7f6e\u597d\nnimble.advParams(0, 1)\n-- \u6ce8\u610fperipheral\u6a21\u5f0f\u4e0b\u81ea\u52a8\u914d\u7f6e conn_mode \u548c disc_mode\n", "prefix": "nimble.advParams"}, "nimble.setChr": {"body": "nimble.setChr(${1:index},${2:uuid},${3:flags})", "description": "nimble.setChr(index, uuid, flags) - \u8bbe\u7f6echr\u7684\u7279\u5f81\n\u4f20\u5165\u503c\uff1a\nint chr\u7684\u7d22\u5f15, \u9ed8\u8ba40-3\nint chr\u7684UUID, \u53ef\u4ee5\u662f2/4/16\u5b57\u8282\nint chr\u7684FLAGS, \u8bf7\u67e5\u9605\u5e38\u91cf\u8868\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n-- \u4ec5peripheral/\u4ece\u673a\u53ef\u4f7f\u7528\nnimble.setChr(0, string.fromHex(\"FF01\"), nimble.CHR_F_WRITE_NO_RSP | nimble.CHR_F_NOTIFY)\nnimble.setChr(1, string.fromHex(\"FF02\"), nimble.CHR_F_READ | nimble.CHR_F_NOTIFY)\nnimble.setChr(2, string.fromHex(\"FF03\"), nimble.CHR_F_WRITE_NO_RSP)\n-- \u53ef\u67e5\u9605 demo/nimble/kt6368a\n", "prefix": "nimble.setChr"}, "nimble.config": {"body": "nimble.config(${1:id},${2:value})", "description": "nimble.config(id, value) - \u8bbe\u7f6echr\u7684\u7279\u5f81\n\u4f20\u5165\u503c\uff1a\nint \u914d\u7f6e\u7684id,\u8bf7\u67e5\u9605\u5e38\u91cf\u8868\nany \u6839\u636e\u914d\u7f6e\u7684\u4e0d\u540c, \u6709\u4e0d\u540c\u7684\u53ef\u9009\u503c\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n-- \u672c\u51fd\u6570\u5728\u4efb\u610f\u6a21\u5f0f\u53ef\u7528\n-- \u672cAPI\u4e8e 2023.07.31 \u65b0\u589e\n-- \u4f8b\u5982\u8bbe\u7f6e\u5730\u5740\u8f6c\u6362\u7684\u5927\u5c0f\u7aef, \u9ed8\u8ba4\u662f0, \u517c\u5bb9\u8001\u7684\u4ee3\u7801\n-- \u8bbe\u7f6e\u62101, \u670d\u52a1UUID\u548cchr\u7684UUID\u66f4\u76f4\u89c2\nnimble.config(nimble.CFG_ADDR_ORDER, 1)\n", "prefix": "nimble.config"}, "nimble.ibeacon": {"body": "nimble.ibeacon(${1:data},${2:major},${3:minor},${4:measured_power})", "description": "nimble.ibeacon(data, major, minor, measured_power) - \u914d\u7f6eiBeacon\u7684\u53c2\u6570,\u4ec5iBeacon\u6a21\u5f0f\u53ef\u7528\n\u4f20\u5165\u503c\uff1a\nstring \u6570\u636e, \u5fc5\u987b\u662f16\u5b57\u8282\nint \u4e3b\u7248\u672c\u53f7,\u9ed8\u8ba42, \u53ef\u9009, \u8303\u56f4 0 ~ 65536\nint \u6b21\u7248\u672c\u53f7,\u9ed8\u8ba410,\u53ef\u9009, \u8303\u56f4 0 ~ 65536\nint \u540d\u4e49\u529f\u7387, \u9ed8\u8ba40, \u8303\u56f4 -126 \u5230 20 \n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- \u53c2\u8003 demo/nimble, 2023-02-25\u4e4b\u540e\u7f16\u8bd1\u7684\u56fa\u4ef6\u652f\u6301\u672cAPI\n-- \u672c\u51fd\u6570\u5bf9ibeacon\u6a21\u5f0f\u9002\u7528\nnimble.ibeacon(data, 2, 10, 0)\nnimble.init()\n", "prefix": "nimble.ibeacon"}, "nimble.advData": {"body": "nimble.advData(${1:data},${2:flags})", "description": "nimble.advData(data, flags) - \u914d\u7f6e\u5e7f\u64ad\u6570\u636e,\u4ec5iBeacon\u6a21\u5f0f\u53ef\u7528\n\u4f20\u5165\u503c\uff1a\nstring \u5e7f\u64ad\u6570\u636e, \u5f53\u524d\u6700\u9ad8128\u5b57\u8282\nint \u5e7f\u64ad\u6807\u8bc6, \u53ef\u9009, \u9ed8\u8ba4\u503c\u662f 0x06,\u5373 \u4e0d\u652f\u6301\u4f20\u7edf\u84dd\u7259(0x04) + \u666e\u901a\u53d1\u73b0\u6a21\u5f0f(0x02)\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- \u53c2\u8003 demo/nimble/adv_free, 2023-03-18\u4e4b\u540e\u7f16\u8bd1\u7684\u56fa\u4ef6\u652f\u6301\u672cAPI\n-- \u672c\u51fd\u6570\u5bf9ibeacon\u6a21\u5f0f\u9002\u7528\n-- \u6570\u636e\u6765\u6e90\u53ef\u4ee5\u591a\u79cd\u591a\u6837\nlocal data = string.fromHex(\"123487651234876512348765123487651234876512348765\")\n-- local data = crypto.trng(25)\n-- local data = string.char(0x11, 0x13, 0xA3, 0x5A, 0x11, 0x13, 0xA3, 0x5A, 0x11, 0x13, 0xA3, 0x5A, 0x11, 0x13, 0xA3, 0x5A)\nnimble.advData(data)\nnimble.init()\n\n-- nimble\u652f\u6301\u5728init\u4e4b\u540e\u7684\u4efb\u610f\u65f6\u523b\u518d\u6b21\u8c03\u7528, \u4ee5\u5b9e\u73b0\u6570\u636e\u66f4\u65b0\n-- \u4f8b\u5982 1\u5206\u949f\u53d8\u4e00\u6b21\nwhile 1 do\n sys.wait(60000)\n local data = crypto.trng(25)\n nimble.advData(data)\nend\n", "prefix": "nimble.advData"}, "nimble.scan": {"body": "nimble.scan(${1:timeout})", "description": "nimble.scan(timeout) - \u626b\u63cf\u4ece\u673a\n\u4f20\u5165\u503c\uff1a\nint \u8d85\u65f6\u65f6\u95f4,\u5355\u4f4d\u79d2,\u9ed8\u8ba428\u79d2\n\u8fd4\u56de\u503c\uff1a\nbool \u542f\u52a8\u626b\u63cf\u6210\u529f\u4e0e\u5426\n\u4f8b\u5b50\uff1a\n-- \u53c2\u8003 demo/nimble/scan\n-- \u672c\u51fd\u6570\u5bf9central/\u4e3b\u673a\u6a21\u5f0f\u9002\u7528\n-- \u672c\u51fd\u6570\u4f1a\u76f4\u63a5\u8fd4\u56de, \u7136\u540e\u901a\u8fc7\u5f02\u6b65\u56de\u8c03\u8fd4\u56de\u7ed3\u679c\n\n-- \u8c03\u7528\u672c\u51fd\u6570\u524d, \u9700\u8981\u5148\u786e\u4fdd\u5df2\u7ecfnimble.init()\nnimble.scan()\n-- timeout\u53c2\u6570\u4e8e 2023.7.11 \u6dfb\u52a0\n", "prefix": "nimble.scan"}, "nimble.connect": {"body": "nimble.connect(${1:mac})", "description": "nimble.connect(mac) - \u8fde\u63a5\u5230\u4ece\u673a\n\u4f20\u5165\u503c\uff1a\nstring \u8bbe\u5907\u7684MAC\u5730\u5740\n\u8fd4\u56de\u503c\uff1a\nbool \u542f\u52a8\u8fde\u63a5\u6210\u529f\u4e0e\u5426\n\u4f8b\u5b50\uff1a\n-- \u672c\u51fd\u6570\u5bf9central/\u4e3b\u673a\u6a21\u5f0f\u9002\u7528\n-- \u672c\u51fd\u6570\u4f1a\u76f4\u63a5\u8fd4\u56de, \u7136\u540e\u901a\u8fc7\u5f02\u6b65\u56de\u8c03\u8fd4\u56de\u7ed3\u679c\n", "prefix": "nimble.connect"}, "nimble.disconnect": {"body": "nimble.disconnect()", "description": "nimble.disconnect() - \u65ad\u5f00\u4e0e\u4ece\u673a\u7684\u8fde\u63a5\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n-- \u672c\u51fd\u6570\u5bf9central/\u4e3b\u673a\u6a21\u5f0f\u9002\u7528\n-- \u672c\u51fd\u6570\u4f1a\u76f4\u63a5\u8fd4\u56de\n", "prefix": "nimble.disconnect"}, "nimble.discSvr": {"body": "nimble.discSvr()", "description": "nimble.discSvr() - \u626b\u63cf\u4ece\u673a\u7684\u670d\u52a1\u5217\u8868\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n-- \u672c\u51fd\u6570\u5bf9central/\u4e3b\u673a\u6a21\u5f0f\u9002\u7528\n-- \u672c\u51fd\u6570\u4f1a\u76f4\u63a5\u8fd4\u56de,\u7136\u540e\u5f02\u6b65\u8fd4\u56de\u7ed3\u679c\n-- \u8fd9\u4e2aAPI\u901a\u5e38\u4e0d\u9700\u8981\u8c03\u7528, \u5728\u8fde\u63a5\u4ece\u673a\u5b8c\u6210\u540e,\u4f1a\u4e3b\u52a8\u8c03\u7528\u4e00\u6b21\n", "prefix": "nimble.discSvr"}, "nimble.listSvr": {"body": "nimble.listSvr()", "description": "nimble.listSvr() - \u83b7\u53d6\u4ece\u673a\u7684\u670d\u52a1\u5217\u8868\n\u8fd4\u56de\u503c\uff1a\ntable \u670d\u52a1UUID\u7684\u6570\u7ec4\n\u4f8b\u5b50\uff1a\n-- \u672c\u51fd\u6570\u5bf9central/\u4e3b\u673a\u6a21\u5f0f\u9002\u7528\n", "prefix": "nimble.listSvr"}, "nimble.discChr": {"body": "nimble.discChr(${1:svr_uuid})", "description": "nimble.discChr(svr_uuid) - \u626b\u63cf\u4ece\u673a\u7684\u6307\u5b9a\u670d\u52a1\u7684\u7279\u5f81\u503c\n\u4f20\u5165\u503c\uff1a\nstring \u6307\u5b9a\u670d\u52a1\u7684UUID\u503c\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u542f\u52a8\u626b\u63cf\u4e0e\u5426\n\u4f8b\u5b50\uff1a\n-- \u672c\u51fd\u6570\u5bf9central/\u4e3b\u673a\u6a21\u5f0f\u9002\u7528\n", "prefix": "nimble.discChr"}, "nimble.listChr": {"body": "nimble.listChr(${1:svr_uuid})", "description": "nimble.listChr(svr_uuid) - \u83b7\u53d6\u4ece\u673a\u7684\u6307\u5b9a\u670d\u52a1\u7684\u7279\u5f81\u503c\u5217\u8868\n\u4f20\u5165\u503c\uff1a\nstring \u6307\u5b9a\u670d\u52a1\u7684UUID\u503c\n\u8fd4\u56de\u503c\uff1a\ntable \u7279\u5f81\u503c\u5217\u8868,\u5305\u542bUUID\u548cflags\n\u4f8b\u5b50\uff1a\n-- \u672c\u51fd\u6570\u5bf9central/\u4e3b\u673a\u6a21\u5f0f\u9002\u7528\n", "prefix": "nimble.listChr"}, "nimble.discDsc": {"body": "nimble.discDsc(${1:svr_uuid},${2:chr_uuid})", "description": "nimble.discDsc(svr_uuid, chr_uuid) - \u626b\u63cf\u4ece\u673a\u7684\u6307\u5b9a\u670d\u52a1\u7684\u7279\u5f81\u503c\u7684\u5176\u4ed6\u5c5e\u6027\n\u4f20\u5165\u503c\uff1a\nstring \u6307\u5b9a\u670d\u52a1\u7684UUID\u503c\nstring \u7279\u5f81\u503c\u7684UUID\u503c\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u542f\u52a8\u626b\u63cf\u4e0e\u5426\n\u4f8b\u5b50\uff1a\n-- \u672c\u51fd\u6570\u5bf9central/\u4e3b\u673a\u6a21\u5f0f\u9002\u7528\n", "prefix": "nimble.discDsc"}, "nimble.writeChr": {"body": "nimble.writeChr(${1:svr_uuid},${2:chr_uuid})", "description": "nimble.writeChr(svr_uuid, chr_uuid) - \u4ece\u6307\u5b9a\u7684\u670d\u52a1\u7684\u6307\u5b9a\u7279\u5f81\u503c\u8bfb\u53d6\u6570\u636e(\u5f02\u6b65)\n\u4f20\u5165\u503c\uff1a\nstring \u6307\u5b9a\u670d\u52a1\u7684UUID\u503c\nstring \u6307\u5b9a\u7279\u5f81\u503c\u7684UUID\u503c\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u542f\u52a8\u5199\u5165\u4e0e\u5426\n\u4f8b\u5b50\uff1a\n-- \u672c\u51fd\u6570\u5bf9central/\u4e3b\u673a\u6a21\u5f0f\u9002\u7528\n-- \u8be6\u7ec6\u7528\u6cd5\u8bf7\u53c2\u6570 demo/nimble/central\n", "prefix": "nimble.writeChr"}, "nimble.subChr": {"body": "nimble.subChr(${1:svr_uuid},${2:chr_uuid})", "description": "nimble.subChr(svr_uuid, chr_uuid) - \u8ba2\u9605\u6307\u5b9a\u7684\u670d\u52a1\u7684\u6307\u5b9a\u7279\u5f81\u503c\n\u4f20\u5165\u503c\uff1a\nstring \u6307\u5b9a\u670d\u52a1\u7684UUID\u503c\nstring \u6307\u5b9a\u7279\u5f81\u503c\u7684UUID\u503c\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u542f\u52a8\u8ba2\u9605\u4e0e\u5426\n\u4f8b\u5b50\uff1a\n-- \u672c\u51fd\u6570\u5bf9central/\u4e3b\u673a\u6a21\u5f0f\u9002\u7528\n-- \u8be6\u7ec6\u7528\u6cd5\u8bf7\u53c2\u6570 demo/nimble/central\n", "prefix": "nimble.subChr"}, "nimble.unsubChr": {"body": "nimble.unsubChr(${1:svr_uuid},${2:chr_uuid})", "description": "nimble.unsubChr(svr_uuid, chr_uuid) - \u53d6\u6d88\u8ba2\u9605\u6307\u5b9a\u7684\u670d\u52a1\u7684\u6307\u5b9a\u7279\u5f81\u503c\n\u4f20\u5165\u503c\uff1a\nstring \u6307\u5b9a\u670d\u52a1\u7684UUID\u503c\nstring \u6307\u5b9a\u7279\u5f81\u503c\u7684UUID\u503c\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u542f\u52a8\u53d6\u6d88\u8ba2\u9605\u4e0e\u5426\n\u4f8b\u5b50\uff1a\n-- \u672c\u51fd\u6570\u5bf9central/\u4e3b\u673a\u6a21\u5f0f\u9002\u7528\n-- \u8be6\u7ec6\u7528\u6cd5\u8bf7\u53c2\u6570 demo/nimble/central\n", "prefix": "nimble.unsubChr"}, "otp.read": {"body": "otp.read(${1:zone},${2:offset},${3:len})", "description": "otp.read(zone, offset, len) - \u8bfb\u53d6\u6307\u5b9aOTP\u533a\u57df\u8bfb\u53d6\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nint \u533a\u57df, \u901a\u5e38\u4e3a0/1/2/3, \u4e0e\u5177\u4f53\u786c\u4ef6\u76f8\u5173\nint \u504f\u79fb\u91cf\nint \u8bfb\u53d6\u957f\u5ea6, \u5355\u4f4d\u5b57\u8282, \u5fc5\u987b\u662f4\u7684\u500d\u6570, \u4e0d\u80fd\u8d85\u8fc74096\u5b57\u8282\n\u8fd4\u56de\u503c\uff1a\nstring \u6210\u529f\u8fd4\u56de\u5b57\u7b26\u4e32, \u5426\u5219\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\n\nlocal otpdata = otp.read(0, 0, 64)\nif otpdata then\n log.info(\"otp\", otpdata:toHex())\nend\n", "prefix": "otp.read"}, "otp.write": {"body": "otp.write(${1:zone},${2:data},${3:offset})", "description": "otp.write(zone, data, offset) - \u5f80\u6307\u5b9aOTP\u533a\u57df\u5199\u5165\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nint \u533a\u57df, \u901a\u5e38\u4e3a0/1/2/3, \u4e0e\u5177\u4f53\u786c\u4ef6\u76f8\u5173\nstring \u6570\u636e, \u957f\u5ea6\u5fc5\u987b\u662f4\u4e2a\u500d\u6570\nint \u504f\u79fb\u91cf\n\u8fd4\u56de\u503c\uff1a\nbooL \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n", "prefix": "otp.write"}, "otp.erase": {"body": "otp.erase(${1:zone})", "description": "otp.erase(zone) - \u64e6\u9664\u6307\u5b9aOTP\u533a\u57df\n\u4f20\u5165\u503c\uff1a\nint \u533a\u57df, \u901a\u5e38\u4e3a0/1/2/3, \u4e0e\u5177\u4f53\u786c\u4ef6\u76f8\u5173\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n", "prefix": "otp.erase"}, "otp.lock": {"body": "otp.lock(${1:zone})", "description": "otp.lock(zone) - \u9501\u5b9aOTP\u533a\u57df. \u7279\u522b\u6ce8\u610f!!\u4e00\u65e6\u52a0\u9501\u5373\u65e0\u6cd5\u89e3\u9501,OTP\u53d8\u6210\u53ea\u8bfb!!!\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n", "prefix": "otp.lock"}, "pack.unpack": {"body": "pack.unpack(${1:string},${2:format},${3:init})", "description": "pack.unpack( string, format, init) - \u89e3\u5305\u5b57\u7b26\u4e32\n\u4f20\u5165\u503c\uff1a\nstring \u9700\u89e3\u5305\u7684\u5b57\u7b26\u4e32\nstring \u683c\u5f0f\u5316\u7b26\u53f7 '<':\u8bbe\u4e3a\u5c0f\u7aef\u7f16\u7801 '>':\u8bbe\u4e3a\u5927\u7aef\u7f16\u7801 '=':\u5927\u5c0f\u7aef\u9075\u5faa\u672c\u5730\u8bbe\u7f6e 'z':\u7a7a\u5b57\u7b26\u4e32 'p':byte\u5b57\u7b26\u4e32 'P':word\u5b57\u7b26\u4e32 'a':size_t\u5b57\u7b26\u4e32 'A':\u6307\u5b9a\u957f\u5ea6\u5b57\u7b26\u4e32 'f':float 'd':double 'n':Lua number 'c':char 'b':byte = unsigned char 'h':short 'H':unsigned short 'i':int 'I':unsigned int 'l':long 'L':unsigned long\nint \u9ed8\u8ba4\u503c\u4e3a1\uff0c\u6807\u8bb0\u89e3\u5305\u5f00\u59cb\u7684\u4f4d\u7f6e\n\u8fd4\u56de\u503c\uff1a\nint \u5b57\u7b26\u4e32\u6807\u8bb0\u7684\u4f4d\u7f6e\nany \u7b2c\u4e00\u4e2a\u89e3\u5305\u7684\u503c, \u6839\u636eformat\u503c,\u53ef\u80fd\u6709N\u4e2a\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\nlocal _,a = pack.unpack(x,\">h\") --\u89e3\u5305\u6210short (2\u5b57\u8282)\n", "prefix": "pack.unpack"}, "pack.pack": {"body": "pack.pack(${1:format},${2:val1},${3:val2},${4:val3},${5:valn})", "description": "pack.pack( format, val1, val2, val3, valn ) - \u6253\u5305\u5b57\u7b26\u4e32\u7684\u503c\n\u4f20\u5165\u503c\uff1a\nstring format \u683c\u5f0f\u5316\u7b26\u53f7 '<':\u8bbe\u4e3a\u5c0f\u7aef\u7f16\u7801 '>':\u8bbe\u4e3a\u5927\u7aef\u7f16\u7801 '=':\u5927\u5c0f\u7aef\u9075\u5faa\u672c\u5730\u8bbe\u7f6e 'z':\u7a7a\u5b57\u7b26\u4e32 'p':byte\u5b57\u7b26\u4e32 'P':word\u5b57\u7b26\u4e32 'a':size_t\u5b57\u7b26\u4e32 'A':\u6307\u5b9a\u957f\u5ea6\u5b57\u7b26\u4e32 'f':float 'd':double 'n':Lua number 'c':char 'b':byte = unsigned char 'h':short 'H':unsigned short 'i':int 'I':unsigned int 'l':long 'L':unsigned long\nany \u7b2c\u4e00\u4e2a\u9700\u6253\u5305\u7684\u503c\nany \u7b2c\u4e8c\u4e2a\u9700\u6253\u5305\u7684\u503c\nany \u7b2c\u4e8c\u4e2a\u9700\u6253\u5305\u7684\u503c\nany \u7b2cn\u4e2a\u9700\u6253\u5305\u7684\u503c\n\u8fd4\u56de\u503c\uff1a\nstring \u4e00\u4e2a\u5305\u542b\u6240\u6709\u683c\u5f0f\u5316\u53d8\u91cf\u7684\u5b57\u7b26\u4e32\n\u4f8b\u5b50\uff1a\nlocal data = pack.pack('=0 \u662f\u672c\u6b21\u5b9a\u65f6\u5524\u9192\u7684\u5b9a\u65f6\u5668ID\uff0c\u5176\u4ed6\u9519\u8bef\uff0c\u8bf4\u660e\u4e0d\u662f\u5b9a\u65f6\u5524\u9192\u7684\n\u4f8b\u5b50\uff1a\nlocal timer_id = pm.dtimerWkId()\n", "prefix": "dtimerWkId"}, "pm.lastReson": {"body": "pm.lastReson()", "description": "pm.lastReson() - \u5f00\u673a\u539f\u56e0,\u7528\u4e8e\u5224\u65ad\u662f\u4ece\u4f11\u7720\u6a21\u5757\u5f00\u673a,\u8fd8\u662f\u7535\u6e90/\u590d\u4f4d\u5f00\u673a\n\u8fd4\u56de\u503c\uff1a\nint 0-\u4e0a\u7535/\u590d\u4f4d\u5f00\u673a, 1-RTC\u5f00\u673a, 2-WakeupIn/Pad/IO\u5f00\u673a, 3-Wakeup/RTC\u5f00\u673a\nint 0-\u666e\u901a\u5f00\u673a(\u4e0a\u7535/\u590d\u4f4d),3-\u6df1\u7761\u7720\u5f00\u673a,4-\u4f11\u7720\u5f00\u673a\nint \u590d\u4f4d\u5f00\u673a\u8be6\u7ec6\u539f\u56e0\uff1a0-powerkey\u6216\u8005\u4e0a\u7535\u5f00\u673a 1-\u5145\u7535\u6216\u8005AT\u6307\u4ee4\u4e0b\u8f7d\u5b8c\u6210\u540e\u5f00\u673a 2-\u95f9\u949f\u5f00\u673a 3-\u8f6f\u4ef6\u91cd\u542f 4-\u672a\u77e5\u539f\u56e0 5-RESET\u952e 6-\u5f02\u5e38\u91cd\u542f 7-\u5de5\u5177\u63a7\u5236\u91cd\u542f 8-\u5185\u90e8\u770b\u95e8\u72d7\u91cd\u542f 9-\u5916\u90e8\u91cd\u542f 10-\u5145\u7535\u5f00\u673a\n\u4f8b\u5b50\uff1a\n-- \u662f\u54ea\u79cd\u65b9\u5f0f\u5f00\u673a\u5462\nlog.info(\"pm\", \"last power reson\", pm.lastReson())\n", "prefix": "pm.lastReson"}, "pm.force": {"body": "pm.force(${1:mode})", "description": "pm.force(mode) - \u5f3a\u5236\u8fdb\u5165\u6307\u5b9a\u7684\u4f11\u7720\u6a21\u5f0f\uff0c\u5ffd\u7565\u67d0\u4e9b\u5916\u8bbe\u7684\u5f71\u54cd\uff0c\u6bd4\u5982USB\n\u4f20\u5165\u503c\uff1a\nint \u4f11\u7720\u6a21\u5f0f\n\u8fd4\u56de\u503c\uff1a\nboolean \u5904\u7406\u7ed3\u679c,\u82e5\u8fd4\u56de\u6210\u529f,\u5927\u6982\u7387\u4f1a\u9a6c\u4e0a\u8fdb\u5165\u8be5\u4f11\u7720\u6a21\u5f0f\n\u4f8b\u5b50\uff1a\n-- \u8bf7\u6c42\u8fdb\u5165\u4f11\u7720\u6a21\u5f0f\npm.force(pm.HIB)\n-- \u5bf9\u5e94EC618\u7cfb\u5217(Air780E/Air700E\u7b49), \u8be5\u64cd\u4f5c\u4f1a\u5173\u95edUSB\u901a\u4fe1\n-- \u5524\u9192\u540e\u5982\u9700\u5f00\u542fUSB, \u8bf7\u6253\u5f00USB\u7535\u538b\n--pm.power(pm.USB, true)\n", "prefix": "pm.force"}, "pm.check": {"body": "pm.check()", "description": "pm.check() - \u68c0\u67e5\u4f11\u7720\u72b6\u6001\n\u8fd4\u56de\u503c\uff1a\nboolean \u5904\u7406\u7ed3\u679c,\u5982\u679c\u80fd\u987a\u5229\u8fdb\u5165\u4f11\u7720,\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\nint \u5e95\u5c42\u8fd4\u56de\u503c,0\u4ee3\u8868\u80fd\u8fdb\u5165\u6700\u5e95\u5c42\u4f11\u7720,\u5176\u4ed6\u503c\u4ee3\u8868\u6700\u4f4e\u53ef\u4f11\u7720\u7ea7\u522b\n\u4f8b\u5b50\uff1a\n-- \u8bf7\u6c42\u8fdb\u5165\u4f11\u7720\u6a21\u5f0f,\u7136\u540e\u68c0\u67e5\u662f\u5426\u80fd\u771f\u7684\u4f11\u7720\npm.request(pm.HIB)\nif pm.check() then\n log.info(\"pm\", \"it is ok to hib\")\nelse\n -- \u5bf9\u5e94EC618\u7cfb\u5217(Air780E/Air700E\u7b49), \u8be5\u64cd\u4f5c\u4f1a\u5173\u95edUSB\u901a\u4fe1\n pm.force(pm.HIB) -- \u5f3a\u5236\u4f11\u7720\n -- \u5524\u9192\u540e\u5982\u9700\u5f00\u542fUSB, \u8bf7\u6253\u5f00USB\u7535\u538b\n --sys.wait(100)\n --pm.power(pm.USB, true)\nend\n", "prefix": "pm.check"}, "pm.shutdown": {"body": "pm.shutdown()", "description": "pm.shutdown() - \u5173\u673a\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n-- \u5f53\u524d\u4ec5EC618\u7cfb\u5217(Air780E/Air600E/Air700E/Air780EG\u652f\u6301)\n-- \u9700\u89812022-12-22\u4e4b\u540e\u7f16\u8bd1\u7684\u56fa\u4ef6\npm.shutdown()\n", "prefix": "pm.shutdown"}, "pm.reboot": {"body": "pm.reboot()", "description": "pm.reboot() - \u91cd\u542f\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n", "prefix": "pm.reboot"}, "pm.power": {"body": "pm.power(${1:id},${2:onoff})", "description": "pm.power(id, onoff) - \u5f00\u542f\u5185\u90e8\u7684\u7535\u6e90\u63a7\u5236\uff0c\u6ce8\u610f\u4e0d\u662f\u6240\u6709\u7684\u5e73\u53f0\u90fd\u652f\u6301\uff0c\u53ef\u80fd\u90e8\u5206\u5e73\u53f0\u652f\u6301\u90e8\u5206\u9009\u9879\uff0c\u770b\u786c\u4ef6\n\u4f20\u5165\u503c\uff1a\nint \u7535\u6e90\u63a7\u5236id,pm.USB pm.GPS\u4e4b\u7c7b\nboolean or int \u5f00\u5173true/1\u5f00\uff0cfalse/0\u5173\uff0c\u9ed8\u8ba4\u5173\uff0c\u90e8\u5206\u9009\u9879\u652f\u6301\u6570\u503c\n\u8fd4\u56de\u503c\uff1a\nboolean \u5904\u7406\u7ed3\u679ctrue\u6210\u529f\uff0cfalse\u5931\u8d25\n\u4f8b\u5b50\uff1a\n-- \u5173\u95edUSB\u7535\u6e90, \u53cd\u4e4b\u5f00\u542f\u5c31\u662f\u4f20true\npm.power(pm.USB, false) \n\n-- Air780EG,\u4e3a\u5185\u7f6e\u7684GPS\u82af\u7247\u4e0a\u7535. \u6ce8\u610f, Air780EG\u7684GPS\u548cGPS_ANT\u662f\u4e00\u8d77\u63a7\u5236\u7684,\u6240\u4ee5\u5408\u5e76\u4e86.\npm.power(pm.GPS, true)\n\n-- EC618\u7cfb\u5217\u5f00\u542fpwrkey\u5f00\u673a\u9632\u6296\n-- \u6ce8\u610f: \u5f00\u542f\u540e, \u590d\u4f4d\u952e\u5c31\u53d8\u6210\u5173\u673a\u4e86!!! pwrkey\u8981\u957f\u63092\u79d2\u624d\u80fd\u5f00\u673a\n-- pm.power(pm.PWK_MODE, true)\n\n-- EC618\u7cfb\u5217PSM+\u4f4e\u529f\u8017\u8bbe\u7f6e\n-- ec618\u7684\u8282\u80fd\u6a21\u5f0f\uff0c0~3\uff0c0\u5b8c\u5168\u5173\u95ed\uff0c1\u6027\u80fd\u4f18\u5148\uff0c2\u5e73\u8861\uff0c3\u6781\u81f4\u529f\u8017\n-- \u8be6\u60c5\u8bbf\u95ee: https://airpsm.cn\n-- pm.power(pm.WORK_MODE, 1)\n", "prefix": "pm.power"}, "pm.ioVol": {"body": "pm.ioVol(${1:id},${2:val})", "description": "pm.ioVol(id, val) - IO\u9ad8\u7535\u5e73\u7535\u538b\u63a7\u5236,\u5f53\u524d\u4ec5EC618\u7cfb\u5217\u53ef\u7528\n\u4f20\u5165\u503c\uff1a\nint \u7535\u5e73id,\u76ee\u524d\u53ea\u6709pm.IOVOL_ALL_GPIO\nint \u7535\u5e73\u503c,\u5355\u4f4d\u6beb\u4f0f\n\u8fd4\u56de\u503c\uff1a\nboolean \u5904\u7406\u7ed3\u679ctrue\u6210\u529f\uff0cfalse\u5931\u8d25\n\u4f8b\u5b50\uff1a\n-- EC618\u7cfb\u5217\u8bbe\u7f6eIO\u7535\u5e73, \u8303\u56f4 1650 ~ 2000\uff0c2650~3400 , \u5355\u4f4d\u6beb\u4f0f, \u6b65\u8fdb50mv\n-- \u4f8b\u5982Air780E/Air600E/Air700E/Air780EG\n-- \u6ce8\u610f, \u8fd9\u91cc\u7684\u8bbe\u7f6e\u4f18\u5148\u7ea7\u4f1a\u9ad8\u4e8e\u786c\u4ef6IOSEL\u811a\u7684\u914d\u7f6e\n-- \u4f46\u5f00\u673a\u65f6\u4f9d\u7136\u5148\u4f7f\u7528\u786c\u4ef6\u914d\u7f6e,\u76f4\u81f3\u8c03\u7528\u672cAPI\u8fdb\u884c\u914d\u7f6e, \u6240\u4ee5io\u7535\u5e73\u4f1a\u53d8\u5316\n-- pm.ioVol(pm.IOVOL_ALL_GPIO, 3300) -- \u6240\u6709GPIO\u9ad8\u7535\u5e73\u8f93\u51fa3.3V\n-- pm.ioVol(pm.IOVOL_ALL_GPIO, 1800) -- \u6240\u6709GPIO\u9ad8\u7535\u5e73\u8f93\u51fa1.8V\n", "prefix": "pm.ioVol"}, "pm.wakeupPin": {"body": "pm.wakeupPin(${1:pin},${2:level})", "description": "pm.wakeupPin(pin,level) - \u914d\u7f6e\u5524\u9192\u5f15\u811a (\u5f53\u524d\u4ec5\u4ec5esp\u7cfb\u5217\u53ef\u7528)\n\u4f20\u5165\u503c\uff1a\nint/table gpio\u5f15\u811a\nint \u5524\u9192\u7535\u538b \u53ef\u9009,\u9ed8\u8ba4\u4f4e\u7535\u5e73\u5524\u9192\n\u8fd4\u56de\u503c\uff1a\nboolean \u5904\u7406\u7ed3\u679c\n\u4f8b\u5b50\uff1a\npm.wakeupPin(8,0)\n", "prefix": "pm.wakeupPin"}, "protobuf.load": {"body": "protobuf.load(${1:pbdata})", "description": "protobuf.load(pbdata) - \u52a0\u8f7dpb\u4e8c\u8fdb\u5236\u5b9a\u4e49\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nstring \u901a\u8fc7protoc.exe\u7a0b\u5e8f\u8f6c\u6362\u5f97\u5230\u7684\u6570\u636e,\u901a\u5e38\u4ece\u6587\u4ef6\u8bfb\u53d6\u5f97\u5230\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u4e0e\u5426\nint \u8bfb\u53d6\u4e86\u591a\u957f, \u8c03\u8bd5\u7528\n\u4f8b\u5b50\uff1a\n-- \u6ce8\u610f, \u540c\u4e00\u4e2a\u6587\u4ef6\u53ea\u9700\u8981\u52a0\u8f7d\u4e00\u6b21, \u9664\u975e\u8c03\u7528\u8fc7protobuf.clear()\nprotobuf.load(io.readFile(\"/luadb/person.pb\"))\n", "prefix": "protobuf.load"}, "protobuf.clear": {"body": "protobuf.clear()", "description": "protobuf.clear() - \u6e05\u9664\u5df2\u52a0\u8f7d\u7684\u4e8c\u8fdb\u5236\u5b9a\u4e49\u6570\u636e\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c, \u603b\u662f\u6210\u529f\n\u4f8b\u5b50\uff1a\n-- \u6e05\u9664\u6240\u6709\u5df2\u52a0\u8f7d\u7684\u5b9a\u4e49\u6570\u636e\nprotobuf.clear()\n", "prefix": "protobuf.clear"}, "protobuf.encode": {"body": "protobuf.encode(${1:tpname},${2:data})", "description": "protobuf.encode(tpname, data) - \u7f16\u7801protobuffs\u6570\u636e\u5305\n\u4f20\u5165\u503c\uff1a\nstring \u6570\u636e\u7c7b\u578b\u540d\u79f0, \u5b9a\u4e49\u5728pb\u6587\u4ef6\u4e2d, \u7531protobuf.load\u52a0\u8f7d\ntable \u5f85\u7f16\u7801\u6570\u636e, \u5fc5\u987b\u662ftable, \u5185\u5bb9\u7b26\u5408pb\u6587\u4ef6\u91cc\u7684\u5b9a\u4e49\n\u8fd4\u56de\u503c\uff1a\nstring \u7f16\u7801\u540e\u7684\u6570\u636e,\u82e5\u5931\u8d25\u4f1a\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\n-- \u6570\u636e\u7f16\u7801\nlocal tb = {\n name = \"wendal\"\n}\nlocal pbdata = protobuf.encode(\"Person\", tb)\nif pbdata then\n -- \u6ce8\u610f, \u7f16\u7801\u540e\u7684\u6570\u636e\u901a\u5e38\u5e26\u4e0d\u53ef\u89c1\u5b57\u7b26\n log.info(\"protobuf\", #pbdata, pbdata:toHex())\nend\n", "prefix": "protobuf.encode"}, "protobuf.decode": {"body": "protobuf.decode(${1:tpname},${2:data})", "description": "protobuf.decode(tpname, data) - \u89e3\u7801protobuffs\u6570\u636e\u5305\n\u4f20\u5165\u503c\uff1a\nstring \u6570\u636e\u7c7b\u578b\u540d\u79f0, \u5b9a\u4e49\u5728pb\u6587\u4ef6\u4e2d, \u7531protobuf.load\u52a0\u8f7d\nstring \u5f85\u7f16\u7801\u6570\u636e\n\u8fd4\u56de\u503c\uff1a\ntable \u89e3\u7801\u540e\u7684\u6570\u636e\n\u4f8b\u5b50\uff1a\n-- \u6570\u636e\u7f16\u7801\nlocal tb = {\n name = \"wendal\"\n}\nlocal pbdata = protobuf.encode(\"Person\", tb)\nif pbdata then\n -- \u6ce8\u610f, \u7f16\u7801\u540e\u7684\u6570\u636e\u901a\u5e38\u5e26\u4e0d\u53ef\u89c1\u5b57\u7b26\n log.info(\"protobuf\", #pbdata, pbdata:toHex())\nend\n", "prefix": "protobuf.decode"}, "pwm.open": {"body": "pwm.open(${1:channel},${2:period},${3:pulse},${4:pnum},${5:precision})", "description": "pwm.open(channel, period, pulse, pnum, precision) - \u5f00\u542f\u6307\u5b9a\u7684PWM\u901a\u9053\n\u4f20\u5165\u503c\uff1a\nint PWM\u901a\u9053\nint \u9891\u7387, 1-1000000hz\nint \u5360\u7a7a\u6bd4 0-\u5206\u9891\u7cbe\u5ea6\nint \u8f93\u51fa\u5468\u671f 0\u4e3a\u6301\u7eed\u8f93\u51fa, 1\u4e3a\u5355\u6b21\u8f93\u51fa, \u5176\u4ed6\u4e3a\u6307\u5b9a\u8109\u51b2\u6570\u8f93\u51fa\nint \u5206\u9891\u7cbe\u5ea6, 100/256/1000, \u9ed8\u8ba4\u4e3a100, \u82e5\u8bbe\u5907\u4e0d\u652f\u6301\u4f1a\u6709\u65e5\u5fd7\u63d0\u793a\n\u8fd4\u56de\u503c\uff1a\nboolean \u5904\u7406\u7ed3\u679c,\u6210\u529f\u8fd4\u56detrue,\u5931\u8d25\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- \u6253\u5f00PWM5, \u9891\u73871kHz, \u5360\u7a7a\u6bd450%\npwm.open(5, 1000, 50)\n-- \u6253\u5f00PWM5, \u9891\u738710kHz, \u5206\u9891\u4e3a 31/256\npwm.open(5, 10000, 31, 0, 256)\n", "prefix": "pwm.open"}, "pwm.close": {"body": "pwm.close(${1:channel})", "description": "pwm.close(channel) - \u5173\u95ed\u6307\u5b9a\u7684PWM\u901a\u9053\n\u4f20\u5165\u503c\uff1a\nint PWM\u901a\u9053\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u5904\u7406\u7ed3\u679c\n\u4f8b\u5b50\uff1a\n-- \u5173\u95edPWM5\npwm.close(5)\n", "prefix": "pwm.close"}, "pwm.capture": {"body": "pwm.capture(${1:channel})", "description": "pwm.capture(channel) - PWM\u6355\u83b7\n\u4f20\u5165\u503c\uff1a\nint PWM\u901a\u9053\nint \u6355\u83b7\u9891\u7387\n\u8fd4\u56de\u503c\uff1a\nboolean \u5904\u7406\u7ed3\u679c,\u6210\u529f\u8fd4\u56detrue,\u5931\u8d25\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- PWM0\u6355\u83b7\nwhile 1 do\n pwm.capture(0,1000)\n local ret,channel,pulse,pwmH,pwmL = sys.waitUntil(\"PWM_CAPTURE\", 2000)\n if ret then\n log.info(\"PWM_CAPTURE\",\"channel\"..channel,\"pulse\"..pulse,\"pwmH\"..pwmH,\"pwmL\"..pwmL)\n end\nend\n", "prefix": "pwm.capture"}, "repl.enable": {"body": "repl.enable(${1:re})", "description": "repl.enable(re) - \u542f\u7528\u6216\u7981\u7528REPL\u529f\u80fd\n\u4f20\u5165\u503c\uff1a\nbool \u542f\u7528\u4e0e\u5426,\u9ed8\u8ba4\u662f\u542f\u7528\nreturn \u4e4b\u524d\u7684\u8bbe\u7f6e\u72b6\u6001\n\u4f8b\u5b50\uff1a\n-- \u82e5\u56fa\u4ef6\u652f\u6301REPL,\u5373\u7f16\u8bd1\u65f6\u542f\u7528\u4e86REPL,\u662f\u9ed8\u8ba4\u542f\u7528REPL\u529f\u80fd\u7684\n-- \u672c\u51fd\u6570\u662f\u63d0\u4f9b\u5173\u95edREPL\u7684\u9014\u5f84\nrepl.enable(false)\n", "prefix": "repl.enable"}, "repl.push": {"body": "repl.push(${1:data})", "description": "repl.push(data) - \u4e3b\u52a8\u63a8\u9001\u5f85\u5904\u7406\u7684\u6570\u636e\u5230\u5e95\u5c42\n\u4f20\u5165\u503c\uff1a\nstring \u5f85\u5904\u7406\u7684\u6570\u636e,\u901a\u5e38\u4ece\u4e32\u53e3\u6765\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n-- \u865a\u62df\u4e32\u53e3\u7684\u8bbe\u5907\u624d\u9700\u8981\u8fd9\u4e2a\u51fd\u6570\n", "prefix": "repl.push"}, "rsa.encrypt": {"body": "rsa.encrypt(${1:key},${2:data})", "description": "rsa.encrypt(key, data) - RSA\u52a0\u5bc6\n\u4f20\u5165\u503c\uff1a\nstring \u516c\u94a5\u6570\u636e,\u4ec5\u652f\u6301PEM\u683c\u5f0f\nstring \u5f85\u52a0\u5bc6\u6570\u636e, \u4e0d\u80fd\u8d85\u8fc7\u516c\u94a5\u4f4d\u6570\u7684\u4e00\u534a, \u4f8b\u5982 2048bit\u7684\u516c\u94a5, \u53ea\u80fd\u52a0\u5bc6128\u5b57\u8282\u7684\u6570\u636e\n\u8fd4\u56de\u503c\uff1a\nstring \u52a0\u5bc6\u6210\u529f\u540e\u7684\u6570\u636e,\u82e5\u5931\u8d25\u4f1a\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\n-- \u4e0b\u9762\u4ee3\u7801\u4e2d\u7684 \"abc\" \u662f\u5f85\u52a0\u5bc6\u6570\u636e\nlocal res = rsa.encrypt((io.readFile(\"/luadb/public.pem\")), \"abc\")\n-- \u6253\u5370\u7ed3\u679c\nlog.info(\"rsa\", \"encrypt\", res and #res or 0, res and res:toHex() or \"\")\n", "prefix": "rsa.encrypt"}, "rsa.decrypt": {"body": "rsa.decrypt(${1:key},${2:data},${3:pwd})", "description": "rsa.decrypt(key, data, pwd) - RSA\u89e3\u5bc6\n\u4f20\u5165\u503c\uff1a\nstring \u79c1\u94a5\u6570\u636e,\u4ec5\u652f\u6301PEM\u683c\u5f0f\nstring \u5f85\u89e3\u5bc6\u6570\u636e\nstring \u79c1\u94a5\u7684\u5bc6\u7801,\u53ef\u9009\n\u8fd4\u56de\u503c\uff1a\nstring \u89e3\u5bc6\u6210\u529f\u540e\u7684\u6570\u636e,\u82e5\u5931\u8d25\u4f1a\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\n-- \u6ce8\u610f, \u89e3\u5bc6\u901a\u5e38\u5f88\u6162, \u5efa\u8bae\u5728\u670d\u52a1\u5668\u7aef\u8fdb\u884c\n-- res \u662f\u5f85\u89e3\u5bc6\u7684\u6570\u636e\nlocal dst = rsa.decrypt((io.readFile(\"/luadb/privkey.pem\")), res, \"\")\nlog.info(\"rsa\", \"decrypt\", dst and #dst or 0, dst and dst:toHex() or \"\")\n", "prefix": "rsa.decrypt"}, "rsa.verify": {"body": "rsa.verify(${1:key},${2:md},${3:hash},${4:sig})", "description": "rsa.verify(key, md, hash, sig) - RSA\u9a8c\u7b7e\n\u4f20\u5165\u503c\uff1a\nstring \u516c\u94a5\u6570\u636e,\u4ec5\u652f\u6301PEM\u683c\u5f0f\nint \u7b7e\u540d\u6a21\u5f0f, \u4f8b\u5982 rsa.MD_SHA1 , rsa.MD_SHA256\nstring hash\u6570\u636e, \u5982\u679c\u662fHEX\u5b57\u7b26\u4e32,\u8bb0\u5f97fromHex\u8f6c\u4e8c\u8fdb\u5236\u6570\u636e\nstring sig\u6570\u636e, \u5982\u679c\u662fHEX\u5b57\u7b26\u4e32,\u8bb0\u5f97fromHex\u8f6c\u4e8c\u8fdb\u5236\u6570\u636e\n\u8fd4\u56de\u503c\uff1a\nbool \u6709\u6548\u8fd4\u56detrue,\u5426\u5219\u4e3afalse,\u51fa\u9519\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\nlocal ret = rsa.verify((io.readFile(\"/luadb/public.pem\")), rsa.MD_SHA1, hash, sig)\nlog.info(\"rsa\", \"verify\", ret)\n", "prefix": "rsa.verify"}, "rsa.sign": {"body": "rsa.sign(${1:key},${2:md},${3:hash},${4:pwd})", "description": "rsa.sign(key, md, hash, pwd) - RSA\u7b7e\u540d\n\u4f20\u5165\u503c\uff1a\nstring \u79c1\u94a5\u6570\u636e,\u4ec5\u652f\u6301PEM\u683c\u5f0f\nint \u7b7e\u540d\u6a21\u5f0f, \u4f8b\u5982 rsa.MD_SHA1 , rsa.MD_SHA256\nstring hash\u6570\u636e, \u5982\u679c\u662fHEX\u5b57\u7b26\u4e32,\u8bb0\u5f97fromHex\u8f6c\u4e8c\u8fdb\u5236\u6570\u636e\nstring \u79c1\u94a5\u5bc6\u7801, \u53ef\u9009\n\u8fd4\u56de\u503c\uff1a\nstring \u6210\u529f\u8fd4\u56desig\u6570\u636e, \u5426\u5219\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\nlocal sig = rsa.sign((io.readFile(\"/luadb/privkey.pem\")), rsa.MD_SHA1, hash, \"\")\nlog.info(\"rsa\", \"sign\", sig and #sig or 0, sig and sig:toHex() or \"\")\n", "prefix": "rsa.sign"}, "rtc.set": {"body": "rtc.set(${1:tab})", "description": "rtc.set(tab) - \u8bbe\u7f6e\u65f6\u949f\n\u4f20\u5165\u503c\uff1a\ntable or int \u65f6\u949f\u53c2\u6570,\u89c1\u793a\u4f8b\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56denil\u6216false\n\u4f8b\u5b50\uff1a\nrtc.set({year=2021,mon=8,day=31,hour=17,min=8,sec=43})\n--\u76ee\u524d\u53ea\u6709Air101/Air103/Air105/EC618\u7cfb\u5217\u652f\u6301\u65f6\u95f4\u6233\u65b9\u5f0f\nrtc.set(1652230554)\n", "prefix": "rtc.set"}, "rtc.get": {"body": "rtc.get()", "description": "rtc.get() - \u83b7\u53d6\u65f6\u949f\n\u8fd4\u56de\u503c\uff1a\ntable \u65f6\u949f\u53c2\u6570,\u89c1\u793a\u4f8b\n\u4f8b\u5b50\uff1a\nlocal t = rtc.get()\n-- {year=2021,mon=8,day=31,hour=17,min=8,sec=43}\nlog.info(\"rtc\", json.encode(t))\n", "prefix": "rtc.get"}, "rtc.timerStart": {"body": "rtc.timerStart(${1:id},${2:tab})", "description": "rtc.timerStart(id, tab) - \u8bbe\u7f6eRTC\u5524\u9192\u65f6\u95f4\n\u4f20\u5165\u503c\uff1a\nint \u65f6\u949fid,\u901a\u5e38\u53ea\u652f\u63010\ntable \u65f6\u949f\u53c2\u6570,\u89c1\u793a\u4f8b\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56denil\u6216false\n\u4f8b\u5b50\uff1a\n-- \u4f7f\u7528\u524d\u5efa\u8bae\u5148rtc.set\u8bbe\u7f6e\u4e3a\u6b63\u786e\u7684\u65f6\u95f4\nrtc.timerStart(0, {year=2021,mon=9,day=1,hour=17,min=8,sec=43})\n", "prefix": "rtc.timerStart"}, "rtc.timerStop": {"body": "rtc.timerStop(${1:id})", "description": "rtc.timerStop(id) - \u53d6\u6d88RTC\u5524\u9192\u65f6\u95f4\n\u4f20\u5165\u503c\uff1a\nint \u65f6\u949fid,\u901a\u5e38\u53ea\u652f\u63010\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56denil\u6216false\n\u4f8b\u5b50\uff1a\nrtc.timerStop(0)\n", "prefix": "rtc.timerStop"}, "rtc.setBaseYear": {"body": "rtc.setBaseYear(${1:Base_year})", "description": "rtc.setBaseYear(Base_year) - \u8bbe\u7f6eRTC\u57fa\u51c6\u5e74,\u4e0d\u63a8\u8350\n\u4f20\u5165\u503c\uff1a\nint \u57fa\u51c6\u5e74Base_year,\u901a\u5e381900\n\u4f8b\u5b50\uff1a\nrtc.setBaseYear(1900)\n", "prefix": "rtc.setBaseYear"}, "rtc.timezone": {"body": "rtc.timezone(${1:tz})", "description": "rtc.timezone(tz) - \u8bfb\u53d6\u6216\u8bbe\u7f6e\u65f6\u533a\n\u4f20\u5165\u503c\uff1a\nint \u65f6\u533a\u503c,\u6ce8\u610f\u5355\u4f4d\u662f1/4\u65f6\u533a.\u4f8b\u5982\u4e1c\u516b\u533a\u662f 32,\u800c\u975e8. \u53ef\u4ee5\u4e0d\u4f20\nreturn \u5f53\u524d/\u8bbe\u7f6e\u540e\u7684\u65f6\u533a\u503c\n\u4f8b\u5b50\uff1a\n-- \u8bbe\u7f6e\u4e3a\u4e1c8\u533a\nrtc.timezone(32)\n-- \u8bbe\u7f6e\u4e3a\u4e1c3\u533a\nrtc.timezone(12)\n-- \u8bbe\u7f6e\u4e3a\u897f4\u533a\nrtc.timezone(-16)\n-- \u6ce8\u610f: \u65e0\u8bba\u8bbe\u7f6e\u65f6\u533a\u662f\u591a\u5c11, rtc.get/set\u603b\u662fUTC\u65f6\u95f4\n-- \u65f6\u533a\u5f71\u54cd\u7684\u662f os.date/os.time \u51fd\u6570\n-- \u53ea\u6709\u90e8\u5206\u6a21\u5757\u652f\u6301\u8bbe\u7f6e\u65f6\u533a, \u4e14\u9ed8\u8ba4\u503c\u4e00\u822c\u4e3a32, \u5373\u4e1c\u516b\u533a\n", "prefix": "rtc.timezone"}, "rtos.receive": {"body": "rtos.receive(${1:timeout})", "description": "rtos.receive(timeout) - \u63a5\u53d7\u5e76\u5904\u7406\u5e95\u5c42\u6d88\u606f\u961f\u5217.\n\u4f20\u5165\u503c\uff1a\nint \u8d85\u65f6\u65f6\u957f,\u901a\u5e38\u662f-1,\u6c38\u4e45\u7b49\u5f85\n\u8fd4\u56de\u503c\uff1a\nmsgid \u5982\u679c\u662f\u5b9a\u65f6\u5668\u6d88\u606f,\u4f1a\u8fd4\u56de\u5b9a\u65f6\u5668\u6d88\u606fid\u53ca\u9644\u52a0\u4fe1\u606f, \u5176\u4ed6\u6d88\u606f\u7531\u5e95\u5c42\u51b3\u5b9a,\u4e0d\u5411lua\u5c42\u8fdb\u884c\u4efb\u4f55\u4fdd\u8bc1.\n", "prefix": "rtos.receive"}, "rtos.timer_start": {"body": "rtos.timer_start(${1:id},${2:timeout},${3:_repeat})", "description": "rtos.timer_start(id,timeout,_repeat) - \u542f\u52a8\u4e00\u4e2a\u5b9a\u65f6\u5668\n\u4f20\u5165\u503c\uff1a\nint \u5b9a\u65f6\u5668id\nint \u8d85\u65f6\u65f6\u957f,\u5355\u4f4d\u6beb\u79d2\nint \u91cd\u590d\u6b21\u6570,\u9ed8\u8ba4\u662f0\n\u8fd4\u56de\u503c\uff1a\nid \u5982\u679c\u662f\u5b9a\u65f6\u5668\u6d88\u606f,\u4f1a\u8fd4\u56de\u5b9a\u65f6\u5668\u6d88\u606fid\u53ca\u9644\u52a0\u4fe1\u606f, \u5176\u4ed6\u6d88\u606f\u7531\u5e95\u5c42\u51b3\u5b9a,\u4e0d\u5411lua\u5c42\u8fdb\u884c\u4efb\u4f55\u4fdd\u8bc1.\n\u4f8b\u5b50\uff1a\n-- \u7528\u6237\u4ee3\u7801\u8bf7\u4f7f\u7528 sys.timerStart\n-- \u542f\u52a8\u4e00\u4e2a3\u79d2\u7684\u5faa\u73af\u5b9a\u65f6\u5668\nrtos.timer_start(10000, 3000, -1)\n", "prefix": "rtos.timer_start"}, "rtos.timer_stop": {"body": "rtos.timer_stop(${1:id})", "description": "rtos.timer_stop(id) - \u5173\u95ed\u5e76\u91ca\u653e\u4e00\u4e2a\u5b9a\u65f6\u5668\n\u4f20\u5165\u503c\uff1a\nint \u5b9a\u65f6\u5668id\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n-- \u7528\u6237\u4ee3\u7801\u8bf7\u4f7f\u7528sys.timerStop\nrtos.timer_stop(id)\n", "prefix": "rtos.timer_stop"}, "rtos.reboot": {"body": "rtos.reboot()", "description": "rtos.reboot() - \u8bbe\u5907\u91cd\u542f\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n", "prefix": "rtos.reboot"}, "rtos.buildDate": {"body": "rtos.buildDate()", "description": "rtos.buildDate() - \u83b7\u53d6\u56fa\u4ef6\u7f16\u8bd1\u65e5\u671f\n\u8fd4\u56de\u503c\uff1a\nstring \u56fa\u4ef6\u7f16\u8bd1\u65e5\u671f\n\u4f8b\u5b50\uff1a\n-- \u83b7\u53d6\u7f16\u8bd1\u65e5\u671f\nlocal d = rtos.buildDate()\n", "prefix": "rtos.buildDate"}, "rtos.bsp": {"body": "rtos.bsp()", "description": "rtos.bsp() - \u83b7\u53d6\u786c\u4ef6bsp\u578b\u53f7\n\u8fd4\u56de\u503c\uff1a\nstring \u786c\u4ef6bsp\u578b\u53f7\n\u4f8b\u5b50\uff1a\n-- \u83b7\u53d6\u786c\u4ef6bsp\u578b\u53f7\nlocal bsp = rtos.bsp()\n", "prefix": "rtos.bsp"}, "rtos.version": {"body": "rtos.version()", "description": "rtos.version() - \u83b7\u53d6\u56fa\u4ef6\u7248\u672c\u53f7\n\u8fd4\u56de\u503c\uff1a\nstring \u56fa\u4ef6\u7248\u672c\u53f7,\u4f8b\u5982\"V0001\"\n\u4f8b\u5b50\uff1a\n-- \u8bfb\u53d6\u7248\u672c\u53f7\nlocal luatos_version = rtos.version()\n", "prefix": "rtos.version"}, "rtos.standy": {"body": "rtos.standy(${1:timeout})", "description": "rtos.standy(timeout) - \u8fdb\u5165\u5f85\u673a\u6a21\u5f0f, \u4ec5\u90e8\u5206\u8bbe\u5907\u53ef\u7528, \u672cAPI\u5df2\u5e9f\u5f03, \u63a8\u8350\u4f7f\u7528pm\u5e93\n\u4f20\u5165\u503c\uff1a\nint \u4f11\u7720\u65f6\u957f,\u5355\u4f4d\u6beb\u79d2\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n-- \u8fdb\u5165\u5f85\u673a\u6a21\u5f0f\nrtos.standby(5000)\n", "prefix": "rtos.standy"}, "rtos.meminfo": {"body": "rtos.meminfo(${1:type})", "description": "rtos.meminfo(type) - \u83b7\u53d6\u5185\u5b58\u4fe1\u606f\n\u4f20\u5165\u503c\uff1a\ntype \"sys\"\u7cfb\u7edf\u5185\u5b58, \"lua\"\u865a\u62df\u673a\u5185\u5b58, \u9ed8\u8ba4\u4e3alua\u865a\u62df\u673a\u5185\u5b58\n\u8fd4\u56de\u503c\uff1a\nint \u603b\u5185\u5b58\u5927\u5c0f,\u5355\u4f4d\u5b57\u8282\nint \u5f53\u524d\u5df2\u4f7f\u7528\u7684\u5185\u5b58\u5927\u5c0f,\u5355\u4f4d\u5b57\u8282\nint \u5386\u53f2\u6700\u9ad8\u5df2\u4f7f\u7528\u7684\u5185\u5b58\u5927\u5c0f,\u5355\u4f4d\u5b57\u8282\n\u4f8b\u5b50\uff1a\n-- \u6253\u5370\u5185\u5b58\u5360\u7528\nlog.info(\"mem.lua\", rtos.meminfo())\nlog.info(\"mem.sys\", rtos.meminfo(\"sys\"))\n", "prefix": "rtos.meminfo"}, "rtos.firmware": {"body": "rtos.firmware()", "description": "rtos.firmware() - \u8fd4\u56de\u5e95\u5c42\u63cf\u8ff0\u4fe1\u606f,\u683c\u5f0f\u4e3a LuatOS_$VERSION_$BSP,\u53ef\u7528\u4e8eOTA\u5347\u7ea7\u5224\u65ad\u5e95\u5c42\u4fe1\u606f\n\u8fd4\u56de\u503c\uff1a\nstring \u5e95\u5c42\u63cf\u8ff0\u4fe1\u606f\n\u4f8b\u5b50\uff1a\n-- \u6253\u5370\u5e95\u5c42\u63cf\u8ff0\u4fe1\u606f\nlog.info(\"firmware\", rtos.firmware())\n", "prefix": "rtos.firmware"}, "rtos.setPaths": {"body": "rtos.setPaths(${1:pathA},${2:pathB},${3:pathC},${4:pathD})", "description": "rtos.setPaths(pathA, pathB, pathC, pathD) - \u8bbe\u7f6e\u81ea\u5b9a\u4e49lua\u811a\u672c\u641c\u7d22\u8def\u5f84,\u4f18\u5148\u7ea7\u9ad8\u4e8e\u5185\u7f6e\u8def\u5f84\n\u4f20\u5165\u503c\uff1a\nstring \u8def\u5f84A, \u4f8b\u5982 \"/sdcard/%s.luac\",\u82e5\u4e0d\u4f20\u503c,\u5c06\u9ed8\u8ba4\u4e3a\"\",\u53e6\u5916,\u6700\u5927\u957f\u5ea6\u4e0d\u80fd\u8d85\u8fc723\u5b57\u8282\nstring \u8def\u5f84B, \u4f8b\u5982 \"/sdcard/%s.lua\"\nstring \u8def\u5f84C, \u4f8b\u5982 \"/lfs2/%s.luac\"\nstring \u8def\u5f84D, \u4f8b\u5982 \"/lfs2/%s.lua\"\n\u4f8b\u5b50\uff1a\n-- \u6302\u8f7dsd\u5361\u6216\u8005spiflash\u540e\nrtos.setPaths(\"/sdcard/user/%s.luac\", \"/sdcard/user/%s.lua\")\nrequire(\"sd_user_main\") -- \u5c06\u641c\u7d22\u5e76\u52a0\u8f7d /sdcard/user/sd_user_main.luac \u548c /sdcard/user/sd_user_main.lua\n", "prefix": "rtos.setPaths"}, "rtos.nop": {"body": "rtos.nop()", "description": "rtos.nop() - \u7a7a\u51fd\u6570,\u4ec0\u4e48\u90fd\u4e0d\u505a\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n-- \u8fd9\u4e2a\u51fd\u6570\u5355\u7eaf\u5c31\u662f lua -> c -> lua \u8d70\u4e00\u904d\n-- \u6ca1\u6709\u53c2\u6570,\u6ca1\u6709\u8fd4\u56de\u503c,\u6ca1\u6709\u903b\u8f91\u5904\u7406\n-- \u5728\u7edd\u5927\u591a\u6570\u60c5\u51b5\u4e0b,\u4e0d\u4f1a\u9047\u5230\u8fd9\u4e2a\u51fd\u6570\u7684\u8c03\u7528\n-- \u5b83\u901a\u5e38\u53ea\u4f1a\u51fa\u73b0\u5728\u6027\u80fd\u6d4b\u8bd5\u7684\u4ee3\u7801\u91cc, \u56e0\u4e3a\u5b83\u4ec0\u4e48\u90fd\u4e0d\u5e72.\nrtos.nop()\n", "prefix": "rtos.nop"}, "rtos.autoCollectMem": {"body": "rtos.autoCollectMem(${1:period},${2:warning_level},${3:force_level})", "description": "rtos.autoCollectMem(period, warning_level, force_level) - \u5185\u5b58\u81ea\u52a8\u6536\u96c6\u914d\u7f6e\uff0c\u662flua\u672c\u8eab\u6536\u96c6\u673a\u5236\u7684\u4e00\u79cd\u8865\u5145\uff0c\u4e0d\u662f\u5fc5\u8981\u7684\uff0c\u800c\u4e14\u53ea\u5728luavm\u7a7a\u95f2\u65f6\u89e6\u53d1\n", "prefix": "rtos.autoCollectMem"}, "sdio.init": {"body": "sdio.init(${1:id})", "description": "sdio.init(id) - \u521d\u59cb\u5316sdio\n\u4f20\u5165\u503c\uff1a\nint \u901a\u9053id,\u4e0e\u5177\u4f53\u8bbe\u5907\u6709\u5173,\u901a\u5e38\u4ece0\u5f00\u59cb,\u9ed8\u8ba40\n\u8fd4\u56de\u503c\uff1a\nboolean \u6253\u5f00\u7ed3\u679c\n", "prefix": "sdio.init"}, "sdio.sd_read": {"body": "sdio.sd_read(${1:id},${2:offset},${3:len})", "description": "sdio.sd_read(id, offset, len) - \u76f4\u63a5\u8bfb\u5199sd\u5361\u4e0a\u7684\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nint sdio\u603b\u7ebfid\nint \u504f\u79fb\u91cf,\u5fc5\u987b\u662f512\u7684\u500d\u6570\nint \u957f\u5ea6,\u5fc5\u987b\u662f512\u7684\u500d\u6570\n\u8fd4\u56de\u503c\uff1a\nstring \u82e5\u8bfb\u53d6\u6210\u529f,\u8fd4\u56de\u5b57\u7b26\u4e32,\u5426\u5219\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\n-- \u521d\u59cb\u5316sdio\u5e76\u76f4\u63a5\u8bfb\u53d6sd\u5361\u6570\u636e\nsdio.init(0)\nlocal t = sdio.sd_read(0, 0, 1024)\nif t then\n --- xxx\nend\n", "prefix": "sdio.sd_read"}, "sdio.sd_write": {"body": "sdio.sd_write(${1:id},${2:data},${3:offset})", "description": "sdio.sd_write(id, data, offset) - \u76f4\u63a5\u5199sd\u5361\n\u4f20\u5165\u503c\uff1a\nint sdio\u603b\u7ebfid\nstring \u5f85\u5199\u5165\u7684\u6570\u636e,\u957f\u5ea6\u5fc5\u987b\u662f512\u7684\u500d\u6570\nint \u504f\u79fb\u91cf,\u5fc5\u987b\u662f512\u7684\u500d\u6570\n\u8fd4\u56de\u503c\uff1a\nbool \u82e5\u8bfb\u53d6\u6210\u529f,\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- \u521d\u59cb\u5316sdio\u5e76\u76f4\u63a5\u8bfb\u53d6sd\u5361\u6570\u636e\nsdio.init(0)\nlocal t = sdio.sd_write(0, data, 0)\nif t then\n --- xxx\nend\n", "prefix": "sdio.sd_write"}, "sensor.ds18b20": {"body": "sensor.ds18b20(${1:pin})", "description": "sensor.ds18b20(pin) - \u83b7\u53d6DS18B20\u7684\u6e29\u5ea6\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nint gpio\u7aef\u53e3\u53f7\nboolean \u662f\u5426\u6821\u9a8ccrc\u503c,\u9ed8\u8ba4\u4e3atrue. \u4e0d\u6821\u9a8ccrc\u503c\u80fd\u63d0\u9ad8\u8bfb\u53d6\u6210\u529f\u7684\u6982\u7387,\u4f46\u53ef\u80fd\u4f1a\u8bfb\u53d6\u5230\u9519\u8bef\u7684\u503c\n\u8fd4\u56de\u503c\uff1a\nint \u6e29\u5ea6\u6570\u636e,\u5355\u4f4d0.1\u6444\u6c0f\u5ea6\uff0c\u8bfb\u53d6\u5931\u8d25\u65f6\u8fd4\u56de\u9519\u8bef\u7801\nboolean \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\nwhile 1 do\n sys.wait(5000)\n local val,result = sensor.ds18b20(17, true) -- GPIO17\u4e14\u6821\u9a8cCRC\u503c\n -- val 301 == 30.1\u6444\u6c0f\u5ea6\n -- result true \u8bfb\u53d6\u6210\u529f\n log.info(\"ds18b20\", val, result)\nend\n", "prefix": "sensor.ds18b20"}, "sensor.w1_reset": {"body": "sensor.w1_reset(${1:pin})", "description": "sensor.w1_reset(pin) - \u5355\u603b\u7ebf\u534f\u8bae,\u590d\u4f4d\u8bbe\u5907\n\u4f20\u5165\u503c\uff1a\nint gpio\u7aef\u53e3\u53f7\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\n", "prefix": "sensor.w1_reset"}, "sensor.w1_connect": {"body": "sensor.w1_connect(${1:pin})", "description": "sensor.w1_connect(pin) - \u5355\u603b\u7ebf\u534f\u8bae,\u8fde\u63a5\u8bbe\u5907\n\u4f20\u5165\u503c\uff1a\nint gpio\u7aef\u53e3\u53f7\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u8fd4\u56detrue,\u5931\u8d25\u8fd4\u56defalse\n", "prefix": "sensor.w1_connect"}, "sensor.w1_write": {"body": "sensor.w1_write(${1:pin},${2:data1},${3:data2})", "description": "sensor.w1_write(pin, data1,data2) - \u5355\u603b\u7ebf\u534f\u8bae,\u5f80\u603b\u7ebf\u5199\u5165\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nint gpio\u7aef\u53e3\u53f7\nint \u7b2c\u4e00\u4e2a\u6570\u636e\nint \u7b2c\u4e8c\u4e2a\u6570\u636e, \u53ef\u4ee5\u5199N\u4e2a\u6570\u636e\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n", "prefix": "sensor.w1_write"}, "sensor.w1_read": {"body": "sensor.w1_read(${1:pin},${2:len})", "description": "sensor.w1_read(pin, len) - \u5355\u603b\u7ebf\u534f\u8bae,\u4ece\u603b\u7ebf\u8bfb\u53d6\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nint gpio\u7aef\u53e3\u53f7\nint \u8bfb\u53d6\u7684\u957f\u5ea6\n\u8fd4\u56de\u503c\uff1a\nint \u6309\u8bfb\u53d6\u7684\u957f\u5ea6\u8fd4\u56deN\u4e2a\u6574\u6570\n", "prefix": "sensor.w1_read"}, "sensor.hx711": {"body": "sensor.hx711(${1:pin_date},${2:pin_clk})", "description": "sensor.hx711(pin_date,pin_clk) - \u83b7\u53d6Hx711\u7684\u538b\u529b\u4f20\u611f\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nint \u6570\u636e\u7684gpio\u7aef\u53e3\u53f7\nint \u65f6\u949f\u7684gpio\u7aef\u53e3\u53f7\n\u8fd4\u56de\u503c\uff1a\nint hx711\u8bfb\u5230\u7684\u6570\u636e\n\u4f8b\u5b50\uff1a\n-- \u5982\u679c\u8bbe\u5907\u4e0d\u5b58\u5728\u4f1a\u5361\u5728\u8bfb\u53d6\u63a5\u53e3\nsys.taskInit(\n function()\n sys.wait(1000)\n local maopi = sensor.hx711(0,7)\n while true do\n sys.wait(2000)\n a = sensor.hx711(0,7) - maopi\n if a > 0 then\n log.info(\"tag\", a / 4.6)\n end\n end\n end\n)\n", "prefix": "sensor.hx711"}, "sensor.ws2812b": {"body": "sensor.ws2812b(${1:pin},${2:data},${3:T0H},${4:T0L},${5:T1H},${6:T1L})", "description": "sensor.ws2812b(pin,data,T0H,T0L,T1H,T1L) - \u8bbe\u7f6ews2812b\u8f93\u51fa(gpio\u9a71\u52a8\u65b9\u5f0f)\n\u4f20\u5165\u503c\uff1a\nint ws2812b\u7684gpio\u7aef\u53e3\u53f7\nstring/zbuff \u5f85\u53d1\u9001\u7684\u6570\u636e\uff08\u5982\u679c\u4e3azbuff\u6570\u636e\uff0c\u5219\u4f1a\u65e0\u89c6\u6307\u9488\u4f4d\u7f6e\u59cb\u7ec8\u4ece0\u504f\u79fb\u5f00\u59cb\uff09\nint T0H\u65f6\u95f4\uff0c\u8868\u793a\u5ef6\u65f6\u591a\u5c11\u4e2anop\uff0c\u6bcf\u4e2a\u578b\u53f7\u4e0d\u4e00\u6837\uff0c\u81ea\u5df1\u8c03\nint T0L\u65f6\u95f4\uff0c\u8868\u793a\u5ef6\u65f6\u591a\u5c11\u4e2anop\nint T1H\u65f6\u95f4\uff0c\u8868\u793a\u5ef6\u65f6\u591a\u5c11\u4e2anop\nint T1L\u65f6\u95f4\uff0c\u8868\u793a\u5ef6\u65f6\u591a\u5c11\u4e2anop\n\u4f8b\u5b50\uff1a\nlocal buff = zbuff.create({8,8,24})\nbuff:drawLine(1,2,5,6,0x00ffff)\nsensor.ws2812b(7,buff,300,700,700,700)\n", "prefix": "sensor.ws2812b"}, "sensor.ws2812b_pwm": {"body": "sensor.ws2812b_pwm(${1:pin},${2:data})", "description": "sensor.ws2812b_pwm(pin,data) - \u8bbe\u7f6ews2812b\u8f93\u51fa(pwm\u9a71\u52a8\u65b9\u5f0f,\u9700\u8981pwm\u80fd\u8f93\u51fa800k\u9891\u7387\uff0c\u5426\u5219\u65e0\u6cd5\u4f7f\u7528\u6b64\u65b9\u6cd5)\n\u4f20\u5165\u503c\uff1a\nint pwm\u7aef\u53e3\u53f7\nstring/zbuff \u5f85\u53d1\u9001\u7684\u6570\u636e\uff08\u5982\u679c\u4e3azbuff\u6570\u636e\uff0c\u5219\u4f1a\u65e0\u89c6\u6307\u9488\u4f4d\u7f6e\u59cb\u7ec8\u4ece0\u504f\u79fb\u5f00\u59cb\uff09\n\u4f8b\u5b50\uff1a\nlocal buff = zbuff.create({8,8,24})\nbuff:setFrameBuffer(8,8,24,0x0000ff)\nsensor.ws2812b_pwm(7,buff)\n", "prefix": "sensor.ws2812b_pwm"}, "sensor.ws2812b_spi": {"body": "sensor.ws2812b_spi(${1:pin},${2:data})", "description": "sensor.ws2812b_spi(pin,data) - \u8bbe\u7f6ews2812b\u8f93\u51fa(spi\u9a71\u52a8\u65b9\u5f0f,\u9700\u8981spi\u80fd\u8f93\u51fa5M\u9891\u7387\uff0c\u5426\u5219\u65e0\u6cd5\u4f7f\u7528\u6b64\u65b9\u6cd5)\n\u4f20\u5165\u503c\uff1a\nint spi\u7aef\u53e3\u53f7\nstring/zbuff \u5f85\u53d1\u9001\u7684\u6570\u636e\uff08\u5982\u679c\u4e3azbuff\u6570\u636e\uff0c\u5219\u4f1a\u65e0\u89c6\u6307\u9488\u4f4d\u7f6e\u59cb\u7ec8\u4ece0\u504f\u79fb\u5f00\u59cb\uff09\n\u4f8b\u5b50\uff1a\nlocal buff = zbuff.create({8,8,24})\nbuff:setFrameBuffer(8,8,24,0x0000ff)\nsensor.ws2812b_spi(2,buff)\n", "prefix": "sensor.ws2812b_spi"}, "sensor.dht1x": {"body": "sensor.dht1x(${1:pin})", "description": "sensor.dht1x(pin) - \u83b7\u53d6DHT11/DHT12\u7684\u6e29\u6e7f\u5ea6\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nint gpio\u7aef\u53e3\u53f7\nboolean \u662f\u5426\u6821\u9a8ccrc\u503c,\u9ed8\u8ba4\u4e3atrue. \u4e0d\u6821\u9a8ccrc\u503c\u80fd\u63d0\u9ad8\u8bfb\u53d6\u6210\u529f\u7684\u6982\u7387,\u4f46\u53ef\u80fd\u4f1a\u8bfb\u53d6\u5230\u9519\u8bef\u7684\u503c\n\u8fd4\u56de\u503c\uff1a\nint \u6e7f\u5ea6\u6570\u636e,\u5355\u4f4d0.01%\uff0c\u8bfb\u53d6\u5931\u8d25\u65f6\u8fd4\u56de\u9519\u8bef\u503c\nint \u6e29\u5ea6\u6570\u636e,\u5355\u4f4d0.01\u6444\u6c0f\u5ea6\uff0c\u8bfb\u53d6\u5931\u8d25\u65f6\u8fd4\u56de\u9519\u8bef\u503c\nboolean \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\nwhile 1 do\n sys.wait(1000)\n local h,t,r = sensor.dht1x(17, true) -- GPIO17\u4e14\u6821\u9a8cCRC\u503c\n log.info(\"dht11\", h/100,t/100,r)--90.1 23.22\nend\n", "prefix": "sensor.dht1x"}, "sfd.init": {"body": "sfd.init(${1:type},${2:spi_id},${3:spi_cs})", "description": "sfd.init(type, spi_id, spi_cs) - \u521d\u59cb\u5316spi flash\n\u4f20\u5165\u503c\uff1a\nstring \u7c7b\u578b, \u53ef\u4ee5\u662f\"spi\", \u4e5f\u53ef\u4ee5\u662f\"zbuff\", \u6216\u8005\"onchip\"\nint SPI\u603b\u7ebf\u7684id, \u6216\u8005 zbuff\u5b9e\u4f8b\nint SPI FLASH\u7684\u7247\u9009\u811a\u5bf9\u5e94\u7684GPIO, \u5f53\u7c7b\u578b\u662fspi\u65f6\u624d\u9700\u8981\u4f20\n\u8fd4\u56de\u503c\uff1a\nuserdata \u6210\u529f\u8fd4\u56de\u4e00\u4e2a\u6570\u636e\u7ed3\u6784,\u5426\u5219\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\nlocal drv = sfd.init(\"spi\", 0, 17)\nif drv then\n log.info(\"sfd\", \"chip id\", sfd.id(drv):toHex())\nend\n-- 2023.01.15\u4e4b\u540e\u7684\u56fa\u4ef6\u652f\u6301onchip\u7c7b\u578b, \u652f\u6301\u76f4\u63a5\u8bfb\u5199\u7247\u4e0aflash\u7684\u4e00\u5c0f\u5757\u533a\u57df,\u4e00\u822c\u662f64k\n-- \u8fd9\u5757\u533a\u57df\u901a\u5e38\u662ffdb/fskv\u5e93\u6240\u5728\u7684\u533a\u57df, \u6240\u4ee5\u4e0d\u8981\u6df7\u7740\u7528\nlocal onchip = sfd.init(\"onchip\")\nlocal data = sfd.read(onchip, 0x100, 256)\nsfd.erase(onchip, 0x100)\nsfd.write(onchip, 0x100, data or \"Hi\")\n\n", "prefix": "sfd.init"}, "sfd.status": {"body": "sfd.status(${1:drv})", "description": "sfd.status(drv) - \u68c0\u67e5spi flash\u72b6\u6001\n\u4f20\u5165\u503c\uff1a\nuserdata sfd.init\u8fd4\u56de\u7684\u6570\u636e\u7ed3\u6784\n\u8fd4\u56de\u503c\uff1a\nint \u72b6\u6001\u503c, 0 \u672a\u521d\u59cb\u5316\u6210\u529f,1\u521d\u59cb\u5316\u6210\u529f\u4e14\u7a7a\u95f2,2\u6b63\u5fd9\n\u4f8b\u5b50\uff1a\nlocal drv = sfd.init(\"spi\", 0, 17)\nif drv then\n log.info(\"sfd\", \"status\", sfd.status(drv))\nend\n", "prefix": "sfd.status"}, "sfd.read": {"body": "sfd.read(${1:drv},${2:offset},${3:len})", "description": "sfd.read(drv, offset, len) - \u8bfb\u53d6\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nuserdata sfd.init\u8fd4\u56de\u7684\u6570\u636e\u7ed3\u6784\nint \u8d77\u59cb\u504f\u79fb\u91cf\nint \u8bfb\u53d6\u957f\u5ea6,\u5f53\u524d\u9650\u5236\u5728256\u4ee5\u5185\n\u8fd4\u56de\u503c\uff1a\nstring \u6570\u636e\n\u4f8b\u5b50\uff1a\nlocal drv = sfd.init(\"spi\", 0, 17)\nif drv then\n log.info(\"sfd\", \"read\", sfd.read(drv, 0x100, 256))\nend\n", "prefix": "sfd.read"}, "sfd.write": {"body": "sfd.write(${1:drv},${2:offset},${3:data})", "description": "sfd.write(drv, offset, data) - \u5199\u5165\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nuserdata sfd.init\u8fd4\u56de\u7684\u6570\u636e\u7ed3\u6784\nint \u8d77\u59cb\u504f\u79fb\u91cf\nstring \u9700\u8981\u5199\u5165\u7684\u6570\u636e,\u5f53\u524d\u652f\u6301256\u5b57\u8282\u53ca\u4ee5\u4e0b\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u8fd4\u56detrue,\u5931\u8d25\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\nlocal drv = sfd.init(\"spi\", 0, 17)\nif drv then\n log.info(\"sfd\", \"write\", sfd.write(drv, 0x100, \"hi,luatos\"))\nend\n", "prefix": "sfd.write"}, "sfd.erase": {"body": "sfd.erase(${1:drv},${2:offset})", "description": "sfd.erase(drv, offset) - \u64e6\u9664\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nuserdata sfd.init\u8fd4\u56de\u7684\u6570\u636e\u7ed3\u6784\nint \u8d77\u59cb\u504f\u79fb\u91cf\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u8fd4\u56detrue,\u5931\u8d25\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\nlocal drv = sfd.init(\"spi\", 0, 17)\nif drv then\n log.info(\"sfd\", \"write\", sfd.erase(drv, 0x100))\nend\n", "prefix": "sfd.erase"}, "sfd.id": {"body": "sfd.id(${1:drv})", "description": "sfd.id(drv) - \u82af\u7247\u552f\u4e00id\n\u4f20\u5165\u503c\uff1a\nuserdata sfd.init\u8fd4\u56de\u7684\u6570\u636e\u7ed3\u6784\n\u8fd4\u56de\u503c\uff1a\nstring 8\u5b57\u8282(64bit)\u7684\u82af\u7247id\n\u4f8b\u5b50\uff1a\nlocal drv = sfd.init(\"spi\", 0, 17)\nif drv then\n log.info(\"sfd\", \"chip id\", sfd.id(drv))\nend\n", "prefix": "sfd.id"}, "sfud.init": {"body": "sfud.init(${1:spi_id},${2:spi_cs},${3:spi_bandrate)/sfud.init(spi_device})", "description": "sfud.init(spi_id, spi_cs, spi_bandrate)/sfud.init(spi_device) - \u521d\u59cb\u5316sfud\n\u4f20\u5165\u503c\uff1a\nint spi_id SPI\u7684ID/userdata spi_device\nint spi_cs SPI\u7684\u7247\u9009\nint spi_bandrate SPI\u7684\u9891\u7387\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n--spi\nlog.info(\"sfud.init\",sfud.init(0,20,20 * 1000 * 1000))\n--spi_device\nlocal spi_device = spi.deviceSetup(0,17,0,0,8,2000000,spi.MSB,1,0)\nlog.info(\"sfud.init\",sfud.init(spi_device))\n", "prefix": "sfud.init"}, "sfud.getDeviceNum": {"body": "sfud.getDeviceNum()", "description": "sfud.getDeviceNum() - \u83b7\u53d6flash\u8bbe\u5907\u4fe1\u606f\u8868\u4e2d\u7684\u8bbe\u5907\u603b\u6570\n\u8fd4\u56de\u503c\uff1a\nint \u8fd4\u56de\u8bbe\u5907\u603b\u6570\n\u4f8b\u5b50\uff1a\nlog.info(\"sfud.getDeviceNum\",sfud.getDeviceNum())\n", "prefix": "sfud.getDeviceNum"}, "sfud.getDevice": {"body": "sfud.getDevice(${1:index})", "description": "sfud.getDevice(index) - \u901a\u8fc7flash\u4fe1\u606f\u8868\u4e2d\u7684\u7d22\u5f15\u83b7\u53d6flash\u8bbe\u5907\n\u4f20\u5165\u503c\uff1a\nint index flash\u4fe1\u606f\u8868\u4e2d\u7684\u7d22\u5f15\n\u8fd4\u56de\u503c\uff1a\nuserdata \u6210\u529f\u8fd4\u56de\u4e00\u4e2a\u6570\u636e\u7ed3\u6784,\u5426\u5219\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\nlocal sfud_device = sfud.getDevice(1)\n", "prefix": "sfud.getDevice"}, "sfud.getDeviceTable": {"body": "sfud.getDeviceTable()", "description": "sfud.getDeviceTable() - \u83b7\u53d6flash\u8bbe\u5907\u4fe1\u606f\u8868\n\u8fd4\u56de\u503c\uff1a\nuserdata \u6210\u529f\u8fd4\u56de\u4e00\u4e2a\u6570\u636e\u7ed3\u6784,\u5426\u5219\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\nlocal sfud_device = sfud.getDeviceTable()\n", "prefix": "sfud.getDeviceTable"}, "sfud.chipErase": {"body": "sfud.chipErase(${1:flash})", "description": "sfud.chipErase(flash) - \u64e6\u9664 Flash \u5168\u90e8\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nuserdata flash Flash \u8bbe\u5907\u5bf9\u8c61 sfud.get_device_table()\u8fd4\u56de\u7684\u6570\u636e\u7ed3\u6784\n\u8fd4\u56de\u503c\uff1a\nint \u6210\u529f\u8fd4\u56de0\n\u4f8b\u5b50\uff1a\nsfud.chipErase(flash)\n", "prefix": "sfud.chipErase"}, "sfud.erase": {"body": "sfud.erase(${1:flash},${2:add},${3:size})", "description": "sfud.erase(flash,add,size) - \u64e6\u9664 Flash \u6307\u5b9a\u5730\u5740\u6307\u5b9a\u5927\u5c0f\n\u4f20\u5165\u503c\uff1a\nuserdata flash Flash \u8bbe\u5907\u5bf9\u8c61 sfud.get_device_table()\u8fd4\u56de\u7684\u6570\u636e\u7ed3\u6784\nnumber add \u64e6\u9664\u5730\u5740\nnumber size \u64e6\u9664\u5927\u5c0f\n\u8fd4\u56de\u503c\uff1a\nint \u6210\u529f\u8fd4\u56de0\n\u4f8b\u5b50\uff1a\nsfud.erase(flash,add,size)\n", "prefix": "sfud.erase"}, "sfud.read": {"body": "sfud.read(${1:flash},${2:addr},${3:size})", "description": "sfud.read(flash, addr, size) - \u8bfb\u53d6 Flash \u6570\u636e\n\u4f20\u5165\u503c\uff1a\nuserdata flash Flash \u8bbe\u5907\u5bf9\u8c61 sfud.get_device_table()\u8fd4\u56de\u7684\u6570\u636e\u7ed3\u6784\nint addr \u8d77\u59cb\u5730\u5740\nint size \u4ece\u8d77\u59cb\u5730\u5740\u5f00\u59cb\u8bfb\u53d6\u6570\u636e\u7684\u603b\u5927\u5c0f\n\u8fd4\u56de\u503c\uff1a\nstring data \u8bfb\u53d6\u5230\u7684\u6570\u636e\n\u4f8b\u5b50\uff1a\nlog.info(\"sfud.read\",sfud.read(sfud_device,1024,4))\n", "prefix": "sfud.read"}, "sfud.write": {"body": "sfud.write(${1:flash},${2:addr},${3:data})", "description": "sfud.write(flash, addr,data) - \u5411 Flash \u5199\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nuserdata flash Flash \u8bbe\u5907\u5bf9\u8c61 sfud.get_device_table()\u8fd4\u56de\u7684\u6570\u636e\u7ed3\u6784\nint addr \u8d77\u59cb\u5730\u5740\nstring data \u5f85\u5199\u5165\u7684\u6570\u636e\n\u8fd4\u56de\u503c\uff1a\nint \u6210\u529f\u8fd4\u56de0\n\u4f8b\u5b50\uff1a\nlog.info(\"sfud.write\",sfud.write(sfud_device,1024,\"sfud\"))\n", "prefix": "sfud.write"}, "sfud.eraseWrite": {"body": "sfud.eraseWrite(${1:flash},${2:addr},${3:data})", "description": "sfud.eraseWrite(flash, addr,data) - \u5148\u64e6\u9664\u518d\u5f80 Flash \u5199\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nuserdata flash Flash \u8bbe\u5907\u5bf9\u8c61 sfud.get_device_table()\u8fd4\u56de\u7684\u6570\u636e\u7ed3\u6784\nint addr \u8d77\u59cb\u5730\u5740\nstring data \u5f85\u5199\u5165\u7684\u6570\u636e\n\u8fd4\u56de\u503c\uff1a\nint \u6210\u529f\u8fd4\u56de0\n\u4f8b\u5b50\uff1a\nlog.info(\"sfud.eraseWrite\",sfud.eraseWrite(sfud_device,1024,\"sfud\"))\n", "prefix": "sfud.eraseWrite"}, "sfud.mount": {"body": "sfud.mount(${1:flash},${2:mount_point},${3:offset},${4:maxsize})", "description": "sfud.mount(flash, mount_point, offset, maxsize) - \u6302\u8f7dsfud lfs\u6587\u4ef6\u7cfb\u7edf\n\u4f20\u5165\u503c\uff1a\nuserdata flash Flash \u8bbe\u5907\u5bf9\u8c61 sfud.get_device_table()\u8fd4\u56de\u7684\u6570\u636e\u7ed3\u6784\nstring mount_point \u6302\u8f7d\u76ee\u5f55\u540d\nint \u8d77\u59cb\u504f\u79fb\u91cf,\u9ed8\u8ba40\nint \u603b\u5927\u5c0f, \u9ed8\u8ba4\u662f\u6574\u4e2aflash\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue\n\u4f8b\u5b50\uff1a\nlog.info(\"sfud.mount\",sfud.mount(sfud_device,\"/sfud\"))\nlog.info(\"fsstat\", fs.fsstat(\"/\"))\nlog.info(\"fsstat\", fs.fsstat(\"/sfud\"))\n", "prefix": "sfud.mount"}, "sms.send": {"body": "sms.send(${1:phone},${2:msg},${3:auto_phone_fix})", "description": "sms.send(phone, msg, auto_phone_fix) - \u53d1\u9001\u77ed\u4fe1\n\u4f20\u5165\u503c\uff1a\nstring \u7535\u8bdd\u53f7\u7801,\u5fc5\u586b\nstring \u77ed\u4fe1\u5185\u5bb9,\u5fc5\u586b\nbool \u662f\u5426\u81ea\u52a8\u5904\u7406\u7535\u8bdd\u53f7\u53f7\u7801\u7684\u683c\u5f0f,\u9ed8\u8ba4\u662f\u6309\u77ed\u4fe1\u5185\u5bb9\u548c\u53f7\u7801\u683c\u5f0f\u8fdb\u884c\u81ea\u52a8\u5224\u65ad, \u8bbe\u7f6e\u4e3afalse\u53ef\u7981\u7528\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\u6216nil\n", "prefix": "sms.send"}, "sms.setNewSmsCb": {"body": "sms.setNewSmsCb(${1:func})", "description": "sms.setNewSmsCb(func) - \u8bbe\u7f6e\u65b0SMS\u7684\u56de\u8c03\u51fd\u6570\n\u4f20\u5165\u503c\uff1a\nfunction \u56de\u8c03\u51fd\u6570, 3\u4e2a\u53c2\u6570, num, txt, metas\n\u8fd4\u56de\u503c\uff1a\nnil \u4f20\u5165\u662f\u51fd\u6570\u5c31\u80fd\u6210\u529f,\u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n\nsms.setNewSmsCb(function(num, txt, metas)\n -- num \u624b\u673a\u53f7\u7801\n -- txt \u6587\u672c\u5185\u5bb9\n -- metas \u77ed\u4fe1\u7684\u5143\u6570\u636e,\u4f8b\u5982\u53d1\u9001\u7684\u65f6\u95f4,\u957f\u77ed\u4fe1\u7f16\u53f7\n -- \u6ce8\u610f, \u957f\u77ed\u4fe1\u4f1a\u81ea\u52a8\u5408\u5e76\u6210\u4e00\u6761txt\n log.info(\"sms\", num, txt, metas and json.encode(metas) or \"\")\nend)\n", "prefix": "sms.setNewSmsCb"}, "sms.autoLong": {"body": "sms.autoLong(${1:mode})", "description": "sms.autoLong(mode) - \u8bbe\u7f6e\u957f\u77ed\u4fe1\u7684\u81ea\u52a8\u5408\u5e76\u529f\u80fd\n\u4f20\u5165\u503c\uff1a\nbool \u662f\u5426\u81ea\u52a8\u5408\u5e76,true\u4e3a\u81ea\u52a8\u5408\u5e76,\u4e3a\u9ed8\u8ba4\u503c\n\u8fd4\u56de\u503c\uff1a\nbool \u8bbe\u7f6e\u540e\u7684\u503c\n\u4f8b\u5b50\uff1a\n-- \u7981\u7528\u957f\u77ed\u4fe1\u7684\u81ea\u52a8\u5408\u5e76, \u4e00\u822c\u4e0d\u9700\u8981\u7981\u7528\nsms.autoLong(false)\n", "prefix": "sms.autoLong"}, "sms.clearLong": {"body": "sms.clearLong()", "description": "sms.clearLong() - \u6e05\u9664\u957f\u77ed\u4fe1\u7f13\u5b58\n\u8fd4\u56de\u503c\uff1a\nint \u6e05\u7406\u6389\u7684\u7247\u6bb5\u6570\u91cf\n\u4f8b\u5b50\uff1a\nsms.clearLong()\n", "prefix": "sms.clearLong"}, "socket.sntp": {"body": "socket.sntp(${1:sntp_server})", "description": "socket.sntp(sntp_server) - sntp\u65f6\u95f4\u540c\u6b65\n\u4f20\u5165\u503c\uff1a\nstring/table sntp\u670d\u52a1\u5668\u5730\u5740 \u9009\u586b\nint \u9002\u914d\u5668\u5e8f\u53f7\uff0c \u53ea\u80fd\u662fsocket.ETH0\uff08\u5916\u7f6e\u4ee5\u592a\u7f51\uff09\uff0csocket.LWIP_ETH\uff08\u5185\u7f6e\u4ee5\u592a\u7f51\uff09\uff0csocket.LWIP_STA\uff08\u5185\u7f6eWIFI\u7684STA\uff09\uff0csocket.LWIP_AP\uff08\u5185\u7f6eWIFI\u7684AP\uff09\uff0csocket.LWIP_GP\uff08\u5185\u7f6e\u8702\u7a9d\u7f51\u7edc\u7684GPRS\uff09\uff0csocket.USB\uff08\u5916\u7f6eUSB\u7f51\u5361\uff09\uff0c\u5982\u679c\u4e0d\u586b\uff0c\u4f18\u5148\u9009\u62e9soc\u5e73\u53f0\u81ea\u5e26\u80fd\u4e0a\u5916\u7f51\u7684\u9002\u914d\u5668\uff0c\u82e5\u4ecd\u7136\u6ca1\u6709\uff0c\u9009\u62e9\u6700\u540e\u4e00\u4e2a\u6ce8\u518c\u7684\u9002\u914d\u5668\n\u4f8b\u5b50\uff1a\nsocket.sntp()\n--socket.sntp(\"ntp.aliyun.com\") --\u81ea\u5b9a\u4e49sntp\u670d\u52a1\u5668\u5730\u5740\n--socket.sntp({\"ntp.aliyun.com\",\"ntp1.aliyun.com\",\"ntp2.aliyun.com\"}) --sntp\u81ea\u5b9a\u4e49\u670d\u52a1\u5668\u5730\u5740\n--socket.sntp(nil, socket.ETH0) --sntp\u81ea\u5b9a\u4e49\u9002\u914d\u5668\u5e8f\u53f7\nsys.subscribe(\"NTP_UPDATE\", function()\n log.info(\"sntp\", \"time\", os.date())\nend)\nsys.subscribe(\"NTP_ERROR\", function()\n log.info(\"socket\", \"sntp error\")\n socket.sntp()\nend)\n", "prefix": "socket.sntp"}, "socket.localIP": {"body": "socket.localIP(${1:adapter})", "description": "socket.localIP(adapter) - \u83b7\u53d6\u672c\u5730ip\n\u4f20\u5165\u503c\uff1a\nint \u9002\u914d\u5668\u5e8f\u53f7\uff0c \u53ea\u80fd\u662fsocket.ETH0\uff08\u5916\u7f6e\u4ee5\u592a\u7f51\uff09\uff0csocket.LWIP_ETH\uff08\u5185\u7f6e\u4ee5\u592a\u7f51\uff09\uff0csocket.LWIP_STA\uff08\u5185\u7f6eWIFI\u7684STA\uff09\uff0csocket.LWIP_AP\uff08\u5185\u7f6eWIFI\u7684AP\uff09\uff0csocket.LWIP_GP\uff08\u5185\u7f6e\u8702\u7a9d\u7f51\u7edc\u7684GPRS\uff09\uff0csocket.USB\uff08\u5916\u7f6eUSB\u7f51\u5361\uff09\uff0c\u5982\u679c\u4e0d\u586b\uff0c\u4f18\u5148\u9009\u62e9soc\u5e73\u53f0\u81ea\u5e26\u80fd\u4e0a\u5916\u7f51\u7684\u9002\u914d\u5668\uff0c\u82e5\u4ecd\u7136\u6ca1\u6709\uff0c\u9009\u62e9\u6700\u540e\u4e00\u4e2a\u6ce8\u518c\u7684\u9002\u914d\u5668\n\u8fd4\u56de\u503c\uff1a\nstring \u901a\u5e38\u662f\u5185\u7f51ip, \u4e5f\u53ef\u80fd\u662f\u5916\u7f51ip, \u53d6\u51b3\u4e8e\u8fd0\u8425\u5546\u7684\u5206\u914d\nstring \u7f51\u7edc\u63a9\u7801\nstring \u7f51\u5173IP\n\u4f8b\u5b50\uff1a\nsys.taskInit(function()\n while 1 do\n sys.wait(3000)\n log.info(\"socket\", \"ip\", socket.localIP())\n\t\t-- \u8f93\u51fa\u793a\u4f8b\n\t\t-- 62.39.244.10\t255.255.255.255\t0.0.0.0\n end\nend)\n", "prefix": "socket.localIP"}, "socket.create": {"body": "socket.create(${1:adapter},${2:cb})", "description": "socket.create(adapter, cb) - \u5728\u67d0\u4e2a\u9002\u914d\u7684\u7f51\u5361\u4e0a\u7533\u8bf7\u4e00\u4e2asocket_ctrl\n\u4f20\u5165\u503c\uff1a\nint \u9002\u914d\u5668\u5e8f\u53f7\uff0c \u53ea\u80fd\u662fsocket.ETH0\uff08\u5916\u7f6e\u4ee5\u592a\u7f51\uff09\uff0csocket.LWIP_ETH\uff08\u5185\u7f6e\u4ee5\u592a\u7f51\uff09\uff0csocket.LWIP_STA\uff08\u5185\u7f6eWIFI\u7684STA\uff09\uff0csocket.LWIP_AP\uff08\u5185\u7f6eWIFI\u7684AP\uff09\uff0csocket.LWIP_GP\uff08\u5185\u7f6e\u8702\u7a9d\u7f51\u7edc\u7684GPRS\uff09\uff0csocket.USB\uff08\u5916\u7f6eUSB\u7f51\u5361\uff09\uff0c\u5982\u679c\u4e0d\u586b\uff0c\u4f18\u5148\u9009\u62e9soc\u5e73\u53f0\u81ea\u5e26\u80fd\u4e0a\u5916\u7f51\u7684\u9002\u914d\u5668\uff0c\u82e5\u4ecd\u7136\u6ca1\u6709\uff0c\u9009\u62e9\u6700\u540e\u4e00\u4e2a\u6ce8\u518c\u7684\u9002\u914d\u5668\nstring or function string\u4e3a\u6d88\u606f\u901a\u77e5\u7684taskName\uff0cfunction\u5219\u4e3a\u56de\u8c03\u51fd\u6570\uff0c\u5982\u679c\u56fa\u4ef6\u6ca1\u6709\u5185\u7f6esys_wait\uff0c\u5219\u5fc5\u987b\u662ffunction\n", "prefix": "socket.create"}, "socket.debug": {"body": "socket.debug(${1:ctrl},${2:onoff})", "description": "socket.debug(ctrl, onoff) - \u914d\u7f6e\u662f\u5426\u6253\u5f00debug\u4fe1\u606f\n\u4f20\u5165\u503c\uff1a\nuser_data socket.create\u5f97\u5230\u7684ctrl\nboolean true \u6253\u5f00debug\u5f00\u5173\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n-- \u6253\u5f00\u8c03\u8bd5\u4fe1\u606f,\u9ed8\u8ba4\u662f\u5173\u95ed\u72b6\u6001\nsocket.debug(ctrl, true)\n", "prefix": "socket.debug"}, "socket.config": {"body": "socket.config(${1:ctrl},${2:local_port},${3:is_udp},${4:is_tls},${5:keep_idle},${6:keep_interval},${7:keep_cnt},${8:server_cert},${9:client_cert},${10:client_key},${11:client_password})", "description": "socket.config(ctrl, local_port, is_udp, is_tls, keep_idle, keep_interval, keep_cnt, server_cert, client_cert, client_key, client_password) - \u914d\u7f6enetwork\u4e00\u4e9b\u4fe1\u606f\uff0c\n\u4f20\u5165\u503c\uff1a\nuser_data socket.create\u5f97\u5230\u7684ctrl\nint \u672c\u5730\u7aef\u53e3\u53f7\uff0c\u5c0f\u7aef\u683c\u5f0f\uff0c\u5982\u679c\u4e0d\u5199\uff0c\u5219\u81ea\u52a8\u5206\u914d\u4e00\u4e2a\uff0c\u5982\u679c\u7528\u6237\u586b\u4e86\u7aef\u53e3\u53f7\u5219\u9700\u8981\u5c0f\u4e8e60000, \u9ed8\u8ba4\u4e0d\u5199\nboolean \u662f\u5426\u662fUDP\uff0c\u9ed8\u8ba4false\nboolean \u662f\u5426\u662f\u52a0\u5bc6\u4f20\u8f93\uff0c\u9ed8\u8ba4false\nint tcp keep live\u6a21\u5f0f\u4e0b\u7684idle\u65f6\u95f4\uff08\u79d2\uff09\uff0c\u5982\u679c\u7559\u7a7a\u5219\u8868\u793a\u4e0d\u542f\u7528\uff0c\u5982\u679c\u662f\u4e0d\u652f\u6301\u6807\u51c6posix\u63a5\u53e3\u7684\u7f51\u5361\uff08\u6bd4\u5982W5500\uff09\uff0c\u5219\u4e3a\u5fc3\u8df3\u95f4\u9694\nint tcp keep live\u6a21\u5f0f\u4e0b\u7684\u63a2\u6d4b\u95f4\u9694\u65f6\u95f4\uff08\u79d2\uff09\nint tcp keep live\u6a21\u5f0f\u4e0b\u7684\u63a2\u6d4b\u6b21\u6570\nstring TCP\u6a21\u5f0f\u4e0b\u7684\u670d\u52a1\u5668ca\u8bc1\u4e66\u6570\u636e\uff0cUDP\u6a21\u5f0f\u4e0b\u7684PSK\uff0c\u4e0d\u9700\u8981\u52a0\u5bc6\u4f20\u8f93\u5199nil\uff0c\u540e\u7eed\u53c2\u6570\u4e5f\u5168\u90e8nil\nstring TCP\u6a21\u5f0f\u4e0b\u7684\u5ba2\u6237\u7aefca\u8bc1\u4e66\u6570\u636e\uff0cUDP\u6a21\u5f0f\u4e0b\u7684PSK-ID\uff0cTCP\u6a21\u5f0f\u4e0b\u5982\u679c\u4e0d\u9700\u8981\u9a8c\u8bc1\u5ba2\u6237\u7aef\u8bc1\u4e66\u65f6\uff0c\u5ffd\u7565\uff0c\u4e00\u822c\u4e0d\u9700\u8981\u9a8c\u8bc1\u5ba2\u6237\u7aef\u8bc1\u4e66\nstring TCP\u6a21\u5f0f\u4e0b\u7684\u5ba2\u6237\u7aef\u79c1\u94a5\u52a0\u5bc6\u6570\u636e\nstring TCP\u6a21\u5f0f\u4e0b\u7684\u5ba2\u6237\u7aef\u79c1\u94a5\u53e3\u4ee4\u6570\u636e\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u8fd4\u56detrue\uff0c\u5931\u8d25\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n--\u6700\u666e\u901a\u7684TCP\u4f20\u8f93\nsocket.config(ctrl)\n--\u6700\u666e\u901a\u7684\u52a0\u5bc6TCP\u4f20\u8f93\uff0c\u8bc1\u4e66\u90fd\u4e0d\u7528\u9a8c\u8bc1\u7684\u90a3\u79cd\nsocket.config(ctrl, nil, nil ,true)\n", "prefix": "socket.config"}, "socket.linkup": {"body": "socket.linkup(${1:ctrl})", "description": "socket.linkup(ctrl) - \u7b49\u5f85\u7f51\u5361linkup\n\u4f20\u5165\u503c\uff1a\nuser_data socket.create\u5f97\u5230\u7684ctrl\n\u8fd4\u56de\u503c\uff1a\nboolean true\u6ca1\u6709\u5f02\u5e38\u53d1\u751f\uff0cfalse\u5931\u8d25\u4e86\uff0c\u5982\u679cfalse\u5219\u4e0d\u9700\u8981\u770b\u4e0b\u4e00\u4e2a\u8fd4\u56de\u503c\u4e86\nboolean true\u5df2\u7ecflinkup\uff0cfalse\u6ca1\u6709linkup\uff0c\u4e4b\u540e\u9700\u8981\u63a5\u6536socket.LINK\u6d88\u606f\n\u4f8b\u5b50\uff1a\n-- \u5224\u65ad\u4e00\u4e0b\u662f\u5426\u5df2\u7ecf\u8054\u7f51\nlocal succ, result = socket.linkup(ctrl)\n", "prefix": "socket.linkup"}, "socket.connect": {"body": "socket.connect(${1:ctrl},${2:ip},${3:remote_port},${4:need_ipv6_dns})", "description": "socket.connect(ctrl, ip, remote_port, need_ipv6_dns) - \u4f5c\u4e3a\u5ba2\u6237\u7aef\u8fde\u63a5\u670d\u52a1\u5668\n\u4f20\u5165\u503c\uff1a\nuser_data socket.create\u5f97\u5230\u7684ctrl\nstring or int ip\u6216\u8005\u57df\u540d\uff0c\u5982\u679c\u662fIPV4\uff0c\u53ef\u4ee5\u662f\u5927\u7aef\u683c\u5f0f\u7684int\u503c\nint \u670d\u52a1\u5668\u7aef\u53e3\u53f7\uff0c\u5c0f\u7aef\u683c\u5f0f\nboolean \u57df\u540d\u89e3\u6790\u662f\u5426\u8981IPV6\uff0ctrue\u8981\uff0cfalse\u4e0d\u8981\uff0c\u9ed8\u8ba4false\u4e0d\u8981\uff0c\u53ea\u6709\u652f\u6301IPV6\u7684\u534f\u8bae\u6808\u624d\u6709\u6548\u679c\n\u8fd4\u56de\u503c\uff1a\nboolean true\u6ca1\u6709\u5f02\u5e38\u53d1\u751f\uff0cfalse\u5931\u8d25\u4e86\uff0c\u5982\u679cfalse\u5219\u4e0d\u9700\u8981\u770b\u4e0b\u4e00\u4e2a\u8fd4\u56de\u503c\u4e86\uff0c\u5982\u679c\u6709\u5f02\u5e38\uff0c\u540e\u7eed\u8981close\nboolean true\u5df2\u7ecfconnect\uff0cfalse\u6ca1\u6709connect\uff0c\u4e4b\u540e\u9700\u8981\u63a5\u6536socket.ON_LINE\u6d88\u606f\n\u4f8b\u5b50\uff1a\n\nlocal succ, result = socket.connect(ctrl, \"netlab.luatos.com\", 40123)\n\n--[[\n\u5e38\u89c1\u7684\u8fde\u63a5\u5931\u8d25\u7684code\u503c, \u4f1a\u5728\u65e5\u5fd7\u4e2d\u663e\u793a\n-1 \u5e95\u5c42\u5185\u5b58\u4e0d\u8db3\n-3 \u8d85\u65f6\n-8 \u7aef\u53e3\u5df2\u7ecf\u88ab\u5360\u7528\n-11 \u94fe\u63a5\u672a\u5efa\u7acb\n-13 \u6a21\u5757\u4e3b\u52a8\u65ad\u5f00\u8fde\u63a5\n-14 \u670d\u52a1\u5668\u4e3b\u52a8\u65ad\u5f00\u8fde\u63a5\n]]\n", "prefix": "socket.connect"}, "socket.discon": {"body": "socket.discon(${1:ctrl})", "description": "socket.discon(ctrl) - \u4f5c\u4e3a\u5ba2\u6237\u7aef\u65ad\u5f00\u8fde\u63a5\n\u4f20\u5165\u503c\uff1a\nuser_data socket.create\u5f97\u5230\u7684ctrl\n\u8fd4\u56de\u503c\uff1a\nboolean true\u6ca1\u6709\u5f02\u5e38\u53d1\u751f\uff0cfalse\u5931\u8d25\u4e86\uff0c\u5982\u679cfalse\u5219\u4e0d\u9700\u8981\u770b\u4e0b\u4e00\u4e2a\u8fd4\u56de\u503c\u4e86\nboolean true\u5df2\u7ecf\u65ad\u5f00\uff0cfalse\u6ca1\u6709\u65ad\u5f00\uff0c\u4e4b\u540e\u9700\u8981\u63a5\u6536socket.CLOSED\u6d88\u606f\n\u4f8b\u5b50\uff1a\nlocal succ, result = socket.discon(ctrl)\n", "prefix": "socket.discon"}, "socket.close": {"body": "socket.close(${1:ctrl})", "description": "socket.close(ctrl) - \u5f3a\u5236\u5173\u95edsocket\n\u4f20\u5165\u503c\uff1a\nuser_data socket.create\u5f97\u5230\u7684ctrl\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n", "prefix": "socket.close"}, "socket.tx": {"body": "socket.tx(${1:ctrl},${2:data},${3:ip},${4:port},${5:flag})", "description": "socket.tx(ctrl, data, ip, port, flag) - \u53d1\u9001\u6570\u636e\u7ed9\u5bf9\u7aef\uff0cUDP\u5355\u6b21\u53d1\u9001\u4e0d\u8981\u8d85\u8fc71460\u5b57\u8282\uff0c\u5426\u5219\u5f88\u5bb9\u6613\u5931\u8d25\n\u4f20\u5165\u503c\uff1a\nuser_data socket.create\u5f97\u5230\u7684ctrl\nstring or user_data zbuff \u8981\u53d1\u9001\u7684\u6570\u636e\nstring or int \u5bf9\u7aefIP\uff0c\u5982\u679c\u662fTCP\u5e94\u7528\u5219\u5ffd\u7565\uff0c\u5982\u679c\u662fUDP\uff0c\u5982\u679c\u7559\u7a7a\u5219\u7528connect\u65f6\u5019\u7684\u53c2\u6570\uff0c\u5982\u679c\u662fIPV4\uff0c\u53ef\u4ee5\u662f\u5927\u7aef\u683c\u5f0f\u7684int\u503c\nint \u5bf9\u7aef\u7aef\u53e3\u53f7\uff0c\u5c0f\u7aef\u683c\u5f0f\uff0c\u5982\u679c\u662fTCP\u5e94\u7528\u5219\u5ffd\u7565\uff0c\u5982\u679c\u662fUDP\uff0c\u5982\u679c\u7559\u7a7a\u5219\u7528connect\u65f6\u5019\u7684\u53c2\u6570\nint \u53d1\u9001\u53c2\u6570\uff0c\u76ee\u524d\u9884\u7559\uff0c\u4e0d\u8d77\u4f5c\u7528\n\u8fd4\u56de\u503c\uff1a\nboolean true\u6ca1\u6709\u5f02\u5e38\u53d1\u751f\uff0cfalse\u5931\u8d25\u4e86\uff0c\u5982\u679cfalse\u5219\u4e0d\u9700\u8981\u770b\u4e0b\u4e00\u4e2a\u8fd4\u56de\u503c\u4e86\uff0c\u5982\u679cfalse\uff0c\u540e\u7eed\u8981close\nboolean true\u7f13\u51b2\u533a\u6ee1\u4e86\uff0cfalse\u6ca1\u6709\u6ee1\uff0c\u5982\u679ctrue\uff0c\u5219\u9700\u8981\u7b49\u5f85\u4e00\u6bb5\u65f6\u95f4\u6216\u8005\u7b49\u5230socket.TX_OK\u6d88\u606f\u540e\u518d\u5c1d\u8bd5\u53d1\u9001\uff0c\u540c\u65f6\u5ffd\u7565\u4e0b\u4e00\u4e2a\u8fd4\u56de\u503c\nboolean true\u5df2\u7ecf\u6536\u5230\u5e94\u7b54\uff0cfalse\u6ca1\u6709\u6536\u5230\u5e94\u7b54\uff0c\u4e4b\u540e\u9700\u8981\u63a5\u6536socket.TX_OK\u6d88\u606f\uff0c \u4e5f\u53ef\u4ee5\u5ffd\u7565\u7ee7\u7eed\u53d1\u9001\uff0c\u76f4\u5230full==true\n\u4f8b\u5b50\uff1a\n\nlocal succ, full, result = socket.tx(ctrl, \"123456\", \"xxx.xxx.xxx.xxx\", xxxx)\n", "prefix": "socket.tx"}, "socket.rx": {"body": "socket.rx(${1:ctrl},${2:buff},${3:flag})", "description": "socket.rx(ctrl, buff, flag) - \u63a5\u6536\u5bf9\u7aef\u53d1\u51fa\u7684\u6570\u636e\uff0c\u6ce8\u610f\u6570\u636e\u5df2\u7ecf\u7f13\u5b58\u5728\u5e95\u5c42\uff0c\u4f7f\u7528\u672c\u51fd\u6570\u53ea\u662f\u63d0\u53d6\u51fa\u6765\uff0cUDP\u6a21\u5f0f\u4e0b\u4e00\u6b21\u53ea\u4f1a\u53d6\u51fa\u4e00\u4e2a\u6570\u636e\u5305\n\u4f20\u5165\u503c\uff1a\nuser_data socket.create\u5f97\u5230\u7684ctrl\nuser_data zbuff \u5b58\u653e\u63a5\u6536\u7684\u6570\u636e\uff0c\u5982\u679c\u7f13\u51b2\u533a\u4e0d\u591f\u5927\u4f1a\u81ea\u52a8\u6269\u5bb9\nint \u63a5\u6536\u53c2\u6570\uff0c\u76ee\u524d\u9884\u7559\uff0c\u4e0d\u8d77\u4f5c\u7528\n\u8fd4\u56de\u503c\uff1a\nboolean true\u6ca1\u6709\u5f02\u5e38\u53d1\u751f\uff0cfalse\u5931\u8d25\u4e86\uff0c\u5982\u679cfalse\u5219\u4e0d\u9700\u8981\u770b\u4e0b\u4e00\u4e2a\u8fd4\u56de\u503c\u4e86\uff0c\u5982\u679cfalse\uff0c\u540e\u7eed\u8981close\nint \u672c\u6b21\u63a5\u6536\u5230\u6570\u636e\u957f\u5ea6\nstring \u5bf9\u7aefIP\uff0c\u53ea\u6709UDP\u6a21\u5f0f\u4e0b\u624d\u6709\u610f\u4e49\uff0cTCP\u6a21\u5f0f\u8fd4\u56denil\uff0c\u6ce8\u610f\u8fd4\u56de\u7684\u683c\u5f0f\uff0c\u5982\u679c\u662fIPV4\uff0c1byte 0x00 + 4byte\u5730\u5740 \u5982\u679c\u662fIPV6\uff0c1byte 0x01 + 16byte\u5730\u5740\nint \u5bf9\u7aefport\uff0c\u53ea\u6709UDP\u6a21\u5f0f\u4e0b\u624d\u6709\u610f\u4e49\uff0cTCP\u6a21\u5f0f\u8fd4\u56de0\n\u4f8b\u5b50\uff1a\nlocal succ, data_len, ip, port = socket.rx(ctrl, buff)\n", "prefix": "socket.rx"}, "socket.wait": {"body": "socket.wait(${1:ctrl})", "description": "socket.wait(ctrl) - \u7b49\u5f85\u65b0\u7684socket\u6d88\u606f\uff0c\u5728\u8fde\u63a5\u6210\u529f\u548c\u53d1\u9001\u6570\u636e\u6210\u529f\u540e\uff0c\u4f7f\u7528\u4e00\u6b21\u5c06network\u72b6\u6001\u8f6c\u6362\u5230\u63a5\u6536\u65b0\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nuser_data socket.create\u5f97\u5230\u7684ctrl\n\u8fd4\u56de\u503c\uff1a\nboolean true\u6ca1\u6709\u5f02\u5e38\u53d1\u751f\uff0cfalse\u5931\u8d25\u4e86\uff0c\u5982\u679cfalse\u5219\u4e0d\u9700\u8981\u770b\u4e0b\u4e00\u4e2a\u8fd4\u56de\u503c\u4e86\uff0c\u5982\u679cfalse\uff0c\u540e\u7eed\u8981close\nboolean true\u6709\u65b0\u7684\u6570\u636e\u9700\u8981\u63a5\u6536\uff0cfalse\u6ca1\u6709\u6570\u636e\uff0c\u4e4b\u540e\u9700\u8981\u63a5\u6536socket.EVENT\u6d88\u606f\n\u4f8b\u5b50\uff1a\nlocal succ, result = socket.wait(ctrl)\n", "prefix": "socket.wait"}, "socket.listen": {"body": "socket.listen(${1:ctrl})", "description": "socket.listen(ctrl) - \u4f5c\u4e3a\u670d\u52a1\u7aef\u5f00\u59cb\u76d1\u542c\n\u4f20\u5165\u503c\uff1a\nuser_data socket.create\u5f97\u5230\u7684ctrl\n\u8fd4\u56de\u503c\uff1a\nboolean true\u6ca1\u6709\u5f02\u5e38\u53d1\u751f\uff0cfalse\u5931\u8d25\u4e86\uff0c\u5982\u679cfalse\u5219\u4e0d\u9700\u8981\u770b\u4e0b\u4e00\u4e2a\u8fd4\u56de\u503c\u4e86\uff0c\u5982\u679cfalse\uff0c\u540e\u7eed\u8981close\nboolean true\u5df2\u7ecfconnect\uff0cfalse\u6ca1\u6709connect\uff0c\u4e4b\u540e\u9700\u8981\u63a5\u6536socket.ON_LINE\u6d88\u606f\n\u4f8b\u5b50\uff1a\nlocal succ, result = socket.listen(ctrl)\n", "prefix": "socket.listen"}, "socket.accept": {"body": "socket.accept(${1:ctrl})", "description": "socket.accept(ctrl) - \u4f5c\u4e3a\u670d\u52a1\u7aef\u63a5\u6536\u5230\u4e00\u4e2a\u65b0\u7684\u5ba2\u6237\u7aef\uff0c\u6ce8\u610f\uff0c\u5982\u679c\u662f\u7c7b\u4f3cW5500\u7684\u786c\u4ef6\u534f\u8bae\u6808\u4e0d\u652f\u63011\u5bf9\u591a\uff0c\u5219\u4e0d\u9700\u8981\u7b2c\u4e8c\u4e2a\u53c2\u6570\n\u4f20\u5165\u503c\uff1a\nuser_data socket.create\u5f97\u5230\u7684ctrl\uff0c\u8fd9\u91cc\u662f\u670d\u52a1\u5668\u7aef\nstring or function or nil string\u4e3a\u6d88\u606f\u901a\u77e5\u7684taskName\uff0cfunction\u5219\u4e3a\u56de\u8c03\u51fd\u6570\uff0c\u548csocket.create\u53c2\u6570\u4e00\u81f4\n\u8fd4\u56de\u503c\uff1a\nboolean true\u6ca1\u6709\u5f02\u5e38\u53d1\u751f\uff0cfalse\u5931\u8d25\u4e86\uff0c\u5982\u679cfalse\u5219\u4e0d\u9700\u8981\u770b\u4e0b\u4e00\u4e2a\u8fd4\u56de\u503c\u4e86\uff0c\u5982\u679cfalse\uff0c\u540e\u7eed\u8981close\nuser_data or nil \u5982\u679c\u652f\u63011\u5bf9\u591a\uff0c\u5219\u4f1a\u8fd4\u56de\u65b0\u7684ctrl\uff0c\u81ea\u52a8create\uff0c\u5982\u679c\u4e0d\u652f\u6301\u5219\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\nlocal succ, new_netc = socket.listen(ctrl, cb)\n", "prefix": "socket.accept"}, "socket.release": {"body": "socket.release(${1:ctrl})", "description": "socket.release(ctrl) - \u4e3b\u52a8\u91ca\u653e\u6389network_ctrl\n", "prefix": "socket.release"}, "socket.setDNS": {"body": "socket.setDNS(${1:adapter_index},${2:dns_index},${3:ip})", "description": "socket.setDNS(adapter_index, dns_index, ip) - \u8bbe\u7f6eDNS\u670d\u52a1\u5668\n\u4f20\u5165\u503c\uff1a\nint \u9002\u914d\u5668\u5e8f\u53f7\uff0c \u53ea\u80fd\u662fsocket.ETH0\uff0csocket.STA\uff0csocket.AP\uff0c\u5982\u679c\u4e0d\u586b\uff0c\u4f1a\u9009\u62e9\u6700\u540e\u4e00\u4e2a\u6ce8\u518c\u7684\u9002\u914d\u5668\nint dns\u670d\u52a1\u5668\u5e8f\u53f7\uff0c\u4ece1\u5f00\u59cb\nstring or int dns\uff0c\u5982\u679c\u662fIPV4\uff0c\u53ef\u4ee5\u662f\u5927\u7aef\u683c\u5f0f\u7684int\u503c\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u8fd4\u56detrue\uff0c\u5931\u8d25\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- \u8bbe\u7f6e\u9ed8\u8ba4\u7f51\u7edc\u9002\u914d\u5668\u7684DNS\u914d\u7f6e\nsocket.setDNS(nil, 1, \"114.114.114.114\")\n-- \u8bbe\u7f6e\u5236\u5b9a\u7f51\u7edc\u9002\u914d\u5668\u7684DNS\u914d\u7f6e\nsocket.setDNS(socket.ETH0, 1, \"114.114.114.114\")\n", "prefix": "socket.setDNS"}, "socket.sslLog": {"body": "socket.sslLog(${1:log_level})", "description": "socket.sslLog(log_level) - \u8bbe\u7f6eSSL\u7684log\u767b\u8bb0\n\u4f20\u5165\u503c\uff1a\nint\tmbedtls log\u7b49\u7ea7\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n--[[\nSSL/TLS log\u7ea7\u522b\u8bf4\u660e\n0\u4e0d\u6253\u5370\n1\u53ea\u6253\u5370\u9519\u8bef\u548c\u8b66\n2\u5927\u90e8\u5206info\n3\u53ca3\u4ee5\u4e0a\u8be6\u7ec6\u7684debug\n\n\u8fc7\u591a\u7684\u4fe1\u606f\u53ef\u80fd\u4f1a\u9020\u6210\u5185\u5b58\u788e\u7247\u5316\n]]\n-- \u6253\u5370\u5927\u90e8\u5206info\u65e5\u5fd7\nsocket.sslLog(2)\n", "prefix": "socket.sslLog"}, "socket.adapter": {"body": "socket.adapter(${1:index})", "description": "socket.adapter(index) - \u67e5\u770b\u7f51\u5361\u9002\u914d\u5668\u7684\u8054\u7f51\u72b6\u6001\n\u4f20\u5165\u503c\uff1a\nint \u9700\u8981\u67e5\u770b\u7684\u9002\u914d\u5668\u5e8f\u53f7\uff0c\u53ef\u4ee5\u7559\u7a7a\u4f1a\u67e5\u770b\u5168\u90e8\u7f51\u5361\uff0c\u76f4\u5230\u9047\u5230IP READY\u7684\uff0c\u5982\u679c\u6307\u5b9a\u7f51\u5361\uff0c\u53ea\u80fd\u662fsocket.ETH0\uff08\u5916\u7f6e\u4ee5\u592a\u7f51\uff09\uff0csocket.LWIP_ETH\uff08\u5185\u7f6e\u4ee5\u592a\u7f51\uff09\uff0csocket.LWIP_STA\uff08\u5185\u7f6eWIFI\u7684STA\uff09\uff0csocket.LWIP_AP\uff08\u5185\u7f6eWIFI\u7684AP\uff09\uff0csocket.LWIP_GP\uff08\u5185\u7f6e\u8702\u7a9d\u7f51\u7edc\u7684GPRS\uff09\uff0csocket.USB\uff08\u5916\u7f6eUSB\u7f51\u5361\uff09\n\u8fd4\u56de\u503c\uff1a\nboolean \u88ab\u67e5\u770b\u7684\u9002\u914d\u5668\u662f\u5426IP READY,true\u8868\u793a\u5df2\u7ecf\u51c6\u5907\u597d\u53ef\u4ee5\u8054\u7f51\u4e86,false\u6682\u65f6\u4e0d\u53ef\u4ee5\u8054\u7f51\nint \u6700\u540e\u4e00\u4e2a\u88ab\u67e5\u770b\u7684\u9002\u914d\u5668\u5e8f\u53f7\n\u4f8b\u5b50\uff1a\n-- \u67e5\u770b\u5168\u90e8\u7f51\u5361\uff0c\u76f4\u5230\u627e\u5230\u4e00\u4e2a\u662fIP READY\u7684\nlocal isReady,index = socket.adapter() --\u5982\u679cisReady\u4e3atrue,\u5219index\u4e3aIP READY\u7684\u7f51\u5361\u9002\u914d\u5668\u5e8f\u53f7\n--\u67e5\u770b\u5916\u7f6e\u4ee5\u592a\u7f51\uff08\u6bd4\u5982W5500\uff09\u662f\u5426IP READY\nlocal isReady,default = socket.adapter(socket.ETH0)\n", "prefix": "socket.adapter"}, "socket.remoteIP": {"body": "socket.remoteIP(${1:ctrl})", "description": "socket.remoteIP(ctrl) - \u83b7\u53d6\u5bf9\u7aefip\n\u4f20\u5165\u503c\uff1a\nuser_data socket.create\u5f97\u5230\u7684ctrl\n\u8fd4\u56de\u503c\uff1a\nstring IP1\uff0c\u5982\u679c\u4e3anil\uff0c\u5219\u8868\u793a\u6ca1\u6709\u83b7\u53d6\u5230IP\u5730\u5740\nstring IP2\uff0c\u5982\u679c\u4e3anil\uff0c\u5219\u8868\u793a\u6ca1\u6709IP2\nstring IP3\uff0c\u5982\u679c\u4e3anil\uff0c\u5219\u8868\u793a\u6ca1\u6709IP3\nstring IP4\uff0c\u5982\u679c\u4e3anil\uff0c\u5219\u8868\u793a\u6ca1\u6709IP4\n\u4f8b\u5b50\uff1a\n-- \u6ce8\u610f: \uff0c\u5fc5\u987b\u5728\u63a5\u6536\u5230socket.ON_LINE\u6d88\u606f\u4e4b\u540e\u624d\u53ef\u80fd\u83b7\u53d6\u5230\uff0c\u6700\u591a\u8fd4\u56de4\u4e2aIP\u3002\n-- socket.connect\u91cc\u5982\u679cremote_port\u8bbe\u7f6e\u62100\uff0c\u5219\u5f53DNS\u5b8c\u6210\u65f6\u5c31\u8fd4\u56desocket.ON_LINE\u6d88\u606f\nlocal ip1,ip2,ip3,ip4 = socket.remoteIP(ctrl)\n", "prefix": "socket.remoteIP"}, "softkb.init": {"body": "softkb.init(${1:port},${2:key_in},${3:key_out})", "description": "softkb.init(port, key_in, key_out) - \u521d\u59cb\u5316\u8f6f\u4ef6\u952e\u76d8\u77e9\u9635\n\u4f20\u5165\u503c\uff1a\nint \u9884\u7559, \u5f53\u524d\u586b0\ntable \u77e9\u9635\u8f93\u5165\u6309\u952e\u8868\ntable \u77e9\u9635\u8f93\u51fa\u6309\u952e\u8868\n\u4f8b\u5b50\uff1a\n key_in = {pin.PD10,pin.PE00,pin.PE01,pin.PE02}\n key_out = {pin.PD12,pin.PD13,pin.PD14,pin.PD15}\n softkb.init(0,key_in,key_out)\n\nsys.subscribe(\"SOFT_KB_INC\", function(port, data, state)\n -- port \u5f53\u524d\u56fa\u5b9a\u4e3a0, \u53ef\u4ee5\u65e0\u89c6\n -- data, \u9700\u8981\u914d\u5408init\u7684map\u8fdb\u884c\u89e3\u6790\n -- state, 1 \u4e3a\u6309\u4e0b, 0 \u4e3a \u91ca\u653e\n -- TODO \u8be6\u7ec6\u4ecb\u7ecd\nend)\n", "prefix": "softkb.init"}, "softkb.deinit": {"body": "softkb.deinit(${1:port})", "description": "softkb.deinit(port) - \u5220\u9664\u8f6f\u4ef6\u952e\u76d8\u77e9\u9635\n\u4f20\u5165\u503c\uff1a\nint \u9884\u7559, \u5f53\u524d\u586b0\n\u4f8b\u5b50\uff1a\n softkb.deinit(0)\n", "prefix": "softkb.deinit"}, "spi.setup": {"body": "spi.setup(${1:id},${2:cs},${3:CPHA},${4:CPOL},${5:dataw},${6:bandrate},${7:bitdict},${8:ms},${9:mode})", "description": "spi.setup(id, cs, CPHA, CPOL, dataw, bandrate, bitdict, ms, mode) - \u8bbe\u7f6e\u5e76\u542f\u7528SPI\n\u4f20\u5165\u503c\uff1a\nint SPI\u53f7,\u4f8b\u59820\nint CS \u7247\u9009\u811a,\u5728w600\u4e0d\u53ef\u7528\u8bf7\u586bnil\nint CPHA \u9ed8\u8ba40,\u53ef\u90090/1\nint CPOL \u9ed8\u8ba40,\u53ef\u90090/1\nint \u6570\u636e\u5bbd\u5ea6,\u9ed8\u8ba48bit\nint \u6ce2\u7279\u7387,\u9ed8\u8ba42M=2000000\nint \u5927\u5c0f\u7aef, \u9ed8\u8ba4spi.MSB, \u53ef\u9009spi.LSB\nint \u4e3b\u4ece\u8bbe\u7f6e, \u9ed8\u8ba4\u4e3b1, \u53ef\u9009\u4ece\u673a0. \u901a\u5e38\u53ea\u652f\u6301\u4e3b\u673a\u6a21\u5f0f\nint \u5de5\u4f5c\u6a21\u5f0f, \u5168\u53cc\u5de51, \u534a\u53cc\u5de50, \u9ed8\u8ba4\u5168\u53cc\u5de5\n\u8fd4\u56de\u503c\uff1a\nint \u6210\u529f\u8fd4\u56de0,\u5426\u5219\u8fd4\u56de\u5176\u4ed6\u503c\n\u4f8b\u5b50\uff1a\n-- \u521d\u59cb\u5316spi\nspi.setup(0,20,0,0,8,2000000,spi.MSB,1,1)\n", "prefix": "spi.setup"}, "spi.createSoft": {"body": "spi.createSoft(${1:cs},${2:mosi},${3:miso},${4:clk},${5:CPHA},${6:CPOL},${7:dataw},${8:bitdict},${9:ms},${10:mode})", "description": "spi.createSoft(cs, mosi, miso, clk, CPHA, CPOL, dataw, bitdict, ms, mode) - \u8bbe\u7f6e\u5e76\u542f\u7528\u8f6f\u4ef6SPI\n\u4f20\u5165\u503c\uff1a\nint cs\u5f15\u811a\u7f16\u53f7\uff0c\u4f20\u5165nil\u610f\u4e3aLua\u63a7\u5236cs\u811a\nint mosi\u5f15\u811a\u7f16\u53f7\nint miso\u5f15\u811a\u7f16\u53f7\nint clk\u5f15\u811a\u7f16\u53f7\nint \u9ed8\u8ba40\uff0c\u53ef\u90090/1\nint \u9ed8\u8ba40\uff0c\u53ef\u90090/1\nint \u6570\u636e\u5bbd\u5ea6\uff0c\u9ed8\u8ba48bit\nint \u5927\u5c0f\u7aef\uff0c\u9ed8\u8ba4spi.MSB, \u53ef\u9009spi.LSB\nint \u4e3b\u4ece\u8bbe\u7f6e\uff0c\u9ed8\u8ba4\u4e3b1, \u53ef\u9009\u4ece\u673a0. \u901a\u5e38\u53ea\u652f\u6301\u4e3b\u673a\u6a21\u5f0f\nint \u5de5\u4f5c\u6a21\u5f0f\uff0c\u5168\u53cc\u5de51\uff0c\u534a\u53cc\u5de50\uff0c\u9ed8\u8ba4\u534a\u53cc\u5de5\n\u8fd4\u56de\u503c\uff1a\n\u8f6f\u4ef6SPI\u5bf9\u8c61 \u53ef\u5f53\u4f5cSPI\u7684id\u4f7f\u7528\n\u4f8b\u5b50\uff1a\n-- \u521d\u59cb\u5316\u8f6f\u4ef6spi\nlocal softSpiDevice = spi.createSoft(0, 1, 2, 3, 0, 0, 8, spi.MSB, 1, 1)\nlocal result = spi.send(softSpiDevice, string.char(0x9f))\n", "prefix": "spi.createSoft"}, "spi.close": {"body": "spi.close(${1:id})", "description": "spi.close(id) - \u5173\u95ed\u6307\u5b9a\u7684SPI\n\u4f20\u5165\u503c\uff1a\nint SPI\u53f7,\u4f8b\u59820\n\u8fd4\u56de\u503c\uff1a\nint \u6210\u529f\u8fd4\u56de0,\u5426\u5219\u8fd4\u56de\u5176\u4ed6\u503c\n\u4f8b\u5b50\uff1a\n-- \u521d\u59cb\u5316spi\nspi.close(0)\n", "prefix": "spi.close"}, "spi.transfer": {"body": "spi.transfer(${1:id},${2:send_data[},${3:len]})", "description": "spi.transfer(id, send_data[, len]) - \u4f20\u8f93SPI\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nint SPI\u53f7(\u4f8b\u59820)\u6216\u8f6f\u4ef6SPI\u5bf9\u8c61\nstring/zbuff \u5f85\u53d1\u9001\u7684\u6570\u636e\uff0c\u5982\u679c\u4e3azbuff\u6570\u636e\uff0c\u5219\u4f1a\u4ece\u5bf9\u8c61\u6240\u5904\u7684\u6307\u9488\u5904\u5f00\u59cb\u8bfb\nint \u53ef\u9009\u3002\u5f85\u53d1\u9001\u6570\u636e\u7684\u957f\u5ea6\uff0c\u9ed8\u8ba4\u4e3adata\u957f\u5ea6\nint \u53ef\u9009\u3002\u8bfb\u53d6\u6570\u636e\u7684\u957f\u5ea6\uff0c\u9ed8\u8ba4\u4e3a1\n\u8fd4\u56de\u503c\uff1a\nstring \u8bfb\u53d6\u6210\u529f\u8fd4\u56de\u5b57\u7b26\u4e32,\u5426\u5219\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\n-- \u521d\u59cb\u5316spi\nspi.setup(0,nil,0,0,8,2000000,spi.MSB,1,1)\nlocal recv = spi.transfer(0, \"123\")--\u53d1\u9001123,\u5e76\u8bfb\u53d6\u6570\u636e\n\nlocal buff = zbuff.create(1024, 0x33) --\u521b\u5efa\u4e00\u4e2a\u521d\u503c\u5168\u4e3a0x33\u7684\u5185\u5b58\u533a\u57df\nlocal recv = spi.transfer(0, buff)--\u628azbuff\u6570\u636e\u4ece\u6307\u9488\u5f00\u59cb\uff0c\u5168\u53d1\u51fa\u53bb,\u5e76\u8bfb\u53d6\u6570\u636e\n", "prefix": "spi.transfer"}, "spi.recv": {"body": "spi.recv(${1:id},${2:size})", "description": "spi.recv(id, size) - \u63a5\u6536\u6307\u5b9a\u957f\u5ea6\u7684SPI\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nint SPI\u53f7,\u4f8b\u59820\nint \u6570\u636e\u957f\u5ea6\n\u8fd4\u56de\u503c\uff1a\nstring \u8bfb\u53d6\u6210\u529f\u8fd4\u56de\u5b57\u7b26\u4e32,\u5426\u5219\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\n-- \u521d\u59cb\u5316spi\nspi.setup(0,nil,0,0,8,2000000,spi.MSB,1,1)\nlocal recv = spi.recv(0, 4)--\u63a5\u65364\u5b57\u8282\u6570\u636e\n", "prefix": "spi.recv"}, "spi.send": {"body": "spi.send(${1:id},${2:data[},${3:len]})", "description": "spi.send(id, data[, len]) - \u53d1\u9001SPI\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nint SPI\u53f7,\u4f8b\u59820\nstring/zbuff \u5f85\u53d1\u9001\u7684\u6570\u636e\uff0c\u5982\u679c\u4e3azbuff\u6570\u636e\uff0c\u5219\u4f1a\u4ece\u5bf9\u8c61\u6240\u5904\u7684\u6307\u9488\u5904\u5f00\u59cb\u8bfb\nint \u53ef\u9009\u3002\u5f85\u53d1\u9001\u6570\u636e\u7684\u957f\u5ea6\uff0c\u9ed8\u8ba4\u4e3adata\u957f\u5ea6\n\u8fd4\u56de\u503c\uff1a\nint \u53d1\u9001\u7ed3\u679c\n\u4f8b\u5b50\uff1a\n-- \u521d\u59cb\u5316spi\nspi.setup(0,nil,0,0,8,2000000,spi.MSB,1,1)\nlocal result = spi.send(0, \"123\")--\u53d1\u9001123\n\nlocal buff = zbuff.create(1024, 0x33) --\u521b\u5efa\u4e00\u4e2a\u521d\u503c\u5168\u4e3a0x33\u7684\u5185\u5b58\u533a\u57df\nlocal result = spi.send(0, buff)--\u628azbuff\u6570\u636e\u4ece\u6307\u9488\u5f00\u59cb\uff0c\u5168\u53d1\u51fa\u53bb\n", "prefix": "spi.send"}, "spi.deviceSetup": {"body": "spi.deviceSetup(${1:id},${2:cs},${3:CPHA},${4:CPOL},${5:dataw},${6:bandrate},${7:bitdict},${8:ms},${9:mode})", "description": "spi.deviceSetup(id, cs, CPHA, CPOL, dataw, bandrate, bitdict, ms, mode) - \u8bbe\u7f6e\u5e76\u542f\u7528SPI(\u5bf9\u8c61\u65b9\u5f0f)\n\u4f20\u5165\u503c\uff1a\nint SPI\u53f7,\u4f8b\u59820\nint CS \u7247\u9009\u811a,\u5728w600\u4e0d\u53ef\u7528\u8bf7\u586bnil\nint CPHA \u9ed8\u8ba40,\u53ef\u90090/1\nint CPOL \u9ed8\u8ba40,\u53ef\u90090/1\nint \u6570\u636e\u5bbd\u5ea6,\u9ed8\u8ba48bit\nint \u6ce2\u7279\u7387,\u9ed8\u8ba420M=20000000\nint \u5927\u5c0f\u7aef, \u9ed8\u8ba4spi.MSB, \u53ef\u9009spi.LSB\nint \u4e3b\u4ece\u8bbe\u7f6e, \u9ed8\u8ba4\u4e3b1, \u53ef\u9009\u4ece\u673a0. \u901a\u5e38\u53ea\u652f\u6301\u4e3b\u673a\u6a21\u5f0f\nint \u5de5\u4f5c\u6a21\u5f0f, \u5168\u53cc\u5de51, \u534a\u53cc\u5de50, \u9ed8\u8ba4\u5168\u53cc\u5de5\n\u8fd4\u56de\u503c\uff1a\nuserdata spi_device\n\u4f8b\u5b50\uff1a\n-- \u521d\u59cb\u5316spi\nlocal spi_device = spi.deviceSetup(0,17,0,0,8,2000000,spi.MSB,1,1)\n", "prefix": "spi.deviceSetup"}, "spi_device:close": {"body": "spi_device:close()", "description": "spi_device:close() - \u5173\u95ed\u6307\u5b9a\u7684SPI(\u5bf9\u8c61\u65b9\u5f0f)\n\u4f20\u5165\u503c\uff1a\nuserdata spi_device\n\u8fd4\u56de\u503c\uff1a\nint \u6210\u529f\u8fd4\u56de0,\u5426\u5219\u8fd4\u56de\u5176\u4ed6\u503c\n\u4f8b\u5b50\uff1a\n-- \u521d\u59cb\u5316spi\nspi_device.close()\n", "prefix": "spi_device:close"}, "spi_device:transfer": {"body": "spi_device:transfer(${1:send_data[},${2:len]})", "description": "spi_device:transfer(send_data[, len]) - \u4f20\u8f93SPI\u6570\u636e(\u5bf9\u8c61\u65b9\u5f0f)\n\u4f20\u5165\u503c\uff1a\nuserdata spi_device\nstring/zbuff \u5f85\u53d1\u9001\u7684\u6570\u636e\uff0c\u5982\u679c\u4e3azbuff\u6570\u636e\uff0c\u5219\u4f1a\u4ece\u5bf9\u8c61\u6240\u5904\u7684\u6307\u9488\u5904\u5f00\u59cb\u8bfb\nint \u53ef\u9009\u3002\u5f85\u53d1\u9001\u6570\u636e\u7684\u957f\u5ea6\uff0c\u9ed8\u8ba4\u4e3adata\u957f\u5ea6\nint \u53ef\u9009\u3002\u8bfb\u53d6\u6570\u636e\u7684\u957f\u5ea6\uff0c\u9ed8\u8ba4\u4e3a1\n\u8fd4\u56de\u503c\uff1a\nstring \u8bfb\u53d6\u6210\u529f\u8fd4\u56de\u5b57\u7b26\u4e32,\u5426\u5219\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\n-- \u521d\u59cb\u5316spi\nlocal spi_device = spi.device_setup(0,17,0,0,8,2000000,spi.MSB,1,1)\nlocal recv = spi_device:transfer(\"123\")--\u53d1\u9001123,\u5e76\u8bfb\u53d6\u6570\u636e\n\nlocal buff = zbuff.create(1024, 0x33) --\u521b\u5efa\u4e00\u4e2a\u521d\u503c\u5168\u4e3a0x33\u7684\u5185\u5b58\u533a\u57df\nlocal recv = spi_device:transfer(buff)--\u628azbuff\u6570\u636e\u4ece\u6307\u9488\u5f00\u59cb\uff0c\u5168\u53d1\u51fa\u53bb,\u5e76\u8bfb\u53d6\u6570\u636e\n", "prefix": "spi_device:transfer"}, "spi_device:send": {"body": "spi_device:send(${1:data[},${2:len]})", "description": "spi_device:send(data[, len]) - \u53d1\u9001SPI\u6570\u636e(\u5bf9\u8c61\u65b9\u5f0f)\n\u4f20\u5165\u503c\uff1a\nuserdata spi_device\nstring/zbuff \u5f85\u53d1\u9001\u7684\u6570\u636e\uff0c\u5982\u679c\u4e3azbuff\u6570\u636e\uff0c\u5219\u4f1a\u4ece\u5bf9\u8c61\u6240\u5904\u7684\u6307\u9488\u5904\u5f00\u59cb\u8bfb\n\u8fd4\u56de\u503c\uff1a\nint \u53d1\u9001\u7ed3\u679c\n\u4f8b\u5b50\uff1a\n-- \u521d\u59cb\u5316spi\nlocal spi_device = spi.device_setup(0,17,0,0,8,2000000,spi.MSB,1,1)\nlocal result = spi_device:send(\"123\")--\u53d1\u9001123\n\nlocal buff = zbuff.create(1024, 0x33) --\u521b\u5efa\u4e00\u4e2a\u521d\u503c\u5168\u4e3a0x33\u7684\u5185\u5b58\u533a\u57df\nlocal result = spi_device:send(buff)--\u628azbuff\u6570\u636e\u4ece\u6307\u9488\u5f00\u59cb\uff0c\u5168\u53d1\u51fa\u53bb\n", "prefix": "spi_device:send"}, "spi_device:recv": {"body": "spi_device:recv(${1:size})", "description": "spi_device:recv(size) - \u63a5\u6536\u6307\u5b9a\u957f\u5ea6\u7684SPI\u6570\u636e(\u5bf9\u8c61\u65b9\u5f0f)\n\u4f20\u5165\u503c\uff1a\nuserdata spi_device\nint \u6570\u636e\u957f\u5ea6\n\u8fd4\u56de\u503c\uff1a\nstring \u8bfb\u53d6\u6210\u529f\u8fd4\u56de\u5b57\u7b26\u4e32,\u5426\u5219\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\n-- \u521d\u59cb\u5316spi\nlocal spi_device = spi.device_setup(0,17,0,0,8,2000000,spi.MSB,1,1)\nlocal recv = spi_device:recv(4)--\u63a5\u65364\u5b57\u8282\u6570\u636e\n", "prefix": "spi_device:recv"}, "spi.xfer": {"body": "spi.xfer(${1:id},${2:txbuff},${3:rxbuff},${4:rx_len},${5:transfer_done_topic})", "description": "spi.xfer(id, txbuff, rxbuff, rx_len, transfer_done_topic) - \u975e\u963b\u585e\u65b9\u5f0f\u786c\u4ef6SPI\u4f20\u8f93SPI\u6570\u636e\uff0c\u76ee\u7684\u4e3a\u4e86\u63d0\u9ad8\u6838\u5fc3\u5229\u7528\u7387\u3002API\u76f4\u63a5\u8fd4\u56de\u662f\u5426\u542f\u52a8\u4f20\u8f93\uff0c\u4f20\u8f93\u5b8c\u6210\u540e\u901a\u8fc7topic\u56de\u8c03\uff0c\u672cAPI\u9002\u5408\u786c\u4ef6SPI\u4f20\u8f93\u5927\u91cf\u6570\u636e\u4f20\u8f93\uff0c\u5916\u8bbe\u529f\u80fd\uff08LCD SPI\uff0cW5500 SPI\u4e4b\u7c7b\u7684\uff09\u5360\u636e\u7684SPI\u548c\u8f6f\u4ef6SPI\u4e0d\u80fd\u7528\uff0c\u5c11\u91cf\u6570\u636e\u4f20\u8f93\u5efa\u8bae\u4f7f\u7528\u4f20\u7edf\u963b\u585e\u578bAPI\n\u4f20\u5165\u503c\uff1a\nuserdata or int spi_device\u6216\u8005spi_id\uff0c\u6ce8\u610f\uff0c\u5982\u679c\u662fspi_device\uff0c\u9700\u8981\u624b\u52a8\u5728\u4f20\u8f93\u5b8c\u6210\u540e\u62c9\u9ad8cs!!!!!!\nzbuff \u5f85\u53d1\u9001\u7684\u6570\u636e\uff0c\u5982\u679c\u4e3anil\uff0c\u5219\u53ea\u63a5\u6536\u6570\u636e\uff0c\u7531\u4e8e\u7528\u7684\u975e\u963b\u585e\u6a21\u578b\uff0c\u4e3a\u4fdd\u8bc1\u52a8\u6001\u6570\u636e\u7684\u6709\u6548\u6027\uff0c\u53ea\u80fd\u4f7f\u7528zbuff\uff0c\u53d1\u9001\u7684\u6570\u636e\u4ecezbuff.addr\nzbuff \u63a5\u6536\u6570\u636e\uff0c\u5982\u679c\u4e3anil\uff0c\u5219\u53ea\u53d1\u9001\u6570\u636e\uff0c\u7531\u4e8e\u7528\u7684\u975e\u963b\u585e\u6a21\u578b\uff0c\u4e3a\u4fdd\u8bc1\u52a8\u6001\u6570\u636e\u7684\u6709\u6548\u6027\uff0c\u53ea\u80fd\u4f7f\u7528zbuff\uff0c\u63a5\u6536\u7684\u6570\u636e\u4ecezbuff.addr\u5f00\u59cb\u5b58\u50a8\nint \u4f20\u8f93\u6570\u636e\u957f\u5ea6\uff0c\u7279\u522b\u8bf4\u660e \u5982\u679c\u4e3a\u534a\u53cc\u5de5\uff0c\u5148\u53d1\u540e\u6536\uff0c\u6bd4\u5982spi flash\u64cd\u4f5c\u8fd9\u79cd\uff0c\u5219\u957f\u5ea6=\u53d1\u9001\u5b57\u8282+\u63a5\u6536\u5b57\u8282\uff0c\u6ce8\u610f\u4e0a\u9762\u53d1\u9001\u548c\u63a5\u6536buff\u90fd\u8981\u7559\u8db3\u591f\u7684\u6570\u636e\uff0c\u540e\u7eed\u63a5\u6536\u6570\u636e\u5904\u7406\u9700\u8981\u8df3\u8fc7\u53d1\u9001\u6570\u636e\u957f\u5ea6\u5b57\u8282\nstring \u4f20\u8f93\u5b8c\u6210\u540e\u56de\u8c03\u7684topic\n\u8fd4\u56de\u503c\uff1a\nboolean true/false \u672c\u6b21\u4f20\u8f93\u662f\u5426\u6b63\u786e\u542f\u52a8\uff0ctrue\uff0c\u542f\u52a8\uff0cfalse\uff0c\u6709\u9519\u8bef\u65e0\u6cd5\u542f\u52a8\u3002\u4f20\u8f93\u5b8c\u6210\u4f1a\u53d1\u5e03\u6d88\u606ftransfer_done_topic\u548cboolean\u578b\u7ed3\u679c\n\u4f8b\u5b50\uff1a\nlocal result = spi.xfer(spi.SPI_0, txbuff, rxbuff, 1024, \"SPIDONE\") if result then result, spi_id, succ, error_code = sys.waitUntil(\"SPIDONE\") end if not result or not succ then log.info(\"spi fail, error code\", error_code) else log.info(\"spi ok\") end\n\n", "prefix": "spi.xfer"}, "statem.create": {"body": "statem.create(${1:count},${2:repeat})", "description": "statem.create(count, repeat) - \u521b\u5efa\u4e00\u4e2a\u65b0\u7684\u72b6\u6001\u673a.\n\u4f20\u5165\u503c\uff1a\nint \u6307\u4ee4\u6761\u6570,\u9ed8\u8ba432\u6761\nint \u91cd\u590d\u6267\u884c\u7684\u6b21\u6570, 0 \u4ee3\u8868\u4e0d\u91cd\u590d, \u6b63\u6574\u6570\u4ee3\u8868\u5177\u4f53\u91cd\u590d\u6267\u884c\u7684\u6b21\u6570. \u6682\u4e0d\u652f\u6301\u6c38\u7eed\u6267\u884c\n\u8fd4\u56de\u503c\uff1a\nsome \u82e5\u6210\u529f,\u8fd4\u56de\u72b6\u6001\u673a\u6307\u9488,\u5426\u5219\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\ngpio.setup(7, 0, gpio.PULLUP)\ngpio.setup(12, 0, gpio.PULLUP)\ngpio.setup(13, 0, gpio.PULLUP)\ngpio.setup(14, 0, gpio.PULLUP)\nlocal sm = statem.create()\n :gpio_set(7, 0) -- gpio\u8bbe\u7f6e\u4e3a\u4f4e\u7535\u5e73\n :usleep(10) -- \u4f11\u772010us\n :gpio_set(7, 1) -- gpio\u8bbe\u7f6e\u4e3a\u9ad8\u7535\u5e73\n :usleep(40) -- \u4f11\u772040us\n :gpio_set(12, 1) -- gpio\u8bbe\u7f6e\u4e3a\u9ad8\u7535\u5e73\n :gpio_set(13, 1) -- gpio\u8bbe\u7f6e\u4e3a\u9ad8\u7535\u5e73\n :gpio_set(14, 1) -- gpio\u8bbe\u7f6e\u4e3a\u9ad8\u7535\u5e73\n :usleep(40) -- \u4f11\u772040us\n :gpio_set(7, 0) -- gpio\u8bbe\u7f6e\u4e3a\u4f4e\u7535\u5e73\n :finish()\n\n-- \u6267\u884c\u4e4b,\u540e\u7eed\u4f1a\u652f\u6301\u540e\u53f0\u6267\u884c\nsm:exec()\n", "prefix": "statem.create"}, "string.toHex": {"body": "string.toHex(${1:str},${2:separator})", "description": "string.toHex(str, separator) - \u5c06\u5b57\u7b26\u4e32\u8f6c\u6210HEX\n\u4f20\u5165\u503c\uff1a\nstring \u9700\u8981\u8f6c\u6362\u7684\u5b57\u7b26\u4e32\nstring \u5206\u9694\u7b26, \u9ed8\u8ba4\u4e3a\"\"\n\u8fd4\u56de\u503c\uff1a\nstring HEX\u5b57\u7b26\u4e32\nnumber HEX\u5b57\u7b26\u4e32\u7684\u957f\u5ea6\n\u4f8b\u5b50\uff1a\nstring.toHex(\"\\1\\2\\3\") --> \"010203\" 6\nstring.toHex(\"123abc\") --> \"313233616263\" 12\nstring.toHex(\"123abc\", \" \") --> \"31 32 33 61 62 63 \" 12\n", "prefix": "string.toHex"}, "string.fromHex": {"body": "string.fromHex(${1:hex})", "description": "string.fromHex(hex) - \u5c06HEX\u8f6c\u6210\u5b57\u7b26\u4e32\n\u4f20\u5165\u503c\uff1a\nstring hex,16\u8fdb\u5236\u7ec4\u6210\u7684\u4e32\n\u8fd4\u56de\u503c\uff1a\nstring \u5b57\u7b26\u4e32\n\u4f8b\u5b50\uff1a\nstring.fromHex(\"010203\") --> \"\\1\\2\\3\"\nstring.fromHex(\"313233616263\") --> \"123abc\"\n", "prefix": "string.fromHex"}, "string.split": {"body": "string.split(${1:str},${2:delimiter},${3:keepEmtry})", "description": "string.split(str, delimiter, keepEmtry) - \u6309\u7167\u6307\u5b9a\u5206\u9694\u7b26\u5206\u5272\u5b57\u7b26\u4e32\n\u4f20\u5165\u503c\uff1a\nstring \u8f93\u5165\u5b57\u7b26\u4e32\nstring \u5206\u9694\u7b26,\u53ef\u9009,\u9ed8\u8ba4 \",\"\nbool \u662f\u5426\u4fdd\u7559\u7a7a\u767d\u7247\u6bb5,\u9ed8\u8ba4\u4e3afalse,\u4e0d\u4fdd\u7559. 2023.4.11\u4e4b\u540e\u7684\u56fa\u4ef6\u53ef\u7528\n\u8fd4\u56de\u503c\uff1a\ntable \u5206\u5272\u540e\u7684\u5b57\u7b26\u4e32\u8868\n\u4f8b\u5b50\uff1a\nlocal tmp = string.split(\"123,233333,122\")\nlog.info(\"tmp\", json.encode(tmp))\nlocal tmp = (\"123,456,789\"):split(',') --> {'123','456','789'}\nlog.info(\"tmp\", json.encode(tmp))\n\n-- \u4fdd\u7559\u7a7a\u7247\u6bb5, 2023.4.11\u4e4b\u540e\u7684\u56fa\u4ef6\u53ef\u7528\nlocal str = \"/tmp//def/1234/\"\nlocal tmp = str:split(\"/\", true) \nlog.info(\"str.split\", #tmp, json.encode(tmp))\n", "prefix": "string.split"}, "string.toValue": {"body": "string.toValue(${1:str})", "description": "string.toValue(str) - \u8fd4\u56de\u5b57\u7b26\u4e32tonumber\u7684\u8f6c\u4e49\u5b57\u7b26\u4e32(\u7528\u6765\u652f\u6301\u8d85\u8fc731\u4f4d\u6574\u6570\u7684\u8f6c\u6362)\n\u4f20\u5165\u503c\uff1a\nstring \u8f93\u5165\u5b57\u7b26\u4e32\n\u8fd4\u56de\u503c\uff1a\nstring \u8f6c\u6362\u540e\u7684\u4e8c\u8fdb\u5236\u5b57\u7b26\u4e32\nnumber \u8f6c\u6362\u4e86\u591a\u5c11\u4e2a\u5b57\u7b26\n\u4f8b\u5b50\uff1a\nstring.toValue(\"123456\") --> \"\\1\\2\\3\\4\\5\\6\" 6\nstring.toValue(\"123abc\") --> \"\\1\\2\\3\\a\\b\\c\" 6\n", "prefix": "string.toValue"}, "string.urlEncode": {"body": "string.urlEncode(${1:\"123abc\"})", "description": "string.urlEncode(\"123 abc\") - \u5c06\u5b57\u7b26\u4e32\u8fdb\u884curl\u7f16\u7801\u8f6c\u6362\n\u4f20\u5165\u503c\uff1a\nstring \u9700\u8981\u8f6c\u6362\u7684\u5b57\u7b26\u4e32\n", "prefix": "string.urlEncode"}, "string.toBase64": {"body": "string.toBase64(${1:str})", "description": "string.toBase64(str) - \u5c06\u5b57\u7b26\u4e32\u8fdb\u884cbase64\u7f16\u7801\n\u4f20\u5165\u503c\uff1a\nstring \u9700\u8981\u8f6c\u6362\u7684\u5b57\u7b26\u4e32\n\u8fd4\u56de\u503c\uff1a\nstring \u89e3\u7801\u540e\u7684\u5b57\u7b26\u4e32,\u5982\u679c\u89e3\u7801\u5931\u8d25\u4f1a\u8fd4\u56de\u7a7a\u5b57\u7b26\u4e32\n", "prefix": "string.toBase64"}, "string.fromBase64": {"body": "string.fromBase64(${1:str})", "description": "string.fromBase64(str) - \u5c06\u5b57\u7b26\u4e32\u8fdb\u884cbase64\u89e3\u7801\n\u4f20\u5165\u503c\uff1a\nstring \u9700\u8981\u8f6c\u6362\u7684\u5b57\u7b26\u4e32\n\u8fd4\u56de\u503c\uff1a\nstring \u89e3\u7801\u540e\u7684\u5b57\u7b26\u4e32,\u5982\u679c\u89e3\u7801\u5931\u8d25\u4f1a\u8fd4\u56de\u7a7a\u5b57\u7b26\u4e32\n", "prefix": "string.fromBase64"}, "string.toBase32": {"body": "string.toBase32(${1:str})", "description": "string.toBase32(str) - \u5c06\u5b57\u7b26\u4e32\u8fdb\u884cbase32\u7f16\u7801\n\u4f20\u5165\u503c\uff1a\nstring \u9700\u8981\u8f6c\u6362\u7684\u5b57\u7b26\u4e32\n\u8fd4\u56de\u503c\uff1a\nstring \u89e3\u7801\u540e\u7684\u5b57\u7b26\u4e32,\u5982\u679c\u89e3\u7801\u5931\u8d25\u4f1a\u8fd4\u56de0\u957f\u5ea6\u5b57\u7b26\u4e32\n", "prefix": "string.toBase32"}, "string.fromBase32": {"body": "string.fromBase32(${1:str})", "description": "string.fromBase32(str) - \u5c06\u5b57\u7b26\u4e32\u8fdb\u884cbase32\u89e3\u7801\n\u4f20\u5165\u503c\uff1a\nstring \u9700\u8981\u8f6c\u6362\u7684\u5b57\u7b26\u4e32\n\u8fd4\u56de\u503c\uff1a\nstring \u89e3\u7801\u540e\u7684\u5b57\u7b26\u4e32,\u5982\u679c\u89e3\u7801\u5931\u8d25\u4f1a\u8fd4\u56de0\u957f\u5ea6\u5b57\u7b26\u4e32\n", "prefix": "string.fromBase32"}, "string.startsWith": {"body": "string.startsWith(${1:str},${2:prefix})", "description": "string.startsWith(str, prefix) - \u5224\u65ad\u5b57\u7b26\u4e32\u524d\u7f00\n\u4f20\u5165\u503c\uff1a\nstring \u9700\u8981\u68c0\u67e5\u7684\u5b57\u7b26\u4e32\nstring \u524d\u7f00\u5b57\u7b26\u4e32\n\u8fd4\u56de\u503c\uff1a\nbool \u771f\u4e3atrue, \u5047\u4e3afalse\n\u4f8b\u5b50\uff1a\nlocal str = \"abc\"\nlog.info(\"str\", str:startsWith(\"a\"))\nlog.info(\"str\", str:startsWith(\"b\"))\n", "prefix": "string.startsWith"}, "string.endsWith": {"body": "string.endsWith(${1:str},${2:suffix})", "description": "string.endsWith(str, suffix) - \u5224\u65ad\u5b57\u7b26\u4e32\u540e\u7f00\n\u4f20\u5165\u503c\uff1a\nstring \u9700\u8981\u68c0\u67e5\u7684\u5b57\u7b26\u4e32\nstring \u540e\u7f00\u5b57\u7b26\u4e32\n\u8fd4\u56de\u503c\uff1a\nbool \u771f\u4e3atrue, \u5047\u4e3afalse\n\u4f8b\u5b50\uff1a\nlocal str = \"abc\"\nlog.info(\"str\", str:endsWith(\"c\"))\nlog.info(\"str\", str:endsWith(\"b\"))\n", "prefix": "string.endsWith"}, "string.trim": {"body": "string.trim(${1:str},${2:ltrim},${3:rtrim})", "description": "string.trim(str, ltrim, rtrim) - \u88c1\u526a\u5b57\u7b26\u4e32,\u53bb\u9664\u5934\u5c3e\u7684\u7a7a\u683c\n\u4f20\u5165\u503c\uff1a\nstring \u9700\u8981\u5904\u7406\u7684\u5b57\u7b26\u4e32\nbool \u6e05\u7406\u524d\u7f00,\u9ed8\u8ba4\u4e3atrue\nbool \u6e05\u7406\u540e\u7f00,\u9ed8\u8ba4\u4e3atrue\n\u8fd4\u56de\u503c\uff1a\nstring \u6e05\u7406\u540e\u7684\u5b57\u7b26\u4e32\n\u4f8b\u5b50\uff1a\nlocal str = \"\\r\\nabc\\r\\n\"\nlog.info(\"str\", string.trim(str)) -- \u6253\u5370 \"abc\"\nlog.info(\"str\", str:trim()) -- \u6253\u5370 \"abc\"\nlog.info(\"str\", #string.trim(str, false, true)) -- \u4ec5\u88c1\u526a\u540e\u7f00,\u6240\u4ee5\u957f\u5ea6\u662f5\n", "prefix": "string.trim"}, "sys.wait": {"body": "sys.wait(${1:timeout})", "description": "sys.wait(timeout) - Task\u534f\u7a0b\u7b49\u5f85\u6307\u5b9a\u65f6\u957f\n\u4f20\u5165\u503c\uff1a\nint \u7b49\u5f85\u65f6\u957f,\u5355\u4f4d\u6beb\u79d2,\u5fc5\u987b\u5927\u4e8e0,\u5426\u5219\u65e0\u6548\n\u8fd4\u56de\u503c\uff1a\nany \u901a\u5e38\u4e3anil,\u9664\u975e\u4e3b\u52a8\u88ab\u5524\u9192(\u901a\u5e38\u4e0d\u4f1a)\n\u4f8b\u5b50\uff1a\nsys.taskInit(function()\n while 1 do\n sys.wait(500)\n end\nend)\n", "prefix": "sys.wait"}, "sys.waitUntil": {"body": "sys.waitUntil(${1:topic},${2:timeout})", "description": "sys.waitUntil(topic, timeout) - Task\u534f\u7a0b\u7b49\u5f85\u6307\u5b9a\u65f6\u957f\u6216\u8005\u7279\u5b9a\u7684topic\n\u4f20\u5165\u503c\uff1a\nstring \u4e8b\u4ef6topic\nint \u7b49\u5f85\u65f6\u957f,\u5355\u4f4d\u6beb\u79d2,\u5fc5\u987b\u5927\u4e8e0,\u5426\u5219\u65e0\u6548\n\u8fd4\u56de\u503c\uff1a\nboolean \u5982\u679c\u662f\u8d85\u65f6,\u8fd4\u56defalse,\u5426\u5219\u8fd4\u56detrue\nany \u5bf9\u5e94topic\u7684\u5185\u5bb9\n\u4f8b\u5b50\uff1a\nsys.taskInit(function()\n // do something\n local result, data = sys.waitUntil(\"NET_READY\", 30000)\n // do something else\nend)\n", "prefix": "sys.waitUntil"}, "sys.taskInit": {"body": "sys.taskInit(${1:func},${2:arg1},${3:arg2},${4:argN})", "description": "sys.taskInit(func, arg1, arg2, argN) - \u521b\u5efa\u4e00\u4e2aTask\u534f\u7a0b\n\u4f20\u5165\u503c\uff1a\nfunction \u5f85\u6267\u884c\u7684\u51fd\u6570,\u53ef\u4ee5\u662f\u533f\u540d\u51fd\u6570, \u4e5f\u53ef\u4ee5\u662flocal\u6216\u5168\u5c40\u51fd\u6570\nany \u9700\u8981\u4f20\u9012\u7684\u53c2\u65701,\u53ef\u9009 \nany \u9700\u8981\u4f20\u9012\u7684\u53c2\u65702,\u53ef\u9009 \nany \u9700\u8981\u4f20\u9012\u7684\u53c2\u6570N,\u53ef\u9009 \n\u8fd4\u56de\u503c\uff1a\ntask \u534f\u7a0b\u5bf9\u8c61\n\u4f8b\u5b50\uff1a\nsys.taskInit(function(a, b, c)\n log.info(\"task\", a, b, c) -- \u6253\u5370 task A B C\nend, \"A\", \"B\", \"N\")\n", "prefix": "sys.taskInit"}, "sys.timerStart": {"body": "sys.timerStart(${1:func},${2:timeout},${3:arg1},${4:arg2},${5:argN})", "description": "sys.timerStart(func, timeout, arg1, arg2, argN) - \u521b\u5efa\u4e00\u4e2a\u5b9a\u65f6\u5668.\u975eTask,\u51fd\u6570\u91cc\u4e0d\u80fd\u76f4\u63a5sys.waitXXX\n\u4f20\u5165\u503c\uff1a\nfunction \u5f85\u6267\u884c\u7684\u51fd\u6570,\u53ef\u4ee5\u662f\u533f\u540d\u51fd\u6570, \u4e5f\u53ef\u4ee5\u662flocal\u6216\u5168\u5c40\u51fd\u6570\nint \u5ef6\u65f6\u65f6\u957f,\u5355\u4f4d\u6beb\u79d2\nany \u9700\u8981\u4f20\u9012\u7684\u53c2\u65701,\u53ef\u9009 \nany \u9700\u8981\u4f20\u9012\u7684\u53c2\u65702,\u53ef\u9009 \nany \u9700\u8981\u4f20\u9012\u7684\u53c2\u6570N,\u53ef\u9009 \n\u8fd4\u56de\u503c\uff1a\nint \u5b9a\u65f6\u5668id\n\u4f8b\u5b50\uff1a\nsys.timerStart(function(a, b, c)\n log.info(\"task\", a, b, c) -- 1000\u6beb\u79d2\u540e\u624d\u4f1a\u6267\u884c, \u6253\u5370 task A B C\nend, 1000, \"A\", \"B\", \"N\")\n", "prefix": "sys.timerStart"}, "sys.timerLoopStart": {"body": "sys.timerLoopStart(${1:func},${2:timeout},${3:arg1},${4:arg2},${5:argN})", "description": "sys.timerLoopStart(func, timeout, arg1, arg2, argN) - \u521b\u5efa\u4e00\u4e2a\u5faa\u73af\u5b9a\u65f6\u5668.\u975eTask,\u51fd\u6570\u91cc\u4e0d\u80fd\u76f4\u63a5sys.waitXXX\n\u4f20\u5165\u503c\uff1a\nfunction \u5f85\u6267\u884c\u7684\u51fd\u6570,\u53ef\u4ee5\u662f\u533f\u540d\u51fd\u6570, \u4e5f\u53ef\u4ee5\u662flocal\u6216\u5168\u5c40\u51fd\u6570\nint \u5ef6\u65f6\u65f6\u957f,\u5355\u4f4d\u6beb\u79d2\nany \u9700\u8981\u4f20\u9012\u7684\u53c2\u65701,\u53ef\u9009 \nany \u9700\u8981\u4f20\u9012\u7684\u53c2\u65702,\u53ef\u9009 \nany \u9700\u8981\u4f20\u9012\u7684\u53c2\u6570N,\u53ef\u9009 \n\u8fd4\u56de\u503c\uff1a\nint \u5b9a\u65f6\u5668id\n\u4f8b\u5b50\uff1a\nsys.timerLoopStart(function(a, b, c)\n log.info(\"task\", a, b, c) -- 1000\u6beb\u79d2\u540e\u624d\u4f1a\u6267\u884c, \u6253\u5370 task A B C\nend, 1000, \"A\", \"B\", \"N\")\n", "prefix": "sys.timerLoopStart"}, "sys.timerStop": {"body": "sys.timerStop(${1:id})", "description": "sys.timerStop(id) - \u5173\u95ed\u4e00\u4e2a\u5b9a\u65f6\u5668.\n\u4f20\u5165\u503c\uff1a\nint \u5b9a\u65f6\u5668id\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\nlocal tcount = 0\nlocal tid \ntid = sys.timerLoopStart(function(a, b, c)\n log.info(\"task\", a, b, c) -- 1000\u6beb\u79d2\u540e\u624d\u4f1a\u6267\u884c, \u6253\u5370 task A B C\n if tcount > 10 then\n sys.timerStop(tid)\n end\n tcount = tcount + 1\nend, 1000, \"A\", \"B\", \"N\")\n", "prefix": "sys.timerStop"}, "sys.publish": {"body": "sys.publish(${1:topic},${2:arg1},${3:agr2},${4:argN})", "description": "sys.publish(topic, arg1, agr2, argN) - \u5f80\u7279\u5b9atopic\u901a\u9053\u53d1\u5e03\u4e00\u4e2a\u6d88\u606f\n\u4f20\u5165\u503c\uff1a\nstring topic\u7684\u503c\nany \u9644\u5e26\u7684\u53c2\u65701\nany \u9644\u5e26\u7684\u53c2\u65702\nany \u9644\u5e26\u7684\u53c2\u6570N\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\nsys.publish(\"BT_READY\", false)\n", "prefix": "sys.publish"}, "sys.subscribe": {"body": "sys.subscribe(${1:topic},${2:func})", "description": "sys.subscribe(topic, func) - \u8ba2\u9605\u4e00\u4e2atopic\u901a\u9053\n\u4f20\u5165\u503c\uff1a\nstring topic\u7684\u503c\nfunction \u56de\u8c03\u51fd\u6570, \u6ce8\u610f, \u4e0d\u80fd\u76f4\u63a5\u4f7f\u7528sys.waitXXX\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\nlocal function bt_cb(state)\n log.info(\"bt\", state)\nend\nsys.subscribe(\"BT_READY\", bt_cb)\nsys.subscribe(\"BT_READY\", function(state)\n log.info(\"sys\", \"Got BT_READY\", state)\nend)\n", "prefix": "sys.subscribe"}, "sys.unsubscribe": {"body": "sys.unsubscribe(${1:topic},${2:func})", "description": "sys.unsubscribe(topic, func) - \u53d6\u6d88\u8ba2\u9605topic\u901a\u9053\n\u4f20\u5165\u503c\uff1a\nstring topic\u7684\u503c\nfunction \u56de\u8c03\u51fd\u6570, \u6ce8\u610f, \u4e0d\u80fd\u76f4\u63a5\u4f7f\u7528sys.waitXXX\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\nlocal function bt_cb(state)\n log.info(\"bt\", state)\nend\nsys.unsubscribe(\"BT_READY\", bt_cb)\n", "prefix": "sys.unsubscribe"}, "sys.run": {"body": "sys.run()", "description": "sys.run() - sys\u5e93\u4e3b\u5faa\u73af\u65b9\u6cd5,\u4ec5\u5141\u8bb8\u5728main.lua\u7684\u672b\u5c3e\u8c03\u7528\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c. \u8fd9\u4e2a\u65b9\u6cd5\u51e0\u4e4e\u4e0d\u53ef\u80fd\u8fd4\u56de.\n\u4f8b\u5b50\uff1a\n-- \u603b\u662fmain.lua\u7684\u7ed3\u5c3e\u4e00\u53e5,\u5c06\u6765\u4e5f\u8bb8\u4f1a\u7b80\u5316\u6389\nsys.run()\n-- \u4e4b\u540e\u7684\u4ee3\u7801\u4e0d\u4f1a\u88ab\u6267\u884c\n", "prefix": "sys.run"}, "sysplus.waitMsg": {"body": "sysplus.waitMsg(${1:taskName},${2:target},${3:timeout})", "description": "sysplus.waitMsg(taskName, target, timeout) - \u7b49\u5f85\u63a5\u6536\u4e00\u4e2a\u76ee\u6807\u6d88\u606f\n\u4f20\u5165\u503c\uff1a\nstring \u4efb\u52a1\u540d\u79f0\uff0c\u7528\u4e8e\u5524\u9192\u4efb\u52a1\u7684id\nstring \u76ee\u6807\u6d88\u606f\uff0c\u5982\u679c\u4e3anil\uff0c\u5219\u8868\u793a\u63a5\u6536\u5230\u4efb\u610f\u6d88\u606f\u90fd\u4f1a\u9000\u51fa\nint \u8d85\u65f6\u65f6\u95f4\uff0c\u5982\u679c\u4e3anil\uff0c\u5219\u8868\u793a\u65e0\u8d85\u65f6\uff0c\u6c38\u8fdc\u7b49\u5f85\n\u8fd4\u56de\u503c\uff1a\ntable \u6210\u529f\u8fd4\u56detable\u578b\u7684msg\uff0c\u8d85\u65f6\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- \u7b49\u5f85\u4efb\u52a1\nsysplus.waitMsg('a', 'b', 1000)\n-- \u6ce8\u610f, \u672c\u51fd\u6570\u4f1a\u81ea\u52a8\u6ce8\u518c\u6210\u5168\u5c40\u51fd\u6570 sys_wait\n", "prefix": "sysplus.waitMsg"}, "sysplus.sendMsg": {"body": "sysplus.sendMsg(${1:taskName},${2:target},${3:arg2},${4:arg3},${5:arg4})", "description": "sysplus.sendMsg(taskName, target, arg2, arg3, arg4) - \u5411\u76ee\u6807\u4efb\u52a1\u53d1\u9001\u4e00\u4e2a\u6d88\u606f\n\u4f20\u5165\u503c\uff1a\nstring \u4efb\u52a1\u540d\u79f0\uff0c\u7528\u4e8e\u5524\u9192\u4efb\u52a1\u7684id\nany \u6d88\u606f\u4e2d\u7684\u53c2\u65701\uff0c\u540c\u65f6\u4e5f\u662fwaitMsg\u91cc\u7684target\nany \u6d88\u606f\u4e2d\u7684\u53c2\u65702\nany \u6d88\u606f\u4e2d\u7684\u53c2\u65703\nany \u6d88\u606f\u4e2d\u7684\u53c2\u65704\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue, \u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- \u5411\u4efb\u52a1a,\u76ee\u6807b\u53d1\u9001\u6d88\u606f\nsysplus.sendMsg('a', 'b')\n-- \u6ce8\u610f, \u672c\u51fd\u6570\u4f1a\u81ea\u52a8\u6ce8\u518c\u6210\u5168\u5c40\u51fd\u6570 sys_send\n", "prefix": "sysplus.sendMsg"}, "sysplus.taskInitEx": {"body": "sysplus.taskInitEx(${1:fun},${2:taskName},${3:cbFun},${4:...})", "description": "sysplus.taskInitEx(fun, taskName, cbFun, ...) - \u521b\u5efa\u4e00\u4e2a\u4efb\u52a1\u7ebf\u7a0b,\u5728\u6a21\u5757\u6700\u672b\u884c\u8c03\u7528\u8be5\u51fd\u6570\u5e76\u6ce8\u518c\u6a21\u5757\u4e2d\u7684\u4efb\u52a1\u51fd\u6570,main.lua\u5bfc\u5165\u8be5\u6a21\u5757\u5373\u53ef\n\u4f20\u5165\u503c\uff1a\nfunction \u4efb\u52a1\u51fd\u6570\u540d,\u7528\u4e8eresume\u5524\u9192\u65f6\u8c03\u7528\nstring \u4efb\u52a1\u540d\u79f0,\u7528\u4e8e\u5524\u9192\u4efb\u52a1\u7684id\nfunction \u63a5\u6536\u5230\u975e\u76ee\u6807\u6d88\u606f\u65f6\u7684\u56de\u8c03\u51fd\u6570\nany ... \u4efb\u52a1\u51fd\u6570fun\u7684\u53ef\u53d8\u53c2\u6570\n\u8fd4\u56de\u503c\uff1a\nnumber \u8fd4\u56de\u8be5\u4efb\u52a1\u7684\u7ebf\u7a0b\u53f7\n\u4f8b\u5b50\uff1a\nsysplus.taskInitEx(task1,'a',callback)\n", "prefix": "sysplus.taskInitEx"}, "sysplus.taskDel": {"body": "sysplus.taskDel(${1:taskName})", "description": "sysplus.taskDel(taskName) - \u5220\u9664\u7531taskInitEx\u521b\u5efa\u7684\u4efb\u52a1\u7ebf\u7a0b\n\u4f20\u5165\u503c\uff1a\nstring \u4efb\u52a1\u540d\u79f0,\u7528\u4e8e\u5524\u9192\u4efb\u52a1\u7684id\n\u4f8b\u5b50\uff1a\nsysplus.taskDel('a')\n", "prefix": "sysplus.taskDel"}, "sysplus.cleanMsg": {"body": "sysplus.cleanMsg(${1:taskName})", "description": "sysplus.cleanMsg(taskName) - \u6e05\u9664\u6307\u5b9atask\u7684\u6d88\u606f\u961f\u5217\n\u4f20\u5165\u503c\uff1a\nstring \u4efb\u52a1\u540d\u79f0\n\u4f8b\u5b50\uff1a\nsysplus.cleanMsg('a')\n", "prefix": "sysplus.cleanMsg"}, "timer.mdelay": {"body": "timer.mdelay(${1:timeout})", "description": "timer.mdelay(timeout) - \u786c\u963b\u585e\u6307\u5b9a\u65f6\u957f\n\u4f20\u5165\u503c\uff1a\nint \u963b\u585e\u65f6\u957f,\u5355\u4f4dms, \u6700\u9ad81024ms, \u5b9e\u9645\u4f7f\u7528\u5f3a\u70c8\u5efa\u8bae\u4e0d\u8981\u8d85\u8fc7200ms\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n-- \u671f\u95f4\u6ca1\u6709\u4efb\u4f55luat\u4ee3\u7801\u4f1a\u6267\u884c,\u5305\u62ec\u5e95\u5c42\u6d88\u606f\u5904\u7406\u673a\u5236\n-- \u672c\u65b9\u6cd5\u901a\u5e38\u4e0d\u4f1a\u4f7f\u7528,\u9664\u975e\u4f60\u5f88\u6e05\u695a\u4f1a\u53d1\u751f\u4ec0\u4e48\ntimer.mdelay(10)\n", "prefix": "timer.mdelay"}, "timer.udelay": {"body": "timer.udelay(${1:timeout})", "description": "timer.udelay(timeout) - \u786c\u963b\u585e\u6307\u5b9a\u65f6\u957f\u4f46us\u7ea7\u522b,\u4e0d\u4f1a\u5f88\u7cbe\u51c6\n\u4f20\u5165\u503c\uff1a\nint \u963b\u585e\u65f6\u957f,\u5355\u4f4dus, \u6700\u59273000us\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n-- \u672c\u65b9\u6cd5\u901a\u5e38\u4e0d\u4f1a\u4f7f\u7528,\u9664\u975e\u4f60\u5f88\u6e05\u695a\u4f1a\u53d1\u751f\u4ec0\u4e48\n-- \u672cAPI\u5728 2023.05.18 \u6dfb\u52a0\ntimer.udelay(10)\n-- \u5b9e\u9645\u963b\u585e\u65f6\u957f\u662f\u6709\u6ce2\u52a8\u7684\n", "prefix": "timer.udelay"}, "touchkey.setup": {"body": "touchkey.setup(${1:id},${2:scan_period},${3:window},${4:threshold})", "description": "touchkey.setup(id, scan_period, window, threshold) - \u914d\u7f6e\u89e6\u6478\u6309\u952e\n\u4f20\u5165\u503c\uff1a\nint \u4f20\u611f\u5668id,\u8bf7\u67e5\u9605\u786c\u4ef6\u6587\u6863, \u4f8b\u5982air101/air103\u652f\u6301 1~15, \u4f8b\u5982PA7\u5bf9\u5e94touch id=1\nint \u626b\u63cf\u95f4\u9694,\u8303\u56f41 ~ 0x3F, \u5355\u4f4d16ms,\u53ef\u9009\nint \u626b\u63cf\u7a97\u53e3,\u8303\u56f42-7, \u53ef\u9009\nint \u9600\u503c, \u8303\u56f40-127, \u53ef\u9009\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue, \u5931\u8d25\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\ntouchkey.setup(1)\nsys.subscribe(\"TOUCHKEY_INC\", function(id, count)\n -- \u4f20\u611f\u5668id\n -- \u8ba1\u6570\u5668,\u89e6\u6478\u6b21\u6570\u7edf\u8ba1\n log.info(\"touchkey\", id, count)\nend)\n", "prefix": "touchkey.setup"}, "touchkey.close": {"body": "touchkey.close(${1:id})", "description": "touchkey.close(id) - \u5173\u95ed\u521d\u59cb\u89e6\u6478\u6309\u952e\n\u4f20\u5165\u503c\uff1a\nint \u4f20\u611f\u5668id,\u8bf7\u67e5\u9605\u786c\u4ef6\u6587\u6863\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n-- \u4e0d\u592a\u53ef\u80fd\u9700\u8981\u5173\u6389\u7684\u6837\u5b50\ntouchkey.close(1)\n", "prefix": "touchkey.close"}, "u8g2.begin": {"body": "u8g2.begin(${1:conf})", "description": "u8g2.begin(conf) - u8g2\u663e\u793a\u5c4f\u521d\u59cb\u5316\n\u4f20\u5165\u503c\uff1a\ntable conf \u914d\u7f6e\u4fe1\u606f ic:\u652f\u6301 custom(\u81ea\u5b9a\u4e49\u547d\u4ee4) ssd1306(\u9ed8\u8ba4) ssd1309 ssd1322 sh1106 sh1107 sh1108 st7567 uc1701 ssd1306_128x32, direction:\u65b9\u5411,\u53ef\u90090 90 180 270 \u9ed8\u8ba40 mode:\u6a21\u5f0f,\u53ef\u9009i2c_sw:\u8f6f\u4ef6i2c i2c_hw:\u786c\u4ef6i2c spi_hw_4pin:\u786c\u4ef6spi i2c_id:\u786c\u4ef6i2c\u65f6\u6709\u6548 i2c_scl=1\u3001i2c_sda:\u8f6f\u4ef6i2c\u65f6\u6709\u6548 spi_id\u3001spi_res\u3001spi_dc\u3001spi_cs:\u786c\u4ef6spi\u65f6\u751f\u6548\n\u8fd4\u56de\u503c\uff1a\nint \u6b63\u5e38\u521d\u59cb\u53161,\u5df2\u7ecf\u521d\u59cb\u5316\u8fc72,\u5185\u5b58\u4e0d\u591f3,\u521d\u59cb\u5316\u5931\u8d25\u8fd4\u56de4\n\u4f8b\u5b50\uff1a\n-- \u521d\u59cb\u5316\u786c\u4ef6i2c\u7684ssd1306\nu8g2.begin({ic = \"ssd1306\",direction = 0,mode=\"i2c_hw\",i2c_id=0}) -- direction \u53ef\u90090 90 180 270\n-- \u521d\u59cb\u5316\u786c\u4ef6spi\u7684ssd1306\nu8g2.begin({ic = \"ssd1306\",direction = 0,mode=\"spi_hw_4pin\",spi_id=0,spi_res=pin.PB03,spi_dc=pin.PB01,spi_cs=pin.PB04}) -- direction \u53ef\u90090 90 180 270\n-- \u521d\u59cb\u5316\u8f6f\u4ef6i2c\u7684ssd1306\nu8g2.begin({ic = \"ssd1306\",direction = 0,mode=\"i2c_sw\", i2c_scl=1, i2c_sda=4}) -- \u901a\u8fc7PA1 SCL / PA4 SDA\u6a21\u62df\n\n", "prefix": "u8g2.begin"}, "u8g2.close": {"body": "u8g2.close()", "description": "u8g2.close() - \u5173\u95ed\u663e\u793a\u5c4f\n\u4f8b\u5b50\uff1a\n-- \u5173\u95eddisp,\u518d\u6b21\u4f7f\u7528disp\u76f8\u5173API\u7684\u8bdd,\u9700\u8981\u91cd\u65b0\u521d\u59cb\u5316\nu8g2.close()\n", "prefix": "u8g2.close"}, "u8g2.ClearBuffer": {"body": "u8g2.ClearBuffer()", "description": "u8g2.ClearBuffer() - \u6e05\u5c4f\uff0c\u6e05\u9664\u5185\u5b58\u5e27\u7f13\u51b2\u533a\u4e2d\u7684\u6240\u6709\u50cf\u7d20\n\u4f8b\u5b50\uff1a\n-- \u6e05\u5c4f\nu8g2.ClearBuffer()\n", "prefix": "u8g2.ClearBuffer"}, "u8g2.SendBuffer": {"body": "u8g2.SendBuffer()", "description": "u8g2.SendBuffer() - \u5c06\u6570\u636e\u66f4\u65b0\u5230\u5c4f\u5e55\uff0c\u5c06\u5b58\u50a8\u5668\u5e27\u7f13\u51b2\u533a\u7684\u5185\u5bb9\u53d1\u9001\u5230\u663e\u793a\u5668\n\u4f8b\u5b50\uff1a\n-- \u628a\u663e\u793a\u6570\u636e\u66f4\u65b0\u5230\u5c4f\u5e55\nu8g2.SendBuffer()\n", "prefix": "u8g2.SendBuffer"}, "u8g2.DrawUTF8": {"body": "u8g2.DrawUTF8(${1:str},${2:x},${3:y})", "description": "u8g2.DrawUTF8(str, x, y) - \u5728\u663e\u793a\u5c4f\u4e0a\u753b\u4e00\u6bb5\u6587\u5b57\uff0c\u5728\u663e\u793a\u5c4f\u4e0a\u753b\u4e00\u6bb5\u6587\u5b57,\u8981\u8c03\u7528u8g2.SendBuffer()\u624d\u4f1a\u66f4\u65b0\u5230\u5c4f\u5e55\n\u4f20\u5165\u503c\uff1a\nstring \u6587\u4ef6\u5185\u5bb9\nint \u6a2a\u5750\u6807\nint \u7ad6\u5750\u6807\n\u4f8b\u5b50\uff1a\nu8g2.DrawUTF8(\"wifi is ready\", 10, 20)\n", "prefix": "u8g2.DrawUTF8"}, "u8g2.DrawButtonUTF8": {"body": "u8g2.DrawButtonUTF8(${1:str},${2:x},${3:y},${4:flags},${5:w},${6:h},${7:v},${8:str})", "description": "u8g2.DrawButtonUTF8(str, x, y, flags, w, h, v, str) - \u5728\u63d0\u4f9b\u7684\u6587\u672c\u5468\u56f4\u753b\u4e00\u4e2a\u6846\u3002\u8fd9\u4e0e DrawUTF8 \u7c7b\u4f3c\uff0c\u4f46\u4e3a\u6587\u672c\u6dfb\u52a0\u4e86\u4e00\u4e9b\u88c5\u9970\u3002,\u8981\u8c03\u7528u8g2.SendBuffer()\u624d\u4f1a\u66f4\u65b0\u5230\u5c4f\u5e55\n\u4f20\u5165\u503c\uff1a\nstring \u6587\u4ef6\u5185\u5bb9\nint \u6a2a\u5750\u6807\nint \u7ad6\u5750\u6807\nint \u6807\u5fd7 \u591a\u4e2a\u6807\u5fd7\u53ef\u4ee5\u4e0e\u201c\u6216\u201d\u8fd0\u7b97\u7b26\u4e00\u8d77\u4f7f\u7528\u3002\nint \u6587\u672c\u7684\u6700\u5c0f\u5bbd\u5ea6\u3002\u5982\u679c\u4e3a0\uff08\u6216\u4f4e\u4e8e\u6587\u672c\u5bbd\u5ea6\uff09\uff0c\u5219\u6587\u672c\u5bbd\u5ea6\u5c06\u7528\u4e8e\u6846\u67b6\u3002\nint \u6587\u672c\u524d\u540e\u7684\u989d\u5916\u7a7a\u95f4\u3002\nint \u6587\u672c\u4e0a\u4e0b\u7684\u989d\u5916\u7a7a\u95f4\u3002\n\u4f8b\u5b50\uff1a\nu8g2.DrawButtonUTF8(\"str\", 10, 20,u8g2.BTN_BW2,0,2,2)\n", "prefix": "u8g2.DrawButtonUTF8"}, "u8g2.SetFontMode": {"body": "u8g2.SetFontMode(${1:mode})", "description": "u8g2.SetFontMode(mode) - \u8bbe\u7f6e\u5b57\u4f53\u6a21\u5f0f\n\u4f20\u5165\u503c\uff1a\nint mode\u5b57\u4f53\u6a21\u5f0f\uff0c\u542f\u7528\uff081\uff09\u6216\u7981\u7528\uff080\uff09\u900f\u660e\u6a21\u5f0f\n\u4f8b\u5b50\uff1a\nu8g2.SetFontMode(1)\n", "prefix": "u8g2.SetFontMode"}, "u8g2.SetFont": {"body": "u8g2.SetFont(${1:font})", "description": "u8g2.SetFont(font) - \u8bbe\u7f6e\u5b57\u4f53\n\u4f20\u5165\u503c\uff1a\nuserdata font, u8g2.font_opposansm8 \u4e3a\u7eaf\u82f1\u65878\u53f7\u5b57\u4f53,\u8fd8\u6709font_opposansm10 font_opposansm12 font_opposansm16 font_opposansm18 font_opposansm20 font_opposansm22 font_opposansm24 font_opposansm32 \u53ef\u9009 u8g2.font_opposansm12_chinese \u4e3a12x12\u5168\u4e2d\u6587,\u8fd8\u6709 font_opposansm16_chinese font_opposansm24_chinese font_opposansm32_chinese \u53ef\u9009, u8g2.font_unifont_t_symbols \u4e3a\u7b26\u53f7.\n\u4f8b\u5b50\uff1a\n-- \u8bbe\u7f6e\u4e3a\u4e2d\u6587\u5b57\u4f53,\u5bf9\u4e4b\u540e\u7684drawStr\u6709\u6548\nu8g2.SetFont(u8g2.font_opposansm12)\n", "prefix": "u8g2.SetFont"}, "u8g2.GetDisplayHeight": {"body": "u8g2.GetDisplayHeight()", "description": "u8g2.GetDisplayHeight() - \u83b7\u53d6\u663e\u793a\u5c4f\u9ad8\u5ea6\n\u8fd4\u56de\u503c\uff1a\nint \u663e\u793a\u5c4f\u9ad8\u5ea6\n\u4f8b\u5b50\uff1a\nu8g2.GetDisplayHeight()\n", "prefix": "u8g2.GetDisplayHeight"}, "u8g2.GetDisplayWidth": {"body": "u8g2.GetDisplayWidth()", "description": "u8g2.GetDisplayWidth() - \u83b7\u53d6\u663e\u793a\u5c4f\u5bbd\u5ea6\n\u8fd4\u56de\u503c\uff1a\nint \u663e\u793a\u5c4f\u5bbd\u5ea6\n\u4f8b\u5b50\uff1a\nu8g2.GetDisplayWidth()\n", "prefix": "u8g2.GetDisplayWidth"}, "u8g2.SetDrawColor": {"body": "u8g2.SetDrawColor(${1:c})", "description": "u8g2.SetDrawColor(c) - \u4e3a\u6240\u6709\u7ed8\u56fe\u529f\u80fd\u5206\u914d\u7ed8\u56fe\u989c\u8272\u3002\n\u4f20\u5165\u503c\uff1a\nint c\u4e3a\u989c\u8272\u503c 0\u6ca1\u6709\u8272 1\u6709\u8272 2\u4e0e\u5e95\u8272xor\n\u4f8b\u5b50\uff1a\nu8g2.SetDrawColor(0)\n", "prefix": "u8g2.SetDrawColor"}, "u8g2.DrawPixel": {"body": "u8g2.DrawPixel(${1:x},${2:y})", "description": "u8g2.DrawPixel(x,y) - \u753b\u4e00\u4e2a\u70b9.\n\u4f20\u5165\u503c\uff1a\nint X\u4f4d\u7f6e.\nint Y\u4f4d\u7f6e.\n\u4f8b\u5b50\uff1a\nu8g2.DrawPixel(20, 5)\n", "prefix": "u8g2.DrawPixel"}, "u8g2.DrawLine": {"body": "u8g2.DrawLine(${1:x0},${2:y0},${3:x1},${4:y1})", "description": "u8g2.DrawLine(x0,y0,x1,y1) - \u5728\u4e24\u70b9\u4e4b\u95f4\u753b\u4e00\u6761\u7ebf.\n\u4f20\u5165\u503c\uff1a\nint \u7b2c\u4e00\u4e2a\u70b9\u7684X\u4f4d\u7f6e.\nint \u7b2c\u4e00\u4e2a\u70b9\u7684Y\u4f4d\u7f6e.\nint \u7b2c\u4e8c\u4e2a\u70b9\u7684X\u4f4d\u7f6e.\nint \u7b2c\u4e8c\u4e2a\u70b9\u7684Y\u4f4d\u7f6e.\n\u4f8b\u5b50\uff1a\nu8g2.DrawLine(20, 5, 5, 32)\n", "prefix": "u8g2.DrawLine"}, "u8g2.DrawCircle": {"body": "u8g2.DrawCircle(${1:x0},${2:y0},${3:rad},${4:opt})", "description": "u8g2.DrawCircle(x0,y0,rad,opt) - \u5728x,y\u4f4d\u7f6e\u753b\u4e00\u4e2a\u534a\u5f84\u4e3arad\u7684\u7a7a\u5fc3\u5706.\n\u4f20\u5165\u503c\uff1a\nint \u5706\u5fc3\u4f4d\u7f6e\nint \u5706\u5fc3\u4f4d\u7f6e\nint \u5706\u534a\u5f84.\nint \u9009\u62e9\u5706\u7684\u90e8\u5206\u6216\u5168\u90e8. \u9ed8\u8ba4\u5168\u753b \u53ef\u9009 u8g2.DRAW_UPPER_RIGHT u8g2.DRAW_UPPER_LEFT u8g2.DRAW_LOWER_LEFT u8g2.DRAW_LOWER_RIGHT u8g2.DRAW_ALL\n\u4f8b\u5b50\uff1a\nu8g2.DrawCircle(60,30,8,u8g2.DRAW_ALL)\n", "prefix": "u8g2.DrawCircle"}, "u8g2.DrawDisc": {"body": "u8g2.DrawDisc(${1:x0},${2:y0},${3:rad},${4:opt})", "description": "u8g2.DrawDisc(x0,y0,rad,opt) - \u5728x,y\u4f4d\u7f6e\u753b\u4e00\u4e2a\u534a\u5f84\u4e3arad\u7684\u5b9e\u5fc3\u5706.\n\u4f20\u5165\u503c\uff1a\nint \u5706\u5fc3\u4f4d\u7f6e\nint \u5706\u5fc3\u4f4d\u7f6e\nint \u5706\u534a\u5f84.\nint \u9009\u62e9\u5706\u7684\u90e8\u5206\u6216\u5168\u90e8. \u9ed8\u8ba4\u5168\u753b \u53ef\u9009 u8g2.DRAW_UPPER_RIGHT u8g2.DRAW_UPPER_LEFT u8g2.DRAW_LOWER_LEFT u8g2.DRAW_LOWER_RIGHT u8g2.DRAW_ALL\n\u4f8b\u5b50\uff1a\nu8g2.DrawDisc(60,30,8,u8g2.DRAW_ALL)\n", "prefix": "u8g2.DrawDisc"}, "u8g2.DrawEllipse": {"body": "u8g2.DrawEllipse(${1:x0},${2:y0},${3:rx},${4:ry},${5:opt})", "description": "u8g2.DrawEllipse(x0,y0,rx,ry,opt) - \u5728x,y\u4f4d\u7f6e\u753b\u4e00\u4e2a\u534a\u5f84\u4e3arad\u7684\u7a7a\u5fc3\u692d\u5706.\n\u4f20\u5165\u503c\uff1a\nint \u5706\u5fc3\u4f4d\u7f6e\nint \u5706\u5fc3\u4f4d\u7f6e\nint \u692d\u5706\u5927\u5c0f\nint \u692d\u5706\u5927\u5c0f\nint \u9009\u62e9\u5706\u7684\u90e8\u5206\u6216\u5168\u90e8. \u9ed8\u8ba4\u5168\u753b \u53ef\u9009 u8g2.DRAW_UPPER_RIGHT u8g2.DRAW_UPPER_LEFT u8g2.DRAW_LOWER_LEFT u8g2.DRAW_LOWER_RIGHT u8g2.DRAW_ALL\n\u4f8b\u5b50\uff1a\nu8g2.DrawEllipse(60,30,8,u8g2.DRAW_ALL)\n", "prefix": "u8g2.DrawEllipse"}, "u8g2.DrawFilledEllipse": {"body": "u8g2.DrawFilledEllipse(${1:x0},${2:y0},${3:rx},${4:ry},${5:opt})", "description": "u8g2.DrawFilledEllipse(x0,y0,rx,ry,opt) - \u5728x,y\u4f4d\u7f6e\u753b\u4e00\u4e2a\u534a\u5f84\u4e3arad\u7684\u5b9e\u5fc3\u692d\u5706.\n\u4f20\u5165\u503c\uff1a\nint \u5706\u5fc3\u4f4d\u7f6e\nint \u5706\u5fc3\u4f4d\u7f6e\nint \u692d\u5706\u5927\u5c0f\nint \u692d\u5706\u5927\u5c0f\nint \u9009\u62e9\u5706\u7684\u90e8\u5206\u6216\u5168\u90e8. \u9ed8\u8ba4\u5168\u753b \u53ef\u9009 u8g2.DRAW_UPPER_RIGHT u8g2.DRAW_UPPER_LEFT u8g2.DRAW_LOWER_LEFT u8g2.DRAW_LOWER_RIGHT u8g2.DRAW_ALL\n\u4f8b\u5b50\uff1a\nu8g2.DrawFilledEllipse(60,30,8,15)\n", "prefix": "u8g2.DrawFilledEllipse"}, "u8g2.DrawBox": {"body": "u8g2.DrawBox(${1:x},${2:y},${3:w},${4:h})", "description": "u8g2.DrawBox(x,y,w,h) - \u4ecex / y\u4f4d\u7f6e\uff08\u5de6\u4e0a\u8fb9\u7f18\uff09\u5f00\u59cb\u7ed8\u5236\u4e00\u4e2a\u6846\uff08\u586b\u5145\u7684\u6846\uff09.\n\u4f20\u5165\u503c\uff1a\nint \u5de6\u4e0a\u8fb9\u7f18\u7684X\u4f4d\u7f6e\nint \u5de6\u4e0a\u8fb9\u7f18\u7684Y\u4f4d\u7f6e\nint \u76d2\u5b50\u7684\u5bbd\u5ea6\nint \u76d2\u5b50\u7684\u9ad8\u5ea6\n\u4f8b\u5b50\uff1a\nu8g2.DrawBox(3,7,25,15)\n", "prefix": "u8g2.DrawBox"}, "u8g2.DrawFrame": {"body": "u8g2.DrawFrame(${1:x},${2:y},${3:w},${4:h})", "description": "u8g2.DrawFrame(x,y,w,h) - \u4ecex / y\u4f4d\u7f6e\uff08\u5de6\u4e0a\u8fb9\u7f18\uff09\u5f00\u59cb\u7ed8\u5236\u4e00\u4e2a\u6846\uff08\u7a7a\u6846\uff09.\n\u4f20\u5165\u503c\uff1a\nint \u5de6\u4e0a\u8fb9\u7f18\u7684X\u4f4d\u7f6e\nint \u5de6\u4e0a\u8fb9\u7f18\u7684Y\u4f4d\u7f6e\nint \u76d2\u5b50\u7684\u5bbd\u5ea6\nint \u76d2\u5b50\u7684\u9ad8\u5ea6\n\u4f8b\u5b50\uff1a\nu8g2.DrawFrame(3,7,25,15)\n", "prefix": "u8g2.DrawFrame"}, "u8g2.DrawRBox": {"body": "u8g2.DrawRBox(${1:x},${2:y},${3:w},${4:h},${5:r})", "description": "u8g2.DrawRBox(x,y,w,h,r) - \u7ed8\u5236\u4e00\u4e2a\u4ecex / y\u4f4d\u7f6e\uff08\u5de6\u4e0a\u8fb9\u7f18\uff09\u5f00\u59cb\u5177\u6709\u5706\u5f62\u8fb9\u7f18\u7684\u586b\u5145\u6846/\u6846\u67b6.\n\u4f20\u5165\u503c\uff1a\nint \u5de6\u4e0a\u8fb9\u7f18\u7684X\u4f4d\u7f6e\nint \u5de6\u4e0a\u8fb9\u7f18\u7684Y\u4f4d\u7f6e\nint \u76d2\u5b50\u7684\u5bbd\u5ea6\nint \u76d2\u5b50\u7684\u9ad8\u5ea6\nint \u56db\u4e2a\u8fb9\u7f18\u7684\u534a\u5f84\n\u4f8b\u5b50\uff1a\nu8g2.DrawRBox(3,7,25,15)\n", "prefix": "u8g2.DrawRBox"}, "u8g2.DrawRFrame": {"body": "u8g2.DrawRFrame(${1:x},${2:y},${3:w},${4:h},${5:r})", "description": "u8g2.DrawRFrame(x,y,w,h,r) - \u7ed8\u5236\u4e00\u4e2a\u4ecex / y\u4f4d\u7f6e\uff08\u5de6\u4e0a\u8fb9\u7f18\uff09\u5f00\u59cb\u5177\u6709\u5706\u5f62\u8fb9\u7f18\u7684\u7a7a\u6846/\u6846\u67b6.\n\u4f20\u5165\u503c\uff1a\nint \u5de6\u4e0a\u8fb9\u7f18\u7684X\u4f4d\u7f6e\nint \u5de6\u4e0a\u8fb9\u7f18\u7684Y\u4f4d\u7f6e\nint \u76d2\u5b50\u7684\u5bbd\u5ea6\nint \u76d2\u5b50\u7684\u9ad8\u5ea6\nint \u56db\u4e2a\u8fb9\u7f18\u7684\u534a\u5f84\n\u4f8b\u5b50\uff1a\nu8g2.DrawRFrame(3,7,25,15)\n", "prefix": "u8g2.DrawRFrame"}, "u8g2.DrawGlyph": {"body": "u8g2.DrawGlyph(${1:x},${2:y},${3:encoding})", "description": "u8g2.DrawGlyph(x,y,encoding) - \u7ed8\u5236\u4e00\u4e2a\u56fe\u5f62\u5b57\u7b26\u3002\u5b57\u7b26\u653e\u7f6e\u5728\u6307\u5b9a\u7684\u50cf\u7d20\u4f4d\u7f6ex\u548cy.\n\u4f20\u5165\u503c\uff1a\nint \u5b57\u7b26\u5728\u663e\u793a\u5c4f\u4e0a\u7684\u4f4d\u7f6e\nint \u5b57\u7b26\u5728\u663e\u793a\u5c4f\u4e0a\u7684\u4f4d\u7f6e\nint \u5b57\u7b26\u7684Unicode\u503c\n\u4f8b\u5b50\uff1a\nu8g2.SetFont(u8g2_font_unifont_t_symbols)\nu8g2.DrawGlyph(5, 20, 0x2603)\t-- dec 9731/hex 2603 Snowman\n", "prefix": "u8g2.DrawGlyph"}, "u8g2.DrawTriangle": {"body": "u8g2.DrawTriangle(${1:x0},${2:y0},${3:x1},${4:y1},${5:x2},${6:y2})", "description": "u8g2.DrawTriangle(x0,y0,x1,y1,x2,y2) - \u7ed8\u5236\u4e00\u4e2a\u4e09\u89d2\u5f62\uff08\u5b9e\u5fc3\u591a\u8fb9\u5f62\uff09.\n\u4f20\u5165\u503c\uff1a\nint \u70b90X\u4f4d\u7f6e\nint \u70b90Y\u4f4d\u7f6e\nint \u70b91X\u4f4d\u7f6e\nint \u70b91Y\u4f4d\u7f6e\nint \u70b92X\u4f4d\u7f6e\nint \u70b92Y\u4f4d\u7f6e\n\u4f8b\u5b50\uff1a\nu8g2.DrawTriangle(20,5, 27,50, 5,32)\n", "prefix": "u8g2.DrawTriangle"}, "u8g2.SetBitmapMode": {"body": "u8g2.SetBitmapMode(${1:mode})", "description": "u8g2.SetBitmapMode(mode) - \u5b9a\u4e49\u4f4d\u56fe\u51fd\u6570\u662f\u5426\u5c06\u5199\u5165\u80cc\u666f\u8272\n\u4f20\u5165\u503c\uff1a\nint mode\u5b57\u4f53\u6a21\u5f0f\uff0c\u542f\u7528\uff081\uff09\u6216\u7981\u7528\uff080\uff09\u900f\u660e\u6a21\u5f0f\n\u4f8b\u5b50\uff1a\nu8g2.SetBitmapMode(1)\n", "prefix": "u8g2.SetBitmapMode"}, "u8g2.DrawXBM": {"body": "u8g2.DrawXBM(${1:x},${2:y},${3:w},${4:h},${5:data})", "description": "u8g2.DrawXBM(x, y, w, h, data) - \u7ed8\u5236\u4f4d\u56fe\n\u4f20\u5165\u503c\uff1a\nint X\u5750\u6807\nint y\u5750\u6807\nint \u4f4d\u56fe\u5bbd\nint \u4f4d\u56fe\u9ad8\nint \u4f4d\u56fe\u6570\u636e,\u6bcf\u4e00\u4f4d\u4ee3\u8868\u4e00\u4e2a\u50cf\u7d20\n\u4f8b\u5b50\uff1a\n-- \u53d6\u6a21\u4f7f\u7528PCtoLCD2002\u8f6f\u4ef6\u5373\u53ef\n-- \u5728(0,0)\u4e3a\u5de6\u4e0a\u89d2,\u7ed8\u5236 16x16 \"\u4eca\" \u7684\u4f4d\u56fe\nu8g2.DrawXBM(0, 0, 16,16, string.char(\n 0x80,0x00,0x80,0x00,0x40,0x01,0x20,0x02,0x10,0x04,0x48,0x08,0x84,0x10,0x83,0x60,\n 0x00,0x00,0xF8,0x0F,0x00,0x08,0x00,0x04,0x00,0x04,0x00,0x02,0x00,0x01,0x80,0x00\n))\n", "prefix": "u8g2.DrawXBM"}, "u8g2.DrawDrcode": {"body": "u8g2.DrawDrcode(${1:x},${2:y},${3:str},${4:size})", "description": "u8g2.DrawDrcode(x, y, str, size) - \u7f13\u51b2\u533a\u7ed8\u5236QRCode\n\u4f20\u5165\u503c\uff1a\nint x\u5750\u6807\nint y\u5750\u6807\nstring \u4e8c\u7ef4\u7801\u7684\u5185\u5bb9\nint \u663e\u793a\u5927\u5c0f (\u6ce8\u610f:\u4e8c\u7ef4\u7801\u751f\u6210\u5927\u5c0f\u4e0e\u8981\u663e\u793a\u5185\u5bb9\u548c\u7ea0\u9519\u7b49\u7ea7\u6709\u5173,\u751f\u6210\u7248\u672c\u4e3a1-40(\u5bf9\u5e94 21x21 - 177x177)\u7684\u4e0d\u5b9a\u5927\u5c0f,\u5982\u679c\u548c\u8bbe\u7f6e\u5927\u5c0f\u4e0d\u540c\u4f1a\u81ea\u52a8\u5728\u6307\u5b9a\u7684\u533a\u57df\u4e2d\u95f4\u663e\u793a\u4e8c\u7ef4\u7801,\u5982\u4e8c\u7ef4\u7801\u672a\u663e\u793a\u8bf7\u67e5\u770b\u65e5\u5fd7\u63d0\u793a)\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n", "prefix": "u8g2.DrawDrcode"}, "u8g2.SetContrast": {"body": "u8g2.SetContrast(${1:contrast})", "description": "u8g2.SetContrast(contrast) - \u8c03\u6574\u5c4f\u5e55\u5bf9\u6bd4\u5ea6\n\u4f20\u5165\u503c\uff1a\nint \u5bf9\u6bd4\u5ea6\uff08\u53d6\u503c\u8303\u56f4\u4e0eIC\u6709\u5173\uff0c\u5982st7567\u4e3a0-63\uff09\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n", "prefix": "u8g2.SetContrast"}, "u8g2.drawGtfontGb2312": {"body": "u8g2.drawGtfontGb2312(${1:str},${2:size},${3:x},${4:y})", "description": "u8g2.drawGtfontGb2312(str,size,x,y) - \u4f7f\u7528gtfont\u663e\u793agb2312\u5b57\u7b26\u4e32\n\u4f20\u5165\u503c\uff1a\nstring str \u663e\u793a\u5b57\u7b26\u4e32\nint size \u5b57\u4f53\u5927\u5c0f (\u652f\u630116-192\u53f7\u5927\u5c0f\u5b57\u4f53)\nint x \u6a2a\u5750\u6807\nint y \u7ad6\u5750\u6807\n\u4f8b\u5b50\uff1a\nu8g2.drawGtfontGb2312(\"\u554a\u554a\u554a\",32,0,0)\n", "prefix": "u8g2.drawGtfontGb2312"}, "u8g2.drawGtfontUtf8": {"body": "u8g2.drawGtfontUtf8(${1:str},${2:size},${3:x},${4:y})", "description": "u8g2.drawGtfontUtf8(str,size,x,y) - \u4f7f\u7528gtfont\u663e\u793aUTF8\u5b57\u7b26\u4e32\n\u4f20\u5165\u503c\uff1a\nstring str \u663e\u793a\u5b57\u7b26\u4e32\nint size \u5b57\u4f53\u5927\u5c0f (\u652f\u630116-192\u53f7\u5927\u5c0f\u5b57\u4f53)\nint x \u6a2a\u5750\u6807\nint y \u7ad6\u5750\u6807\n\u4f8b\u5b50\uff1a\nu8g2.drawGtfontUtf8(\"\u554a\u554a\u554a\",32,0,0)\n", "prefix": "u8g2.drawGtfontUtf8"}, "u8g2.CopyBuffer": {"body": "u8g2.CopyBuffer(${1:buff})", "description": "u8g2.CopyBuffer(buff) - \u83b7\u53d6\u5e95\u5c42\u56fe\u50cf\u7f13\u51b2\u533a\n\u4f20\u5165\u503c\uff1a\nuserdata zbuff\u5b9e\u4f8b,\u7a7a\u95f4\u8981\u5927\u4e8e\u7b49\u4e8e\u5e95\u5c42buff\u7684\u5927\u5c0f\n\u8fd4\u56de\u503c\uff1a\nint \u6210\u529f\u8fd4\u56debuff\u5927\u5c0f,\u5426\u5219\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\n-- \u672c\u51fd\u6570\u5728u8g2\u521d\u59cb\u5316\u4e4b\u540e\u624d\u80fd\u8c03\u7528\n\n-- \u83b7\u53d6\u5927\u5c0f\nlocal sz = u8g2.CopyBuffer()\n\n-- \u62f7\u8d1d\u5e95\u5c42buff\nlocal buff = zbuff.create(sz)\nu8g2.CopyBuffer(buff)\n\n", "prefix": "u8g2.CopyBuffer"}, "u8g2.SetPowerSave": {"body": "u8g2.SetPowerSave(${1:is_enable})", "description": "u8g2.SetPowerSave(is_enable) - \u8bbe\u7f6e\u7701\u7535\u6a21\u5f0f\n\u4f20\u5165\u503c\uff1a\nboolean \u542f\u7528\u4e0e\u5426. true \u542f\u7528, false\u7981\u7528\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n-- \u672cAPI\u4e8e2023.11.02\u65b0\u589e\n-- \u5f00\u542f\u7701\u7535\nu8g2.SetPowerSave(true)\n-- \u5173\u95ed\u7701\u7535\nu8g2.SetPowerSave(false)\n", "prefix": "u8g2.SetPowerSave"}, "uart.setup": {"body": "uart.setup(${1:id},${2:baud_rate},${3:data_bits},${4:stop_bits},${5:partiy},${6:bit_order},${7:buff_size},${8:rs485_gpio},${9:rs485_level},${10:rs485_delay})", "description": "uart.setup(id, baud_rate, data_bits, stop_bits, partiy, bit_order, buff_size, rs485_gpio, rs485_level, rs485_delay) - \u914d\u7f6e\u4e32\u53e3\u53c2\u6570\n\u4f20\u5165\u503c\uff1a\nint \u4e32\u53e3id, uart0\u51990, uart1\u51991, \u5982\u6b64\u7c7b\u63a8, \u6700\u5927\u503c\u53d6\u51b3\u4e8e\u8bbe\u5907\nint \u6ce2\u7279\u7387, \u9ed8\u8ba4115200\uff0c\u53ef\u9009\u62e9\u6ce2\u7279\u7387\u8868:{2000000,921600,460800,230400,115200,57600,38400,19200,9600,4800,2400}\nint \u6570\u636e\u4f4d\uff0c\u9ed8\u8ba4\u4e3a8, \u53ef\u9009 7/8\nint \u505c\u6b62\u4f4d\uff0c\u9ed8\u8ba4\u4e3a1, \u6839\u636e\u5b9e\u9645\u60c5\u51b5\uff0c\u53ef\u4ee5\u67090.5/1/1.5/2\u7b49\nint \u6821\u9a8c\u4f4d\uff0c\u53ef\u9009 uart.None/uart.Even/uart.Odd\nint \u5927\u5c0f\u7aef\uff0c\u9ed8\u8ba4\u5c0f\u7aef uart.LSB, \u53ef\u9009 uart.MSB\nint \u7f13\u51b2\u533a\u5927\u5c0f\uff0c\u9ed8\u8ba4\u503c1024\nint 485\u6a21\u5f0f\u4e0b\u7684\u8f6c\u6362GPIO, \u9ed8\u8ba4\u503c0xffffffff\nint 485\u6a21\u5f0f\u4e0b\u7684rx\u65b9\u5411GPIO\u7684\u7535\u5e73, \u9ed8\u8ba4\u503c0\nint 485\u6a21\u5f0f\u4e0btx\u5411rx\u8f6c\u6362\u7684\u5ef6\u8fdf\u65f6\u95f4\uff0c\u9ed8\u8ba4\u503c12bit\u7684\u65f6\u95f4\uff0c\u5355\u4f4dus\n\u8fd4\u56de\u503c\uff1a\nint \u6210\u529f\u8fd4\u56de0,\u5931\u8d25\u8fd4\u56de\u5176\u4ed6\u503c\n\u4f8b\u5b50\uff1a\n-- \u6700\u5e38\u7528115200 8N1\nuart.setup(1, 115200, 8, 1, uart.NONE)\n-- \u53ef\u4ee5\u7b80\u5199\u4e3a uart.setup(1)\n\n-- 485\u81ea\u52a8\u5207\u6362, \u9009\u53d6GPIO10\u4f5c\u4e3a\u6536\u53d1\u8f6c\u6362\u811a\nuart.setup(1, 115200, 8, 1, uart.NONE, uart.LSB, 1024, 10, 0, 100)\n", "prefix": "uart.setup"}, "uart.write": {"body": "uart.write(${1:id},${2:data})", "description": "uart.write(id, data) - \u5199\u4e32\u53e3\n\u4f20\u5165\u503c\uff1a\nint \u4e32\u53e3id, uart0\u51990, uart1\u51991\nstring/zbuff \u5f85\u5199\u5165\u7684\u6570\u636e\uff0c\u5982\u679c\u662fzbuff\u4f1a\u4ece\u6307\u9488\u8d77\u59cb\u4f4d\u7f6e\u5f00\u59cb\u8bfb\nint \u53ef\u9009\uff0c\u8981\u53d1\u9001\u7684\u6570\u636e\u957f\u5ea6\uff0c\u9ed8\u8ba4\u5168\u53d1\n\u8fd4\u56de\u503c\uff1a\nint \u6210\u529f\u7684\u6570\u636e\u957f\u5ea6\n\u4f8b\u5b50\uff1a\n-- \u5199\u5165\u53ef\u89c1\u5b57\u7b26\u4e32\nuart.write(1, \"rdy\\r\\n\")\n-- \u5199\u5165\u5341\u516d\u8fdb\u5236\u7684\u6570\u636e\u4e32\nuart.write(1, string.char(0x55,0xAA,0x4B,0x03,0x86))\n", "prefix": "uart.write"}, "uart.read": {"body": "uart.read(${1:id},${2:len})", "description": "uart.read(id, len) - \u8bfb\u4e32\u53e3\n\u4f20\u5165\u503c\uff1a\nint \u4e32\u53e3id, uart0\u51990, uart1\u51991\nint \u8bfb\u53d6\u957f\u5ea6\nfile/zbuff \u53ef\u9009\uff1a\u6587\u4ef6\u53e5\u67c4\u6216zbuff\u5bf9\u8c61\n\u8fd4\u56de\u503c\uff1a\nstring \u8bfb\u53d6\u5230\u7684\u6570\u636e / \u4f20\u5165zbuff\u65f6\uff0c\u8fd4\u56de\u8bfb\u5230\u7684\u957f\u5ea6\uff0c\u5e76\u628azbuff\u6307\u9488\u540e\u79fb\n\u4f8b\u5b50\uff1a\nuart.read(1, 16)\n", "prefix": "uart.read"}, "uart.close": {"body": "uart.close(${1:id})", "description": "uart.close(id) - \u5173\u95ed\u4e32\u53e3\n\u4f20\u5165\u503c\uff1a\nint \u4e32\u53e3id, uart0\u51990, uart1\u51991\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\nuart.close(1)\n", "prefix": "uart.close"}, "uart.on": {"body": "uart.on(${1:id},${2:event},${3:func})", "description": "uart.on(id, event, func) - \u6ce8\u518c\u4e32\u53e3\u4e8b\u4ef6\u56de\u8c03\n\u4f20\u5165\u503c\uff1a\nint \u4e32\u53e3id, uart0\u51990, uart1\u51991\nstring \u4e8b\u4ef6\u540d\u79f0\nfunction \u56de\u8c03\u65b9\u6cd5\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\nuart.on(1, \"receive\", function(id, len)\n local data = uart.read(id, len)\n log.info(\"uart\", id, len, data)\nend)\n", "prefix": "uart.on"}, "uart.wait485": {"body": "uart.wait485(${1:id})", "description": "uart.wait485(id) - \u7b49\u5f85485\u6a21\u5f0f\u4e0bTX\u5b8c\u6210\uff0cmcu\u4e0d\u652f\u6301\u4e32\u53e3\u53d1\u9001\u79fb\u4f4d\u5bc4\u5b58\u5668\u7a7a\u6216\u8005\u7c7b\u4f3c\u4e2d\u65ad\u65f6\u624d\u9700\u8981\uff0c\u5728sent\u4e8b\u4ef6\u56de\u8c03\u540e\u4f7f\u7528\n\u4f20\u5165\u503c\uff1a\nint \u4e32\u53e3id, uart0\u51990, uart1\u51991\n\u8fd4\u56de\u503c\uff1a\nint \u7b49\u5f85\u4e86\u591a\u5c11\u6b21\u5faa\u73af\u624d\u7b49\u5230tx\u5b8c\u6210\uff0c\u7528\u4e8e\u7c97\u52a3\u7684\u89c2\u5bdfdelay\u65f6\u95f4\u662f\u5426\u8db3\u591f\uff0c\u8fd4\u56de\u4e0d\u4e3a0\u8bf4\u660e\u8fd8\u9700\u8981\u653e\u5927delay\n", "prefix": "uart.wait485"}, "uart.exist": {"body": "uart.exist(${1:id})", "description": "uart.exist(id) - \u68c0\u67e5\u4e32\u53e3\u53f7\u662f\u5426\u5b58\u5728\n\u4f20\u5165\u503c\uff1a\nint \u4e32\u53e3id, uart0\u51990, uart1\u51991, \u5982\u6b64\u7c7b\u63a8\n\u8fd4\u56de\u503c\uff1a\nbool \u5b58\u5728\u8fd4\u56detrue\n", "prefix": "uart.exist"}, "uart.rx": {"body": "uart.rx(${1:id},${2:buff})", "description": "uart.rx(id, buff) - buff\u5f62\u5f0f\u8bfb\u4e32\u53e3\uff0c\u4e00\u6b21\u8bfb\u51fa\u5168\u90e8\u6570\u636e\u5b58\u5165buff\u4e2d\uff0c\u5982\u679cbuff\u7a7a\u95f4\u4e0d\u591f\u4f1a\u81ea\u52a8\u6269\u5c55\uff0c\u76ee\u524dair105,air780e\u652f\u6301\u8fd9\u4e2a\u64cd\u4f5c\n\u4f20\u5165\u503c\uff1a\nint \u4e32\u53e3id, uart0\u51990, uart1\u51991\nzbuff zbuff\u5bf9\u8c61\n\u8fd4\u56de\u503c\uff1a\nint \u8fd4\u56de\u8bfb\u5230\u7684\u957f\u5ea6\uff0c\u5e76\u628azbuff\u6307\u9488\u540e\u79fb\n\u4f8b\u5b50\uff1a\nuart.rx(1, buff)\n", "prefix": "uart.rx"}, "uart.rxSize": {"body": "uart.rxSize(${1:id})", "description": "uart.rxSize(id) - \u8bfb\u4e32\u53e3Rx\u7f13\u5b58\u4e2d\u5269\u4f59\u6570\u636e\u91cf\uff0c\u76ee\u524dair105,air780e\u652f\u6301\u8fd9\u4e2a\u64cd\u4f5c\n\u4f20\u5165\u503c\uff1a\nint \u4e32\u53e3id, uart0\u51990, uart1\u51991\n\u8fd4\u56de\u503c\uff1a\nint \u8fd4\u56de\u8bfb\u5230\u7684\u957f\u5ea6\n\u4f8b\u5b50\uff1a\nlocal size = uart.rxSize(1)\n", "prefix": "uart.rxSize"}, "uart.rxClear": {"body": "uart.rxClear(${1:id})", "description": "uart.rxClear(id) - \u6e05\u9664\u4e32\u53e3Rx\u7f13\u5b58\u4e2d\u5269\u4f59\u6570\u636e\u91cf\uff0c\u76ee\u524dair105,air780e\u652f\u6301\u8fd9\u4e2a\u64cd\u4f5c\n\u4f20\u5165\u503c\uff1a\nint \u4e32\u53e3id, uart0\u51990, uart1\u51991\n\u4f8b\u5b50\uff1a\nuart.rxClear(1)\n", "prefix": "uart.rxClear"}, "uart.tx": {"body": "uart.tx(${1:id},${2:buff},${3:start},${4:len})", "description": "uart.tx(id, buff, start, len) - buff\u5f62\u5f0f\u5199\u4e32\u53e3,\u7b49\u540c\u4e8ec\u8bed\u8a00uart_tx(uart_id, &buff[start], len);\n\u4f20\u5165\u503c\uff1a\nint \u4e32\u53e3id, uart0\u51990, uart1\u51991\nzbuff \u5f85\u5199\u5165\u7684\u6570\u636e\uff0c\u5982\u679c\u662fzbuff\u4f1a\u4ece\u6307\u9488\u8d77\u59cb\u4f4d\u7f6e\u5f00\u59cb\u8bfb\nint \u53ef\u9009\uff0c\u8981\u53d1\u9001\u7684\u6570\u636e\u8d77\u59cb\u4f4d\u7f6e\uff0c\u9ed8\u8ba4\u4e3a0\nint \u53ef\u9009\uff0c\u8981\u53d1\u9001\u7684\u6570\u636e\u957f\u5ea6\uff0c\u9ed8\u8ba4\u4e3azbuff\u5185\u6709\u6548\u6570\u636e\uff0c\u6700\u5927\u503c\u4e0d\u8d85\u8fc7zbuff\u7684\u6700\u5927\u7a7a\u95f4\n\u8fd4\u56de\u503c\uff1a\nint \u6210\u529f\u7684\u6570\u636e\u957f\u5ea6\n\u4f8b\u5b50\uff1a\nuart.tx(1, buf)\n", "prefix": "uart.tx"}, "uart.createSoft": {"body": "uart.createSoft(${1:tx_pin},${2:tx_hwtimer_id},${3:rx_pin},${4:rx_hwtimer_id},${5:adjust_period})", "description": "uart.createSoft(tx_pin, tx_hwtimer_id, rx_pin, rx_hwtimer_id, adjust_period) - \u8bbe\u7f6e\u8f6f\u4ef6uart\u7684\u786c\u4ef6\u914d\u7f6e\uff0c\u53ea\u6709\u652f\u6301\u786c\u4ef6\u5b9a\u65f6\u5668\u7684SOC\u624d\u80fd\u4f7f\u7528\uff0c\u76ee\u524d\u53ea\u80fd\u8bbe\u7f6e\u4e00\u4e2a\uff0c\u6ce2\u7279\u7387\u6839\u636e\u5e73\u53f0\u7684\u8f6f\u786c\u4ef6\u914d\u7f6e\u6709\u4e0d\u540c\u7684\u6781\u9650\uff0c\u5efa\u8bae9600\uff0c\u63a5\u6536\u7f13\u5b58\u4e0d\u8d85\u8fc765535\uff0c\u4e0d\u652f\u6301MSB\uff0c\u652f\u6301485\u81ea\u52a8\u63a7\u5236\u3002\u540e\u7eed\u4ecd\u8981setup\u64cd\u4f5c\n\u4f20\u5165\u503c\uff1a\nint \u53d1\u9001\u5f15\u811a\u7f16\u53f7\nint \u53d1\u9001\u7528\u7684\u786c\u4ef6\u5b9a\u65f6\u5668ID\nint \u63a5\u6536\u5f15\u811a\u7f16\u53f7\nint \u63a5\u6536\u7528\u7684\u786c\u4ef6\u5b9a\u65f6\u5668ID\nint \u53d1\u9001\u65f6\u5e8f\u8c03\u6574\uff0c\u5355\u4f4d\u662f\u5b9a\u65f6\u5668\u65f6\u949f\u5468\u671f\uff0c\u9ed8\u8ba4\u662f0\uff0c\u9700\u8981\u6839\u636e\u793a\u6ce2\u5668\u6216\u8005\u903b\u8f91\u5206\u6790\u4eea\u8fdb\u884c\u5fae\u8c03\nint \u63a5\u6536\u65f6\u5e8f\u8c03\u6574\uff0c\u5355\u4f4d\u662f\u5b9a\u65f6\u5668\u65f6\u949f\u5468\u671f\uff0c\u9ed8\u8ba4\u662f0\uff0c\u9700\u8981\u6839\u636e\u793a\u6ce2\u5668\u6216\u8005\u903b\u8f91\u5206\u6790\u4eea\u8fdb\u884c\u5fae\u8c03\n\u8fd4\u56de\u503c\uff1a\nint \u8f6f\u4ef6uart\u7684id\uff0c\u5982\u679c\u5931\u8d25\u5219\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\n-- \u521d\u59cb\u5316\u8f6f\u4ef6uart\nlocal uart_id = uart.createSoft(21, 0, 1, 2) --air780e\u5efa\u8bae\u7528\u5b9a\u65f6\u56680\u548c2\uff0ctx_pin\u6700\u597d\u7528AGPIO\uff0c\u9632\u6b62\u4f11\u7720\u65f6\u8bef\u89e6\u53d1\u5bf9\u7aefRX\n", "prefix": "uart.createSoft"}, "uart.list": {"body": "uart.list(${1:max})", "description": "uart.list(max) - \u83b7\u53d6\u53ef\u7528\u4e32\u53e3\u53f7\u5217\u8868\uff0c\u5f53\u524d\u4ec5\u9650win32\n\u4f20\u5165\u503c\uff1a\nint \u53ef\u9009\uff0c\u9ed8\u8ba4256\uff0c\u6700\u591a\u83b7\u53d6\u591a\u5c11\u4e2a\u4e32\u53e3\n\u8fd4\u56de\u503c\uff1a\ntable \u83b7\u53d6\u5230\u7684\u53ef\u7528\u4e32\u53e3\u53f7\u5217\u8868\n", "prefix": "uart.list"}, "ufont.get": {"body": "ufont.get(${1:name})", "description": "ufont.get(name) - \u83b7\u53d6\u5b57\u4f53\n\u4f20\u5165\u503c\uff1a\nstring \u5b57\u4f53\u540d\u79f0, \u4f8b\u5982\n\u8fd4\u56de\u503c\uff1a\nuserdata \u82e5\u5b57\u4f53\u5b58\u5728,\u8fd4\u56de\u5b57\u4f53\u6307\u9488, \u5426\u5219\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\n-- TODO\n", "prefix": "ufont.get"}, "ufont.list": {"body": "ufont.list()", "description": "ufont.list() - \u8fd4\u56de\u56fa\u4ef6\u652f\u6301\u7684\u5b57\u4f53\u5217\u8868\n\u8fd4\u56de\u503c\uff1a\ntable \u5b57\u4f53\u5217\u8868\n\u4f8b\u5b50\uff1a\n-- API\u65b0\u589e\u4e8e2022-08-05\nlog.info(\"fonts\", \"u8g2\", json.encode(ufont.list()))\n", "prefix": "ufont.list"}, "usbapp.set_id": {"body": "usbapp.set_id(${1:id},${2:vid},${3:pid})", "description": "usbapp.set_id(id, vid, pid) - USB \u8bbe\u7f6eVID\u548cPID\n\u4f20\u5165\u503c\uff1a\nint \u8bbe\u5907id,\u9ed8\u8ba4\u4e3a0\nint vid \u5c0f\u7aef\u683c\u5f0f\nint pid \u5c0f\u7aef\u683c\u5f0f\n\u4f8b\u5b50\uff1a\nusbapp.set_id(0, 0x1234, 0x5678)\n", "prefix": "usbapp.set_id"}, "usbapp.hid_mode": {"body": "usbapp.hid_mode(${1:id},${2:mode},${3:buff_size})", "description": "usbapp.hid_mode(id, mode, buff_size) - USB HID\u8bbe\u5907\u6a21\u5f0f\n\u4f20\u5165\u503c\uff1a\nint \u8bbe\u5907id,\u9ed8\u8ba4\u4e3a0\nint mode\uff0c\u76ee\u524d0\u662f\u952e\u76d8\uff0c1\u662f\u81ea\u5b9a\u4e49\nint buff_size\uff0c\u53ea\u80fd\u662f8,16,32,64\uff0c\u5982\u679c\u662f\u952e\u76d8\u6a21\u5f0f\u6216\u8005\u586b\u4e86\u5176\u4ed6\u503c\uff0c\u81ea\u52a8\u4e3a8\n\u4f8b\u5b50\uff1a\nusbapp.hid_mode(0, 0) -- usb hid\u952e\u76d8\u6a21\u5f0f\nusbapp.hid_mode(0, 1) -- usb hid\u81ea\u5b9a\u4e49\u6a21\u5f0f\uff0c\u7528\u4e8e\u514d\u9a71USB\u4ea4\u4e92\n", "prefix": "usbapp.hid_mode"}, "usbapp.start": {"body": "usbapp.start(${1:id})", "description": "usbapp.start(id) - \u542f\u52a8USB\u8bbe\u5907\n\u4f20\u5165\u503c\uff1a\nint \u8bbe\u5907id,\u9ed8\u8ba4\u4e3a0\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- \u542f\u52a8USB\nusbapp.start(0)\n", "prefix": "usbapp.start"}, "usbapp.stop": {"body": "usbapp.stop(${1:id})", "description": "usbapp.stop(id) - \u5173\u95edUSB\u8bbe\u5907\n\u4f20\u5165\u503c\uff1a\nint \u8bbe\u5907id,\u9ed8\u8ba4\u4e3a0\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- \u5173\u95edUSB\nusbapp.stop(0)\n", "prefix": "usbapp.stop"}, "usbapp.vhid_upload": {"body": "usbapp.vhid_upload(${1:id},${2:data})", "description": "usbapp.vhid_upload(id, data) - USB HID\u8bbe\u5907\u4e0a\u4f20\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nint \u8bbe\u5907id,\u9ed8\u8ba4\u4e3a0\nstring \u6570\u636e. \u6ce8\u610f, HID\u7684\u53ef\u7528\u5b57\u7b26\u662f\u6709\u9650\u5236\u7684, \u57fa\u672c\u4e0a\u53ea\u6709\u53ef\u89c1\u5b57\u7b26\u662f\u652f\u6301\u7684, \u4e0d\u652f\u6301\u7684\u5b57\u7b26\u4f1a\u66ff\u6362\u4e3a\u7a7a\u683c.\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- HID\u4e0a\u4f20\u6570\u636e\nusbapp.vhid_upload(0, \"1234\") -- usb hid\u4f1a\u6a21\u62df\u6572\u51fa1234\n", "prefix": "usbapp.vhid_upload"}, "usbapp.hid_tx": {"body": "usbapp.hid_tx(${1:id},${2:data},${3:start},${4:len})", "description": "usbapp.hid_tx(id, data, start, len) - USB HID\u8bbe\u5907\u4e0a\u4f20\u7528\u6237\u81ea\u5b9a\u4e49\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nint \u8bbe\u5907id,\u9ed8\u8ba4\u4e3a0\nstring or zbuff \u6ce8\u610f\u6570\u636e\u91cf\u4e0d\u8db3\u65f6\u4f1a\u81ea\u52a8\u586b\u51450\nint \u53ef\u9009\uff0cdata\u4e3azbuff\u624d\u6709\u6548\uff0c\u8981\u53d1\u9001\u7684\u6570\u636e\u8d77\u59cb\u4f4d\u7f6e\uff0c\u9ed8\u8ba4\u4e3a0\nint \u53ef\u9009\uff0cdata\u4e3azbuff\u624d\u6709\u6548\uff0c\u8981\u53d1\u9001\u7684\u6570\u636e\u957f\u5ea6\uff0c\u9ed8\u8ba4\u4e3azbuff\u5185\u6709\u6548\u6570\u636e\uff0c\u6700\u5927\u503c\u4e0d\u8d85\u8fc7zbuff\u7684\u6700\u5927\u7a7a\u95f4\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- HID\u4e0a\u4f20\u6570\u636e\nusbapp.hid_tx(0, \"1234\") -- usb hid\u4e0a\u4f200x31 0x32 0x33 0x34 + N\u4e2a0\n", "prefix": "usbapp.hid_tx"}, "usbapp.hid_rx": {"body": "usbapp.hid_rx(${1:id},${2:buff})", "description": "usbapp.hid_rx(id, buff) - buff\u5f62\u5f0f\u8bfb\u63a5\u6536\u5230\u7684\u6570\u636e\uff0c\u4e00\u6b21\u8bfb\u51fa\u5168\u90e8\u6570\u636e\u5b58\u5165buff\u4e2d\uff0c\u5982\u679cbuff\u7a7a\u95f4\u4e0d\u591f\u4f1a\u81ea\u52a8\u6269\u5c55\uff0c\u76ee\u524d\u53ea\u6709air105\u652f\u6301\u8fd9\u4e2a\u64cd\u4f5c\n\u4f20\u5165\u503c\uff1a\nint \u8bbe\u5907id,\u9ed8\u8ba4\u4e3a0\nzbuff zbuff\u5bf9\u8c61\n\u8fd4\u56de\u503c\uff1a\nint \u8fd4\u56de\u8bfb\u5230\u7684\u957f\u5ea6\uff0c\u5e76\u628azbuff\u6307\u9488\u540e\u79fb\n\u4f8b\u5b50\uff1a\nusbapp.hid_rx(0, buff)\n", "prefix": "usbapp.hid_rx"}, "usbapp.vhid_cancel_upload": {"body": "usbapp.vhid_cancel_upload(${1:id})", "description": "usbapp.vhid_cancel_upload(id) - USB HID\u8bbe\u5907\u53d6\u6d88\u4e0a\u4f20\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nint \u8bbe\u5907id,\u9ed8\u8ba4\u4e3a0\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n-- \u53d6\u6d88\u4e0a\u4f20\u6570\u636e,\u901a\u5e38\u4e0d\u9700\u8981\nusbapp.vhid_cancel_upload(0)\n", "prefix": "usbapp.vhid_cancel_upload"}, "usbapp.udisk_attach_sdhc": {"body": "usbapp.udisk_attach_sdhc(${1:id})", "description": "usbapp.udisk_attach_sdhc(id) - USB U\u76d8\u8bbe\u5907\u6302\u8f7dSDHC\uff0cTF\u5361\n\u4f20\u5165\u503c\uff1a\nint \u8bbe\u5907id,\u9ed8\u8ba4\u4e3a0\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\nusbapp.udisk_attach_sdhc(0)\n", "prefix": "usbapp.udisk_attach_sdhc"}, "usbapp.udisk_detach_sdhc": {"body": "usbapp.udisk_detach_sdhc(${1:id})", "description": "usbapp.udisk_detach_sdhc(id) - USB U\u76d8\u8bbe\u5907\u53bb\u9664\u6302\u8f7dSDHC\uff0cTF\u5361\n\u4f20\u5165\u503c\uff1a\nint \u8bbe\u5907id,\u9ed8\u8ba4\u4e3a0\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\nusbapp.udisk_detach_sdhc(0)\n", "prefix": "usbapp.udisk_detach_sdhc"}, "w5500.init": {"body": "w5500.init(${1:spiid},${2:speed},${3:cs_pin},${4:irq_pin},${5:rst_pin},${6:link_pin})", "description": "w5500.init(spiid, speed, cs_pin, irq_pin, rst_pin, link_pin) - \u521d\u59cb\u5316w5500\n\u4f20\u5165\u503c\uff1a\nint spi\u901a\u9053\u53f7, \u4f8b\u5982 0, 1, 5, \u6309\u8bbe\u5907\u5b9e\u9645\u60c5\u51b5\u9009\nint spi\u901f\u5ea6, \u53ef\u4ee5\u8bbe\u7f6e\u5230\u5bf9\u5e94SPI\u7684\u6700\u9ad8\u901f\u5ea6\nint cs pin, \u7247\u9009\u811a, \u5bf9\u5e94W5500\u7684SCS\nint irq pin, \u4e2d\u65ad\u811a, \u5bf9\u5e94W5500\u7684INT\nint reset pin, \u590d\u4f4d\u811a, \u5bf9\u5e94W5500\u7684RST\nint link \u72b6\u6001 pin\uff0c\u53ef\u4ee5\u7559\u7a7a\u4e0d\u4f7f\u7528\uff0c\u9ed8\u8ba4\u4e0d\u4f7f\u7528\n\u4f8b\u5b50\uff1a\nw5500.init(spi.SPI_0, 24000000, pin.PB13, pin.PC08, pin.PC09)\n", "prefix": "w5500.init"}, "w5500.config": {"body": "w5500.config(${1:ip},${2:submask},${3:gateway},${4:mac},${5:RTR},${6:RCR},${7:speed})", "description": "w5500.config(ip, submask, gateway, mac, RTR, RCR, speed) - w5500\u914d\u7f6e\u7f51\u7edc\u4fe1\u606f\n\u4f20\u5165\u503c\uff1a\nstring \u9759\u6001ip\u5730\u5740\uff0c\u5982\u679c\u9700\u8981\u7528DHCP\u83b7\u53d6\uff0c\u8bf7\u5199nil\nstring \u5b50\u7f51\u63a9\u7801\uff0c\u5982\u679c\u4f7f\u7528\u52a8\u6001ip\uff0c\u5219\u5ffd\u7565\nstring \u7f51\u5173\uff0c\u5982\u679c\u4f7f\u7528\u52a8\u6001ip\uff0c\u5219\u5ffd\u7565\nstring MAC\uff0c\u5199nil\u5219\u901a\u8fc7MCU\u552f\u4e00\u7801\u81ea\u52a8\u751f\u6210\uff0c\u5982\u679c\u8981\u5199\uff0c\u957f\u5ea6\u5fc5\u987b\u662f6byte\nint \u91cd\u8bd5\u95f4\u9694\u65f6\u95f4\uff0c\u9ed8\u8ba42000\uff0c\u5355\u4f4d100us\uff0c\u4e0d\u61c2\u7684\u4e0d\u8981\u6539\nint \u6700\u5927\u91cd\u8bd5\u6b21\u6570\uff0c\u9ed8\u8ba48\uff0c\u4e0d\u61c2\u7684\u4e0d\u8981\u6539\nint \u901f\u5ea6\u7c7b\u578b\uff0c\u76ee\u524d\u53ea\u67090\u786c\u4ef6\u914d\u7f6e\uff0c1\u81ea\u9002\u5e94\uff0c\u9ed8\u8ba4\u4e3a0\n\u4f8b\u5b50\uff1a\nw5500.config(\"192.168.1.2\", \"255.255.255.0\", \"192.168.1.1\", string.fromHex(\"102a3b4c5d6e\"))\n", "prefix": "w5500.config"}, "w5500.bind": {"body": "w5500.bind(${1:id})", "description": "w5500.bind(id) - \u5c06w5500\u6ce8\u518c\u8fdb\u901a\u7528\u7f51\u7edc\u63a5\u53e3\n\u4f20\u5165\u503c\uff1a\nint \u901a\u7528\u7f51\u7edc\u901a\u9053\u53f7\n\u4f8b\u5b50\uff1a\n-- \u82e5\u4f7f\u7528\u7684\u7248\u672c\u4e0d\u5e26socket\u5e93, \u6539\u6210 network.ETH0\nw5500.bind(socket.ETH0)\n", "prefix": "w5500.bind"}, "w5500.getMac": {"body": "w5500.getMac()", "description": "w5500.getMac() - \u83b7\u53d6w5500\u5f53\u524d\u7684MAC\uff0c\u5fc5\u987b\u5728init\u4e4b\u540e\u7528\uff0c\u5982\u679cconfig\u4e2d\u8bbe\u7f6e\u4e86\u81ea\u5df1\u7684MAC\uff0c\u9700\u8981\u5ef6\u8fdf\u4e00\u70b9\u65f6\u95f4\u518d\u8bfb\n\u8fd4\u56de\u503c\uff1a\nstring \u5f53\u524d\u7684MAC\n\u4f8b\u5b50\uff1a\nlocal mac = w5500.getMac()\nlog.info(\"w5500 mac\", mac:toHex())\n", "prefix": "w5500.getMac"}, "wdt.init": {"body": "wdt.init(${1:timeout})", "description": "wdt.init(timeout) - \u521d\u59cb\u5316watchdog\u5e76\u9a6c\u4e0a\u542f\u7528.\u5927\u90e8\u5206\u8bbe\u5907\u7684watchdog\u4e00\u65e6\u542f\u7528\u5c31\u65e0\u6cd5\u5173\u95ed.\n\u4f20\u5165\u503c\uff1a\nint \u8d85\u65f6\u65f6\u957f,\u5355\u4f4d\u4e3a\u6beb\u79d2\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse(\u4f8b\u5982\u5e95\u5c42\u4e0d\u652f\u6301)\n\u4f8b\u5b50\uff1a\nwdt.init(9000)\nsys.timerLoopStart(wdt.feed, 3000)\n", "prefix": "wdt.init"}, "wdt.setTimeout": {"body": "wdt.setTimeout(${1:timeout})", "description": "wdt.setTimeout(timeout) - \u90e8\u5206\u8bbe\u5907\u652f\u6301\u91cd\u65b0\u8bbe\u7f6ewatchdog\u8d85\u65f6\u65f6\u957f\n\u4f20\u5165\u503c\uff1a\nint \u8d85\u65f6\u65f6\u957f,\u5355\u4f4d\u4e3a\u6beb\u79d2\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse(\u4f8b\u5982\u5e95\u5c42\u4e0d\u652f\u6301)\n\u4f8b\u5b50\uff1a\nwdt.init(10000)\nsys.timerLoopStart(wdt.feed, 3000)\nsys.wait(5000)\nsys.setTimeout(5000)\n", "prefix": "wdt.setTimeout"}, "wdt.feed": {"body": "wdt.feed()", "description": "wdt.feed() - \u5582\u72d7,\u4f7f\u5f97\u8d85\u65f6\u8ba1\u65f6\u590d\u4f4d,\u91cd\u65b0\u8ba1\u65f6\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse(\u4f8b\u5982\u5e95\u5c42\u4e0d\u652f\u6301)\n\u4f8b\u5b50\uff1a\nwdt.init(10000)\n-- \u5b9a\u65f6\u5582\u72d7,\u6216\u8005\u6839\u636e\u4e1a\u52a1\u6309\u9700\u5582\u72d7\nsys.timerLoopStart(wdt.feed, 3000)\n", "prefix": "wdt.feed"}, "wdt.close": {"body": "wdt.close()", "description": "wdt.close() - \u5173\u95edwatchdog,\u901a\u5e38\u4e0d\u88ab\u652f\u6301\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse(\u4f8b\u5982\u5e95\u5c42\u4e0d\u652f\u6301)\n\u4f8b\u5b50\uff1a\nwdt.init(10000)\nsys.wait(9000)\nwdt.close()\n", "prefix": "wdt.close"}, "wsc:debug": {"body": "wsc:debug(${1:onoff})", "description": "wsc:debug(onoff) - \u914d\u7f6e\u662f\u5426\u6253\u5f00debug\u4fe1\u606f\n\u4f20\u5165\u503c\uff1a\nboolean \u662f\u5426\u6253\u5f00debug\u5f00\u5173\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n", "prefix": "wsc:debug"}, "websocket.create": {"body": "websocket.create(${1:adapter},${2:url})", "description": "websocket.create(adapter, url) - websocket\u5ba2\u6237\u7aef\u521b\u5efa\n\u4f20\u5165\u503c\uff1a\nint \u9002\u914d\u5668\u5e8f\u53f7, \u53ea\u80fd\u662fsocket.ETH0, socket.STA, socket.AP,\u5982\u679c\u4e0d\u586b,\u4f1a\u9009\u62e9\u5e73\u53f0\u81ea\u5e26\u7684\u65b9\u5f0f,\u7136\u540e\u662f\u6700\u540e\u4e00\u4e2a\u6ce8\u518c\u7684\u9002\u914d\u5668\nstring \u8fde\u63a5\u5b57\u7b26\u4e32,\u53c2\u8003usage\n\u8fd4\u56de\u503c\uff1a\nuserdata \u82e5\u6210\u529f\u4f1a\u8fd4\u56dewebsocket\u5ba2\u6237\u7aef\u5b9e\u4f8b,\u5426\u5219\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\n-- \u666e\u901aTCP\u94fe\u63a5\nwsc = websocket.create(nil,\"ws://air32.cn/abc\")\n-- \u52a0\u5bc6TCP\u94fe\u63a5\nwsc = websocket.create(nil,\"wss://air32.cn/abc\")\n", "prefix": "websocket.create"}, "wsc:on": {"body": "wsc:on(${1:cb})", "description": "wsc:on(cb) - \u6ce8\u518cwebsocket\u56de\u8c03\n\u4f20\u5165\u503c\uff1a\nfunction cb websocket\u56de\u8c03,\u53c2\u6570\u5305\u62ecwebsocket_client, event, data, payload\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\nwsc:on(function(websocket_client, event, data, payload)\n\t-- \u6253\u5370\u5404\u79cd\u4e8b\u4ef6\n\tlog.info(\"websocket\", \"event\", event, data, payload)\nend)\n--[[\nevent\u7684\u503c\u6709:\n\tconack \u8fde\u63a5\u670d\u52a1\u5668\u6210\u529f,\u5df2\u7ecf\u6536\u5230websocket\u534f\u8bae\u5934\u90e8\u4fe1\u606f,\u901a\u4fe1\u5df2\u5efa\u7acb\n\trecv \u6536\u5230\u670d\u52a1\u5668\u4e0b\u53d1\u7684\u4fe1\u606f, data, payload \u4e0d\u4e3anil\n\tsent send\u51fd\u6570\u53d1\u9001\u7684\u6d88\u606f,\u670d\u52a1\u5668\u5728TCP\u534f\u8bae\u5c42\u5df2\u786e\u8ba4\u6536\u5230\n\tdisconnect \u670d\u52a1\u5668\u8fde\u63a5\u5df2\u65ad\u5f00\n\n\u5176\u4e2d sent/disconnect \u4e8b\u4ef6\u5728 2023.04.01 \u65b0\u589e\n]]\n", "prefix": "wsc:on"}, "wsc:connect": {"body": "wsc:connect()", "description": "wsc:connect() - \u8fde\u63a5\u670d\u52a1\u5668\n\u8fd4\u56de\u503c\uff1a\nboolean \u53d1\u8d77\u6210\u529f\u8fd4\u56detrue, \u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- \u5f00\u59cb\u5efa\u7acb\u8fde\u63a5\nwsc:connect()\n-- \u672c\u51fd\u6570\u4ec5\u4ee3\u8868\u53d1\u8d77\u6210\u529f, \u540e\u7eed\u4ecd\u9700\u6839\u636eready\u51fd\u6570\u5224\u65adwebsocket\u662f\u5426\u8fde\u63a5\u6b63\u5e38\n", "prefix": "wsc:connect"}, "wsc:autoreconn": {"body": "wsc:autoreconn(${1:reconnect},${2:reconnect_time})", "description": "wsc:autoreconn(reconnect, reconnect_time) - \u81ea\u52a8\u91cd\u8fde\n\u4f20\u5165\u503c\uff1a\nbool \u662f\u5426\u81ea\u52a8\u91cd\u8fde\nint \u81ea\u52a8\u91cd\u8fde\u5468\u671f \u5355\u4f4dms \u9ed8\u8ba43000ms\n\u4f8b\u5b50\uff1a\nwsc:autoreconn(true)\n", "prefix": "wsc:autoreconn"}, "wsc:send": {"body": "wsc:send(${1:data},${2:fin},${3:opt})", "description": "wsc:send(data, fin, opt) - \u53d1\u5e03\u6d88\u606f\n\u4f20\u5165\u503c\uff1a\nstring \u5f85\u53d1\u9001\u7684\u6570\u636e,\u5fc5\u586b\nint \u662f\u5426\u4e3a\u6700\u540e\u4e00\u5e27,\u9ed8\u8ba41,\u5373\u9a6c\u4e0a\u8bbe\u7f6e\u4e3a\u6700\u540e\u4e00\u5e27, \u4e5f\u5c31\u662f\u5355\u5e27\u53d1\u9001\nint \u64cd\u4f5c\u7801, \u9ed8\u8ba4\u4e3a\u5b57\u7b26\u4e32\u5e270, \u53ef\u90091\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u4e3afalse\u6216\u8005nil\n\u4f8b\u5b50\uff1a\n-- \u7b80\u5355\u53d1\u9001\u6570\u636e\nwsc:send(\"123\")\n-- \u5206\u6bb5\u53d1\u9001\u6570\u636e, \u6700\u540e\u8981\u75281(\u5373FIN\u5e27\u7ed3\u675f)\nwsc:send(\"123\", 0)\nwsc:send(\"456\", 0)\nwsc:send(\"789\", 1)\n", "prefix": "wsc:send"}, "wsc:close": {"body": "wsc:close()", "description": "wsc:close() - websocket\u5ba2\u6237\u7aef\u5173\u95ed(\u5173\u95ed\u540e\u8d44\u6e90\u91ca\u653e\u65e0\u6cd5\u518d\u4f7f\u7528)\n\u4f8b\u5b50\uff1a\nwsc:close()\n", "prefix": "wsc:close"}, "wsc:ready": {"body": "wsc:ready()", "description": "wsc:ready() - websocket\u5ba2\u6237\u7aef\u662f\u5426\u5c31\u7eea\n\u8fd4\u56de\u503c\uff1a\nbool \u5ba2\u6237\u7aef\u662f\u5426\u5c31\u7eea\n\u4f8b\u5b50\uff1a\nlocal stat = wsc:ready()\n", "prefix": "wsc:ready"}, "wsc:headers": {"body": "wsc:headers(${1:headers})", "description": "wsc:headers(headers) - \u8bbe\u7f6e\u989d\u5916\u7684headers\n\u4f20\u5165\u503c\uff1a\ntable/string \u53ef\u4ee5\u662ftable,\u4e5f\u53ef\u4ee5\u662f\u5b57\u7b26\u4e32\n\u8fd4\u56de\u503c\uff1a\nbool \u5ba2\u6237\u7aef\u662f\u5426\u5c31\u7eea\n\u4f8b\u5b50\uff1a\n-- table\u5f62\u5f0f\nwsc:headers({\n\tAuth=\"Basic ABCDEFGG\"\n})\n-- \u5b57\u7b26\u4e32\u5f62\u5f0f\nwsc:headers(\"Auth: Basic ABCDERG\\r\\n\")\n", "prefix": "wsc:headers"}, "wlan.init": {"body": "wlan.init()", "description": "wlan.init() - \u521d\u59cb\u5316\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n", "prefix": "wlan.init"}, "wlan.setMode": {"body": "wlan.setMode(${1:mode})", "description": "wlan.setMode(mode) - \u8bbe\u7f6ewifi\u6a21\u5f0f\n\u4f20\u5165\u503c\uff1a\nint wifi\u6a21\u5f0f\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- \u8bbe\u7f6e\u4e3aAP\u6a21\u5f0f, \u5e7f\u64adssid, \u63a5\u6536wifi\u5ba2\u6237\u7aef\u7684\u94fe\u63a5\nwlan.setMode(wlan.AP)\n\n-- \u8bbe\u7f6e\u4e3aSTATION\u6a21\u5f0f, \u4e5f\u662f\u521d\u59cb\u5316\u540e\u7684\u9ed8\u8ba4\u6a21\u5f0f\nwlan.setMode(wlan.STATION)\n\n-- \u6df7\u5408\u6a21\u5f0f, \u505aAP\u53c8\u505aSTATION\nwlan.setMode(wlan.APSTA)\n", "prefix": "wlan.setMode"}, "wlan.ready": {"body": "wlan.ready()", "description": "wlan.ready() - \u4f5c\u4e3aSTATION\u65f6,\u662f\u5426\u5df2\u7ecf\u8fde\u63a5\u4e0aAP,\u4e14\u83b7\u53d6IP\u6210\u529f\n\u8fd4\u56de\u503c\uff1a\nbool \u5df2\u7ecf\u8fde\u63a5\u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n", "prefix": "wlan.ready"}, "wlan.connect": {"body": "wlan.connect(${1:ssid},${2:password},${3:auto_reconnect})", "description": "wlan.connect(ssid, password, auto_reconnect) - \u4f5c\u4e3aSTATION\u65f6,\u8fde\u63a5\u5230\u6307\u5b9aAP\n\u4f20\u5165\u503c\uff1a\nstring AP\u7684ssid\nstring AP\u7684password,\u53ef\u9009\nint 0\u5173\u95ed\u81ea\u52a8\u91cd\u8fde,1\u5f00\u542f\u81ea\u52a8\u91cd\u8fde.\u5f53\u524d\u5f3a\u5236\u5f00\u542f\u81ea\u52a8\u91cd\u8fde\n\u8fd4\u56de\u503c\uff1a\nbool \u53d1\u8d77\u8fde\u63a5\u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse.\u6ce8\u610f,\u4e0d\u4ee3\u8868\u8fde\u63a5AP\u6210\u529f!!\n\u4f8b\u5b50\uff1a\n\n-- \u666e\u901a\u6a21\u5f0f,\u5e26\u5bc6\u7801\nwlan.connect(\"myap\", \"12345678\")\n-- \u666e\u901a\u6a21\u5f0f,\u4e0d\u5e26\u5bc6\u7801\nwlan.connect(\"myap\")\n-- \u7279\u6b8a\u6a21\u5f0f, \u91cd\u7528\u4e4b\u524d\u7684ssid\u548c\u5bc6\u7801,\u672c\u6b21\u76f4\u63a5\u8fde\u63a5\n-- \u6ce8\u610f, \u524d\u63d0\u662f\u672c\u6b21\u4e0a\u7535\u540e\u5df2\u7ecf\u4f20\u8fc7ssid\u548c\u6216password,\u5426\u5219\u5fc5\u5931\u8d25\nwlan.connect()\n", "prefix": "wlan.connect"}, "wlan.disconnect": {"body": "wlan.disconnect()", "description": "wlan.disconnect() - \u4f5c\u4e3aSTATION\u65f6,\u65ad\u5f00AP\n", "prefix": "wlan.disconnect"}, "wlan.scan": {"body": "wlan.scan()", "description": "wlan.scan() - \u626b\u63cfwifi\u9891\u6bb5\n\u4f8b\u5b50\uff1a\n-- \u6ce8\u610f, wlan.scan()\u662f\u5f02\u6b65API,\u542f\u52a8\u626b\u63cf\u540e\u4f1a\u9a6c\u4e0a\u8fd4\u56de\n\n-- wifi\u626b\u63cf\u6210\u529f\u540e, \u4f1a\u6709WLAN_SCAN_DONE\u6d88\u606f, \u8bfb\u53d6\u5373\u53ef\nsys.subscribe(\"WLAN_SCAN_DONE\", function ()\n local results = wlan.scanResult()\n log.info(\"scan\", \"results\", #results)\n for k,v in pairs(results) do\n log.info(\"scan\", v[\"ssid\"], v[\"rssi\"], (v[\"bssid\"]:toHex()))\n end\nend)\n\n-- \u4e0b\u9762\u6f14\u793a\u7684\u662f\u521d\u59cb\u5316wifi\u540e\u5b9a\u65f6\u626b\u63cf,\u8bf7\u6309\u5b9e\u9645\u4e1a\u52a1\u9700\u6c42\u4fee\u6539\nsys.taskInit(function()\n sys.wait(1000)\n wlan.init()\n while 1 do\n wlan.scan()\n sys.wait(15000)\n end\nend)\n", "prefix": "wlan.scan"}, "wlan.scanResult": {"body": "wlan.scanResult()", "description": "wlan.scanResult() - \u83b7\u53d6wifi\u626b\u63cf\u7ed3\u679c\n\u8fd4\u56de\u503c\uff1a\ntable \u626b\u63cf\u7ed3\u679c\n\u4f8b\u5b50\uff1a\n-- \u7528\u6cd5\u8bf7\u67e5\u9605 wlan.scan() \u51fd\u6570\n", "prefix": "wlan.scanResult"}, "wlan.smartconfig": {"body": "wlan.smartconfig(${1:mode})", "description": "wlan.smartconfig(mode) - \u914d\u7f51\n\u4f20\u5165\u503c\uff1a\nint \u914d\u7f51\u6a21\u5f0f, \u9ed8\u8ba4\u4e3aesptouch, \u82e5\u4f200\u5219\u4e3b\u52a8\u505c\u6b62\u914d\u7f51\n\u8fd4\u56de\u503c\uff1a\nbool \u542f\u52a8\u6210\u529f\u6216\u505c\u6b62\u6210\u529f, \u8fd4\u56detrue, \u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\nwlan.smartconfig()\nlocal ret, ssid, passwd = sys.waitUntil(\"SC_RESULT\", 180*1000) -- \u6700\u591a\u7b493\u5206\u949f\nlog.info(\"sc\", ret, ssid, passwd)\n-- \u8be6\u7ec6\u7528\u6cd5\u8bf7\u67e5\u770bdemo\n", "prefix": "wlan.smartconfig"}, "wlan.getMac": {"body": "wlan.getMac(${1:tp},${2:hexstr})", "description": "wlan.getMac(tp, hexstr) - \u83b7\u53d6mac\n\u4f20\u5165\u503c\uff1a\nint \u8bbe\u7f6e\u4f55\u79cdmac\u5730\u5740,\u5bf9ESP32\u7cfb\u5217\u6765\u8bf4,\u53ea\u80fd\u8bbe\u7f6eSTA\u7684\u5730\u5740,\u53730,\u9ed8\u8ba4\u503c\u4e5f\u662f0\nbool \u662f\u5426\u8f6cHEX\u5b57\u7b26, \u9ed8\u8ba4\u662ftrue,\u5373\u8f93\u51fahex\u5b57\u7b26\u4e32\n\u8fd4\u56de\u503c\uff1a\nstring MAC\u5730\u5740,\u5341\u516d\u8fdb\u5236\u5b57\u7b26\u4e32\u5f62\u5f0f \"AABBCCDDEEFF\" \u6216\u539f\u59cb\u6570\u636e\n", "prefix": "wlan.getMac"}, "wlan.setMac": {"body": "wlan.setMac(${1:tp},${2:mac})", "description": "wlan.setMac(tp, mac) - \u8bbe\u7f6emac\n\u4f20\u5165\u503c\uff1a\nint \u8bbe\u7f6e\u4f55\u79cdmac\u5730\u5740,\u5bf9ESP32\u7cfb\u5217\u6765\u8bf4,\u53ea\u80fd\u8bbe\u7f6eSTA\u7684\u5730\u5740,\u53730\nstring \u5f85\u8bbe\u7f6e\u7684MAC\u5730\u5740,\u957f\u5ea66\u5b57\u8282\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- \u8bbe\u7f6eMAC\u5730\u5740, 2023-03-01\u4e4b\u540e\u7f16\u8bd1\u7684\u56fa\u4ef6\u53ef\u7528\nlocal mac = string.fromHex(\"F01122334455\")\nwlan.setMac(0, mac)\n\n-- \u90e8\u5206\u6a21\u5757\u652f\u6301\u6062\u590d\u9ed8\u8ba4MAC, \u4f8b\u5982esp32\u7cfb\u5217\n-- \u57282023-11-01 \u4e4b\u540e\u7f16\u8bd1\u7684\u56fa\u4ef6\u53ef\u7528\nlocal mac = string.fromHex(\"000000000000\")\nwlan.setMac(0, mac)\n", "prefix": "wlan.setMac"}, "wlan.getIP": {"body": "wlan.getIP()", "description": "wlan.getIP() - \u83b7\u53d6ip,\u4ec5STATION\u6216APSTA\u6a21\u5f0f\u4e0b\u6709\u610f\u4e49\n\u8fd4\u56de\u503c\uff1a\nstring ip\u5730\u5740,\u5f53\u524d\u4ec5\u8fd4\u56deipv4\u5730\u5740,\u4f8b\u5982 \"192.168.1.25\"\n", "prefix": "wlan.getIP"}, "wlan.createAP": {"body": "wlan.createAP(${1:ssid},${2:passwd},${3:gateway},${4:netmask},${5:channel})", "description": "wlan.createAP(ssid, passwd, gateway, netmask, channel) - \u542f\u52a8AP\n\u4f20\u5165\u503c\uff1a\nstring AP\u7684SSID,\u5fc5\u586b\nstring AP\u7684\u5bc6\u7801,\u53ef\u9009\nstring AP\u7684\u7f51\u5173\u5730\u5740, \u9ed8\u8ba4192.168.4.1\nstring AP\u7684\u7f51\u5173\u63a9\u7801, \u9ed8\u8ba4255.255.255.0\nint AP\u5efa\u7acb\u7684\u901a\u9053, \u9ed8\u8ba46\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u521b\u5efa\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- \u6ce8\u610f, \u8c03\u7528\u672cAP\u65f6,\u82e5wifi\u6a21\u5f0f\u4e3aSTATION,\u4f1a\u81ea\u52a8\u5207\u6362\u6210 APSTA\nwlan.createAP(\"uiot\", \"12345678\")\n-- \u8bbe\u7f6e\u7f51\u5173IP,\u63a9\u7801, \u901a\u9053, 2023.7.13 \u65b0\u589e, BSP\u672a\u5fc5\u652f\u6301\n-- wlan.createAP(\"uiot\", \"12345678\", \"192.168.4.1\", \"255.255.255.0\", 6)\n", "prefix": "wlan.createAP"}, "wlan.stopAP": {"body": "wlan.stopAP()", "description": "wlan.stopAP() - \u5173\u95edAP\u529f\u80fd\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u521b\u5efa\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\nwlan.stopAP()\n", "prefix": "wlan.stopAP"}, "wlan.getInfo": {"body": "wlan.getInfo()", "description": "wlan.getInfo() - \u83b7\u53d6\u4fe1\u606f,\u5982AP\u7684bssid,\u4fe1\u53f7\u5f3a\u5ea6\n\u8fd4\u56de\u503c\uff1a\ntable \u8be6\u60c5,\u952e\u503c\u5bf9\u5f62\u5f0f\n\u4f8b\u5b50\uff1a\n\nlog.info(\"wlan\", \"info\", json.encode(wlan.getInfo()))\n--[[\n\u5178\u578b\u8f93\u51fa\n{\n \"bssid\" : \"xxxxxx\",\n \"rssi\" : -89,\n \"gw\" : \"192.168.1.1\"\n}\n]]\n", "prefix": "wlan.getInfo"}, "wlan.powerSave": {"body": "wlan.powerSave(${1:mode})", "description": "wlan.powerSave(mode) - \u8bfb\u53d6\u6216\u8bbe\u7f6e\u7701\u7535\u6a21\u5f0f\n\u4f20\u5165\u503c\uff1a\nint \u7701\u7535\u6a21\u5f0f,\u53ef\u9009, \u4f20\u5165\u5c31\u662f\u8bbe\u7f6e, \u4f8b\u5982wlan.PS_NONE\n\u8fd4\u56de\u503c\uff1a\nint \u5f53\u524d\u7701\u7535\u6a21\u5f0f/\u8bbe\u7f6e\u540e\u7684\u7701\u7535\u6a21\u5f0f\n\u4f8b\u5b50\uff1a\n-- \u8bf7\u67e5\u9605\u5e38\u91cf\u8868 PS_NONE/PS_MIN_MODEM/PS_MAX_MODEM\nlog.info(\"wlan\", \"PS\", wlan.powerSave(wlan.PS_NONE))\n-- \u672cAPI\u4e8e 2023.03.31 \u65b0\u589e\n", "prefix": "wlan.powerSave"}, "wlan.hostname": {"body": "wlan.hostname(${1:new_name})", "description": "wlan.hostname(new_name) - \u8bfb\u53d6\u6216\u8bbe\u7f6eHostname\n\u4f20\u5165\u503c\uff1a\nstring \u65b0\u7684hostname,\u53ef\u9009, \u4f20\u5165\u5c31\u662f\u8bbe\u7f6e\n\u8fd4\u56de\u503c\uff1a\nstring \u5f53\u524d\u7684hostname\u6216\u8005\u8bbe\u7f6e\u540e\u7684hostname\n\u4f8b\u5b50\uff1a\n-- \u672cAPI\u4e8e 2023.07.23 \u65b0\u589e\n-- \u672c\u51fd\u6570\u5e94\u8be5\u5728wlan.init\u4e4b\u524d\u8bbe\u7f6e\u597d, \u6700\u665a\u5e94\u65e9\u4e8ewlan.connect\n-- hostname\u7684\u9ed8\u8ba4\u503c\u662f \"LUATOS_\" + \u8bbe\u5907\u7684MAC\u503c\n-- \u4f8b\u5982: LUATOS_0022EECC2399\n\nwlan.hostname(\"\u6211\u7684wifi\u7269\u8054\u7f51\u8bbe\u5907\")\n", "prefix": "wlan.hostname"}, "wlan.staIp": {"body": "wlan.staIp(${1:dhcp_enable},${2:ip},${3:netmask},${4:gateway})", "description": "wlan.staIp(dhcp_enable, ip, netmask, gateway) - \u8bbe\u7f6eStation\u6a21\u5f0f\u4e0b\u7684IP\u83b7\u53d6\u6a21\u5f0f\n\u4f20\u5165\u503c\uff1a\nbool \u662f\u5426\u542f\u7528DHCP,\u9ed8\u8ba4\u662ftrue\nstring \u672c\u673aIP\u5730\u5740,\u4f8b\u5982192.168.2.200, \u7981\u7528DHCP\u65f6\u5fc5\u586b\nstring \u672c\u673aIP\u63a9\u7801,\u4f8b\u5982255.255.255.0, \u7981\u7528DHCP\u65f6\u5fc5\u586b\nstring \u672c\u673aIP\u7f51\u5173,\u4f8b\u5982192.168.2.1, \u7981\u7528DHCP\u65f6\u5fc5\u586b\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- \u672cAPI\u4e8e 2023.10.06 \u65b0\u589e\n-- \u672c\u51fd\u6570\u9700\u8981\u5728wlan.init\u4e4b\u540e\u624d\u5141\u8bb8\u8c03\u7528\n\n-- \u542f\u7528DHCP, \u9ed8\u8ba4\u4e5f\u662f\u542f\u7528DHCP,\u8fd9\u91cc\u662f\u6f14\u793aAPI\u4f7f\u7528\nwlan.staIp(true)\n-- \u7981\u7528DHCP,\u81ea\u884c\u8bbe\u7f6eIP/\u63a9\u7801/\u7f51\u5173\nwlan.staIp(false, \"192.168.2.200\", \"255.255.255.0\", \"192.168.2.1\")\n", "prefix": "wlan.staIp"}, "ymodem.create": {"body": "ymodem.create(${1:dir_path},${2:file_path})", "description": "ymodem.create(dir_path,file_path) - \u521b\u5efa\u4e00\u4e2aymodem\u5904\u7406\u53e5\u67c4\n\u4f20\u5165\u503c\uff1a\nstring \u4fdd\u5b58\u7684\u6587\u4ef6\u5939\u8def\u5f84\uff0c\u9ed8\u8ba4\u662f\"/\"\nstring \u5f3a\u5236\u4fdd\u5b58\u7684\u7edd\u5bf9\u6587\u4ef6\u8def\u5f84\uff0c\u9ed8\u8ba4\u662f\u7a7a\uff0c\u5982\u679c\u8bbe\u7f6e\u4e86\uff0c\u5c31\u4f1a\u76f4\u63a5\u4fdd\u5b58\u5728\u8be5\u6587\u4ef6\u4e2d\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529ftrue, \u5931\u8d25false\n\u4f8b\u5b50\uff1a\nlocal handler = ymodem.create(\"/\")\n", "prefix": "ymodem.create"}, "ymodem.receive": {"body": "ymodem.receive(${1:handler},${2:data})", "description": "ymodem.receive(handler, data) - ymodem\u63a5\u6536\u6587\u4ef6\u6570\u636e\u5e76\u4fdd\u5b58\n\u4f20\u5165\u503c\uff1a\nuserdata ymodem\u5904\u7406\u53e5\u67c4\nzbuff/string \u8f93\u5165\u7684\u6570\u636e\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529ftrue\uff0c\u5931\u8d25false\nint ack\u503c\uff0c\u9700\u8981\u901a\u8fc7\u4e32\u53e3/\u7f51\u7edc\u7b49\u9014\u5f84\u8fd4\u56de\u53d1\u9001\u65b9\nint flag\u503c\uff0c\u9700\u8981\u901a\u8fc7\u4e32\u53e3/\u7f51\u7edc\u7b49\u9014\u5f84\u8fd4\u56de\u53d1\u9001\u65b9\uff0c\u5982\u679c\u6709ack\u503c\u5219\u4e0d\u53d1\u9001flag\nboolean, \u4e00\u4e2a\u6587\u4ef6\u63a5\u6536\u5b8c\u6210true\uff0c\u4f20\u8f93\u4e2dfalse\nboolean, \u6574\u4e2a\u4f20\u8f93\u5b8c\u6210true \u5426\u5219false\n\u4f8b\u5b50\uff1a\n-- \u6ce8\u610f, \u6570\u636e\u6765\u6e90\u4e0d\u9650, \u901a\u5e38\u662fuart.read\u5f97\u5230data\nno_error,ack,flag,file_done,all_done = ymodem.receive(handler, data)\n", "prefix": "ymodem.receive"}, "ymodem.reset": {"body": "ymodem.reset(${1:handler})", "description": "ymodem.reset(handler) - \u91cd\u7f6eymodem\u5904\u7406\u8fc7\u7a0b\n\u4f20\u5165\u503c\uff1a\nuserdata ymodem\u5904\u7406\u53e5\u67c4\n\u4f8b\u5b50\uff1a\n-- \u6062\u590d\u5230\u521d\u59cb\u72b6\u6001\uff0c\u4e00\u822c\u7528\u4e8e\u63a5\u6536\u51fa\u9519\u540e\u91cd\u7f6e\uff0c\u4ece\u800c\u8fdb\u884c\u4e0b\u4e00\u6b21\u63a5\u6536\nymodem.reset(handler)\n", "prefix": "ymodem.reset"}, "ymodem.release": {"body": "ymodem.release(${1:handler})", "description": "ymodem.release(handler) - \u91ca\u653eymodem\u5904\u7406\u53e5\u67c4\n\u4f20\u5165\u503c\uff1a\nuserdata handler\n\u4f8b\u5b50\uff1a\nymodem.release(handler)\n", "prefix": "ymodem.release"}, "zbuff.create": {"body": "zbuff.create(${1:{width},${2:height},${3:bit}},${4:data})", "description": "zbuff.create({width,height,bit},data) - \u521b\u5efaframebuff\u7528\u7684zbuff\n\u4f20\u5165\u503c\uff1a\ntable \u5bbd\u5ea6\u3001\u9ad8\u5ea6\u3001\u8272\u4f4d\u6df1\u5ea6\nint \u53ef\u9009\u53c2\u6570\uff0c\u586b\u5145\u6570\u636e\n\u8fd4\u56de\u503c\uff1a\nobject zbuff\u5bf9\u8c61\uff0c\u5982\u679c\u521b\u5efa\u5931\u8d25\u4f1a\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\n-- \u521b\u5efazbuff\nlocal buff = zbuff.create({128,160,16})--\u521b\u5efa\u4e00\u4e2a128*160\u7684framebuff\nlocal buff = zbuff.create({128,160,16},0xf800)--\u521b\u5efa\u4e00\u4e2a128*160\u7684framebuff\uff0c\u521d\u59cb\u72b6\u6001\u7ea2\u8272\n", "prefix": "zbuff.create"}, "buff:write": {"body": "buff:write(${1:para},${2:...})", "description": "buff:write(para,...) - zbuff\u5199\u6570\u636e\uff08\u4ece\u5f53\u524d\u6307\u9488\u4f4d\u7f6e\u5f00\u59cb\uff1b\u6267\u884c\u540e\u6307\u9488\u4f1a\u5411\u540e\u79fb\u52a8\uff09\n\u4f20\u5165\u503c\uff1a\nany \u5199\u5165buff\u7684\u6570\u636e\uff0cstring\u65f6\u4e3a\u4e00\u4e2a\u53c2\u6570\uff0cnumber\u65f6\u53ef\u4e3a\u591a\u4e2a\u53c2\u6570\n\u8fd4\u56de\u503c\uff1a\nnumber \u6570\u636e\u6210\u529f\u5199\u5165\u7684\u957f\u5ea6\n\u4f8b\u5b50\uff1a\n-- \u7c7bfile\u7684\u8bfb\u5199\u64cd\u4f5c\nlocal len = buff:write(\"123\") -- \u5199\u5165\u6570\u636e, \u6307\u9488\u76f8\u5e94\u5730\u5f80\u540e\u79fb\u52a8\uff0c\u8fd4\u56de\u5199\u5165\u7684\u6570\u636e\u957f\u5ea6\nlocal len = buff:write(0x1a,0x30,0x31,0x32,0x00,0x01) -- \u6309\u6570\u503c\u5199\u5165\u591a\u4e2a\u5b57\u8282\u6570\u636e\n", "prefix": "buff:write"}, "buff:read": {"body": "buff:read(${1:length})", "description": "buff:read(length) - zbuff\u8bfb\u6570\u636e\uff08\u4ece\u5f53\u524d\u6307\u9488\u4f4d\u7f6e\u5f00\u59cb\uff1b\u6267\u884c\u540e\u6307\u9488\u4f1a\u5411\u540e\u79fb\u52a8\uff09\n\u4f20\u5165\u503c\uff1a\nint \u8bfb\u53d6buff\u4e2d\u7684\u5b57\u8282\u6570\n\u8fd4\u56de\u503c\uff1a\nstring \u8bfb\u53d6\u7ed3\u679c\n\u4f8b\u5b50\uff1a\n-- \u7c7bfile\u7684\u8bfb\u5199\u64cd\u4f5c\nlocal str = buff:read(3)\n", "prefix": "buff:read"}, "buff:clear": {"body": "buff:clear(${1:num})", "description": "buff:clear(num) - zbuff\u6e05\u7a7a\u6570\u636e\uff08\u4e0e\u5f53\u524d\u6307\u9488\u4f4d\u7f6e\u65e0\u5173\uff1b\u6267\u884c\u540e\u6307\u9488\u4f4d\u7f6e\u4e0d\u53d8\uff09\n\u4f20\u5165\u503c\uff1a\nint \u53ef\u9009\uff0c\u9ed8\u8ba4\u4e3a0\u3002\u8981\u8bbe\u7f6e\u4e3a\u7684\u503c\uff0c\u4e0d\u4f1a\u6539\u53d8buff\u6307\u9488\u4f4d\u7f6e\n\u4f8b\u5b50\uff1a\n-- \u5168\u90e8\u521d\u59cb\u5316\u4e3a0\nbuff:clear(0)\n", "prefix": "buff:clear"}, "buff:seek": {"body": "buff:seek(${1:base},${2:offset})", "description": "buff:seek(base,offset) - zbuff\u8bbe\u7f6e\u5149\u6807\u4f4d\u7f6e\uff08\u53ef\u80fd\u4e0e\u5f53\u524d\u6307\u9488\u4f4d\u7f6e\u6709\u5173\uff1b\u6267\u884c\u540e\u6307\u9488\u4f1a\u88ab\u8bbe\u7f6e\u5230\u6307\u5b9a\u4f4d\u7f6e\uff09\n\u4f20\u5165\u503c\uff1a\nint \u504f\u79fb\u957f\u5ea6\nint where, \u57fa\u70b9\uff0c\u9ed8\u8ba4zbuff.SEEK_SET\u3002zbuff.SEEK_SET: \u57fa\u70b9\u4e3a 0 \uff08\u6587\u4ef6\u5f00\u5934\uff09\uff0czbuff.SEEK_CUR: \u57fa\u70b9\u4e3a\u5f53\u524d\u4f4d\u7f6e\uff0czbuff.SEEK_END: \u57fa\u70b9\u4e3a\u6587\u4ef6\u5c3e\n\u8fd4\u56de\u503c\uff1a\nint \u8bbe\u7f6e\u5149\u6807\u540e\u4ecebuff\u5f00\u5934\u8ba1\u7b97\u8d77\u7684\u5149\u6807\u7684\u4f4d\u7f6e\n\u4f8b\u5b50\uff1a\nbuff:seek(0) -- \u628a\u5149\u6807\u8bbe\u7f6e\u5230\u6307\u5b9a\u4f4d\u7f6e\nbuff:seek(5,zbuff.SEEK_CUR)\nbuff:seek(-3,zbuff.SEEK_END)\n", "prefix": "buff:seek"}, "buff:pack": {"body": "buff:pack(${1:format},${2:val1},${3:val2},${4:...})", "description": "buff:pack(format,val1, val2,...) - \u5c06\u4e00\u7cfb\u5217\u6570\u636e\u6309\u7167\u683c\u5f0f\u5b57\u7b26\u8f6c\u5316\uff0c\u5e76\u5199\u5165\uff08\u4ece\u5f53\u524d\u6307\u9488\u4f4d\u7f6e\u5f00\u59cb\uff1b\u6267\u884c\u540e\u6307\u9488\u4f1a\u5411\u540e\u79fb\u52a8\uff09\n\u4f20\u5165\u503c\uff1a\nstring \u540e\u9762\u6570\u636e\u7684\u683c\u5f0f\uff08\u7b26\u53f7\u542b\u4e49\u89c1\u4e0b\u9762\u7684\u4f8b\u5b50\uff09\nval \u4f20\u5165\u7684\u6570\u636e\uff0c\u53ef\u4ee5\u4e3a\u591a\u4e2a\u6570\u636e\n\u8fd4\u56de\u503c\uff1a\nint \u6210\u529f\u5199\u5165\u7684\u6570\u636e\u957f\u5ea6\n\u4f8b\u5b50\uff1a\nbuff:pack(\">IIHA\", 0x1234, 0x4567, 0x12,\"abcdefg\") -- \u6309\u683c\u5f0f\u5199\u5165\u51e0\u4e2a\u6570\u636e\n-- A string\n-- f float\n-- d double\n-- n Lua number\n-- c char\n-- b byte / unsignen char\n-- h short\n-- H unsigned short\n-- i int\n-- I unsigned int\n-- l long\n-- L unsigned long\n-- < \u5c0f\u7aef\n-- > \u5927\u7aef\n-- = \u9ed8\u8ba4\u5927\u5c0f\u7aef\n", "prefix": "buff:pack"}, "buff:unpack": {"body": "buff:unpack(${1:format})", "description": "buff:unpack(format) - \u5c06\u4e00\u7cfb\u5217\u6570\u636e\u6309\u7167\u683c\u5f0f\u5b57\u7b26\u8bfb\u53d6\u51fa\u6765\uff08\u4ece\u5f53\u524d\u6307\u9488\u4f4d\u7f6e\u5f00\u59cb\uff1b\u6267\u884c\u540e\u6307\u9488\u4f1a\u5411\u540e\u79fb\u52a8\uff09\n\u4f20\u5165\u503c\uff1a\nstring \u6570\u636e\u7684\u683c\u5f0f\uff08\u7b26\u53f7\u542b\u4e49\u89c1\u4e0a\u9762pack\u63a5\u53e3\u7684\u4f8b\u5b50\uff09\n\u8fd4\u56de\u503c\uff1a\nint \u6210\u529f\u8bfb\u53d6\u7684\u6570\u636e\u5b57\u8282\u957f\u5ea6\nany \u6309\u683c\u5f0f\u8bfb\u51fa\u6765\u7684\u6570\u636e\n\u4f8b\u5b50\uff1a\nlocal cnt,a,b,c,s = buff:unpack(\">IIHA10\") -- \u6309\u683c\u5f0f\u8bfb\u53d6\u51e0\u4e2a\u6570\u636e\n--\u5982\u679c\u5168\u90e8\u6210\u529f\u8bfb\u53d6\uff0ccnt\u5c31\u662f4+4+2+10=20\n", "prefix": "buff:unpack"}, "buff:read\u7c7b\u578b": {"body": "buff:read\u7c7b\u578b()", "description": "buff:read\u7c7b\u578b() - \u8bfb\u53d6\u4e00\u4e2a\u6307\u5b9a\u7c7b\u578b\u7684\u6570\u636e\uff08\u4ece\u5f53\u524d\u6307\u9488\u4f4d\u7f6e\u5f00\u59cb\uff1b\u6267\u884c\u540e\u6307\u9488\u4f1a\u5411\u540e\u79fb\u52a8\uff09\n\u4f20\u5165\u503c\uff1a\n\u6ce8\u91ca \u8bfb\u53d6\u7c7b\u578b\u53ef\u4e3a\uff1aI8\u3001U8\u3001I16\u3001U16\u3001I32\u3001U32\u3001I64\u3001U64\u3001F32\u3001F64\n\u8fd4\u56de\u503c\uff1a\nnumber \u8bfb\u53d6\u7684\u6570\u636e\uff0c\u5982\u679c\u8d8a\u754c\u5219\u4e3anil\n\u4f8b\u5b50\uff1a\nlocal data = buff:readI8()\nlocal data = buff:readU32()\n", "prefix": "buff:read\u7c7b\u578b"}, "buff:write\u7c7b\u578b": {"body": "buff:write\u7c7b\u578b()", "description": "buff:write\u7c7b\u578b() - \u5199\u5165\u4e00\u4e2a\u6307\u5b9a\u7c7b\u578b\u7684\u6570\u636e\uff08\u4ece\u5f53\u524d\u6307\u9488\u4f4d\u7f6e\u5f00\u59cb\uff1b\u6267\u884c\u540e\u6307\u9488\u4f1a\u5411\u540e\u79fb\u52a8\uff09\n\u4f20\u5165\u503c\uff1a\nnumber \u5f85\u5199\u5165\u7684\u6570\u636e\n\u6ce8\u91ca \u5199\u5165\u7c7b\u578b\u53ef\u4e3a\uff1aI8\u3001U8\u3001I16\u3001U16\u3001I32\u3001U32\u3001I64\u3001U64\u3001F32\u3001F64\n\u8fd4\u56de\u503c\uff1a\nnumber \u6210\u529f\u5199\u5165\u7684\u957f\u5ea6\n\u4f8b\u5b50\uff1a\nlocal len = buff:writeI8(10)\nlocal len = buff:writeU32(1024)\n", "prefix": "buff:write\u7c7b\u578b"}, "buff:toStr": {"body": "buff:toStr(${1:offset},${2:length})", "description": "buff:toStr(offset,length) - \u6309\u8d77\u59cb\u4f4d\u7f6e\u548c\u957f\u5ea6\u53d6\u51fa\u6570\u636e\uff08\u4e0e\u5f53\u524d\u6307\u9488\u4f4d\u7f6e\u65e0\u5173\uff1b\u6267\u884c\u540e\u6307\u9488\u4f4d\u7f6e\u4e0d\u53d8\uff09\n\u4f20\u5165\u503c\uff1a\nint \u6570\u636e\u7684\u8d77\u59cb\u4f4d\u7f6e\uff08\u8d77\u59cb\u4f4d\u7f6e\u4e3a0\uff09,\u9ed8\u8ba4\u503c\u4e5f\u662f0\nint \u6570\u636e\u7684\u957f\u5ea6,\u9ed8\u8ba4\u662f\u5168\u90e8\u6570\u636e\n\u8fd4\u56de\u503c\uff1a\nstring \u8bfb\u51fa\u6765\u7684\u6570\u636e\n\u4f8b\u5b50\uff1a\nlocal s = buff:toStr(0,5)--\u8bfb\u53d6\u5f00\u5934\u7684\u4e94\u4e2a\u5b57\u8282\u6570\u636e\nlocal s = buff:toStr() -- \u53d6\u51fa\u6574\u4e2azbuff\u7684\u6570\u636e\nlocal s = buff:toStr(0, buff:used()) -- \u53d6\u51fa\u5df2\u4f7f\u7528\u7684\u90e8\u5206, \u4e0ebuff:query()\u4e00\u6837\n", "prefix": "buff:toStr"}, "buff:len": {"body": "buff:len()", "description": "buff:len() - \u83b7\u53d6zbuff\u5bf9\u8c61\u7684\u957f\u5ea6\uff08\u4e0e\u5f53\u524d\u6307\u9488\u4f4d\u7f6e\u65e0\u5173\uff1b\u6267\u884c\u540e\u6307\u9488\u4f4d\u7f6e\u4e0d\u53d8\uff09\n\u8fd4\u56de\u503c\uff1a\nint zbuff\u5bf9\u8c61\u7684\u957f\u5ea6\n\u4f8b\u5b50\uff1a\nlen = buff:len()\nlen = #buff\n", "prefix": "buff:len"}, "buff:setFrameBuffer": {"body": "buff:setFrameBuffer(${1:width},${2:height},${3:bit},${4:color})", "description": "buff:setFrameBuffer(width,height,bit,color) - \u8bbe\u7f6ebuff\u5bf9\u8c61\u7684FrameBuffer\u5c5e\u6027\uff08\u4e0e\u5f53\u524d\u6307\u9488\u4f4d\u7f6e\u65e0\u5173\uff1b\u6267\u884c\u540e\u6307\u9488\u4f4d\u7f6e\u4e0d\u53d8\uff09\n\u4f20\u5165\u503c\uff1a\nint FrameBuffer\u7684\u5bbd\u5ea6\nint FrameBuffer\u7684\u9ad8\u5ea6\nint FrameBuffer\u7684\u8272\u4f4d\u6df1\u5ea6\nint FrameBuffer\u7684\u521d\u59cb\u989c\u8272\n\u8fd4\u56de\u503c\uff1a\nbool \u8bbe\u7f6e\u6210\u529f\u4f1a\u8fd4\u56detrue\n\u4f8b\u5b50\uff1a\nresult = buff:setFrameBuffer(320,240,16,0xffff)\n", "prefix": "buff:setFrameBuffer"}, "buff:pixel": {"body": "buff:pixel(${1:x},${2:y},${3:color})", "description": "buff:pixel(x,y,color) - \u8bbe\u7f6e\u6216\u83b7\u53d6FrameBuffer\u67d0\u4e2a\u50cf\u7d20\u70b9\u7684\u989c\u8272\uff08\u4e0e\u5f53\u524d\u6307\u9488\u4f4d\u7f6e\u65e0\u5173\uff1b\u6267\u884c\u540e\u6307\u9488\u4f4d\u7f6e\u4e0d\u53d8\uff09\n\u4f20\u5165\u503c\uff1a\nint \u4e0e\u6700\u5de6\u8fb9\u7684\u8ddd\u79bb\uff0c\u8303\u56f4\u662f0~\u5bbd\u5ea6-1\nint \u4e0e\u6700\u4e0a\u8fb9\u7684\u8ddd\u79bb\uff0c\u8303\u56f4\u662f0~\u9ad8\u5ea6-1\nint \u989c\u8272\uff0c\u5982\u679c\u7559\u7a7a\u5219\u8868\u793a\u83b7\u53d6\u8be5\u4f4d\u7f6e\u7684\u989c\u8272\n\u8fd4\u56de\u503c\uff1a\nany \u8bbe\u7f6e\u989c\u8272\u65f6\uff0c\u8bbe\u7f6e\u6210\u529f\u4f1a\u8fd4\u56detrue\uff1b\u8bfb\u53d6\u989c\u8272\u65f6\uff0c\u8fd4\u56de\u989c\u8272\u7684\u503c\uff0c\u8bfb\u53d6\u5931\u8d25\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\nrerult = buff:pixel(0,3,0)\ncolor = buff:pixel(0,3)\n", "prefix": "buff:pixel"}, "buff:drawLine": {"body": "buff:drawLine(${1:x1},${2:y1},${3:x2},${4:y2},${5:color})", "description": "buff:drawLine(x1,y1,x2,y2,color) - \u753b\u4e00\u6761\u7ebf\uff08\u4e0e\u5f53\u524d\u6307\u9488\u4f4d\u7f6e\u65e0\u5173\uff1b\u6267\u884c\u540e\u6307\u9488\u4f4d\u7f6e\u4e0d\u53d8\uff09\n\u4f20\u5165\u503c\uff1a\nint \u8d77\u59cb\u5750\u6807\u70b9\u4e0e\u6700\u5de6\u8fb9\u7684\u8ddd\u79bb\uff0c\u8303\u56f4\u662f0~\u5bbd\u5ea6-1\nint \u8d77\u59cb\u5750\u6807\u70b9\u4e0e\u6700\u4e0a\u8fb9\u7684\u8ddd\u79bb\uff0c\u8303\u56f4\u662f0~\u9ad8\u5ea6-1\nint \u7ed3\u675f\u5750\u6807\u70b9\u4e0e\u6700\u5de6\u8fb9\u7684\u8ddd\u79bb\uff0c\u8303\u56f4\u662f0~\u5bbd\u5ea6-1\nint \u7ed3\u675f\u5750\u6807\u70b9\u4e0e\u6700\u4e0a\u8fb9\u7684\u8ddd\u79bb\uff0c\u8303\u56f4\u662f0~\u9ad8\u5ea6-1\nint \u53ef\u9009\uff0c\u989c\u8272\uff0c\u9ed8\u8ba4\u4e3a0\n\u8fd4\u56de\u503c\uff1a\nbool \u753b\u6210\u529f\u4f1a\u8fd4\u56detrue\n\u4f8b\u5b50\uff1a\nrerult = buff:drawLine(0,0,2,3,0xffff)\n", "prefix": "buff:drawLine"}, "buff:drawRect": {"body": "buff:drawRect(${1:x1},${2:y1},${3:x2},${4:y2},${5:color},${6:fill})", "description": "buff:drawRect(x1,y1,x2,y2,color,fill) - \u753b\u4e00\u4e2a\u77e9\u5f62\uff08\u4e0e\u5f53\u524d\u6307\u9488\u4f4d\u7f6e\u65e0\u5173\uff1b\u6267\u884c\u540e\u6307\u9488\u4f4d\u7f6e\u4e0d\u53d8\uff09\n\u4f20\u5165\u503c\uff1a\nint \u8d77\u59cb\u5750\u6807\u70b9\u4e0e\u6700\u5de6\u8fb9\u7684\u8ddd\u79bb\uff0c\u8303\u56f4\u662f0~\u5bbd\u5ea6-1\nint \u8d77\u59cb\u5750\u6807\u70b9\u4e0e\u6700\u4e0a\u8fb9\u7684\u8ddd\u79bb\uff0c\u8303\u56f4\u662f0~\u9ad8\u5ea6-1\nint \u7ed3\u675f\u5750\u6807\u70b9\u4e0e\u6700\u5de6\u8fb9\u7684\u8ddd\u79bb\uff0c\u8303\u56f4\u662f0~\u5bbd\u5ea6-1\nint \u7ed3\u675f\u5750\u6807\u70b9\u4e0e\u6700\u4e0a\u8fb9\u7684\u8ddd\u79bb\uff0c\u8303\u56f4\u662f0~\u9ad8\u5ea6-1\nint \u53ef\u9009\uff0c\u989c\u8272\uff0c\u9ed8\u8ba4\u4e3a0\nbool \u53ef\u9009\uff0c\u662f\u5426\u5728\u5185\u90e8\u586b\u5145\uff0c\u9ed8\u8ba4nil\n\u8fd4\u56de\u503c\uff1a\nbool \u753b\u6210\u529f\u4f1a\u8fd4\u56detrue\n\u4f8b\u5b50\uff1a\nrerult = buff:drawRect(0,0,2,3,0xffff)\n", "prefix": "buff:drawRect"}, "buff:drawCircle": {"body": "buff:drawCircle(${1:x},${2:y},${3:r},${4:color},${5:fill})", "description": "buff:drawCircle(x,y,r,color,fill) - \u753b\u4e00\u4e2a\u5706\u5f62\uff08\u4e0e\u5f53\u524d\u6307\u9488\u4f4d\u7f6e\u65e0\u5173\uff1b\u6267\u884c\u540e\u6307\u9488\u4f4d\u7f6e\u4e0d\u53d8\uff09\n\u4f20\u5165\u503c\uff1a\nint **\u5706\u5fc3**\u4e0e\u6700\u5de6\u8fb9\u7684\u8ddd\u79bb\uff0c\u8303\u56f4\u662f0~\u5bbd\u5ea6-1\nint **\u5706\u5fc3**\u4e0e\u6700\u4e0a\u8fb9\u7684\u8ddd\u79bb\uff0c\u8303\u56f4\u662f0~\u9ad8\u5ea6-1\nint \u5706\u7684\u534a\u5f84\nint \u53ef\u9009\uff0c\u5706\u7684\u989c\u8272\uff0c\u9ed8\u8ba4\u4e3a0\nbool \u53ef\u9009\uff0c\u662f\u5426\u5728\u5185\u90e8\u586b\u5145\uff0c\u9ed8\u8ba4nil\n\u8fd4\u56de\u503c\uff1a\nbool \u753b\u6210\u529f\u4f1a\u8fd4\u56detrue\n\u4f8b\u5b50\uff1a\nrerult = buff:drawCircle(15,5,3,0xC)\nrerult = buff:drawCircle(15,5,3,0xC,true)\n", "prefix": "buff:drawCircle"}, "buff[n": {"body": "buff[n]", "description": "buff[n] - \u4ee5\u4e0b\u6807\u5f62\u5f0f\u8fdb\u884c\u6570\u636e\u8bfb\u5199\uff08\u4e0e\u5f53\u524d\u6307\u9488\u4f4d\u7f6e\u65e0\u5173\uff1b\u6267\u884c\u540e\u6307\u9488\u4f4d\u7f6e\u4e0d\u53d8\uff09\n\u4f20\u5165\u503c\uff1a\nint \u7b2c\u51e0\u4e2a\u6570\u636e\uff0c\u4ee50\u5f00\u59cb\u7684\u4e0b\u6807\uff08C\u6807\u51c6\uff09\n\u8fd4\u56de\u503c\uff1a\nnumber \u8be5\u4f4d\u7f6e\u7684\u6570\u636e\n\u4f8b\u5b50\uff1a\nbuff[0] = 0xc8\nlocal data = buff[0]\n", "prefix": "buff[n"}, "buff:resize": {"body": "buff:resize(${1:n})", "description": "buff:resize(n) - \u8c03\u6574zbuff\u5b9e\u9645\u5206\u914d\u7a7a\u95f4\u7684\u5927\u5c0f\uff0c\u7c7b\u4f3c\u4e8erealloc\u7684\u6548\u679c\uff0cnew = realloc(old, n)\uff0c\u53ef\u4ee5\u6269\u5927\u6216\u8005\u7f29\u5c0f\uff08\u5982\u679c\u7f29\u5c0f\u540elen\u5c0f\u4e8e\u4e86used\uff0c\u90a3\u4e48used=\u65b0len\uff09\n\u4f20\u5165\u503c\uff1a\nint \u65b0\u7a7a\u95f4\u5927\u5c0f\n\u4f8b\u5b50\uff1a\nbuff:resize(20)\n", "prefix": "buff:resize"}, "buff:copy": {"body": "buff:copy(${1:start},${2:para},${3:...})", "description": "buff:copy(start, para,...) - zbuff\u52a8\u6001\u5199\u6570\u636e\uff0c\u7c7b\u4f3c\u4e8ememcpy\u6548\u679c\uff0c\u5f53\u539f\u6709\u7a7a\u95f4\u4e0d\u8db3\u65f6\u52a8\u6001\u6269\u5927\u7a7a\u95f4\n\u4f20\u5165\u503c\uff1a\nint \u5199\u5165buff\u7684\u8d77\u59cb\u4f4d\u7f6e\uff0c\u5982\u679c\u4e0d\u4e3a\u6570\u5b57\uff0c\u5219\u4e3abuff\u7684used\uff0c\u5982\u679c\u5c0f\u4e8e0\uff0c\u5219\u4eceused\u5f80\u524d\u6570\uff0c-1 = used - 1\nany \u5199\u5165buff\u7684\u6570\u636e\uff0cstring\u6216zbuff\u8005\u65f6\u4e3a\u4e00\u4e2a\u53c2\u6570\uff0cnumber\u65f6\u53ef\u4e3a\u591a\u4e2a\u53c2\u6570\n\u8fd4\u56de\u503c\uff1a\nnumber \u6570\u636e\u6210\u529f\u5199\u5165\u7684\u957f\u5ea6\n\u4f8b\u5b50\uff1a\nlocal len = buff:copy(nil, \"123\") -- \u7c7b\u4f3c\u4e8ememcpy(&buff[used], \"123\", 3) used+= 3 \u4ecebuff\u5f00\u59cb\u5199\u5165\u6570\u636e,\u6307\u9488\u76f8\u5e94\u5730\u5f80\u540e\u79fb\u52a8\nlocal len = buff:copy(0, \"123\") -- \u7c7b\u4f3c\u4e8ememcpy(&buff[0], \"123\", 3) if (used < 3) used = 3 \u4ece\u4f4d\u7f6e0\u5199\u5165\u6570\u636e,\u6307\u9488\u6709\u53ef\u80fd\u4f1a\u79fb\u52a8\nlocal len = buff:copy(2, 0x1a,0x30,0x31,0x32,0x00,0x01) -- \u7c7b\u4f3c\u4e8ememcpy(&buff[2], [0x1a,0x30,0x31,0x32,0x00,0x01], 6) if (used < (2+6)) used = (2+6)\u4ece\u4f4d\u7f6e2\u5f00\u59cb\uff0c\u6309\u6570\u503c\u5199\u5165\u591a\u4e2a\u5b57\u8282\u6570\u636e\nlocal len = buff:copy(9, buff2) -- \u7c7b\u4f3c\u4e8ememcpy(&buff[9], &buff2[0], buff2\u7684used) if (used < (9+buff2\u7684used)) used = (9+buff2\u7684used) \u4ece\u4f4d\u7f6e9\u5f00\u59cb\uff0c\u5408\u5e76\u5165buff2\u91cc0~used\u7684\u5185\u5bb9\nlocal len = buff:copy(5, buff2, 10, 1024) -- \u7c7b\u4f3c\u4e8ememcpy(&buff[5], &buff2[10], 1024) if (used < (5+1024)) used = (5+1024)\n", "prefix": "buff:copy"}, "buff:used": {"body": "buff:used()", "description": "buff:used() - \u83b7\u53d6zbuff\u91cc\u6700\u540e\u4e00\u4e2a\u6570\u636e\u4f4d\u7f6e\u6307\u9488\u5230\u9996\u5730\u5740\u7684\u504f\u79fb\u91cf\uff0c\u6765\u8868\u793azbuff\u5185\u5df2\u6709\u6709\u6548\u6570\u636e\u91cf\u5927\u5c0f\uff0c\u6ce8\u610f\u8fd9\u4e2a\u4e0d\u540c\u4e8e\u5206\u914d\u7684\u7a7a\u95f4\u5927\u5c0f\uff0c\u7531\u4e8eseek()\u4f1a\u6539\u53d8\u6700\u540e\u4e00\u4e2a\u6570\u636e\u4f4d\u7f6e\u6307\u9488\uff0c\u56e0\u6b64\u4e5f\u4f1a\u5f71\u54cd\u5230used()\u8fd4\u56de\u503c\u3002\n\u8fd4\u56de\u503c\uff1a\nint \u6709\u6548\u6570\u636e\u91cf\u5927\u5c0f\n\u4f8b\u5b50\uff1a\nbuff:used()\n", "prefix": "buff:used"}, "buff:del": {"body": "buff:del(${1:offset},${2:length})", "description": "buff:del(offset,length) - \u5220\u9664zbuff 0~used\u8303\u56f4\u5185\u7684\u4e00\u6bb5\u6570\u636e\uff0c\u6ce8\u610f\u53ea\u662f\u6539\u53d8\u4e86used\u7684\u503c\uff0c\u5e76\u4e0d\u662f\u771f\u7684\u5728ram\u91cc\u53bb\u6e05\u9664\u6389\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nint \u8d77\u59cb\u4f4d\u7f6estart, \u9ed8\u8ba40\uff0c\u5982\u679c<0\u5219\u4eceused\u5f80\u524d\u6570\uff0c\u6bd4\u5982 -1 \u90a3\u4e48start= used - 1\nint \u957f\u5ea6del_len\uff0c\u9ed8\u8ba4\u4e3aused\uff0c\u5982\u679cstart + del_len\u6570\u503c\u5927\u4e8eused\uff0c\u4f1a\u5f3a\u5236\u8c03\u6574del_len = used - start\n\u4f8b\u5b50\uff1a\nbuff:del(1,4)\t--\u4ece\u4f4d\u7f6e1\u5f00\u59cb\u5220\u96644\u4e2a\u5b57\u8282\u6570\u636e\nbuff:del(-1,4)\t--\u4ece\u4f4d\u7f6eused-1\u5f00\u59cb\u5220\u96644\u4e2a\u5b57\u8282\u6570\u636e\uff0c\u4f46\u662f\u8fd9\u80af\u5b9a\u4f1a\u8d85\u8fc7used\uff0c\u6240\u4ee5del_len\u4f1a\u8c03\u6574\u4e3a1\uff0c\u5b9e\u9645\u4e0a\u5c31\u662f\u5220\u6389\u4e86\u6700\u540e\u4e00\u4e2a\u5b57\u8282\n", "prefix": "buff:del"}, "buff:query": {"body": "buff:query(${1:offset},${2:length},${3:isbigend},${4:issigned},${5:isfloat})", "description": "buff:query(offset,length,isbigend,issigned,isfloat) - \u6309\u8d77\u59cb\u4f4d\u7f6e\u548c\u957f\u5ea60~used\u8303\u56f4\u5185\u53d6\u51fa\u6570\u636e\uff0c\u5982\u679c\u662f1,2,4,8\u5b57\u8282\uff0c\u6839\u636e\u540e\u7eed\u53c2\u6570\u8f6c\u6362\u6210\u6d6e\u70b9\u6216\u8005\u6574\u5f62\n\u4f20\u5165\u503c\uff1a\nint \u6570\u636e\u7684\u8d77\u59cb\u4f4d\u7f6e\uff08\u8d77\u59cb\u4f4d\u7f6e\u4e3a0\uff09\nint \u6570\u636e\u7684\u957f\u5ea6\nboolean \u662f\u5426\u662f\u5927\u7aef\u683c\u5f0f\uff0c\u5982\u679c\u4e3anil\uff0c\u5219\u4e0d\u4f1a\u8f6c\u6362\uff0c\u76f4\u63a5\u5b57\u8282\u6d41\u8f93\u51fa\nboolean \u662f\u5426\u662f\u6709\u7b26\u53f7\u7684\uff0c\u9ed8\u8ba4\u4e3afalse\nboolean \u662f\u5426\u662f\u6d6e\u70b9\u578b\uff0c\u9ed8\u8ba4\u4e3afalse\n\u8fd4\u56de\u503c\uff1a\nstring \u8bfb\u51fa\u6765\u7684\u6570\u636e\n\u4f8b\u5b50\uff1a\nlocal s = buff:query(0,5)--\u8bfb\u53d6\u5f00\u5934\u7684\u4e94\u4e2a\u5b57\u8282\u6570\u636e\n", "prefix": "buff:query"}, "buff:set": {"body": "buff:set(${1:start},${2:num},${3:len})", "description": "buff:set(start, num, len) - zbuff\u7684\u7c7b\u4f3c\u4e8ememset\u64cd\u4f5c\uff0c\u7c7b\u4f3c\u4e8ememset(&buff[start], num, len)\uff0c\u5f53\u7136\u6709ram\u8d8a\u754c\u4fdd\u62a4\uff0c\u4f1a\u5bf9len\u6709\u4e00\u5b9a\u7684\u9650\u5236\n\u4f20\u5165\u503c\uff1a\nint \u53ef\u9009\uff0c\u5f00\u59cb\u4f4d\u7f6e\uff0c\u9ed8\u8ba4\u4e3a0,\nint \u53ef\u9009\uff0c\u9ed8\u8ba4\u4e3a0\u3002\u8981\u8bbe\u7f6e\u4e3a\u7684\u503c\nint \u53ef\u9009\uff0c\u957f\u5ea6\uff0c\u9ed8\u8ba4\u4e3a\u5168\u90e8\u7a7a\u95f4\uff0c\u5982\u679c\u8d85\u51fa\u8303\u56f4\u4e86\uff0c\u4f1a\u81ea\u52a8\u622a\u65ad\n\u4f8b\u5b50\uff1a\n-- \u5168\u90e8\u521d\u59cb\u5316\u4e3a0\nbuff:set() --\u7b49\u540c\u4e8e memset(buff, 0, sizeof(buff))\nbuff:set(8) --\u7b49\u540c\u4e8e memset(&buff[8], 0, sizeof(buff) - 8)\nbuff:set(0, 0x55) --\u7b49\u540c\u4e8e memset(buff, 0x55, sizeof(buff))\nbuff:set(4, 0xaa, 12) --\u7b49\u7528\u4e8e memset(&buff[4], 0xaa, 12)\n", "prefix": "buff:set"}, "buff:isEqual": {"body": "buff:isEqual(${1:start},${2:buff2},${3:start2},${4:len})", "description": "buff:isEqual(start, buff2, start2, len) - zbuff\u7684\u7c7b\u4f3c\u4e8ememcmp\u64cd\u4f5c\uff0c\u7c7b\u4f3c\u4e8ememcmp(&buff[start], &buff2[start2], len)\n\u4f20\u5165\u503c\uff1a\nint \u53ef\u9009\uff0c\u5f00\u59cb\u4f4d\u7f6e\uff0c\u9ed8\u8ba4\u4e3a0,\nzbuff \u6bd4\u8f83\u7684\u5bf9\u8c61\nint \u53ef\u9009\uff0c\u6bd4\u8f83\u7684\u5bf9\u8c61\u7684\u5f00\u59cb\u4f4d\u7f6e\uff0c\u9ed8\u8ba4\u4e3a0\nint \u6bd4\u8f83\u957f\u5ea6\n\u8fd4\u56de\u503c\uff1a\nboolean true\u76f8\u7b49\uff0cfalse\u4e0d\u76f8\u7b49\nint \u76f8\u7b49\u8fd4\u56de0\uff0c\u4e0d\u76f8\u7b49\u8fd4\u56de\u7b2c\u4e00\u4e2a\u4e0d\u76f8\u7b49\u4f4d\u7f6e\u7684\u5e8f\u53f7\n\u4f8b\u5b50\uff1a\nlocal result, offset = buff:isEqual(1, buff2, 2, 10) --\u7b49\u540c\u4e8ememcmp(&buff[1], &buff2[2], 10)\n", "prefix": "buff:isEqual"}, "zlib.c": {"body": "zlib.c(${1:input_file},${2:output_file})", "description": "zlib.c(input_file,output_file) - zlib\u538b\u7f29(\u9700\u8981\u5927\u7ea6270k\u5185\u5b58\uff0c\u5927\u90e8\u5206mcu\u4e0d\u652f\u6301)\n\u4f20\u5165\u503c\uff1a\nstring input_file \u8f93\u5165\u6587\u4ef6\nstring output_file \u8f93\u51fa\u6587\u4ef6\n\u8fd4\u56de\u503c\uff1a\nbool \u6b63\u5e38\u8fd4\u56de ture \u5931\u8d25\u8fd4\u56de false\n\u4f8b\u5b50\uff1a\nzlib.c(\"/sd/1.txt\",\"/sd/zlib\")\n", "prefix": "zlib.c"}, "zlib.d": {"body": "zlib.d(${1:input_file},${2:output_file})", "description": "zlib.d(input_file,output_file) - zlib\u89e3\u538b\u7f29(\u9700\u8981\u5927\u7ea618k\u5185\u5b58\uff0c\u5927\u90e8\u5206mcu\u90fd\u652f\u6301)\n\u4f20\u5165\u503c\uff1a\nstring input_file \u8f93\u5165\u6587\u4ef6\nstring output_file \u8f93\u51fa\u6587\u4ef6\n\u8fd4\u56de\u503c\uff1a\nbool \u6b63\u5e38\u8fd4\u56de ture \u5931\u8d25\u8fd4\u56de false\n\u4f8b\u5b50\uff1a\nzlib.d(\"/sd/zlib\",\"/sd/1.txt\")\n", "prefix": "zlib.d"}} \ No newline at end of file diff --git a/docs/api/index.html b/docs/api/index.html index ee784ccaa..c50ecf036 100644 --- a/docs/api/index.html +++ b/docs/api/index.html @@ -1690,7 +1690,7 @@

🍴 LuatOS-SOC Interface Documentationwlan.init()
  • wlan.setMode(mode)
  • wlan.ready()
  • -
  • wlan.connect(ssid, password)
  • +
  • wlan.connect(ssid, password, auto_reconnect)
  • wlan.disconnect()
  • wlan.scan()
  • wlan.scanResult()
  • diff --git a/docs/api/wlan.html b/docs/api/wlan.html index 62997f3cb..e3a21ee8e 100644 --- a/docs/api/wlan.html +++ b/docs/api/wlan.html @@ -819,8 +819,8 @@

    wlan.ready() -
    -

    wlan.connect(ssid, password)#

    +
    +

    wlan.connect(ssid, password, auto_reconnect)#

    As a STATION, connect to the specified AP

    Parameters

    @@ -836,6 +836,9 @@

    wlan.connect(ssid, password)

    + + +

    string

    AP password of, optional

    int

    0 Turn off automatic reconnect, 1 turn on automatic reconnect. Auto reconnect is currently forced on

    Return Value

    @@ -1367,7 +1370,7 @@

    wlan.staIp(dhcp_enable, ip, netmask, gateway)wlan.init()
  • wlan.setMode(mode)
  • wlan.ready()
  • -
  • wlan.connect(ssid, password)
  • +
  • wlan.connect(ssid, password, auto_reconnect)
  • wlan.disconnect()
  • wlan.scan()
  • wlan.scanResult()
  • diff --git a/docs/searchindex.js b/docs/searchindex.js index 9e7c13761..1638ecd57 100644 --- a/docs/searchindex.js +++ b/docs/searchindex.js @@ -1 +1 @@ -Search.setIndex({docnames:["api/adc","api/audio","api/bit64","api/camera","api/codec","api/coremark","api/crypto","api/dac","api/disp","api/eink","api/errDump","api/fastlz","api/fatfs","api/fdb","api/fonts","api/fota","api/fs","api/fskv","api/ftp","api/gmssl","api/gpio","api/gtfont","api/hmeta","api/http","api/httpsrv","api/i2c","api/i2s","api/iconv","api/index","api/io","api/ioqueue","api/iotauth","api/ir","api/json","api/keyboard","api/lcd","api/lcdseg","api/libcoap","api/libgnss","api/libs/ads1115","api/libs/adxl34x","api/libs/aht10","api/libs/air153C_wtd","api/libs/ak8963","api/libs/am2320","api/libs/bh1750","api/libs/bmx","api/libs/cht8305c","api/libs/ds3231","api/libs/ec11","api/libs/gt911","api/libs/httpdns","api/libs/ina226","api/libs/index","api/libs/iotcloud","api/libs/l3g4200d","api/libs/lbsLoc","api/libs/lbsLoc2","api/libs/libfota","api/libs/libnet","api/libs/lis2dh12","api/libs/lm75","api/libs/mcp2515","api/libs/mlx90614","api/libs/mpu6xxx","api/libs/necir","api/libs/netLed","api/libs/pcf8563t","api/libs/pcf8574","api/libs/qmc5883l","api/libs/rc522","api/libs/rtkv","api/libs/shift595","api/libs/si24r1","api/libs/spl06","api/libs/tcs3472","api/libs/tm1637","api/libs/tm1640","api/libs/tm1650","api/libs/tsl2561","api/libs/udpsrv","api/libs/xmodem","api/libs/ze08g_ch2o","api/libs/zh07","api/log","api/lora","api/lora2","api/lvgl","api/max30102","api/mcu","api/miniz","api/mlx90640","api/mobile","api/mqtt","api/nbiot","api/nes","api/nimble","api/os","api/otp","api/pack","api/pin","api/pm","api/protobuf","api/pwm","api/repl","api/rsa","api/rtc","api/rtos","api/sdio","api/sensor","api/sfd","api/sfud","api/sms","api/socket","api/softkeyboard","api/spi","api/statem","api/string","api/supported","api/sys","api/sys_pub","api/sysplus","api/timer","api/touchkey","api/u8g2","api/uart","api/ufont","api/usbapp","api/w5500","api/wdt","api/websocket","api/wlan","api/ymodem","api/zbuff","api/zlib","appDevelopment/index","appDevelopment/iotcloud/aliyun/code","appDevelopment/iotcloud/aliyun/device","appDevelopment/iotcloud/aliyun/index","appDevelopment/iotcloud/aliyun/intro","appDevelopment/iotcloud/aliyun/project","appDevelopment/iotcloud/aliyun/test","appDevelopment/iotcloud/basic/index","appDevelopment/iotcloud/basic/intro","appDevelopment/iotcloud/basic/json","appDevelopment/iotcloud/basic/protocol","appDevelopment/iotcloud/index","appDevelopment/iotcloud/onenet/code","appDevelopment/iotcloud/onenet/device","appDevelopment/iotcloud/onenet/index","appDevelopment/iotcloud/onenet/intro","appDevelopment/iotcloud/onenet/project","appDevelopment/iotcloud/onenet/test","appDevelopment/iotcloud/qcloud/code","appDevelopment/iotcloud/qcloud/device","appDevelopment/iotcloud/qcloud/index","appDevelopment/iotcloud/qcloud/intro","appDevelopment/iotcloud/qcloud/project","appDevelopment/iotcloud/qcloud/test","appDevelopment/lvgl/LVGL_for_LuatOS/LVGL_for_LuatOS","appDevelopment/lvgl/index","appDevelopment/peripheral/index","appDevelopment/peripheral/ws2812/ws2812","appDevelopment/video_play/105/video_play","appDevelopment/video_play/index","archives","boardGuide/common/adc/index","boardGuide/common/crypto","boardGuide/common/disp","boardGuide/common/fdb","boardGuide/common/i2c/air101","boardGuide/common/i2c/air103","boardGuide/common/i2c/air105","boardGuide/common/i2c/index","boardGuide/common/index","boardGuide/common/lcd","boardGuide/common/log","boardGuide/common/mcu/air101","boardGuide/common/mcu/air103","boardGuide/common/mcu/air105","boardGuide/common/mcu/index","boardGuide/common/pm","boardGuide/common/pwm/air101","boardGuide/common/pwm/air103","boardGuide/common/pwm/air105","boardGuide/common/pwm/index","boardGuide/common/rtc","boardGuide/common/sfd","boardGuide/common/sfud/air101","boardGuide/common/sfud/air103","boardGuide/common/sfud/air105","boardGuide/common/sfud/index","boardGuide/common/spi","boardGuide/common/spi/air101","boardGuide/common/spi/air103","boardGuide/common/spi/air105","boardGuide/common/spi/index","boardGuide/common/sys","boardGuide/common/timer","boardGuide/common/uart","boardGuide/common/uart/air101","boardGuide/common/uart/air103","boardGuide/common/uart/air105","boardGuide/common/uart/index","boardGuide/flash","boardGuide/index","boardGuide/roadmap","boardGuide/vscode","chips/AirWatch","chips/W806","chips/air001/Air001-Arduino","chips/air001/Air001-MDK","chips/air001/board","chips/air001/hardware","chips/air001/index","chips/air001/mcu","chips/air001/power_dissipation","chips/air101/Air101","chips/air101/Air101-Hard-design","chips/air101/board","chips/air101/hardware","chips/air101/index","chips/air101/mcu","chips/air101/power_dissipation","chips/air103/board","chips/air103/hardware","chips/air103/index","chips/air103/lcdseg","chips/air103/mcu","chips/air103/power_dissipation","chips/air103/touchkey","chips/air105/board","chips/air105/encrypt","chips/air105/hardware","chips/air105/index","chips/air105/mcu","chips/air105/power_dissipation","chips/air106/board","chips/air106/hardware","chips/air106/index","chips/air106/mcu","chips/air302/board","chips/air302/hardware","chips/air302/index","chips/air302/mcu","chips/air32f103/Air32f103","chips/air32f103/board","chips/air32f103/daplink","chips/air32f103/enhancement","chips/air32f103/hardware","chips/air32f103/index","chips/air32f103/mcu","chips/air32f103/switchFromSxx","chips/air601/board","chips/air601/changelog","chips/air601/hardware","chips/air601/index","chips/air601/mcu","chips/air640w/board","chips/air640w/hardware","chips/air640w/index","chips/air640w/mcu","chips/air780e/air700e","chips/air780e/air780eg","chips/air780e/board","chips/air780e/changelog","chips/air780e/firmware","chips/air780e/hardware","chips/air780e/index","chips/air780e/iomux","chips/air780e/mcu","chips/air780e/multiownload","chips/air780e/network","chips/air780e/pwrkey","chips/air780e/tts","chips/air901/board","chips/air901/hardware","chips/air901/index","chips/air901/mcu","chips/chips","chips/coremark/README","chips/esp32c3/board","chips/esp32c3/change_flash","chips/esp32c3/hardware","chips/esp32c3/index","chips/esp32c3/power_dissipation","chips/esp32s3/board","chips/esp32s3/hardware","chips/esp32s3/index","chips/esp32s3/mifi","chips/index","chips/question","chips/rp2040/index","chips/supported","chips/swm181/board","chips/swm181/hardware","chips/swm181/index","chips/swm181/mcu","chips/swm181/swm181","chips/win32","develop/add_lua_module","develop/add_myapi_5min","develop/c_wait","develop/cli/README","develop/cli/cmd_base","develop/cli/cmd_burn","develop/cli/cmd_pkg","develop/cli/cmd_prj","develop/cli/frontend","develop/cli/project","develop/compile","develop/compile/Air101","develop/compile/Air105","develop/compile/Air302","develop/compile/Air640w","develop/compile/Air780E","develop/compile/Cloud_compilation","develop/compile/ESP32C3","develop/compile/Linux","develop/compile/Win32","develop/contribute/add_module","develop/contribute/dev_doc/core/index","develop/contribute/dev_doc/core/luat_core","develop/contribute/dev_doc/core/luat_debugger","develop/contribute/dev_doc/core/luat_font","develop/contribute/dev_doc/core/luat_fs","develop/contribute/dev_doc/core/luat_memory","develop/contribute/dev_doc/core/luat_msgbus","develop/contribute/dev_doc/core/luat_platform","develop/contribute/dev_doc/core/luat_pm","develop/contribute/dev_doc/core/luat_timer","develop/contribute/dev_doc/core/luat_zbuff","develop/contribute/dev_doc/core/luat_zstruct","develop/contribute/dev_doc/core/sys_wait_pub","develop/contribute/dev_doc/index","develop/contribute/dev_doc/peripherals/index","develop/contribute/dev_doc/peripherals/luat_fonts","develop/contribute/dev_doc/peripherals/luat_gpio","develop/contribute/dev_doc/peripherals/luat_ir","develop/contribute/dev_doc/peripherals/luat_spi","develop/contribute/dev_doc/peripherals/luat_usart","develop/contribute/dev_doc/peripherals/luat_wlan","develop/contribute/index","develop/contribute/luadb","develop/contribute/soc_format","develop/contribute/style","develop/docs","develop/docs_design","develop/docs_use","develop/filesystems","develop/hex_string","develop/soc_download","index","iotpower/cc/index","iotpower/cc/index-en","iotpower/cc/parts","iotpower/cc/parts-en","iotpower/cc/question","iotpower/cc/tech","iotpower/cc/tech-en","iotpower/cc/usage","iotpower/cc/usage-en","iotpower/cc/wrong","iotpower/devices","iotpower/index","iotpower/index-en","iotpower/pc","iotpower/pc-en","iotpower/power/english","iotpower/power/index","iotpower/pro/connect","iotpower/pro/index","iotpower/pro/tech","iotpower/pro/usage","luaGuide/index","luaGuide/introduction","luaGuide/luaReference","luaGuide/luatFramework","luaGuide/luatFramework_exts","luaGuide/luatask","pages/emulator","pages/supports","pages/tools","peripherals/camera_gc032a/demos","peripherals/camera_gc032a/hardware","peripherals/camera_gc032a/index","peripherals/chip_gtfont/demos","peripherals/chip_gtfont/hardware","peripherals/chip_gtfont/index","peripherals/eink_1.54/hardware","peripherals/eink_1.54/index","peripherals/eink_1.54/software","peripherals/index","peripherals/lcd_1in54_240x240/demos","peripherals/lcd_1in54_240x240/hardware","peripherals/lcd_1in54_240x240/index","peripherals/lcd_1in8_128x160/demos","peripherals/lcd_1in8_128x160/hardware","peripherals/lcd_1in8_128x160/index","peripherals/lcd_2in4_320x240/demos","peripherals/lcd_2in4_320x240/hardware","peripherals/lcd_2in4_320x240/index","peripherals/lcd_air10x/demos","peripherals/lcd_air10x/hardware","peripherals/lcd_air10x/index"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":4,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":3,"sphinx.domains.rst":2,"sphinx.domains.std":2,sphinx:56},filenames:["api/adc.md","api/audio.md","api/bit64.md","api/camera.md","api/codec.md","api/coremark.md","api/crypto.md","api/dac.md","api/disp.md","api/eink.md","api/errDump.md","api/fastlz.md","api/fatfs.md","api/fdb.md","api/fonts.md","api/fota.md","api/fs.md","api/fskv.md","api/ftp.md","api/gmssl.md","api/gpio.md","api/gtfont.md","api/hmeta.md","api/http.md","api/httpsrv.md","api/i2c.md","api/i2s.md","api/iconv.md","api/index.md","api/io.md","api/ioqueue.md","api/iotauth.md","api/ir.md","api/json.md","api/keyboard.md","api/lcd.md","api/lcdseg.md","api/libcoap.md","api/libgnss.md","api/libs/ads1115.md","api/libs/adxl34x.md","api/libs/aht10.md","api/libs/air153C_wtd.md","api/libs/ak8963.md","api/libs/am2320.md","api/libs/bh1750.md","api/libs/bmx.md","api/libs/cht8305c.md","api/libs/ds3231.md","api/libs/ec11.md","api/libs/gt911.md","api/libs/httpdns.md","api/libs/ina226.md","api/libs/index.md","api/libs/iotcloud.md","api/libs/l3g4200d.md","api/libs/lbsLoc.md","api/libs/lbsLoc2.md","api/libs/libfota.md","api/libs/libnet.md","api/libs/lis2dh12.md","api/libs/lm75.md","api/libs/mcp2515.md","api/libs/mlx90614.md","api/libs/mpu6xxx.md","api/libs/necir.md","api/libs/netLed.md","api/libs/pcf8563t.md","api/libs/pcf8574.md","api/libs/qmc5883l.md","api/libs/rc522.md","api/libs/rtkv.md","api/libs/shift595.md","api/libs/si24r1.md","api/libs/spl06.md","api/libs/tcs3472.md","api/libs/tm1637.md","api/libs/tm1640.md","api/libs/tm1650.md","api/libs/tsl2561.md","api/libs/udpsrv.md","api/libs/xmodem.md","api/libs/ze08g_ch2o.md","api/libs/zh07.md","api/log.md","api/lora.md","api/lora2.md","api/lvgl.md","api/max30102.md","api/mcu.md","api/miniz.md","api/mlx90640.md","api/mobile.md","api/mqtt.md","api/nbiot.md","api/nes.md","api/nimble.md","api/os.md","api/otp.md","api/pack.md","api/pin.md","api/pm.md","api/protobuf.md","api/pwm.md","api/repl.md","api/rsa.md","api/rtc.md","api/rtos.md","api/sdio.md","api/sensor.md","api/sfd.md","api/sfud.md","api/sms.md","api/socket.md","api/softkeyboard.md","api/spi.md","api/statem.md","api/string.md","api/supported.md","api/sys.md","api/sys_pub.md","api/sysplus.md","api/timer.md","api/touchkey.md","api/u8g2.md","api/uart.md","api/ufont.md","api/usbapp.md","api/w5500.md","api/wdt.md","api/websocket.md","api/wlan.md","api/ymodem.md","api/zbuff.md","api/zlib.md","appDevelopment/index.md","appDevelopment/iotcloud/aliyun/code.md","appDevelopment/iotcloud/aliyun/device.md","appDevelopment/iotcloud/aliyun/index.md","appDevelopment/iotcloud/aliyun/intro.md","appDevelopment/iotcloud/aliyun/project.md","appDevelopment/iotcloud/aliyun/test.md","appDevelopment/iotcloud/basic/index.md","appDevelopment/iotcloud/basic/intro.md","appDevelopment/iotcloud/basic/json.md","appDevelopment/iotcloud/basic/protocol.md","appDevelopment/iotcloud/index.md","appDevelopment/iotcloud/onenet/code.md","appDevelopment/iotcloud/onenet/device.md","appDevelopment/iotcloud/onenet/index.md","appDevelopment/iotcloud/onenet/intro.md","appDevelopment/iotcloud/onenet/project.md","appDevelopment/iotcloud/onenet/test.md","appDevelopment/iotcloud/qcloud/code.md","appDevelopment/iotcloud/qcloud/device.md","appDevelopment/iotcloud/qcloud/index.md","appDevelopment/iotcloud/qcloud/intro.md","appDevelopment/iotcloud/qcloud/project.md","appDevelopment/iotcloud/qcloud/test.md","appDevelopment/lvgl/LVGL_for_LuatOS/LVGL_for_LuatOS.md","appDevelopment/lvgl/index.md","appDevelopment/peripheral/index.md","appDevelopment/peripheral/ws2812/ws2812.md","appDevelopment/video_play/105/video_play.md","appDevelopment/video_play/index.md","archives.md","boardGuide/common/adc/index.md","boardGuide/common/crypto.md","boardGuide/common/disp.md","boardGuide/common/fdb.md","boardGuide/common/i2c/air101.md","boardGuide/common/i2c/air103.md","boardGuide/common/i2c/air105.md","boardGuide/common/i2c/index.md","boardGuide/common/index.md","boardGuide/common/lcd.md","boardGuide/common/log.md","boardGuide/common/mcu/air101.md","boardGuide/common/mcu/air103.md","boardGuide/common/mcu/air105.md","boardGuide/common/mcu/index.md","boardGuide/common/pm.md","boardGuide/common/pwm/air101.md","boardGuide/common/pwm/air103.md","boardGuide/common/pwm/air105.md","boardGuide/common/pwm/index.md","boardGuide/common/rtc.md","boardGuide/common/sfd.md","boardGuide/common/sfud/air101.md","boardGuide/common/sfud/air103.md","boardGuide/common/sfud/air105.md","boardGuide/common/sfud/index.md","boardGuide/common/spi.md","boardGuide/common/spi/air101.md","boardGuide/common/spi/air103.md","boardGuide/common/spi/air105.md","boardGuide/common/spi/index.md","boardGuide/common/sys.md","boardGuide/common/timer.md","boardGuide/common/uart.md","boardGuide/common/uart/air101.md","boardGuide/common/uart/air103.md","boardGuide/common/uart/air105.md","boardGuide/common/uart/index.md","boardGuide/flash.md","boardGuide/index.md","boardGuide/roadmap.md","boardGuide/vscode.md","chips/AirWatch.md","chips/W806.md","chips/air001/Air001-Arduino.md","chips/air001/Air001-MDK.md","chips/air001/board.md","chips/air001/hardware.md","chips/air001/index.md","chips/air001/mcu.md","chips/air001/power_dissipation.md","chips/air101/Air101.md","chips/air101/Air101-Hard-design.md","chips/air101/board.md","chips/air101/hardware.md","chips/air101/index.md","chips/air101/mcu.md","chips/air101/power_dissipation.md","chips/air103/board.md","chips/air103/hardware.md","chips/air103/index.md","chips/air103/lcdseg.md","chips/air103/mcu.md","chips/air103/power_dissipation.md","chips/air103/touchkey.md","chips/air105/board.md","chips/air105/encrypt.md","chips/air105/hardware.md","chips/air105/index.md","chips/air105/mcu.md","chips/air105/power_dissipation.md","chips/air106/board.md","chips/air106/hardware.md","chips/air106/index.md","chips/air106/mcu.md","chips/air302/board.md","chips/air302/hardware.md","chips/air302/index.md","chips/air302/mcu.md","chips/air32f103/Air32f103.md","chips/air32f103/board.md","chips/air32f103/daplink.md","chips/air32f103/enhancement.md","chips/air32f103/hardware.md","chips/air32f103/index.md","chips/air32f103/mcu.md","chips/air32f103/switchFromSxx.md","chips/air601/board.md","chips/air601/changelog.md","chips/air601/hardware.md","chips/air601/index.md","chips/air601/mcu.md","chips/air640w/board.md","chips/air640w/hardware.md","chips/air640w/index.md","chips/air640w/mcu.md","chips/air780e/air700e.md","chips/air780e/air780eg.md","chips/air780e/board.md","chips/air780e/changelog.md","chips/air780e/firmware.md","chips/air780e/hardware.md","chips/air780e/index.md","chips/air780e/iomux.md","chips/air780e/mcu.md","chips/air780e/multiownload.md","chips/air780e/network.md","chips/air780e/pwrkey.md","chips/air780e/tts.md","chips/air901/board.md","chips/air901/hardware.md","chips/air901/index.md","chips/air901/mcu.md","chips/chips.md","chips/coremark/README.md","chips/esp32c3/board.md","chips/esp32c3/change_flash.md","chips/esp32c3/hardware.md","chips/esp32c3/index.md","chips/esp32c3/power_dissipation.md","chips/esp32s3/board.md","chips/esp32s3/hardware.md","chips/esp32s3/index.md","chips/esp32s3/mifi.md","chips/index.md","chips/question.md","chips/rp2040/index.md","chips/supported.md","chips/swm181/board.md","chips/swm181/hardware.md","chips/swm181/index.md","chips/swm181/mcu.md","chips/swm181/swm181.md","chips/win32.md","develop/add_lua_module.md","develop/add_myapi_5min.md","develop/c_wait.md","develop/cli/README.md","develop/cli/cmd_base.md","develop/cli/cmd_burn.md","develop/cli/cmd_pkg.md","develop/cli/cmd_prj.md","develop/cli/frontend.md","develop/cli/project.md","develop/compile.md","develop/compile/Air101.md","develop/compile/Air105.md","develop/compile/Air302.rst","develop/compile/Air640w.rst","develop/compile/Air780E.md","develop/compile/Cloud_compilation.md","develop/compile/ESP32C3.md","develop/compile/Linux.md","develop/compile/Win32.md","develop/contribute/add_module.md","develop/contribute/dev_doc/core/index.md","develop/contribute/dev_doc/core/luat_core.md","develop/contribute/dev_doc/core/luat_debugger.md","develop/contribute/dev_doc/core/luat_font.md","develop/contribute/dev_doc/core/luat_fs.md","develop/contribute/dev_doc/core/luat_memory.md","develop/contribute/dev_doc/core/luat_msgbus.md","develop/contribute/dev_doc/core/luat_platform.md","develop/contribute/dev_doc/core/luat_pm.md","develop/contribute/dev_doc/core/luat_timer.md","develop/contribute/dev_doc/core/luat_zbuff.md","develop/contribute/dev_doc/core/luat_zstruct.md","develop/contribute/dev_doc/core/sys_wait_pub.md","develop/contribute/dev_doc/index.md","develop/contribute/dev_doc/peripherals/index.md","develop/contribute/dev_doc/peripherals/luat_fonts.md","develop/contribute/dev_doc/peripherals/luat_gpio.md","develop/contribute/dev_doc/peripherals/luat_ir.md","develop/contribute/dev_doc/peripherals/luat_spi.md","develop/contribute/dev_doc/peripherals/luat_usart.md","develop/contribute/dev_doc/peripherals/luat_wlan.md","develop/contribute/index.md","develop/contribute/luadb.md","develop/contribute/soc_format.md","develop/contribute/style.md","develop/docs.md","develop/docs_design.md","develop/docs_use.md","develop/filesystems.md","develop/hex_string.md","develop/soc_download.md","index.md","iotpower/cc/index.md","iotpower/cc/index-en.md","iotpower/cc/parts.md","iotpower/cc/parts-en.md","iotpower/cc/question.md","iotpower/cc/tech.md","iotpower/cc/tech-en.md","iotpower/cc/usage.md","iotpower/cc/usage-en.md","iotpower/cc/wrong.md","iotpower/devices.md","iotpower/index.md","iotpower/index-en.md","iotpower/pc.md","iotpower/pc-en.md","iotpower/power/english.md","iotpower/power/index.md","iotpower/pro/connect.md","iotpower/pro/index.md","iotpower/pro/tech.md","iotpower/pro/usage.md","luaGuide/index.md","luaGuide/introduction.md","luaGuide/luaReference.md","luaGuide/luatFramework.md","luaGuide/luatFramework_exts.md","luaGuide/luatask.md","pages/emulator.md","pages/supports.md","pages/tools.md","peripherals/camera_gc032a/demos.md","peripherals/camera_gc032a/hardware.md","peripherals/camera_gc032a/index.md","peripherals/chip_gtfont/demos.md","peripherals/chip_gtfont/hardware.md","peripherals/chip_gtfont/index.md","peripherals/eink_1.54/hardware.md","peripherals/eink_1.54/index.md","peripherals/eink_1.54/software.md","peripherals/index.md","peripherals/lcd_1in54_240x240/demos.md","peripherals/lcd_1in54_240x240/hardware.md","peripherals/lcd_1in54_240x240/index.md","peripherals/lcd_1in8_128x160/demos.md","peripherals/lcd_1in8_128x160/hardware.md","peripherals/lcd_1in8_128x160/index.md","peripherals/lcd_2in4_320x240/demos.md","peripherals/lcd_2in4_320x240/hardware.md","peripherals/lcd_2in4_320x240/index.md","peripherals/lcd_air10x/demos.md","peripherals/lcd_air10x/hardware.md","peripherals/lcd_air10x/index.md"],objects:{},objnames:{},objtypes:{},terms:{"0":[0,1,3,4,6,7,9,10,12,13,15,16,20,23,24,25,26,27,29,30,31,32,33,34,35,36,38,39,40,41,43,44,45,46,47,48,49,50,52,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,83,84,85,86,87,88,89,91,92,93,94,95,96,97,98,100,101,103,105,106,107,108,109,110,111,113,114,115,116,117,119,120,123,124,125,127,128,130,131,132,133,159,162,163,166,168,169,170,171,172,175,176,177,178,179,181,182,183,184,187,188,189,190,192,193,194,195,197,198,200,201,202,209,210,213,217,218,219,220,225,230,231,233,235,240,242,244,246,247,249,250,255,264,265,266,268,269,270,271,272,281,286,290,291,298,299,301,302,304,306,308,313,314,320,322,323,326,327,330,331,332,333,337,339,340,341,345,349,351,353,358,363,366,371,372,375,376,377,378,379,387,404],"00":[11,25,38,52,90,113,133,183,252,315,375],"000":[357,376],"0000":351,"00000000":[344,351],"000000000000":131,"00008000":351,"0000ff":159,"0001":[188,189,190],"00010000":351,"0002":[188,189,190],"000287":179,"0003":[188,189,190],"0004":[188,189,190],"0005":[188,189,190],"0006":[188,189,190],"0007":[188,189,190],"0008":[188,189,190],"0009":[188,189,190],"000\u03bca":357,"000a":373,"000bc":376,"0010":52,"002f0200":344,"00380000":351,"00390000":344,"0060ma":223,"00ff0200":351,"01":[0,25,31,38,109,110,113,130,131,133,252,281,323,332,340,341,349],"0100":52,"01000000":15,"01001000":351,"0101":94,"01010000":351,"0102":25,"010203":117,"0107ma":223,"0111":52,"0123":375,"0123456789":159,"01300000":351,"01380000":351,"02":[9,25,38,52,96,124,193,194,195,265,281,315,323,333,351],"02d":375,"02x":[6,78],"03":[15,25,96,131,265,281,324,331,339],"03083333":38,"031":56,"03272018":[193,194,195],"0335":38,"03_event":159,"03_overview":159,"04":[25,94,96,130,281,308,381],"0455":38,"04923":376,"04_widget":159,"05":[11,20,122,126,281,332],"05\u03bca":371,"05_btnmatrix":159,"05_indev":159,"05v":235,"06":[25,92,96,120,131,265,281,332],"07":[6,13,14,25,56,96,281,294,295,297,338,375],"08":[126,281],"09":[10,281],"0921ma":229,"092v":209,"09_chart":159,"0_":376,"0a":297,"0b":297,"0m":1,"0u":211,"0v":[218,235,252,358,369,372],"0x":[11,15,25,30,52,56,73,90,96,113,115,124,127,133,193,194,195,331,336,350,351,375,376],"0x0":376,"0x00":[2,6,9,25,35,62,65,70,124,133,159,170,171,172,188,189,190,193,194,195,214,248,290,337,341,343,375],"0x0000":[35,336],"0x000000":162,"0x00000000":344,"0x000080":[188,189,190],"0x0000ff":[35,109,162],"0x0001":336,"0x0002":336,"0x0003":336,"0x0004":336,"0x001f":[35,175,209,217,290],"0x00300000":15,"0x00ff00":[35,162],"0x00ffff":109,"0x00u":211,"0x01":[9,25,35,62,70,89,124,133,193,194,195,214,290,331,332,337,341,343,375],"0x01001000":235,"0x0105":332,"0x0190":332,"0x02":[9,35,62,96,124,193,194,195,214,290,337,341,343,375],"0x03":[36,62,125,193,194,195,214,290,337,341,343,375],"0x04":[9,35,62,124,193,194,195,214,248,290,337,341,343],"0x05":[62,214,290,341],"0x06":[62,77,78,193,194,195,209,214,217,290,332,341],"0x07":[62,70,77,78,188,189,190,214,290,341],"0x08":[9,35,124,188,189,190,214,290,341],"0x09":[214,290,341],"0x0a":[52,341,375],"0x0b":56,"0x0c":[56,188,189,190],"0x0ce0":[209,217],"0x0f":[9,25,35,124,170,171,172,188,189,190],"0x1":376,"0x10":[9,35,124,188,189,190],"0x100":[110,170,171,172,187],"0x10000":[170,171,172],"0x11":[25,32,56,96],"0x12":[29,56,133,331,338],"0x1234":[127,133,331],"0x12345678":[177,178,179],"0x13":[29,96],"0x14":34,"0x18":[188,189,190],"0x1a":133,"0x1a5a5bbx":252,"0x1a5a5ccx":252,"0x1a6a5cdx":252,"0x1a8a6ddx":252,"0x1a8a6edx":252,"0x1a9a6ddx":252,"0x1ba01477":252,"0x1f":34,"0x1f450":159,"0x1f451":159,"0x1f470":159,"0x1ff":[34,62],"0x1fffffe6":62,"0x20":[9,35,73,124,188,189,190,193,194,195,375],"0x20000000":[214,290],"0x2009fffc":89,"0x21":[35,331],"0x22":32,"0x2603":124,"0x2ba01477":252,"0x2c":[209,217],"0x2c06":[209,217],"0x2f":25,"0x30":[56,133,159,375],"0x31":[6,96,133,350,375],"0x3132":350,"0x32":[96,133,331,350,375],"0x33":[96,115,133,170,171,172,331,375],"0x3333ff":87,"0x34":[96,338],"0x35":96,"0x38":[170,171,172],"0x39":159,"0x3b":[56,188,189,190],"0x3ba00477":252,"0x3f":[77,78,123],"0x40":[9,35,124,188,189,190],"0x4001244e":252,"0x41":[159,375],"0x411fc231":252,"0x412fc230":252,"0x42":[188,189,190,375],"0x44":[25,188,189,190,209,217,375],"0x4567":[133,331],"0x48":[9,35,124],"0x4b":125,"0x4ba00477":252,"0x4e00":159,"0x4f":[77,78],"0x52":[188,189,190],"0x55":[125,133,252],"0x5678":127,"0x5a":[96,159,343],"0x5b":[77,78],"0x5c":25,"0x60":[9,35,124],"0x61":[159,375],"0x62":375,"0x65":375,"0x66":[77,78],"0x67":375,"0x68":[25,375],"0x69":375,"0x6b":[188,189,190],"0x6c":375,"0x6d":[77,78],"0x6e":375,"0x6f":[77,78,375],"0x70":375,"0x72":375,"0x74":375,"0x75":[25,375],"0x79":375,"0x7a":159,"0x7d":[77,78],"0x7f":[77,78],"0x7ff":62,"0x7fff":159,"0x80":[9,35,70,124,159],"0x81e0000":344,"0x82":72,"0x83":[9,35,124],"0x84":[9,35,124],"0x86":125,"0x90":[65,193,194,195],"0x9f":[115,192,209,217],"0x9fff":159,"0xa23p":376,"0xa3":96,"0xa5":343,"0xa9":20,"0xaa":[96,125,133,252],"0xac":[170,171,172],"0xbb":[96,188,189,190],"0xbebada":376,"0xc":133,"0xc5":336,"0xc8":133,"0xcc":96,"0xd8":[188,189,190],"0xdd":96,"0xe5":[6,188,189,190],"0xeb":[188,189,190],"0xeeeeff":87,"0xef":[188,189,190],"0xef15":65,"0xef16":65,"0xef17":[193,194,195],"0xef4018":[209,217],"0xf":34,"0xf0":[34,170,171,172],"0xf005":159,"0xf2":25,"0xf33":159,"0xf8":[9,35,124],"0xf800":[133,209,217],"0xf9":[188,189,190],"0xfe":[188,189,190,336,343],"0xff":[6,32,34,35,36,73,77,159,188,189,190,327,330,351,375,376],"0xff0000":35,"0xffff":[35,36,66,133,250,290,330],"0xffffff":[209,217],"0xffffffff":[36,89,125,251,330],"0y":124,"1":[0,1,3,6,8,9,11,12,13,15,17,18,20,22,23,24,25,26,27,29,30,33,34,35,36,38,39,40,41,42,43,44,45,46,47,48,49,50,52,54,55,56,57,58,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,81,82,83,84,85,86,87,89,91,92,93,94,95,96,97,98,99,100,101,103,104,106,107,109,110,111,113,114,115,116,117,119,120,121,123,124,125,127,128,130,131,132,133,134,159,162,163,165,166,168,169,170,171,172,175,176,177,178,179,182,183,184,187,188,189,190,192,193,194,195,197,198,199,200,201,202,206,208,209,210,213,214,215,217,218,220,225,228,230,231,232,233,234,240,242,244,246,247,249,250,251,255,257,263,264,265,266,268,269,270,271,272,279,284,288,290,296,297,300,302,304,306,308,317,322,323,327,329,330,331,332,333,336,339,340,341,344,345,346,348,350,352,355,357,358,360,369,371,372,377,378,379,382,385,392],"10":[0,2,6,9,10,19,23,29,30,31,35,42,62,64,70,73,76,86,87,88,92,94,96,101,113,116,119,122,124,125,133,159,165,176,182,183,184,193,194,195,198,208,209,217,218,220,225,227,230,235,240,247,251,252,265,266,269,274,281,297,315,317,330,338,339,351,366,375,378,379,381],"100":[1,9,15,20,23,26,36,41,43,47,64,74,77,87,92,101,103,109,125,159,170,171,172,182,183,184,193,194,195,209,217,247,252,265,315,340,358,373,375,376,378],"1000":[1,9,12,23,39,40,41,44,45,46,47,48,50,52,55,58,60,61,62,63,65,66,69,70,71,72,73,74,75,76,77,78,79,81,82,83,85,86,87,89,101,103,109,111,119,120,121,131,159,163,166,168,175,177,178,179,181,182,183,184,187,188,189,190,192,193,194,195,197,199,209,210,211,217,265,299,318,319,344,350,376,377,378,379],"10000":[30,65,92,103,107,129,176,198,377,379],"100000":65,"1000000":[179,351],"1000000hz":103,"1000hz":[209,217],"1000m":[377,378],"100\u03c9":235,"100ask":159,"100k":[247,248,251,326],"100khz":[211,215],"100ksp":281,"100m":[1,20,25,209,217],"100mbp":291,"100mv":36,"100u":[128,211,218,358,372],"101":[167,290,311,375],"101_lua_lod":204,"1024":[4,11,29,38,89,92,108,111,115,125,133,188,189,190,200,201,202,209,217,240,279,326,331,343,350,376],"1024m":122,"1027923658":381,"102a3b4c5d6":128,"103":[291,346,348],"103336":166,"103348":166,"103372":166,"103_lua_lod":204,"105":[15,25,87,115,240,290,312],"105_lua_lod":204,"106":93,"1061":166,"1061642968":[209,215,222,228,244,301,381],"1063":166,"107":38,"10885":263,"108mhz":235,"109":92,"10_anim":159,"10k":[251,252,364],"10khz":[103,353,358,369,371,372],"10m":12,"10ma":369,"10mbp":291,"10mhz":211,"10mil":[219,224,231,253,262,263,264],"10mm":235,"10mv":[358,372],"10u":[116,252],"10v":355,"10w":208,"10x":290,"11":[6,14,67,92,96,113,117,124,131,159,165,208,209,217,218,220,223,225,227,229,230,235,252,263,265,269,281,322,325,326,327,329,330,351,366,375,378],"110":274,"110m":32,"11100":34,"11111":34,"112":344,"1120":92,"112kb":209,"113":38,"114":[92,113,375],"114514":375,"115":92,"115200":[38,81,125,132,177,178,199,202,209,210,217,218,263,340,351],"1152000":351,"1173":166,"1174":166,"1175":166,"11898":286,"11b":257,"11bit":297,"11g":38,"11th":[56,375],"12":[6,9,14,20,29,35,38,52,84,92,94,100,101,106,116,117,124,133,159,168,225,227,230,235,240,242,252,263,269,281,286,297,331,337,349,350,351,358,369,372,375,376],"120":[35,87,93,94,159,175,209,217,279],"1200":[89,265,351],"120000":[378,379],"12010126":31,"120kb":297,"120mhz":235,"121":56,"122":117,"1222":18,"12222":18,"123":[6,17,19,23,28,84,93,102,115,130,133,266,274,301,331,375,376],"12312121212":274,"123123":375,"123321456654":[133,331],"1234":[17,92,117,127,375],"12341234":289,"12345":[345,375],"123456":[6,71,93,113,117,375],"1234567":[93,375],"12345678":[10,93,131,289,375],"1234567812345678":19,"123456789":[31,93,375],"1234567890":[6,105,167,209,217],"12345678901234":167,"1234567890123456":[6,19,167],"1234567890666666":[6,19,167],"12345678910":375,"1234567891011":375,"123487651234876512348765123487651234876512348765":96,"123abc":117,"123jfoiq4hlkfjbnasdilfhuqwo":[11,90],"124":29,"124045331":92,"124045360":92,"12411":[56,57],"1248":89,"124999":252,"125":235,"125000":252,"126":96,"1262":166,"126322567":[378,379],"1264":166,"127":[20,123],"128":[6,19,29,81,96,105,133,159,163,167,175,209,217,252,265,272,279,331,371,398],"128035":252,"1280m":92,"128hz":274,"128k":[250,251,270,352],"128kb":266,"128m":[193,194,195],"128mb":282,"128x160":392,"1298":315,"12awsaslwlaawsllslllswasllalssawwlawslaw":375,"12awslawslaw":375,"12bit":[125,215],"12f":[33,255,256,290],"12f\u4f7f\u7528\u8bf4\u660e":255,"12f_\u6a21\u5757\u4ea7\u54c1\u89c4\u683c\u4e66":255,"12f_modul":255,"12f_wifi":255,"12f_wifi\u6a21\u5757\u786c\u4ef6\u8bbe\u8ba1\u624b\u518c":255,"12m":[235,290],"12mhz":235,"12x":124,"12x12":168,"13":[9,67,113,116,131,223,225,227,229,230,235,242,259,265,269,279,281,351,375],"132":378,"1328565":315,"132mhz":235,"133":378,"133a":94,"134":378,"1348":166,"135":378,"1350":166,"1354":166,"135hello":375,"136":378,"137":[93,378],"138":378,"139":378,"13m":264,"14":[33,38,67,113,116,218,223,225,227,230,235,242,259,265,269,281,340,341,351,376],"140":[92,378],"141":378,"1415926":375,"1416":[375,376],"142":[166,378],"144":166,"144mhz":235,"145":166,"1460":113,"14bit":297,"15":[28,30,67,71,92,93,94,110,123,124,133,159,179,200,201,202,208,218,225,227,230,235,252,259,265,269,279,281,324,351,358],"150":[159,290],"15000":[57,92,130,131],"1500000":[104,204,231,291],"150m":235,"150mbp":257,"152":9,"15200":351,"156mhz":235,"15\u03bca":[353,358],"15dbm":92,"16":[1,2,4,6,9,12,20,26,35,36,38,70,87,89,91,92,94,96,106,117,124,125,127,133,159,188,189,190,209,217,220,225,227,235,240,242,250,251,252,257,269,279,281,286,290,296,297,331,350,351,376,395,398,401],"160":[9,35,133,159,163,175,177,178,209,279,398],"1600":166,"16000":1,"16000000":252,"1601":166,"160kb":261,"160khz":182,"160m":[284,290],"160mhz":[177,178,240],"160x":163,"16384":[4,209,217],"1650":101,"1652230554":106,"165kb":90,"16777216":[188,189,190],"168":[128,131],"168mhz":235,"16bit":215,"16byte":[113,252],"16e":376,"16k":352,"16kb":[4,297],"16ksp":297,"16m":[123,252,282],"16mb":[188,189,190,281,282,286],"16mflash":208,"16px":324,"16x":[9,35,124],"17":[9,19,20,35,71,92,94,106,109,110,111,115,186,193,194,195,209,218,219,220,224,225,227,231,235,242,247,253,259,262,263,264,269,281,285,345,381],"1709":166,"1712":166,"1712mv":166,"1713":166,"172":159,"176":[344,371],"1776":166,"1777":166,"177x177":[9,35,124],"17955":375,"18":[9,20,35,56,63,71,96,122,168,169,209,220,225,227,235,242,257,259,279,281,301,333,337,381],"180":[9,35,124,131,159],"1800":101,"180d":96,"180mhz":235,"182970020":381,"1850":92,"1884":93,"18k":134,"18khz":72,"19":[9,19,25,35,38,63,92,209,220,225,227,235,242,259,279,281,301,315],"190":159,"1900":106,"1919810":375,"192":[35,87,124,128,131,179,280],"19200":125,"1926":375,"192kb":244,"192m":[234,290],"192mhz":235,"194":38,"1999":[252,315],"1\u03bca":[369,372],"1_":376,"1_20211022":225,"1_layer":376,"1a":[21,357],"1a_v1":387,"1byte":[30,113],"1cg28rk":314,"1e":376,"1f":375,"1fp":3,"1k":[81,257,265],"1kb":[200,201,202],"1khz":[103,182,183,184,209,217],"1m":[1,89,265,279,351],"1ma":369,"1mb":257,"1mbyte":[299,318,319],"1msp":297,"1mv":[369,372],"1nf":218,"1s":[177,178,179,197,379],"1st":[35,376],"1u":[89,179],"1ua":[297,358,372],"1uf":[218,235],"1us_tick":30,"1v":252,"1x":124,"1y":124,"2":[0,1,3,8,9,11,12,13,17,20,22,23,24,25,26,33,34,35,36,38,44,54,56,57,58,65,67,71,72,76,77,78,81,84,87,89,91,92,93,94,96,97,98,99,101,104,109,110,113,115,117,119,120,121,123,124,125,128,131,133,159,162,163,165,166,170,171,172,176,177,178,183,188,189,190,193,194,195,200,201,204,206,208,209,210,214,215,217,218,219,220,223,224,225,229,230,231,232,234,240,242,244,247,250,251,253,255,257,262,263,264,266,269,270,271,272,274,279,284,288,289,290,296,297,299,300,302,306,308,317,320,323,329,331,333,336,343,345,346,348,350,355,358,360,366,372,373,377,378,392],"20":[9,35,38,62,87,92,94,96,111,115,124,133,159,163,170,171,172,175,177,178,183,187,188,189,190,192,193,194,209,217,220,225,227,235,257,259,265,269,279,281,286,290,331,336,355,360,375,376,381],"200":[1,9,23,24,37,58,65,71,77,131,159,170,171,172,280,333,369,372,376],"2000":[35,56,67,78,97,101,103,109,128,159,186,197,200,201,202,209,217,377,378],"20000":[56,333],"2000000":[35,111,115,125,192,209,217,345,351],"20000000":[9,115,339],"2000m":378,"20034598":169,"200345a8":169,"200\u03bca":[369,372],"200k":[11,270],"200kb":[244,261],"200m":[122,290],"200ma":[235,369],"200mhz":240,"201":35,"2015":[375,376],"2017":56,"2018":[31,159,315,375],"2019":[315,322,325,326,327,329,330,337,375],"2020":[245,251,281,286,298,339,340,341],"2021":[48,106,186,209,247,315,323,331,338],"20211011092353":316,"20211011092608787_qq\u622a\u56fe":316,"20211202193519160_air103_\u6838\u5fc3\u677f\u8bbe\u8ba1\u624b\u518c":225,"20211202193606476_air103_mcu\u8bbe\u8ba1\u624b\u518c":225,"2022":[0,6,13,14,20,38,101,126,159,266,308,315,324,332,333],"20220114193313925_air105\u82af\u7247\u6570\u636e\u624b\u518c":233,"20220303111656608_air105\u6838\u5fc3\u677f\u4f7f\u7528\u624b\u518c":233,"20220419_220202":304,"20220420_223344":306,"20220511":232,"20220513112445291_air105_mcu\u8bbe\u8ba1\u624b\u518c":233,"20220605164850945_air32f103\u82af\u7247\u6570\u636e\u624b\u518c":[246,249],"20220612160340":235,"20220612160407604_qq":235,"20220721163511464_\u534e\u82af\u5fae\u7279swm181\u6570\u636e\u624b\u518c":[294,295,297],"20221028114557272_air780e\u5f00\u53d1\u677f\u539f\u7406\u56fev1":264,"20221104135203881_780x\u5f00\u53d1\u677f\u539f\u7406\u56fe\u548cpcb":264,"20221110145812309_air780e\u5f00\u53d1\u677f\u5587\u53ed\u6269\u5c55\u677fv1":264,"20221219":269,"2023":[2,6,10,12,15,17,19,20,25,28,29,38,63,67,92,96,110,117,120,122,124,130,131,247,265,349],"20230330":269,"20230619165631229_air601":255,"20230626161923628_\u5f00\u53d1\u677fevb_air601":255,"20230721175506039_air001\u82af\u7247\u6570\u636e\u624b\u518c":213,"20230726105503590_air601":255,"2048":105,"2048bit":105,"204mhz":235,"205":37,"20_list":159,"20bit":252,"20k":[159,251],"20khz":77,"20m":[115,339],"20ma":372,"20mhz":240,"20mv":358,"20ppm":[358,372],"20v":[353,355,363],"21":[18,38,125,159,209,220,225,227,235,259,269,281,315,349,375,381],"211013":297,"216m":247,"216mhz":248,"21mm":[281,286],"21v":358,"21x21":[9,35,124],"22":[9,10,35,38,71,85,86,101,109,198,220,223,225,227,229,235,245,257,259,269,281],"220":[35,159],"2200":31,"223":375,"227096712":92,"227857":252,"23":[6,13,15,38,92,94,107,109,131,159,220,225,227,235,259,269,281,375,376],"230":375,"230400":125,"231":38,"233":375,"2333":375,"233333":117,"2334ma":223,"23423":71,"23456":300,"235":159,"239":252,"24":[9,35,38,67,94,109,162,168,193,194,195,218,220,225,227,235,240,269,281,297,331,332],"240":[3,54,87,89,93,133,159,177,178,209,217,279,280,331,371,395,401],"2400":[125,265],"24000000":[12,128,163],"24000000u":211,"240m":[208,286],"240mhz":[89,177,178,257],"240x240":392,"240x320":[291,392],"2425864":56,"244":113,"2452":92,"248kb":297,"2490":315,"24_page":159,"24bit":35,"24m":[235,279],"24mhz":[193,194,195,297],"24v":[353,358,363],"25":[1,38,94,96,124,131,218,220,225,227,235,242,263,269,281,298,322,326,327,330],"250":91,"2500":[209,217],"2549515":315,"255":[12,13,17,38,56,113,128,131,159,163,193,194,195,341,351,375,376],"255tick":30,"256":[19,96,103,110,125,159,182,193,194,195,209,217,272,375,376],"2560m":92,"256k":[208,251,279],"256kb":261,"256m":[250,251,290],"26":[9,17,35,38,220,225,227,235,242,259,269,281],"2603":124,"2650":101,"2670":166,"2673":166,"2675":166,"26_slider":159,"26m":291,"27":[2,6,20,36,38,52,66,71,124,170,171,172,220,225,227,229,235,242,248,252,259,269,281,339],"270":[9,35,124],"270k":134,"278":38,"2793ma":229,"28":[6,42,94,96,159,225,227,235,242,259,269,281,325,329],"280":371,"281":159,"288":344,"288k":[257,279],"29":[25,36,159,223,225,227,235,242,259,269,281,375],"292":25,"2999":31,"29bit":297,"2a":[363,364,369,371,372],"2bia":297,"2byte":252,"2d":38,"2d\u52a0\u901f":279,"2f":[47,170,171,172,254,289],"2g":[270,272,317,381],"2k":265,"2m":[89,115,209,221,226,279,290,344,351],"2ma":369,"2mbp":257,"2mhz":[89,177,178],"2msram":208,"2nd":[35,159,375,376],"2u":252,"2v":[0,235,252,369],"2x":[124,159],"2y":124,"3":[0,3,8,9,13,17,22,23,33,34,35,36,38,44,48,53,56,57,58,65,70,71,72,76,77,78,84,87,92,94,96,98,101,104,106,107,112,113,115,117,121,124,131,133,159,163,165,166,170,171,172,188,189,190,192,193,194,195,199,204,206,208,209,214,217,218,220,225,230,231,234,242,247,250,251,264,265,269,272,279,284,288,290,296,297,314,315,320,323,327,328,331,336,344,345,346,348,350,352,355,358,360,372,377,378,390],"30":[9,35,92,93,94,109,124,133,159,163,175,184,204,206,225,227,235,242,252,259,263,269,281,285,297,308,376,379],"300":[58,101,109,162,181,184,323],"3000":[22,57,71,85,86,92,94,107,113,129,130,197,377],"30000":[58,119],"3000000":351,"3000m":[93,130],"3000u":122,"300k":270,"300mah":208,"301":109,"302":291,"305419896":[177,178,179],"30kb":244,"30ma":297,"30mil":218,"30u":252,"30w":[291,385],"31":[31,36,38,92,96,103,106,117,127,131,133,159,186,209,218,225,227,235,252,259,269,279,281,350,375,376],"31249":252,"3132":350,"313233616263":117,"31393033535138385400000000617603":179,"314":376,"31416e1":376,"3149ma":229,"32":[6,9,19,28,35,89,90,94,101,106,116,117,118,124,127,133,159,179,187,225,227,235,240,251,252,257,259,269,281,286,297,331,344,350,376],"320":[3,133,159,209,217,279,401],"3200":26,"32000u":211,"320480":97,"320m":92,"32472115200":31,"3250ma":229,"3269ua":236,"32765":274,"32768u":211,"32_textarea":159,"32bit":[2,89,250,290],"32k":[11,89,90,235,251],"32kb":[90,188,189,190,297],"32kbyte":215,"32khz":[235,297],"32mhz":297,"33":[36,94,115,117,127,133,159,225,227,235,269,328],"330":280,"3300":101,"330uf":218,"332kb":244,"34":[127,225,227,235,269,375],"3400":101,"3432":263,"345":[315,375,376],"34e1":376,"35":[38,94,177,178,220,225,235,269,376],"36":[38,94,220,225,235,247,269,376],"360":[159,366],"3600":[10,58,71],"3600000":266,"36khz":338,"37":[225,227,235,375],"37524839":299,"38":[94,225,227,235],"380d":96,"38400":125,"388":92,"3882":166,"3889":166,"3898":166,"38k":[32,338],"39":[113,235,269],"3\u7248\u672c":314,"3a":[358,363],"3bia":297,"3cm":247,"3d":[38,391],"3duti":297,"3g":[270,272],"3gpp":94,"3hz":182,"3m":[291,355],"3rd":[35,375,376],"3v":[101,170,171,172,188,189,190,193,194,195,199,208,235,247,264,281,297,390],"3v3":[281,286],"3x":159,"3yn5g_tr":225,"4":[0,6,8,9,13,17,20,22,23,33,34,35,36,38,56,58,70,71,72,76,77,78,84,85,86,87,91,92,94,96,98,101,104,106,109,111,113,115,117,121,124,131,133,159,165,166,170,171,172,177,178,179,188,189,190,193,194,195,202,206,208,209,213,217,218,220,225,230,234,240,242,247,250,251,252,257,263,264,265,269,279,284,288,290,297,298,323,327,328,332,336,340,343,350,351,352,355,358,360,366,369,372,373,377,378,392],"40":[9,35,92,94,116,124,159,175,176,177,178,209,217,225,227,235,240,291,331,376],"400":[11,12,90,163],"400001004":[220,225],"400k":279,"400ma":235,"40123":113,"404":[24,37],"4067":38,"4095":17,"4096":[4,17,26,98,188,189,190],"4096bit":105,"40k":[159,218,248,251],"40kb":261,"40m":218,"40mhz":[177,178,218,240,257],"40u":[116,369,371],"41":[176,225,227,235,291],"4126ma":229,"4193":71,"42":[176,225,227,235,291],"42009":375,"43":[106,176,186,209,225,227,235,269],"4305ma":285,"433000000":[85,86],"4344ma":229,"4375":[209,217],"4392ma":285,"44":[92,235,236,269,279],"44000":7,"44100":26,"448":344,"448k":270,"448kb":266,"45":[159,204,235,269,376],"4500":[209,217],"45000":130,"456":[117,130],"458":159,"46":[89,176,189,190,195,235,236],"460800":[125,351],"47":[52,176,235,269],"472":280,"4736522":56,"47uf":218,"48":[56,94,159,163,176,179,235],"480":[159,208,291],"4800":[125,265],"48000000":30,"4804ma":236,"480k":[268,290],"480kb":266,"4846ma":223,"485":[125,206,265],"48m":[208,296],"48mhz":[248,297],"49":[176,235,375,376],"492":166,"494":166,"49k":218,"4_20210909":220,"4byte":[30,113],"4duti":297,"4e":376,"4f":375,"4g":[10,71,92,204,208,270,272,281,286,289,352,382],"4gmodem":208,"4hz":91,"4k":[11,15,193,194,195,206,252],"4kb":[10,188,189,190],"4kbyte":215,"4m":[235,279],"4mb":[281,282],"4mflash":208,"4mm":[221,222,352],"4th":[35,170,171,172,375,376],"4v":[166,209,217,218,235,297],"5":[6,9,13,17,23,25,28,30,33,36,38,52,56,58,63,66,67,71,77,78,83,84,90,92,94,101,103,109,113,117,124,125,128,133,159,162,163,165,166,169,170,171,172,179,181,182,184,188,189,190,194,195,206,208,209,215,217,225,230,234,240,242,247,250,252,257,264,274,279,281,286,290,291,313,323,328,330,344,351,352,355,358,360,369,370,372,373,375,377,378,379,404],"50":[29,38,87,103,124,159,170,171,172,182,183,184,235,265,375],"500":[20,66,70,72,78,91,119,159,170,171,172,184,209,211,217,358,379],"5000":[23,48,71,92,107,109,129,170,171,172,177,178,179,197,198,377],"5000m":[23,198],"5000u":211,"500792601":381,"500\u03bca":358,"500m":[20,379],"500ma":218,"5016":179,"5023":198,"5037":[177,178],"50736":166,"50788":166,"5080":66,"50832":166,"50hz":20,"50kb":261,"50ksp":297,"50ma":358,"50mv":101,"51":[170,171,172,235,274,369],"510":104,"512":[12,29,71,108,132,159,265],"5120m":92,"512k":[279,286],"512kb":240,"514":375,"51k\u03c9":235,"51mm":[281,286],"52":[235,274,375],"520":162,"53":[232,235,274],"5370ma":229,"5383ma":223,"54":[9,235,274,392],"54mm":[219,224,231,253,262,263,264],"55":[92,93,235,274],"5576ua":223,"56":[94,235,279,297],"560177349780":398,"57":235,"57600":125,"58":235,"587923556178":261,"59":[25,38,56,235,376],"591":25,"592":166,"593":166,"595":[72,166],"5\u03bca":369,"5a":[353,358,363,371],"5d":208,"5g":[270,272,315],"5k":[250,251,290],"5kb":263,"5m":[109,240],"5ma":358,"5mbp":162,"5msp":240,"5s":[177,178,179,197],"5th":[170,171,172,375],"5ua":297,"5v":[235,247,252,281,286,289,353,360,363,364,370,371,372,373],"5v2a":369,"5v\u00b2":363,"6":[1,13,17,23,29,33,36,38,49,56,76,77,78,92,94,96,101,109,113,117,131,133,159,165,166,170,171,172,200,201,209,217,225,227,230,231,234,242,279,290,297,323,351,355,360,366,375],"60":[36,71,92,94,124,159,235,252,265],"600":[10,93,265],"60000":[92,96,113],"600000":266,"6050accel":64,"6050gyro":64,"6050temp":64,"6055f9779010":71,"606":280,"60fp":208,"60hz":36,"60kb":244,"61":[117,235,376],"6100n":252,"6115ma":229,"6132ma":285,"618":63,"618_lua_lod":204,"61984":166,"62":[113,117,235],"6203cc94c7fb24029b110408_88888888":31,"62052":166,"62060":166,"6228":263,"625m":96,"63":[17,38,70,117,124,170,171,172,235],"64":[17,19,28,70,89,98,118,127,159,188,189,190,209,217,235,302,344,376],"6406ma":223,"640k":[235,279],"640m":92,"640x":291,"649926645":381,"64bit":[2,89,110,265],"64hz":274,"64k":[15,110,251,274,279,326],"64kb":[188,189,190,240,261,266,297],"64mb":282,"65":[9,159,235],"65525":80,"6553":274,"65535":[96,125],"65535u":30,"65536":[96,169],"65555":20,"656786354871":401,"6584ma":236,"65k":[398,401],"66":[9,159,209,217,235,351],"660335018289":395,"661835138573":404,"665811924219":384,"666":375,"67":[92,235],"6703ma":236,"6721ua":223,"6728ma":223,"68":[94,235],"6808454646333a0cbb8":[177,178],"682":94,"688":66,"69":235,"6byte":128,"6c95875d0f5ba69607nzfl":31,"6mm":[209,228],"6th":[170,171,172],"6v":[166,218,235,252,297,355,360,370,373],"7":[4,9,13,20,23,25,34,35,36,38,49,56,67,68,76,77,78,92,94,96,101,109,116,123,124,125,131,159,165,166,170,171,172,195,202,218,220,225,227,230,233,234,242,252,290,311,312,313,315,351,366,375,378],"70":[159,209,217,235,263],"700":109,"700mil":[219,224,231,253,262,263,264],"70ua":297,"71":[235,252],"72":[94,235],"7258089600":31,"7260ma":223,"72m":251,"72mhz":248,"73":235,"74":[235,279],"74hc595":53,"75":[92,170,171,172,235],"750k":274,"754":376,"757ccd0cdc5c90eadbeeecf638dd0000":6,"75hc595":72,"76":235,"767":91,"767427989":381,"768":[91,279],"76v":0,"77":235,"78":[170,171,172,235],"780e":[263,265],"789":[117,130,375],"78kb":244,"78mm":[219,224,231,253,262,263,264],"79":235,"7956ua":229,"7g":33,"7k":235,"7mm":385,"7s":235,"7th":[252,375],"7uf":218,"7v":[36,235,297],"7z":[223,229,236,255,285,315,344,351,366],"8":[2,4,9,12,13,20,23,26,35,36,38,57,62,63,65,66,70,73,77,78,85,86,89,91,92,94,101,104,106,109,110,111,113,115,124,125,127,128,133,159,162,163,165,175,184,186,188,189,190,192,193,194,195,199,200,201,202,208,209,217,225,227,230,235,242,248,252,272,279,286,290,297,315,332,339,340,345,351,355,360,375,377,378,392],"80":[9,24,35,58,89,159,175,177,178,235],"8000000":[26,211],"8000000u":211,"800k":[109,162],"802":257,"80300":166,"80364":166,"806":[279,375],"80m":[221,226,290],"80mhz":[89,177,178],"81":235,"810":375,"81e0000":344,"82":235,"8222ua":229,"827963649":381,"83":[9,235,351],"84":[94,235,289],"85":[92,235,326],"86":235,"861":236,"864040064024194":2,"86784":166,"86844":166,"86852":166,"87":235,"877164555":381,"88":235,"8883":93,"88v":0,"89":131,"898989898989899898":94,"8b":289,"8bit":[35,115,252],"8d":289,"8f":289,"8k":[252,265],"8m":[26,279,282],"8mb":[209,240,282,286],"8n1":[38,125,218],"8th":252,"8ua":208,"8v":[0,101,166,231,264,355,360,369,370,373],"9":[2,9,23,30,34,38,76,77,78,85,86,89,92,101,106,133,159,165,218,225,227,230,235,242,315,351,375,378],"90":[1,9,35,109,124,159,235,265,289,332],"9000":[129,252],"90000":159,"91":271,"911cha":375,"92":94,"921600":[104,125,200,201,204,209,222,228,281,286,291,344,351],"921fb54442d18p":376,"922u":252,"92k":254,"94k":257,"95":[209,263,289,328],"9501":263,"96":[94,168,404],"9600":[125,265],"967368887":381,"96k":[247,250,251],"96m":279,"97":376,"9731":124,"97656":166,"97672":166,"977":244,"97700":166,"97lo":376,"99":[38,315,332,375],"993":252,"999":375,"9a":289,"9b":289,"9m":252,"9th":375,"9u":30,"\u00b2":363,"\u00b9":363,"\u00df":159,"\u00e1":159,"\u03bca":[257,353,358,369,372],"\u03bcvision":[211,245,298],"\u03c0":376,"\u03c9":247,"\u2460":[204,355,360,366,369],"\u2460burn":206,"\u2460compil":206,"\u2460pc":[355,360],"\u2461":[207,355,360,366,369],"\u2461creat":206,"\u2461develop":206,"\u2462":[355,360,366,369,379],"\u2462first":206,"\u2462luatask":206,"\u2463":[206,355,360,369],"\u2463manipul":206,"\u2464":[206,355,360,369],"\u2465":[206,355,360,369],"\u2465\u2466":355,"\u2466":[206,355,360],"\u2467":[206,355,360],"\u2468":[206,355,360],"\u2469":[355,360],"\u247e":[355,360],"\u247f":[355,360],"\u4e0a\u8ff0\u76ee\u5f55\u7ed3\u6784\u4e2d\u7684makefile\u6587\u4ef6":313,"\u4e0b\u8f7d":314,"\u4e0b\u8f7d\u5e76\u89e3\u538b\u5230\u524d\u6b3e\u7684\u76ee\u5f55":314,"\u4e0b\u8f7dair302_sdk\u7684\u538b\u7f29\u5305":313,"\u4e0b\u8f7dluatos\u7684\u6e90\u7801":313,"\u4e0b\u8f7drtt\u7684\u73af\u5883\u5de5\u5177":314,"\u4e0b\u9762\u6211\u4eec\u5c31\u663e\u793a":162,"\u4e0d\u5efa\u8bae\u76f4\u63a5\u4e0b\u8f7dzip":313,"\u4e0d\u8981\u653e\u5728c\u76d8":314,"\u4e0d\u8981\u6709\u4e2d\u6587\u8def\u5f84":314,"\u4e0d\u9700\u8981\u540c\u6b65\u5b50\u6a21\u5757":313,"\u4e2dkeil\u7684\u8def\u5f84":313,"\u4f46\u6b22\u8fce\u62a5issu":313,"\u4f4d":297,"\u4f8b\u5982":314,"\u4fee\u6539":313,"\u4fee\u6539\u6216\u521b\u5efalocal":313,"\u5148\u542f\u52a8env":314,"\u5207\u6362\u5230rtt\u76844":314,"\u5382\u5546\u8981\u6c42":313,"\u53cc\u51fb":314,"\u53ef\u5355\u72ec\u6267\u884c":313,"\u53ef\u80fd\u6027\u4f4e":314,"\u5408\u5b99air001\u662f\u4e00\u6b3etssop20\u5c01\u88c5\u7684mcu":215,"\u542f\u52a8env\u7a97\u53e3":314,"\u5728":[313,314],"\u5730\u5740":314,"\u5927\u5927\u7684":313,"\u5982\u679c\u4f60\u662f\u5728\u627e\u5237\u673a":313,"\u5982\u679c\u53d1\u73b0\u7f16\u8bd1\u5931\u8d25":314,"\u5982\u679c\u7f16\u8bd1\u5931\u8d25":313,"\u5982\u679ckeil\u5b89\u88c5\u76ee\u5f55\u4e0d\u662f":313,"\u5982\u679cluatos\u4e0d\u5728":313,"\u5b89\u88c5\u80fd\u89e3\u538b7zip\u683c\u5f0f\u7684\u89e3\u538b\u7f29\u8f6f\u4ef6":313,"\u5b89\u88c5git":314,"\u5e76\u5efa\u597d":314,"\u5e76\u81ea\u52a8\u6253\u5305\u751f\u6210\u56fa\u4ef6\u538b\u7f29\u5305":313,"\u5f53\u524d\u7248\u672c\u4ec5\u652f\u6301keil\u7f16\u8bd1":313,"\u5f97\u5230\u7684\u76ee\u5f55\u7ed3\u6784\u662f\u8fd9\u6837\u7684":313,"\u5f97\u5230luatos\u76ee\u5f55":314,"\u5f97\u5230rt":314,"\u6211\u4eec\u63d0\u4f9b\u7684\u56fa\u4ef6\u5305\u5c31\u5305\u542b\u7f16\u8bd1\u597d\u7684\u56fa\u4ef6":313,"\u6216":314,"\u6267\u884c\u547d\u4ee4":314,"\u6267\u884c\u7f16\u8bd1":314,"\u62a5issue\u6216\u8005\u5230\u7fa4\u91cc\u558a\u4e00\u558a":314,"\u6307\u5411":313,"\u6309\u9ed8\u8ba4\u914d\u7f6e\u5c31\u5f88\u597d":314,"\u63a8\u8350\u76ee\u5f55\u4e3a":313,"\u6444\u50cf\u5934":279,"\u6572\u5165\u547d\u4ee4":314,"\u662f\u4e0d\u662fapi\u5f88\u7b80\u5355":162,"\u666e\u901a\u7528\u6237\u4e00\u822c\u4e0d\u9700\u8981\u7528\u5230\u672c\u6587\u7ae0":314,"\u66f4\u65b0\u8f6f\u4ef6\u5305":314,"\u672c\u6587\u8bb2\u8ff0\u7684\u662f\u81ea\u884c\u7f16\u8bd1\u56fa\u4ef6\u6587\u4ef6":314,"\u6bcf\u6b21luatos\u53d1\u65b0\u7248\u90fd\u4f1a\u628a\u7f16\u8bd1\u597d\u7684fls\u653e\u5230":314,"\u70e6\u8bf7\u53cd\u9988":314,"\u7248\u6743\u6240\u6709":376,"\u76ee\u5f55":313,"\u76ee\u5f55\u53ef\u4ee5\u770b\u5230":314,"\u76ee\u5f55\u6267\u884c":313,"\u770b\u770b\u5177\u4f53\u7684\u62a5\u9519\u539f\u56e0":313,"\u786c\u4ef6\u52a0\u901f":279,"\u786c\u72d7":279,"\u7b49\u5f85\u7f16\u8bd1\u5b8c\u6210":314,"\u7f16\u8bd1\u51fa\u7684\u56fa\u4ef6\u4f9d\u7136\u662fluatos\u56fa\u4ef6":313,"\u7f16\u8bd1\u6210\u529f\u4f1a\u663e\u793a":313,"\u7f16\u8bd1lua\u811a\u672c\u4e4b\u7c7b\u7684\u5e94\u7528\u578b\u6587\u6863":313,"\u83b7\u53d6luatos\u6e90\u7801":314,"\u83b7\u53d6rtt\u6e90\u7801":314,"\u89e3\u538b\u5230":313,"\u8bbe\u7f6ertt_root\u73af\u5883\u53d8\u91cf\u7684\u503c":314,"\u8be5sdk\u4e0d\u662fc":313,"\u8bf7\u4f7f\u7528":313,"\u8bf7\u786e\u4fdd\u6709\u6b63\u7248keil":313,"\u8bf7\u786e\u8ba4\u6240\u5728\u7684\u7f51\u7edc\u6ca1\u6709\u5c4f\u853dgitee\u7684\u8bbf\u95ee":314,"\u8d44\u6e90\u7ba1\u7406\u5668":314,"\u8d77\u7801\u9884\u75592gb\u7684\u78c1\u76d8\u7a7a\u95f4":313,"\u8dd1lua\u811a\u672c":313,"\u8df3\u8f6c\u4e00\u4e0b\u76ee\u5f55":314,"\u8df3\u8f6c\u76ee\u5f55":314,"\u8fd9\u4e2a\u6587\u6863\u4e0d\u662f\u4f60\u9700\u8981\u67e5\u770b\u7684\u5185\u5bb9":313,"\u8fd9\u4e2a\u8def\u5f84\u540e\u9762\u90fd\u4f1a\u7528\u5230":314,"\u8fd9\u662f\u7528\u4e8e\u81ea\u884c\u6269\u5c55\u56fa\u4ef6\u7684\u9ad8\u7ea7\u6587\u6863":313,"\u8fdb\u5165env\u6240\u5728\u76ee\u5f55":314,"\u8fdb\u5165rtt\u76ee\u5f55":314,"\u90091m\u7684\u56fa\u4ef6\u6587\u4ef6":314,"\u9009\u4e00\u4e2a\u7b80\u77ed\u7684\u76ee\u5f55":314,"\u901a\u5e38\u4e3a7zip\u683c\u5f0f":313,"\u901a\u5e38\u4f60\u4e0d\u9700\u8981\u8fd9\u4efd\u6587\u6863":313,"\u914d\u5408zbuff\u66f4\u7b80\u5355":162,"\u91c7\u7528\u9ad8\u6027\u80fd\u768432\u4f4darm":215,"abstract":[169,174,187,188,189,190,196,205,209,217,320,323,328,329,337,339,340,341,345,349,378],"air302_sdk\u5230":313,"boolean":[0,1,2,3,4,6,9,10,13,15,16,17,19,20,21,25,26,29,30,38,59,67,71,87,89,92,93,94,96,101,103,108,109,110,113,115,119,124,130,132,133,206,376],"break":[13,15,17,26,30,38,128,132,159,209,214,217,252,290,323,333,355,375,376,378],"byte":[2,3,4,11,12,13,16,17,19,25,26,29,35,56,62,70,71,72,73,89,90,92,94,96,98,99,104,105,107,110,113,115,131,133,159,163,165,169,170,171,172,177,178,179,188,189,190,193,194,195,209,217,235,250,251,274,290,297,315,327,331,332,336,339,349,350],"case":[1,5,24,71,89,91,107,125,159,211,252,265,266,269,279,302,320,327,334,335,341,342,376,378],"catch":376,"char":[9,11,25,29,35,65,90,96,99,115,124,125,133,159,165,170,171,172,192,193,194,195,209,217,301,325,328,332,333,350],"class":[87,133,165,204,209,266,321,331,332,334,342,350],"const":[159,301,325,328,332,345,376],"default":[1,2,3,4,6,7,9,10,11,12,14,16,17,18,19,20,22,23,24,25,26,29,30,31,32,33,35,36,38,44,52,54,56,57,58,66,67,71,72,77,80,81,84,85,86,87,88,89,90,91,92,93,94,96,99,101,103,104,106,107,108,109,111,112,113,115,116,117,124,125,127,128,130,131,132,133,135,160,163,176,204,205,209,211,218,220,225,235,242,245,246,254,259,263,265,266,268,269,270,272,281,282,286,289,290,298,299,308,309,311,312,315,318,319,330,331,332,336,337,339,344,345,351,357,373,375,376],"do":[3,9,13,15,17,22,25,26,29,35,38,39,40,41,43,44,45,46,47,48,50,52,55,56,57,58,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,81,82,83,84,87,91,92,93,96,100,103,104,107,109,112,113,117,119,120,128,130,131,132,134,159,162,163,166,167,168,169,170,171,172,176,182,183,184,187,188,189,190,192,193,194,195,197,198,207,209,215,217,218,235,245,247,252,263,264,270,272,274,279,281,286,289,290,299,302,315,316,317,318,319,320,321,322,326,327,333,334,340,342,346,348,349,351,352,353,355,369,375,376,377,378,379,381],"ec\u540e\u7f00":313,"enum":248,"esp32s3\u91c7\u7528xtensa":286,"export":376,"final":[17,28,130,204,244,245,261,266,302,315,360,369,376,378],"float":[2,33,38,71,91,99,133,252,265,331,332,366,375,376],"fls\u6587\u4ef6":314,"fls\u7ed3\u5c3e\u7684\u56fa\u4ef6\u6587\u4ef6":314,"function":[0,1,3,5,10,15,17,20,22,23,24,25,26,27,28,34,35,38,39,40,41,43,44,45,46,47,48,49,50,52,53,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,81,82,83,85,86,87,89,90,92,93,96,97,100,104,106,107,108,109,112,113,114,115,118,119,120,121,123,124,125,130,131,132,135,160,162,163,165,166,167,168,169,170,171,172,173,174,177,178,179,180,182,183,184,185,187,188,189,190,191,192,193,194,195,196,199,200,201,202,203,204,205,206,208,210,214,217,226,230,235,240,242,243,245,246,250,251,254,259,260,265,266,268,269,272,284,288,290,293,297,298,299,300,309,315,317,318,319,320,321,322,327,328,330,334,337,338,340,341,342,345,346,348,349,352,353,363,364,369,371,378,379,382],"git\u5b98\u7f51":314,"goto":376,"import":[121,159,199,200,201,202,208,209,217,252,265,300,301,353,355,358,369,371,372,376,377,378,379],"ini\u4e2d\u7684plat_root\u8def\u5f84":313,"int":[0,1,2,3,4,6,7,8,9,10,11,12,13,15,16,17,18,20,23,24,25,26,28,29,30,32,34,35,36,37,38,42,44,53,58,59,67,80,84,87,89,90,91,92,93,94,96,97,98,99,100,101,102,103,105,106,107,108,109,110,111,112,113,114,115,116,119,121,122,123,124,125,127,128,129,130,131,132,133,159,210,211,245,252,298,301,302,320,325,327,332,333,337,341,345,376],"long":[1,10,87,92,99,100,101,102,112,122,133,135,160,162,199,200,201,202,209,217,263,265,274,302,323,325,328,330,369,375,376,377,381,382],"luatos\u6e90\u7801\u76ee\u5f55\u4e0b\u7684":313,"m\u00b3":[83,375],"new":[9,10,19,20,25,28,53,59,89,92,112,113,116,131,133,135,160,174,193,194,195,197,203,204,205,206,209,214,217,246,247,250,265,281,282,283,290,296,299,308,315,316,318,319,327,328,332,333,342,346,348,363,364,366,369,375,376,378],"null":[59,159,265,302,326,328,375,376],"public":[19,92,105,265,377,390],"return":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,159,166,169,170,171,172,188,189,190,193,194,195,204,209,217,247,252,265,282,300,301,315,320,324,326,327,331,333,339,340,342,346,348,350,360,369,376,377,378,379],"s\u03bcg":83,"sdk\u672c\u8eab\u4e0d\u5f00\u6e90":313,"short":[38,87,96,99,112,133,159,166,209,217,218,235,247,252,265,289,307,317,345,358,369,371,372,375,376],"static":[24,92,128,159,210,211,218,265,302,333,341,345,346,348,369,376],"switch":[1,9,20,30,67,70,89,92,93,101,113,125,130,131,135,160,208,217,235,265,282,286,289,353,355,358,370,371,372,376,378],"swm181cbt6\u91c7\u752832":297,"thread\u76ee\u5f55":314,"throw":[247,376],"true":[1,2,3,4,6,7,9,10,12,13,15,16,17,18,19,20,21,24,25,29,30,31,32,35,36,38,39,40,41,43,45,47,48,50,52,55,57,59,61,62,63,64,65,66,67,68,69,71,73,74,75,76,79,82,83,85,86,87,88,89,91,92,93,94,95,96,97,98,101,103,105,106,108,109,110,111,112,113,115,117,119,121,123,124,125,127,129,130,131,132,133,159,166,169,170,171,172,176,177,178,182,183,184,188,189,190,193,194,195,197,198,200,201,202,207,209,217,263,269,299,300,301,316,318,319,333,340,344,345,375,376,377,378,379],"try":[1,4,10,12,15,89,113,159,163,204,209,217,247,252,264,282,286,320,324,336,345,351,357,369,375,376],"var":376,"void":[210,211,245,248,252,298,301,302,322,326,327,328,333,341,345,376],"while":[13,15,17,22,26,38,39,40,41,43,44,45,46,47,48,50,52,55,60,61,63,64,65,66,69,70,71,72,73,74,75,76,77,78,79,81,82,83,91,92,96,103,109,113,119,130,131,132,159,162,163,166,168,170,171,172,176,182,183,184,187,192,197,198,199,200,201,202,209,211,217,245,247,252,265,268,290,298,299,302,318,319,322,327,333,340,345,352,353,355,376,377,378,379],"windows\u5b89\u88c5\u5305\u53ef\u4ee5\u5728":314,"x64\u53ca\u4ee5\u4e0a":313,"y\u0101o":274,"y\u012b":274,A:[25,28,30,38,49,72,92,96,97,99,107,113,116,117,118,119,132,133,159,167,168,175,181,186,187,192,193,194,195,199,204,205,208,209,211,217,218,235,247,252,291,301,316,320,323,326,329,332,333,346,347,348,360,369,373,375,376,377,379,385],AND:[211,376],AT:[92,101,204,214,257,262,263,269,274,289,290,316],And:[65,101,159,221,248,251,265,290,336,345,376,378],As:[38,65,70,101,113,131,159,187,188,189,190,199,209,217,250,289,290,302,315,328,330,331,357,369,375,376],At:[65,159,186,192,204,209,217,247,286,292,301,302,315,317,320,324,338,343,345,351,353,357,373,375,376,377,378,380],Be:[209,217,266,316],But:[17,159,209,217,218,375,376],By:[113,159,235,301,320,375,376],For:[1,3,4,12,17,34,35,56,67,89,96,97,101,104,105,106,108,120,123,124,131,159,163,165,169,199,200,201,202,207,209,215,217,218,224,225,227,228,235,248,251,252,263,265,267,269,292,297,308,317,323,328,333,336,349,357,366,369,374,375,377,384],If:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,119,121,122,123,124,125,126,127,128,129,130,131,132,133,134,159,163,175,199,204,209,210,211,215,217,218,223,229,232,245,247,251,252,265,266,269,272,281,286,289,298,299,300,301,306,307,308,310,312,315,316,317,322,326,328,345,346,348,351,353,355,357,360,366,375,376,378],In:[1,5,9,35,56,65,71,92,93,100,107,124,159,167,168,187,193,194,195,204,209,211,215,217,218,235,240,247,252,263,265,269,274,279,281,286,293,300,301,302,303,306,315,317,320,322,323,325,328,336,341,344,345,355,357,363,366,369,374,375,376,377,378],Is:[4,94,133,170,171,172,193,194,195,199,200,201,202,209,217,264,265,290,353,371,375,376],It:[1,11,14,15,38,59,65,67,71,87,90,92,106,107,112,113,119,121,125,126,127,130,159,162,170,171,172,187,188,189,190,192,193,194,195,204,207,208,209,210,211,235,247,250,252,257,261,263,264,265,266,269,271,274,290,300,301,302,311,312,315,317,320,323,327,328,333,343,346,348,349,352,355,360,364,369,370,371,373,374,375,376,378],Its:[65,159,250,265,327,376],NO:210,NOT:376,Near:345,No:[1,3,5,6,9,10,12,20,24,25,26,35,36,38,58,66,67,71,84,86,87,89,92,93,96,101,102,103,104,107,109,113,115,119,120,122,123,124,125,127,130,159,162,204,206,209,217,221,226,234,241,250,251,258,262,263,265,266,275,281,283,284,290,301,308,327,328,345,371,375,376],Not:[1,24,92,94,97,100,123,159,252,272,279,291,293,301,311,343,350,357,363,375,376],ON:[159,211],OR:[124,159],Of:[159,162,207,232,366,375,376],On:[1,38,71,101,159,204,207,209,240,247,349,357,369,373,376,379],One:[135,160,166,177,178,179,199,200,201,202,209,217,218,266,320,376,378],Or:[113,115,247,252,269,290,302,315,338,376],Such:[101,345,375,376],That:[97,159,209,217,274,315,316,328,376],The:[0,1,3,4,5,6,7,8,9,10,11,12,13,15,16,17,18,19,20,22,23,25,26,27,29,30,31,33,34,35,36,37,38,39,40,41,43,44,45,47,48,49,52,53,55,56,58,61,62,63,64,65,66,67,68,69,71,72,74,75,77,78,79,80,84,85,86,87,89,90,91,92,93,94,96,97,99,100,101,102,105,107,108,109,110,111,112,113,115,116,117,119,120,121,122,124,125,127,128,130,131,132,133,159,162,163,165,166,167,169,170,171,172,176,177,178,179,182,183,184,186,188,189,190,192,193,194,195,197,198,199,200,201,202,204,206,207,208,209,210,211,215,217,218,235,240,244,245,246,248,250,251,259,261,262,263,264,265,266,269,270,271,272,274,279,280,281,282,286,289,290,292,293,296,297,298,299,300,301,302,303,308,311,312,315,316,317,318,319,320,321,323,324,325,326,327,330,331,334,336,337,338,339,340,341,342,343,345,346,347,348,350,352,355,357,358,360,363,366,370,371,372,373,377,378,379,382],Then:[159,162,163,204,209,217,218,232,302,311,312,320,355,375,376,378],There:[0,20,38,71,89,99,104,113,115,119,125,133,159,166,170,171,172,177,178,179,193,194,195,199,200,201,202,204,209,217,218,223,229,250,252,261,263,264,269,279,290,301,308,316,349,357,375,376,377,378,379,381],These:[159,252,350,375,376],To:[9,23,25,28,29,53,65,89,92,93,97,101,104,105,124,159,211,226,252,254,346,348,371,376],WITH:272,Will:[5,93,167,168,181,210,217,290,376],With:[159,247,263,291,297,316,341,376,378],_1:233,_1_:376,_:[5,6,25,99,100,159,272,301,331,352,376,378,379],__:376,____:65,________:65,____________________:65,____s________:65,__add:376,__air001_assert_h:211,__air001f0xx_it_h:211,__air001xx_hal_conf_default_h:211,__air001xx_it_h:211,__band:376,__bnot:376,__bor:376,__bxor:376,__call:376,__concat:376,__cplusplu:[159,211],__div:376,__eq:376,__ev_:376,__file__:211,__gc:376,__hal_afio_remap_swj_en:252,__hal_afio_remap_swj_nojtag:252,__hal_rcc_afio_clk_en:252,__hal_rcc_gpiob_clk_en:211,__hal_rcc_pwr_clk_en:252,__idiv:376,__index:[333,376],__ipair:376,__le:376,__len:376,__line__:211,__lt:376,__main_h:211,__metat:376,__mod:376,__mode:376,__mul:376,__name:376,__newindex:376,__pair:376,__pow:376,__shl:376,__shr:376,__sub:376,__tostr:376,__unm:376,_alloc:376,_arg_:376,_args_:376,_at_0x20000000:[214,290],_block_:376,_body_:376,_boolean_i:376,_c:376,_call:376,_chunkname_:376,_close:376,_cnt:378,_currentline_:376,_d_:376,_ddd_:376,_debug:376,_e1_:376,_e2_:376,_e3_:376,_env:376,_error:376,_explist_:376,_extramsg_:376,_f_:376,_filenam:[325,328],_filename_:376,_funcname_:376,_function:376,_functioncall_:376,_g:[58,71,104,165,266,301,375,379],_getendpoint:252,_getfield:376,_getglob:376,_getinfo:376,_getistr:252,_gettop:376,_init:159,_isnumb:376,_kcontext:376,_lightweight:376,_limit_:376,_loadfil:376,_loadstr:376,_luato:266,_mod_:376,_mode:[325,328],_multret:376,_n_:376,_n_i:376,_newlibt:376,_next:376,_nil_i:376,_number:376,_number_repres:376,_o_:376,_param_t:159,_params_:376,_pcall:376,_pcallk:376,_pop:376,_pushcclosur:376,_pushcfunct:376,_pushinteg:376,_pushliter:376,_pushnil:376,_pushnumb:376,_regist:376,_remov:376,_repeat:[28,330],_s_:376,_set_:376,_setfunc:376,_setglob:376,_stat_:376,_state:376,_step_:376,_string_:376,_string_repres:376,_t:[332,376],_temp:351,_tonumb:376,_type:376,_typenam:376,_v1:[166,255],_v2:9,_v3:9,_valid:376,_var:376,_var_:376,_version:[165,168],_x_:376,_x_form:376,_xxx:204,_xxx_:376,a1:165,a2:165,a7:289,a8xza9cqs3cu79b:31,a_binari:376,a_c:376,a_cod:376,a_continu:376,a_dynam:376,a_find:376,a_garbag:376,a_long:376,a_messag:376,a_meta:376,a_pseudo:376,a_reference_in:376,a_registry_i:376,a_sequ:376,a_tail:376,a_temporari:376,a_vari:376,a_virtu:376,a_x_:376,a_y_:376,aa:376,aaa:375,aabb:96,aabbccdd:96,aabbccddeeff:131,aabcdefg:375,ab:[165,375],abandon:[107,134,376],abbrevi:[96,100,125,182,183,184,192,193,194,195,209,217],abc:[6,10,14,23,24,26,28,29,71,84,102,105,108,130,159,167,302,317,345,349,375],abcabcabc:375,abcd123:31,abcd:375,abcdabcd1234:159,abcdabcd:7,abcdefg:[31,133,300],abcdefgg:130,abcderg:130,abid:159,abil:[169,218,264,269,301],abl:[159,215,375],abmfa1ucw:31,abnorm:[10,101,247,252,265,366,376,378],abort:[252,376],about:[13,16,17,24,71,88,134,159,163,166,204,206,221,224,225,226,228,235,244,247,261,268,282,290,297,321,333,334,341,342,346,347,352,375,376],abov:[12,58,72,115,124,133,159,176,186,204,218,245,247,250,251,262,263,265,269,271,272,281,282,286,289,290,298,300,302,311,312,315,328,331,343,355,357,366,369,370,373,375,376,378,379],abroad:265,abscissa:[35,124],absolut:[29,132,159,366,375,376],abwifi:289,ac5:298,accel:64,acceler:[53,64,92,208,257,291],acceleromet:[53,64],accept:[20,28,107,159,165],access:[101,159,250,290,300,317,329,336,375,376],access_mod:336,accesskei:54,accid:369,accommod:87,accompani:320,accord:[2,13,17,20,22,30,39,44,52,70,72,78,82,83,89,93,99,112,125,128,129,130,131,133,159,166,169,170,171,172,183,194,209,211,217,218,235,245,247,252,266,281,282,286,290,298,300,301,302,311,312,317,323,331,345,351,355,358,366,369,372,373,375,376,377,402],accordingli:[133,159,331],account:[30,93,289,316,352],accumul:[6,360,375],accur:[122,186,208,209,369,376],accuraci:[38,57,97,103,159,182,183,184,235,240,265,297,355,358,369,372],accustom:377,achiev:[10,96,168,181,208,209,217,235,297,320,321,334,342,345,352,363,375,378,404],ack:[37,132],acknowledg:130,aco:165,acquir:[20,92],acquisit:[16,48,131,166,170,171,172,179,209,217,231,265,376],act:[65,131,159,331,343,376],action1:159,action2:159,action:[28,66,118,130,159,207,252,291,351,371],activ:[35,67,87,92,94,101,113,119,131,159,207,211,245,263,265,281,286,289,298,309,369,376,381],activelin:376,activetim:28,acttyp:28,actual:[0,20,29,30,38,44,49,82,83,122,125,128,131,133,159,162,169,206,209,211,217,218,235,245,247,252,266,269,280,281,282,286,289,298,300,302,315,333,343,344,345,349,353,355,358,360,372,375,376,378],acyv3qdjrra0fw5ue58knq:31,ad:[2,4,6,10,12,13,14,15,17,19,20,25,29,30,38,84,92,96,120,121,122,124,126,130,131,159,162,193,194,195,214,218,235,245,264,265,266,286,290,298,301,321,323,334,342,345,376,378],adapt:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,114,115,116,117,119,120,121,122,123,124,125,126,127,128,129,131,132,133,134,159,209,247,265,269,311,312,319,323,344,345,346,348,352,360,364,366,369],adapter_index:28,adc0:[0,209,217,220,225,242],adc1:[0,166,220,225,252],adc2:[0,225],adc3:225,adc:[1,28,118,174,205,215,220,221,225,231,235,240,243,250,251,257,265,266,270,279,281,286,290,293,296,297,345,358,369,372,380],adc_0:[225,281],adc_1:[225,281],adc_2:[225,281],adc_3:[225,281],adc_4:281,adc_5:281,adc_clk:252,adc_cmd:252,adc_flag_eoc:252,adc_getconversionvalu:252,adc_getflagstatu:252,adc_in1:235,adc_in2:235,adc_in4:235,adc_in5:235,adc_in6:235,adc_initstructur:252,adc_range_1_2:0,adc_range_1_8:0,adc_range_3_6:0,adc_range_3_8:0,adc_scanconvmod:252,adc_softwarestartconvcmd:252,adc_temp:[209,217],adcgetconversionvalu:252,add:[12,28,29,30,53,84,101,124,135,160,181,186,204,207,209,214,217,235,245,248,251,252,263,265,266,269,271,290,298,302,306,311,312,315,317,324,325,333,342,344,345,346,348,357,374,375,376,381],add_btn:159,add_myap_5min:302,add_opt:159,add_tab:159,addb:375,addit:[2,9,21,23,28,35,65,84,92,93,107,118,120,130,159,199,209,211,217,221,226,234,235,240,251,266,268,270,284,286,289,290,308,311,312,315,325,326,357,375,376],addr:[28,53,56,65,115,209,217,324,332],address:[15,18,23,25,28,51,53,57,58,65,71,93,96,102,111,113,128,131,133,163,170,171,172,174,191,196,205,209,214,217,235,247,252,254,265,290,297,317,324,336,341,344,345,351,353,376,381,391],adhes:[355,369],adipisc:159,adjac:[92,159,266],adjust:[1,11,25,52,76,109,124,125,133,135,160,166,182,183,184,209,217,218,235,245,247,252,264,265,269,274,280,298,355,360,369,370,371,376],adjust_period:28,adler:90,administr:381,adon:[250,290],adopt:[209,217,281,358,372,376],ads1115:[53,266],ads1115_conf_hcmd:39,ads1115_conf_lcmd:39,ads1115_data:39,adv_fre:96,advanc:[91,135,160,165,206,211,235,245,298,317,355,376],advantag:[162,375,378],advdata:28,advic:376,advparam:28,adxl345:53,adxl346:53,adxl34x:53,adxl34x_data:40,ae:[6,167,265,272,341],af:[53,289],affect:[17,77,78,106,133,159,209,217,247,252,263,360,375,376],affix:345,afford:214,after:[0,1,3,9,10,11,14,15,20,25,27,28,29,30,31,33,35,38,56,63,65,71,85,87,89,90,92,93,94,96,101,104,105,106,107,108,110,112,113,115,117,119,120,124,125,128,130,131,132,133,159,162,166,170,171,172,174,180,181,188,189,190,193,194,195,198,204,205,207,208,209,211,215,217,218,223,229,231,232,235,245,247,250,251,263,264,265,266,269,271,279,281,282,286,289,290,297,298,299,301,302,308,311,312,316,317,323,330,333,344,345,349,353,360,366,370,371,373,375,376,377,378,379],afterward:38,ag:[17,71,169,301],again:[3,4,9,10,13,20,30,65,96,107,124,128,131,159,163,169,200,201,202,207,218,232,247,252,263,265,353,360,366,369,373,375,376,378],against:[355,376],agent:323,aggress:376,agp:263,agpio3:269,agpio4:269,agpio5:269,agpio:125,agr2:28,agre:159,agreement:[28,118,336,346,347],ah:[35,124,360,371],ahb:211,aht10:[53,173,174,205,306,309],aht10_data:41,aht20:306,aht:306,aie:53,air001:[212,213,290],air001_assert:211,air001_dev:211,air001_pcb:[214,290],air001dev:211,air001xx_hal:211,air001xx_hal_conf:211,air001xx_hal_cortex:211,air001xx_hal_driv:211,air001xx_hal_flash:211,air001xx_hal_gpio:211,air001xx_hal_pwr:211,air001xx_hal_pwr_ex:211,air001xx_hal_rcc:211,air001xx_hal_rcc_ex:211,air001xx_it:211,air001xx_ll_bu:211,air001xx_ll_cortex:211,air001xx_ll_dma:211,air001xx_ll_gpio:211,air001xx_ll_pwr:211,air001xx_ll_rcc:211,air001xx_ll_system:211,air001xx_ll_util:211,air101:[0,1,4,5,6,8,9,10,11,12,13,14,16,17,18,19,20,21,23,24,25,26,27,29,31,32,33,35,36,38,65,71,72,77,80,84,85,87,88,89,90,91,93,95,96,98,99,100,101,102,103,104,105,106,107,108,109,111,113,115,116,117,118,119,121,123,124,125,128,129,130,131,132,133,134,162,163,166,167,168,173,174,175,180,181,185,186,187,191,192,196,199,203,204,205,209,219,228,229,230,279,290,293,301,307,308,309,312,316,344,346,348,352,382,402],air101_chip:[166,182,193],air101_core_bom_b_air101_core_a10_v1:220,air101_flash:351,air101_mcu:[200,220],air101_pcb:[221,290],air103:[0,1,4,5,6,8,9,10,11,12,13,14,16,17,18,19,20,21,23,24,25,26,27,29,31,32,33,35,36,38,65,71,80,84,85,87,88,89,90,91,93,95,96,98,99,100,101,102,103,104,105,106,107,108,109,111,113,115,116,117,118,119,121,123,124,125,128,129,130,131,132,133,134,162,166,173,174,180,185,191,196,203,204,205,209,218,223,224,225,230,279,290,293,301,307,316,351,352,382,402],air103_:225,air103_bom_b_air103_a10_v1:225,air103_cor:225,air103_mcu:[166,183,194,201,225],air103_pcb:[226,290],air105:[0,1,2,3,4,5,6,7,8,9,12,13,14,15,16,17,18,19,20,21,23,25,27,28,29,30,31,33,34,35,38,65,71,80,84,85,87,88,89,90,91,93,95,98,99,100,101,102,103,104,105,106,107,109,110,111,113,115,116,117,118,119,121,124,125,127,128,129,130,132,133,134,135,162,164,166,173,174,180,185,191,196,203,204,205,233,279,290,293,307,316,346,348,352,382,383,384,392,402],air105_cor:233,air105_download:351,air105_mcu:[195,202,233],air105_pcb:[234,290],air106:279,air107:307,air10x:[65,351,392],air112:208,air153c_wtd:53,air202:[244,381],air302:[279,290,352],air302_sdk:313,air32:[51,56,71,130,245,247,250,254,289,290,371,381],air32cbt6:[246,249],air32f103:[224,225,226,228,246,248,249,290,298,402],air32f103_pcb:[250,290],air32f103cbt6:[245,247,250,251,252,290],air32f103cct6:[251,252],air32f103cxt6:246,air32f103rpt6:252,air32f103vet6:252,air32f103vgt6:252,air32f103zet6:252,air32f103zgt6:252,air510u:[263,270],air5xx:381,air600:[22,101,112,131,204,269,270,271,315,316,352,381],air601:[0,1,4,5,6,8,9,10,11,12,13,14,16,17,18,19,20,21,23,24,25,26,27,29,31,32,33,35,36,38,71,80,84,85,87,88,89,90,91,93,95,96,98,99,100,101,102,103,104,105,106,107,108,109,111,113,115,116,117,118,119,121,123,124,125,128,129,130,131,132,133,134,254,290,316],air640w:[279,290,352],air700:[0,1,2,4,5,6,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,29,31,32,33,35,38,71,80,84,85,86,87,88,89,90,91,92,93,95,98,99,101,102,103,104,105,106,107,109,110,111,113,115,116,117,118,119,121,124,125,128,129,130,131,132,133,204,268,270,289,290,315],air722:[381,382],air724:[92,381,382],air724ug:[290,382],air72xux:382,air780:[0,1,2,4,5,6,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,29,31,32,33,35,38,71,80,84,85,86,87,88,89,90,91,92,93,95,98,99,100,101,102,103,104,105,106,107,109,110,111,112,113,115,116,117,118,119,121,124,125,128,129,130,131,132,133,204,262,263,264,265,267,269,271,289,290,293,316,352,382],air780e_cdcpppdemo:289,air780e_pcb:[268,290],air780eg:[38,89,101,112,131,204,262,265,266,268,269,270,271,289,290,315,352],air780ex:315,air800:381,air820:382,air820ug:290,air:[53,210,217,257,357,375,382,404],air_jlink_keil:245,air_rcc_pllconfig:248,airisp:215,airkiss:[131,254],airm2m:[211,281],airm2m_all_crc:343,airmcu:210,airplan:94,airpsm:101,airtun:[130,266],ak8963:[53,265],alarm:[53,101,113,223,229,366],alarm_int:67,alert:[360,370,373],algorithm:[6,28,52,118,167,211,245,250,251,266,290,298,301,376],ali:53,alia:252,alias:159,alibaba:[31,51,54,146,265],align:[6,135,160,250,290,327,355,376],align_cent:[87,159,209,217],align_in_bottom_mid:159,align_in_top_mid:159,align_in_top_right:159,align_out_bottom_mid:159,align_out_left_mid:159,align_out_right_mid:159,aliot:58,aliqua:159,aliquip:159,aliyun:[28,54,97,113],all:[1,6,8,9,11,29,35,36,38,39,40,41,43,45,46,47,48,50,52,54,55,56,57,58,60,61,62,63,64,66,67,68,69,70,73,74,75,76,77,78,79,81,82,83,89,90,92,96,99,101,102,111,113,115,124,125,127,133,159,162,163,176,188,189,190,207,208,209,211,217,218,223,229,235,245,247,250,263,265,266,271,272,280,290,298,300,316,327,328,331,343,345,349,351,357,360,366,375,376,379,381],all_dead:376,all_don:132,allig:[355,357,370],alloc:[113,133,159,265,299,301,318,319,320,321,326,334,342,376,378],allow:[35,87,119,159,265,269,302,345,369,376,377],almost:[119,247,375,376],alo:376,alon:[215,290,376],aloud:274,alpha:[135,160],alphabet:376,alphanumer:376,alreadi:[4,8,113,124,159,207,266,341,353,375,376],also:[14,20,24,53,67,71,77,78,89,92,99,101,105,113,115,119,121,125,131,133,159,162,167,168,175,188,189,190,204,209,215,217,218,235,240,247,252,259,263,264,265,269,270,274,300,301,302,315,316,323,324,328,331,349,351,352,355,358,363,366,371,372,375,376,378,380],alt:[28,265],alt_fun:28,alt_func:[20,265],altern:[56,159,244,252,291,376],altfun:28,although:[65,263,269,282,343,355,375,376],altitud:38,altogeth:324,alwai:[20,66,101,102,106,109,119,159,162,218,247,266,274,301,322,330,336,350,353,366,375,376],am2320:53,am:[200,201,202,274,375],ambient:53,ambigu:[375,376],amd:215,amend:38,amet:159,among:[323,327,357],amount:[15,71,115,125,127,133,193,194,195,265,326,366,375,376],amp:369,amper:360,amplif:159,amplifi:264,amplitud:[209,217],amr:[4,265,270],amr_:4,amr_cod:4,amr_nb:4,amr_wb:4,an:[1,2,4,9,10,13,17,18,19,21,23,24,30,33,35,58,62,65,67,71,84,85,87,89,91,93,94,96,97,101,113,117,119,121,124,131,132,133,135,160,162,163,166,167,181,187,188,189,190,192,193,194,195,199,204,206,208,209,210,214,217,218,227,235,240,247,251,252,263,265,266,269,281,282,286,290,297,298,301,302,311,312,315,316,317,320,322,323,326,327,328,331,333,336,341,345,350,351,352,360,364,369,375,376,377,378,380],an_error:376,an_index_to:376,an_iterator_funct:376,an_state_:376,analog:[28,53,87,118,166,168,182,183,184,209,217,235,240,286,297,345,371,378],analysi:[209,217,320,321,334,342,364,366,376,377],analyz:[125,252,303,353,358,369,371,372,376,378],anchor:376,and_hooks_:376,and_table_:376,angl:[38,135,160,162,297,336,376],angular:159,ani:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,114,115,116,117,119,121,122,123,124,125,126,127,128,129,130,131,132,133,134,159,169,176,197,198,204,209,211,217,218,247,257,265,266,281,286,290,300,311,312,316,345,349,353,358,366,369,371,372,375,376],anim:[28,135,160,209],anim_cr:28,anim_fre:28,anim_on:159,anim_ono:159,anim_path_set_cb:28,anim_path_t:28,anim_path_t_fre:28,anim_set_exec_cb:28,anim_set_path_str:28,anim_set_ready_cb:28,anim_tim:159,anim_time_m:159,anim_typ:87,annot:[342,375,376],anod:72,anom_on:159,anonym:[119,376],anoth:[14,65,92,115,159,199,200,201,202,209,217,245,252,298,328,375,376,378],answer:[291,381],antenna:[38,70,101,257,263,281,286,290],antenna_on:53,anti:[20,35,70,101,159,204,218,265],anticol:53,anxieti:208,anyth:[159,162,376],anywai:369,anywher:[375,376],ao3400:65,aon_gpio:[101,264],aon_gpio_2:242,aon_gpio_4:242,aongpio:269,ap:[18,93,113,130,131,266,315,323,341],ap_readi:341,ap_start:341,ap_stop:341,apb1:211,apb:[250,290],api:[0,1,2,3,6,8,9,12,13,14,15,17,19,20,23,24,29,35,39,40,41,43,45,46,47,48,50,52,53,54,55,56,57,58,60,61,62,63,64,66,68,69,70,71,73,74,75,76,79,81,82,83,89,92,96,97,101,105,107,115,122,124,126,131,135,160,162,165,168,188,189,190,198,205,209,217,226,263,265,269,274,290,291,302,319,321,334,342,349,352,382],apiurl:71,apn:[28,265],app:[301,311,312,313,344,351],app_addr:344,appar:35,appear:[92,107,159,204,247,265,289,291,317,349,353,355,357,366,371,376],append:[29,376],appl:[159,375],appli:[113,159,162,270,326,350,376,378],applic:[23,25,72,89,96,113,159,161,162,164,199,200,201,202,208,209,217,240,252,265,271,291,311,312,317,326,366,375,376,378],appropri:[14,218,282,311,312,376],approx:[244,261],approxim:[97,240,376],april:159,apsta:131,apt:[163,311,312,318],ar:[0,1,4,8,10,12,13,15,17,20,22,24,25,29,30,33,35,36,38,52,56,59,65,67,71,72,85,86,87,89,92,93,96,97,99,100,101,107,109,110,113,115,119,120,124,125,127,131,133,159,162,163,166,167,170,171,172,174,175,177,178,179,187,193,194,195,199,200,201,202,204,208,210,211,217,218,220,223,224,225,226,228,229,231,235,243,246,247,250,251,260,262,263,264,265,266,268,269,271,272,274,279,280,281,282,290,299,300,302,303,308,311,312,315,316,317,319,320,328,333,336,340,341,342,344,345,346,347,348,349,351,352,353,358,360,364,366,369,372,375,376,377,378,379,381,388],arab:159,arbitr:235,arbitrari:[104,297,343,375,376],arc:[135,160],arc_creat:159,arc_get_adjust:159,arc_get_angle_end:159,arc_get_angle_start:159,arc_get_bg_angle_end:159,arc_get_bg_angle_start:159,arc_get_max_valu:159,arc_get_min_valu:159,arc_get_typ:159,arc_get_valu:159,arc_is_drag:159,arc_part_ind:159,arc_part_knob:159,arc_part_main:159,arc_set_adjust:159,arc_set_angl:159,arc_set_bg_angl:159,arc_set_bg_end_angl:159,arc_set_bg_start:159,arc_set_bg_start_angl:159,arc_set_chg_r:159,arc_set_end_angl:159,arc_set_rang:159,arc_set_rot:159,arc_set_start:159,arc_set_start_angl:159,arc_set_typ:159,arc_set_valu:159,arc_type_norm:159,arc_type_revers:159,arc_type_symmetr:159,arc_type_t:159,architectur:[159,280,286],archiv:[54,93,315],arcsin:376,arctan:297,arctang:376,arduino:[214,215,281,290,292],are_first:376,area:[3,9,35,70,98,110,115,124,133,135,160,250,266,274,290,324,325,326,331,336,343,375,376],area_t:159,arg1:[28,165,323],arg2:[28,323],arg3:28,arg4:28,arg:[28,120,165,197,377,378],argn:28,argp:376,argument:[87,345,376,377,378],aris:375,arithmet:[28,118,376],ariyun:53,arm:[208,214,240,247,252,290,297,315],armcc:313,armink:[169,188,189,190],armmb:247,around:[124,159,208,353],arrai:[6,92,94,96,135,160,162,174,203,205,209,265,331,332,350,376],arrang:[159,279,286,336,357,375],array_id:70,array_len:159,arrear:265,arriv:327,arrow:159,artboard:9,articl:[97,159,232,244,265,282,301,323,378],as_identifier_:376,ascend:376,ascii:[331,336,350,375,376],asd8938kjjsidiajdl:375,asdfassdfasdfass:6,asdicagydausckfugdaflgscdabgsdbahhacbshbsd:375,asfb:331,asid:218,asin:165,ask:[135,160,346,348,378],aspect:[328,376],assembl:353,assert:[165,166,378],assert_fail:211,assert_param:211,assign:[66,92,113,124,135,160,165,247,331,378],assist:[252,308],associ:[159,309,345,376,378],assum:[20,84,266,301,315,328,376],assumpt:[308,376],asymmetr:[159,167,355],async:[28,333],asyncget:333,asynchron:[9,53,92,96,131,199,200,201,202,209,217,265,302,345],atan2:376,atan:165,ate:375,ath10:308,ath20:308,ath:308,atla:159,atom:252,attach:[10,35,92,209,213,217,225,233,235,246,247,249,255,264,294,295,297,333,360],attach_fil:314,attempt:376,attent:[25,57,58,65,67,72,77,78,98,113,120,159,207,209,217,235,245,247,252,269,271,284,288,290,320,346,348,349,355,369,390],attribut:[96,159,265,376],audio:[4,28,101,118,235,262,265,270,274,378],audio_format:[4,28],audio_id:1,audio_play_stop:265,august:159,aut:159,auth:[28,130],auth_password:28,auth_user_nam:28,authent:[23,28,92,93,118,265,341],author:[207,345,376],authstat:53,auto:[28,93,130,135,160,373],auto_del:87,auto_format:28,auto_phone_fix:[28,265],auto_reset_stack:28,autocollectmem:28,autofit:159,autoflush:28,autoguessencod:207,autohint:159,autolong:28,automat:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,119,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,160,204,208,209,214,215,217,218,223,229,245,247,250,265,266,269,274,290,298,299,308,318,323,341,345,355,357,358,360,366,369,371,372,373,375,376],autoreconn:28,autosav:366,aux_rx:269,aux_tx:269,aux_uart:263,auxiliari:[92,165,268,290],avail:[0,1,9,13,17,20,56,72,90,94,96,101,107,115,117,125,126,127,131,159,198,209,235,244,248,257,261,264,265,269,270,279,281,291,308,309,311,312,344,352,360,366,375,376],avd33:235,averag:[91,218,360,369,371,376],average_temp:28,avoid:[65,235,247,252,265,269,281,286,309,345,355,369,376],awai:[58,162,218,235,247,376],await:333,awaken:[101,119,223,229,378],awar:252,awem:381,awsl:375,axi:[53,159,366],azimuth:38,azur:207,b2:350,b5:289,b6:289,b6_esp32s3:289,b:[9,28,38,49,70,75,92,97,99,107,117,119,121,133,209,217,311,312,317,331,332,345,350,352,375,376,377,378,379],b_hd:9,b_v2:9,b_v3:9,b_xy_:376,ba:289,bacground:159,back:[1,3,28,87,93,125,133,159,200,201,202,209,217,265,286,290,317,331,345,357,369,375,376],background:[35,71,116,124,159,214,240,250,265,290,296,346,347,376],backlight:35,backparenthes:376,backslash:[375,376],backspac:376,backtrac:376,backtrack:376,backup:263,backward:[125,127,133,159,240,331,373,375,376],bad:[23,333,376],bai:247,baidu:[28,38,53,211,245,298,314,317],baiduyun:[54,265],balabala:[302,379],balanc:[101,376],banana:[159,355,360,370,375],band:[28,94,131,240,376],bandrat:28,bandwidth:[85,86,257],bandwidthafc:[85,86],baobao:274,bar1:159,bar:[135,160,209,211,245,298,373,376],bar_creat:159,bar_part_bg:159,bar_part_ind:159,bar_set_anim_tim:159,bar_set_rang:159,bar_set_start_valu:159,bar_set_typ:159,bar_set_valu:159,bar_type_symmetr:159,barabala:[302,333,345],bare:[91,328],base32:[6,117],base64:[6,117],base64_decod:28,base64_encod:28,base:[13,17,28,53,65,67,92,94,106,120,135,160,165,169,206,207,209,214,215,235,244,247,252,261,263,265,266,281,286,290,291,292,299,303,315,318,319,322,330,344,349,351,369,375,382],base_year:28,bash:318,basi:[344,378],basic:[10,15,28,118,127,130,146,159,163,165,174,188,189,190,205,235,240,244,252,265,270,274,290,301,320,321,328,334,335,336,342,345,346,348,355,360,370,371,377],bat:[28,313,314,315],batch:[71,245,247,265,266,271,286,353,376],batt:373,batteri:[9,159,186,208,209,235,366,369,370,371,382],baud:[12,53,81,104,115,125,177,178,199,200,201,202,204,209,217,218,222,228,231,257,263,265,281,286,291,340,344,351],baud_rat:28,bb:289,bbb:375,bbbbbb:[209,217],bc:9,bd09:38,bd:38,bdata:6,beacon:96,beauti:[159,209,217],becaus:[4,23,57,63,65,87,107,115,159,167,175,209,217,247,252,263,265,274,281,291,302,336,350,357,366,369,374,375,376,378,390],becom:[38,96,98,101,159,207,265,373,374,375,376,378],been:[4,8,10,15,26,30,38,65,87,92,93,96,107,108,113,120,130,131,134,159,167,252,265,269,281,282,291,302,306,352,353,375,376],befor:[1,9,10,11,12,25,35,65,89,90,92,93,96,101,106,113,115,124,131,159,163,169,188,189,190,193,194,195,198,204,209,215,217,218,223,229,231,232,245,247,252,263,265,266,269,274,281,282,286,301,311,312,343,345,351,360,366,375,376,378,391],began:[209,217],begin:[4,25,28,30,99,101,133,159,200,201,202,204,209,210,217,223,229,247,252,301,315,320,331,345,360,375,376,378],beginn:[352,378],behalf:[23,235],behav:376,behavior:[159,323,345,376],behind:376,beidou:[208,263],being:[24,125,159,166,207,217,218,247,252,289,327,328,360,369,373,375,376,378],believ:209,bell:376,belong:[26,159,263,279,327,345,376,378],below:[65,124,159,166,209,217,218,235,247,252,311,312,327,358,360,366,369,371,375,376,378],benchmark:[67,87],benefit:378,besid:159,best:[315,320,323,355,375,376],better:[10,11,92,159,209,217,301,375,377,378],between:[1,35,65,89,124,133,159,170,171,172,174,180,193,194,195,200,201,202,205,208,209,219,224,231,247,250,253,262,263,264,265,266,286,290,297,316,323,332,336,338,353,355,360,366,373,375,376,378],bg_drag_dir:159,bg_grad_stop:159,bg_main_stop:159,bg_opa:159,bh1750:53,bh1750_data:45,bh1750_read_light:45,bi:[2,209,270],bia:28,bias_onefourth:36,bias_onehalf:36,bias_onethird:36,bias_stat:36,bidirect:[159,170,171,172,209,217],bif:[250,290],big:[27,99,113,115,125,133,159,207,263,291,375,376],bigd:17,bigdata:[11,90],bigger:282,biggest:376,bilater:337,bilibili:206,bilingu:[360,373],bin:[14,15,23,81,87,97,159,252,309,314,315,343,344,351,376],binari:[29,34,37,94,96,102,105,117,159,199,206,351,376],bind:[28,376],binfil:[58,247,351],binop:376,binpkg:271,bit0:89,bit32:376,bit64:[28,89,118,265],bit7:25,bit:[1,4,6,9,19,20,25,26,28,34,35,36,65,70,72,77,78,89,94,105,118,124,125,159,162,165,170,171,172,193,194,195,199,200,201,202,209,217,240,250,251,257,281,286,290,296,297,302,332,339,340,358,369,372,375,395,398,401],bit_ord:28,bitdict:28,bitmap:[9,35,124,159],bits_per_sampl:[4,28],bitw:[28,344],bitwis:376,biu:375,biubiu:375,biubiubiu:375,bl:[209,217,344,351],bl_addr:344,black:[9,87,265,300,357],blackbodi:324,blank:[87,89,92,113,117,128,133,331,375,376],ble:[28,118,257,279],blend:159,bless:263,blink:[135,160],blob:[266,289,349],block:[15,16,25,26,53,70,90,115,122,159,165,174,188,189,190,205,245,250,265,290,302,326,333,340,345,375,378,379],block_:376,blood:88,blue:[35,298],bluepil:[245,246],bluepill_pcb:[250,290],bluetooth:[28,118,208,254,286,290,353,371],bme280:53,bme680:53,bmp180:53,bmp280:53,bmp:265,bmx:53,bmx_data:46,bmx_data_data:46,bnf:376,boad:281,board:[1,9,72,77,166,167,168,169,170,171,172,175,176,177,178,179,181,182,183,184,186,187,188,189,190,192,193,194,195,197,198,199,200,201,202,204,205,206,209,214,215,217,218,220,221,225,226,233,234,239,243,245,249,250,255,256,260,265,268,277,282,283,284,287,288,289,292,295,296,298,328,352,355,357,360,369,382,384,390,391,392,402],board_v1:219,boardguid:[270,291],bodi:[24,28,37,58,327,375,376,378],body_len:23,bold:345,bom:[220,225,233,389],bond:376,book:[215,265,376,390,392],bool:[9,12,13,17,18,24,25,29,31,32,35,36,38,39,40,41,43,45,47,48,50,52,55,56,57,61,62,63,64,65,66,68,69,70,71,73,74,75,76,79,81,82,83,87,88,89,91,92,93,94,95,96,97,98,102,104,105,106,108,111,112,117,121,123,125,127,129,130,131,133,134,169],boom:89,boost:390,boot0:[215,252],boot1:252,boot:[92,101,127,204,209,215,217,218,220,225,242,245,252,259,262,263,264,265,281,286,297,308],bootim:29,bootload:[215,344,351],bootmod:[279,281],bootstrap:[250,290],boottim:29,border:[124,159],border_sid:159,bore:376,born:247,boss:290,both:[20,30,92,159,204,218,235,252,263,264,269,308,315,317,340,345,355,376],bottom:[1,9,15,23,28,35,38,58,72,77,93,94,101,104,107,113,118,124,159,204,209,232,266,269,327,355,360,366,369,375,376,379],bottom_fit_typ:159,bounc:87,bound:[133,159,376],boundari:[159,320,321,334,335,342],box:[35,124,135,160,300],boyfriend:162,bpp:[28,159],brace:376,bracket:[375,376],bracket_:376,bracketpair:207,bracketpaircolor:207,brackets_ar:376,brain:[308,317],brake:[250,290],branch:[206,345,376],brand:[355,360,369,370,373],breakpoint:[323,376],breath:[66,174,185,205,209,217],bri:53,bridg:289,briefli:[209,217],bright1:[77,78],bright3:77,bright5:77,bright8:[77,78],bright:[76,77,78,135,160,162,182,183,184,209,217,357,371],brightest:159,bring:[159,379],broadcast:[96,131,341],broken:[120,357],brought:[25,209,217],browser:24,brush:[9,77,78,94,97,204,209,214,221,226,232,234,243,247,260,263,266,268,279,284,288,290,301,307,311,312,315,317,344,346,348,353,366],bs:56,bsd:376,bsp:[22,25,28,100,118,131,163,166,226,265,270,290,299,313,314,315,318,319,344],bssid:[131,341],bt:[119,352,376],bt_cb:119,bt_readi:119,btn1:159,btn2:[87,159],btn3:159,btn:[87,135,160,209,217],btn_bw0:124,btn_bw1:124,btn_bw2:124,btn_bw3:124,btn_creat:[87,159,209,217],btn_get_stat:159,btn_hcenter:124,btn_id:159,btn_index:159,btn_inv:124,btn_part_main:159,btn_set_check:159,btn_set_fit2:159,btn_set_fit:159,btn_set_layout:159,btn_set_stat:159,btn_shadow0:124,btn_shadow1:124,btn_shadow2:124,btn_state_:159,btn_state_checked_dis:159,btn_state_checked_press:159,btn_state_checked_releas:159,btn_state_dis:159,btn_state_pr:159,btn_state_press:159,btn_state_releas:159,btn_state_t:159,btn_str:159,btn_toggl:159,btn_xframe:124,btna:159,btnb:159,btnm1:159,btnm:159,btnm_ctrl:159,btnm_ctrl_:159,btnm_ctrl_no_repeat:159,btnm_ctrl_tgl_enabl:159,btnm_map:159,btnmatrix:[135,160],btnmatrix_:159,btnmatrix_clear_btn_ctrl_al:159,btnmatrix_cr:159,btnmatrix_ctrl_check:159,btnmatrix_ctrl_check_st:159,btnmatrix_ctrl_click_trig:159,btnmatrix_ctrl_dis:159,btnmatrix_ctrl_hidden:159,btnmatrix_ctrl_no_repeat:159,btnmatrix_demo:159,btnmatrix_get_active_btn_text:159,btnmatrix_part_bg:159,btnmatrix_part_btn:159,btnmatrix_set_btn_ctrl:159,btnmatrix_set_btn_width:159,btnmatrix_set_map:159,bu:[1,25,35,39,40,41,43,44,45,47,48,52,55,61,63,64,65,68,69,74,75,79,88,89,91,108,109,110,170,171,172,192,193,194,195,199,200,201,202,209,217,235,240,247,250,290,321,322,328,330,333,334,342,360],bucket:375,buf:[15,125,159],buf_siz:159,buff2:28,buff:[4,10,26,28,30,35,53,62,70,87,92,109,115,162,163,331,332,376],buff_mod:28,buff_siz:[28,163],buffer:[3,9,28,35,59,87,113,124,125,159,200,201,202,209,217,252,265,321,334,340,342,376],buffer_offset:265,bug:[159,247,252,357,364,366],bui:[247,353,355,360,363,369,371],build:[159,206,207,214,266,290,299,304,306,308,311,312,313,315,318,319,344,376,381],build_at:344,build_bi:344,build_cmak:299,build_host:344,build_system:344,builddat:28,built:[12,58,87,101,107,113,159,168,175,176,197,208,209,215,217,235,240,248,252,257,263,265,266,281,286,296,297,320,325,333,336,349,376,378],bulk:384,bullet:159,bunch:[263,345],buoi:[135,160],burden:235,burn:[166,205,206,214,218,221,226,232,234,243,246,247,250,260,268,282,284,286,290,296,297,307,308,355,360,370,371,373],burner:[250,290],bus_dac:1,bus_i2:1,bus_soft_dac:1,bus_typ:28,bus_voltag:52,busi:[9,35,85,86,93,110,129,131,250,266,290,300,302,378,391],button:[123,124,135,160,204,207,209,210,211,215,217,218,226,235,245,247,262,263,264,281,289,290,298,355,357,360,366,370,373],bv1vf4y1l7rb:206,bv2:9,by_clean:376,bypass:376,byte0:351,byte1:351,byte2:351,byte3:351,c1:159,c1c2c3:[19,265],c1c3c2:19,c3:[281,283,290,346,348],c3_pcb:[284,290],c99:159,c:[9,28,35,46,75,97,99,107,117,118,119,125,159,165,205,209,214,217,235,245,252,281,286,289,290,298,311,312,315,317,321,328,334,335,342,346,348,350,351,353,355,360,364,369,371,374,375,392,404],c_n_:376,ca:[18,23,58,93,113],ca_fil:28,cabl:[204,209,217,289,355,357,360,370,385],cach:[10,15,26,59,112,113,125,240,252,265,340,376],cache_s:28,cal:53,calchum:[170,171,172],calctemp:[170,171,172],calcul:[0,6,19,70,89,90,133,159,174,180,205,209,217,251,265,297,375,376],calculate_crc:53,calendar:[135,160,390,392],calendar_:159,calendar_cr:159,calendar_date_t:159,calendar_get_pressed_d:159,calendar_part_bg:159,calendar_part_d:159,calendar_part_day_nam:159,calendar_part_head:159,calendar_set_highlighted_d:159,calendar_set_showed_d:159,calendar_set_shown_d:159,calendar_set_today_d:159,calibr:[52,252,358,369,372],call:[1,3,15,25,29,35,38,42,56,58,65,71,72,93,96,101,102,104,107,119,121,124,131,159,165,188,189,190,204,208,226,246,247,250,265,269,274,290,298,300,301,302,320,327,328,329,333,337,339,340,341,344,345,349,378,379],call_:376,callabl:345,callback:[1,3,23,24,25,26,38,56,58,65,78,86,87,93,96,112,113,115,119,120,121,125,130,159,174,199,203,205,209,217,265,269,302,322,327,333,337,340,341,345,377,378],callbacktest:377,called_cal:376,called_catch_:376,called_collabor:376,called_empti:376,called_environ:376,called_glob:376,called_iter:376,called_objects_in:376,called_terminator_:376,called_upp:376,caller:376,calorif:369,cam:89,cam_vcc:[101,265],camera:[28,101,118,286,290,345,352,383,392],camera_id:3,can:[0,1,2,3,5,6,7,9,10,11,12,14,15,17,18,20,21,22,25,26,29,30,31,34,35,38,53,54,56,57,58,59,65,67,71,72,77,78,84,85,87,89,90,92,93,94,96,97,100,101,104,105,106,107,109,110,112,113,114,115,119,120,121,124,125,127,128,130,131,133,135,160,162,163,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,207,208,209,210,211,214,215,217,218,223,229,232,235,240,244,245,246,247,248,250,251,254,257,259,263,264,265,266,269,270,271,272,274,279,281,282,286,289,290,292,297,298,299,300,302,307,308,309,310,311,312,315,316,317,318,319,320,323,324,327,328,329,332,333,336,338,343,345,346,348,349,350,351,352,353,355,358,360,363,364,366,369,371,372,373,374,375,376,377,378,379,382,385,390,391],can_500kbp:62,can_rx:252,can_tdhxr:252,can_tdtxr:252,can_tx:252,cancel:[65,92,106,127,269,355,360],cannot:[10,11,13,17,24,25,30,62,65,67,71,90,92,97,98,101,105,107,109,113,115,119,129,159,167,199,205,209,215,217,218,232,235,247,250,251,263,265,266,269,270,271,274,281,286,290,291,301,302,311,312,315,317,327,333,345,350,355,357,360,366,375,376,377,378],canva:[135,160],cap:[218,355],capabl:[22,113,159,208,235,263,269,281,291,342,375],capac:[113,188,189,190,209,217,235,252,265,373],capacit:[218,235],capacitor:[218,235,369],capend:28,capit:159,captur:[28,159,165,252,353,358,360,366,369,371,372],capture_buff:28,capture_cnt:30,card:[1,12,14,23,53,59,92,107,108,112,113,120,127,159,163,209,217,235,250,265,270,286,289,290,316,325,349,375],care:[71,92,218,352,369,376],carefulli:[89,92,357,369,375,376,378],carri:[38,281,286,353,364,369,371,376],carriag:[104,375,376],carrier:32,carry_method:376,casual:[209,217,377],cat1:89,cat:[263,270,272,352,382],catalog:[207,317],catalogu:309,categori:[165,266,388],caught:[284,290,376],cauliflow:378,caus:[10,12,17,25,92,113,159,218,247,252,254,265,281,286,302,303,316,355,357,375,376],caution:[42,87],cb:[28,78,135,160,302,332,333,378],cb_is_inact:159,cbc:[6,19,167,272],cbfnc:[53,379],cbfun:28,cbt6:247,cc1:357,cc2:357,cc:[355,358,360,363,364,366],ccc:[218,375],ccccc:218,ccitt:6,ccm:272,cd:[28,299,314,317,375],cdata:[11,90],cdc:[204,247,270,281,286],cdma2000:272,cdn:[207,213,225,233,235,246,249,255,264,294,295,297,316],cdup:18,ce:[53,94],cede:376,ceil:165,cele:376,celevel:28,cell:[92,94,120,135,160,265],cell_info_ind:94,cell_info_upd:92,cell_typ:[135,160],cellid:[28,265],cellinfo:265,cellular:[28,113,118,353,371],celsiu:[0,25,44,109,265],cen:252,center:[9,35,124,133,159,263,274],central:[96,297],certain:[30,49,66,101,133,159,167,204,209,217,289,355,375,376],certainli:[375,378],certif:[18,23,54,58,93,113,265],cf:376,cfg_addr_ord:96,ch0:7,ch2o:53,ch340:[291,382],ch343:[104,204,281,286,382],ch343p:286,ch:28,ch_cpu:0,ch_vbat:0,chain:[210,266,303,319],chang:[20,36,85,89,92,101,120,124,128,133,135,160,165,167,168,175,205,209,217,247,252,254,263,265,268,269,282,290,301,306,308,311,312,317,321,328,334,342,345,353,360,363,366,373,375,377,378,402],changelog:[268,290],changelog_luato:266,changer:159,channel1:252,channel3:[250,290],channel4:252,channel:[0,1,4,7,28,30,85,86,96,108,119,128,159,166,170,171,172,174,182,183,184,196,200,201,202,205,209,215,231,240,251,252,257,264,269,286,291,297,323,341,345,353,358,371,372],channel_map:28,chapter:[166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,209,217,252,320,357,375,376],char_arrai:159,charact:[27,70,71,89,90,92,94,96,97,102,117,124,127,131,133,135,160,165,199,200,201,202,209,217,218,265,311,312,315,316,336],character_:376,character_x_:376,character_x_itself:376,characterist:[1,96,199,200,201,202,209,217,230,235,268,290,344,376],charg:[35,101,159,208,234,247,290,353,355,360,363,369,370,371,378],charge_vbat:235,charge_vcc:235,charger:[353,357],charpattern:165,chart:[71,135,160,214,221,290],chart_add_cursor:159,chart_add_seri:159,chart_axis_:159,chart_creat:159,chart_cursor_non:159,chart_cursor_t:159,chart_get_nearest_index_from_coord:159,chart_get_point_count:159,chart_get_point_id:159,chart_get_series_area:159,chart_get_typ:159,chart_get_x_from_index:159,chart_get_x_start_point:159,chart_get_y_from_index:159,chart_init_point:159,chart_part_bg:159,chart_part_cursor:159,chart_part_seri:159,chart_part_series_bg:159,chart_point_def:159,chart_refresh:159,chart_set_cursor_point:159,chart_set_div_line_count:159,chart_set_ext_arrai:159,chart_set_next:159,chart_set_point:159,chart_set_point_count:159,chart_set_point_id:159,chart_set_rang:159,chart_set_typ:159,chart_set_update_mod:159,chart_set_x_start_point:159,chart_set_x_tick_length:159,chart_set_x_tick_text:159,chart_set_y_tick_length:159,chart_set_y_tick_text:159,chart_type_:159,chart_type_column:159,chart_type_lin:159,chart_type_non:159,chart_u:159,chart_update_mode_:159,chart_update_mode_circular:159,chart_update_mode_shift:159,chat:104,cheat:[355,357],check:[1,6,9,11,19,25,28,30,35,71,87,90,92,104,105,109,110,113,117,124,125,135,160,188,189,190,200,201,202,204,207,209,211,217,218,231,232,245,246,247,252,286,291,298,304,305,306,308,311,312,315,319,325,340,343,350,357,369,375,376,378],check_sim_period:28,check_valu:28,checkbox:[135,160],checkbox_:159,checkbox_cr:159,checkbox_is_check:159,checkbox_part_bg:159,checkbox_part_bullet:159,checkbox_set_dis:159,checkbox_set_text:159,checkout:314,checkpoint:[311,312,317],checksum:[28,125],chef:378,cheng:162,chenxuuu:[324,333,338,339,340],chestnut:327,chi:65,child:159,children:159,china:[31,54,263,265,270,272,296],chines:[9,35,124,159,168,207,209,217,268,290,291,315,317,331,360,373,375],chip:[0,12,15,20,25,28,35,53,58,65,87,101,104,110,118,166,173,180,184,185,186,187,188,189,190,191,193,194,195,196,199,203,204,206,208,209,210,213,214,217,218,221,223,224,226,229,234,239,245,246,247,249,250,256,259,261,263,269,270,277,281,283,286,293,294,295,296,298,315,316,317,338,344,345,349,351,352,355,357,358,363,372,377,382,387,392],chip_check:53,chip_id:65,chiperas:28,chipid:[193,194,195],chmod:376,choic:[211,245,298,323,375],choos:[77,78,120,159,194,195,204,209,214,217,218,240,252,265,290,352,376],chooser:[135,160],chr:96,chr_f_notifi:96,chr_f_read:96,chr_f_write:96,chr_f_write_no_rsp:96,chr_uuid:28,chrome:159,cht8305c:53,chuang:264,chunk:[165,265],chunknam:165,ci:[210,299],cid1:265,cid:28,cillum:159,cipher:[6,268,290],cipher_decrypt:[28,167],cipher_encrypt:[28,167],cipher_list:28,cipher_suit:[28,272],circl:[28,35,124,133,159,209,217,353,376],circuit:[77,78,166,182,183,184,209,217,221,234,248,251,252,286,289,290,355,358,369,371,372,376,390],circular:159,circularli:159,circumst:[218,289],circumv:[375,376],citizen:376,citizens_:376,citron:159,cjk:159,ck:6,clamp:355,class_i:376,classic:[159,204,281,382],classif:[268,290,318,352,376],classmat:207,clean:[112,117,135,160,265,376],cleanmsg:28,cleansess:28,cleanup:[117,333],clear:[10,13,28,53,67,70,89,92,93,94,112,121,124,125,159,168,206,250,265,279,290,331,360,366,369,376,378],clear_bit_mask:53,clear_btn_ctrl:159,clearbuff:28,cleardownlink:28,clearli:[159,209,217,265,353],clearlong:[28,265],clearuplink:28,cli:309,click:[0,1,2,3,4,6,7,8,9,10,12,13,15,16,17,18,19,20,22,23,24,25,26,27,28,29,30,31,32,33,34,35,37,38,44,53,57,80,85,86,87,92,93,96,98,99,101,102,103,105,106,111,112,113,115,116,117,119,124,125,127,128,129,130,131,133,159,204,207,209,210,211,232,245,247,271,298,299,308,310,311,312,315,317,357,364,366,369,374,376,403],clickabl:159,client:[24,28,58,59,96,113,118,131,303,353,355,357,358,360,364,367,369,371,372,373,376],client_ca:28,client_cert:[18,28,53,93],client_id:[28,31],client_kei:[18,28,53,93],client_password:[18,28,53,93],clientid:93,clip:[117,159,355,357,370],clk:[28,53,188,189,190,193,194,195,209,217],clk_24m:235,clk_27p12:235,clock:[28,30,53,72,77,78,89,101,109,118,125,159,165,177,178,186,193,194,195,209,211,215,217,218,223,229,234,240,245,247,250,251,269,281,290,297,298,330],clock_source_to_output_on_mco_pin:248,clockwis:[38,49,159],clone:[311,312,313,314,315],close:[11,28,29,38,42,53,67,88,92,96,104,127,135,160,163,165,166,170,171,172,188,189,190,193,194,195,209,217,218,235,248,250,265,290,323,328,337,339,340,341,345,366,369,371,379],close_btn:159,close_watch_dog:53,closef:376,closest:159,closur:[20,165,302],closure_:376,cloud:[1,5,9,14,28,35,53,118,204,209,217,254,265,266,269,274,311,312,317,382],cloud_compil:35,cloudc:53,clutter:265,cmake:299,cmakelist:317,cmd:[28,30,159,248,251,308,315,317,323,338],cmd_cnt:28,cmi_mm_disable_edrx:94,cmi_mm_disable_psm:94,cmi_mm_discard_edrx:94,cmi_mm_discard_psm:94,cmi_mm_edrx_nb_iot:94,cmi_mm_edrx_no_act_or_not_use_edrx:94,cmi_mm_enable_edrx_and_disable_ind:94,cmi_mm_enable_edrx_and_enable_ind:94,cmi_mm_enable_psm:94,cmiot:92,cmsi:[214,245,246,247,252,290,298],cn:[23,51,56,67,71,101,130,207,254,267,269,289,317],cnt:[28,133,159,250,290,377,378],co:[58,159,165,263,266,297,378,379],coap:[28,118],coapdata:28,code:[3,5,21,23,24,25,27,28,32,35,36,42,58,65,71,77,78,84,87,92,93,96,101,102,105,107,109,113,115,119,122,124,128,138,146,149,155,159,163,165,166,168,169,170,171,172,174,176,177,178,179,181,182,183,184,186,187,191,192,196,197,198,199,203,205,206,207,209,211,214,217,223,226,229,247,250,252,263,265,266,274,289,290,296,303,309,311,312,318,320,324,328,329,331,332,333,336,337,339,340,341,344,346,348,350,355,357,360,377,378,379,385],codec:[28,101,118,262],codepoint:165,coder:[28,85,86],col:159,col_cnt:159,col_id:159,cold:[209,286],collabor:378,collat:376,colleagu:159,collect:[85,86,107,165,166,247,252,288,290,327,375],collectgarbag:165,collector:376,collector_to:376,collis:70,colon:[76,375],colon_syntax:376,color:[28,53,87,124,135,160,162,209,274,290,392,395,398],color_arrai:159,color_blu:159,color_hex3:159,color_mak:159,color_mode_hu:159,color_orang:159,color_purpl:159,color_transp:159,colro:159,column:[135,160,345],com0:[36,227,351],com1:[36,227],com2:227,com3:227,com8:308,com:[10,23,28,35,38,53,56,58,67,87,97,102,104,113,159,169,188,189,190,193,194,195,204,206,207,209,210,211,213,222,225,228,233,235,244,245,246,247,249,255,261,263,264,266,270,274,289,294,295,297,299,301,310,311,312,314,315,316,317,349,375,381,383,384,391,393,395,396,398,399,401,404],com_mark:28,com_numb:28,combat:206,combin:[96,194,209,211,218,252,265,279,315,351,357,375,376,378,382],come:[65,120,159,209,235,240,281,315,323,371,375,376,378],comfort:371,comma:[53,207,323,375,376],command:[3,9,28,30,35,53,85,101,102,124,159,165,173,174,188,189,190,205,209,217,263,282,299,315,323,346,348,353,358,366,369,371,372],comment:[133,209,217,252,311,312,317,345,376],comment_:376,commerci:[159,266],commiss:[321,334,342],commit:[265,345],commodo:159,common:[23,63,72,77,78,89,93,96,113,128,130,135,160,167,204,215,220,225,252,264,270,281,297,316,328,338,346,347,351,353,375,376,380],commonli:[125,131,162,175,209,217,218,252,265,279,375],commun:[65,70,101,130,159,170,171,172,192,193,194,195,199,200,201,202,208,209,215,217,240,246,252,257,270,281,290,321,334,339,340,342,350,352,355,360,370,371,373,376],comp:165,compact:375,compar:[89,133,215,252,297,355,375,376],comparison:[17,133,165,235,250,290,297],compat:[17,19,65,67,89,90,96,125,159,187,204,209,217,240,244,250,251,252,254,257,265,270,286,292,293,376,390,402],compens:369,competit:369,compil:[0,5,9,14,35,38,63,96,101,104,107,131,159,204,206,211,214,217,245,254,265,266,269,274,280,281,282,290,298,301,336,346,348,375,376,382],complain:360,complement:[28,118,375,376],complementari:[240,297],complet:[1,5,15,17,25,30,59,65,71,86,92,93,96,100,101,108,113,115,120,125,132,159,170,171,172,199,200,201,202,209,211,215,217,218,224,225,226,228,245,247,252,263,265,266,282,289,297,298,299,302,305,308,317,328,340,346,348,351,353,366,375,376,377,402],complex:[208,265,375],compliant:240,complic:[175,209,217,378],complimentari:370,compon:[35,87,135,160,166,209,217,245,266,289,315,317,342,352],compos:[117,159,375],composit:[247,351,376],compound:376,compress:[3,24,28,118,159,163,265,266,297,315,316,344,351],compressor:90,compromis:376,comput:[105,204,209,215,217,246,250,254,265,289,290,311,312,315,316,324,353,355,360,366,369,371,375],compute_adler32:90,comxx:247,con:37,conack:[93,130],concat:[165,209,217],concaten:[165,375],conced:376,concentr:82,concept:[135,160,165,333,375],concess:376,concis:[303,374,375],concord:119,concorout:119,concret:15,concurr:265,cond:376,condit:[159,162,235,252,265,274,297,323,376,378,379],condition:217,conf:[28,53,159,214,290,309,320],conf_ce_mod:92,conf_psm_mod:92,conf_qualityfirst:92,conf_reseltoweakncel:92,conf_sim_wc_mod:92,conf_staticconfig:92,conf_t3324maxvalu:92,conf_userdrxcycl:92,conf_xxx:92,confess:162,confid:357,confidenti:279,config:[28,53,165,265,282],configassert:252,configprio_bit:252,configur:[1,7,8,10,20,23,24,34,38,39,52,54,62,64,66,71,73,85,86,89,92,93,96,101,107,113,123,124,125,128,130,159,175,205,211,217,218,220,225,235,240,245,250,251,263,264,265,266,268,281,284,286,290,297,298,302,309,310,311,332,333,339,340,376],confirm:[252,282,286,308,317,357],conflict:[92,265,269,316,376],conform:[102,159,271,315,376],conjunct:[120,378],conn:28,conn_mod:28,connect:[10,18,23,28,31,53,56,58,65,67,77,78,84,85,92,94,109,135,138,146,149,155,159,161,164,166,168,170,171,172,175,187,192,199,200,201,202,204,208,209,210,211,215,217,218,235,245,246,250,252,254,257,263,265,269,281,286,289,290,298,315,323,341,351,353,360,366,371,373,375,376],connect_config:53,connector:357,connok:28,conscienti:353,consectetur:159,consecut:[159,250,290],consequ:369,consequat:159,consid:[1,209,217,235,266,289,308,328,375,376],consider:[250,274,290],consist:[26,59,96,159,170,171,172,193,194,195,299,320,353,366,375,376],consol:[5,346,348],consola:207,consolid:159,constant:[17,28,53,159,265,321,334,335,336,342,345,376],constant_:376,constantli:376,constel:263,constraint:375,construct:[159,165,205,206,214,221,250,290,296,346,348],constructor:376,consult:[97,247,315],consum:[3,4,14,159,318,327,349,357],consumpt:[0,11,29,92,101,177,178,208,221,226,234,265,268,279,284,290,297,329,330,341,353,360,363,371,373,375,382],cont:[135,160,376],cont_creat:159,cont_part_main:159,cont_set_fit2:159,cont_set_fit4:159,cont_set_fit:159,cont_set_layout:159,contact:[53,92,218,252,316,353,381,384],contain:[29,35,89,92,93,94,96,99,102,120,135,160,170,171,172,218,240,247,265,266,311,312,315,317,322,375,376],contamin:247,content:[1,9,12,23,35,58,87,102,112,119,120,121,124,133,135,160,175,176,207,209,211,217,247,265,268,290,299,304,309,315,318,319,322,328,331,343,345,346,347,350,360,373,376],content_len:23,context:[71,96,207,302,376],continu:[0,1,3,26,28,101,103,113,159,182,183,184,206,209,217,218,223,229,250,263,265,290,302,310,326,329,336,355,360,366,375,376,378],contract:286,contrari:[204,209,375],contrast:[28,159,251,290],contribut:25,control:[1,12,25,28,42,53,65,66,68,70,71,87,101,115,118,125,135,160,162,165,170,171,172,174,182,183,184,196,205,209,217,218,235,240,245,246,247,250,251,263,265,269,284,288,290,291,296,297,303,338,341,351,353,370,371,375,378,380],convei:159,conveni:[159,193,194,195,209,217,281,286,332,341,352,355,366,376],convent:[24,165,264,302],convers:[2,12,19,27,28,96,102,117,118,125,135,160,165,166,177,178,179,199,209,235,240,250,265,286,290,291,345,346,347,382],convert:[0,2,27,33,38,53,56,71,89,102,105,117,131,133,159,162,163,166,170,171,172,174,180,193,194,195,199,205,209,217,252,265,323,350,375,376],cook:378,cool:[20,301],cooper:[34,35,114,120,358,369,372],coord_min:159,coord_t:159,coordin:[9,29,35,38,56,57,71,87,91,124,133,159,263,265,297,366,371,376,382],copi:[28,124,159,207,211,247,299,301,308,317,318,319,320,327,328,375,376],coprocess:376,coprogram:378,copybuff:[28,265],copyright:[159,163,315],core:[72,77,101,115,166,208,214,225,233,234,239,244,245,247,252,270,282,283,284,287,288,290,293,296,297,298,325,326,327,329,330,331,334,337,342,344,351,357,360,371,376,377,378,379,384,391,402,404],core_addr:344,core_v1103:265,coremark:[28,118,290,293],corner:[9,35,87,91,124,159,204,207,209,210,245,355,369],corout:[376,378],coroutag:376,coroutet:[376,379],corouti:376,coroutin:[39,40,41,43,45,46,47,48,50,52,54,55,56,57,58,60,61,62,63,64,66,68,69,70,73,74,75,76,79,81,82,83,165,375,378],correct:[9,20,25,35,38,106,124,265,301,311,312,315,317,357,375,376,378],correctli:[15,25,115,265,269,375,376],correl:[268,290],correspond:[1,3,6,9,13,17,19,20,27,34,35,36,38,49,56,71,77,78,84,91,94,100,101,104,110,119,123,124,128,159,166,169,173,174,177,178,179,180,185,191,196,203,204,205,211,215,218,226,235,244,246,247,252,259,265,269,274,281,286,289,290,291,301,318,321,322,328,334,336,342,350,355,360,373,375,376,377,378,391,404],correspondingli:20,cortex:[215,247,297],cortextm:240,cosh:376,cosin:376,cost:[159,257,363],could:376,count:[28,49,76,94,120,123,133,165,192,197,210,250,265,290,336,360],counter:[92,120,123,252,286,297],counterclockwis:[49,159],coupon:247,courier:207,cours:[38,133,159,162,207,232,247,366,375,376,378],cover:[10,355],cp2102:[366,369],cp210x_windows_driv:366,cp:266,cpath:165,cpha:[12,28,65,163,339],cpicker:[135,160],cpicker_:159,cpicker_cr:159,cpicker_part_bg:159,cpicker_part_knob:159,cpicker_set_knob_color:159,cpin_is_readi:92,cpol:[12,28,65,163,339],cpp:102,cpp_out:102,cpu:[0,97,101,209,217,220,225,235,242,265,327,376,378],cr2:252,cr:[252,375],cr_opter_set:252,cr_strt_set:252,crash:[53,89,252,265,376],crc16:[28,99,251,343],crc16_modbu:28,crc32:28,crc7:[28,265],crc8:28,crc:[6,70,109,251,332],crc_modbu:332,crcon:[85,86],creat:[6,25,26,28,29,31,35,37,53,54,56,59,87,92,109,115,119,121,124,159,162,163,165,166,174,188,189,190,198,203,204,205,207,209,211,217,245,298,299,307,315,318,319,331,341,346,348,364,375,378,379],createap:28,createsoft:[28,63,265],creation:[93,130,131,133,159,188,189,190,265,308],creativ:352,critic:[135,160],crop:[135,160],cross:[135,160,266,321,334,342,376],crossov:252,crt:93,crypto:[28,96,99,105,118,174,205,265,272,293,332],crystal:[89,186,209,214,220,221,225,235,252,290,297],cs:[9,12,28,53,65,85,128,163,174,188,189,190,196,205,209,217,339],cs_gpio:[193,194,195],cs_pin:28,csdk:[204,264,269,274,291,292,316],csfb_not_preferred_regist:92,csfb_not_preferred_registered_roam:92,csk:62,cspin:[188,189,190],csq:28,css:159,csv:[282,366],ctr_lp:252,ctrip:166,ctrl:[28,207,366],ctrl_map:159,ctwing:265,ctx1:376,ctx2:376,ctx:[302,376],ctype:376,cubemx:[251,252],cuboid:375,culpa:159,cumul:[92,366],cupidatat:159,cur:376,cur_timestamp:28,curli:[375,376],current:[0,1,3,4,6,9,10,12,13,18,20,22,24,25,26,28,34,35,38,49,52,53,56,57,84,85,86,87,89,90,92,94,96,101,105,106,107,110,113,115,118,120,125,127,128,131,133,135,160,170,171,172,204,207,209,215,217,218,235,246,247,252,257,265,291,297,301,308,321,323,327,334,336,337,338,342,343,351,353,355,358,363,364,370,371,372,374,375,376,378,381,384],currentlin:376,cursor:[133,135,160,369],curv:[221,226,234,284,290,366,371],custom:[9,10,14,20,23,35,58,94,97,107,113,124,127,135,160,204,209,218,247,265,266,282,297,302,303,308,324,327,336,346,348,349,375,376],custom_id:28,custom_init:301,customiz:159,cut:[120,247,265],cute:376,cvcc:235,cwait:[121,302],cwait_id:302,cwait_mt:333,cwaitcreat:333,cwd:18,cycl:[30,36,92,93,96,103,107,125,130,159,174,176,182,183,184,198,199,203,205,206,209,217,250,290,297,328,330,369,376,377,378,379],cyclic:[221,226,234,284,290],d0:[248,251],d3102512a40000a:[220,225],d3:[248,251],d4:281,d5:281,d:[9,28,38,65,71,84,97,99,107,133,159,168,169,176,188,189,190,209,210,217,301,311,312,313,314,315,317,345,350,363,375,376],dac:[1,28,118,235,240,251,262,265,270,279,293],dac_en:[101,269],dacdelai:28,dacen:1,daclevel:28,dacpin:28,dactimedelai:28,dai:[38,56,67,97,106,159,186,208,209,311,312,317,374,375,376],daili:[187,209,217],dam:252,damag:[218,303,357,366,369],dap:[211,245,246,250,252,290,298,323],daplink:[210,211,245,246,250,251,290,298],daquan:[382,392],dark_color:28,darken:159,darker:159,darkest:159,dat:[53,263],data0:252,data1:[28,169,197,252],data2:[6,28,169,197,252],data2_decrypt:167,data2_encrypt:167,data32bit:28,data3:[169,197],data4:[169,197],data5:197,data64bit:28,data6:252,data7:252,data:[3,10,12,15,18,21,22,23,28,30,32,34,39,40,41,43,44,45,46,47,48,52,53,55,56,58,59,60,61,62,64,65,67,69,72,73,74,75,77,78,79,80,82,83,87,91,99,101,114,118,119,120,131,135,160,161,163,166,167,170,171,172,174,175,184,188,189,190,192,193,194,195,197,199,203,205,206,207,208,209,214,215,217,218,221,226,234,239,243,246,247,250,251,256,260,263,265,266,268,269,274,277,281,284,288,290,294,296,297,300,302,315,320,321,322,323,324,328,331,333,334,338,339,340,342,343,344,345,346,347,349,351,352,353,358,364,369,371,372,376,377,378,385,388,390,395,398,401,404],data_bit:28,data_len:113,data_mod:28,data_repres:376,data_w:162,dataa:327,datab:327,databas:[28,53,118,174,205,291,343,376],databook:213,datal:252,datar:[85,86],datasheet:[220,225],datasheet_1:233,datatraff:28,dataw:28,date:[28,38,53,67,106,107,113,120,130,135,160,165,168,186,209,265,299,318,319,322,323,324,325,326,327,329,330,331,332,333,337,338,339,340,341,345],date_t:159,day_nam:159,daylight:376,dbg:[264,323],dbg_rx:269,dbg_tx:269,dc2dc:235,dc:[9,209,217],dcdc:369,dcim:291,dcmi:235,dcmis_data0:235,dcmis_data10:235,dcmis_data11:235,dcmis_data12:235,dcmis_data13:235,dcmis_data1:235,dcmis_data2:235,dcmis_data3:235,dcmis_data4:235,dcmis_data5:235,dcmis_data6:235,dcmis_data7:235,dcmis_data8:235,dcmis_data9:235,dcmis_hsync:235,dcmis_pix_clk:235,dcmis_vsync:235,dd:38,ddd:375,ddddd:38,ddddddd:38,ddddddddd:38,ddlist:159,ddmm:38,de:[261,376],dead:[240,265,297,353,375,376,378],deal:[350,376,378],dealer:92,death:218,debounc:[28,265],debug:[7,23,26,28,71,89,102,159,163,165,176,209,211,214,217,221,245,246,250,281,286,290,298,315,321,323,328,334,342,344,351,375,378,380,382],debugg:[210,211,215,245,246,247,252,298,321,334,342,376],debugge:246,dec:124,decemb:[56,159],decept:363,decid:[15,89],decim:[38,56,89,159,174,180,205,297,375,376],decis:358,declar:[159,165,301,332,375],decod:[1,3,6,28,105,117,159,193,194,195,240,252,265,331],decoi:[353,360,363,364,366],decompos:[350,376],decomposit:38,decompress:[11,28,90,118,163,204,266,291,311,312,315,316,351],decor:124,decoupl:269,decreas:[25,92,159,182,183,184],decrement:159,decrypt:[19,28,118,167,265],dedic:[54,89,115,159,208,264,265],deep:[101,221,226,234,263,265,269,290,297,315,331,376],def:[84,117,375,376],def_event_cb:159,defect:265,defens:265,defgroup:248,defin:[6,56,65,72,77,78,93,102,104,124,127,159,193,194,195,211,252,265,300,301,309,311,321,327,328,330,332,334,336,337,341,342,344,376,377,378,379],define_method_:376,definit:[102,133,159,165,208,209,214,217,218,226,234,245,284,288,290,297,301,311,328,345,346,347],defocus:159,deg:[64,159,165],degrad:218,degre:[0,9,25,38,44,109,159,217,265],deinit:28,del:28,del_len:133,delai:[1,28,38,66,87,109,119,125,128,159,170,171,172,174,177,178,179,186,198,205,209,210,217,250,265,290,322,327,330,338,340,353,358,371,372,378,379],delay1248:89,delay_u:252,dele:18,delet:[10,13,17,24,29,37,87,92,97,114,121,133,135,160,174,205,247,321,325,328,334,342,345,349,376,378],delimit:[28,376],deliv:[93,247],deliveri:[71,247,265],delta:[159,297],demand:[0,129,209,217,265,290,346,348,376],demo1:159,demo:[0,1,2,3,4,6,7,8,9,10,12,13,15,16,17,18,19,20,22,23,24,25,26,27,29,30,31,32,33,34,35,37,38,44,49,57,65,80,85,86,87,89,92,93,96,98,101,102,103,105,106,111,112,113,115,116,117,124,125,127,128,129,130,131,133,159,162,163,175,198,204,206,209,217,226,251,265,266,274,281,286,290,291,302,309,345,349,383,390,392,393,396,399,402,404],demo_benchmark:28,demo_keypad_encod:28,demo_mus:28,demo_print:28,demo_stress:28,demo_widget:28,demonstr:[22,56,105,131,159,198,200,201,202,211,232,302,357,375],deni:92,denot:376,densiti:375,depart:265,depend:[9,22,25,36,89,92,96,97,101,113,125,159,235,245,263,291,303,318,328,330,343,376],deploi:71,deprec:376,depth:[87,133,375,376],der:19,deriv:[94,159,376],describ:[135,138,146,149,155,159,160,161,169,170,171,172,174,177,178,179,182,183,184,188,189,190,193,194,195,197,198,200,201,202,205,254,269,304,320,323,353,366,371,376,378],descript:[71,107,113,135,160,162,207,209,217,218,226,235,244,248,250,251,263,268,284,288,290,322,336,342,346,347,350,360,375,376,378,391],descriptor:159,deselect:159,deseri:33,deserunt:159,design:[52,166,183,187,194,195,200,201,202,209,217,220,221,225,226,233,234,247,248,250,251,252,255,263,266,269,279,281,286,290,292,321,322,324,328,333,335,342,347,358,369,372,375,376,391],desir:[38,159,376],despit:376,destroi:[159,375,376],destruct:303,detach:92,detail:[13,26,31,34,56,71,94,96,101,113,114,131,159,162,215,235,247,251,252,263,265,266,281,297,328,336,353,371,376,378],detect:[73,78,85,92,209,217,235,240,265,269,297,308,357,375,376,378,380],determin:[25,26,29,58,64,65,92,93,94,101,107,112,130,159,209,217,252,324,327,328,338,345,355,363,366,375,376,378,379],dev:318,develop:[5,22,25,28,35,38,71,97,118,142,159,160,161,164,166,167,168,169,170,171,172,174,175,176,177,178,179,181,182,183,184,186,187,188,189,190,192,193,194,195,197,198,199,200,201,202,204,208,209,211,214,215,218,220,221,225,226,233,234,239,243,245,249,250,251,255,256,257,260,265,268,269,270,277,283,284,287,288,289,292,295,296,298,303,341,342,345,352,375,377,378,379,380,382,390,391],deviat:291,devic:[0,4,5,9,10,12,20,21,25,31,35,53,54,64,65,67,71,73,85,86,87,89,93,94,96,101,103,104,105,107,108,109,111,125,127,129,131,135,160,163,170,171,172,174,180,191,196,204,205,208,209,214,217,235,245,246,248,250,252,265,266,274,290,298,308,309,323,328,339,340,341,344,349,351,352,353,355,358,360,363,370,371,372,373,376],device_clos:[193,194,195],device_id:[28,130],device_kei:28,device_nam:[28,54],device_secret:28,device_setup:115,devicesetup:[9,28,35,86,111,163,188,189,190,193,194,195,209,217],devlog:10,dfp:[250,290],dfu:360,dgps_age:38,dhcp:[128,131,341],dhcp_enabl:28,dhe:272,dht11:109,dht12:[25,109],dht1x:28,dht30:25,di:[188,189,190,193,194,195],diagram:[65,166,168,170,171,172,175,199,209,214,217,218,221,235,245,246,247,264,290,292,298,355,378,390,392,404],dial:[355,357,360],did:[102,252,290,324,378],didn:375,diff_tick:89,differ:[9,11,17,20,22,35,38,82,83,84,89,92,93,96,97,101,109,124,125,133,159,174,176,180,182,183,184,194,205,209,217,218,224,225,226,228,235,250,251,262,263,265,266,269,270,274,281,286,290,291,293,302,303,311,312,316,317,320,323,328,333,336,343,344,349,351,353,360,366,369,373,375,376],differenti:[22,38,235,268,271,290,382],difficult:[324,369,375,376,378],difficulti:323,difftim:[28,165],dig1:78,dig4:78,dig:53,digit:[6,28,38,53,56,72,117,118,125,135,160,166,182,183,184,193,194,195,209,217,220,225,235,240,266,268,270,271,290,340,345,370,375,376,377],digit_count:159,digitalwrit:210,dim:159,dimens:[159,281,283],dimension:[9,35,87,124],dingd:265,dingtalk:265,dinner:378,dio1:[85,86],dio:281,diod:235,dipper:263,dir:[159,252],dir_forward:159,dir_path:28,direct:[2,9,20,31,32,34,35,38,49,96,101,108,110,124,125,131,135,160,162,163,165,175,209,210,211,217,235,252,265,281,286,323,329,331,355,357,376,382],directli:[0,1,5,6,9,13,17,20,85,89,92,96,100,101,108,115,119,132,133,159,166,174,187,191,196,199,200,201,202,204,205,208,209,210,211,217,218,235,245,247,252,263,265,266,271,281,286,289,291,298,299,300,301,302,306,310,311,312,315,316,318,319,320,324,327,331,333,338,350,353,355,366,375,376,377],directori:[29,97,111,159,209,211,265,266,274,298,299,301,309,311,312,315,317,318,319,349,376],dirti:17,disabl:[35,36,65,90,92,94,104,112,124,131,135,160,174,196,205,248,252,265,272,373,376],disablepwm:28,disadvantag:[159,355],disappear:247,disassembl:369,disburs:327,disc:[135,160],disc_mod:28,discard:[0,223,229,376],discchr:28,discdsc:28,discharg:[366,369,371],discon:28,disconnect:[23,28,53,58,59,113,130,208,247,252,265,341,360],discoveri:96,discrep:279,discsvr:28,discuss:[274,328,376],disguis:363,dish:378,disk:[127,246,247,315,317,366],disp:[28,118,124,174,205,209,266],disp_get_default:159,disp_get_hor_r:159,disp_get_ver_r:159,disp_set_bg_color:[209,217],dispatch:378,displac:2,displai:[2,8,9,35,76,77,78,87,102,113,124,135,160,162,164,168,175,181,186,187,192,199,209,217,240,246,250,265,266,270,280,290,316,323,331,336,353,355,360,364,373,375,376,402],display_str:168,dist:[159,327],dist_px:159,distanc:[133,159,219,224,231,253,262,263,264,355],distinguish:[250,269,290,357,375,376],distort:355,distribut:[131,159,254,266,376,378],district:106,divid:[0,52,103,159,166,167,192,209,217,218,250,251,290,297,300,320,375,376],divis:[2,103,182,183,184,218,231,250,252,290,297,375,376],djtr:[254,289],dl:[317,351],dlfcn:376,dll:[299,366,376],dma1_channel1_irqhandl:252,dma1_it_tc1:252,dma:[235,250,265,286,290,297],dma_clearflag:252,dma_clearitpendingbit:252,dma_cmd:252,dma_getitstatu:252,dn:[51,113,235,265],dnp:6,dns_index:28,doc:[67,159,244],dock:[265,333,349,404],document:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,114,115,116,117,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,138,142,146,149,155,159,160,161,164,166,167,168,169,170,171,172,175,176,177,178,179,181,182,183,184,186,187,188,189,190,192,193,194,195,197,198,199,200,201,202,205,206,209,211,214,215,217,218,221,230,231,234,245,247,252,254,268,269,270,289,290,298,304,308,309,311,312,315,323,342,345,347,348,352,366,376],doe:[4,12,14,25,27,28,29,33,35,38,63,65,66,67,77,78,85,87,89,92,94,96,100,101,103,104,107,113,118,120,125,127,128,129,133,159,188,189,190,204,208,218,231,245,250,251,262,263,265,266,269,270,272,281,286,290,293,298,307,310,311,312,315,316,322,327,329,332,333,336,345,349,350,353,360,375,376,378],doesn:[24,207,250,290,376],dofil:[165,300],dog:[5,42,129,176,198,322],dolor:159,domain:[23,53,56,57,59,93,113,207,265,281,376],domain_nam:53,domest:38,domin:[247,251,296],don:[9,12,58,71,89,92,110,113,159,163,200,201,202,209,217,245,266,289,290,298,299,302,311,312,317,345,353,355,360,375,376],donald:274,done:[1,26,28,105,159,166,209,217,266,282,291,301,375,376,377],doom:269,door:357,dormanc:116,dormant:[208,369],dot:[35,124,159,168,175,209,211,217,324,376],doubl:[87,99,133,159,211,240,245,246,247,298,299,308,315,317,366,375,376],double64:331,down:[1,12,20,22,30,101,135,160,174,186,196,205,208,209,218,223,229,235,245,247,248,251,252,263,265,269,274,281,297,298,316,323,329,337,353,355,357,360,366,369,373,376,378],downgrad:247,downlink:92,downlinkb:92,downlinkgb:92,download:[13,17,18,23,71,101,102,159,163,166,200,201,202,204,207,209,214,217,219,221,222,224,228,231,232,235,243,246,250,254,261,263,264,265,268,271,281,286,289,290,296,299,304,305,306,308,311,312,316,317,318,344,351,357,382,392,404],downstream:92,downward:355,dp:[78,235,248,251,252],dp_puup:248,dpi:159,dr:[250,290],draft:[322,323,324,325,326,327,329,330,331,332,333,337,338,339,340,341],drag:[159,247,319,366],drain:[235,297,337],draw2lcd:28,draw:[28,91,124,133,159,163,175,209,217,247,265,331,355],draw_al:124,draw_lower_left:124,draw_lower_right:124,draw_mask_:159,draw_mask_fade_init:159,draw_mask_fade_param_t:[28,159],draw_mask_fade_param_t_fre:28,draw_mask_line_param_t:[28,159],draw_mask_line_param_t_fre:28,draw_mask_line_points_init:159,draw_mask_line_side_top:159,draw_mask_radius_init:159,draw_mask_radius_param_t:[28,159],draw_mask_radius_param_t_fre:28,draw_upper_left:124,draw_upper_right:124,drawbox:28,drawbuttonutf8:[28,265],drawcircl:[28,175,209,217],drawdisc:28,drawdrcod:28,drawellips:28,drawfilledellips:28,drawfram:28,drawglyph:28,drawgtfontgb2312:28,drawgtfontgb2312grai:28,drawgtfontutf8:28,drawgtfontutf8grai:28,drawlin:[28,109,175,209,217,290,331],drawn:[159,378],drawpixel:28,drawpoint:28,drawqrcod:28,drawrbox:28,drawrect:[28,331],drawrectangl:[28,175,209,217],drawrfram:28,drawstr:[28,124,168,209,217,331],drawtriangl:28,drawutf8:28,drawxbm:28,drawxxx:9,drink:[311,312,317],drive:[28,53,65,72,77,78,109,118,159,162,168,174,204,205,209,217,235,246,250,264,265,269,281,286,290,315,366,382,398,402],driven:[72,175,209,217,376,390],driver:[9,28,53,78,87,101,118,135,159,161,168,175,188,189,190,204,209,217,240,245,250,251,265,266,281,286,290,297,298,308,315,357,366,382,391,395,401],driver_usart:315,drop:[20,135,160,218,235,245,247,298,355,358,369,372,373,376],dropdown:[135,160],dropdown_:159,dropdown_add_opt:159,dropdown_cr:159,dropdown_dir_left:159,dropdown_down:159,dropdown_get_selected_str:159,dropdown_open:159,dropdown_part_list:159,dropdown_part_main:159,dropdown_part_scrlbar:159,dropdown_part_select:159,dropdown_set_dir:159,dropdown_set_opt:159,dropdown_set_show_select:159,dropdown_set_symbol:159,dropdown_set_text:159,drum:159,drv:[28,187],drxcycl:92,ds18b20:[28,71,209,308],ds18b20_temp:71,ds3231:53,ds3231_read_tim:48,ds:351,dsp:[208,291],dst:[23,71,105],dtick64:[28,179],dtick64data:179,dtick64r:179,dtimer:[101,223,229],dtimercheck:28,dtimerstart:[28,181],dtimerstop:[28,181],dtimerwkid:28,dtl:265,dtp:28,dtr:[215,247],dual:[26,72,92,208,250,270,286,290,297,363,371],duck:274,due:[25,39,40,41,43,45,46,47,48,50,52,54,55,56,58,60,61,62,63,64,65,66,68,69,70,73,74,75,76,79,81,82,83,115,230,247,252,266,269,270,286,355,357,366,375,376],dui:159,duino:210,dummi:[159,376],dump:[28,159,165],dup:93,duplex:[65,115,188,189,190,192,193,194,195,209,217,250,290,339],duplic:[93,159,265,378],dupont:[247,289],durat:[20,66,92,101,107,119,122,129,159,179,198,274,330],dure:[1,20,23,25,29,38,65,72,97,104,122,125,159,170,171,172,198,204,209,217,218,252,265,269,281,286,315,357,366,376,379],dust:53,duti:[28,96,103,182,183,184,209,217],duty_oneeighth:36,duty_onefifth:36,duty_onefourth:36,duty_onehalf:36,duty_oneseventh:36,duty_onesixth:36,duty_onethird:36,duty_stat:36,dvp:286,dynam:[6,25,54,115,128,133,159,218,265,366,375,376],e4:289,e5:289,e6:289,e7:289,e8:289,e9:289,e:[1,9,52,84,92,115,131,159,165,176,209,215,217,252,263,274,311,312,315,317,345,351,375],ea:159,eabi:315,each:[9,15,22,25,28,35,53,70,92,93,109,124,159,175,199,200,201,202,207,209,211,215,217,235,240,250,251,252,269,290,311,312,316,333,334,351,353,360,369,371,373,375,376,378],earfcn:[28,92],earli:[245,251,281,286,298],earlier:[209,217,266,375,376],eas:376,ease_in:87,ease_in_out:87,ease_out:87,easi:[28,102,113,118,159,247,286,302,303,332,333,364,376,378],easier:[159,265],easili:[247,324,333,355,374,375,376],east:[38,57,94,106],eat:375,ec11:53,ec11_callback:49,ec616:244,ec616_0h00:313,ec618:[0,1,15,20,87,89,92,100,101,106,204,266,269,271,289,290,315,316],ec618_lua_lod:274,ecb:[6,19,265],ecdh:272,ecdsa:272,ecg:159,echo:[130,358,369,372],eci:28,ed:159,eda:[218,264],edg:[20,35,124,133,135,160,281,286,290,297],edit:[71,159,165,204,205,266,283,346,348,370,373,382],editor:[207,315],edrx:94,edx:94,eeprom:[17,25,193,194,195],ef17:[193,194,195],ef4018:[209,217],ef:[193,194,195,375],effect:[49,89,92,100,101,113,133,135,160,162,164,174,181,185,205,209,217,232,252,263,265,274,290,297,302,315,346,348,357,363,373,376],effect_match:265,effici:[38,159,208,209,245,247,252,265,298,352,374,378],egg:353,eigenvalu:96,eight:[159,376],eighth:106,eink1:392,eink:[28,118,209,266,270,291,293,316,336,391],einkbook:391,either:[159,214,290,344,350,376],eiusmod:159,elaps:376,electr:[208,234,290,355,357,360],electrochem:53,electrolyt:218,electron:[166,209,217,390,392],eleg:302,element:[17,135,160,263,375,376],elev:38,elf:315,elig:375,elimin:[20,34,245,265,376],elit:159,ellips:124,ellipsoid:38,ello:375,els:[12,14,25,26,29,38,47,49,58,88,91,101,115,119,159,162,163,188,189,190,200,201,202,209,210,211,217,301,322,326,330,333,375,376,378],elseif:[24,86,159,375,376,378],elsewher:[159,376],email:102,emb:208,embed:[159,209,240,252,274,341,352,374,375,376],emerg:92,emergency_regist:92,emit:265,emot:336,emphas:218,empti:[1,3,10,13,15,17,19,30,67,76,87,89,92,99,107,117,124,125,132,133,159,174,205,209,217,247,252,265,269,290,327,331,375,376],emptyselectionclipboard:207,emtri:87,emul:[87,211,250,290,352],en:[28,159],enabl:[0,1,9,17,20,28,34,65,72,94,101,113,115,124,129,131,159,166,168,174,196,205,207,211,231,235,247,248,250,254,265,266,268,269,290,345,346,348,355,357,360,373],enbid:28,encapsul:[28,118,168,175,177,178,179,193,194,195,209,217,279,300,320,328,349,375,376,378],enclos:[375,376],encod:[6,12,14,17,24,27,28,29,38,53,57,67,92,94,97,99,106,112,117,120,126,130,131,159,163,167,186,209,217,265,324,376],encodestr:28,encount:[30,92,107,113,159,207,218,252,265,281,323,375,376,378],encrypt:[18,19,23,28,31,54,58,59,93,113,118,130,167,234,254,257,265,272,290,341],end:[0,1,3,6,7,9,10,11,12,13,14,15,17,20,22,23,24,25,26,27,29,30,34,36,38,39,40,41,42,43,44,45,46,47,48,49,50,52,55,56,57,58,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,81,82,83,85,86,87,88,90,91,92,93,94,96,98,99,101,102,103,104,105,108,109,110,112,113,114,115,119,120,121,123,125,130,131,132,133,159,162,163,166,168,169,170,171,172,176,177,178,179,182,183,184,187,188,189,190,192,193,194,195,197,198,199,200,201,202,209,217,218,235,247,251,252,265,266,269,272,290,297,300,315,318,319,322,330,333,337,339,340,341,343,345,346,348,355,357,366,369,370,375,376,377,378,379],end_angl:159,endian:[27,53,99,113,115,125,127,133,376],endif:[159,211],endless:327,endpoint:252,endswith:28,endur:208,energi:[65,101,162,208,252,371],engin:[159,246,248,294,352,375,390,392],english:[71,124,159,182,183,184,193,194,195,207,265,268,290,316,323,360,373],enhanc:[121,240,250,252,290],enim:159,enjoi:374,enlarg:[1,125,159],enodeb:92,enough:[4,12,25,92,105,113,115,125,127,159,209,217,282,291,311,332,375,376],ensur:[10,25,115,159,209,217,218,235,252,266,282,291,315,366,369,376],ent:28,enter:[9,12,27,30,62,70,71,92,94,101,104,107,132,159,163,181,204,210,211,215,218,223,229,232,252,269,281,282,286,299,307,308,311,312,315,317,321,323,334,335,342,351,353,355,357,366,369,370,373,375,376,378],enterpris:[159,381],enthusiasm:376,entir:[13,17,29,111,132,133,159,174,198,205,218,235,266,270,302,375,376],entireti:376,entiti:[29,80,321,334,342],entranc:218,entri:[85,86,87,165,209,309,327,375],entries_can:376,enumer:[29,159,248,251,265,376],env:[13,165,169,314],environ:[56,89,165,205,206,209,214,221,246,247,250,265,290,296,299,310,315,316,349,352,369],environment:162,envisag:[320,332],eoc:252,eof:104,eol:352,ep:92,ep_ctr_rx:252,ep_ctr_tx:252,ep_id:252,epat:265,ephemer:263,ephemeri:[268,290],epindex:252,epoch:376,eq:376,equal:[17,89,124,133,159,209,217,248,251,375,376],equip:[0,26,35,82,83,89,128,135,138,146,149,155,160,192,194,208,209,217,247,252,263,281,290,341,353,355,357,360,363,364,366,370,371,373],equival:[8,9,11,13,17,72,90,92,94,100,125,133,247,323,332,350,375,376,378],eras:[13,17,28,174,188,189,190,196,205,245,250,265,290,351,369],erasetimeout:252,erasewrit:28,erp:316,err:[12,33,163,333],errdump:[28,118,265],errio:29,errno:376,error:[0,1,2,3,4,5,6,7,8,9,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,85,86,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,165,166,169,170,171,172,176,188,189,190,193,194,195,209,214,217,250,252,264,265,290,301,302,315,339,340,351,353,360,371,378],error_cod:[25,115],error_handl:211,errstop:28,ersrq:94,es7149:26,es8311:265,esc:282,escap:[117,376],esd:[218,247],esp32:[96,100,131,281,282,283,286,287,290,346,348,352,382],esp32_download:351,esp32c2:[104,293,317],esp32c3:[0,2,5,6,8,9,12,13,14,16,17,18,20,23,24,25,27,29,31,32,33,35,38,71,80,84,85,86,87,88,89,91,93,96,99,101,102,103,104,105,106,107,109,111,113,115,116,117,118,119,121,124,125,128,129,130,131,132,133,204,279,282,284,290,293,307,316,317,352,382,391,402],esp32c3_lua_lod:204,esp32s2:104,esp32s3:[0,2,5,6,8,9,12,13,14,16,17,18,20,23,24,25,27,29,31,32,33,35,38,71,80,84,85,86,87,88,89,91,93,96,99,101,102,103,104,105,106,107,109,111,113,115,116,117,118,119,121,124,125,128,129,130,131,132,133,204,288,289,290,316,317,352],esp32s3_lua_lod:204,esp:[100,101,289,317],especi:[115,265,274,376],esphttp:333,esphttp_evt:333,espressif:[289,317],esptouch:[131,254],esptouch_v2:131,ess:[25,159],essenc:306,essenti:[159,328],est:159,establish:[93,96,113,130,131,311,312,378],estim:316,et:159,etc:[0,85,86,100,101,115,125,132,133,159,218,252,265,302,308,316,323,344,352,353,360,371,375,376,378],eth0:[18,93,113,120,128,130],ethernet:[28,113,118,265,291],eu:159,ev:376,evalu:[28,118,376],evb:[225,255],evb_air601:255,even:[4,101,125,159,167,263,328,336,340,353,360,375,376],event:[26,28,38,59,86,87,93,101,113,119,120,127,130,135,160,174,199,203,205,209,217,250,263,265,290,321,334,341,342,345,376,377,378,379],event_appli:159,event_cancel:159,event_click:159,event_delet:159,event_handl:159,event_insert:159,event_long_press:159,event_long_pressed_repeat:159,event_on_data:333,event_press:[87,159],event_press_lost:159,event_releas:159,event_send:28,event_short_click:159,event_value_chang:159,eventu:71,everi:[10,20,71,159,245,252,298,309,311,312,317,330,375,376,377,381],everyon:[159,168,247,274,380],everyth:[159,315,375,376],evok:379,evt:341,evt_ap_associ:341,evt_ap_disassoci:341,evt_ap_start:341,evt_ap_stop:341,evt_readi:341,evt_scan_don:341,evt_scan_report:341,evt_sta_connect:341,evt_sta_connected_fail:341,evt_sta_disconnect:341,ex:[102,159,163,204,209,299,315,319,351,366,376],exact:376,exactli:[94,122,302,357,366,376],examin:376,exampl:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,160,163,167,169,175,204,206,209,210,211,217,245,248,251,252,263,266,269,282,298,301,302,308,309,311,312,317,320,330,331,333,336,345,349,351,355,360,369,375,376,377,378,379,381,385,388,390,392,395,398,401,404],example_h:211,example_l:211,exce:[15,89,92,98,105,107,122,125,127,133,166,209,217,218,250,266,290,376,378,379],exceed:[209,217,235,268,290,355,360,369,370,373],except:[6,10,15,23,59,101,113,159,209,217,250,259,265,281,290,345,369,375,376],excepteur:159,excerpt:378,excess:[366,375,376],exchang:[366,375],exclud:[35,159],exclus:[5,65,244,261,376],exec:116,execut:[5,13,17,20,30,57,65,71,97,101,116,119,122,133,165,166,193,194,195,197,198,252,265,282,290,301,302,308,311,312,318,319,322,323,327,330,345,366,375,378,379],exercis:375,exercit:159,exhaust:373,exist:[2,13,17,24,27,28,33,38,94,100,126,133,159,169,188,189,190,205,209,217,223,229,252,265,301,306,307,311,312,315,317,321,324,327,331,334,342,345,349,355,357,375,376,378],exit:[10,59,92,94,121,159,165,204,282,322,323,328,370,373,375,378],exit_failur:376,exit_success:376,exp1:376,exp2:376,exp:165,expand:[4,113,125,127,133,159,247,302,311,312,376],expans:[133,205,240,266,268,286,290,317,346,348,376],expect:[159,209,217,252,324,346,348,376],expens:369,experi:[159,301,323],experiment:376,expir:330,explain:[315,346,347,360,373,376,378],explan:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,209,217,268,290,345,376],explicit:[376,378],explicitli:[159,345,376],explist:376,explor:[207,376],expon:376,exponenti:[91,376],expos:[159,300,320],exposur:377,expr:211,express:[34,162,165,321,334,342,375],ext:[159,323],extend:[22,28,32,62,118,220,225,265,321,334,342,346,348,376],extens:[53,336,375,376,379],extent:375,extern:[1,15,30,32,71,87,89,96,101,113,120,135,160,162,166,187,211,214,218,221,235,240,245,246,247,248,250,251,262,263,264,266,269,274,279,284,290,320,323,325,337,338,339,340,344,355,360,369,375,376,377,378],exti:28,extinguish:[182,183,184],extra:[4,21,124,159,330,376],extra_param:344,extract:[113,159,209,217,252,375],extramsg:376,extranet:113,extrem:[92,101,209,257,274,318],f01122334455:131,f103:[250,251],f1:[159,165,274],f2:165,f32:133,f5:[28,53],f64:133,f:[9,26,29,33,99,108,133,165,209,217,274,345,349,375],face:208,facil:[321,334,342,376],facilit:[369,375,376,380],fact:[159,168,209,217,264,337,375],factor:[38,159,376],factor_:376,factor_of:376,factori:[92,218,245,246,281,286,289,291,298],fade:[28,159],fail:[0,1,2,4,6,12,16,19,23,25,27,29,33,37,44,47,56,67,73,80,87,88,89,91,92,93,101,102,104,105,109,113,115,117,120,125,131,133,163,188,189,190,204,250,254,265,281,286,290,301,302,311,312,317,326,330,341,376,379],failur:[1,4,8,12,15,18,23,27,28,29,33,39,45,58,59,92,97,103,109,110,113,118,120,123,124,125,132,134,252,263,265,302,315,316,341,345,376],fake:[247,265,357],fal:[13,169],fall:[20,30,355,376],fals:[1,2,3,4,6,7,9,10,12,13,15,16,17,19,20,21,24,25,29,30,31,32,35,36,38,56,59,62,66,67,71,85,86,87,88,89,91,92,93,94,95,96,98,101,103,104,105,106,108,109,110,111,112,113,115,117,119,121,123,124,127,129,130,131,132,133,134,159,169,188,189,190,200,201,202,204,207,269,301,366,369,375,376,378,379],famili:[193,194,195],familiar:[89,174,205,311,312,380],fanci:371,faq:[214,250,288,290,353],far:[235,352,375],fast:[11,25,39,40,41,43,44,45,47,48,50,52,55,60,61,64,67,68,69,74,75,79,90,105,159,170,171,172,208,209,217,235,250,274,289,290,297,353,355,360,363,369,370,373],faster:[159,207,247,266,363],fastest:218,fastlz:[28,118,134,265],fat32:349,fatal:[84,265,315,376],fatf:[28,108,118,163,265,325,349],fault:[92,250,290],favor:353,favorit:210,fb803786602df760:31,fbd:169,fd:29,fdb:[17,28,110,118,174,205,265,290,293],fdb_kv_set_blob:13,fdd:262,fdev:[85,86],feasibl:266,featur:[96,104,159,167,168,181,186,187,192,199,209,217,220,225,235,242,247,248,265,266,269,270,290,320,321,334,342,345,366,376],feature_xxx:345,februari:159,fed:265,feed:[28,42,104,159,176,198,322,357,375,376],feed_dog:53,feedback:[23,104,159,272,381],feel:[159,320,375],feet:[36,101,218,259,291],feichuang:261,feishu:265,felt:375,feng:376,feof:328,ferror:328,fetch:[265,331,376],few:[97,159,209,217,247,291,300,357,375,376],ff0000:159,ff00ff:159,ff01:96,ff02:96,ff03:96,ff31:96,ff32:96,ff:159,fff1:96,fff2:96,ffffffff:[344,351],ffmpeg:163,fft:290,fg_color:28,fi:[257,382],field:[36,67,94,159,162,252,332,346,348,376],fieldlist:376,fieldsep:376,fifo:[250,290,297,378],fifth:[56,375,376],figueiredo:376,figur:[5,193,194,195,199,209,210,211,217,235,245,246,247,252,264,298,355,357,366,375],file:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,17,18,19,20,21,22,23,24,25,26,28,29,30,31,32,33,34,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,114,115,116,117,118,119,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,160,164,165,174,191,193,194,195,204,205,207,208,209,210,214,217,221,226,234,244,245,247,252,261,263,265,266,271,282,284,290,291,298,299,303,306,308,309,311,312,315,316,319,320,321,322,324,328,331,334,336,342,344,346,347,348,351,366,377,391],file_cnt:163,file_don:132,file_no:1,file_path:[28,53],file_s:163,file_tld:[346,347],file_tld_t:343,filenam:165,files:28,filesystem:328,fill:[0,1,7,17,18,19,25,28,31,34,44,56,57,58,67,68,71,85,92,93,96,113,114,115,124,127,130,159,163,250,265,269,271,290,301,327,331,345,351,375,376],film:[65,269,289,355],filter:[53,90,96,101,135,160,218,235,250,265,290,376],filter_match:90,filter_polici:28,fin:28,find:[12,113,159,163,165,188,189,190,204,207,209,211,217,226,245,247,289,290,298,301,351,357,360,378],finder:376,fine:[30,125],finish:[1,28,116,209,304,307,376],fint2:159,fire:376,firmwar:[0,5,6,9,14,28,35,38,63,65,92,96,100,101,104,110,113,117,118,126,131,159,205,206,217,218,219,222,224,228,231,232,235,243,245,246,250,252,256,260,262,263,268,271,272,281,282,286,288,290,293,298,301,303,309,310,315,316,343,346,347,348,349,351,353,360,377,381,382],first:[1,9,12,17,20,24,29,35,36,56,89,92,93,97,99,101,109,124,133,142,159,162,163,166,170,171,172,177,178,179,193,194,195,204,209,215,217,218,235,245,247,250,251,263,265,266,269,282,286,290,301,302,317,332,338,343,345,350,355,357,360,369,373,376,377,378,379,390],first_exp_until:376,first_y_that:376,firsttck:179,firsttick:179,fit2:159,fit4:159,fit:[135,160,208,311,312,374],fit_:159,fit_max:159,fit_non:159,fit_par:159,fit_tight:159,five:[133,159,286,376],fix:[7,11,12,15,20,34,38,92,96,114,120,159,200,201,202,235,247,252,254,265,269,280,301,317,324,327,332,345,346,347,349,353,355,358,360,371,372,373,376,388],fix_qual:38,fix_typ:38,fixlen:[85,86],fixtur:218,fl:[344,351],flaaap:376,flag1:28,flag2:28,flag:[28,53,59,67,132,176,250,265,290,341,351,375],flah:[209,217],flash:[4,14,15,17,28,66,115,118,135,160,169,174,187,191,192,196,204,205,206,210,211,215,221,231,235,240,245,246,250,251,257,265,266,270,274,279,284,286,290,291,293,297,298,308,316,325,349,351,352],flash_c:281,flash_ck:281,flash_d0:281,flash_d1:281,flash_eraseoptionbyt:[250,290],flash_spi_mast:252,flash_spi_rx_dma_channel:252,flash_spi_tx_dma_channel:252,flash_waitforlastoper:252,flashdb:[13,169,291],flasher:282,flashtool:271,flat:274,flex:159,flexibl:[159,251,297,375,378],flicker:[135,160],flight:[66,92,94,101,159,263],flip:[35,251,376],float32:331,floor:165,flow:[70,378],flower:265,fluctuat:122,fluenci:366,flush:[9,28,165,349],fly:[159,209,265,291],flymcu:252,flymod:[28,66],fmod:165,fmt:[28,165],fn:[28,376],fname:376,focal:385,focu:[135,160,263],focus:[135,160],fold:28,folder1:159,folder:[29,132,204,207,209,211,217,245,265,282,298,311,312,318,319,321,334,342,345,349,377],follow:[11,14,15,17,20,25,29,56,58,67,71,72,93,94,96,97,99,100,104,105,113,121,131,133,159,162,166,169,170,171,172,176,177,178,179,182,183,184,188,189,190,193,194,195,197,198,200,201,202,207,209,214,217,218,235,245,246,247,251,252,263,265,266,270,272,281,286,290,298,299,301,302,308,311,312,315,317,318,319,327,328,332,333,336,345,346,348,350,355,357,360,366,370,371,372,375,376,377,378],following_keywords_ar:376,font:[28,118,135,160,168,175,209,217,265,309,387,392],font_32:87,font_:35,font_data:336,font_data_count:336,font_fre:28,font_get:[28,159],font_info:159,font_load:[28,159],font_map:336,font_open_iconic_weather_6x_t:[9,35],font_opposansm10:[9,35,124],font_opposansm10_chines:[9,35],font_opposansm12:[9,35,124],font_opposansm12_chines:[9,35,124,316],font_opposansm14_chines:9,font_opposansm16:[9,35,124],font_opposansm16_chines:[9,35,124,209,217],font_opposansm18:[9,35,124],font_opposansm18_chines:[9,35],font_opposansm20:[9,35,124],font_opposansm20_chines:[9,35],font_opposansm22:[9,35,124],font_opposansm22_chines:[9,35],font_opposansm24:[9,35],font_opposansm24_chines:[9,35,124],font_opposansm32:[9,35,124],font_opposansm32_chines:[9,35,124],font_opposansm8:[9,35,124],font_opposansm8_chines:[9,35],font_unifont_t_symbol:[9,35,124],font_w:336,font_xxx:35,fontfamili:207,fontnam:159,foo:[376,378],foot:[85,115,128,218,281],footprint:[3,107,159,366,374],fopen:328,forc:[2,28,59,113,133,159,165,263,265,345,355,357,360,369],force_all_raw_block:90,force_all_static_block:90,force_br:344,force_level:28,forcibl:[132,265],fore:28,foreground:[35,159],foreign:382,forev:[121,376],foreword:[135,161,164,250,290],forget:[159,209,217],form:[4,23,30,35,56,58,94,100,125,127,130,131,133,135,160,271,323,328,332,346,348,350,375,376,379],form_g:104,formal:[159,376],formaldehyd:53,format:[1,2,4,6,19,27,28,29,38,47,78,83,97,104,105,107,112,113,118,127,135,160,165,169,170,171,172,188,189,190,209,240,244,264,266,268,290,323,332,345,346,347,348,349,351,378],format_len:344,formatstr:[165,375],former:323,formula:[170,171,172,209,217,375],forth:159,forum:[159,352],forward:[38,133,373,376],fota:[23,28,53,118,257,265,266,271,382],fota_cb:266,fotademo:266,fotadon:15,found:[6,13,24,166,169,187,192,193,194,195,197,199,200,201,202,204,209,217,252,266,269,304,306,311,312,315,317,353,371,375,376,378,379],foundat:[135,160,206],four:[35,38,65,124,159,170,171,172,193,194,195,247,252,353,357,360,369,375,376],fourth:[56,170,171,172,375,376,378],fpc:385,fps16hz:91,fps1hz:91,fps2hz:91,fps32hz:91,fps4hz:91,fps64hz:91,fps8hz:91,fraction:[5,159,376],fragment:[15,112,113,117,376],frame:[62,65,91,124,130,209,217,331,376],framebuff:[35,133,159,331],frametab:65,framework:[120,165,206,341,352,366,376],fread:328,free:[12,35,159,218,247,265,316,324,366,376],free_count:326,free_kb:12,free_sector:12,freed:376,freeli:[208,355,366,369,376],freerto:[252,290,320,326,327,378],freertosconfig:252,freestrong:341,freq:28,freqhopon:[85,86],frequenc:[1,4,5,7,12,26,35,65,72,77,85,86,89,103,109,111,159,162,163,174,180,182,183,184,205,208,209,217,218,221,226,234,235,247,250,251,252,257,264,274,284,286,290,296,297,338,339],frequent:[92,199,200,201,202,209,217,315],fresh_rat:28,frexp:376,friend:[282,391],friendli:[37,209,327,352,376],from:[0,1,4,7,9,14,15,19,25,29,30,35,38,65,87,92,93,96,101,102,104,108,109,111,113,115,119,124,125,130,133,135,160,166,167,176,182,183,184,200,201,202,204,208,214,217,218,223,229,235,240,244,247,250,251,254,263,265,269,270,274,290,291,297,299,301,303,315,317,318,319,322,323,324,328,331,332,336,343,349,351,353,355,360,363,366,375,376,377,378,379],frombase32:28,frombase64:[6,28],fromcod:28,fromhex:[7,28,96,105,128,131,265,350],fromidx:376,front:[20,159,339,357,375,376],fruit:159,fs:[28,29,111,118,163,188,189,190,209,217,344,349],fs_addr:344,fseek:328,fsize:[28,29,163,209,217],fskv:[28,110,118,265],fsstat:[28,111,188,189,190,209,217],ftp:[28,118,265,270,272],ftp_login:18,fugiat:159,full:[10,26,28,30,59,65,97,113,115,124,125,159,165,174,191,192,196,203,204,205,206,209,210,217,240,244,247,250,263,265,266,286,290,299,310,318,319,330,336,339,345,346,348,349,366,381,390],fullclean:317,fulli:[159,208,209,217,235,240,265,308,345,353,364,369,371,376],fun:[28,341,378],func:[28,209,217,332,376],funcbodi:376,funcindex1:376,funcindex2:376,funcindex:376,funclist:375,funcnam:165,function_:376,function_given:376,functioncal:376,functiondef:376,functionon:375,functions_:376,fundament:274,funni:378,further:[159,358,372],futil:[311,312,317],futur:[89,119,325,344,376],fuzzi:308,fwqltvqo:381,g0:274,g:[28,33,65,75,115,159,209,217,252,257,274,311,312,315,345,375,376,377],ga:82,galileo:208,gap:[65,124,376],garbag:165,garbl:[231,290],gatewai:[28,113,341],gaug:[135,160],gauge1:159,gauge_cr:159,gauge_part_main:159,gauge_part_major:159,gauge_part_needl:159,gauge_set_angle_offset:159,gauge_set_critical_valu:159,gauge_set_needle_count:159,gauge_set_needle_img:159,gauge_set_rang:159,gauge_set_scal:159,gauge_set_valu:159,gb2312:[27,35,124,336],gb:92,gbk:265,gbr:162,gc032a:[291,392],gc032a_initreg:3,gc9106l:35,gc9306:[217,265,291,401],gc9306x:35,gc9a01:35,gc:265,gcc:[299,315,318],gcc_mcu:315,gcc_path:315,gcj02:38,gcm:272,gdma:286,gear:[353,358,360,366,372],gener:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,28,29,30,32,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,159,163,177,178,187,209,211,217,235,240,245,250,263,266,271,274,279,286,290,291,297,299,302,311,312,317,318,319,320,322,323,324,327,333,336,339,345,351,360,369,375,376,382],genrsa:105,genuin:252,geograph:263,geomagnet:53,gestur:208,get:[1,6,9,11,12,13,14,15,16,22,23,24,26,28,29,35,37,38,39,40,41,43,45,46,47,51,53,55,58,60,61,63,64,65,69,74,75,79,82,84,87,89,90,91,92,94,96,97,107,109,113,120,124,125,131,133,135,160,163,165,167,169,174,180,186,188,189,190,204,205,209,211,221,247,252,265,286,290,301,302,311,312,316,318,324,326,327,328,331,333,337,341,345,352,355,375,376],get_accel:53,get_cell_period:28,get_data:53,get_device_t:111,get_gyro:53,get_left_valu:159,get_lux:53,get_mag:53,get_numb:120,get_pressed_d:159,get_rgb:53,get_select:159,get_selected_str:159,get_stat:159,get_temp:53,get_temperatur:53,get_text:159,get_val:53,get_vdd:28,get_xxx:159,getaht10data:[170,171,172],getapinfo:341,getapnet:341,getband:28,getbootcfun:28,getc:328,getcellinfo:[28,120],getclk:[28,177,178,179],getdevic:28,getdevicenum:[28,209,217],getdevicet:[28,188,189,190,209,217],getdisplayheight:28,getdisplaywidth:28,getedrx:28,getedrxptw:28,getenv:165,geterror:28,getfre:[28,163],getgga:28,getgll:28,getgsa:28,getgsv:28,gethook:165,getinfo:[28,165,341],getintloc:[28,265],getip:28,getjionapinfo:341,getlevel:[28,176],getloc:165,getloccb:56,getmac:28,getmetat:165,getnumberlist:375,getpm_10:53,getpm_1:53,getpm_2_5:53,getppb:53,getppm:53,getpsm:28,getpw:341,getraw:28,getregistri:165,getrmc:28,getrssi:341,getsiz:28,getstanet:341,gettable_ev:376,gettxt:28,gettz:28,getupvalu:165,getuservalu:165,getvtg:28,getwin:28,getzda:28,gga:38,gif:28,gif_creat:28,gif_restart:28,gift:279,girlfriend:162,git:[265,301,303,309,311,312,313,314,315,317,318,342],gite:[10,35,204,211,222,228,244,245,266,270,274,309,310,311,312,314,315,317,345,346,348,349,366,383,391,393,396,399],github:[102,169,188,189,190,210,247,289,299,313,315,317,345,349],gitignor:309,gitxxx:307,give:[4,92,159,165,218,272,301,327,357,375],given:[72,100,159,209,217,266,302,343,375,376],glb:376,gll:38,global:[104,119,121,159,165,252,301,326,328,366],glonass:208,glossari:[321,334,342],glow:[182,183,184],glu:159,glue:[135,160],glyph:159,gmatch:[165,375],gmssl:[28,118,265],gmtime:376,gnd:[65,166,170,171,172,182,183,184,188,189,190,193,194,195,199,200,201,202,215,217,235,247,281,286,289],gnss:[38,120,208,263,265,269,270],gnss_state:38,go:[0,9,70,159,204,209,223,229,240,247,267,281,286,302,323,353,357,360,366,369,371,375,376,378,403],goal:[17,25,321,334,342],god:[209,217,247,378],goe:[159,322],gold:247,gone:376,good:[207,218,235,247,263,265,290,316,375,376,381],goodgoodstudi:[13,17],googl:159,got:119,govern:[247,376],gp:[38,71,101,208,263,269,270],gpio02:281,gpio03:281,gpio04:281,gpio05:281,gpio06:281,gpio07:281,gpio08:281,gpio09:281,gpio0:[262,263,264,281,286],gpio10:[125,235,242,263,264,269,281,286],gpio11:[242,264,269,281,286,391],gpio12:[89,100,242,269,281],gpio13:[89,242,263,269,281],gpio14:[242,265,269,281],gpio15:[242,269,281],gpio16:[20,89,235,242,269,281],gpio17:[20,89,109,235,242,281],gpio18:[20,188,193,194,235,242,269,281],gpio19:[188,193,194,235,242,269,281,286],gpio1:[66,170,171,242,269,281],gpio20:[188,193,194,235,269,281],gpio21:[188,193,194,235,242,262,281],gpio22:[71,200,201],gpio23:[200,201,242,269],gpio24:269,gpio25:[1,269],gpio27:[20,71,262,263,264,269],gpio28:235,gpio29:[235,269],gpio2:[235,242,269],gpio30:[235,269],gpio31:235,gpio32:[202,235],gpio33:[202,235],gpio35:235,gpio36:235,gpio37:235,gpio38:235,gpio39:235,gpio3:242,gpio3uart0_rt:235,gpio40:235,gpio41:235,gpio44:[189,190,195,235],gpio45:[189,190,195,235],gpio46:[189,190,195,235],gpio47:[189,190,195,235],gpio49:235,gpio4:[66,89,92,170,171,242],gpio50:235,gpio51:235,gpio54:235,gpio55:235,gpio56:235,gpio57:235,gpio58:235,gpio59:235,gpio5:[89,235,242],gpio60:235,gpio61:235,gpio62:235,gpio63:235,gpio64:235,gpio65:235,gpio66:235,gpio67:235,gpio6:[49,89,235],gpio70:[172,235],gpio71:[172,235],gpio72:235,gpio73:235,gpio74:235,gpio75:235,gpio7:[49,89,235,242],gpio8:[235,242,269],gpio9:[235,242,269,281],gpio:[12,22,25,28,30,32,49,62,65,66,67,71,85,89,100,101,109,110,116,118,125,162,163,174,195,196,204,205,206,220,221,223,225,227,229,230,235,242,245,250,251,257,259,262,263,264,265,266,268,270,279,281,286,290,293,297,298,309,327,328,329,334,335,338,342],gpio_01:225,gpio_02:225,gpio_03:225,gpio_04:225,gpio_05:225,gpio_06:225,gpio_07:225,gpio_08:225,gpio_09:225,gpio_0:345,gpio_10:225,gpio_11:225,gpio_12:225,gpio_13:225,gpio_14:225,gpio_15:225,gpio_16:225,gpio_17:225,gpio_18:225,gpio_19:225,gpio_20:225,gpio_21:225,gpio_22:[209,217,225],gpio_23:[209,217,225],gpio_24:[209,217,225],gpio_25:[209,217,225],gpio_26:[209,217,225],gpio_27:[209,217,225],gpio_28:225,gpio_29:225,gpio_30:225,gpio_31:225,gpio_32:225,gpio_33:225,gpio_34:225,gpio_37:225,gpio_38:225,gpio_40:225,gpio_41:225,gpio_42:225,gpio_43:225,gpio_a:53,gpio_b:53,gpio_fal:337,gpio_forcepullupconfig:248,gpio_forcepupdcmd:248,gpio_init:298,gpio_inittypedef:211,gpio_invbit:298,gpio_l:211,gpio_mode_output_pp:211,gpio_pin_0:211,gpio_pin_8:248,gpio_pin_9:248,gpio_pinremapconfig:252,gpio_remap_swj_jtagdis:252,gpio_remap_swjjtagdis:252,gpio_ris:337,gpio_rising_fal:337,gpio_set:116,gpiob:[211,248],gpiod:298,gpr:[66,113],gps_ant:[101,263],gptxt:38,gpu:159,grab:[357,366],grad_dir_v:159,grade:[113,266],gradient:159,gradual:[217,266],graffiti:[31,53,265],grai:[28,159,324],gram:375,grammar:[206,291,376],grammat:376,grandpar:159,grant:376,granular:[188,189,190],grape:159,graph:[159,376],graphic:[28,118,159,209,217,303],grayscal:[3,35,159],great:247,greater:[32,62,80,89,90,92,119,124,133,217,330,355,360,370,373,375,376],greatli:[159,247,265,352,366],greedi:90,greedy_parsing_flag:90,green:[35,246],grid16:77,grid1:77,grid:[53,159],ground:[38,65,209,217,235,252,281,353],group:[30,159,209,211,215,222,228,240,244,245,252,298,328,346,348,357,360,369,376,391],grow:[159,376],gsa:38,gsm:[66,94],gsub:165,gsv:38,gt5slcd1e:21,gt5sucd2:387,gt911:53,gt911_i2c:53,gt911_int:53,gt911_re:53,gt911callback:50,gtfont:[28,35,118,124,265,293],guangdong:159,guarante:[56,65,107,266,297,376],guest:378,gui:[159,303],guid:[207,230,248,252,282,309,346,348],guidelin:376,gw:131,gyro:64,gyroscop:[53,64],gz:[24,376],h:[25,28,38,44,97,99,109,133,159,163,168,175,209,211,217,252,291,298,301,311,312,315,317,320,350,351,375,376],ha:[0,1,2,3,4,6,7,8,9,10,12,13,15,16,17,18,19,20,22,23,24,25,26,27,29,30,31,32,33,34,35,37,38,44,57,59,65,70,78,80,85,86,87,89,92,93,96,98,100,101,102,103,105,106,107,108,111,112,113,115,116,117,120,124,125,127,128,129,130,131,133,134,159,162,166,167,175,182,183,184,187,193,194,195,200,201,202,208,209,217,218,235,244,245,246,250,251,252,257,261,265,269,274,281,286,290,291,298,300,301,306,311,312,331,341,346,348,349,351,355,357,363,366,369,375,376,378],habit:[345,376],had:[163,376],hal:[214,251,290,328],hal_cortex_module_en:211,hal_delai:211,hal_flash_module_en:211,hal_gpio_init:211,hal_gpio_module_en:211,hal_gpio_togglepin:211,hal_inctick:211,hal_init:211,hal_ll:211,hal_module_en:211,hal_mspinit:252,hal_pwr_module_en:211,hal_rcc_module_en:211,half:[105,115,159,188,189,190,193,194,195,209,217,245,274,336,339,374,375],hall:297,halt:53,hand:[210,286,308,333,353,364,369,371,376],handheld:353,handl:[27,28,29,122,125,132,135,160,165,208,265,297,302,333,377],handler:[28,159,302,321,327,334,341,342,376,378],handler_on:376,handler_to:376,handshak:[59,265],hang:[28,118,252],hanlder:327,happen:[122,159,376],happi:5,happili:[346,348],hard:[5,122,174,205,240,366],hardfault:28,hardfault_handl:[211,252],hardwar:[1,20,25,28,30,35,63,65,70,72,89,98,101,107,113,115,118,123,124,125,128,159,162,173,174,180,185,191,196,203,205,214,221,226,234,239,243,244,250,251,256,257,260,263,265,268,269,277,279,284,288,290,291,296,297,321,328,330,334,342,349,371,385,388,390,392,395,398,401,404],harmless:303,has_more_input:90,has_n_el:376,hash:[19,28,118,167,265],hash_finish:28,hash_init:28,hash_upd:28,hashjeremi:391,hashresult:6,have:[8,9,30,35,70,71,85,92,96,99,100,104,113,125,128,131,133,159,182,183,184,188,189,190,207,209,245,247,251,252,262,263,265,270,281,282,286,290,298,301,308,315,316,317,328,349,350,351,352,353,369,375,376,377,380],haven:[71,162],hclk:248,hcode:28,hd:9,hdiv_num:159,hdop:38,he:[214,217,375,390],head:[29,38,65,69,117,133,323,331,343,353,355,360,363,369,370,373,376,378],headach:71,header:[24,28,90,159,188,189,190,214,290,301,302,320,333,343,376,378],header_tld:[346,347],header_tld_t:343,headingdegre:69,heap:[35,265,326],heap_4:326,heard:265,heart:[28,118,208],heartbeat:[54,93,113,265,330],hebrew:159,heet:336,height:[3,28,35,38,87,124,135,160,324,375],held:[159,364,369,371],hello:[206,207,210,274,375,376],helloworld:[135,160],help:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,114,115,116,117,119,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,160,209,217,248,252,263,308,316,346,348,369],helper:376,henc:376,henriqu:376,here:[0,4,10,15,38,56,101,105,113,120,131,159,162,163,175,188,189,190,193,194,195,204,207,209,210,211,217,245,247,263,266,282,290,298,301,302,311,312,315,316,318,327,328,331,334,346,347,348,353,355,360,364,366,375,376,377,378,379,388],here_x_and_y_ar:376,here_x_cannot:376,here_x_i:376,herebi:265,heshuo:228,heterogen:[208,376],hex:[6,11,19,28,89,90,105,124,131,167,199,221,222,247,252,343,346,347,351],hexadecim:[34,56,89,125,131,159,174,180,205,346,347,351,375,376],hexstr:[28,350],hezhou:235,hfashfp9qw38hrfaio:[11,90],hfiuoaghfluaeisw:[11,90],hi:[10,110,187,200,201,202,299,318,319,377],hib:[101,181,263,329],hibern:[5,101],hid:[127,247,270],hid_mod:28,hid_rx:28,hid_tx:28,hidden:[159,341],hide:[135,160],hierarchi:376,high:[1,9,20,25,30,35,38,46,65,72,89,96,101,115,116,162,166,170,171,172,174,176,180,182,183,184,186,192,193,194,195,205,208,209,210,211,217,218,220,225,235,240,247,250,251,252,265,269,279,281,286,289,290,291,297,311,312,329,331,337,339,340,353,355,358,360,366,370,371,373,376],high_duty_cycl:28,high_irq:20,higher:[0,4,5,11,17,159,209,217,218,247,252,363,364,376],highest:[3,5,12,89,91,93,128,159,209,217,240,252,264,270,279,281,290,353,371,374],highlight:[135,160],highlighted_d:159,highlighted_dai:159,highlighted_days1:159,highlighted_days2:159,highlighted_days3:159,himself:28,hint:[15,376],histor:[38,265,382],histori:[71,107,268,290],hit:159,hizhou:[215,222,228,251,291,297,381],hmac:[19,28,167],hmac_md5:[28,167],hmac_sha1:[28,167],hmac_sha256:[28,167],hmac_sha512:[28,167],hmacmd5:31,hmacsha1:31,hmacsha256:31,hmeta:[28,118],hold:[101,159,204,223,229,245,263,360,366,369,375,376],hole:[159,218,235,281,286,355,360],hollow:124,home:[247,376],homepag:[71,366],hook:165,hope:[302,369],hopperiod:[85,86],hor:159,hor_fit_typ:159,hor_r:159,horizont:[35,38,159,376],horn:1,host:[28,53,54,96,115,170,171,172,192,209,217,252,265,269,270,286,322,324,332,376],hostnam:28,hot:[209,217,289,341,390],hotspot:[254,341],hour:[10,25,38,56,67,71,97,106,186,209,263,360,366,376],hour_offset:38,hous:353,how:[1,4,22,30,102,109,117,125,138,146,149,155,159,169,170,171,172,174,175,176,177,178,179,182,183,184,188,189,190,193,194,195,198,200,201,202,204,209,217,218,232,245,247,282,289,290,298,301,317,320,321,324,334,342,371,375,376,377,378,382],howev:[101,159,209,217,218,357,366,375,376],hozhou:58,hpa:46,hse:252,hse_startup_timeout:211,hse_valu:211,hsi:211,hsi_startup_timeout:211,hsi_valu:211,hspi:[195,231,235],hspi_0:115,hspi_clk:[189,190,195],hspi_csn:[189,190,195],hspi_miso:[189,190,195],hspi_mosi:[189,190,195],hsv:159,htm:[261,384,395,398,401,404],html:[5,9,24,35,38,159,162,209,210,217,270,291,381],http:[5,9,10,15,28,35,37,38,53,58,67,71,87,97,101,102,118,121,159,162,169,188,189,190,193,194,195,204,206,207,209,210,211,213,217,222,225,228,233,235,244,245,246,249,254,255,261,263,264,265,266,269,270,272,274,289,291,293,294,295,297,299,301,302,303,308,310,311,312,314,315,316,317,318,333,349,375,381,383,384,391,393,395,396,398,399,401,404],http_error_bodi:23,http_error_clos:23,http_error_connect:23,http_error_download:23,http_error_fota:23,http_error_head:23,http_error_rx:23,http_error_st:23,http_error_timeout:23,httpbin:23,httpc:333,httpdn:53,httpsrv:[28,118,265],httptest:23,huacon:[294,295],huawei:[31,53,265,355,360,369,370,373],huaxin:297,hue:159,huffman:90,huge:[71,165],huge_v:376,hum:46,human:376,humid:[25,53,71,109,170,171,172,206,209,217],humiditybit:[170,171,172],hump:345,hungri:378,hw:330,hwtimer:209,hwtimer_id:28,hwver:28,hx711:28,hxxt_gps_bds_agnss_data:263,hz:[7,28,177,178,179,211],i16:133,i2:[1,28,89,118,240,265,270,286],i2c0:[25,89,209,217,262,269],i2c0_scl:[235,242,269],i2c0_sda:[235,242,269],i2c1:[25,89,262,265,269],i2c1_scl:269,i2c1_sda:269,i2c2:25,i2c:[22,28,39,40,41,43,44,45,46,47,48,50,52,55,60,61,63,64,67,68,69,74,75,79,88,89,118,124,168,174,205,221,234,240,257,265,268,270,279,281,286,290,293,297,308,345],i2c_hw:124,i2c_id:[25,28,46,50,53,60,124],i2c_scl:[76,124,170,171,172,220,225,259,281],i2c_sda:[76,124,170,171,172,220,225,259,281],i2c_spe:[39,40,41,43,45,46,47,48,50,55,60,61,63,64,68,69,74,75,79,91],i2c_sw:[124,168],i2cdon:25,i2cid:[39,40,41,43,45,46,47,48,50,52,53,55,60,61,63,64,67,68,69,75,79,91,170,171,172],i2cslaveaddr:[170,171,172],i2s0:26,i2s1:[26,265],i2s:[250,290],i2s_bclk:269,i2s_lrck:269,i2s_mclk:269,i2smod:252,i32:133,i64:133,i8080:286,i8:133,i:[1,3,6,18,30,50,52,68,70,71,72,73,77,78,84,99,125,131,133,159,162,163,165,166,169,170,171,172,175,176,177,178,179,182,183,184,188,189,190,193,194,195,197,198,200,201,202,204,209,215,217,218,235,247,252,274,290,311,333,346,348,350,353,375,378],i_:376,i_n_:376,iap:[240,247],iar:[246,247],ibeacon:28,ibid:[159,235,357,377],ibm:6,ic:[28,35,124,235,395,398,401],iccid:28,icm20608d:53,icm2068g:53,icon:[9,159,207],icon_img:159,iconv:[28,118,265],id15:159,id1:9,id2:159,id4:210,id:[10,12,28,30,31,39,40,41,43,44,45,47,48,52,53,54,55,61,63,64,65,68,69,71,74,75,79,84,85,87,88,89,91,93,102,111,113,120,121,132,159,163,170,171,172,174,180,181,187,191,192,196,199,200,201,202,205,209,214,217,230,252,261,265,269,290,302,303,310,322,330,339,340,345,350,351,378,384,395,398,401,404],idcod:252,iddpd:235,idea:[209,217,265,266,308,321,334,335,342,375,376,380],ideal:[353,364,369,371],ident:[10,375,376],identif:[10,71,92,96,247,350],identifi:[22,38,92,96,207,215,247,297,303,376,379],ideograph:159,idf5:[282,316,317],idf:[282,289,317],idiom:376,idl:[66,101,107,110,113,327,329],idp:302,idx:376,ie:376,ieee:376,ierusalimschi:376,if_n_i:376,ifdef:[159,211],ifndef:[159,211],ignor:[2,6,25,34,38,92,101,109,113,114,120,128,159,252,265,269,271,309,315,375,376],igor:315,ii:[250,290],iic:[209,215,248,251,281],iic_inttransmit:248,iih:331,iiha10:133,iiha:133,ili9341:[209,217,290],ili9486:35,illeg:[23,159,265,376],illumin:247,illustr:[96,290,363,376,378],imag:[3,9,28,118,124,135,160,208,209,217,240,316,351],image_recolor:159,image_recolor_opa:159,imagin:332,imei:[10,28,31,54,71,266],img1:[159,290],img2:159,img:[135,160,290,344],img_btn_part_main:159,img_cf_alpha_:159,img_cf_indexed_:159,img_cogwheel_argb:159,img_creat:159,img_dsc_t:159,img_part_main:159,img_set_angl:159,img_set_antialia:159,img_set_auto_s:159,img_set_offset_i:159,img_set_offset_x:159,img_set_pivot:159,img_set_src:[159,290],img_set_zoom:159,img_src:159,img_src_left:159,img_src_mid:159,img_src_right:159,img_zoom_non:159,imgbtn1:159,imgbtn:[135,160],imgbtn_:159,imgbtn_blu:159,imgbtn_creat:159,imgbtn_green:[159,290],imgbtn_part_main:159,imgbtn_set_check:159,imgbtn_set_src:159,imgbtn_til:159,imgbtn_toggl:159,imit:[209,217,301],immedi:[9,20,25,38,65,66,93,101,130,131,245,252,302,373,375,376],immut:[375,376],impact:265,imped:[20,65,235,337,369],implement:[17,19,65,92,100,159,167,206,217,252,265,266,270,301,321,324,327,328,332,334,338,342,343,345,346,348,349,352,375,376,377,378,379],implements_ful:376,impli:[193,194,195,369],implicit:376,implicitli:322,imposs:[119,328],improv:[115,159,167,182,183,184,218,245,247,265,298,352,369,375,376],imsecret0i1m2jkl:31,imsi:28,in0_process:252,in2bc:9,in_buff:28,in_protect:376,in_set:376,in_set_:376,in_set_repres:376,in_set_to:376,ina226:[53,265],ina226_data:52,ina226_i2c:53,inaccess:376,inact:159,inappropri:378,inbuf:[4,28],inc_cmsi:315,inch:[9,168,208,290,392,404],incident:119,incididunt:159,includ:[5,10,11,12,23,25,86,90,92,93,122,130,159,170,171,172,176,198,204,208,211,240,247,252,266,270,271,279,298,301,311,312,317,321,325,328,334,342,344,349,353,357,375,376,378,379,404],inclus:376,incom:[0,1,2,3,4,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,23,24,25,26,27,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,47,48,49,50,51,52,54,55,56,57,58,59,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,119,121,122,123,124,125,126,127,128,129,130,131,132,133,134,342,375,376,379],incompat:[165,265],incomplet:[218,265],inconsist:[353,366,375],inconst:376,inconveni:317,incorrect:[23,188,189,190,252,265,357,376],incorrectli:[218,265],increas:[25,35,92,109,159,182,183,184,209,218,265,266,281,366,375,376],increment:[159,376],indata:[37,38],indefinit:[9,35,124,209,217,322,376,377],indent:[345,376],independ:[101,159,165,208,240,250,251,290,297,299,326,366,369,375],indetermin:[377,378],indev:159,indev_drv_regist:28,indev_kb_upd:28,indev_point_emulator_upd:28,index1:376,index2:376,index:[24,28,36,38,135,160,165,169,332,375],index_:376,index_n_ref:376,index_ref:376,indic:[1,10,15,53,56,58,65,92,93,96,101,109,113,121,130,133,159,246,247,263,281,290,302,317,339,340,353,366,371,373,375,376,378],indirectli:376,individu:[159,235],indivis:376,induc:369,induct:369,industri:[257,290],ineffici:290,inf_timeout:378,infin:376,infinit:[30,159,322,379],info:[0,1,2,6,7,9,11,12,13,14,15,16,17,19,22,23,24,25,26,28,29,35,37,38,39,40,41,43,44,45,46,47,48,49,51,52,55,56,57,58,60,61,63,64,65,66,67,69,71,74,75,76,78,79,82,83,85,86,87,88,90,91,92,93,94,96,97,98,99,101,102,103,105,106,107,109,110,111,112,113,115,117,119,120,123,125,126,128,130,131,159,163,166,167,168,169,170,171,172,175,176,177,178,179,186,187,188,189,190,192,193,194,195,197,198,199,200,201,202,209,217,266,272,299,301,302,318,319,331,332,333,341,346,347,351,377,379],inform:[1,4,8,9,10,12,16,23,38,56,67,71,84,89,92,93,94,107,111,113,120,124,128,130,131,135,160,163,167,170,171,172,174,186,191,205,209,210,214,217,221,224,225,226,228,243,247,252,255,261,265,267,268,284,288,289,290,308,317,320,321,334,335,342,344,345,346,348,352,353,357,360,364,376,392,404],infrar:[28,53,118,338],inher:376,inherit:159,init:[28,46,53,60,120,159,163,165,168,175,176,187,188,189,190,198,209,217,252,301,307,308,333,375],init_level:28,initi:[3,8,9,10,12,13,15,17,20,21,25,26,28,30,34,35,36,39,40,41,42,43,45,46,47,48,49,50,52,55,60,61,62,63,64,65,67,68,69,70,71,72,73,74,75,76,77,78,79,82,83,85,86,87,88,90,92,93,95,96,108,110,111,114,115,123,124,125,128,129,131,132,133,159,163,168,169,173,174,176,191,196,198,199,203,205,209,217,218,252,254,265,290,302,305,308,326,339,340,345,376,378],initr:[188,189,190],initreg:28,inject:[250,290],ink:[28,118,209,290,392],inlai:[135,160],inlet:218,inlin:[279,376],inner:[159,376],innermost:376,innov:247,input:[4,6,20,28,34,71,85,87,89,92,114,117,134,135,160,163,165,166,188,189,190,206,218,220,221,225,235,251,252,263,265,269,281,290,297,308,321,328,334,337,342,353,355,360,363,364,369,375,380],input_buff:28,input_cnt:30,input_fil:28,input_pulldown:337,input_pullup:337,inreversem:28,insert:[1,159,165,209,217,247,269,289,308,333,360,375,378],insertfinalnewlin:207,insid:[77,78,120,133,159,263,290,321,323,327,334,342,357,375,376],inspect:159,instal:[159,163,204,205,209,214,247,250,251,281,286,290,296,299,311,312,315,317,318,319,355,357,366],instanc:[38,49,93,110,124,130,247,376],instant:269,instantan:[355,360,366,369,370,373],instead:[10,17,20,159,211,281,320,327,350,376,378,379],instruct:[71,116,159,170,171,172,175,187,193,194,195,209,211,217,218,231,247,250,255,257,264,268,270,289,290,315,323,353,355,357,371,375,376,378],instrument:[135,160],insuffici:[4,8,29,124,127,133,265,316,366],int16_t:332,int32:332,int32_t:[159,332],int64:331,int8:331,int8_t:[332,339,340],intact:375,integ:[2,25,56,71,87,109,116,117,265,274,297,331,375,376,379],integer_and_flo:376,integer_n_i:376,integr:[65,159,162,188,189,190,209,211,217,235,257,265,297,300,303,363],intens:[39,53,159],inter:[209,217,235],interact:[127,159,252,265,290,297,303,342,376,380,389],interchang:[159,209,228],interconnect:159,interf:65,interfac:[14,25,35,65,89,109,118,120,128,133,135,160,165,166,167,168,169,170,171,172,175,176,177,178,179,181,182,183,184,186,187,188,189,190,192,193,194,195,197,198,199,200,201,202,204,206,208,209,211,217,218,232,235,240,245,250,257,265,266,270,271,281,286,289,290,297,303,315,321,323,328,334,338,342,346,348,349,352,355,360,370,373,374,375,378,380,390,391],interfer:[65,218,235,355,357],interg:25,intermedi:[159,211,245,266,298,317,375],intermitt:376,intern:[0,15,19,20,22,71,101,113,120,135,160,166,209,217,220,225,231,235,250,251,252,265,268,290,291,297,300,333,375,376,377,378,379],internet:[31,94,113,289,315,341],interpret:[27,159,351,375,376],interrupt:[20,30,50,65,67,73,78,85,101,125,198,206,209,214,217,218,235,250,265,269,290,297,298,302,327,328,337,341,366,376],interv:[1,90,92,94,96,113,123,128,210,250,265,290,326,376],interval_:376,inton:[268,290],intptr_t:376,intranet:[113,265],introduc:[23,142,159,164,166,167,168,173,176,180,181,185,186,187,191,192,196,197,199,203,209,211,217,290,301,341,378],introduct:[34,101,114,118,135,138,142,146,149,155,160,161,165,173,174,180,185,191,196,203,205,206,221,227,268,284,288,290,346,348,377],introductori:375,intuit:[96,159,332],invalid:[9,38,42,72,92,119,159,263,369,376,378],inventori:317,invers:[65,159,375,376],invert:[135,160,376],invis:[89,92,96,102,199,217,375,376],invoff:28,involv:[38,326,327,328,350,376],invon:28,io00:281,io01:281,io02:281,io03:281,io04:281,io05:281,io06:281,io07:281,io08:281,io09:281,io10:[281,286],io11:286,io12:281,io13:281,io18:281,io19:281,io:[1,12,26,28,53,65,89,92,93,101,102,105,108,118,159,162,163,165,187,188,189,190,209,217,235,248,250,251,252,259,264,265,268,290,297,318,321,325,334,342,349,352,375,377],ioh:235,iol:235,iomux:[28,265,269],ioqueu:[28,118],iosel:101,iot:[10,28,54,56,58,118,131,138,149,155,244,266,271,289,291,352,355,363,366,370,373,377],iot_bridg:289,iot_config:53,iot_core_id:28,iotauth:[28,118,265],iotcloud:[53,265],iotcloudc:54,iotda:28,iotpl:366,iotpow:[360,364,369],iotpower_cc_usb_driv:366,iotpowerpro:366,iovl:101,iovol:[28,265],iovol_all_gpio:101,ip1:113,ip2:113,ip3:113,ip4:113,ip:[28,51,54,59,92,93,120,265,341,371],ip_addr:28,ip_los:265,ip_readi:[57,71],ip_typ:28,ipair:165,ipc:323,ipsum:159,ipv4:[92,113,131],ipv4v6:92,ipv6:[23,28,93,113,265,382],iqinvert:[85,86],ir:[6,28,65,118,334,335,342],iron:[209,217],irq:[28,53,128],irq_27:20,irq_mod:28,irq_pin:[28,53],irregular:206,irrevers:167,irrig:235,irtu:[381,382],irur:159,is_comment_:376,is_default:28,is_don:333,is_drag:159,is_e_:376,is_en:28,is_function_:376,is_input:28,is_instantiated_:376,is_ok:28,is_short:376,is_sign:[4,28],is_tl:28,is_udp:28,is_weak:376,isbigend:28,isclos:53,isdecod:28,isdelet:28,isdon:28,isdst:376,isend:28,isequ:28,isexist:345,isfix:28,isfloat:28,isipv6:28,isn:[159,375],isnum:376,iso14443_a:70,iso:[286,376],isol:[218,235,322,328,349,357],isp:[240,245,250,290,297],isreadi:[28,113],isrun:376,issign:28,issu:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,114,115,116,117,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,159,247,263,316,345,364,376],issue_xxx:345,istailcal:376,istl:31,istr_ctr:252,istr_dir:252,istr_ep_id:252,isvararg:376,isyield:165,item:[28,54,71,89,159,205,261,263,282,309,360,376,384,395,398,401,404],iter:[28,265,321,334,342,375,376],its:[0,1,2,3,4,6,7,8,9,10,12,13,15,16,17,18,19,20,22,23,24,25,26,27,29,30,31,32,33,34,35,37,38,44,57,65,80,85,86,87,92,93,96,98,101,102,103,105,106,111,112,113,115,116,117,124,125,127,128,129,130,131,133,159,193,194,195,235,251,263,272,302,328,349,350,369,374,375,376,378],itself:[35,53,120,159,217,263,264,274,304,315,316,344,346,348,355,357,360,374,375,376],itvl_max:28,itvl_min:28,iv:28,j16:314,j:[162,165,375],januari:159,japanes:159,java:350,jedec:[188,189,190],jeremi:169,jlink:252,job:[235,376],join:[341,352,375,376],joint:[58,257],jointli:309,joystick:366,jpeg:[3,35,240,279],jpg:[3,6,35],json:[6,12,14,17,24,28,29,38,57,67,92,94,97,106,112,117,118,120,126,130,131,159,163,186,207,209,210,265,293,309,332,346,347,351],jt808:265,jtag:[250,286,290],jtdo:252,jtrst:[250,290],jubj62lnbb:31,judg:[15,53,67,113,218,250,265,266,290],judgment:[66,117,206,265,274,327],juli:[17,56,96,131,159],jump:[159,360,376],june:[159,247],junior:[211,245,298],just:[15,30,71,85,96,108,120,133,159,169,198,204,207,209,210,217,247,265,282,289,290,301,302,311,312,317,327,331,345,375,376],k:[13,17,62,104,131,169,375,376],kb:[12,159,188,189,190],kb_creat:159,kb_event_cb:159,kb_inc:34,kcu:235,keep:[5,101,113,117,159,186,204,209,218,311,312,369,375,376],keep_cnt:28,keep_idl:28,keep_interv:28,keepal:[28,54],keepemtri:28,kei:[10,18,23,28,53,54,56,58,93,101,113,114,118,120,131,135,160,174,204,205,207,221,235,262,263,264,265,269,284,288,289,290,300,353,355,366,370,373,375,376,378,380,404],keil:[214,215,245,246,250,290,298,313],keil_v5:313,keilbuild:313,kept:[105,376],kere:159,kern:159,kernel:[215,247,279,376],key_b:70,key_cb:53,key_cod:78,key_down:159,key_ent:159,key_in:28,key_left:159,key_out:28,key_right:159,key_up:159,keyboard0:[34,235],keyboard1:235,keyboard2:235,keyboard3:235,keyboard4:[34,235],keyboard5:235,keyboard6:235,keyboard7:235,keyboard8:235,keyboard:[28,87,118,127,135,160,279,290,293],keyboard_:159,keyboard_cr:159,keyboard_def_event_cb:159,keyboard_mode_num:159,keyboard_mode_text_low:159,keyboard_mode_text_speci:159,keyboard_mode_text_upp:159,keyboard_part_bg:159,keyboard_part_btn:159,keyboard_set_cursor_manag:159,keyboard_set_textarea:159,keypad_encod:87,keystrok:159,keyword:[159,300,376],khz:235,kib:315,kicad7:247,kicad:[218,247,264,389],kick:93,kill:366,kind:[0,66,113,199,200,201,202,209,217,320,376,378],kindli:247,km:38,knob:[135,160],knock:[127,308],knot:38,know:[122,167,209,217,302,317,374,375,376,377],knowledg:[142,205,321,334,335,342,346,348,357,377],known:[218,244,297,375,376,378],korean:159,kp:78,kt6368a:96,kuf3nt:31,kv:[28,53,118,291],kv_clr:[28,169],kv_count:[13,17],kv_del:[28,169],kv_get:[17,28,169],kv_iter:28,kv_next:13,kv_set:[28,169],kv_stat:28,kvdb:169,kvdb_init:[17,28,169],kword:376,l1:[159,376],l3g4200d:53,l3g4200d_data:55,l6985e:[214,290],l:[29,99,133,159,218,301,302,320,322,327,332,333,345,375,376],l_alloc:328,l_font:324,l_gpio_handl:327,l_module_funct:345,l_mylib_abc:302,l_rtos_recv:322,l_xxxx_block:[302,333],l_xxxx_cb:302,la:376,label1:159,label2:[87,159],label:[87,135,160,209,217,281,376],label_align_cent:159,label_align_left:159,label_align_let:159,label_align_right:159,label_cnt:159,label_cr:[87,159,209,217],label_demo:159,label_label:159,label_long_:159,label_long_break:159,label_long_crop:159,label_long_dot:159,label_long_expand:159,label_long_mode_break:159,label_long_srol:159,label_long_sroll_circ:159,label_long_txt_hint:159,label_part_main:159,label_set_align:159,label_set_array_text:159,label_set_long_mod:159,label_set_recolor:159,label_set_static_text:159,label_set_text:[87,159,209,217],label_set_text_fmt:159,labor:159,labori:159,laborum:159,lac:92,lack:245,ladder:159,lamp:[162,182,183,184,209,217,291],languag:[90,125,159,165,207,209,268,289,290,301,328,350,352,366,369,373,374,375,392,404],language_:376,larg:[4,115,159,162,208,209,211,215,217,218,222,228,244,245,247,265,269,282,290,298,315,317,352,357,366,369,375,376],larger:[4,11,90,92,159,188,189,190,254,364,375,376],largest:[3,376],laser:53,last:[3,10,15,18,56,92,93,101,113,130,133,159,170,171,172,188,189,190,193,194,195,209,217,218,252,263,265,266,337,343,375,376,378,379,382],lastlinedefin:376,lastreson:[28,265],lat:[38,56,57],latch:53,later:[30,113,116,159,209,217,247,266,269,302,336,375,376,379],latest:[1,131,159,169,188,189,190,204,209,210,211,217,222,228,245,250,266,290,299,317],latitud:[38,56,57],latter:[0,159,209,217,300,323,376],lau:265,launch:[93,130,257,270],lauxlib:376,layer:[1,15,38,58,72,77,87,93,94,104,107,113,124,130,159,169,204,209,218,232,235,240,247,266,269,301,302,315,320,322,324,327,332,334,335,342,376,379],layer_si:28,layer_top:28,layout:[135,160,193,194,195,213,266,269,274,346,347,353,366,371,376],layout_:159,layout_cent:159,layout_column_left:159,layout_column_mid:159,layout_column_right:159,layout_grid:159,layout_off:159,layout_pretti:159,layout_pretty_bottom:159,layout_pretty_mid:159,layout_pretty_top:159,layout_row_bottom:159,layout_row_mid:159,layout_row_top:159,lb:57,lbsloc2:53,lbsloc:[53,263,265],lbsyun:38,lc:376,lcc:279,lcd:[28,89,91,115,118,159,163,174,205,221,227,240,264,265,266,270,286,290,293,297,311,316,336,390,392,393,396,399,402],lcd_rst:269,lcdi:235,lcdseg:[28,118,227,279,293],lcoal:345,lcsloc:265,ld0:235,ld8s5j1l07:31,ld:315,ldata:325,ldexp:376,ldo:[218,225,234,247,290,297,369],ldo_ctl:269,le:376,lead:[159,166,217,263,269,366,375,376],leak:[20,265,320],learn:[159,205,209,217,247,317,352,353,364,371,374,375],least:[4,159,211,218,315,317,338,376],leav:[92,115,159,218,286,366,376],led1:[159,209,217],led2:159,led3:159,led:[20,24,53,66,71,78,135,160,162,182,183,184,209,210,211,217,231,247,262,263,264,284,288,290,298,307,308,323,328,380],led_creat:159,led_demo:159,led_off:159,led_on:159,led_part_main:159,led_set_bright:159,led_toggl:159,leda:[24,66,286],ledb:286,ledblinktim:66,ledpin:53,ledpinsetfunc:53,left:[2,9,26,28,35,49,53,67,87,89,91,92,113,124,128,133,159,204,207,209,210,245,252,310,353,355,357,360,364,366,369,370,375,376],left_fit_typ:159,leftmost:[133,159],legal:376,legend:290,legitim:23,len:[28,38,53,62,70,73,132,165,188,189,190,193,194,195,199,200,201,202,301,324,326,331,340,343,349,350],length:[3,6,11,13,15,17,19,20,23,25,26,28,29,54,62,70,71,73,87,90,93,94,98,99,102,107,108,109,110,113,115,117,119,125,127,128,131,135,160,165,188,189,190,209,217,265,281,324,327,331,332,336,339,340,343,345,350,351,375,378,385],less:[3,4,11,23,29,80,89,90,110,113,133,159,218,240,248,250,251,257,263,265,290,301,352,355,357,369,371,375,376],lesson:159,let:[159,162,163,209,217,232,327,336,350,351,352,369,375,376,377,378],letter:[6,71,159,323,345,375,376],level:[1,4,9,12,23,28,32,35,38,54,68,93,94,113,122,124,125,159,165,174,199,205,208,209,217,218,235,247,252,264,266,269,274,281,297,298,311,312,321,332,334,335,338,341,342,351,366],lever:366,lexer:376,lexic:165,lexin:[281,286,291],lf:[16,111,174,191,205,349,375],lfs2:107,lfs_mount:[188,189,190],lgc:[311,312,317],li:264,liansheng:261,lianshengd:[228,279,293],lib:[266,293,301,377],lib_xx:301,libcoap:[28,118,293],libcool:301,libemqtt:265,libfota:[53,265,266,271],libfota_cb:58,libfota_timeout:53,libgnss:[28,118,265,293],libgt:301,libluato:315,libnam:165,libnet:[53,121,266],librari:[0,1,2,3,4,5,6,7,10,11,12,13,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,32,34,35,36,37,38,44,57,65,72,77,80,85,86,89,90,92,93,99,100,101,102,103,105,106,108,111,112,113,116,117,118,127,128,130,131,132,134,159,165,166,167,168,169,170,171,172,175,176,177,178,179,181,182,183,184,186,187,188,189,190,192,193,194,195,197,198,199,200,201,202,206,209,214,217,230,245,251,259,265,266,269,270,274,290,298,299,303,309,315,316,324,328,331,332,342,344,345,346,348,350,352,374,377],library_provid:376,libsdl2:318,licens:376,lichuang:369,life:[162,349],lifftef:349,lift:[95,265],light:[39,53,66,101,159,162,174,185,204,205,207,211,221,226,246,247,262,263,264,269,281,286,290,297,298,307,308,309,353],light_color:28,lightweight:[159,375,376],like:[123,133,159,204,209,211,217,247,282,290,298,308,357,369,375,376],limit:[4,96,110,125,127,132,133,159,209,217,235,244,247,252,265,266,270,271,291,315,331,346,347,363,369,371,375,376],line1:159,line:[17,28,29,35,72,77,78,84,97,104,120,124,133,135,160,165,175,176,192,193,194,195,199,200,201,202,205,209,211,217,218,235,247,252,263,282,289,291,299,315,322,323,331,333,345,346,348,352,353,358,360,366,369,371,372,375,377,378,379],line_color:159,line_cr:159,line_demo:159,line_num:159,line_part_main:159,line_point:159,line_ref:376,line_set_auto_s:159,line_set_point:159,line_set_y_invert:159,linear:87,linedefin:376,linemet:159,linemeter_:159,linemeter_cr:159,linemeter_part_main:159,linemeter_set_rang:159,linemeter_set_scal:159,linemeter_set_valu:159,linetyp:159,link:[0,1,2,3,4,6,7,8,9,10,12,13,15,16,17,18,19,20,22,23,24,25,26,27,29,30,31,32,33,34,35,37,38,44,57,80,85,86,87,92,93,96,98,99,101,102,103,105,106,111,112,113,115,116,117,119,124,125,127,128,129,130,131,133,207,211,218,226,244,254,255,268,284,288,289,290,292,311,312,315,317,321,334,342,346,348,376,385,390,392,395,398,401,404],link_pin:28,linkag:59,linker:376,linkup:28,linkv2:252,linkv3:252,linux:[135,164,209,217,315,323,349,353,358,369,371,372,376],lion:162,lis2dh12:53,lis2dh12_data:60,list1:159,list:[6,18,23,28,29,53,96,120,135,160,165,175,209,211,217,245,250,252,290,298,300,307,308,309,310,320,343,345,353,371,375,378],list_add_btn:159,list_btn:159,list_clean:159,list_creat:159,list_demo:159,list_down:159,list_focu:159,list_get_btn_img:159,list_get_btn_index:159,list_get_btn_label:159,list_get_btn_text:159,list_of_valu:159,list_part_bg:159,list_part_edge_flash:159,list_part_scrl:159,list_part_scrlbar:159,list_part_scrollbar:159,list_remov:159,list_set_anim_tim:159,list_set_btn_select:159,list_set_edge_flash:159,list_set_layout:159,list_set_scroll_propag:159,list_set_scrollbar_mod:159,list_up:159,listchr:28,listen:[24,28,53,360],listsvr:28,lit:[182,183,184,357],liter:376,literalstr:376,lithium:235,littl:[99,113,115,125,127,159,182,183,184,301,346,348,376],littlef:[16,209,244,349],littlevgl:159,live:[113,376],ll:[162,163,209,214,217,290],ll_apb1_grp1_enableclock:211,ll_apb1_grp1_periph_pwr:211,ll_apb1_grp2_enableclock:211,ll_apb1_grp2_periph_syscfg:211,ll_gpio_mode_output:211,ll_gpio_pin_0:211,ll_gpio_setpinmod:211,ll_gpio_togglepin:211,ll_init1mstick:211,ll_iop_grp1_enableclock:211,ll_iop_grp1_periph_gpiob:211,ll_mdelai:211,ll_rcc_apb1_div_1:211,ll_rcc_getsysclksourc:211,ll_rcc_hsi_en:211,ll_rcc_hsi_isreadi:211,ll_rcc_setahbprescal:211,ll_rcc_setapb1prescal:211,ll_rcc_setsysclksourc:211,ll_rcc_sys_clksource_hsisi:211,ll_rcc_sys_clksource_status_hsisi:211,ll_rcc_sysclk_div_1:211,ll_setsystemcoreclock:211,llcc68:[85,86],llogd:301,llvm:[318,319],lm75:53,lm75_data:[53,73],lm75a:53,lm75b:53,lmathlib:320,lmeter:[135,160],lmeter_demo:159,lng:[38,56,57],lnk:315,lo:375,load:[14,28,87,107,159,165,207,218,221,226,234,235,250,265,284,289,290,300,311,312,324,328,357,375],loader:376,loader_:376,loadfil:[165,328],loadlib:165,loc:38,local:[1,2,4,6,10,11,12,13,15,17,18,19,23,25,26,27,29,30,31,35,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,55,56,57,58,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,81,82,83,87,89,90,92,93,96,97,98,99,101,102,103,105,106,107,108,109,110,111,113,115,116,117,119,124,125,128,130,131,132,133,159,162,163,165,167,168,170,171,172,179,186,187,188,189,190,192,193,194,195,197,199,200,201,202,209,217,265,266,272,299,300,301,302,308,318,319,322,324,325,327,328,330,331,332,333,339,340,341,345,349,350,377,378,379],local_nam:28,local_port:28,localip:28,localtim:376,locat:[9,14,29,38,53,57,65,84,88,89,91,110,115,124,133,159,188,189,190,204,299,301,311,312,327,328,376,377],lock:28,locstr:28,loctyp:56,lod:309,log:[0,1,2,5,6,7,9,10,11,12,13,14,15,16,17,19,22,23,24,25,26,28,29,35,37,38,39,40,41,43,44,45,46,47,48,49,51,52,55,56,57,58,60,61,63,64,65,66,67,69,71,74,75,76,78,79,82,83,85,86,87,88,90,91,92,93,94,96,97,98,99,101,102,103,105,106,107,109,110,111,112,113,115,117,118,119,120,123,124,125,126,128,130,131,163,165,166,167,168,169,170,171,172,174,175,177,178,179,181,186,187,188,189,190,192,193,194,195,197,198,199,200,201,202,205,210,218,221,231,242,252,264,265,266,269,272,279,281,286,290,299,301,302,303,308,316,318,319,323,331,332,333,377,378,379,380,382],log_br:344,log_debug:84,log_error:84,log_info:84,log_level:28,log_sil:84,log_warn:84,logarithm:[366,376],logger:366,logic:[15,28,65,107,118,125,165,208,265,266,300,302,322,327],login:[28,93],logo:[6,35,204,309],logstor:[28,118],longer:[10,56,93,104,130,159,208,209,244,261,265,345,376],longest:376,longitud:[38,56],longjmp:376,longlong:2,look:[15,24,89,113,159,162,163,182,184,193,194,195,200,201,202,204,209,217,301,311,312,317,320,336,350,351,352,357,375,376,377,378],lookup:376,loop:[28,30,118,119,166,174,199,205,209,210,217,252,265,322,327,330,355,376,377,378,379],loopback:[209,217],loopid:379,loosen:[159,369],lora2:[28,118,265],lora:[28,86,118,265],lora_devic:28,lora_init:85,lora_rx_don:[85,86],loraconfig:28,lorem:159,lose:[28,38,118,120,209,217,263],loss:[217,369],lost:[38,101,120,223,229,263,265],lot:[175,209,217,301,332,344,378,381],love:162,low:[20,23,25,65,89,100,101,113,116,159,162,176,208,209,210,211,218,235,240,247,251,252,257,263,265,274,279,281,286,291,297,321,328,334,337,339,340,342,352,353,355,357,371,376,378,382],low_irq:20,lower:[12,17,35,87,124,163,165,170,171,172,177,178,207,208,211,215,218,247,252,317,353,355,366,375],lowercas:[159,345,375,376],lowest:[91,101,159],lpmem:[290,329],lpt:247,lpuart:265,lqfp100:279,lqlq666lqlq946:19,lsat:274,lsb:[26,72,115,125,188,189,190,339,340],lsdir:[28,265,325],lse:211,lse_startup_timeout:211,lse_valu:211,lsi_valu:211,lsmount:28,lst:376,lt:376,ltd:159,lte:[66,92,270],ltepin:53,ltrim:28,lua:[5,11,13,14,17,29,30,38,56,66,71,84,87,90,97,99,104,107,115,119,121,133,159,165,168,175,176,187,188,189,190,198,204,206,209,217,218,223,229,244,254,261,263,265,266,270,271,299,301,302,306,309,311,312,315,317,318,319,321,323,327,332,334,335,342,344,346,347,348,349,352,366,377,378,379,381],lua_32bit:376,lua_:376,lua_absindex:165,lua_alloc:165,lua_api:345,lua_arith:165,lua_atpan:165,lua_cal:[165,333,345],lua_callk:165,lua_cfunct:165,lua_checkint:322,lua_checkstack:165,lua_clos:165,lua_compar:165,lua_concat:165,lua_copi:165,lua_cpath:376,lua_cpath_5_3:376,lua_createt:165,lua_debug:165,lua_dump:165,lua_errerr:376,lua_errfil:376,lua_errgcmm:376,lua_errmem:376,lua_error:165,lua_errrun:376,lua_errsyntax:376,lua_extraspac:376,lua_fil:328,lua_filehandl:376,lua_gc:165,lua_gccollect:376,lua_gccount:376,lua_gccountb:376,lua_gcisrun:376,lua_gcrestart:376,lua_gcsetpaus:376,lua_gcsetstepmul:376,lua_gcstep:376,lua_gcstop:376,lua_getallocf:165,lua_getctx:376,lua_getextraspac:165,lua_getfield:165,lua_getglob:[165,333,345],lua_gethook:165,lua_gethookcount:165,lua_gethookmask:165,lua_geti:165,lua_getinfo:165,lua_getloc:165,lua_getmetat:165,lua_getstack:165,lua_gett:[165,333],lua_gettop:165,lua_getupvalu:165,lua_getuservalu:165,lua_hook:165,lua_hookcal:376,lua_hookcount:376,lua_hooklin:376,lua_hookret:376,lua_hooktailcal:376,lua_ids:376,lua_init:376,lua_init_5_3:376,lua_insert:165,lua_int:376,lua_integ:165,lua_isboolean:165,lua_iscfunct:165,lua_isfunct:165,lua_isinteg:165,lua_islightuserdata:165,lua_isnil:165,lua_isnon:165,lua_isnoneornil:165,lua_isnumb:165,lua_isstr:165,lua_ist:165,lua_isthread:165,lua_isuserdata:165,lua_isyield:165,lua_kcontext:165,lua_kfunct:165,lua_len:165,lua_load:165,lua_maskcal:376,lua_maskcount:376,lua_masklin:376,lua_maskret:376,lua_maxinteg:376,lua_mininteg:376,lua_minstack:376,lua_multret:376,lua_newst:[165,328],lua_newt:165,lua_newthread:165,lua_newuserdata:165,lua_next:165,lua_noref:376,lua_numb:165,lua_numbertointeg:165,lua_ok:376,lua_opadd:376,lua_opband:376,lua_opbnot:376,lua_opbor:376,lua_opbxor:376,lua_opdiv:376,lua_opeq:376,lua_opidiv:376,lua_opl:376,lua_oplt:376,lua_opmod:376,lua_opmul:376,lua_oppow:376,lua_opshl:376,lua_opshr:376,lua_opsub:376,lua_opunm:376,lua_path:376,lua_path_5_3:376,lua_pcal:165,lua_pcallk:165,lua_pop:165,lua_pushboolean:[165,301],lua_pushcclosur:165,lua_pushcfunct:[165,301],lua_pushfstr:[165,301],lua_pushglobalt:165,lua_pushinteg:[165,302,327,333],lua_pushlightuserdata:[159,165],lua_pushliter:165,lua_pushlstr:165,lua_pushnil:[165,302],lua_pushnumb:165,lua_pushstr:[165,302,333,345],lua_pushthread:165,lua_pushunsign:376,lua_pushvalu:165,lua_pushvfstr:165,lua_rawequ:165,lua_rawget:165,lua_rawgeti:165,lua_rawgetp:165,lua_rawlen:165,lua_rawset:165,lua_rawseti:165,lua_rawsetp:165,lua_read:165,lua_real:376,lua_refnil:376,lua_regist:165,lua_registryindex:376,lua_remov:165,lua_replac:165,lua_resum:165,lua_ridx_glob:376,lua_ridx_mainthread:376,lua_rot:165,lua_setallocf:165,lua_setfield:165,lua_setglob:[165,301],lua_sethook:165,lua_seti:165,lua_setloc:165,lua_setmetat:165,lua_sett:165,lua_settop:165,lua_setupvalu:165,lua_setuservalu:165,lua_stat:[159,165,301,302,320,332,333,345],lua_statu:165,lua_stringtonumb:165,lua_sys_xxx:320,lua_tboolean:376,lua_tfunct:376,lua_tlightuserdata:376,lua_tnil:376,lua_tnon:376,lua_tnumb:376,lua_toboolean:165,lua_tocfunct:165,lua_tointeg:165,lua_tointegerx:165,lua_tolstr:165,lua_tonumb:165,lua_tonumberx:165,lua_topoint:165,lua_tostr:165,lua_tothread:165,lua_tounsign:376,lua_tounsignedx:376,lua_touserdata:165,lua_tstr:376,lua_ttabl:376,lua_tthread:376,lua_tuserdata:376,lua_typ:165,lua_typenam:165,lua_unsign:165,lua_upvalueid:165,lua_upvalueindex:165,lua_upvaluejoin:165,lua_use_apicheck:376,lua_valu:328,lua_vers:165,lua_writ:165,lua_writestr:328,lua_xmov:165,lua_yield:165,lua_yieldk:165,luac:[16,107,344,376],luaconf:376,luadb:[6,14,24,26,29,35,81,93,95,97,102,105,291,344,346,347,349],luadb_t:343,luahelp:207,luai_throw:376,lual:376,lual_:376,lual_add:376,lual_addchar:165,lual_addlstr:165,lual_adds:165,lual_addstr:165,lual_addvalu:165,lual_argcheck:165,lual_argerror:165,lual_buff:165,lual_buffers:376,lual_buffinit:165,lual_buffinits:165,lual_callmeta:165,lual_check:376,lual_checkani:165,lual_checkint:376,lual_checkinteg:[165,301],lual_checklong:376,lual_checklstr:[165,301],lual_checknumb:165,lual_checkopt:165,lual_checkstack:165,lual_checkstr:[159,165],lual_checktyp:165,lual_checkudata:165,lual_checkunsign:376,lual_checkvers:165,lual_checkxxx:320,lual_dofil:165,lual_dostr:165,lual_error:165,lual_execresult:165,lual_fileresult:165,lual_getmetafield:165,lual_getmetat:165,lual_getsubt:165,lual_gsub:165,lual_len:165,lual_loadbuff:165,lual_loadbufferx:165,lual_loadfil:165,lual_loadfilex:165,lual_loadstr:165,lual_newlib:165,lual_newlibt:165,lual_newmetat:165,lual_newst:165,lual_openlib:165,lual_optint:376,lual_optinteg:165,lual_optlong:376,lual_optlstr:165,lual_optnumb:165,lual_optstr:165,lual_optunsign:376,lual_prepbuff:165,lual_prepbuffs:165,lual_pushresult:165,lual_pushresults:165,lual_pushxxxx:320,lual_ref:165,lual_reg:165,lual_requiref:165,lual_setfunc:165,lual_setmetat:165,lual_stream:165,lual_testudata:165,lual_tolstr:165,lual_traceback:165,lual_typenam:165,lual_unref:165,lual_wher:165,lualib:376,luao:257,luaopen_:376,luaopen_a_:376,luaopen_a_b_c:376,luaopen_bas:376,luaopen_coroutin:376,luaopen_debug:376,luaopen_io:376,luaopen_math:376,luaopen_packag:376,luaopen_str:376,luaopen_t:376,luaopen_utf8:376,luaopen_xxx:301,luaoto:317,luastat:[322,327],luat:[35,122,165,168,198,301,313,315,317,321,325,326,329,331,334,337,342],luat_:345,luat_bas:[159,301],luat_base_xxx:301,luat_cbcwait:302,luat_cbcwait_noarg:302,luat_conf_bsp:[159,291,301,311,312,317],luat_custom_init:301,luat_custom_sayhi:301,luat_demo_xxx:320,luat_fil:325,luat_font:324,luat_font_data:336,luat_font_data_t:336,luat_font_get:324,luat_font_t:324,luat_fs_fclos:325,luat_fs_fopen:[265,325,328],luat_fs_fseek:325,luat_fs_ftel:325,luat_fs_getc:325,luat_gpio_callback:327,luat_gpio_clos:337,luat_gpio_default:269,luat_gpio_fal:337,luat_gpio_get:337,luat_gpio_high:337,luat_gpio_input:337,luat_gpio_input_pulldown:337,luat_gpio_input_pullup:337,luat_gpio_low:337,luat_gpio_output:337,luat_gpio_output_od:337,luat_gpio_ris:337,luat_gpio_rising_fal:337,luat_gpio_rtt:327,luat_gpio_set:337,luat_gpio_setup:[320,328,337],luat_gpio_t:[320,327,337],luat_has_custom_lib_init:301,luat_heap_alloc:[326,328,345],luat_heap_calloc:326,luat_heap_fre:[302,326],luat_heap_getfre:326,luat_heap_init:326,luat_heap_mallac:320,luat_heap_malloc:[302,326,328],luat_heap_realloc:326,luat_lib_:35,luat_lib_fonts_h:159,luat_lib_gpio:327,luat_lib_sys_run:320,luat_lib_xxx:[301,320],luat_log:301,luat_log_tag:301,luat_lv_font_get:159,luat_lvgl_font:159,luat_malloc:301,luat_malloc_heap_s:326,luat_msg_hanld:327,luat_msgbu:315,luat_msgbus_data:[322,327],luat_msgbus_frees:327,luat_msgbus_get:[322,327],luat_msgbus_init:327,luat_msgbus_itemcount:327,luat_msgbus_put:[302,327],luat_os_get_tim:328,luat_pm_mod:329,luat_pushcwait:302,luat_pushcwait_error:302,luat_spi_clos:339,luat_spi_recv:339,luat_spi_send:339,luat_spi_setup:339,luat_spi_t:339,luat_spi_transf:339,luat_struct_map:332,luat_timer_maxid:330,luat_timer_start:330,luat_timer_stop:330,luat_timer_t:[302,330],luat_uart_clos:340,luat_uart_read:340,luat_uart_setup:[265,340],luat_uart_t:340,luat_uart_writ:340,luat_use_adc:345,luat_websocket_p:265,luat_wlan_ap_get_info:341,luat_wlan_ap_get_stainfo:341,luat_wlan_ap_is_act:341,luat_wlan_ap_stop:341,luat_wlan_connect:341,luat_wlan_evt_ap_associ:341,luat_wlan_evt_ap_disassoci:341,luat_wlan_evt_ap_start:341,luat_wlan_evt_ap_stop:341,luat_wlan_evt_readi:341,luat_wlan_evt_scan_don:341,luat_wlan_evt_scan_report:341,luat_wlan_evt_sta_connect:341,luat_wlan_evt_sta_connected_fail:341,luat_wlan_evt_sta_disconnect:341,luat_wlan_get_apnet:341,luat_wlan_get_info:341,luat_wlan_get_powersav:341,luat_wlan_get_rssi:341,luat_wlan_get_stanet:341,luat_wlan_info_t:341,luat_wlan_is_readi:341,luat_wlan_net_t:341,luat_wlan_register_event_handl:341,luat_wlan_scan_with_info:341,luat_wlan_security_open:341,luat_wlan_security_wep_psk:341,luat_wlan_security_wep_shar:341,luat_wlan_security_wpa2_aes_psk:341,luat_wlan_security_wpa2_mixed_psk:341,luat_wlan_security_wpa2_tkip_psk:341,luat_wlan_security_wpa_aes_psk:341,luat_wlan_security_wpa_tkip_psk:341,luat_wlan_security_wps_open:341,luat_wlan_security_wps_secur:341,luat_wlan_set_apnet:341,luat_wlan_set_powersav:341,luat_wlan_set_stanet:341,luat_wlan_start_ap:341,luat_wlan_unregister_event_handl:341,luat_xxx:320,luat_xxx_freerto:320,luat_xxx_rtt:320,luatask:[165,206,209,366,378],luatcommun:[213,225,233,235,246,249,255,264,294,295,297,316],luatgpiopin:328,luatgpiopul:328,luatid:[281,286,344,349,381],luato:[5,9,10,29,35,65,72,77,87,93,110,113,120,135,160,161,163,164,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,198,199,200,201,202,203,204,205,207,208,210,211,215,217,218,220,222,223,225,228,229,231,235,236,242,243,245,254,257,260,262,263,264,266,268,271,272,282,285,289,290,291,292,299,301,302,308,310,311,312,313,314,315,316,317,318,319,321,334,342,343,345,346,347,348,350,351,352,374,379,381,382,383,390,391,392,393,396,399,404],luatool:[58,104,204,209,218,232,266,271,274,281,286,291,315,317,323,344,349,351,381,382],luatos_0022eecc2399:131,luatos_:[107,131],luatos_esp32:351,luatos_root:317,luatos_vers:107,luavm:[1,10,90,107,299,318,319],luiz:376,lure:357,lux:[75,79],lux_dat:75,luxuri:286,lv:159,lv_anim_path_t:87,lv_at:159,lv_conf:159,lv_draw_mask_fade_param_t:87,lv_draw_mask_line_param_t:87,lv_draw_mask_radius_param_t:87,lv_font:159,lv_font_:159,lv_font_conv:159,lv_font_declar:159,lv_font_dejavu_16_persian_hebrew:159,lv_font_montserrat_10:159,lv_font_montserrat_12:159,lv_font_montserrat_12_subpx:159,lv_font_montserrat_14:159,lv_font_montserrat_16:159,lv_font_montserrat_18:159,lv_font_montserrat_20:159,lv_font_montserrat_22:159,lv_font_montserrat_24:159,lv_font_montserrat_26:159,lv_font_montserrat_28:159,lv_font_montserrat_28_compress:159,lv_font_montserrat_30:159,lv_font_montserrat_32:159,lv_font_montserrat_34:159,lv_font_montserrat_36:159,lv_font_montserrat_38:159,lv_font_montserrat_40:159,lv_font_montserrat_42:159,lv_font_montserrat_44:159,lv_font_montserrat_46:159,lv_font_montserrat_48:159,lv_font_montserrat_8:159,lv_font_opposans_m_10:159,lv_font_opposans_m_12:159,lv_font_opposans_m_14:159,lv_font_opposans_m_16:159,lv_font_opposans_m_18:159,lv_font_opposans_m_20:159,lv_font_opposans_m_22:159,lv_font_opposans_m_8:159,lv_font_simsun_16_cjk:159,lv_font_simsun_48:159,lv_font_t:159,lv_font_unscii_16:159,lv_font_unscii_8:159,lv_obj_t:87,lv_scr_load_anim:87,lv_scr_load_anim_t:87,lvgl:[14,28,118,135,208,221,265,266,270,290,293,311,336,402],lvglfonttool:159,lvl:376,lwip:[113,265,328],lwip_ap:113,lwip_eth:113,lwip_gp:[113,120],lwip_sta:113,lx7:286,ly:357,ly_key_ent:159,m0:[208,215,296,297],m1:70,m33:[208,240,247,279],m3:[252,279,280],m4f:[279,280],m52:274,m85:247,m:[28,46,97,159,162,165,168,218,274,375],m_cannot:376,ma:[235,369,372,373],mac:[28,71,254,341,353,358,369,371,372,376],machin:[28,94,107,118,170,171,172,204,209,214,221,226,232,234,243,265,268,269,284,289,290,291,301,307,311,312,315,317,320,322,325,326,327,332,344,346,348,349,357,369,375,376],maco:323,macro:[214,290,301,345,376],made:[92,105,159,163,209,217,265,301,345,357,376,378],mag:43,magic:[211,245,247,298,336,343,376],magna:159,magnet:38,magnetic_track_degre:38,magnif:[91,376],magnitud:375,mai:[1,6,25,30,89,92,96,99,101,109,119,131,133,159,207,210,215,217,218,235,247,252,265,308,320,325,327,330,345,355,357,360,363,366,369,370,373,375,376],mailbox:[252,265],main:[5,13,16,17,25,56,65,71,84,89,119,121,159,174,176,180,186,204,205,206,208,209,210,214,221,226,234,235,245,250,251,263,264,265,266,270,271,281,284,290,291,298,299,300,302,309,311,312,317,318,319,329,339,349,352,376,377,378,379,391],main_ct:269,main_dcd:269,main_ri:[262,269],main_rx:269,main_rxd:269,main_tx:269,mainli:[1,10,105,193,194,195,211,245,266,289,298,320,323,369,376,381,388],mainstream:[250,251,257],maintain:[20,101,159,208,235,252,269,376],mainten:247,major:[28,107,159,353,371],major_tick_len:159,make:[34,87,92,96,101,159,175,182,183,184,205,208,209,217,232,247,299,308,318,324,344,346,348,360,375,376,378],makefil:313,malici:376,mall:[215,222,228,251,297,353,369,381],mall_id:381,mall_pag:381,malloc:[328,376],man:381,manag:[28,118,159,165,204,209,210,232,250,271,289,290,303,304,308,309,321,334,335,337,339,340,342,357,360,378,382],mandarin:274,mandatori:[90,93],mani:[4,22,29,30,109,113,117,125,159,209,217,218,235,247,252,269,274,290,302,303,316,320,324,336,341,346,348,349,352,375,376,377],manipul:[28,118,159,376],manner:[2,355,376],manual:[1,10,89,115,135,160,165,166,170,171,172,174,183,196,200,201,202,204,205,209,214,215,220,221,225,230,233,250,251,252,255,263,264,265,269,279,281,286,290,296,297,311,312,317,333,340,345,351,352,353,357,366,375,378,379],manual_v1:255,manufactur:[174,188,189,190,196,205,209,217,218,235,247,328,344,360],maopi:109,map0:336,map1:336,map:[8,24,28,38,114,118,120,159,194,209,221,226,243,260,264,265,269,290,300,336,357,376],map_typ:336,march:[131,159],margin:159,mark:[99,133,159,252,264,274,300,344,375,376,379],markdown:159,marker:[99,376],market:[250,251,252,349],mask:[28,34,36,53,62,113,128,131,135,160,165,323,341],mask_p:159,mask_param:159,maskabl:252,mass:[56,58,218,268,290,375],massiv:366,master:[26,35,65,115,170,171,172,192,209,211,217,218,235,240,250,266,281,289,290,297,309,311,312,315,317,339,344,345,349,363,371,374,383,393,396,399],match:[67,165,166,199,200,201,202,209,217,290,315,355,360,380],materi:[263,292],material_dark:87,material_light:87,material_no_focu:87,material_no_transit:87,math:[165,375],mathemat:[165,375],matic:159,matrix:[28,91,118,120,135,160,168,324],matter:[207,375,376],max30102:[28,118],max:[13,26,28,159,165,211,215,247,375],max_char_num:159,max_h:159,max_temp:28,max_tick:28,maxbuff:340,maxim:[6,65],maximum:[10,11,15,20,29,30,58,73,87,91,92,96,105,107,122,125,127,128,135,160,177,178,179,182,193,194,195,208,209,235,257,265,274,290,296,297,339,353,358,364,366,371,372,375,376,378,379],maxinteg:165,maxout:28,maxsiz:28,mbedtl:113,mbox1:159,mbox:159,mbox_set_anim_tim:159,mbox_stop_auto_clos:159,mbp:[240,291],mc68hcxx:[193,194,195],mcc:[28,92],mclk:28,mco:[250,251,290],mco_plldiv:248,mcp25125:266,mcp2515:53,mcp2515_c:62,mcp2515_int:62,mcp2515_spi:62,mcpwm:286,mcu:[10,28,30,62,71,92,97,118,125,128,134,162,174,177,178,179,181,198,205,209,210,214,218,221,222,228,235,247,252,265,269,291,297,325,329,344,345,352],mcu_font:159,mcuisp:252,md5:[28,31,167,206,279,343],md5_stream:6,md:[28,289,309,315],md_file:28,md_sha1:105,md_sha256:105,mdeb:247,mdelai:[28,198],mdh201808109:[220,225],mdk5:[211,245,298],mdk:[214,215,246,247,290],me:[204,209,403],meal:274,mean:[1,12,15,17,30,35,56,66,89,92,113,115,116,121,125,133,159,167,170,171,172,211,252,263,269,290,310,323,346,347,351,360,363,369,373,375,376,378],meaning:[56,100,113,131,330,376],meaningless:[56,92,96,269],meanwhil:323,measur:[0,28,35,88,118,166,173,174,205,209,217,218,263,324,330,353,355,357,358,360,364,371,372,376],measured_pow:28,mechan:[17,92,107,121,122,130,165,198,209,217,252,266,322,325,326,327,329,330,331,337,369,376,377],medium:[182,183,184],meet:[209,217,218,247,257,266,269,291,303,336,352,353,363,369,371,375,376,378],megabyt:290,melon:159,mem:[107,326],member:376,memcmp:133,memcpi:133,meminfo:[28,168,299,318,319],memori:[4,8,11,14,28,29,35,77,78,87,90,107,113,115,118,124,134,159,188,189,190,208,209,217,244,247,252,254,261,265,270,297,299,301,318,319,320,321,327,329,331,334,336,342,344,349,352,366,375,376],memset:133,mention:[209,217,252,327,366,375,376,378],menu:[104,207,211,245,266,298,316,317],menuconfig:282,merg:[8,112,133,135,160,265,352],messag:[1,25,33,54,58,62,92,93,96,100,107,112,113,115,119,121,122,130,131,135,160,165,174,176,198,205,208,209,217,247,250,265,290,321,322,328,330,333,334,342,345,346,348,366,377,378,379],messagequeu:378,met:[67,323,375,376],meta:[93,112,165,309,333,375],metabl:376,metadata:[28,93,112,118],metat:165,meter:[38,43,135,160,353,357,358,369,371,372,375],method:[1,3,12,18,19,24,26,28,66,87,93,104,109,115,119,122,125,130,159,162,165,167,169,198,200,201,202,209,211,217,235,245,246,247,250,251,263,265,290,298,301,302,310,315,316,321,324,326,327,328,333,334,340,342,345,346,347,351,355,357,375,377,378,379],method_:376,metr:38,mg:64,mhz:[28,159,208,235],micro:[294,295,297],microchip:296,microcomput:377,microcontrol:[65,159,235,252,378],microprocessor:[182,183,184],micropython:159,microsoft:[207,245,251,281,286,298,323,366],middl:[9,35,124,159,207,246,274,301,373,376],middlewar:[334,335,342],midlin:159,might:[159,376],migrat:[248,252,376],mile:38,millisecond:[20,56,57,58,66,71,92,94,101,107,119,129,159,170,171,172,274,330,379],millivolt:[9,101],min:[38,67,97,106,159,165,186,209,375],min_temp:28,mingw32:299,mingw64:299,mini:252,miniatur:257,minim:[159,366],minimum:[11,30,91,92,94,96,124,159,209,211,221,235,265,290,317,352,366,376],mininteg:165,miniz:[11,28,118,134,265],minor:28,minor_tick_len:159,minu:[28,29,56,159,376],minut:[10,23,38,56,67,71,96,101,131,181,186,206,208,209,266,284,290,330,378],minute_offset:38,mipp:353,mirror:[135,160],misalign:252,miscellan:375,miso:[28,65,209,217,269],misrecogn:[355,360,369,370,373],miss:[207,208,245,315,376],mission:59,mistak:125,mistakenli:369,mix:[92,110,131,159,240,376],mkd:18,mkdir:28,mkf:28,mlx90614:[25,53,265],mlx90614_ambient:63,mlx90640:[28,118],mmm:38,mnc:[28,92],mo:[159,369],mobil:[28,31,54,57,66,112,113,118,159,208,254,262,263,265,266,270,289,352,353,355,360,381],mock:308,mod:376,mod_typ:166,modbu:[6,99,321,334,342],modbus_slav:332,modbus_t:332,mode2:28,mode:[1,3,9,22,23,28,30,31,32,33,35,42,53,63,65,66,72,84,87,90,92,93,107,108,109,113,125,135,160,162,165,168,181,188,189,190,193,194,195,204,206,208,209,211,217,218,223,229,235,240,246,250,251,257,263,264,265,266,269,270,272,281,286,290,297,316,323,329,336,337,339,341,351,353,357,371,373,378],mode_ble_cli:96,mode_i2:26,mode_key_input:78,mode_led_output:78,mode_lsb:26,mode_msb:26,mode_norm:159,mode_rx:73,mode_tx:73,model:[21,25,28,65,85,86,87,101,107,109,115,135,160,193,194,195,204,209,211,217,250,251,252,266,281,286,290,317,352,363,369,391,402],model_1in02d:9,model_1in54:[9,391],model_1in54_v2:9,model_1in54_v3:9,model_1in54b:9,model_1in54b_v2:9,model_1in54c:9,model_1in54r:9,model_2in13:9,model_2in13_v2:9,model_2in13bc:9,model_2in13d:9,model_2in54b_v3:9,model_2in66:9,model_2in66b:9,model_2in7:9,model_2in7b:9,model_2in9:9,model_2in9_v2:9,model_2in9b_v3:9,model_2in9bc:9,model_2in9d:9,model_3in7:9,model_4:9,model_4in2:9,model_4in2b_v2:9,model_4in2bc:9,model_5in65f:9,model_5in83:9,model_5in83_v2:9,model_5in83b_v2:9,model_5in83bc:9,model_7in5:9,model_7in5_hd:9,model_7in5_v2:9,model_7in5b_hd:9,model_7in5b_v2:9,model_7in5bc:9,moder:375,modev:28,modf:165,modif:[159,252,265,328,373,376],modifi:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,114,115,116,117,119,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,160,174,175,204,205,214,250,265,269,290,300,301,306,310,315,317,325,345,346,348,351,369,371,375,376],modnam:165,modul:[12,22,28,29,36,53,65,66,72,92,101,104,106,113,118,120,121,131,159,165,167,181,182,183,184,199,200,201,202,204,205,209,215,217,218,220,221,225,226,234,240,242,243,248,250,256,260,264,265,267,268,269,271,280,282,289,290,296,315,323,325,327,328,342,345,349,352,353,371,378,379,395,401],moduledemo:[211,248],modulo_264_:376,modulu:376,mold:[9,124],mollit:159,moment:[91,376],mon:[67,97,106,186,209,265],monetari:376,monitor:[208,210,382],monkei:375,mono:87,monochrom:[9,159],monospac:[159,207],month:[38,56,67,135,160,186,209,375,376],month_names_arrai:159,montserrat:159,montserrat_14:159,more:[0,1,4,5,10,30,37,38,71,89,90,92,96,113,159,170,171,172,177,178,179,204,208,209,215,217,218,247,251,252,263,265,266,267,300,302,315,316,323,328,341,345,349,351,352,353,355,360,363,364,366,369,371,375,376,378],more_a_:376,more_data:1,morn:375,mosi:[28,209,217],most:[5,23,24,101,113,125,129,134,159,186,198,199,200,201,202,209,217,252,266,299,308,321,328,334,342,349,360,369,374,375,376,378],mostli:[113,159],mother:[210,211],motion:208,motiv:[321,334,342],moto6800:286,motor:290,motorola:[193,194,195],moun:[188,189,190],mount:[28,29,52,107,108,127,163,174,187,191,205,209,217,265,281,325,349,353],mount_flash:[188,189,190],mount_point:28,mous:[159,290,366],mouth:[247,360],move:[29,89,125,127,133,135,160,165,200,201,202,252,331,366,369,375],movement:[159,208],mp3:[4,265,270,274],mp4:163,mpram:208,mpu6050:53,mpu6500:53,mpu6xxx:53,mpu9250:[53,265],mpu:240,mqtt:[28,31,54,71,118,265,266,270,272,293],mqtt_client:93,mqttc:28,mr122:4,mr475:4,ms:[12,23,28,85,86,92,93,122,130,211,274,378],msb:[9,26,35,62,65,70,72,73,86,111,115,125,163,175,188,189,190,192,193,194,195,209,217,339,340,345],msc:247,msdbox:[135,160],msdbox_demo:159,msg:[1,28,65,121,130,301,302,321,327,334,342,376,378],msg_gpio:327,msg_timer:378,msgbox:159,msgbox_:159,msgbox_add_btn:159,msgbox_creat:159,msgbox_get_active_btn_text:159,msgbox_part_btn:159,msgbox_part_btn_bg:159,msgbox_part_main:159,msgbox_set_text:159,msgbu:[302,321,334,342],msgbuf_send:327,msgbus_clear:327,msgbus_current_s:327,msgbus_list:327,msgdata:[322,327],msgh:165,msgid:[28,107,327],msgtype:[322,327],msp:252,mspinit:252,msy:299,mtu:96,much:[11,22,113,159,209,217,263,266,328,355,369,375,376,378],muid:28,muldownload:271,multi:[9,28,65,87,104,118,120,159,206,208,215,235,257,290,333,345,353,358,371,372,376,378],multimedia:[26,28,118],multimet:[218,353],multipl:[0,1,2,26,35,91,92,93,96,98,101,108,124,133,159,209,210,223,229,235,251,252,257,265,268,269,274,290,291,297,300,329,336,344,345,349,350,366,376,377,378],multiplex:[20,89,209,235,248,251,252,263,264,265,268,279,281,290],multipli:[240,376],multitask:[291,302,380],multithread:378,multithreading_:376,music:87,must:[2,3,4,12,15,19,20,25,26,29,30,58,65,67,70,71,72,80,84,91,92,93,94,96,98,102,108,113,119,128,159,166,199,200,201,202,204,207,209,217,218,235,251,252,262,266,271,274,281,286,300,301,308,311,312,315,317,320,327,328,333,345,351,355,357,360,376,377,378],must_mark_it:376,mutat:[218,369],mute:[268,290],mutual:[321,334,342],mv:[0,166],mwsy:163,my:[94,131,159,209,217,353],my_img:159,my_ir_cb:65,my_map:159,myabc:300,myap:131,myapi:[266,301],myblib:302,myctx:302,myctx_t:302,mydevic:31,myfil:349,myflib:300,myfont:309,myfontd:159,myfunc:[300,309],myid:300,mykei:300,mykv:17,mylib:302,myself:[218,247],myserv:266,mytabl:17,mytim:28,n123:376,n1:[165,274,375],n2:[165,375],n60:159,n:[20,25,28,38,67,70,87,89,99,109,117,119,125,127,130,159,165,200,201,202,210,223,229,257,263,274,306,331,375,377,378],n_refer:376,na:235,nabc:117,name:[1,3,6,9,17,18,22,23,28,31,53,56,57,59,92,93,102,111,113,118,121,125,131,135,160,165,169,193,194,195,199,200,201,202,207,209,211,217,220,225,235,242,245,247,259,265,266,269,281,282,298,301,302,307,309,311,312,315,316,317,325,333,342,343,344,349,351,369,375,379,382],name_font:316,name_wil:376,namelist:376,namespac:309,namewhat:376,namework:376,nan:376,narg:376,narr:376,nation:[28,118,251,263,265],nativ:[29,131,209,217,299,319,325,352,376],natur:[159,375,376],navig:[135,160,301],nb:[4,28,118,244],nbio:94,nbiot:[28,118,279,352],nc:[235,281,291],ne:[28,118],nearbi:217,nearest:[159,376],nec:[32,53,338],necessari:[1,35,89,100,107,130,214,218,247,252,263,290,300,301,303,320,344,355,360,369,375,376],necessarili:[101,120,322,375,376],necir:53,need:[0,1,2,3,4,5,6,9,11,12,14,20,21,23,25,26,28,29,33,34,35,37,38,39,40,41,43,44,45,46,47,48,50,52,54,55,56,57,58,60,61,62,63,64,65,66,68,69,70,71,73,74,75,76,79,81,82,83,87,89,92,93,94,96,100,101,102,110,112,113,114,115,120,121,123,124,125,128,131,132,159,163,168,170,171,172,177,178,188,189,190,193,194,195,204,207,209,211,215,217,218,235,245,247,248,251,252,254,257,264,265,266,269,281,282,286,289,291,298,301,302,308,310,311,312,315,316,320,321,323,324,332,333,334,335,336,338,342,345,349,351,352,355,357,360,363,366,369,371,373,375,376,377,379,381],need_ipv6_dn:28,needl:[135,160,286],needle_color:159,needle_id:159,needle_num:159,neg:[35,38,77,78,89,159,255,345,355,360,369,370,373,375,376,378],neighbor:120,neither:376,nest:[297,332,376],net:[94,159,341,366],net_l:242,net_readi:119,net_status_ind:[378,379],netc:[37,53],netcom:270,netl:[53,269],netlab:113,netmask:[28,341],network:[23,28,31,53,56,57,59,71,80,93,94,101,118,120,128,131,132,167,208,254,262,263,265,266,268,269,270,289,290,315,321,327,330,334,341,342,376,382],network_check_period:28,network_ctrl:113,network_force_close_socket:265,never:[159,182,183,184,322,376],nevertheless:376,new_apn_nam:28,new_data:127,new_nam:28,new_netc:113,new_param:159,new_path:28,new_scr:87,new_valu:159,newcnt:252,newer:159,newindex:376,newli:376,newlin:[159,375,376],newnam:165,next:[12,13,28,30,113,132,159,165,207,209,217,245,252,265,266,289,323,355,357,370,374,375,377,378,403],next_id:28,nexti:350,nfc:208,nic:113,nice:159,nightli:210,nil:[0,1,3,4,5,6,9,10,11,12,13,14,15,17,18,19,20,22,23,24,25,26,27,29,33,35,37,38,39,42,44,45,56,57,58,62,65,66,67,70,71,73,80,84,86,87,88,90,91,92,93,94,96,97,98,101,102,103,104,105,106,107,108,109,110,111,112,113,115,116,119,120,121,122,123,124,125,126,127,128,130,133,159,169,206,209,217,302,341,345,376,377,378,379],nimbl:[28,118,293],nine:53,nisi:159,nline2:159,nline4:159,nmea:[28,118],nmi_handl:211,nmo:65,no_autoat:[214,290],no_error:132,no_n:376,no_readi:127,noclear:28,node:252,nodebug:71,nodej:159,nois:[38,92],nojtag:252,nomin:[96,358,369,372],non:[6,17,19,25,37,38,53,65,71,89,92,96,104,115,119,121,159,188,189,190,208,250,264,265,266,269,289,290,302,303,309,332,340,345,353,360,375,376],nondeterministic_parsing_flag:90,none:[0,1,2,4,5,6,9,11,12,13,15,17,18,19,22,24,26,27,29,30,32,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,52,54,55,56,58,59,60,61,62,63,64,65,66,67,69,70,72,73,74,75,76,77,78,79,80,82,83,84,85,86,87,88,89,91,92,93,94,96,97,98,101,102,104,106,107,108,109,111,112,113,114,117,119,120,121,124,125,126,127,128,129,130,131,132,133,159,168,200,201,202,251,269,315,324,338,340,345,351,376,378,379],nonsens:206,noop:18,nop:[28,109],nor:[101,272,376],nordi:120,norm:218,normal:[3,8,62,85,86,92,93,94,101,124,130,131,134,159,188,189,190,199,200,201,202,204,207,209,210,215,217,218,223,229,232,235,245,247,252,263,264,265,269,281,282,286,289,297,298,302,311,312,315,360,366,369,370,375,376,378,390,391],north:38,nostrud:159,notat:376,note:[0,1,3,9,10,11,12,17,20,25,26,28,29,35,39,40,41,43,45,46,47,48,50,52,54,55,56,58,60,61,62,63,64,66,67,68,69,70,71,73,74,75,76,79,81,82,83,89,92,96,97,101,102,104,105,106,112,113,115,119,121,124,127,131,132,133,159,166,170,171,172,199,211,217,222,224,225,226,228,231,232,235,252,256,263,266,268,269,270,271,274,281,286,290,293,298,301,302,308,311,312,315,316,317,322,323,331,332,345,346,348,350,351,353,355,366,375,376,378,391,402],noth:[107,302,326,353,376],notic:159,notif:[113,297],notifi:[93,96,159,247],novel:380,novemb:[159,209],now:[129,159,291,303,331,374,375,376,378],nparam:376,npm:159,npn:[188,189,190],nr:38,nrec:376,nresult:376,nrst:252,nsec:159,nsecond:159,nsize:[326,328,345,376],nstinput:28,nstonoff:28,nstr:252,nth:99,nthird:159,ntp1:113,ntp2:113,ntp:[113,263,270],ntp_error:113,ntp_updat:[113,263],nulla:159,num:[28,112,159,341,375],num_channel:[4,28],num_table_ax:[77,78],num_tick_mark:159,numa:350,numb:350,number:[0,1,2,4,6,7,9,10,12,13,16,17,18,20,22,24,25,26,27,28,29,30,31,32,33,35,36,38,39,40,41,43,44,45,47,48,49,50,52,54,55,56,57,58,61,62,63,64,65,66,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,91,93,95,96,99,100,101,103,105,107,109,111,112,113,115,116,117,120,121,124,125,127,128,130,133,135,160,168,169,174,175,176,180,204,205,209,217,220,225,227,235,242,252,259,265,266,268,269,271,279,281,286,290,301,315,320,323,330,331,336,338,339,341,343,344,345,350,351,353,355,360,369,370,373,376,377,378,379,390],number_:376,numbl:56,numer:[20,84,97,101,159,271,274,322,327,330,350,375,376],nup:376,nvic:297,nvm:[290,344],nvm_addr:344,nxp:67,nyou:159,o1:274,o2:5,o3:[5,280],o:[3,30,159,214,235,274,290,318,355,360,375,376],obj:[28,135,160,165],obj_add_styl:159,obj_align:[87,159,209,217],obj_align_origo:159,obj_clean:159,obj_creat:[87,159,209,217],obj_del:159,obj_get_height:159,obj_get_st:159,obj_get_width:159,obj_l:159,obj_part_main:159,obj_set_adv_hittest:159,obj_set_auto_realign:159,obj_set_click:159,obj_set_drag:159,obj_set_event_cb:[28,159],obj_set_height:159,obj_set_po:159,obj_set_s:159,obj_set_signal_cb:28,obj_set_style_local_bg_color:159,obj_set_style_local_text_font:159,obj_set_style_local_value_str:159,obj_set_width:159,obj_xxx:159,object:[25,33,35,54,63,67,86,87,91,111,115,119,125,127,133,135,160,165,188,189,190,200,201,202,209,217,327,346,348,375,378],object_:376,objects_:376,objmask:[135,160],objmask_add_mask:159,objmask_cr:159,objmask_demo:159,objmask_mask_t:159,objmask_part_bg:159,objmask_remove_mask:159,objmask_update_mask:159,observ:[125,166,209,210,217,218],obsolet:[28,92,118,376],obtain:[6,13,15,16,17,31,38,43,48,51,52,56,64,71,83,87,88,89,91,92,94,96,97,100,109,111,113,125,128,131,133,159,174,180,191,204,205,208,209,217,252,265,268,271,290,302,308,324,325,341,351,375,376,378,379],obvious:[162,375,378],occaecat:159,occas:[290,369],occasion:376,occup:[316,371],occupi:[14,113,115,218,263,281,286,349,376],occur:[1,113,218,252,357,369,376,378],occurr:376,octal:375,octob:[19,131,159],octuari:376,odd:[125,340,375],oe:72,of_ex_:376,of_intermitt:376,of_set_:376,of_step:376,of_templates_separ:376,off:[0,1,5,7,10,20,25,27,28,30,38,53,67,70,71,77,78,92,93,101,103,107,113,119,120,123,124,127,129,131,159,166,174,181,196,204,205,209,217,234,247,250,265,289,290,297,298,321,323,334,337,338,342,353,355,360,366,370,371,376,379],offend:159,offici:[5,72,77,89,159,204,205,207,209,217,244,247,270,292,299,315,357,376],officia:159,offlin:[159,250,274,290,315,317],offset:[19,28,35,38,109,135,160,165,218,235,291,325,331,344],often:[167,375,376],ohm:235,ok:[6,24,25,38,84,87,88,91,101,113,115,159,188,189,190,245,247,301,302,315,316,320,331,333,340,351,355,360,375,376],okai:159,ol:168,old:[10,19,85,89,96,133,159,209,217,265,376],old_path:28,oldnam:165,om:159,omit:[302,332,336,375],on_lin:[113,265],on_off:28,onboard:[208,209,217,257,281,286,390],onc:[10,20,32,71,96,98,101,102,120,129,159,209,210,252,263,330,375,376,377,378],onchip:110,onchip_fdb:[13,169],one:[0,2,15,26,65,71,72,87,112,113,120,125,127,133,159,162,166,188,189,190,193,194,195,197,199,200,201,202,204,209,214,217,218,244,247,250,257,263,264,265,269,274,279,282,286,290,300,301,308,310,322,343,345,355,357,369,375,376,378,379],one_and_zero:6,onenet:[28,53,84,146,265],oneself:247,onet:54,onff:28,onheap:28,onlevel:28,onli:[0,1,2,3,4,9,10,11,12,13,17,18,20,21,25,26,28,29,30,32,33,35,36,38,56,57,59,64,65,66,67,71,87,89,90,92,93,94,96,97,98,100,101,102,104,105,106,107,108,110,113,115,117,118,119,124,125,127,128,130,131,133,135,160,166,170,171,172,179,188,189,190,192,193,194,195,204,209,211,217,218,220,225,230,235,247,250,262,263,264,265,266,269,270,271,274,281,286,289,290,291,293,300,301,302,303,315,320,323,326,327,328,329,332,336,338,343,345,349,351,352,357,360,366,375,376,377,378,379,384,390],onlin:[159,209,266,311,312,317,389],only_references_to:376,onoff:[1,28],onto:[320,376],op:[369,376],opa_30:159,opa_cov:159,opa_transp:159,opac:159,opaqu:376,opcod:130,open:[10,12,20,23,26,28,29,38,42,53,65,67,70,85,86,89,92,93,101,104,108,113,130,135,160,163,165,166,182,183,184,188,189,190,204,207,208,209,210,211,217,218,232,235,248,250,265,266,270,271,281,286,289,290,292,297,301,311,312,315,317,337,339,340,341,345,349,353,357,360,366,369,373,374,375],openf:376,openluat:[10,35,38,56,58,104,204,211,213,222,225,228,233,235,244,245,246,249,255,263,264,266,270,274,294,295,297,301,309,310,311,312,314,315,316,317,349,381,383,393,396,399],openocd:[250,290],openssl:105,oper:[5,10,12,28,29,38,70,77,78,87,101,108,113,118,124,133,159,165,177,178,179,181,188,189,190,193,194,195,198,204,207,209,215,217,218,223,229,240,247,252,263,265,274,286,291,297,299,301,315,321,323,325,327,331,334,342,345,349,350,352,353,355,357,369,370,371,374,377,391],operand:376,operson:102,oppo12:14,oppo:159,oppo_8:14,oppo_bold_12:316,oppo_bold_8:14,opposan:159,opposans_m_10:[87,159],opposans_m_12:[87,159],opposans_m_14:159,opposans_m_16:159,opposans_m_18:159,opposans_m_20:159,opposans_m_22:159,opposans_m_8:159,opposansm8_chines:14,opposit:[113,125,375,376],opt:[28,165],optim:[90,92,265,320,352],option:[2,6,9,11,12,13,16,17,19,20,23,25,26,31,32,35,37,38,54,56,58,68,72,77,80,87,89,92,93,94,96,101,105,113,115,117,119,123,124,125,127,130,131,133,135,160,207,209,214,250,251,265,290,297,299,300,307,318,319,320,332,339,344,345,351,355,360,375,376,382],optional_a_:376,or_closed_:376,or_closure_:376,or_ful:376,or_numer:376,or_out:376,orang:159,order:[35,65,115,159,176,186,209,217,218,247,252,265,281,301,302,303,317,322,323,328,336,339,341,343,345,366,369,374,375,376,377,378,380],ordin:[133,360,366],ordinari:[94,101,159,218,269,302,369,376,390],org:[5,9,35,159,162,209,210,217,270,291,376],organ:[159,349,378],orient:[159,265,311,312,317,376],origin:[0,1,3,4,11,13,17,37,38,90,92,133,159,166,167,251,265,268,281,282,286,290,315,316,323,325,328,344,366,375,376],originstr:28,os:[5,28,29,67,106,113,118,120,130,165,168,186,209,299,318,319,328,330,375],osc:235,oscil:[89,186,209,211,220,221,225,235,252,290,297],oscilloscop:[125,218],osiz:[326,328,345,376],ota:[54,58,71,107,268,290],ota_port:53,ota_url:[53,71,266],ota_vers:71,otf:159,otg:[240,286],other:[1,10,12,15,21,38,53,59,65,71,89,90,92,93,96,101,103,104,107,121,125,127,159,186,188,189,190,193,194,195,208,209,210,211,215,217,218,220,225,235,243,245,246,247,250,254,259,263,265,269,281,286,289,290,291,297,298,300,302,303,315,317,320,325,328,332,338,341,343,344,345,350,351,353,355,360,369,370,373,375,376,377,378],otherwis:[1,3,4,6,7,9,10,11,12,13,14,16,17,19,20,21,22,24,25,29,33,35,36,42,54,57,67,71,86,87,88,89,90,91,92,93,94,95,96,97,98,101,105,106,108,109,110,111,112,113,115,116,119,121,124,126,127,129,130,131,132,159,166,199,200,201,202,207,209,215,217,231,252,263,264,265,301,302,311,355,357,369,375,376,377,379],otp:[6,28,118,279,293],otpdata:98,our:[159,162,209,232,245,298,311,312,317,320,375,376],ourselv:375,out0_process:252,out:[10,17,53,65,67,92,105,112,113,115,127,133,159,163,166,170,171,172,193,194,195,209,211,217,252,265,284,286,290,302,308,311,312,315,320,331,366,375,376,378,390],out_buff:28,out_path:28,outbuf:4,outdoor:208,outer:[159,204,376],outermost:322,outlin:159,output:[1,2,3,4,5,7,9,19,20,25,28,34,36,38,65,72,78,84,89,92,100,101,103,109,113,114,118,131,133,134,159,162,165,166,167,174,180,185,188,189,190,205,211,214,218,221,235,250,251,262,264,265,269,270,281,290,297,298,308,315,320,321,328,332,334,337,338,342,350,353,355,358,360,364,371,372,377,378,380],output_fil:28,output_od:337,outrevers:28,outsid:[159,204,248,251,265,376],over:[101,107,117,159,252,345,375,376],overal:[159,209,217,218,245,246,266,298,323,375],overflow:[89,297,311,376],overflow_:376,overlap:376,overli:159,overload:376,overrid:[135,160,376],oversea:210,overshoot:87,overview:[135,160,234,250,290,353,385,392],overwrit:[25,306,376],overwritten:17,own:[0,1,2,3,4,6,7,8,9,10,12,13,15,16,17,18,19,20,22,23,24,25,26,27,29,30,31,32,33,34,35,37,38,44,52,57,80,85,86,87,92,93,96,98,101,102,103,105,106,107,111,112,113,115,116,117,124,125,127,128,129,130,131,133,159,204,208,209,263,298,300,309,338,349,353,360,369,375,376],owner:357,oxygen:88,p0_1:66,p0_4:66,p100:252,p2000:274,p7zip:318,p:[74,99,218,235,274,375,376],p_index:159,pa00:[50,217],pa01:100,pa04:166,pa06:227,pa07:[50,65,227],pa08:227,pa09:227,pa0:[209,217,218,220,235,252],pa10:[227,235],pa11:[227,252],pa12:[100,227,252],pa13:[211,215,227],pa14:[211,215,227],pa15:[227,252],pa1:[124,170,171,209,217,218,220,225,235,252],pa2:[215,225,235,245,246,252,298],pa3:[215,225,235,245,246,252,298],pa4:[124,170,171,209,217,218,220,225],pa5:235,pa6:235,pa7:[20,123,220,235],pa8:235,pa9:235,pa:[1,265],pa_00:[225,259],pa_01:[225,259],pa_02:225,pa_03:225,pa_04:[225,259],pa_05:[225,259],pa_06:225,pa_07:[225,230],pa_08:225,pa_09:[225,230],pa_10:[225,230],pa_11:225,pa_12:[225,230],pa_13:225,pa_14:[225,230],pa_15:225,pac:344,pack:[6,28,118,165,206,210,211,245,247,250,265,290,293,298,331,332,350],packag:[15,22,23,28,71,118,163,165,181,207,209,214,221,222,228,234,244,250,252,255,257,260,265,268,270,279,290,293,296,297,303,304,309,311,312,315,316,317,327,328,331,336,343,344,350,351,357,366,369,378,382],package_air_cn_index:210,package_air_index:210,packet:[37,102,113,209,217,268,271,290,382],packsiz:165,pacman:[311,312],pad12:263,pad28:263,pad:[28,89,101,159,218,255,265,269,286,289,376],pad_bottom:159,pad_index:28,pad_inn:159,pad_left:159,pad_right:159,pad_top:159,padaddr:263,padd_inn:159,padd_left:159,padd_right:159,padd_top:159,padding_bottom:159,padding_inn:159,padding_top:159,paddr:269,padelai:28,page:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,114,115,116,117,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,160,193,194,195,204,207,211,224,225,226,228,244,247,250,270,281,282,290,308,316,345,353,355,357,364,366,370,371,374,376,403],page_clean:159,page_cr:159,page_demo:159,page_focu:159,page_get_scrl:159,page_get_width_fit:159,page_glue_obj:159,page_part_bg:159,page_part_scrl:159,page_scroll_hor:159,page_scroll_v:159,page_set_anim_tim:159,page_set_edge_flash:159,page_set_scrl_fit:159,page_set_scrl_fit_height:159,page_set_scrl_fit_width:159,page_set_scrl_height:159,page_set_scrl_layout:159,page_set_scrl_width:159,page_set_scrlbar_mod:159,page_set_scroll_propag:159,pai:[58,67,113,120,207,209,217,235,247,252,269,271,281,320,349,355,369,390],paid:[209,217,235,245,281,286],paint:[35,133],pair:[13,17,62,71,104,131,165,169,265,272,378],palett:[135,160],pan:[254,289,314],panel:[297,353],panic:376,panicf:376,paper:[9,376,390,392],papin:28,par:159,para:[28,378],paragraph:[124,301],parallel:286,param1:[28,53],param:[378,379],paramet:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,159,163,188,189,190,193,194,195,199,200,201,202,209,217,235,252,265,266,268,280,290,291,301,302,303,308,320,323,327,328,332,337,339,340,345,346,348,353,360,369,371,373,376,377,378,379],parametr:159,paraphras:[378,379],parasit:369,parent:[28,159],parenthes:[279,375,376],parenthesi:376,parenthet:376,pariatur:159,pariti:[125,199,200,201,202,209,217],parlist:376,pars:[4,28,34,90,114,118,120,206,322,323,338,375,376],parse_zlib_head:90,parser:376,part:[10,35,56,124,133,135,160,168,173,174,180,185,191,196,203,205,206,209,217,231,263,265,266,274,302,309,311,320,322,328,332,353,357,360,366,369,371,373,375,376,378],parti:[159,250,290,349,360],partial:[0,9,166,252,265,269,279,293,331],particular:[235,375,376],particularli:376,partii:28,partit:[16,28,217,282,344,351],partition_addr:344,partli:375,pascal:376,pass:[1,4,12,15,20,26,35,38,39,40,41,43,45,46,47,48,55,56,58,60,61,64,65,67,68,69,74,75,79,84,85,94,106,107,112,119,125,131,159,188,189,190,200,201,202,218,235,302,313,320,322,327,328,330,332,345,350,353,375,376,378],passag:375,passthrough:15,passwd:28,password:[6,23,28,31,58,70,105,113,135,160,232,289,341,381],past:[6,301,355],patch:[265,281],path:[3,4,23,28,35,81,95,107,132,159,165,208,211,245,247,254,265,289,291,298,299,311,312,315,317,318,319,349,351,378],patha:28,pathb:28,pathc:28,pathd:28,patient:210,pattern:[38,94,96,105,159,165,208],pattern_:376,patters_ref:376,paus:[28,87,101,223,229,323,360,371],pavlov:315,payload:[28,130,265,327],payloadlen:[85,86],pb00:[73,85,217,227],pb01:[30,62,70,73,85,124,217,227],pb02:227,pb03:[65,124,217,227],pb04:[62,70,73,85,124,217,227],pb05:227,pb06:[20,77,78,85,227],pb07:[77,78,227],pb08:[72,78,217,227],pb09:[72,227],pb0:[209,211,217,220,235,245,246,298],pb10:[72,217,220,227,252],pb11:[220,227,252],pb12:[100,227,235],pb13:[128,227,235,245,246,298],pb14:[227,235,245,246,298],pb15:[227,235],pb16:227,pb17:227,pb18:227,pb19:220,pb1:[209,217,220,235],pb20:220,pb21:227,pb22:227,pb24:227,pb25:227,pb26:227,pb27:227,pb2:[209,217,220,235],pb3:[12,163,209,217,220,235,252],pb4:[209,217,220,235],pb5:[209,217,220,235],pb6:[209,217,220],pb7:[209,217,220],pb8:[217,220,248],pb9:[220,248],pb:102,pb_00:[225,230],pb_01:[225,230],pb_02:[225,230],pb_03:[225,230],pb_04:[225,230],pb_05:[225,230],pb_06:[209,217,225,230,259],pb_07:[209,217,225,230,259],pb_08:[209,217,225,230,259],pb_09:[209,217,225,230,259],pb_0:210,pb_10:[209,217,225,259],pb_11:[209,217,225,259,281],pb_12:[225,259],pb_13:[225,259],pb_14:[225,259],pb_15:[225,259],pb_16:[225,259],pb_17:[225,259],pb_18:[225,259],pb_19:225,pb_20:225,pb_21:225,pb_22:225,pb_24:225,pb_25:225,pb_26:225,pb_27:225,pbdata:28,pbtxt:102,pc05:88,pc08:128,pc09:128,pc0:[1,166,235],pc12:[163,235],pc13:235,pc14:[163,235],pc15:235,pc1:235,pc3:[231,235],pc4:235,pc5:235,pc6:235,pc7:235,pc8:235,pc9:235,pc:[159,200,201,202,290,353,355,357,358,360,363,364,367,369,370,371,372,373],pcall:165,pcb:[193,194,195,213,230,247,248,251,255,257,264,281,369,389],pcf8563:67,pcf8563t:53,pcf8574:53,pci:92,pclose:328,pcm:[1,4,250,290],pctolcd2002:[9,35,124],pd10:[114,235],pd11:235,pd12:[114,235],pd13:[114,235],pd14:[114,231,235],pd15:[114,231,235],pd1:235,pd2:235,pd3:235,pd6:235,pd7:235,pd8:235,pd9:235,pd:[353,355,358,363,364],pdf:[67,159,166,182,183,184,193,194,195,200,201,202,212,213,215,219,220,225,230,231,233,246,249,255,264,292,294,295,297,376,387],pdn_type:28,pdop:38,pe00:114,pe01:114,pe02:114,pe08:163,pe09:163,pe0:235,pe10:235,pe11:235,pe1:235,pe2:235,pe3:235,pe6:[172,235],pe7:[172,235],pe8:235,pe9:235,peach:375,peak:[265,360,366,369],pear:375,peer:113,pelulamu:159,pem:[93,105],pend:[252,265,336,376,378],pendsv_handl:211,penetr:71,penultim:375,peopl:[247,350,375],per:[38,49,71,89,159,174,180,205,265,377,379],percent:351,percentag:[1,159,373,376],percept:376,perfect:[71,96,159,265,375],perfectli:[207,374],perform:[29,30,66,87,92,101,107,204,208,209,218,234,247,250,265,266,290,308,311,323,330,333,353,360,371,375,376,377],perhap:[349,375],perimet:375,period:[20,25,28,89,92,96,113,120,121,122,159,198,209,217,218,252,263,265,269,290,316,366,378],peripher:[89,96,101,115,135,170,171,172,174,192,196,205,209,214,215,217,234,240,245,250,251,252,257,265,266,270,279,286,290,291,298,299,308,321,334,342,352],perisan:159,perman:[23,107,218,379],permiss:376,perpendicular:159,perpetu:116,persian:159,persist:316,person:[102,378],perspect:[264,269,303],phase:[351,357,363],phenomena:357,phenomenon:[217,250,290,357,366,369],philip:[170,171,172,209,217],phone:[28,92,120,208,254,289,353,355,360],photo:3,photograph:[3,385],php:38,phycellid:28,physic:[104,269],pi:[165,292],piao:247,pick:[263,366,375],picker:159,pico:292,pictur:[3,35,135,160,207,209,217,265,309],pid:28,pide:28,pie:[292,353,358,369,371,372],piec:[1,111,133,209,217,349,376],pilot:32,pin0:[168,298],pin1:[28,168],pin2:28,pin2pin:404,pin33:20,pin:[1,9,12,25,28,34,35,42,49,50,53,62,65,66,67,70,72,73,77,78,85,88,92,110,114,115,118,120,124,125,128,135,160,162,163,168,174,175,196,205,209,210,211,215,217,218,219,221,223,224,226,229,231,234,243,244,245,246,247,250,253,257,260,262,263,264,265,269,284,288,290,293,297,298,327,328,337,357,360,391],pin_busi:[28,86],pin_c:[28,86,175],pin_chang:92,pin_clk:28,pin_dat:28,pin_dc:[28,35,163,175,209,217],pin_dio1:86,pin_dis:92,pin_en:92,pin_pwr:[9,35,163,175,209,217],pin_reset:[28,86],pin_rst:[9,35,163,175,209,217],pin_unblock:92,pin_verifi:92,pin_xxxx:92,ping:[85,86,120,274],pinmod:210,pinout:[214,217,221,226,234,250,256,268,290,296],pio:66,pipelin:286,pivot:159,pivot_i:159,pivot_x:159,pix_fmt:163,pixel:[9,28,35,91,124,159,162,290,331,385],pkcs5:19,pkcs5pad:19,pkcs7:[6,19,167,265],pkg:[304,308,309,313,314],pkgid:265,pkx:28,pky:28,place:[25,105,124,159,163,176,209,214,217,218,235,247,263,290,302,311,312,317,349,355,375,376,390],placehold:[135,160],placement:218,plai:[28,135,164,265,274],plain:[165,274,375],plan:[159,247,252],plat:[313,315],plate:[355,369],platform:[1,10,15,18,19,20,28,53,58,89,92,93,101,113,118,125,130,135,138,149,155,164,247,252,257,265,266,270,271,289,310,316,320,321,327,334,335,342,349,366,376,377],playback:[1,135,265,270],playstop:28,pld_0204:247,pleas:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,114,115,116,117,119,121,122,123,124,125,126,127,128,129,130,131,132,133,134,142,159,204,207,209,210,214,217,222,224,225,226,228,230,231,232,235,245,247,251,252,263,265,266,267,269,270,281,282,286,290,292,297,298,302,308,310,315,316,317,346,348,353,355,357,360,364,366,369,375,376,381,384,390],pll:[89,235,240,250,251,290],pllclk:248,plot:159,plu:[28,159,193,194,195,252,363,375,376,378],plug:[187,204,207,208,209,217,246,250,265,289,290,353],plural:159,pm10:83,pm1:83,pm2:83,pm:[28,107,118,174,204,205,209,223,229,263,265,269,329],png:[159,235,265,290,316],pnum:28,po:[159,165,375],point:[2,9,12,28,29,33,35,38,70,71,87,91,97,118,124,133,135,160,165,188,189,190,204,218,265,321,334,335,342,366,375,376,403],point_arrai:159,point_cnt:159,point_num:159,point_t:159,pointer:[9,12,13,14,17,21,26,29,35,87,109,115,116,125,126,127,133,159,188,189,190,200,201,202,324,327,328,331,332,336,376],pole:[355,360],poli:28,polici:[159,268,290],poll:340,polygon:124,polynomi:[6,251],pong:375,pool:[321,328,334,342],pop:[159,247,265,301,308,360,366,376],popen:[165,328],popul:[133,326,331,376],popular:357,popup:315,porridg:[247,311,312,317],port:[3,9,12,23,25,28,35,38,53,58,62,70,76,81,92,104,109,118,120,132,163,174,175,177,178,199,203,204,205,206,209,211,214,217,218,231,245,246,247,251,263,264,265,269,281,286,290,298,305,308,311,312,323,339,340,341,345,351,353,355,358,360,363,369,370,371,372,377,382,395,401],portabl:[246,288,290],portal:[204,246,281,286,294],portcon:297,portion:[159,376],posit:[15,26,29,35,38,53,56,58,91,99,109,116,120,124,125,127,133,135,160,208,211,245,250,255,265,266,268,270,274,290,298,331,343,345,350,355,358,360,366,369,370,372,373,375,376,378,382],posix:[113,318,328,349,376],possibl:[86,93,159,187,218,235,247,252,263,265,266,290,300,301,317,333,355,357,369,375,376],post:[23,24,37,104,197,209,217,346,348,352],potenti:376,pour:265,pow:376,power:[0,1,12,28,52,65,85,86,89,92,94,96,118,120,124,131,159,162,166,177,178,186,204,209,217,221,226,234,247,252,257,262,264,265,268,269,279,284,288,290,297,308,321,334,335,341,342,352,360,363,366,375,376,382,390],power_kei:235,power_on_delai:28,power_pin:28,powerkei:[101,265],powerlevel:28,poweroff:265,powersav:28,powershel:[163,315,317],pp:[353,358,360,363,366],ppb:82,ppm:82,pr:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,114,115,116,117,119,121,122,123,124,125,126,127,128,129,130,131,132,133,134],practic:[159,209,221,290,346,375,376],pre:[205,250,290,376],preamblelen:[85,86],precaut:[104,135,160,250,284,290,357],preced:[19,92,101,345,376],precis:[28,33,38,89,159,174,180,186,205,209,218,240,297,338,353,358,369,371,372,376],precompil:[299,376],predefin:[159,376],prefac:376,prefer:[77,113,125,210],preferenti:[281,286],prefilt:159,prefix:[28,159,333,345,376],prefixexp:376,preliminari:377,preload:[159,165],prematur:23,premis:[131,357,369],prepar:[11,90,135,146,164,173,174,180,185,191,196,203,204,205,214,221,250,268,290,296,302,349,375,376],preparatori:[346,348],prepend:376,presenc:269,present:[109,159,186,192,209,292,302,320,324,351,376],preset:369,press:[34,46,78,87,95,101,114,120,159,168,175,204,207,209,215,217,235,245,281,282,286,289,298,301,360,366,370,373,376],press_sta:50,pressur:[0,53,109,265,369,376],presuppos:376,prevail:[38,279],prevent:[5,53,65,125,166,217,218,235,247,320,366,369,376],preview:[159,232,353,366],previou:[12,25,104,131,159,163,165,169,209,214,217,247,265,290,308,343,369,375],previous:[35,159,169,252,290,376],price:[159,209,353,375],primari:[92,96,159,269],primit:[87,376],principl:[159,163,165,199,200,201,202,209,217,328,376],print:[2,3,5,16,17,18,19,20,28,31,50,53,62,63,68,70,73,84,89,94,100,102,104,105,107,113,117,119,130,159,163,165,166,167,169,176,179,181,186,192,198,199,200,201,202,204,209,210,217,231,242,265,281,286,290,301,302,304,339,340,344,346,348,350,373,375,377,378],printabl:376,printer:87,printf:[159,210,250,290,375,376],printout:375,prioriti:[92,101,107,165,211,250,265,290,297],privat:[18,23,28,58,93,105,113,159,320,328,355,360,369,370,373,376],privkei:105,prj:[304,305,307,308],prlh:252,prll:252,pro:[363,366,370,372],proactiv:104,probabl:[101,109,211,250,265,286,289,290,317,355],probe:[113,305,376],problem:[23,93,100,159,204,211,218,245,247,251,252,254,265,286,291,298,302,303,311,312,316,317,321,328,334,336,342,366,375,376,378],proce:376,procedur:[252,265,376,378],proceed:163,process:[1,6,11,12,15,25,28,65,89,90,92,93,96,101,103,104,107,112,115,117,118,132,159,165,187,188,189,190,198,199,200,201,202,204,208,209,210,217,218,247,252,265,268,290,297,299,302,308,321,328,332,333,334,342,345,350,377,378,379,380],processor:[159,193,194,195,215,257,286,322,376],produc:[186,209,296,327,330,369,376],product:[31,54,56,58,89,135,159,164,218,234,247,255,268,284,288,290,353,363,364,366,375],product_id:28,product_kei:[28,56,266],product_secret:54,productkei:53,produt_id:[28,54],profil:[256,290,376],prog:165,program:[97,101,102,159,162,165,174,205,218,231,232,240,244,252,261,286,289,290,297,301,308,321,334,342,350,351,374,378],program_:376,programm:[159,250,290,376],progress:[135,160,209,265,279,293,345,351,373],prohibit:[32,218,235,345,355,360,369,370,373],proident:159,project:[31,39,56,71,92,138,146,149,155,166,169,170,171,172,176,177,178,179,182,183,184,188,189,190,193,194,195,197,198,200,201,202,204,206,207,209,211,232,245,247,248,252,266,271,284,289,290,291,292,298,303,304,313,315,344,349,369,377,390,392],prompt:[9,19,35,100,103,124,159,245,252,265,301,306,307,315,317,351,366,376],pronunci:[268,290],proof:247,propag:[135,160,376],proper:375,properli:[159,252,265,376],properti:[22,35,96,133,159,247,265,376],proport:159,proportion:159,prosecut:159,protect:[133,162,209,247,250,289,290,355,371,376],protobuf:[28,118,265],protobuff:[28,118],protoc:102,protocol:[28,53,109,113,130,170,171,172,193,194,195,199,200,201,202,208,209,217,235,246,257,265,268,290,297,321,334,338,342,351,355,357,360,369,370,373,376],protocolbuff:102,prototyp:[301,326,328,376],prove:[159,204,357,360],provid:[6,13,17,72,104,124,159,167,169,170,171,172,174,186,193,194,195,205,208,218,235,240,243,247,260,263,265,268,290,297,302,303,309,311,312,315,317,320,324,325,326,327,328,329,331,337,339,340,341,344,345,349,352,353,355,357,360,366,369,370,373,375,376,378,380],proxi:[8,323],ps:[131,257,269],ps_max_modem:131,ps_min_modem:131,ps_none:131,pseudo:376,psk:[113,272],psm:[92,94,101,265,382],psmmode:28,psram:[209,240,279,286,291,352],psram_c:225,psram_clk:225,psram_d0:225,psram_d1:225,psram_d2:225,psram_d3:225,ptr:[302,322,326,327,328,345,376],ptrdiff_t:376,ptw:94,pub:[121,377],publish:[25,28,53,115,130,197,209,217,254,265,333,342,346,348,377,378],pubout:105,puc:376,puk:92,pull:[1,12,22,28,30,115,193,194,195,209,215,217,218,223,229,235,250,251,252,265,269,281,290,297,337,353,357,376],pull_mod:28,pulldown:[20,30],pullup:[20,30,66,67,71,116,209,217,269,328],puls:[28,49,72,182,183,184,209,217,252,269,286],punctiv:252,punctuat:[375,376],purchas:[206,210,211,214,221,226,247,250,260,290,296,352,353,369,385,390,392,395,398,401,404],pure:[124,205,320,345,360,363,364,371,375],purpos:[22,65,92,132,159,235,250,286,290,297,345,376],push:[28,235,297,301,302,320,337,345,376],put:[23,24,37,92,159,204,209,210,217,265,274,301,302,316,317,327,355,375,376],puzzl:316,pw:341,pwb:281,pwd:[18,28],pwk_mode:[101,204],pwlink:247,pwm00:183,pwm0:[103,182,217,220,235],pwm11:269,pwm1:[220,235,269],pwm2:[220,235],pwm3:[220,235,269],pwm4:[220,235],pwm5:[103,184,235,269],pwm6:235,pwm7:235,pwm:[28,30,32,89,109,118,162,174,205,221,240,257,264,265,268,270,279,281,286,290,293,297,338,380],pwm_00:225,pwm_01:225,pwm_02:225,pwm_03:225,pwm_04:225,pwm_10:225,pwm_11:225,pwm_12:225,pwm_13:225,pwm_14:225,pwm_20:225,pwm_21:225,pwm_22:225,pwm_23:225,pwm_24:225,pwm_30:225,pwm_31:225,pwm_32:225,pwm_33:225,pwm_34:225,pwm_captur:103,pwmh:103,pwml:103,pwr:[204,211,262,263,264],pwrkei:[101,269,289],pxxx:100,py:[282,313,317],pyocd:[246,247],python:313,q2:369,q:[282,299,376],qa:72,qcloud:28,qfn32:[221,222,279,293],qfn56:[209,228,279,293],qfn88:[235,279],qh:72,qio:281,qmc5883l:53,qmc5883l_data:69,qo:[28,53,265],qos0:93,qos1:93,qos2:[93,265],qq:[102,209,215,222,228,244,316,346,348],qr:87,qrcode:[28,35,124],qrcode_cr:28,qrcode_delet:28,qrcode_upd:28,qspi:208,qszz:38,quadrant:376,qualcomm:[28,87,118,265,387,392],qualifi:315,qualiti:[4,28,92,159,353],quantiti:[92,252,279,376],quantity_:376,quantiz:252,quasi:266,queri:[28,29,56,65,71,92,120,174,180,193,194,195,205,265,272,308,323,326,376,379,382],question:[104,159,247,369,376,381],queu:328,queue:[30,107,121,302,322,327,328,378,379],qui:159,quick:[135,160,205,252,301,309,352],quickli:[90,101,159,168,208,265,352,353,363,375,376,380],quiescent:297,quit:[217,332],quot:[159,302,351,375,376,378],quotat:[375,376],quotient:376,qwer:18,r1:159,r:[6,28,38,75,109,117,125,130,159,163,188,189,190,192,209,217,333,349,363,375,376,378],rad:[28,165],radial:159,radian:376,radic:159,radiu:[28,35,124,133,159],radius_circl:159,rais:265,ram:[4,12,89,101,133,159,208,215,223,229,235,247,250,251,265,279,344,349,352],ramrun:351,random:[6,165],randomli:93,randomse:165,rang:[28,92,93,96,101,123,124,133,135,160,166,182,209,217,218,231,235,252,272,274,297,357,358,360,366,369,371,372,375,376],rank:[176,376],rapid:[159,341,346,348],rar:297,rare:218,raspberri:[159,292],rate:[12,22,26,28,36,62,81,91,104,115,118,125,162,177,178,199,200,201,202,204,208,209,211,217,218,222,228,231,240,248,251,257,263,265,281,286,291,297,340,344,351,353,358,363,364,366,369,371,372,376],rate_:376,rate_and_garbag:376,rather:376,ratio:[11,38,92,124,208,373],raw:[1,19,38,90,131,290,345],raw_data:28,raw_point:28,rawdata:28,rawequ:165,rawget:[165,333],rawlen:165,rawset:165,rawvideo:163,rb:[29,163,209,217],rc522:53,rc522_authent1b:70,rc522_bit_fram:70,rc522_com_irq:70,rc522_config_isotyp:53,rc522_fifo_level:70,rc5:338,rc:[218,265],rcc:248,rcc_apb1periph_usb:248,rcc_apb1periphclockcmd:248,rcc_apb2periph_afio:252,rcc_apb2periphclockcmd:252,rcc_clockconfig:248,rcc_mco_hs:248,rcc_mco_hsi:248,rcc_mco_noclock:248,rcc_mco_pllclk_div10:248,rcc_mco_pllclk_div11:248,rcc_mco_pllclk_div12:248,rcc_mco_pllclk_div13:248,rcc_mco_pllclk_div14:248,rcc_mco_pllclk_div15:248,rcc_mco_pllclk_div16:248,rcc_mco_pllclk_div2:248,rcc_mco_pllclk_div3:248,rcc_mco_pllclk_div4:248,rcc_mco_pllclk_div5:248,rcc_mco_pllclk_div6:248,rcc_mco_pllclk_div7:248,rcc_mco_pllclk_div8:248,rcc_mco_pllclk_div9:248,rcc_mco_sysclk:248,rcc_pllcmd:248,rcc_pllmul_27:248,rcc_pllsource_hse_div1:248,rcc_usbclkconfig:248,rcc_usbclksource_pllclk_4div5:248,rclk:53,rcr:28,rd:333,rda8910:323,rddi:[250,290],rdy:[120,125],re:[9,25,28,30,85,86,105,159,188,189,190,193,194,195,197,209,217,247,248,251,252,322,350,357,360,366,375,376],reach:[73,97,159,250,358,366,369,372,375,378],reachabl:376,react:159,read:[1,10,13,15,17,23,25,26,28,29,30,38,39,45,47,53,56,65,68,71,85,89,92,94,96,97,102,105,106,107,108,109,115,118,127,128,131,132,159,163,165,166,169,173,174,186,187,191,192,196,199,200,201,202,205,206,209,217,250,251,263,265,268,290,315,320,322,323,325,328,331,332,337,340,343,345,346,347,350,357,375,378],read_datablock:53,read_light:53,read_rawrc:53,read_tim:53,readabl:[96,349,376],readback:[358,369,372],readdht12:28,reader:376,readfil:[28,93,102,105,188,189,190],readi8:133,readi:[1,15,28,56,92,94,113,120,124,127,209,217,301,308,341,376],readint8:331,readm:[309,315],readr:[193,194,195],readreg:28,readsht30:28,readu32:133,reaet:218,real:[28,53,71,92,118,159,167,186,193,194,195,209,240,265,290,355,369,373,375,376],realign:159,realist:369,realiz:[187,199,200,201,202,208,209,217,218,235,248,251,269,281,286,290,302,330],realli:[101,133,218,317,376],realloc:[133,376],really_hold_their:376,reamd:309,reason:[12,97,101,159,163,265,286,302,323,333,345,351,366,376],reboot:[28,58,71,266],receipt:130,receiv:[3,15,23,25,26,28,38,53,54,56,58,62,70,73,80,85,86,92,93,113,115,120,121,125,127,130,131,159,174,197,199,203,205,208,209,217,247,250,265,270,286,290,302,322,323,327,330,338,339,340,345,375,376,377,378,379],receive_buff:53,receivebuff:[200,201,202],receiveddata:[170,171,172],recept:[49,65,125,132,209,217,265,345],recharg:235,reciv:[85,120],reclaim:[375,376],reclam:265,recogn:[22,209,217,250,265,290,323,345,353],recognit:[92,208],recolor:[135,160],recommend:[0,1,5,11,35,38,71,87,89,90,92,96,97,100,105,106,107,115,122,125,132,159,162,204,205,209,210,211,215,217,218,220,225,235,245,246,247,252,264,269,270,271,279,281,286,291,301,311,312,315,317,318,355,360,369,370,373,378],recompil:376,reconfigur:[39,250,290],reconnect:[28,247,265],reconnect_tim:28,record:[26,28,208,217,247,265,300,366,376],record_of:376,recov:[92,265],recoveri:[1,92,376],recruit:353,rect:28,rectangl:[9,133,159,331,375],rectangular:159,recurs:376,recursion_:376,recv:[28,38,65,93,130,170,171,172,192,209,217,322,327,339,345,350],recv_buf:339,recv_cb:53,recvlen:[193,194,195],recvreadi:[209,217],recycl:376,red:[9,35,133,159,264,355],redi:169,reduc:[1,133,159,166,182,183,184,209,211,235,263,265,266,274,366,369,375,376],reduct:133,redund:1,reentrant:376,ref:376,refer:[5,8,14,19,26,35,80,89,92,96,123,124,130,131,142,159,165,166,167,168,170,171,172,175,176,177,178,179,181,182,183,184,186,188,189,190,193,195,198,206,209,210,214,217,218,230,232,233,234,247,248,252,263,265,266,270,274,281,283,286,290,291,292,297,299,301,302,303,310,315,316,320,345,346,348,349,355,357,358,360,366,369,370,372,373,375,377,379,391],referenc:[87,159,376],reflect:[235,302,353],refp:235,refr_now:159,refresh:[9,29,35,36,87,94,159,316,324,351,360,366,371],refresh_r:28,reg32:28,reg:28,regaddr:332,regard:[375,376],regardless:[106,133,159,316],region:[98,159,366,376],regist:[1,3,18,25,26,66,70,72,86,87,89,92,93,94,113,121,125,128,130,159,174,188,189,190,199,203,205,209,215,217,220,225,251,252,290,297,302,316,327,341,345,376,378,379],registered_roam:92,registr:[54,66,92,94,113,165,317,320,341,376],registri:165,regul:369,regular:[10,92,131,159,269,301,376,377,380],regularli:[66,129,265],reimag:252,reiniti:[124,265],reissu:247,reject:92,rel:[29,44,159,289,291,336,376],relat:[0,9,20,26,35,38,65,89,90,94,96,98,108,124,133,135,160,164,210,214,218,235,245,252,255,263,265,268,284,288,289,290,293,298,309,320,323,326,328,351,357,376,379],relationship:[209,269,378],releas:[3,6,28,34,54,65,87,92,93,102,107,114,120,130,159,204,209,210,215,217,222,228,244,245,250,256,261,266,268,270,274,286,290,302,314,326,360,363,375,376,377,379],relev:[92,108,159,218,247,269,290,321,334,335,342,345,349,366,376],reli:[211,299,328,349,376],reliabl:[209,353,364,369,371],relinquish:376,reload:[250,290],reluct:162,rem:315,remain:[26,67,125,133,159,218,250,290,315,326,327,375],remaind:[297,375,376],remark:[235,269,352],rememb:[104,105,159,289,302,333,355,376],remind:[2,12,14,21,38,56,92,131,204,207,264,265,266,355,366,369],remot:[28,53,62,118,338,382],remote_nam:28,remote_port:[28,265],remoteip:28,remov:[5,28,29,87,117,127,135,160,165,218,232,265,282,315,333,345,355,369,375,378],renam:[28,165],render:[159,208,209,217,376],renderlinehighlight:207,rep:[165,209,217],repackag:265,repair:[265,286,357,366,369],repeat:[28,30,159,163,209,217,265,303,330,333,376],repeat_cnt:28,repeatedli:[14,210,381],repetit:[30,107,116,330,338,375],repl:[28,118,165,265],replac:[17,58,92,108,127,159,207,209,217,247,248,250,257,284,290,307,328,331,369,375,376],replai:87,repli:[96,113,159,209,217,332],report:[20,21,23,28,71,93,118,252,265,311,315,316,345,364,376],repositori:[204,270,310,311,312,315,391],reprehenderit:159,repres:[9,16,20,25,35,96,100,101,124,159,193,194,195,265,282,315,316,336,345,350,375,376,377],represent:376,reproduc:252,req_cod:53,reqaddr:53,reqal:70,reqcellinfo:[28,265],reqedrxvaluem:28,reqidl:70,reqiur:300,reqop_norm:62,reqptwvalu:94,reqtim:53,request:[28,37,53,65,71,92,181,223,229,252,265,266,326,329,333,375,376],requir:[0,1,3,6,9,11,13,15,17,19,21,23,30,35,37,39,40,41,42,43,44,45,46,47,48,49,50,52,54,55,56,58,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,79,80,81,82,83,89,90,92,93,96,97,101,104,107,109,112,113,120,121,125,127,130,131,134,135,160,162,165,166,168,169,170,171,172,177,178,179,182,183,184,188,189,190,193,194,195,197,200,201,202,209,210,214,217,218,226,235,247,252,265,266,269,279,281,289,290,299,300,301,303,308,309,315,317,318,319,320,322,326,327,328,333,336,342,344,346,348,352,353,357,363,364,369,371,375,377,378,379,391],reqwifi:53,rerult:133,reselect:[92,204],resembl:159,reserv:[7,25,34,87,92,96,101,113,114,159,290,328,336,358,372,376],reset:[9,12,28,35,50,53,85,101,109,128,129,159,188,189,190,204,209,211,215,221,223,229,235,240,245,246,247,250,262,263,264,281,286,290,297,298,351,366],residu:252,resist:[218,220,225,235,247,251,281,357],resistor:[0,218,235,250,251,252,290,357,358,369,372],resiz:[28,135,160],resolut:[4,35,53,113,159,163,208,240,265,279,353,358,369,371,372,392],resolv:[252,352,376],reson:101,resourc:[3,30,93,130,193,194,195,204,208,209,221,244,247,266,274,284,288,290,309,327,328,349,352,374,375,376],resp:[323,333],respect:[65,159,166,199,200,201,202,209,211,217,231,264,336,357,358,369,372,375,376,378],respond:[24,56,58,198],respons:[23,93,96,204,208,209,218,320,321,322,334,342,376],rest:[159,209,217,375,376],restart:[5,25,71,89,92,101,107,204,207,209,218,265,266,298,311,312,315,353,360,376,378],restaur:378,restor:[131,132,159,323,373,375,376],restrict:[96,376],result:[0,1,2,4,5,6,10,12,15,17,25,27,30,33,51,56,58,62,70,71,81,82,83,89,92,94,96,101,103,105,108,109,113,115,119,131,133,159,163,167,170,171,172,187,199,204,209,217,250,251,265,290,297,302,316,333,339,340,341,342,355,357,360,366,369,370,373,375,376,377,378,379],resum:[1,87,121,165,378,379],resurrect:376,ret:[29,103,105,131,266,302,332,333],retain:[28,53,108,376],retri:[10,128],retriev:[159,376],retstat:376,reus:[65,131,218,235,250,264,265,269,279,290,376],reusabl:281,rev:377,revc:[193,194,195],revers:[6,29,35,65,124,159,165,167,188,189,190,298,355,357,360,369,370,373],revert:[28,345],review:376,revis:[240,247],reviv:376,revvc:[193,194,195],rewrit:[211,265,376],rf:[92,263,290],rgb565:[28,240,286,291],rgb565be:163,rgb888:240,rgb:[3,35,75,87,159,163,286,290],rgb_data:75,rgb_date:75,rgb_file:163,rh:[41,47],right:[2,9,26,35,49,58,87,124,159,162,207,245,247,298,301,355,360,366,369,370,375,376,382],right_fit_typ:159,rio:376,rippl:218,risc:279,riscv:257,rise:[20,30],risk:[247,355,360,369,370,373,376],riski:369,rle:[90,159],rle_match:90,rmc:38,rmd:18,rmdir:28,rmt:286,rndi:289,road:[281,297],roam:92,roberto:376,robot:265,robust:376,role:[336,376],roll:[135,160,252,345],rollback:265,roller1:159,roller:[135,160,371,373],roller_:159,roller_cr:159,roller_demo:159,roller_get_selected_str:159,roller_mode_infinit:159,roller_part_bg:159,roller_part_select:159,roller_set_opt:159,roller_set_visible_row_count:159,rom:[159,324,336,344],romf:349,room:[159,217],root:[16,97,266,309,315,376],rotable_reg:301,rotari:53,rotat:[28,49,92,135,160,297,360,376],rotation_angl:159,rough:125,roughli:[211,315,378],round:[124,159,376],rout:[235,247],routin:[135,161,164,209,217,252,290,292],row:[29,135,160,210,211,219,224,231,250,253,262,263,264,265,290,323,336,373,375,376],row_cnt:159,rp2040:290,rp2040_pcb:[290,292],rrc:[92,265],rs232:199,rs485:[199,265],rs485_delai:28,rs485_gpio:28,rs485_level:28,rs8554:369,rs:351,rsa:[28,118,272],rsrp:28,rsrq:28,rssi:[28,120,131,341],rst:[37,53,128,209,215,245,246,247,281,286,298],rst_pin:28,rt:[209,215,247,314,320,341,351,352],rtc:[28,38,101,118,174,205,223,229,235,240,250,263,265,279,290,293],rtc_setprescal:252,rtcauto:28,rtime:28,rtkv:53,rto:[22,28,58,71,118,166,168,266,290,299,318,319,322,327,328,330,349,378],rtos_msg:[322,327],rtos_msg_t:302,rtr:[28,62],rtrim:28,rtt:[314,327,352],rtt_root:314,rtthread:314,rule:[67,96,165,209,217,252,265,268,290,309,375],rule_:376,run:[21,28,66,101,118,159,165,166,169,170,171,172,174,177,178,179,182,183,184,188,189,190,193,194,195,197,200,201,202,204,205,207,208,209,210,211,214,217,218,223,229,232,245,247,265,266,286,290,298,299,302,308,311,312,318,319,322,323,327,328,329,345,351,352,366,373,375,378],running_script_:376,runtim:[97,101,159,366,376],rx0:218,rx:[26,28,199,200,201,202,209,215,217,220,225,245,246,259,265,286,298],rx_done:86,rx_error:86,rx_hwtimer_id:28,rx_len:28,rx_pin:28,rx_timeout:86,rxbuf:73,rxbuff:28,rxclear:28,rxcontinu:[85,86],rxd:215,rxdata:25,rxe:[250,290],rxlen:28,rxpacket:53,rxsize:28,ry:28,s1:[94,375],s2:375,s3:[286,287,290,375],s3_pcb:[288,290],s5:274,s:[1,3,9,10,17,18,20,29,31,35,54,58,77,78,85,87,89,92,93,94,96,97,107,113,120,130,133,134,159,162,163,165,168,169,187,198,204,207,209,210,217,232,235,245,247,252,254,263,264,265,269,272,274,282,289,291,293,298,300,301,302,308,309,314,315,320,321,322,323,325,326,334,338,340,341,342,345,346,347,351,360,364,375,377,378,380],s_intermitt:376,s_loader_:376,s_n_:376,sacrif:366,safe:[159,341,376],safer:376,safeti:235,sai:[209,217,247,263,315,375,376,377],said:[289,374,375],sale:[381,384],same:[1,6,12,14,20,22,30,59,65,67,77,78,89,92,93,97,100,102,113,159,204,209,217,228,252,254,263,265,266,269,274,281,286,290,302,311,312,315,316,325,336,345,350,357,366,369,370,375,376,378,379,380,381],sampl:[1,4,28,38,92,159,174,205,209,211,217,240,250,257,281,290,297,346,348,353,357,358,363,364,366,369,371,372,375],sample_r:[4,28],san:159,sar:[240,286,297],sarasa:265,sass:38,sat:38,satellit:[38,263,270,381],satellites_track:38,satisfi:[67,375],satur:159,saturdai:67,save:[3,13,17,71,89,101,124,131,132,159,162,174,193,194,195,205,207,208,245,247,263,282,290,302,311,327,366,375,376,382],save_path:28,sayhi:301,sb_mode:159,sc:[128,131],sc_result:131,scalabl:159,scale:[35,135,160,163,324,326],scale_end_color:159,scale_grad_color:159,scale_width:159,scan:[3,28,53,90,123,247,252,265,270,293,297,309,315,341,345,376,385],scan_period:28,scanresult:28,scatter:[162,214,247,290],scdma:272,scenario:[71,121,223,229,236,265,266,269,270,279,285,308,321,334,342],scene:[281,286,308,328],scenic:87,schedul:[48,58,94,159,197,281,321,334,342,378,379],schema:376,schemat:[170,171,172,182,183,184,188,189,190,193,194,195,200,201,202,209,214,218,221,231,233,235,246,247,249,255,264,283,287,290,292,294,295,390,392,404],scheme:[38,204,247,315,334],scienc:357,scientif:265,sck:[66,247],scl:[28,53,124,168,170,171,172,209,217,269],scl_pin:53,sclk:53,scm:290,scon:314,scope:[135,160,274,376],score:[5,280],scr2:87,scr:[28,209,217],scr_act:[28,159,209,217],scr_load:[28,159,209,217],scr_load_anim:28,scr_load_anim_over_left:87,scrambl:25,scratch:376,screen:[3,28,35,87,100,118,124,159,168,174,205,208,209,217,226,265,290,296,308,353,355,360,363,364,371,373,392,395],screen_label:159,screenshot:[235,290,316,360],screw:[355,369],script:[72,77,94,107,159,175,205,208,217,221,226,234,265,266,270,271,274,284,290,301,306,308,309,310,311,312,317,319,322,323,325,344,349,351,352,374,375,376,377],script_addr:344,scrlbar_mode_:159,scrlbar_mode_auto:159,scrlbar_mode_drag:159,scrlbar_mode_hid:159,scrlbar_mode_off:159,scrlbar_mode_on:159,scrlbar_mode_unhid:159,scroll:[135,160,162,366,370,373],scrollabl:[135,160],scrollbar:159,scrollbar_mode_off:159,sd:[1,12,14,29,107,108,134,159,163,209,217,290,325,349],sd_mount:[209,217],sd_read:28,sd_user_main:107,sd_write:28,sda:[28,53,124,168,170,171,172,209,217],sda_pin:53,sdcard:107,sdhc:127,sdio:[12,28,118,221,240,248,251,257,279,286,290,291,293],sdio_clk:[209,217,225],sdio_cmd:[209,217,225],sdio_d0:[209,217,225],sdio_d1:[209,217,225],sdio_d2:[209,217,225],sdio_d3:[209,217,225],sdk:[211,245,247,251,290,297,313,319,328],sdk_appid:28,sdl2:[318,319],sdl:318,sdram:240,sea:38,seal:286,seamless:257,search:[28,53,70,92,94,107,207,210,265,289,301,308,311,312,376],search_cell_tim:28,searcher:165,searchpath:165,seat:[355,360],sec:[38,67,97,106,186,209,376],sec_shop_id:381,second:[6,10,13,35,38,56,66,67,71,89,92,94,96,97,99,101,107,109,113,124,159,166,170,171,172,174,180,186,204,205,208,209,210,218,247,252,263,265,289,298,301,302,323,345,350,360,371,375,376,377,378,379],second_exp:376,secondari:[13,17,159,265,269,270],secondtick:179,secret:[28,54,105,118,251],section:[142,159,170,171,172,209,214,217,252,264,290,315,345,375,376],sector:[12,70,174,196,205],secur:[167,209,257,265,341,376],securit:341,sed:159,see:[3,71,92,106,113,131,133,159,163,175,184,188,189,190,193,194,195,200,201,202,204,207,209,210,211,215,217,218,227,232,245,247,251,252,269,289,291,298,301,350,355,360,371,375,376,382],seeall:378,seed:376,seek:[28,29,165,200,201,202,331],seek_cur:[29,133],seek_end:[29,133],seek_set:[29,133,331],seem:[290,376],seen:[166,182,193,194,195,204,209,251,291,328,375],seg10:227,seg11:227,seg12:227,seg13:227,seg14:227,seg15:227,seg16:227,seg17:227,seg18:227,seg19:227,seg1:227,seg20:227,seg21:227,seg22:227,seg23:227,seg24:227,seg25:227,seg26:227,seg27:227,seg28:227,seg29:227,seg2:227,seg30:227,seg31:227,seg3:227,seg4:227,seg5:227,seg6:227,seg7:227,seg8:227,seg9:227,seg:28,seg_data:53,seg_mark:28,seg_set:28,segment:[28,72,77,78,118,130,159,226,290,296,376],select:[9,12,18,20,23,35,49,53,65,67,72,77,78,82,83,85,87,89,92,93,110,111,113,115,124,125,128,130,135,160,165,173,180,185,188,189,190,191,193,194,195,196,203,204,207,209,210,214,217,218,224,225,226,228,235,240,245,246,247,250,251,265,268,269,281,282,286,290,291,297,298,301,315,316,344,349,352,353,360,364,370,371,378],selector:[135,160],self:[58,71,135,160,247,254,266,281,290,291,297,311,312,317,355,357,360,363,366,376],sell:159,sem:328,semant:376,semaphor:328,semicircl:159,semicolon:376,send:[10,28,32,37,53,54,62,63,65,72,73,77,78,87,92,93,96,104,113,120,121,124,125,132,159,173,174,192,193,194,195,199,203,205,209,217,218,250,263,265,270,290,302,321,323,330,332,334,339,340,342,345,350,351,377,378],send_buf:339,send_buff:53,send_data:28,send_finish:377,send_msg:28,send_ok:127,sendbuff:[28,200,201,202],senddisplaydata:53,sender:132,sendind:28,sendlen:[193,194,195],sendmsg:[28,59],sendnec:[28,65,338],sendnotifi:28,sendqueu:[209,217],sens:[4,109],sensit:[71,371,376],sensor:[25,28,53,71,88,91,118,120,123,162,170,171,172,206,209,217,226,235,265,266,290,291],sent:[25,26,32,59,62,72,92,93,104,109,112,113,115,120,125,127,130,159,199,250,265,290,302,330,331,338,339,345,352],sentenc:[209,217,252,266,376],sep:[165,375],separ:[28,38,92,159,170,171,172,247,254,323,336,345,351,353,375,376,378,379],separator_posit:159,septemb:[120,159],sequenc:[28,65,113,118,159,192,199,200,201,202,209,217,339,340,360,376,390],ser1:159,ser2:159,ser:159,seri:[0,26,100,101,104,106,131,133,135,160,204,206,209,211,217,218,224,225,226,228,235,245,247,250,251,252,266,289,290,298,310,316,331,352,353,355,357,363,364,375,376,378,381,382,390,392],serial:[3,12,18,28,33,38,70,72,77,89,92,93,104,113,118,130,132,163,170,171,172,174,188,189,190,192,193,194,195,199,203,205,206,209,214,217,222,228,231,235,240,245,246,247,264,265,269,281,282,283,286,290,297,298,308,323,339,340,341,345,351,353,355,358,360,369,371,372,376,377,382,395,401],series_t:159,seriou:92,serv:[92,159,265],server:[10,18,23,28,37,53,54,56,57,58,71,93,96,105,113,118,130,263,266,274,376],server_cert:[18,28,53,93],servic:[24,35,57,80,92,96,247,252,265,272,316,376,381,382],session:93,set:[0,1,3,5,9,12,13,28,30,34,35,36,38,42,48,53,56,62,67,70,76,77,78,84,85,86,87,89,92,93,94,96,99,100,101,104,107,109,112,113,115,116,120,124,125,127,128,130,131,132,135,160,169,174,179,180,182,183,184,186,187,204,205,207,209,211,215,217,218,222,223,228,229,231,245,247,250,251,257,265,266,268,269,290,291,297,298,314,315,317,322,323,328,329,331,337,339,340,341,345,349,351,353,355,358,366,370,371,372,373,374,375,376,378],set_accepted_char:159,set_act:159,set_align:159,set_angle_offset:159,set_anim_tim:159,set_arc_length:159,set_bit_mask:53,set_btn_ctrl:159,set_btn_ctrl_al:159,set_btn_width:159,set_btns_po:159,set_cell_merge_right_t:159,set_cell_typ:159,set_channel:28,set_check:159,set_color:159,set_color_mod:159,set_color_mode_fix:159,set_ctrl_map:159,set_cursor_blink_tim:159,set_cursor_click_po:159,set_cursor_hidden:159,set_cursor_manag:159,set_cursor_po:159,set_day_nam:159,set_dir:159,set_edge_flash:159,set_highlighted_d:159,set_hsv:159,set_hu:159,set_id:28,set_map:159,set_max_height:159,set_max_length:159,set_mirror:159,set_mod:[53,159],set_month_nam:159,set_one_check:159,set_one_lin:159,set_opt:159,set_placeholder_text:159,set_pwd_mod:159,set_pwd_show_tim:159,set_recolor:159,set_rxconfig:28,set_scal:159,set_scrollbar_mod:159,set_select:159,set_set_i:376,set_show_select:159,set_spin_tim:159,set_src:159,set_src_til:159,set_stat:159,set_static_opt:159,set_static_text:159,set_symbol:159,set_tab_act:159,set_text:159,set_text_align:159,set_text_label:159,set_text_sel:159,set_tile_act:159,set_tim:[42,53],set_today_d:159,set_txconfig:28,set_typ:159,set_usbclock:248,set_valid_posit:159,set_valu:159,set_visible_row_count:159,set_width:159,set_xxx:159,setapnet:341,setauto:28,setband:28,setbaseyear:28,setbitmapmod:28,setblinktim:53,setbootcfun:28,setbright:53,setbu:28,setcap:28,setcfun:28,setchr:28,setclk:[28,177,178],setcolor:28,setcontrast:28,setctx:28,setdefaultpul:28,setdelai:28,setdn:28,setdrawcolor:28,setedrx:28,setedrxptw:28,setfont:[14,28,168,209,217,316],setfontmod:28,setframebuff:[28,109],setgpio:28,sethook:165,setjmp:376,setlevel:[28,176],setlight:53,setloc:165,setlocal:165,setmac:28,setmetat:[165,333],setmod:28,setnewsmscb:[28,120],setpath:28,setpaus:376,setpin:265,setpix:331,setpowersav:28,setpsm:28,setrang:28,setstanet:341,setstat:53,setstepmul:376,setstrt:252,sett:[28,265],settable_ev:376,settimeout:28,settz:28,setup0_process:252,setup:[12,28,38,39,40,41,43,44,45,46,47,48,50,52,53,55,60,61,62,63,64,65,68,69,70,73,74,75,79,91,94,100,101,104,116,131,132,159,163,170,171,172,175,177,178,192,193,194,195,199,200,201,202,209,210,217,265,269,328,337,339,340,345,360,371],setupbreatel:53,setupbuff:28,setupdevic:345,setupr:[170,171,172,193,194,195],setupvalu:165,setuservalu:165,setuuid:28,setvbuf:165,setwin:28,setxtal:28,seven:159,sever:[71,89,133,135,160,199,200,201,202,204,209,217,218,290,302,320,353,369,373,375,376],sfd:[28,118,174,205],sfdp:[188,189,190],sfud:[28,118,174,205,221,274,290,293],sfud_devic:[111,209,217],sfuddevic:[188,189,190],sgm2019:225,sh1106:124,sh1107:124,sh1108:124,sh:299,sha1:[28,31,105,167,279],sha1_stream:6,sha256:[28,31,167,272,308],sha256_stream:6,sha384:272,sha512:[28,167],sha:[272,279],shadow:[124,159],shake:[20,34,101,204,265],shall:[38,159,218,247,279,303,309],shape:[2,133,159,376],share:[30,65,208,209,217,341,342,364,369,376],sheet:[67,193,194,195,215,246,249,251,294,295,297],sheet_1:[166,184],shell:[353,391],shget:318,shield:[53,320],shift595:53,shift:[28,72,125,244,270,353,355,358,360,371,372,376],shipment:245,shop:[215,222,228,251,297],short_src:376,shortcut:[207,317,376],shorten:[96,159],shortest:376,shot:197,should:[2,5,15,38,77,78,92,113,115,124,131,159,198,207,209,211,215,217,218,235,252,265,266,269,281,286,303,320,323,324,326,333,375,376,378,391],show:[28,58,76,135,160,175,209,235,316,323,353,360,369,371,375,376],show_520:162,show_520_h:162,show_520_w:162,show_data:162,showimag:28,shown:[65,199,209,210,211,245,246,247,252,279,281,298,355,357,366,375],shown_dat:159,showonlin:207,shrink:[159,376],sht30:[25,209,217],shunt:357,shunt_voltag:52,shut:[174,196,205,235,369,373,376],shutdown:[18,28,54,89,93,130,159,235,252],si24r1:53,si24r1test:73,si:62,sibl:376,side:[10,72,105,113,115,159,247,289,355,357,373,375,376],sieg:162,sig:28,sigma:297,sign:[19,28,133,159,345,375,376],signal:[9,25,38,63,65,72,87,92,131,166,193,194,195,209,217,218,235,252,263,281,337,341,376],signatur:[19,105,167,265],signifi:375,significantli:218,silenc:176,silent:[84,176],silk:100,sim0:[92,265],sim1:92,sim:[92,120,265],sim_ind:[92,378,379],sim_pin:120,sim_wc:[92,120],simerr:66,simid:28,similar:[10,17,25,31,37,113,124,125,133,159,169,188,189,190,209,211,217,245,279,298,320,328,349,369,375,376],similarli:[159,300,307,375,376,377],simpin:28,simpl:[6,23,71,92,104,130,135,160,162,163,170,171,172,187,209,217,252,265,281,290,304,308,337,345,346,347,371,374,376,378],simpler:265,simplest:[18,93,346,348,375,379],simpli:[107,159,182,183,184,209,217,298,375,376,378],simplifi:[119,159,204,323,375,376,382],simsun_48:159,simul:[25,28,87,118,124,127,159,269,290,299,308,352,366,369,371,373,380],sin:[165,297],sinc:[15,19,65,133,159,207,209,245,247,251,252,265,281,286,298,353,355,360,366,376,377,391],sincer:353,sine:[218,369,376],singl:[7,30,35,38,57,65,87,91,93,103,104,109,130,135,160,174,205,209,217,247,252,265,270,271,290,297,323,327,328,330,349,371,375,376,377,378],singleshow:53,sinh:376,sink:247,sint:159,sit:159,site0:23,situat:[125,128,204,218,252,266,302,369,376],six:[6,53,159,360],sixth:[56,375],siyuan:324,size:[3,6,11,12,16,23,26,28,29,72,85,86,90,96,99,107,120,125,133,135,160,165,169,188,189,190,193,194,195,209,214,217,221,222,224,231,234,240,244,247,250,251,253,261,262,263,264,265,266,279,281,284,286,290,293,315,316,321,324,327,334,336,340,342,344,351,352],size_t:[99,301,324,326,327,328,330,345,376],sizeof:[133,302,332],skei:28,skill:345,skip:[29,115,159,200,201,202,315,375,378],slave:[26,65,96,115,170,171,172,192,209,217,240,252,269,297,339],slaveaddr:28,sleep1:[263,329],sleep2:[263,269,329],sleep:[28,70,85,86,101,107,125,181,208,218,223,229,250,257,264,265,269,290,297,329],sleepcount:297,slice:[281,376],slide:159,slider:[135,160],slider_:159,slider_cr:159,slider_demo:159,slider_get_valu:159,slider_part_bg:159,slider_part_ind:159,slider_part_knob:159,slider_set:159,slider_set_rang:159,slider_type_:159,slider_type_norm:159,slider_type_rang:159,slider_type_symmetr:159,slightli:[159,182,183,184,210,369,375],slip:355,slogan:113,slot:[92,286,376],slow:[1,25,46,63,105,159,204,207,209,217,247,252,281,286,289,324],slower:[25,90,92,159,210,274,291],slowli:[166,376],sm1:251,sm2:[19,265],sm2decrypt:28,sm2encrypt:28,sm2sign:28,sm2verifi:28,sm3:[28,251,265],sm3hmac:28,sm3updat:19,sm4:[19,251,265],sm4decrypt:28,sm4encrypt:28,sm7:251,sm:[28,92,118,265,270,272,291],small:[3,4,110,113,115,125,133,159,182,183,184,205,208,217,247,262,264,265,266,269,270,286,352,353,355,357,360,364,369,371,376,378,380],smaller:[11,92,159,247,375,376],smallest:[355,374,376],smart:[208,250,290],smartconfig:28,smartphon:159,smartpro:252,smartwatch:159,smd:257,smooth:159,smoothli:[209,217],sms_only_regist:92,sms_only_registered_roam:92,sn:28,snail:341,snap:[159,390],snippet:[265,376],snowman:124,snq:92,snr:[28,38,120],sntp:[28,120,263,265],sntp_connect:265,sntp_server:28,so:[4,15,62,72,76,92,100,101,110,117,120,121,125,132,133,159,162,166,167,168,174,204,207,209,217,218,235,245,247,252,262,263,265,269,282,289,291,298,302,327,328,344,349,352,360,366,369,370,373,375,376,378],soc:[1,72,77,89,113,125,135,159,160,161,163,164,169,176,197,198,204,207,209,211,223,228,229,236,245,266,268,282,285,290,309,311,312,315,316,317,346,347,348,351,382],soc_air101_v0008:309,soc_download:351,soc_v0001_esp32c3_rc2:285,soc_v0005_air105:236,soc_v0007_air101:223,soc_v0007_air103:229,soc_v0017_air101:[72,77],soc_v1001_ec618:315,soc_v1105_ec618:266,soc_v1105_ec618_ful:266,soc_v1105_ec618_tt:266,soc_v1108_ec618:266,soc_v1108_ec618_cloud:266,soc_v1108_ec618_ful:266,soc_v1108_ec618_tt:266,soc_v1108_ec618_tts_onchip:266,socket:[10,18,28,53,93,118,121,128,130,263,265,266,293,303,323,345,350,355,360,377],socket_ctrl:113,soft:[91,250,262,270,290,366],soft_kb_inc:114,softap:257,softi2c:25,softkb:28,softkeyboard:[28,118],softspidevic:115,softwar:[1,9,25,28,35,53,63,67,101,115,118,120,124,125,173,174,180,185,191,196,203,205,207,218,221,235,246,247,248,250,251,257,265,268,269,281,290,297,321,330,334,342,351,360,364,371,376],solari:376,sold:[355,357,360,384],solder:[282,286],solid:[124,247],solut:[38,209,217,250,252,265,268,290,315,321,334,342,369,374],solv:[13,17,25,100,211,218,245,252,265,298,302,316,317,336,375],some:[0,20,25,28,29,66,71,92,96,100,101,106,107,113,116,118,124,129,131,135,142,159,161,177,178,179,181,186,193,194,195,204,207,209,210,211,235,247,250,251,263,265,269,274,282,290,302,304,308,311,329,345,349,355,357,360,366,369,370,373,375,376,377,380],someon:376,someth:[15,58,119,159,207,209,217,322,375,376],sometim:[11,159,265,366,375,376],somewhat:376,song:168,soni:338,soon:[10,333],sop:369,sort:[159,165,264,272,320,336,375],sound:[1,4,264,265],sourc:[10,27,30,89,96,97,132,135,160,162,186,188,189,190,206,208,209,214,218,226,235,250,251,265,266,270,281,286,289,290,292,297,301,318,328,336,338,349,353,355,360,374,375,376,377,378],source_32k:28,source_main:28,source_sans_16:324,south:38,sp:240,space:[4,12,13,14,15,17,25,58,117,124,125,127,133,159,162,193,194,195,244,252,266,270,282,291,301,311,315,317,345,375,376],spacer:375,spacer_posit:159,spare:330,spawn:376,spe:[250,290],speak:[105,159,177,178,211,375],speaker:[1,264,274],spec_v1:193,special:[10,21,28,92,98,101,118,131,159,177,178,179,181,207,247,265,274,284,288,290,291,315,317,320,345,346,347,369,375,376],specif:[0,9,15,19,22,25,26,35,36,56,58,80,85,86,89,92,98,108,119,159,166,174,191,205,209,211,217,230,235,240,245,250,251,255,265,270,281,286,290,298,309,310,315,316,322,323,327,328,331,342,344,349,353,357,360,364,366,373,375,376],specifi:[1,3,6,7,9,15,29,35,38,71,72,77,78,87,94,96,98,99,101,103,104,111,113,115,117,119,121,122,124,131,133,159,174,196,198,205,263,265,290,321,323,324,331,334,335,341,342,345,353,355,366,371,375,376],specification_v1:[182,255],specified_script_:376,specimen:159,speech:[268,290],speed:[1,12,17,28,38,89,115,135,160,170,171,172,192,193,194,195,204,207,208,209,211,217,218,240,245,246,247,265,268,279,281,286,289,290,298,351,358,369,372,375,376],speed_knot:38,speed_kph:38,spell:381,spend:378,spent:378,spi0:[9,35,115,209,264,269],spi0_c:[225,269],spi0_clk:[225,235],spi0_csn:235,spi0_miso:[225,235,269],spi0_mosi:[225,235,269],spi0_scl:269,spi1:[115,252,269],spi1_c:[225,269],spi1_clk:225,spi1_csn:235,spi1_miso:[225,235,269],spi1_mosi:[225,235,269],spi1_sck:235,spi1_scl:269,spi2:115,spi2_c:281,spi2_ck:281,spi2_csn:235,spi2_miso:[235,281],spi2_mosi:[235,281],spi2_sck:235,spi3:115,spi4:115,spi5:231,spi5_clk:235,spi5_csn:235,spi5_miso:235,spi5_mosi:235,spi:[9,12,14,21,22,28,35,62,65,70,73,85,86,89,109,118,124,128,162,163,174,175,187,191,205,206,215,221,235,240,250,257,264,265,266,268,270,274,279,284,286,290,293,297,308,334,335,342,345,349,350,351,395,401],spi_0:[65,115,128],spi_12s_flag_bsi:252,spi_12s_flag_tx:252,spi_12s_getflagstatu:252,spi_1:115,spi_2:115,spi_2c:124,spi_3:115,spi_4:115,spi_bandr:28,spi_c:[28,62,124,188,193,194,220,242],spi_clk:[188,193,194,242],spi_cmd:252,spi_dc:124,spi_devic:[15,28,58,209,217],spi_eink:9,spi_flash:[188,189,190,193,194,195,209,217],spi_hw_4pin:124,spi_i25_dmareq_rx:252,spi_i2s_dmacmd:252,spi_i2s_dmareq_tx:252,spi_i2s_flag_bsi:252,spi_i2s_flag_rxn:252,spi_i2s_flag_tx:252,spi_i2s_getflagstatu:252,spi_i2s_receivedata:252,spi_i2s_senddata:252,spi_id:[9,28,53,86,115,124,339],spi_lcd:[35,163,209,217],spi_lora:86,spi_mcp2515:62,spi_miso:[62,65,188,193,194,220,242],spi_mosi:[62,188,193,194,220,242],spi_r:124,spi_rc522:70,spi_sck:[62,220],spi_si24r1:73,spi_spe:28,spic:124,spiclk:281,spiconfig:28,spics0:281,spid:281,spidevic:345,spidon:115,spiflash:[15,58,107,188,189,190,193,194,195],spihd:281,spiid:[12,28,163,188,189,190,193,194,195,339],spiid_or_spidevic:28,spinbox:[135,160],spinbox_cr:159,spinbox_decr:159,spinbox_decrement_event_cb:159,spinbox_demo:159,spinbox_incr:159,spinbox_increment_event_cb:159,spinbox_part_bg:159,spinbox_part_cursor:159,spinbox_set_digit_format:159,spinbox_set_padding_left:159,spinbox_set_rang:159,spinbox_set_step:159,spinbox_set_valu:159,spinbox_step_prev:159,spinner:[135,160],spinner_:159,spinner_cr:159,spinner_demo:159,spinner_part_bg:159,spinner_part_ind:159,spinner_type_:159,spinner_type_constant_arc:159,spinner_type_fillspin_arc:159,spinner_type_spinning_arc:159,spiq:281,spiwp:281,spix:252,spk:264,spl06:53,spl06_01:53,spl06_data:74,splice:[209,217],split:[28,135,160,376,378],spot:[87,289,341],spr_i2s_cetflagstatu:252,sprinkl:235,sprintf:376,sqrt:165,squar:[20,87,159,209,217,297,376],sram:[240,252,257,286,297,311],src:[159,307,309,311,312,317],srv:96,srv_uuid:28,ss:377,ssd1306:[124,168,209,307,308],ssd1306_128x32:124,ssd1309:124,ssd1322:124,ssi:297,ssid:[28,341],ssl:[18,28,113,265,272],ssllog:28,st7565:265,st7567:124,st7735:[35,163,175,209,290,307,308,398],st7735v:35,st7789:[35,395],st7796:35,st:252,sta:[18,93,113,130,131,341],stabil:[89,218,235,265],stabl:[247,263,353,364,369,371,376],stabli:[247,252],stack:[92,113,165,206,265,301,302,320,322,323],stack_to:376,staff:[381,384],stage:[126,159,286,351,352,376],stagger:92,stai:[252,369,376,378],staip:28,stamp:[281,286],stand:[159,376],standalon:[323,376],standard:[19,26,38,62,65,113,133,165,235,250,265,274,290,323,328,331,333,349,353,360,375],standbi:[85,86,92,107,208,270,369],standi:28,star:[25,301,391],start2:28,start:[0,5,9,10,15,20,25,28,29,35,37,38,53,58,92,93,94,96,101,107,108,109,110,111,113,115,124,130,131,135,160,163,166,168,174,188,189,190,193,194,195,198,199,200,201,202,204,205,209,211,218,220,221,225,235,252,265,274,290,297,299,302,305,308,311,312,317,321,323,324,328,333,334,341,342,345,351,352,353,355,366,376,377,378],start_angl:159,start_auto_clos:159,startraw:28,startswith:28,startup:[1,10,89,92,174,180,204,205,214,245,269,279,290,298,302,330,341,376],stat:[92,130,376],state:[20,28,34,38,53,70,92,95,101,113,114,118,119,120,132,133,135,160,204,208,218,235,250,263,265,269,290,291,298,321,334,337,342,345,357,366,369,375,376,377,378],state_check:159,state_default:159,state_disconnect:93,state_focus:159,state_mqtt:93,state_press:159,state_readi:93,state_sconnect:93,statem:[28,118,291,293],statement:[17,38,100,104,165,265,266,272,302,315,323],statement_:376,statements_and:376,station:[53,92,94,120,131,210,257,263,265,311,312,317,341,352,382],statist:[92,120,265,360,376],statu:[13,23,26,28,30,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,67,68,69,70,71,72,73,74,75,76,77,78,79,81,82,83,89,93,94,97,104,112,113,114,120,122,126,128,135,160,165,170,171,172,187,188,189,190,217,220,225,252,265,269,279,321,334,341,342,345,363,378,379],status:378,status_cod:333,stderr:376,stdin:[328,376],stdint:211,stdout:[328,376],step:[87,101,159,169,174,200,201,202,205,207,252,286,288,290,315,317,323,353,357,375,376],stepin:323,stepout:323,stick:[355,375],sticker:355,still:[1,22,71,101,113,125,126,130,159,169,209,217,250,265,266,269,274,282,289,290,291,299,315,316,323,332,353,355,375,376],stm32cubeprogramm:252,stm32f103c6t6:251,stm32f103c8t6:251,stm8:371,stmflashload:252,stock:390,stop:[28,63,89,101,125,131,159,174,199,200,201,202,205,209,217,245,250,251,281,286,290,298,302,321,329,330,334,340,341,342,373,375,376,379],stop_bit:28,stopap:28,storag:[15,58,159,169,235,263,324,344,376],store:[1,3,4,11,14,15,26,30,58,65,71,90,113,115,125,127,159,169,208,274,309,325,334,336,344,346,347,348,349,355,360,366,375,376,378,379,381],storge_loc:[28,53],stori:308,str1:375,str2:375,str3:375,str4:375,str:[3,28,133,168,209,217,331,340,375,376],straightforward:[274,376],strategi:[159,376],strawberri:[292,353,358,369,371,372],strcmp:159,stream:[3,28,90,133,163,265,325,376],strength:[92,131,341,378],stress:[87,89],stretch:159,strftime:[97,376],strict:252,strictli:[345,355,360,370,373,376],string:[1,2,3,4,6,7,9,11,12,13,14,15,16,17,18,19,20,22,23,24,25,26,27,28,29,31,33,35,37,38,47,51,54,56,57,58,59,62,65,66,70,71,73,78,80,81,83,84,85,86,87,89,90,92,93,94,95,96,97,98,102,104,105,107,108,109,110,111,112,113,115,118,119,120,121,124,125,126,127,128,130,131,132,133,134,159,165,169,170,171,172,174,180,188,189,190,192,193,194,195,203,205,209,217,265,274,301,317,323,331,345,346,347,351,377,378],string_:376,string_can:376,stringdata:169,strip:165,strong:[28,118,159,235,376],strongli:[122,264,311,312,328],strt:252,strtoll:[28,265],struct:[302,324,327,332,336,343,376],structur:[4,6,89,110,111,159,165,206,300,302,311,312,315,317,320,321,334,342,375,378],stuck:[109,286],studi:[209,217,247,375,380],studio:[207,319],sty_en:28,sty_zh:28,style:[28,135,160,168,174,205,265,268,290,321,334,342,360,376],style_cr:[28,159],style_delet:28,style_init:[87,159],style_lin:159,style_list:87,style_list_cr:28,style_list_delet:28,style_list_t:28,style_screen_label4_main:159,style_screen_label_main:159,style_set_image_recolor:159,style_set_image_recolor_opa:159,style_set_line_color:159,style_set_line_round:159,style_set_line_width:159,style_set_text_color:159,style_set_text_font:159,style_t:[28,159],su:[159,272],sub:[25,121,159,165,209,217],subcallback:[377,378],subchr:28,subject:[87,93,376],sublibrari:376,submask:28,submiss:342,submit:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,114,115,116,117,119,121,122,123,124,125,126,127,128,129,130,131,132,133,134,327],submodul:[313,376],subnet:[128,341],subroutin:375,subscrib:[28,34,38,49,50,53,62,85,86,92,96,113,114,120,123,131,174,205,209,217,302,377,378],subscript:[54,92,96,133,302,350,378,379],subsequ:[35,101,113,115,124,125,133,159,188,189,190,245,252,375,376],subset:376,substandard:375,substitut:376,substr:[375,376],subsystem:240,subtl:38,subtract:[2,159,266,375,376],subtyp:376,succ:[15,25,26,92,113,115],succe:[112,232,330,376],succeed:[27,101,376],success:[1,3,4,6,7,9,11,12,13,15,16,17,18,19,20,21,24,25,26,27,29,33,35,36,38,39,40,41,43,45,47,48,50,52,55,56,57,58,59,61,63,64,67,68,69,71,73,74,75,76,79,82,83,86,87,88,89,90,91,92,93,94,95,96,97,98,101,102,103,105,106,108,109,110,111,112,113,115,116,120,121,123,124,125,127,129,130,131,132,133,166,169,170,171,172,188,189,190,211,240,245,252,263,265,315,316,317,330,339,340,341,345,357,376,378],successfulli:[1,3,15,29,56,65,73,93,94,96,101,105,110,113,115,131,133,188,189,190,209,252,265,282,286,308,316,339,340,345,351,375,376,379],sudo:[163,318],suffici:[90,125,252,376],suffix:[28,209,217,266,271,311,312,332,344,376],sugar:376,suggest:[159,300,301,369,376],suit:[6,268,290,352],suitabl:[9,38,89,115,159,162,247,269,279,315,317,332,374,375,376,382],sum:[159,375,376],summari:[290,291,345,346,347],sundai:[67,376],sunt:159,super_mario:95,superimpos:369,superpro:252,supplement:[107,121,240,376],supplementari:[293,323,375],suppli:[0,1,65,101,159,166,186,209,217,218,234,247,263,284,288,289,290,297,308,353,360,363,364,369,371,376,390],supplier:353,support:[0,1,4,5,6,9,12,13,14,17,18,20,21,22,23,24,25,26,28,33,35,36,38,49,53,56,57,63,65,66,71,78,85,87,89,90,92,96,101,103,104,105,106,110,112,113,115,116,117,118,120,123,124,125,126,127,129,131,134,135,160,162,165,179,188,189,190,193,194,195,204,208,209,214,217,226,230,235,240,246,247,250,251,254,257,262,263,264,265,266,269,270,272,274,279,281,286,290,296,297,299,301,309,316,320,321,324,328,330,331,334,336,338,342,345,349,352,353,355,360,363,364,370,371,373,375,377,378,382,392],support_empti:376,suppos:[159,300,375,376,378],sure:[29,35,56,87,96,120,159,209,217,218,232,266,269,271,301,308,315,316,355,375,376],surg:[235,355,369,375],surpris:375,surround:[193,194,195,376],suspend:[209,217,252,281,321,334,342,376,377,378,379],svc_handler:211,svd:291,svn:303,svr_uuid:28,sw1:159,sw2:159,sw:[211,245,247,250,290,298],swap:[28,376],swclk:[211,215,252],swd:[211,214,245,247,252,290,297],swd_clk:[245,246,298],swd_dio:[245,246,298],swdclk:[245,246,298],swdio:[211,215,245,246,252,298],swing:[135,160],swipe:[159,265,308,317,349],switch_:159,switch_creat:159,switch_demo:159,switch_get_st:159,switch_off:159,switch_on:159,switch_part_bg:159,switch_part_ind:159,switch_part_knob:159,switch_toggl:159,swm181:[290,294,295,296,297],swm181_lib:297,swm181_pcb:[290,296],swm181cbt6:[290,294,295],swm181xb:298,swm81:297,sx1268:[85,86],sxx32:252,sxx32f103:[250,251,290],sxx32f1xx:[250,290],sxx32f1xx_dfp:252,sxx32f1xx_hal_msp:252,sy:[9,15,20,22,23,25,26,28,34,35,38,39,40,41,42,43,44,45,46,47,48,49,50,52,54,55,56,57,58,60,61,62,63,64,65,66,68,69,70,71,72,73,74,75,76,77,78,79,81,82,83,85,86,87,89,91,92,94,96,101,103,107,109,113,114,115,118,123,129,130,131,159,162,163,166,168,169,170,171,172,174,177,178,179,182,183,184,186,187,188,189,190,192,193,194,195,199,200,201,202,205,209,217,266,299,300,302,318,319,321,330,334,340,342,344,345,349,377,378],symbol:[1,4,9,35,99,124,133,135,160,247,291,315,332,345,350,366,375,376],symbol_:159,symbol_backspac:159,symbol_battery_ful:159,symbol_bel:159,symbol_clos:159,symbol_directori:159,symbol_dummi:159,symbol_edit:159,symbol_fil:159,symbol_left:159,symbol_minu:159,symbol_ok:159,symbol_plu:159,symbol_right:159,symbol_sav:159,symbol_set:159,symbtimeout:[85,86],symmetr:[6,159,167],symmetri:[135,160,297],sync:240,synchron:[53,113,120,170,171,172,192,193,194,195,209,217,218,252,328,351,353,358,371,372],synergi:165,syntact:376,syntax:[165,301,305,345,374,375],synthes:[274,308],synthesi:[271,274,321,334,342],synwit:298,sys_pub:[333,342],sys_send:[59,121],sys_wait:[113,121],syscfg:211,sysplu:[9,23,28,59,118,266],syst:18,system:[6,10,11,12,15,28,29,30,38,56,57,58,87,90,92,97,107,108,111,118,135,160,165,174,191,197,204,205,208,209,211,217,221,235,240,244,245,247,250,251,261,263,265,268,269,281,286,290,297,298,299,302,319,320,321,322,324,326,334,342,343,344,346,347,351,382],system_air001xx:[214,290],systemclock_config:211,systemcoreclock:298,systeminit:298,systick_config:298,systick_handl:[211,298],sz:[124,376],t0h:28,t0l:28,t1:[0,165],t1h:28,t1l:28,t2:[0,165],t3324:[92,94],t3412:94,t5:274,t9000:252,t:[9,12,17,21,24,25,28,41,44,47,57,58,71,74,89,92,97,106,108,109,110,113,159,162,163,165,186,200,201,202,207,209,217,218,245,250,266,274,289,290,298,299,302,311,312,317,330,333,337,345,346,348,353,355,360,375,378],ta1:159,ta:159,ta_cursor_last:159,ta_event_cb:159,ta_loc:159,ta_set_edge_flash:159,ta_set_insert_replac:159,ta_set_scroll_propag:159,ta_temp:28,tab1:159,tab2:159,tab3:159,tab:[28,135,160,209,245,247,298,369],tab_pag:159,tab_pos_top:159,tabal:23,tabl:[1,3,6,8,9,12,13,14,17,18,23,24,25,27,29,33,35,37,38,40,41,43,46,47,48,52,54,55,57,60,61,62,63,64,65,67,69,70,71,74,75,77,78,79,80,85,86,89,90,91,92,93,94,96,97,101,102,106,111,113,114,117,121,124,125,126,130,131,133,135,160,165,169,174,191,205,209,217,221,226,233,235,243,260,265,269,272,281,282,286,290,300,302,322,332,333,336,344,345,350,351,357,358,366,369,372,378],table_:376,table_cell_style_cnt:159,table_cr:159,table_demo:159,table_i:376,table_part_bg:159,table_part_cell1:159,table_part_cell2:159,table_part_cell3:159,table_part_cell4:159,table_ref:376,table_set_cell_align:159,table_set_cell_crop:159,table_set_cell_typ:159,table_set_cell_valu:159,table_set_col_cnt:159,table_set_col_width:159,table_set_row_cnt:159,table_typ:159,tableconstructor:376,tabul:376,tabview:[135,160],tabview_:159,tabview_add_tab:159,tabview_cr:159,tabview_demo:159,tabview_part_bg:159,tabview_part_bg_scrl:159,tabview_part_ind:159,tabview_part_tab_bg:159,tabview_part_tab_btn:159,tabview_set_tab_nam:159,tabview_tab_pos_non:159,tac:28,tag:[28,109,135,160,188,189,190,265,345,349,376,378],tagtyp:70,tail:[4,117,331,376],tailor:375,take:[0,3,10,30,71,84,88,91,92,101,102,113,133,159,162,163,165,193,194,195,232,252,265,266,274,301,302,311,312,315,317,320,327,331,333,350,351,352,355,357,363,373,375,378],taken:[9,71,87,124],talk:[159,163,376],tamb:235,tan:165,tangent:376,tanh:376,taobao:[215,222,228,247,251,261,297,353,369,371,384,395,398,401,404],tar:376,target:[27,28,37,38,97,188,189,190,211,245,265,266,269,271,298,317,360,369,375,376],task1:[121,379],task1_don:379,task2:379,task3:379,task:[17,23,59,66,71,94,119,121,174,205,206,265,321,334,342,345,346,348,375,376,377,378],task_:378,task_a_cnt:378,task_b_cnt:378,task_timer_id_max:378,taskdel:28,taskdisable_interrupt:252,taskexec:302,taskget:302,taskid:378,taskinit:[15,22,23,28,39,40,41,42,43,44,45,46,47,48,50,52,55,57,60,61,62,63,64,65,66,68,69,70,71,72,73,74,75,76,77,78,79,81,82,83,87,92,109,113,131,163,166,168,169,170,171,172,177,178,179,182,183,184,187,188,189,190,192,193,194,195,197,209,217,299,302,318,319,333,340,345,377,378],taskinitex:[28,59],taskl:53,tasklt:53,tasknam:[28,53,113],tasktimerid:378,tasktimerpool:378,tau:94,tautim:28,tax:353,tb:102,tc:[250,290],tcount:119,tcp:[31,93,113,130,265,270],tcptcp:93,tcs3472:53,td:272,tdd:[92,262,270],te:252,teach:[247,282],tear:[289,355],technic:[211,226,245,266,290,291,298,353,371,376],techniqu:375,technolog:[182,183,184],telecom:[112,120,263,265,270,272],tell:[159,375],temp:[46,60,64,71,375],temp_data:163,tempbit:[170,171,172],temperatur:[0,25,28,48,53,64,71,109,118,170,171,172,206,209,217,218,220,225,235,240,242,265,291,330],templat:[211,307,320,376],tempor:159,temporari:[89,309,315,375,376],temporarili:[65,92,113,159,291,375,376],ten:[357,366,376],tencent:[31,51,54,146,254,265],tengxun:[53,265],term:[159,235,263,321,334,342,376,381],term_sequence_to:376,termin:[159,163,252,353,355,369,376,378],test1:197,test2:197,test:[9,19,21,29,31,35,38,57,65,71,72,77,81,89,92,107,131,138,146,149,155,159,166,169,177,178,179,188,189,190,193,194,195,197,199,204,209,210,211,217,218,221,226,232,234,250,265,266,272,284,290,296,307,308,309,324,339,340,345,346,348,353,355,357,363,366,369,371,376,377,378,380,382],test_123123:333,test_data:197,test_json:309,testabl:303,testdemo:377,tester:357,testlbsloc:56,testmsgpub:377,testmsgsub:377,testsm:19,text:[11,90,100,112,124,135,160,205,247,274,315,318,332,352,373,376],text_line_spac:159,textarae_:159,textarea:[135,160],textarea_:159,textarea_add_char:159,textarea_add_text:159,textarea_cr:159,textarea_cursor_down:159,textarea_cursor_left:159,textarea_cursor_right:159,textarea_cursor_up:159,textarea_del_char:159,textarea_get_text:159,textarea_part_cursor:159,textarea_set_scroll_propag:159,textarea_set_text:159,textur:159,texture_atla:159,tf:[12,14,53,108,127,163,209,217,265,349],tf_c:[12,163],tft:[240,291,371,392,395,401],tft_:392,tg_pr:159,tgz:313,th:375,than:[0,5,10,11,25,29,30,32,37,71,80,89,90,92,96,113,119,124,133,159,170,171,172,177,178,179,204,208,209,217,218,240,247,248,250,251,263,265,274,290,291,301,315,328,330,343,355,357,360,366,370,373,375,376,378],thank:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,114,115,116,117,119,121,122,123,124,125,126,127,128,129,130,131,132,133,134,301,366],that_long:376,the_:376,the_act:376,the_al:376,the_bord:376,the_catch_i:376,the_continu:376,the_d_th:376,the_error:376,the_integration_load:376,the_iter:376,the_load:376,the_mag:376,the_meta:376,the_metatable_:376,the_n:376,the_n_catch:376,the_n_equ:376,the_n_her:376,the_n_lay:376,the_n_level:376,the_name_:376,the_not:376,the_pan:376,the_protect:376,the_step:376,the_upp:376,the_y_at:376,thei:[159,167,252,264,317,375,376,378],them:[159,166,245,247,252,265,269,300,323,327,355,357,364,369,375,376,378,381],them_primitive_:376,theme:[54,87,93,135,160],theme_appli:159,theme_get_font_smal:159,theme_set_act:28,theme_spinbox_btn:159,themselv:[317,376],theoret:[209,217],theori:[315,375],therebi:159,therefor:[92,159,252,286,315,328,355,366,376,378],thermal:[286,369],thi:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,138,142,146,149,155,159,160,161,162,164,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,209,210,211,217,218,224,225,226,228,230,232,245,247,248,252,254,263,264,265,266,269,270,271,282,286,289,290,298,300,301,302,304,309,311,312,315,316,317,320,322,323,325,326,327,328,331,333,339,341,343,344,345,349,350,352,355,357,360,363,366,369,370,373,375,376,377,378,379,391],thick:[28,159],thin:[159,375],thinbug:299,thing:[31,159,175,209,217,218,252,263,341,375,376,378],think:[159,209,217,290,350,375],third:[25,56,159,170,171,172,250,290,345,349,360,373,375,376,378,379],third_exp_:376,this_meta:376,those:[92,376,379],though:376,thought:[209,217],thousand:376,thread:[5,94,121,165,265,290,302,314,320,327,341,352,378,379],three:[9,25,31,35,53,65,100,159,162,204,208,209,211,217,235,263,266,291,302,328,331,369,375,376,378],threshold:[28,92,159,209,217],through:[0,3,10,20,25,38,51,71,87,90,92,94,101,111,132,159,187,197,198,200,201,202,204,208,209,210,211,217,218,223,229,235,250,266,274,281,286,290,297,300,308,311,312,321,322,323,324,327,328,330,334,342,349,351,353,355,366,370,375,376,377,378],throughout:[188,189,190,376],thrown:376,thu:[159,208,265,376],ti:247,tick1:28,tick2:28,tick64:[28,179],tick:[20,28,30,38,97,120,135,160,174,180,198,205,211],tick_int_prior:211,tick_per:89,tick_str:89,tickperu:179,ticks1:[177,178,179],ticks2:[177,178,179],tid:[119,197],tie:53,tielview:159,tight:87,tighten:355,tightli:355,tiktok:381,tile1:159,tile2:159,tile3:159,tile:[135,160],tileview:[135,160],tileview_:159,tileview_add_el:159,tileview_cr:159,tileview_demo:159,tileview_set_edge_flash:159,tileview_set_tile_act:159,tileview_set_valid_posit:159,tim1_ch4:252,tim1_etr:252,tim2:[250,290],tim2_ch1_etr:252,tim2_ch2:252,tim2_ch3:252,tim2_ch4:252,tim2_remap:252,tim3_irqhandl:252,tim5:[250,290],tim:[250,290],tim_clearitpendingbit:252,tim_cmd:252,tim_getitstatu:252,tim_it_upd:252,tim_itconfig:252,tim_opmode_singl:252,tim_selectonepulsemod:252,tim_setcount:252,time:[1,3,4,10,11,12,15,20,23,24,26,28,30,32,37,38,42,53,54,56,57,58,65,71,87,89,90,94,96,101,109,112,113,118,119,120,125,127,135,160,162,165,170,171,172,186,193,194,195,209,211,217,218,223,229,232,235,240,245,250,254,263,265,274,281,286,290,298,302,309,316,318,327,328,330,345,355,357,360,369,371,373,375,377,378,379,380],time_m:159,time_t:328,time_tick:28,time_u:28,timea:28,timeb:28,timeout:[23,28,53,58,71,87,93,113,120,176,198,209,217,265,302,327,330,378,379],timeout_tim:265,timer0:30,timer:[17,28,30,42,67,87,101,107,118,119,125,129,165,174,181,199,203,205,209,215,217,221,226,234,240,250,251,265,279,284,290,291,297,302,321,322,327,328,329,334,342,378],timer_handl:302,timer_id:[101,330],timer_start:[28,378],timer_stop:[28,330,378],timerid:378,timerloopstart:[20,28,58,129,197,199,200,201,202,266,377],timerout:330,timerpool:378,timerstart:[28,107,197,209,217,377],timerstop:[28,107,197],timestamp:[6,31,97,106,250,265,290],timezon:[28,94,265],timx:252,tin:286,tinder:366,tinyml:208,tip:[207,299,375],titl:[38,135,160,320],tkip:341,tl:[31,54,113,254,257,265,268,290],tld:[343,349],tm1637:53,tm1638:309,tm1640:53,tm1650:53,tm1650_kcb:78,tm8211:26,tm_hour:48,tm_mdai:48,tm_min:48,tm_mon:48,tm_sec:48,tm_wdai:48,tm_year:48,tmp:[47,117,309],tmpfile:165,tmpname:165,tname:376,to32:28,to64:28,to_:376,to_garbag:376,to_set_:376,tobase32:28,tobase64:[6,28],toc:159,tocod:28,todai:[9,35,124,159,163,375],today_d:159,todo:[34,114,126,136,137,139,140,141,143,147,148,150,151,152,153,154,156,157,158,168,216,237,238,276,278,308,322,323,328,386,394,397,400],togeth:[101,159,263,323,355,357,375,376,384],toggl:[28,159,289,360,370],tohex:[2,11,19,28,56,65,70,89,90,92,96,98,99,102,105,110,128,131,167,177,178,179,187,192,193,194,195,199,209,217,350],toidx:376,tointeg:165,token:[28,71,376],tolumb:375,tone:159,tonumb:[117,165,375],too:[87,100,113,159,166,204,207,218,281,286,302,315,316,317,327,355,357,369,375,376,390],tool:[13,17,89,101,104,159,205,210,215,218,245,250,260,281,290,299,319,320,344,353,364,369,371,375,376,380,382],toolbar:211,toolchain:[315,318],top:[9,35,124,133,159,210,247,274,302,345,360,366,373,376],top_fit_typ:159,topic:[28,53,115,302,333,342,375],toss:282,tostr:[28,165,375],total:[12,13,16,17,23,26,30,38,70,92,107,111,159,166,170,171,172,183,218,240,252,266,279,291,320,321,334,336,342,343,344,351,376,378],total_count:326,total_kb:12,total_len:344,total_sat:38,total_sector:12,totp:[28,265],touch:[28,87,118,120,159,226,247,290,369,375],touch_sensor:230,touchkei:[28,118,230],touchkey_inc:123,tovalu:28,tp:[28,376],tpname:28,trace:[218,235,376,382],traceback:165,traceswo:[250,290],track:[208,263],tradit:[96,115],traffic:92,trail:376,train:92,transceiv:[125,199,200,201,202,209,217],transfer:[28,38,72,132,170,171,172,193,194,195,200,201,202,209,217,250,265,290,302,322,339,358,369,372,376],transfer_done_top:28,transform:[2,20,159,252,375,376],transit:[87,132,159,266],translat:376,transmiss:[25,32,65,92,101,113,115,130,167,170,171,172,199,200,201,202,209,217,240,252,265,266],transmit:[12,92,110,113,115,131,199,200,201,202,208,209,217,252,286,332],transmitt:[199,200,201,202,209,217],transpar:[124,135,160,381],transplant:[247,250,290],transport:113,travers:[376,378],treasur:[353,355],treat:[159,375,376],treatment:376,tree:[35,211,376,383,393,396,399],tri:[92,274,376],trial:26,triangl:124,trick:[357,358],trigger:[20,67,101,107,125,173,174,205,209,217,250,264,290,297,298,302,323,328,337,353,360,366,376],trim:28,trimmer:[135,160],trimtrailingwhitespac:207,triod:[248,251],tripl:[31,93],triplet:31,trng:[28,96],troubl:301,troubleshoot:[221,252,290],troublesom:[71,187,209,217,302,332,333],true_track_degre:38,truli:92,truncat:[29,133,265,349],ts:94,tsl2561:53,tsl2561_data:79,tssop20:214,tstg:235,tt:[26,28,265,266,268,270,290],ttf:159,ttl:[199,200,201,202,281],tts_onchip:266,tube:[53,72,218,369],tune:[30,125],tupl:31,ture:134,turn:[0,1,5,7,10,20,25,27,35,38,49,66,71,77,78,92,93,101,103,107,113,119,123,124,127,129,130,131,159,166,174,181,185,196,204,205,209,211,217,235,247,250,265,281,286,289,290,308,321,334,336,342,353,355,360,370,371,376,379],turnkei:266,turnov:290,tutori:[20,99,115,119,125,133,135,161,173,180,185,191,196,203,207,209,210,214,217,221,226,232,234,243,250,268,284,286,290,291,296,301,310,311,312,317,345,352,355,366,379],tuya:[28,54],tv:218,twai:286,twice:[159,250,265,274,290,375,376,378],twinkl:209,two:[9,12,20,23,35,38,87,89,93,124,159,162,166,170,171,172,174,180,188,189,190,193,194,195,199,203,205,207,209,211,217,219,224,225,226,228,231,235,250,253,257,262,263,264,265,269,281,286,289,290,297,302,315,317,323,336,353,357,366,375,376,378,379,388],tx0:218,tx:[26,28,53,199,200,201,202,209,215,217,245,246,286,298],tx_:113,tx_done:86,tx_hwtimer_id:28,tx_ok:113,tx_pin:28,tx_timeout:86,txbuff:28,txconfig:28,txd:215,txfp:[250,290],txpacket:53,txstat:28,txt:[18,29,38,97,108,112,134,159,188,189,190,209,217,266,317,349],type:[0,1,3,5,7,8,9,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,82,83,84,85,86,87,88,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,108,109,111,112,113,114,115,116,117,119,120,121,122,123,124,125,126,127,128,129,130,131,132,134,135,160,165,169,174,188,189,190,203,205,235,252,264,265,269,274,281,286,289,290,297,309,315,316,321,322,327,331,334,336,342,344,345,346,347,351,355,358,360,369,370,372,373,377,378,379],type_font:316,type_funct:376,type_rect:159,type_si:10,type_thread_:376,type_usr:10,typec:[204,247,281,353,363,370],typedef:[324,332,336,343,376],typic:[1,5,25,36,38,87,89,131,159,209,211,217,218,268,290,358,366,369,372,376],tz:28,u0_rx:281,u0_tx:281,u16:133,u1_rx:[199,200,201,202],u1_tx:[199,200,201,202],u32:133,u4:290,u64:133,u8:133,u8g2:[8,14,28,118,126,168,265,266,270,293,311,316,336],u8g2_font_unifont_t_symbol:124,u8g2_get:28,u8g2_load:28,u:[127,159,165,246,247,382],uart0:[104,125,200,201,202,209,217,218,264,265,269,279,281],uart0_ct:235,uart0_rx:[220,225,235,242,269,281],uart0_tx:[218,220,225,235,242,259,269,281],uart1:[125,174,199,203,205,209,217,264,265,269,281],uart1_ct:235,uart1_rt:235,uart1_rx:[209,217,220,225,235,242,259,269,281],uart1_rxd:269,uart1_tx:[209,217,220,225,235,242,259,269,281],uart2:[38,89,263,264,265,269],uart2_ct:235,uart2_rt:235,uart2_rx:[220,225,235,242,263,269],uart2_tx:[220,225,235,242,269],uart3_ct:235,uart3_rt:235,uart3_rx:[220,225,235],uart3_tx:[220,225,235],uart4_rx:[220,225],uart4_tx:[220,225],uart5_rx:225,uart5_tx:225,uart:[3,28,38,81,89,92,104,118,132,174,177,178,198,205,206,221,235,240,257,263,265,268,279,281,286,290,297,323,327,332,334,335,342,350],uart_br:53,uart_data:92,uart_id:[28,53,125,209,217],uart_recv_id:[209,217],uart_tx:125,uartid:[82,83,199,340],uartimeout:[209,217],uarttask:[209,217],uatt0_rx:259,ubuntu:315,uc1701:124,uco:378,ucs2:27,ucs2b:27,ucs2betoutf8:27,ud:[326,328,345,376],udata:[11,90,165],udelai:28,udisk_attach_sdhc:28,udisk_detach_sdhc:28,udp:[53,113,265,270],udpsrv:53,uev:252,ufont:[28,118],ui:[168,207,266,270,274,318,319,363,371],ui_upd:168,uid:[53,209,217],uint16_t:[252,324,332,336,343],uint32:331,uint32_t:[87,159,211,252,322,324,325,327,329,330,332,336,339,340,343,345],uint64:89,uint64_t:302,uint8:[331,332],uint8_t:[211,252,324,325,328,329,332,336,339,340,343],uion:332,uiot:131,ulink2:252,ullamco:159,ult:165,ultim:262,ultra:[206,247,265,382],unabl:[214,218,265,290,291],unambigu:303,unari:376,unauthor:167,uncertain:376,unchang:[133,378],uncheck:[135,160],uncom:[311,312,317],uncompress:28,uncreat:376,undeclar:375,undefin:376,under:[14,22,24,28,66,71,97,118,159,188,189,190,209,211,218,235,245,265,268,289,290,298,301,315,318,319,323,355,357,371,376],underli:[7,12,22,26,28,29,38,65,87,91,92,100,101,113,118,122,124,129,159,165,181,198,205,264,265,266,301,316,319,328,330,332,352,376,382],underlin:[345,376],underscor:[345,376],understand:[71,128,159,206,269,299,301,355,360,376,377,378],understood:[35,375,378],undervoltag:[240,297],undirect:96,undiscover:96,unequ:[133,376],unexpect:[159,209,217],unfamiliar:378,unfil:67,unfinish:376,unhid:159,unicod:[27,124,159,336,376],unicode_max:336,unicode_min:336,unicode_w:336,unicom:[120,263],unifi:[28,118,159,247,274,344],unifont_t_symbol:14,uniform:[265,324,376],uniformli:[316,376],uninstal:247,union:376,uniqu:[71,89,92,93,128,174,180,205,302,376,378,379],unique_id:[10,28,54,71,92,177,178,179,291],unit:[0,1,7,10,12,13,17,20,23,25,26,36,54,64,85,86,89,92,93,94,96,101,106,109,122,123,125,128,130,166,235,252,265,274,309,330,357,369,373,375,376,378,379],univers:[96,188,189,190,199,200,201,202,204,209,217,231,247,324,360,376],unix:376,unknow:92,unknown:[37,39,40,41,42,43,44,45,46,47,48,49,50,51,52,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,72,73,74,75,76,77,78,79,81,82,83,89,92,94,97,101,112,114,122,126],unknwn:96,unless:[65,101,102,119,122,159,218,263,322,376],unlik:[252,274,300,375,376],unlimit:265,unload:87,unlock:[92,98,391],unnecessari:369,unop:376,unpack:[6,28,118,165,209,217,265,331,333,350,378],unplug:204,unposit:38,unpredict:376,unprotect:[376,378],unreach:376,unread:376,unreason:265,unregist:[92,341],unreli:369,unrepres:376,unrespons:25,unrol:376,unscii:159,unsign:[2,99,133,274,332,350,376],unsignen:133,unsold:252,unstabl:357,unsubchr:28,unsubscrib:[28,53,96,378],unsuccess:290,unsupport:[127,252],until:[5,25,101,113,163,286,323,376,378],unus:[247,378],up:[12,13,17,19,20,22,30,35,62,85,87,92,94,96,101,104,106,110,112,113,115,121,122,131,135,160,165,181,182,183,184,193,194,195,200,201,202,209,211,215,217,220,221,223,225,229,235,240,245,247,250,251,252,257,265,269,281,286,290,297,308,309,323,327,329,336,337,349,353,355,360,366,371,375,378,379,390],upcom:363,updat:[6,15,23,35,66,71,87,89,94,96,120,124,135,160,168,205,210,244,250,252,261,263,265,290,297,308,310,314,315,323,345,366,373,376],updatecellinfo:28,upgrad:[17,28,53,100,107,118,245,246,247,251,257,265,268,274,281,286,290,298,353,355,363,377,382],uplink:92,uplinkb:92,uplinkgb:92,upload:[10,18,71,127,209,210,217],upon:376,upper:[9,35,87,91,124,159,165,207,245,252,355,369,375],uppercas:[6,159,345,375,376],upstream:92,upvalu:376,upvalueid:165,upvaluejoin:165,urg:303,uri:[24,28],url:[28,58,117,265,345,375],urlencod:[23,28],us:[0,1,3,4,5,6,7,8,9,10,12,13,14,15,16,17,20,21,22,23,25,28,29,30,32,33,34,35,38,39,40,41,42,43,45,46,47,48,50,52,53,55,56,57,58,59,60,61,62,63,64,65,66,68,69,70,71,72,73,74,75,76,79,81,82,83,87,89,90,92,93,94,96,97,100,101,104,105,106,107,108,109,113,115,117,118,119,120,122,124,125,128,130,131,132,134,135,159,161,163,165,166,167,168,169,170,171,172,174,175,176,177,178,179,181,182,183,184,186,187,191,192,193,194,195,198,199,203,204,205,207,208,209,210,214,217,218,228,232,235,245,248,250,251,254,255,257,259,263,264,265,266,269,270,271,272,274,282,284,286,289,290,292,296,297,298,299,300,301,303,306,308,309,310,311,312,315,317,318,319,320,321,323,324,325,326,328,333,334,335,336,341,342,343,344,345,346,348,350,351,352,353,355,358,360,364,366,370,371,372,373,374,375,377,378,385,388,390,392,395,398,401,404],usag:[10,19,26,39,40,41,42,43,44,45,46,47,48,49,50,52,55,56,58,60,61,62,63,64,65,66,68,69,70,72,73,74,75,76,77,79,80,81,82,83,89,92,94,96,105,130,131,135,160,174,205,221,250,251,265,290,304,308,332,345,353,355,360,366,371,376,378],usart1_ct:252,usart1_rt:252,usart:[215,250,290],usb:[3,6,12,28,101,113,118,199,200,201,202,204,209,217,234,240,246,250,251,265,269,270,279,281,286,289,290,293,323,352,353,355,358,360,363,364,371,372,373,382],usb_d:281,usb_istr:252,usb_uart:265,usba:247,usbapp:[28,118],usbclk:248,usbdm:252,usbdp:252,use_full_assert:211,use_lvgl_simsun_48:159,use_spiid_init:[188,189,190],use_zbuff:[200,201,202],useless:[0,252,351],user:[1,3,6,10,13,17,18,23,28,32,54,56,58,65,66,78,84,92,93,94,101,107,113,127,159,166,167,169,170,171,172,174,176,177,178,179,188,189,190,193,194,195,198,205,208,209,214,215,233,245,247,252,265,266,269,279,290,297,298,303,306,307,308,320,326,327,328,329,332,333,337,339,340,341,344,345,346,348,353,355,358,360,364,366,369,371,372,376,378,379,381],user_data:113,user_flag:28,user_guide_cn:289,user_msg:197,user_nam:[28,31],user_stop:1,userapn:28,userdata:[4,6,9,13,14,15,17,21,23,27,29,35,37,58,59,86,87,93,110,111,115,124,126,130,132,159,376],userid:54,userkei:54,usernam:[28,92],usim_det:269,using_non_wrapping_output_buf:90,usleep:116,usr:376,usual:[0,12,23,33,36,38,71,87,96,97,98,101,102,104,105,106,107,108,110,113,119,120,122,127,129,132,159,166,175,204,209,217,218,235,266,300,308,311,312,315,316,320,323,327,329,336,343,349,366,369,376],usual_wrap_rul:376,ut:159,utc:[38,97,106,263],utf16:324,utf8:[27,35,120,124,165],utf:[159,165],util:[17,115],utran:92,uuid:[28,290],v0001:107,v0004:344,v0007:[265,344],v0:[169,252],v1002:[265,269],v1016:269,v1020:[256,290],v1021:[256,290],v1103:[263,266,268,269,271,290],v1104:[268,274,290],v1105:[266,268,290],v1106:[262,268,290],v1107:[266,268,290],v1108:[266,268,290],v1112:263,v1120:262,v1:[131,165,166,169,183,188,189,190,194,195,200,201,202,220,225,230,231,233,247,255,264,290,323,353,363,364,366],v2:[9,53,131,165,245,246,247,294,295,297,304,344,353],v32xeaksgtieqxtqgwcldp5aplcnps3k:56,v4:314,v5:[274,317],v:[17,28,38,62,104,131,159,165,169,235,272,274,279,373],va_list:376,val1:[28,165],val2:28,val3:28,val:[28,53,71,99,109,133,209,217,376],valid:[9,12,13,17,19,23,25,30,35,38,93,105,115,124,125,127,133,159,165,186,209,263,281,375],valid_po:159,valid_pos_arrai:159,vallei:360,valn:28,valu:[0,2,3,4,5,6,7,8,9,10,11,14,15,16,18,19,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,90,91,93,94,95,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,160,165,166,169,170,171,172,186,192,193,194,195,199,204,209,211,217,218,235,250,259,265,269,271,274,280,290,297,300,301,315,316,317,320,322,327,328,330,331,332,337,339,340,345,346,347,348,350,351,353,355,358,360,366,370,371,372,373,378,379],value_:376,value_arrai:159,value_n:376,values_:376,vari:[19,96,159],variabl:[56,99,104,121,159,165,206,223,229,300,315,323,326,328,377,378,379],variables_:376,variad:376,variat:38,varieti:[120,159,175,209,217,240,265,266,363],variou:[3,25,28,118,130,159,188,189,190,209,210,266,344,347,375,376],varlist:376,varnam:165,vast:107,vbat33:235,vbat:[0,71,209,217,242],vbu:[235,269,281],vcc33:235,vcc:[188,189,190,193,194,195,235,247],vcodec:163,vdd12:235,vdd25:235,vdd33:235,vdd33_out:235,vdd3p3_cpu:281,vdd3p3_rtc:281,vdd:[91,235,252,281],vdd_spi:281,vdiv:159,vdop:38,ve:159,vector:[87,297,324,387,388],velit:159,vendor:[327,328],veniam:159,ver_fit_typ:159,ver_r:159,veri:[71,105,122,135,160,162,163,175,182,183,184,187,207,209,217,247,264,265,269,290,302,328,333,366,371,375,376,378],verif:[90,92,93,105,113,125,265,345],verifi:[28,31,70,92,93,109,113,232,265,315,320,351,353,366,371],versa:376,version:[5,9,19,22,28,35,53,58,71,85,100,104,118,121,124,128,135,160,163,165,166,168,169,170,171,172,176,177,178,179,182,183,184,188,189,190,193,194,195,197,198,200,201,202,204,209,210,211,221,226,234,244,245,246,250,252,254,261,263,264,265,268,269,270,271,281,283,284,290,303,306,308,317,323,324,336,343,344,345,352,353,358,364,366,369,371,372,377],version_:107,vertex:9,vertic:[35,38,124,135,160,366,376],veteran:[352,374],vf:[163,349],vfs_fatf:265,vhid_cancel_upload:28,vhid_upload:28,via:[51,96,124,159,204,207,215,252,263,323,353,366,371,373,376],vibrat:218,vice:376,vid:28,vid_0d28:247,video:[20,28,77,78,99,115,119,125,133,135,204,205,207,209,217,310,311,312,317,345,352,355,357,379],video_h:163,video_plai:163,video_w:163,view:[0,1,2,3,4,6,7,8,9,10,12,13,15,16,17,18,19,20,22,23,24,25,26,27,28,29,30,31,32,33,34,35,37,38,44,53,57,71,80,85,86,87,89,92,93,96,98,99,101,102,103,105,106,111,112,113,115,116,117,119,124,125,127,128,129,130,131,133,135,160,162,167,173,180,185,191,196,203,205,214,221,247,281,290,308,317,323,332,351,353,355,358,364,366,369,371,372,375,376,378,403],viewer:389,vih:235,vil:235,vin:[170,171,172],violat:376,virtual:[3,12,38,92,101,104,107,125,159,209,217,218,245,246,250,265,268,281,286,290,298,301,320,322,325,326,327,344,349,375,376],virtual_com_port:248,visibl:[38,94,125,127,135,160,165,346,348,375],visit:159,visual:[159,207,319],visualstudio:207,vlcd:28,vm:[14,35,198],voh:235,voic:[270,272,274,290],vol:[28,235,265],volatil:[188,189,190],volt:[208,270,272],voltag:[0,9,36,52,101,162,166,209,217,218,220,225,231,235,240,242,250,265,290,297,353,355,358,363,364,366,370,371,372],volum:[1,92,265,268,290,369,375],volupt:159,vs1838:65,vscode:[205,301,311,312,315,323],vss:235,vta:38,vtg:38,vuart_0:[3,38,92,125],w1_connect:28,w1_read:28,w1_reset:28,w1_write:28,w25q128:[188,189,190,193,194,195,209,217,282],w25q128jv:[193,194,195],w25q128jv_dtr:[193,194,195],w25q32:65,w25q64:65,w25qxx:65,w5500:[28,113,115,118,265,293],w600:[115,259,261],w800:[220,225,279,290,293],w801:[279,293],w805:[279,293],w806:[228,290,293],w:[12,28,29,84,159,163,175,176,188,189,190,209,217,333,349,360,371,376],w_:376,wa:[2,4,6,13,15,17,19,20,25,38,92,96,122,124,130,131,159,193,194,195,209,217,247,301,315,317,352,366,375,376],wai:[13,15,17,20,23,63,93,101,104,115,120,159,167,188,189,190,193,194,195,199,200,201,202,207,209,217,247,264,281,286,297,300,301,302,322,323,324,325,327,355,360,375,376,377,378,379,404],wait485:28,wait:[9,18,20,22,23,25,26,28,35,39,40,41,43,44,45,46,47,48,50,52,53,54,55,56,57,58,60,61,62,63,64,65,66,68,69,70,71,72,73,74,75,76,77,78,79,81,82,83,87,89,91,92,96,101,107,109,121,125,129,130,131,159,162,163,166,168,170,171,172,174,177,178,179,182,183,184,186,187,192,193,194,195,204,205,209,210,217,218,232,252,265,284,290,299,308,316,318,319,321,322,327,330,334,340,342,345,346,348,350,351,376,377,378],waitabl:[346,348],waitc:[321,334,342],waitlink:53,waitmsg:28,waitt:[321,334,342],waituntil:[25,28,57,71,92,94,103,115,130,131,197,333,345,377,378],waitxxx:119,wake:[35,85,101,106,121,181,209,221,223,229,265,269,290,329,378,379],wakeup0:269,wakeup1:269,wakeup2:269,wakeup:[28,101,218,223,229,269,297],wakeup_in:242,wakeupin:101,wakeuppin:28,wakup0:269,waldemar:376,walk:[107,323],wand:[211,245,247,298],want:[9,71,92,128,159,162,209,215,217,247,282,290,300,301,302,311,312,317,353,375,376,377],ware:298,warehous:[163,204,206,209,247,270,281,286,311,312,317,366],warm:217,warn:[14,28,100,176,209,217,247,265,315,333,355,360,369,370,373,378],warning_level:28,wast:[65,336],watch:355,watchdog:[28,53,101,118,176,198,209,240,297],watchdogpin:53,watt:360,wav:[4,26],wave:[20,32,209,217,218,369],waveform:[7,209,217,353,358,366,369,371,372],wb:[4,29,209,217],wba_abc:302,wbc_abc_cb:302,wbc_abc_handl:302,wcdma:272,wdai:[67,376],wdata:70,wdt:[28,118,176,198,209,265,293],we:[87,159,162,163,166,167,175,182,183,184,187,188,189,190,193,194,195,200,201,202,207,209,211,215,217,232,245,247,298,300,302,311,312,316,317,328,351,352,369,375,376,378,380],weak:[92,165,264,265,269],wealth:[257,352],weather:[9,35],weather_icon:28,web:[247,281,324,376,381,382],web_audio:266,websit:[6,19,56,71,207,263,265,292,299,315,376],websocket:[28,118,265,270,293],websocket_cli:130,websocket_conack:130,webusb:247,wechat:[131,353],week:[67,376],wei:72,weight:[87,159,375],welcom:[210,272,342,352,353,371],weld:[218,286,355,360],well:[159,162,163,209,217,355,360,375,376],wendal:[13,17,102,301,322,323,325,326,327,329,330,331,332,337],wenquanyi:168,went:15,wep:341,wep_psk:341,wep_shar:341,wepval:252,were:[29,117,120,376],west:[38,106],western:159,wget:318,wgs84:[38,56,57],wh:[360,371],what:[0,22,122,128,131,133,159,162,165,188,189,190,207,214,221,243,250,260,268,290,296,301,302,308,311,312,317,320,321,328,333,334,342,346,347,375,377,378],whatev:376,wheel:[366,369,370,373],when:[1,9,10,12,13,17,20,23,25,29,30,33,35,38,56,57,65,67,71,72,89,92,93,94,96,101,107,109,110,113,115,121,124,125,127,128,131,133,159,162,163,166,170,171,172,177,178,182,183,184,186,193,194,195,200,201,202,207,208,209,211,215,217,218,220,225,235,247,248,250,251,263,265,269,274,281,286,290,299,302,304,317,318,319,323,327,336,345,349,350,351,353,355,358,360,366,372,373,375,376,377,378,379],when_spi_r:124,whenc:165,whenev:[67,376],where:[25,34,65,87,88,91,96,99,110,115,133,159,176,204,209,217,271,281,289,290,299,307,324,328,366,375,376,377],where_ddd_i:376,where_n_i:376,where_set_i:376,where_x_and_y_remain_balanc:376,where_xx_must:376,where_xxx_i:376,whether:[1,2,4,6,9,10,12,15,18,22,23,25,26,29,30,32,35,36,38,56,59,62,65,66,85,89,90,92,93,94,96,101,109,112,113,115,117,124,125,130,131,133,159,204,209,211,217,218,245,247,250,251,265,269,290,298,306,315,328,341,345,349,357,369,375,376,378,379],which:[0,1,6,10,11,14,16,19,20,22,23,26,27,29,31,33,35,37,38,44,57,65,67,71,78,84,85,86,87,89,90,91,92,93,94,96,97,99,100,101,102,104,107,108,110,113,119,121,125,131,132,133,159,162,166,170,171,172,176,188,189,190,198,199,204,207,208,209,210,211,217,218,235,240,247,248,252,263,264,265,266,269,274,279,281,286,290,292,297,300,301,302,315,316,317,318,320,323,327,328,332,333,336,337,343,345,352,355,357,358,360,366,369,372,375,376,378,379],white:[9,87,205,218,290,374,376],whiteboard:[210,211],who:[92,245,247,282,298,374,375,377],whole:[247,269,375,376,378],whose:[159,376],why:[135,160,290,320,321,334,335,342,353,375,376],wi:[257,382],wide:[9,35,159,162,331,343],widget:[87,135,160],width:[3,12,28,35,65,87,115,124,135,160,163,182,183,184,209,217,218,281,324,336,339,375,376],wifi:[28,56,71,113,118,124,254,261,265,270,279,286,288,290,293,334,335,342,345,352,353,371],wifiscan:131,wignor:315,wiki:[5,9,35,159,162,163,209,210,217,218,270,291,308,350],wikipedia:159,win10:[204,366],win32:[125,299,318,352],win7:[204,245,247,251,281,286,298,315,357,366],win8:[245,251,281,286,298],win:[135,160,163,353,358,369,371,372],win_add_btn:159,win_add_btn_left:159,win_add_btn_right:159,win_close_event_cb:159,win_creat:159,win_demo:159,win_focu:159,win_part_bg:159,win_part_content_scrl:159,win_part_head:159,win_scroll_hor:159,win_scroll_v:159,win_set_anim_tim:159,win_set_layout:159,win_set_scrlbar_mod:159,win_set_titl:159,winbond:[188,189,190,193,194,195],window:[9,28,94,135,160,164,204,207,209,211,247,308,313,315,317,319,323,366,376],winter:209,winusb:[245,247,251,281,286,298],wip:[279,293],wire:[44,49,65,166,170,171,172,182,183,184,188,189,190,193,194,195,200,201,202,209,210,215,217,247,252,268,281,290,308,353,357,360],wireless:[290,341,352],wistr:252,with_x_and:376,with_y_:376,within:[20,159,208,209,217,218,252,272,274,300,302,322,342,375,376],without:[6,14,15,18,19,21,87,92,93,94,104,113,131,159,166,204,209,214,218,252,263,269,281,291,302,308,316,317,323,328,345,375,376,378,379,382],withstand:[250,290,369],wizpro200st8:[250,290],wlan:[28,118,293,334,335,342,345],wlan_scan_don:[131,345],wmm:257,woff2:159,woff:159,woken:378,won:[375,376,378],wonder:375,word:[99,159,204,274,281,316,317,324,345,376],work:[3,65,66,70,78,96,113,159,186,199,200,201,202,208,209,217,218,235,240,251,252,297,299,319,351,353,360,376],work_mod:101,workaround:[252,265],workflow:299,workshop:247,world:[206,207,375,376],worri:[71,247,252,333,376],worst:[3,266],worth:[97,209,217,265,375],would:376,wow:379,wp:[257,341],wpa2:[257,341],wpa2_aes_psk:341,wpa2_mixed_psk:341,wpa2_tkip_psk:341,wpa:[257,341],wpa_aes_psk:341,wpa_tkip_psk:341,wps_open:341,wps_secur:341,wrap:[104,159,165,332],writ:[188,189,190],writabl:[96,159,349],write:[3,9,10,13,15,17,20,23,25,26,28,29,30,36,49,53,77,78,89,90,92,96,100,108,109,113,118,124,128,135,160,163,165,168,174,187,191,196,199,200,201,202,205,206,207,209,217,250,265,266,271,290,298,299,301,318,319,320,322,323,331,332,339,340,345,346,347,348,350,351,375,378,379],write_datablock:53,write_rawrc:70,write_zlib_head:90,writechr:28,writefil:[28,188,189,190],writei8:133,writeint8:331,writer:376,writereg:28,writeu32:133,written:[3,6,10,15,17,29,49,70,85,86,89,90,92,96,97,108,110,111,113,120,125,133,159,162,193,194,195,209,217,252,265,300,327,333,366,375,376,377],wrong:[15,58,89,109,247,252,265,301,311,312,317,322,330,357,376],wrote:[188,189,190,193,194,195,209,217],wrprterr:252,ws2812:[135,161,265],ws2812_h:162,ws2812_roll_show:162,ws2812_w:162,ws2812b:28,ws2812b_pwm:[28,162],ws2812b_spi:[28,162],ws:[130,351],wsc:28,wsc_conack:130,wsg84:56,wss:130,www:[23,38,67,193,194,195,206,299,376],x00ff0200:351,x01:25,x02:25,x03:25,x0:28,x1:[28,159],x1ffff7e8:252,x200ma:369,x200ua:369,x25:6,x2:[28,159],x2a:369,x2ma:369,x32:[28,177,178,179],x64:[315,317],x7f:376,x7fffffff:[30,89],x80:376,x8218dbc0:378,x:[3,19,23,28,40,43,50,55,60,64,69,94,99,118,159,165,209,210,221,222,228,235,252,271,323,336,355,360,375,377,378],x_id:159,x_of:159,x_op_:376,x_xx_:376,xbf:376,xc2:376,xeltek:252,xf4:376,xfer:28,xhh:375,xi12m:235,xi32:235,xiao:[247,274],xiaomi:[355,360,369,370,373],xingli:263,xip:208,xlsx:[220,225,233],xmake:[301,315,318,319],xmodem:[6,53,132],xo12m:235,xo32:235,xoffset:[9,35,163,209,217,291],xor:[6,124,159,251,376],xpcall:165,xt804:[279,280,293],xtal32k:235,xtal:235,xu:274,xuyuan:162,xx:[168,175,306,308,375,376],xxx:[4,12,15,18,24,29,54,58,71,93,97,104,108,113,274,301,302,304,305,306,308,315,341,345,351,375],xxxx:[29,113,291,308,311,345,378],xxxxx:[302,375,378],xxxxxblock:302,xxxxxx:[1,58,93,131,207],xxxxxxx:345,xxxxxxxxx:[302,333],xxxxxxxxxx:345,xy:378,y0:[28,274],y1:[28,159,274],y2:[28,159],y877bgo8x5owd3lcb5wwdjrynpob:31,y:[19,28,40,43,50,55,60,64,69,97,118,135,160,165,168,223,229,271,274,304,306,318,375,378],y_id:159,y_max:159,y_min:159,y_of:159,yahei:207,yangkeduo:381,yangzichen123:289,ye:[92,113,159,207,291,357,375,378],year:[38,56,67,97,106,159,186,209,245,375,376],yeild:378,yellow:[289,373],yet:[290,376],yield:[165,378],yin:[77,78],yml:299,ymodem:[28,118,265],yoffset:[9,35,163,209,217,291],you:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,119,121,122,123,124,125,126,127,128,129,130,131,132,133,134,159,162,163,167,168,169,173,175,180,181,185,186,187,188,189,190,191,192,196,197,199,200,201,202,203,204,206,207,209,210,211,215,217,218,232,235,245,247,248,251,252,265,266,272,281,282,286,289,290,298,299,301,302,308,310,311,312,315,317,318,319,320,321,334,335,342,345,349,351,352,353,355,360,366,371,373,374,375,376,377,378,379],you_:376,young:265,your:[113,128,159,168,175,204,210,211,245,282,298,302,311,316,317,355,357,360,369,374,375,376],yourself:[1,5,58,109,131,159,207,245,247,251,298,301,310,311,312,357,375,376,380],yuan:[357,376],yum:[311,312],yun:376,yuv411:286,yuv420:286,yuv422:286,yyi:[58,104,308,351],z:[40,43,55,60,64,69,99,271,376],zadig:[245,251,298],zbuff:[1,3,4,9,15,25,26,28,29,30,35,92,109,110,113,115,118,124,125,127,132,162,163,174,203,205,206,209,265,293,331,332,350],zda:38,ze08g:53,ze08g_ch2o:53,zeo:270,zero:[6,19,159,223,229,265,274,360,376],zeropad:19,zeros_and_len:6,zeu:[247,257],zh07:53,zh07_pm10:83,zh07_pm1:83,zh07_pm25:83,zh:67,zhou:[214,263,266,274,390],zhuff:25,zip:[255,264,265,266,311,312,315,317,344],zlib:[28,118],zone:[28,38,57,94,106,235,297,326],zoom:[1,159],zstruct:332,zzz:[58,308],zzzzzzzzz:333},titles:["adc - Digital-to-analog conversion","audio - Multimedia-Audio","bit64 - 32 Basic arithmetic and logical operations on 64-bit data on bit systems","camera - Camera","codec - Multimedia-Codec","coremark - Running points","crypto - Encryption and decryption and hash functions","dac - Digital-to-analog conversion","disp - disp Library (Obsolete)","eink - ink screen operation library","errDump - Error reporting","fastlz - FastLZ Compression","fatfs - read/write fatfs format","fdb - kv Database, power failure does not lose data","fonts - Font Library","fota - Underlying Firmware Upgrade","fs - Additional File System Operations","fskv - kv Database, power failure does not lose data","ftp - ftp Client","gmssl - national secret algorithm","gpio - GPIO Operation","gtfont - Qualcomm Font Chip","hmeta - Hardware metadata","http - http Client","httpsrv - http Server","i2c - I2C Operation","i2s - Digital Audio","iconv - iconv Operation","\ud83c\udf74 LuatOS-SOC Interface Documentation","io - io action (extended)","ioqueue - io Sequence operation","iotauth - IoT Authentication library, used to generate parameters for various cloud platforms","ir - infrared remote control","json - json Generating and parsing libraries","keyboard - Keyboard Matrix","lcd - lcd Drive module","lcdseg - Segment lcd","libcoap - coap Data processing","libgnss - NMEA Data processing","ads1115 - ads1115 analog-to-digital converter","adxl34x - adxl34x 3 Axis accelerometer currently supports adxl345 adxl346","aht10 - aht10 Temperature and humidity sensor","air153C_wtd - Add software watchdog function to prevent crashes","ak8963 - ak8963 geomagnetic sensor","am2320 - am2320 Temperature and humidity sensor","bh1750 - bh1750 Digital light intensity sensor","bmx - bmx The air pressure sensor currently supports bmp180 bmp280 bme280 bme680 will automatically judge the device","cht8305c - cht8305c Temperature and humidity sensor","ds3231 - ds3231 Real Time Clock Sensor","ec11 - ec11 Rotary encoder","gt911 - gt911 Drive","httpdns - Domain name resolution using Http","ina226 - ina226 Drive","\ud83e\udd62 Extended Library Interface Documentation","iotcloud - iotcloud Cloud platform library (supported: tengxun cloud ariyun onenet huawei cloud graffiti cloud baidu cloud others will also support, useful issue will accelerate support )","l3g4200d - l3g4200d Three-Axis Digital Gyroscope Sensor","lbsLoc - lbsLoc Sending Base Station Location Request","lbsLoc2 - base station positioning v2","libfota - libfota fota Upgrade","libnet - libnet synchronous blocking api based on the socket library, the socket library itself is asynchronous non-blocking api","lis2dh12 - lis2dh12 Three-axis sensor","lm75 - lm75 Temperature Sensor Support lm75a lm75b","mcp2515 - mcp2515 CAN Protocol Controller Driver","mlx90614 - mlx90614 infrared temperature","mpu6xxx - mpu6xxx Six-axis/nine-axis sensor support mpu6500,mpu6050,mpu9250,icm2068g,icm20608d","necir - necir NEC protocol infrared receiving","netLed - netLed Network status indicator","pcf8563t - pcf8563t Clock Module","pcf8574 - pcf8574 IO Extension","qmc5883l - qmc5883l geomagnetic sensor","rc522 - rc522 Non-contact read/write card driver","rtkv - Remote KV Database","shift595 - shift595 74HC595 Chip","si24r1 - si24r1 Drive","spl06 - spl06_01 Air pressure sensor","tcs3472 - tcs3472 Color Sensor","tm1637 - tm1637 Digital tube","tm1640 - tm1640 Digital tube and LED driver chip","tm1650 - tm1650 Digital tube and key scanning chip","tsl2561 - tsl2561 light intensity sensor","udpsrv - UDP Server","xmodem - xmodem Drive","ze08g_ch2o - ZE08G-CH2O electrochemical formaldehyde module","zh07 - ZH07 Laser Dust Sensor","log - Logstore","lora - lora Drive module","lora2 - lora2 Driver module (supports multi-hanging)","lvgl - LVGL Image Library","max30102 - Heart Rate Module(MAX30102)","mcu - encapsulation mcu some special operations","miniz - Easy zlib compression","mlx90640 - infrared temperature measurement(MLX90640)","mobile - Cellular Network","mqtt - mqtt Client","nbiot - NB-IOT Operation Library","nes - nes Simulator","nimble - Bluetooth BLE library (nimble version)","os - os Operation","otp - OTP Operation Library","pack - Packing and unpacking format string","pin - Pin Naming Map","pm - Power Management","protobuf - ProtoBuffs Codec","pwm - PWM Module","repl - \u201cRead-evaluate-output \u201cloop","rsa - RSA encryption and decryption","rtc - Real Time Clock","rtos - RTOS underlying operation library","sdio - sdio","sensor - Sensor Operation Library","sfd - SPI FLASH Operation Library","sfud - SPI FLASH sfud Software package","sms - SMS","socket - Network Interface","softkeyboard - software keyboard matrix (currently only supported by air105)","spi - spi Operation Library","statem - SM State Machine","string - String Manipulation Functions","Adaptation status","sys - sys Library","\ud83d\udcee sys System Messages","sysplus - sys A strong complement to the library","timer - Operating the bottom timer","touchkey - Touch keys","u8g2 - u8g2 graphics processing library","uart - serial port operation library","ufont - Unified Font Library (under development)","usbapp - USB Functional operation","w5500 - w5500 Ethernet driver","wdt - watchdog Operation Library","websocket - websocket Client","wlan - wifi Operation","ymodem - ymodem Agreement","zbuff - c Memory Data Manipulation Library","zlib - zlib Compression/Decompression (Obsolete)","\u2328\ufe0f Application Development","Code","Equipment","\u2328\ufe0f Alibaba Cloud application development","Introduction","Project","Test","\u2328\ufe0f Cloud Platform Basic Preparation","Introduction","<no title>","<no title>","\u2328\ufe0f Cloud Platform Application Development (Incomplete)","Code","Equipment","\u2328\ufe0f OneNet Application Development","Introduction","Project","Test","Code","Equipment","\u2328\ufe0f Tencent Cloud Application Development","Introduction","Project","Test","LVGL for LuatOS Manual","lvgl","Peripherals","LuatOS-Soc Driver WS2812 Tutorial","Air105 Video playback","Video playback","\ud83d\uddc3\ufe0f Data Archiving","adc","CRYPTO","DISP","fdb","air101","air103","air105","i2c","API Tutorial","LCD Drive screen","log","air101","air103","air105","mcu","PM","air101","air103","air105","pwm","RTC","sfd","air101","air103","air105","sfud","SPI","air101","air103","air105","spi","sys","timer","UART","air101","air103","air105","uart","Burn Tutorial","\ud83d\udcda Development Tutorial","recommend learning line","Construction of development environment","Air Watch","\ud83d\ude97 W806","Air001 Arduino-based user manual","Air001 Keil MDK-based user manual","Development Board","Hardware Data","\ud83d\udef4 Air001","Air001 Chip","Air001 power consumption curve","Air101 Getting Started Manual","Air101 Hardware Design Tutorial","Development Board","Hardware Data","\ud83d\ude97 Air101","Air101 Chip","Air101 power consumption curve","Development Board","Hardware Data","\ud83d\ude97 Air103","Function Description of Segment Screen/Segment Screen","Air103 Chip","Air103 power consumption curve","Touch sensor/touch button","Air105 Development Board","Air105 Script Encryption","Hardware Data","\ud83d\ude97 Air105","Air105 Chip","Air105 power consumption curve","Air106 Development Board","Hardware Data","\ud83d\ude97 Air106","Air106 Chip","Development Board","Hardware Data","\ud83d\udcf6 Air302","Air302 Module","Air32F103 Manual","Development Board","DAPLink Manual","Enhanced function instructions","Hardware Data","\ud83d\udeb2 Air32F103","AIR32F103 Chip","Transplant from SXX32F103","Air601-12F Development Board","Firmware Release Notes","Air601 Hardware Data","\ud83d\udce1 Air601","Air601","Development Board","Hardware Data","\ud83d\udce1 Air640w","Air640w","Air700E Additional instructions","Air780EG Additional instructions","Development Board","Ec618 Series Firmware Release Notes","Firmware Description","Hardware Data","\ud83d\udcf6 Air780E(EC618 Series General)","LuatOS IO multiplexing configuration under firmware","Air780E Module (EC618 Series General)","Description of mass production brush machine","Network Characteristics","Setting and difference of anti-shake of power-on key","TTS Description of the function","Development Board","Hardware Data","\ud83d\udea2 Air901","Air901 Chip","\ud83d\udcca Chip comparison and selection table","Performance testing (based on coremark)","ESP32C3-CORE Development Board","Replace flash tutorial","Hardware Data","\ud83d\udce1 ESP32-C3","ESP32C3 power consumption curve","ESP32S3-CORE Development Board","Hardware Data","\ud83d\udce1 ESP32-S3","Portable wifi data collection","\ud83e\uddee Chips and Development Boards","FAQ List","\ud83d\udce1 RP2040","Equipment Support/Supported Devices","Development Board","Hardware Data","\ud83d\udeb2 SWM181CBT6","SWM181CBT6 Chip","SWM181 Manual","\ud83d\udda5\ufe0f PC End version","Lua Library File Writing Guide","Add Custom Functions (Rapid Edition)","C Interface implements Task waiting function","LuatOS CLI - Command Line Tools","LuatOS CLI Basic Commands","LuatOS Burn command","LuatOS Package Management Commands","LuatOS Project Management Commands","CLI Interactive Conceptual Design","LuatOS User Project","\ud83d\udc68\u200d\ud83d\udcbb Compile source code","\ud83d\ude97 Air101 / Air103","\ud83d\ude97 Air105","\ud83d\udcf6 Air302","\ud83d\udce1 Air640w","\ud83d\udcf6 Air780E Compilation Guide","\u2601\ufe0f Cloud Compilation","\ud83d\udce1 ESP32 Series Compilation Document","\ud83d\udda5\ufe0f Linux","\ud83d\udda5\ufe0f Win32","Add New Library","Core Layer","Luat Core","Luat Debugger","Font module","File System","Memory Pool","Message Bus","Luat Platform layer","Power and Low Power Management","Luat Timer","C style buffer","C The Structure of Style","C Interface implements Task waiting function","Design Document","Peripherals API","LuatOS dot matrix font format","GPIO","IR","SPI","UART","WLAN","\u2764\ufe0f Contribution Code","LuaDB File Format","LuatOS-SoC Common Firmware Format soc","Coding Specification","\ud83d\udcc1 Development documentation","Development Information","Development practice","LuatOS-SoC The file system","Explain lua\u2019s string and hex data (hexadecimal)","Command Line Brush Guide","<no title>","\u26a1 IoT Power - CC","\u26a1 IoT Power - CC","Connection and assembly","Connection and assembly","FAQ","Technical indicators","Technical index","Operating Instructions","Operating Instructions","<no title>","\ud83d\udd0d Version Comparison","\u23f3 IoT Power Power consumption test artifact","\u23f3 IoT Power Power Consumption Tester","\ud83d\udda5 PC Client","<no title>","IoT Power User Guide","\ud83d\udd0b IoT Power - V1","Connection and Appearance","\ud83d\udd0b IoT Power Pro","Technical indicators","Operating Instructions","\ud83c\udf19 Lua Tutorial","Basic Grammar","Lua 5.3 Reference Manual","Luat Framework","Luat framework (advanced-underlying mechanism)","LuaTask Framework","\ud83d\udd79\ufe0f Online Experience LuatOS","\ud83d\udcac Technical Support","<no title>","Use Example","Hardware Data","Air105 Supporting GC032A camera","Use Example","Hardware Data","Qualcomm Font Chip","Hardware Data","EINK1.54 Ink screen","Use Example","\ud83e\uddf7 Peripheral expansion data","Use Example","Hardware Data","1.54 Inch TFT_ LCD resolution 240x240","Use Example","Hardware Data","1.8 TFT LCD resolution 128x160","Use Example","Hardware Data","2.4 Inch TFT_ LCD color screen resolution 240x320","Use Example","Hardware Data","Air10x Series Screen Expansion Board"],titleterms:{"0":[252,274,357,369],"01":120,"0x":120,"0x00":211,"0x001f":291,"0x01":211,"0x02":211,"0x03":211,"0x04":211,"0x05":211,"0x06":211,"0x07":211,"0x08":211,"0x09":211,"0x20000000":211,"0xffff":252,"1":[211,235,245,248,252,274,281,286,291,298,301,351,375,376,395,398],"10":376,"101":291,"103":351,"105":291,"10x":291,"11":376,"123":117,"128x160":398,"12f":[253,257],"12m":291,"15":91,"150":291,"16":248,"160m":285,"192m":236,"2":[211,235,245,248,252,281,286,291,298,301,351,369,375,376,401],"20":291,"200m":280,"2023":91,"20v":357,"240x240":395,"240x320":401,"256m":280,"2m":[223,229],"3":[40,211,235,245,248,252,281,286,291,298,351,375,376],"32":2,"32bit":252,"4":[235,248,281,286,291,375,376,401],"480k":266,"4g":381,"5":[91,235,248,376],"54":[390,395],"5k":248,"5v":[357,369],"6":[235,376],"64":2,"7":[235,291,376],"74hc595":72,"8":[291,369,376,398],"80m":[223,229],"9":376,"\u03bca":357,"\u51c6\u5907\u6750\u6599":314,"\u5f00\u59cb\u4e0b\u8f7d\u6e90\u7801":314,"\u5f00\u59cb\u7f16\u8bd1":314,"\u63d0\u524d\u544a\u77e5":313,"\u7f16\u8bd1\u73af\u5883":313,"\u7f16\u8bd1\u8bf4\u660e":313,"\u8bf4\u660e":314,"abstract":[193,194,195],"boolean":375,"break":211,"byte":[120,252,291,375,376],"case":[338,339,340,375],"char":[375,376],"class":[323,376],"default":[159,207,274,291],"do":[291,301,325,330,357],"export":366,"final":[6,317],"function":[6,42,117,127,159,197,209,211,227,244,247,248,252,261,270,274,281,286,291,301,302,308,333,355,357,360,366,370,373,375,376,377],"import":366,"int":[62,88],"long":159,"new":[37,54,159,200,201,202,207,211,245,298,301,302,320],"return":[302,345,375],"static":301,"switch":[159,360,366,369,373],"try":308,"while":[274,357,375],A:[121,206,300,349],AT:211,And:[218,291],As:252,At:355,For:376,If:[302,311,369],Is:[291,369],It:291,No:[223,229,236,252,285,291,369],One:159,Or:291,The:[46,247,252,291,322,328,332,333,344,349,351,369,375,376],There:[247,291],To:[91,301,375],Will:291,_at_0x20000000:211,_g:376,_repeat:107,_version:376,a1:376,a2:376,ab:376,abc:117,about:[218,262,263,322,344],abov:[252,291],acceler:54,acceleromet:40,accept:[113,376],access:252,accuraci:353,achiev:[324,333],aco:376,action:[29,373],activetim:94,acttyp:94,actual:369,ad:[211,333,375],adapt:[18,93,113,118,130,302],adapter_index:113,adc:[0,166,209,217,218,242,252,291],add:[42,111,159,210,211,301,320],addit:[16,223,229,236,262,263,269,285],addr:[25,32,70,96,111],address:[70,89,188,189,190,193,194,195,210,211],adjust:[159,366],adjust_period:125,adon:252,ads1115:39,advanc:[159,375,378],advdata:96,advparam:96,adxl345:40,adxl346:40,adxl34x:40,af:67,after:[91,177,178,179,252,291,357,369],again:357,agr2:119,agreement:[132,343],ah:373,aht10:[41,170,171,172],aie:67,air001:[210,211,214,215,216],air101:[170,177,182,188,193,200,217,218,221,222,223,291,311,351],air103:[171,178,183,189,194,201,226,228,229,280,291,311],air105:[114,163,172,179,184,190,195,202,231,232,234,235,236,280,291,312,351,385],air106:[237,239,240],air10x:404,air153c_wtd:42,air302:[243,244,313],air32:252,air32f103:[245,250,251,252],air32f103cbt6:280,air601:[253,255,256,257],air640w:[260,261,314],air700:262,air780:[268,270,280,315],air780eg:263,air901:[277,278],air:[46,74,208,381],ak8963:43,alarm:67,algorithm:[19,252,291],ali:51,alibaba:138,align:[159,252],aliyun:31,all:[252,317],alloc:328,alon:291,alpha:159,alreadi:357,also:[54,369],alt:20,alt_fun:89,altfun:89,alwai:[357,369],am2320:44,ambient:63,amplifi:369,an:[159,211,291,366],analog:[0,7,39,373],analysi:332,analyz:366,angl:159,ani:291,anim:[87,159],anim_cr:87,anim_fre:87,anim_path_set_cb:87,anim_path_t:87,anim_path_t_fre:87,anim_set_exec_cb:87,anim_set_path_str:87,anim_set_ready_cb:87,annot:345,antenna:291,antenna_on:70,anti:273,anticol:70,apb:252,api:[59,159,174,227,320,325,326,327,328,329,330,331,335,337,338,339,340,341,345,376],apn:[92,94],appear:[360,370],applic:[135,138,146,149,155],ar:[209,244,252,261,270,291,301,357],arc:159,archiv:165,arduino:210,area:[159,252,366],arg1:[119,376],arg2:[119,121],arg3:121,arg4:121,arg:[9,35,376],argn:119,arithmet:[2,375],ariyun:54,arm:211,around:357,arrai:[159,200,201,202,375],artifact:364,asin:376,ask:[159,301],assembl:[355,356],assert:376,assign:[159,375,376],async:9,asynchron:59,atan:376,attent:[281,286,351],audio:[1,26],audio_format:1,auth:93,auth_password:94,auth_user_nam:94,authent:31,authstat:70,auto:[94,159],auto_format:12,auto_phone_fix:112,auto_reset_stack:92,autocollectmem:107,autoflush:35,autolong:112,automat:[46,159,211,252],autoreconn:[93,130],auxiliari:[263,376],averag:[366,373],average_temp:91,axi:[40,55,60,64],b:[2,35],back:[35,291],background:[211,245,298,350],baidu:[31,54],band:92,bandrat:115,bar:159,base64_decod:6,base64_encod:6,base:[2,56,57,59,133,159,210,211,280,376],base_year:106,basi:375,basic:[2,142,206,293,300,303,304,322,323,324,325,326,327,329,330,331,332,333,337,338,339,340,341,373,375,376],bat:9,batteri:373,baud:62,baud_rat:125,been:357,befor:317,begin:124,below:373,between:[179,252,357,369,379],bh1750:45,bia:36,bif:252,bind:[38,128],bit64:2,bit:[2,133,252,291,376],bit_ord:125,bitdict:115,bits_per_sampl:1,bitw:26,black:369,ble:96,blink:159,block:[59,198,252,376],bluetooth:[96,291],bme280:46,bme680:46,bmp180:46,bmp280:46,bmx:46,board:[210,212,213,219,224,231,237,241,246,247,253,258,262,263,264,275,281,286,290,291,294,404],bodi:23,bom:353,book:391,bootstrap:252,boss:291,bottom:122,boundari:[325,326,327,329,330,331,332,337,338,339,340,341],box:159,bpp:87,brake:252,branch:375,breath:[182,183,184],bri:[77,78],brief:379,bright:159,brush:[215,218,222,228,231,244,261,270,271,281,289,291,308,351,357],bsp:[107,228],btn:159,btnmatrix:159,bu:[252,291,327],buff2:[9,133],buff:[3,9,15,29,73,113,124,125,127,133],buff_mod:87,buff_siz:[87,125,127],buffer:[26,331],build:[211,316,317],builddat:107,buoi:159,burn:[204,209,211,215,217,222,228,231,244,245,252,261,270,281,291,298,305,369],burner:[247,252],burp:369,bus_typ:1,busi:252,button:[159,230],c3:[284,351],c:[124,133,134,206,211,301,302,320,322,324,325,326,327,329,330,331,332,333,337,338,339,340,341,345,376,402],ca_fil:23,cach:366,cache_s:87,cal:52,calcul:179,calculate_crc:70,calendar:[159,391],call:[227,252,375,376,377],callback:[200,201,202,379],camera:[3,291,385],can:[62,159,252,291,301,357],cannot:[206,252],canva:159,capend:30,captur:[3,30,103,376],capture_buff:30,card:[70,252,291],cat1:381,cat4:381,categori:376,caught:282,cb:[86,93,113,130,159],cbfnc:[56,58],cbfun:121,cc:[353,354,357],cd:27,ce:73,ceil:376,celevel:94,cell:159,cell_info_upd:120,cell_typ:159,cellid:94,cellular:92,ch2o:82,ch:7,chain:315,chang:[159,207,266,291,316,323,357,369,376],changelog:265,channel3:252,channel:[26,89,103,131,193,194,195],channel_map:96,charact:[159,375,376],characterist:[262,263,272,369],charg:[235,357,373],charpattern:376,chart:[159,212,219,366],chat:381,check:[101,159,316],check_sim_period:92,check_valu:89,checkbox:159,checksum:6,chines:274,chip:[21,72,77,78,211,215,222,225,228,233,235,240,251,252,257,278,279,290,291,297,369,388],chip_check:73,chiperas:111,choos:[210,211],chooser:159,chr_uuid:96,cht8305c:47,chunk:376,chunknam:376,cid:92,cipher:272,cipher_decrypt:6,cipher_encrypt:6,cipher_list:6,cipher_suit:6,circl:[9,357],circuit:[218,235],classif:266,clean:159,cleanmsg:121,cleansess:93,clear:[9,17,30,35,38,76,77,78,102,133,252,291],clear_bit_mask:70,clearbuff:124,cleardownlink:92,clearli:357,clearlong:112,clearuplink:92,cli:[303,304,308],click:316,client:[18,23,93,130,366],client_ca:23,client_cert:[58,113],client_id:93,client_kei:[23,58,113],client_password:[23,58,113],clk:[77,115],clock:[48,67,97,106,235,248,252,291,376],close:[0,3,7,18,20,25,26,27,35,54,59,65,77,78,93,103,113,115,123,124,125,129,130,159,252,376],close_watch_dog:42,closur:376,cloud:[31,54,138,142,146,155,316],cloudc:54,cmd:[18,32,35],cmd_cnt:30,cmsi:211,cnt:[87,252],co:376,coap:37,coapdata:37,code:[9,37,136,147,153,188,189,190,193,194,195,200,201,202,210,228,245,291,298,301,302,310,315,317,342,345,375,376],codec:[4,102],codepoint:376,coder:4,collect:[289,376],collectgarbag:376,color:[9,35,75,133,159,291,401],column:159,com:[36,76],com_mark:36,com_numb:36,comma:76,command:[18,70,170,171,172,303,304,305,306,307,308,351,376],comment:375,commiss:323,common:[159,315,344,349,357,369],commun:[291,323,328,381],comp:376,compar:371,comparison:[252,279,353,363,375,376],compil:[209,210,299,310,311,312,315,316,317,318,319],complement:121,complet:[300,355],compon:[159,316,320],compress:[11,90,134],comput:[247,357],concat:[375,376],concaten:376,concept:[159,376],conceptu:308,condit:[336,375],conf:[8,34,35,52,71,124,211],config:[1,10,62,92,96,113,128,376],configur:[204,207,209,247,248,252,269,282],conn:96,conn_mod:96,connect:[54,59,93,96,113,130,131,162,163,247,291,355,356,357,369,370],connect_config:54,connok:96,consecut:252,consider:252,consol:351,constant:[0,1,4,9,20,25,26,35,36,54,84,85,86,89,90,91,92,93,96,101,113,115,124,125,127,131,133,329,330,337,338,339,340,341,369],constraint:336,construct:[207,211,215,217,245,251,297,298,301,376],consum:369,consumpt:[216,223,229,236,263,285,364,365],cont:159,contact:70,contain:159,content:[159,266,344,375],continu:[30,252],contrast:[124,279],contribut:342,control:[32,62,67,159,193,194,195,208,248,252,281,286,366,373,376],conveni:[311,312],convent:376,convers:[0,7,159,252,350,375,376],convert:[39,177,178,179],coordin:373,copi:133,copybuff:124,core:[211,231,237,281,286,321,322],coremark:[5,280],corner:316,coroutin:376,correl:263,correspond:[193,194,195,230,333],cost:353,count:[116,252,376],cpath:376,cpha:115,cpicker:159,cpol:115,crash:42,crc16:6,crc16_modbu:6,crc32:6,crc7:6,crc8:6,creat:[4,80,93,113,116,130,132,133,197,200,201,202,301,308,376],createap:131,createsoft:[25,115,125],critic:159,crop:159,cross:[159,328,375],crypto:[6,167],crystal:[218,291],cs:[62,70,73,115,193,194,195],cs_pin:128,csq:[92,94],ctrl:113,cur_timestamp:31,current:[40,46,114,159,333,357,360,366,369,373],cursor:159,curv:[216,223,229,236,285,373],custom:[159,301,311,312,316,317],custom_id:10,cycl:[197,200,201,202,252,375],cyclic:[223,229,236,285],d:134,dac:7,dacdelai:1,daclevel:1,dacpin:1,dactimedelai:1,dap:247,daplink:247,dark_color:87,dat:[72,77],data1:109,data2:109,data32bit:2,data64bit:2,data:[1,2,4,6,7,9,11,13,17,19,25,26,29,35,37,38,54,70,71,85,86,90,92,93,96,98,102,104,105,108,109,110,111,113,115,124,125,127,130,132,133,159,162,165,169,200,201,202,213,220,223,225,229,233,236,238,242,249,252,255,259,267,276,280,283,285,287,289,291,295,327,330,332,336,350,360,366,373,375,379,383,384,387,389,392,394,397,400,403],data_bit:125,data_mod:38,databas:[13,17,71,169],datatraff:92,dataw:115,date:[76,97,159,376],dead:357,debounc:[20,34],debug:[1,12,38,84,93,113,130,215,218,247,252,291,327,376],debugg:323,decim:[177,178,179],declar:376,decod:[4,33,102],decoi:357,decompress:134,decrypt:[6,105],deep:[223,229,236],defin:326,definit:[211,225,235,281,286,308,343,344,376],deg:376,deinit:[96,114],del:[17,133],delai:[20,25,30,89,197,252,291],delet:[159,169,306,330,375],delimit:117,demand:302,demo:[227,305,308,391,403],demo_benchmark:87,demo_keypad_encod:87,demo_mus:87,demo_print:87,demo_stress:87,demo_widget:87,descript:[159,227,252,262,266,269,271,274,281,286,318,319,345,349,379],design:[218,230,235,303,308,320,323,325,326,327,329,330,331,332,334,337,338,339,340,341],detail:[360,363,373,375],develop:[126,135,138,146,149,155,205,206,207,210,212,213,217,219,224,231,237,241,246,253,258,262,263,264,275,281,286,290,291,294,320,346,347,348],devic:[46,159,177,178,179,188,189,190,193,194,195,211,247,291,293,357,366,369],device_id:31,device_kei:31,device_nam:31,device_secret:31,devicesetup:115,dfp:252,dhcp_enabl:131,dht1x:109,diagram:[212,219,389,403],dial:369,did:[291,316],differ:[179,252,273,357],differenti:266,difftim:[97,376],dig:78,digit:[0,7,26,39,45,55,76,77,78,159,274],dir_path:132,direct:[159,377],directli:[188,189,190,193,194,195,308,357],disabl:[159,193,194,195],disablepwm:32,disc:159,disc_mod:96,discchr:96,discdsc:96,disclosur:353,discon:113,disconnect:[54,93,96,131],discsvr:96,disp:[8,168],displai:[159,163,247,291,304,357,366,369],distinguish:252,divid:[248,252],divis:248,dma:252,dns_index:113,document:[28,53,213,220,233,271,317,320,334,346,379],doe:[13,17,247,252,291,357,369],doesn:247,dofil:376,domain:51,domain_nam:51,don:[291,357],done:30,dot:336,down:[159,193,194,195],download:[210,211,215,218,244,245,247,252,266,270,291,298,315,366,403],dr:252,draw2lcd:91,draw:[9,35],draw_mask_fade_param_t:87,draw_mask_fade_param_t_fre:87,draw_mask_line_param_t:87,draw_mask_line_param_t_fre:87,draw_mask_radius_param_t:87,draw_mask_radius_param_t_fre:87,drawbox:124,drawbuttonutf8:124,drawcircl:[35,124,133],drawdisc:124,drawdrcod:124,drawellips:124,drawfilledellips:124,drawfram:124,drawglyph:124,drawgtfontgb2312:[35,124],drawgtfontgb2312grai:35,drawgtfontutf8:[35,124],drawgtfontutf8grai:35,drawlin:[35,124,133,291],drawpixel:124,drawpoint:35,drawqrcod:35,drawrbox:124,drawrect:133,drawrectangl:35,drawrfram:124,drawstr:35,drawtriangl:124,drawutf8:124,drawxbm:[9,35,124],drive:[35,50,52,73,81,85,175,247,291],driver:[62,70,77,86,128,162,247,291],drop:159,dropdown:159,drv:110,ds18b20:109,ds3231:48,dtick64:89,dtimercheck:101,dtimerstart:101,dtimerstop:101,dtimerwkid:101,dtp:87,dual:[252,291],dump:[10,376],duplex:252,dust:83,duti:36,e:376,each:[291,379],earfcn:94,easi:90,ec11:49,ec618:[265,268,270,280],eci:92,edg:[159,291],edit:[207,301,376],effect:[159,163,182,183,184,291,301],eink1:390,eink:9,either:[211,291],electr:[235,369],electrochem:82,electron:391,element:159,empti:[169,291],emul:252,en:36,enabl:[10,35,36,38,87,92,104,193,194,195,252,274,301,366],enbid:92,encapsul:89,encod:[4,33,49,102,124],encodestr:19,encrypt:[6,105,232],end:[299,302],endian:72,endswith:117,engin:389,english:274,enhanc:[248,251],ent:87,enter:[329,337,360],entir:169,entiti:323,entri:376,env:376,environ:[207,211,215,217,245,251,297,298,311,312,317,319,376],ephemeri:263,equip:[137,148,154,159,291,293,369],eras:[98,110,111,193,194,195,252],erasewrit:111,errdump:10,error:[10,84,211,247,291,311,376],errstop:1,escap:375,esp32:[284,288,291,317,351],esp32c3:[281,285],esp32s3:286,essenc:375,etc:357,ethernet:128,evalu:104,even:357,event:[1,3,125,159,200,201,202,252,323],event_send:87,exampl:[159,383,386,391,393,396,399,402],exce:252,exceed:266,except:252,execut:[299,376],exist:[25,29,125,207,322],exit:376,exp:376,expans:[207,264,291,301,392,404],expect:301,experi:380,explain:[350,375],explan:266,express:[322,376],extend:[29,53,300,332],extens:68,extern:[159,209,217,252,281,291],exti:30,f1:376,f2:376,f:376,facil:322,fade:87,fail:[252,316],failur:[13,17],faq:[211,247,289,291,316,357,369],fast:[252,357],fastlz:11,fatf:12,fault:[252,369],fdb:[13,169,291],featur:[291,333],feed:[91,129],feed_dog:42,fft:291,fg_color:35,field:351,fifo:252,file:[15,16,35,159,163,188,189,190,211,223,229,236,285,300,301,317,325,343,345,349,375,376],file_path:[4,81,95,132],file_tld:343,filenam:376,files:29,fill:[9,29,35,133,252],filter:[62,159,252],filter_polici:96,fin:130,find:[291,375,376],finish:15,firmwar:[15,107,204,209,244,247,254,261,265,266,269,270,274,289,291,300,311,312,317,344,357,366,369],first:[120,252,375],fit:159,fix:[343,357],flag1:2,flag2:2,flag:[2,66,90,96,113,124,252],flash:[110,111,159,188,189,190,193,194,195,209,217,247,252,281,282],flash_eraseoptionbyt:252,flicker:159,floor:376,flush:[35,376],flymod:92,fmod:376,fmt:[97,376],fn:38,fnc:379,focu:159,focus:159,fold:91,folder:[317,325],follow:[211,351],font:[9,14,21,35,87,124,126,159,316,324,336,388],font_fre:87,font_get:87,font_load:87,forc:[9,101,366,376],force_level:107,fore:35,foreword:[162,163,252],form:[159,300],formaldehyd:82,format:[12,26,99,133,159,274,300,336,343,344,375,376],formatstr:376,fota:[15,58],foundat:159,four:355,framework:[377,378,379],freerto:291,freq:[7,85,86],frequenc:[177,178,179,223,229,236,248,280,285,291],fresh_rat:36,from:[159,211,252,357,369],frombase32:117,frombase64:117,fromcod:27,fromhex:117,fs:16,fsize:16,fskv:17,fsstat:16,ftp:18,full:[9,188,189,190,193,194,195,200,201,202,252,302,376],fun:[121,379],func:[1,3,24,26,87,112,119,125],funcnam:376,g:35,gadget:380,garbag:376,garbl:291,gatewai:[128,131],gaug:159,gc032a:385,gear:[357,369],gener:[31,33,252,268,270],geomagnet:[43,69],get:[0,17,20,30,71,88,100,106,126,159,177,178,179,217,291,317,378,379],get_accel:64,get_cell_period:92,get_data:[40,41,46,47,52,55,60,61,69,74,79],get_gyro:64,get_lux:75,get_mag:43,get_rgb:75,get_temp:64,get_temperatur:48,get_val:39,get_vdd:91,getband:[92,94],getbootcfun:94,getcellinfo:[92,94],getclk:89,getdevic:111,getdevicenum:111,getdevicet:111,getdisplayheight:124,getdisplaywidth:124,getedrx:94,getedrxptw:94,getenv:376,geterror:1,getfre:12,getgga:38,getgll:38,getgsa:38,getgsv:38,gethook:376,getinfo:[131,376],getintloc:38,getip:131,getlevel:84,getloc:376,getmac:[128,131],getmetat:376,getpm_10:83,getpm_1:83,getpm_2_5:83,getppb:82,getppm:82,getpsm:94,getraw:3,getregistri:376,getrmc:38,getsiz:35,gettxt:38,gettz:94,getupvalu:376,getuservalu:376,getvtg:38,getwin:9,getzda:38,gif:87,gif_creat:87,gif_restart:87,git:345,gite:301,give:376,global:[375,376],glossari:323,glue:159,gmatch:376,gmssl:19,gnss:381,gnss_state:120,goal:[324,333],good:291,gpio:[20,193,194,209,217,218,248,252,269,291,337,345],gpio_a:49,gpio_b:49,graffiti:54,grai:35,grammar:375,graphic:124,grid:77,ground:357,group:[301,381],gsub:[375,376],gt911:50,gt911_i2c:50,gt911_int:50,gt911_re:50,gtfont:21,guid:[300,315,351,368],gyroscop:55,h:[3,9,35,87,124],ha:[247,302],hal:211,halt:70,hand:355,handl:[96,159,376],handler:[132,322],hang:86,happili:301,hard:198,hardfault:89,hardwar:[22,166,167,168,169,170,171,172,175,176,177,178,179,181,182,183,184,186,187,188,189,190,192,193,194,195,197,198,199,200,201,202,209,213,217,218,220,225,230,233,238,242,247,249,252,255,259,267,276,281,282,283,286,287,295,323,384,387,389,394,397,400,403],hash:[6,105],hash_finish:6,hash_init:6,hash_upd:6,have:[291,357],hcode:37,head:357,header:[23,37,130,211],header_tld:343,heart:88,height:[9,133,159],helloworld:159,help:[159,301,304],here:291,hex:[117,350],hexadecim:[177,178,179,350],hexstr:131,hid_mod:127,hid_rx:127,hid_tx:127,hide:159,high:[179,248,369],high_duty_cycl:96,higher:369,highest:291,highlight:159,himself:91,histor:366,histori:266,hmac:6,hmac_md5:6,hmac_sha1:6,hmac_sha256:6,hmac_sha512:6,hmeta:22,hook:376,host:[56,57,93],hostnam:131,hous:355,how:[291,316,327],http:[23,24,51],httpdn:51,httpsrv:24,huawei:54,huge:376,humid:[41,44,47],hwtimer_id:30,hwver:22,hx711:109,hz:89,i2:26,i2c:[25,91,170,171,172,173,209,217,235,269,291],i2c_id:[39,40,41,43,44,45,47,48,55,61,63,64,68,69,75,79,88,91],i2cid:74,i2s:252,i:[291,301,316,357,369,376],ibeacon:96,ic:[85,86],iccid:[92,94],icm20608d:64,icm2068g:64,iconv:27,id:[0,1,3,19,25,26,38,62,67,70,92,96,101,106,107,108,110,115,119,123,125,127,128,177,178,179,188,189,190,193,194,195,210,291,379],idea:[325,326,327,329,330,331,332,337,338,339,340,341],ii:252,ili9341:291,illustr:[279,293],imag:[87,159],imei:[92,94],img1:291,img:[159,291],img_set_src:291,imgbtn:159,imgbtn_green:291,implement:[302,320,333],imsi:[92,94],in_buff:4,ina226:52,ina226_i2c:52,inbuf:27,inch:[291,395,401],includ:[322,330],incom:345,incompat:376,incomplet:146,inconsist:357,increas:369,independ:[248,376],indev_drv_regist:87,indev_kb_upd:87,indev_point_emulator_upd:87,index:[9,91,92,96,111,113,159,359,376],indic:[66,291,358,369,372],industri:291,ineffici:291,info:[4,84,344],inform:[159,188,189,190,213,220,244,264,270,281,286,291,304,322,323,324,325,326,327,329,330,331,332,333,337,338,339,340,341,347,351,403],infrar:[32,63,65,91],init:[3,8,9,15,17,21,30,34,35,39,40,41,42,43,45,47,48,49,50,52,55,61,62,63,64,65,68,69,70,72,73,74,75,76,77,78,79,82,83,85,86,87,88,91,95,96,99,108,110,111,114,128,129,131,376],init_level:30,initi:[6,91,170,171,172,188,189,190,193,194,195,197,200,201,202,291,307,375],initreg:3,inject:252,ink:[9,291,390,391],inlai:159,input:[30,159,209,217,323,357,376],input_buff:30,input_fil:134,inreversem:6,insert:376,insid:[291,328],instal:[207,210,211,245,291,298,306,308],instruct:[246,248,251,252,262,263,269,299,360,361,369,373],instrument:159,intens:[45,79],interact:[299,308,345],interfac:[28,53,91,113,159,252,291,302,324,330,333,345,366,376,379],intern:[159,248,263],interrupt:[211,252,375],interv:252,inton:274,introduc:291,introduct:[139,143,150,156,159,162,166,167,168,169,170,171,172,175,176,177,178,179,181,182,183,184,186,187,188,189,190,192,193,194,195,197,198,199,200,201,202,209,217,274,281,286,351,366,376],invert:159,invoff:35,invon:35,io:[29,30,68,269,328,376],iomux:89,ioqueu:30,iot:[31,94,353,354,357,364,365,368,369,371],iot_config:54,iot_core_id:31,iotauth:31,iotcloud:54,iotda:31,iovol:101,ip:[113,128,131],ip_addr:18,ip_los:120,ip_readi:120,ip_typ:92,ipair:376,ipv6:92,ir:[32,338],irq:[20,73],irq_mod:30,irq_pin:[65,78,128],is_default:92,is_en:124,is_input:[30,89],is_ok:15,is_sign:1,is_tl:113,is_udp:113,isbigend:133,isclos:65,isdecod:4,isdelet:10,isdon:15,isend:1,isequ:133,isfix:38,isfloat:133,isipv6:93,isp:252,isreadi:94,issign:133,issu:[54,315,324],isyield:376,item:[92,207],iter:[13,17,325],itself:59,itvl_max:96,itvl_min:96,iv:6,j:376,json:[33,344],jtag:252,jtrst:252,judg:[46,252,375],judgment:375,just:[291,308],kb_inc:120,keep_cnt:113,keep_idl:113,keep_interv:113,keepal:93,keepemtri:117,kei:[6,13,17,19,31,70,71,78,87,95,105,123,159,169,209,217,273,281,286,360],keil:[211,247,252,291],key_cb:78,key_in:114,key_out:114,keyboard:[34,114,120,159,291],knob:159,knowledg:[206,300,301,322,324,325,326,327,328,329,330,331,333,337,341,375],known:324,kv:[13,17,71],kv_clr:13,kv_del:13,kv_get:13,kv_iter:13,kv_set:13,kv_stat:13,kvdb_init:13,l3g4200d:55,l6985e:211,label:159,languag:[274,376,402],larg:291,laser:83,lastreson:101,latch:72,latest:247,layer:[321,328,329,330,337,338,339,340,341],layer_si:87,layer_top:87,layout:[159,349,355,370],lbsloc2:57,lbsloc:56,lcd:[35,36,87,175,209,217,291,395,398,401],lcdseg:36,ldo:235,learn:206,led:[77,159,281,286],ledpin:66,ledpinsetfunc:66,legal:375,legend:[279,293],len:[6,15,20,25,26,29,58,98,108,109,110,115,125,127,133,375,376],length:[133,159,376],less:252,level:[11,20,30,84,101,176,322,329,337,376],lexic:376,lf:[188,189,190],libcoap:37,libfota:58,libfota_timeout:58,libgnss:[38,120],libnam:376,libnet:59,librari:[8,9,14,31,33,53,54,59,87,94,96,98,107,109,110,115,119,121,124,125,126,129,133,211,291,293,300,301,308,311,312,317,320,375,376,379],light:[45,76,79,182,183,184,209,217,223,229,291,357],light_color:87,like:291,limit:343,line:[9,87,159,206,303,351,357,376,381],link:[225,270,281,286,301,323,383,384,403],link_pin:128,linkup:113,linux:[163,311,312,318],lis2dh12:60,list:[14,125,126,159,247,291,355,376],listchr:96,listen:[59,113],listsvr:96,littl:300,ll:211,lm75:61,lm75_data:61,lm75a:61,lm75b:61,lmeter:159,load:[102,223,229,236,252,285,369,376],loadfil:376,loadlib:376,local:[375,376],local_nam:18,local_port:113,localip:113,locat:56,lock:98,locstr:38,log:[84,176,204,209,217,280,376],log_level:113,logic:[2,375,376],login:[18,316],logstor:84,loop:[104,197,375],lora2:86,lora:[85,120],lora_devic:86,lora_rx_don:120,lora_rx_error:120,lora_rx_timeout:120,lora_tx_don:120,lora_tx_timeout:120,loraconfig:[85,86],lose:[13,17],low:329,lower:376,lpmem:291,lsdir:29,lsmount:29,ltepin:66,ltrim:117,lua:[300,320,322,324,325,326,328,329,330,331,333,337,338,339,340,341,345,350,374,375,376,380],lua_absindex:376,lua_alloc:376,lua_arith:376,lua_atpan:376,lua_cal:376,lua_callk:376,lua_cfunct:376,lua_checkstack:376,lua_clos:376,lua_compar:376,lua_concat:376,lua_copi:376,lua_createt:376,lua_debug:376,lua_dump:376,lua_error:376,lua_gc:376,lua_getallocf:376,lua_getextraspac:376,lua_getfield:376,lua_getglob:376,lua_gethook:376,lua_gethookcount:376,lua_gethookmask:376,lua_geti:376,lua_getinfo:376,lua_getloc:376,lua_getmetat:376,lua_getstack:376,lua_gett:376,lua_gettop:376,lua_getupvalu:376,lua_getuservalu:376,lua_hook:376,lua_insert:376,lua_integ:376,lua_isboolean:376,lua_iscfunct:376,lua_isfunct:376,lua_isinteg:376,lua_islightuserdata:376,lua_isnil:376,lua_isnon:376,lua_isnoneornil:376,lua_isnumb:376,lua_isstr:376,lua_ist:376,lua_isthread:376,lua_isuserdata:376,lua_isyield:376,lua_kcontext:376,lua_kfunct:376,lua_len:376,lua_load:376,lua_newst:376,lua_newt:376,lua_newthread:376,lua_newuserdata:376,lua_next:376,lua_numb:376,lua_numbertointeg:376,lua_pcal:376,lua_pcallk:376,lua_pop:376,lua_pushboolean:376,lua_pushcclosur:376,lua_pushcfunct:376,lua_pushfstr:376,lua_pushglobalt:376,lua_pushinteg:376,lua_pushlightuserdata:376,lua_pushliter:376,lua_pushlstr:376,lua_pushnil:376,lua_pushnumb:376,lua_pushstr:376,lua_pushthread:376,lua_pushvalu:376,lua_pushvfstr:376,lua_rawequ:376,lua_rawget:376,lua_rawgeti:376,lua_rawgetp:376,lua_rawlen:376,lua_rawset:376,lua_rawseti:376,lua_rawsetp:376,lua_read:376,lua_regist:376,lua_remov:376,lua_replac:376,lua_resum:376,lua_rot:376,lua_setallocf:376,lua_setfield:376,lua_setglob:376,lua_sethook:376,lua_seti:376,lua_setloc:376,lua_setmetat:376,lua_sett:376,lua_settop:376,lua_setupvalu:376,lua_setuservalu:376,lua_stat:376,lua_statu:376,lua_stringtonumb:376,lua_toboolean:376,lua_tocfunct:376,lua_tointeg:376,lua_tointegerx:376,lua_tolstr:376,lua_tonumb:376,lua_tonumberx:376,lua_topoint:376,lua_tostr:376,lua_tothread:376,lua_touserdata:376,lua_typ:376,lua_typenam:376,lua_unsign:376,lua_upvalueid:376,lua_upvalueindex:376,lua_upvaluejoin:376,lua_vers:376,lua_writ:376,lua_xmov:376,lua_yield:376,lua_yieldk:376,luadb:343,lual_addchar:376,lual_addlstr:376,lual_adds:376,lual_addstr:376,lual_addvalu:376,lual_argcheck:376,lual_argerror:376,lual_buff:376,lual_buffinit:376,lual_buffinits:376,lual_callmeta:376,lual_checkani:376,lual_checkinteg:376,lual_checklstr:376,lual_checknumb:376,lual_checkopt:376,lual_checkstack:376,lual_checkstr:376,lual_checktyp:376,lual_checkudata:376,lual_checkvers:376,lual_dofil:376,lual_dostr:376,lual_error:376,lual_execresult:376,lual_fileresult:376,lual_getmetafield:376,lual_getmetat:376,lual_getsubt:376,lual_gsub:376,lual_len:376,lual_loadbuff:376,lual_loadbufferx:376,lual_loadfil:376,lual_loadfilex:376,lual_loadstr:376,lual_newlib:376,lual_newlibt:376,lual_newmetat:376,lual_newst:376,lual_openlib:376,lual_optinteg:376,lual_optlstr:376,lual_optnumb:376,lual_optstr:376,lual_prepbuff:376,lual_prepbuffs:376,lual_pushresult:376,lual_pushresults:376,lual_ref:376,lual_reg:376,lual_requiref:376,lual_setfunc:376,lual_setmetat:376,lual_stream:376,lual_testudata:376,lual_tolstr:376,lual_traceback:376,lual_typenam:376,lual_unref:376,lual_wher:376,luat:[322,323,327,328,330,377,378],luatask:[377,379],luato:[28,159,162,197,206,209,244,261,265,269,270,274,300,303,304,305,306,307,309,323,336,344,349,380,402],lvgl:[87,159,160,209,217,291],m:[9,376],mac:[96,128,131],machin:[116,215,218,222,228,231,244,270,271,281,308,351],macro:211,main:[177,178,179,211,223,229,236,247,252,280,285],mainten:369,major:96,make:301,manag:[101,247,306,307,329,341,376],mani:[291,301],manipul:[117,133],manual:[159,193,194,195,210,211,217,245,247,291,298,360,369,376],manufactur:[193,194,195],map:[34,100,220,225,227,242,259],mask:[70,89,159,376],mass:[271,308],master:[208,252],match:[291,375,376],math:376,mathemat:376,matrix:[34,114,159,336],max30102:88,max:[125,376],max_temp:91,max_tick:30,maximum:[159,291,369],maxinteg:376,maxout:11,maxsiz:111,mcc:94,mclk:26,mco:248,mcp2515:62,mcu:[89,180,381],md5:6,md:[6,105],md_file:6,mdelai:122,mdk:211,mean:[279,293,343],measur:[91,170,171,172,369],measured_pow:96,mechan:378,megabyt:291,meminfo:107,memori:[133,326,328],merg:159,messag:[120,159,197,252,302,327,376],meta:376,metadata:22,metat:376,meter:159,method:[6,23,31,252,291,311,312,323,350,366,376],mhz:89,middlewar:341,min:376,min_temp:91,minimum:218,mininteg:376,miniz:90,minor:96,minu:2,minut:282,mipp:357,mirror:159,miso:115,mkdir:29,mkf:29,mlx90614:63,mlx90640:91,mnc:94,mobil:[92,120,357],modbu:332,mode2:19,mode:[4,6,7,12,19,20,26,29,38,62,70,73,78,85,86,89,94,96,101,112,115,124,127,131,159,252,291,299,355,360,366,369,370,376],model:[9,22,159,291],modev:94,modf:376,modifi:[159,176,211,252,291,373],modnam:376,modul:[35,67,82,85,86,88,103,222,228,235,244,251,252,255,257,261,270,291,297,320,324,376],month:159,more:[311,312],mosi:115,most:322,motiv:332,motor:291,mount:[12,111,188,189,190,355],mount_point:[12,111],mous:291,move:[159,376],mpu6050:64,mpu6500:64,mpu6xxx:64,mpu9250:64,mqtt:93,mqttc:93,ms:[20,115,379],msdbox:159,msg:[112,322],msgbu:327,msgh:376,msgid:37,muid:92,multi:[2,86,291,375],multimedia:[1,4],multimet:357,multipl:[266,375,379],multiplex:269,multitask:379,mute:274,mutual:323,my:357,mytim:97,n1:376,n2:376,n:[133,376],name:[13,14,51,87,96,100,126,159,345,376],nation:19,navig:159,nb:94,nbiot:[94,381],ne:95,nec:65,necessari:[211,291],necir:65,need:[91,317,325,326,327,328,329,330,337,339,340,341],need_ipv6_dn:113,needl:159,netc:59,netl:66,netmask:131,network:[66,92,113,272,291,293,328],network_check_period:92,new_apn_nam:92,new_nam:131,new_path:97,newnam:376,next:[17,376],next_id:38,nil:375,nimbl:96,nine:64,nmea:38,no_autoat:211,noclear:9,non:[59,70,252,357],nop:107,note:[91,209,254,265,300,360],noth:357,nstinput:92,nstonoff:92,ntp_error:120,ntp_updat:120,num:[92,133],num_channel:1,number:[92,159,177,178,179,274,304,357,375],nvm:291,o:211,obj:[33,87,159,376],obj_set_event_cb:87,obj_set_signal_cb:87,object:[159,302,376],objmask:159,obsolet:[8,134],obtain:[179,188,189,190,274],occas:291,off:[35,66,193,194,235,252,330,357,369,373],offlin:252,offset:[29,98,108,110,111,133,159,376],old_path:97,oldnam:376,on_off:1,one:[211,252,291],onenet:[31,54,149],onff:92,onheap:35,onlevel:1,onli:[114,159,252],onlin:380,onoff:[30,92,93,101,113,130],open:[0,7,27,77,78,103,159,247,291,376],openocd:247,oper:[2,9,16,20,25,27,30,89,92,94,97,98,107,109,110,115,122,125,127,129,131,328,360,361,373,375,376,378],opt:[23,124,130,376],option:[159,211,248,252],ordinari:305,origin:[274,291],originstr:19,os:[97,376],oscil:[218,291],ota:266,ota_port:58,ota_url:58,other:[54,244,251,252,366,379],otp:98,out:[72,282],out_buff:4,out_path:3,output:[30,104,176,177,178,179,182,183,184,209,210,217,248,252,323,357,366,369,370,373,375,376],output_fil:134,outrevers:6,overrid:159,overview:[159,208,235,247,309,360,363,369,384],own:357,pack:[99,133,252,376],packag:[111,211,235,245,261,262,263,266,298,306,308,376],packet:266,packsiz:376,pad:[6,19],pad_index:89,padelai:1,page:[159,252,360,373],pair:376,palett:159,panel:355,paper:391,papin:1,para:133,param1:[15,58],paramet:[31,274,351,375],parent:87,pars:[33,37,38],part:[159,166,169,170,171,172,176,177,178,179,182,183,184,188,189,190,193,194,195,197,198,200,201,202,355],parti:252,partii:125,partit:13,pass:[357,379],passwd:131,password:[18,19,92,93,131,159],path:[1,6,14,15,16,29,87,97,376],patha:107,pathb:107,pathc:107,pathd:107,pattern:376,paus:[1,373],payload:[37,93],pbdata:102,pc:[299,366],pcall:376,pcf8563t:67,pcf8574:68,pcm:252,pd:[357,360],pdn_type:94,per:[177,178,179],perform:[235,252,280],period:[10,103,107,291],peripher:[161,193,194,195,211,235,293,328,335,392],phenomenon:252,phone:[112,357],phycellid:94,pi:376,pictur:159,pid:127,pide:2,pin1:92,pin2:92,pin:[20,30,32,68,100,101,109,159,193,194,195,220,225,227,235,242,252,259,281,286,291],pin_busi:9,pin_c:9,pin_clk:109,pin_dat:109,pin_dc:9,pin_reset:9,pinout:[212,215,219,222,224,228,231,233,246,251,253,262,263,264,294,297],pixel:[133,291],pkg:306,pkx:19,pky:19,place:211,placehold:159,plai:[1,163],plain:376,plan:369,platform:[31,54,142,146,163,311,312,328,329,330,337,338,339,340,341],playback:[163,164],playstop:1,pleas:[211,300],pll:248,plu:2,plug:[247,291,357],plugin:[311,312],pm:[101,181],png:291,pnum:103,po:376,point:[5,159,322,324,325,326,327,328,329,330,331,333,337,341,378],poli:6,polici:274,pool:326,pop:369,popen:376,port:[18,24,34,56,57,80,93,113,114,125,200,201,202,210,215,291,357],portabl:289,posit:[57,159,252,263,291,381],possibl:291,post:301,power:[13,17,36,101,208,216,218,223,229,235,236,263,273,281,285,286,329,337,353,354,355,357,364,365,368,369,370,371,373],power_on_delai:12,power_pin:12,powerlevel:94,powersav:131,pp:357,practic:[217,348],pre:[206,252],precaut:[159,251,252,281,369],precis:[103,179],prefix:117,preload:376,prepar:[142,163,166,167,168,169,170,171,172,175,176,177,178,179,181,182,183,184,186,187,188,189,190,192,193,194,195,197,198,199,200,201,202,209,210,211,217,218,245,271,298,311,312,315,317],preparatori:301,press:369,pressur:[46,74],prevent:42,preview:360,previou:[211,376],previous:291,principl:[303,378],print:[9,78,291,351,376],printf:252,prioriti:[252,376],privat:19,pro:371,probabl:252,problem:333,process:[37,38,124,274,322,323,376],product:[163,235,271,281,286,308,360,381],product_id:31,product_kei:31,productkei:56,produt_id:31,profil:255,prog:376,program:[206,291,304,323,375,376,377],programm:252,progress:159,project:[140,151,157,282,307,308,309,311,312,317,391],prompt:308,pronunci:274,propag:159,protect:252,protobuf:102,protobuff:102,protocol:[62,65,92,272,323],provid:[209,244,261,270,291],psmmode:94,publish:[54,93,119,302,345,379],pull:[18,20,248],pull_mod:30,puls:[20,103],purchas:[215,222,228,251,261,297,381,384],pure:206,purpos:252,push:[18,104],pwd:105,pwm:[103,182,183,184,185,209,217,269,291],qcloud:31,qmc5883l:69,qo:[54,93],qq:[301,381],qrcode:[9,87],qrcode_cr:87,qrcode_delet:87,qrcode_upd:87,qualcomm:[21,388],qualiti:3,quantiti:369,queri:[133,169,177,178,179,306],question:375,quick:[159,206,375],quickli:357,quiz:375,r:[35,124,133],rad:[124,376],radiu:[9,87],random:376,randomse:376,rang:[0,159,373],rapid:301,rate:88,raw:280,raw_data:91,raw_point:91,rawdata:37,rawequ:376,rawget:376,rawlen:376,rawset:376,rc522:70,rc522_config_isotyp:70,rclk:72,rcr:128,rddi:247,re:104,read:[0,12,44,67,70,98,104,110,111,125,133,170,171,172,188,189,190,193,194,195,252,274,291,349,376],read_datablock:70,read_light:45,read_rawrc:70,read_tim:48,readdht12:25,readfil:29,readi:[93,130,131,316],readreg:25,readsht30:25,real:[48,106,291,366],realiz:291,reboot:[101,107],receiv:[65,107,132,200,201,202,252],receive_buff:62,recogn:[247,357],recolor:159,recommend:[206,207,381],reconfigur:252,reconnect:[93,130],reconnect_tim:[93,130],record:10,rect:9,recv:[25,26,85,86,115],recv_cb:65,refer:[211,235,376],refresh:373,refresh_r:91,reg32:89,reg:25,regist:[200,201,202,291],registr:377,registri:376,regular:375,relat:[159,163,211,264,266,270,281,286,375],releas:[4,30,113,132,252,254,265],relev:[291,322,324,325,326,327,328,329,330,331,333,337,341],reload:252,remain:252,remind:316,remot:[32,71],remote_nam:18,remote_port:113,remoteip:113,remov:[97,159,306,376],renam:[97,376],rep:[375,376],repeat:[32,116],repeat_cnt:30,repl:[104,376,380],replac:[251,252,282],report:10,req_cod:70,reqaddr:56,reqcellinfo:92,reqedrxvaluem:94,reqtim:[56,57],request:[23,56,57,58,70,101],requir:[159,211,230,345,351,376],reqwifi:56,reserv:291,reset:[62,70,92,132,218,252],resistor:248,resiz:[133,159],resolut:[51,311,395,398,401],resourc:[218,281,286],respons:323,restart:357,result:[252,345],resum:376,retain:[54,93],reus:252,revers:376,revert:6,rf:293,rgb565:35,rgb:291,right:316,rmdir:29,roll:159,roller:159,rotari:49,rotat:[9,159],rout:381,routin:291,row:[159,252],rp2040:292,rs485_delai:125,rs485_gpio:125,rs485_level:125,rsa:105,rsrp:[92,94],rsrq:[92,94],rssi:[92,94],rst:70,rst_pin:128,rtc:[106,186,209,252,291],rtcauto:38,rtime:92,rtkv:71,rto:[107,291],rtr:128,rtrim:117,rule:[274,376],run:[5,15,119,291,376,377,379],rx:[113,124,125],rx_hwtimer_id:125,rx_len:115,rx_pin:125,rxbuff:[25,115],rxclear:125,rxe:252,rxlen:25,rxpacket:73,rxsize:125,ry:124,s3:288,s:[331,350,376],same:291,sampl:[26,252,291,301,302],sample_r:1,save:[169,291,316],save_path:3,scale:[159,366],scan:[25,78,96,131],scan_period:123,scanresult:131,scatter:211,scenario:332,schedul:328,schemat:[212,219,389,403],scl:[25,76],scl_pin:78,sclk:72,scm:291,scope:159,scr:87,scr_act:87,scr_load:87,scr_load_anim:87,screen:[9,175,227,291,357,369,390,391,401,404],screenshot:280,script:[204,209,223,229,232,236,285,291,366],scroll:[159,369],scrollabl:159,sd:291,sd_read:108,sd_write:108,sda:[25,76],sda_pin:78,sdio:[108,209,217],sdk:291,sdk_appid:31,search_cell_tim:92,searcher:376,searchpath:376,second:[177,178,179,373],secret:[6,19],section:211,sector:[193,194,195],seek:[133,376],seem:291,seg:36,seg_data:[77,78],seg_mark:36,seg_set:36,segment:[36,227],select:[70,159,211,252,274,279,366,373,376],selector:159,self:[159,299,375],send:[25,26,56,81,85,86,112,115,130,170,171,172,197,200,201,202,252,327],send_buff:62,send_data:115,send_msg:96,sendbuff:124,senddisplaydata:77,sendind:96,sendmsg:121,sendnec:32,sendnotifi:96,sensor:[41,43,44,45,46,47,48,55,60,61,64,69,74,75,79,83,109,230],sent:[252,291],sep:376,separ:[117,357],sequenc:30,seri:[159,265,268,270,291,317,404],serial:[125,200,201,202,204,210,215,291],seriesiot:357,server:[24,80],server_cert:[58,113],set:[17,20,71,73,106,133,159,177,178,252,273,274,357,360,369],set_bit_mask:70,set_channel:[85,86],set_id:127,set_mod:73,set_rxconfig:[85,86],set_tim:48,set_txconfig:[85,86],setauto:92,setband:[92,94],setbaseyear:106,setbitmapmod:124,setblinktim:66,setbootcfun:94,setbright:[77,78],setbu:1,setcap:30,setcfun:94,setchr:96,setclk:89,setcolor:35,setcontrast:124,setctx:9,setdefaultpul:20,setdelai:30,setdn:113,setdrawcolor:124,setedrx:94,setedrxptw:94,setfont:[9,35,124],setfontmod:124,setframebuff:133,setgpio:30,sethook:376,setlevel:84,setlight:76,setloc:376,setlocal:376,setmac:131,setmetat:376,setmod:131,setnewsmscb:112,setpath:107,setpowersav:124,setpsm:94,setrang:0,setstat:66,sett:17,settimeout:129,settz:94,setup:[9,20,25,26,36,66,67,71,115,123,125,373],setupbreatel:66,setupbuff:35,setupvalu:376,setuservalu:376,setuuid:96,setvbuf:376,setwin:9,setxtal:89,sever:[159,291,357],sfd:[110,187],sfud:[111,188,189,190,191,209,217],sha1:6,sha256:6,sha512:6,shake:273,shell:355,shield:62,shift595:72,shift:2,show:[2,9,159],showimag:35,shut:[193,194,195],shutdown:[88,101],si24r1:73,sig:[19,105],sign:105,sim_ind:120,simid:92,simpin:92,simpl:[159,299,318,319,349,375],simplest:300,simul:[95,291],sin:376,sinc:357,singl:[159,197,291],singleshow:76,site:316,six:64,size:[9,35,87,111,115,124,159,212,219,235,252,282,326,375,376],skei:[13,17],slaveaddr:25,sleep:[9,35,87,252],slider:159,sm2decrypt:19,sm2encrypt:19,sm2sign:19,sm2verifi:19,sm3:19,sm3hmac:19,sm4decrypt:19,sm4encrypt:19,sm:[19,112,116,120],small:[206,375],smaller:369,smart:252,smartconfig:131,smell:369,smoothli:369,sms_inc:120,sn:[89,92,94],snr:[92,94],sntp:113,sntp_server:113,soc:[28,162,265,291,300,344,349,381],socket:[59,113,120],soft:252,soft_kb_inc:120,softkb:114,softkeyboard:[114,120],softwar:[42,111,114,166,167,168,169,170,171,172,175,176,177,178,179,181,182,183,184,186,187,188,189,190,192,193,194,195,197,198,199,200,201,202,208,209,217,252,262,263,291,306,323,366],solut:[247,266,324,333],some:[89,252],sort:376,sound:369,sourc:[159,211,228,247,310,315,317],source_32k:89,source_main:89,spe:252,special:[89,209,281,286,343],specif:[188,189,190,252,345],specifi:[193,194,195,291,329,337],speech:274,speed:[25,128,159,274,291],spi:[110,111,115,188,189,190,192,193,194,195,196,209,217,252,269,281,291,339],spi_bandr:111,spi_c:[12,110,111],spi_devic:[9,21,87,111,115],spi_id:[62,65,70,73,110,111],spi_spe:12,spiconfig:[85,86],spiid:[9,128],spiid_or_spidevic:12,spinbox:159,spinner:159,spl06:74,spl06_01:74,splice:375,split:[117,159],sqrt:376,srv_uuid:96,ssid:131,ssl:93,ssllog:113,st7735:291,stack:376,staip:131,standard:[252,291,357,376],standi:107,start2:133,start:[1,3,6,24,30,65,120,125,127,133,159,197,206,217,315,330,357,375,379],startraw:3,startswith:117,startup:[177,178,179,211],state:[66,87,93,116,159,252,323],statem:116,statement:[375,376],station:[56,57],statu:[17,66,92,110,118,159,323,376],step:[289,291,355],still:[247,357],stop:[1,3,24,25,30,127,197,252,323],stop_bit:125,stopap:131,store:[301,317],storge_loc:[15,58],str:[6,9,33,35,37,38,117,124],stream:6,string:[10,99,117,177,178,179,200,201,202,350,375,376],strip:376,strong:121,strongli:381,strtoll:2,structur:[309,327,330,332,336,369,376],sty_en:87,sty_zh:87,style:[84,87,159,176,274,331,332],style_cr:87,style_delet:87,style_list_cr:87,style_list_delet:87,style_list_t:87,style_t:87,sub:[375,376],subchr:96,submask:128,submiss:345,subscrib:[54,93,119,197,379],subscript:375,suffix:117,suit:272,summari:[280,350],suppli:[235,281,286,355,357,370,373],support:[40,46,54,61,64,86,114,159,211,228,245,248,252,291,293,298,332,357,376,381,385],suspend:323,svr_uuid:96,sw:252,swap:[35,375],swd:215,swing:159,swm181:298,swm181cbt6:[296,297],sxx32f103:252,sxx32f1xx:252,sy:[119,120,121,197,333,379],symbol:159,symmetri:159,synchron:59,synergi:[376,377],syntax:376,synthesi:332,sys_pub:345,sysplu:121,system:[2,16,120,159,188,189,190,218,252,272,325,328,349,376],system_air001xx:211,t0h:109,t0l:109,t1:376,t1h:109,t1l:109,t2:376,t:[33,37,247,291,301,357,376],ta_temp:91,tab:[106,159],tabl:[159,188,189,190,220,225,230,242,259,279,293,375,376],tabview:159,tac:[92,94],tag:[84,159],take:376,tan:376,target:121,task:[197,302,328,333,379],taskdel:121,taskinit:[119,379],taskinitex:121,taskl:66,tasklt:66,tasknam:[59,121],tautim:94,tc:252,tcs3472:75,technic:[228,358,359,369,372,381],temperatur:[41,44,47,61,63,91],tencent:155,tengxun:54,term:[308,323],termin:357,terminolog:303,test:[141,152,158,223,229,236,245,280,285,298,301,364,375],tester:365,text:[159,206,375],textarea:159,tf:67,tft:398,tft_:[395,401],than:[252,369],theme:159,theme_set_act:87,thi:[91,291],thick:87,think:291,third:252,thread:[291,376],three:[55,60],threshold:123,through:[252,291,325,357],tick1:89,tick2:89,tick64:89,tick:[89,94,159,177,178,179],tie:67,tile:159,tileview:159,tim2:252,tim5:252,tim:252,time:[6,48,67,92,93,97,106,159,247,252,291,366,376],time_tick:30,time_u:30,timea:97,timeb:97,timeout:[25,56,57,59,85,86,92,96,101,107,119,121,122,129],timer:[122,197,198,200,201,202,223,229,236,252,285,330,377,379],timer_start:107,timer_stop:107,timerisact:379,timerloopstart:[119,379],timerstart:[106,119,379],timerstop:[106,119,379],timerstopal:379,timestamp:252,timezon:106,titl:159,tl:272,tm1637:76,tm1640:77,tm1650:78,tmpfile:376,tmpname:376,to32:2,to64:2,tobase32:117,tobase64:117,tocod:27,toggl:20,tohex:117,tointeg:376,token:37,tonumb:376,tool:[204,209,252,261,303,315],toolkit:308,top:316,topic:[54,80,93,119,345],tostr:[133,376],total:326,totp:6,touch:[123,230,291],touchkei:[120,123],touchkey_inc:120,tovalu:117,tp:[6,9,14,35,38,87,96,131],tpname:102,traceback:376,traceswo:252,tradit:379,transfer:[25,115,252],transfer_done_top:[25,115],transpar:159,transplant:252,treasur:357,triangl:375,trigger:[170,171,172,252,357],trim:117,trimmer:159,trng:6,troubleshoot:218,tsl2561:79,tt:[1,274,291],tube:[76,77,78],turn:[182,183,184,193,194,252,330,357,369,373,375],turnov:291,tutori:[162,174,204,205,206,215,218,222,228,231,244,247,251,270,281,282,297,374,375],tuya:31,twice:252,two:[179,200,201,202,252,355],tx:[51,59,113,125],tx_hwtimer_id:125,tx_pin:125,txbuff:[25,115],txconfig:[85,86],txfp:252,txpacket:73,txstat:26,type:[2,4,6,10,37,81,89,107,110,133,159,200,201,202,291,308,332,343,349,375,376],typec:357,typic:270,tz:[94,106],u4:291,u8g2:124,u8g2_get:14,u8g2_load:14,u:376,ua:369,uart1:[200,201,202],uart:[125,199,200,201,202,203,209,217,269,291,340],uart_br:81,uart_id:[81,82,83,92],udata:376,udelai:122,udisk_attach_sdhc:127,udisk_detach_sdhc:127,udp:80,udpsrv:80,ufont:126,uid:70,ult:376,unabl:211,uncheck:159,uncompress:[11,90],under:[126,269,291],underli:[15,107,206,378],understand:375,unifi:126,uniqu:[177,178,179],unique_id:89,unpack:[99,133,376],unstabl:369,unsubchr:96,unsubscrib:[54,93,119,379],unsuccess:291,up:[159,218,248,357,369,376],updat:[159,206,247,304,306,375],updatecellinfo:94,upgrad:[15,58,266,304,357,360,366,369,371],upper:[316,376],upvalueid:376,upvaluejoin:376,uri:37,url:[23,130],urlencod:117,us:[31,51,54,91,133,162,188,189,190,197,200,201,202,206,211,215,246,247,252,281,291,302,316,327,331,332,338,339,340,357,369,376,379,383,386,391,393,396,399,402],usag:[159,167,168,175,181,186,187,192,199,209,217,252,299,318,319],usart:252,usb:[127,235,247,248,252,291,357,369],usbapp:127,user:[91,197,210,211,302,309,311,312,368],user_flag:10,user_nam:92,userapn:94,usernam:[18,93],utf8:376,utf:376,uuid:[96,291],v1020:254,v1021:254,v1103:265,v1104:265,v1105:265,v1106:265,v1107:265,v1108:265,v1:[291,357,369,371,376],v2:[57,357,376],v:[124,376],val1:[99,133,376],val2:[84,99,133],val3:[84,99],val:[20,68,84,94,95,101,379],valid:376,valn:99,valu:[1,12,13,17,20,70,71,89,92,96,159,252,302,343,357,369,375,376],variabl:[375,376],variou:[31,308],varnam:376,veri:[159,291],verifi:105,version:[31,70,96,107,159,223,229,236,247,266,285,291,299,304,363,375,376],vertic:159,vhid_cancel_upload:127,vhid_upload:127,vid:127,video:[3,163,164,206,375],view:[159,204,209,210,217,373],virtual:[247,269],visibl:[159,300,376],visit:316,vlcd:36,voic:[291,369],vol:1,voltag:[252,357,360,369,373],volum:274,vscode:207,w1_connect:109,w1_read:109,w1_reset:109,w1_write:109,w5500:[120,128],w800:291,w806:209,w:[3,9,35,87,124,373],wait485:125,wait:[15,59,113,119,197,282,302,323,333,375,379],waitabl:302,waitc:323,waitlink:59,waitmsg:121,waitt:323,waituntil:[119,379],waituntilext:379,wake:218,wakeup:35,wakeuppin:101,want:[291,316,357,369],warn:84,warning_level:107,watch:208,watchdog:[42,129],watchdogpin:42,waveform:[360,373],wdt:129,weak:376,weather_icon:9,websocket:130,wh:373,what:[209,215,222,244,251,261,270,291,297,322,331,350,369,376],when:[252,357,369],whenc:376,where:291,whether:252,which:291,white:[206,291],why:[159,291,316,325,326,327,328,329,330,337,339,340,341,357],widget:159,width:[9,133,159],wifi:[131,289,341,381],win32:319,win:159,window:[123,159,163,311,312],wire:[263,355],wireless:[208,291],within:345,withstand:252,wizpro200st8:252,wlan:[131,341],wrap:376,write:[1,7,12,67,70,98,110,111,125,133,159,188,189,190,193,194,195,252,300,349,376],write_datablock:70,writechr:96,writefil:29,writereg:25,ws2812:162,ws2812b:109,ws2812b_pwm:109,ws2812b_spi:109,wsc:130,x0:[35,124],x1:[35,124,133],x2:[9,35,124,133],x32:89,x:[9,35,87,91,124,133,376],xfer:[25,115],xmake:[311,312],xmodem:81,xpcall:376,y0:[35,124],y1:[35,124,133],y2:[9,35,124,133],y:[9,35,87,91,124,133,159,376],yet:291,yield:376,ymodem:132,you:[291,316,325,326,327,328,329,330,341,357,369],zbuff:[10,133,200,201,202],ze08g:82,ze08g_ch2o:82,zero:369,zh07:83,zlib:[90,134],zone:98,zoom:366}}) \ No newline at end of file +Search.setIndex({docnames:["api/adc","api/audio","api/bit64","api/camera","api/codec","api/coremark","api/crypto","api/dac","api/disp","api/eink","api/errDump","api/fastlz","api/fatfs","api/fdb","api/fonts","api/fota","api/fs","api/fskv","api/ftp","api/gmssl","api/gpio","api/gtfont","api/hmeta","api/http","api/httpsrv","api/i2c","api/i2s","api/iconv","api/index","api/io","api/ioqueue","api/iotauth","api/ir","api/json","api/keyboard","api/lcd","api/lcdseg","api/libcoap","api/libgnss","api/libs/ads1115","api/libs/adxl34x","api/libs/aht10","api/libs/air153C_wtd","api/libs/ak8963","api/libs/am2320","api/libs/bh1750","api/libs/bmx","api/libs/cht8305c","api/libs/ds3231","api/libs/ec11","api/libs/gt911","api/libs/httpdns","api/libs/ina226","api/libs/index","api/libs/iotcloud","api/libs/l3g4200d","api/libs/lbsLoc","api/libs/lbsLoc2","api/libs/libfota","api/libs/libnet","api/libs/lis2dh12","api/libs/lm75","api/libs/mcp2515","api/libs/mlx90614","api/libs/mpu6xxx","api/libs/necir","api/libs/netLed","api/libs/pcf8563t","api/libs/pcf8574","api/libs/qmc5883l","api/libs/rc522","api/libs/rtkv","api/libs/shift595","api/libs/si24r1","api/libs/spl06","api/libs/tcs3472","api/libs/tm1637","api/libs/tm1640","api/libs/tm1650","api/libs/tsl2561","api/libs/udpsrv","api/libs/xmodem","api/libs/ze08g_ch2o","api/libs/zh07","api/log","api/lora","api/lora2","api/lvgl","api/max30102","api/mcu","api/miniz","api/mlx90640","api/mobile","api/mqtt","api/nbiot","api/nes","api/nimble","api/os","api/otp","api/pack","api/pin","api/pm","api/protobuf","api/pwm","api/repl","api/rsa","api/rtc","api/rtos","api/sdio","api/sensor","api/sfd","api/sfud","api/sms","api/socket","api/softkeyboard","api/spi","api/statem","api/string","api/supported","api/sys","api/sys_pub","api/sysplus","api/timer","api/touchkey","api/u8g2","api/uart","api/ufont","api/usbapp","api/w5500","api/wdt","api/websocket","api/wlan","api/ymodem","api/zbuff","api/zlib","appDevelopment/index","appDevelopment/iotcloud/aliyun/code","appDevelopment/iotcloud/aliyun/device","appDevelopment/iotcloud/aliyun/index","appDevelopment/iotcloud/aliyun/intro","appDevelopment/iotcloud/aliyun/project","appDevelopment/iotcloud/aliyun/test","appDevelopment/iotcloud/basic/index","appDevelopment/iotcloud/basic/intro","appDevelopment/iotcloud/basic/json","appDevelopment/iotcloud/basic/protocol","appDevelopment/iotcloud/index","appDevelopment/iotcloud/onenet/code","appDevelopment/iotcloud/onenet/device","appDevelopment/iotcloud/onenet/index","appDevelopment/iotcloud/onenet/intro","appDevelopment/iotcloud/onenet/project","appDevelopment/iotcloud/onenet/test","appDevelopment/iotcloud/qcloud/code","appDevelopment/iotcloud/qcloud/device","appDevelopment/iotcloud/qcloud/index","appDevelopment/iotcloud/qcloud/intro","appDevelopment/iotcloud/qcloud/project","appDevelopment/iotcloud/qcloud/test","appDevelopment/lvgl/LVGL_for_LuatOS/LVGL_for_LuatOS","appDevelopment/lvgl/index","appDevelopment/peripheral/index","appDevelopment/peripheral/ws2812/ws2812","appDevelopment/video_play/105/video_play","appDevelopment/video_play/index","archives","boardGuide/common/adc/index","boardGuide/common/crypto","boardGuide/common/disp","boardGuide/common/fdb","boardGuide/common/i2c/air101","boardGuide/common/i2c/air103","boardGuide/common/i2c/air105","boardGuide/common/i2c/index","boardGuide/common/index","boardGuide/common/lcd","boardGuide/common/log","boardGuide/common/mcu/air101","boardGuide/common/mcu/air103","boardGuide/common/mcu/air105","boardGuide/common/mcu/index","boardGuide/common/pm","boardGuide/common/pwm/air101","boardGuide/common/pwm/air103","boardGuide/common/pwm/air105","boardGuide/common/pwm/index","boardGuide/common/rtc","boardGuide/common/sfd","boardGuide/common/sfud/air101","boardGuide/common/sfud/air103","boardGuide/common/sfud/air105","boardGuide/common/sfud/index","boardGuide/common/spi","boardGuide/common/spi/air101","boardGuide/common/spi/air103","boardGuide/common/spi/air105","boardGuide/common/spi/index","boardGuide/common/sys","boardGuide/common/timer","boardGuide/common/uart","boardGuide/common/uart/air101","boardGuide/common/uart/air103","boardGuide/common/uart/air105","boardGuide/common/uart/index","boardGuide/flash","boardGuide/index","boardGuide/roadmap","boardGuide/vscode","chips/AirWatch","chips/W806","chips/air001/Air001-Arduino","chips/air001/Air001-MDK","chips/air001/board","chips/air001/hardware","chips/air001/index","chips/air001/mcu","chips/air001/power_dissipation","chips/air101/Air101","chips/air101/Air101-Hard-design","chips/air101/board","chips/air101/hardware","chips/air101/index","chips/air101/mcu","chips/air101/power_dissipation","chips/air103/board","chips/air103/hardware","chips/air103/index","chips/air103/lcdseg","chips/air103/mcu","chips/air103/power_dissipation","chips/air103/touchkey","chips/air105/board","chips/air105/encrypt","chips/air105/hardware","chips/air105/index","chips/air105/mcu","chips/air105/power_dissipation","chips/air106/board","chips/air106/hardware","chips/air106/index","chips/air106/mcu","chips/air302/board","chips/air302/hardware","chips/air302/index","chips/air302/mcu","chips/air32f103/Air32f103","chips/air32f103/board","chips/air32f103/daplink","chips/air32f103/enhancement","chips/air32f103/hardware","chips/air32f103/index","chips/air32f103/mcu","chips/air32f103/switchFromSxx","chips/air601/board","chips/air601/changelog","chips/air601/hardware","chips/air601/index","chips/air601/mcu","chips/air640w/board","chips/air640w/hardware","chips/air640w/index","chips/air640w/mcu","chips/air780e/air700e","chips/air780e/air780eg","chips/air780e/board","chips/air780e/changelog","chips/air780e/firmware","chips/air780e/hardware","chips/air780e/index","chips/air780e/iomux","chips/air780e/mcu","chips/air780e/multiownload","chips/air780e/network","chips/air780e/pwrkey","chips/air780e/tts","chips/air901/board","chips/air901/hardware","chips/air901/index","chips/air901/mcu","chips/chips","chips/coremark/README","chips/esp32c3/board","chips/esp32c3/change_flash","chips/esp32c3/hardware","chips/esp32c3/index","chips/esp32c3/power_dissipation","chips/esp32s3/board","chips/esp32s3/hardware","chips/esp32s3/index","chips/esp32s3/mifi","chips/index","chips/question","chips/rp2040/index","chips/supported","chips/swm181/board","chips/swm181/hardware","chips/swm181/index","chips/swm181/mcu","chips/swm181/swm181","chips/win32","develop/add_lua_module","develop/add_myapi_5min","develop/c_wait","develop/cli/README","develop/cli/cmd_base","develop/cli/cmd_burn","develop/cli/cmd_pkg","develop/cli/cmd_prj","develop/cli/frontend","develop/cli/project","develop/compile","develop/compile/Air101","develop/compile/Air105","develop/compile/Air302","develop/compile/Air640w","develop/compile/Air780E","develop/compile/Cloud_compilation","develop/compile/ESP32C3","develop/compile/Linux","develop/compile/Win32","develop/contribute/add_module","develop/contribute/dev_doc/core/index","develop/contribute/dev_doc/core/luat_core","develop/contribute/dev_doc/core/luat_debugger","develop/contribute/dev_doc/core/luat_font","develop/contribute/dev_doc/core/luat_fs","develop/contribute/dev_doc/core/luat_memory","develop/contribute/dev_doc/core/luat_msgbus","develop/contribute/dev_doc/core/luat_platform","develop/contribute/dev_doc/core/luat_pm","develop/contribute/dev_doc/core/luat_timer","develop/contribute/dev_doc/core/luat_zbuff","develop/contribute/dev_doc/core/luat_zstruct","develop/contribute/dev_doc/core/sys_wait_pub","develop/contribute/dev_doc/index","develop/contribute/dev_doc/peripherals/index","develop/contribute/dev_doc/peripherals/luat_fonts","develop/contribute/dev_doc/peripherals/luat_gpio","develop/contribute/dev_doc/peripherals/luat_ir","develop/contribute/dev_doc/peripherals/luat_spi","develop/contribute/dev_doc/peripherals/luat_usart","develop/contribute/dev_doc/peripherals/luat_wlan","develop/contribute/index","develop/contribute/luadb","develop/contribute/soc_format","develop/contribute/style","develop/docs","develop/docs_design","develop/docs_use","develop/filesystems","develop/hex_string","develop/soc_download","index","iotpower/cc/index","iotpower/cc/index-en","iotpower/cc/parts","iotpower/cc/parts-en","iotpower/cc/question","iotpower/cc/tech","iotpower/cc/tech-en","iotpower/cc/usage","iotpower/cc/usage-en","iotpower/cc/wrong","iotpower/devices","iotpower/index","iotpower/index-en","iotpower/pc","iotpower/pc-en","iotpower/power/english","iotpower/power/index","iotpower/pro/connect","iotpower/pro/index","iotpower/pro/tech","iotpower/pro/usage","luaGuide/index","luaGuide/introduction","luaGuide/luaReference","luaGuide/luatFramework","luaGuide/luatFramework_exts","luaGuide/luatask","pages/emulator","pages/supports","pages/tools","peripherals/camera_gc032a/demos","peripherals/camera_gc032a/hardware","peripherals/camera_gc032a/index","peripherals/chip_gtfont/demos","peripherals/chip_gtfont/hardware","peripherals/chip_gtfont/index","peripherals/eink_1.54/hardware","peripherals/eink_1.54/index","peripherals/eink_1.54/software","peripherals/index","peripherals/lcd_1in54_240x240/demos","peripherals/lcd_1in54_240x240/hardware","peripherals/lcd_1in54_240x240/index","peripherals/lcd_1in8_128x160/demos","peripherals/lcd_1in8_128x160/hardware","peripherals/lcd_1in8_128x160/index","peripherals/lcd_2in4_320x240/demos","peripherals/lcd_2in4_320x240/hardware","peripherals/lcd_2in4_320x240/index","peripherals/lcd_air10x/demos","peripherals/lcd_air10x/hardware","peripherals/lcd_air10x/index"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":4,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":3,"sphinx.domains.rst":2,"sphinx.domains.std":2,sphinx:56},filenames:["api/adc.md","api/audio.md","api/bit64.md","api/camera.md","api/codec.md","api/coremark.md","api/crypto.md","api/dac.md","api/disp.md","api/eink.md","api/errDump.md","api/fastlz.md","api/fatfs.md","api/fdb.md","api/fonts.md","api/fota.md","api/fs.md","api/fskv.md","api/ftp.md","api/gmssl.md","api/gpio.md","api/gtfont.md","api/hmeta.md","api/http.md","api/httpsrv.md","api/i2c.md","api/i2s.md","api/iconv.md","api/index.md","api/io.md","api/ioqueue.md","api/iotauth.md","api/ir.md","api/json.md","api/keyboard.md","api/lcd.md","api/lcdseg.md","api/libcoap.md","api/libgnss.md","api/libs/ads1115.md","api/libs/adxl34x.md","api/libs/aht10.md","api/libs/air153C_wtd.md","api/libs/ak8963.md","api/libs/am2320.md","api/libs/bh1750.md","api/libs/bmx.md","api/libs/cht8305c.md","api/libs/ds3231.md","api/libs/ec11.md","api/libs/gt911.md","api/libs/httpdns.md","api/libs/ina226.md","api/libs/index.md","api/libs/iotcloud.md","api/libs/l3g4200d.md","api/libs/lbsLoc.md","api/libs/lbsLoc2.md","api/libs/libfota.md","api/libs/libnet.md","api/libs/lis2dh12.md","api/libs/lm75.md","api/libs/mcp2515.md","api/libs/mlx90614.md","api/libs/mpu6xxx.md","api/libs/necir.md","api/libs/netLed.md","api/libs/pcf8563t.md","api/libs/pcf8574.md","api/libs/qmc5883l.md","api/libs/rc522.md","api/libs/rtkv.md","api/libs/shift595.md","api/libs/si24r1.md","api/libs/spl06.md","api/libs/tcs3472.md","api/libs/tm1637.md","api/libs/tm1640.md","api/libs/tm1650.md","api/libs/tsl2561.md","api/libs/udpsrv.md","api/libs/xmodem.md","api/libs/ze08g_ch2o.md","api/libs/zh07.md","api/log.md","api/lora.md","api/lora2.md","api/lvgl.md","api/max30102.md","api/mcu.md","api/miniz.md","api/mlx90640.md","api/mobile.md","api/mqtt.md","api/nbiot.md","api/nes.md","api/nimble.md","api/os.md","api/otp.md","api/pack.md","api/pin.md","api/pm.md","api/protobuf.md","api/pwm.md","api/repl.md","api/rsa.md","api/rtc.md","api/rtos.md","api/sdio.md","api/sensor.md","api/sfd.md","api/sfud.md","api/sms.md","api/socket.md","api/softkeyboard.md","api/spi.md","api/statem.md","api/string.md","api/supported.md","api/sys.md","api/sys_pub.md","api/sysplus.md","api/timer.md","api/touchkey.md","api/u8g2.md","api/uart.md","api/ufont.md","api/usbapp.md","api/w5500.md","api/wdt.md","api/websocket.md","api/wlan.md","api/ymodem.md","api/zbuff.md","api/zlib.md","appDevelopment/index.md","appDevelopment/iotcloud/aliyun/code.md","appDevelopment/iotcloud/aliyun/device.md","appDevelopment/iotcloud/aliyun/index.md","appDevelopment/iotcloud/aliyun/intro.md","appDevelopment/iotcloud/aliyun/project.md","appDevelopment/iotcloud/aliyun/test.md","appDevelopment/iotcloud/basic/index.md","appDevelopment/iotcloud/basic/intro.md","appDevelopment/iotcloud/basic/json.md","appDevelopment/iotcloud/basic/protocol.md","appDevelopment/iotcloud/index.md","appDevelopment/iotcloud/onenet/code.md","appDevelopment/iotcloud/onenet/device.md","appDevelopment/iotcloud/onenet/index.md","appDevelopment/iotcloud/onenet/intro.md","appDevelopment/iotcloud/onenet/project.md","appDevelopment/iotcloud/onenet/test.md","appDevelopment/iotcloud/qcloud/code.md","appDevelopment/iotcloud/qcloud/device.md","appDevelopment/iotcloud/qcloud/index.md","appDevelopment/iotcloud/qcloud/intro.md","appDevelopment/iotcloud/qcloud/project.md","appDevelopment/iotcloud/qcloud/test.md","appDevelopment/lvgl/LVGL_for_LuatOS/LVGL_for_LuatOS.md","appDevelopment/lvgl/index.md","appDevelopment/peripheral/index.md","appDevelopment/peripheral/ws2812/ws2812.md","appDevelopment/video_play/105/video_play.md","appDevelopment/video_play/index.md","archives.md","boardGuide/common/adc/index.md","boardGuide/common/crypto.md","boardGuide/common/disp.md","boardGuide/common/fdb.md","boardGuide/common/i2c/air101.md","boardGuide/common/i2c/air103.md","boardGuide/common/i2c/air105.md","boardGuide/common/i2c/index.md","boardGuide/common/index.md","boardGuide/common/lcd.md","boardGuide/common/log.md","boardGuide/common/mcu/air101.md","boardGuide/common/mcu/air103.md","boardGuide/common/mcu/air105.md","boardGuide/common/mcu/index.md","boardGuide/common/pm.md","boardGuide/common/pwm/air101.md","boardGuide/common/pwm/air103.md","boardGuide/common/pwm/air105.md","boardGuide/common/pwm/index.md","boardGuide/common/rtc.md","boardGuide/common/sfd.md","boardGuide/common/sfud/air101.md","boardGuide/common/sfud/air103.md","boardGuide/common/sfud/air105.md","boardGuide/common/sfud/index.md","boardGuide/common/spi.md","boardGuide/common/spi/air101.md","boardGuide/common/spi/air103.md","boardGuide/common/spi/air105.md","boardGuide/common/spi/index.md","boardGuide/common/sys.md","boardGuide/common/timer.md","boardGuide/common/uart.md","boardGuide/common/uart/air101.md","boardGuide/common/uart/air103.md","boardGuide/common/uart/air105.md","boardGuide/common/uart/index.md","boardGuide/flash.md","boardGuide/index.md","boardGuide/roadmap.md","boardGuide/vscode.md","chips/AirWatch.md","chips/W806.md","chips/air001/Air001-Arduino.md","chips/air001/Air001-MDK.md","chips/air001/board.md","chips/air001/hardware.md","chips/air001/index.md","chips/air001/mcu.md","chips/air001/power_dissipation.md","chips/air101/Air101.md","chips/air101/Air101-Hard-design.md","chips/air101/board.md","chips/air101/hardware.md","chips/air101/index.md","chips/air101/mcu.md","chips/air101/power_dissipation.md","chips/air103/board.md","chips/air103/hardware.md","chips/air103/index.md","chips/air103/lcdseg.md","chips/air103/mcu.md","chips/air103/power_dissipation.md","chips/air103/touchkey.md","chips/air105/board.md","chips/air105/encrypt.md","chips/air105/hardware.md","chips/air105/index.md","chips/air105/mcu.md","chips/air105/power_dissipation.md","chips/air106/board.md","chips/air106/hardware.md","chips/air106/index.md","chips/air106/mcu.md","chips/air302/board.md","chips/air302/hardware.md","chips/air302/index.md","chips/air302/mcu.md","chips/air32f103/Air32f103.md","chips/air32f103/board.md","chips/air32f103/daplink.md","chips/air32f103/enhancement.md","chips/air32f103/hardware.md","chips/air32f103/index.md","chips/air32f103/mcu.md","chips/air32f103/switchFromSxx.md","chips/air601/board.md","chips/air601/changelog.md","chips/air601/hardware.md","chips/air601/index.md","chips/air601/mcu.md","chips/air640w/board.md","chips/air640w/hardware.md","chips/air640w/index.md","chips/air640w/mcu.md","chips/air780e/air700e.md","chips/air780e/air780eg.md","chips/air780e/board.md","chips/air780e/changelog.md","chips/air780e/firmware.md","chips/air780e/hardware.md","chips/air780e/index.md","chips/air780e/iomux.md","chips/air780e/mcu.md","chips/air780e/multiownload.md","chips/air780e/network.md","chips/air780e/pwrkey.md","chips/air780e/tts.md","chips/air901/board.md","chips/air901/hardware.md","chips/air901/index.md","chips/air901/mcu.md","chips/chips.md","chips/coremark/README.md","chips/esp32c3/board.md","chips/esp32c3/change_flash.md","chips/esp32c3/hardware.md","chips/esp32c3/index.md","chips/esp32c3/power_dissipation.md","chips/esp32s3/board.md","chips/esp32s3/hardware.md","chips/esp32s3/index.md","chips/esp32s3/mifi.md","chips/index.md","chips/question.md","chips/rp2040/index.md","chips/supported.md","chips/swm181/board.md","chips/swm181/hardware.md","chips/swm181/index.md","chips/swm181/mcu.md","chips/swm181/swm181.md","chips/win32.md","develop/add_lua_module.md","develop/add_myapi_5min.md","develop/c_wait.md","develop/cli/README.md","develop/cli/cmd_base.md","develop/cli/cmd_burn.md","develop/cli/cmd_pkg.md","develop/cli/cmd_prj.md","develop/cli/frontend.md","develop/cli/project.md","develop/compile.md","develop/compile/Air101.md","develop/compile/Air105.md","develop/compile/Air302.rst","develop/compile/Air640w.rst","develop/compile/Air780E.md","develop/compile/Cloud_compilation.md","develop/compile/ESP32C3.md","develop/compile/Linux.md","develop/compile/Win32.md","develop/contribute/add_module.md","develop/contribute/dev_doc/core/index.md","develop/contribute/dev_doc/core/luat_core.md","develop/contribute/dev_doc/core/luat_debugger.md","develop/contribute/dev_doc/core/luat_font.md","develop/contribute/dev_doc/core/luat_fs.md","develop/contribute/dev_doc/core/luat_memory.md","develop/contribute/dev_doc/core/luat_msgbus.md","develop/contribute/dev_doc/core/luat_platform.md","develop/contribute/dev_doc/core/luat_pm.md","develop/contribute/dev_doc/core/luat_timer.md","develop/contribute/dev_doc/core/luat_zbuff.md","develop/contribute/dev_doc/core/luat_zstruct.md","develop/contribute/dev_doc/core/sys_wait_pub.md","develop/contribute/dev_doc/index.md","develop/contribute/dev_doc/peripherals/index.md","develop/contribute/dev_doc/peripherals/luat_fonts.md","develop/contribute/dev_doc/peripherals/luat_gpio.md","develop/contribute/dev_doc/peripherals/luat_ir.md","develop/contribute/dev_doc/peripherals/luat_spi.md","develop/contribute/dev_doc/peripherals/luat_usart.md","develop/contribute/dev_doc/peripherals/luat_wlan.md","develop/contribute/index.md","develop/contribute/luadb.md","develop/contribute/soc_format.md","develop/contribute/style.md","develop/docs.md","develop/docs_design.md","develop/docs_use.md","develop/filesystems.md","develop/hex_string.md","develop/soc_download.md","index.md","iotpower/cc/index.md","iotpower/cc/index-en.md","iotpower/cc/parts.md","iotpower/cc/parts-en.md","iotpower/cc/question.md","iotpower/cc/tech.md","iotpower/cc/tech-en.md","iotpower/cc/usage.md","iotpower/cc/usage-en.md","iotpower/cc/wrong.md","iotpower/devices.md","iotpower/index.md","iotpower/index-en.md","iotpower/pc.md","iotpower/pc-en.md","iotpower/power/english.md","iotpower/power/index.md","iotpower/pro/connect.md","iotpower/pro/index.md","iotpower/pro/tech.md","iotpower/pro/usage.md","luaGuide/index.md","luaGuide/introduction.md","luaGuide/luaReference.md","luaGuide/luatFramework.md","luaGuide/luatFramework_exts.md","luaGuide/luatask.md","pages/emulator.md","pages/supports.md","pages/tools.md","peripherals/camera_gc032a/demos.md","peripherals/camera_gc032a/hardware.md","peripherals/camera_gc032a/index.md","peripherals/chip_gtfont/demos.md","peripherals/chip_gtfont/hardware.md","peripherals/chip_gtfont/index.md","peripherals/eink_1.54/hardware.md","peripherals/eink_1.54/index.md","peripherals/eink_1.54/software.md","peripherals/index.md","peripherals/lcd_1in54_240x240/demos.md","peripherals/lcd_1in54_240x240/hardware.md","peripherals/lcd_1in54_240x240/index.md","peripherals/lcd_1in8_128x160/demos.md","peripherals/lcd_1in8_128x160/hardware.md","peripherals/lcd_1in8_128x160/index.md","peripherals/lcd_2in4_320x240/demos.md","peripherals/lcd_2in4_320x240/hardware.md","peripherals/lcd_2in4_320x240/index.md","peripherals/lcd_air10x/demos.md","peripherals/lcd_air10x/hardware.md","peripherals/lcd_air10x/index.md"],objects:{},objnames:{},objtypes:{},terms:{"0":[0,1,3,4,6,7,9,10,12,13,15,16,20,23,24,25,26,27,29,30,31,32,33,34,35,36,38,39,40,41,43,44,45,46,47,48,49,50,52,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,83,84,85,86,87,88,89,91,92,93,94,95,96,97,98,100,101,103,105,106,107,108,109,110,111,113,114,115,116,117,119,120,123,124,125,127,128,130,131,132,133,159,162,163,166,168,169,170,171,172,175,176,177,178,179,181,182,183,184,187,188,189,190,192,193,194,195,197,198,200,201,202,209,210,213,217,218,219,220,225,230,231,233,235,240,242,244,246,247,249,250,255,264,265,266,268,269,270,271,272,281,286,290,291,298,299,301,302,304,306,308,313,314,320,322,323,326,327,330,331,332,333,337,339,340,341,345,349,351,353,358,363,366,371,372,375,376,377,378,379,387,404],"00":[11,25,38,52,90,113,133,183,252,315,375],"000":[357,376],"0000":351,"00000000":[344,351],"000000000000":131,"00008000":351,"0000ff":159,"0001":[188,189,190],"00010000":351,"0002":[188,189,190],"000287":179,"0003":[188,189,190],"0004":[188,189,190],"0005":[188,189,190],"0006":[188,189,190],"0007":[188,189,190],"0008":[188,189,190],"0009":[188,189,190],"000\u03bca":357,"000a":373,"000bc":376,"0010":52,"002f0200":344,"00380000":351,"00390000":344,"0060ma":223,"00ff0200":351,"01":[0,25,31,38,109,110,113,130,131,133,252,281,323,332,340,341,349],"0100":52,"01000000":15,"01001000":351,"0101":94,"01010000":351,"0102":25,"010203":117,"0107ma":223,"0111":52,"0123":375,"0123456789":159,"01300000":351,"01380000":351,"02":[9,25,38,52,96,124,193,194,195,265,281,315,323,333,351],"02d":375,"02x":[6,78],"03":[15,25,96,131,265,281,324,331,339],"03083333":38,"031":56,"03272018":[193,194,195],"0335":38,"03_event":159,"03_overview":159,"04":[25,94,96,130,281,308,381],"0455":38,"04923":376,"04_widget":159,"05":[11,20,122,126,281,332],"05\u03bca":371,"05_btnmatrix":159,"05_indev":159,"05v":235,"06":[25,92,96,120,131,265,281,332],"07":[6,13,14,25,56,96,281,294,295,297,338,375],"08":[126,281],"09":[10,281],"0921ma":229,"092v":209,"09_chart":159,"0_":376,"0a":297,"0b":297,"0m":1,"0u":211,"0v":[218,235,252,358,369,372],"0x":[11,15,25,30,52,56,73,90,96,113,115,124,127,133,193,194,195,331,336,350,351,375,376],"0x0":376,"0x00":[2,6,9,25,35,62,65,70,124,133,159,170,171,172,188,189,190,193,194,195,214,248,290,337,341,343,375],"0x0000":[35,336],"0x000000":162,"0x00000000":344,"0x000080":[188,189,190],"0x0000ff":[35,109,162],"0x0001":336,"0x0002":336,"0x0003":336,"0x0004":336,"0x001f":[35,175,209,217,290],"0x00300000":15,"0x00ff00":[35,162],"0x00ffff":109,"0x00u":211,"0x01":[9,25,35,62,70,89,124,133,193,194,195,214,290,331,332,337,341,343,375],"0x01001000":235,"0x0105":332,"0x0190":332,"0x02":[9,35,62,96,124,193,194,195,214,290,337,341,343,375],"0x03":[36,62,125,193,194,195,214,290,337,341,343,375],"0x04":[9,35,62,124,193,194,195,214,248,290,337,341,343],"0x05":[62,214,290,341],"0x06":[62,77,78,193,194,195,209,214,217,290,332,341],"0x07":[62,70,77,78,188,189,190,214,290,341],"0x08":[9,35,124,188,189,190,214,290,341],"0x09":[214,290,341],"0x0a":[52,341,375],"0x0b":56,"0x0c":[56,188,189,190],"0x0ce0":[209,217],"0x0f":[9,25,35,124,170,171,172,188,189,190],"0x1":376,"0x10":[9,35,124,188,189,190],"0x100":[110,170,171,172,187],"0x10000":[170,171,172],"0x11":[25,32,56,96],"0x12":[29,56,133,331,338],"0x1234":[127,133,331],"0x12345678":[177,178,179],"0x13":[29,96],"0x14":34,"0x18":[188,189,190],"0x1a":133,"0x1a5a5bbx":252,"0x1a5a5ccx":252,"0x1a6a5cdx":252,"0x1a8a6ddx":252,"0x1a8a6edx":252,"0x1a9a6ddx":252,"0x1ba01477":252,"0x1f":34,"0x1f450":159,"0x1f451":159,"0x1f470":159,"0x1ff":[34,62],"0x1fffffe6":62,"0x20":[9,35,73,124,188,189,190,193,194,195,375],"0x20000000":[214,290],"0x2009fffc":89,"0x21":[35,331],"0x22":32,"0x2603":124,"0x2ba01477":252,"0x2c":[209,217],"0x2c06":[209,217],"0x2f":25,"0x30":[56,133,159,375],"0x31":[6,96,133,350,375],"0x3132":350,"0x32":[96,133,331,350,375],"0x33":[96,115,133,170,171,172,331,375],"0x3333ff":87,"0x34":[96,338],"0x35":96,"0x38":[170,171,172],"0x39":159,"0x3b":[56,188,189,190],"0x3ba00477":252,"0x3f":[77,78,123],"0x40":[9,35,124,188,189,190],"0x4001244e":252,"0x41":[159,375],"0x411fc231":252,"0x412fc230":252,"0x42":[188,189,190,375],"0x44":[25,188,189,190,209,217,375],"0x4567":[133,331],"0x48":[9,35,124],"0x4b":125,"0x4ba00477":252,"0x4e00":159,"0x4f":[77,78],"0x52":[188,189,190],"0x55":[125,133,252],"0x5678":127,"0x5a":[96,159,343],"0x5b":[77,78],"0x5c":25,"0x60":[9,35,124],"0x61":[159,375],"0x62":375,"0x65":375,"0x66":[77,78],"0x67":375,"0x68":[25,375],"0x69":375,"0x6b":[188,189,190],"0x6c":375,"0x6d":[77,78],"0x6e":375,"0x6f":[77,78,375],"0x70":375,"0x72":375,"0x74":375,"0x75":[25,375],"0x79":375,"0x7a":159,"0x7d":[77,78],"0x7f":[77,78],"0x7ff":62,"0x7fff":159,"0x80":[9,35,70,124,159],"0x81e0000":344,"0x82":72,"0x83":[9,35,124],"0x84":[9,35,124],"0x86":125,"0x90":[65,193,194,195],"0x9f":[115,192,209,217],"0x9fff":159,"0xa23p":376,"0xa3":96,"0xa5":343,"0xa9":20,"0xaa":[96,125,133,252],"0xac":[170,171,172],"0xbb":[96,188,189,190],"0xbebada":376,"0xc":133,"0xc5":336,"0xc8":133,"0xcc":96,"0xd8":[188,189,190],"0xdd":96,"0xe5":[6,188,189,190],"0xeb":[188,189,190],"0xeeeeff":87,"0xef":[188,189,190],"0xef15":65,"0xef16":65,"0xef17":[193,194,195],"0xef4018":[209,217],"0xf":34,"0xf0":[34,170,171,172],"0xf005":159,"0xf2":25,"0xf33":159,"0xf8":[9,35,124],"0xf800":[133,209,217],"0xf9":[188,189,190],"0xfe":[188,189,190,336,343],"0xff":[6,32,34,35,36,73,77,159,188,189,190,327,330,351,375,376],"0xff0000":35,"0xffff":[35,36,66,133,250,290,330],"0xffffff":[209,217],"0xffffffff":[36,89,125,251,330],"0y":124,"1":[0,1,3,6,8,9,11,12,13,15,17,18,20,22,23,24,25,26,27,29,30,33,34,35,36,38,39,40,41,42,43,44,45,46,47,48,49,50,52,54,55,56,57,58,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,81,82,83,84,85,86,87,89,91,92,93,94,95,96,97,98,99,100,101,103,104,106,107,109,110,111,113,114,115,116,117,119,120,121,123,124,125,127,128,130,131,132,133,134,159,162,163,165,166,168,169,170,171,172,175,176,177,178,179,182,183,184,187,188,189,190,192,193,194,195,197,198,199,200,201,202,206,208,209,210,213,214,215,217,218,220,225,228,230,231,232,233,234,240,242,244,246,247,249,250,251,255,257,263,264,265,266,268,269,270,271,272,279,284,288,290,296,297,300,302,304,306,308,317,322,323,327,329,330,331,332,333,336,339,340,341,344,345,346,348,350,352,355,357,358,360,369,371,372,377,378,379,382,385,392],"10":[0,2,6,9,10,19,23,29,30,31,35,42,62,64,70,73,76,86,87,88,92,94,96,101,113,116,119,122,124,125,133,159,165,176,182,183,184,193,194,195,198,208,209,217,218,220,225,227,230,235,240,247,251,252,265,266,269,274,281,297,315,317,330,338,339,351,366,375,378,379,381],"100":[1,9,15,20,23,26,36,41,43,47,64,74,77,87,92,101,103,109,125,159,170,171,172,182,183,184,193,194,195,209,217,247,252,265,315,340,358,373,375,376,378],"1000":[1,9,12,23,39,40,41,44,45,46,47,48,50,52,55,58,60,61,62,63,65,66,69,70,71,72,73,74,75,76,77,78,79,81,82,83,85,86,87,89,101,103,109,111,119,120,121,131,159,163,166,168,175,177,178,179,181,182,183,184,187,188,189,190,192,193,194,195,197,199,209,210,211,217,265,299,318,319,344,350,376,377,378,379],"10000":[30,65,92,103,107,129,176,198,377,379],"100000":65,"1000000":[179,351],"1000000hz":103,"1000hz":[209,217],"1000m":[377,378],"100\u03c9":235,"100ask":159,"100k":[247,248,251,326],"100khz":[211,215],"100ksp":281,"100m":[1,20,25,209,217],"100mbp":291,"100mv":36,"100u":[128,211,218,358,372],"101":[167,290,311,375],"101_lua_lod":204,"1024":[4,11,29,38,89,92,108,111,115,125,133,188,189,190,200,201,202,209,217,240,279,326,331,343,350,376],"1024m":122,"1027923658":381,"102a3b4c5d6":128,"103":[291,346,348],"103336":166,"103348":166,"103372":166,"103_lua_lod":204,"105":[15,25,87,115,240,290,312],"105_lua_lod":204,"106":93,"1061":166,"1061642968":[209,215,222,228,244,301,381],"1063":166,"107":38,"10885":263,"108mhz":235,"109":92,"10_anim":159,"10k":[251,252,364],"10khz":[103,353,358,369,371,372],"10m":12,"10ma":369,"10mbp":291,"10mhz":211,"10mil":[219,224,231,253,262,263,264],"10mm":235,"10mv":[358,372],"10u":[116,252],"10v":355,"10w":208,"10x":290,"11":[6,14,67,92,96,113,117,124,131,159,165,208,209,217,218,220,223,225,227,229,230,235,252,263,265,269,281,322,325,326,327,329,330,351,366,375,378],"110":274,"110m":32,"11100":34,"11111":34,"112":344,"1120":92,"112kb":209,"113":38,"114":[92,113,375],"114514":375,"115":92,"115200":[38,81,125,132,177,178,199,202,209,210,217,218,263,340,351],"1152000":351,"1173":166,"1174":166,"1175":166,"11898":286,"11b":257,"11bit":297,"11g":38,"11th":[56,375],"12":[6,9,14,20,29,35,38,52,84,92,94,100,101,106,116,117,124,133,159,168,225,227,230,235,240,242,252,263,269,281,286,297,331,337,349,350,351,358,369,372,375,376],"120":[35,87,93,94,159,175,209,217,279],"1200":[89,265,351],"120000":[378,379],"12010126":31,"120kb":297,"120mhz":235,"121":56,"122":117,"1222":18,"12222":18,"123":[6,17,19,23,28,84,93,102,115,130,133,266,274,301,331,375,376],"12312121212":274,"123123":375,"123321456654":[133,331],"1234":[17,92,117,127,375],"12341234":289,"12345":[345,375],"123456":[6,71,93,113,117,375],"1234567":[93,375],"12345678":[10,93,131,289,375],"1234567812345678":19,"123456789":[31,93,375],"1234567890":[6,105,167,209,217],"12345678901234":167,"1234567890123456":[6,19,167],"1234567890666666":[6,19,167],"12345678910":375,"1234567891011":375,"123487651234876512348765123487651234876512348765":96,"123abc":117,"123jfoiq4hlkfjbnasdilfhuqwo":[11,90],"124":29,"124045331":92,"124045360":92,"12411":[56,57],"1248":89,"124999":252,"125":235,"125000":252,"126":96,"1262":166,"126322567":[378,379],"1264":166,"127":[20,123],"128":[6,19,29,81,96,105,133,159,163,167,175,209,217,252,265,272,279,331,371,398],"128035":252,"1280m":92,"128hz":274,"128k":[250,251,270,352],"128kb":266,"128m":[193,194,195],"128mb":282,"128x160":392,"1298":315,"12awsaslwlaawsllslllswasllalssawwlawslaw":375,"12awslawslaw":375,"12bit":[125,215],"12f":[33,255,256,290],"12f\u4f7f\u7528\u8bf4\u660e":255,"12f_\u6a21\u5757\u4ea7\u54c1\u89c4\u683c\u4e66":255,"12f_modul":255,"12f_wifi":255,"12f_wifi\u6a21\u5757\u786c\u4ef6\u8bbe\u8ba1\u624b\u518c":255,"12m":[235,290],"12mhz":235,"12x":124,"12x12":168,"13":[9,67,113,116,131,223,225,227,229,230,235,242,259,265,269,279,281,351,375],"132":378,"1328565":315,"132mhz":235,"133":378,"133a":94,"134":378,"1348":166,"135":378,"1350":166,"1354":166,"135hello":375,"136":378,"137":[93,378],"138":378,"139":378,"13m":264,"14":[33,38,67,113,116,218,223,225,227,230,235,242,259,265,269,281,340,341,351,376],"140":[92,378],"141":378,"1415926":375,"1416":[375,376],"142":[166,378],"144":166,"144mhz":235,"145":166,"1460":113,"14bit":297,"15":[28,30,67,71,92,93,94,110,123,124,133,159,179,200,201,202,208,218,225,227,230,235,252,259,265,269,279,281,324,351,358],"150":[159,290],"15000":[57,92,130,131],"1500000":[104,204,231,291],"150m":235,"150mbp":257,"152":9,"15200":351,"156mhz":235,"15\u03bca":[353,358],"15dbm":92,"16":[1,2,4,6,9,12,20,26,35,36,38,70,87,89,91,92,94,96,106,117,124,125,127,133,159,188,189,190,209,217,220,225,227,235,240,242,250,251,252,257,269,279,281,286,290,296,297,331,350,351,376,395,398,401],"160":[9,35,133,159,163,175,177,178,209,279,398],"1600":166,"16000":1,"16000000":252,"1601":166,"160kb":261,"160khz":182,"160m":[284,290],"160mhz":[177,178,240],"160x":163,"16384":[4,209,217],"1650":101,"1652230554":106,"165kb":90,"16777216":[188,189,190],"168":[128,131],"168mhz":235,"16bit":215,"16byte":[113,252],"16e":376,"16k":352,"16kb":[4,297],"16ksp":297,"16m":[123,252,282],"16mb":[188,189,190,281,282,286],"16mflash":208,"16px":324,"16x":[9,35,124],"17":[9,19,20,35,71,92,94,106,109,110,111,115,186,193,194,195,209,218,219,220,224,225,227,231,235,242,247,253,259,262,263,264,269,281,285,345,381],"1709":166,"1712":166,"1712mv":166,"1713":166,"172":159,"176":[344,371],"1776":166,"1777":166,"177x177":[9,35,124],"17955":375,"18":[9,20,35,56,63,71,96,122,168,169,209,220,225,227,235,242,257,259,279,281,301,333,337,381],"180":[9,35,124,131,159],"1800":101,"180d":96,"180mhz":235,"182970020":381,"1850":92,"1884":93,"18k":134,"18khz":72,"19":[9,19,25,35,38,63,92,209,220,225,227,235,242,259,279,281,301,315],"190":159,"1900":106,"1919810":375,"192":[35,87,124,128,131,179,280],"19200":125,"1926":375,"192kb":244,"192m":[234,290],"192mhz":235,"194":38,"1999":[252,315],"1\u03bca":[369,372],"1_":376,"1_20211022":225,"1_layer":376,"1a":[21,357],"1a_v1":387,"1byte":[30,113],"1cg28rk":314,"1e":376,"1f":375,"1fp":3,"1k":[81,257,265],"1kb":[200,201,202],"1khz":[103,182,183,184,209,217],"1m":[1,89,265,279,351],"1ma":369,"1mb":257,"1mbyte":[299,318,319],"1msp":297,"1mv":[369,372],"1nf":218,"1s":[177,178,179,197,379],"1st":[35,376],"1u":[89,179],"1ua":[297,358,372],"1uf":[218,235],"1us_tick":30,"1v":252,"1x":124,"1y":124,"2":[0,1,3,8,9,11,12,13,17,20,22,23,24,25,26,33,34,35,36,38,44,54,56,57,58,65,67,71,72,76,77,78,81,84,87,89,91,92,93,94,96,97,98,99,101,104,109,110,113,115,117,119,120,121,123,124,125,128,131,133,159,162,163,165,166,170,171,172,176,177,178,183,188,189,190,193,194,195,200,201,204,206,208,209,210,214,215,217,218,219,220,223,224,225,229,230,231,232,234,240,242,244,247,250,251,253,255,257,262,263,264,266,269,270,271,272,274,279,284,288,289,290,296,297,299,300,302,306,308,317,320,323,329,331,333,336,343,345,346,348,350,355,358,360,366,372,373,377,378,392],"20":[9,35,38,62,87,92,94,96,111,115,124,133,159,163,170,171,172,175,177,178,183,187,188,189,190,192,193,194,209,217,220,225,227,235,257,259,265,269,279,281,286,290,331,336,355,360,375,376,381],"200":[1,9,23,24,37,58,65,71,77,131,159,170,171,172,280,333,369,372,376],"2000":[35,56,67,78,97,101,103,109,128,159,186,197,200,201,202,209,217,377,378],"20000":[56,333],"2000000":[35,111,115,125,192,209,217,345,351],"20000000":[9,115,339],"2000m":378,"20034598":169,"200345a8":169,"200\u03bca":[369,372],"200k":[11,270],"200kb":[244,261],"200m":[122,290],"200ma":[235,369],"200mhz":240,"201":35,"2015":[375,376],"2017":56,"2018":[31,159,315,375],"2019":[315,322,325,326,327,329,330,337,375],"2020":[245,251,281,286,298,339,340,341],"2021":[48,106,186,209,247,315,323,331,338],"20211011092353":316,"20211011092608787_qq\u622a\u56fe":316,"20211202193519160_air103_\u6838\u5fc3\u677f\u8bbe\u8ba1\u624b\u518c":225,"20211202193606476_air103_mcu\u8bbe\u8ba1\u624b\u518c":225,"2022":[0,6,13,14,20,38,101,126,159,266,308,315,324,332,333],"20220114193313925_air105\u82af\u7247\u6570\u636e\u624b\u518c":233,"20220303111656608_air105\u6838\u5fc3\u677f\u4f7f\u7528\u624b\u518c":233,"20220419_220202":304,"20220420_223344":306,"20220511":232,"20220513112445291_air105_mcu\u8bbe\u8ba1\u624b\u518c":233,"20220605164850945_air32f103\u82af\u7247\u6570\u636e\u624b\u518c":[246,249],"20220612160340":235,"20220612160407604_qq":235,"20220721163511464_\u534e\u82af\u5fae\u7279swm181\u6570\u636e\u624b\u518c":[294,295,297],"20221028114557272_air780e\u5f00\u53d1\u677f\u539f\u7406\u56fev1":264,"20221104135203881_780x\u5f00\u53d1\u677f\u539f\u7406\u56fe\u548cpcb":264,"20221110145812309_air780e\u5f00\u53d1\u677f\u5587\u53ed\u6269\u5c55\u677fv1":264,"20221219":269,"2023":[2,6,10,12,15,17,19,20,25,28,29,38,63,67,92,96,110,117,120,122,124,130,131,247,265,349],"20230330":269,"20230619165631229_air601":255,"20230626161923628_\u5f00\u53d1\u677fevb_air601":255,"20230721175506039_air001\u82af\u7247\u6570\u636e\u624b\u518c":213,"20230726105503590_air601":255,"2048":105,"2048bit":105,"204mhz":235,"205":37,"20_list":159,"20bit":252,"20k":[159,251],"20khz":77,"20m":[115,339],"20ma":372,"20mhz":240,"20mv":358,"20ppm":[358,372],"20v":[353,355,363],"21":[18,38,125,159,209,220,225,227,235,259,269,281,315,349,375,381],"211013":297,"216m":247,"216mhz":248,"21mm":[281,286],"21v":358,"21x21":[9,35,124],"22":[9,10,35,38,71,85,86,101,109,198,220,223,225,227,229,235,245,257,259,269,281],"220":[35,159],"2200":31,"223":375,"227096712":92,"227857":252,"23":[6,13,15,38,92,94,107,109,131,159,220,225,227,235,259,269,281,375,376],"230":375,"230400":125,"231":38,"233":375,"2333":375,"233333":117,"2334ma":223,"23423":71,"23456":300,"235":159,"239":252,"24":[9,35,38,67,94,109,162,168,193,194,195,218,220,225,227,235,240,269,281,297,331,332],"240":[3,54,87,89,93,133,159,177,178,209,217,279,280,331,371,395,401],"2400":[125,265],"24000000":[12,128,163],"24000000u":211,"240m":[208,286],"240mhz":[89,177,178,257],"240x240":392,"240x320":[291,392],"2425864":56,"244":113,"2452":92,"248kb":297,"2490":315,"24_page":159,"24bit":35,"24m":[235,279],"24mhz":[193,194,195,297],"24v":[353,358,363],"25":[1,38,94,96,124,131,218,220,225,227,235,242,263,269,281,298,322,326,327,330],"250":91,"2500":[209,217],"2549515":315,"255":[12,13,17,38,56,113,128,131,159,163,193,194,195,341,351,375,376],"255tick":30,"256":[19,96,103,110,125,159,182,193,194,195,209,217,272,375,376],"2560m":92,"256k":[208,251,279],"256kb":261,"256m":[250,251,290],"26":[9,17,35,38,220,225,227,235,242,259,269,281],"2603":124,"2650":101,"2670":166,"2673":166,"2675":166,"26_slider":159,"26m":291,"27":[2,6,20,36,38,52,66,71,124,170,171,172,220,225,227,229,235,242,248,252,259,269,281,339],"270":[9,35,124],"270k":134,"278":38,"2793ma":229,"28":[6,42,94,96,159,225,227,235,242,259,269,281,325,329],"280":371,"281":159,"288":344,"288k":[257,279],"29":[25,36,159,223,225,227,235,242,259,269,281,375],"292":25,"2999":31,"29bit":297,"2a":[363,364,369,371,372],"2bia":297,"2byte":252,"2d":38,"2d\u52a0\u901f":279,"2f":[47,170,171,172,254,289],"2g":[270,272,317,381],"2k":265,"2m":[89,115,209,221,226,279,290,344,351],"2ma":369,"2mbp":257,"2mhz":[89,177,178],"2msram":208,"2nd":[35,159,375,376],"2u":252,"2v":[0,235,252,369],"2x":[124,159],"2y":124,"3":[0,3,8,9,13,17,22,23,33,34,35,36,38,44,48,53,56,57,58,65,70,71,72,76,77,78,84,87,92,94,96,98,101,104,106,107,112,113,115,117,121,124,131,133,159,163,165,166,170,171,172,188,189,190,192,193,194,195,199,204,206,208,209,214,217,218,220,225,230,231,234,242,247,250,251,264,265,269,272,279,284,288,290,296,297,314,315,320,323,327,328,331,336,344,345,346,348,350,352,355,358,360,372,377,378,390],"30":[9,35,92,93,94,109,124,133,159,163,175,184,204,206,225,227,235,242,252,259,263,269,281,285,297,308,376,379],"300":[58,101,109,162,181,184,323],"3000":[22,57,71,85,86,92,94,107,113,129,130,197,377],"30000":[58,119],"3000000":351,"3000m":[93,130],"3000u":122,"300k":270,"300mah":208,"301":109,"302":291,"305419896":[177,178,179],"30kb":244,"30ma":297,"30mil":218,"30u":252,"30w":[291,385],"31":[31,36,38,92,96,103,106,117,127,131,133,159,186,209,218,225,227,235,252,259,269,279,281,350,375,376],"31249":252,"3132":350,"313233616263":117,"31393033535138385400000000617603":179,"314":376,"31416e1":376,"3149ma":229,"32":[6,9,19,28,35,89,90,94,101,106,116,117,118,124,127,133,159,179,187,225,227,235,240,251,252,257,259,269,281,286,297,331,344,350,376],"320":[3,133,159,209,217,279,401],"3200":26,"32000u":211,"320480":97,"320m":92,"32472115200":31,"3250ma":229,"3269ua":236,"32765":274,"32768u":211,"32_textarea":159,"32bit":[2,89,250,290],"32k":[11,89,90,235,251],"32kb":[90,188,189,190,297],"32kbyte":215,"32khz":[235,297],"32mhz":297,"33":[36,94,115,117,127,133,159,225,227,235,269,328],"330":280,"3300":101,"330uf":218,"332kb":244,"34":[127,225,227,235,269,375],"3400":101,"3432":263,"345":[315,375,376],"34e1":376,"35":[38,94,177,178,220,225,235,269,376],"36":[38,94,220,225,235,247,269,376],"360":[159,366],"3600":[10,58,71],"3600000":266,"36khz":338,"37":[225,227,235,375],"37524839":299,"38":[94,225,227,235],"380d":96,"38400":125,"388":92,"3882":166,"3889":166,"3898":166,"38k":[32,338],"39":[113,235,269],"3\u7248\u672c":314,"3a":[358,363],"3bia":297,"3cm":247,"3d":[38,391],"3duti":297,"3g":[270,272],"3gpp":94,"3hz":182,"3m":[291,355],"3rd":[35,375,376],"3v":[101,170,171,172,188,189,190,193,194,195,199,208,235,247,264,281,297,390],"3v3":[281,286],"3x":159,"3yn5g_tr":225,"4":[0,6,8,9,13,17,20,22,23,33,34,35,36,38,56,58,70,71,72,76,77,78,84,85,86,87,91,92,94,96,98,101,104,106,109,111,113,115,117,121,124,131,133,159,165,166,170,171,172,177,178,179,188,189,190,193,194,195,202,206,208,209,213,217,218,220,225,230,234,240,242,247,250,251,252,257,263,264,265,269,279,284,288,290,297,298,323,327,328,332,336,340,343,350,351,352,355,358,360,366,369,372,373,377,378,392],"40":[9,35,92,94,116,124,159,175,176,177,178,209,217,225,227,235,240,291,331,376],"400":[11,12,90,163],"400001004":[220,225],"400k":279,"400ma":235,"40123":113,"404":[24,37],"4067":38,"4095":17,"4096":[4,17,26,98,188,189,190],"4096bit":105,"40k":[159,218,248,251],"40kb":261,"40m":218,"40mhz":[177,178,218,240,257],"40u":[116,369,371],"41":[176,225,227,235,291],"4126ma":229,"4193":71,"42":[176,225,227,235,291],"42009":375,"43":[106,176,186,209,225,227,235,269],"4305ma":285,"433000000":[85,86],"4344ma":229,"4375":[209,217],"4392ma":285,"44":[92,235,236,269,279],"44000":7,"44100":26,"448":344,"448k":270,"448kb":266,"45":[159,204,235,269,376],"4500":[209,217],"45000":130,"456":[117,130],"458":159,"46":[89,176,189,190,195,235,236],"460800":[125,351],"47":[52,176,235,269],"472":280,"4736522":56,"47uf":218,"48":[56,94,159,163,176,179,235],"480":[159,208,291],"4800":[125,265],"48000000":30,"4804ma":236,"480k":[268,290],"480kb":266,"4846ma":223,"485":[125,206,265],"48m":[208,296],"48mhz":[248,297],"49":[176,235,375,376],"492":166,"494":166,"49k":218,"4_20210909":220,"4byte":[30,113],"4duti":297,"4e":376,"4f":375,"4g":[10,71,92,204,208,270,272,281,286,289,352,382],"4gmodem":208,"4hz":91,"4k":[11,15,193,194,195,206,252],"4kb":[10,188,189,190],"4kbyte":215,"4m":[235,279],"4mb":[281,282],"4mflash":208,"4mm":[221,222,352],"4th":[35,170,171,172,375,376],"4v":[166,209,217,218,235,297],"5":[6,9,13,17,23,25,28,30,33,36,38,52,56,58,63,66,67,71,77,78,83,84,90,92,94,101,103,109,113,117,124,125,128,133,159,162,163,165,166,169,170,171,172,179,181,182,184,188,189,190,194,195,206,208,209,215,217,225,230,234,240,242,247,250,252,257,264,274,279,281,286,290,291,313,323,328,330,344,351,352,355,358,360,369,370,372,373,375,377,378,379,404],"50":[29,38,87,103,124,159,170,171,172,182,183,184,235,265,375],"500":[20,66,70,72,78,91,119,159,170,171,172,184,209,211,217,358,379],"5000":[23,48,71,92,107,109,129,170,171,172,177,178,179,197,198,377],"5000m":[23,198],"5000u":211,"500792601":381,"500\u03bca":358,"500m":[20,379],"500ma":218,"5016":179,"5023":198,"5037":[177,178],"50736":166,"50788":166,"5080":66,"50832":166,"50hz":20,"50kb":261,"50ksp":297,"50ma":358,"50mv":101,"51":[170,171,172,235,274,369],"510":104,"512":[12,29,71,108,132,159,265],"5120m":92,"512k":[279,286],"512kb":240,"514":375,"51k\u03c9":235,"51mm":[281,286],"52":[235,274,375],"520":162,"53":[232,235,274],"5370ma":229,"5383ma":223,"54":[9,235,274,392],"54mm":[219,224,231,253,262,263,264],"55":[92,93,235,274],"5576ua":223,"56":[94,235,279,297],"560177349780":398,"57":235,"57600":125,"58":235,"587923556178":261,"59":[25,38,56,235,376],"591":25,"592":166,"593":166,"595":[72,166],"5\u03bca":369,"5a":[353,358,363,371],"5d":208,"5g":[270,272,315],"5k":[250,251,290],"5kb":263,"5m":[109,240],"5ma":358,"5mbp":162,"5msp":240,"5s":[177,178,179,197],"5th":[170,171,172,375],"5ua":297,"5v":[235,247,252,281,286,289,353,360,363,364,370,371,372,373],"5v2a":369,"5v\u00b2":363,"6":[1,13,17,23,29,33,36,38,49,56,76,77,78,92,94,96,101,109,113,117,131,133,159,165,166,170,171,172,200,201,209,217,225,227,230,231,234,242,279,290,297,323,351,355,360,366,375],"60":[36,71,92,94,124,159,235,252,265],"600":[10,93,265],"60000":[92,96,113],"600000":266,"6050accel":64,"6050gyro":64,"6050temp":64,"6055f9779010":71,"606":280,"60fp":208,"60hz":36,"60kb":244,"61":[117,235,376],"6100n":252,"6115ma":229,"6132ma":285,"618":63,"618_lua_lod":204,"61984":166,"62":[113,117,235],"6203cc94c7fb24029b110408_88888888":31,"62052":166,"62060":166,"6228":263,"625m":96,"63":[17,38,70,117,124,170,171,172,235],"64":[17,19,28,70,89,98,118,127,159,188,189,190,209,217,235,302,344,376],"6406ma":223,"640k":[235,279],"640m":92,"640x":291,"649926645":381,"64bit":[2,89,110,265],"64hz":274,"64k":[15,110,251,274,279,326],"64kb":[188,189,190,240,261,266,297],"64mb":282,"65":[9,159,235],"65525":80,"6553":274,"65535":[96,125],"65535u":30,"65536":[96,169],"65555":20,"656786354871":401,"6584ma":236,"65k":[398,401],"66":[9,159,209,217,235,351],"660335018289":395,"661835138573":404,"665811924219":384,"666":375,"67":[92,235],"6703ma":236,"6721ua":223,"6728ma":223,"68":[94,235],"6808454646333a0cbb8":[177,178],"682":94,"688":66,"69":235,"6byte":128,"6c95875d0f5ba69607nzfl":31,"6mm":[209,228],"6th":[170,171,172],"6v":[166,218,235,252,297,355,360,370,373],"7":[4,9,13,20,23,25,34,35,36,38,49,56,67,68,76,77,78,92,94,96,101,109,116,123,124,125,131,159,165,166,170,171,172,195,202,218,220,225,227,230,233,234,242,252,290,311,312,313,315,351,366,375,378],"70":[159,209,217,235,263],"700":109,"700mil":[219,224,231,253,262,263,264],"70ua":297,"71":[235,252],"72":[94,235],"7258089600":31,"7260ma":223,"72m":251,"72mhz":248,"73":235,"74":[235,279],"74hc595":53,"75":[92,170,171,172,235],"750k":274,"754":376,"757ccd0cdc5c90eadbeeecf638dd0000":6,"75hc595":72,"76":235,"767":91,"767427989":381,"768":[91,279],"76v":0,"77":235,"78":[170,171,172,235],"780e":[263,265],"789":[117,130,375],"78kb":244,"78mm":[219,224,231,253,262,263,264],"79":235,"7956ua":229,"7g":33,"7k":235,"7mm":385,"7s":235,"7th":[252,375],"7uf":218,"7v":[36,235,297],"7z":[223,229,236,255,285,315,344,351,366],"8":[2,4,9,12,13,20,23,26,35,36,38,57,62,63,65,66,70,73,77,78,85,86,89,91,92,94,101,104,106,109,110,111,113,115,124,125,127,128,133,159,162,163,165,175,184,186,188,189,190,192,193,194,195,199,200,201,202,208,209,217,225,227,230,235,242,248,252,272,279,286,290,297,315,332,339,340,345,351,355,360,375,377,378,392],"80":[9,24,35,58,89,159,175,177,178,235],"8000000":[26,211],"8000000u":211,"800k":[109,162],"802":257,"80300":166,"80364":166,"806":[279,375],"80m":[221,226,290],"80mhz":[89,177,178],"81":235,"810":375,"81e0000":344,"82":235,"8222ua":229,"827963649":381,"83":[9,235,351],"84":[94,235,289],"85":[92,235,326],"86":235,"861":236,"864040064024194":2,"86784":166,"86844":166,"86852":166,"87":235,"877164555":381,"88":235,"8883":93,"88v":0,"89":131,"898989898989899898":94,"8b":289,"8bit":[35,115,252],"8d":289,"8f":289,"8k":[252,265],"8m":[26,279,282],"8mb":[209,240,282,286],"8n1":[38,125,218],"8th":252,"8ua":208,"8v":[0,101,166,231,264,355,360,369,370,373],"9":[2,9,23,30,34,38,76,77,78,85,86,89,92,101,106,133,159,165,218,225,227,230,235,242,315,351,375,378],"90":[1,9,35,109,124,159,235,265,289,332],"9000":[129,252],"90000":159,"91":271,"911cha":375,"92":94,"921600":[104,125,200,201,204,209,222,228,281,286,291,344,351],"921fb54442d18p":376,"922u":252,"92k":254,"94k":257,"95":[209,263,289,328],"9501":263,"96":[94,168,404],"9600":[125,265],"967368887":381,"96k":[247,250,251],"96m":279,"97":376,"9731":124,"97656":166,"97672":166,"977":244,"97700":166,"97lo":376,"99":[38,315,332,375],"993":252,"999":375,"9a":289,"9b":289,"9m":252,"9th":375,"9u":30,"\u00b2":363,"\u00b9":363,"\u00df":159,"\u00e1":159,"\u03bca":[257,353,358,369,372],"\u03bcvision":[211,245,298],"\u03c0":376,"\u03c9":247,"\u2460":[204,355,360,366,369],"\u2460burn":206,"\u2460compil":206,"\u2460pc":[355,360],"\u2461":[207,355,360,366,369],"\u2461creat":206,"\u2461develop":206,"\u2462":[355,360,366,369,379],"\u2462first":206,"\u2462luatask":206,"\u2463":[206,355,360,369],"\u2463manipul":206,"\u2464":[206,355,360,369],"\u2465":[206,355,360,369],"\u2465\u2466":355,"\u2466":[206,355,360],"\u2467":[206,355,360],"\u2468":[206,355,360],"\u2469":[355,360],"\u247e":[355,360],"\u247f":[355,360],"\u4e0a\u8ff0\u76ee\u5f55\u7ed3\u6784\u4e2d\u7684makefile\u6587\u4ef6":313,"\u4e0b\u8f7d":314,"\u4e0b\u8f7d\u5e76\u89e3\u538b\u5230\u524d\u6b3e\u7684\u76ee\u5f55":314,"\u4e0b\u8f7dair302_sdk\u7684\u538b\u7f29\u5305":313,"\u4e0b\u8f7dluatos\u7684\u6e90\u7801":313,"\u4e0b\u8f7drtt\u7684\u73af\u5883\u5de5\u5177":314,"\u4e0b\u9762\u6211\u4eec\u5c31\u663e\u793a":162,"\u4e0d\u5efa\u8bae\u76f4\u63a5\u4e0b\u8f7dzip":313,"\u4e0d\u8981\u653e\u5728c\u76d8":314,"\u4e0d\u8981\u6709\u4e2d\u6587\u8def\u5f84":314,"\u4e0d\u9700\u8981\u540c\u6b65\u5b50\u6a21\u5757":313,"\u4e2dkeil\u7684\u8def\u5f84":313,"\u4f46\u6b22\u8fce\u62a5issu":313,"\u4f4d":297,"\u4f8b\u5982":314,"\u4fee\u6539":313,"\u4fee\u6539\u6216\u521b\u5efalocal":313,"\u5148\u542f\u52a8env":314,"\u5207\u6362\u5230rtt\u76844":314,"\u5382\u5546\u8981\u6c42":313,"\u53cc\u51fb":314,"\u53ef\u5355\u72ec\u6267\u884c":313,"\u53ef\u80fd\u6027\u4f4e":314,"\u5408\u5b99air001\u662f\u4e00\u6b3etssop20\u5c01\u88c5\u7684mcu":215,"\u542f\u52a8env\u7a97\u53e3":314,"\u5728":[313,314],"\u5730\u5740":314,"\u5927\u5927\u7684":313,"\u5982\u679c\u4f60\u662f\u5728\u627e\u5237\u673a":313,"\u5982\u679c\u53d1\u73b0\u7f16\u8bd1\u5931\u8d25":314,"\u5982\u679c\u7f16\u8bd1\u5931\u8d25":313,"\u5982\u679ckeil\u5b89\u88c5\u76ee\u5f55\u4e0d\u662f":313,"\u5982\u679cluatos\u4e0d\u5728":313,"\u5b89\u88c5\u80fd\u89e3\u538b7zip\u683c\u5f0f\u7684\u89e3\u538b\u7f29\u8f6f\u4ef6":313,"\u5b89\u88c5git":314,"\u5e76\u5efa\u597d":314,"\u5e76\u81ea\u52a8\u6253\u5305\u751f\u6210\u56fa\u4ef6\u538b\u7f29\u5305":313,"\u5f53\u524d\u7248\u672c\u4ec5\u652f\u6301keil\u7f16\u8bd1":313,"\u5f97\u5230\u7684\u76ee\u5f55\u7ed3\u6784\u662f\u8fd9\u6837\u7684":313,"\u5f97\u5230luatos\u76ee\u5f55":314,"\u5f97\u5230rt":314,"\u6211\u4eec\u63d0\u4f9b\u7684\u56fa\u4ef6\u5305\u5c31\u5305\u542b\u7f16\u8bd1\u597d\u7684\u56fa\u4ef6":313,"\u6216":314,"\u6267\u884c\u547d\u4ee4":314,"\u6267\u884c\u7f16\u8bd1":314,"\u62a5issue\u6216\u8005\u5230\u7fa4\u91cc\u558a\u4e00\u558a":314,"\u6307\u5411":313,"\u6309\u9ed8\u8ba4\u914d\u7f6e\u5c31\u5f88\u597d":314,"\u63a8\u8350\u76ee\u5f55\u4e3a":313,"\u6444\u50cf\u5934":279,"\u6572\u5165\u547d\u4ee4":314,"\u662f\u4e0d\u662fapi\u5f88\u7b80\u5355":162,"\u666e\u901a\u7528\u6237\u4e00\u822c\u4e0d\u9700\u8981\u7528\u5230\u672c\u6587\u7ae0":314,"\u66f4\u65b0\u8f6f\u4ef6\u5305":314,"\u672c\u6587\u8bb2\u8ff0\u7684\u662f\u81ea\u884c\u7f16\u8bd1\u56fa\u4ef6\u6587\u4ef6":314,"\u6bcf\u6b21luatos\u53d1\u65b0\u7248\u90fd\u4f1a\u628a\u7f16\u8bd1\u597d\u7684fls\u653e\u5230":314,"\u70e6\u8bf7\u53cd\u9988":314,"\u7248\u6743\u6240\u6709":376,"\u76ee\u5f55":313,"\u76ee\u5f55\u53ef\u4ee5\u770b\u5230":314,"\u76ee\u5f55\u6267\u884c":313,"\u770b\u770b\u5177\u4f53\u7684\u62a5\u9519\u539f\u56e0":313,"\u786c\u4ef6\u52a0\u901f":279,"\u786c\u72d7":279,"\u7b49\u5f85\u7f16\u8bd1\u5b8c\u6210":314,"\u7f16\u8bd1\u51fa\u7684\u56fa\u4ef6\u4f9d\u7136\u662fluatos\u56fa\u4ef6":313,"\u7f16\u8bd1\u6210\u529f\u4f1a\u663e\u793a":313,"\u7f16\u8bd1lua\u811a\u672c\u4e4b\u7c7b\u7684\u5e94\u7528\u578b\u6587\u6863":313,"\u83b7\u53d6luatos\u6e90\u7801":314,"\u83b7\u53d6rtt\u6e90\u7801":314,"\u89e3\u538b\u5230":313,"\u8bbe\u7f6ertt_root\u73af\u5883\u53d8\u91cf\u7684\u503c":314,"\u8be5sdk\u4e0d\u662fc":313,"\u8bf7\u4f7f\u7528":313,"\u8bf7\u786e\u4fdd\u6709\u6b63\u7248keil":313,"\u8bf7\u786e\u8ba4\u6240\u5728\u7684\u7f51\u7edc\u6ca1\u6709\u5c4f\u853dgitee\u7684\u8bbf\u95ee":314,"\u8d44\u6e90\u7ba1\u7406\u5668":314,"\u8d77\u7801\u9884\u75592gb\u7684\u78c1\u76d8\u7a7a\u95f4":313,"\u8dd1lua\u811a\u672c":313,"\u8df3\u8f6c\u4e00\u4e0b\u76ee\u5f55":314,"\u8df3\u8f6c\u76ee\u5f55":314,"\u8fd9\u4e2a\u6587\u6863\u4e0d\u662f\u4f60\u9700\u8981\u67e5\u770b\u7684\u5185\u5bb9":313,"\u8fd9\u4e2a\u8def\u5f84\u540e\u9762\u90fd\u4f1a\u7528\u5230":314,"\u8fd9\u662f\u7528\u4e8e\u81ea\u884c\u6269\u5c55\u56fa\u4ef6\u7684\u9ad8\u7ea7\u6587\u6863":313,"\u8fdb\u5165env\u6240\u5728\u76ee\u5f55":314,"\u8fdb\u5165rtt\u76ee\u5f55":314,"\u90091m\u7684\u56fa\u4ef6\u6587\u4ef6":314,"\u9009\u4e00\u4e2a\u7b80\u77ed\u7684\u76ee\u5f55":314,"\u901a\u5e38\u4e3a7zip\u683c\u5f0f":313,"\u901a\u5e38\u4f60\u4e0d\u9700\u8981\u8fd9\u4efd\u6587\u6863":313,"\u914d\u5408zbuff\u66f4\u7b80\u5355":162,"\u91c7\u7528\u9ad8\u6027\u80fd\u768432\u4f4darm":215,"abstract":[169,174,187,188,189,190,196,205,209,217,320,323,328,329,337,339,340,341,345,349,378],"air302_sdk\u5230":313,"boolean":[0,1,2,3,4,6,9,10,13,15,16,17,19,20,21,25,26,29,30,38,59,67,71,87,89,92,93,94,96,101,103,108,109,110,113,115,119,124,130,132,133,206,376],"break":[13,15,17,26,30,38,128,132,159,209,214,217,252,290,323,333,355,375,376,378],"byte":[2,3,4,11,12,13,16,17,19,25,26,29,35,56,62,70,71,72,73,89,90,92,94,96,98,99,104,105,107,110,113,115,131,133,159,163,165,169,170,171,172,177,178,179,188,189,190,193,194,195,209,217,235,250,251,274,290,297,315,327,331,332,336,339,349,350],"case":[1,5,24,71,89,91,107,125,159,211,252,265,266,269,279,302,320,327,334,335,341,342,376,378],"catch":376,"char":[9,11,25,29,35,65,90,96,99,115,124,125,133,159,165,170,171,172,192,193,194,195,209,217,301,325,328,332,333,350],"class":[87,133,165,204,209,266,321,331,332,334,342,350],"const":[159,301,325,328,332,345,376],"default":[1,2,3,4,6,7,9,10,11,12,14,16,17,18,19,20,22,23,24,25,26,29,30,31,32,33,35,36,38,44,52,54,56,57,58,66,67,71,72,77,80,81,84,85,86,87,88,89,90,91,92,93,94,96,99,101,103,104,106,107,108,109,111,112,113,115,116,117,124,125,127,128,130,131,132,133,135,160,163,176,204,205,209,211,218,220,225,235,242,245,246,254,259,263,265,266,268,269,270,272,281,282,286,289,290,298,299,308,309,311,312,315,318,319,330,331,332,336,337,339,344,345,351,357,373,375,376],"do":[3,9,13,15,17,22,25,26,29,35,38,39,40,41,43,44,45,46,47,48,50,52,55,56,57,58,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,81,82,83,84,87,91,92,93,96,100,103,104,107,109,112,113,117,119,120,128,130,131,132,134,159,162,163,166,167,168,169,170,171,172,176,182,183,184,187,188,189,190,192,193,194,195,197,198,207,209,215,217,218,235,245,247,252,263,264,270,272,274,279,281,286,289,290,299,302,315,316,317,318,319,320,321,322,326,327,333,334,340,342,346,348,349,351,352,353,355,369,375,376,377,378,379,381],"ec\u540e\u7f00":313,"enum":248,"esp32s3\u91c7\u7528xtensa":286,"export":376,"final":[17,28,130,204,244,245,261,266,302,315,360,369,376,378],"float":[2,33,38,71,91,99,133,252,265,331,332,366,375,376],"fls\u6587\u4ef6":314,"fls\u7ed3\u5c3e\u7684\u56fa\u4ef6\u6587\u4ef6":314,"function":[0,1,3,5,10,15,17,20,22,23,24,25,26,27,28,34,35,38,39,40,41,43,44,45,46,47,48,49,50,52,53,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,81,82,83,85,86,87,89,90,92,93,96,97,100,104,106,107,108,109,112,113,114,115,118,119,120,121,123,124,125,130,131,132,135,160,162,163,165,166,167,168,169,170,171,172,173,174,177,178,179,180,182,183,184,185,187,188,189,190,191,192,193,194,195,196,199,200,201,202,203,204,205,206,208,210,214,217,226,230,235,240,242,243,245,246,250,251,254,259,260,265,266,268,269,272,284,288,290,293,297,298,299,300,309,315,317,318,319,320,321,322,327,328,330,334,337,338,340,341,342,345,346,348,349,352,353,363,364,369,371,378,379,382],"git\u5b98\u7f51":314,"goto":376,"import":[121,159,199,200,201,202,208,209,217,252,265,300,301,353,355,358,369,371,372,376,377,378,379],"ini\u4e2d\u7684plat_root\u8def\u5f84":313,"int":[0,1,2,3,4,6,7,8,9,10,11,12,13,15,16,17,18,20,23,24,25,26,28,29,30,32,34,35,36,37,38,42,44,53,58,59,67,80,84,87,89,90,91,92,93,94,96,97,98,99,100,101,102,103,105,106,107,108,109,110,111,112,113,114,115,116,119,121,122,123,124,125,127,128,129,130,131,132,133,159,210,211,245,252,298,301,302,320,325,327,332,333,337,341,345,376],"long":[1,10,87,92,99,100,101,102,112,122,133,135,160,162,199,200,201,202,209,217,263,265,274,302,323,325,328,330,369,375,376,377,381,382],"luatos\u6e90\u7801\u76ee\u5f55\u4e0b\u7684":313,"m\u00b3":[83,375],"new":[9,10,19,20,25,28,53,59,89,92,112,113,116,131,133,135,160,174,193,194,195,197,203,204,205,206,209,214,217,246,247,250,265,281,282,283,290,296,299,308,315,316,318,319,327,328,332,333,342,346,348,363,364,366,369,375,376,378],"null":[59,159,265,302,326,328,375,376],"public":[19,92,105,265,377,390],"return":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,159,166,169,170,171,172,188,189,190,193,194,195,204,209,217,247,252,265,282,300,301,315,320,324,326,327,331,333,339,340,342,346,348,350,360,369,376,377,378,379],"s\u03bcg":83,"sdk\u672c\u8eab\u4e0d\u5f00\u6e90":313,"short":[38,87,96,99,112,133,159,166,209,217,218,235,247,252,265,289,307,317,345,358,369,371,372,375,376],"static":[24,92,128,159,210,211,218,265,302,333,341,345,346,348,369,376],"switch":[1,9,20,30,67,70,89,92,93,101,113,125,130,131,135,160,208,217,235,265,282,286,289,353,355,358,370,371,372,376,378],"swm181cbt6\u91c7\u752832":297,"thread\u76ee\u5f55":314,"throw":[247,376],"true":[1,2,3,4,6,7,9,10,12,13,15,16,17,18,19,20,21,24,25,29,30,31,32,35,36,38,39,40,41,43,45,47,48,50,52,55,57,59,61,62,63,64,65,66,67,68,69,71,73,74,75,76,79,82,83,85,86,87,88,89,91,92,93,94,95,96,97,98,101,103,105,106,108,109,110,111,112,113,115,117,119,121,123,124,125,127,129,130,131,132,133,159,166,169,170,171,172,176,177,178,182,183,184,188,189,190,193,194,195,197,198,200,201,202,207,209,217,263,269,299,300,301,316,318,319,333,340,344,345,375,376,377,378,379],"try":[1,4,10,12,15,89,113,159,163,204,209,217,247,252,264,282,286,320,324,336,345,351,357,369,375,376],"var":376,"void":[210,211,245,248,252,298,301,302,322,326,327,328,333,341,345,376],"while":[13,15,17,22,26,38,39,40,41,43,44,45,46,47,48,50,52,55,60,61,63,64,65,66,69,70,71,72,73,74,75,76,77,78,79,81,82,83,91,92,96,103,109,113,119,130,131,132,159,162,163,166,168,170,171,172,176,182,183,184,187,192,197,198,199,200,201,202,209,211,217,245,247,252,265,268,290,298,299,302,318,319,322,327,333,340,345,352,353,355,376,377,378,379],"windows\u5b89\u88c5\u5305\u53ef\u4ee5\u5728":314,"x64\u53ca\u4ee5\u4e0a":313,"y\u0101o":274,"y\u012b":274,A:[25,28,30,38,49,72,92,96,97,99,107,113,116,117,118,119,132,133,159,167,168,175,181,186,187,192,193,194,195,199,204,205,208,209,211,217,218,235,247,252,291,301,316,320,323,326,329,332,333,346,347,348,360,369,373,375,376,377,379,385],AND:[211,376],AT:[92,101,204,214,257,262,263,269,274,289,290,316],And:[65,101,159,221,248,251,265,290,336,345,376,378],As:[38,65,70,101,113,131,159,187,188,189,190,199,209,217,250,289,290,302,315,328,330,331,357,369,375,376],At:[65,159,186,192,204,209,217,247,286,292,301,302,315,317,320,324,338,343,345,351,353,357,373,375,376,377,378,380],Be:[209,217,266,316],But:[17,159,209,217,218,375,376],By:[113,159,235,301,320,375,376],For:[1,3,4,12,17,34,35,56,67,89,96,97,101,104,105,106,108,120,123,124,131,159,163,165,169,199,200,201,202,207,209,215,217,218,224,225,227,228,235,248,251,252,263,265,267,269,292,297,308,317,323,328,333,336,349,357,366,369,374,375,377,384],If:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,119,121,122,123,124,125,126,127,128,129,130,131,132,133,134,159,163,175,199,204,209,210,211,215,217,218,223,229,232,245,247,251,252,265,266,269,272,281,286,289,298,299,300,301,306,307,308,310,312,315,316,317,322,326,328,345,346,348,351,353,355,357,360,366,375,376,378],In:[1,5,9,35,56,65,71,92,93,100,107,124,159,167,168,187,193,194,195,204,209,211,215,217,218,235,240,247,252,263,265,269,274,279,281,286,293,300,301,302,303,306,315,317,320,322,323,325,328,336,341,344,345,355,357,363,366,369,374,375,376,377,378],Is:[4,94,133,170,171,172,193,194,195,199,200,201,202,209,217,264,265,290,353,371,375,376],It:[1,11,14,15,38,59,65,67,71,87,90,92,106,107,112,113,119,121,125,126,127,130,159,162,170,171,172,187,188,189,190,192,193,194,195,204,207,208,209,210,211,235,247,250,252,257,261,263,264,265,266,269,271,274,290,300,301,302,311,312,315,317,320,323,327,328,333,343,346,348,349,352,355,360,364,369,370,371,373,374,375,376,378],Its:[65,159,250,265,327,376],NO:210,NOT:376,Near:345,No:[1,3,5,6,9,10,12,20,24,25,26,35,36,38,58,66,67,71,84,86,87,89,92,93,96,101,102,103,104,107,109,113,115,119,120,122,123,124,125,127,130,159,162,204,206,209,217,221,226,234,241,250,251,258,262,263,265,266,275,281,283,284,290,301,308,327,328,345,371,375,376],Not:[1,24,92,94,97,100,123,159,252,272,279,291,293,301,311,343,350,357,363,375,376],ON:[159,211],OR:[124,159],Of:[159,162,207,232,366,375,376],On:[1,38,71,101,159,204,207,209,240,247,349,357,369,373,376,379],One:[135,160,166,177,178,179,199,200,201,202,209,217,218,266,320,376,378],Or:[113,115,247,252,269,290,302,315,338,376],Such:[101,345,375,376],That:[97,159,209,217,274,315,316,328,376],The:[0,1,3,4,5,6,7,8,9,10,11,12,13,15,16,17,18,19,20,22,23,25,26,27,29,30,31,33,34,35,36,37,38,39,40,41,43,44,45,47,48,49,52,53,55,56,58,61,62,63,64,65,66,67,68,69,71,72,74,75,77,78,79,80,84,85,86,87,89,90,91,92,93,94,96,97,99,100,101,102,105,107,108,109,110,111,112,113,115,116,117,119,120,121,122,124,125,127,128,130,131,132,133,159,162,163,165,166,167,169,170,171,172,176,177,178,179,182,183,184,186,188,189,190,192,193,194,195,197,198,199,200,201,202,204,206,207,208,209,210,211,215,217,218,235,240,244,245,246,248,250,251,259,261,262,263,264,265,266,269,270,271,272,274,279,280,281,282,286,289,290,292,293,296,297,298,299,300,301,302,303,308,311,312,315,316,317,318,319,320,321,323,324,325,326,327,330,331,334,336,337,338,339,340,341,342,343,345,346,347,348,350,352,355,357,358,360,363,366,370,371,372,373,377,378,379,382],Then:[159,162,163,204,209,217,218,232,302,311,312,320,355,375,376,378],There:[0,20,38,71,89,99,104,113,115,119,125,133,159,166,170,171,172,177,178,179,193,194,195,199,200,201,202,204,209,217,218,223,229,250,252,261,263,264,269,279,290,301,308,316,349,357,375,376,377,378,379,381],These:[159,252,350,375,376],To:[9,23,25,28,29,53,65,89,92,93,97,101,104,105,124,159,211,226,252,254,346,348,371,376],WITH:272,Will:[5,93,167,168,181,210,217,290,376],With:[159,247,263,291,297,316,341,376,378],_1:233,_1_:376,_:[5,6,25,99,100,159,272,301,331,352,376,378,379],__:376,____:65,________:65,____________________:65,____s________:65,__add:376,__air001_assert_h:211,__air001f0xx_it_h:211,__air001xx_hal_conf_default_h:211,__air001xx_it_h:211,__band:376,__bnot:376,__bor:376,__bxor:376,__call:376,__concat:376,__cplusplu:[159,211],__div:376,__eq:376,__ev_:376,__file__:211,__gc:376,__hal_afio_remap_swj_en:252,__hal_afio_remap_swj_nojtag:252,__hal_rcc_afio_clk_en:252,__hal_rcc_gpiob_clk_en:211,__hal_rcc_pwr_clk_en:252,__idiv:376,__index:[333,376],__ipair:376,__le:376,__len:376,__line__:211,__lt:376,__main_h:211,__metat:376,__mod:376,__mode:376,__mul:376,__name:376,__newindex:376,__pair:376,__pow:376,__shl:376,__shr:376,__sub:376,__tostr:376,__unm:376,_alloc:376,_arg_:376,_args_:376,_at_0x20000000:[214,290],_block_:376,_body_:376,_boolean_i:376,_c:376,_call:376,_chunkname_:376,_close:376,_cnt:378,_currentline_:376,_d_:376,_ddd_:376,_debug:376,_e1_:376,_e2_:376,_e3_:376,_env:376,_error:376,_explist_:376,_extramsg_:376,_f_:376,_filenam:[325,328],_filename_:376,_funcname_:376,_function:376,_functioncall_:376,_g:[58,71,104,165,266,301,375,379],_getendpoint:252,_getfield:376,_getglob:376,_getinfo:376,_getistr:252,_gettop:376,_init:159,_isnumb:376,_kcontext:376,_lightweight:376,_limit_:376,_loadfil:376,_loadstr:376,_luato:266,_mod_:376,_mode:[325,328],_multret:376,_n_:376,_n_i:376,_newlibt:376,_next:376,_nil_i:376,_number:376,_number_repres:376,_o_:376,_param_t:159,_params_:376,_pcall:376,_pcallk:376,_pop:376,_pushcclosur:376,_pushcfunct:376,_pushinteg:376,_pushliter:376,_pushnil:376,_pushnumb:376,_regist:376,_remov:376,_repeat:[28,330],_s_:376,_set_:376,_setfunc:376,_setglob:376,_stat_:376,_state:376,_step_:376,_string_:376,_string_repres:376,_t:[332,376],_temp:351,_tonumb:376,_type:376,_typenam:376,_v1:[166,255],_v2:9,_v3:9,_valid:376,_var:376,_var_:376,_version:[165,168],_x_:376,_x_form:376,_xxx:204,_xxx_:376,a1:165,a2:165,a7:289,a8xza9cqs3cu79b:31,a_binari:376,a_c:376,a_cod:376,a_continu:376,a_dynam:376,a_find:376,a_garbag:376,a_long:376,a_messag:376,a_meta:376,a_pseudo:376,a_reference_in:376,a_registry_i:376,a_sequ:376,a_tail:376,a_temporari:376,a_vari:376,a_virtu:376,a_x_:376,a_y_:376,aa:376,aaa:375,aabb:96,aabbccdd:96,aabbccddeeff:131,aabcdefg:375,ab:[165,375],abandon:[107,134,376],abbrevi:[96,100,125,182,183,184,192,193,194,195,209,217],abc:[6,10,14,23,24,26,28,29,71,84,102,105,108,130,159,167,302,317,345,349,375],abcabcabc:375,abcd123:31,abcd:375,abcdabcd1234:159,abcdabcd:7,abcdefg:[31,133,300],abcdefgg:130,abcderg:130,abid:159,abil:[169,218,264,269,301],abl:[159,215,375],abmfa1ucw:31,abnorm:[10,101,247,252,265,366,376,378],abort:[252,376],about:[13,16,17,24,71,88,134,159,163,166,204,206,221,224,225,226,228,235,244,247,261,268,282,290,297,321,333,334,341,342,346,347,352,375,376],abov:[12,58,72,115,124,133,159,176,186,204,218,245,247,250,251,262,263,265,269,271,272,281,282,286,289,290,298,300,302,311,312,315,328,331,343,355,357,366,369,370,373,375,376,378,379],abroad:265,abscissa:[35,124],absolut:[29,132,159,366,375,376],abwifi:289,ac5:298,accel:64,acceler:[53,64,92,208,257,291],acceleromet:[53,64],accept:[20,28,107,159,165],access:[101,159,250,290,300,317,329,336,375,376],access_mod:336,accesskei:54,accid:369,accommod:87,accompani:320,accord:[2,13,17,20,22,30,39,44,52,70,72,78,82,83,89,93,99,112,125,128,129,130,131,133,159,166,169,170,171,172,183,194,209,211,217,218,235,245,247,252,266,281,282,286,290,298,300,301,302,311,312,317,323,331,345,351,355,358,366,369,372,373,375,376,377,402],accordingli:[133,159,331],account:[30,93,289,316,352],accumul:[6,360,375],accur:[122,186,208,209,369,376],accuraci:[38,57,97,103,159,182,183,184,235,240,265,297,355,358,369,372],accustom:377,achiev:[10,96,168,181,208,209,217,235,297,320,321,334,342,345,352,363,375,378,404],ack:[37,132],acknowledg:130,aco:165,acquir:[20,92],acquisit:[16,48,131,166,170,171,172,179,209,217,231,265,376],act:[65,131,159,331,343,376],action1:159,action2:159,action:[28,66,118,130,159,207,252,291,351,371],activ:[35,67,87,92,94,101,113,119,131,159,207,211,245,263,265,281,286,289,298,309,369,376,381],activelin:376,activetim:28,acttyp:28,actual:[0,20,29,30,38,44,49,82,83,122,125,128,131,133,159,162,169,206,209,211,217,218,235,245,247,252,266,269,280,281,282,286,289,298,300,302,315,333,343,344,345,349,353,355,358,360,372,375,376,378],acyv3qdjrra0fw5ue58knq:31,ad:[2,4,6,10,12,13,14,15,17,19,20,25,29,30,38,84,92,96,120,121,122,124,126,130,131,159,162,193,194,195,214,218,235,245,264,265,266,286,290,298,301,321,323,334,342,345,376,378],adapt:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,114,115,116,117,119,120,121,122,123,124,125,126,127,128,129,131,132,133,134,159,209,247,265,269,311,312,319,323,344,345,346,348,352,360,364,366,369],adapter_index:28,adc0:[0,209,217,220,225,242],adc1:[0,166,220,225,252],adc2:[0,225],adc3:225,adc:[1,28,118,174,205,215,220,221,225,231,235,240,243,250,251,257,265,266,270,279,281,286,290,293,296,297,345,358,369,372,380],adc_0:[225,281],adc_1:[225,281],adc_2:[225,281],adc_3:[225,281],adc_4:281,adc_5:281,adc_clk:252,adc_cmd:252,adc_flag_eoc:252,adc_getconversionvalu:252,adc_getflagstatu:252,adc_in1:235,adc_in2:235,adc_in4:235,adc_in5:235,adc_in6:235,adc_initstructur:252,adc_range_1_2:0,adc_range_1_8:0,adc_range_3_6:0,adc_range_3_8:0,adc_scanconvmod:252,adc_softwarestartconvcmd:252,adc_temp:[209,217],adcgetconversionvalu:252,add:[12,28,29,30,53,84,101,124,135,160,181,186,204,207,209,214,217,235,245,248,251,252,263,265,266,269,271,290,298,302,306,311,312,315,317,324,325,333,342,344,345,346,348,357,374,375,376,381],add_btn:159,add_myap_5min:302,add_opt:159,add_tab:159,addb:375,addit:[2,9,21,23,28,35,65,84,92,93,107,118,120,130,159,199,209,211,217,221,226,234,235,240,251,266,268,270,284,286,289,290,308,311,312,315,325,326,357,375,376],addr:[28,53,56,65,115,209,217,324,332],address:[15,18,23,25,28,51,53,57,58,65,71,93,96,102,111,113,128,131,133,163,170,171,172,174,191,196,205,209,214,217,235,247,252,254,265,290,297,317,324,336,341,344,345,351,353,376,381,391],adhes:[355,369],adipisc:159,adjac:[92,159,266],adjust:[1,11,25,52,76,109,124,125,133,135,160,166,182,183,184,209,217,218,235,245,247,252,264,265,269,274,280,298,355,360,369,370,371,376],adjust_period:28,adler:90,administr:381,adon:[250,290],adopt:[209,217,281,358,372,376],ads1115:[53,266],ads1115_conf_hcmd:39,ads1115_conf_lcmd:39,ads1115_data:39,adv_fre:96,advanc:[91,135,160,165,206,211,235,245,298,317,355,376],advantag:[162,375,378],advdata:28,advic:376,advparam:28,adxl345:53,adxl346:53,adxl34x:53,adxl34x_data:40,ae:[6,167,265,272,341],af:[53,289],affect:[17,77,78,106,133,159,209,217,247,252,263,360,375,376],affix:345,afford:214,after:[0,1,3,9,10,11,14,15,20,25,27,28,29,30,31,33,35,38,56,63,65,71,85,87,89,90,92,93,94,96,101,104,105,106,107,108,110,112,113,115,117,119,120,124,125,128,130,131,132,133,159,162,166,170,171,172,174,180,181,188,189,190,193,194,195,198,204,205,207,208,209,211,215,217,218,223,229,231,232,235,245,247,250,251,263,264,265,266,269,271,279,281,282,286,289,290,297,298,299,301,302,308,311,312,316,317,323,330,333,344,345,349,353,360,366,370,371,373,375,376,377,378,379],afterward:38,ag:[17,71,169,301],again:[3,4,9,10,13,20,30,65,96,107,124,128,131,159,163,169,200,201,202,207,218,232,247,252,263,265,353,360,366,369,373,375,376,378],against:[355,376],agent:323,aggress:376,agp:263,agpio3:269,agpio4:269,agpio5:269,agpio:125,agr2:28,agre:159,agreement:[28,118,336,346,347],ah:[35,124,360,371],ahb:211,aht10:[53,173,174,205,306,309],aht10_data:41,aht20:306,aht:306,aie:53,air001:[212,213,290],air001_assert:211,air001_dev:211,air001_pcb:[214,290],air001dev:211,air001xx_hal:211,air001xx_hal_conf:211,air001xx_hal_cortex:211,air001xx_hal_driv:211,air001xx_hal_flash:211,air001xx_hal_gpio:211,air001xx_hal_pwr:211,air001xx_hal_pwr_ex:211,air001xx_hal_rcc:211,air001xx_hal_rcc_ex:211,air001xx_it:211,air001xx_ll_bu:211,air001xx_ll_cortex:211,air001xx_ll_dma:211,air001xx_ll_gpio:211,air001xx_ll_pwr:211,air001xx_ll_rcc:211,air001xx_ll_system:211,air001xx_ll_util:211,air101:[0,1,4,5,6,8,9,10,11,12,13,14,16,17,18,19,20,21,23,24,25,26,27,29,31,32,33,35,36,38,65,71,72,77,80,84,85,87,88,89,90,91,93,95,96,98,99,100,101,102,103,104,105,106,107,108,109,111,113,115,116,117,118,119,121,123,124,125,128,129,130,131,132,133,134,162,163,166,167,168,173,174,175,180,181,185,186,187,191,192,196,199,203,204,205,209,219,228,229,230,279,290,293,301,307,308,309,312,316,344,346,348,352,382,402],air101_chip:[166,182,193],air101_core_bom_b_air101_core_a10_v1:220,air101_flash:351,air101_mcu:[200,220],air101_pcb:[221,290],air103:[0,1,4,5,6,8,9,10,11,12,13,14,16,17,18,19,20,21,23,24,25,26,27,29,31,32,33,35,36,38,65,71,80,84,85,87,88,89,90,91,93,95,96,98,99,100,101,102,103,104,105,106,107,108,109,111,113,115,116,117,118,119,121,123,124,125,128,129,130,131,132,133,134,162,166,173,174,180,185,191,196,203,204,205,209,218,223,224,225,230,279,290,293,301,307,316,351,352,382,402],air103_:225,air103_bom_b_air103_a10_v1:225,air103_cor:225,air103_mcu:[166,183,194,201,225],air103_pcb:[226,290],air105:[0,1,2,3,4,5,6,7,8,9,12,13,14,15,16,17,18,19,20,21,23,25,27,28,29,30,31,33,34,35,38,65,71,80,84,85,87,88,89,90,91,93,95,98,99,100,101,102,103,104,105,106,107,109,110,111,113,115,116,117,118,119,121,124,125,127,128,129,130,132,133,134,135,162,164,166,173,174,180,185,191,196,203,204,205,233,279,290,293,307,316,346,348,352,382,383,384,392,402],air105_cor:233,air105_download:351,air105_mcu:[195,202,233],air105_pcb:[234,290],air106:279,air107:307,air10x:[65,351,392],air112:208,air153c_wtd:53,air202:[244,381],air302:[279,290,352],air302_sdk:313,air32:[51,56,71,130,245,247,250,254,289,290,371,381],air32cbt6:[246,249],air32f103:[224,225,226,228,246,248,249,290,298,402],air32f103_pcb:[250,290],air32f103cbt6:[245,247,250,251,252,290],air32f103cct6:[251,252],air32f103cxt6:246,air32f103rpt6:252,air32f103vet6:252,air32f103vgt6:252,air32f103zet6:252,air32f103zgt6:252,air510u:[263,270],air5xx:381,air600:[22,101,112,131,204,269,270,271,315,316,352,381],air601:[0,1,4,5,6,8,9,10,11,12,13,14,16,17,18,19,20,21,23,24,25,26,27,29,31,32,33,35,36,38,71,80,84,85,87,88,89,90,91,93,95,96,98,99,100,101,102,103,104,105,106,107,108,109,111,113,115,116,117,118,119,121,123,124,125,128,129,130,131,132,133,134,254,290,316],air640w:[279,290,352],air700:[0,1,2,4,5,6,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,29,31,32,33,35,38,71,80,84,85,86,87,88,89,90,91,92,93,95,98,99,101,102,103,104,105,106,107,109,110,111,113,115,116,117,118,119,121,124,125,128,129,130,131,132,133,204,268,270,289,290,315],air722:[381,382],air724:[92,381,382],air724ug:[290,382],air72xux:382,air780:[0,1,2,4,5,6,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,29,31,32,33,35,38,71,80,84,85,86,87,88,89,90,91,92,93,95,98,99,100,101,102,103,104,105,106,107,109,110,111,112,113,115,116,117,118,119,121,124,125,128,129,130,131,132,133,204,262,263,264,265,267,269,271,289,290,293,316,352,382],air780e_cdcpppdemo:289,air780e_pcb:[268,290],air780eg:[38,89,101,112,131,204,262,265,266,268,269,270,271,289,290,315,352],air780ex:315,air800:381,air820:382,air820ug:290,air:[53,210,217,257,357,375,382,404],air_jlink_keil:245,air_rcc_pllconfig:248,airisp:215,airkiss:[131,254],airm2m:[211,281],airm2m_all_crc:343,airmcu:210,airplan:94,airpsm:101,airtun:[130,266],ak8963:[53,265],alarm:[53,101,113,223,229,366],alarm_int:67,alert:[360,370,373],algorithm:[6,28,52,118,167,211,245,250,251,266,290,298,301,376],ali:53,alia:252,alias:159,alibaba:[31,51,54,146,265],align:[6,135,160,250,290,327,355,376],align_cent:[87,159,209,217],align_in_bottom_mid:159,align_in_top_mid:159,align_in_top_right:159,align_out_bottom_mid:159,align_out_left_mid:159,align_out_right_mid:159,aliot:58,aliqua:159,aliquip:159,aliyun:[28,54,97,113],all:[1,6,8,9,11,29,35,36,38,39,40,41,43,45,46,47,48,50,52,54,55,56,57,58,60,61,62,63,64,66,67,68,69,70,73,74,75,76,77,78,79,81,82,83,89,90,92,96,99,101,102,111,113,115,124,125,127,133,159,162,163,176,188,189,190,207,208,209,211,217,218,223,229,235,245,247,250,263,265,266,271,272,280,290,298,300,316,327,328,331,343,345,349,351,357,360,366,375,376,379,381],all_dead:376,all_don:132,allig:[355,357,370],alloc:[113,133,159,265,299,301,318,319,320,321,326,334,342,376,378],allow:[35,87,119,159,265,269,302,345,369,376,377],almost:[119,247,375,376],alo:376,alon:[215,290,376],aloud:274,alpha:[135,160],alphabet:376,alphanumer:376,alreadi:[4,8,113,124,159,207,266,341,353,375,376],also:[14,20,24,53,67,71,77,78,89,92,99,101,105,113,115,119,121,125,131,133,159,162,167,168,175,188,189,190,204,209,215,217,218,235,240,247,252,259,263,264,265,269,270,274,300,301,302,315,316,323,324,328,331,349,351,352,355,358,363,366,371,372,375,376,378,380],alt:[28,265],alt_fun:28,alt_func:[20,265],altern:[56,159,244,252,291,376],altfun:28,although:[65,263,269,282,343,355,375,376],altitud:38,altogeth:324,alwai:[20,66,101,102,106,109,119,159,162,218,247,266,274,301,322,330,336,350,353,366,375,376],am2320:53,am:[200,201,202,274,375],ambient:53,ambigu:[375,376],amd:215,amend:38,amet:159,among:[323,327,357],amount:[15,71,115,125,127,133,193,194,195,265,326,366,375,376],amp:369,amper:360,amplif:159,amplifi:264,amplitud:[209,217],amr:[4,265,270],amr_:4,amr_cod:4,amr_nb:4,amr_wb:4,an:[1,2,4,9,10,13,17,18,19,21,23,24,30,33,35,58,62,65,67,71,84,85,87,89,91,93,94,96,97,101,113,117,119,121,124,131,132,133,135,160,162,163,166,167,181,187,188,189,190,192,193,194,195,199,204,206,208,209,210,214,217,218,227,235,240,247,251,252,263,265,266,269,281,282,286,290,297,298,301,302,311,312,315,316,317,320,322,323,326,327,328,331,333,336,341,345,350,351,352,360,364,369,375,376,377,378,380],an_error:376,an_index_to:376,an_iterator_funct:376,an_state_:376,analog:[28,53,87,118,166,168,182,183,184,209,217,235,240,286,297,345,371,378],analysi:[209,217,320,321,334,342,364,366,376,377],analyz:[125,252,303,353,358,369,371,372,376,378],anchor:376,and_hooks_:376,and_table_:376,angl:[38,135,160,162,297,336,376],angular:159,ani:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,114,115,116,117,119,121,122,123,124,125,126,127,128,129,130,131,132,133,134,159,169,176,197,198,204,209,211,217,218,247,257,265,266,281,286,290,300,311,312,316,345,349,353,358,366,369,371,372,375,376],anim:[28,135,160,209],anim_cr:28,anim_fre:28,anim_on:159,anim_ono:159,anim_path_set_cb:28,anim_path_t:28,anim_path_t_fre:28,anim_set_exec_cb:28,anim_set_path_str:28,anim_set_ready_cb:28,anim_tim:159,anim_time_m:159,anim_typ:87,annot:[342,375,376],anod:72,anom_on:159,anonym:[119,376],anoth:[14,65,92,115,159,199,200,201,202,209,217,245,252,298,328,375,376,378],answer:[291,381],antenna:[38,70,101,257,263,281,286,290],antenna_on:53,anti:[20,35,70,101,159,204,218,265],anticol:53,anxieti:208,anyth:[159,162,376],anywai:369,anywher:[375,376],ao3400:65,aon_gpio:[101,264],aon_gpio_2:242,aon_gpio_4:242,aongpio:269,ap:[18,93,113,130,131,266,315,323,341],ap_readi:341,ap_start:341,ap_stop:341,apb1:211,apb:[250,290],api:[0,1,2,3,6,8,9,12,13,14,15,17,19,20,23,24,29,35,39,40,41,43,45,46,47,48,50,52,53,54,55,56,57,58,60,61,62,63,64,66,68,69,70,71,73,74,75,76,79,81,82,83,89,92,96,97,101,105,107,115,122,124,126,131,135,160,162,165,168,188,189,190,198,205,209,217,226,263,265,269,274,290,291,302,319,321,334,342,349,352,382],apiurl:71,apn:[28,265],app:[301,311,312,313,344,351],app_addr:344,appar:35,appear:[92,107,159,204,247,265,289,291,317,349,353,355,357,366,371,376],append:[29,376],appl:[159,375],appli:[113,159,162,270,326,350,376,378],applic:[23,25,72,89,96,113,159,161,162,164,199,200,201,202,208,209,217,240,252,265,271,291,311,312,317,326,366,375,376,378],appropri:[14,218,282,311,312,376],approx:[244,261],approxim:[97,240,376],april:159,apsta:131,apt:[163,311,312,318],ar:[0,1,4,8,10,12,13,15,17,20,22,24,25,29,30,33,35,36,38,52,56,59,65,67,71,72,85,86,87,89,92,93,96,97,99,100,101,107,109,110,113,115,119,120,124,125,127,131,133,159,162,163,166,167,170,171,172,174,175,177,178,179,187,193,194,195,199,200,201,202,204,208,210,211,217,218,220,223,224,225,226,228,229,231,235,243,246,247,250,251,260,262,263,264,265,266,268,269,271,272,274,279,280,281,282,290,299,300,302,303,308,311,312,315,316,317,319,320,328,333,336,340,341,342,344,345,346,347,348,349,351,352,353,358,360,364,366,369,372,375,376,377,378,379,381,388],arab:159,arbitr:235,arbitrari:[104,297,343,375,376],arc:[135,160],arc_creat:159,arc_get_adjust:159,arc_get_angle_end:159,arc_get_angle_start:159,arc_get_bg_angle_end:159,arc_get_bg_angle_start:159,arc_get_max_valu:159,arc_get_min_valu:159,arc_get_typ:159,arc_get_valu:159,arc_is_drag:159,arc_part_ind:159,arc_part_knob:159,arc_part_main:159,arc_set_adjust:159,arc_set_angl:159,arc_set_bg_angl:159,arc_set_bg_end_angl:159,arc_set_bg_start:159,arc_set_bg_start_angl:159,arc_set_chg_r:159,arc_set_end_angl:159,arc_set_rang:159,arc_set_rot:159,arc_set_start:159,arc_set_start_angl:159,arc_set_typ:159,arc_set_valu:159,arc_type_norm:159,arc_type_revers:159,arc_type_symmetr:159,arc_type_t:159,architectur:[159,280,286],archiv:[54,93,315],arcsin:376,arctan:297,arctang:376,arduino:[214,215,281,290,292],are_first:376,area:[3,9,35,70,98,110,115,124,133,135,160,250,266,274,290,324,325,326,331,336,343,375,376],area_t:159,arg1:[28,165,323],arg2:[28,323],arg3:28,arg4:28,arg:[28,120,165,197,377,378],argn:28,argp:376,argument:[87,345,376,377,378],aris:375,arithmet:[28,118,376],ariyun:53,arm:[208,214,240,247,252,290,297,315],armcc:313,armink:[169,188,189,190],armmb:247,around:[124,159,208,353],arrai:[6,92,94,96,135,160,162,174,203,205,209,265,331,332,350,376],arrang:[159,279,286,336,357,375],array_id:70,array_len:159,arrear:265,arriv:327,arrow:159,artboard:9,articl:[97,159,232,244,265,282,301,323,378],as_identifier_:376,ascend:376,ascii:[331,336,350,375,376],asd8938kjjsidiajdl:375,asdfassdfasdfass:6,asdicagydausckfugdaflgscdabgsdbahhacbshbsd:375,asfb:331,asid:218,asin:165,ask:[135,160,346,348,378],aspect:[328,376],assembl:353,assert:[165,166,378],assert_fail:211,assert_param:211,assign:[66,92,113,124,135,160,165,247,331,378],assist:[252,308],associ:[159,309,345,376,378],assum:[20,84,266,301,315,328,376],assumpt:[308,376],asymmetr:[159,167,355],async:[28,333],asyncget:333,asynchron:[9,53,92,96,131,199,200,201,202,209,217,265,302,345],atan2:376,atan:165,ate:375,ath10:308,ath20:308,ath:308,atla:159,atom:252,attach:[10,35,92,209,213,217,225,233,235,246,247,249,255,264,294,295,297,333,360],attach_fil:314,attempt:376,attent:[25,57,58,65,67,72,77,78,98,113,120,159,207,209,217,235,245,247,252,269,271,284,288,290,320,346,348,349,355,369,390],attribut:[96,159,265,376],audio:[4,28,101,118,235,262,265,270,274,378],audio_format:[4,28],audio_id:1,audio_play_stop:265,august:159,aut:159,auth:[28,130],auth_password:28,auth_user_nam:28,authent:[23,28,92,93,118,265,341],author:[207,345,376],authstat:53,auto:[28,93,130,131,135,160,373],auto_del:87,auto_format:28,auto_phone_fix:[28,265],auto_reconnect:28,auto_reset_stack:28,autocollectmem:28,autofit:159,autoflush:28,autoguessencod:207,autohint:159,autolong:28,automat:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,119,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,160,204,208,209,214,215,217,218,223,229,245,247,250,265,266,269,274,290,298,299,308,318,323,341,345,355,357,358,360,366,369,371,372,373,375,376],autoreconn:28,autosav:366,aux_rx:269,aux_tx:269,aux_uart:263,auxiliari:[92,165,268,290],avail:[0,1,9,13,17,20,56,72,90,94,96,101,107,115,117,125,126,127,131,159,198,209,235,244,248,257,261,264,265,269,270,279,281,291,308,309,311,312,344,352,360,366,375,376],avd33:235,averag:[91,218,360,369,371,376],average_temp:28,avoid:[65,235,247,252,265,269,281,286,309,345,355,369,376],awai:[58,162,218,235,247,376],await:333,awaken:[101,119,223,229,378],awar:252,awem:381,awsl:375,axi:[53,159,366],azimuth:38,azur:207,b2:350,b5:289,b6:289,b6_esp32s3:289,b:[9,28,38,49,70,75,92,97,99,107,117,119,121,133,209,217,311,312,317,331,332,345,350,352,375,376,377,378,379],b_hd:9,b_v2:9,b_v3:9,b_xy_:376,ba:289,bacground:159,back:[1,3,28,87,93,125,133,159,200,201,202,209,217,265,286,290,317,331,345,357,369,375,376],background:[35,71,116,124,159,214,240,250,265,290,296,346,347,376],backlight:35,backparenthes:376,backslash:[375,376],backspac:376,backtrac:376,backtrack:376,backup:263,backward:[125,127,133,159,240,331,373,375,376],bad:[23,333,376],bai:247,baidu:[28,38,53,211,245,298,314,317],baiduyun:[54,265],balabala:[302,379],balanc:[101,376],banana:[159,355,360,370,375],band:[28,94,131,240,376],bandrat:28,bandwidth:[85,86,257],bandwidthafc:[85,86],baobao:274,bar1:159,bar:[135,160,209,211,245,298,373,376],bar_creat:159,bar_part_bg:159,bar_part_ind:159,bar_set_anim_tim:159,bar_set_rang:159,bar_set_start_valu:159,bar_set_typ:159,bar_set_valu:159,bar_type_symmetr:159,barabala:[302,333,345],bare:[91,328],base32:[6,117],base64:[6,117],base64_decod:28,base64_encod:28,base:[13,17,28,53,65,67,92,94,106,120,135,160,165,169,206,207,209,214,215,235,244,247,252,261,263,265,266,281,286,290,291,292,299,303,315,318,319,322,330,344,349,351,369,375,382],base_year:28,bash:318,basi:[344,378],basic:[10,15,28,118,127,130,146,159,163,165,174,188,189,190,205,235,240,244,252,265,270,274,290,301,320,321,328,334,335,336,342,345,346,348,355,360,370,371,377],bat:[28,313,314,315],batch:[71,245,247,265,266,271,286,353,376],batt:373,batteri:[9,159,186,208,209,235,366,369,370,371,382],baud:[12,53,81,104,115,125,177,178,199,200,201,202,204,209,217,218,222,228,231,257,263,265,281,286,291,340,344,351],baud_rat:28,bb:289,bbb:375,bbbbbb:[209,217],bc:9,bd09:38,bd:38,bdata:6,beacon:96,beauti:[159,209,217],becaus:[4,23,57,63,65,87,107,115,159,167,175,209,217,247,252,263,265,274,281,291,302,336,350,357,366,369,374,375,376,378,390],becom:[38,96,98,101,159,207,265,373,374,375,376,378],been:[4,8,10,15,26,30,38,65,87,92,93,96,107,108,113,120,130,131,134,159,167,252,265,269,281,282,291,302,306,352,353,375,376],befor:[1,9,10,11,12,25,35,65,89,90,92,93,96,101,106,113,115,124,131,159,163,169,188,189,190,193,194,195,198,204,209,215,217,218,223,229,231,232,245,247,252,263,265,266,269,274,281,282,286,301,311,312,343,345,351,360,366,375,376,378,391],began:[209,217],begin:[4,25,28,30,99,101,133,159,200,201,202,204,209,210,217,223,229,247,252,301,315,320,331,345,360,375,376,378],beginn:[352,378],behalf:[23,235],behav:376,behavior:[159,323,345,376],behind:376,beidou:[208,263],being:[24,125,159,166,207,217,218,247,252,289,327,328,360,369,373,375,376,378],believ:209,bell:376,belong:[26,159,263,279,327,345,376,378],below:[65,124,159,166,209,217,218,235,247,252,311,312,327,358,360,366,369,371,375,376,378],benchmark:[67,87],benefit:378,besid:159,best:[315,320,323,355,375,376],better:[10,11,92,159,209,217,301,375,377,378],between:[1,35,65,89,124,133,159,170,171,172,174,180,193,194,195,200,201,202,205,208,209,219,224,231,247,250,253,262,263,264,265,266,286,290,297,316,323,332,336,338,353,355,360,366,373,375,376,378],bg_drag_dir:159,bg_grad_stop:159,bg_main_stop:159,bg_opa:159,bh1750:53,bh1750_data:45,bh1750_read_light:45,bi:[2,209,270],bia:28,bias_onefourth:36,bias_onehalf:36,bias_onethird:36,bias_stat:36,bidirect:[159,170,171,172,209,217],bif:[250,290],big:[27,99,113,115,125,133,159,207,263,291,375,376],bigd:17,bigdata:[11,90],bigger:282,biggest:376,bilater:337,bilibili:206,bilingu:[360,373],bin:[14,15,23,81,87,97,159,252,309,314,315,343,344,351,376],binari:[29,34,37,94,96,102,105,117,159,199,206,351,376],bind:[28,376],binfil:[58,247,351],binop:376,binpkg:271,bit0:89,bit32:376,bit64:[28,89,118,265],bit7:25,bit:[1,4,6,9,19,20,25,26,28,34,35,36,65,70,72,77,78,89,94,105,118,124,125,159,162,165,170,171,172,193,194,195,199,200,201,202,209,217,240,250,251,257,281,286,290,296,297,302,332,339,340,358,369,372,375,395,398,401],bit_ord:28,bitdict:28,bitmap:[9,35,124,159],bits_per_sampl:[4,28],bitw:[28,344],bitwis:376,biu:375,biubiu:375,biubiubiu:375,bl:[209,217,344,351],bl_addr:344,black:[9,87,265,300,357],blackbodi:324,blank:[87,89,92,113,117,128,133,331,375,376],ble:[28,118,257,279],blend:159,bless:263,blink:[135,160],blob:[266,289,349],block:[15,16,25,26,53,70,90,115,122,159,165,174,188,189,190,205,245,250,265,290,302,326,333,340,345,375,378,379],block_:376,blood:88,blue:[35,298],bluepil:[245,246],bluepill_pcb:[250,290],bluetooth:[28,118,208,254,286,290,353,371],bme280:53,bme680:53,bmp180:53,bmp280:53,bmp:265,bmx:53,bmx_data:46,bmx_data_data:46,bnf:376,boad:281,board:[1,9,72,77,166,167,168,169,170,171,172,175,176,177,178,179,181,182,183,184,186,187,188,189,190,192,193,194,195,197,198,199,200,201,202,204,205,206,209,214,215,217,218,220,221,225,226,233,234,239,243,245,249,250,255,256,260,265,268,277,282,283,284,287,288,289,292,295,296,298,328,352,355,357,360,369,382,384,390,391,392,402],board_v1:219,boardguid:[270,291],bodi:[24,28,37,58,327,375,376,378],body_len:23,bold:345,bom:[220,225,233,389],bond:376,book:[215,265,376,390,392],bool:[9,12,13,17,18,24,25,29,31,32,35,36,38,39,40,41,43,45,47,48,50,52,55,56,57,61,62,63,64,65,66,68,69,70,71,73,74,75,76,79,81,82,83,87,88,89,91,92,93,94,95,96,97,98,102,104,105,106,108,111,112,117,121,123,125,127,129,130,131,133,134,169],boom:89,boost:390,boot0:[215,252],boot1:252,boot:[92,101,127,204,209,215,217,218,220,225,242,245,252,259,262,263,264,265,281,286,297,308],bootim:29,bootload:[215,344,351],bootmod:[279,281],bootstrap:[250,290],boottim:29,border:[124,159],border_sid:159,bore:376,born:247,boss:290,both:[20,30,92,159,204,218,235,252,263,264,269,308,315,317,340,345,355,376],bottom:[1,9,15,23,28,35,38,58,72,77,93,94,101,104,107,113,118,124,159,204,209,232,266,269,327,355,360,366,369,375,376,379],bottom_fit_typ:159,bounc:87,bound:[133,159,376],boundari:[159,320,321,334,335,342],box:[35,124,135,160,300],boyfriend:162,bpp:[28,159],brace:376,bracket:[375,376],bracket_:376,bracketpair:207,bracketpaircolor:207,brackets_ar:376,brain:[308,317],brake:[250,290],branch:[206,345,376],brand:[355,360,369,370,373],breakpoint:[323,376],breath:[66,174,185,205,209,217],bri:53,bridg:289,briefli:[209,217],bright1:[77,78],bright3:77,bright5:77,bright8:[77,78],bright:[76,77,78,135,160,162,182,183,184,209,217,357,371],brightest:159,bring:[159,379],broadcast:[96,131,341],broken:[120,357],brought:[25,209,217],browser:24,brush:[9,77,78,94,97,204,209,214,221,226,232,234,243,247,260,263,266,268,279,284,288,290,301,307,311,312,315,317,344,346,348,353,366],bs:56,bsd:376,bsp:[22,25,28,100,118,131,163,166,226,265,270,290,299,313,314,315,318,319,344],bssid:[131,341],bt:[119,352,376],bt_cb:119,bt_readi:119,btn1:159,btn2:[87,159],btn3:159,btn:[87,135,160,209,217],btn_bw0:124,btn_bw1:124,btn_bw2:124,btn_bw3:124,btn_creat:[87,159,209,217],btn_get_stat:159,btn_hcenter:124,btn_id:159,btn_index:159,btn_inv:124,btn_part_main:159,btn_set_check:159,btn_set_fit2:159,btn_set_fit:159,btn_set_layout:159,btn_set_stat:159,btn_shadow0:124,btn_shadow1:124,btn_shadow2:124,btn_state_:159,btn_state_checked_dis:159,btn_state_checked_press:159,btn_state_checked_releas:159,btn_state_dis:159,btn_state_pr:159,btn_state_press:159,btn_state_releas:159,btn_state_t:159,btn_str:159,btn_toggl:159,btn_xframe:124,btna:159,btnb:159,btnm1:159,btnm:159,btnm_ctrl:159,btnm_ctrl_:159,btnm_ctrl_no_repeat:159,btnm_ctrl_tgl_enabl:159,btnm_map:159,btnmatrix:[135,160],btnmatrix_:159,btnmatrix_clear_btn_ctrl_al:159,btnmatrix_cr:159,btnmatrix_ctrl_check:159,btnmatrix_ctrl_check_st:159,btnmatrix_ctrl_click_trig:159,btnmatrix_ctrl_dis:159,btnmatrix_ctrl_hidden:159,btnmatrix_ctrl_no_repeat:159,btnmatrix_demo:159,btnmatrix_get_active_btn_text:159,btnmatrix_part_bg:159,btnmatrix_part_btn:159,btnmatrix_set_btn_ctrl:159,btnmatrix_set_btn_width:159,btnmatrix_set_map:159,bu:[1,25,35,39,40,41,43,44,45,47,48,52,55,61,63,64,65,68,69,74,75,79,88,89,91,108,109,110,170,171,172,192,193,194,195,199,200,201,202,209,217,235,240,247,250,290,321,322,328,330,333,334,342,360],bucket:375,buf:[15,125,159],buf_siz:159,buff2:28,buff:[4,10,26,28,30,35,53,62,70,87,92,109,115,162,163,331,332,376],buff_mod:28,buff_siz:[28,163],buffer:[3,9,28,35,59,87,113,124,125,159,200,201,202,209,217,252,265,321,334,340,342,376],buffer_offset:265,bug:[159,247,252,357,364,366],bui:[247,353,355,360,363,369,371],build:[159,206,207,214,266,290,299,304,306,308,311,312,313,315,318,319,344,376,381],build_at:344,build_bi:344,build_cmak:299,build_host:344,build_system:344,builddat:28,built:[12,58,87,101,107,113,159,168,175,176,197,208,209,215,217,235,240,248,252,257,263,265,266,281,286,296,297,320,325,333,336,349,376,378],bulk:384,bullet:159,bunch:[263,345],buoi:[135,160],burden:235,burn:[166,205,206,214,218,221,226,232,234,243,246,247,250,260,268,282,284,286,290,296,297,307,308,355,360,370,371,373],burner:[250,290],bus_dac:1,bus_i2:1,bus_soft_dac:1,bus_typ:28,bus_voltag:52,busi:[9,35,85,86,93,110,129,131,250,266,290,300,302,378,391],button:[123,124,135,160,204,207,209,210,211,215,217,218,226,235,245,247,262,263,264,281,289,290,298,355,357,360,366,370,373],bv1vf4y1l7rb:206,bv2:9,by_clean:376,bypass:376,byte0:351,byte1:351,byte2:351,byte3:351,c1:159,c1c2c3:[19,265],c1c3c2:19,c3:[281,283,290,346,348],c3_pcb:[284,290],c99:159,c:[9,28,35,46,75,97,99,107,117,118,119,125,159,165,205,209,214,217,235,245,252,281,286,289,290,298,311,312,315,317,321,328,334,335,342,346,348,350,351,353,355,360,364,369,371,374,375,392,404],c_n_:376,ca:[18,23,58,93,113],ca_fil:28,cabl:[204,209,217,289,355,357,360,370,385],cach:[10,15,26,59,112,113,125,240,252,265,340,376],cache_s:28,cal:53,calchum:[170,171,172],calctemp:[170,171,172],calcul:[0,6,19,70,89,90,133,159,174,180,205,209,217,251,265,297,375,376],calculate_crc:53,calendar:[135,160,390,392],calendar_:159,calendar_cr:159,calendar_date_t:159,calendar_get_pressed_d:159,calendar_part_bg:159,calendar_part_d:159,calendar_part_day_nam:159,calendar_part_head:159,calendar_set_highlighted_d:159,calendar_set_showed_d:159,calendar_set_shown_d:159,calendar_set_today_d:159,calibr:[52,252,358,369,372],call:[1,3,15,25,29,35,38,42,56,58,65,71,72,93,96,101,102,104,107,119,121,124,131,159,165,188,189,190,204,208,226,246,247,250,265,269,274,290,298,300,301,302,320,327,328,329,333,337,339,340,341,344,345,349,378,379],call_:376,callabl:345,callback:[1,3,23,24,25,26,38,56,58,65,78,86,87,93,96,112,113,115,119,120,121,125,130,159,174,199,203,205,209,217,265,269,302,322,327,333,337,340,341,345,377,378],callbacktest:377,called_cal:376,called_catch_:376,called_collabor:376,called_empti:376,called_environ:376,called_glob:376,called_iter:376,called_objects_in:376,called_terminator_:376,called_upp:376,caller:376,calorif:369,cam:89,cam_vcc:[101,265],camera:[28,101,118,286,290,345,352,383,392],camera_id:3,can:[0,1,2,3,5,6,7,9,10,11,12,14,15,17,18,20,21,22,25,26,29,30,31,34,35,38,53,54,56,57,58,59,65,67,71,72,77,78,84,85,87,89,90,92,93,94,96,97,100,101,104,105,106,107,109,110,112,113,114,115,119,120,121,124,125,127,128,130,131,133,135,160,162,163,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,207,208,209,210,211,214,215,217,218,223,229,232,235,240,244,245,246,247,248,250,251,254,257,259,263,264,265,266,269,270,271,272,274,279,281,282,286,289,290,292,297,298,299,300,302,307,308,309,310,311,312,315,316,317,318,319,320,323,324,327,328,329,332,333,336,338,343,345,346,348,349,350,351,352,353,355,358,360,363,364,366,369,371,372,373,374,375,376,377,378,379,382,385,390,391],can_500kbp:62,can_rx:252,can_tdhxr:252,can_tdtxr:252,can_tx:252,cancel:[65,92,106,127,269,355,360],cannot:[10,11,13,17,24,25,30,62,65,67,71,90,92,97,98,101,105,107,109,113,115,119,129,159,167,199,205,209,215,217,218,232,235,247,250,251,263,265,266,269,270,271,274,281,286,290,291,301,302,311,312,315,317,327,333,345,350,355,357,360,366,375,376,377,378],canva:[135,160],cap:[218,355],capabl:[22,113,159,208,235,263,269,281,291,342,375],capac:[113,188,189,190,209,217,235,252,265,373],capacit:[218,235],capacitor:[218,235,369],capend:28,capit:159,captur:[28,159,165,252,353,358,360,366,369,371,372],capture_buff:28,capture_cnt:30,card:[1,12,14,23,53,59,92,107,108,112,113,120,127,159,163,209,217,235,250,265,270,286,289,290,316,325,349,375],care:[71,92,218,352,369,376],carefulli:[89,92,357,369,375,376,378],carri:[38,281,286,353,364,369,371,376],carriag:[104,375,376],carrier:32,carry_method:376,casual:[209,217,377],cat1:89,cat:[263,270,272,352,382],catalog:[207,317],catalogu:309,categori:[165,266,388],caught:[284,290,376],cauliflow:378,caus:[10,12,17,25,92,113,159,218,247,252,254,265,281,286,302,303,316,355,357,375,376],caution:[42,87],cb:[28,78,135,160,302,332,333,378],cb_is_inact:159,cbc:[6,19,167,272],cbfnc:[53,379],cbfun:28,cbt6:247,cc1:357,cc2:357,cc:[355,358,360,363,364,366],ccc:[218,375],ccccc:218,ccitt:6,ccm:272,cd:[28,299,314,317,375],cdata:[11,90],cdc:[204,247,270,281,286],cdma2000:272,cdn:[207,213,225,233,235,246,249,255,264,294,295,297,316],cdup:18,ce:[53,94],cede:376,ceil:165,cele:376,celevel:28,cell:[92,94,120,135,160,265],cell_info_ind:94,cell_info_upd:92,cell_typ:[135,160],cellid:[28,265],cellinfo:265,cellular:[28,113,118,353,371],celsiu:[0,25,44,109,265],cen:252,center:[9,35,124,133,159,263,274],central:[96,297],certain:[30,49,66,101,133,159,167,204,209,217,289,355,375,376],certainli:[375,378],certif:[18,23,54,58,93,113,265],cf:376,cfg_addr_ord:96,ch0:7,ch2o:53,ch340:[291,382],ch343:[104,204,281,286,382],ch343p:286,ch:28,ch_cpu:0,ch_vbat:0,chain:[210,266,303,319],chang:[20,36,85,89,92,101,120,124,128,133,135,160,165,167,168,175,205,209,217,247,252,254,263,265,268,269,282,290,301,306,308,311,312,317,321,328,334,342,345,353,360,363,366,373,375,377,378,402],changelog:[268,290],changelog_luato:266,changer:159,channel1:252,channel3:[250,290],channel4:252,channel:[0,1,4,7,28,30,85,86,96,108,119,128,159,166,170,171,172,174,182,183,184,196,200,201,202,205,209,215,231,240,251,252,257,264,269,286,291,297,323,341,345,353,358,371,372],channel_map:28,chapter:[166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,209,217,252,320,357,375,376],char_arrai:159,charact:[27,70,71,89,90,92,94,96,97,102,117,124,127,131,133,135,160,165,199,200,201,202,209,217,218,265,311,312,315,316,336],character_:376,character_x_:376,character_x_itself:376,characterist:[1,96,199,200,201,202,209,217,230,235,268,290,344,376],charg:[35,101,159,208,234,247,290,353,355,360,363,369,370,371,378],charge_vbat:235,charge_vcc:235,charger:[353,357],charpattern:165,chart:[71,135,160,214,221,290],chart_add_cursor:159,chart_add_seri:159,chart_axis_:159,chart_creat:159,chart_cursor_non:159,chart_cursor_t:159,chart_get_nearest_index_from_coord:159,chart_get_point_count:159,chart_get_point_id:159,chart_get_series_area:159,chart_get_typ:159,chart_get_x_from_index:159,chart_get_x_start_point:159,chart_get_y_from_index:159,chart_init_point:159,chart_part_bg:159,chart_part_cursor:159,chart_part_seri:159,chart_part_series_bg:159,chart_point_def:159,chart_refresh:159,chart_set_cursor_point:159,chart_set_div_line_count:159,chart_set_ext_arrai:159,chart_set_next:159,chart_set_point:159,chart_set_point_count:159,chart_set_point_id:159,chart_set_rang:159,chart_set_typ:159,chart_set_update_mod:159,chart_set_x_start_point:159,chart_set_x_tick_length:159,chart_set_x_tick_text:159,chart_set_y_tick_length:159,chart_set_y_tick_text:159,chart_type_:159,chart_type_column:159,chart_type_lin:159,chart_type_non:159,chart_u:159,chart_update_mode_:159,chart_update_mode_circular:159,chart_update_mode_shift:159,chat:104,cheat:[355,357],check:[1,6,9,11,19,25,28,30,35,71,87,90,92,104,105,109,110,113,117,124,125,135,160,188,189,190,200,201,202,204,207,209,211,217,218,231,232,245,246,247,252,286,291,298,304,305,306,308,311,312,315,319,325,340,343,350,357,369,375,376,378],check_sim_period:28,check_valu:28,checkbox:[135,160],checkbox_:159,checkbox_cr:159,checkbox_is_check:159,checkbox_part_bg:159,checkbox_part_bullet:159,checkbox_set_dis:159,checkbox_set_text:159,checkout:314,checkpoint:[311,312,317],checksum:[28,125],chef:378,cheng:162,chenxuuu:[324,333,338,339,340],chestnut:327,chi:65,child:159,children:159,china:[31,54,263,265,270,272,296],chines:[9,35,124,159,168,207,209,217,268,290,291,315,317,331,360,373,375],chip:[0,12,15,20,25,28,35,53,58,65,87,101,104,110,118,166,173,180,184,185,186,187,188,189,190,191,193,194,195,196,199,203,204,206,208,209,210,213,214,217,218,221,223,224,226,229,234,239,245,246,247,249,250,256,259,261,263,269,270,277,281,283,286,293,294,295,296,298,315,316,317,338,344,345,349,351,352,355,357,358,363,372,377,382,387,392],chip_check:53,chip_id:65,chiperas:28,chipid:[193,194,195],chmod:376,choic:[211,245,298,323,375],choos:[77,78,120,159,194,195,204,209,214,217,218,240,252,265,290,352,376],chooser:[135,160],chr:96,chr_f_notifi:96,chr_f_read:96,chr_f_write:96,chr_f_write_no_rsp:96,chr_uuid:28,chrome:159,cht8305c:53,chuang:264,chunk:[165,265],chunknam:165,ci:[210,299],cid1:265,cid:28,cillum:159,cipher:[6,268,290],cipher_decrypt:[28,167],cipher_encrypt:[28,167],cipher_list:28,cipher_suit:[28,272],circl:[28,35,124,133,159,209,217,353,376],circuit:[77,78,166,182,183,184,209,217,221,234,248,251,252,286,289,290,355,358,369,371,372,376,390],circular:159,circularli:159,circumst:[218,289],circumv:[375,376],citizen:376,citizens_:376,citron:159,cjk:159,ck:6,clamp:355,class_i:376,classic:[159,204,281,382],classif:[268,290,318,352,376],classmat:207,clean:[112,117,135,160,265,376],cleanmsg:28,cleansess:28,cleanup:[117,333],clear:[10,13,28,53,67,70,89,92,93,94,112,121,124,125,159,168,206,250,265,279,290,331,360,366,369,376,378],clear_bit_mask:53,clear_btn_ctrl:159,clearbuff:28,cleardownlink:28,clearli:[159,209,217,265,353],clearlong:[28,265],clearuplink:28,cli:309,click:[0,1,2,3,4,6,7,8,9,10,12,13,15,16,17,18,19,20,22,23,24,25,26,27,28,29,30,31,32,33,34,35,37,38,44,53,57,80,85,86,87,92,93,96,98,99,101,102,103,105,106,111,112,113,115,116,117,119,124,125,127,128,129,130,131,133,159,204,207,209,210,211,232,245,247,271,298,299,308,310,311,312,315,317,357,364,366,369,374,376,403],clickabl:159,client:[24,28,58,59,96,113,118,131,303,353,355,357,358,360,364,367,369,371,372,373,376],client_ca:28,client_cert:[18,28,53,93],client_id:[28,31],client_kei:[18,28,53,93],client_password:[18,28,53,93],clientid:93,clip:[117,159,355,357,370],clk:[28,53,188,189,190,193,194,195,209,217],clk_24m:235,clk_27p12:235,clock:[28,30,53,72,77,78,89,101,109,118,125,159,165,177,178,186,193,194,195,209,211,215,217,218,223,229,234,240,245,247,250,251,269,281,290,297,298,330],clock_source_to_output_on_mco_pin:248,clockwis:[38,49,159],clone:[311,312,313,314,315],close:[11,28,29,38,42,53,67,88,92,96,104,127,135,160,163,165,166,170,171,172,188,189,190,193,194,195,209,217,218,235,248,250,265,290,323,328,337,339,340,341,345,366,369,371,379],close_btn:159,close_watch_dog:53,closef:376,closest:159,closur:[20,165,302],closure_:376,cloud:[1,5,9,14,28,35,53,118,204,209,217,254,265,266,269,274,311,312,317,382],cloud_compil:35,cloudc:53,clutter:265,cmake:299,cmakelist:317,cmd:[28,30,159,248,251,308,315,317,323,338],cmd_cnt:28,cmi_mm_disable_edrx:94,cmi_mm_disable_psm:94,cmi_mm_discard_edrx:94,cmi_mm_discard_psm:94,cmi_mm_edrx_nb_iot:94,cmi_mm_edrx_no_act_or_not_use_edrx:94,cmi_mm_enable_edrx_and_disable_ind:94,cmi_mm_enable_edrx_and_enable_ind:94,cmi_mm_enable_psm:94,cmiot:92,cmsi:[214,245,246,247,252,290,298],cn:[23,51,56,67,71,101,130,207,254,267,269,289,317],cnt:[28,133,159,250,290,377,378],co:[58,159,165,263,266,297,378,379],coap:[28,118],coapdata:28,code:[3,5,21,23,24,25,27,28,32,35,36,42,58,65,71,77,78,84,87,92,93,96,101,102,105,107,109,113,115,119,122,124,128,138,146,149,155,159,163,165,166,168,169,170,171,172,174,176,177,178,179,181,182,183,184,186,187,191,192,196,197,198,199,203,205,206,207,209,211,214,217,223,226,229,247,250,252,263,265,266,274,289,290,296,303,309,311,312,318,320,324,328,329,331,332,333,336,337,339,340,341,344,346,348,350,355,357,360,377,378,379,385],codec:[28,101,118,262],codepoint:165,coder:[28,85,86],col:159,col_cnt:159,col_id:159,cold:[209,286],collabor:378,collat:376,colleagu:159,collect:[85,86,107,165,166,247,252,288,290,327,375],collectgarbag:165,collector:376,collector_to:376,collis:70,colon:[76,375],colon_syntax:376,color:[28,53,87,124,135,160,162,209,274,290,392,395,398],color_arrai:159,color_blu:159,color_hex3:159,color_mak:159,color_mode_hu:159,color_orang:159,color_purpl:159,color_transp:159,colro:159,column:[135,160,345],com0:[36,227,351],com1:[36,227],com2:227,com3:227,com8:308,com:[10,23,28,35,38,53,56,58,67,87,97,102,104,113,159,169,188,189,190,193,194,195,204,206,207,209,210,211,213,222,225,228,233,235,244,245,246,247,249,255,261,263,264,266,270,274,289,294,295,297,299,301,310,311,312,314,315,316,317,349,375,381,383,384,391,393,395,396,398,399,401,404],com_mark:28,com_numb:28,combat:206,combin:[96,194,209,211,218,252,265,279,315,351,357,375,376,378,382],come:[65,120,159,209,235,240,281,315,323,371,375,376,378],comfort:371,comma:[53,207,323,375,376],command:[3,9,28,30,35,53,85,101,102,124,159,165,173,174,188,189,190,205,209,217,263,282,299,315,323,346,348,353,358,366,369,371,372],comment:[133,209,217,252,311,312,317,345,376],comment_:376,commerci:[159,266],commiss:[321,334,342],commit:[265,345],commodo:159,common:[23,63,72,77,78,89,93,96,113,128,130,135,160,167,204,215,220,225,252,264,270,281,297,316,328,338,346,347,351,353,375,376,380],commonli:[125,131,162,175,209,217,218,252,265,279,375],commun:[65,70,101,130,159,170,171,172,192,193,194,195,199,200,201,202,208,209,215,217,240,246,252,257,270,281,290,321,334,339,340,342,350,352,355,360,370,371,373,376],comp:165,compact:375,compar:[89,133,215,252,297,355,375,376],comparison:[17,133,165,235,250,290,297],compat:[17,19,65,67,89,90,96,125,159,187,204,209,217,240,244,250,251,252,254,257,265,270,286,292,293,376,390,402],compens:369,competit:369,compil:[0,5,9,14,35,38,63,96,101,104,107,131,159,204,206,211,214,217,245,254,265,266,269,274,280,281,282,290,298,301,336,346,348,375,376,382],complain:360,complement:[28,118,375,376],complementari:[240,297],complet:[1,5,15,17,25,30,59,65,71,86,92,93,96,100,101,108,113,115,120,125,132,159,170,171,172,199,200,201,202,209,211,215,217,218,224,225,226,228,245,247,252,263,265,266,282,289,297,298,299,302,305,308,317,328,340,346,348,351,353,366,375,376,377,402],complex:[208,265,375],compliant:240,complic:[175,209,217,378],complimentari:370,compon:[35,87,135,160,166,209,217,245,266,289,315,317,342,352],compos:[117,159,375],composit:[247,351,376],compound:376,compress:[3,24,28,118,159,163,265,266,297,315,316,344,351],compressor:90,compromis:376,comput:[105,204,209,215,217,246,250,254,265,289,290,311,312,315,316,324,353,355,360,366,369,371,375],compute_adler32:90,comxx:247,con:37,conack:[93,130],concat:[165,209,217],concaten:[165,375],conced:376,concentr:82,concept:[135,160,165,333,375],concess:376,concis:[303,374,375],concord:119,concorout:119,concret:15,concurr:265,cond:376,condit:[159,162,235,252,265,274,297,323,376,378,379],condition:217,conf:[28,53,159,214,290,309,320],conf_ce_mod:92,conf_psm_mod:92,conf_qualityfirst:92,conf_reseltoweakncel:92,conf_sim_wc_mod:92,conf_staticconfig:92,conf_t3324maxvalu:92,conf_userdrxcycl:92,conf_xxx:92,confess:162,confid:357,confidenti:279,config:[28,53,165,265,282],configassert:252,configprio_bit:252,configur:[1,7,8,10,20,23,24,34,38,39,52,54,62,64,66,71,73,85,86,89,92,93,96,101,107,113,123,124,125,128,130,159,175,205,211,217,218,220,225,235,240,245,250,251,263,264,265,266,268,281,284,286,290,297,298,302,309,310,311,332,333,339,340,376],confirm:[252,282,286,308,317,357],conflict:[92,265,269,316,376],conform:[102,159,271,315,376],conjunct:[120,378],conn:28,conn_mod:28,connect:[10,18,23,28,31,53,56,58,65,67,77,78,84,85,92,94,109,135,138,146,149,155,159,161,164,166,168,170,171,172,175,187,192,199,200,201,202,204,208,209,210,211,215,217,218,235,245,246,250,252,254,257,263,265,269,281,286,289,290,298,315,323,341,351,353,360,366,371,373,375,376],connect_config:53,connector:357,connok:28,conscienti:353,consectetur:159,consecut:[159,250,290],consequ:369,consequat:159,consid:[1,209,217,235,266,289,308,328,375,376],consider:[250,274,290],consist:[26,59,96,159,170,171,172,193,194,195,299,320,353,366,375,376],consol:[5,346,348],consola:207,consolid:159,constant:[17,28,53,159,265,321,334,335,336,342,345,376],constant_:376,constantli:376,constel:263,constraint:375,construct:[159,165,205,206,214,221,250,290,296,346,348],constructor:376,consult:[97,247,315],consum:[3,4,14,159,318,327,349,357],consumpt:[0,11,29,92,101,177,178,208,221,226,234,265,268,279,284,290,297,329,330,341,353,360,363,371,373,375,382],cont:[135,160,376],cont_creat:159,cont_part_main:159,cont_set_fit2:159,cont_set_fit4:159,cont_set_fit:159,cont_set_layout:159,contact:[53,92,218,252,316,353,381,384],contain:[29,35,89,92,93,94,96,99,102,120,135,160,170,171,172,218,240,247,265,266,311,312,315,317,322,375,376],contamin:247,content:[1,9,12,23,35,58,87,102,112,119,120,121,124,133,135,160,175,176,207,209,211,217,247,265,268,290,299,304,309,315,318,319,322,328,331,343,345,346,347,350,360,373,376],content_len:23,context:[71,96,207,302,376],continu:[0,1,3,26,28,101,103,113,159,182,183,184,206,209,217,218,223,229,250,263,265,290,302,310,326,329,336,355,360,366,375,376,378],contract:286,contrari:[204,209,375],contrast:[28,159,251,290],contribut:25,control:[1,12,25,28,42,53,65,66,68,70,71,87,101,115,118,125,135,160,162,165,170,171,172,174,182,183,184,196,205,209,217,218,235,240,245,246,247,250,251,263,265,269,284,288,290,291,296,297,303,338,341,351,353,370,371,375,378,380],convei:159,conveni:[159,193,194,195,209,217,281,286,332,341,352,355,366,376],convent:[24,165,264,302],convers:[2,12,19,27,28,96,102,117,118,125,135,160,165,166,177,178,179,199,209,235,240,250,265,286,290,291,345,346,347,382],convert:[0,2,27,33,38,53,56,71,89,102,105,117,131,133,159,162,163,166,170,171,172,174,180,193,194,195,199,205,209,217,252,265,323,350,375,376],cook:378,cool:[20,301],cooper:[34,35,114,120,358,369,372],coord_min:159,coord_t:159,coordin:[9,29,35,38,56,57,71,87,91,124,133,159,263,265,297,366,371,376,382],copi:[28,124,159,207,211,247,299,301,308,317,318,319,320,327,328,375,376],coprocess:376,coprogram:378,copybuff:[28,265],copyright:[159,163,315],core:[72,77,101,115,166,208,214,225,233,234,239,244,245,247,252,270,282,283,284,287,288,290,293,296,297,298,325,326,327,329,330,331,334,337,342,344,351,357,360,371,376,377,378,379,384,391,402,404],core_addr:344,core_v1103:265,coremark:[28,118,290,293],corner:[9,35,87,91,124,159,204,207,209,210,245,355,369],corout:[376,378],coroutag:376,coroutet:[376,379],corouti:376,coroutin:[39,40,41,43,45,46,47,48,50,52,54,55,56,57,58,60,61,62,63,64,66,68,69,70,73,74,75,76,79,81,82,83,165,375,378],correct:[9,20,25,35,38,106,124,265,301,311,312,315,317,357,375,376,378],correctli:[15,25,115,265,269,375,376],correl:[268,290],correspond:[1,3,6,9,13,17,19,20,27,34,35,36,38,49,56,71,77,78,84,91,94,100,101,104,110,119,123,124,128,159,166,169,173,174,177,178,179,180,185,191,196,203,204,205,211,215,218,226,235,244,246,247,252,259,265,269,274,281,286,289,290,291,301,318,321,322,328,334,336,342,350,355,360,373,375,376,377,378,391,404],correspondingli:20,cortex:[215,247,297],cortextm:240,cosh:376,cosin:376,cost:[159,257,363],could:376,count:[28,49,76,94,120,123,133,165,192,197,210,250,265,290,336,360],counter:[92,120,123,252,286,297],counterclockwis:[49,159],coupon:247,courier:207,cours:[38,133,159,162,207,232,247,366,375,376,378],cover:[10,355],cp2102:[366,369],cp210x_windows_driv:366,cp:266,cpath:165,cpha:[12,28,65,163,339],cpicker:[135,160],cpicker_:159,cpicker_cr:159,cpicker_part_bg:159,cpicker_part_knob:159,cpicker_set_knob_color:159,cpin_is_readi:92,cpol:[12,28,65,163,339],cpp:102,cpp_out:102,cpu:[0,97,101,209,217,220,225,235,242,265,327,376,378],cr2:252,cr:[252,375],cr_opter_set:252,cr_strt_set:252,crash:[53,89,252,265,376],crc16:[28,99,251,343],crc16_modbu:28,crc32:28,crc7:[28,265],crc8:28,crc:[6,70,109,251,332],crc_modbu:332,crcon:[85,86],creat:[6,25,26,28,29,31,35,37,53,54,56,59,87,92,109,115,119,121,124,159,162,163,165,166,174,188,189,190,198,203,204,205,207,209,211,217,245,298,299,307,315,318,319,331,341,346,348,364,375,378,379],createap:28,createsoft:[28,63,265],creation:[93,130,131,133,159,188,189,190,265,308],creativ:352,critic:[135,160],crop:[135,160],cross:[135,160,266,321,334,342,376],crossov:252,crt:93,crypto:[28,96,99,105,118,174,205,265,272,293,332],crystal:[89,186,209,214,220,221,225,235,252,290,297],cs:[9,12,28,53,65,85,128,163,174,188,189,190,196,205,209,217,339],cs_gpio:[193,194,195],cs_pin:28,csdk:[204,264,269,274,291,292,316],csfb_not_preferred_regist:92,csfb_not_preferred_registered_roam:92,csk:62,cspin:[188,189,190],csq:28,css:159,csv:[282,366],ctr_lp:252,ctrip:166,ctrl:[28,207,366],ctrl_map:159,ctwing:265,ctx1:376,ctx2:376,ctx:[302,376],ctype:376,cubemx:[251,252],cuboid:375,culpa:159,cumul:[92,366],cupidatat:159,cur:376,cur_timestamp:28,curli:[375,376],current:[0,1,3,4,6,9,10,12,13,18,20,22,24,25,26,28,34,35,38,49,52,53,56,57,84,85,86,87,89,90,92,94,96,101,105,106,107,110,113,115,118,120,125,127,128,131,133,135,160,170,171,172,204,207,209,215,217,218,235,246,247,252,257,265,291,297,301,308,321,323,327,334,336,337,338,342,343,351,353,355,358,363,364,370,371,372,374,375,376,378,381,384],currentlin:376,cursor:[133,135,160,369],curv:[221,226,234,284,290,366,371],custom:[9,10,14,20,23,35,58,94,97,107,113,124,127,135,160,204,209,218,247,265,266,282,297,302,303,308,324,327,336,346,348,349,375,376],custom_id:28,custom_init:301,customiz:159,cut:[120,247,265],cute:376,cvcc:235,cwait:[121,302],cwait_id:302,cwait_mt:333,cwaitcreat:333,cwd:18,cycl:[30,36,92,93,96,103,107,125,130,159,174,176,182,183,184,198,199,203,205,206,209,217,250,290,297,328,330,369,376,377,378,379],cyclic:[221,226,234,284,290],d0:[248,251],d3102512a40000a:[220,225],d3:[248,251],d4:281,d5:281,d:[9,28,38,65,71,84,97,99,107,133,159,168,169,176,188,189,190,209,210,217,301,311,312,313,314,315,317,345,350,363,375,376],dac:[1,28,118,235,240,251,262,265,270,279,293],dac_en:[101,269],dacdelai:28,dacen:1,daclevel:28,dacpin:28,dactimedelai:28,dai:[38,56,67,97,106,159,186,208,209,311,312,317,374,375,376],daili:[187,209,217],dam:252,damag:[218,303,357,366,369],dap:[211,245,246,250,252,290,298,323],daplink:[210,211,245,246,250,251,290,298],daquan:[382,392],dark_color:28,darken:159,darker:159,darkest:159,dat:[53,263],data0:252,data1:[28,169,197,252],data2:[6,28,169,197,252],data2_decrypt:167,data2_encrypt:167,data32bit:28,data3:[169,197],data4:[169,197],data5:197,data64bit:28,data6:252,data7:252,data:[3,10,12,15,18,21,22,23,28,30,32,34,39,40,41,43,44,45,46,47,48,52,53,55,56,58,59,60,61,62,64,65,67,69,72,73,74,75,77,78,79,80,82,83,87,91,99,101,114,118,119,120,131,135,160,161,163,166,167,170,171,172,174,175,184,188,189,190,192,193,194,195,197,199,203,205,206,207,208,209,214,215,217,218,221,226,234,239,243,246,247,250,251,256,260,263,265,266,268,269,274,277,281,284,288,290,294,296,297,300,302,315,320,321,322,323,324,328,331,333,334,338,339,340,342,343,344,345,346,347,349,351,352,353,358,364,369,371,372,376,377,378,385,388,390,395,398,401,404],data_bit:28,data_len:113,data_mod:28,data_repres:376,data_w:162,dataa:327,datab:327,databas:[28,53,118,174,205,291,343,376],databook:213,datal:252,datar:[85,86],datasheet:[220,225],datasheet_1:233,datatraff:28,dataw:28,date:[28,38,53,67,106,107,113,120,130,135,160,165,168,186,209,265,299,318,319,322,323,324,325,326,327,329,330,331,332,333,337,338,339,340,341,345],date_t:159,day_nam:159,daylight:376,dbg:[264,323],dbg_rx:269,dbg_tx:269,dc2dc:235,dc:[9,209,217],dcdc:369,dcim:291,dcmi:235,dcmis_data0:235,dcmis_data10:235,dcmis_data11:235,dcmis_data12:235,dcmis_data13:235,dcmis_data1:235,dcmis_data2:235,dcmis_data3:235,dcmis_data4:235,dcmis_data5:235,dcmis_data6:235,dcmis_data7:235,dcmis_data8:235,dcmis_data9:235,dcmis_hsync:235,dcmis_pix_clk:235,dcmis_vsync:235,dd:38,ddd:375,ddddd:38,ddddddd:38,ddddddddd:38,ddlist:159,ddmm:38,de:[261,376],dead:[240,265,297,353,375,376,378],deal:[350,376,378],dealer:92,death:218,debounc:[28,265],debug:[7,23,26,28,71,89,102,159,163,165,176,209,211,214,217,221,245,246,250,281,286,290,298,315,321,323,328,334,342,344,351,375,378,380,382],debugg:[210,211,215,245,246,247,252,298,321,334,342,376],debugge:246,dec:124,decemb:[56,159],decept:363,decid:[15,89],decim:[38,56,89,159,174,180,205,297,375,376],decis:358,declar:[159,165,301,332,375],decod:[1,3,6,28,105,117,159,193,194,195,240,252,265,331],decoi:[353,360,363,364,366],decompos:[350,376],decomposit:38,decompress:[11,28,90,118,163,204,266,291,311,312,315,316,351],decor:124,decoupl:269,decreas:[25,92,159,182,183,184],decrement:159,decrypt:[19,28,118,167,265],dedic:[54,89,115,159,208,264,265],deep:[101,221,226,234,263,265,269,290,297,315,331,376],def:[84,117,375,376],def_event_cb:159,defect:265,defens:265,defgroup:248,defin:[6,56,65,72,77,78,93,102,104,124,127,159,193,194,195,211,252,265,300,301,309,311,321,327,328,330,332,334,336,337,341,342,344,376,377,378,379],define_method_:376,definit:[102,133,159,165,208,209,214,217,218,226,234,245,284,288,290,297,301,311,328,345,346,347],defocus:159,deg:[64,159,165],degrad:218,degre:[0,9,25,38,44,109,159,217,265],deinit:28,del:28,del_len:133,delai:[1,28,38,66,87,109,119,125,128,159,170,171,172,174,177,178,179,186,198,205,209,210,217,250,265,290,322,327,330,338,340,353,358,371,372,378,379],delay1248:89,delay_u:252,dele:18,delet:[10,13,17,24,29,37,87,92,97,114,121,133,135,160,174,205,247,321,325,328,334,342,345,349,376,378],delimit:[28,376],deliv:[93,247],deliveri:[71,247,265],delta:[159,297],demand:[0,129,209,217,265,290,346,348,376],demo1:159,demo:[0,1,2,3,4,6,7,8,9,10,12,13,15,16,17,18,19,20,22,23,24,25,26,27,29,30,31,32,33,34,35,37,38,44,49,57,65,80,85,86,87,89,92,93,96,98,101,102,103,105,106,111,112,113,115,116,117,124,125,127,128,129,130,131,133,159,162,163,175,198,204,206,209,217,226,251,265,266,274,281,286,290,291,302,309,345,349,383,390,392,393,396,399,402,404],demo_benchmark:28,demo_keypad_encod:28,demo_mus:28,demo_print:28,demo_stress:28,demo_widget:28,demonstr:[22,56,105,131,159,198,200,201,202,211,232,302,357,375],deni:92,denot:376,densiti:375,depart:265,depend:[9,22,25,36,89,92,96,97,101,113,125,159,235,245,263,291,303,318,328,330,343,376],deploi:71,deprec:376,depth:[87,133,375,376],der:19,deriv:[94,159,376],describ:[135,138,146,149,155,159,160,161,169,170,171,172,174,177,178,179,182,183,184,188,189,190,193,194,195,197,198,200,201,202,205,254,269,304,320,323,353,366,371,376,378],descript:[71,107,113,135,160,162,207,209,217,218,226,235,244,248,250,251,263,268,284,288,290,322,336,342,346,347,350,360,375,376,378,391],descriptor:159,deselect:159,deseri:33,deserunt:159,design:[52,166,183,187,194,195,200,201,202,209,217,220,221,225,226,233,234,247,248,250,251,252,255,263,266,269,279,281,286,290,292,321,322,324,328,333,335,342,347,358,369,372,375,376,391],desir:[38,159,376],despit:376,destroi:[159,375,376],destruct:303,detach:92,detail:[13,26,31,34,56,71,94,96,101,113,114,131,159,162,215,235,247,251,252,263,265,266,281,297,328,336,353,371,376,378],detect:[73,78,85,92,209,217,235,240,265,269,297,308,357,375,376,378,380],determin:[25,26,29,58,64,65,92,93,94,101,107,112,130,159,209,217,252,324,327,328,338,345,355,363,366,375,376,378,379],dev:318,develop:[5,22,25,28,35,38,71,97,118,142,159,160,161,164,166,167,168,169,170,171,172,174,175,176,177,178,179,181,182,183,184,186,187,188,189,190,192,193,194,195,197,198,199,200,201,202,204,208,209,211,214,215,218,220,221,225,226,233,234,239,243,245,249,250,251,255,256,257,260,265,268,269,270,277,283,284,287,288,289,292,295,296,298,303,341,342,345,352,375,377,378,379,380,382,390,391],deviat:291,devic:[0,4,5,9,10,12,20,21,25,31,35,53,54,64,65,67,71,73,85,86,87,89,93,94,96,101,103,104,105,107,108,109,111,125,127,129,131,135,160,163,170,171,172,174,180,191,196,204,205,208,209,214,217,235,245,246,248,250,252,265,266,274,290,298,308,309,323,328,339,340,341,344,349,351,352,353,355,358,360,363,370,371,372,373,376],device_clos:[193,194,195],device_id:[28,130],device_kei:28,device_nam:[28,54],device_secret:28,device_setup:115,devicesetup:[9,28,35,86,111,163,188,189,190,193,194,195,209,217],devlog:10,dfp:[250,290],dfu:360,dgps_age:38,dhcp:[128,131,341],dhcp_enabl:28,dhe:272,dht11:109,dht12:[25,109],dht1x:28,dht30:25,di:[188,189,190,193,194,195],diagram:[65,166,168,170,171,172,175,199,209,214,217,218,221,235,245,246,247,264,290,292,298,355,378,390,392,404],dial:[355,357,360],did:[102,252,290,324,378],didn:375,diff_tick:89,differ:[9,11,17,20,22,35,38,82,83,84,89,92,93,96,97,101,109,124,125,133,159,174,176,180,182,183,184,194,205,209,217,218,224,225,226,228,235,250,251,262,263,265,266,269,270,274,281,286,290,291,293,302,303,311,312,316,317,320,323,328,333,336,343,344,349,351,353,360,366,369,373,375,376],differenti:[22,38,235,268,271,290,382],difficult:[324,369,375,376,378],difficulti:323,difftim:[28,165],dig1:78,dig4:78,dig:53,digit:[6,28,38,53,56,72,117,118,125,135,160,166,182,183,184,193,194,195,209,217,220,225,235,240,266,268,270,271,290,340,345,370,375,376,377],digit_count:159,digitalwrit:210,dim:159,dimens:[159,281,283],dimension:[9,35,87,124],dingd:265,dingtalk:265,dinner:378,dio1:[85,86],dio:281,diod:235,dipper:263,dir:[159,252],dir_forward:159,dir_path:28,direct:[2,9,20,31,32,34,35,38,49,96,101,108,110,124,125,131,135,160,162,163,165,175,209,210,211,217,235,252,265,281,286,323,329,331,355,357,376,382],directli:[0,1,5,6,9,13,17,20,85,89,92,96,100,101,108,115,119,132,133,159,166,174,187,191,196,199,200,201,202,204,205,208,209,210,211,217,218,235,245,247,252,263,265,266,271,281,286,289,291,298,299,300,301,302,306,310,311,312,315,316,318,319,320,324,327,331,333,338,350,353,355,366,375,376,377],directori:[29,97,111,159,209,211,265,266,274,298,299,301,309,311,312,315,317,318,319,349,376],dirti:17,disabl:[35,36,65,90,92,94,104,112,124,131,135,160,174,196,205,248,252,265,272,373,376],disablepwm:28,disadvantag:[159,355],disappear:247,disassembl:369,disburs:327,disc:[135,160],disc_mod:28,discard:[0,223,229,376],discchr:28,discdsc:28,discharg:[366,369,371],discon:28,disconnect:[23,28,53,58,59,113,130,208,247,252,265,341,360],discoveri:96,discrep:279,discsvr:28,discuss:[274,328,376],disguis:363,dish:378,disk:[127,246,247,315,317,366],disp:[28,118,124,174,205,209,266],disp_get_default:159,disp_get_hor_r:159,disp_get_ver_r:159,disp_set_bg_color:[209,217],dispatch:378,displac:2,displai:[2,8,9,35,76,77,78,87,102,113,124,135,160,162,164,168,175,181,186,187,192,199,209,217,240,246,250,265,266,270,280,290,316,323,331,336,353,355,360,364,373,375,376,402],display_str:168,dist:[159,327],dist_px:159,distanc:[133,159,219,224,231,253,262,263,264,355],distinguish:[250,269,290,357,375,376],distort:355,distribut:[131,159,254,266,376,378],district:106,divid:[0,52,103,159,166,167,192,209,217,218,250,251,290,297,300,320,375,376],divis:[2,103,182,183,184,218,231,250,252,290,297,375,376],djtr:[254,289],dl:[317,351],dlfcn:376,dll:[299,366,376],dma1_channel1_irqhandl:252,dma1_it_tc1:252,dma:[235,250,265,286,290,297],dma_clearflag:252,dma_clearitpendingbit:252,dma_cmd:252,dma_getitstatu:252,dn:[51,113,235,265],dnp:6,dns_index:28,doc:[67,159,244],dock:[265,333,349,404],document:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,114,115,116,117,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,138,142,146,149,155,159,160,161,164,166,167,168,169,170,171,172,175,176,177,178,179,181,182,183,184,186,187,188,189,190,192,193,194,195,197,198,199,200,201,202,205,206,209,211,214,215,217,218,221,230,231,234,245,247,252,254,268,269,270,289,290,298,304,308,309,311,312,315,323,342,345,347,348,352,366,376],doe:[4,12,14,25,27,28,29,33,35,38,63,65,66,67,77,78,85,87,89,92,94,96,100,101,103,104,107,113,118,120,125,127,128,129,133,159,188,189,190,204,208,218,231,245,250,251,262,263,265,266,269,270,272,281,286,290,293,298,307,310,311,312,315,316,322,327,329,332,333,336,345,349,350,353,360,375,376,378],doesn:[24,207,250,290,376],dofil:[165,300],dog:[5,42,129,176,198,322],dolor:159,domain:[23,53,56,57,59,93,113,207,265,281,376],domain_nam:53,domest:38,domin:[247,251,296],don:[9,12,58,71,89,92,110,113,159,163,200,201,202,209,217,245,266,289,290,298,299,302,311,312,317,345,353,355,360,375,376],donald:274,done:[1,26,28,105,159,166,209,217,266,282,291,301,375,376,377],doom:269,door:357,dormanc:116,dormant:[208,369],dot:[35,124,159,168,175,209,211,217,324,376],doubl:[87,99,133,159,211,240,245,246,247,298,299,308,315,317,366,375,376],double64:331,down:[1,12,20,22,30,101,135,160,174,186,196,205,208,209,218,223,229,235,245,247,248,251,252,263,265,269,274,281,297,298,316,323,329,337,353,355,357,360,366,369,373,376,378],downgrad:247,downlink:92,downlinkb:92,downlinkgb:92,download:[13,17,18,23,71,101,102,159,163,166,200,201,202,204,207,209,214,217,219,221,222,224,228,231,232,235,243,246,250,254,261,263,264,265,268,271,281,286,289,290,296,299,304,305,306,308,311,312,316,317,318,344,351,357,382,392,404],downstream:92,downward:355,dp:[78,235,248,251,252],dp_puup:248,dpi:159,dr:[250,290],draft:[322,323,324,325,326,327,329,330,331,332,333,337,338,339,340,341],drag:[159,247,319,366],drain:[235,297,337],draw2lcd:28,draw:[28,91,124,133,159,163,175,209,217,247,265,331,355],draw_al:124,draw_lower_left:124,draw_lower_right:124,draw_mask_:159,draw_mask_fade_init:159,draw_mask_fade_param_t:[28,159],draw_mask_fade_param_t_fre:28,draw_mask_line_param_t:[28,159],draw_mask_line_param_t_fre:28,draw_mask_line_points_init:159,draw_mask_line_side_top:159,draw_mask_radius_init:159,draw_mask_radius_param_t:[28,159],draw_mask_radius_param_t_fre:28,draw_upper_left:124,draw_upper_right:124,drawbox:28,drawbuttonutf8:[28,265],drawcircl:[28,175,209,217],drawdisc:28,drawdrcod:28,drawellips:28,drawfilledellips:28,drawfram:28,drawglyph:28,drawgtfontgb2312:28,drawgtfontgb2312grai:28,drawgtfontutf8:28,drawgtfontutf8grai:28,drawlin:[28,109,175,209,217,290,331],drawn:[159,378],drawpixel:28,drawpoint:28,drawqrcod:28,drawrbox:28,drawrect:[28,331],drawrectangl:[28,175,209,217],drawrfram:28,drawstr:[28,124,168,209,217,331],drawtriangl:28,drawutf8:28,drawxbm:28,drawxxx:9,drink:[311,312,317],drive:[28,53,65,72,77,78,109,118,159,162,168,174,204,205,209,217,235,246,250,264,265,269,281,286,290,315,366,382,398,402],driven:[72,175,209,217,376,390],driver:[9,28,53,78,87,101,118,135,159,161,168,175,188,189,190,204,209,217,240,245,250,251,265,266,281,286,290,297,298,308,315,357,366,382,391,395,401],driver_usart:315,drop:[20,135,160,218,235,245,247,298,355,358,369,372,373,376],dropdown:[135,160],dropdown_:159,dropdown_add_opt:159,dropdown_cr:159,dropdown_dir_left:159,dropdown_down:159,dropdown_get_selected_str:159,dropdown_open:159,dropdown_part_list:159,dropdown_part_main:159,dropdown_part_scrlbar:159,dropdown_part_select:159,dropdown_set_dir:159,dropdown_set_opt:159,dropdown_set_show_select:159,dropdown_set_symbol:159,dropdown_set_text:159,drum:159,drv:[28,187],drxcycl:92,ds18b20:[28,71,209,308],ds18b20_temp:71,ds3231:53,ds3231_read_tim:48,ds:351,dsp:[208,291],dst:[23,71,105],dtick64:[28,179],dtick64data:179,dtick64r:179,dtimer:[101,223,229],dtimercheck:28,dtimerstart:[28,181],dtimerstop:[28,181],dtimerwkid:28,dtl:265,dtp:28,dtr:[215,247],dual:[26,72,92,208,250,270,286,290,297,363,371],duck:274,due:[25,39,40,41,43,45,46,47,48,50,52,54,55,56,58,60,61,62,63,64,65,66,68,69,70,73,74,75,76,79,81,82,83,115,230,247,252,266,269,270,286,355,357,366,375,376],dui:159,duino:210,dummi:[159,376],dump:[28,159,165],dup:93,duplex:[65,115,188,189,190,192,193,194,195,209,217,250,290,339],duplic:[93,159,265,378],dupont:[247,289],durat:[20,66,92,101,107,119,122,129,159,179,198,274,330],dure:[1,20,23,25,29,38,65,72,97,104,122,125,159,170,171,172,198,204,209,217,218,252,265,269,281,286,315,357,366,376,379],dust:53,duti:[28,96,103,182,183,184,209,217],duty_oneeighth:36,duty_onefifth:36,duty_onefourth:36,duty_onehalf:36,duty_oneseventh:36,duty_onesixth:36,duty_onethird:36,duty_stat:36,dvp:286,dynam:[6,25,54,115,128,133,159,218,265,366,375,376],e4:289,e5:289,e6:289,e7:289,e8:289,e9:289,e:[1,9,52,84,92,115,131,159,165,176,209,215,217,252,263,274,311,312,315,317,345,351,375],ea:159,eabi:315,each:[9,15,22,25,28,35,53,70,92,93,109,124,159,175,199,200,201,202,207,209,211,215,217,235,240,250,251,252,269,290,311,312,316,333,334,351,353,360,369,371,373,375,376,378],earfcn:[28,92],earli:[245,251,281,286,298],earlier:[209,217,266,375,376],eas:376,ease_in:87,ease_in_out:87,ease_out:87,easi:[28,102,113,118,159,247,286,302,303,332,333,364,376,378],easier:[159,265],easili:[247,324,333,355,374,375,376],east:[38,57,94,106],eat:375,ec11:53,ec11_callback:49,ec616:244,ec616_0h00:313,ec618:[0,1,15,20,87,89,92,100,101,106,204,266,269,271,289,290,315,316],ec618_lua_lod:274,ecb:[6,19,265],ecdh:272,ecdsa:272,ecg:159,echo:[130,358,369,372],eci:28,ed:159,eda:[218,264],edg:[20,35,124,133,135,160,281,286,290,297],edit:[71,159,165,204,205,266,283,346,348,370,373,382],editor:[207,315],edrx:94,edx:94,eeprom:[17,25,193,194,195],ef17:[193,194,195],ef4018:[209,217],ef:[193,194,195,375],effect:[49,89,92,100,101,113,133,135,160,162,164,174,181,185,205,209,217,232,252,263,265,274,290,297,302,315,346,348,357,363,373,376],effect_match:265,effici:[38,159,208,209,245,247,252,265,298,352,374,378],egg:353,eigenvalu:96,eight:[159,376],eighth:106,eink1:392,eink:[28,118,209,266,270,291,293,316,336,391],einkbook:391,either:[159,214,290,344,350,376],eiusmod:159,elaps:376,electr:[208,234,290,355,357,360],electrochem:53,electrolyt:218,electron:[166,209,217,390,392],eleg:302,element:[17,135,160,263,375,376],elev:38,elf:315,elig:375,elimin:[20,34,245,265,376],elit:159,ellips:124,ellipsoid:38,ello:375,els:[12,14,25,26,29,38,47,49,58,88,91,101,115,119,159,162,163,188,189,190,200,201,202,209,210,211,217,301,322,326,330,333,375,376,378],elseif:[24,86,159,375,376,378],elsewher:[159,376],email:102,emb:208,embed:[159,209,240,252,274,341,352,374,375,376],emerg:92,emergency_regist:92,emit:265,emot:336,emphas:218,empti:[1,3,10,13,15,17,19,30,67,76,87,89,92,99,107,117,124,125,132,133,159,174,205,209,217,247,252,265,269,290,327,331,375,376],emptyselectionclipboard:207,emtri:87,emul:[87,211,250,290,352],en:[28,159],enabl:[0,1,9,17,20,28,34,65,72,94,101,113,115,124,129,131,159,166,168,174,196,205,207,211,231,235,247,248,250,254,265,266,268,269,290,345,346,348,355,357,360,373],enbid:28,encapsul:[28,118,168,175,177,178,179,193,194,195,209,217,279,300,320,328,349,375,376,378],enclos:[375,376],encod:[6,12,14,17,24,27,28,29,38,53,57,67,92,94,97,99,106,112,117,120,126,130,131,159,163,167,186,209,217,265,324,376],encodestr:28,encount:[30,92,107,113,159,207,218,252,265,281,323,375,376,378],encrypt:[18,19,23,28,31,54,58,59,93,113,118,130,167,234,254,257,265,272,290,341],end:[0,1,3,6,7,9,10,11,12,13,14,15,17,20,22,23,24,25,26,27,29,30,34,36,38,39,40,41,42,43,44,45,46,47,48,49,50,52,55,56,57,58,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,81,82,83,85,86,87,88,90,91,92,93,94,96,98,99,101,102,103,104,105,108,109,110,112,113,114,115,119,120,121,123,125,130,131,132,133,159,162,163,166,168,169,170,171,172,176,177,178,179,182,183,184,187,188,189,190,192,193,194,195,197,198,199,200,201,202,209,217,218,235,247,251,252,265,266,269,272,290,297,300,315,318,319,322,330,333,337,339,340,341,343,345,346,348,355,357,366,369,370,375,376,377,378,379],end_angl:159,endian:[27,53,99,113,115,125,127,133,376],endif:[159,211],endless:327,endpoint:252,endswith:28,endur:208,energi:[65,101,162,208,252,371],engin:[159,246,248,294,352,375,390,392],english:[71,124,159,182,183,184,193,194,195,207,265,268,290,316,323,360,373],enhanc:[121,240,250,252,290],enim:159,enjoi:374,enlarg:[1,125,159],enodeb:92,enough:[4,12,25,92,105,113,115,125,127,159,209,217,282,291,311,332,375,376],ensur:[10,25,115,159,209,217,218,235,252,266,282,291,315,366,369,376],ent:28,enter:[9,12,27,30,62,70,71,92,94,101,104,107,132,159,163,181,204,210,211,215,218,223,229,232,252,269,281,282,286,299,307,308,311,312,315,317,321,323,334,335,342,351,353,355,357,366,369,370,373,375,376,378],enterpris:[159,381],enthusiasm:376,entir:[13,17,29,111,132,133,159,174,198,205,218,235,266,270,302,375,376],entireti:376,entiti:[29,80,321,334,342],entranc:218,entri:[85,86,87,165,209,309,327,375],entries_can:376,enumer:[29,159,248,251,265,376],env:[13,165,169,314],environ:[56,89,165,205,206,209,214,221,246,247,250,265,290,296,299,310,315,316,349,352,369],environment:162,envisag:[320,332],eoc:252,eof:104,eol:352,ep:92,ep_ctr_rx:252,ep_ctr_tx:252,ep_id:252,epat:265,ephemer:263,ephemeri:[268,290],epindex:252,epoch:376,eq:376,equal:[17,89,124,133,159,209,217,248,251,375,376],equip:[0,26,35,82,83,89,128,135,138,146,149,155,160,192,194,208,209,217,247,252,263,281,290,341,353,355,357,360,363,364,366,370,371,373],equival:[8,9,11,13,17,72,90,92,94,100,125,133,247,323,332,350,375,376,378],eras:[13,17,28,174,188,189,190,196,205,245,250,265,290,351,369],erasetimeout:252,erasewrit:28,erp:316,err:[12,33,163,333],errdump:[28,118,265],errio:29,errno:376,error:[0,1,2,3,4,5,6,7,8,9,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,85,86,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,165,166,169,170,171,172,176,188,189,190,193,194,195,209,214,217,250,252,264,265,290,301,302,315,339,340,351,353,360,371,378],error_cod:[25,115],error_handl:211,errstop:28,ersrq:94,es7149:26,es8311:265,esc:282,escap:[117,376],esd:[218,247],esp32:[96,100,131,281,282,283,286,287,290,346,348,352,382],esp32_download:351,esp32c2:[104,293,317],esp32c3:[0,2,5,6,8,9,12,13,14,16,17,18,20,23,24,25,27,29,31,32,33,35,38,71,80,84,85,86,87,88,89,91,93,96,99,101,102,103,104,105,106,107,109,111,113,115,116,117,118,119,121,124,125,128,129,130,131,132,133,204,279,282,284,290,293,307,316,317,352,382,391,402],esp32c3_lua_lod:204,esp32s2:104,esp32s3:[0,2,5,6,8,9,12,13,14,16,17,18,20,23,24,25,27,29,31,32,33,35,38,71,80,84,85,86,87,88,89,91,93,96,99,101,102,103,104,105,106,107,109,111,113,115,116,117,118,119,121,124,125,128,129,130,131,132,133,204,288,289,290,316,317,352],esp32s3_lua_lod:204,esp:[100,101,289,317],especi:[115,265,274,376],esphttp:333,esphttp_evt:333,espressif:[289,317],esptouch:[131,254],esptouch_v2:131,ess:[25,159],essenc:306,essenti:[159,328],est:159,establish:[93,96,113,130,131,311,312,378],estim:316,et:159,etc:[0,85,86,100,101,115,125,132,133,159,218,252,265,302,308,316,323,344,352,353,360,371,375,376,378],eth0:[18,93,113,120,128,130],ethernet:[28,113,118,265,291],eu:159,ev:376,evalu:[28,118,376],evb:[225,255],evb_air601:255,even:[4,101,125,159,167,263,328,336,340,353,360,375,376],event:[26,28,38,59,86,87,93,101,113,119,120,127,130,135,160,174,199,203,205,209,217,250,263,265,290,321,334,341,342,345,376,377,378,379],event_appli:159,event_cancel:159,event_click:159,event_delet:159,event_handl:159,event_insert:159,event_long_press:159,event_long_pressed_repeat:159,event_on_data:333,event_press:[87,159],event_press_lost:159,event_releas:159,event_send:28,event_short_click:159,event_value_chang:159,eventu:71,everi:[10,20,71,159,245,252,298,309,311,312,317,330,375,376,377,381],everyon:[159,168,247,274,380],everyth:[159,315,375,376],evok:379,evt:341,evt_ap_associ:341,evt_ap_disassoci:341,evt_ap_start:341,evt_ap_stop:341,evt_readi:341,evt_scan_don:341,evt_scan_report:341,evt_sta_connect:341,evt_sta_connected_fail:341,evt_sta_disconnect:341,ex:[102,159,163,204,209,299,315,319,351,366,376],exact:376,exactli:[94,122,302,357,366,376],examin:376,exampl:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,160,163,167,169,175,204,206,209,210,211,217,245,248,251,252,263,266,269,282,298,301,302,308,309,311,312,317,320,330,331,333,336,345,349,351,355,360,369,375,376,377,378,379,381,385,388,390,392,395,398,401,404],example_h:211,example_l:211,exce:[15,89,92,98,105,107,122,125,127,133,166,209,217,218,250,266,290,376,378,379],exceed:[209,217,235,268,290,355,360,369,370,373],except:[6,10,15,23,59,101,113,159,209,217,250,259,265,281,290,345,369,375,376],excepteur:159,excerpt:378,excess:[366,375,376],exchang:[366,375],exclud:[35,159],exclus:[5,65,244,261,376],exec:116,execut:[5,13,17,20,30,57,65,71,97,101,116,119,122,133,165,166,193,194,195,197,198,252,265,282,290,301,302,308,311,312,318,319,322,323,327,330,345,366,375,378,379],exercis:375,exercit:159,exhaust:373,exist:[2,13,17,24,27,28,33,38,94,100,126,133,159,169,188,189,190,205,209,217,223,229,252,265,301,306,307,311,312,315,317,321,324,327,331,334,342,345,349,355,357,375,376,378],exit:[10,59,92,94,121,159,165,204,282,322,323,328,370,373,375,378],exit_failur:376,exit_success:376,exp1:376,exp2:376,exp:165,expand:[4,113,125,127,133,159,247,302,311,312,376],expans:[133,205,240,266,268,286,290,317,346,348,376],expect:[159,209,217,252,324,346,348,376],expens:369,experi:[159,301,323],experiment:376,expir:330,explain:[315,346,347,360,373,376,378],explan:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,209,217,268,290,345,376],explicit:[376,378],explicitli:[159,345,376],explist:376,explor:[207,376],expon:376,exponenti:[91,376],expos:[159,300,320],exposur:377,expr:211,express:[34,162,165,321,334,342,375],ext:[159,323],extend:[22,28,32,62,118,220,225,265,321,334,342,346,348,376],extens:[53,336,375,376,379],extent:375,extern:[1,15,30,32,71,87,89,96,101,113,120,135,160,162,166,187,211,214,218,221,235,240,245,246,247,248,250,251,262,263,264,266,269,274,279,284,290,320,323,325,337,338,339,340,344,355,360,369,375,376,377,378],exti:28,extinguish:[182,183,184],extra:[4,21,124,159,330,376],extra_param:344,extract:[113,159,209,217,252,375],extramsg:376,extranet:113,extrem:[92,101,209,257,274,318],f01122334455:131,f103:[250,251],f1:[159,165,274],f2:165,f32:133,f5:[28,53],f64:133,f:[9,26,29,33,99,108,133,165,209,217,274,345,349,375],face:208,facil:[321,334,342,376],facilit:[369,375,376,380],fact:[159,168,209,217,264,337,375],factor:[38,159,376],factor_:376,factor_of:376,factori:[92,218,245,246,281,286,289,291,298],fade:[28,159],fail:[0,1,2,4,6,12,16,19,23,25,27,29,33,37,44,47,56,67,73,80,87,88,89,91,92,93,101,102,104,105,109,113,115,117,120,125,131,133,163,188,189,190,204,250,254,265,281,286,290,301,302,311,312,317,326,330,341,376,379],failur:[1,4,8,12,15,18,23,27,28,29,33,39,45,58,59,92,97,103,109,110,113,118,120,123,124,125,132,134,252,263,265,302,315,316,341,345,376],fake:[247,265,357],fal:[13,169],fall:[20,30,355,376],fals:[1,2,3,4,6,7,9,10,12,13,15,16,17,19,20,21,24,25,29,30,31,32,35,36,38,56,59,62,66,67,71,85,86,87,88,89,91,92,93,94,95,96,98,101,103,104,105,106,108,109,110,111,112,113,115,117,119,121,123,124,127,129,130,131,132,133,134,159,169,188,189,190,200,201,202,204,207,269,301,366,369,375,376,378,379],famili:[193,194,195],familiar:[89,174,205,311,312,380],fanci:371,faq:[214,250,288,290,353],far:[235,352,375],fast:[11,25,39,40,41,43,44,45,47,48,50,52,55,60,61,64,67,68,69,74,75,79,90,105,159,170,171,172,208,209,217,235,250,274,289,290,297,353,355,360,363,369,370,373],faster:[159,207,247,266,363],fastest:218,fastlz:[28,118,134,265],fat32:349,fatal:[84,265,315,376],fatf:[28,108,118,163,265,325,349],fault:[92,250,290],favor:353,favorit:210,fb803786602df760:31,fbd:169,fd:29,fdb:[17,28,110,118,174,205,265,290,293],fdb_kv_set_blob:13,fdd:262,fdev:[85,86],feasibl:266,featur:[96,104,159,167,168,181,186,187,192,199,209,217,220,225,235,242,247,248,265,266,269,270,290,320,321,334,342,345,366,376],feature_xxx:345,februari:159,fed:265,feed:[28,42,104,159,176,198,322,357,375,376],feed_dog:53,feedback:[23,104,159,272,381],feel:[159,320,375],feet:[36,101,218,259,291],feichuang:261,feishu:265,felt:375,feng:376,feof:328,ferror:328,fetch:[265,331,376],few:[97,159,209,217,247,291,300,357,375,376],ff0000:159,ff00ff:159,ff01:96,ff02:96,ff03:96,ff31:96,ff32:96,ff:159,fff1:96,fff2:96,ffffffff:[344,351],ffmpeg:163,fft:290,fg_color:28,fi:[257,382],field:[36,67,94,159,162,252,332,346,348,376],fieldlist:376,fieldsep:376,fifo:[250,290,297,378],fifth:[56,375,376],figueiredo:376,figur:[5,193,194,195,199,209,210,211,217,235,245,246,247,252,264,298,355,357,366,375],file:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,17,18,19,20,21,22,23,24,25,26,28,29,30,31,32,33,34,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,114,115,116,117,118,119,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,160,164,165,174,191,193,194,195,204,205,207,208,209,210,214,217,221,226,234,244,245,247,252,261,263,265,266,271,282,284,290,291,298,299,303,306,308,309,311,312,315,316,319,320,321,322,324,328,331,334,336,342,344,346,347,348,351,366,377,391],file_cnt:163,file_don:132,file_no:1,file_path:[28,53],file_s:163,file_tld:[346,347],file_tld_t:343,filenam:165,files:28,filesystem:328,fill:[0,1,7,17,18,19,25,28,31,34,44,56,57,58,67,68,71,85,92,93,96,113,114,115,124,127,130,159,163,250,265,269,271,290,301,327,331,345,351,375,376],film:[65,269,289,355],filter:[53,90,96,101,135,160,218,235,250,265,290,376],filter_match:90,filter_polici:28,fin:28,find:[12,113,159,163,165,188,189,190,204,207,209,211,217,226,245,247,289,290,298,301,351,357,360,378],finder:376,fine:[30,125],finish:[1,28,116,209,304,307,376],fint2:159,fire:376,firmwar:[0,5,6,9,14,28,35,38,63,65,92,96,100,101,104,110,113,117,118,126,131,159,205,206,217,218,219,222,224,228,231,232,235,243,245,246,250,252,256,260,262,263,268,271,272,281,282,286,288,290,293,298,301,303,309,310,315,316,343,346,347,348,349,351,353,360,377,381,382],first:[1,9,12,17,20,24,29,35,36,56,89,92,93,97,99,101,109,124,133,142,159,162,163,166,170,171,172,177,178,179,193,194,195,204,209,215,217,218,235,245,247,250,251,263,265,266,269,282,286,290,301,302,317,332,338,343,345,350,355,357,360,369,373,376,377,378,379,390],first_exp_until:376,first_y_that:376,firsttck:179,firsttick:179,fit2:159,fit4:159,fit:[135,160,208,311,312,374],fit_:159,fit_max:159,fit_non:159,fit_par:159,fit_tight:159,five:[133,159,286,376],fix:[7,11,12,15,20,34,38,92,96,114,120,159,200,201,202,235,247,252,254,265,269,280,301,317,324,327,332,345,346,347,349,353,355,358,360,371,372,373,376,388],fix_qual:38,fix_typ:38,fixlen:[85,86],fixtur:218,fl:[344,351],flaaap:376,flag1:28,flag2:28,flag:[28,53,59,67,132,176,250,265,290,341,351,375],flah:[209,217],flash:[4,14,15,17,28,66,115,118,135,160,169,174,187,191,192,196,204,205,206,210,211,215,221,231,235,240,245,246,250,251,257,265,266,270,274,279,284,286,290,291,293,297,298,308,316,325,349,351,352],flash_c:281,flash_ck:281,flash_d0:281,flash_d1:281,flash_eraseoptionbyt:[250,290],flash_spi_mast:252,flash_spi_rx_dma_channel:252,flash_spi_tx_dma_channel:252,flash_waitforlastoper:252,flashdb:[13,169,291],flasher:282,flashtool:271,flat:274,flex:159,flexibl:[159,251,297,375,378],flicker:[135,160],flight:[66,92,94,101,159,263],flip:[35,251,376],float32:331,floor:165,flow:[70,378],flower:265,fluctuat:122,fluenci:366,flush:[9,28,165,349],fly:[159,209,265,291],flymcu:252,flymod:[28,66],fmod:165,fmt:[28,165],fn:[28,376],fname:376,focal:385,focu:[135,160,263],focus:[135,160],fold:28,folder1:159,folder:[29,132,204,207,209,211,217,245,265,282,298,311,312,318,319,321,334,342,345,349,377],follow:[11,14,15,17,20,25,29,56,58,67,71,72,93,94,96,97,99,100,104,105,113,121,131,133,159,162,166,169,170,171,172,176,177,178,179,182,183,184,188,189,190,193,194,195,197,198,200,201,202,207,209,214,217,218,235,245,246,247,251,252,263,265,266,270,272,281,286,290,298,299,301,302,308,311,312,315,317,318,319,327,328,332,333,336,345,346,348,350,355,357,360,366,370,371,372,375,376,377,378],following_keywords_ar:376,font:[28,118,135,160,168,175,209,217,265,309,387,392],font_32:87,font_:35,font_data:336,font_data_count:336,font_fre:28,font_get:[28,159],font_info:159,font_load:[28,159],font_map:336,font_open_iconic_weather_6x_t:[9,35],font_opposansm10:[9,35,124],font_opposansm10_chines:[9,35],font_opposansm12:[9,35,124],font_opposansm12_chines:[9,35,124,316],font_opposansm14_chines:9,font_opposansm16:[9,35,124],font_opposansm16_chines:[9,35,124,209,217],font_opposansm18:[9,35,124],font_opposansm18_chines:[9,35],font_opposansm20:[9,35,124],font_opposansm20_chines:[9,35],font_opposansm22:[9,35,124],font_opposansm22_chines:[9,35],font_opposansm24:[9,35],font_opposansm24_chines:[9,35,124],font_opposansm32:[9,35,124],font_opposansm32_chines:[9,35,124],font_opposansm8:[9,35,124],font_opposansm8_chines:[9,35],font_unifont_t_symbol:[9,35,124],font_w:336,font_xxx:35,fontfamili:207,fontnam:159,foo:[376,378],foot:[85,115,128,218,281],footprint:[3,107,159,366,374],fopen:328,forc:[2,28,59,113,131,133,159,165,263,265,345,355,357,360,369],force_all_raw_block:90,force_all_static_block:90,force_br:344,force_level:28,forcibl:[132,265],fore:28,foreground:[35,159],foreign:382,forev:[121,376],foreword:[135,161,164,250,290],forget:[159,209,217],form:[4,23,30,35,56,58,94,100,125,127,130,131,133,135,160,271,323,328,332,346,348,350,375,376,379],form_g:104,formal:[159,376],formaldehyd:53,format:[1,2,4,6,19,27,28,29,38,47,78,83,97,104,105,107,112,113,118,127,135,160,165,169,170,171,172,188,189,190,209,240,244,264,266,268,290,323,332,345,346,347,348,349,351,378],format_len:344,formatstr:[165,375],former:323,formula:[170,171,172,209,217,375],forth:159,forum:[159,352],forward:[38,133,373,376],fota:[23,28,53,118,257,265,266,271,382],fota_cb:266,fotademo:266,fotadon:15,found:[6,13,24,166,169,187,192,193,194,195,197,199,200,201,202,204,209,217,252,266,269,304,306,311,312,315,317,353,371,375,376,378,379],foundat:[135,160,206],four:[35,38,65,124,159,170,171,172,193,194,195,247,252,353,357,360,369,375,376],fourth:[56,170,171,172,375,376,378],fpc:385,fps16hz:91,fps1hz:91,fps2hz:91,fps32hz:91,fps4hz:91,fps64hz:91,fps8hz:91,fraction:[5,159,376],fragment:[15,112,113,117,376],frame:[62,65,91,124,130,209,217,331,376],framebuff:[35,133,159,331],frametab:65,framework:[120,165,206,341,352,366,376],fread:328,free:[12,35,159,218,247,265,316,324,366,376],free_count:326,free_kb:12,free_sector:12,freed:376,freeli:[208,355,366,369,376],freerto:[252,290,320,326,327,378],freertosconfig:252,freestrong:341,freq:28,freqhopon:[85,86],frequenc:[1,4,5,7,12,26,35,65,72,77,85,86,89,103,109,111,159,162,163,174,180,182,183,184,205,208,209,217,218,221,226,234,235,247,250,251,252,257,264,274,284,286,290,296,297,338,339],frequent:[92,199,200,201,202,209,217,315],fresh_rat:28,frexp:376,friend:[282,391],friendli:[37,209,327,352,376],from:[0,1,4,7,9,14,15,19,25,29,30,35,38,65,87,92,93,96,101,102,104,108,109,111,113,115,119,124,125,130,133,135,160,166,167,176,182,183,184,200,201,202,204,208,214,217,218,223,229,235,240,244,247,250,251,254,263,265,269,270,274,290,291,297,299,301,303,315,317,318,319,322,323,324,328,331,332,336,343,349,351,353,355,360,363,366,375,376,377,378,379],frombase32:28,frombase64:[6,28],fromcod:28,fromhex:[7,28,96,105,128,131,265,350],fromidx:376,front:[20,159,339,357,375,376],fruit:159,fs:[28,29,111,118,163,188,189,190,209,217,344,349],fs_addr:344,fseek:328,fsize:[28,29,163,209,217],fskv:[28,110,118,265],fsstat:[28,111,188,189,190,209,217],ftp:[28,118,265,270,272],ftp_login:18,fugiat:159,full:[10,26,28,30,59,65,97,113,115,124,125,159,165,174,191,192,196,203,204,205,206,209,210,217,240,244,247,250,263,265,266,286,290,299,310,318,319,330,336,339,345,346,348,349,366,381,390],fullclean:317,fulli:[159,208,209,217,235,240,265,308,345,353,364,369,371,376],fun:[28,341,378],func:[28,209,217,332,376],funcbodi:376,funcindex1:376,funcindex2:376,funcindex:376,funclist:375,funcnam:165,function_:376,function_given:376,functioncal:376,functiondef:376,functionon:375,functions_:376,fundament:274,funni:378,further:[159,358,372],futil:[311,312,317],futur:[89,119,325,344,376],fuzzi:308,fwqltvqo:381,g0:274,g:[28,33,65,75,115,159,209,217,252,257,274,311,312,315,345,375,376,377],ga:82,galileo:208,gap:[65,124,376],garbag:165,garbl:[231,290],gatewai:[28,113,341],gaug:[135,160],gauge1:159,gauge_cr:159,gauge_part_main:159,gauge_part_major:159,gauge_part_needl:159,gauge_set_angle_offset:159,gauge_set_critical_valu:159,gauge_set_needle_count:159,gauge_set_needle_img:159,gauge_set_rang:159,gauge_set_scal:159,gauge_set_valu:159,gb2312:[27,35,124,336],gb:92,gbk:265,gbr:162,gc032a:[291,392],gc032a_initreg:3,gc9106l:35,gc9306:[217,265,291,401],gc9306x:35,gc9a01:35,gc:265,gcc:[299,315,318],gcc_mcu:315,gcc_path:315,gcj02:38,gcm:272,gdma:286,gear:[353,358,360,366,372],gener:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,28,29,30,32,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,159,163,177,178,187,209,211,217,235,240,245,250,263,266,271,274,279,286,290,291,297,299,302,311,312,317,318,319,320,322,323,324,327,333,336,339,345,351,360,369,375,376,382],genrsa:105,genuin:252,geograph:263,geomagnet:53,gestur:208,get:[1,6,9,11,12,13,14,15,16,22,23,24,26,28,29,35,37,38,39,40,41,43,45,46,47,51,53,55,58,60,61,63,64,65,69,74,75,79,82,84,87,89,90,91,92,94,96,97,107,109,113,120,124,125,131,133,135,160,163,165,167,169,174,180,186,188,189,190,204,205,209,211,221,247,252,265,286,290,301,302,311,312,316,318,324,326,327,328,331,333,337,341,345,352,355,375,376],get_accel:53,get_cell_period:28,get_data:53,get_device_t:111,get_gyro:53,get_left_valu:159,get_lux:53,get_mag:53,get_numb:120,get_pressed_d:159,get_rgb:53,get_select:159,get_selected_str:159,get_stat:159,get_temp:53,get_temperatur:53,get_text:159,get_val:53,get_vdd:28,get_xxx:159,getaht10data:[170,171,172],getapinfo:341,getapnet:341,getband:28,getbootcfun:28,getc:328,getcellinfo:[28,120],getclk:[28,177,178,179],getdevic:28,getdevicenum:[28,209,217],getdevicet:[28,188,189,190,209,217],getdisplayheight:28,getdisplaywidth:28,getedrx:28,getedrxptw:28,getenv:165,geterror:28,getfre:[28,163],getgga:28,getgll:28,getgsa:28,getgsv:28,gethook:165,getinfo:[28,165,341],getintloc:[28,265],getip:28,getjionapinfo:341,getlevel:[28,176],getloc:165,getloccb:56,getmac:28,getmetat:165,getnumberlist:375,getpm_10:53,getpm_1:53,getpm_2_5:53,getppb:53,getppm:53,getpsm:28,getpw:341,getraw:28,getregistri:165,getrmc:28,getrssi:341,getsiz:28,getstanet:341,gettable_ev:376,gettxt:28,gettz:28,getupvalu:165,getuservalu:165,getvtg:28,getwin:28,getzda:28,gga:38,gif:28,gif_creat:28,gif_restart:28,gift:279,girlfriend:162,git:[265,301,303,309,311,312,313,314,315,317,318,342],gite:[10,35,204,211,222,228,244,245,266,270,274,309,310,311,312,314,315,317,345,346,348,349,366,383,391,393,396,399],github:[102,169,188,189,190,210,247,289,299,313,315,317,345,349],gitignor:309,gitxxx:307,give:[4,92,159,165,218,272,301,327,357,375],given:[72,100,159,209,217,266,302,343,375,376],glb:376,gll:38,global:[104,119,121,159,165,252,301,326,328,366],glonass:208,glossari:[321,334,342],glow:[182,183,184],glu:159,glue:[135,160],glyph:159,gmatch:[165,375],gmssl:[28,118,265],gmtime:376,gnd:[65,166,170,171,172,182,183,184,188,189,190,193,194,195,199,200,201,202,215,217,235,247,281,286,289],gnss:[38,120,208,263,265,269,270],gnss_state:38,go:[0,9,70,159,204,209,223,229,240,247,267,281,286,302,323,353,357,360,366,369,371,375,376,378,403],goal:[17,25,321,334,342],god:[209,217,247,378],goe:[159,322],gold:247,gone:376,good:[207,218,235,247,263,265,290,316,375,376,381],goodgoodstudi:[13,17],googl:159,got:119,govern:[247,376],gp:[38,71,101,208,263,269,270],gpio02:281,gpio03:281,gpio04:281,gpio05:281,gpio06:281,gpio07:281,gpio08:281,gpio09:281,gpio0:[262,263,264,281,286],gpio10:[125,235,242,263,264,269,281,286],gpio11:[242,264,269,281,286,391],gpio12:[89,100,242,269,281],gpio13:[89,242,263,269,281],gpio14:[242,265,269,281],gpio15:[242,269,281],gpio16:[20,89,235,242,269,281],gpio17:[20,89,109,235,242,281],gpio18:[20,188,193,194,235,242,269,281],gpio19:[188,193,194,235,242,269,281,286],gpio1:[66,170,171,242,269,281],gpio20:[188,193,194,235,269,281],gpio21:[188,193,194,235,242,262,281],gpio22:[71,200,201],gpio23:[200,201,242,269],gpio24:269,gpio25:[1,269],gpio27:[20,71,262,263,264,269],gpio28:235,gpio29:[235,269],gpio2:[235,242,269],gpio30:[235,269],gpio31:235,gpio32:[202,235],gpio33:[202,235],gpio35:235,gpio36:235,gpio37:235,gpio38:235,gpio39:235,gpio3:242,gpio3uart0_rt:235,gpio40:235,gpio41:235,gpio44:[189,190,195,235],gpio45:[189,190,195,235],gpio46:[189,190,195,235],gpio47:[189,190,195,235],gpio49:235,gpio4:[66,89,92,170,171,242],gpio50:235,gpio51:235,gpio54:235,gpio55:235,gpio56:235,gpio57:235,gpio58:235,gpio59:235,gpio5:[89,235,242],gpio60:235,gpio61:235,gpio62:235,gpio63:235,gpio64:235,gpio65:235,gpio66:235,gpio67:235,gpio6:[49,89,235],gpio70:[172,235],gpio71:[172,235],gpio72:235,gpio73:235,gpio74:235,gpio75:235,gpio7:[49,89,235,242],gpio8:[235,242,269],gpio9:[235,242,269,281],gpio:[12,22,25,28,30,32,49,62,65,66,67,71,85,89,100,101,109,110,116,118,125,162,163,174,195,196,204,205,206,220,221,223,225,227,229,230,235,242,245,250,251,257,259,262,263,264,265,266,268,270,279,281,286,290,293,297,298,309,327,328,329,334,335,338,342],gpio_01:225,gpio_02:225,gpio_03:225,gpio_04:225,gpio_05:225,gpio_06:225,gpio_07:225,gpio_08:225,gpio_09:225,gpio_0:345,gpio_10:225,gpio_11:225,gpio_12:225,gpio_13:225,gpio_14:225,gpio_15:225,gpio_16:225,gpio_17:225,gpio_18:225,gpio_19:225,gpio_20:225,gpio_21:225,gpio_22:[209,217,225],gpio_23:[209,217,225],gpio_24:[209,217,225],gpio_25:[209,217,225],gpio_26:[209,217,225],gpio_27:[209,217,225],gpio_28:225,gpio_29:225,gpio_30:225,gpio_31:225,gpio_32:225,gpio_33:225,gpio_34:225,gpio_37:225,gpio_38:225,gpio_40:225,gpio_41:225,gpio_42:225,gpio_43:225,gpio_a:53,gpio_b:53,gpio_fal:337,gpio_forcepullupconfig:248,gpio_forcepupdcmd:248,gpio_init:298,gpio_inittypedef:211,gpio_invbit:298,gpio_l:211,gpio_mode_output_pp:211,gpio_pin_0:211,gpio_pin_8:248,gpio_pin_9:248,gpio_pinremapconfig:252,gpio_remap_swj_jtagdis:252,gpio_remap_swjjtagdis:252,gpio_ris:337,gpio_rising_fal:337,gpio_set:116,gpiob:[211,248],gpiod:298,gpr:[66,113],gps_ant:[101,263],gptxt:38,gpu:159,grab:[357,366],grad_dir_v:159,grade:[113,266],gradient:159,gradual:[217,266],graffiti:[31,53,265],grai:[28,159,324],gram:375,grammar:[206,291,376],grammat:376,grandpar:159,grant:376,granular:[188,189,190],grape:159,graph:[159,376],graphic:[28,118,159,209,217,303],grayscal:[3,35,159],great:247,greater:[32,62,80,89,90,92,119,124,133,217,330,355,360,370,373,375,376],greatli:[159,247,265,352,366],greedi:90,greedy_parsing_flag:90,green:[35,246],grid16:77,grid1:77,grid:[53,159],ground:[38,65,209,217,235,252,281,353],group:[30,159,209,211,215,222,228,240,244,245,252,298,328,346,348,357,360,369,376,391],grow:[159,376],gsa:38,gsm:[66,94],gsub:165,gsv:38,gt5slcd1e:21,gt5sucd2:387,gt911:53,gt911_i2c:53,gt911_int:53,gt911_re:53,gt911callback:50,gtfont:[28,35,118,124,265,293],guangdong:159,guarante:[56,65,107,266,297,376],guest:378,gui:[159,303],guid:[207,230,248,252,282,309,346,348],guidelin:376,gw:131,gyro:64,gyroscop:[53,64],gz:[24,376],h:[25,28,38,44,97,99,109,133,159,163,168,175,209,211,217,252,291,298,301,311,312,315,317,320,350,351,375,376],ha:[0,1,2,3,4,6,7,8,9,10,12,13,15,16,17,18,19,20,22,23,24,25,26,27,29,30,31,32,33,34,35,37,38,44,57,59,65,70,78,80,85,86,87,89,92,93,96,98,100,101,102,103,105,106,107,108,111,112,113,115,116,117,120,124,125,127,128,129,130,131,133,134,159,162,166,167,175,182,183,184,187,193,194,195,200,201,202,208,209,217,218,235,244,245,246,250,251,252,257,261,265,269,274,281,286,290,291,298,300,301,306,311,312,331,341,346,348,349,351,355,357,363,366,369,375,376,378],habit:[345,376],had:[163,376],hal:[214,251,290,328],hal_cortex_module_en:211,hal_delai:211,hal_flash_module_en:211,hal_gpio_init:211,hal_gpio_module_en:211,hal_gpio_togglepin:211,hal_inctick:211,hal_init:211,hal_ll:211,hal_module_en:211,hal_mspinit:252,hal_pwr_module_en:211,hal_rcc_module_en:211,half:[105,115,159,188,189,190,193,194,195,209,217,245,274,336,339,374,375],hall:297,halt:53,hand:[210,286,308,333,353,364,369,371,376],handheld:353,handl:[27,28,29,122,125,132,135,160,165,208,265,297,302,333,377],handler:[28,159,302,321,327,334,341,342,376,378],handler_on:376,handler_to:376,handshak:[59,265],hang:[28,118,252],hanlder:327,happen:[122,159,376],happi:5,happili:[346,348],hard:[5,122,174,205,240,366],hardfault:28,hardfault_handl:[211,252],hardwar:[1,20,25,28,30,35,63,65,70,72,89,98,101,107,113,115,118,123,124,125,128,159,162,173,174,180,185,191,196,203,205,214,221,226,234,239,243,244,250,251,256,257,260,263,265,268,269,277,279,284,288,290,291,296,297,321,328,330,334,342,349,371,385,388,390,392,395,398,401,404],harmless:303,has_more_input:90,has_n_el:376,hash:[19,28,118,167,265],hash_finish:28,hash_init:28,hash_upd:28,hashjeremi:391,hashresult:6,have:[8,9,30,35,70,71,85,92,96,99,100,104,113,125,128,131,133,159,182,183,184,188,189,190,207,209,245,247,251,252,262,263,265,270,281,282,286,290,298,301,308,315,316,317,328,349,350,351,352,353,369,375,376,377,380],haven:[71,162],hclk:248,hcode:28,hd:9,hdiv_num:159,hdop:38,he:[214,217,375,390],head:[29,38,65,69,117,133,323,331,343,353,355,360,363,369,370,373,376,378],headach:71,header:[24,28,90,159,188,189,190,214,290,301,302,320,333,343,376,378],header_tld:[346,347],header_tld_t:343,headingdegre:69,heap:[35,265,326],heap_4:326,heard:265,heart:[28,118,208],heartbeat:[54,93,113,265,330],hebrew:159,heet:336,height:[3,28,35,38,87,124,135,160,324,375],held:[159,364,369,371],hello:[206,207,210,274,375,376],helloworld:[135,160],help:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,114,115,116,117,119,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,160,209,217,248,252,263,308,316,346,348,369],helper:376,henc:376,henriqu:376,here:[0,4,10,15,38,56,101,105,113,120,131,159,162,163,175,188,189,190,193,194,195,204,207,209,210,211,217,245,247,263,266,282,290,298,301,302,311,312,315,316,318,327,328,331,334,346,347,348,353,355,360,364,366,375,376,377,378,379,388],here_x_and_y_ar:376,here_x_cannot:376,here_x_i:376,herebi:265,heshuo:228,heterogen:[208,376],hex:[6,11,19,28,89,90,105,124,131,167,199,221,222,247,252,343,346,347,351],hexadecim:[34,56,89,125,131,159,174,180,205,346,347,351,375,376],hexstr:[28,350],hezhou:235,hfashfp9qw38hrfaio:[11,90],hfiuoaghfluaeisw:[11,90],hi:[10,110,187,200,201,202,299,318,319,377],hib:[101,181,263,329],hibern:[5,101],hid:[127,247,270],hid_mod:28,hid_rx:28,hid_tx:28,hidden:[159,341],hide:[135,160],hierarchi:376,high:[1,9,20,25,30,35,38,46,65,72,89,96,101,115,116,162,166,170,171,172,174,176,180,182,183,184,186,192,193,194,195,205,208,209,210,211,217,218,220,225,235,240,247,250,251,252,265,269,279,281,286,289,290,291,297,311,312,329,331,337,339,340,353,355,358,360,366,370,371,373,376],high_duty_cycl:28,high_irq:20,higher:[0,4,5,11,17,159,209,217,218,247,252,363,364,376],highest:[3,5,12,89,91,93,128,159,209,217,240,252,264,270,279,281,290,353,371,374],highlight:[135,160],highlighted_d:159,highlighted_dai:159,highlighted_days1:159,highlighted_days2:159,highlighted_days3:159,himself:28,hint:[15,376],histor:[38,265,382],histori:[71,107,268,290],hit:159,hizhou:[215,222,228,251,291,297,381],hmac:[19,28,167],hmac_md5:[28,167],hmac_sha1:[28,167],hmac_sha256:[28,167],hmac_sha512:[28,167],hmacmd5:31,hmacsha1:31,hmacsha256:31,hmeta:[28,118],hold:[101,159,204,223,229,245,263,360,366,369,375,376],hole:[159,218,235,281,286,355,360],hollow:124,home:[247,376],homepag:[71,366],hook:165,hope:[302,369],hopperiod:[85,86],hor:159,hor_fit_typ:159,hor_r:159,horizont:[35,38,159,376],horn:1,host:[28,53,54,96,115,170,171,172,192,209,217,252,265,269,270,286,322,324,332,376],hostnam:28,hot:[209,217,289,341,390],hotspot:[254,341],hour:[10,25,38,56,67,71,97,106,186,209,263,360,366,376],hour_offset:38,hous:353,how:[1,4,22,30,102,109,117,125,138,146,149,155,159,169,170,171,172,174,175,176,177,178,179,182,183,184,188,189,190,193,194,195,198,200,201,202,204,209,217,218,232,245,247,282,289,290,298,301,317,320,321,324,334,342,371,375,376,377,378,382],howev:[101,159,209,217,218,357,366,375,376],hozhou:58,hpa:46,hse:252,hse_startup_timeout:211,hse_valu:211,hsi:211,hsi_startup_timeout:211,hsi_valu:211,hspi:[195,231,235],hspi_0:115,hspi_clk:[189,190,195],hspi_csn:[189,190,195],hspi_miso:[189,190,195],hspi_mosi:[189,190,195],hsv:159,htm:[261,384,395,398,401,404],html:[5,9,24,35,38,159,162,209,210,217,270,291,381],http:[5,9,10,15,28,35,37,38,53,58,67,71,87,97,101,102,118,121,159,162,169,188,189,190,193,194,195,204,206,207,209,210,211,213,217,222,225,228,233,235,244,245,246,249,254,255,261,263,264,265,266,269,270,272,274,289,291,293,294,295,297,299,301,302,303,308,310,311,312,314,315,316,317,318,333,349,375,381,383,384,391,393,395,396,398,399,401,404],http_error_bodi:23,http_error_clos:23,http_error_connect:23,http_error_download:23,http_error_fota:23,http_error_head:23,http_error_rx:23,http_error_st:23,http_error_timeout:23,httpbin:23,httpc:333,httpdn:53,httpsrv:[28,118,265],httptest:23,huacon:[294,295],huawei:[31,53,265,355,360,369,370,373],huaxin:297,hue:159,huffman:90,huge:[71,165],huge_v:376,hum:46,human:376,humid:[25,53,71,109,170,171,172,206,209,217],humiditybit:[170,171,172],hump:345,hungri:378,hw:330,hwtimer:209,hwtimer_id:28,hwver:28,hx711:28,hxxt_gps_bds_agnss_data:263,hz:[7,28,177,178,179,211],i16:133,i2:[1,28,89,118,240,265,270,286],i2c0:[25,89,209,217,262,269],i2c0_scl:[235,242,269],i2c0_sda:[235,242,269],i2c1:[25,89,262,265,269],i2c1_scl:269,i2c1_sda:269,i2c2:25,i2c:[22,28,39,40,41,43,44,45,46,47,48,50,52,55,60,61,63,64,67,68,69,74,75,79,88,89,118,124,168,174,205,221,234,240,257,265,268,270,279,281,286,290,293,297,308,345],i2c_hw:124,i2c_id:[25,28,46,50,53,60,124],i2c_scl:[76,124,170,171,172,220,225,259,281],i2c_sda:[76,124,170,171,172,220,225,259,281],i2c_spe:[39,40,41,43,45,46,47,48,50,55,60,61,63,64,68,69,74,75,79,91],i2c_sw:[124,168],i2cdon:25,i2cid:[39,40,41,43,45,46,47,48,50,52,53,55,60,61,63,64,67,68,69,75,79,91,170,171,172],i2cslaveaddr:[170,171,172],i2s0:26,i2s1:[26,265],i2s:[250,290],i2s_bclk:269,i2s_lrck:269,i2s_mclk:269,i2smod:252,i32:133,i64:133,i8080:286,i8:133,i:[1,3,6,18,30,50,52,68,70,71,72,73,77,78,84,99,125,131,133,159,162,163,165,166,169,170,171,172,175,176,177,178,179,182,183,184,188,189,190,193,194,195,197,198,200,201,202,204,209,215,217,218,235,247,252,274,290,311,333,346,348,350,353,375,378],i_:376,i_n_:376,iap:[240,247],iar:[246,247],ibeacon:28,ibid:[159,235,357,377],ibm:6,ic:[28,35,124,235,395,398,401],iccid:28,icm20608d:53,icm2068g:53,icon:[9,159,207],icon_img:159,iconv:[28,118,265],id15:159,id1:9,id2:159,id4:210,id:[10,12,28,30,31,39,40,41,43,44,45,47,48,52,53,54,55,61,63,64,65,68,69,71,74,75,79,84,85,87,88,89,91,93,102,111,113,120,121,132,159,163,170,171,172,174,180,181,187,191,192,196,199,200,201,202,205,209,214,217,230,252,261,265,269,290,302,303,310,322,330,339,340,345,350,351,378,384,395,398,401,404],idcod:252,iddpd:235,idea:[209,217,265,266,308,321,334,335,342,375,376,380],ideal:[353,364,369,371],ident:[10,375,376],identif:[10,71,92,96,247,350],identifi:[22,38,92,96,207,215,247,297,303,376,379],ideograph:159,idf5:[282,316,317],idf:[282,289,317],idiom:376,idl:[66,101,107,110,113,327,329],idp:302,idx:376,ie:376,ieee:376,ierusalimschi:376,if_n_i:376,ifdef:[159,211],ifndef:[159,211],ignor:[2,6,25,34,38,92,101,109,113,114,120,128,159,252,265,269,271,309,315,375,376],igor:315,ii:[250,290],iic:[209,215,248,251,281],iic_inttransmit:248,iih:331,iiha10:133,iiha:133,ili9341:[209,217,290],ili9486:35,illeg:[23,159,265,376],illumin:247,illustr:[96,290,363,376,378],imag:[3,9,28,118,124,135,160,208,209,217,240,316,351],image_recolor:159,image_recolor_opa:159,imagin:332,imei:[10,28,31,54,71,266],img1:[159,290],img2:159,img:[135,160,290,344],img_btn_part_main:159,img_cf_alpha_:159,img_cf_indexed_:159,img_cogwheel_argb:159,img_creat:159,img_dsc_t:159,img_part_main:159,img_set_angl:159,img_set_antialia:159,img_set_auto_s:159,img_set_offset_i:159,img_set_offset_x:159,img_set_pivot:159,img_set_src:[159,290],img_set_zoom:159,img_src:159,img_src_left:159,img_src_mid:159,img_src_right:159,img_zoom_non:159,imgbtn1:159,imgbtn:[135,160],imgbtn_:159,imgbtn_blu:159,imgbtn_creat:159,imgbtn_green:[159,290],imgbtn_part_main:159,imgbtn_set_check:159,imgbtn_set_src:159,imgbtn_til:159,imgbtn_toggl:159,imit:[209,217,301],immedi:[9,20,25,38,65,66,93,101,130,131,245,252,302,373,375,376],immut:[375,376],impact:265,imped:[20,65,235,337,369],implement:[17,19,65,92,100,159,167,206,217,252,265,266,270,301,321,324,327,328,332,334,338,342,343,345,346,348,349,352,375,376,377,378,379],implements_ful:376,impli:[193,194,195,369],implicit:376,implicitli:322,imposs:[119,328],improv:[115,159,167,182,183,184,218,245,247,265,298,352,369,375,376],imsecret0i1m2jkl:31,imsi:28,in0_process:252,in2bc:9,in_buff:28,in_protect:376,in_set:376,in_set_:376,in_set_repres:376,in_set_to:376,ina226:[53,265],ina226_data:52,ina226_i2c:53,inaccess:376,inact:159,inappropri:378,inbuf:[4,28],inc_cmsi:315,inch:[9,168,208,290,392,404],incident:119,incididunt:159,includ:[5,10,11,12,23,25,86,90,92,93,122,130,159,170,171,172,176,198,204,208,211,240,247,252,266,270,271,279,298,301,311,312,317,321,325,328,334,342,344,349,353,357,375,376,378,379,404],inclus:376,incom:[0,1,2,3,4,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,23,24,25,26,27,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,47,48,49,50,51,52,54,55,56,57,58,59,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,119,121,122,123,124,125,126,127,128,129,130,131,132,133,134,342,375,376,379],incompat:[165,265],incomplet:[218,265],inconsist:[353,366,375],inconst:376,inconveni:317,incorrect:[23,188,189,190,252,265,357,376],incorrectli:[218,265],increas:[25,35,92,109,159,182,183,184,209,218,265,266,281,366,375,376],increment:[159,376],indata:[37,38],indefinit:[9,35,124,209,217,322,376,377],indent:[345,376],independ:[101,159,165,208,240,250,251,290,297,299,326,366,369,375],indetermin:[377,378],indev:159,indev_drv_regist:28,indev_kb_upd:28,indev_point_emulator_upd:28,index1:376,index2:376,index:[24,28,36,38,135,160,165,169,332,375],index_:376,index_n_ref:376,index_ref:376,indic:[1,10,15,53,56,58,65,92,93,96,101,109,113,121,130,133,159,246,247,263,281,290,302,317,339,340,353,366,371,373,375,376,378],indirectli:376,individu:[159,235],indivis:376,induc:369,induct:369,industri:[257,290],ineffici:290,inf_timeout:378,infin:376,infinit:[30,159,322,379],info:[0,1,2,6,7,9,11,12,13,14,15,16,17,19,22,23,24,25,26,28,29,35,37,38,39,40,41,43,44,45,46,47,48,49,51,52,55,56,57,58,60,61,63,64,65,66,67,69,71,74,75,76,78,79,82,83,85,86,87,88,90,91,92,93,94,96,97,98,99,101,102,103,105,106,107,109,110,111,112,113,115,117,119,120,123,125,126,128,130,131,159,163,166,167,168,169,170,171,172,175,176,177,178,179,186,187,188,189,190,192,193,194,195,197,198,199,200,201,202,209,217,266,272,299,301,302,318,319,331,332,333,341,346,347,351,377,379],inform:[1,4,8,9,10,12,16,23,38,56,67,71,84,89,92,93,94,107,111,113,120,124,128,130,131,135,160,163,167,170,171,172,174,186,191,205,209,210,214,217,221,224,225,226,228,243,247,252,255,261,265,267,268,284,288,289,290,308,317,320,321,334,335,342,344,345,346,348,352,353,357,360,364,376,392,404],infrar:[28,53,118,338],inher:376,inherit:159,init:[28,46,53,60,120,159,163,165,168,175,176,187,188,189,190,198,209,217,252,301,307,308,333,375],init_level:28,initi:[3,8,9,10,12,13,15,17,20,21,25,26,28,30,34,35,36,39,40,41,42,43,45,46,47,48,49,50,52,55,60,61,62,63,64,65,67,68,69,70,71,72,73,74,75,76,77,78,79,82,83,85,86,87,88,90,92,93,95,96,108,110,111,114,115,123,124,125,128,129,131,132,133,159,163,168,169,173,174,176,191,196,198,199,203,205,209,217,218,252,254,265,290,302,305,308,326,339,340,345,376,378],initr:[188,189,190],initreg:28,inject:[250,290],ink:[28,118,209,290,392],inlai:[135,160],inlet:218,inlin:[279,376],inner:[159,376],innermost:376,innov:247,input:[4,6,20,28,34,71,85,87,89,92,114,117,134,135,160,163,165,166,188,189,190,206,218,220,221,225,235,251,252,263,265,269,281,290,297,308,321,328,334,337,342,353,355,360,363,364,369,375,380],input_buff:28,input_cnt:30,input_fil:28,input_pulldown:337,input_pullup:337,inreversem:28,insert:[1,159,165,209,217,247,269,289,308,333,360,375,378],insertfinalnewlin:207,insid:[77,78,120,133,159,263,290,321,323,327,334,342,357,375,376],inspect:159,instal:[159,163,204,205,209,214,247,250,251,281,286,290,296,299,311,312,315,317,318,319,355,357,366],instanc:[38,49,93,110,124,130,247,376],instant:269,instantan:[355,360,366,369,370,373],instead:[10,17,20,159,211,281,320,327,350,376,378,379],instruct:[71,116,159,170,171,172,175,187,193,194,195,209,211,217,218,231,247,250,255,257,264,268,270,289,290,315,323,353,355,357,371,375,376,378],instrument:[135,160],insuffici:[4,8,29,124,127,133,265,316,366],int16_t:332,int32:332,int32_t:[159,332],int64:331,int8:331,int8_t:[332,339,340],intact:375,integ:[2,25,56,71,87,109,116,117,265,274,297,331,375,376,379],integer_and_flo:376,integer_n_i:376,integr:[65,159,162,188,189,190,209,211,217,235,257,265,297,300,303,363],intens:[39,53,159],inter:[209,217,235],interact:[127,159,252,265,290,297,303,342,376,380,389],interchang:[159,209,228],interconnect:159,interf:65,interfac:[14,25,35,65,89,109,118,120,128,133,135,160,165,166,167,168,169,170,171,172,175,176,177,178,179,181,182,183,184,186,187,188,189,190,192,193,194,195,197,198,199,200,201,202,204,206,208,209,211,217,218,232,235,240,245,250,257,265,266,270,271,281,286,289,290,297,303,315,321,323,328,334,338,342,346,348,349,352,355,360,370,373,374,375,378,380,390,391],interfer:[65,218,235,355,357],interg:25,intermedi:[159,211,245,266,298,317,375],intermitt:376,intern:[0,15,19,20,22,71,101,113,120,135,160,166,209,217,220,225,231,235,250,251,252,265,268,290,291,297,300,333,375,376,377,378,379],internet:[31,94,113,289,315,341],interpret:[27,159,351,375,376],interrupt:[20,30,50,65,67,73,78,85,101,125,198,206,209,214,217,218,235,250,265,269,290,297,298,302,327,328,337,341,366,376],interv:[1,90,92,94,96,113,123,128,210,250,265,290,326,376],interval_:376,inton:[268,290],intptr_t:376,intranet:[113,265],introduc:[23,142,159,164,166,167,168,173,176,180,181,185,186,187,191,192,196,197,199,203,209,211,217,290,301,341,378],introduct:[34,101,114,118,135,138,142,146,149,155,160,161,165,173,174,180,185,191,196,203,205,206,221,227,268,284,288,290,346,348,377],introductori:375,intuit:[96,159,332],invalid:[9,38,42,72,92,119,159,263,369,376,378],inventori:317,invers:[65,159,375,376],invert:[135,160,376],invis:[89,92,96,102,199,217,375,376],invoff:28,involv:[38,326,327,328,350,376],invon:28,io00:281,io01:281,io02:281,io03:281,io04:281,io05:281,io06:281,io07:281,io08:281,io09:281,io10:[281,286],io11:286,io12:281,io13:281,io18:281,io19:281,io:[1,12,26,28,53,65,89,92,93,101,102,105,108,118,159,162,163,165,187,188,189,190,209,217,235,248,250,251,252,259,264,265,268,290,297,318,321,325,334,342,349,352,375,377],ioh:235,iol:235,iomux:[28,265,269],ioqueu:[28,118],iosel:101,iot:[10,28,54,56,58,118,131,138,149,155,244,266,271,289,291,352,355,363,366,370,373,377],iot_bridg:289,iot_config:53,iot_core_id:28,iotauth:[28,118,265],iotcloud:[53,265],iotcloudc:54,iotda:28,iotpl:366,iotpow:[360,364,369],iotpower_cc_usb_driv:366,iotpowerpro:366,iovl:101,iovol:[28,265],iovol_all_gpio:101,ip1:113,ip2:113,ip3:113,ip4:113,ip:[28,51,54,59,92,93,120,265,341,371],ip_addr:28,ip_los:265,ip_readi:[57,71],ip_typ:28,ipair:165,ipc:323,ipsum:159,ipv4:[92,113,131],ipv4v6:92,ipv6:[23,28,93,113,265,382],iqinvert:[85,86],ir:[6,28,65,118,334,335,342],iron:[209,217],irq:[28,53,128],irq_27:20,irq_mod:28,irq_pin:[28,53],irregular:206,irrevers:167,irrig:235,irtu:[381,382],irur:159,is_comment_:376,is_default:28,is_don:333,is_drag:159,is_e_:376,is_en:28,is_function_:376,is_input:28,is_instantiated_:376,is_ok:28,is_short:376,is_sign:[4,28],is_tl:28,is_udp:28,is_weak:376,isbigend:28,isclos:53,isdecod:28,isdelet:28,isdon:28,isdst:376,isend:28,isequ:28,isexist:345,isfix:28,isfloat:28,isipv6:28,isn:[159,375],isnum:376,iso14443_a:70,iso:[286,376],isol:[218,235,322,328,349,357],isp:[240,245,250,290,297],isreadi:[28,113],isrun:376,issign:28,issu:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,114,115,116,117,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,159,247,263,316,345,364,376],issue_xxx:345,istailcal:376,istl:31,istr_ctr:252,istr_dir:252,istr_ep_id:252,isvararg:376,isyield:165,item:[28,54,71,89,159,205,261,263,282,309,360,376,384,395,398,401,404],iter:[28,265,321,334,342,375,376],its:[0,1,2,3,4,6,7,8,9,10,12,13,15,16,17,18,19,20,22,23,24,25,26,27,29,30,31,32,33,34,35,37,38,44,57,65,80,85,86,87,92,93,96,98,101,102,103,105,106,111,112,113,115,116,117,124,125,127,128,129,130,131,133,159,193,194,195,235,251,263,272,302,328,349,350,369,374,375,376,378],itself:[35,53,120,159,217,263,264,274,304,315,316,344,346,348,355,357,360,374,375,376],itvl_max:28,itvl_min:28,iv:28,j16:314,j:[162,165,375],januari:159,japanes:159,java:350,jedec:[188,189,190],jeremi:169,jlink:252,job:[235,376],join:[341,352,375,376],joint:[58,257],jointli:309,joystick:366,jpeg:[3,35,240,279],jpg:[3,6,35],json:[6,12,14,17,24,28,29,38,57,67,92,94,97,106,112,117,118,120,126,130,131,159,163,186,207,209,210,265,293,309,332,346,347,351],jt808:265,jtag:[250,286,290],jtdo:252,jtrst:[250,290],jubj62lnbb:31,judg:[15,53,67,113,218,250,265,266,290],judgment:[66,117,206,265,274,327],juli:[17,56,96,131,159],jump:[159,360,376],june:[159,247],junior:[211,245,298],just:[15,30,71,85,96,108,120,133,159,169,198,204,207,209,210,217,247,265,282,289,290,301,302,311,312,317,327,331,345,375,376],k:[13,17,62,104,131,169,375,376],kb:[12,159,188,189,190],kb_creat:159,kb_event_cb:159,kb_inc:34,kcu:235,keep:[5,101,113,117,159,186,204,209,218,311,312,369,375,376],keep_cnt:28,keep_idl:28,keep_interv:28,keepal:[28,54],keepemtri:28,kei:[10,18,23,28,53,54,56,58,93,101,113,114,118,120,131,135,160,174,204,205,207,221,235,262,263,264,265,269,284,288,289,290,300,353,355,366,370,373,375,376,378,380,404],keil:[214,215,245,246,250,290,298,313],keil_v5:313,keilbuild:313,kept:[105,376],kere:159,kern:159,kernel:[215,247,279,376],key_b:70,key_cb:53,key_cod:78,key_down:159,key_ent:159,key_in:28,key_left:159,key_out:28,key_right:159,key_up:159,keyboard0:[34,235],keyboard1:235,keyboard2:235,keyboard3:235,keyboard4:[34,235],keyboard5:235,keyboard6:235,keyboard7:235,keyboard8:235,keyboard:[28,87,118,127,135,160,279,290,293],keyboard_:159,keyboard_cr:159,keyboard_def_event_cb:159,keyboard_mode_num:159,keyboard_mode_text_low:159,keyboard_mode_text_speci:159,keyboard_mode_text_upp:159,keyboard_part_bg:159,keyboard_part_btn:159,keyboard_set_cursor_manag:159,keyboard_set_textarea:159,keypad_encod:87,keystrok:159,keyword:[159,300,376],khz:235,kib:315,kicad7:247,kicad:[218,247,264,389],kick:93,kill:366,kind:[0,66,113,199,200,201,202,209,217,320,376,378],kindli:247,km:38,knob:[135,160],knock:[127,308],knot:38,know:[122,167,209,217,302,317,374,375,376,377],knowledg:[142,205,321,334,335,342,346,348,357,377],known:[218,244,297,375,376,378],korean:159,kp:78,kt6368a:96,kuf3nt:31,kv:[28,53,118,291],kv_clr:[28,169],kv_count:[13,17],kv_del:[28,169],kv_get:[17,28,169],kv_iter:28,kv_next:13,kv_set:[28,169],kv_stat:28,kvdb:169,kvdb_init:[17,28,169],kword:376,l1:[159,376],l3g4200d:53,l3g4200d_data:55,l6985e:[214,290],l:[29,99,133,159,218,301,302,320,322,327,332,333,345,375,376],l_alloc:328,l_font:324,l_gpio_handl:327,l_module_funct:345,l_mylib_abc:302,l_rtos_recv:322,l_xxxx_block:[302,333],l_xxxx_cb:302,la:376,label1:159,label2:[87,159],label:[87,135,160,209,217,281,376],label_align_cent:159,label_align_left:159,label_align_let:159,label_align_right:159,label_cnt:159,label_cr:[87,159,209,217],label_demo:159,label_label:159,label_long_:159,label_long_break:159,label_long_crop:159,label_long_dot:159,label_long_expand:159,label_long_mode_break:159,label_long_srol:159,label_long_sroll_circ:159,label_long_txt_hint:159,label_part_main:159,label_set_align:159,label_set_array_text:159,label_set_long_mod:159,label_set_recolor:159,label_set_static_text:159,label_set_text:[87,159,209,217],label_set_text_fmt:159,labor:159,labori:159,laborum:159,lac:92,lack:245,ladder:159,lamp:[162,182,183,184,209,217,291],languag:[90,125,159,165,207,209,268,289,290,301,328,350,352,366,369,373,374,375,392,404],language_:376,larg:[4,115,159,162,208,209,211,215,217,218,222,228,244,245,247,265,269,282,290,298,315,317,352,357,366,369,375,376],larger:[4,11,90,92,159,188,189,190,254,364,375,376],largest:[3,376],laser:53,last:[3,10,15,18,56,92,93,101,113,130,133,159,170,171,172,188,189,190,193,194,195,209,217,218,252,263,265,266,337,343,375,376,378,379,382],lastlinedefin:376,lastreson:[28,265],lat:[38,56,57],latch:53,later:[30,113,116,159,209,217,247,266,269,302,336,375,376,379],latest:[1,131,159,169,188,189,190,204,209,210,211,217,222,228,245,250,266,290,299,317],latitud:[38,56,57],latter:[0,159,209,217,300,323,376],lau:265,launch:[93,130,257,270],lauxlib:376,layer:[1,15,38,58,72,77,87,93,94,104,107,113,124,130,159,169,204,209,218,232,235,240,247,266,269,301,302,315,320,322,324,327,332,334,335,342,376,379],layer_si:28,layer_top:28,layout:[135,160,193,194,195,213,266,269,274,346,347,353,366,371,376],layout_:159,layout_cent:159,layout_column_left:159,layout_column_mid:159,layout_column_right:159,layout_grid:159,layout_off:159,layout_pretti:159,layout_pretty_bottom:159,layout_pretty_mid:159,layout_pretty_top:159,layout_row_bottom:159,layout_row_mid:159,layout_row_top:159,lb:57,lbsloc2:53,lbsloc:[53,263,265],lbsyun:38,lc:376,lcc:279,lcd:[28,89,91,115,118,159,163,174,205,221,227,240,264,265,266,270,286,290,293,297,311,316,336,390,392,393,396,399,402],lcd_rst:269,lcdi:235,lcdseg:[28,118,227,279,293],lcoal:345,lcsloc:265,ld0:235,ld8s5j1l07:31,ld:315,ldata:325,ldexp:376,ldo:[218,225,234,247,290,297,369],ldo_ctl:269,le:376,lead:[159,166,217,263,269,366,375,376],leak:[20,265,320],learn:[159,205,209,217,247,317,352,353,364,371,374,375],least:[4,159,211,218,315,317,338,376],leav:[92,115,159,218,286,366,376],led1:[159,209,217],led2:159,led3:159,led:[20,24,53,66,71,78,135,160,162,182,183,184,209,210,211,217,231,247,262,263,264,284,288,290,298,307,308,323,328,380],led_creat:159,led_demo:159,led_off:159,led_on:159,led_part_main:159,led_set_bright:159,led_toggl:159,leda:[24,66,286],ledb:286,ledblinktim:66,ledpin:53,ledpinsetfunc:53,left:[2,9,26,28,35,49,53,67,87,89,91,92,113,124,128,133,159,204,207,209,210,245,252,310,353,355,357,360,364,366,369,370,375,376],left_fit_typ:159,leftmost:[133,159],legal:376,legend:290,legitim:23,len:[28,38,53,62,70,73,132,165,188,189,190,193,194,195,199,200,201,202,301,324,326,331,340,343,349,350],length:[3,6,11,13,15,17,19,20,23,25,26,28,29,54,62,70,71,73,87,90,93,94,98,99,102,107,108,109,110,113,115,117,119,125,127,128,131,135,160,165,188,189,190,209,217,265,281,324,327,331,332,336,339,340,343,345,350,351,375,378,385],less:[3,4,11,23,29,80,89,90,110,113,133,159,218,240,248,250,251,257,263,265,290,301,352,355,357,369,371,375,376],lesson:159,let:[159,162,163,209,217,232,327,336,350,351,352,369,375,376,377,378],letter:[6,71,159,323,345,375,376],level:[1,4,9,12,23,28,32,35,38,54,68,93,94,113,122,124,125,159,165,174,199,205,208,209,217,218,235,247,252,264,266,269,274,281,297,298,311,312,321,332,334,335,338,341,342,351,366],lever:366,lexer:376,lexic:165,lexin:[281,286,291],lf:[16,111,174,191,205,349,375],lfs2:107,lfs_mount:[188,189,190],lgc:[311,312,317],li:264,liansheng:261,lianshengd:[228,279,293],lib:[266,293,301,377],lib_xx:301,libcoap:[28,118,293],libcool:301,libemqtt:265,libfota:[53,265,266,271],libfota_cb:58,libfota_timeout:53,libgnss:[28,118,265,293],libgt:301,libluato:315,libnam:165,libnet:[53,121,266],librari:[0,1,2,3,4,5,6,7,10,11,12,13,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,32,34,35,36,37,38,44,57,65,72,77,80,85,86,89,90,92,93,99,100,101,102,103,105,106,108,111,112,113,116,117,118,127,128,130,131,132,134,159,165,166,167,168,169,170,171,172,175,176,177,178,179,181,182,183,184,186,187,188,189,190,192,193,194,195,197,198,199,200,201,202,206,209,214,217,230,245,251,259,265,266,269,270,274,290,298,299,303,309,315,316,324,328,331,332,342,344,345,346,348,350,352,374,377],library_provid:376,libsdl2:318,licens:376,lichuang:369,life:[162,349],lifftef:349,lift:[95,265],light:[39,53,66,101,159,162,174,185,204,205,207,211,221,226,246,247,262,263,264,269,281,286,290,297,298,307,308,309,353],light_color:28,lightweight:[159,375,376],like:[123,133,159,204,209,211,217,247,282,290,298,308,357,369,375,376],limit:[4,96,110,125,127,132,133,159,209,217,235,244,247,252,265,266,270,271,291,315,331,346,347,363,369,371,375,376],line1:159,line:[17,28,29,35,72,77,78,84,97,104,120,124,133,135,160,165,175,176,192,193,194,195,199,200,201,202,205,209,211,217,218,235,247,252,263,282,289,291,299,315,322,323,331,333,345,346,348,352,353,358,360,366,369,371,372,375,377,378,379],line_color:159,line_cr:159,line_demo:159,line_num:159,line_part_main:159,line_point:159,line_ref:376,line_set_auto_s:159,line_set_point:159,line_set_y_invert:159,linear:87,linedefin:376,linemet:159,linemeter_:159,linemeter_cr:159,linemeter_part_main:159,linemeter_set_rang:159,linemeter_set_scal:159,linemeter_set_valu:159,linetyp:159,link:[0,1,2,3,4,6,7,8,9,10,12,13,15,16,17,18,19,20,22,23,24,25,26,27,29,30,31,32,33,34,35,37,38,44,57,80,85,86,87,92,93,96,98,99,101,102,103,105,106,111,112,113,115,116,117,119,124,125,127,128,129,130,131,133,207,211,218,226,244,254,255,268,284,288,289,290,292,311,312,315,317,321,334,342,346,348,376,385,390,392,395,398,401,404],link_pin:28,linkag:59,linker:376,linkup:28,linkv2:252,linkv3:252,linux:[135,164,209,217,315,323,349,353,358,369,371,372,376],lion:162,lis2dh12:53,lis2dh12_data:60,list1:159,list:[6,18,23,28,29,53,96,120,135,160,165,175,209,211,217,245,250,252,290,298,300,307,308,309,310,320,343,345,353,371,375,378],list_add_btn:159,list_btn:159,list_clean:159,list_creat:159,list_demo:159,list_down:159,list_focu:159,list_get_btn_img:159,list_get_btn_index:159,list_get_btn_label:159,list_get_btn_text:159,list_of_valu:159,list_part_bg:159,list_part_edge_flash:159,list_part_scrl:159,list_part_scrlbar:159,list_part_scrollbar:159,list_remov:159,list_set_anim_tim:159,list_set_btn_select:159,list_set_edge_flash:159,list_set_layout:159,list_set_scroll_propag:159,list_set_scrollbar_mod:159,list_up:159,listchr:28,listen:[24,28,53,360],listsvr:28,lit:[182,183,184,357],liter:376,literalstr:376,lithium:235,littl:[99,113,115,125,127,159,182,183,184,301,346,348,376],littlef:[16,209,244,349],littlevgl:159,live:[113,376],ll:[162,163,209,214,217,290],ll_apb1_grp1_enableclock:211,ll_apb1_grp1_periph_pwr:211,ll_apb1_grp2_enableclock:211,ll_apb1_grp2_periph_syscfg:211,ll_gpio_mode_output:211,ll_gpio_pin_0:211,ll_gpio_setpinmod:211,ll_gpio_togglepin:211,ll_init1mstick:211,ll_iop_grp1_enableclock:211,ll_iop_grp1_periph_gpiob:211,ll_mdelai:211,ll_rcc_apb1_div_1:211,ll_rcc_getsysclksourc:211,ll_rcc_hsi_en:211,ll_rcc_hsi_isreadi:211,ll_rcc_setahbprescal:211,ll_rcc_setapb1prescal:211,ll_rcc_setsysclksourc:211,ll_rcc_sys_clksource_hsisi:211,ll_rcc_sys_clksource_status_hsisi:211,ll_rcc_sysclk_div_1:211,ll_setsystemcoreclock:211,llcc68:[85,86],llogd:301,llvm:[318,319],lm75:53,lm75_data:[53,73],lm75a:53,lm75b:53,lmathlib:320,lmeter:[135,160],lmeter_demo:159,lng:[38,56,57],lnk:315,lo:375,load:[14,28,87,107,159,165,207,218,221,226,234,235,250,265,284,289,290,300,311,312,324,328,357,375],loader:376,loader_:376,loadfil:[165,328],loadlib:165,loc:38,local:[1,2,4,6,10,11,12,13,15,17,18,19,23,25,26,27,29,30,31,35,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,55,56,57,58,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,81,82,83,87,89,90,92,93,96,97,98,99,101,102,103,105,106,107,108,109,110,111,113,115,116,117,119,124,125,128,130,131,132,133,159,162,163,165,167,168,170,171,172,179,186,187,188,189,190,192,193,194,195,197,199,200,201,202,209,217,265,266,272,299,300,301,302,308,318,319,322,324,325,327,328,330,331,332,333,339,340,341,345,349,350,377,378,379],local_nam:28,local_port:28,localip:28,localtim:376,locat:[9,14,29,38,53,57,65,84,88,89,91,110,115,124,133,159,188,189,190,204,299,301,311,312,327,328,376,377],lock:28,locstr:28,loctyp:56,lod:309,log:[0,1,2,5,6,7,9,10,11,12,13,14,15,16,17,19,22,23,24,25,26,28,29,35,37,38,39,40,41,43,44,45,46,47,48,49,51,52,55,56,57,58,60,61,63,64,65,66,67,69,71,74,75,76,78,79,82,83,85,86,87,88,90,91,92,93,94,96,97,98,99,101,102,103,105,106,107,109,110,111,112,113,115,117,118,119,120,123,124,125,126,128,130,131,163,165,166,167,168,169,170,171,172,174,175,177,178,179,181,186,187,188,189,190,192,193,194,195,197,198,199,200,201,202,205,210,218,221,231,242,252,264,265,266,269,272,279,281,286,290,299,301,302,303,308,316,318,319,323,331,332,333,377,378,379,380,382],log_br:344,log_debug:84,log_error:84,log_info:84,log_level:28,log_sil:84,log_warn:84,logarithm:[366,376],logger:366,logic:[15,28,65,107,118,125,165,208,265,266,300,302,322,327],login:[28,93],logo:[6,35,204,309],logstor:[28,118],longer:[10,56,93,104,130,159,208,209,244,261,265,345,376],longest:376,longitud:[38,56],longjmp:376,longlong:2,look:[15,24,89,113,159,162,163,182,184,193,194,195,200,201,202,204,209,217,301,311,312,317,320,336,350,351,352,357,375,376,377,378],lookup:376,loop:[28,30,118,119,166,174,199,205,209,210,217,252,265,322,327,330,355,376,377,378,379],loopback:[209,217],loopid:379,loosen:[159,369],lora2:[28,118,265],lora:[28,86,118,265],lora_devic:28,lora_init:85,lora_rx_don:[85,86],loraconfig:28,lorem:159,lose:[28,38,118,120,209,217,263],loss:[217,369],lost:[38,101,120,223,229,263,265],lot:[175,209,217,301,332,344,378,381],love:162,low:[20,23,25,65,89,100,101,113,116,159,162,176,208,209,210,211,218,235,240,247,251,252,257,263,265,274,279,281,286,291,297,321,328,334,337,339,340,342,352,353,355,357,371,376,378,382],low_irq:20,lower:[12,17,35,87,124,163,165,170,171,172,177,178,207,208,211,215,218,247,252,317,353,355,366,375],lowercas:[159,345,375,376],lowest:[91,101,159],lpmem:[290,329],lpt:247,lpuart:265,lqfp100:279,lqlq666lqlq946:19,lsat:274,lsb:[26,72,115,125,188,189,190,339,340],lsdir:[28,265,325],lse:211,lse_startup_timeout:211,lse_valu:211,lsi_valu:211,lsmount:28,lst:376,lt:376,ltd:159,lte:[66,92,270],ltepin:53,ltrim:28,lua:[5,11,13,14,17,29,30,38,56,66,71,84,87,90,97,99,104,107,115,119,121,133,159,165,168,175,176,187,188,189,190,198,204,206,209,217,218,223,229,244,254,261,263,265,266,270,271,299,301,302,306,309,311,312,315,317,318,319,321,323,327,332,334,335,342,344,346,347,348,349,352,366,377,378,379,381],lua_32bit:376,lua_:376,lua_absindex:165,lua_alloc:165,lua_api:345,lua_arith:165,lua_atpan:165,lua_cal:[165,333,345],lua_callk:165,lua_cfunct:165,lua_checkint:322,lua_checkstack:165,lua_clos:165,lua_compar:165,lua_concat:165,lua_copi:165,lua_cpath:376,lua_cpath_5_3:376,lua_createt:165,lua_debug:165,lua_dump:165,lua_errerr:376,lua_errfil:376,lua_errgcmm:376,lua_errmem:376,lua_error:165,lua_errrun:376,lua_errsyntax:376,lua_extraspac:376,lua_fil:328,lua_filehandl:376,lua_gc:165,lua_gccollect:376,lua_gccount:376,lua_gccountb:376,lua_gcisrun:376,lua_gcrestart:376,lua_gcsetpaus:376,lua_gcsetstepmul:376,lua_gcstep:376,lua_gcstop:376,lua_getallocf:165,lua_getctx:376,lua_getextraspac:165,lua_getfield:165,lua_getglob:[165,333,345],lua_gethook:165,lua_gethookcount:165,lua_gethookmask:165,lua_geti:165,lua_getinfo:165,lua_getloc:165,lua_getmetat:165,lua_getstack:165,lua_gett:[165,333],lua_gettop:165,lua_getupvalu:165,lua_getuservalu:165,lua_hook:165,lua_hookcal:376,lua_hookcount:376,lua_hooklin:376,lua_hookret:376,lua_hooktailcal:376,lua_ids:376,lua_init:376,lua_init_5_3:376,lua_insert:165,lua_int:376,lua_integ:165,lua_isboolean:165,lua_iscfunct:165,lua_isfunct:165,lua_isinteg:165,lua_islightuserdata:165,lua_isnil:165,lua_isnon:165,lua_isnoneornil:165,lua_isnumb:165,lua_isstr:165,lua_ist:165,lua_isthread:165,lua_isuserdata:165,lua_isyield:165,lua_kcontext:165,lua_kfunct:165,lua_len:165,lua_load:165,lua_maskcal:376,lua_maskcount:376,lua_masklin:376,lua_maskret:376,lua_maxinteg:376,lua_mininteg:376,lua_minstack:376,lua_multret:376,lua_newst:[165,328],lua_newt:165,lua_newthread:165,lua_newuserdata:165,lua_next:165,lua_noref:376,lua_numb:165,lua_numbertointeg:165,lua_ok:376,lua_opadd:376,lua_opband:376,lua_opbnot:376,lua_opbor:376,lua_opbxor:376,lua_opdiv:376,lua_opeq:376,lua_opidiv:376,lua_opl:376,lua_oplt:376,lua_opmod:376,lua_opmul:376,lua_oppow:376,lua_opshl:376,lua_opshr:376,lua_opsub:376,lua_opunm:376,lua_path:376,lua_path_5_3:376,lua_pcal:165,lua_pcallk:165,lua_pop:165,lua_pushboolean:[165,301],lua_pushcclosur:165,lua_pushcfunct:[165,301],lua_pushfstr:[165,301],lua_pushglobalt:165,lua_pushinteg:[165,302,327,333],lua_pushlightuserdata:[159,165],lua_pushliter:165,lua_pushlstr:165,lua_pushnil:[165,302],lua_pushnumb:165,lua_pushstr:[165,302,333,345],lua_pushthread:165,lua_pushunsign:376,lua_pushvalu:165,lua_pushvfstr:165,lua_rawequ:165,lua_rawget:165,lua_rawgeti:165,lua_rawgetp:165,lua_rawlen:165,lua_rawset:165,lua_rawseti:165,lua_rawsetp:165,lua_read:165,lua_real:376,lua_refnil:376,lua_regist:165,lua_registryindex:376,lua_remov:165,lua_replac:165,lua_resum:165,lua_ridx_glob:376,lua_ridx_mainthread:376,lua_rot:165,lua_setallocf:165,lua_setfield:165,lua_setglob:[165,301],lua_sethook:165,lua_seti:165,lua_setloc:165,lua_setmetat:165,lua_sett:165,lua_settop:165,lua_setupvalu:165,lua_setuservalu:165,lua_stat:[159,165,301,302,320,332,333,345],lua_statu:165,lua_stringtonumb:165,lua_sys_xxx:320,lua_tboolean:376,lua_tfunct:376,lua_tlightuserdata:376,lua_tnil:376,lua_tnon:376,lua_tnumb:376,lua_toboolean:165,lua_tocfunct:165,lua_tointeg:165,lua_tointegerx:165,lua_tolstr:165,lua_tonumb:165,lua_tonumberx:165,lua_topoint:165,lua_tostr:165,lua_tothread:165,lua_tounsign:376,lua_tounsignedx:376,lua_touserdata:165,lua_tstr:376,lua_ttabl:376,lua_tthread:376,lua_tuserdata:376,lua_typ:165,lua_typenam:165,lua_unsign:165,lua_upvalueid:165,lua_upvalueindex:165,lua_upvaluejoin:165,lua_use_apicheck:376,lua_valu:328,lua_vers:165,lua_writ:165,lua_writestr:328,lua_xmov:165,lua_yield:165,lua_yieldk:165,luac:[16,107,344,376],luaconf:376,luadb:[6,14,24,26,29,35,81,93,95,97,102,105,291,344,346,347,349],luadb_t:343,luahelp:207,luai_throw:376,lual:376,lual_:376,lual_add:376,lual_addchar:165,lual_addlstr:165,lual_adds:165,lual_addstr:165,lual_addvalu:165,lual_argcheck:165,lual_argerror:165,lual_buff:165,lual_buffers:376,lual_buffinit:165,lual_buffinits:165,lual_callmeta:165,lual_check:376,lual_checkani:165,lual_checkint:376,lual_checkinteg:[165,301],lual_checklong:376,lual_checklstr:[165,301],lual_checknumb:165,lual_checkopt:165,lual_checkstack:165,lual_checkstr:[159,165],lual_checktyp:165,lual_checkudata:165,lual_checkunsign:376,lual_checkvers:165,lual_checkxxx:320,lual_dofil:165,lual_dostr:165,lual_error:165,lual_execresult:165,lual_fileresult:165,lual_getmetafield:165,lual_getmetat:165,lual_getsubt:165,lual_gsub:165,lual_len:165,lual_loadbuff:165,lual_loadbufferx:165,lual_loadfil:165,lual_loadfilex:165,lual_loadstr:165,lual_newlib:165,lual_newlibt:165,lual_newmetat:165,lual_newst:165,lual_openlib:165,lual_optint:376,lual_optinteg:165,lual_optlong:376,lual_optlstr:165,lual_optnumb:165,lual_optstr:165,lual_optunsign:376,lual_prepbuff:165,lual_prepbuffs:165,lual_pushresult:165,lual_pushresults:165,lual_pushxxxx:320,lual_ref:165,lual_reg:165,lual_requiref:165,lual_setfunc:165,lual_setmetat:165,lual_stream:165,lual_testudata:165,lual_tolstr:165,lual_traceback:165,lual_typenam:165,lual_unref:165,lual_wher:165,lualib:376,luao:257,luaopen_:376,luaopen_a_:376,luaopen_a_b_c:376,luaopen_bas:376,luaopen_coroutin:376,luaopen_debug:376,luaopen_io:376,luaopen_math:376,luaopen_packag:376,luaopen_str:376,luaopen_t:376,luaopen_utf8:376,luaopen_xxx:301,luaoto:317,luastat:[322,327],luat:[35,122,165,168,198,301,313,315,317,321,325,326,329,331,334,337,342],luat_:345,luat_bas:[159,301],luat_base_xxx:301,luat_cbcwait:302,luat_cbcwait_noarg:302,luat_conf_bsp:[159,291,301,311,312,317],luat_custom_init:301,luat_custom_sayhi:301,luat_demo_xxx:320,luat_fil:325,luat_font:324,luat_font_data:336,luat_font_data_t:336,luat_font_get:324,luat_font_t:324,luat_fs_fclos:325,luat_fs_fopen:[265,325,328],luat_fs_fseek:325,luat_fs_ftel:325,luat_fs_getc:325,luat_gpio_callback:327,luat_gpio_clos:337,luat_gpio_default:269,luat_gpio_fal:337,luat_gpio_get:337,luat_gpio_high:337,luat_gpio_input:337,luat_gpio_input_pulldown:337,luat_gpio_input_pullup:337,luat_gpio_low:337,luat_gpio_output:337,luat_gpio_output_od:337,luat_gpio_ris:337,luat_gpio_rising_fal:337,luat_gpio_rtt:327,luat_gpio_set:337,luat_gpio_setup:[320,328,337],luat_gpio_t:[320,327,337],luat_has_custom_lib_init:301,luat_heap_alloc:[326,328,345],luat_heap_calloc:326,luat_heap_fre:[302,326],luat_heap_getfre:326,luat_heap_init:326,luat_heap_mallac:320,luat_heap_malloc:[302,326,328],luat_heap_realloc:326,luat_lib_:35,luat_lib_fonts_h:159,luat_lib_gpio:327,luat_lib_sys_run:320,luat_lib_xxx:[301,320],luat_log:301,luat_log_tag:301,luat_lv_font_get:159,luat_lvgl_font:159,luat_malloc:301,luat_malloc_heap_s:326,luat_msg_hanld:327,luat_msgbu:315,luat_msgbus_data:[322,327],luat_msgbus_frees:327,luat_msgbus_get:[322,327],luat_msgbus_init:327,luat_msgbus_itemcount:327,luat_msgbus_put:[302,327],luat_os_get_tim:328,luat_pm_mod:329,luat_pushcwait:302,luat_pushcwait_error:302,luat_spi_clos:339,luat_spi_recv:339,luat_spi_send:339,luat_spi_setup:339,luat_spi_t:339,luat_spi_transf:339,luat_struct_map:332,luat_timer_maxid:330,luat_timer_start:330,luat_timer_stop:330,luat_timer_t:[302,330],luat_uart_clos:340,luat_uart_read:340,luat_uart_setup:[265,340],luat_uart_t:340,luat_uart_writ:340,luat_use_adc:345,luat_websocket_p:265,luat_wlan_ap_get_info:341,luat_wlan_ap_get_stainfo:341,luat_wlan_ap_is_act:341,luat_wlan_ap_stop:341,luat_wlan_connect:341,luat_wlan_evt_ap_associ:341,luat_wlan_evt_ap_disassoci:341,luat_wlan_evt_ap_start:341,luat_wlan_evt_ap_stop:341,luat_wlan_evt_readi:341,luat_wlan_evt_scan_don:341,luat_wlan_evt_scan_report:341,luat_wlan_evt_sta_connect:341,luat_wlan_evt_sta_connected_fail:341,luat_wlan_evt_sta_disconnect:341,luat_wlan_get_apnet:341,luat_wlan_get_info:341,luat_wlan_get_powersav:341,luat_wlan_get_rssi:341,luat_wlan_get_stanet:341,luat_wlan_info_t:341,luat_wlan_is_readi:341,luat_wlan_net_t:341,luat_wlan_register_event_handl:341,luat_wlan_scan_with_info:341,luat_wlan_security_open:341,luat_wlan_security_wep_psk:341,luat_wlan_security_wep_shar:341,luat_wlan_security_wpa2_aes_psk:341,luat_wlan_security_wpa2_mixed_psk:341,luat_wlan_security_wpa2_tkip_psk:341,luat_wlan_security_wpa_aes_psk:341,luat_wlan_security_wpa_tkip_psk:341,luat_wlan_security_wps_open:341,luat_wlan_security_wps_secur:341,luat_wlan_set_apnet:341,luat_wlan_set_powersav:341,luat_wlan_set_stanet:341,luat_wlan_start_ap:341,luat_wlan_unregister_event_handl:341,luat_xxx:320,luat_xxx_freerto:320,luat_xxx_rtt:320,luatask:[165,206,209,366,378],luatcommun:[213,225,233,235,246,249,255,264,294,295,297,316],luatgpiopin:328,luatgpiopul:328,luatid:[281,286,344,349,381],luato:[5,9,10,29,35,65,72,77,87,93,110,113,120,135,160,161,163,164,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,198,199,200,201,202,203,204,205,207,208,210,211,215,217,218,220,222,223,225,228,229,231,235,236,242,243,245,254,257,260,262,263,264,266,268,271,272,282,285,289,290,291,292,299,301,302,308,310,311,312,313,314,315,316,317,318,319,321,334,342,343,345,346,347,348,350,351,352,374,379,381,382,383,390,391,392,393,396,399,404],luatool:[58,104,204,209,218,232,266,271,274,281,286,291,315,317,323,344,349,351,381,382],luatos_0022eecc2399:131,luatos_:[107,131],luatos_esp32:351,luatos_root:317,luatos_vers:107,luavm:[1,10,90,107,299,318,319],luiz:376,lure:357,lux:[75,79],lux_dat:75,luxuri:286,lv:159,lv_anim_path_t:87,lv_at:159,lv_conf:159,lv_draw_mask_fade_param_t:87,lv_draw_mask_line_param_t:87,lv_draw_mask_radius_param_t:87,lv_font:159,lv_font_:159,lv_font_conv:159,lv_font_declar:159,lv_font_dejavu_16_persian_hebrew:159,lv_font_montserrat_10:159,lv_font_montserrat_12:159,lv_font_montserrat_12_subpx:159,lv_font_montserrat_14:159,lv_font_montserrat_16:159,lv_font_montserrat_18:159,lv_font_montserrat_20:159,lv_font_montserrat_22:159,lv_font_montserrat_24:159,lv_font_montserrat_26:159,lv_font_montserrat_28:159,lv_font_montserrat_28_compress:159,lv_font_montserrat_30:159,lv_font_montserrat_32:159,lv_font_montserrat_34:159,lv_font_montserrat_36:159,lv_font_montserrat_38:159,lv_font_montserrat_40:159,lv_font_montserrat_42:159,lv_font_montserrat_44:159,lv_font_montserrat_46:159,lv_font_montserrat_48:159,lv_font_montserrat_8:159,lv_font_opposans_m_10:159,lv_font_opposans_m_12:159,lv_font_opposans_m_14:159,lv_font_opposans_m_16:159,lv_font_opposans_m_18:159,lv_font_opposans_m_20:159,lv_font_opposans_m_22:159,lv_font_opposans_m_8:159,lv_font_simsun_16_cjk:159,lv_font_simsun_48:159,lv_font_t:159,lv_font_unscii_16:159,lv_font_unscii_8:159,lv_obj_t:87,lv_scr_load_anim:87,lv_scr_load_anim_t:87,lvgl:[14,28,118,135,208,221,265,266,270,290,293,311,336,402],lvglfonttool:159,lvl:376,lwip:[113,265,328],lwip_ap:113,lwip_eth:113,lwip_gp:[113,120],lwip_sta:113,lx7:286,ly:357,ly_key_ent:159,m0:[208,215,296,297],m1:70,m33:[208,240,247,279],m3:[252,279,280],m4f:[279,280],m52:274,m85:247,m:[28,46,97,159,162,165,168,218,274,375],m_cannot:376,ma:[235,369,372,373],mac:[28,71,254,341,353,358,369,371,372,376],machin:[28,94,107,118,170,171,172,204,209,214,221,226,232,234,243,265,268,269,284,289,290,291,301,307,311,312,315,317,320,322,325,326,327,332,344,346,348,349,357,369,375,376],maco:323,macro:[214,290,301,345,376],made:[92,105,159,163,209,217,265,301,345,357,376,378],mag:43,magic:[211,245,247,298,336,343,376],magna:159,magnet:38,magnetic_track_degre:38,magnif:[91,376],magnitud:375,mai:[1,6,25,30,89,92,96,99,101,109,119,131,133,159,207,210,215,217,218,235,247,252,265,308,320,325,327,330,345,355,357,360,363,366,369,370,373,375,376],mailbox:[252,265],main:[5,13,16,17,25,56,65,71,84,89,119,121,159,174,176,180,186,204,205,206,208,209,210,214,221,226,234,235,245,250,251,263,264,265,266,270,271,281,284,290,291,298,299,300,302,309,311,312,317,318,319,329,339,349,352,376,377,378,379,391],main_ct:269,main_dcd:269,main_ri:[262,269],main_rx:269,main_rxd:269,main_tx:269,mainli:[1,10,105,193,194,195,211,245,266,289,298,320,323,369,376,381,388],mainstream:[250,251,257],maintain:[20,101,159,208,235,252,269,376],mainten:247,major:[28,107,159,353,371],major_tick_len:159,make:[34,87,92,96,101,159,175,182,183,184,205,208,209,217,232,247,299,308,318,324,344,346,348,360,375,376,378],makefil:313,malici:376,mall:[215,222,228,251,297,353,369,381],mall_id:381,mall_pag:381,malloc:[328,376],man:381,manag:[28,118,159,165,204,209,210,232,250,271,289,290,303,304,308,309,321,334,335,337,339,340,342,357,360,378,382],mandarin:274,mandatori:[90,93],mani:[4,22,29,30,109,113,117,125,159,209,217,218,235,247,252,269,274,290,302,303,316,320,324,336,341,346,348,349,352,375,376,377],manipul:[28,118,159,376],manner:[2,355,376],manual:[1,10,89,115,135,160,165,166,170,171,172,174,183,196,200,201,202,204,205,209,214,215,220,221,225,230,233,250,251,252,255,263,264,265,269,279,281,286,290,296,297,311,312,317,333,340,345,351,352,353,357,366,375,378,379],manual_v1:255,manufactur:[174,188,189,190,196,205,209,217,218,235,247,328,344,360],maopi:109,map0:336,map1:336,map:[8,24,28,38,114,118,120,159,194,209,221,226,243,260,264,265,269,290,300,336,357,376],map_typ:336,march:[131,159],margin:159,mark:[99,133,159,252,264,274,300,344,375,376,379],markdown:159,marker:[99,376],market:[250,251,252,349],mask:[28,34,36,53,62,113,128,131,135,160,165,323,341],mask_p:159,mask_param:159,maskabl:252,mass:[56,58,218,268,290,375],massiv:366,master:[26,35,65,115,170,171,172,192,209,211,217,218,235,240,250,266,281,289,290,297,309,311,312,315,317,339,344,345,349,363,371,374,383,393,396,399],match:[67,165,166,199,200,201,202,209,217,290,315,355,360,380],materi:[263,292],material_dark:87,material_light:87,material_no_focu:87,material_no_transit:87,math:[165,375],mathemat:[165,375],matic:159,matrix:[28,91,118,120,135,160,168,324],matter:[207,375,376],max30102:[28,118],max:[13,26,28,159,165,211,215,247,375],max_char_num:159,max_h:159,max_temp:28,max_tick:28,maxbuff:340,maxim:[6,65],maximum:[10,11,15,20,29,30,58,73,87,91,92,96,105,107,122,125,127,128,135,160,177,178,179,182,193,194,195,208,209,235,257,265,274,290,296,297,339,353,358,364,366,371,372,375,376,378,379],maxinteg:165,maxout:28,maxsiz:28,mbedtl:113,mbox1:159,mbox:159,mbox_set_anim_tim:159,mbox_stop_auto_clos:159,mbp:[240,291],mc68hcxx:[193,194,195],mcc:[28,92],mclk:28,mco:[250,251,290],mco_plldiv:248,mcp25125:266,mcp2515:53,mcp2515_c:62,mcp2515_int:62,mcp2515_spi:62,mcpwm:286,mcu:[10,28,30,62,71,92,97,118,125,128,134,162,174,177,178,179,181,198,205,209,210,214,218,221,222,228,235,247,252,265,269,291,297,325,329,344,345,352],mcu_font:159,mcuisp:252,md5:[28,31,167,206,279,343],md5_stream:6,md:[28,289,309,315],md_file:28,md_sha1:105,md_sha256:105,mdeb:247,mdelai:[28,198],mdh201808109:[220,225],mdk5:[211,245,298],mdk:[214,215,246,247,290],me:[204,209,403],meal:274,mean:[1,12,15,17,30,35,56,66,89,92,113,115,116,121,125,133,159,167,170,171,172,211,252,263,269,290,310,323,346,347,351,360,363,369,373,375,376,378],meaning:[56,100,113,131,330,376],meaningless:[56,92,96,269],meanwhil:323,measur:[0,28,35,88,118,166,173,174,205,209,217,218,263,324,330,353,355,357,358,360,364,371,372,376],measured_pow:28,mechan:[17,92,107,121,122,130,165,198,209,217,252,266,322,325,326,327,329,330,331,337,369,376,377],medium:[182,183,184],meet:[209,217,218,247,257,266,269,291,303,336,352,353,363,369,371,375,376,378],megabyt:290,melon:159,mem:[107,326],member:376,memcmp:133,memcpi:133,meminfo:[28,168,299,318,319],memori:[4,8,11,14,28,29,35,77,78,87,90,107,113,115,118,124,134,159,188,189,190,208,209,217,244,247,252,254,261,265,270,297,299,301,318,319,320,321,327,329,331,334,336,342,344,349,352,366,375,376],memset:133,mention:[209,217,252,327,366,375,376,378],menu:[104,207,211,245,266,298,316,317],menuconfig:282,merg:[8,112,133,135,160,265,352],messag:[1,25,33,54,58,62,92,93,96,100,107,112,113,115,119,121,122,130,131,135,160,165,174,176,198,205,208,209,217,247,250,265,290,321,322,328,330,333,334,342,345,346,348,366,377,378,379],messagequeu:378,met:[67,323,375,376],meta:[93,112,165,309,333,375],metabl:376,metadata:[28,93,112,118],metat:165,meter:[38,43,135,160,353,357,358,369,371,372,375],method:[1,3,12,18,19,24,26,28,66,87,93,104,109,115,119,122,125,130,159,162,165,167,169,198,200,201,202,209,211,217,235,245,246,247,250,251,263,265,290,298,301,302,310,315,316,321,324,326,327,328,333,334,340,342,345,346,347,351,355,357,375,377,378,379],method_:376,metr:38,mg:64,mhz:[28,159,208,235],micro:[294,295,297],microchip:296,microcomput:377,microcontrol:[65,159,235,252,378],microprocessor:[182,183,184],micropython:159,microsoft:[207,245,251,281,286,298,323,366],middl:[9,35,124,159,207,246,274,301,373,376],middlewar:[334,335,342],midlin:159,might:[159,376],migrat:[248,252,376],mile:38,millisecond:[20,56,57,58,66,71,92,94,101,107,119,129,159,170,171,172,274,330,379],millivolt:[9,101],min:[38,67,97,106,159,165,186,209,375],min_temp:28,mingw32:299,mingw64:299,mini:252,miniatur:257,minim:[159,366],minimum:[11,30,91,92,94,96,124,159,209,211,221,235,265,290,317,352,366,376],mininteg:165,miniz:[11,28,118,134,265],minor:28,minor_tick_len:159,minu:[28,29,56,159,376],minut:[10,23,38,56,67,71,96,101,131,181,186,206,208,209,266,284,290,330,378],minute_offset:38,mipp:353,mirror:[135,160],misalign:252,miscellan:375,miso:[28,65,209,217,269],misrecogn:[355,360,369,370,373],miss:[207,208,245,315,376],mission:59,mistak:125,mistakenli:369,mix:[92,110,131,159,240,376],mkd:18,mkdir:28,mkf:28,mlx90614:[25,53,265],mlx90614_ambient:63,mlx90640:[28,118],mmm:38,mnc:[28,92],mo:[159,369],mobil:[28,31,54,57,66,112,113,118,159,208,254,262,263,265,266,270,289,352,353,355,360,381],mock:308,mod:376,mod_typ:166,modbu:[6,99,321,334,342],modbus_slav:332,modbus_t:332,mode2:28,mode:[1,3,9,22,23,28,30,31,32,33,35,42,53,63,65,66,72,84,87,90,92,93,107,108,109,113,125,135,160,162,165,168,181,188,189,190,193,194,195,204,206,208,209,211,217,218,223,229,235,240,246,250,251,257,263,264,265,266,269,270,272,281,286,290,297,316,323,329,336,337,339,341,351,353,357,371,373,378],mode_ble_cli:96,mode_i2:26,mode_key_input:78,mode_led_output:78,mode_lsb:26,mode_msb:26,mode_norm:159,mode_rx:73,mode_tx:73,model:[21,25,28,65,85,86,87,101,107,109,115,135,160,193,194,195,204,209,211,217,250,251,252,266,281,286,290,317,352,363,369,391,402],model_1in02d:9,model_1in54:[9,391],model_1in54_v2:9,model_1in54_v3:9,model_1in54b:9,model_1in54b_v2:9,model_1in54c:9,model_1in54r:9,model_2in13:9,model_2in13_v2:9,model_2in13bc:9,model_2in13d:9,model_2in54b_v3:9,model_2in66:9,model_2in66b:9,model_2in7:9,model_2in7b:9,model_2in9:9,model_2in9_v2:9,model_2in9b_v3:9,model_2in9bc:9,model_2in9d:9,model_3in7:9,model_4:9,model_4in2:9,model_4in2b_v2:9,model_4in2bc:9,model_5in65f:9,model_5in83:9,model_5in83_v2:9,model_5in83b_v2:9,model_5in83bc:9,model_7in5:9,model_7in5_hd:9,model_7in5_v2:9,model_7in5b_hd:9,model_7in5b_v2:9,model_7in5bc:9,moder:375,modev:28,modf:165,modif:[159,252,265,328,373,376],modifi:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,114,115,116,117,119,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,160,174,175,204,205,214,250,265,269,290,300,301,306,310,315,317,325,345,346,348,351,369,371,375,376],modnam:165,modul:[12,22,28,29,36,53,65,66,72,92,101,104,106,113,118,120,121,131,159,165,167,181,182,183,184,199,200,201,202,204,205,209,215,217,218,220,221,225,226,234,240,242,243,248,250,256,260,264,265,267,268,269,271,280,282,289,290,296,315,323,325,327,328,342,345,349,352,353,371,378,379,395,401],moduledemo:[211,248],modulo_264_:376,modulu:376,mold:[9,124],mollit:159,moment:[91,376],mon:[67,97,106,186,209,265],monetari:376,monitor:[208,210,382],monkei:375,mono:87,monochrom:[9,159],monospac:[159,207],month:[38,56,67,135,160,186,209,375,376],month_names_arrai:159,montserrat:159,montserrat_14:159,more:[0,1,4,5,10,30,37,38,71,89,90,92,96,113,159,170,171,172,177,178,179,204,208,209,215,217,218,247,251,252,263,265,266,267,300,302,315,316,323,328,341,345,349,351,352,353,355,360,363,364,366,369,371,375,376,378],more_a_:376,more_data:1,morn:375,mosi:[28,209,217],most:[5,23,24,101,113,125,129,134,159,186,198,199,200,201,202,209,217,252,266,299,308,321,328,334,342,349,360,369,374,375,376,378],mostli:[113,159],mother:[210,211],motion:208,motiv:[321,334,342],moto6800:286,motor:290,motorola:[193,194,195],moun:[188,189,190],mount:[28,29,52,107,108,127,163,174,187,191,205,209,217,265,281,325,349,353],mount_flash:[188,189,190],mount_point:28,mous:[159,290,366],mouth:[247,360],move:[29,89,125,127,133,135,160,165,200,201,202,252,331,366,369,375],movement:[159,208],mp3:[4,265,270,274],mp4:163,mpram:208,mpu6050:53,mpu6500:53,mpu6xxx:53,mpu9250:[53,265],mpu:240,mqtt:[28,31,54,71,118,265,266,270,272,293],mqtt_client:93,mqttc:28,mr122:4,mr475:4,ms:[12,23,28,85,86,92,93,122,130,211,274,378],msb:[9,26,35,62,65,70,72,73,86,111,115,125,163,175,188,189,190,192,193,194,195,209,217,339,340,345],msc:247,msdbox:[135,160],msdbox_demo:159,msg:[1,28,65,121,130,301,302,321,327,334,342,376,378],msg_gpio:327,msg_timer:378,msgbox:159,msgbox_:159,msgbox_add_btn:159,msgbox_creat:159,msgbox_get_active_btn_text:159,msgbox_part_btn:159,msgbox_part_btn_bg:159,msgbox_part_main:159,msgbox_set_text:159,msgbu:[302,321,334,342],msgbuf_send:327,msgbus_clear:327,msgbus_current_s:327,msgbus_list:327,msgdata:[322,327],msgh:165,msgid:[28,107,327],msgtype:[322,327],msp:252,mspinit:252,msy:299,mtu:96,much:[11,22,113,159,209,217,263,266,328,355,369,375,376,378],muid:28,muldownload:271,multi:[9,28,65,87,104,118,120,159,206,208,215,235,257,290,333,345,353,358,371,372,376,378],multimedia:[26,28,118],multimet:[218,353],multipl:[0,1,2,26,35,91,92,93,96,98,101,108,124,133,159,209,210,223,229,235,251,252,257,265,268,269,274,290,291,297,300,329,336,344,345,349,350,366,376,377,378],multiplex:[20,89,209,235,248,251,252,263,264,265,268,279,281,290],multipli:[240,376],multitask:[291,302,380],multithread:378,multithreading_:376,music:87,must:[2,3,4,12,15,19,20,25,26,29,30,58,65,67,70,71,72,80,84,91,92,93,94,96,98,102,108,113,119,128,159,166,199,200,201,202,204,207,209,217,218,235,251,252,262,266,271,274,281,286,300,301,308,311,312,315,317,320,327,328,333,345,351,355,357,360,376,377,378],must_mark_it:376,mutat:[218,369],mute:[268,290],mutual:[321,334,342],mv:[0,166],mwsy:163,my:[94,131,159,209,217,353],my_img:159,my_ir_cb:65,my_map:159,myabc:300,myap:131,myapi:[266,301],myblib:302,myctx:302,myctx_t:302,mydevic:31,myfil:349,myflib:300,myfont:309,myfontd:159,myfunc:[300,309],myid:300,mykei:300,mykv:17,mylib:302,myself:[218,247],myserv:266,mytabl:17,mytim:28,n123:376,n1:[165,274,375],n2:[165,375],n60:159,n:[20,25,28,38,67,70,87,89,99,109,117,119,125,127,130,159,165,200,201,202,210,223,229,257,263,274,306,331,375,377,378],n_refer:376,na:235,nabc:117,name:[1,3,6,9,17,18,22,23,28,31,53,56,57,59,92,93,102,111,113,118,121,125,131,135,160,165,169,193,194,195,199,200,201,202,207,209,211,217,220,225,235,242,245,247,259,265,266,269,281,282,298,301,302,307,309,311,312,315,316,317,325,333,342,343,344,349,351,369,375,379,382],name_font:316,name_wil:376,namelist:376,namespac:309,namewhat:376,namework:376,nan:376,narg:376,narr:376,nation:[28,118,251,263,265],nativ:[29,131,209,217,299,319,325,352,376],natur:[159,375,376],navig:[135,160,301],nb:[4,28,118,244],nbio:94,nbiot:[28,118,279,352],nc:[235,281,291],ne:[28,118],nearbi:217,nearest:[159,376],nec:[32,53,338],necessari:[1,35,89,100,107,130,214,218,247,252,263,290,300,301,303,320,344,355,360,369,375,376],necessarili:[101,120,322,375,376],necir:53,need:[0,1,2,3,4,5,6,9,11,12,14,20,21,23,25,26,28,29,33,34,35,37,38,39,40,41,43,44,45,46,47,48,50,52,54,55,56,57,58,60,61,62,63,64,65,66,68,69,70,71,73,74,75,76,79,81,82,83,87,89,92,93,94,96,100,101,102,110,112,113,114,115,120,121,123,124,125,128,131,132,159,163,168,170,171,172,177,178,188,189,190,193,194,195,204,207,209,211,215,217,218,235,245,247,248,251,252,254,257,264,265,266,269,281,282,286,289,291,298,301,302,308,310,311,312,315,316,320,321,323,324,332,333,334,335,336,338,342,345,349,351,352,355,357,360,363,366,369,371,373,375,376,377,379,381],need_ipv6_dn:28,needl:[135,160,286],needle_color:159,needle_id:159,needle_num:159,neg:[35,38,77,78,89,159,255,345,355,360,369,370,373,375,376,378],neighbor:120,neither:376,nest:[297,332,376],net:[94,159,341,366],net_l:242,net_readi:119,net_status_ind:[378,379],netc:[37,53],netcom:270,netl:[53,269],netlab:113,netmask:[28,341],network:[23,28,31,53,56,57,59,71,80,93,94,101,118,120,128,131,132,167,208,254,262,263,265,266,268,269,270,289,290,315,321,327,330,334,341,342,376,382],network_check_period:28,network_ctrl:113,network_force_close_socket:265,never:[159,182,183,184,322,376],nevertheless:376,new_apn_nam:28,new_data:127,new_nam:28,new_netc:113,new_param:159,new_path:28,new_scr:87,new_valu:159,newcnt:252,newer:159,newindex:376,newli:376,newlin:[159,375,376],newnam:165,next:[12,13,28,30,113,132,159,165,207,209,217,245,252,265,266,289,323,355,357,370,374,375,377,378,403],next_id:28,nexti:350,nfc:208,nic:113,nice:159,nightli:210,nil:[0,1,3,4,5,6,9,10,11,12,13,14,15,17,18,19,20,22,23,24,25,26,27,29,33,35,37,38,39,42,44,45,56,57,58,62,65,66,67,70,71,73,80,84,86,87,88,90,91,92,93,94,96,97,98,101,102,103,104,105,106,107,108,109,110,111,112,113,115,116,119,120,121,122,123,124,125,126,127,128,130,133,159,169,206,209,217,302,341,345,376,377,378,379],nimbl:[28,118,293],nine:53,nisi:159,nline2:159,nline4:159,nmea:[28,118],nmi_handl:211,nmo:65,no_autoat:[214,290],no_error:132,no_n:376,no_readi:127,noclear:28,node:252,nodebug:71,nodej:159,nois:[38,92],nojtag:252,nomin:[96,358,369,372],non:[6,17,19,25,37,38,53,65,71,89,92,96,104,115,119,121,159,188,189,190,208,250,264,265,266,269,289,290,302,303,309,332,340,345,353,360,375,376],nondeterministic_parsing_flag:90,none:[0,1,2,4,5,6,9,11,12,13,15,17,18,19,22,24,26,27,29,30,32,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,52,54,55,56,58,59,60,61,62,63,64,65,66,67,69,70,72,73,74,75,76,77,78,79,80,82,83,84,85,86,87,88,89,91,92,93,94,96,97,98,101,102,104,106,107,108,109,111,112,113,114,117,119,120,121,124,125,126,127,128,129,130,131,132,133,159,168,200,201,202,251,269,315,324,338,340,345,351,376,378,379],nonsens:206,noop:18,nop:[28,109],nor:[101,272,376],nordi:120,norm:218,normal:[3,8,62,85,86,92,93,94,101,124,130,131,134,159,188,189,190,199,200,201,202,204,207,209,210,215,217,218,223,229,232,235,245,247,252,263,264,265,269,281,282,286,289,297,298,302,311,312,315,360,366,369,370,375,376,378,390,391],north:38,nostrud:159,notat:376,note:[0,1,3,9,10,11,12,17,20,25,26,28,29,35,39,40,41,43,45,46,47,48,50,52,54,55,56,58,60,61,62,63,64,66,67,68,69,70,71,73,74,75,76,79,81,82,83,89,92,96,97,101,102,104,105,106,112,113,115,119,121,124,127,131,132,133,159,166,170,171,172,199,211,217,222,224,225,226,228,231,232,235,252,256,263,266,268,269,270,271,274,281,286,290,293,298,301,302,308,311,312,315,316,317,322,323,331,332,345,346,348,350,351,353,355,366,375,376,378,391,402],noth:[107,302,326,353,376],notic:159,notif:[113,297],notifi:[93,96,159,247],novel:380,novemb:[159,209],now:[129,159,291,303,331,374,375,376,378],nparam:376,npm:159,npn:[188,189,190],nr:38,nrec:376,nresult:376,nrst:252,nsec:159,nsecond:159,nsize:[326,328,345,376],nstinput:28,nstonoff:28,nstr:252,nth:99,nthird:159,ntp1:113,ntp2:113,ntp:[113,263,270],ntp_error:113,ntp_updat:[113,263],nulla:159,num:[28,112,159,341,375],num_channel:[4,28],num_table_ax:[77,78],num_tick_mark:159,numa:350,numb:350,number:[0,1,2,4,6,7,9,10,12,13,16,17,18,20,22,24,25,26,27,28,29,30,31,32,33,35,36,38,39,40,41,43,44,45,47,48,49,50,52,54,55,56,57,58,61,62,63,64,65,66,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,91,93,95,96,99,100,101,103,105,107,109,111,112,113,115,116,117,120,121,124,125,127,128,130,133,135,160,168,169,174,175,176,180,204,205,209,217,220,225,227,235,242,252,259,265,266,268,269,271,279,281,286,290,301,315,320,323,330,331,336,338,339,341,343,344,345,350,351,353,355,360,369,370,373,376,377,378,379,390],number_:376,numbl:56,numer:[20,84,97,101,159,271,274,322,327,330,350,375,376],nup:376,nvic:297,nvm:[290,344],nvm_addr:344,nxp:67,nyou:159,o1:274,o2:5,o3:[5,280],o:[3,30,159,214,235,274,290,318,355,360,375,376],obj:[28,135,160,165],obj_add_styl:159,obj_align:[87,159,209,217],obj_align_origo:159,obj_clean:159,obj_creat:[87,159,209,217],obj_del:159,obj_get_height:159,obj_get_st:159,obj_get_width:159,obj_l:159,obj_part_main:159,obj_set_adv_hittest:159,obj_set_auto_realign:159,obj_set_click:159,obj_set_drag:159,obj_set_event_cb:[28,159],obj_set_height:159,obj_set_po:159,obj_set_s:159,obj_set_signal_cb:28,obj_set_style_local_bg_color:159,obj_set_style_local_text_font:159,obj_set_style_local_value_str:159,obj_set_width:159,obj_xxx:159,object:[25,33,35,54,63,67,86,87,91,111,115,119,125,127,133,135,160,165,188,189,190,200,201,202,209,217,327,346,348,375,378],object_:376,objects_:376,objmask:[135,160],objmask_add_mask:159,objmask_cr:159,objmask_demo:159,objmask_mask_t:159,objmask_part_bg:159,objmask_remove_mask:159,objmask_update_mask:159,observ:[125,166,209,210,217,218],obsolet:[28,92,118,376],obtain:[6,13,15,16,17,31,38,43,48,51,52,56,64,71,83,87,88,89,91,92,94,96,97,100,109,111,113,125,128,131,133,159,174,180,191,204,205,208,209,217,252,265,268,271,290,302,308,324,325,341,351,375,376,378,379],obvious:[162,375,378],occaecat:159,occas:[290,369],occasion:376,occup:[316,371],occupi:[14,113,115,218,263,281,286,349,376],occur:[1,113,218,252,357,369,376,378],occurr:376,octal:375,octob:[19,131,159],octuari:376,odd:[125,340,375],oe:72,of_ex_:376,of_intermitt:376,of_set_:376,of_step:376,of_templates_separ:376,off:[0,1,5,7,10,20,25,27,28,30,38,53,67,70,71,77,78,92,93,101,103,107,113,119,120,123,124,127,129,131,159,166,174,181,196,204,205,209,217,234,247,250,265,289,290,297,298,321,323,334,337,338,342,353,355,360,366,370,371,376,379],offend:159,offici:[5,72,77,89,159,204,205,207,209,217,244,247,270,292,299,315,357,376],officia:159,offlin:[159,250,274,290,315,317],offset:[19,28,35,38,109,135,160,165,218,235,291,325,331,344],often:[167,375,376],ohm:235,ok:[6,24,25,38,84,87,88,91,101,113,115,159,188,189,190,245,247,301,302,315,316,320,331,333,340,351,355,360,375,376],okai:159,ol:168,old:[10,19,85,89,96,133,159,209,217,265,376],old_path:28,oldnam:165,om:159,omit:[302,332,336,375],on_lin:[113,265],on_off:28,onboard:[208,209,217,257,281,286,390],onc:[10,20,32,71,96,98,101,102,120,129,159,209,210,252,263,330,375,376,377,378],onchip:110,onchip_fdb:[13,169],one:[0,2,15,26,65,71,72,87,112,113,120,125,127,133,159,162,166,188,189,190,193,194,195,197,199,200,201,202,204,209,214,217,218,244,247,250,257,263,264,265,269,274,279,282,286,290,300,301,308,310,322,343,345,355,357,369,375,376,378,379],one_and_zero:6,onenet:[28,53,84,146,265],oneself:247,onet:54,onff:28,onheap:28,onlevel:28,onli:[0,1,2,3,4,9,10,11,12,13,17,18,20,21,25,26,28,29,30,32,33,35,36,38,56,57,59,64,65,66,67,71,87,89,90,92,93,94,96,97,98,100,101,102,104,105,106,107,108,110,113,115,117,118,119,124,125,127,128,130,131,133,135,160,166,170,171,172,179,188,189,190,192,193,194,195,204,209,211,217,218,220,225,230,235,247,250,262,263,264,265,266,269,270,271,274,281,286,289,290,291,293,300,301,302,303,315,320,323,326,327,328,329,332,336,338,343,345,349,351,352,357,360,366,375,376,377,378,379,384,390],onlin:[159,209,266,311,312,317,389],only_references_to:376,onoff:[1,28],onto:[320,376],op:[369,376],opa_30:159,opa_cov:159,opa_transp:159,opac:159,opaqu:376,opcod:130,open:[10,12,20,23,26,28,29,38,42,53,65,67,70,85,86,89,92,93,101,104,108,113,130,135,160,163,165,166,182,183,184,188,189,190,204,207,208,209,210,211,217,218,232,235,248,250,265,266,270,271,281,286,289,290,292,297,301,311,312,315,317,337,339,340,341,345,349,353,357,360,366,369,373,374,375],openf:376,openluat:[10,35,38,56,58,104,204,211,213,222,225,228,233,235,244,245,246,249,255,263,264,266,270,274,294,295,297,301,309,310,311,312,314,315,316,317,349,381,383,393,396,399],openocd:[250,290],openssl:105,oper:[5,10,12,28,29,38,70,77,78,87,101,108,113,118,124,133,159,165,177,178,179,181,188,189,190,193,194,195,198,204,207,209,215,217,218,223,229,240,247,252,263,265,274,286,291,297,299,301,315,321,323,325,327,331,334,342,345,349,350,352,353,355,357,369,370,371,374,377,391],operand:376,operson:102,oppo12:14,oppo:159,oppo_8:14,oppo_bold_12:316,oppo_bold_8:14,opposan:159,opposans_m_10:[87,159],opposans_m_12:[87,159],opposans_m_14:159,opposans_m_16:159,opposans_m_18:159,opposans_m_20:159,opposans_m_22:159,opposans_m_8:159,opposansm8_chines:14,opposit:[113,125,375,376],opt:[28,165],optim:[90,92,265,320,352],option:[2,6,9,11,12,13,16,17,19,20,23,25,26,31,32,35,37,38,54,56,58,68,72,77,80,87,89,92,93,94,96,101,105,113,115,117,119,123,124,125,127,130,131,133,135,160,207,209,214,250,251,265,290,297,299,300,307,318,319,320,332,339,344,345,351,355,360,375,376,382],optional_a_:376,or_closed_:376,or_closure_:376,or_ful:376,or_numer:376,or_out:376,orang:159,order:[35,65,115,159,176,186,209,217,218,247,252,265,281,301,302,303,317,322,323,328,336,339,341,343,345,366,369,374,375,376,377,378,380],ordin:[133,360,366],ordinari:[94,101,159,218,269,302,369,376,390],org:[5,9,35,159,162,209,210,217,270,291,376],organ:[159,349,378],orient:[159,265,311,312,317,376],origin:[0,1,3,4,11,13,17,37,38,90,92,133,159,166,167,251,265,268,281,282,286,290,315,316,323,325,328,344,366,375,376],originstr:28,os:[5,28,29,67,106,113,118,120,130,165,168,186,209,299,318,319,328,330,375],osc:235,oscil:[89,186,209,211,220,221,225,235,252,290,297],oscilloscop:[125,218],osiz:[326,328,345,376],ota:[54,58,71,107,268,290],ota_port:53,ota_url:[53,71,266],ota_vers:71,otf:159,otg:[240,286],other:[1,10,12,15,21,38,53,59,65,71,89,90,92,93,96,101,103,104,107,121,125,127,159,186,188,189,190,193,194,195,208,209,210,211,215,217,218,220,225,235,243,245,246,247,250,254,259,263,265,269,281,286,289,290,291,297,298,300,302,303,315,317,320,325,328,332,338,341,343,344,345,350,351,353,355,360,369,370,373,375,376,377,378],otherwis:[1,3,4,6,7,9,10,11,12,13,14,16,17,19,20,21,22,24,25,29,33,35,36,42,54,57,67,71,86,87,88,89,90,91,92,93,94,95,96,97,98,101,105,106,108,109,110,111,112,113,115,116,119,121,124,126,127,129,130,131,132,159,166,199,200,201,202,207,209,215,217,231,252,263,264,265,301,302,311,355,357,369,375,376,377,379],otp:[6,28,118,279,293],otpdata:98,our:[159,162,209,232,245,298,311,312,317,320,375,376],ourselv:375,out0_process:252,out:[10,17,53,65,67,92,105,112,113,115,127,133,159,163,166,170,171,172,193,194,195,209,211,217,252,265,284,286,290,302,308,311,312,315,320,331,366,375,376,378,390],out_buff:28,out_path:28,outbuf:4,outdoor:208,outer:[159,204,376],outermost:322,outlin:159,output:[1,2,3,4,5,7,9,19,20,25,28,34,36,38,65,72,78,84,89,92,100,101,103,109,113,114,118,131,133,134,159,162,165,166,167,174,180,185,188,189,190,205,211,214,218,221,235,250,251,262,264,265,269,270,281,290,297,298,308,315,320,321,328,332,334,337,338,342,350,353,355,358,360,364,371,372,377,378,380],output_fil:28,output_od:337,outrevers:28,outsid:[159,204,248,251,265,376],over:[101,107,117,159,252,345,375,376],overal:[159,209,217,218,245,246,266,298,323,375],overflow:[89,297,311,376],overflow_:376,overlap:376,overli:159,overload:376,overrid:[135,160,376],oversea:210,overshoot:87,overview:[135,160,234,250,290,353,385,392],overwrit:[25,306,376],overwritten:17,own:[0,1,2,3,4,6,7,8,9,10,12,13,15,16,17,18,19,20,22,23,24,25,26,27,29,30,31,32,33,34,35,37,38,44,52,57,80,85,86,87,92,93,96,98,101,102,103,105,106,107,111,112,113,115,116,117,124,125,127,128,129,130,131,133,159,204,208,209,263,298,300,309,338,349,353,360,369,375,376],owner:357,oxygen:88,p0_1:66,p0_4:66,p100:252,p2000:274,p7zip:318,p:[74,99,218,235,274,375,376],p_index:159,pa00:[50,217],pa01:100,pa04:166,pa06:227,pa07:[50,65,227],pa08:227,pa09:227,pa0:[209,217,218,220,235,252],pa10:[227,235],pa11:[227,252],pa12:[100,227,252],pa13:[211,215,227],pa14:[211,215,227],pa15:[227,252],pa1:[124,170,171,209,217,218,220,225,235,252],pa2:[215,225,235,245,246,252,298],pa3:[215,225,235,245,246,252,298],pa4:[124,170,171,209,217,218,220,225],pa5:235,pa6:235,pa7:[20,123,220,235],pa8:235,pa9:235,pa:[1,265],pa_00:[225,259],pa_01:[225,259],pa_02:225,pa_03:225,pa_04:[225,259],pa_05:[225,259],pa_06:225,pa_07:[225,230],pa_08:225,pa_09:[225,230],pa_10:[225,230],pa_11:225,pa_12:[225,230],pa_13:225,pa_14:[225,230],pa_15:225,pac:344,pack:[6,28,118,165,206,210,211,245,247,250,265,290,293,298,331,332,350],packag:[15,22,23,28,71,118,163,165,181,207,209,214,221,222,228,234,244,250,252,255,257,260,265,268,270,279,290,293,296,297,303,304,309,311,312,315,316,317,327,328,331,336,343,344,350,351,357,366,369,378,382],package_air_cn_index:210,package_air_index:210,packet:[37,102,113,209,217,268,271,290,382],packsiz:165,pacman:[311,312],pad12:263,pad28:263,pad:[28,89,101,159,218,255,265,269,286,289,376],pad_bottom:159,pad_index:28,pad_inn:159,pad_left:159,pad_right:159,pad_top:159,padaddr:263,padd_inn:159,padd_left:159,padd_right:159,padd_top:159,padding_bottom:159,padding_inn:159,padding_top:159,paddr:269,padelai:28,page:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,114,115,116,117,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,160,193,194,195,204,207,211,224,225,226,228,244,247,250,270,281,282,290,308,316,345,353,355,357,364,366,370,371,374,376,403],page_clean:159,page_cr:159,page_demo:159,page_focu:159,page_get_scrl:159,page_get_width_fit:159,page_glue_obj:159,page_part_bg:159,page_part_scrl:159,page_scroll_hor:159,page_scroll_v:159,page_set_anim_tim:159,page_set_edge_flash:159,page_set_scrl_fit:159,page_set_scrl_fit_height:159,page_set_scrl_fit_width:159,page_set_scrl_height:159,page_set_scrl_layout:159,page_set_scrl_width:159,page_set_scrlbar_mod:159,page_set_scroll_propag:159,pai:[58,67,113,120,207,209,217,235,247,252,269,271,281,320,349,355,369,390],paid:[209,217,235,245,281,286],paint:[35,133],pair:[13,17,62,71,104,131,165,169,265,272,378],palett:[135,160],pan:[254,289,314],panel:[297,353],panic:376,panicf:376,paper:[9,376,390,392],papin:28,par:159,para:[28,378],paragraph:[124,301],parallel:286,param1:[28,53],param:[378,379],paramet:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,159,163,188,189,190,193,194,195,199,200,201,202,209,217,235,252,265,266,268,280,290,291,301,302,303,308,320,323,327,328,332,337,339,340,345,346,348,353,360,369,371,373,376,377,378,379],parametr:159,paraphras:[378,379],parasit:369,parent:[28,159],parenthes:[279,375,376],parenthesi:376,parenthet:376,pariatur:159,pariti:[125,199,200,201,202,209,217],parlist:376,pars:[4,28,34,90,114,118,120,206,322,323,338,375,376],parse_zlib_head:90,parser:376,part:[10,35,56,124,133,135,160,168,173,174,180,185,191,196,203,205,206,209,217,231,263,265,266,274,302,309,311,320,322,328,332,353,357,360,366,369,371,373,375,376,378],parti:[159,250,290,349,360],partial:[0,9,166,252,265,269,279,293,331],particular:[235,375,376],particularli:376,partii:28,partit:[16,28,217,282,344,351],partition_addr:344,partli:375,pascal:376,pass:[1,4,12,15,20,26,35,38,39,40,41,43,45,46,47,48,55,56,58,60,61,64,65,67,68,69,74,75,79,84,85,94,106,107,112,119,125,131,159,188,189,190,200,201,202,218,235,302,313,320,322,327,328,330,332,345,350,353,375,376,378],passag:375,passthrough:15,passwd:28,password:[6,23,28,31,58,70,105,113,135,160,232,289,341,381],past:[6,301,355],patch:[265,281],path:[3,4,23,28,35,81,95,107,132,159,165,208,211,245,247,254,265,289,291,298,299,311,312,315,317,318,319,349,351,378],patha:28,pathb:28,pathc:28,pathd:28,patient:210,pattern:[38,94,96,105,159,165,208],pattern_:376,patters_ref:376,paus:[28,87,101,223,229,323,360,371],pavlov:315,payload:[28,130,265,327],payloadlen:[85,86],pb00:[73,85,217,227],pb01:[30,62,70,73,85,124,217,227],pb02:227,pb03:[65,124,217,227],pb04:[62,70,73,85,124,217,227],pb05:227,pb06:[20,77,78,85,227],pb07:[77,78,227],pb08:[72,78,217,227],pb09:[72,227],pb0:[209,211,217,220,235,245,246,298],pb10:[72,217,220,227,252],pb11:[220,227,252],pb12:[100,227,235],pb13:[128,227,235,245,246,298],pb14:[227,235,245,246,298],pb15:[227,235],pb16:227,pb17:227,pb18:227,pb19:220,pb1:[209,217,220,235],pb20:220,pb21:227,pb22:227,pb24:227,pb25:227,pb26:227,pb27:227,pb2:[209,217,220,235],pb3:[12,163,209,217,220,235,252],pb4:[209,217,220,235],pb5:[209,217,220,235],pb6:[209,217,220],pb7:[209,217,220],pb8:[217,220,248],pb9:[220,248],pb:102,pb_00:[225,230],pb_01:[225,230],pb_02:[225,230],pb_03:[225,230],pb_04:[225,230],pb_05:[225,230],pb_06:[209,217,225,230,259],pb_07:[209,217,225,230,259],pb_08:[209,217,225,230,259],pb_09:[209,217,225,230,259],pb_0:210,pb_10:[209,217,225,259],pb_11:[209,217,225,259,281],pb_12:[225,259],pb_13:[225,259],pb_14:[225,259],pb_15:[225,259],pb_16:[225,259],pb_17:[225,259],pb_18:[225,259],pb_19:225,pb_20:225,pb_21:225,pb_22:225,pb_24:225,pb_25:225,pb_26:225,pb_27:225,pbdata:28,pbtxt:102,pc05:88,pc08:128,pc09:128,pc0:[1,166,235],pc12:[163,235],pc13:235,pc14:[163,235],pc15:235,pc1:235,pc3:[231,235],pc4:235,pc5:235,pc6:235,pc7:235,pc8:235,pc9:235,pc:[159,200,201,202,290,353,355,357,358,360,363,364,367,369,370,371,372,373],pcall:165,pcb:[193,194,195,213,230,247,248,251,255,257,264,281,369,389],pcf8563:67,pcf8563t:53,pcf8574:53,pci:92,pclose:328,pcm:[1,4,250,290],pctolcd2002:[9,35,124],pd10:[114,235],pd11:235,pd12:[114,235],pd13:[114,235],pd14:[114,231,235],pd15:[114,231,235],pd1:235,pd2:235,pd3:235,pd6:235,pd7:235,pd8:235,pd9:235,pd:[353,355,358,363,364],pdf:[67,159,166,182,183,184,193,194,195,200,201,202,212,213,215,219,220,225,230,231,233,246,249,255,264,292,294,295,297,376,387],pdn_type:28,pdop:38,pe00:114,pe01:114,pe02:114,pe08:163,pe09:163,pe0:235,pe10:235,pe11:235,pe1:235,pe2:235,pe3:235,pe6:[172,235],pe7:[172,235],pe8:235,pe9:235,peach:375,peak:[265,360,366,369],pear:375,peer:113,pelulamu:159,pem:[93,105],pend:[252,265,336,376,378],pendsv_handl:211,penetr:71,penultim:375,peopl:[247,350,375],per:[38,49,71,89,159,174,180,205,265,377,379],percent:351,percentag:[1,159,373,376],percept:376,perfect:[71,96,159,265,375],perfectli:[207,374],perform:[29,30,66,87,92,101,107,204,208,209,218,234,247,250,265,266,290,308,311,323,330,333,353,360,371,375,376,377],perhap:[349,375],perimet:375,period:[20,25,28,89,92,96,113,120,121,122,159,198,209,217,218,252,263,265,269,290,316,366,378],peripher:[89,96,101,115,135,170,171,172,174,192,196,205,209,214,215,217,234,240,245,250,251,252,257,265,266,270,279,286,290,291,298,299,308,321,334,342,352],perisan:159,perman:[23,107,218,379],permiss:376,perpendicular:159,perpetu:116,persian:159,persist:316,person:[102,378],perspect:[264,269,303],phase:[351,357,363],phenomena:357,phenomenon:[217,250,290,357,366,369],philip:[170,171,172,209,217],phone:[28,92,120,208,254,289,353,355,360],photo:3,photograph:[3,385],php:38,phycellid:28,physic:[104,269],pi:[165,292],piao:247,pick:[263,366,375],picker:159,pico:292,pictur:[3,35,135,160,207,209,217,265,309],pid:28,pide:28,pie:[292,353,358,369,371,372],piec:[1,111,133,209,217,349,376],pilot:32,pin0:[168,298],pin1:[28,168],pin2:28,pin2pin:404,pin33:20,pin:[1,9,12,25,28,34,35,42,49,50,53,62,65,66,67,70,72,73,77,78,85,88,92,110,114,115,118,120,124,125,128,135,160,162,163,168,174,175,196,205,209,210,211,215,217,218,219,221,223,224,226,229,231,234,243,244,245,246,247,250,253,257,260,262,263,264,265,269,284,288,290,293,297,298,327,328,337,357,360,391],pin_busi:[28,86],pin_c:[28,86,175],pin_chang:92,pin_clk:28,pin_dat:28,pin_dc:[28,35,163,175,209,217],pin_dio1:86,pin_dis:92,pin_en:92,pin_pwr:[9,35,163,175,209,217],pin_reset:[28,86],pin_rst:[9,35,163,175,209,217],pin_unblock:92,pin_verifi:92,pin_xxxx:92,ping:[85,86,120,274],pinmod:210,pinout:[214,217,221,226,234,250,256,268,290,296],pio:66,pipelin:286,pivot:159,pivot_i:159,pivot_x:159,pix_fmt:163,pixel:[9,28,35,91,124,159,162,290,331,385],pkcs5:19,pkcs5pad:19,pkcs7:[6,19,167,265],pkg:[304,308,309,313,314],pkgid:265,pkx:28,pky:28,place:[25,105,124,159,163,176,209,214,217,218,235,247,263,290,302,311,312,317,349,355,375,376,390],placehold:[135,160],placement:218,plai:[28,135,164,265,274],plain:[165,274,375],plan:[159,247,252],plat:[313,315],plate:[355,369],platform:[1,10,15,18,19,20,28,53,58,89,92,93,101,113,118,125,130,135,138,149,155,164,247,252,257,265,266,270,271,289,310,316,320,321,327,334,335,342,349,366,376,377],playback:[1,135,265,270],playstop:28,pld_0204:247,pleas:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,114,115,116,117,119,121,122,123,124,125,126,127,128,129,130,131,132,133,134,142,159,204,207,209,210,214,217,222,224,225,226,228,230,231,232,235,245,247,251,252,263,265,266,267,269,270,281,282,286,290,292,297,298,302,308,310,315,316,317,346,348,353,355,357,360,364,366,369,375,376,381,384,390],pll:[89,235,240,250,251,290],pllclk:248,plot:159,plu:[28,159,193,194,195,252,363,375,376,378],plug:[187,204,207,208,209,217,246,250,265,289,290,353],plural:159,pm10:83,pm1:83,pm2:83,pm:[28,107,118,174,204,205,209,223,229,263,265,269,329],png:[159,235,265,290,316],pnum:28,po:[159,165,375],point:[2,9,12,28,29,33,35,38,70,71,87,91,97,118,124,133,135,160,165,188,189,190,204,218,265,321,334,335,342,366,375,376,403],point_arrai:159,point_cnt:159,point_num:159,point_t:159,pointer:[9,12,13,14,17,21,26,29,35,87,109,115,116,125,126,127,133,159,188,189,190,200,201,202,324,327,328,331,332,336,376],pole:[355,360],poli:28,polici:[159,268,290],poll:340,polygon:124,polynomi:[6,251],pong:375,pool:[321,328,334,342],pop:[159,247,265,301,308,360,366,376],popen:[165,328],popul:[133,326,331,376],popular:357,popup:315,porridg:[247,311,312,317],port:[3,9,12,23,25,28,35,38,53,58,62,70,76,81,92,104,109,118,120,132,163,174,175,177,178,199,203,204,205,206,209,211,214,217,218,231,245,246,247,251,263,264,265,269,281,286,290,298,305,308,311,312,323,339,340,341,345,351,353,355,358,360,363,369,370,371,372,377,382,395,401],portabl:[246,288,290],portal:[204,246,281,286,294],portcon:297,portion:[159,376],posit:[15,26,29,35,38,53,56,58,91,99,109,116,120,124,125,127,133,135,160,208,211,245,250,255,265,266,268,270,274,290,298,331,343,345,350,355,358,360,366,369,370,372,373,375,376,378,382],posix:[113,318,328,349,376],possibl:[86,93,159,187,218,235,247,252,263,265,266,290,300,301,317,333,355,357,369,375,376],post:[23,24,37,104,197,209,217,346,348,352],potenti:376,pour:265,pow:376,power:[0,1,12,28,52,65,85,86,89,92,94,96,118,120,124,131,159,162,166,177,178,186,204,209,217,221,226,234,247,252,257,262,264,265,268,269,279,284,288,290,297,308,321,334,335,341,342,352,360,363,366,375,376,382,390],power_kei:235,power_on_delai:28,power_pin:28,powerkei:[101,265],powerlevel:28,poweroff:265,powersav:28,powershel:[163,315,317],pp:[353,358,360,363,366],ppb:82,ppm:82,pr:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,114,115,116,117,119,121,122,123,124,125,126,127,128,129,130,131,132,133,134],practic:[159,209,221,290,346,375,376],pre:[205,250,290,376],preamblelen:[85,86],precaut:[104,135,160,250,284,290,357],preced:[19,92,101,345,376],precis:[28,33,38,89,159,174,180,186,205,209,218,240,297,338,353,358,369,371,372,376],precompil:[299,376],predefin:[159,376],prefac:376,prefer:[77,113,125,210],preferenti:[281,286],prefilt:159,prefix:[28,159,333,345,376],prefixexp:376,preliminari:377,preload:[159,165],prematur:23,premis:[131,357,369],prepar:[11,90,135,146,164,173,174,180,185,191,196,203,204,205,214,221,250,268,290,296,302,349,375,376],preparatori:[346,348],prepend:376,presenc:269,present:[109,159,186,192,209,292,302,320,324,351,376],preset:369,press:[34,46,78,87,95,101,114,120,159,168,175,204,207,209,215,217,235,245,281,282,286,289,298,301,360,366,370,373,376],press_sta:50,pressur:[0,53,109,265,369,376],presuppos:376,prevail:[38,279],prevent:[5,53,65,125,166,217,218,235,247,320,366,369,376],preview:[159,232,353,366],previou:[12,25,104,131,159,163,165,169,209,214,217,247,265,290,308,343,369,375],previous:[35,159,169,252,290,376],price:[159,209,353,375],primari:[92,96,159,269],primit:[87,376],principl:[159,163,165,199,200,201,202,209,217,328,376],print:[2,3,5,16,17,18,19,20,28,31,50,53,62,63,68,70,73,84,89,94,100,102,104,105,107,113,117,119,130,159,163,165,166,167,169,176,179,181,186,192,198,199,200,201,202,204,209,210,217,231,242,265,281,286,290,301,302,304,339,340,344,346,348,350,373,375,377,378],printabl:376,printer:87,printf:[159,210,250,290,375,376],printout:375,prioriti:[92,101,107,165,211,250,265,290,297],privat:[18,23,28,58,93,105,113,159,320,328,355,360,369,370,373,376],privkei:105,prj:[304,305,307,308],prlh:252,prll:252,pro:[363,366,370,372],proactiv:104,probabl:[101,109,211,250,265,286,289,290,317,355],probe:[113,305,376],problem:[23,93,100,159,204,211,218,245,247,251,252,254,265,286,291,298,302,303,311,312,316,317,321,328,334,336,342,366,375,376,378],proce:376,procedur:[252,265,376,378],proceed:163,process:[1,6,11,12,15,25,28,65,89,90,92,93,96,101,103,104,107,112,115,117,118,132,159,165,187,188,189,190,198,199,200,201,202,204,208,209,210,217,218,247,252,265,268,290,297,299,302,308,321,328,332,333,334,342,345,350,377,378,379,380],processor:[159,193,194,195,215,257,286,322,376],produc:[186,209,296,327,330,369,376],product:[31,54,56,58,89,135,159,164,218,234,247,255,268,284,288,290,353,363,364,366,375],product_id:28,product_kei:[28,56,266],product_secret:54,productkei:53,produt_id:[28,54],profil:[256,290,376],prog:165,program:[97,101,102,159,162,165,174,205,218,231,232,240,244,252,261,286,289,290,297,301,308,321,334,342,350,351,374,378],program_:376,programm:[159,250,290,376],progress:[135,160,209,265,279,293,345,351,373],prohibit:[32,218,235,345,355,360,369,370,373],proident:159,project:[31,39,56,71,92,138,146,149,155,166,169,170,171,172,176,177,178,179,182,183,184,188,189,190,193,194,195,197,198,200,201,202,204,206,207,209,211,232,245,247,248,252,266,271,284,289,290,291,292,298,303,304,313,315,344,349,369,377,390,392],prompt:[9,19,35,100,103,124,159,245,252,265,301,306,307,315,317,351,366,376],pronunci:[268,290],proof:247,propag:[135,160,376],proper:375,properli:[159,252,265,376],properti:[22,35,96,133,159,247,265,376],proport:159,proportion:159,prosecut:159,protect:[133,162,209,247,250,289,290,355,371,376],protobuf:[28,118,265],protobuff:[28,118],protoc:102,protocol:[28,53,109,113,130,170,171,172,193,194,195,199,200,201,202,208,209,217,235,246,257,265,268,290,297,321,334,338,342,351,355,357,360,369,370,373,376],protocolbuff:102,prototyp:[301,326,328,376],prove:[159,204,357,360],provid:[6,13,17,72,104,124,159,167,169,170,171,172,174,186,193,194,195,205,208,218,235,240,243,247,260,263,265,268,290,297,302,303,309,311,312,315,317,320,324,325,326,327,328,329,331,337,339,340,341,344,345,349,352,353,355,357,360,366,369,370,373,375,376,378,380],proxi:[8,323],ps:[131,257,269],ps_max_modem:131,ps_min_modem:131,ps_none:131,pseudo:376,psk:[113,272],psm:[92,94,101,265,382],psmmode:28,psram:[209,240,279,286,291,352],psram_c:225,psram_clk:225,psram_d0:225,psram_d1:225,psram_d2:225,psram_d3:225,ptr:[302,322,326,327,328,345,376],ptrdiff_t:376,ptw:94,pub:[121,377],publish:[25,28,53,115,130,197,209,217,254,265,333,342,346,348,377,378],pubout:105,puc:376,puk:92,pull:[1,12,22,28,30,115,193,194,195,209,215,217,218,223,229,235,250,251,252,265,269,281,290,297,337,353,357,376],pull_mod:28,pulldown:[20,30],pullup:[20,30,66,67,71,116,209,217,269,328],puls:[28,49,72,182,183,184,209,217,252,269,286],punctiv:252,punctuat:[375,376],purchas:[206,210,211,214,221,226,247,250,260,290,296,352,353,369,385,390,392,395,398,401,404],pure:[124,205,320,345,360,363,364,371,375],purpos:[22,65,92,132,159,235,250,286,290,297,345,376],push:[28,235,297,301,302,320,337,345,376],put:[23,24,37,92,159,204,209,210,217,265,274,301,302,316,317,327,355,375,376],puzzl:316,pw:341,pwb:281,pwd:[18,28],pwk_mode:[101,204],pwlink:247,pwm00:183,pwm0:[103,182,217,220,235],pwm11:269,pwm1:[220,235,269],pwm2:[220,235],pwm3:[220,235,269],pwm4:[220,235],pwm5:[103,184,235,269],pwm6:235,pwm7:235,pwm:[28,30,32,89,109,118,162,174,205,221,240,257,264,265,268,270,279,281,286,290,293,297,338,380],pwm_00:225,pwm_01:225,pwm_02:225,pwm_03:225,pwm_04:225,pwm_10:225,pwm_11:225,pwm_12:225,pwm_13:225,pwm_14:225,pwm_20:225,pwm_21:225,pwm_22:225,pwm_23:225,pwm_24:225,pwm_30:225,pwm_31:225,pwm_32:225,pwm_33:225,pwm_34:225,pwm_captur:103,pwmh:103,pwml:103,pwr:[204,211,262,263,264],pwrkei:[101,269,289],pxxx:100,py:[282,313,317],pyocd:[246,247],python:313,q2:369,q:[282,299,376],qa:72,qcloud:28,qfn32:[221,222,279,293],qfn56:[209,228,279,293],qfn88:[235,279],qh:72,qio:281,qmc5883l:53,qmc5883l_data:69,qo:[28,53,265],qos0:93,qos1:93,qos2:[93,265],qq:[102,209,215,222,228,244,316,346,348],qr:87,qrcode:[28,35,124],qrcode_cr:28,qrcode_delet:28,qrcode_upd:28,qspi:208,qszz:38,quadrant:376,qualcomm:[28,87,118,265,387,392],qualifi:315,qualiti:[4,28,92,159,353],quantiti:[92,252,279,376],quantity_:376,quantiz:252,quasi:266,queri:[28,29,56,65,71,92,120,174,180,193,194,195,205,265,272,308,323,326,376,379,382],question:[104,159,247,369,376,381],queu:328,queue:[30,107,121,302,322,327,328,378,379],qui:159,quick:[135,160,205,252,301,309,352],quickli:[90,101,159,168,208,265,352,353,363,375,376,380],quiescent:297,quit:[217,332],quot:[159,302,351,375,376,378],quotat:[375,376],quotient:376,qwer:18,r1:159,r:[6,28,38,75,109,117,125,130,159,163,188,189,190,192,209,217,333,349,363,375,376,378],rad:[28,165],radial:159,radian:376,radic:159,radiu:[28,35,124,133,159],radius_circl:159,rais:265,ram:[4,12,89,101,133,159,208,215,223,229,235,247,250,251,265,279,344,349,352],ramrun:351,random:[6,165],randomli:93,randomse:165,rang:[28,92,93,96,101,123,124,133,135,160,166,182,209,217,218,231,235,252,272,274,297,357,358,360,366,369,371,372,375,376],rank:[176,376],rapid:[159,341,346,348],rar:297,rare:218,raspberri:[159,292],rate:[12,22,26,28,36,62,81,91,104,115,118,125,162,177,178,199,200,201,202,204,208,209,211,217,218,222,228,231,240,248,251,257,263,265,281,286,291,297,340,344,351,353,358,363,364,366,369,371,372,376],rate_:376,rate_and_garbag:376,rather:376,ratio:[11,38,92,124,208,373],raw:[1,19,38,90,131,290,345],raw_data:28,raw_point:28,rawdata:28,rawequ:165,rawget:[165,333],rawlen:165,rawset:165,rawvideo:163,rb:[29,163,209,217],rc522:53,rc522_authent1b:70,rc522_bit_fram:70,rc522_com_irq:70,rc522_config_isotyp:53,rc522_fifo_level:70,rc5:338,rc:[218,265],rcc:248,rcc_apb1periph_usb:248,rcc_apb1periphclockcmd:248,rcc_apb2periph_afio:252,rcc_apb2periphclockcmd:252,rcc_clockconfig:248,rcc_mco_hs:248,rcc_mco_hsi:248,rcc_mco_noclock:248,rcc_mco_pllclk_div10:248,rcc_mco_pllclk_div11:248,rcc_mco_pllclk_div12:248,rcc_mco_pllclk_div13:248,rcc_mco_pllclk_div14:248,rcc_mco_pllclk_div15:248,rcc_mco_pllclk_div16:248,rcc_mco_pllclk_div2:248,rcc_mco_pllclk_div3:248,rcc_mco_pllclk_div4:248,rcc_mco_pllclk_div5:248,rcc_mco_pllclk_div6:248,rcc_mco_pllclk_div7:248,rcc_mco_pllclk_div8:248,rcc_mco_pllclk_div9:248,rcc_mco_sysclk:248,rcc_pllcmd:248,rcc_pllmul_27:248,rcc_pllsource_hse_div1:248,rcc_usbclkconfig:248,rcc_usbclksource_pllclk_4div5:248,rclk:53,rcr:28,rd:333,rda8910:323,rddi:[250,290],rdy:[120,125],re:[9,25,28,30,85,86,105,159,188,189,190,193,194,195,197,209,217,247,248,251,252,322,350,357,360,366,375,376],reach:[73,97,159,250,358,366,369,372,375,378],reachabl:376,react:159,read:[1,10,13,15,17,23,25,26,28,29,30,38,39,45,47,53,56,65,68,71,85,89,92,94,96,97,102,105,106,107,108,109,115,118,127,128,131,132,159,163,165,166,169,173,174,186,187,191,192,196,199,200,201,202,205,206,209,217,250,251,263,265,268,290,315,320,322,323,325,328,331,332,337,340,343,345,346,347,350,357,375,378],read_datablock:53,read_light:53,read_rawrc:53,read_tim:53,readabl:[96,349,376],readback:[358,369,372],readdht12:28,reader:376,readfil:[28,93,102,105,188,189,190],readi8:133,readi:[1,15,28,56,92,94,113,120,124,127,209,217,301,308,341,376],readint8:331,readm:[309,315],readr:[193,194,195],readreg:28,readsht30:28,readu32:133,reaet:218,real:[28,53,71,92,118,159,167,186,193,194,195,209,240,265,290,355,369,373,375,376],realign:159,realist:369,realiz:[187,199,200,201,202,208,209,217,218,235,248,251,269,281,286,290,302,330],realli:[101,133,218,317,376],realloc:[133,376],really_hold_their:376,reamd:309,reason:[12,97,101,159,163,265,286,302,323,333,345,351,366,376],reboot:[28,58,71,266],receipt:130,receiv:[3,15,23,25,26,28,38,53,54,56,58,62,70,73,80,85,86,92,93,113,115,120,121,125,127,130,131,159,174,197,199,203,205,208,209,217,247,250,265,270,286,290,302,322,323,327,330,338,339,340,345,375,376,377,378,379],receive_buff:53,receivebuff:[200,201,202],receiveddata:[170,171,172],recept:[49,65,125,132,209,217,265,345],recharg:235,reciv:[85,120],reclaim:[375,376],reclam:265,recogn:[22,209,217,250,265,290,323,345,353],recognit:[92,208],recolor:[135,160],recommend:[0,1,5,11,35,38,71,87,89,90,92,96,97,100,105,106,107,115,122,125,132,159,162,204,205,209,210,211,215,217,218,220,225,235,245,246,247,252,264,269,270,271,279,281,286,291,301,311,312,315,317,318,355,360,369,370,373,378],recompil:376,reconfigur:[39,250,290],reconnect:[28,131,247,265],reconnect_tim:28,record:[26,28,208,217,247,265,300,366,376],record_of:376,recov:[92,265],recoveri:[1,92,376],recruit:353,rect:28,rectangl:[9,133,159,331,375],rectangular:159,recurs:376,recursion_:376,recv:[28,38,65,93,130,170,171,172,192,209,217,322,327,339,345,350],recv_buf:339,recv_cb:53,recvlen:[193,194,195],recvreadi:[209,217],recycl:376,red:[9,35,133,159,264,355],redi:169,reduc:[1,133,159,166,182,183,184,209,211,235,263,265,266,274,366,369,375,376],reduct:133,redund:1,reentrant:376,ref:376,refer:[5,8,14,19,26,35,80,89,92,96,123,124,130,131,142,159,165,166,167,168,170,171,172,175,176,177,178,179,181,182,183,184,186,188,189,190,193,195,198,206,209,210,214,217,218,230,232,233,234,247,248,252,263,265,266,270,274,281,283,286,290,291,292,297,299,301,302,303,310,315,316,320,345,346,348,349,355,357,358,360,366,369,370,372,373,375,377,379,391],referenc:[87,159,376],reflect:[235,302,353],refp:235,refr_now:159,refresh:[9,29,35,36,87,94,159,316,324,351,360,366,371],refresh_r:28,reg32:28,reg:28,regaddr:332,regard:[375,376],regardless:[106,133,159,316],region:[98,159,366,376],regist:[1,3,18,25,26,66,70,72,86,87,89,92,93,94,113,121,125,128,130,159,174,188,189,190,199,203,205,209,215,217,220,225,251,252,290,297,302,316,327,341,345,376,378,379],registered_roam:92,registr:[54,66,92,94,113,165,317,320,341,376],registri:165,regul:369,regular:[10,92,131,159,269,301,376,377,380],regularli:[66,129,265],reimag:252,reiniti:[124,265],reissu:247,reject:92,rel:[29,44,159,289,291,336,376],relat:[0,9,20,26,35,38,65,89,90,94,96,98,108,124,133,135,160,164,210,214,218,235,245,252,255,263,265,268,284,288,289,290,293,298,309,320,323,326,328,351,357,376,379],relationship:[209,269,378],releas:[3,6,28,34,54,65,87,92,93,102,107,114,120,130,159,204,209,210,215,217,222,228,244,245,250,256,261,266,268,270,274,286,290,302,314,326,360,363,375,376,377,379],relev:[92,108,159,218,247,269,290,321,334,335,342,345,349,366,376],reli:[211,299,328,349,376],reliabl:[209,353,364,369,371],relinquish:376,reload:[250,290],reluct:162,rem:315,remain:[26,67,125,133,159,218,250,290,315,326,327,375],remaind:[297,375,376],remark:[235,269,352],rememb:[104,105,159,289,302,333,355,376],remind:[2,12,14,21,38,56,92,131,204,207,264,265,266,355,366,369],remot:[28,53,62,118,338,382],remote_nam:28,remote_port:[28,265],remoteip:28,remov:[5,28,29,87,117,127,135,160,165,218,232,265,282,315,333,345,355,369,375,378],renam:[28,165],render:[159,208,209,217,376],renderlinehighlight:207,rep:[165,209,217],repackag:265,repair:[265,286,357,366,369],repeat:[28,30,159,163,209,217,265,303,330,333,376],repeat_cnt:28,repeatedli:[14,210,381],repetit:[30,107,116,330,338,375],repl:[28,118,165,265],replac:[17,58,92,108,127,159,207,209,217,247,248,250,257,284,290,307,328,331,369,375,376],replai:87,repli:[96,113,159,209,217,332],report:[20,21,23,28,71,93,118,252,265,311,315,316,345,364,376],repositori:[204,270,310,311,312,315,391],reprehenderit:159,repres:[9,16,20,25,35,96,100,101,124,159,193,194,195,265,282,315,316,336,345,350,375,376,377],represent:376,reproduc:252,req_cod:53,reqaddr:53,reqal:70,reqcellinfo:[28,265],reqedrxvaluem:28,reqidl:70,reqiur:300,reqop_norm:62,reqptwvalu:94,reqtim:53,request:[28,37,53,65,71,92,181,223,229,252,265,266,326,329,333,375,376],requir:[0,1,3,6,9,11,13,15,17,19,21,23,30,35,37,39,40,41,42,43,44,45,46,47,48,49,50,52,54,55,56,58,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,79,80,81,82,83,89,90,92,93,96,97,101,104,107,109,112,113,120,121,125,127,130,131,134,135,160,162,165,166,168,169,170,171,172,177,178,179,182,183,184,188,189,190,193,194,195,197,200,201,202,209,210,214,217,218,226,235,247,252,265,266,269,279,281,289,290,299,300,301,303,308,309,315,317,318,319,320,322,326,327,328,333,336,342,344,346,348,352,353,357,363,364,369,371,375,377,378,379,391],reqwifi:53,rerult:133,reselect:[92,204],resembl:159,reserv:[7,25,34,87,92,96,101,113,114,159,290,328,336,358,372,376],reset:[9,12,28,35,50,53,85,101,109,128,129,159,188,189,190,204,209,211,215,221,223,229,235,240,245,246,247,250,262,263,264,281,286,290,297,298,351,366],residu:252,resist:[218,220,225,235,247,251,281,357],resistor:[0,218,235,250,251,252,290,357,358,369,372],resiz:[28,135,160],resolut:[4,35,53,113,159,163,208,240,265,279,353,358,369,371,372,392],resolv:[252,352,376],reson:101,resourc:[3,30,93,130,193,194,195,204,208,209,221,244,247,266,274,284,288,290,309,327,328,349,352,374,375,376],resp:[323,333],respect:[65,159,166,199,200,201,202,209,211,217,231,264,336,357,358,369,372,375,376,378],respond:[24,56,58,198],respons:[23,93,96,204,208,209,218,320,321,322,334,342,376],rest:[159,209,217,375,376],restart:[5,25,71,89,92,101,107,204,207,209,218,265,266,298,311,312,315,353,360,376,378],restaur:378,restor:[131,132,159,323,373,375,376],restrict:[96,376],result:[0,1,2,4,5,6,10,12,15,17,25,27,30,33,51,56,58,62,70,71,81,82,83,89,92,94,96,101,103,105,108,109,113,115,119,131,133,159,163,167,170,171,172,187,199,204,209,217,250,251,265,290,297,302,316,333,339,340,341,342,355,357,360,366,369,370,373,375,376,377,378,379],resum:[1,87,121,165,378,379],resurrect:376,ret:[29,103,105,131,266,302,332,333],retain:[28,53,108,376],retri:[10,128],retriev:[159,376],retstat:376,reus:[65,131,218,235,250,264,265,269,279,290,376],reusabl:281,rev:377,revc:[193,194,195],revers:[6,29,35,65,124,159,165,167,188,189,190,298,355,357,360,369,370,373],revert:[28,345],review:376,revis:[240,247],reviv:376,revvc:[193,194,195],rewrit:[211,265,376],rf:[92,263,290],rgb565:[28,240,286,291],rgb565be:163,rgb888:240,rgb:[3,35,75,87,159,163,286,290],rgb_data:75,rgb_date:75,rgb_file:163,rh:[41,47],right:[2,9,26,35,49,58,87,124,159,162,207,245,247,298,301,355,360,366,369,370,375,376,382],right_fit_typ:159,rio:376,rippl:218,risc:279,riscv:257,rise:[20,30],risk:[247,355,360,369,370,373,376],riski:369,rle:[90,159],rle_match:90,rmc:38,rmd:18,rmdir:28,rmt:286,rndi:289,road:[281,297],roam:92,roberto:376,robot:265,robust:376,role:[336,376],roll:[135,160,252,345],rollback:265,roller1:159,roller:[135,160,371,373],roller_:159,roller_cr:159,roller_demo:159,roller_get_selected_str:159,roller_mode_infinit:159,roller_part_bg:159,roller_part_select:159,roller_set_opt:159,roller_set_visible_row_count:159,rom:[159,324,336,344],romf:349,room:[159,217],root:[16,97,266,309,315,376],rotable_reg:301,rotari:53,rotat:[28,49,92,135,160,297,360,376],rotation_angl:159,rough:125,roughli:[211,315,378],round:[124,159,376],rout:[235,247],routin:[135,161,164,209,217,252,290,292],row:[29,135,160,210,211,219,224,231,250,253,262,263,264,265,290,323,336,373,375,376],row_cnt:159,rp2040:290,rp2040_pcb:[290,292],rrc:[92,265],rs232:199,rs485:[199,265],rs485_delai:28,rs485_gpio:28,rs485_level:28,rs8554:369,rs:351,rsa:[28,118,272],rsrp:28,rsrq:28,rssi:[28,120,131,341],rst:[37,53,128,209,215,245,246,247,281,286,298],rst_pin:28,rt:[209,215,247,314,320,341,351,352],rtc:[28,38,101,118,174,205,223,229,235,240,250,263,265,279,290,293],rtc_setprescal:252,rtcauto:28,rtime:28,rtkv:53,rto:[22,28,58,71,118,166,168,266,290,299,318,319,322,327,328,330,349,378],rtos_msg:[322,327],rtos_msg_t:302,rtr:[28,62],rtrim:28,rtt:[314,327,352],rtt_root:314,rtthread:314,rule:[67,96,165,209,217,252,265,268,290,309,375],rule_:376,run:[21,28,66,101,118,159,165,166,169,170,171,172,174,177,178,179,182,183,184,188,189,190,193,194,195,197,200,201,202,204,205,207,208,209,210,211,214,217,218,223,229,232,245,247,265,266,286,290,298,299,302,308,311,312,318,319,322,323,327,328,329,345,351,352,366,373,375,378],running_script_:376,runtim:[97,101,159,366,376],rx0:218,rx:[26,28,199,200,201,202,209,215,217,220,225,245,246,259,265,286,298],rx_done:86,rx_error:86,rx_hwtimer_id:28,rx_len:28,rx_pin:28,rx_timeout:86,rxbuf:73,rxbuff:28,rxclear:28,rxcontinu:[85,86],rxd:215,rxdata:25,rxe:[250,290],rxlen:28,rxpacket:53,rxsize:28,ry:28,s1:[94,375],s2:375,s3:[286,287,290,375],s3_pcb:[288,290],s5:274,s:[1,3,9,10,17,18,20,29,31,35,54,58,77,78,85,87,89,92,93,94,96,97,107,113,120,130,133,134,159,162,163,165,168,169,187,198,204,207,209,210,217,232,235,245,247,252,254,263,264,265,269,272,274,282,289,291,293,298,300,301,302,308,309,314,315,320,321,322,323,325,326,334,338,340,341,342,345,346,347,351,360,364,375,377,378,380],s_intermitt:376,s_loader_:376,s_n_:376,sacrif:366,safe:[159,341,376],safer:376,safeti:235,sai:[209,217,247,263,315,375,376,377],said:[289,374,375],sale:[381,384],same:[1,6,12,14,20,22,30,59,65,67,77,78,89,92,93,97,100,102,113,159,204,209,217,228,252,254,263,265,266,269,274,281,286,290,302,311,312,315,316,325,336,345,350,357,366,369,370,375,376,378,379,380,381],sampl:[1,4,28,38,92,159,174,205,209,211,217,240,250,257,281,290,297,346,348,353,357,358,363,364,366,369,371,372,375],sample_r:[4,28],san:159,sar:[240,286,297],sarasa:265,sass:38,sat:38,satellit:[38,263,270,381],satellites_track:38,satisfi:[67,375],satur:159,saturdai:67,save:[3,13,17,71,89,101,124,131,132,159,162,174,193,194,195,205,207,208,245,247,263,282,290,302,311,327,366,375,376,382],save_path:28,sayhi:301,sb_mode:159,sc:[128,131],sc_result:131,scalabl:159,scale:[35,135,160,163,324,326],scale_end_color:159,scale_grad_color:159,scale_width:159,scan:[3,28,53,90,123,247,252,265,270,293,297,309,315,341,345,376,385],scan_period:28,scanresult:28,scatter:[162,214,247,290],scdma:272,scenario:[71,121,223,229,236,265,266,269,270,279,285,308,321,334,342],scene:[281,286,308,328],scenic:87,schedul:[48,58,94,159,197,281,321,334,342,378,379],schema:376,schemat:[170,171,172,182,183,184,188,189,190,193,194,195,200,201,202,209,214,218,221,231,233,235,246,247,249,255,264,283,287,290,292,294,295,390,392,404],scheme:[38,204,247,315,334],scienc:357,scientif:265,sck:[66,247],scl:[28,53,124,168,170,171,172,209,217,269],scl_pin:53,sclk:53,scm:290,scon:314,scope:[135,160,274,376],score:[5,280],scr2:87,scr:[28,209,217],scr_act:[28,159,209,217],scr_load:[28,159,209,217],scr_load_anim:28,scr_load_anim_over_left:87,scrambl:25,scratch:376,screen:[3,28,35,87,100,118,124,159,168,174,205,208,209,217,226,265,290,296,308,353,355,360,363,364,371,373,392,395],screen_label:159,screenshot:[235,290,316,360],screw:[355,369],script:[72,77,94,107,159,175,205,208,217,221,226,234,265,266,270,271,274,284,290,301,306,308,309,310,311,312,317,319,322,323,325,344,349,351,352,374,375,376,377],script_addr:344,scrlbar_mode_:159,scrlbar_mode_auto:159,scrlbar_mode_drag:159,scrlbar_mode_hid:159,scrlbar_mode_off:159,scrlbar_mode_on:159,scrlbar_mode_unhid:159,scroll:[135,160,162,366,370,373],scrollabl:[135,160],scrollbar:159,scrollbar_mode_off:159,sd:[1,12,14,29,107,108,134,159,163,209,217,290,325,349],sd_mount:[209,217],sd_read:28,sd_user_main:107,sd_write:28,sda:[28,53,124,168,170,171,172,209,217],sda_pin:53,sdcard:107,sdhc:127,sdio:[12,28,118,221,240,248,251,257,279,286,290,291,293],sdio_clk:[209,217,225],sdio_cmd:[209,217,225],sdio_d0:[209,217,225],sdio_d1:[209,217,225],sdio_d2:[209,217,225],sdio_d3:[209,217,225],sdk:[211,245,247,251,290,297,313,319,328],sdk_appid:28,sdl2:[318,319],sdl:318,sdram:240,sea:38,seal:286,seamless:257,search:[28,53,70,92,94,107,207,210,265,289,301,308,311,312,376],search_cell_tim:28,searcher:165,searchpath:165,seat:[355,360],sec:[38,67,97,106,186,209,376],sec_shop_id:381,second:[6,10,13,35,38,56,66,67,71,89,92,94,96,97,99,101,107,109,113,124,159,166,170,171,172,174,180,186,204,205,208,209,210,218,247,252,263,265,289,298,301,302,323,345,350,360,371,375,376,377,378,379],second_exp:376,secondari:[13,17,159,265,269,270],secondtick:179,secret:[28,54,105,118,251],section:[142,159,170,171,172,209,214,217,252,264,290,315,345,375,376],sector:[12,70,174,196,205],secur:[167,209,257,265,341,376],securit:341,sed:159,see:[3,71,92,106,113,131,133,159,163,175,184,188,189,190,193,194,195,200,201,202,204,207,209,210,211,215,217,218,227,232,245,247,251,252,269,289,291,298,301,350,355,360,371,375,376,382],seeall:378,seed:376,seek:[28,29,165,200,201,202,331],seek_cur:[29,133],seek_end:[29,133],seek_set:[29,133,331],seem:[290,376],seen:[166,182,193,194,195,204,209,251,291,328,375],seg10:227,seg11:227,seg12:227,seg13:227,seg14:227,seg15:227,seg16:227,seg17:227,seg18:227,seg19:227,seg1:227,seg20:227,seg21:227,seg22:227,seg23:227,seg24:227,seg25:227,seg26:227,seg27:227,seg28:227,seg29:227,seg2:227,seg30:227,seg31:227,seg3:227,seg4:227,seg5:227,seg6:227,seg7:227,seg8:227,seg9:227,seg:28,seg_data:53,seg_mark:28,seg_set:28,segment:[28,72,77,78,118,130,159,226,290,296,376],select:[9,12,18,20,23,35,49,53,65,67,72,77,78,82,83,85,87,89,92,93,110,111,113,115,124,125,128,130,135,160,165,173,180,185,188,189,190,191,193,194,195,196,203,204,207,209,210,214,217,218,224,225,226,228,235,240,245,246,247,250,251,265,268,269,281,282,286,290,291,297,298,301,315,316,344,349,352,353,360,364,370,371,378],selector:[135,160],self:[58,71,135,160,247,254,266,281,290,291,297,311,312,317,355,357,360,363,366,376],sell:159,sem:328,semant:376,semaphor:328,semicircl:159,semicolon:376,send:[10,28,32,37,53,54,62,63,65,72,73,77,78,87,92,93,96,104,113,120,121,124,125,132,159,173,174,192,193,194,195,199,203,205,209,217,218,250,263,265,270,290,302,321,323,330,332,334,339,340,342,345,350,351,377,378],send_buf:339,send_buff:53,send_data:28,send_finish:377,send_msg:28,send_ok:127,sendbuff:[28,200,201,202],senddisplaydata:53,sender:132,sendind:28,sendlen:[193,194,195],sendmsg:[28,59],sendnec:[28,65,338],sendnotifi:28,sendqueu:[209,217],sens:[4,109],sensit:[71,371,376],sensor:[25,28,53,71,88,91,118,120,123,162,170,171,172,206,209,217,226,235,265,266,290,291],sent:[25,26,32,59,62,72,92,93,104,109,112,113,115,120,125,127,130,159,199,250,265,290,302,330,331,338,339,345,352],sentenc:[209,217,252,266,376],sep:[165,375],separ:[28,38,92,159,170,171,172,247,254,323,336,345,351,353,375,376,378,379],separator_posit:159,septemb:[120,159],sequenc:[28,65,113,118,159,192,199,200,201,202,209,217,339,340,360,376,390],ser1:159,ser2:159,ser:159,seri:[0,26,100,101,104,106,131,133,135,160,204,206,209,211,217,218,224,225,226,228,235,245,247,250,251,252,266,289,290,298,310,316,331,352,353,355,357,363,364,375,376,378,381,382,390,392],serial:[3,12,18,28,33,38,70,72,77,89,92,93,104,113,118,130,132,163,170,171,172,174,188,189,190,192,193,194,195,199,203,205,206,209,214,217,222,228,231,235,240,245,246,247,264,265,269,281,282,283,286,290,297,298,308,323,339,340,341,345,351,353,355,358,360,369,371,372,376,377,382,395,401],series_t:159,seriou:92,serv:[92,159,265],server:[10,18,23,28,37,53,54,56,57,58,71,93,96,105,113,118,130,263,266,274,376],server_cert:[18,28,53,93],servic:[24,35,57,80,92,96,247,252,265,272,316,376,381,382],session:93,set:[0,1,3,5,9,12,13,28,30,34,35,36,38,42,48,53,56,62,67,70,76,77,78,84,85,86,87,89,92,93,94,96,99,100,101,104,107,109,112,113,115,116,120,124,125,127,128,130,131,132,135,160,169,174,179,180,182,183,184,186,187,204,205,207,209,211,215,217,218,222,223,228,229,231,245,247,250,251,257,265,266,268,269,290,291,297,298,314,315,317,322,323,328,329,331,337,339,340,341,345,349,351,353,355,358,366,370,371,372,373,374,375,376,378],set_accepted_char:159,set_act:159,set_align:159,set_angle_offset:159,set_anim_tim:159,set_arc_length:159,set_bit_mask:53,set_btn_ctrl:159,set_btn_ctrl_al:159,set_btn_width:159,set_btns_po:159,set_cell_merge_right_t:159,set_cell_typ:159,set_channel:28,set_check:159,set_color:159,set_color_mod:159,set_color_mode_fix:159,set_ctrl_map:159,set_cursor_blink_tim:159,set_cursor_click_po:159,set_cursor_hidden:159,set_cursor_manag:159,set_cursor_po:159,set_day_nam:159,set_dir:159,set_edge_flash:159,set_highlighted_d:159,set_hsv:159,set_hu:159,set_id:28,set_map:159,set_max_height:159,set_max_length:159,set_mirror:159,set_mod:[53,159],set_month_nam:159,set_one_check:159,set_one_lin:159,set_opt:159,set_placeholder_text:159,set_pwd_mod:159,set_pwd_show_tim:159,set_recolor:159,set_rxconfig:28,set_scal:159,set_scrollbar_mod:159,set_select:159,set_set_i:376,set_show_select:159,set_spin_tim:159,set_src:159,set_src_til:159,set_stat:159,set_static_opt:159,set_static_text:159,set_symbol:159,set_tab_act:159,set_text:159,set_text_align:159,set_text_label:159,set_text_sel:159,set_tile_act:159,set_tim:[42,53],set_today_d:159,set_txconfig:28,set_typ:159,set_usbclock:248,set_valid_posit:159,set_valu:159,set_visible_row_count:159,set_width:159,set_xxx:159,setapnet:341,setauto:28,setband:28,setbaseyear:28,setbitmapmod:28,setblinktim:53,setbootcfun:28,setbright:53,setbu:28,setcap:28,setcfun:28,setchr:28,setclk:[28,177,178],setcolor:28,setcontrast:28,setctx:28,setdefaultpul:28,setdelai:28,setdn:28,setdrawcolor:28,setedrx:28,setedrxptw:28,setfont:[14,28,168,209,217,316],setfontmod:28,setframebuff:[28,109],setgpio:28,sethook:165,setjmp:376,setlevel:[28,176],setlight:53,setloc:165,setlocal:165,setmac:28,setmetat:[165,333],setmod:28,setnewsmscb:[28,120],setpath:28,setpaus:376,setpin:265,setpix:331,setpowersav:28,setpsm:28,setrang:28,setstanet:341,setstat:53,setstepmul:376,setstrt:252,sett:[28,265],settable_ev:376,settimeout:28,settz:28,setup0_process:252,setup:[12,28,38,39,40,41,43,44,45,46,47,48,50,52,53,55,60,61,62,63,64,65,68,69,70,73,74,75,79,91,94,100,101,104,116,131,132,159,163,170,171,172,175,177,178,192,193,194,195,199,200,201,202,209,210,217,265,269,328,337,339,340,345,360,371],setupbreatel:53,setupbuff:28,setupdevic:345,setupr:[170,171,172,193,194,195],setupvalu:165,setuservalu:165,setuuid:28,setvbuf:165,setwin:28,setxtal:28,seven:159,sever:[71,89,133,135,160,199,200,201,202,204,209,217,218,290,302,320,353,369,373,375,376],sfd:[28,118,174,205],sfdp:[188,189,190],sfud:[28,118,174,205,221,274,290,293],sfud_devic:[111,209,217],sfuddevic:[188,189,190],sgm2019:225,sh1106:124,sh1107:124,sh1108:124,sh:299,sha1:[28,31,105,167,279],sha1_stream:6,sha256:[28,31,167,272,308],sha256_stream:6,sha384:272,sha512:[28,167],sha:[272,279],shadow:[124,159],shake:[20,34,101,204,265],shall:[38,159,218,247,279,303,309],shape:[2,133,159,376],share:[30,65,208,209,217,341,342,364,369,376],sheet:[67,193,194,195,215,246,249,251,294,295,297],sheet_1:[166,184],shell:[353,391],shget:318,shield:[53,320],shift595:53,shift:[28,72,125,244,270,353,355,358,360,371,372,376],shipment:245,shop:[215,222,228,251,297],short_src:376,shortcut:[207,317,376],shorten:[96,159],shortest:376,shot:197,should:[2,5,15,38,77,78,92,113,115,124,131,159,198,207,209,211,215,217,218,235,252,265,266,269,281,286,303,320,323,324,326,333,375,376,378,391],show:[28,58,76,135,160,175,209,235,316,323,353,360,369,371,375,376],show_520:162,show_520_h:162,show_520_w:162,show_data:162,showimag:28,shown:[65,199,209,210,211,245,246,247,252,279,281,298,355,357,366,375],shown_dat:159,showonlin:207,shrink:[159,376],sht30:[25,209,217],shunt:357,shunt_voltag:52,shut:[174,196,205,235,369,373,376],shutdown:[18,28,54,89,93,130,159,235,252],si24r1:53,si24r1test:73,si:62,sibl:376,side:[10,72,105,113,115,159,247,289,355,357,373,375,376],sieg:162,sig:28,sigma:297,sign:[19,28,133,159,345,375,376],signal:[9,25,38,63,65,72,87,92,131,166,193,194,195,209,217,218,235,252,263,281,337,341,376],signatur:[19,105,167,265],signifi:375,significantli:218,silenc:176,silent:[84,176],silk:100,sim0:[92,265],sim1:92,sim:[92,120,265],sim_ind:[92,378,379],sim_pin:120,sim_wc:[92,120],simerr:66,simid:28,similar:[10,17,25,31,37,113,124,125,133,159,169,188,189,190,209,211,217,245,279,298,320,328,349,369,375,376],similarli:[159,300,307,375,376,377],simpin:28,simpl:[6,23,71,92,104,130,135,160,162,163,170,171,172,187,209,217,252,265,281,290,304,308,337,345,346,347,371,374,376,378],simpler:265,simplest:[18,93,346,348,375,379],simpli:[107,159,182,183,184,209,217,298,375,376,378],simplifi:[119,159,204,323,375,376,382],simsun_48:159,simul:[25,28,87,118,124,127,159,269,290,299,308,352,366,369,371,373,380],sin:[165,297],sinc:[15,19,65,133,159,207,209,245,247,251,252,265,281,286,298,353,355,360,366,376,377,391],sincer:353,sine:[218,369,376],singl:[7,30,35,38,57,65,87,91,93,103,104,109,130,135,160,174,205,209,217,247,252,265,270,271,290,297,323,327,328,330,349,371,375,376,377,378],singleshow:53,sinh:376,sink:247,sint:159,sit:159,site0:23,situat:[125,128,204,218,252,266,302,369,376],six:[6,53,159,360],sixth:[56,375],siyuan:324,size:[3,6,11,12,16,23,26,28,29,72,85,86,90,96,99,107,120,125,133,135,160,165,169,188,189,190,193,194,195,209,214,217,221,222,224,231,234,240,244,247,250,251,253,261,262,263,264,265,266,279,281,284,286,290,293,315,316,321,324,327,334,336,340,342,344,351,352],size_t:[99,301,324,326,327,328,330,345,376],sizeof:[133,302,332],skei:28,skill:345,skip:[29,115,159,200,201,202,315,375,378],slave:[26,65,96,115,170,171,172,192,209,217,240,252,269,297,339],slaveaddr:28,sleep1:[263,329],sleep2:[263,269,329],sleep:[28,70,85,86,101,107,125,181,208,218,223,229,250,257,264,265,269,290,297,329],sleepcount:297,slice:[281,376],slide:159,slider:[135,160],slider_:159,slider_cr:159,slider_demo:159,slider_get_valu:159,slider_part_bg:159,slider_part_ind:159,slider_part_knob:159,slider_set:159,slider_set_rang:159,slider_type_:159,slider_type_norm:159,slider_type_rang:159,slider_type_symmetr:159,slightli:[159,182,183,184,210,369,375],slip:355,slogan:113,slot:[92,286,376],slow:[1,25,46,63,105,159,204,207,209,217,247,252,281,286,289,324],slower:[25,90,92,159,210,274,291],slowli:[166,376],sm1:251,sm2:[19,265],sm2decrypt:28,sm2encrypt:28,sm2sign:28,sm2verifi:28,sm3:[28,251,265],sm3hmac:28,sm3updat:19,sm4:[19,251,265],sm4decrypt:28,sm4encrypt:28,sm7:251,sm:[28,92,118,265,270,272,291],small:[3,4,110,113,115,125,133,159,182,183,184,205,208,217,247,262,264,265,266,269,270,286,352,353,355,357,360,364,369,371,376,378,380],smaller:[11,92,159,247,375,376],smallest:[355,374,376],smart:[208,250,290],smartconfig:28,smartphon:159,smartpro:252,smartwatch:159,smd:257,smooth:159,smoothli:[209,217],sms_only_regist:92,sms_only_registered_roam:92,sn:28,snail:341,snap:[159,390],snippet:[265,376],snowman:124,snq:92,snr:[28,38,120],sntp:[28,120,263,265],sntp_connect:265,sntp_server:28,so:[4,15,62,72,76,92,100,101,110,117,120,121,125,132,133,159,162,166,167,168,174,204,207,209,217,218,235,245,247,252,262,263,265,269,282,289,291,298,302,327,328,344,349,352,360,366,369,370,373,375,376,378],soc:[1,72,77,89,113,125,135,159,160,161,163,164,169,176,197,198,204,207,209,211,223,228,229,236,245,266,268,282,285,290,309,311,312,315,316,317,346,347,348,351,382],soc_air101_v0008:309,soc_download:351,soc_v0001_esp32c3_rc2:285,soc_v0005_air105:236,soc_v0007_air101:223,soc_v0007_air103:229,soc_v0017_air101:[72,77],soc_v1001_ec618:315,soc_v1105_ec618:266,soc_v1105_ec618_ful:266,soc_v1105_ec618_tt:266,soc_v1108_ec618:266,soc_v1108_ec618_cloud:266,soc_v1108_ec618_ful:266,soc_v1108_ec618_tt:266,soc_v1108_ec618_tts_onchip:266,socket:[10,18,28,53,93,118,121,128,130,263,265,266,293,303,323,345,350,355,360,377],socket_ctrl:113,soft:[91,250,262,270,290,366],soft_kb_inc:114,softap:257,softi2c:25,softkb:28,softkeyboard:[28,118],softspidevic:115,softwar:[1,9,25,28,35,53,63,67,101,115,118,120,124,125,173,174,180,185,191,196,203,205,207,218,221,235,246,247,248,250,251,257,265,268,269,281,290,297,321,330,334,342,351,360,364,371,376],solari:376,sold:[355,357,360,384],solder:[282,286],solid:[124,247],solut:[38,209,217,250,252,265,268,290,315,321,334,342,369,374],solv:[13,17,25,100,211,218,245,252,265,298,302,316,317,336,375],some:[0,20,25,28,29,66,71,92,96,100,101,106,107,113,116,118,124,129,131,135,142,159,161,177,178,179,181,186,193,194,195,204,207,209,210,211,235,247,250,251,263,265,269,274,282,290,302,304,308,311,329,345,349,355,357,360,366,369,370,373,375,376,377,380],someon:376,someth:[15,58,119,159,207,209,217,322,375,376],sometim:[11,159,265,366,375,376],somewhat:376,song:168,soni:338,soon:[10,333],sop:369,sort:[159,165,264,272,320,336,375],sound:[1,4,264,265],sourc:[10,27,30,89,96,97,132,135,160,162,186,188,189,190,206,208,209,214,218,226,235,250,251,265,266,270,281,286,289,290,292,297,301,318,328,336,338,349,353,355,360,374,375,376,377,378],source_32k:28,source_main:28,source_sans_16:324,south:38,sp:240,space:[4,12,13,14,15,17,25,58,117,124,125,127,133,159,162,193,194,195,244,252,266,270,282,291,301,311,315,317,345,375,376],spacer:375,spacer_posit:159,spare:330,spawn:376,spe:[250,290],speak:[105,159,177,178,211,375],speaker:[1,264,274],spec_v1:193,special:[10,21,28,92,98,101,118,131,159,177,178,179,181,207,247,265,274,284,288,290,291,315,317,320,345,346,347,369,375,376],specif:[0,9,15,19,22,25,26,35,36,56,58,80,85,86,89,92,98,108,119,159,166,174,191,205,209,211,217,230,235,240,245,250,251,255,265,270,281,286,290,298,309,310,315,316,322,323,327,328,331,342,344,349,353,357,360,364,366,373,375,376],specifi:[1,3,6,7,9,15,29,35,38,71,72,77,78,87,94,96,98,99,101,103,104,111,113,115,117,119,121,122,124,131,133,159,174,196,198,205,263,265,290,321,323,324,331,334,335,341,342,345,353,355,366,371,375,376],specification_v1:[182,255],specified_script_:376,specimen:159,speech:[268,290],speed:[1,12,17,28,38,89,115,135,160,170,171,172,192,193,194,195,204,207,208,209,211,217,218,240,245,246,247,265,268,279,281,286,289,290,298,351,358,369,372,375,376],speed_knot:38,speed_kph:38,spell:381,spend:378,spent:378,spi0:[9,35,115,209,264,269],spi0_c:[225,269],spi0_clk:[225,235],spi0_csn:235,spi0_miso:[225,235,269],spi0_mosi:[225,235,269],spi0_scl:269,spi1:[115,252,269],spi1_c:[225,269],spi1_clk:225,spi1_csn:235,spi1_miso:[225,235,269],spi1_mosi:[225,235,269],spi1_sck:235,spi1_scl:269,spi2:115,spi2_c:281,spi2_ck:281,spi2_csn:235,spi2_miso:[235,281],spi2_mosi:[235,281],spi2_sck:235,spi3:115,spi4:115,spi5:231,spi5_clk:235,spi5_csn:235,spi5_miso:235,spi5_mosi:235,spi:[9,12,14,21,22,28,35,62,65,70,73,85,86,89,109,118,124,128,162,163,174,175,187,191,205,206,215,221,235,240,250,257,264,265,266,268,270,274,279,284,286,290,293,297,308,334,335,342,345,349,350,351,395,401],spi_0:[65,115,128],spi_12s_flag_bsi:252,spi_12s_flag_tx:252,spi_12s_getflagstatu:252,spi_1:115,spi_2:115,spi_2c:124,spi_3:115,spi_4:115,spi_bandr:28,spi_c:[28,62,124,188,193,194,220,242],spi_clk:[188,193,194,242],spi_cmd:252,spi_dc:124,spi_devic:[15,28,58,209,217],spi_eink:9,spi_flash:[188,189,190,193,194,195,209,217],spi_hw_4pin:124,spi_i25_dmareq_rx:252,spi_i2s_dmacmd:252,spi_i2s_dmareq_tx:252,spi_i2s_flag_bsi:252,spi_i2s_flag_rxn:252,spi_i2s_flag_tx:252,spi_i2s_getflagstatu:252,spi_i2s_receivedata:252,spi_i2s_senddata:252,spi_id:[9,28,53,86,115,124,339],spi_lcd:[35,163,209,217],spi_lora:86,spi_mcp2515:62,spi_miso:[62,65,188,193,194,220,242],spi_mosi:[62,188,193,194,220,242],spi_r:124,spi_rc522:70,spi_sck:[62,220],spi_si24r1:73,spi_spe:28,spic:124,spiclk:281,spiconfig:28,spics0:281,spid:281,spidevic:345,spidon:115,spiflash:[15,58,107,188,189,190,193,194,195],spihd:281,spiid:[12,28,163,188,189,190,193,194,195,339],spiid_or_spidevic:28,spinbox:[135,160],spinbox_cr:159,spinbox_decr:159,spinbox_decrement_event_cb:159,spinbox_demo:159,spinbox_incr:159,spinbox_increment_event_cb:159,spinbox_part_bg:159,spinbox_part_cursor:159,spinbox_set_digit_format:159,spinbox_set_padding_left:159,spinbox_set_rang:159,spinbox_set_step:159,spinbox_set_valu:159,spinbox_step_prev:159,spinner:[135,160],spinner_:159,spinner_cr:159,spinner_demo:159,spinner_part_bg:159,spinner_part_ind:159,spinner_type_:159,spinner_type_constant_arc:159,spinner_type_fillspin_arc:159,spinner_type_spinning_arc:159,spiq:281,spiwp:281,spix:252,spk:264,spl06:53,spl06_01:53,spl06_data:74,splice:[209,217],split:[28,135,160,376,378],spot:[87,289,341],spr_i2s_cetflagstatu:252,sprinkl:235,sprintf:376,sqrt:165,squar:[20,87,159,209,217,297,376],sram:[240,252,257,286,297,311],src:[159,307,309,311,312,317],srv:96,srv_uuid:28,ss:377,ssd1306:[124,168,209,307,308],ssd1306_128x32:124,ssd1309:124,ssd1322:124,ssi:297,ssid:[28,341],ssl:[18,28,113,265,272],ssllog:28,st7565:265,st7567:124,st7735:[35,163,175,209,290,307,308,398],st7735v:35,st7789:[35,395],st7796:35,st:252,sta:[18,93,113,130,131,341],stabil:[89,218,235,265],stabl:[247,263,353,364,369,371,376],stabli:[247,252],stack:[92,113,165,206,265,301,302,320,322,323],stack_to:376,staff:[381,384],stage:[126,159,286,351,352,376],stagger:92,stai:[252,369,376,378],staip:28,stamp:[281,286],stand:[159,376],standalon:[323,376],standard:[19,26,38,62,65,113,133,165,235,250,265,274,290,323,328,331,333,349,353,360,375],standbi:[85,86,92,107,208,270,369],standi:28,star:[25,301,391],start2:28,start:[0,5,9,10,15,20,25,28,29,35,37,38,53,58,92,93,94,96,101,107,108,109,110,111,113,115,124,130,131,135,160,163,166,168,174,188,189,190,193,194,195,198,199,200,201,202,204,205,209,211,218,220,221,225,235,252,265,274,290,297,299,302,305,308,311,312,317,321,323,324,328,333,334,341,342,345,351,352,353,355,366,376,377,378],start_angl:159,start_auto_clos:159,startraw:28,startswith:28,startup:[1,10,89,92,174,180,204,205,214,245,269,279,290,298,302,330,341,376],stat:[92,130,376],state:[20,28,34,38,53,70,92,95,101,113,114,118,119,120,132,133,135,160,204,208,218,235,250,263,265,269,290,291,298,321,334,337,342,345,357,366,369,375,376,377,378],state_check:159,state_default:159,state_disconnect:93,state_focus:159,state_mqtt:93,state_press:159,state_readi:93,state_sconnect:93,statem:[28,118,291,293],statement:[17,38,100,104,165,265,266,272,302,315,323],statement_:376,statements_and:376,station:[53,92,94,120,131,210,257,263,265,311,312,317,341,352,382],statist:[92,120,265,360,376],statu:[13,23,26,28,30,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,67,68,69,70,71,72,73,74,75,76,77,78,79,81,82,83,89,93,94,97,104,112,113,114,120,122,126,128,135,160,165,170,171,172,187,188,189,190,217,220,225,252,265,269,279,321,334,341,342,345,363,378,379],status:378,status_cod:333,stderr:376,stdin:[328,376],stdint:211,stdout:[328,376],step:[87,101,159,169,174,200,201,202,205,207,252,286,288,290,315,317,323,353,357,375,376],stepin:323,stepout:323,stick:[355,375],sticker:355,still:[1,22,71,101,113,125,126,130,159,169,209,217,250,265,266,269,274,282,289,290,291,299,315,316,323,332,353,355,375,376],stm32cubeprogramm:252,stm32f103c6t6:251,stm32f103c8t6:251,stm8:371,stmflashload:252,stock:390,stop:[28,63,89,101,125,131,159,174,199,200,201,202,205,209,217,245,250,251,281,286,290,298,302,321,329,330,334,340,341,342,373,375,376,379],stop_bit:28,stopap:28,storag:[15,58,159,169,235,263,324,344,376],store:[1,3,4,11,14,15,26,30,58,65,71,90,113,115,125,127,159,169,208,274,309,325,334,336,344,346,347,348,349,355,360,366,375,376,378,379,381],storge_loc:[28,53],stori:308,str1:375,str2:375,str3:375,str4:375,str:[3,28,133,168,209,217,331,340,375,376],straightforward:[274,376],strategi:[159,376],strawberri:[292,353,358,369,371,372],strcmp:159,stream:[3,28,90,133,163,265,325,376],strength:[92,131,341,378],stress:[87,89],stretch:159,strftime:[97,376],strict:252,strictli:[345,355,360,370,373,376],string:[1,2,3,4,6,7,9,11,12,13,14,15,16,17,18,19,20,22,23,24,25,26,27,28,29,31,33,35,37,38,47,51,54,56,57,58,59,62,65,66,70,71,73,78,80,81,83,84,85,86,87,89,90,92,93,94,95,96,97,98,102,104,105,107,108,109,110,111,112,113,115,118,119,120,121,124,125,126,127,128,130,131,132,133,134,159,165,169,170,171,172,174,180,188,189,190,192,193,194,195,203,205,209,217,265,274,301,317,323,331,345,346,347,351,377,378],string_:376,string_can:376,stringdata:169,strip:165,strong:[28,118,159,235,376],strongli:[122,264,311,312,328],strt:252,strtoll:[28,265],struct:[302,324,327,332,336,343,376],structur:[4,6,89,110,111,159,165,206,300,302,311,312,315,317,320,321,334,342,375,378],stuck:[109,286],studi:[209,217,247,375,380],studio:[207,319],sty_en:28,sty_zh:28,style:[28,135,160,168,174,205,265,268,290,321,334,342,360,376],style_cr:[28,159],style_delet:28,style_init:[87,159],style_lin:159,style_list:87,style_list_cr:28,style_list_delet:28,style_list_t:28,style_screen_label4_main:159,style_screen_label_main:159,style_set_image_recolor:159,style_set_image_recolor_opa:159,style_set_line_color:159,style_set_line_round:159,style_set_line_width:159,style_set_text_color:159,style_set_text_font:159,style_t:[28,159],su:[159,272],sub:[25,121,159,165,209,217],subcallback:[377,378],subchr:28,subject:[87,93,376],sublibrari:376,submask:28,submiss:342,submit:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,114,115,116,117,119,121,122,123,124,125,126,127,128,129,130,131,132,133,134,327],submodul:[313,376],subnet:[128,341],subroutin:375,subscrib:[28,34,38,49,50,53,62,85,86,92,96,113,114,120,123,131,174,205,209,217,302,377,378],subscript:[54,92,96,133,302,350,378,379],subsequ:[35,101,113,115,124,125,133,159,188,189,190,245,252,375,376],subset:376,substandard:375,substitut:376,substr:[375,376],subsystem:240,subtl:38,subtract:[2,159,266,375,376],subtyp:376,succ:[15,25,26,92,113,115],succe:[112,232,330,376],succeed:[27,101,376],success:[1,3,4,6,7,9,11,12,13,15,16,17,18,19,20,21,24,25,26,27,29,33,35,36,38,39,40,41,43,45,47,48,50,52,55,56,57,58,59,61,63,64,67,68,69,71,73,74,75,76,79,82,83,86,87,88,89,90,91,92,93,94,95,96,97,98,101,102,103,105,106,108,109,110,111,112,113,115,116,120,121,123,124,125,127,129,130,131,132,133,166,169,170,171,172,188,189,190,211,240,245,252,263,265,315,316,317,330,339,340,341,345,357,376,378],successfulli:[1,3,15,29,56,65,73,93,94,96,101,105,110,113,115,131,133,188,189,190,209,252,265,282,286,308,316,339,340,345,351,375,376,379],sudo:[163,318],suffici:[90,125,252,376],suffix:[28,209,217,266,271,311,312,332,344,376],sugar:376,suggest:[159,300,301,369,376],suit:[6,268,290,352],suitabl:[9,38,89,115,159,162,247,269,279,315,317,332,374,375,376,382],sum:[159,375,376],summari:[290,291,345,346,347],sundai:[67,376],sunt:159,super_mario:95,superimpos:369,superpro:252,supplement:[107,121,240,376],supplementari:[293,323,375],suppli:[0,1,65,101,159,166,186,209,217,218,234,247,263,284,288,289,290,297,308,353,360,363,364,369,371,376,390],supplier:353,support:[0,1,4,5,6,9,12,13,14,17,18,20,21,22,23,24,25,26,28,33,35,36,38,49,53,56,57,63,65,66,71,78,85,87,89,90,92,96,101,103,104,105,106,110,112,113,115,116,117,118,120,123,124,125,126,127,129,131,134,135,160,162,165,179,188,189,190,193,194,195,204,208,209,214,217,226,230,235,240,246,247,250,251,254,257,262,263,264,265,266,269,270,272,274,279,281,286,290,296,297,299,301,309,316,320,321,324,328,330,331,334,336,338,342,345,349,352,353,355,360,363,364,370,371,373,375,377,378,382,392],support_empti:376,suppos:[159,300,375,376,378],sure:[29,35,56,87,96,120,159,209,217,218,232,266,269,271,301,308,315,316,355,375,376],surg:[235,355,369,375],surpris:375,surround:[193,194,195,376],suspend:[209,217,252,281,321,334,342,376,377,378,379],svc_handler:211,svd:291,svn:303,svr_uuid:28,sw1:159,sw2:159,sw:[211,245,247,250,290,298],swap:[28,376],swclk:[211,215,252],swd:[211,214,245,247,252,290,297],swd_clk:[245,246,298],swd_dio:[245,246,298],swdclk:[245,246,298],swdio:[211,215,245,246,252,298],swing:[135,160],swipe:[159,265,308,317,349],switch_:159,switch_creat:159,switch_demo:159,switch_get_st:159,switch_off:159,switch_on:159,switch_part_bg:159,switch_part_ind:159,switch_part_knob:159,switch_toggl:159,swm181:[290,294,295,296,297],swm181_lib:297,swm181_pcb:[290,296],swm181cbt6:[290,294,295],swm181xb:298,swm81:297,sx1268:[85,86],sxx32:252,sxx32f103:[250,251,290],sxx32f1xx:[250,290],sxx32f1xx_dfp:252,sxx32f1xx_hal_msp:252,sy:[9,15,20,22,23,25,26,28,34,35,38,39,40,41,42,43,44,45,46,47,48,49,50,52,54,55,56,57,58,60,61,62,63,64,65,66,68,69,70,71,72,73,74,75,76,77,78,79,81,82,83,85,86,87,89,91,92,94,96,101,103,107,109,113,114,115,118,123,129,130,131,159,162,163,166,168,169,170,171,172,174,177,178,179,182,183,184,186,187,188,189,190,192,193,194,195,199,200,201,202,205,209,217,266,299,300,302,318,319,321,330,334,340,342,344,345,349,377,378],symbol:[1,4,9,35,99,124,133,135,160,247,291,315,332,345,350,366,375,376],symbol_:159,symbol_backspac:159,symbol_battery_ful:159,symbol_bel:159,symbol_clos:159,symbol_directori:159,symbol_dummi:159,symbol_edit:159,symbol_fil:159,symbol_left:159,symbol_minu:159,symbol_ok:159,symbol_plu:159,symbol_right:159,symbol_sav:159,symbol_set:159,symbtimeout:[85,86],symmetr:[6,159,167],symmetri:[135,160,297],sync:240,synchron:[53,113,120,170,171,172,192,193,194,195,209,217,218,252,328,351,353,358,371,372],synergi:165,syntact:376,syntax:[165,301,305,345,374,375],synthes:[274,308],synthesi:[271,274,321,334,342],synwit:298,sys_pub:[333,342],sys_send:[59,121],sys_wait:[113,121],syscfg:211,sysplu:[9,23,28,59,118,266],syst:18,system:[6,10,11,12,15,28,29,30,38,56,57,58,87,90,92,97,107,108,111,118,135,160,165,174,191,197,204,205,208,209,211,217,221,235,240,244,245,247,250,251,261,263,265,268,269,281,286,290,297,298,299,302,319,320,321,322,324,326,334,342,343,344,346,347,351,382],system_air001xx:[214,290],systemclock_config:211,systemcoreclock:298,systeminit:298,systick_config:298,systick_handl:[211,298],sz:[124,376],t0h:28,t0l:28,t1:[0,165],t1h:28,t1l:28,t2:[0,165],t3324:[92,94],t3412:94,t5:274,t9000:252,t:[9,12,17,21,24,25,28,41,44,47,57,58,71,74,89,92,97,106,108,109,110,113,159,162,163,165,186,200,201,202,207,209,217,218,245,250,266,274,289,290,298,299,302,311,312,317,330,333,337,345,346,348,353,355,360,375,378],ta1:159,ta:159,ta_cursor_last:159,ta_event_cb:159,ta_loc:159,ta_set_edge_flash:159,ta_set_insert_replac:159,ta_set_scroll_propag:159,ta_temp:28,tab1:159,tab2:159,tab3:159,tab:[28,135,160,209,245,247,298,369],tab_pag:159,tab_pos_top:159,tabal:23,tabl:[1,3,6,8,9,12,13,14,17,18,23,24,25,27,29,33,35,37,38,40,41,43,46,47,48,52,54,55,57,60,61,62,63,64,65,67,69,70,71,74,75,77,78,79,80,85,86,89,90,91,92,93,94,96,97,101,102,106,111,113,114,117,121,124,125,126,130,131,133,135,160,165,169,174,191,205,209,217,221,226,233,235,243,260,265,269,272,281,282,286,290,300,302,322,332,333,336,344,345,350,351,357,358,366,369,372,378],table_:376,table_cell_style_cnt:159,table_cr:159,table_demo:159,table_i:376,table_part_bg:159,table_part_cell1:159,table_part_cell2:159,table_part_cell3:159,table_part_cell4:159,table_ref:376,table_set_cell_align:159,table_set_cell_crop:159,table_set_cell_typ:159,table_set_cell_valu:159,table_set_col_cnt:159,table_set_col_width:159,table_set_row_cnt:159,table_typ:159,tableconstructor:376,tabul:376,tabview:[135,160],tabview_:159,tabview_add_tab:159,tabview_cr:159,tabview_demo:159,tabview_part_bg:159,tabview_part_bg_scrl:159,tabview_part_ind:159,tabview_part_tab_bg:159,tabview_part_tab_btn:159,tabview_set_tab_nam:159,tabview_tab_pos_non:159,tac:28,tag:[28,109,135,160,188,189,190,265,345,349,376,378],tagtyp:70,tail:[4,117,331,376],tailor:375,take:[0,3,10,30,71,84,88,91,92,101,102,113,133,159,162,163,165,193,194,195,232,252,265,266,274,301,302,311,312,315,317,320,327,331,333,350,351,352,355,357,363,373,375,378],taken:[9,71,87,124],talk:[159,163,376],tamb:235,tan:165,tangent:376,tanh:376,taobao:[215,222,228,247,251,261,297,353,369,371,384,395,398,401,404],tar:376,target:[27,28,37,38,97,188,189,190,211,245,265,266,269,271,298,317,360,369,375,376],task1:[121,379],task1_don:379,task2:379,task3:379,task:[17,23,59,66,71,94,119,121,174,205,206,265,321,334,342,345,346,348,375,376,377,378],task_:378,task_a_cnt:378,task_b_cnt:378,task_timer_id_max:378,taskdel:28,taskdisable_interrupt:252,taskexec:302,taskget:302,taskid:378,taskinit:[15,22,23,28,39,40,41,42,43,44,45,46,47,48,50,52,55,57,60,61,62,63,64,65,66,68,69,70,71,72,73,74,75,76,77,78,79,81,82,83,87,92,109,113,131,163,166,168,169,170,171,172,177,178,179,182,183,184,187,188,189,190,192,193,194,195,197,209,217,299,302,318,319,333,340,345,377,378],taskinitex:[28,59],taskl:53,tasklt:53,tasknam:[28,53,113],tasktimerid:378,tasktimerpool:378,tau:94,tautim:28,tax:353,tb:102,tc:[250,290],tcount:119,tcp:[31,93,113,130,265,270],tcptcp:93,tcs3472:53,td:272,tdd:[92,262,270],te:252,teach:[247,282],tear:[289,355],technic:[211,226,245,266,290,291,298,353,371,376],techniqu:375,technolog:[182,183,184],telecom:[112,120,263,265,270,272],tell:[159,375],temp:[46,60,64,71,375],temp_data:163,tempbit:[170,171,172],temperatur:[0,25,28,48,53,64,71,109,118,170,171,172,206,209,217,218,220,225,235,240,242,265,291,330],templat:[211,307,320,376],tempor:159,temporari:[89,309,315,375,376],temporarili:[65,92,113,159,291,375,376],ten:[357,366,376],tencent:[31,51,54,146,254,265],tengxun:[53,265],term:[159,235,263,321,334,342,376,381],term_sequence_to:376,termin:[159,163,252,353,355,369,376,378],test1:197,test2:197,test:[9,19,21,29,31,35,38,57,65,71,72,77,81,89,92,107,131,138,146,149,155,159,166,169,177,178,179,188,189,190,193,194,195,197,199,204,209,210,211,217,218,221,226,232,234,250,265,266,272,284,290,296,307,308,309,324,339,340,345,346,348,353,355,357,363,366,369,371,376,377,378,380,382],test_123123:333,test_data:197,test_json:309,testabl:303,testdemo:377,tester:357,testlbsloc:56,testmsgpub:377,testmsgsub:377,testsm:19,text:[11,90,100,112,124,135,160,205,247,274,315,318,332,352,373,376],text_line_spac:159,textarae_:159,textarea:[135,160],textarea_:159,textarea_add_char:159,textarea_add_text:159,textarea_cr:159,textarea_cursor_down:159,textarea_cursor_left:159,textarea_cursor_right:159,textarea_cursor_up:159,textarea_del_char:159,textarea_get_text:159,textarea_part_cursor:159,textarea_set_scroll_propag:159,textarea_set_text:159,textur:159,texture_atla:159,tf:[12,14,53,108,127,163,209,217,265,349],tf_c:[12,163],tft:[240,291,371,392,395,401],tft_:392,tg_pr:159,tgz:313,th:375,than:[0,5,10,11,25,29,30,32,37,71,80,89,90,92,96,113,119,124,133,159,170,171,172,177,178,179,204,208,209,217,218,240,247,248,250,251,263,265,274,290,291,301,315,328,330,343,355,357,360,366,370,373,375,376,378],thank:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,114,115,116,117,119,121,122,123,124,125,126,127,128,129,130,131,132,133,134,301,366],that_long:376,the_:376,the_act:376,the_al:376,the_bord:376,the_catch_i:376,the_continu:376,the_d_th:376,the_error:376,the_integration_load:376,the_iter:376,the_load:376,the_mag:376,the_meta:376,the_metatable_:376,the_n:376,the_n_catch:376,the_n_equ:376,the_n_her:376,the_n_lay:376,the_n_level:376,the_name_:376,the_not:376,the_pan:376,the_protect:376,the_step:376,the_upp:376,the_y_at:376,thei:[159,167,252,264,317,375,376,378],them:[159,166,245,247,252,265,269,300,323,327,355,357,364,369,375,376,378,381],them_primitive_:376,theme:[54,87,93,135,160],theme_appli:159,theme_get_font_smal:159,theme_set_act:28,theme_spinbox_btn:159,themselv:[317,376],theoret:[209,217],theori:[315,375],therebi:159,therefor:[92,159,252,286,315,328,355,366,376,378],thermal:[286,369],thi:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,138,142,146,149,155,159,160,161,162,164,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,209,210,211,217,218,224,225,226,228,230,232,245,247,248,252,254,263,264,265,266,269,270,271,282,286,289,290,298,300,301,302,304,309,311,312,315,316,317,320,322,323,325,326,327,328,331,333,339,341,343,344,345,349,350,352,355,357,360,363,366,369,370,373,375,376,377,378,379,391],thick:[28,159],thin:[159,375],thinbug:299,thing:[31,159,175,209,217,218,252,263,341,375,376,378],think:[159,209,217,290,350,375],third:[25,56,159,170,171,172,250,290,345,349,360,373,375,376,378,379],third_exp_:376,this_meta:376,those:[92,376,379],though:376,thought:[209,217],thousand:376,thread:[5,94,121,165,265,290,302,314,320,327,341,352,378,379],three:[9,25,31,35,53,65,100,159,162,204,208,209,211,217,235,263,266,291,302,328,331,369,375,376,378],threshold:[28,92,159,209,217],through:[0,3,10,20,25,38,51,71,87,90,92,94,101,111,132,159,187,197,198,200,201,202,204,208,209,210,211,217,218,223,229,235,250,266,274,281,286,290,297,300,308,311,312,321,322,323,324,327,328,330,334,342,349,351,353,355,366,370,375,376,377,378],throughout:[188,189,190,376],thrown:376,thu:[159,208,265,376],ti:247,tick1:28,tick2:28,tick64:[28,179],tick:[20,28,30,38,97,120,135,160,174,180,198,205,211],tick_int_prior:211,tick_per:89,tick_str:89,tickperu:179,ticks1:[177,178,179],ticks2:[177,178,179],tid:[119,197],tie:53,tielview:159,tight:87,tighten:355,tightli:355,tiktok:381,tile1:159,tile2:159,tile3:159,tile:[135,160],tileview:[135,160],tileview_:159,tileview_add_el:159,tileview_cr:159,tileview_demo:159,tileview_set_edge_flash:159,tileview_set_tile_act:159,tileview_set_valid_posit:159,tim1_ch4:252,tim1_etr:252,tim2:[250,290],tim2_ch1_etr:252,tim2_ch2:252,tim2_ch3:252,tim2_ch4:252,tim2_remap:252,tim3_irqhandl:252,tim5:[250,290],tim:[250,290],tim_clearitpendingbit:252,tim_cmd:252,tim_getitstatu:252,tim_it_upd:252,tim_itconfig:252,tim_opmode_singl:252,tim_selectonepulsemod:252,tim_setcount:252,time:[1,3,4,10,11,12,15,20,23,24,26,28,30,32,37,38,42,53,54,56,57,58,65,71,87,89,90,94,96,101,109,112,113,118,119,120,125,127,135,160,162,165,170,171,172,186,193,194,195,209,211,217,218,223,229,232,235,240,245,250,254,263,265,274,281,286,290,298,302,309,316,318,327,328,330,345,355,357,360,369,371,373,375,377,378,379,380],time_m:159,time_t:328,time_tick:28,time_u:28,timea:28,timeb:28,timeout:[23,28,53,58,71,87,93,113,120,176,198,209,217,265,302,327,330,378,379],timeout_tim:265,timer0:30,timer:[17,28,30,42,67,87,101,107,118,119,125,129,165,174,181,199,203,205,209,215,217,221,226,234,240,250,251,265,279,284,290,291,297,302,321,322,327,328,329,334,342,378],timer_handl:302,timer_id:[101,330],timer_start:[28,378],timer_stop:[28,330,378],timerid:378,timerloopstart:[20,28,58,129,197,199,200,201,202,266,377],timerout:330,timerpool:378,timerstart:[28,107,197,209,217,377],timerstop:[28,107,197],timestamp:[6,31,97,106,250,265,290],timezon:[28,94,265],timx:252,tin:286,tinder:366,tinyml:208,tip:[207,299,375],titl:[38,135,160,320],tkip:341,tl:[31,54,113,254,257,265,268,290],tld:[343,349],tm1637:53,tm1638:309,tm1640:53,tm1650:53,tm1650_kcb:78,tm8211:26,tm_hour:48,tm_mdai:48,tm_min:48,tm_mon:48,tm_sec:48,tm_wdai:48,tm_year:48,tmp:[47,117,309],tmpfile:165,tmpname:165,tname:376,to32:28,to64:28,to_:376,to_garbag:376,to_set_:376,tobase32:28,tobase64:[6,28],toc:159,tocod:28,todai:[9,35,124,159,163,375],today_d:159,todo:[34,114,126,136,137,139,140,141,143,147,148,150,151,152,153,154,156,157,158,168,216,237,238,276,278,308,322,323,328,386,394,397,400],togeth:[101,159,263,323,355,357,375,376,384],toggl:[28,159,289,360,370],tohex:[2,11,19,28,56,65,70,89,90,92,96,98,99,102,105,110,128,131,167,177,178,179,187,192,193,194,195,199,209,217,350],toidx:376,tointeg:165,token:[28,71,376],tolumb:375,tone:159,tonumb:[117,165,375],too:[87,100,113,159,166,204,207,218,281,286,302,315,316,317,327,355,357,369,375,376,390],tool:[13,17,89,101,104,159,205,210,215,218,245,250,260,281,290,299,319,320,344,353,364,369,371,375,376,380,382],toolbar:211,toolchain:[315,318],top:[9,35,124,133,159,210,247,274,302,345,360,366,373,376],top_fit_typ:159,topic:[28,53,115,302,333,342,375],toss:282,tostr:[28,165,375],total:[12,13,16,17,23,26,30,38,70,92,107,111,159,166,170,171,172,183,218,240,252,266,279,291,320,321,334,336,342,343,344,351,376,378],total_count:326,total_kb:12,total_len:344,total_sat:38,total_sector:12,totp:[28,265],touch:[28,87,118,120,159,226,247,290,369,375],touch_sensor:230,touchkei:[28,118,230],touchkey_inc:123,tovalu:28,tp:[28,376],tpname:28,trace:[218,235,376,382],traceback:165,traceswo:[250,290],track:[208,263],tradit:[96,115],traffic:92,trail:376,train:92,transceiv:[125,199,200,201,202,209,217],transfer:[28,38,72,132,170,171,172,193,194,195,200,201,202,209,217,250,265,290,302,322,339,358,369,372,376],transfer_done_top:28,transform:[2,20,159,252,375,376],transit:[87,132,159,266],translat:376,transmiss:[25,32,65,92,101,113,115,130,167,170,171,172,199,200,201,202,209,217,240,252,265,266],transmit:[12,92,110,113,115,131,199,200,201,202,208,209,217,252,286,332],transmitt:[199,200,201,202,209,217],transpar:[124,135,160,381],transplant:[247,250,290],transport:113,travers:[376,378],treasur:[353,355],treat:[159,375,376],treatment:376,tree:[35,211,376,383,393,396,399],tri:[92,274,376],trial:26,triangl:124,trick:[357,358],trigger:[20,67,101,107,125,173,174,205,209,217,250,264,290,297,298,302,323,328,337,353,360,366,376],trim:28,trimmer:[135,160],trimtrailingwhitespac:207,triod:[248,251],tripl:[31,93],triplet:31,trng:[28,96],troubl:301,troubleshoot:[221,252,290],troublesom:[71,187,209,217,302,332,333],true_track_degre:38,truli:92,truncat:[29,133,265,349],ts:94,tsl2561:53,tsl2561_data:79,tssop20:214,tstg:235,tt:[26,28,265,266,268,270,290],ttf:159,ttl:[199,200,201,202,281],tts_onchip:266,tube:[53,72,218,369],tune:[30,125],tupl:31,ture:134,turn:[0,1,5,7,10,20,25,27,35,38,49,66,71,77,78,92,93,101,103,107,113,119,123,124,127,129,130,131,159,166,174,181,185,196,204,205,209,211,217,235,247,250,265,281,286,289,290,308,321,334,336,342,353,355,360,370,371,376,379],turnkei:266,turnov:290,tutori:[20,99,115,119,125,133,135,161,173,180,185,191,196,203,207,209,210,214,217,221,226,232,234,243,250,268,284,286,290,291,296,301,310,311,312,317,345,352,355,366,379],tuya:[28,54],tv:218,twai:286,twice:[159,250,265,274,290,375,376,378],twinkl:209,two:[9,12,20,23,35,38,87,89,93,124,159,162,166,170,171,172,174,180,188,189,190,193,194,195,199,203,205,207,209,211,217,219,224,225,226,228,231,235,250,253,257,262,263,264,265,269,281,286,289,290,297,302,315,317,323,336,353,357,366,375,376,378,379,388],tx0:218,tx:[26,28,53,199,200,201,202,209,215,217,245,246,286,298],tx_:113,tx_done:86,tx_hwtimer_id:28,tx_ok:113,tx_pin:28,tx_timeout:86,txbuff:28,txconfig:28,txd:215,txfp:[250,290],txpacket:53,txstat:28,txt:[18,29,38,97,108,112,134,159,188,189,190,209,217,266,317,349],type:[0,1,3,5,7,8,9,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,82,83,84,85,86,87,88,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,108,109,111,112,113,114,115,116,117,119,120,121,122,123,124,125,126,127,128,129,130,131,132,134,135,160,165,169,174,188,189,190,203,205,235,252,264,265,269,274,281,286,289,290,297,309,315,316,321,322,327,331,334,336,342,344,345,346,347,351,355,358,360,369,370,372,373,377,378,379],type_font:316,type_funct:376,type_rect:159,type_si:10,type_thread_:376,type_usr:10,typec:[204,247,281,353,363,370],typedef:[324,332,336,343,376],typic:[1,5,25,36,38,87,89,131,159,209,211,217,218,268,290,358,366,369,372,376],tz:28,u0_rx:281,u0_tx:281,u16:133,u1_rx:[199,200,201,202],u1_tx:[199,200,201,202],u32:133,u4:290,u64:133,u8:133,u8g2:[8,14,28,118,126,168,265,266,270,293,311,316,336],u8g2_font_unifont_t_symbol:124,u8g2_get:28,u8g2_load:28,u:[127,159,165,246,247,382],uart0:[104,125,200,201,202,209,217,218,264,265,269,279,281],uart0_ct:235,uart0_rx:[220,225,235,242,269,281],uart0_tx:[218,220,225,235,242,259,269,281],uart1:[125,174,199,203,205,209,217,264,265,269,281],uart1_ct:235,uart1_rt:235,uart1_rx:[209,217,220,225,235,242,259,269,281],uart1_rxd:269,uart1_tx:[209,217,220,225,235,242,259,269,281],uart2:[38,89,263,264,265,269],uart2_ct:235,uart2_rt:235,uart2_rx:[220,225,235,242,263,269],uart2_tx:[220,225,235,242,269],uart3_ct:235,uart3_rt:235,uart3_rx:[220,225,235],uart3_tx:[220,225,235],uart4_rx:[220,225],uart4_tx:[220,225],uart5_rx:225,uart5_tx:225,uart:[3,28,38,81,89,92,104,118,132,174,177,178,198,205,206,221,235,240,257,263,265,268,279,281,286,290,297,323,327,332,334,335,342,350],uart_br:53,uart_data:92,uart_id:[28,53,125,209,217],uart_recv_id:[209,217],uart_tx:125,uartid:[82,83,199,340],uartimeout:[209,217],uarttask:[209,217],uatt0_rx:259,ubuntu:315,uc1701:124,uco:378,ucs2:27,ucs2b:27,ucs2betoutf8:27,ud:[326,328,345,376],udata:[11,90,165],udelai:28,udisk_attach_sdhc:28,udisk_detach_sdhc:28,udp:[53,113,265,270],udpsrv:53,uev:252,ufont:[28,118],ui:[168,207,266,270,274,318,319,363,371],ui_upd:168,uid:[53,209,217],uint16_t:[252,324,332,336,343],uint32:331,uint32_t:[87,159,211,252,322,324,325,327,329,330,332,336,339,340,343,345],uint64:89,uint64_t:302,uint8:[331,332],uint8_t:[211,252,324,325,328,329,332,336,339,340,343],uion:332,uiot:131,ulink2:252,ullamco:159,ult:165,ultim:262,ultra:[206,247,265,382],unabl:[214,218,265,290,291],unambigu:303,unari:376,unauthor:167,uncertain:376,unchang:[133,378],uncheck:[135,160],uncom:[311,312,317],uncompress:28,uncreat:376,undeclar:375,undefin:376,under:[14,22,24,28,66,71,97,118,159,188,189,190,209,211,218,235,245,265,268,289,290,298,301,315,318,319,323,355,357,371,376],underli:[7,12,22,26,28,29,38,65,87,91,92,100,101,113,118,122,124,129,159,165,181,198,205,264,265,266,301,316,319,328,330,332,352,376,382],underlin:[345,376],underscor:[345,376],understand:[71,128,159,206,269,299,301,355,360,376,377,378],understood:[35,375,378],undervoltag:[240,297],undirect:96,undiscover:96,unequ:[133,376],unexpect:[159,209,217],unfamiliar:378,unfil:67,unfinish:376,unhid:159,unicod:[27,124,159,336,376],unicode_max:336,unicode_min:336,unicode_w:336,unicom:[120,263],unifi:[28,118,159,247,274,344],unifont_t_symbol:14,uniform:[265,324,376],uniformli:[316,376],uninstal:247,union:376,uniqu:[71,89,92,93,128,174,180,205,302,376,378,379],unique_id:[10,28,54,71,92,177,178,179,291],unit:[0,1,7,10,12,13,17,20,23,25,26,36,54,64,85,86,89,92,93,94,96,101,106,109,122,123,125,128,130,166,235,252,265,274,309,330,357,369,373,375,376,378,379],univers:[96,188,189,190,199,200,201,202,204,209,217,231,247,324,360,376],unix:376,unknow:92,unknown:[37,39,40,41,42,43,44,45,46,47,48,49,50,51,52,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,72,73,74,75,76,77,78,79,81,82,83,89,92,94,97,101,112,114,122,126],unknwn:96,unless:[65,101,102,119,122,159,218,263,322,376],unlik:[252,274,300,375,376],unlimit:265,unload:87,unlock:[92,98,391],unnecessari:369,unop:376,unpack:[6,28,118,165,209,217,265,331,333,350,378],unplug:204,unposit:38,unpredict:376,unprotect:[376,378],unreach:376,unread:376,unreason:265,unregist:[92,341],unreli:369,unrepres:376,unrespons:25,unrol:376,unscii:159,unsign:[2,99,133,274,332,350,376],unsignen:133,unsold:252,unstabl:357,unsubchr:28,unsubscrib:[28,53,96,378],unsuccess:290,unsupport:[127,252],until:[5,25,101,113,163,286,323,376,378],unus:[247,378],up:[12,13,17,19,20,22,30,35,62,85,87,92,94,96,101,104,106,110,112,113,115,121,122,131,135,160,165,181,182,183,184,193,194,195,200,201,202,209,211,215,217,220,221,223,225,229,235,240,245,247,250,251,252,257,265,269,281,286,290,297,308,309,323,327,329,336,337,349,353,355,360,366,371,375,378,379,390],upcom:363,updat:[6,15,23,35,66,71,87,89,94,96,120,124,135,160,168,205,210,244,250,252,261,263,265,290,297,308,310,314,315,323,345,366,373,376],updatecellinfo:28,upgrad:[17,28,53,100,107,118,245,246,247,251,257,265,268,274,281,286,290,298,353,355,363,377,382],uplink:92,uplinkb:92,uplinkgb:92,upload:[10,18,71,127,209,210,217],upon:376,upper:[9,35,87,91,124,159,165,207,245,252,355,369,375],uppercas:[6,159,345,375,376],upstream:92,upvalu:376,upvalueid:165,upvaluejoin:165,urg:303,uri:[24,28],url:[28,58,117,265,345,375],urlencod:[23,28],us:[0,1,3,4,5,6,7,8,9,10,12,13,14,15,16,17,20,21,22,23,25,28,29,30,32,33,34,35,38,39,40,41,42,43,45,46,47,48,50,52,53,55,56,57,58,59,60,61,62,63,64,65,66,68,69,70,71,72,73,74,75,76,79,81,82,83,87,89,90,92,93,94,96,97,100,101,104,105,106,107,108,109,113,115,117,118,119,120,122,124,125,128,130,131,132,134,135,159,161,163,165,166,167,168,169,170,171,172,174,175,176,177,178,179,181,182,183,184,186,187,191,192,193,194,195,198,199,203,204,205,207,208,209,210,214,217,218,228,232,235,245,248,250,251,254,255,257,259,263,264,265,266,269,270,271,272,274,282,284,286,289,290,292,296,297,298,299,300,301,303,306,308,309,310,311,312,315,317,318,319,320,321,323,324,325,326,328,333,334,335,336,341,342,343,344,345,346,348,350,351,352,353,355,358,360,364,366,370,371,372,373,374,375,377,378,385,388,390,392,395,398,401,404],usag:[10,19,26,39,40,41,42,43,44,45,46,47,48,49,50,52,55,56,58,60,61,62,63,64,65,66,68,69,70,72,73,74,75,76,77,79,80,81,82,83,89,92,94,96,105,130,131,135,160,174,205,221,250,251,265,290,304,308,332,345,353,355,360,366,371,376,378],usart1_ct:252,usart1_rt:252,usart:[215,250,290],usb:[3,6,12,28,101,113,118,199,200,201,202,204,209,217,234,240,246,250,251,265,269,270,279,281,286,289,290,293,323,352,353,355,358,360,363,364,371,372,373,382],usb_d:281,usb_istr:252,usb_uart:265,usba:247,usbapp:[28,118],usbclk:248,usbdm:252,usbdp:252,use_full_assert:211,use_lvgl_simsun_48:159,use_spiid_init:[188,189,190],use_zbuff:[200,201,202],useless:[0,252,351],user:[1,3,6,10,13,17,18,23,28,32,54,56,58,65,66,78,84,92,93,94,101,107,113,127,159,166,167,169,170,171,172,174,176,177,178,179,188,189,190,193,194,195,198,205,208,209,214,215,233,245,247,252,265,266,269,279,290,297,298,303,306,307,308,320,326,327,328,329,332,333,337,339,340,341,344,345,346,348,353,355,358,360,364,366,369,371,372,376,378,379,381],user_data:113,user_flag:28,user_guide_cn:289,user_msg:197,user_nam:[28,31],user_stop:1,userapn:28,userdata:[4,6,9,13,14,15,17,21,23,27,29,35,37,58,59,86,87,93,110,111,115,124,126,130,132,159,376],userid:54,userkei:54,usernam:[28,92],usim_det:269,using_non_wrapping_output_buf:90,usleep:116,usr:376,usual:[0,12,23,33,36,38,71,87,96,97,98,101,102,104,105,106,107,108,110,113,119,120,122,127,129,132,159,166,175,204,209,217,218,235,266,300,308,311,312,315,316,320,323,327,329,336,343,349,366,369,376],usual_wrap_rul:376,ut:159,utc:[38,97,106,263],utf16:324,utf8:[27,35,120,124,165],utf:[159,165],util:[17,115],utran:92,uuid:[28,290],v0001:107,v0004:344,v0007:[265,344],v0:[169,252],v1002:[265,269],v1016:269,v1020:[256,290],v1021:[256,290],v1103:[263,266,268,269,271,290],v1104:[268,274,290],v1105:[266,268,290],v1106:[262,268,290],v1107:[266,268,290],v1108:[266,268,290],v1112:263,v1120:262,v1:[131,165,166,169,183,188,189,190,194,195,200,201,202,220,225,230,231,233,247,255,264,290,323,353,363,364,366],v2:[9,53,131,165,245,246,247,294,295,297,304,344,353],v32xeaksgtieqxtqgwcldp5aplcnps3k:56,v4:314,v5:[274,317],v:[17,28,38,62,104,131,159,165,169,235,272,274,279,373],va_list:376,val1:[28,165],val2:28,val3:28,val:[28,53,71,99,109,133,209,217,376],valid:[9,12,13,17,19,23,25,30,35,38,93,105,115,124,125,127,133,159,165,186,209,263,281,375],valid_po:159,valid_pos_arrai:159,vallei:360,valn:28,valu:[0,2,3,4,5,6,7,8,9,10,11,14,15,16,18,19,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,90,91,93,94,95,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,160,165,166,169,170,171,172,186,192,193,194,195,199,204,209,211,217,218,235,250,259,265,269,271,274,280,290,297,300,301,315,316,317,320,322,327,328,330,331,332,337,339,340,345,346,347,348,350,351,353,355,358,360,366,370,371,372,373,378,379],value_:376,value_arrai:159,value_n:376,values_:376,vari:[19,96,159],variabl:[56,99,104,121,159,165,206,223,229,300,315,323,326,328,377,378,379],variables_:376,variad:376,variat:38,varieti:[120,159,175,209,217,240,265,266,363],variou:[3,25,28,118,130,159,188,189,190,209,210,266,344,347,375,376],varlist:376,varnam:165,vast:107,vbat33:235,vbat:[0,71,209,217,242],vbu:[235,269,281],vcc33:235,vcc:[188,189,190,193,194,195,235,247],vcodec:163,vdd12:235,vdd25:235,vdd33:235,vdd33_out:235,vdd3p3_cpu:281,vdd3p3_rtc:281,vdd:[91,235,252,281],vdd_spi:281,vdiv:159,vdop:38,ve:159,vector:[87,297,324,387,388],velit:159,vendor:[327,328],veniam:159,ver_fit_typ:159,ver_r:159,veri:[71,105,122,135,160,162,163,175,182,183,184,187,207,209,217,247,264,265,269,290,302,328,333,366,371,375,376,378],verif:[90,92,93,105,113,125,265,345],verifi:[28,31,70,92,93,109,113,232,265,315,320,351,353,366,371],versa:376,version:[5,9,19,22,28,35,53,58,71,85,100,104,118,121,124,128,135,160,163,165,166,168,169,170,171,172,176,177,178,179,182,183,184,188,189,190,193,194,195,197,198,200,201,202,204,209,210,211,221,226,234,244,245,246,250,252,254,261,263,264,265,268,269,270,271,281,283,284,290,303,306,308,317,323,324,336,343,344,345,352,353,358,364,366,369,371,372,377],version_:107,vertex:9,vertic:[35,38,124,135,160,366,376],veteran:[352,374],vf:[163,349],vfs_fatf:265,vhid_cancel_upload:28,vhid_upload:28,via:[51,96,124,159,204,207,215,252,263,323,353,366,371,373,376],vibrat:218,vice:376,vid:28,vid_0d28:247,video:[20,28,77,78,99,115,119,125,133,135,204,205,207,209,217,310,311,312,317,345,352,355,357,379],video_h:163,video_plai:163,video_w:163,view:[0,1,2,3,4,6,7,8,9,10,12,13,15,16,17,18,19,20,22,23,24,25,26,27,28,29,30,31,32,33,34,35,37,38,44,53,57,71,80,85,86,87,89,92,93,96,98,99,101,102,103,105,106,111,112,113,115,116,117,119,124,125,127,128,129,130,131,133,135,160,162,167,173,180,185,191,196,203,205,214,221,247,281,290,308,317,323,332,351,353,355,358,364,366,369,371,372,375,376,378,403],viewer:389,vih:235,vil:235,vin:[170,171,172],violat:376,virtual:[3,12,38,92,101,104,107,125,159,209,217,218,245,246,250,265,268,281,286,290,298,301,320,322,325,326,327,344,349,375,376],virtual_com_port:248,visibl:[38,94,125,127,135,160,165,346,348,375],visit:159,visual:[159,207,319],visualstudio:207,vlcd:28,vm:[14,35,198],voh:235,voic:[270,272,274,290],vol:[28,235,265],volatil:[188,189,190],volt:[208,270,272],voltag:[0,9,36,52,101,162,166,209,217,218,220,225,231,235,240,242,250,265,290,297,353,355,358,363,364,366,370,371,372],volum:[1,92,265,268,290,369,375],volupt:159,vs1838:65,vscode:[205,301,311,312,315,323],vss:235,vta:38,vtg:38,vuart_0:[3,38,92,125],w1_connect:28,w1_read:28,w1_reset:28,w1_write:28,w25q128:[188,189,190,193,194,195,209,217,282],w25q128jv:[193,194,195],w25q128jv_dtr:[193,194,195],w25q32:65,w25q64:65,w25qxx:65,w5500:[28,113,115,118,265,293],w600:[115,259,261],w800:[220,225,279,290,293],w801:[279,293],w805:[279,293],w806:[228,290,293],w:[12,28,29,84,159,163,175,176,188,189,190,209,217,333,349,360,371,376],w_:376,wa:[2,4,6,13,15,17,19,20,25,38,92,96,122,124,130,131,159,193,194,195,209,217,247,301,315,317,352,366,375,376],wai:[13,15,17,20,23,63,93,101,104,115,120,159,167,188,189,190,193,194,195,199,200,201,202,207,209,217,247,264,281,286,297,300,301,302,322,323,324,325,327,355,360,375,376,377,378,379,404],wait485:28,wait:[9,18,20,22,23,25,26,28,35,39,40,41,43,44,45,46,47,48,50,52,53,54,55,56,57,58,60,61,62,63,64,65,66,68,69,70,71,72,73,74,75,76,77,78,79,81,82,83,87,89,91,92,96,101,107,109,121,125,129,130,131,159,162,163,166,168,170,171,172,174,177,178,179,182,183,184,186,187,192,193,194,195,204,205,209,210,217,218,232,252,265,284,290,299,308,316,318,319,321,322,327,330,334,340,342,345,346,348,350,351,376,377,378],waitabl:[346,348],waitc:[321,334,342],waitlink:53,waitmsg:28,waitt:[321,334,342],waituntil:[25,28,57,71,92,94,103,115,130,131,197,333,345,377,378],waitxxx:119,wake:[35,85,101,106,121,181,209,221,223,229,265,269,290,329,378,379],wakeup0:269,wakeup1:269,wakeup2:269,wakeup:[28,101,218,223,229,269,297],wakeup_in:242,wakeupin:101,wakeuppin:28,wakup0:269,waldemar:376,walk:[107,323],wand:[211,245,247,298],want:[9,71,92,128,159,162,209,215,217,247,282,290,300,301,302,311,312,317,353,375,376,377],ware:298,warehous:[163,204,206,209,247,270,281,286,311,312,317,366],warm:217,warn:[14,28,100,176,209,217,247,265,315,333,355,360,369,370,373,378],warning_level:28,wast:[65,336],watch:355,watchdog:[28,53,101,118,176,198,209,240,297],watchdogpin:53,watt:360,wav:[4,26],wave:[20,32,209,217,218,369],waveform:[7,209,217,353,358,366,369,371,372],wb:[4,29,209,217],wba_abc:302,wbc_abc_cb:302,wbc_abc_handl:302,wcdma:272,wdai:[67,376],wdata:70,wdt:[28,118,176,198,209,265,293],we:[87,159,162,163,166,167,175,182,183,184,187,188,189,190,193,194,195,200,201,202,207,209,211,215,217,232,245,247,298,300,302,311,312,316,317,328,351,352,369,375,376,378,380],weak:[92,165,264,265,269],wealth:[257,352],weather:[9,35],weather_icon:28,web:[247,281,324,376,381,382],web_audio:266,websit:[6,19,56,71,207,263,265,292,299,315,376],websocket:[28,118,265,270,293],websocket_cli:130,websocket_conack:130,webusb:247,wechat:[131,353],week:[67,376],wei:72,weight:[87,159,375],welcom:[210,272,342,352,353,371],weld:[218,286,355,360],well:[159,162,163,209,217,355,360,375,376],wendal:[13,17,102,301,322,323,325,326,327,329,330,331,332,337],wenquanyi:168,went:15,wep:341,wep_psk:341,wep_shar:341,wepval:252,were:[29,117,120,376],west:[38,106],western:159,wget:318,wgs84:[38,56,57],wh:[360,371],what:[0,22,122,128,131,133,159,162,165,188,189,190,207,214,221,243,250,260,268,290,296,301,302,308,311,312,317,320,321,328,333,334,342,346,347,375,377,378],whatev:376,wheel:[366,369,370,373],when:[1,9,10,12,13,17,20,23,25,29,30,33,35,38,56,57,65,67,71,72,89,92,93,94,96,101,107,109,110,113,115,121,124,125,127,128,131,133,159,162,163,166,170,171,172,177,178,182,183,184,186,193,194,195,200,201,202,207,208,209,211,215,217,218,220,225,235,247,248,250,251,263,265,269,274,281,286,290,299,302,304,317,318,319,323,327,336,345,349,350,351,353,355,358,360,366,372,373,375,376,377,378,379],when_spi_r:124,whenc:165,whenev:[67,376],where:[25,34,65,87,88,91,96,99,110,115,133,159,176,204,209,217,271,281,289,290,299,307,324,328,366,375,376,377],where_ddd_i:376,where_n_i:376,where_set_i:376,where_x_and_y_remain_balanc:376,where_xx_must:376,where_xxx_i:376,whether:[1,2,4,6,9,10,12,15,18,22,23,25,26,29,30,32,35,36,38,56,59,62,65,66,85,89,90,92,93,94,96,101,109,112,113,115,117,124,125,130,131,133,159,204,209,211,217,218,245,247,250,251,265,269,290,298,306,315,328,341,345,349,357,369,375,376,378,379],which:[0,1,6,10,11,14,16,19,20,22,23,26,27,29,31,33,35,37,38,44,57,65,67,71,78,84,85,86,87,89,90,91,92,93,94,96,97,99,100,101,102,104,107,108,110,113,119,121,125,131,132,133,159,162,166,170,171,172,176,188,189,190,198,199,204,207,208,209,210,211,217,218,235,240,247,248,252,263,264,265,266,269,274,279,281,286,290,292,297,300,301,302,315,316,317,318,320,323,327,328,332,333,336,337,343,345,352,355,357,358,360,366,369,372,375,376,378,379],white:[9,87,205,218,290,374,376],whiteboard:[210,211],who:[92,245,247,282,298,374,375,377],whole:[247,269,375,376,378],whose:[159,376],why:[135,160,290,320,321,334,335,342,353,375,376],wi:[257,382],wide:[9,35,159,162,331,343],widget:[87,135,160],width:[3,12,28,35,65,87,115,124,135,160,163,182,183,184,209,217,218,281,324,336,339,375,376],wifi:[28,56,71,113,118,124,254,261,265,270,279,286,288,290,293,334,335,342,345,352,353,371],wifiscan:131,wignor:315,wiki:[5,9,35,159,162,163,209,210,217,218,270,291,308,350],wikipedia:159,win10:[204,366],win32:[125,299,318,352],win7:[204,245,247,251,281,286,298,315,357,366],win8:[245,251,281,286,298],win:[135,160,163,353,358,369,371,372],win_add_btn:159,win_add_btn_left:159,win_add_btn_right:159,win_close_event_cb:159,win_creat:159,win_demo:159,win_focu:159,win_part_bg:159,win_part_content_scrl:159,win_part_head:159,win_scroll_hor:159,win_scroll_v:159,win_set_anim_tim:159,win_set_layout:159,win_set_scrlbar_mod:159,win_set_titl:159,winbond:[188,189,190,193,194,195],window:[9,28,94,135,160,164,204,207,209,211,247,308,313,315,317,319,323,366,376],winter:209,winusb:[245,247,251,281,286,298],wip:[279,293],wire:[44,49,65,166,170,171,172,182,183,184,188,189,190,193,194,195,200,201,202,209,210,215,217,247,252,268,281,290,308,353,357,360],wireless:[290,341,352],wistr:252,with_x_and:376,with_y_:376,within:[20,159,208,209,217,218,252,272,274,300,302,322,342,375,376],without:[6,14,15,18,19,21,87,92,93,94,104,113,131,159,166,204,209,214,218,252,263,269,281,291,302,308,316,317,323,328,345,375,376,378,379,382],withstand:[250,290,369],wizpro200st8:[250,290],wlan:[28,118,293,334,335,342,345],wlan_scan_don:[131,345],wmm:257,woff2:159,woff:159,woken:378,won:[375,376,378],wonder:375,word:[99,159,204,274,281,316,317,324,345,376],work:[3,65,66,70,78,96,113,159,186,199,200,201,202,208,209,217,218,235,240,251,252,297,299,319,351,353,360,376],work_mod:101,workaround:[252,265],workflow:299,workshop:247,world:[206,207,375,376],worri:[71,247,252,333,376],worst:[3,266],worth:[97,209,217,265,375],would:376,wow:379,wp:[257,341],wpa2:[257,341],wpa2_aes_psk:341,wpa2_mixed_psk:341,wpa2_tkip_psk:341,wpa:[257,341],wpa_aes_psk:341,wpa_tkip_psk:341,wps_open:341,wps_secur:341,wrap:[104,159,165,332],writ:[188,189,190],writabl:[96,159,349],write:[3,9,10,13,15,17,20,23,25,26,28,29,30,36,49,53,77,78,89,90,92,96,100,108,109,113,118,124,128,135,160,163,165,168,174,187,191,196,199,200,201,202,205,206,207,209,217,250,265,266,271,290,298,299,301,318,319,320,322,323,331,332,339,340,345,346,347,348,350,351,375,378,379],write_datablock:53,write_rawrc:70,write_zlib_head:90,writechr:28,writefil:[28,188,189,190],writei8:133,writeint8:331,writer:376,writereg:28,writeu32:133,written:[3,6,10,15,17,29,49,70,85,86,89,90,92,96,97,108,110,111,113,120,125,133,159,162,193,194,195,209,217,252,265,300,327,333,366,375,376,377],wrong:[15,58,89,109,247,252,265,301,311,312,317,322,330,357,376],wrote:[188,189,190,193,194,195,209,217],wrprterr:252,ws2812:[135,161,265],ws2812_h:162,ws2812_roll_show:162,ws2812_w:162,ws2812b:28,ws2812b_pwm:[28,162],ws2812b_spi:[28,162],ws:[130,351],wsc:28,wsc_conack:130,wsg84:56,wss:130,www:[23,38,67,193,194,195,206,299,376],x00ff0200:351,x01:25,x02:25,x03:25,x0:28,x1:[28,159],x1ffff7e8:252,x200ma:369,x200ua:369,x25:6,x2:[28,159],x2a:369,x2ma:369,x32:[28,177,178,179],x64:[315,317],x7f:376,x7fffffff:[30,89],x80:376,x8218dbc0:378,x:[3,19,23,28,40,43,50,55,60,64,69,94,99,118,159,165,209,210,221,222,228,235,252,271,323,336,355,360,375,377,378],x_id:159,x_of:159,x_op_:376,x_xx_:376,xbf:376,xc2:376,xeltek:252,xf4:376,xfer:28,xhh:375,xi12m:235,xi32:235,xiao:[247,274],xiaomi:[355,360,369,370,373],xingli:263,xip:208,xlsx:[220,225,233],xmake:[301,315,318,319],xmodem:[6,53,132],xo12m:235,xo32:235,xoffset:[9,35,163,209,217,291],xor:[6,124,159,251,376],xpcall:165,xt804:[279,280,293],xtal32k:235,xtal:235,xu:274,xuyuan:162,xx:[168,175,306,308,375,376],xxx:[4,12,15,18,24,29,54,58,71,93,97,104,108,113,274,301,302,304,305,306,308,315,341,345,351,375],xxxx:[29,113,291,308,311,345,378],xxxxx:[302,375,378],xxxxxblock:302,xxxxxx:[1,58,93,131,207],xxxxxxx:345,xxxxxxxxx:[302,333],xxxxxxxxxx:345,xy:378,y0:[28,274],y1:[28,159,274],y2:[28,159],y877bgo8x5owd3lcb5wwdjrynpob:31,y:[19,28,40,43,50,55,60,64,69,97,118,135,160,165,168,223,229,271,274,304,306,318,375,378],y_id:159,y_max:159,y_min:159,y_of:159,yahei:207,yangkeduo:381,yangzichen123:289,ye:[92,113,159,207,291,357,375,378],year:[38,56,67,97,106,159,186,209,245,375,376],yeild:378,yellow:[289,373],yet:[290,376],yield:[165,378],yin:[77,78],yml:299,ymodem:[28,118,265],yoffset:[9,35,163,209,217,291],you:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,119,121,122,123,124,125,126,127,128,129,130,131,132,133,134,159,162,163,167,168,169,173,175,180,181,185,186,187,188,189,190,191,192,196,197,199,200,201,202,203,204,206,207,209,210,211,215,217,218,232,235,245,247,248,251,252,265,266,272,281,282,286,289,290,298,299,301,302,308,310,311,312,315,317,318,319,320,321,334,335,342,345,349,351,352,353,355,360,366,371,373,374,375,376,377,378,379],you_:376,young:265,your:[113,128,159,168,175,204,210,211,245,282,298,302,311,316,317,355,357,360,369,374,375,376],yourself:[1,5,58,109,131,159,207,245,247,251,298,301,310,311,312,357,375,376,380],yuan:[357,376],yum:[311,312],yun:376,yuv411:286,yuv420:286,yuv422:286,yyi:[58,104,308,351],z:[40,43,55,60,64,69,99,271,376],zadig:[245,251,298],zbuff:[1,3,4,9,15,25,26,28,29,30,35,92,109,110,113,115,118,124,125,127,132,162,163,174,203,205,206,209,265,293,331,332,350],zda:38,ze08g:53,ze08g_ch2o:53,zeo:270,zero:[6,19,159,223,229,265,274,360,376],zeropad:19,zeros_and_len:6,zeu:[247,257],zh07:53,zh07_pm10:83,zh07_pm1:83,zh07_pm25:83,zh:67,zhou:[214,263,266,274,390],zhuff:25,zip:[255,264,265,266,311,312,315,317,344],zlib:[28,118],zone:[28,38,57,94,106,235,297,326],zoom:[1,159],zstruct:332,zzz:[58,308],zzzzzzzzz:333},titles:["adc - Digital-to-analog conversion","audio - Multimedia-Audio","bit64 - 32 Basic arithmetic and logical operations on 64-bit data on bit systems","camera - Camera","codec - Multimedia-Codec","coremark - Running points","crypto - Encryption and decryption and hash functions","dac - Digital-to-analog conversion","disp - disp Library (Obsolete)","eink - ink screen operation library","errDump - Error reporting","fastlz - FastLZ Compression","fatfs - read/write fatfs format","fdb - kv Database, power failure does not lose data","fonts - Font Library","fota - Underlying Firmware Upgrade","fs - Additional File System Operations","fskv - kv Database, power failure does not lose data","ftp - ftp Client","gmssl - national secret algorithm","gpio - GPIO Operation","gtfont - Qualcomm Font Chip","hmeta - Hardware metadata","http - http Client","httpsrv - http Server","i2c - I2C Operation","i2s - Digital Audio","iconv - iconv Operation","\ud83c\udf74 LuatOS-SOC Interface Documentation","io - io action (extended)","ioqueue - io Sequence operation","iotauth - IoT Authentication library, used to generate parameters for various cloud platforms","ir - infrared remote control","json - json Generating and parsing libraries","keyboard - Keyboard Matrix","lcd - lcd Drive module","lcdseg - Segment lcd","libcoap - coap Data processing","libgnss - NMEA Data processing","ads1115 - ads1115 analog-to-digital converter","adxl34x - adxl34x 3 Axis accelerometer currently supports adxl345 adxl346","aht10 - aht10 Temperature and humidity sensor","air153C_wtd - Add software watchdog function to prevent crashes","ak8963 - ak8963 geomagnetic sensor","am2320 - am2320 Temperature and humidity sensor","bh1750 - bh1750 Digital light intensity sensor","bmx - bmx The air pressure sensor currently supports bmp180 bmp280 bme280 bme680 will automatically judge the device","cht8305c - cht8305c Temperature and humidity sensor","ds3231 - ds3231 Real Time Clock Sensor","ec11 - ec11 Rotary encoder","gt911 - gt911 Drive","httpdns - Domain name resolution using Http","ina226 - ina226 Drive","\ud83e\udd62 Extended Library Interface Documentation","iotcloud - iotcloud Cloud platform library (supported: tengxun cloud ariyun onenet huawei cloud graffiti cloud baidu cloud others will also support, useful issue will accelerate support )","l3g4200d - l3g4200d Three-Axis Digital Gyroscope Sensor","lbsLoc - lbsLoc Sending Base Station Location Request","lbsLoc2 - base station positioning v2","libfota - libfota fota Upgrade","libnet - libnet synchronous blocking api based on the socket library, the socket library itself is asynchronous non-blocking api","lis2dh12 - lis2dh12 Three-axis sensor","lm75 - lm75 Temperature Sensor Support lm75a lm75b","mcp2515 - mcp2515 CAN Protocol Controller Driver","mlx90614 - mlx90614 infrared temperature","mpu6xxx - mpu6xxx Six-axis/nine-axis sensor support mpu6500,mpu6050,mpu9250,icm2068g,icm20608d","necir - necir NEC protocol infrared receiving","netLed - netLed Network status indicator","pcf8563t - pcf8563t Clock Module","pcf8574 - pcf8574 IO Extension","qmc5883l - qmc5883l geomagnetic sensor","rc522 - rc522 Non-contact read/write card driver","rtkv - Remote KV Database","shift595 - shift595 74HC595 Chip","si24r1 - si24r1 Drive","spl06 - spl06_01 Air pressure sensor","tcs3472 - tcs3472 Color Sensor","tm1637 - tm1637 Digital tube","tm1640 - tm1640 Digital tube and LED driver chip","tm1650 - tm1650 Digital tube and key scanning chip","tsl2561 - tsl2561 light intensity sensor","udpsrv - UDP Server","xmodem - xmodem Drive","ze08g_ch2o - ZE08G-CH2O electrochemical formaldehyde module","zh07 - ZH07 Laser Dust Sensor","log - Logstore","lora - lora Drive module","lora2 - lora2 Driver module (supports multi-hanging)","lvgl - LVGL Image Library","max30102 - Heart Rate Module(MAX30102)","mcu - encapsulation mcu some special operations","miniz - Easy zlib compression","mlx90640 - infrared temperature measurement(MLX90640)","mobile - Cellular Network","mqtt - mqtt Client","nbiot - NB-IOT Operation Library","nes - nes Simulator","nimble - Bluetooth BLE library (nimble version)","os - os Operation","otp - OTP Operation Library","pack - Packing and unpacking format string","pin - Pin Naming Map","pm - Power Management","protobuf - ProtoBuffs Codec","pwm - PWM Module","repl - \u201cRead-evaluate-output \u201cloop","rsa - RSA encryption and decryption","rtc - Real Time Clock","rtos - RTOS underlying operation library","sdio - sdio","sensor - Sensor Operation Library","sfd - SPI FLASH Operation Library","sfud - SPI FLASH sfud Software package","sms - SMS","socket - Network Interface","softkeyboard - software keyboard matrix (currently only supported by air105)","spi - spi Operation Library","statem - SM State Machine","string - String Manipulation Functions","Adaptation status","sys - sys Library","\ud83d\udcee sys System Messages","sysplus - sys A strong complement to the library","timer - Operating the bottom timer","touchkey - Touch keys","u8g2 - u8g2 graphics processing library","uart - serial port operation library","ufont - Unified Font Library (under development)","usbapp - USB Functional operation","w5500 - w5500 Ethernet driver","wdt - watchdog Operation Library","websocket - websocket Client","wlan - wifi Operation","ymodem - ymodem Agreement","zbuff - c Memory Data Manipulation Library","zlib - zlib Compression/Decompression (Obsolete)","\u2328\ufe0f Application Development","Code","Equipment","\u2328\ufe0f Alibaba Cloud application development","Introduction","Project","Test","\u2328\ufe0f Cloud Platform Basic Preparation","Introduction","<no title>","<no title>","\u2328\ufe0f Cloud Platform Application Development (Incomplete)","Code","Equipment","\u2328\ufe0f OneNet Application Development","Introduction","Project","Test","Code","Equipment","\u2328\ufe0f Tencent Cloud Application Development","Introduction","Project","Test","LVGL for LuatOS Manual","lvgl","Peripherals","LuatOS-Soc Driver WS2812 Tutorial","Air105 Video playback","Video playback","\ud83d\uddc3\ufe0f Data Archiving","adc","CRYPTO","DISP","fdb","air101","air103","air105","i2c","API Tutorial","LCD Drive screen","log","air101","air103","air105","mcu","PM","air101","air103","air105","pwm","RTC","sfd","air101","air103","air105","sfud","SPI","air101","air103","air105","spi","sys","timer","UART","air101","air103","air105","uart","Burn Tutorial","\ud83d\udcda Development Tutorial","recommend learning line","Construction of development environment","Air Watch","\ud83d\ude97 W806","Air001 Arduino-based user manual","Air001 Keil MDK-based user manual","Development Board","Hardware Data","\ud83d\udef4 Air001","Air001 Chip","Air001 power consumption curve","Air101 Getting Started Manual","Air101 Hardware Design Tutorial","Development Board","Hardware Data","\ud83d\ude97 Air101","Air101 Chip","Air101 power consumption curve","Development Board","Hardware Data","\ud83d\ude97 Air103","Function Description of Segment Screen/Segment Screen","Air103 Chip","Air103 power consumption curve","Touch sensor/touch button","Air105 Development Board","Air105 Script Encryption","Hardware Data","\ud83d\ude97 Air105","Air105 Chip","Air105 power consumption curve","Air106 Development Board","Hardware Data","\ud83d\ude97 Air106","Air106 Chip","Development Board","Hardware Data","\ud83d\udcf6 Air302","Air302 Module","Air32F103 Manual","Development Board","DAPLink Manual","Enhanced function instructions","Hardware Data","\ud83d\udeb2 Air32F103","AIR32F103 Chip","Transplant from SXX32F103","Air601-12F Development Board","Firmware Release Notes","Air601 Hardware Data","\ud83d\udce1 Air601","Air601","Development Board","Hardware Data","\ud83d\udce1 Air640w","Air640w","Air700E Additional instructions","Air780EG Additional instructions","Development Board","Ec618 Series Firmware Release Notes","Firmware Description","Hardware Data","\ud83d\udcf6 Air780E(EC618 Series General)","LuatOS IO multiplexing configuration under firmware","Air780E Module (EC618 Series General)","Description of mass production brush machine","Network Characteristics","Setting and difference of anti-shake of power-on key","TTS Description of the function","Development Board","Hardware Data","\ud83d\udea2 Air901","Air901 Chip","\ud83d\udcca Chip comparison and selection table","Performance testing (based on coremark)","ESP32C3-CORE Development Board","Replace flash tutorial","Hardware Data","\ud83d\udce1 ESP32-C3","ESP32C3 power consumption curve","ESP32S3-CORE Development Board","Hardware Data","\ud83d\udce1 ESP32-S3","Portable wifi data collection","\ud83e\uddee Chips and Development Boards","FAQ List","\ud83d\udce1 RP2040","Equipment Support/Supported Devices","Development Board","Hardware Data","\ud83d\udeb2 SWM181CBT6","SWM181CBT6 Chip","SWM181 Manual","\ud83d\udda5\ufe0f PC End version","Lua Library File Writing Guide","Add Custom Functions (Rapid Edition)","C Interface implements Task waiting function","LuatOS CLI - Command Line Tools","LuatOS CLI Basic Commands","LuatOS Burn command","LuatOS Package Management Commands","LuatOS Project Management Commands","CLI Interactive Conceptual Design","LuatOS User Project","\ud83d\udc68\u200d\ud83d\udcbb Compile source code","\ud83d\ude97 Air101 / Air103","\ud83d\ude97 Air105","\ud83d\udcf6 Air302","\ud83d\udce1 Air640w","\ud83d\udcf6 Air780E Compilation Guide","\u2601\ufe0f Cloud Compilation","\ud83d\udce1 ESP32 Series Compilation Document","\ud83d\udda5\ufe0f Linux","\ud83d\udda5\ufe0f Win32","Add New Library","Core Layer","Luat Core","Luat Debugger","Font module","File System","Memory Pool","Message Bus","Luat Platform layer","Power and Low Power Management","Luat Timer","C style buffer","C The Structure of Style","C Interface implements Task waiting function","Design Document","Peripherals API","LuatOS dot matrix font format","GPIO","IR","SPI","UART","WLAN","\u2764\ufe0f Contribution Code","LuaDB File Format","LuatOS-SoC Common Firmware Format soc","Coding Specification","\ud83d\udcc1 Development documentation","Development Information","Development practice","LuatOS-SoC The file system","Explain lua\u2019s string and hex data (hexadecimal)","Command Line Brush Guide","<no title>","\u26a1 IoT Power - CC","\u26a1 IoT Power - CC","Connection and assembly","Connection and assembly","FAQ","Technical indicators","Technical index","Operating Instructions","Operating Instructions","<no title>","\ud83d\udd0d Version Comparison","\u23f3 IoT Power Power consumption test artifact","\u23f3 IoT Power Power Consumption Tester","\ud83d\udda5 PC Client","<no title>","IoT Power User Guide","\ud83d\udd0b IoT Power - V1","Connection and Appearance","\ud83d\udd0b IoT Power Pro","Technical indicators","Operating Instructions","\ud83c\udf19 Lua Tutorial","Basic Grammar","Lua 5.3 Reference Manual","Luat Framework","Luat framework (advanced-underlying mechanism)","LuaTask Framework","\ud83d\udd79\ufe0f Online Experience LuatOS","\ud83d\udcac Technical Support","<no title>","Use Example","Hardware Data","Air105 Supporting GC032A camera","Use Example","Hardware Data","Qualcomm Font Chip","Hardware Data","EINK1.54 Ink screen","Use Example","\ud83e\uddf7 Peripheral expansion data","Use Example","Hardware Data","1.54 Inch TFT_ LCD resolution 240x240","Use Example","Hardware Data","1.8 TFT LCD resolution 128x160","Use Example","Hardware Data","2.4 Inch TFT_ LCD color screen resolution 240x320","Use Example","Hardware Data","Air10x Series Screen Expansion Board"],titleterms:{"0":[252,274,357,369],"01":120,"0x":120,"0x00":211,"0x001f":291,"0x01":211,"0x02":211,"0x03":211,"0x04":211,"0x05":211,"0x06":211,"0x07":211,"0x08":211,"0x09":211,"0x20000000":211,"0xffff":252,"1":[211,235,245,248,252,274,281,286,291,298,301,351,375,376,395,398],"10":376,"101":291,"103":351,"105":291,"10x":291,"11":376,"123":117,"128x160":398,"12f":[253,257],"12m":291,"15":91,"150":291,"16":248,"160m":285,"192m":236,"2":[211,235,245,248,252,281,286,291,298,301,351,369,375,376,401],"20":291,"200m":280,"2023":91,"20v":357,"240x240":395,"240x320":401,"256m":280,"2m":[223,229],"3":[40,211,235,245,248,252,281,286,291,298,351,375,376],"32":2,"32bit":252,"4":[235,248,281,286,291,375,376,401],"480k":266,"4g":381,"5":[91,235,248,376],"54":[390,395],"5k":248,"5v":[357,369],"6":[235,376],"64":2,"7":[235,291,376],"74hc595":72,"8":[291,369,376,398],"80m":[223,229],"9":376,"\u03bca":357,"\u51c6\u5907\u6750\u6599":314,"\u5f00\u59cb\u4e0b\u8f7d\u6e90\u7801":314,"\u5f00\u59cb\u7f16\u8bd1":314,"\u63d0\u524d\u544a\u77e5":313,"\u7f16\u8bd1\u73af\u5883":313,"\u7f16\u8bd1\u8bf4\u660e":313,"\u8bf4\u660e":314,"abstract":[193,194,195],"boolean":375,"break":211,"byte":[120,252,291,375,376],"case":[338,339,340,375],"char":[375,376],"class":[323,376],"default":[159,207,274,291],"do":[291,301,325,330,357],"export":366,"final":[6,317],"function":[6,42,117,127,159,197,209,211,227,244,247,248,252,261,270,274,281,286,291,301,302,308,333,355,357,360,366,370,373,375,376,377],"import":366,"int":[62,88],"long":159,"new":[37,54,159,200,201,202,207,211,245,298,301,302,320],"return":[302,345,375],"static":301,"switch":[159,360,366,369,373],"try":308,"while":[274,357,375],A:[121,206,300,349],AT:211,And:[218,291],As:252,At:355,For:376,If:[302,311,369],Is:[291,369],It:291,No:[223,229,236,252,285,291,369],One:159,Or:291,The:[46,247,252,291,322,328,332,333,344,349,351,369,375,376],There:[247,291],To:[91,301,375],Will:291,_at_0x20000000:211,_g:376,_repeat:107,_version:376,a1:376,a2:376,ab:376,abc:117,about:[218,262,263,322,344],abov:[252,291],acceler:54,acceleromet:40,accept:[113,376],access:252,accuraci:353,achiev:[324,333],aco:376,action:[29,373],activetim:94,acttyp:94,actual:369,ad:[211,333,375],adapt:[18,93,113,118,130,302],adapter_index:113,adc:[0,166,209,217,218,242,252,291],add:[42,111,159,210,211,301,320],addit:[16,223,229,236,262,263,269,285],addr:[25,32,70,96,111],address:[70,89,188,189,190,193,194,195,210,211],adjust:[159,366],adjust_period:125,adon:252,ads1115:39,advanc:[159,375,378],advdata:96,advparam:96,adxl345:40,adxl346:40,adxl34x:40,af:67,after:[91,177,178,179,252,291,357,369],again:357,agr2:119,agreement:[132,343],ah:373,aht10:[41,170,171,172],aie:67,air001:[210,211,214,215,216],air101:[170,177,182,188,193,200,217,218,221,222,223,291,311,351],air103:[171,178,183,189,194,201,226,228,229,280,291,311],air105:[114,163,172,179,184,190,195,202,231,232,234,235,236,280,291,312,351,385],air106:[237,239,240],air10x:404,air153c_wtd:42,air302:[243,244,313],air32:252,air32f103:[245,250,251,252],air32f103cbt6:280,air601:[253,255,256,257],air640w:[260,261,314],air700:262,air780:[268,270,280,315],air780eg:263,air901:[277,278],air:[46,74,208,381],ak8963:43,alarm:67,algorithm:[19,252,291],ali:51,alibaba:138,align:[159,252],aliyun:31,all:[252,317],alloc:328,alon:291,alpha:159,alreadi:357,also:[54,369],alt:20,alt_fun:89,altfun:89,alwai:[357,369],am2320:44,ambient:63,amplifi:369,an:[159,211,291,366],analog:[0,7,39,373],analysi:332,analyz:366,angl:159,ani:291,anim:[87,159],anim_cr:87,anim_fre:87,anim_path_set_cb:87,anim_path_t:87,anim_path_t_fre:87,anim_set_exec_cb:87,anim_set_path_str:87,anim_set_ready_cb:87,annot:345,antenna:291,antenna_on:70,anti:273,anticol:70,apb:252,api:[59,159,174,227,320,325,326,327,328,329,330,331,335,337,338,339,340,341,345,376],apn:[92,94],appear:[360,370],applic:[135,138,146,149,155],ar:[209,244,252,261,270,291,301,357],arc:159,archiv:165,arduino:210,area:[159,252,366],arg1:[119,376],arg2:[119,121],arg3:121,arg4:121,arg:[9,35,376],argn:119,arithmet:[2,375],ariyun:54,arm:211,around:357,arrai:[159,200,201,202,375],artifact:364,asin:376,ask:[159,301],assembl:[355,356],assert:376,assign:[159,375,376],async:9,asynchron:59,atan:376,attent:[281,286,351],audio:[1,26],audio_format:1,auth:93,auth_password:94,auth_user_nam:94,authent:31,authstat:70,auto:[94,159],auto_format:12,auto_phone_fix:112,auto_reconnect:131,auto_reset_stack:92,autocollectmem:107,autoflush:35,autolong:112,automat:[46,159,211,252],autoreconn:[93,130],auxiliari:[263,376],averag:[366,373],average_temp:91,axi:[40,55,60,64],b:[2,35],back:[35,291],background:[211,245,298,350],baidu:[31,54],band:92,bandrat:115,bar:159,base64_decod:6,base64_encod:6,base:[2,56,57,59,133,159,210,211,280,376],base_year:106,basi:375,basic:[2,142,206,293,300,303,304,322,323,324,325,326,327,329,330,331,332,333,337,338,339,340,341,373,375,376],bat:9,batteri:373,baud:62,baud_rat:125,been:357,befor:317,begin:124,below:373,between:[179,252,357,369,379],bh1750:45,bia:36,bif:252,bind:[38,128],bit64:2,bit:[2,133,252,291,376],bit_ord:125,bitdict:115,bits_per_sampl:1,bitw:26,black:369,ble:96,blink:159,block:[59,198,252,376],bluetooth:[96,291],bme280:46,bme680:46,bmp180:46,bmp280:46,bmx:46,board:[210,212,213,219,224,231,237,241,246,247,253,258,262,263,264,275,281,286,290,291,294,404],bodi:23,bom:353,book:391,bootstrap:252,boss:291,bottom:122,boundari:[325,326,327,329,330,331,332,337,338,339,340,341],box:159,bpp:87,brake:252,branch:375,breath:[182,183,184],bri:[77,78],brief:379,bright:159,brush:[215,218,222,228,231,244,261,270,271,281,289,291,308,351,357],bsp:[107,228],btn:159,btnmatrix:159,bu:[252,291,327],buff2:[9,133],buff:[3,9,15,29,73,113,124,125,127,133],buff_mod:87,buff_siz:[87,125,127],buffer:[26,331],build:[211,316,317],builddat:107,buoi:159,burn:[204,209,211,215,217,222,228,231,244,245,252,261,270,281,291,298,305,369],burner:[247,252],burp:369,bus_typ:1,busi:252,button:[159,230],c3:[284,351],c:[124,133,134,206,211,301,302,320,322,324,325,326,327,329,330,331,332,333,337,338,339,340,341,345,376,402],ca_fil:23,cach:366,cache_s:87,cal:52,calcul:179,calculate_crc:70,calendar:[159,391],call:[227,252,375,376,377],callback:[200,201,202,379],camera:[3,291,385],can:[62,159,252,291,301,357],cannot:[206,252],canva:159,capend:30,captur:[3,30,103,376],capture_buff:30,card:[70,252,291],cat1:381,cat4:381,categori:376,caught:282,cb:[86,93,113,130,159],cbfnc:[56,58],cbfun:121,cc:[353,354,357],cd:27,ce:73,ceil:376,celevel:94,cell:159,cell_info_upd:120,cell_typ:159,cellid:94,cellular:92,ch2o:82,ch:7,chain:315,chang:[159,207,266,291,316,323,357,369,376],changelog:265,channel3:252,channel:[26,89,103,131,193,194,195],channel_map:96,charact:[159,375,376],characterist:[262,263,272,369],charg:[235,357,373],charpattern:376,chart:[159,212,219,366],chat:381,check:[101,159,316],check_sim_period:92,check_valu:89,checkbox:159,checksum:6,chines:274,chip:[21,72,77,78,211,215,222,225,228,233,235,240,251,252,257,278,279,290,291,297,369,388],chip_check:73,chiperas:111,choos:[210,211],chooser:159,chr_uuid:96,cht8305c:47,chunk:376,chunknam:376,cid:92,cipher:272,cipher_decrypt:6,cipher_encrypt:6,cipher_list:6,cipher_suit:6,circl:[9,357],circuit:[218,235],classif:266,clean:159,cleanmsg:121,cleansess:93,clear:[9,17,30,35,38,76,77,78,102,133,252,291],clear_bit_mask:70,clearbuff:124,cleardownlink:92,clearli:357,clearlong:112,clearuplink:92,cli:[303,304,308],click:316,client:[18,23,93,130,366],client_ca:23,client_cert:[58,113],client_id:93,client_kei:[23,58,113],client_password:[23,58,113],clk:[77,115],clock:[48,67,97,106,235,248,252,291,376],close:[0,3,7,18,20,25,26,27,35,54,59,65,77,78,93,103,113,115,123,124,125,129,130,159,252,376],close_watch_dog:42,closur:376,cloud:[31,54,138,142,146,155,316],cloudc:54,cmd:[18,32,35],cmd_cnt:30,cmsi:211,cnt:[87,252],co:376,coap:37,coapdata:37,code:[9,37,136,147,153,188,189,190,193,194,195,200,201,202,210,228,245,291,298,301,302,310,315,317,342,345,375,376],codec:[4,102],codepoint:376,coder:4,collect:[289,376],collectgarbag:376,color:[9,35,75,133,159,291,401],column:159,com:[36,76],com_mark:36,com_numb:36,comma:76,command:[18,70,170,171,172,303,304,305,306,307,308,351,376],comment:375,commiss:323,common:[159,315,344,349,357,369],commun:[291,323,328,381],comp:376,compar:371,comparison:[252,279,353,363,375,376],compil:[209,210,299,310,311,312,315,316,317,318,319],complement:121,complet:[300,355],compon:[159,316,320],compress:[11,90,134],comput:[247,357],concat:[375,376],concaten:376,concept:[159,376],conceptu:308,condit:[336,375],conf:[8,34,35,52,71,124,211],config:[1,10,62,92,96,113,128,376],configur:[204,207,209,247,248,252,269,282],conn:96,conn_mod:96,connect:[54,59,93,96,113,130,131,162,163,247,291,355,356,357,369,370],connect_config:54,connok:96,consecut:252,consider:252,consol:351,constant:[0,1,4,9,20,25,26,35,36,54,84,85,86,89,90,91,92,93,96,101,113,115,124,125,127,131,133,329,330,337,338,339,340,341,369],constraint:336,construct:[207,211,215,217,245,251,297,298,301,376],consum:369,consumpt:[216,223,229,236,263,285,364,365],cont:159,contact:70,contain:159,content:[159,266,344,375],continu:[30,252],contrast:[124,279],contribut:342,control:[32,62,67,159,193,194,195,208,248,252,281,286,366,373,376],conveni:[311,312],convent:376,convers:[0,7,159,252,350,375,376],convert:[39,177,178,179],coordin:373,copi:133,copybuff:124,core:[211,231,237,281,286,321,322],coremark:[5,280],corner:316,coroutin:376,correl:263,correspond:[193,194,195,230,333],cost:353,count:[116,252,376],cpath:376,cpha:115,cpicker:159,cpol:115,crash:42,crc16:6,crc16_modbu:6,crc32:6,crc7:6,crc8:6,creat:[4,80,93,113,116,130,132,133,197,200,201,202,301,308,376],createap:131,createsoft:[25,115,125],critic:159,crop:159,cross:[159,328,375],crypto:[6,167],crystal:[218,291],cs:[62,70,73,115,193,194,195],cs_pin:128,csq:[92,94],ctrl:113,cur_timestamp:31,current:[40,46,114,159,333,357,360,366,369,373],cursor:159,curv:[216,223,229,236,285,373],custom:[159,301,311,312,316,317],custom_id:10,cycl:[197,200,201,202,252,375],cyclic:[223,229,236,285],d:134,dac:7,dacdelai:1,daclevel:1,dacpin:1,dactimedelai:1,dap:247,daplink:247,dark_color:87,dat:[72,77],data1:109,data2:109,data32bit:2,data64bit:2,data:[1,2,4,6,7,9,11,13,17,19,25,26,29,35,37,38,54,70,71,85,86,90,92,93,96,98,102,104,105,108,109,110,111,113,115,124,125,127,130,132,133,159,162,165,169,200,201,202,213,220,223,225,229,233,236,238,242,249,252,255,259,267,276,280,283,285,287,289,291,295,327,330,332,336,350,360,366,373,375,379,383,384,387,389,392,394,397,400,403],data_bit:125,data_mod:38,databas:[13,17,71,169],datatraff:92,dataw:115,date:[76,97,159,376],dead:357,debounc:[20,34],debug:[1,12,38,84,93,113,130,215,218,247,252,291,327,376],debugg:323,decim:[177,178,179],declar:376,decod:[4,33,102],decoi:357,decompress:134,decrypt:[6,105],deep:[223,229,236],defin:326,definit:[211,225,235,281,286,308,343,344,376],deg:376,deinit:[96,114],del:[17,133],delai:[20,25,30,89,197,252,291],delet:[159,169,306,330,375],delimit:117,demand:302,demo:[227,305,308,391,403],demo_benchmark:87,demo_keypad_encod:87,demo_mus:87,demo_print:87,demo_stress:87,demo_widget:87,descript:[159,227,252,262,266,269,271,274,281,286,318,319,345,349,379],design:[218,230,235,303,308,320,323,325,326,327,329,330,331,332,334,337,338,339,340,341],detail:[360,363,373,375],develop:[126,135,138,146,149,155,205,206,207,210,212,213,217,219,224,231,237,241,246,253,258,262,263,264,275,281,286,290,291,294,320,346,347,348],devic:[46,159,177,178,179,188,189,190,193,194,195,211,247,291,293,357,366,369],device_id:31,device_kei:31,device_nam:31,device_secret:31,devicesetup:115,dfp:252,dhcp_enabl:131,dht1x:109,diagram:[212,219,389,403],dial:369,did:[291,316],differ:[179,252,273,357],differenti:266,difftim:[97,376],dig:78,digit:[0,7,26,39,45,55,76,77,78,159,274],dir_path:132,direct:[159,377],directli:[188,189,190,193,194,195,308,357],disabl:[159,193,194,195],disablepwm:32,disc:159,disc_mod:96,discchr:96,discdsc:96,disclosur:353,discon:113,disconnect:[54,93,96,131],discsvr:96,disp:[8,168],displai:[159,163,247,291,304,357,366,369],distinguish:252,divid:[248,252],divis:248,dma:252,dns_index:113,document:[28,53,213,220,233,271,317,320,334,346,379],doe:[13,17,247,252,291,357,369],doesn:247,dofil:376,domain:51,domain_nam:51,don:[291,357],done:30,dot:336,down:[159,193,194,195],download:[210,211,215,218,244,245,247,252,266,270,291,298,315,366,403],dr:252,draw2lcd:91,draw:[9,35],draw_mask_fade_param_t:87,draw_mask_fade_param_t_fre:87,draw_mask_line_param_t:87,draw_mask_line_param_t_fre:87,draw_mask_radius_param_t:87,draw_mask_radius_param_t_fre:87,drawbox:124,drawbuttonutf8:124,drawcircl:[35,124,133],drawdisc:124,drawdrcod:124,drawellips:124,drawfilledellips:124,drawfram:124,drawglyph:124,drawgtfontgb2312:[35,124],drawgtfontgb2312grai:35,drawgtfontutf8:[35,124],drawgtfontutf8grai:35,drawlin:[35,124,133,291],drawpixel:124,drawpoint:35,drawqrcod:35,drawrbox:124,drawrect:133,drawrectangl:35,drawrfram:124,drawstr:35,drawtriangl:124,drawutf8:124,drawxbm:[9,35,124],drive:[35,50,52,73,81,85,175,247,291],driver:[62,70,77,86,128,162,247,291],drop:159,dropdown:159,drv:110,ds18b20:109,ds3231:48,dtick64:89,dtimercheck:101,dtimerstart:101,dtimerstop:101,dtimerwkid:101,dtp:87,dual:[252,291],dump:[10,376],duplex:252,dust:83,duti:36,e:376,each:[291,379],earfcn:94,easi:90,ec11:49,ec618:[265,268,270,280],eci:92,edg:[159,291],edit:[207,301,376],effect:[159,163,182,183,184,291,301],eink1:390,eink:9,either:[211,291],electr:[235,369],electrochem:82,electron:391,element:159,empti:[169,291],emul:252,en:36,enabl:[10,35,36,38,87,92,104,193,194,195,252,274,301,366],enbid:92,encapsul:89,encod:[4,33,49,102,124],encodestr:19,encrypt:[6,105,232],end:[299,302],endian:72,endswith:117,engin:389,english:274,enhanc:[248,251],ent:87,enter:[329,337,360],entir:169,entiti:323,entri:376,env:376,environ:[207,211,215,217,245,251,297,298,311,312,317,319,376],ephemeri:263,equip:[137,148,154,159,291,293,369],eras:[98,110,111,193,194,195,252],erasewrit:111,errdump:10,error:[10,84,211,247,291,311,376],errstop:1,escap:375,esp32:[284,288,291,317,351],esp32c3:[281,285],esp32s3:286,essenc:375,etc:357,ethernet:128,evalu:104,even:357,event:[1,3,125,159,200,201,202,252,323],event_send:87,exampl:[159,383,386,391,393,396,399,402],exce:252,exceed:266,except:252,execut:[299,376],exist:[25,29,125,207,322],exit:376,exp:376,expans:[207,264,291,301,392,404],expect:301,experi:380,explain:[350,375],explan:266,express:[322,376],extend:[29,53,300,332],extens:68,extern:[159,209,217,252,281,291],exti:30,f1:376,f2:376,f:376,facil:322,fade:87,fail:[252,316],failur:[13,17],faq:[211,247,289,291,316,357,369],fast:[252,357],fastlz:11,fatf:12,fault:[252,369],fdb:[13,169,291],featur:[291,333],feed:[91,129],feed_dog:42,fft:291,fg_color:35,field:351,fifo:252,file:[15,16,35,159,163,188,189,190,211,223,229,236,285,300,301,317,325,343,345,349,375,376],file_path:[4,81,95,132],file_tld:343,filenam:376,files:29,fill:[9,29,35,133,252],filter:[62,159,252],filter_polici:96,fin:130,find:[291,375,376],finish:15,firmwar:[15,107,204,209,244,247,254,261,265,266,269,270,274,289,291,300,311,312,317,344,357,366,369],first:[120,252,375],fit:159,fix:[343,357],flag1:2,flag2:2,flag:[2,66,90,96,113,124,252],flash:[110,111,159,188,189,190,193,194,195,209,217,247,252,281,282],flash_eraseoptionbyt:252,flicker:159,floor:376,flush:[35,376],flymod:92,fmod:376,fmt:[97,376],fn:38,fnc:379,focu:159,focus:159,fold:91,folder:[317,325],follow:[211,351],font:[9,14,21,35,87,124,126,159,316,324,336,388],font_fre:87,font_get:87,font_load:87,forc:[9,101,366,376],force_level:107,fore:35,foreword:[162,163,252],form:[159,300],formaldehyd:82,format:[12,26,99,133,159,274,300,336,343,344,375,376],formatstr:376,fota:[15,58],foundat:159,four:355,framework:[377,378,379],freerto:291,freq:[7,85,86],frequenc:[177,178,179,223,229,236,248,280,285,291],fresh_rat:36,from:[159,211,252,357,369],frombase32:117,frombase64:117,fromcod:27,fromhex:117,fs:16,fsize:16,fskv:17,fsstat:16,ftp:18,full:[9,188,189,190,193,194,195,200,201,202,252,302,376],fun:[121,379],func:[1,3,24,26,87,112,119,125],funcnam:376,g:35,gadget:380,garbag:376,garbl:291,gatewai:[128,131],gaug:159,gc032a:385,gear:[357,369],gener:[31,33,252,268,270],geomagnet:[43,69],get:[0,17,20,30,71,88,100,106,126,159,177,178,179,217,291,317,378,379],get_accel:64,get_cell_period:92,get_data:[40,41,46,47,52,55,60,61,69,74,79],get_gyro:64,get_lux:75,get_mag:43,get_rgb:75,get_temp:64,get_temperatur:48,get_val:39,get_vdd:91,getband:[92,94],getbootcfun:94,getcellinfo:[92,94],getclk:89,getdevic:111,getdevicenum:111,getdevicet:111,getdisplayheight:124,getdisplaywidth:124,getedrx:94,getedrxptw:94,getenv:376,geterror:1,getfre:12,getgga:38,getgll:38,getgsa:38,getgsv:38,gethook:376,getinfo:[131,376],getintloc:38,getip:131,getlevel:84,getloc:376,getmac:[128,131],getmetat:376,getpm_10:83,getpm_1:83,getpm_2_5:83,getppb:82,getppm:82,getpsm:94,getraw:3,getregistri:376,getrmc:38,getsiz:35,gettxt:38,gettz:94,getupvalu:376,getuservalu:376,getvtg:38,getwin:9,getzda:38,gif:87,gif_creat:87,gif_restart:87,git:345,gite:301,give:376,global:[375,376],glossari:323,glue:159,gmatch:376,gmssl:19,gnss:381,gnss_state:120,goal:[324,333],good:291,gpio:[20,193,194,209,217,218,248,252,269,291,337,345],gpio_a:49,gpio_b:49,graffiti:54,grai:35,grammar:375,graphic:124,grid:77,ground:357,group:[301,381],gsub:[375,376],gt911:50,gt911_i2c:50,gt911_int:50,gt911_re:50,gtfont:21,guid:[300,315,351,368],gyroscop:55,h:[3,9,35,87,124],ha:[247,302],hal:211,halt:70,hand:355,handl:[96,159,376],handler:[132,322],hang:86,happili:301,hard:198,hardfault:89,hardwar:[22,166,167,168,169,170,171,172,175,176,177,178,179,181,182,183,184,186,187,188,189,190,192,193,194,195,197,198,199,200,201,202,209,213,217,218,220,225,230,233,238,242,247,249,252,255,259,267,276,281,282,283,286,287,295,323,384,387,389,394,397,400,403],hash:[6,105],hash_finish:6,hash_init:6,hash_upd:6,have:[291,357],hcode:37,head:357,header:[23,37,130,211],header_tld:343,heart:88,height:[9,133,159],helloworld:159,help:[159,301,304],here:291,hex:[117,350],hexadecim:[177,178,179,350],hexstr:131,hid_mod:127,hid_rx:127,hid_tx:127,hide:159,high:[179,248,369],high_duty_cycl:96,higher:369,highest:291,highlight:159,himself:91,histor:366,histori:266,hmac:6,hmac_md5:6,hmac_sha1:6,hmac_sha256:6,hmac_sha512:6,hmeta:22,hook:376,host:[56,57,93],hostnam:131,hous:355,how:[291,316,327],http:[23,24,51],httpdn:51,httpsrv:24,huawei:54,huge:376,humid:[41,44,47],hwtimer_id:30,hwver:22,hx711:109,hz:89,i2:26,i2c:[25,91,170,171,172,173,209,217,235,269,291],i2c_id:[39,40,41,43,44,45,47,48,55,61,63,64,68,69,75,79,88,91],i2cid:74,i2s:252,i:[291,301,316,357,369,376],ibeacon:96,ic:[85,86],iccid:[92,94],icm20608d:64,icm2068g:64,iconv:27,id:[0,1,3,19,25,26,38,62,67,70,92,96,101,106,107,108,110,115,119,123,125,127,128,177,178,179,188,189,190,193,194,195,210,291,379],idea:[325,326,327,329,330,331,332,337,338,339,340,341],ii:252,ili9341:291,illustr:[279,293],imag:[87,159],imei:[92,94],img1:291,img:[159,291],img_set_src:291,imgbtn:159,imgbtn_green:291,implement:[302,320,333],imsi:[92,94],in_buff:4,ina226:52,ina226_i2c:52,inbuf:27,inch:[291,395,401],includ:[322,330],incom:345,incompat:376,incomplet:146,inconsist:357,increas:369,independ:[248,376],indev_drv_regist:87,indev_kb_upd:87,indev_point_emulator_upd:87,index:[9,91,92,96,111,113,159,359,376],indic:[66,291,358,369,372],industri:291,ineffici:291,info:[4,84,344],inform:[159,188,189,190,213,220,244,264,270,281,286,291,304,322,323,324,325,326,327,329,330,331,332,333,337,338,339,340,341,347,351,403],infrar:[32,63,65,91],init:[3,8,9,15,17,21,30,34,35,39,40,41,42,43,45,47,48,49,50,52,55,61,62,63,64,65,68,69,70,72,73,74,75,76,77,78,79,82,83,85,86,87,88,91,95,96,99,108,110,111,114,128,129,131,376],init_level:30,initi:[6,91,170,171,172,188,189,190,193,194,195,197,200,201,202,291,307,375],initreg:3,inject:252,ink:[9,291,390,391],inlai:159,input:[30,159,209,217,323,357,376],input_buff:30,input_fil:134,inreversem:6,insert:376,insid:[291,328],instal:[207,210,211,245,291,298,306,308],instruct:[246,248,251,252,262,263,269,299,360,361,369,373],instrument:159,intens:[45,79],interact:[299,308,345],interfac:[28,53,91,113,159,252,291,302,324,330,333,345,366,376,379],intern:[159,248,263],interrupt:[211,252,375],interv:252,inton:274,introduc:291,introduct:[139,143,150,156,159,162,166,167,168,169,170,171,172,175,176,177,178,179,181,182,183,184,186,187,188,189,190,192,193,194,195,197,198,199,200,201,202,209,217,274,281,286,351,366,376],invert:159,invoff:35,invon:35,io:[29,30,68,269,328,376],iomux:89,ioqueu:30,iot:[31,94,353,354,357,364,365,368,369,371],iot_config:54,iot_core_id:31,iotauth:31,iotcloud:54,iotda:31,iovol:101,ip:[113,128,131],ip_addr:18,ip_los:120,ip_readi:120,ip_typ:92,ipair:376,ipv6:92,ir:[32,338],irq:[20,73],irq_mod:30,irq_pin:[65,78,128],is_default:92,is_en:124,is_input:[30,89],is_ok:15,is_sign:1,is_tl:113,is_udp:113,isbigend:133,isclos:65,isdecod:4,isdelet:10,isdon:15,isend:1,isequ:133,isfix:38,isfloat:133,isipv6:93,isp:252,isreadi:94,issign:133,issu:[54,315,324],isyield:376,item:[92,207],iter:[13,17,325],itself:59,itvl_max:96,itvl_min:96,iv:6,j:376,json:[33,344],jtag:252,jtrst:252,judg:[46,252,375],judgment:375,just:[291,308],kb_inc:120,keep_cnt:113,keep_idl:113,keep_interv:113,keepal:93,keepemtri:117,kei:[6,13,17,19,31,70,71,78,87,95,105,123,159,169,209,217,273,281,286,360],keil:[211,247,252,291],key_cb:78,key_in:114,key_out:114,keyboard:[34,114,120,159,291],knob:159,knowledg:[206,300,301,322,324,325,326,327,328,329,330,331,333,337,341,375],known:324,kv:[13,17,71],kv_clr:13,kv_del:13,kv_get:13,kv_iter:13,kv_set:13,kv_stat:13,kvdb_init:13,l3g4200d:55,l6985e:211,label:159,languag:[274,376,402],larg:291,laser:83,lastreson:101,latch:72,latest:247,layer:[321,328,329,330,337,338,339,340,341],layer_si:87,layer_top:87,layout:[159,349,355,370],lbsloc2:57,lbsloc:56,lcd:[35,36,87,175,209,217,291,395,398,401],lcdseg:36,ldo:235,learn:206,led:[77,159,281,286],ledpin:66,ledpinsetfunc:66,legal:375,legend:[279,293],len:[6,15,20,25,26,29,58,98,108,109,110,115,125,127,133,375,376],length:[133,159,376],less:252,level:[11,20,30,84,101,176,322,329,337,376],lexic:376,lf:[188,189,190],libcoap:37,libfota:58,libfota_timeout:58,libgnss:[38,120],libnam:376,libnet:59,librari:[8,9,14,31,33,53,54,59,87,94,96,98,107,109,110,115,119,121,124,125,126,129,133,211,291,293,300,301,308,311,312,317,320,375,376,379],light:[45,76,79,182,183,184,209,217,223,229,291,357],light_color:87,like:291,limit:343,line:[9,87,159,206,303,351,357,376,381],link:[225,270,281,286,301,323,383,384,403],link_pin:128,linkup:113,linux:[163,311,312,318],lis2dh12:60,list:[14,125,126,159,247,291,355,376],listchr:96,listen:[59,113],listsvr:96,littl:300,ll:211,lm75:61,lm75_data:61,lm75a:61,lm75b:61,lmeter:159,load:[102,223,229,236,252,285,369,376],loadfil:376,loadlib:376,local:[375,376],local_nam:18,local_port:113,localip:113,locat:56,lock:98,locstr:38,log:[84,176,204,209,217,280,376],log_level:113,logic:[2,375,376],login:[18,316],logstor:84,loop:[104,197,375],lora2:86,lora:[85,120],lora_devic:86,lora_rx_don:120,lora_rx_error:120,lora_rx_timeout:120,lora_tx_don:120,lora_tx_timeout:120,loraconfig:[85,86],lose:[13,17],low:329,lower:376,lpmem:291,lsdir:29,lsmount:29,ltepin:66,ltrim:117,lua:[300,320,322,324,325,326,328,329,330,331,333,337,338,339,340,341,345,350,374,375,376,380],lua_absindex:376,lua_alloc:376,lua_arith:376,lua_atpan:376,lua_cal:376,lua_callk:376,lua_cfunct:376,lua_checkstack:376,lua_clos:376,lua_compar:376,lua_concat:376,lua_copi:376,lua_createt:376,lua_debug:376,lua_dump:376,lua_error:376,lua_gc:376,lua_getallocf:376,lua_getextraspac:376,lua_getfield:376,lua_getglob:376,lua_gethook:376,lua_gethookcount:376,lua_gethookmask:376,lua_geti:376,lua_getinfo:376,lua_getloc:376,lua_getmetat:376,lua_getstack:376,lua_gett:376,lua_gettop:376,lua_getupvalu:376,lua_getuservalu:376,lua_hook:376,lua_insert:376,lua_integ:376,lua_isboolean:376,lua_iscfunct:376,lua_isfunct:376,lua_isinteg:376,lua_islightuserdata:376,lua_isnil:376,lua_isnon:376,lua_isnoneornil:376,lua_isnumb:376,lua_isstr:376,lua_ist:376,lua_isthread:376,lua_isuserdata:376,lua_isyield:376,lua_kcontext:376,lua_kfunct:376,lua_len:376,lua_load:376,lua_newst:376,lua_newt:376,lua_newthread:376,lua_newuserdata:376,lua_next:376,lua_numb:376,lua_numbertointeg:376,lua_pcal:376,lua_pcallk:376,lua_pop:376,lua_pushboolean:376,lua_pushcclosur:376,lua_pushcfunct:376,lua_pushfstr:376,lua_pushglobalt:376,lua_pushinteg:376,lua_pushlightuserdata:376,lua_pushliter:376,lua_pushlstr:376,lua_pushnil:376,lua_pushnumb:376,lua_pushstr:376,lua_pushthread:376,lua_pushvalu:376,lua_pushvfstr:376,lua_rawequ:376,lua_rawget:376,lua_rawgeti:376,lua_rawgetp:376,lua_rawlen:376,lua_rawset:376,lua_rawseti:376,lua_rawsetp:376,lua_read:376,lua_regist:376,lua_remov:376,lua_replac:376,lua_resum:376,lua_rot:376,lua_setallocf:376,lua_setfield:376,lua_setglob:376,lua_sethook:376,lua_seti:376,lua_setloc:376,lua_setmetat:376,lua_sett:376,lua_settop:376,lua_setupvalu:376,lua_setuservalu:376,lua_stat:376,lua_statu:376,lua_stringtonumb:376,lua_toboolean:376,lua_tocfunct:376,lua_tointeg:376,lua_tointegerx:376,lua_tolstr:376,lua_tonumb:376,lua_tonumberx:376,lua_topoint:376,lua_tostr:376,lua_tothread:376,lua_touserdata:376,lua_typ:376,lua_typenam:376,lua_unsign:376,lua_upvalueid:376,lua_upvalueindex:376,lua_upvaluejoin:376,lua_vers:376,lua_writ:376,lua_xmov:376,lua_yield:376,lua_yieldk:376,luadb:343,lual_addchar:376,lual_addlstr:376,lual_adds:376,lual_addstr:376,lual_addvalu:376,lual_argcheck:376,lual_argerror:376,lual_buff:376,lual_buffinit:376,lual_buffinits:376,lual_callmeta:376,lual_checkani:376,lual_checkinteg:376,lual_checklstr:376,lual_checknumb:376,lual_checkopt:376,lual_checkstack:376,lual_checkstr:376,lual_checktyp:376,lual_checkudata:376,lual_checkvers:376,lual_dofil:376,lual_dostr:376,lual_error:376,lual_execresult:376,lual_fileresult:376,lual_getmetafield:376,lual_getmetat:376,lual_getsubt:376,lual_gsub:376,lual_len:376,lual_loadbuff:376,lual_loadbufferx:376,lual_loadfil:376,lual_loadfilex:376,lual_loadstr:376,lual_newlib:376,lual_newlibt:376,lual_newmetat:376,lual_newst:376,lual_openlib:376,lual_optinteg:376,lual_optlstr:376,lual_optnumb:376,lual_optstr:376,lual_prepbuff:376,lual_prepbuffs:376,lual_pushresult:376,lual_pushresults:376,lual_ref:376,lual_reg:376,lual_requiref:376,lual_setfunc:376,lual_setmetat:376,lual_stream:376,lual_testudata:376,lual_tolstr:376,lual_traceback:376,lual_typenam:376,lual_unref:376,lual_wher:376,luat:[322,323,327,328,330,377,378],luatask:[377,379],luato:[28,159,162,197,206,209,244,261,265,269,270,274,300,303,304,305,306,307,309,323,336,344,349,380,402],lvgl:[87,159,160,209,217,291],m:[9,376],mac:[96,128,131],machin:[116,215,218,222,228,231,244,270,271,281,308,351],macro:211,main:[177,178,179,211,223,229,236,247,252,280,285],mainten:369,major:96,make:301,manag:[101,247,306,307,329,341,376],mani:[291,301],manipul:[117,133],manual:[159,193,194,195,210,211,217,245,247,291,298,360,369,376],manufactur:[193,194,195],map:[34,100,220,225,227,242,259],mask:[70,89,159,376],mass:[271,308],master:[208,252],match:[291,375,376],math:376,mathemat:376,matrix:[34,114,159,336],max30102:88,max:[125,376],max_temp:91,max_tick:30,maximum:[159,291,369],maxinteg:376,maxout:11,maxsiz:111,mcc:94,mclk:26,mco:248,mcp2515:62,mcu:[89,180,381],md5:6,md:[6,105],md_file:6,mdelai:122,mdk:211,mean:[279,293,343],measur:[91,170,171,172,369],measured_pow:96,mechan:378,megabyt:291,meminfo:107,memori:[133,326,328],merg:159,messag:[120,159,197,252,302,327,376],meta:376,metadata:22,metat:376,meter:159,method:[6,23,31,252,291,311,312,323,350,366,376],mhz:89,middlewar:341,min:376,min_temp:91,minimum:218,mininteg:376,miniz:90,minor:96,minu:2,minut:282,mipp:357,mirror:159,miso:115,mkdir:29,mkf:29,mlx90614:63,mlx90640:91,mnc:94,mobil:[92,120,357],modbu:332,mode2:19,mode:[4,6,7,12,19,20,26,29,38,62,70,73,78,85,86,89,94,96,101,112,115,124,127,131,159,252,291,299,355,360,366,369,370,376],model:[9,22,159,291],modev:94,modf:376,modifi:[159,176,211,252,291,373],modnam:376,modul:[35,67,82,85,86,88,103,222,228,235,244,251,252,255,257,261,270,291,297,320,324,376],month:159,more:[311,312],mosi:115,most:322,motiv:332,motor:291,mount:[12,111,188,189,190,355],mount_point:[12,111],mous:291,move:[159,376],mpu6050:64,mpu6500:64,mpu6xxx:64,mpu9250:64,mqtt:93,mqttc:93,ms:[20,115,379],msdbox:159,msg:[112,322],msgbu:327,msgh:376,msgid:37,muid:92,multi:[2,86,291,375],multimedia:[1,4],multimet:357,multipl:[266,375,379],multiplex:269,multitask:379,mute:274,mutual:323,my:357,mytim:97,n1:376,n2:376,n:[133,376],name:[13,14,51,87,96,100,126,159,345,376],nation:19,navig:159,nb:94,nbiot:[94,381],ne:95,nec:65,necessari:[211,291],necir:65,need:[91,317,325,326,327,328,329,330,337,339,340,341],need_ipv6_dn:113,needl:159,netc:59,netl:66,netmask:131,network:[66,92,113,272,291,293,328],network_check_period:92,new_apn_nam:92,new_nam:131,new_path:97,newnam:376,next:[17,376],next_id:38,nil:375,nimbl:96,nine:64,nmea:38,no_autoat:211,noclear:9,non:[59,70,252,357],nop:107,note:[91,209,254,265,300,360],noth:357,nstinput:92,nstonoff:92,ntp_error:120,ntp_updat:120,num:[92,133],num_channel:1,number:[92,159,177,178,179,274,304,357,375],nvm:291,o:211,obj:[33,87,159,376],obj_set_event_cb:87,obj_set_signal_cb:87,object:[159,302,376],objmask:159,obsolet:[8,134],obtain:[179,188,189,190,274],occas:291,off:[35,66,193,194,235,252,330,357,369,373],offlin:252,offset:[29,98,108,110,111,133,159,376],old_path:97,oldnam:376,on_off:1,one:[211,252,291],onenet:[31,54,149],onff:92,onheap:35,onlevel:1,onli:[114,159,252],onlin:380,onoff:[30,92,93,101,113,130],open:[0,7,27,77,78,103,159,247,291,376],openocd:247,oper:[2,9,16,20,25,27,30,89,92,94,97,98,107,109,110,115,122,125,127,129,131,328,360,361,373,375,376,378],opt:[23,124,130,376],option:[159,211,248,252],ordinari:305,origin:[274,291],originstr:19,os:[97,376],oscil:[218,291],ota:266,ota_port:58,ota_url:58,other:[54,244,251,252,366,379],otp:98,out:[72,282],out_buff:4,out_path:3,output:[30,104,176,177,178,179,182,183,184,209,210,217,248,252,323,357,366,369,370,373,375,376],output_fil:134,outrevers:6,overrid:159,overview:[159,208,235,247,309,360,363,369,384],own:357,pack:[99,133,252,376],packag:[111,211,235,245,261,262,263,266,298,306,308,376],packet:266,packsiz:376,pad:[6,19],pad_index:89,padelai:1,page:[159,252,360,373],pair:376,palett:159,panel:355,paper:391,papin:1,para:133,param1:[15,58],paramet:[31,274,351,375],parent:87,pars:[33,37,38],part:[159,166,169,170,171,172,176,177,178,179,182,183,184,188,189,190,193,194,195,197,198,200,201,202,355],parti:252,partii:125,partit:13,pass:[357,379],passwd:131,password:[18,19,92,93,131,159],path:[1,6,14,15,16,29,87,97,376],patha:107,pathb:107,pathc:107,pathd:107,pattern:376,paus:[1,373],payload:[37,93],pbdata:102,pc:[299,366],pcall:376,pcf8563t:67,pcf8574:68,pcm:252,pd:[357,360],pdn_type:94,per:[177,178,179],perform:[235,252,280],period:[10,103,107,291],peripher:[161,193,194,195,211,235,293,328,335,392],phenomenon:252,phone:[112,357],phycellid:94,pi:376,pictur:159,pid:127,pide:2,pin1:92,pin2:92,pin:[20,30,32,68,100,101,109,159,193,194,195,220,225,227,235,242,252,259,281,286,291],pin_busi:9,pin_c:9,pin_clk:109,pin_dat:109,pin_dc:9,pin_reset:9,pinout:[212,215,219,222,224,228,231,233,246,251,253,262,263,264,294,297],pixel:[133,291],pkg:306,pkx:19,pky:19,place:211,placehold:159,plai:[1,163],plain:376,plan:369,platform:[31,54,142,146,163,311,312,328,329,330,337,338,339,340,341],playback:[163,164],playstop:1,pleas:[211,300],pll:248,plu:2,plug:[247,291,357],plugin:[311,312],pm:[101,181],png:291,pnum:103,po:376,point:[5,159,322,324,325,326,327,328,329,330,331,333,337,341,378],poli:6,polici:274,pool:326,pop:369,popen:376,port:[18,24,34,56,57,80,93,113,114,125,200,201,202,210,215,291,357],portabl:289,posit:[57,159,252,263,291,381],possibl:291,post:301,power:[13,17,36,101,208,216,218,223,229,235,236,263,273,281,285,286,329,337,353,354,355,357,364,365,368,369,370,371,373],power_on_delai:12,power_pin:12,powerlevel:94,powersav:131,pp:357,practic:[217,348],pre:[206,252],precaut:[159,251,252,281,369],precis:[103,179],prefix:117,preload:376,prepar:[142,163,166,167,168,169,170,171,172,175,176,177,178,179,181,182,183,184,186,187,188,189,190,192,193,194,195,197,198,199,200,201,202,209,210,211,217,218,245,271,298,311,312,315,317],preparatori:301,press:369,pressur:[46,74],prevent:42,preview:360,previou:[211,376],previous:291,principl:[303,378],print:[9,78,291,351,376],printf:252,prioriti:[252,376],privat:19,pro:371,probabl:252,problem:333,process:[37,38,124,274,322,323,376],product:[163,235,271,281,286,308,360,381],product_id:31,product_kei:31,productkei:56,produt_id:31,profil:255,prog:376,program:[206,291,304,323,375,376,377],programm:252,progress:159,project:[140,151,157,282,307,308,309,311,312,317,391],prompt:308,pronunci:274,propag:159,protect:252,protobuf:102,protobuff:102,protocol:[62,65,92,272,323],provid:[209,244,261,270,291],psmmode:94,publish:[54,93,119,302,345,379],pull:[18,20,248],pull_mod:30,puls:[20,103],purchas:[215,222,228,251,261,297,381,384],pure:206,purpos:252,push:[18,104],pwd:105,pwm:[103,182,183,184,185,209,217,269,291],qcloud:31,qmc5883l:69,qo:[54,93],qq:[301,381],qrcode:[9,87],qrcode_cr:87,qrcode_delet:87,qrcode_upd:87,qualcomm:[21,388],qualiti:3,quantiti:369,queri:[133,169,177,178,179,306],question:375,quick:[159,206,375],quickli:357,quiz:375,r:[35,124,133],rad:[124,376],radiu:[9,87],random:376,randomse:376,rang:[0,159,373],rapid:301,rate:88,raw:280,raw_data:91,raw_point:91,rawdata:37,rawequ:376,rawget:376,rawlen:376,rawset:376,rc522:70,rc522_config_isotyp:70,rclk:72,rcr:128,rddi:247,re:104,read:[0,12,44,67,70,98,104,110,111,125,133,170,171,172,188,189,190,193,194,195,252,274,291,349,376],read_datablock:70,read_light:45,read_rawrc:70,read_tim:48,readdht12:25,readfil:29,readi:[93,130,131,316],readreg:25,readsht30:25,real:[48,106,291,366],realiz:291,reboot:[101,107],receiv:[65,107,132,200,201,202,252],receive_buff:62,recogn:[247,357],recolor:159,recommend:[206,207,381],reconfigur:252,reconnect:[93,130],reconnect_tim:[93,130],record:10,rect:9,recv:[25,26,85,86,115],recv_cb:65,refer:[211,235,376],refresh:373,refresh_r:91,reg32:89,reg:25,regist:[200,201,202,291],registr:377,registri:376,regular:375,relat:[159,163,211,264,266,270,281,286,375],releas:[4,30,113,132,252,254,265],relev:[291,322,324,325,326,327,328,329,330,331,333,337,341],reload:252,remain:252,remind:316,remot:[32,71],remote_nam:18,remote_port:113,remoteip:113,remov:[97,159,306,376],renam:[97,376],rep:[375,376],repeat:[32,116],repeat_cnt:30,repl:[104,376,380],replac:[251,252,282],report:10,req_cod:70,reqaddr:56,reqcellinfo:92,reqedrxvaluem:94,reqtim:[56,57],request:[23,56,57,58,70,101],requir:[159,211,230,345,351,376],reqwifi:56,reserv:291,reset:[62,70,92,132,218,252],resistor:248,resiz:[133,159],resolut:[51,311,395,398,401],resourc:[218,281,286],respons:323,restart:357,result:[252,345],resum:376,retain:[54,93],reus:252,revers:376,revert:6,rf:293,rgb565:35,rgb:291,right:316,rmdir:29,roll:159,roller:159,rotari:49,rotat:[9,159],rout:381,routin:291,row:[159,252],rp2040:292,rs485_delai:125,rs485_gpio:125,rs485_level:125,rsa:105,rsrp:[92,94],rsrq:[92,94],rssi:[92,94],rst:70,rst_pin:128,rtc:[106,186,209,252,291],rtcauto:38,rtime:92,rtkv:71,rto:[107,291],rtr:128,rtrim:117,rule:[274,376],run:[5,15,119,291,376,377,379],rx:[113,124,125],rx_hwtimer_id:125,rx_len:115,rx_pin:125,rxbuff:[25,115],rxclear:125,rxe:252,rxlen:25,rxpacket:73,rxsize:125,ry:124,s3:288,s:[331,350,376],same:291,sampl:[26,252,291,301,302],sample_r:1,save:[169,291,316],save_path:3,scale:[159,366],scan:[25,78,96,131],scan_period:123,scanresult:131,scatter:211,scenario:332,schedul:328,schemat:[212,219,389,403],scl:[25,76],scl_pin:78,sclk:72,scm:291,scope:159,scr:87,scr_act:87,scr_load:87,scr_load_anim:87,screen:[9,175,227,291,357,369,390,391,401,404],screenshot:280,script:[204,209,223,229,232,236,285,291,366],scroll:[159,369],scrollabl:159,sd:291,sd_read:108,sd_write:108,sda:[25,76],sda_pin:78,sdio:[108,209,217],sdk:291,sdk_appid:31,search_cell_tim:92,searcher:376,searchpath:376,second:[177,178,179,373],secret:[6,19],section:211,sector:[193,194,195],seek:[133,376],seem:291,seg:36,seg_data:[77,78],seg_mark:36,seg_set:36,segment:[36,227],select:[70,159,211,252,274,279,366,373,376],selector:159,self:[159,299,375],send:[25,26,56,81,85,86,112,115,130,170,171,172,197,200,201,202,252,327],send_buff:62,send_data:115,send_msg:96,sendbuff:124,senddisplaydata:77,sendind:96,sendmsg:121,sendnec:32,sendnotifi:96,sensor:[41,43,44,45,46,47,48,55,60,61,64,69,74,75,79,83,109,230],sent:[252,291],sep:376,separ:[117,357],sequenc:30,seri:[159,265,268,270,291,317,404],serial:[125,200,201,202,204,210,215,291],seriesiot:357,server:[24,80],server_cert:[58,113],set:[17,20,71,73,106,133,159,177,178,252,273,274,357,360,369],set_bit_mask:70,set_channel:[85,86],set_id:127,set_mod:73,set_rxconfig:[85,86],set_tim:48,set_txconfig:[85,86],setauto:92,setband:[92,94],setbaseyear:106,setbitmapmod:124,setblinktim:66,setbootcfun:94,setbright:[77,78],setbu:1,setcap:30,setcfun:94,setchr:96,setclk:89,setcolor:35,setcontrast:124,setctx:9,setdefaultpul:20,setdelai:30,setdn:113,setdrawcolor:124,setedrx:94,setedrxptw:94,setfont:[9,35,124],setfontmod:124,setframebuff:133,setgpio:30,sethook:376,setlevel:84,setlight:76,setloc:376,setlocal:376,setmac:131,setmetat:376,setmod:131,setnewsmscb:112,setpath:107,setpowersav:124,setpsm:94,setrang:0,setstat:66,sett:17,settimeout:129,settz:94,setup:[9,20,25,26,36,66,67,71,115,123,125,373],setupbreatel:66,setupbuff:35,setupvalu:376,setuservalu:376,setuuid:96,setvbuf:376,setwin:9,setxtal:89,sever:[159,291,357],sfd:[110,187],sfud:[111,188,189,190,191,209,217],sha1:6,sha256:6,sha512:6,shake:273,shell:355,shield:62,shift595:72,shift:2,show:[2,9,159],showimag:35,shut:[193,194,195],shutdown:[88,101],si24r1:73,sig:[19,105],sign:105,sim_ind:120,simid:92,simpin:92,simpl:[159,299,318,319,349,375],simplest:300,simul:[95,291],sin:376,sinc:357,singl:[159,197,291],singleshow:76,site:316,six:64,size:[9,35,87,111,115,124,159,212,219,235,252,282,326,375,376],skei:[13,17],slaveaddr:25,sleep:[9,35,87,252],slider:159,sm2decrypt:19,sm2encrypt:19,sm2sign:19,sm2verifi:19,sm3:19,sm3hmac:19,sm4decrypt:19,sm4encrypt:19,sm:[19,112,116,120],small:[206,375],smaller:369,smart:252,smartconfig:131,smell:369,smoothli:369,sms_inc:120,sn:[89,92,94],snr:[92,94],sntp:113,sntp_server:113,soc:[28,162,265,291,300,344,349,381],socket:[59,113,120],soft:252,soft_kb_inc:120,softkb:114,softkeyboard:[114,120],softwar:[42,111,114,166,167,168,169,170,171,172,175,176,177,178,179,181,182,183,184,186,187,188,189,190,192,193,194,195,197,198,199,200,201,202,208,209,217,252,262,263,291,306,323,366],solut:[247,266,324,333],some:[89,252],sort:376,sound:369,sourc:[159,211,228,247,310,315,317],source_32k:89,source_main:89,spe:252,special:[89,209,281,286,343],specif:[188,189,190,252,345],specifi:[193,194,195,291,329,337],speech:274,speed:[25,128,159,274,291],spi:[110,111,115,188,189,190,192,193,194,195,196,209,217,252,269,281,291,339],spi_bandr:111,spi_c:[12,110,111],spi_devic:[9,21,87,111,115],spi_id:[62,65,70,73,110,111],spi_spe:12,spiconfig:[85,86],spiid:[9,128],spiid_or_spidevic:12,spinbox:159,spinner:159,spl06:74,spl06_01:74,splice:375,split:[117,159],sqrt:376,srv_uuid:96,ssid:131,ssl:93,ssllog:113,st7735:291,stack:376,staip:131,standard:[252,291,357,376],standi:107,start2:133,start:[1,3,6,24,30,65,120,125,127,133,159,197,206,217,315,330,357,375,379],startraw:3,startswith:117,startup:[177,178,179,211],state:[66,87,93,116,159,252,323],statem:116,statement:[375,376],station:[56,57],statu:[17,66,92,110,118,159,323,376],step:[289,291,355],still:[247,357],stop:[1,3,24,25,30,127,197,252,323],stop_bit:125,stopap:131,store:[301,317],storge_loc:[15,58],str:[6,9,33,35,37,38,117,124],stream:6,string:[10,99,117,177,178,179,200,201,202,350,375,376],strip:376,strong:121,strongli:381,strtoll:2,structur:[309,327,330,332,336,369,376],sty_en:87,sty_zh:87,style:[84,87,159,176,274,331,332],style_cr:87,style_delet:87,style_list_cr:87,style_list_delet:87,style_list_t:87,style_t:87,sub:[375,376],subchr:96,submask:128,submiss:345,subscrib:[54,93,119,197,379],subscript:375,suffix:117,suit:272,summari:[280,350],suppli:[235,281,286,355,357,370,373],support:[40,46,54,61,64,86,114,159,211,228,245,248,252,291,293,298,332,357,376,381,385],suspend:323,svr_uuid:96,sw:252,swap:[35,375],swd:215,swing:159,swm181:298,swm181cbt6:[296,297],sxx32f103:252,sxx32f1xx:252,sy:[119,120,121,197,333,379],symbol:159,symmetri:159,synchron:59,synergi:[376,377],syntax:376,synthesi:332,sys_pub:345,sysplu:121,system:[2,16,120,159,188,189,190,218,252,272,325,328,349,376],system_air001xx:211,t0h:109,t0l:109,t1:376,t1h:109,t1l:109,t2:376,t:[33,37,247,291,301,357,376],ta_temp:91,tab:[106,159],tabl:[159,188,189,190,220,225,230,242,259,279,293,375,376],tabview:159,tac:[92,94],tag:[84,159],take:376,tan:376,target:121,task:[197,302,328,333,379],taskdel:121,taskinit:[119,379],taskinitex:121,taskl:66,tasklt:66,tasknam:[59,121],tautim:94,tc:252,tcs3472:75,technic:[228,358,359,369,372,381],temperatur:[41,44,47,61,63,91],tencent:155,tengxun:54,term:[308,323],termin:357,terminolog:303,test:[141,152,158,223,229,236,245,280,285,298,301,364,375],tester:365,text:[159,206,375],textarea:159,tf:67,tft:398,tft_:[395,401],than:[252,369],theme:159,theme_set_act:87,thi:[91,291],thick:87,think:291,third:252,thread:[291,376],three:[55,60],threshold:123,through:[252,291,325,357],tick1:89,tick2:89,tick64:89,tick:[89,94,159,177,178,179],tie:67,tile:159,tileview:159,tim2:252,tim5:252,tim:252,time:[6,48,67,92,93,97,106,159,247,252,291,366,376],time_tick:30,time_u:30,timea:97,timeb:97,timeout:[25,56,57,59,85,86,92,96,101,107,119,121,122,129],timer:[122,197,198,200,201,202,223,229,236,252,285,330,377,379],timer_start:107,timer_stop:107,timerisact:379,timerloopstart:[119,379],timerstart:[106,119,379],timerstop:[106,119,379],timerstopal:379,timestamp:252,timezon:106,titl:159,tl:272,tm1637:76,tm1640:77,tm1650:78,tmpfile:376,tmpname:376,to32:2,to64:2,tobase32:117,tobase64:117,tocod:27,toggl:20,tohex:117,tointeg:376,token:37,tonumb:376,tool:[204,209,252,261,303,315],toolkit:308,top:316,topic:[54,80,93,119,345],tostr:[133,376],total:326,totp:6,touch:[123,230,291],touchkei:[120,123],touchkey_inc:120,tovalu:117,tp:[6,9,14,35,38,87,96,131],tpname:102,traceback:376,traceswo:252,tradit:379,transfer:[25,115,252],transfer_done_top:[25,115],transpar:159,transplant:252,treasur:357,triangl:375,trigger:[170,171,172,252,357],trim:117,trimmer:159,trng:6,troubleshoot:218,tsl2561:79,tt:[1,274,291],tube:[76,77,78],turn:[182,183,184,193,194,252,330,357,369,373,375],turnov:291,tutori:[162,174,204,205,206,215,218,222,228,231,244,247,251,270,281,282,297,374,375],tuya:31,twice:252,two:[179,200,201,202,252,355],tx:[51,59,113,125],tx_hwtimer_id:125,tx_pin:125,txbuff:[25,115],txconfig:[85,86],txfp:252,txpacket:73,txstat:26,type:[2,4,6,10,37,81,89,107,110,133,159,200,201,202,291,308,332,343,349,375,376],typec:357,typic:270,tz:[94,106],u4:291,u8g2:124,u8g2_get:14,u8g2_load:14,u:376,ua:369,uart1:[200,201,202],uart:[125,199,200,201,202,203,209,217,269,291,340],uart_br:81,uart_id:[81,82,83,92],udata:376,udelai:122,udisk_attach_sdhc:127,udisk_detach_sdhc:127,udp:80,udpsrv:80,ufont:126,uid:70,ult:376,unabl:211,uncheck:159,uncompress:[11,90],under:[126,269,291],underli:[15,107,206,378],understand:375,unifi:126,uniqu:[177,178,179],unique_id:89,unpack:[99,133,376],unstabl:369,unsubchr:96,unsubscrib:[54,93,119,379],unsuccess:291,up:[159,218,248,357,369,376],updat:[159,206,247,304,306,375],updatecellinfo:94,upgrad:[15,58,266,304,357,360,366,369,371],upper:[316,376],upvalueid:376,upvaluejoin:376,uri:37,url:[23,130],urlencod:117,us:[31,51,54,91,133,162,188,189,190,197,200,201,202,206,211,215,246,247,252,281,291,302,316,327,331,332,338,339,340,357,369,376,379,383,386,391,393,396,399,402],usag:[159,167,168,175,181,186,187,192,199,209,217,252,299,318,319],usart:252,usb:[127,235,247,248,252,291,357,369],usbapp:127,user:[91,197,210,211,302,309,311,312,368],user_flag:10,user_nam:92,userapn:94,usernam:[18,93],utf8:376,utf:376,uuid:[96,291],v1020:254,v1021:254,v1103:265,v1104:265,v1105:265,v1106:265,v1107:265,v1108:265,v1:[291,357,369,371,376],v2:[57,357,376],v:[124,376],val1:[99,133,376],val2:[84,99,133],val3:[84,99],val:[20,68,84,94,95,101,379],valid:376,valn:99,valu:[1,12,13,17,20,70,71,89,92,96,159,252,302,343,357,369,375,376],variabl:[375,376],variou:[31,308],varnam:376,veri:[159,291],verifi:105,version:[31,70,96,107,159,223,229,236,247,266,285,291,299,304,363,375,376],vertic:159,vhid_cancel_upload:127,vhid_upload:127,vid:127,video:[3,163,164,206,375],view:[159,204,209,210,217,373],virtual:[247,269],visibl:[159,300,376],visit:316,vlcd:36,voic:[291,369],vol:1,voltag:[252,357,360,369,373],volum:274,vscode:207,w1_connect:109,w1_read:109,w1_reset:109,w1_write:109,w5500:[120,128],w800:291,w806:209,w:[3,9,35,87,124,373],wait485:125,wait:[15,59,113,119,197,282,302,323,333,375,379],waitabl:302,waitc:323,waitlink:59,waitmsg:121,waitt:323,waituntil:[119,379],waituntilext:379,wake:218,wakeup:35,wakeuppin:101,want:[291,316,357,369],warn:84,warning_level:107,watch:208,watchdog:[42,129],watchdogpin:42,waveform:[360,373],wdt:129,weak:376,weather_icon:9,websocket:130,wh:373,what:[209,215,222,244,251,261,270,291,297,322,331,350,369,376],when:[252,357,369],whenc:376,where:291,whether:252,which:291,white:[206,291],why:[159,291,316,325,326,327,328,329,330,337,339,340,341,357],widget:159,width:[9,133,159],wifi:[131,289,341,381],win32:319,win:159,window:[123,159,163,311,312],wire:[263,355],wireless:[208,291],within:345,withstand:252,wizpro200st8:252,wlan:[131,341],wrap:376,write:[1,7,12,67,70,98,110,111,125,133,159,188,189,190,193,194,195,252,300,349,376],write_datablock:70,writechr:96,writefil:29,writereg:25,ws2812:162,ws2812b:109,ws2812b_pwm:109,ws2812b_spi:109,wsc:130,x0:[35,124],x1:[35,124,133],x2:[9,35,124,133],x32:89,x:[9,35,87,91,124,133,376],xfer:[25,115],xmake:[311,312],xmodem:81,xpcall:376,y0:[35,124],y1:[35,124,133],y2:[9,35,124,133],y:[9,35,87,91,124,133,159,376],yet:291,yield:376,ymodem:132,you:[291,316,325,326,327,328,329,330,341,357,369],zbuff:[10,133,200,201,202],ze08g:82,ze08g_ch2o:82,zero:369,zh07:83,zlib:[90,134],zone:98,zoom:366}}) \ No newline at end of file diff --git a/translated-docs/_static/luatos-emulator/vs/snippet.json b/translated-docs/_static/luatos-emulator/vs/snippet.json index c449fa243..34b127fa2 100644 --- a/translated-docs/_static/luatos-emulator/vs/snippet.json +++ b/translated-docs/_static/luatos-emulator/vs/snippet.json @@ -1 +1 @@ -{"_G": {"body": "_G(${0:...})", "description": "_G", "prefix": "_G"}, "_VERSION": {"body": "_VERSION(${0:...})", "description": "_VERSION", "prefix": "_VERSION"}, "assert": {"body": "assert(${1:v}${2:[, message]})", "description": "assert()", "prefix": "assert"}, "collectgarbage": {"body": "collectgarbage(${1:[opt]}${2:[, arg]})", "description": "collectgarbage()", "prefix": "collectgarbage"}, "coroutine.create": {"body": "coroutine.create( ${1:function} )", "description": "coroutine.create", "prefix": "coroutine.create"}, "coroutine.isyieldable": {"body": "coroutine.isyieldable( )", "description": "coroutine.isyieldable", "prefix": "coroutine.isyieldable"}, "coroutine.resume": {"body": "coroutine.resume( ${1:co}${2:[, val1, \u00b7\u00b7\u00b7]} )", "description": "coroutine.resume", "prefix": "coroutine.resume"}, "coroutine.running": {"body": "coroutine.running( )", "description": "coroutine.running", "prefix": "coroutine.running"}, "coroutine.status": {"body": "coroutine.status( ${1:co} )", "description": "coroutine.status", "prefix": "coroutine.status"}, "coroutine.wrap": {"body": "coroutine.wrap( ${1:function} )", "description": "coroutine.wrap", "prefix": "coroutine.wrap"}, "coroutine.yield": {"body": "coroutine.yield( ${1:...} )", "description": "coroutine.yield", "prefix": "coroutine.yield"}, "debug.debug": {"body": "debug.debug()", "description": "debug.debug ()", "prefix": "debug.debug"}, "debug.getfenv": {"body": "debug.getfenv(${0:...})", "description": "debug.getfenv (o)", "prefix": "debug.getfenv"}, "debug.gethook": {"body": "debug.gethook( ${1:[thread]} )", "description": "debug.gethook ([thread])", "prefix": "debug.gethook"}, "debug.getinfo": {"body": "debug.getinfo( ${1:[thread],}${2:f}${3:[, what]} )", "description": "debug.getinfo ([thread,] f [, what])", "prefix": "debug.getinfo"}, "debug.getlocal": {"body": "debug.getlocal( ${1:[thread],}${2:f}${3:[, local]} )", "description": "debug.getlocal ([thread,] f, local)", "prefix": "debug.getlocal"}, "debug.getmetatable": {"body": "debug.getmetatable( ${1:value} )", "description": "debug.getmetatable (value)", "prefix": "debug.getmetatable"}, "debug.getregistry": {"body": "debug.getregistry()", "description": "debug.getregistry ()", "prefix": "debug.getregistry"}, "debug.getupvalue": {"body": "debug.getupvalue( ${1:f}, ${2:up} )", "description": "debug.getupvalue (f, up)", "prefix": "debug.getupvalue"}, "debug.getuservalue": {"body": "debug.getuservalue(${0:...})", "description": "debug.getuservalue (u)", "prefix": "debug.getuservalue"}, "debug.getuservalue ": {"body": "debug.getuservalue ( ${1:u} )", "description": "debug.getuservalue (u)", "prefix": "debug.getuservalue "}, "debug.setfenv": {"body": "debug.setfenv(${0:...})", "description": "debug.setfenv (object, table)", "prefix": "debug.setfenv"}, "debug.sethook": {"body": "debug.sethook( ${1:[thead,]}${2:hook}, ${3:mask}${4:[, count]} )", "description": "debug.sethook ([thread,] hook, mask [, count])", "prefix": "debug.sethook"}, "debug.setlocal": {"body": "debug.setlocal( ${1:[thead,]}${2:level}, ${3:local}, ${4:value} )", "description": "debug.setlocal ([thread,] level, local, value)", "prefix": "debug.setlocal"}, "debug.setmetatable": {"body": "debug.setmetatable( ${1:value}, ${2:table} )", "description": "debug.setmetatable (value, table)", "prefix": "debug.setmetatable"}, "debug.setupvalue": {"body": "debug.setupvalue( ${1:f}, ${2:up}, ${3:value} )", "description": "debug.setupvalue (f, up, value)", "prefix": "debug.setupvalue"}, "debug.setuservalue": {"body": "debug.setuservalue( ${1:udata}, ${2:value} )", "description": "debug.setuservalue (udata, value)", "prefix": "debug.setuservalue"}, "debug.traceback": {"body": "debug.traceback( ${1:[thread,]}${2:[message]}${3:[, level]} )", "description": "debug.traceback ([thread,] [message [, level]])", "prefix": "debug.traceback"}, "debug.upvalueid": {"body": "debug.upvalueid( ${1:f}, ${2:n})", "description": "debug.upvalueid (f, n)", "prefix": "debug.upvalueid"}, "debug.upvaluejoin": {"body": "debug.upvaluejoin( ${1:f1}, ${2:n1}, ${3:f2}, ${4:n2} )", "description": "debug.upvaluejoin (f1, n1, f2, n2)", "prefix": "debug.upvaluejoin"}, "dofile": {"body": "dofile(${1:[filename]})", "description": "dofile ([filename])", "prefix": "dofile"}, "elif": {"body": "else if ${1:condition} then\n\t${0:-- body}\n", "description": "elif", "prefix": "elif"}, "error": {"body": "error(${0:...})", "description": "error (message [, level])", "prefix": "error"}, "file:close": {"body": "file:close(${0:...})", "description": "file:close ()", "prefix": "file:close"}, "file:flush": {"body": "file:flush(${0:...})", "description": "file:flush ()", "prefix": "file:flush"}, "file:lines": {"body": "file:lines(${0:...})", "description": "file:lines ()", "prefix": "file:lines"}, "file:read": {"body": "file:read(${0:...})", "description": "file:read (...)", "prefix": "file:read"}, "file:seek": {"body": "file:seek(${0:...})", "description": "file:seek ([whence] [, offset])", "prefix": "file:seek"}, "file:setvbuf": {"body": "file:setvbuf(${0:...})", "description": "file:setvbuf (mode [, size])", "prefix": "file:setvbuf"}, "file:write": {"body": "file:write(${0:...})", "description": "file:write (...)", "prefix": "file:write"}, "for": {"body": "for ${1:i}=${2:1},${3:10} do\n\t${0:print(i)}\nend", "description": "for i=1,10", "prefix": "for"}, "fori": {"body": "for ${1:i},${2:v} in ipairs(${3:table_name}) do\n\t${0:print(i,v)}\nend", "description": "for i,v in ipairs()", "prefix": "fori"}, "forp": {"body": "for ${1:k},${2:v} in pairs(${3:table_name}) do\n\t${0:print(k,v)}\nend", "description": "for k,v in pairs()", "prefix": "forp"}, "fun": {"body": "function ${1:function_name}( ${2:...} )\n\t${0:-- body}\nend", "description": "function", "prefix": "fun"}, "function": {"body": "function ${1:function_name}( ${2:...} )\n\t${0:-- body}\nend", "description": "function", "prefix": "function"}, "getfenv": {"body": "getfenv(${0:...})", "description": "getfenv ([f])", "prefix": "getfenv"}, "getmetatable": {"body": "getmetatable(${1:object})", "description": "getmetatable (object)", "prefix": "getmetatable"}, "if": {"body": "if ${1:condition} then\n\t${0:-- body}\nend", "description": "if", "prefix": "if"}, "ifel": {"body": "if ${1:condition} then\n\t${2:-- body}\nelse\n\t${0:-- body}\nend", "description": "ifel", "prefix": "ifel"}, "io.close": {"body": "io.close(${0:...})", "description": "io.close ([file])", "prefix": "io.close"}, "io.flush": {"body": "io.flush(${0:...})", "description": "io.flush ()", "prefix": "io.flush"}, "io.input": {"body": "io.input(${0:...})", "description": "io.input ([file])", "prefix": "io.input"}, "io.lines": {"body": "io.lines(${0:...})", "description": "io.lines ([filename])", "prefix": "io.lines"}, "io.open": {"body": "io.open(${0:...})", "description": "io.open (filename [, mode])", "prefix": "io.open"}, "io.output": {"body": "io.output(${0:...})", "description": "io.output ([file])", "prefix": "io.output"}, "io.popen": {"body": "io.popen(${0:...})", "description": "io.popen (prog [, mode])", "prefix": "io.popen"}, "io.read": {"body": "io.read(${0:...})", "description": "io.read (...)", "prefix": "io.read"}, "io.tmpfile": {"body": "io.tmpfile(${0:...})", "description": "io.tmpfile ()", "prefix": "io.tmpfile"}, "io.type": {"body": "io.type(${0:...})", "description": "io.type (obj)", "prefix": "io.type"}, "io.write": {"body": "io.write(${0:...})", "description": "io.write (...)", "prefix": "io.write"}, "ipairs": {"body": "ipairs(${0:...})", "description": "ipairs (t)", "prefix": "ipairs"}, "load": {"body": "load(${0:...})", "description": "load (func [, chunkname])", "prefix": "load"}, "loadfile": {"body": "loadfile(${0:...})", "description": "loadfile ([filename])", "prefix": "loadfile"}, "loadstring": {"body": "loadstring(${0:...})", "description": "loadstring (string [, chunkname])", "prefix": "loadstring"}, "local": {"body": "local ${1:x} = ${0:1}", "description": "local x = 1", "prefix": "local"}, "math.abs": {"body": "math.abs( ${1:x} )", "description": "math.abs", "prefix": "math.abs"}, "math.acos": {"body": "math.acos( ${1:x} )", "description": "math.acos", "prefix": "math.acos"}, "math.asin": {"body": "math.asin( ${1:x} )", "description": "math.asin", "prefix": "math.asin"}, "math.atan": {"body": "math.atan( ${1:y}${2:[, x]} )", "description": "math.atan", "prefix": "math.atan"}, "math.atan2": {"body": "math.atan2(${0:...})", "description": "math.atan2 (y, x)", "prefix": "math.atan2"}, "math.ceil": {"body": "math.ceil( ${1:x} )", "description": "math.ceil", "prefix": "math.ceil"}, "math.cos": {"body": "math.cos( ${1:x} )", "description": "math.cos", "prefix": "math.cos"}, "math.cosh": {"body": "math.cosh(${0:...})", "description": "math.cosh (x)", "prefix": "math.cosh"}, "math.deg": {"body": "math.deg( ${1:x} )", "description": "math.deg", "prefix": "math.deg"}, "math.exp": {"body": "math.exp( ${1:x} )", "description": "math.exp", "prefix": "math.exp"}, "math.floor": {"body": "math.floor( ${1:x} )", "description": "math.floor", "prefix": "math.floor"}, "math.fmod": {"body": "math.fmod( ${1:x},${2:y} )", "description": "math.fmod", "prefix": "math.fmod"}, "math.frexp": {"body": "math.frexp(${0:...})", "description": "math.frexp (x)", "prefix": "math.frexp"}, "math.huge": {"body": "math.huge(${0:...})", "description": "math.huge", "prefix": "math.huge"}, "math.ldexp": {"body": "math.ldexp(${0:...})", "description": "math.ldexp (m, e)", "prefix": "math.ldexp"}, "math.log": {"body": "math.log( ${1:x}${2:[, base]} )", "description": "math.log", "prefix": "math.log"}, "math.log10": {"body": "math.log10(${0:...})", "description": "math.log10 (x)", "prefix": "math.log10"}, "math.math.randomseed": {"body": "math.math.randomseed( ${1:x} )", "description": "math.math.randomseed", "prefix": "math.math.randomseed"}, "math.max": {"body": "math.max( ${1:x},${2:...} )", "description": "math.max", "prefix": "math.max"}, "math.maxinteger": {"body": "math.maxinteger(${0:...})", "description": "math.maxinteger", "prefix": "math.maxinteger"}, "math.min": {"body": "math.min( ${1:x},${2:...} )", "description": "math.min", "prefix": "math.min"}, "math.mininteger": {"body": "math.mininteger(${0:...})", "description": "math.mininteger", "prefix": "math.mininteger"}, "math.modf": {"body": "math.modf( ${1:x} )", "description": "math.modf", "prefix": "math.modf"}, "math.pi": {"body": "math.pi(${0:...})", "description": "math.pi", "prefix": "math.pi"}, "math.pow": {"body": "math.pow(${0:...})", "description": "math.pow (x, y)", "prefix": "math.pow"}, "math.rad": {"body": "math.rad(${0:...})", "description": "math.rad (x)", "prefix": "math.rad"}, "math.random": {"body": "math.random( ${1:[m]}${2:[, n]} )", "description": "math.random", "prefix": "math.random"}, "math.randomseed": {"body": "math.randomseed(${0:...})", "description": "math.randomseed (x)", "prefix": "math.randomseed"}, "math.sin": {"body": "math.sin( ${1:x} )", "description": "math.sin", "prefix": "math.sin"}, "math.sinh": {"body": "math.sinh(${0:...})", "description": "math.sinh (x)", "prefix": "math.sinh"}, "math.sqrt": {"body": "math.sqrt( ${1:x} )", "description": "math.sqrt", "prefix": "math.sqrt"}, "math.tan": {"body": "math.tan( ${1:x} )", "description": "math.tan", "prefix": "math.tan"}, "math.tanh": {"body": "math.tanh(${0:...})", "description": "math.tanh (x)", "prefix": "math.tanh"}, "math.tointeger": {"body": "math.tointeger( ${1:x} )", "description": "math.tointeger", "prefix": "math.tointeger"}, "math.type": {"body": "math.type( ${1:x} )", "description": "math.type", "prefix": "math.type"}, "math.ult": {"body": "math.ult(${0:...})", "description": "math.ult (m, n)", "prefix": "math.ult"}, "module": {"body": "module(${0:...})", "description": "module (name [, ...])", "prefix": "module"}, "next": {"body": "next(${1:table}${2:[, index]})", "description": "next (table [, index])", "prefix": "next"}, "os.clock": {"body": "os.clock()", "description": "os.clock() - \u8fd4\u56de\u7a0b\u5e8f\u4f7f\u7528\u7684\u6309\u79d2\u8ba1 CPU \u65f6\u95f4\u7684\u8fd1\u4f3c\u503c\n\u4f20\u5165\u503c\uff1a\nreturn \u65f6\u95f4\u6233\n\u4f8b\u5b50\uff1a\n-- \u4e0d\u63a8\u8350\u4f7f\u7528\u672cAPI\n-- \u5982\u9700\u8981\u83b7\u53d6 \u65f6\u95f4\u6233, \u8bf7\u4f7f\u7528 os.time()\n-- \u5982\u9700\u83b7\u53d6\u7cfb\u7edf\u8fd0\u884c\u65f6\u957f, \u8bf7\u4f7f\u7528 mcu.ticks()\n", "prefix": "os.clock"}, "os.date": {"body": "os.date(${1:fmt},${2:time})", "description": "os.date(fmt, time) - \u65e5\u671f\u51fd\u6570\n\u4f20\u5165\u503c\uff1a\nstring \u683c\u5f0f\u5316\u5b57\u7b26\u4e32,\u53ef\u4ee5\u662fnil\ntable \u65e5\u671f\u65f6\u95f4\u7684table\n\u8fd4\u56de\u503c\uff1a\ntable/string \u6839\u636efmt\u7684\u4e0d\u540c,\u8fd4\u56de\u503c\u4e0d\u540c\n\u4f8b\u5b50\uff1a\n\n-- \u503c\u5f97\u6ce8\u610f\u7684\u51e0\u70b9:\n-- 1. \u82e5\u9700\u8981UTC\u65f6\u95f4, fmt\u7684\u7b2c\u4e00\u4e2a\u5b57\u7b26\u5199\"!\"\n-- 2. fmt\u7684\u683c\u5f0f\u5316\u9075\u5faa C \u51fd\u6570 strftime, \u53ef\u4ee5\u67e5\u9605 https://developer.aliyun.com/article/320480\n\n-- \u83b7\u53d6\u672c\u5730\u65f6\u95f4\u5b57\u7b26\u4e32\nlog.info(\"\u672c\u5730\u65f6\u95f4\u5b57\u7b26\u4e32\", os.date())\n-- \u83b7\u53d6UTC\u65f6\u95f4\u5b57\u7b26\u4e32\nlog.info(\"UTC\u65f6\u95f4\u5b57\u7b26\u4e32\", os.date(\"!%c\"))\n-- \u683c\u5f0f\u5316\u672c\u5730\u65f6\u95f4\u5b57\u7b26\u4e32\nlog.info(\"\u672c\u5730\u65f6\u95f4\u5b57\u7b26\u4e32\", os.date(\"%Y-%m-%d %H:%M:%S\"))\n-- \u683c\u5f0f\u5316UTC\u65f6\u95f4\u5b57\u7b26\u4e32\nlog.info(\"UTC\u65f6\u95f4\u5b57\u7b26\u4e32\", os.date(\"!%Y-%m-%d %H:%M:%S\"))\n-- \u683c\u5f0f\u5316\u65f6\u95f4\u5b57\u7b26\u4e32\nlog.info(\"\u81ea\u5b9a\u4e49\u65f6\u95f4\u7684\u5b57\u7b26\u4e32\", os.date(\"!%Y-%m-%d %H:%M:%S\", os.time({year=2000, mon=1, day=1, hour=0, min=0, sec=0})))\n\n-- \u83b7\u53d6\u672c\u5730\u65f6\u95f4\u7684table\nlog.info(\"\u672c\u5730\u65f6\u95f4\u5b57\u7b26\u4e32\", json.encode(os.date(\"*t\")))\n-- \u83b7\u53d6UTC\u65f6\u95f4\u7684table\nlog.info(\"UTC\u65f6\u95f4\u5b57\u7b26\u4e32\", json.encode(os.date(\"!*t\")))\n", "prefix": "os.date"}, "os.difftime": {"body": "os.difftime(${1:timeA},${2:timeB})", "description": "os.difftime(timeA, timeB) - \u65f6\u95f4\u5dee\u503c\n\u4f20\u5165\u503c\uff1a\nint \u65f6\u95f4A,\u6570\u503c\u7c7b\u578b\nint \u65f6\u95f4B,\u6570\u503c\u7c7b\u578b\n\u8fd4\u56de\u503c\uff1a\nint \u65f6\u95f4\u5dee\u503c\n", "prefix": "os.difftime"}, "os.execute": {"body": "os.execute(${0:...})", "description": "os.execute ([command])", "prefix": "os.execute"}, "os.exit": {"body": "os.exit(${0:...})", "description": "os.exit ([code])", "prefix": "os.exit"}, "os.getenv": {"body": "os.getenv(${0:...})", "description": "os.getenv (varname)", "prefix": "os.getenv"}, "os.remove": {"body": "os.remove(${1:path})", "description": "os.remove(path) - \u79fb\u9664\u6587\u4ef6\n\u4f20\u5165\u503c\uff1a\nstring \u5f85\u79fb\u9664\u7684\u6587\u4ef6\u5b8c\u6574\u8def\u5f84\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5176\u4ed6\u60c5\u51b5\u8fd4\u56denil\nstring \u5931\u8d25\u65f6\u8fd4\u56de\u539f\u56e0\u5b57\u7b26\u4e32\n\u4f8b\u5b50\uff1a\n-- \u5220\u9664\u6839\u76ee\u5f55\u4e0b\u7684\u67d0\u4e2a\u6587\u4ef6\nos.remove(\"/1.txt\")\n-- \u6ce8\u610f, \u7ebf\u5237\u65f6\u7684\u6587\u4ef6, \u4e00\u822c\u5728 /luadb \u76ee\u5f55, \u8fd9\u4e2a\u76ee\u5f55\u4e0b\u7684\u6587\u4ef6\u662f\u53ea\u8bfb\u7684\n-- \u4e5f\u5c31\u662f\u65e0\u6cd5\u6267\u884c os.remove(\"/luadb/xxx.bin\")\n", "prefix": "os.remove"}, "os.rename": {"body": "os.rename(${1:old_path},${2:new_path})", "description": "os.rename(old_path, new_path) - \u6587\u4ef6\u91cd\u547d\u540d\n\u4f20\u5165\u503c\uff1a\nstring \u6e90\u6587\u4ef6\u5b8c\u6574\u8def\u5f84\nstring \u76ee\u6807\u6587\u4ef6\u5b8c\u6574\u8def\u5f84\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5176\u4ed6\u60c5\u51b5\u8fd4\u56denil\nstring \u5931\u8d25\u65f6\u8fd4\u56de\u539f\u56e0\u5b57\u7b26\u4e32\n\u4f8b\u5b50\uff1a\n-- \u6ce8\u610f, \u53ea\u6709\u5728\u76f8\u540c\u6587\u4ef6\u7cfb\u7edf\u4e0b\u7684\u6587\u4ef6\u53ef\u4ee5\u91cd\u547d\u540d\n-- \u4f8b\u5982:\nos.rename(\"/1.txt\", \"/2.txt\")\n-- \u4e0d\u540c\u6587\u4ef6\u7cfb\u7edf, \u6216\u8005\u6e90\u6587\u4ef6\u7cfb\u7edf\u662f\u53ea\u8bfb\u7684, \u5219\u65e0\u6cd5\u6267\u884c\n--os.rename(\"/luadb/1.txt\", \"/luadb/2.txt\")\n--os.rename(\"/luadb/1.txt\", \"/2.txt\")\n", "prefix": "os.rename"}, "os.setlocale": {"body": "os.setlocale(${0:...})", "description": "os.setlocale (locale [, category])", "prefix": "os.setlocale"}, "os.time": {"body": "os.time(${1:mytime})", "description": "os.time(mytime) - \u65f6\u95f4\u6233\u51fd\u6570\n\u4f20\u5165\u503c\uff1a\ntable \u65e5\u671f\u65f6\u95f4\u7684table\nreturn \u65f6\u95f4\u6233\n\u4f8b\u5b50\uff1a\n-- \u6ce8\u610f\u6ce8\u610f, \u8fd9\u4e2a\u51fd\u6570\u8fd4\u56de\u7684\u662fUTC\u65f6\u95f4\u6233\n-- \u65f6\u95f4\u6233, \u4f46lua\u4e0b\u7684\u7cbe\u5ea6\u53ea\u80fd\u5230\u79d2\nlog.info(\"UTC\u65f6\u95f4\u6233\", os.time())\nlog.info(\"\u81ea\u5b9a\u4e49\u65f6\u95f4\u6233\", os.time({year=2000, mon=1, day=1, hour=0, min=0, sec=0}))\n", "prefix": "os.time"}, "os.tmpname": {"body": "os.tmpname(${0:...})", "description": "os.tmpname ()", "prefix": "os.tmpname"}, "package.config": {"body": "package.config(${0:...})", "description": "package.config", "prefix": "package.config"}, "package.cpath": {"body": "package.cpath(${0:...})", "description": "package.cpath", "prefix": "package.cpath"}, "package.loaded": {"body": "package.loaded(${0:...})", "description": "package.loaded", "prefix": "package.loaded"}, "package.loaders": {"body": "package.loaders(${0:...})", "description": "package.loaders", "prefix": "package.loaders"}, "package.loadlib": {"body": "package.loadlib(${0:...})", "description": "package.loadlib (libname, funcname)", "prefix": "package.loadlib"}, "package.path": {"body": "package.path(${0:...})", "description": "package.path", "prefix": "package.path"}, "package.preload": {"body": "package.preload(${0:...})", "description": "package.preload", "prefix": "package.preload"}, "package.searchers": {"body": "package.searchers(${0:...})", "description": "package.searchers", "prefix": "package.searchers"}, "package.searchpath": {"body": "package.searchpath(${0:...})", "description": "package.searchpath (name, path [, sep [, rep]])", "prefix": "package.searchpath"}, "package.seeall": {"body": "package.seeall(${0:...})", "description": "package.seeall (module)", "prefix": "package.seeall"}, "pairs": {"body": "pairs(${0:...})", "description": "pairs (t)", "prefix": "pairs"}, "pcall": {"body": "pcall(${0:...})", "description": "pcall (f, arg1, ...)", "prefix": "pcall"}, "print": {"body": "print(${1:...})", "description": "print(...)", "prefix": "print"}, "require": {"body": "require\"${1:module}\"", "description": "require()", "prefix": "require"}, "ret": {"body": "return ${1:...}", "description": "return ...", "prefix": "ret"}, "select": {"body": "select(${1:index}, ${2:...})", "description": "select (index, \u00b7\u00b7\u00b7)", "prefix": "select"}, "setfenv": {"body": "setfenv(${0:...})", "description": "setfenv (f, table)", "prefix": "setfenv"}, "setmetatable": {"body": "setmetatable(${1:table}, ${2:metatable})", "description": "setmetatable (table, metatable)", "prefix": "setmetatable"}, "tonumber": {"body": "tonumber(${1:e}${2:[, base]})", "description": "tonumber (e [, base])", "prefix": "tonumber"}, "tostring": {"body": "tostring(${1:v})", "description": "tostring (v)", "prefix": "tostring"}, "type": {"body": "type(${1:v})", "description": "type (v)", "prefix": "type"}, "unpack": {"body": "unpack(${0:...})", "description": "unpack (list [, i [, j]])", "prefix": "unpack"}, "xpcall": {"body": "xpcall(${0:...})", "description": "xpcall (f, err)", "prefix": "xpcall"}, "sys.publish(...)": {"body": "sys.publish(${1:...})", "description": "\u53d1\u5e03\u5185\u90e8\u6d88\u606f\uff0c\u5b58\u50a8\u5728\u5185\u90e8\u6d88\u606f\u961f\u5217\u4e2d\r\n\u8fd4\u56de\u503c\uff1a\r\n\u65e0\r\n\u4f8b\u5b50\uff1a\r\npublish(\"NET_STATUS_IND\")\r\n", "prefix": "sys.publish(...)"}, "sys.restart(r)": {"body": "sys.restart(${1:r})", "description": "\u8f6f\u4ef6\u91cd\u542f\r\n\u8fd4\u56de\u503c\uff1a\r\n\u65e0\r\n\u4f8b\u5b50\uff1a\r\nsys.restart('\u7a0b\u5e8f\u8d85\u65f6\u8f6f\u4ef6\u91cd\u542f')\r\n", "prefix": "sys.restart(r)"}, "sys.run()": {"body": "sys.run()", "description": "run()\u4ece\u5e95\u5c42\u83b7\u53d6core\u6d88\u606f\u5e76\u53ca\u65f6\u5904\u7406\u76f8\u5173\u6d88\u606f\uff0c\u67e5\u8be2\u5b9a\u65f6\u5668\u5e76\u8c03\u5ea6\u5404\u6ce8\u518c\u6210\u529f\u7684\u4efb\u52a1\u7ebf\u7a0b\u8fd0\u884c\u548c\u6302\u8d77\r\n\u8fd4\u56de\u503c\uff1a\r\n\u65e0\r\n\u4f8b\u5b50\uff1a\r\nsys.run()\r\n", "prefix": "sys.run()"}, "sys.setRollBack(flag, secs)": {"body": "sys.setRollBack(${1:flag},${2: secs})", "description": "\u8bbe\u7f6e\u201clua\u811a\u672c\u8fd0\u884c\u51fa\u9519\u65f6\uff0c\u662f\u5426\u56de\u9000\u539f\u59cb\u70e7\u5199\u7248\u672c\u201d\u7684\u529f\u80fd\u5f00\u5173\u3002\u5982\u679c\u6ca1\u6709\u8c03\u7528\u6b64\u63a5\u53e3\u8bbe\u7f6e\uff0c\u9ed8\u8ba4\u56de\u6eda\r\n\u8fd4\u56de\u503c\uff1a\r\nnil\r\n\u4f8b\u5b50\uff1a\r\nsys.setRollBack(true)\r\nsys.setRollBack(false)\r\n", "prefix": "sys.setRollBack(flag, secs)"}, "sys.subscribe(id, callback)": {"body": "sys.subscribe(${1:id},${2: callback})", "description": "\u8ba2\u9605\u6d88\u606f\r\n\u8fd4\u56de\u503c\uff1a\r\n\u65e0\r\n\u4f8b\u5b50\uff1a\r\nsubscribe(\"NET_STATUS_IND\", callback)\r\n", "prefix": "sys.subscribe(id, callback)"}, "sys.taskInit(fun, ...)": {"body": "sys.taskInit(${1:fun},${2: ...})", "description": "\u521b\u5efa\u4e00\u4e2a\u4efb\u52a1\u7ebf\u7a0b,\u5728\u6a21\u5757\u6700\u672b\u884c\u8c03\u7528\u8be5\u51fd\u6570\u5e76\u6ce8\u518c\u6a21\u5757\u4e2d\u7684\u4efb\u52a1\u51fd\u6570\uff0cmain.lua\u5bfc\u5165\u8be5\u6a21\u5757\u5373\u53ef\r\n\u8fd4\u56de\u503c\uff1a\r\nco \u8fd4\u56de\u8be5\u4efb\u52a1\u7684\u7ebf\u7a0b\u53f7\r\n\u4f8b\u5b50\uff1a\r\nsys.taskInit(task1,'a','b')\r\n", "prefix": "sys.taskInit(fun, ...)"}, "sys.timerIsActive(val, ...)": {"body": "sys.timerIsActive(${1:val},${2: ...})", "description": "\u5224\u65ad\u67d0\u4e2a\u5b9a\u65f6\u5668\u662f\u5426\u5904\u4e8e\u5f00\u542f\u72b6\u6001\r\n\u8fd4\u56de\u503c\uff1a\r\nnumber \u5f00\u542f\u72b6\u6001\u8fd4\u56detrue\uff0c\u5426\u5219nil", "prefix": "sys.timerIsActive(val, ...)"}, "sys.timerLoopStart(fnc, ms, ...)": {"body": "sys.timerLoopStart(${1:fnc},${2: ms},${3: ...})", "description": "\u5f00\u542f\u4e00\u4e2a\u5faa\u73af\u5b9a\u65f6\u5668\r\n\u8fd4\u56de\u503c\uff1a\r\nnumber \u5b9a\u65f6\u5668ID\uff0c\u5982\u679c\u5931\u8d25\uff0c\u8fd4\u56denil", "prefix": "sys.timerLoopStart(fnc, ms, ...)"}, "sys.timerStart(fnc, ms, ...)": {"body": "sys.timerStart(${1:fnc},${2: ms},${3: ...})", "description": "\u5f00\u542f\u4e00\u4e2a\u5b9a\u65f6\u5668\r\n\u8fd4\u56de\u503c\uff1a\r\nnumber \u5b9a\u65f6\u5668ID\uff0c\u5982\u679c\u5931\u8d25\uff0c\u8fd4\u56denil", "prefix": "sys.timerStart(fnc, ms, ...)"}, "sys.timerStop(val, ...)": {"body": "sys.timerStop(${1:val},${2: ...})", "description": "\u5173\u95ed\u5b9a\u65f6\u5668\r\n\u8fd4\u56de\u503c\uff1a\r\n\u65e0\r\n\u4f8b\u5b50\uff1a\r\ntimerStop(1)\r\n", "prefix": "sys.timerStop(val, ...)"}, "sys.timerStopAll(fnc)": {"body": "sys.timerStopAll(${1:fnc})", "description": "\u5173\u95ed\u540c\u4e00\u56de\u8c03\u51fd\u6570\u7684\u6240\u6709\u5b9a\u65f6\u5668\r\n\u8fd4\u56de\u503c\uff1a\r\n\u65e0\r\n\u4f8b\u5b50\uff1a\r\ntimerStopAll(cbFnc)\r\n", "prefix": "sys.timerStopAll(fnc)"}, "sys.unsubscribe(id, callback)": {"body": "sys.unsubscribe(${1:id},${2: callback})", "description": "\u53d6\u6d88\u8ba2\u9605\u6d88\u606f\r\n\u8fd4\u56de\u503c\uff1a\r\n\u65e0\r\n\u4f8b\u5b50\uff1a\r\nunsubscribe(\"NET_STATUS_IND\", callback)\r\n", "prefix": "sys.unsubscribe(id, callback)"}, "sys.wait(ms)": {"body": "sys.wait(${1:ms})", "description": "Task\u4efb\u52a1\u5ef6\u65f6\u51fd\u6570\uff0c\u53ea\u80fd\u7528\u4e8e\u4efb\u52a1\u51fd\u6570\u4e2d\r\n\u8fd4\u56de\u503c\uff1a\r\n\u5b9a\u65f6\u7ed3\u675f\u8fd4\u56denil,\u88ab\u5176\u4ed6\u7ebf\u7a0b\u5524\u8d77\u8fd4\u56de\u8c03\u7528\u7ebf\u7a0b\u4f20\u5165\u7684\u53c2\u6570\r\n\u4f8b\u5b50\uff1a\r\nsys.wait(30)\r\n", "prefix": "sys.wait(ms)"}, "sys.waitUntil(id, ms)": {"body": "sys.waitUntil(${1:id},${2: ms})", "description": "Task\u4efb\u52a1\u7684\u6761\u4ef6\u7b49\u5f85\u51fd\u6570\uff08\u5305\u62ec\u4e8b\u4ef6\u6d88\u606f\u548c\u5b9a\u65f6\u5668\u6d88\u606f\u7b49\u6761\u4ef6\uff09\uff0c\u53ea\u80fd\u7528\u4e8e\u4efb\u52a1\u51fd\u6570\u4e2d\u3002\r\n\u8fd4\u56de\u503c\uff1a\r\nresult \u63a5\u6536\u5230\u6d88\u606f\u8fd4\u56detrue\uff0c\u8d85\u65f6\u8fd4\u56defalse\r\n\u4f8b\u5b50\uff1a\r\nresult, data = sys.waitUntil(\"SIM_IND\", 120000)\r\n", "prefix": "sys.waitUntil(id, ms)"}, "sys.waitUntilExt(id, ms)": {"body": "sys.waitUntilExt(${1:id},${2: ms})", "description": "Task\u4efb\u52a1\u7684\u6761\u4ef6\u7b49\u5f85\u51fd\u6570\u6269\u5c55\uff08\u5305\u62ec\u4e8b\u4ef6\u6d88\u606f\u548c\u5b9a\u65f6\u5668\u6d88\u606f\u7b49\u6761\u4ef6\uff09\uff0c\u53ea\u80fd\u7528\u4e8e\u4efb\u52a1\u51fd\u6570\u4e2d\u3002\r\n\u8fd4\u56de\u503c\uff1a\r\nmessage \u63a5\u6536\u5230\u6d88\u606f\u8fd4\u56demessage\uff0c\u8d85\u65f6\u8fd4\u56defalse\r\n\u4f8b\u5b50\uff1a\r\nresult, data = sys.waitUntilExt(\"SIM_IND\", 120000)\r\n", "prefix": "sys.waitUntilExt(id, ms)"}, "table.concat(t,s)": {"body": "table.concat(${1:t},${2: s})", "description": "\u8868\u8fde\u63a5\r\n\u8fd4\u56de\u503c\uff1a\r\n \u5b57\u7b26\u4e32\r\n\u4f8b\u5b50\uff1a\r\nfruits = {\"banana\",\"orange\",\"apple\"}\r\n-- \u8fd4\u56de table \u8fde\u63a5\u540e\u7684\u5b57\u7b26\u4e32\r\nprint(\"\u8fde\u63a5\u540e\u7684\u5b57\u7b26\u4e32 \",table.concat(fruits))\r\n--\u8fde\u63a5\u540e\u7684\u5b57\u7b26\u4e32 bananaorangeapple\r\n\r\n-- \u6307\u5b9a\u8fde\u63a5\u5b57\u7b26\r\nprint(\"\u8fde\u63a5\u540e\u7684\u5b57\u7b26\u4e32 \",table.concat(fruits,\", \"))\r\n--\u8fde\u63a5\u540e\u7684\u5b57\u7b26\u4e32 banana, orange, apple\r\n\r\n-- \u6307\u5b9a\u7d22\u5f15\u6765\u8fde\u63a5 table\r\nprint(\"\u8fde\u63a5\u540e\u7684\u5b57\u7b26\u4e32 \",table.concat(fruits,\", \", 2,3))\r\n--\u8fde\u63a5\u540e\u7684\u5b57\u7b26\u4e32 orange, apple\r\n", "prefix": "table.concat()"}, "table.gsort(t, f)": {"body": "table.gsort(${1:t},${2: f})", "description": "\u8fd4\u56de\u4e00\u4e2a\u8fed\u4ee3\u5668\u51fd\u6570,\u6bcf\u6b21\u8c03\u7528\u51fd\u6570\u90fd\u4f1a\u8fd4\u56dehash\u8868\u7684\u6392\u5e8f\u540e\u7684\u952e\u503c\u5bf9\r\n\u8fd4\u56de\u503c\uff1a\r\nfunction.\r\n\u4f8b\u5b50\uff1a\r\ntest = {a=1,f=9,d=2,c=8,b=5}\r\nfor name,line in pairsByKeys(test) do print(name,line) end\r\n", "prefix": "table.gsort(t, f)"}, "table.insert(t,d)": {"body": "table.insert(${1:t},${2: d})", "description": "\u6dfb\u52a0table\u53c2\u6570\r\n\u8fd4\u56de\u503c\uff1a\r\n table\r\n\u4f8b\u5b50\uff1a\r\nfruits = {\"banana\",\"orange\",\"apple\"}\r\n\r\n-- \u5728\u672b\u5c3e\u63d2\u5165\r\ntable.insert(fruits,\"mango\")\r\nprint(\"\u7d22\u5f15\u4e3a 4 \u7684\u5143\u7d20\u4e3a \",fruits[4])\r\n--\u7d22\u5f15\u4e3a 4 \u7684\u5143\u7d20\u4e3a mango\r\n\r\n-- \u5728\u7d22\u5f15\u4e3a 2 \u7684\u952e\u5904\u63d2\u5165\r\ntable.insert(fruits,2,\"grapes\")\r\nprint(\"\u7d22\u5f15\u4e3a 2 \u7684\u5143\u7d20\u4e3a \",fruits[2])\r\n--\u7d22\u5f15\u4e3a 2 \u7684\u5143\u7d20\u4e3a grapes\r\n\r\nprint(\"\u6700\u540e\u4e00\u4e2a\u5143\u7d20\u4e3a \",fruits[5])\r\n--\u6700\u540e\u4e00\u4e2a\u5143\u7d20\u4e3a mango\r\n", "prefix": "table.insert()"}, "table.remove(t,i)": {"body": "table.remove(${1:t},${2: i})", "description": "\u79fb\u9664table\u53c2\u6570\r\n\u8fd4\u56de\u503c\uff1a\r\n table", "prefix": "table.remove()"}, "string.byte()": {"body": "string.byte()", "description": "\u63a5\u6536\u63a7\u5236\u5b57\u7b26\uff0c\u8fd4\u56deASCII\u7801\r\n\u8fd4\u56de\u503c\uff1a\r\n ASCII\u7801\r\n\u4f8b\u5b50\uff1a\r\nstring.byte(\"ABCD\") --65\r\nstring.byte(\"ABCD\",4) --68\r\n", "prefix": "string.byte()"}, "string.char()": {"body": "string.char()", "description": "\u63a5\u6536ASCII\u7801\uff0c\u8fd4\u56de\u5bf9\u5e94\u7684\u63a7\u5236\u5b57\u7b26\r\n\u8fd4\u56de\u503c\uff1a\r\n \u5b57\u7b26\r\n\u4f8b\u5b50\uff1a\r\nstring.char(97,98,99,100) --abcd\r\n", "prefix": "string.char()"}, "string.find()": {"body": "string.find()", "description": "\u67e5\u627e\u7b2c\u4e00\u4e2a\u5b57\u7b26\u4e32\u00a0s\u00a0\u4e2d\u5339\u914d\u5230\u7684\u00a0pattern\r\n\u8fd4\u56de\u503c\uff1a\r\n \u8fd4\u56de\u5339\u914d\u5b57\u7b26\u5177\u4f53\u4f4d\u7f6e\u3002\u4e0d\u5b58\u5728\u5219\u8fd4\u56de nil\r\n\u4f8b\u5b50\uff1a\r\nstring.find(\"Hello Lua user\", \"Lua\", 1) --7 9\r\n", "prefix": "string.find()"}, "string.format()": {"body": "string.format()", "description": "\u683c\u5f0f\u5316\u5b57\u7b26\u4e32\r\n\u8fd4\u56de\u503c\uff1a\r\n \u5b57\u7b26\u4e32\r\n\u4f8b\u5b50\uff1a\r\nstring.format(\"the value is:%d\",4) --the value is:4\r\n", "prefix": "string.format()"}, "string.gsub()": {"body": "string.gsub()", "description": "\u5b57\u7b26\u4e32\u66ff\u6362", "prefix": "string.gsub()"}, "string.len()": {"body": "string.len()", "description": "\u8ba1\u7b97\u5b57\u7b26\u4e32\u957f\u5ea6\r\n\u8fd4\u56de\u503c\uff1a\r\n \u5b57\u7b26\u4e32\u957f\u5ea6\r\n\u4f8b\u5b50\uff1a\r\nstring.len(\"abc\") --3\r\n", "prefix": "string.len()"}, "string.lower()": {"body": "string.lower()", "description": "\u5b57\u7b26\u4e32\u5168\u90e8\u8f6c\u4e3a\u5c0f\u5199\u5b57\u6bcd\r\n\u8fd4\u56de\u503c\uff1a\r\n \u5c0f\u5199\u5b57\u6bcd\u5b57\u7b26\u4e32", "prefix": "string.lower()"}, "string.rep()": {"body": "string.rep()", "description": "\u5b57\u7b26\u4e32\u62f7\u8d1d\r\n\u8fd4\u56de\u503c\uff1a\r\n \u5b57\u7b26\u4e32\r\n\u4f8b\u5b50\uff1a\r\nstring.rep(\"abcd\",2) --abcdabcd\r\n", "prefix": "string.rep()"}, "string.reverse()": {"body": "string.reverse()", "description": "\u5b57\u7b26\u4e32\u53cd\u8f6c\r\n\u8fd4\u56de\u503c\uff1a\r\n \u53cd\u8f6c\u540e\u7684\u5b57\u7b26\u4e32\r\n\u4f8b\u5b50\uff1a\r\nstring.reverse(\"Luat\") --tauL\r\n", "prefix": "string.reverse()"}, "string.split(str, delimiter)": {"body": "string.split(${1:str},${2: delimiter})", "description": "\u6309\u7167\u6307\u5b9a\u5206\u9694\u7b26\u5206\u5272\u5b57\u7b26\u4e32\r\n\u8fd4\u56de\u503c\uff1a\r\n\u5206\u5272\u540e\u7684\u5b57\u7b26\u4e32\u5217\u8868\r\n\u4f8b\u5b50\uff1a\r\n\"123,456,789\":split(',') -> {'123','456','789'}\r\n", "prefix": "string.split(str, delimiter)"}, "string.upper()": {"body": "string.upper()", "description": "\u5b57\u7b26\u4e32\u5168\u90e8\u8f6c\u4e3a\u5927\u5199\u5b57\u6bcd\r\n\u8fd4\u56de\u503c\uff1a\r\n \u5927\u5199\u5b57\u6bcd\u5b57\u7b26\u4e32", "prefix": "string.upper()"}, "adc.open": {"body": "adc.open(${1:id})", "description": "adc.open(id) - \u6253\u5f00adc\u901a\u9053\n\u4f20\u5165\u503c\uff1a\nint \u901a\u9053id,\u4e0e\u5177\u4f53\u8bbe\u5907\u6709\u5173,\u901a\u5e38\u4ece0\u5f00\u59cb\n\u8fd4\u56de\u503c\uff1a\nboolean \u6253\u5f00\u7ed3\u679c\n\u4f8b\u5b50\uff1a\n-- \u6253\u5f00adc\u901a\u90534,\u5e76\u8bfb\u53d6\nif adc.open(4) then\n log.info(\"adc\", adc.read(4)) -- \u8fd4\u56de\u503c\u67092\u4e2a, \u539f\u59cb\u503c\u548c\u8ba1\u7b97\u503c,\u901a\u5e38\u53ea\u9700\u8981\u540e\u8005\n log.info(\"adc\", adc.get(4)) -- \u8fd4\u56de\u503c\u67091\u4e2a, \u4ec5\u8ba1\u7b97\u503c\nend\nadc.close(4) -- \u82e5\u9700\u8981\u6301\u7eed\u8bfb\u53d6, \u5219\u4e0d\u9700\u8981close, \u529f\u8017\u4f1a\u9ad8\u4e00\u70b9.\n", "prefix": "adc.open"}, "adc.setRange": {"body": "adc.setRange(${1:range})", "description": "adc.setRange(range) - \u8bbe\u7f6eADC\u7684\u6d4b\u91cf\u8303\u56f4\uff0c\u6ce8\u610f\u8fd9\u4e2a\u548c\u5177\u4f53\u82af\u7247\u6709\u5173\uff0c\u76ee\u524d\u53ea\u652f\u6301air105/Air780E\u7cfb\u5217\n\u4f20\u5165\u503c\uff1a\nint range\u53c2\u6570,\u4e0e\u5177\u4f53\u8bbe\u5907\u6709\u5173,\u6bd4\u5982air105\u586badc.ADC_RANGE_1_8\u548cadc.ADC_RANGE_3_6\nreturn nil\n\u4f8b\u5b50\uff1a\n-- \u5173\u95edair105\u5185\u90e8\u5206\u538b\nadc.setRange(adc.ADC_RANGE_1_8)\n-- \u6253\u5f00air105\u5185\u90e8\u5206\u538b\nadc.setRange(adc.ADC_RANGE_3_6)\n\n\n-- EC618\u7cfb\u5217(Air780E\u7b49)\u652f\u63012\u79cd\nadc.setRange(adc.ADC_RANGE_1_2) -- \u5173\u95ed\u5206\u538b\nadc.setRange(adc.ADC_RANGE_3_8) -- \u542f\u7528\u5206\u538b\n", "prefix": "adc.setRange"}, "adc.read": {"body": "adc.read(${1:id})", "description": "adc.read(id) - \u8bfb\u53d6adc\u901a\u9053\n\u4f20\u5165\u503c\uff1a\nint \u901a\u9053id,\u4e0e\u5177\u4f53\u8bbe\u5907\u6709\u5173,\u901a\u5e38\u4ece0\u5f00\u59cb\n\u8fd4\u56de\u503c\uff1a\nint \u539f\u59cb\u503c,\u4e00\u822c\u6ca1\u7528,\u53ef\u4ee5\u76f4\u63a5\u629b\u5f03\nint \u4ece\u539f\u59cb\u503c\u6362\u7b97\u5f97\u51fa\u7684\u5b9e\u9645\u503c\uff0c\u901a\u5e38\u5355\u4f4d\u662fmV\n\u4f8b\u5b50\uff1a\n-- \u6253\u5f00adc\u901a\u90532,\u5e76\u8bfb\u53d6\nif adc.open(2) then\n -- \u8fd9\u91cc\u4f7f\u7528\u7684\u662fadc.read\u4f1a\u8fd4\u56de2\u4e2a\u503c, \u63a8\u8350\u8d70adc.get\u51fd\u6570,\u76f4\u63a5\u53d6\u5b9e\u9645\u503c\n log.info(\"adc\", adc.read(2))\nend\nadc.close(2)\n", "prefix": "adc.read"}, "adc.get": {"body": "adc.get(${1:id})", "description": "adc.get(id) - \u83b7\u53d6adc\u8ba1\u7b97\u503c\n\u4f20\u5165\u503c\uff1a\nint \u901a\u9053id,\u4e0e\u5177\u4f53\u8bbe\u5907\u6709\u5173,\u901a\u5e38\u4ece0\u5f00\u59cb\n\u8fd4\u56de\u503c\uff1a\nint \u5355\u4f4d\u901a\u5e38\u662fmV, \u90e8\u5206\u901a\u9053\u4f1a\u8fd4\u56de\u6e29\u5ea6\u503c,\u5355\u4f4d\u5343\u5206\u4e4b\u4e00\u6444\u6c0f\u5ea6. \u82e5\u8bfb\u53d6\u5931\u8d25,\u4f1a\u8fd4\u56de-1\n\u4f8b\u5b50\uff1a\n-- \u672cAPI \u5728 2022.10.01\u540e\u7f16\u8bd1\u7684\u56fa\u4ef6\u53ef\u7528\n-- \u6253\u5f00adc\u901a\u90532,\u5e76\u8bfb\u53d6\nif adc.open(2) then\n log.info(\"adc\", adc.get(2))\nend\nadc.close(2) -- \u6309\u9700\u5173\u95ed\n", "prefix": "adc.get"}, "adc.close": {"body": "adc.close(${1:id})", "description": "adc.close(id) - \u5173\u95edadc\u901a\u9053\n\u4f20\u5165\u503c\uff1a\nint \u901a\u9053id,\u4e0e\u5177\u4f53\u8bbe\u5907\u6709\u5173,\u901a\u5e38\u4ece0\u5f00\u59cb\n\u4f8b\u5b50\uff1a\n-- \u6253\u5f00adc\u901a\u90532,\u5e76\u8bfb\u53d6\nif adc.open(2) then\n log.info(\"adc\", adc.read(2))\nend\nadc.close(2)\n", "prefix": "adc.close"}, "audio.start": {"body": "audio.start(${1:id},${2:audio_format},${3:num_channels},${4:sample_rate},${5:bits_per_sample},${6:is_signed})", "description": "audio.start(id, audio_format, num_channels, sample_rate, bits_per_sample, is_signed) - \u542f\u52a8\u4e00\u4e2a\u591a\u5a92\u4f53\u901a\u9053\u51c6\u5907\u64ad\u653e\u97f3\u9891\n\u4f20\u5165\u503c\uff1a\nint \u591a\u5a92\u4f53\u64ad\u653e\u901a\u9053\u53f7\uff0c0\u6216\u80051\nint \u97f3\u9891\u683c\u5f0f\nint \u58f0\u97f3\u901a\u9053\u6570\nint \u91c7\u6837\u9891\u7387\nint \u91c7\u6837\u4f4d\u6570\nboolean \u662f\u5426\u6709\u7b26\u53f7\uff0c\u9ed8\u8ba4true\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529ftrue, \u5931\u8d25false\n\u4f8b\u5b50\uff1a\naudio.start(0, audio.PCM, 1, 16000, 16)\n", "prefix": "audio.start"}, "audio.write": {"body": "audio.write(${1:id},${2:data})", "description": "audio.write(id, data) - \u5f80\u4e00\u4e2a\u591a\u5a92\u4f53\u901a\u9053\u5199\u5165\u97f3\u9891\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nstring or zbuff \u97f3\u9891\u6570\u636e\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\naudio.write(0, \"xxxxxx\")\n", "prefix": "audio.write"}, "audio.stop": {"body": "audio.stop(${1:id})", "description": "audio.stop(id) - \u505c\u6b62\u6307\u5b9a\u7684\u591a\u5a92\u4f53\u901a\u9053\n\u4f20\u5165\u503c\uff1a\nint audio id,\u4f8b\u59820\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\naudio.stop(0)\n", "prefix": "audio.stop"}, "audio.pause": {"body": "audio.pause(${1:id},${2:pause})", "description": "audio.pause(id, pause) - \u6682\u505c/\u6062\u590d\u6307\u5b9a\u7684\u591a\u5a92\u4f53\u901a\u9053\n\u4f20\u5165\u503c\uff1a\nint audio id,\u4f8b\u59820\nboolean onoff true \u6682\u505c\uff0cfalse \u6062\u590d\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\naudio.pause(0, true) --\u6682\u505c\u901a\u90530\naudio.pause(0, false) --\u6062\u590d\u901a\u90530\n", "prefix": "audio.pause"}, "audio.on": {"body": "audio.on(${1:id},${2:event},${3:func})", "description": "audio.on(id, event, func) - \u6ce8\u518caudio\u64ad\u653e\u4e8b\u4ef6\u56de\u8c03\n\u4f20\u5165\u503c\uff1a\nint audio id, audio 0\u51990, audio 1\u51991\nfunction \u56de\u8c03\u65b9\u6cd5\uff0c\u56de\u8c03\u65f6\u4f20\u5165\u53c2\u6570\u4e3a1\u3001int \u901a\u9053ID 2\u3001int \u6d88\u606f\u503c\uff0c\u53ea\u6709audio.MORE_DATA\u548caudio.DONE\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\naudio.on(0, function(audio_id, msg)\n log.info(\"msg\", audio_id, msg)\nend)\n", "prefix": "audio.on"}, "audio.play": {"body": "audio.play(${1:id},${2:path},${3:errStop})", "description": "audio.play(id, path, errStop) - \u64ad\u653e\u6216\u8005\u505c\u6b62\u64ad\u653e\u4e00\u4e2a\u6587\u4ef6\uff0c\u64ad\u653e\u5b8c\u6210\u540e\uff0c\u4f1a\u56de\u8c03\u4e00\u4e2aaudio.DONE\u6d88\u606f\uff0c\u53ef\u4ee5\u7528pause\u6765\u6682\u505c\u6216\u8005\u6062\u590d\uff0c\u5176\u4ed6API\u4e0d\u53ef\u7528\u3002\u8003\u8651\u5230\u8bfbSD\u5361\u901f\u5ea6\u6bd4\u8f83\u6162\u800c\u62d6\u7d2fluavm\u8fdb\u7a0b\u7684\u901f\u5ea6\uff0c\u6240\u4ee5\u5c3d\u91cf\u4f7f\u7528\u672cAPI\n\u4f20\u5165\u503c\uff1a\nint \u97f3\u9891\u901a\u9053\nstring/table \u6587\u4ef6\u540d\uff0c\u5982\u679c\u4e3a\u7a7a\uff0c\u5219\u8868\u793a\u505c\u6b62\u64ad\u653e\uff0c\u5982\u679c\u662ftable\uff0c\u5219\u8868\u793a\u8fde\u7eed\u64ad\u653e\u591a\u4e2a\u6587\u4ef6\uff0c\u4e3b\u8981\u5e94\u7528\u4e8e\u4e91\u5587\u53ed\uff0c\u76ee\u524d\u53ea\u6709EC618\u652f\u6301\uff0c\u5e76\u4e14\u4f1a\u7528\u5230errStop\u53c2\u6570\nboolean \u662f\u5426\u5728\u6587\u4ef6\u89e3\u7801\u5931\u8d25\u540e\u505c\u6b62\u89e3\u7801\uff0c\u53ea\u6709\u5728\u8fde\u7eed\u64ad\u653e\u591a\u4e2a\u6587\u4ef6\u65f6\u624d\u6709\u7528\uff0c\u9ed8\u8ba4true\uff0c\u9047\u5230\u89e3\u7801\u9519\u8bef\u81ea\u52a8\u505c\u6b62\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\naudio.play(0, \"xxxxxx\")\t\t--\u5f00\u59cb\u64ad\u653e\u67d0\u4e2a\u6587\u4ef6\naudio.play(0)\t\t\t\t--\u505c\u6b62\u64ad\u653e\u67d0\u4e2a\u6587\u4ef6\n", "prefix": "audio.play"}, "audio.tts": {"body": "audio.tts(${1:id},${2:data})", "description": "audio.tts(id, data) - TTS\u64ad\u653e\u6216\u8005\u505c\u6b62\n\u4f20\u5165\u503c\uff1a\nint \u97f3\u9891\u901a\u9053\nstring/zbuff \u9700\u8981\u64ad\u653e\u7684\u5185\u5bb9\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n", "prefix": "audio.tts"}, "audio.playStop": {"body": "audio.playStop(${1:id})", "description": "audio.playStop(id) - \u505c\u6b62\u64ad\u653e\u6587\u4ef6\uff0c\u548caudio.play(id)\u662f\u4e00\u6837\u7684\u4f5c\u7528\n\u4f20\u5165\u503c\uff1a\nint audio id,\u4f8b\u59820\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\naudio.playStop(0)\n", "prefix": "audio.playStop"}, "audio.isEnd": {"body": "audio.isEnd(${1:id})", "description": "audio.isEnd(id) - \u68c0\u67e5\u5f53\u524d\u6587\u4ef6\u662f\u5426\u5df2\u7ecf\u64ad\u653e\u7ed3\u675f\n\u4f20\u5165\u503c\uff1a\nint \u97f3\u9891\u901a\u9053\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\naudio.isEnd(0)\n\n", "prefix": "audio.isEnd"}, "audio.getError": {"body": "audio.getError(${1:id})", "description": "audio.getError(id) - \u83b7\u53d6\u6700\u8fd1\u4e00\u6b21\u64ad\u653e\u7ed3\u679c\uff0c\u4e0d\u662f\u6240\u6709\u5e73\u53f0\u90fd\u652f\u6301\u7684\uff0c\u76ee\u524d\u53ea\u6709EC618\u652f\u6301\n\u4f20\u5165\u503c\uff1a\nint \u97f3\u9891\u901a\u9053\n\u8fd4\u56de\u503c\uff1a\nboolean \u662f\u5426\u5168\u90e8\u64ad\u653e\u6210\u529f\uff0ctrue\u6210\u529f\uff0cfalse\u6709\u6587\u4ef6\u64ad\u653e\u5931\u8d25\nboolean \u5982\u679c\u64ad\u653e\u5931\u8d25\uff0c\u662f\u5426\u662f\u7528\u6237\u505c\u6b62\uff0ctrue\u662f\uff0cfalse\u4e0d\u662f\nint \u7b2c\u51e0\u4e2a\u6587\u4ef6\u5931\u8d25\u4e86\uff0c\u4ece1\u5f00\u59cb\n\u4f8b\u5b50\uff1a\nlocal result, user_stop, file_no = audio.getError(0)\n", "prefix": "audio.getError"}, "audio.config": {"body": "audio.config(${1:id},${2:paPin},${3:onLevel},${4:dacDelay},${5:paDelay},${6:dacPin},${7:dacLevel},${8:dacTimeDelay})", "description": "audio.config(id, paPin, onLevel, dacDelay, paDelay, dacPin, dacLevel, dacTimeDelay) - \u914d\u7f6e\u4e00\u4e2a\u97f3\u9891\u901a\u9053\u7684\u7279\u6027\uff0c\u6bd4\u5982\u5b9e\u73b0\u81ea\u52a8\u63a7\u5236PA\u5f00\u5173\u3002\u6ce8\u610f\u8fd9\u4e2a\u4e0d\u662f\u5fc5\u987b\u7684\uff0c\u4e00\u822c\u5728\u8c03\u7528play\u7684\u65f6\u5019\u624d\u9700\u8981\u81ea\u52a8\u63a7\u5236\uff0c\u5176\u4ed6\u60c5\u51b5\u6bd4\u5982\u4f60\u624b\u52a8\u63a7\u5236\u64ad\u653e\u65f6\uff0c\u5c31\u53ef\u4ee5\u81ea\u5df1\u63a7\u5236PA\u5f00\u5173\n\u4f20\u5165\u503c\uff1a\nint \u97f3\u9891\u901a\u9053\nint PA\u63a7\u5236IO\nint PA\u6253\u5f00\u65f6\u7684\u7535\u5e73\nint \u5728DAC\u542f\u52a8\u524d\u63d2\u5165\u7684\u5197\u4f59\u65f6\u95f4\uff0c\u5355\u4f4d100ms\uff0c\u4e00\u822c\u7528\u4e8e\u5916\u90e8DAC\nint \u5728DAC\u542f\u52a8\u540e\uff0c\u5ef6\u8fdf\u591a\u957f\u65f6\u95f4\u6253\u5f00PA\uff0c\u5355\u4f4d1ms\nint \u5916\u90e8dac\u7535\u6e90\u63a7\u5236IO\uff0c\u5982\u679c\u4e0d\u586b\uff0c\u5219\u8868\u793a\u4f7f\u7528\u5e73\u53f0\u9ed8\u8ba4IO\uff0c\u6bd4\u5982Air780E\u4f7f\u7528DACEN\u811a\uff0cair105\u5219\u4e0d\u542f\u7528\nint \u5916\u90e8dac\u6253\u5f00\u65f6\uff0c\u7535\u6e90\u63a7\u5236IO\u7684\u7535\u5e73\uff0c\u9ed8\u8ba4\u62c9\u9ad8\nint \u97f3\u9891\u64ad\u653e\u5b8c\u6bd5\u65f6\uff0cPA\u4e0eDAC\u5173\u95ed\u7684\u65f6\u95f4\u95f4\u9694\uff0c\u5355\u4f4d1ms\uff0c\u9ed8\u8ba40ms\n\u4f8b\u5b50\uff1a\naudio.config(0, pin.PC0, 1)\t--PA\u63a7\u5236\u811a\u662fPC0\uff0c\u9ad8\u7535\u5e73\u6253\u5f00\uff0cair105\u7528\u8fd9\u4e2a\u914d\u7f6e\u5c31\u53ef\u4ee5\u7528\u4e86\naudio.config(0, 25, 1, 6, 200)\t--PA\u63a7\u5236\u811a\u662fGPIO25\uff0c\u9ad8\u7535\u5e73\u6253\u5f00\uff0cAir780E\u4e91\u5587\u53ed\u677f\u7528\u8fd9\u4e2a\u914d\u7f6e\u5c31\u53ef\u4ee5\u7528\u4e86\n", "prefix": "audio.config"}, "audio.vol": {"body": "audio.vol(${1:id},${2:value})", "description": "audio.vol(id, value) - \u914d\u7f6e\u4e00\u4e2a\u97f3\u9891\u901a\u9053\u7684\u97f3\u91cf\u8c03\u8282\uff0c\u76f4\u63a5\u5c06\u539f\u59cb\u6570\u636e\u653e\u5927\u6216\u8005\u7f29\u5c0f\uff0c\u4e0d\u662f\u6240\u6709\u5e73\u53f0\u90fd\u652f\u6301\uff0c\u5efa\u8bae\u5c3d\u91cf\u7528\u786c\u4ef6\u65b9\u6cd5\u53bb\u7f29\u653e\n\u4f20\u5165\u503c\uff1a\nint \u97f3\u9891\u901a\u9053\nint \u97f3\u91cf\uff0c\u767e\u5206\u6bd4\uff0c1%~1000%\uff0c\u9ed8\u8ba4100%\uff0c\u5c31\u662f\u4e0d\u8c03\u8282\n\u8fd4\u56de\u503c\uff1a\nint \u5f53\u524d\u97f3\u91cf\n\u4f8b\u5b50\uff1a\nlocal result = audio.vol(0, 90)\t--\u901a\u90530\u7684\u97f3\u91cf\u8c03\u8282\u523090%\uff0cresult\u5b58\u653e\u4e86\u8c03\u8282\u540e\u7684\u97f3\u91cf\u6c34\u5e73\uff0c\u6709\u53ef\u80fd\u4ecd\u7136\u662f100\n", "prefix": "audio.vol"}, "audio.setBus": {"body": "audio.setBus(${1:id},${2:bus_type})", "description": "audio.setBus(id, bus_type) - \u914d\u7f6e\u4e00\u4e2a\u97f3\u9891\u901a\u9053\u7684\u786c\u4ef6\u8f93\u51fa\u603b\u7ebf\uff0c\u53ea\u6709\u5bf9\u5e94soc\u8f6f\u786c\u4ef6\u5e73\u53f0\u652f\u6301\u624d\u8bbe\u7f6e\u5bf9\u5e94\u7c7b\u578b\n\u4f20\u5165\u503c\uff1a\nint \u97f3\u9891\u901a\u9053,\u4f8b\u59820\nint \u603b\u7ebf\u7c7b\u578b, \u4f8b\u5982 audio.BUS_SOFT_DAC\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\naudio.setBus(0, audio.BUS_SOFT_DAC)\t--\u901a\u90530\u7684\u786c\u4ef6\u8f93\u51fa\u901a\u9053\u8bbe\u7f6e\u4e3a\u8f6f\u4ef6DAC\naudio.setBus(0, audio.BUS_I2S)\t--\u901a\u90530\u7684\u786c\u4ef6\u8f93\u51fa\u901a\u9053\u8bbe\u7f6e\u4e3aI2S\n", "prefix": "audio.setBus"}, "audio.debug": {"body": "audio.debug(${1:on_off})", "description": "audio.debug(on_off) - \u914d\u7f6e\u8c03\u8bd5\u4fe1\u606f\u8f93\u51fa\n\u4f20\u5165\u503c\uff1a\nboolean true\u5f00 false\u5173\n", "prefix": "audio.debug"}, "bit64.to32": {"body": "bit64.to32(${1:data64bit})", "description": "bit64.to32(data64bit) - 64bit\u6570\u636e\u8f6c\u621032bit\u8f93\u51fa\n\u4f20\u5165\u503c\uff1a\nstring 9\u5b57\u8282\u6570\u636e\n\u8fd4\u56de\u503c\uff1a\nany \u6839\u636e64bit\u6570\u636e\u8f93\u51faint\u6216\u8005number\n", "prefix": "bit64.to32"}, "bit64.to64": {"body": "bit64.to64(${1:data32bit})", "description": "bit64.to64(data32bit) - 32bit\u6570\u636e\u8f6c\u621064bit\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nint/number 32bit\u6570\u636e\n\u8fd4\u56de\u503c\uff1a\nstring 9\u5b57\u8282\u6570\u636e\n", "prefix": "bit64.to64"}, "bit64.show": {"body": "bit64.show(${1:a},${2:type},${3:flag})", "description": "bit64.show(a,type,flag) - 64bit\u6570\u636e\u683c\u5f0f\u5316\u6253\u5370\u6210\u5b57\u7b26\u4e32\uff0c\u7528\u4e8e\u663e\u793a\u503c\n\u4f20\u5165\u503c\uff1a\nstring \u9700\u8981\u6253\u5370\u768464bit\u6570\u636e\nint \u8fdb\u5236\uff0c10=10\u8fdb\u5236\uff0c16=16\u8fdb\u5236\uff0c\u9ed8\u8ba410\uff0c\u53ea\u652f\u630110\u6216\u800516\nboolean \u6574\u5f62\u662f\u5426\u6309\u7167\u65e0\u7b26\u53f7\u65b9\u5f0f\u6253\u5370\uff0ctrue\u662f\uff0cfalse\u4e0d\u662f\uff0c\u9ed8\u8ba4false\uff0c\u6d6e\u70b9\u5ffd\u7565\n\u8fd4\u56de\u503c\uff1a\nstring \u53ef\u4ee5\u6253\u5370\u7684\u503c\n", "prefix": "bit64.show"}, "bit64.plus": {"body": "bit64.plus(${1:a},${2:b},${3:flag1},${4:flag2})", "description": "bit64.plus(a,b,flag1,flag2) - 64bit\u6570\u636e\u52a0,a+b,a\u548cb\u4e2d\u6709\u4e00\u4e2a\u4e3a\u6d6e\u70b9\uff0c\u5219\u6309\u7167\u6d6e\u70b9\u8fd0\u7b97\n\u4f20\u5165\u503c\uff1a\nstring a\nstring/int/number b\nboolean \u6574\u5f62\u8fd0\u7b97\u65f6\u662f\u5426\u6309\u7167\u65e0\u7b26\u53f7\u65b9\u5f0f\uff0ctrue\u662f\uff0cfalse\u4e0d\u662f\uff0c\u9ed8\u8ba4false\uff0c\u6d6e\u70b9\u8fd0\u7b97\u5ffd\u7565\nboolean \u6d6e\u70b9\u8fd0\u7b97\u7ed3\u679c\u662f\u5426\u8981\u5f3a\u5236\u8f6c\u6210\u6574\u6570\uff0ctrue\u662f\uff0cfalse\u4e0d\u662f\uff0c\u9ed8\u8ba4false\uff0c\u6574\u5f62\u8fd0\u7b97\u5ffd\u7565\n\u8fd4\u56de\u503c\uff1a\nstring 9\u5b57\u8282\u6570\u636e\n", "prefix": "bit64.plus"}, "bit64.minus": {"body": "bit64.minus(${1:a},${2:b},${3:flag1},${4:flag2})", "description": "bit64.minus(a,b,flag1,flag2) - 64bit\u6570\u636e\u51cf,a-b,a\u548cb\u4e2d\u6709\u4e00\u4e2a\u4e3a\u6d6e\u70b9\uff0c\u5219\u6309\u7167\u6d6e\u70b9\u8fd0\u7b97\n\u4f20\u5165\u503c\uff1a\nstring a\nstring/int/number b\nboolean \u6574\u5f62\u8fd0\u7b97\u65f6\u662f\u5426\u6309\u7167\u65e0\u7b26\u53f7\u65b9\u5f0f\uff0ctrue\u662f\uff0cfalse\u4e0d\u662f\uff0c\u9ed8\u8ba4false\uff0c\u6d6e\u70b9\u8fd0\u7b97\u5ffd\u7565\nboolean \u6d6e\u70b9\u8fd0\u7b97\u7ed3\u679c\u662f\u5426\u8981\u5f3a\u5236\u8f6c\u6210\u6574\u6570\uff0ctrue\u662f\uff0cfalse\u4e0d\u662f\uff0c\u9ed8\u8ba4false\uff0c\u6574\u5f62\u8fd0\u7b97\u5ffd\u7565\n\u8fd4\u56de\u503c\uff1a\nstring 9\u5b57\u8282\u6570\u636e\n", "prefix": "bit64.minus"}, "bit64.multi": {"body": "bit64.multi(${1:a},${2:b},${3:flag1},${4:flag2})", "description": "bit64.multi(a,b,flag1,flag2) - 64bit\u6570\u636e\u4e58,a*b,a\u548cb\u4e2d\u6709\u4e00\u4e2a\u4e3a\u6d6e\u70b9\uff0c\u5219\u6309\u7167\u6d6e\u70b9\u8fd0\u7b97\n\u4f20\u5165\u503c\uff1a\nstring a\nstring/int/number b\nboolean \u6574\u5f62\u8fd0\u7b97\u65f6\u662f\u5426\u6309\u7167\u65e0\u7b26\u53f7\u65b9\u5f0f\uff0ctrue\u662f\uff0cfalse\u4e0d\u662f\uff0c\u9ed8\u8ba4false\uff0c\u6d6e\u70b9\u8fd0\u7b97\u5ffd\u7565\nboolean \u6d6e\u70b9\u8fd0\u7b97\u7ed3\u679c\u662f\u5426\u8981\u5f3a\u5236\u8f6c\u6210\u6574\u6570\uff0ctrue\u662f\uff0cfalse\u4e0d\u662f\uff0c\u9ed8\u8ba4false\uff0c\u6574\u5f62\u8fd0\u7b97\u5ffd\u7565\n\u8fd4\u56de\u503c\uff1a\nstring 9\u5b57\u8282\u6570\u636e\n", "prefix": "bit64.multi"}, "bit64.pide": {"body": "bit64.pide(${1:a},${2:b},${3:flag1},${4:flag2})", "description": "bit64.pide(a,b,flag1,flag2) - 64bit\u6570\u636e\u9664,a/b,a\u548cb\u4e2d\u6709\u4e00\u4e2a\u4e3a\u6d6e\u70b9\uff0c\u5219\u6309\u7167\u6d6e\u70b9\u8fd0\u7b97\n\u4f20\u5165\u503c\uff1a\nstring a\nstring/int/number b\nboolean \u6574\u5f62\u8fd0\u7b97\u65f6\u662f\u5426\u6309\u7167\u65e0\u7b26\u53f7\u65b9\u5f0f\uff0ctrue\u662f\uff0cfalse\u4e0d\u662f\uff0c\u9ed8\u8ba4false\uff0c\u6d6e\u70b9\u8fd0\u7b97\u5ffd\u7565\nboolean \u6d6e\u70b9\u8fd0\u7b97\u7ed3\u679c\u662f\u5426\u8981\u5f3a\u5236\u8f6c\u6210\u6574\u6570\uff0ctrue\u662f\uff0cfalse\u4e0d\u662f\uff0c\u9ed8\u8ba4false\uff0c\u6574\u5f62\u8fd0\u7b97\u5ffd\u7565\n\u8fd4\u56de\u503c\uff1a\nstring 9\u5b57\u8282\u6570\u636e\n", "prefix": "bit64.pide"}, "bit64.shift": {"body": "bit64.shift(${1:a},${2:b},${3:flag})", "description": "bit64.shift(a,b,flag) - 64bit\u6570\u636e\u4f4d\u79fb a>>b \u6216\u8005 a<>\uff0c\u9ed8\u8ba4false\n\u8fd4\u56de\u503c\uff1a\nstring 9\u5b57\u8282\u6570\u636e\n", "prefix": "bit64.shift"}, "bit64.strtoll": {"body": "bit64.strtoll(${1:data},${2:base})", "description": "bit64.strtoll(data, base) - \u5c06\u5b57\u7b26\u4e32\u8f6c\u4e3aLongLong\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nstring \u5f85\u8f6c\u6362\u7684\u6570\u636e,\u5fc5\u987b\u5b58\u5728\nint \u8f6c\u6362\u8fdb\u5236, \u9ed8\u8ba410, \u53ef\u900916\u62168\n\u8fd4\u56de\u503c\uff1a\nstring 9\u5b57\u8282\u6570\u636e\n\u4f8b\u5b50\uff1a\n-- \u672cAPI\u4e8e 2023.10.27 \u6dfb\u52a0\n-- \u63d0\u9192, \u5982\u679c\u8f6c\u6362\u5931\u8d25, \u662f\u8fd4\u56de9\u4e2a\u5b57\u8282\u76840x00\nlocal data = bit64.strtoll(\"864040064024194\", 10)\nlog.info(\"data\", data:toHex())\nlog.info(\"data\", bit64.show(data))\n", "prefix": "bit64.strtoll"}, "camera.init": {"body": "camera.init(${1:InitReg})", "description": "camera.init(InitReg) - \u521d\u59cb\u5316\u6444\u50cf\u5934\n\u4f20\u5165\u503c\uff1a\ntable InitReg camera\u521d\u59cb\u5316\u547d\u4ee4 \u89c1demo/camera/AIR105 \u6ce8\u610f:\u5982\u626b\u7801 camera\u521d\u59cb\u5316\u65f6\u9700\u8bbe\u7f6e\u4e3a\u7070\u5ea6\u8f93\u51fa\n\u8fd4\u56de\u503c\uff1a\nint camera_id\n\u4f8b\u5b50\uff1a\ncamera_id = camera.init(GC032A_InitReg)--\u5c4f\u5e55\u8f93\u51fargb\u56fe\u50cf\n--\u521d\u59cb\u5316\u540e\u9700\u8981start\u624d\u5f00\u59cb\u8f93\u51fa/\u626b\u7801\ncamera.start(camera_id)--\u5f00\u59cb\u6307\u5b9a\u7684camera\n", "prefix": "camera.init"}, "camera.on": {"body": "camera.on(${1:id},${2:event},${3:func})", "description": "camera.on(id, event, func) - \u6ce8\u518c\u6444\u50cf\u5934\u4e8b\u4ef6\u56de\u8c03\n\u4f20\u5165\u503c\uff1a\nint camera id, camera 0\u51990, camera 1\u51991\nstring \u4e8b\u4ef6\u540d\u79f0\nfunction \u56de\u8c03\u65b9\u6cd5\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\ncamera.on(0, \"scanned\", function(id, str)\n--id int camera id\n--str \u591a\u79cd\u7c7b\u578b false \u6444\u50cf\u5934\u6ca1\u6709\u6b63\u5e38\u5de5\u4f5c\uff0ctrue \u62cd\u7167\u6a21\u5f0f\u4e0b\u62cd\u7167\u6210\u529f\u5e76\u4fdd\u5b58\u5b8c\u6210\uff0c int \u539f\u59cb\u6570\u636e\u6a21\u5f0f\u4e0b\u672c\u6b21\u8fd4\u56de\u7684\u6570\u636e\u5927\u5c0f\uff0c string \u626b\u7801\u6a21\u5f0f\u4e0b\u626b\u7801\u6210\u529f\u540e\u7684\u89e3\u7801\u503c\n print(id, str)\nend)\n", "prefix": "camera.on"}, "camera.start": {"body": "camera.start(${1:id})", "description": "camera.start(id) - \u5f00\u59cb\u6307\u5b9a\u7684camera\n\u4f20\u5165\u503c\uff1a\nint camera id,\u4f8b\u59820\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\ncamera.start(0)\n", "prefix": "camera.start"}, "camera.stop": {"body": "camera.stop(${1:id})", "description": "camera.stop(id) - \u505c\u6b62\u6307\u5b9a\u7684camera\n\u4f20\u5165\u503c\uff1a\nint camera id,\u4f8b\u59820\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\ncamera.stop(0)\n", "prefix": "camera.stop"}, "camera.close": {"body": "camera.close(${1:id})", "description": "camera.close(id) - \u5173\u95ed\u6307\u5b9a\u7684camera\uff0c\u91ca\u653e\u76f8\u5e94\u7684IO\u8d44\u6e90\n\u4f20\u5165\u503c\uff1a\nint camera id,\u4f8b\u59820\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\ncamera.close(0)\n", "prefix": "camera.close"}, "camera.capture": {"body": "camera.capture(${1:id},${2:save_path},${3:quality})", "description": "camera.capture(id, save_path, quality) - camera\u62cd\u7167\n\u4f20\u5165\u503c\uff1a\nint camera id,\u4f8b\u59820\nstring save_path,\u6587\u4ef6\u4fdd\u5b58\u8def\u5f84\uff0c\u7a7a\u5219\u5199\u5728\u4e0a\u6b21\u8def\u5f84\u91cc\uff0c\u9ed8\u8ba4\u662f/capture.jpg\nint quality, jpeg\u538b\u7f29\u8d28\u91cf\uff0c1\u6700\u5dee\uff0c\u5360\u7528\u7a7a\u95f4\u5c0f\uff0c3\u6700\u9ad8\uff0c\u5360\u7528\u7a7a\u95f4\u6700\u5927\u800c\u4e14\u8d39\u65f6\u95f4\uff0c\u9ed8\u8ba41\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\ncamera.capture(0)\n", "prefix": "camera.capture"}, "camera.video": {"body": "camera.video(${1:id},${2:w},${3:h},${4:out_path})", "description": "camera.video(id, w, h, out_path) - camera\u8f93\u51fa\u89c6\u9891\u6d41\u5230USB\n\u4f20\u5165\u503c\uff1a\nint camera id,\u4f8b\u59820\nint \u5bbd\u5ea6\nint \u9ad8\u5ea6\nint \u8f93\u51fa\u8def\u5f84\uff0c\u76ee\u524d\u53ea\u80fd\u7528\u865a\u62df\u4e32\u53e30\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\ncamera.video(0, 320, 240, uart.VUART_0)\n", "prefix": "camera.video"}, "camera.startRaw": {"body": "camera.startRaw(${1:id},${2:w},${3:h},${4:buff})", "description": "camera.startRaw(id, w, h, buff) - \u542f\u52a8camera\u8f93\u51fa\u539f\u59cb\u6570\u636e\u5230\u7528\u6237\u7684zbuff\u7f13\u5b58\u533a\uff0c\u8f93\u51fa1fps\u540e\u4f1a\u505c\u6b62\uff0c\u5e76\u901a\u8fc7camera.on\u8bbe\u7f6e\u7684\u56de\u8c03\u51fd\u6570\u56de\u8c03\u63a5\u6536\u5230\u7684\u957f\u5ea6\uff0c\u5982\u679c\u9700\u8981\u518d\u6b21\u8f93\u51fa\uff0c\u8bf7\u8c03\u7528camera.getRaw\n\u4f20\u5165\u503c\uff1a\nint camera id,\u4f8b\u59820\nint \u5bbd\u5ea6\nint \u9ad8\u5ea6\nzbuff \u7528\u4e8e\u5b58\u653e\u6570\u636e\u7684\u7f13\u5b58\u533a\uff0c\u5927\u5c0f\u5fc5\u987b\u4e0d\u5c0f\u4e8ew X h X 2 byte\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\ncamera.startRaw(0, 320, 240, buff)\n", "prefix": "camera.startRaw"}, "camera.getRaw": {"body": "camera.getRaw(${1:id})", "description": "camera.getRaw(id) - \u518d\u6b21\u542f\u52a8camera\u8f93\u51fa\u539f\u59cb\u6570\u636e\u5230\u7528\u6237\u7684zbuff\u7f13\u5b58\u533a\uff0c\u8f93\u51fa1fps\u540e\u4f1a\u505c\u6b62\uff0c\u5e76\u901a\u8fc7camera.on\u8bbe\u7f6e\u7684\u56de\u8c03\u51fd\u6570\u56de\u8c03\u63a5\u6536\u5230\u7684\u957f\u5ea6\uff0c\u5982\u679c\u9700\u8981\u518d\u6b21\u8f93\u51fa\uff0c\u8bf7\u7ee7\u7eed\u8c03\u7528\u672cAPI\n\u4f20\u5165\u503c\uff1a\nint camera id,\u4f8b\u59820\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\ncamera.getRaw(0)\n", "prefix": "camera.getRaw"}, "codec.create": {"body": "codec.create(${1:type},${2:isDecoder})", "description": "codec.create(type, isDecoder) - \u521b\u5efa\u7f16\u89e3\u7801\u7528\u7684codec\n\u4f20\u5165\u503c\uff1a\nint \u591a\u5a92\u4f53\u7c7b\u578b\uff0c\u76ee\u524d\u652f\u6301codec.MP3 codec.AMR\nboolean \u662f\u5426\u662f\u89e3\u7801\u5668\uff0ctrue\u89e3\u7801\u5668\uff0cfalse\u7f16\u7801\u5668\uff0c\u9ed8\u8ba4true\uff0c\u662f\u89e3\u7801\u5668\n\u8fd4\u56de\u503c\uff1a\nuserdata \u6210\u529f\u8fd4\u56de\u4e00\u4e2a\u6570\u636e\u7ed3\u6784,\u5426\u5219\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\n-- \u521b\u5efa\u89e3\u7801\u5668\nlocal decoder = codec.create(codec.MP3)--\u521b\u5efa\u4e00\u4e2amp3\u7684decoder\n-- \u521b\u5efa\u7f16\u7801\u5668\nlocal encoder = codec.create(codec.AMR, false)--\u521b\u5efa\u4e00\u4e2aamr\u7684encoder\n", "prefix": "codec.create"}, "codec.info": {"body": "codec.info(${1:decoder},${2:file_path})", "description": "codec.info(decoder, file_path) - decoder\u4ece\u6587\u4ef6\u4e2d\u89e3\u6790\u51fa\u97f3\u9891\u4fe1\u606f\n\u4f20\u5165\u503c\uff1a\nuserdata \u89e3\u7801\u7528\u7684decoder\nstring \u6587\u4ef6\u8def\u5f84\n\u8fd4\u56de\u503c\uff1a\nboolean \u662f\u5426\u6210\u529f\u89e3\u6790\nint \u97f3\u9891\u683c\u5f0f\nint \u58f0\u97f3\u901a\u9053\u6570\nint \u91c7\u6837\u9891\u7387\nint \u91c7\u6837\u4f4d\u6570\nboolean \u662f\u5426\u6709\u7b26\u53f7\n\u4f8b\u5b50\uff1a\nlocal result, audio_format, num_channels, sample_rate, bits_per_sample, is_signed= codec.info(coder, \"xxx\")\n", "prefix": "codec.info"}, "codec.data": {"body": "codec.data(${1:decoder},${2:out_buff})", "description": "codec.data(decoder, out_buff) - decoder\u4ece\u6587\u4ef6\u4e2d\u89e3\u6790\u51fa\u539f\u59cb\u97f3\u9891\u6570\u636e\uff0c\u6bd4\u5982\u4eceMP3\u6587\u4ef6\u91cc\u89e3\u6790\u51faPCM\u6570\u636e\uff0c\u8fd9\u91cc\u7684\u6587\u4ef6\u8def\u5f84\u5df2\u7ecf\u5728codec.info\u4f20\u5165\uff0c\u4e0d\u9700\u8981\u518d\u6b21\u4f20\u5165\n\u4f20\u5165\u503c\uff1a\nuserdata \u89e3\u7801\u7528\u7684decoder\nzbuff \u5b58\u653e\u8f93\u51fa\u6570\u636e\u7684zbuff\uff0c\u7a7a\u95f4\u5fc5\u987b\u4e0d\u5c11\u4e8e16KB\nint \u6700\u5c11\u89e3\u7801\u51fa\u591a\u5c11\u5b57\u8282\u7684\u97f3\u9891\u6570\u636e,\u9ed8\u8ba416384\n\u8fd4\u56de\u503c\uff1a\nboolean \u662f\u5426\u6210\u529f\u89e3\u6790\n\u4f8b\u5b50\uff1a\n-- \u5927\u5185\u5b58\u8bbe\u5907\nlocal buff = zbuff.create(16*1024)\nlocal result = codec.data(coder, buff)\n-- \u5c0f\u5185\u5b58\u8bbe\u5907\nlocal buff = zbuff.create(8*1024)\nlocal result = codec.data(coder, buff, 4096)\n", "prefix": "codec.data"}, "codec.encode": {"body": "codec.encode(${1:coder},${2:in_buffer},${3:out_buffer},${4:mode})", "description": "codec.encode(coder, in_buffer, out_buffer, mode) - \u7f16\u7801\u97f3\u9891\u6570\u636e\uff0c\u7531\u4e8eflash\u548cram\u7a7a\u95f4\u4e00\u822c\u6bd4\u8f83\u6709\u9650\uff0c\u76ee\u524d\u53ea\u652f\u6301amr-nb\u7f16\u7801\n\u4f20\u5165\u503c\uff1a\nuserdata codec.create\u521b\u5efa\u7684\u7f16\u89e3\u7801\u7528\u7684coder\nzbuff \u8f93\u5165\u7684\u6570\u636e,zbuff\u5f62\u5f0f,\u4ece0\u5230used\nzbuff \u8f93\u51fa\u7684\u6570\u636e,zbuff\u5f62\u5f0f,\u81ea\u52a8\u6dfb\u52a0\u5230buff\u7684\u5c3e\u90e8,\u5982\u679c\u7a7a\u95f4\u5927\u5c0f\u4e0d\u8db3,\u4f1a\u81ea\u52a8\u6269\u5c55,\u4f46\u662f\u4f1a\u989d\u5916\u6d88\u8017\u65f6\u95f4,\u751a\u81f3\u4f1a\u5931\u8d25,\u6240\u4ee5\u5c3d\u91cf\u4e00\u5f00\u59cb\u5c31\u7ed9\u8db3\u7a7a\u95f4\nint amr_nb\u7684\u7f16\u7801\u7b49\u7ea7 0~7(\u5373 MR475~MR122)\u503c\u8d8a\u5927\u6d88\u8017\u7684\u7a7a\u95f4\u8d8a\u591a,\u97f3\u8d28\u8d8a\u9ad8,\u9ed8\u8ba40\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u8fd4\u56detrue,\u5931\u8d25\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\ncodec.encode(amr_coder, inbuf, outbuf, codec.AMR_)\n", "prefix": "codec.encode"}, "codec.release": {"body": "codec.release(${1:coder})", "description": "codec.release(coder) - \u91ca\u653e\u7f16\u89e3\u7801\u7528\u7684coder\n\u4f20\u5165\u503c\uff1a\ncoder codec.create\u521b\u5efa\u7684\u7f16\u89e3\u7801\u7528\u7684coder\n\u4f8b\u5b50\uff1a\ncodec.release(coder)\n", "prefix": "codec.release"}, "coremark.run": {"body": "coremark.run()", "description": "coremark.run() - \u5f00\u59cb\u8dd1\u5206\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c,\u7ed3\u679c\u76f4\u63a5\u6253\u5370\u5728\u65e5\u5fd7\u4e2d\n\u4f8b\u5b50\uff1a\n-- \u5927\u90e8\u5206\u60c5\u51b5\u4e0b, \u8fd9\u4e2a\u5e93\u90fd\u4e0d\u4f1a\u5305\u542b\u5728\u6b63\u5f0f\u7248\u56fa\u4ef6\u91cc\n-- \u82e5\u9700\u4f7f\u7528,\u53ef\u4ee5\u53c2\u8003wiki\u6587\u6863\u81ea\u884c\u7f16\u8bd1\u6216\u4f7f\u7528\u4e91\u7f16\u8bd1\n-- https://wiki.luatos.com/develop/compile.html\n\n-- \u8dd1\u5206\u7684main.lua \u5e94\u79fb\u9664\u786c\u72d7\u4ee3\u7801, \u9632\u6b62\u91cd\u542f\n-- \u82e5\u8bbe\u5907\u652f\u6301\u81ea\u52a8\u4f11\u7720, \u5e94\u5173\u95ed\u4f11\u7720\u529f\u80fd\n-- \u82e5\u8bbe\u5907\u652f\u6301\u66f4\u591a\u7684\u9891\u7387\u8fd0\u884c, \u5efa\u8bae\u8bbe\u7f6e\u5230\u6700\u9ad8\u9891\u7387\n-- \u4f7f\u7528 -O3 \u6bd4 -O2 -Os \u7684\u5206\u6570\u66f4\u9ad8, \u901a\u5e38\u60c5\u51b5\u4e0b\n\n-- \u4f1a\u4e00\u76f4\u72ec\u5360\u7ebf\u7a0b\u5230\u6267\u884c\u5b8c\u6bd5, \u7136\u540e\u5728\u63a7\u5236\u53f0\u8f93\u51fa\u7ed3\u679c\ncoremark.run()\n\n-- \u8dd1\u5206\u56fe\u4e00\u4e50^_^\n\n", "prefix": "coremark.run"}, "crypto.md5": {"body": "crypto.md5(${1:str})", "description": "crypto.md5(str) - \u8ba1\u7b97md5\u503c\n\u4f20\u5165\u503c\uff1a\nstring \u9700\u8981\u8ba1\u7b97\u7684\u5b57\u7b26\u4e32\n\u8fd4\u56de\u503c\uff1a\nstring \u8ba1\u7b97\u5f97\u51fa\u7684md5\u503c\u7684hex\u5b57\u7b26\u4e32\n\u4f8b\u5b50\uff1a\n-- \u8ba1\u7b97\u5b57\u7b26\u4e32\"abc\"\u7684md5\nlog.info(\"md5\", crypto.md5(\"abc\"))\n", "prefix": "crypto.md5"}, "crypto.hmac_md5": {"body": "crypto.hmac_md5(${1:str},${2:key})", "description": "crypto.hmac_md5(str, key) - \u8ba1\u7b97hmac_md5\u503c\n\u4f20\u5165\u503c\uff1a\nstring \u9700\u8981\u8ba1\u7b97\u7684\u5b57\u7b26\u4e32\nstring \u5bc6\u94a5\n\u8fd4\u56de\u503c\uff1a\nstring \u8ba1\u7b97\u5f97\u51fa\u7684hmac_md5\u503c\u7684hex\u5b57\u7b26\u4e32\n\u4f8b\u5b50\uff1a\n-- \u8ba1\u7b97\u5b57\u7b26\u4e32\"abc\"\u7684hmac_md5\nlog.info(\"hmac_md5\", crypto.hmac_md5(\"abc\", \"1234567890\"))\n", "prefix": "crypto.hmac_md5"}, "crypto.sha1": {"body": "crypto.sha1(${1:str})", "description": "crypto.sha1(str) - \u8ba1\u7b97sha1\u503c\n\u4f20\u5165\u503c\uff1a\nstring \u9700\u8981\u8ba1\u7b97\u7684\u5b57\u7b26\u4e32\n\u8fd4\u56de\u503c\uff1a\nstring \u8ba1\u7b97\u5f97\u51fa\u7684sha1\u503c\u7684hex\u5b57\u7b26\u4e32\n\u4f8b\u5b50\uff1a\n-- \u8ba1\u7b97\u5b57\u7b26\u4e32\"abc\"\u7684sha1\nlog.info(\"sha1\", crypto.sha1(\"abc\"))\n", "prefix": "crypto.sha1"}, "crypto.hmac_sha1": {"body": "crypto.hmac_sha1(${1:str},${2:key})", "description": "crypto.hmac_sha1(str, key) - \u8ba1\u7b97hmac_sha1\u503c\n\u4f20\u5165\u503c\uff1a\nstring \u9700\u8981\u8ba1\u7b97\u7684\u5b57\u7b26\u4e32\nstring \u5bc6\u94a5\n\u8fd4\u56de\u503c\uff1a\nstring \u8ba1\u7b97\u5f97\u51fa\u7684hmac_sha1\u503c\u7684hex\u5b57\u7b26\u4e32\n\u4f8b\u5b50\uff1a\n-- \u8ba1\u7b97\u5b57\u7b26\u4e32\"abc\"\u7684hmac_sha1\nlog.info(\"hmac_sha1\", crypto.hmac_sha1(\"abc\", \"1234567890\"))\n", "prefix": "crypto.hmac_sha1"}, "crypto.sha256": {"body": "crypto.sha256(${1:str})", "description": "crypto.sha256(str) - \u8ba1\u7b97sha256\u503c\n\u4f20\u5165\u503c\uff1a\nstring \u9700\u8981\u8ba1\u7b97\u7684\u5b57\u7b26\u4e32\n\u8fd4\u56de\u503c\uff1a\nstring \u8ba1\u7b97\u5f97\u51fa\u7684sha256\u503c\u7684hex\u5b57\u7b26\u4e32\n\u4f8b\u5b50\uff1a\n-- \u8ba1\u7b97\u5b57\u7b26\u4e32\"abc\"\u7684sha256\nlog.info(\"sha256\", crypto.sha256(\"abc\"))\n", "prefix": "crypto.sha256"}, "crypto.hmac_sha256": {"body": "crypto.hmac_sha256(${1:str},${2:key})", "description": "crypto.hmac_sha256(str, key) - \u8ba1\u7b97hmac_sha256\u503c\n\u4f20\u5165\u503c\uff1a\nstring \u9700\u8981\u8ba1\u7b97\u7684\u5b57\u7b26\u4e32\nstring \u5bc6\u94a5\n\u8fd4\u56de\u503c\uff1a\nstring \u8ba1\u7b97\u5f97\u51fa\u7684hmac_sha256\u503c\u7684hex\u5b57\u7b26\u4e32\n\u4f8b\u5b50\uff1a\n-- \u8ba1\u7b97\u5b57\u7b26\u4e32\"abc\"\u7684hmac_sha256\nlog.info(\"hmac_sha256\", crypto.hmac_sha256(\"abc\", \"1234567890\"))\n", "prefix": "crypto.hmac_sha256"}, "crypto.sha512": {"body": "crypto.sha512(${1:str})", "description": "crypto.sha512(str) - \u8ba1\u7b97sha512\u503c\n\u4f20\u5165\u503c\uff1a\nstring \u9700\u8981\u8ba1\u7b97\u7684\u5b57\u7b26\u4e32\n\u8fd4\u56de\u503c\uff1a\nstring \u8ba1\u7b97\u5f97\u51fa\u7684sha512\u503c\u7684hex\u5b57\u7b26\u4e32\n\u4f8b\u5b50\uff1a\n-- \u8ba1\u7b97\u5b57\u7b26\u4e32\"abc\"\u7684sha512\nlog.info(\"sha512\", crypto.sha512(\"abc\"))\n", "prefix": "crypto.sha512"}, "crypto.hmac_sha512": {"body": "crypto.hmac_sha512(${1:str},${2:key})", "description": "crypto.hmac_sha512(str, key) - \u8ba1\u7b97hmac_sha512\u503c\n\u4f20\u5165\u503c\uff1a\nstring \u9700\u8981\u8ba1\u7b97\u7684\u5b57\u7b26\u4e32\nstring \u5bc6\u94a5\n\u8fd4\u56de\u503c\uff1a\nstring \u8ba1\u7b97\u5f97\u51fa\u7684hmac_sha512\u503c\u7684hex\u5b57\u7b26\u4e32\n\u4f8b\u5b50\uff1a\n-- \u8ba1\u7b97\u5b57\u7b26\u4e32\"abc\"\u7684hmac_sha512\nlog.info(\"hmac_sha512\", crypto.hmac_sha512(\"abc\", \"1234567890\"))\n", "prefix": "crypto.hmac_sha512"}, "crypto.cipher_encrypt": {"body": "crypto.cipher_encrypt(${1:type},${2:padding},${3:str},${4:key},${5:iv})", "description": "crypto.cipher_encrypt(type, padding, str, key, iv) - \u5bf9\u79f0\u52a0\u5bc6\n\u4f20\u5165\u503c\uff1a\nstring \u7b97\u6cd5\u540d\u79f0, \u4f8b\u5982 AES-128-ECB/AES-128-CBC, \u53ef\u67e5\u9605crypto.cipher_list()\nstring \u5bf9\u9f50\u65b9\u5f0f, \u652f\u6301PKCS7/ZERO/ONE_AND_ZEROS/ZEROS_AND_LEN/NONE\nstring \u9700\u8981\u52a0\u5bc6\u7684\u6570\u636e\nstring \u5bc6\u94a5,\u9700\u8981\u5bf9\u5e94\u7b97\u6cd5\u7684\u5bc6\u94a5\u957f\u5ea6\nstring IV\u503c, \u975eECB\u7b97\u6cd5\u9700\u8981\n\u8fd4\u56de\u503c\uff1a\nstring \u52a0\u5bc6\u540e\u7684\u5b57\u7b26\u4e32\n\u4f8b\u5b50\uff1a\n-- \u8ba1\u7b97AES\nlocal data = crypto.cipher_encrypt(\"AES-128-ECB\", \"PKCS7\", \"1234567890123456\", \"1234567890123456\")\nlocal data2 = crypto.cipher_encrypt(\"AES-128-CBC\", \"PKCS7\", \"1234567890123456\", \"1234567890123456\", \"1234567890666666\")\n", "prefix": "crypto.cipher_encrypt"}, "crypto.cipher_decrypt": {"body": "crypto.cipher_decrypt(${1:type},${2:padding},${3:str},${4:key},${5:iv})", "description": "crypto.cipher_decrypt(type, padding, str, key, iv) - \u5bf9\u79f0\u89e3\u5bc6\n\u4f20\u5165\u503c\uff1a\nstring \u7b97\u6cd5\u540d\u79f0, \u4f8b\u5982 AES-128-ECB/AES-128-CBC, \u53ef\u67e5\u9605crypto.cipher_list()\nstring \u5bf9\u9f50\u65b9\u5f0f, \u652f\u6301PKCS7/ZERO/ONE_AND_ZEROS/ZEROS_AND_LEN/NONE\nstring \u9700\u8981\u89e3\u5bc6\u7684\u6570\u636e\nstring \u5bc6\u94a5,\u9700\u8981\u5bf9\u5e94\u7b97\u6cd5\u7684\u5bc6\u94a5\u957f\u5ea6\nstring IV\u503c, \u975eECB\u7b97\u6cd5\u9700\u8981\n\u8fd4\u56de\u503c\uff1a\nstring \u89e3\u5bc6\u540e\u7684\u5b57\u7b26\u4e32\n\u4f8b\u5b50\uff1a\n-- \u7528AES\u52a0\u5bc6,\u7136\u540e\u7528AES\u89e3\u5bc6\nlocal data = crypto.cipher_encrypt(\"AES-128-ECB\", \"PKCS7\", \"1234567890123456\", \"1234567890123456\")\nlocal data2 = crypto.cipher_decrypt(\"AES-128-ECB\", \"PKCS7\", data, \"1234567890123456\")\n-- data\u7684hex\u4e3a 757CCD0CDC5C90EADBEEECF638DD0000\n-- data2\u7684\u503c\u4e3a 1234567890123456\n", "prefix": "crypto.cipher_decrypt"}, "crypto.crc16": {"body": "crypto.crc16(${1:method},${2:data},${3:poly},${4:initial},${5:finally},${6:inReversemoutReverse})", "description": "crypto.crc16(method, data, poly, initial, finally, inReversem outReverse) - \u8ba1\u7b97CRC16\n\u4f20\u5165\u503c\uff1a\nstring CRC16\u6a21\u5f0f\uff08\"IBM\",\"MAXIM\",\"USB\",\"MODBUS\",\"CCITT\",\"CCITT-FALSE\",\"X25\",\"XMODEM\",\"DNP\",\"USER-DEFINED\"\uff09\nstring \u5b57\u7b26\u4e32\nint poly\u503c\nint initial\u503c\nint finally\u503c\nint \u8f93\u5165\u53cd\u8f6c,1\u53cd\u8f6c,\u9ed8\u8ba40\u4e0d\u53cd\u8f6c\nint \u8f93\u5165\u53cd\u8f6c,1\u53cd\u8f6c,\u9ed8\u8ba40\u4e0d\u53cd\u8f6c\n\u8fd4\u56de\u503c\uff1a\nint \u5bf9\u5e94\u7684CRC16\u503c\n\u4f8b\u5b50\uff1a\n-- \u8ba1\u7b97CRC16\nlocal crc = crypto.crc16(\"\")\n", "prefix": "crypto.crc16"}, "crypto.crc16_modbus": {"body": "crypto.crc16_modbus(${1:data})", "description": "crypto.crc16_modbus(data) - \u76f4\u63a5\u8ba1\u7b97modbus\u7684crc16\u503c\n\u4f20\u5165\u503c\uff1a\nstring \u6570\u636e\n\u8fd4\u56de\u503c\uff1a\nint \u5bf9\u5e94\u7684CRC16\u503c\n\u4f8b\u5b50\uff1a\n-- \u8ba1\u7b97CRC16 modbus\nlocal crc = crypto.crc16_modbus(data)\n", "prefix": "crypto.crc16_modbus"}, "crypto.crc32": {"body": "crypto.crc32(${1:data})", "description": "crypto.crc32(data) - \u8ba1\u7b97crc32\u503c\n\u4f20\u5165\u503c\uff1a\nstring \u6570\u636e\n\u8fd4\u56de\u503c\uff1a\nint \u5bf9\u5e94\u7684CRC32\u503c\n\u4f8b\u5b50\uff1a\n-- \u8ba1\u7b97CRC32\nlocal crc = crypto.crc32(data)\n", "prefix": "crypto.crc32"}, "crypto.crc8": {"body": "crypto.crc8(${1:data},${2:poly},${3:start},${4:revert})", "description": "crypto.crc8(data, poly, start, revert) - \u8ba1\u7b97crc8\u503c\n\u4f20\u5165\u503c\uff1a\nstring \u6570\u636e\nint crc\u591a\u9879\u5f0f\uff0c\u53ef\u9009\uff0c\u5982\u679c\u4e0d\u5199\uff0c\u5c06\u5ffd\u7565\u9664\u4e86\u6570\u636e\u5916\u6240\u6709\u53c2\u6570\nint crc\u521d\u59cb\u503c\uff0c\u53ef\u9009\uff0c\u9ed8\u8ba40\nboolean \u662f\u5426\u9700\u8981\u9006\u5e8f\u5904\u7406\uff0c\u9ed8\u8ba4\u5426\n\u8fd4\u56de\u503c\uff1a\nint \u5bf9\u5e94\u7684CRC8\u503c\n\u4f8b\u5b50\uff1a\n-- \u8ba1\u7b97CRC8\nlocal crc = crypto.crc8(data)\nlocal crc = crypto.crc8(data, 0x31, 0xff, false)\n", "prefix": "crypto.crc8"}, "crypto.crc7": {"body": "crypto.crc7(${1:data},${2:poly},${3:start})", "description": "crypto.crc7(data, poly, start) - \u8ba1\u7b97crc7\u503c\n\u4f20\u5165\u503c\uff1a\nstring \u6570\u636e\nint crc\u591a\u9879\u5f0f\uff0c\u53ef\u9009\uff0c\u9ed8\u8ba40xE5\nint crc\u521d\u59cb\u503c\uff0c\u53ef\u9009\uff0c\u9ed8\u8ba40x00\n\u8fd4\u56de\u503c\uff1a\nint \u5bf9\u5e94\u7684CRC7\u503c\n\u4f8b\u5b50\uff1a\n-- \u8ba1\u7b97CRC7, \u672cAPI\u4e8e2023.10.07\u65b0\u589e\nlocal crc = crypto.crc7(data)\nlocal crc = crypto.crc7(data, 0x31, 0xff)\n", "prefix": "crypto.crc7"}, "crypto.trng": {"body": "crypto.trng(${1:len})", "description": "crypto.trng(len) - \u751f\u6210\u771f\u968f\u673a\u6570\n\u4f20\u5165\u503c\uff1a\nint \u6570\u636e\u957f\u5ea6\n\u8fd4\u56de\u503c\uff1a\nstring \u6307\u5b9a\u968f\u673a\u6570\u5b57\u7b26\u4e32\n\u4f8b\u5b50\uff1a\n-- \u751f\u621032\u4f4d\u968f\u673a\u6570ir\nlocal r = crypto.trng(4)\nlocal _, ir = pack.unpack(r, \"I\")\n", "prefix": "crypto.trng"}, "crypto.totp": {"body": "crypto.totp(${1:secret},${2:time})", "description": "crypto.totp(secret,time) - \u8ba1\u7b97TOTP\u52a8\u6001\u5bc6\u7801\u7684\u7ed3\u679c\n\u4f20\u5165\u503c\uff1a\nstring \u7f51\u7ad9\u63d0\u4f9b\u7684\u5bc6\u94a5\uff08\u5c31\u662fBASE32\u7f16\u7801\u540e\u7684\u7ed3\u679c\uff09\nint \u53ef\u9009\uff0c\u65f6\u95f4\u6233\uff0c\u9ed8\u8ba4\u5f53\u524d\u65f6\u95f4\n\u8fd4\u56de\u503c\uff1a\nint \u8ba1\u7b97\u5f97\u51fa\u7684\u516d\u4f4d\u6570\u7ed3\u679c \u8ba1\u7b97\u5931\u8d25\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\n--\u4f7f\u7528\u5f53\u524d\u7cfb\u7edf\u65f6\u95f4\u8ba1\u7b97\nlocal otp = crypto.totp(\"asdfassdfasdfass\")\n", "prefix": "crypto.totp"}, "crypto.base64_encode": {"body": "crypto.base64_encode(${1:data})", "description": "crypto.base64_encode(data) - \u5c06\u6570\u636e\u8fdb\u884cbase64\u7f16\u7801\n\u4f20\u5165\u503c\uff1a\nstring \u5f85\u7f16\u7801\u7684\u6570\u636e\n\u8fd4\u56de\u503c\uff1a\nstring \u7f16\u7801\u540e\u7684\u6570\u636e\n\u4f8b\u5b50\uff1a\n-- \u672c\u51fd\u6570\u4e0e string.toBase64 \u662f\u540c\u4e00\u4e2a\nlocal data = \"123\"\nlocal bdata = crypto.base64_encode(data)\nlog.info(\"base64\", \"encode\", data, bdata)\ndata = crypto.base64_decode(data)\nlog.info(\"base64\", \"decode\", data, bdata)\n", "prefix": "crypto.base64_encode"}, "crypto.base64_decode": {"body": "crypto.base64_decode(${1:data})", "description": "crypto.base64_decode(data) - \u5c06\u6570\u636e\u8fdb\u884cbase64\u89e3\u7801\n\u4f20\u5165\u503c\uff1a\nstring \u5f85\u89e3\u7801\u7684\u6570\u636e\n\u8fd4\u56de\u503c\uff1a\nstring \u89e3\u7801\u540e\u7684\u6570\u636e\n\u4f8b\u5b50\uff1a\n-- \u672c\u51fd\u6570\u4e0e string.fromBase64 \u662f\u540c\u4e00\u4e2a\nlocal data = \"123\"\nlocal bdata = crypto.base64_encode(data)\nlog.info(\"base64\", \"encode\", data, bdata)\ndata = crypto.base64_decode(data)\nlog.info(\"base64\", \"decode\", data, bdata)\n", "prefix": "crypto.base64_decode"}, "crypto.cipher_list": {"body": "crypto.cipher_list()", "description": "crypto.cipher_list() - \u83b7\u53d6\u5f53\u524d\u56fa\u4ef6\u652f\u6301\u7684cipher\u5217\u8868\n\u8fd4\u56de\u503c\uff1a\ntable \u672c\u56fa\u4ef6\u652f\u6301\u7684cipher\u5217\u8868,\u5b57\u7b26\u4e32\u6570\u7ec4\n\u4f8b\u5b50\uff1a\n-- \u672cAPI\u4e8e2022.07.27\u6dfb\u52a0\nlocal ciphers = crypto.cipher_list()\nif ciphers then\n log.info(\"crypto\", \"ciphers list\", json.encode(ciphers))\nend\n", "prefix": "crypto.cipher_list"}, "crypto.cipher_suites": {"body": "crypto.cipher_suites()", "description": "crypto.cipher_suites() - \u83b7\u53d6\u5f53\u524d\u56fa\u4ef6\u652f\u6301\u7684cipher suites\u5217\u8868\n\u8fd4\u56de\u503c\uff1a\ntable \u672c\u56fa\u4ef6\u652f\u6301\u7684cipher suites\u5217\u8868,\u5b57\u7b26\u4e32\u6570\u7ec4\n\u4f8b\u5b50\uff1a\n-- \u672cAPI\u4e8e2022.11.16\u6dfb\u52a0\nlocal suites = crypto.cipher_suites()\nif suites then\n log.info(\"crypto\", \"ciphers suites\", json.encode(suites))\nend\n", "prefix": "crypto.cipher_suites"}, "crypto.md_file": {"body": "crypto.md_file(${1:tp},${2:path},${3:hmac})", "description": "crypto.md_file(tp, path, hmac) - \u8ba1\u7b97\u6587\u4ef6\u7684hash\u503c(md5/sha1/sha256\u53cahmac\u5f62\u5f0f)\n\u4f20\u5165\u503c\uff1a\nstring hash\u7c7b\u578b, \u5927\u5c0f\u5b57\u6bcd, \u4f8b\u5982 \"MD5\" \"SHA1\" \"SHA256\"\nstring \u6587\u4ef6\u8def\u5f84, \u4f8b\u5982 /luadb/logo.jpg\nstring hmac\u503c,\u53ef\u9009\n\u8fd4\u56de\u503c\uff1a\nstring HEX\u8fc7\u7684hash\u503c,\u82e5\u5931\u8d25\u4f1a\u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n\n-- \u65e0hmac\u7684hash\u503c\nlog.info(\"md5\", crypto.md_file(\"MD5\", \"/luadb/logo.jpg\"))\nlog.info(\"sha1\", crypto.md_file(\"SHA1\", \"/luadb/logo.jpg\"))\nlog.info(\"sha256\", crypto.md_file(\"SHA256\", \"/luadb/logo.jpg\"))\n\n-- \u5e26hmac\u7684hash\u503c\nlog.info(\"hmac_md5\", crypto.md_file(\"MD5\", \"/luadb/logo.jpg\", \"123456\"))\nlog.info(\"hmac_sha1\", crypto.md_file(\"SHA1\", \"/luadb/logo.jpg\", \"123456\"))\nlog.info(\"hmac_sha256\", crypto.md_file(\"SHA256\", \"/luadb/logo.jpg\", \"123456\"))\n", "prefix": "crypto.md_file"}, "crypto.md": {"body": "crypto.md(${1:tp},${2:data},${3:hmac})", "description": "crypto.md(tp, data, hmac) - \u8ba1\u7b97\u6570\u636e\u7684hash\u503c(md5/sha1/sha256\u53cahmac\u5f62\u5f0f)\n\u4f20\u5165\u503c\uff1a\nstring hash\u7c7b\u578b, \u5927\u5c0f\u5b57\u6bcd, \u4f8b\u5982 \"MD5\" \"SHA1\" \"SHA256\"\nstring \u5f85\u5904\u7406\u7684\u6570\u636e\nstring hmac\u503c,\u53ef\u9009\n\u8fd4\u56de\u503c\uff1a\nstring HEX\u8fc7\u7684hash\u503c,\u82e5\u5931\u8d25\u4f1a\u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n\n-- \u65e0hmac\u7684hash\u503c\nlog.info(\"md5\", crypto.md(\"MD5\", \"1234567890\"))\nlog.info(\"sha1\", crypto.md(\"SHA1\", \"1234567890\"))\nlog.info(\"sha256\", crypto.md(\"SHA256\", \"1234567890\"))\n\n-- \u5e26hmac\u7684hash\u503c\nlog.info(\"hmac_md5\", crypto.md(\"MD5\", \"1234567890\", \"123456\"))\nlog.info(\"hmac_sha1\", crypto.md(\"SHA1\", \"1234567890\", \"123456\"))\nlog.info(\"hmac_sha256\", crypto.md(\"SHA256\", \"1234567890\", \"123456\"))\n", "prefix": "crypto.md"}, "crypto.hash_init": {"body": "crypto.hash_init(${1:tp})", "description": "crypto.hash_init(tp) - \u521b\u5efa\u6d41\u5f0fhash\u7528\u7684stream\n\u4f20\u5165\u503c\uff1a\nstring hash\u7c7b\u578b, \u5927\u5199\u5b57\u6bcd, \u4f8b\u5982 \"MD5\" \"SHA1\" \"SHA256\"\nstring hmac\u503c\uff0c\u53ef\u9009\n\u8fd4\u56de\u503c\uff1a\nuserdata \u6210\u529f\u8fd4\u56de\u4e00\u4e2a\u6570\u636e\u7ed3\u6784,\u5426\u5219\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\n-- \u65e0hmac\u7684hash stream\nlocal md5_stream = crypto.hash_init(\"MD5\")\nlocal sha1_stream = crypto.hash_init(\"SHA1\")\nlocal sha256_stream = crypto.hash_init(\"SHA256\")\n\n-- \u5e26hmac\u7684hash stream\nlocal md5_stream = crypto.hash_init(\"MD5\", \"123456\")\nlocal sha1_stream = crypto.hash_init(\"SHA1\", \"123456\")\nlocal sha256_stream = crypto.hash_init(\"SHA256\", \"123456\")\n", "prefix": "crypto.hash_init"}, "crypto.hash_update": {"body": "crypto.hash_update(${1:stream},${2:data})", "description": "crypto.hash_update(stream, data) - \u6d41\u5f0fhash\u66f4\u65b0\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nuserdata crypto.hash_init()\u521b\u5efa\u7684stream, \u5fc5\u9009\nstring \u5f85\u8ba1\u7b97\u7684\u6570\u636e,\u5fc5\u9009\nreturn \u65e0\n\u4f8b\u5b50\uff1a\ncrypto.hash_update(stream, \"OK\")\n", "prefix": "crypto.hash_update"}, "crypto.hash_finish": {"body": "crypto.hash_finish(${1:stream})", "description": "crypto.hash_finish(stream) - \u83b7\u53d6\u6d41\u5f0fhash\u6821\u9a8c\u503c\u5e76\u91ca\u653e\u521b\u5efa\u7684stream\n\u4f20\u5165\u503c\uff1a\nuserdata crypto.hash_init()\u521b\u5efa\u7684stream,\u5fc5\u9009\n\u8fd4\u56de\u503c\uff1a\nstring \u6210\u529f\u8fd4\u56de\u8ba1\u7b97\u5f97\u51fa\u7684\u6d41\u5f0fhash\u503c\u7684hex\u5b57\u7b26\u4e32\uff0c\u5931\u8d25\u65e0\u8fd4\u56de\n\u4f8b\u5b50\uff1a\nlocal hashResult = crypto.hash_finish(stream)\n", "prefix": "crypto.hash_finish"}, "crypto.checksum": {"body": "crypto.checksum(${1:data},${2:mode})", "description": "crypto.checksum(data, mode) - \u8ba1\u7b97checksum\u6821\u9a8c\u548c\n\u4f20\u5165\u503c\uff1a\nstring \u5f85\u8ba1\u7b97\u7684\u6570\u636e,\u5fc5\u9009\nint \u6a21\u5f0f,\u7d2f\u52a0\u6a21\u5f0f, 0 - \u5f02\u6216, 1 - \u7d2f\u52a0, \u9ed8\u8ba4\u4e3a0\n\u8fd4\u56de\u503c\uff1a\nint checksum\u503c,\u6821\u9a8c\u548c\n\u4f8b\u5b50\uff1a\n-- \u672c\u51fd\u6570\u5728 2022.12.28 \u6dfb\u52a0\n-- \u5355\u7eaf\u8ba1\u7b97checksum\u503c\nlocal ck = crypto.checksum(\"OK\")\nlog.info(\"checksum\", \"ok\", string.format(\"%02X\", ck))\n-- \u7b2c\u4e8c\u4e2a\u53c2\u6570mode\u57282023.5.23\u65e5\u6dfb\u52a0\n", "prefix": "crypto.checksum"}, "dac.open": {"body": "dac.open(${1:ch},${2:freq},${3:mode})", "description": "dac.open(ch, freq, mode) - \u6253\u5f00DAC\u901a\u9053,\u5e76\u914d\u7f6e\u53c2\u6570\n\u4f20\u5165\u503c\uff1a\nint \u901a\u9053\u7f16\u53f7,\u4f8b\u59820\nint \u8f93\u51fa\u9891\u7387,\u5355\u4f4dhz\nint \u6a21\u5f0f,\u9ed8\u8ba4\u4e3a0,\u9884\u7559\n\u8fd4\u56de\u503c\uff1a\ntrue \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\nint \u5e95\u5c42\u8fd4\u56de\u503c,\u8c03\u8bd5\u7528\n\u4f8b\u5b50\uff1a\nif dac.open(0, 44000) then\n log.info(\"dac\", \"dac ch0 is opened\")\nend\n\n", "prefix": "dac.open"}, "dac.write": {"body": "dac.write(${1:ch},${2:data})", "description": "dac.write(ch, data) - \u4ece\u6307\u5b9aDAC\u901a\u9053\u8f93\u51fa\u4e00\u6bb5\u6ce2\u5f62,\u6216\u8005\u5355\u4e2a\u503c\n\u4f20\u5165\u503c\uff1a\nint \u901a\u9053\u7f16\u53f7,\u4f8b\u59820\nstring \u82e5\u8f93\u51fa\u56fa\u5b9a\u503c,\u53ef\u4ee5\u586b\u6570\u503c, \u82e5\u8f93\u51fa\u6ce2\u5f62,\u586bstring\n\u8fd4\u56de\u503c\uff1a\ntrue \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\nint \u5e95\u5c42\u8fd4\u56de\u503c,\u8c03\u8bd5\u7528\n\u4f8b\u5b50\uff1a\nif dac.open(0, 44000) then\n log.info(\"dac\", \"dac ch0 is opened\")\n dac.write(0, string.fromHex(\"ABCDABCD\"))\nend\ndac.close(0)\n", "prefix": "dac.write"}, "dac.close": {"body": "dac.close(${1:ch})", "description": "dac.close(ch) - \u5173\u95edDAC\u901a\u9053\n\u4f20\u5165\u503c\uff1a\nint \u901a\u9053\u7f16\u53f7,\u4f8b\u59820\n\u8fd4\u56de\u503c\uff1a\ntrue \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\nint \u5e95\u5c42\u8fd4\u56de\u503c,\u8c03\u8bd5\u7528\n\u4f8b\u5b50\uff1a\nif dac.open(0, 44000) then\n log.info(\"dac\", \"dac ch0 is opened\")\n dac.write(0, string.fromHex(\"ABCDABCD\"))\nend\ndac.close(0)\n", "prefix": "dac.close"}, "disp.init": {"body": "disp.init(${1:conf})", "description": "disp.init(conf) - \u663e\u793a\u5c4f\u521d\u59cb\u5316,\u8bf7\u4f7f\u7528u8g2\u5e93\n\u4f20\u5165\u503c\uff1a\ntable conf \u914d\u7f6e\u4fe1\u606f\n\u8fd4\u56de\u503c\uff1a\nint \u6b63\u5e38\u521d\u59cb\u53161,\u5df2\u7ecf\u521d\u59cb\u5316\u8fc72,\u5185\u5b58\u4e0d\u591f3,\u521d\u59cb\u5316\u5931\u8d25\u8fd4\u56de4\n\u4f8b\u5b50\uff1a\n-- disp\u5e93\u7684\u6240\u6709API\u5747\u5df2\u5408\u5e76\u5230u8g2\u5e93\n-- disp\u5e93\u5df2\u7ecf\u6620\u5c04\u4e3au8g2\u5e93,\u6240\u6709API\u5747\u4ee3\u7406\u5230u8g2,\u8bf7\u67e5\u9605u8g2\u5e93\u7684API\n", "prefix": "disp.init"}, "eink.init": {"body": "eink.init(${1:tp},${2:args},${3:spi_device})", "description": "eink.init(tp, args,spi_device) - eink\u663e\u793a\u5c4f\u521d\u59cb\u5316\n\u4f20\u5165\u503c\uff1a\nnumber eink\u7c7b\u578b\uff0c\u5f53\u524d\u652f\u6301\uff1ahttps://wiki.luatos.com/api/eink.html#id1\ntable \u9644\u52a0\u53c2\u6570,\u4e0e\u5177\u4f53\u8bbe\u5907\u6709\u5173\uff1a
    pin_busy\uff08busy\uff09
    port\uff1aspi\u7aef\u53e3,\u4f8b\u59820,1,2...\u5982\u679c\u4e3adevice\u65b9\u5f0f\u5219\u4e3a\"device\"
    pin_dc\uff1aeink\u6570\u636e/\u547d\u4ee4\u9009\u62e9\u5f15\u811a
    pin_rst\uff1aeink\u590d\u4f4d\u5f15\u811a\nuserdata spi\u8bbe\u5907,\u5f53port = \"device\"\u65f6\u6709\u6548\n\u4f8b\u5b50\uff1a\n-- \u521d\u59cb\u5316spi0\u7684eink.MODEL_4in2bc) \u6ce8\u610f:eink\u521d\u59cb\u5316\u4e4b\u524d\u9700\u8981\u5148\u521d\u59cb\u5316spi\nspi_eink = spi.deviceSetup(0,20,0,0,8,20000000,spi.MSB,1,1)\nlog.info(\"eink.init\",\neink.init(eink.MODEL_4in2bc,{port = \"device\",pin_dc = 17, pin_pwr = 7,pin_rst = 19,direction = 2,w = 160,h = 80,xoffset = 1,yoffset = 26},spi_eink))\n", "prefix": "eink.init"}, "eink.setup": {"body": "eink.setup(${1:full},${2:spiid},${3:pin_busy},${4:pin_reset},${5:pin_dc},${6:pin_cs})", "description": "eink.setup(full, spiid, pin_busy, pin_reset, pin_dc, pin_cs) - \u521d\u59cb\u5316eink\n\u4f20\u5165\u503c\uff1a\nint \u5168\u5c4f\u5237\u65b00,\u5c40\u90e8\u5237\u65b01,\u9ed8\u8ba4\u662f\u5168\u5c4f\u5237\u65b0\nint \u6240\u5728\u7684spi,\u9ed8\u8ba4\u662f0\nint Busy \u5fd9\u4fe1\u53f7\u7ba1\u811a\nint Reset \u590d\u4f4d\u7ba1\u811a\nint DC \u6570\u636e\u547d\u4ee4\u9009\u62e9\u7ba1\u811a\nint CS \u4f7f\u80fd\u7ba1\u811a\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n", "prefix": "eink.setup"}, "eink.sleep": {"body": "eink.sleep()", "description": "eink.sleep() - \u8fdb\u5165\u4f11\u7720\u6a21\u5f0f\uff0c\u518d\u6b21\u4f7f\u7528\u65f6\u9700\u8981\u91cd\u65b0\u521d\u59cb\u5316\n", "prefix": "eink.sleep"}, "eink.clear": {"body": "eink.clear(${1:color},${2:force})", "description": "eink.clear(color, force) - \u6e05\u9664\u7ed8\u56fe\u7f13\u51b2\u533a\uff0c\u9ed8\u8ba4\u4e0d\u4f1a\u9a6c\u4e0a\u5237\u65b0\u5230\u8bbe\u5907\n\u4f20\u5165\u503c\uff1a\nnumber color \u53ef\u9009\uff0c\u9ed8\u8ba41\u3002\u5237\u5c4f\u989c\u8272\nbool force \u53ef\u9009\uff0c\u9ed8\u8ba4false\u3002\u5982\u679c\u4e3atrue\u5219\u9a6c\u4e0a\u6e05\u5c4f\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n", "prefix": "eink.clear"}, "eink.setWin": {"body": "eink.setWin(${1:width},${2:height},${3:rotate})", "description": "eink.setWin(width, height, rotate) - \u8bbe\u7f6e\u7a97\u53e3\n\u4f20\u5165\u503c\uff1a\nint width \u5bbd\u5ea6\nint height \u9ad8\u5ea6\nint rotate \u663e\u793a\u65b9\u5411,0/1/2/3, \u76f8\u5f53\u4e8e\u65cb\u8f6c0\u5ea6/90\u5ea6/180\u5ea6/270\u5ea6\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n", "prefix": "eink.setWin"}, "eink.getWin": {"body": "eink.getWin()", "description": "eink.getWin() - \u83b7\u53d6\u7a97\u53e3\u4fe1\u606f\n\u8fd4\u56de\u503c\uff1a\nint width \u5bbd\nint height \u9ad8\nint rotate \u65cb\u8f6c\u65b9\u5411\n", "prefix": "eink.getWin"}, "eink.setFont": {"body": "eink.setFont(${1:font})", "description": "eink.setFont(font) - \u8bbe\u7f6e\u5b57\u4f53\n\u4f20\u5165\u503c\uff1a\nuserdata \u5b57\u4f53\n\u4f8b\u5b50\uff1a\n-- \u8bbe\u7f6e\u4e3a\u5b57\u4f53,\u5bf9\u4e4b\u540e\u7684print\u6709\u6548\neink.setFont(eink.font_opposansm12_chinese)\n", "prefix": "eink.setFont"}, "eink.print": {"body": "eink.print(${1:x},${2:y},${3:str},${4:colored})", "description": "eink.print(x, y, str, colored) - \u7ed8\u5236\u5b57\u7b26\u4e32\n\u4f20\u5165\u503c\uff1a\nint x\u5750\u6807\nint y\u5750\u6807\nstring \u5b57\u7b26\u4e32\nint \u989c\u8272, \u53ef\u4ee5\u662f0\u6216\u80051, \u9ed8\u8ba4\u662f0\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n-- \u5148\u8bbe\u7f6e\u5b57\u4f53, \u7136\u540e\u5199\u5b57\n-- \u53ef\u7528\u5b57\u4f53\u53d6\u51b3\u4e8e\u5177\u4f53\u7684\u56fa\u4ef6, \u5982\u679c\u6ca1\u6709\u4f60\u60f3\u8981\u7684\u5927\u5c0f,\u53ef\u4ee5\u4e91\u7f16\u8bd1\u4e00\u4efd\u81ea\u5b9a\u4e49\u56fa\u4ef6\n-- font_opposansm8_chinese\n-- font_opposansm10_chinese\n-- font_opposansm12_chinese\n-- font_opposansm14_chinese\n-- font_opposansm16_chinese\neink.setFont(eink.font_opposansm12_chinese)\neink.print(10, 20, \"LuatOS\")\n", "prefix": "eink.print"}, "eink.show": {"body": "eink.show(${1:x},${2:y},${3:noClear})", "description": "eink.show(x, y, noClear) - \u5c06\u7f13\u51b2\u533a\u56fe\u50cf\u8f93\u51fa\u5230\u5c4f\u5e55\n\u4f20\u5165\u503c\uff1a\nint x \u8f93\u51fa\u7684x\u5750\u6807,\u9ed8\u8ba40\nint y \u8f93\u51fa\u7684y\u5750\u6807,\u9ed8\u8ba40\nbool \u53ef\u9009\uff0c\u9ed8\u8ba4false\u3002\u5982\u679c\u4e3atrue\u5219\u4e0d\u8fdb\u884c\u6e05\u5c4f\uff0c\u76f4\u63a5\u5237\u4e0a\u65b0\u5185\u5bb9\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n", "prefix": "eink.show"}, "eink.draw": {"body": "eink.draw(${1:buff},${2:buff2},${3:noclear})", "description": "eink.draw(buff, buff2, noclear) - \u76f4\u63a5\u8f93\u51fa\u6570\u636e\u5230\u5c4f\u5e55,\u652f\u6301\u53cc\u8272\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nuserdata zbuff\u6307\u9488\nuserdata zbuff\u6307\u9488\nbool \u53ef\u9009\uff0c\u9ed8\u8ba4false\u3002\u5982\u679c\u4e3atrue\u5219\u4e0d\u8fdb\u884c\u6e05\u5c4f\uff0c\u76f4\u63a5\u5237\u4e0a\u65b0\u5185\u5bb9\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n", "prefix": "eink.draw"}, "eink.line": {"body": "eink.line(${1:x},${2:y},${3:x2},${4:y2},${5:colored})", "description": "eink.line(x, y, x2, y2, colored) - \u7f13\u51b2\u533a\u7ed8\u5236\u7ebf\n\u4f20\u5165\u503c\uff1a\nint \u8d77\u70b9x\u5750\u6807\nint \u8d77\u70b9y\u5750\u6807\nint \u7ec8\u70b9x\u5750\u6807\nint \u7ec8\u70b9y\u5750\u6807\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\neink.line(0, 0, 10, 20, 0)\n", "prefix": "eink.line"}, "eink.rect": {"body": "eink.rect(${1:x},${2:y},${3:x2},${4:y2},${5:colored},${6:fill})", "description": "eink.rect(x, y, x2, y2, colored, fill) - \u7f13\u51b2\u533a\u7ed8\u5236\u77e9\u5f62\n\u4f20\u5165\u503c\uff1a\nint \u5de6\u4e0a\u9876\u70b9x\u5750\u6807\nint \u5de6\u4e0a\u9876\u70b9y\u5750\u6807\nint \u53f3\u4e0b\u9876\u70b9x\u5750\u6807\nint \u53f3\u4e0b\u9876\u70b9y\u5750\u6807\nint \u9ed8\u8ba4\u662f0\nint \u662f\u5426\u586b\u5145,\u9ed8\u8ba4\u662f0,\u4e0d\u586b\u5145\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\neink.rect(0, 0, 10, 20)\neink.rect(0, 0, 10, 20,0, 1) -- Filled\n", "prefix": "eink.rect"}, "eink.circle": {"body": "eink.circle(${1:x},${2:y},${3:radius},${4:colored},${5:fill})", "description": "eink.circle(x, y, radius, colored, fill) - \u7f13\u51b2\u533a\u7ed8\u5236\u5706\u5f62\n\u4f20\u5165\u503c\uff1a\nint \u5706\u5fc3x\u5750\u6807\nint \u5706\u5fc3y\u5750\u6807\nint \u534a\u5f84\nint \u9ed8\u8ba4\u662f0\nint \u662f\u5426\u586b\u5145,\u9ed8\u8ba4\u662f0,\u4e0d\u586b\u5145\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\neink.circle(0, 0, 10)\neink.circle(0, 0, 10, 1, 1) -- Filled\n", "prefix": "eink.circle"}, "eink.qrcode": {"body": "eink.qrcode(${1:x},${2:y},${3:str},${4:size})", "description": "eink.qrcode(x, y, str, size) - \u7f13\u51b2\u533a\u7ed8\u5236QRCode\n\u4f20\u5165\u503c\uff1a\nint x\u5750\u6807\nint y\u5750\u6807\nstring \u4e8c\u7ef4\u7801\u7684\u5185\u5bb9\nint \u663e\u793a\u5927\u5c0f (\u6ce8\u610f:\u4e8c\u7ef4\u7801\u751f\u6210\u5927\u5c0f\u4e0e\u8981\u663e\u793a\u5185\u5bb9\u548c\u7ea0\u9519\u7b49\u7ea7\u6709\u5173,\u751f\u6210\u7248\u672c\u4e3a1-40(\u5bf9\u5e94 21x21 - 177x177)\u7684\u4e0d\u5b9a\u5927\u5c0f,\u5982\u679c\u548c\u8bbe\u7f6e\u5927\u5c0f\u4e0d\u540c\u4f1a\u81ea\u52a8\u5728\u6307\u5b9a\u7684\u533a\u57df\u4e2d\u95f4\u663e\u793a\u4e8c\u7ef4\u7801,\u5982\u4e8c\u7ef4\u7801\u672a\u663e\u793a\u8bf7\u67e5\u770b\u65e5\u5fd7\u63d0\u793a)\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n", "prefix": "eink.qrcode"}, "eink.bat": {"body": "eink.bat(${1:x},${2:y},${3:bat})", "description": "eink.bat(x, y, bat) - \u7f13\u51b2\u533a\u7ed8\u5236\u7535\u6c60\n\u4f20\u5165\u503c\uff1a\nint x\u5750\u6807\nint y\u5750\u6807\nint \u7535\u6c60\u7535\u538b,\u5355\u4f4d\u6beb\u4f0f\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n", "prefix": "eink.bat"}, "eink.weather_icon": {"body": "eink.weather_icon(${1:x},${2:y},${3:code})", "description": "eink.weather_icon(x, y, code) - \u7f13\u51b2\u533a\u7ed8\u5236\u5929\u6c14\u56fe\u6807\n\u4f20\u5165\u503c\uff1a\nint x\u5750\u6807\nint y\u5750\u6807\nint \u5929\u6c14\u4ee3\u53f7\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n", "prefix": "eink.weather_icon"}, "eink.model": {"body": "eink.model(${1:m})", "description": "eink.model(m) - \u8bbe\u7f6e\u58a8\u6c34\u5c4f\u9a71\u52a8\u578b\u53f7\n\u4f20\u5165\u503c\uff1a\nint \u578b\u53f7\u540d\u79f0, \u4f8b\u5982 eink.model(eink.MODEL_1in54_V2)\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n", "prefix": "eink.model"}, "eink.drawXbm": {"body": "eink.drawXbm(${1:x},${2:y},${3:w},${4:h},${5:data})", "description": "eink.drawXbm(x, y, w, h, data) - \u7ed8\u5236\u4f4d\u56fe\n\u4f20\u5165\u503c\uff1a\nint X\u5750\u6807\nint y\u5750\u6807\nint \u4f4d\u56fe\u5bbd\nint \u4f4d\u56fe\u9ad8\nint \u4f4d\u56fe\u6570\u636e,\u6bcf\u4e00\u4f4d\u4ee3\u8868\u4e00\u4e2a\u50cf\u7d20\n\u4f8b\u5b50\uff1a\n-- \u53d6\u6a21\u4f7f\u7528PCtoLCD2002\u8f6f\u4ef6\u5373\u53ef\n-- \u5728(0,0)\u4e3a\u5de6\u4e0a\u89d2,\u7ed8\u5236 16x16 \"\u4eca\" \u7684\u4f4d\u56fe\neink.drawXbm(0, 0, 16,16, string.char(\n 0x80,0x00,0x80,0x00,0x40,0x01,0x20,0x02,0x10,0x04,0x48,0x08,0x84,0x10,0x83,0x60,\n 0x00,0x00,0xF8,0x0F,0x00,0x08,0x00,0x04,0x00,0x04,0x00,0x02,0x00,0x01,0x80,0x00\n))\n", "prefix": "eink.drawXbm"}, "eink.setCtx": {"body": "eink.setCtx(${1:index})", "description": "eink.setCtx(index) - \u5207\u6362\u989c\u8272\u753b\u677f, \u9002\u5408\u591a\u8272\u58a8\u6c34\u5c4f\n\u4f20\u5165\u503c\uff1a\nint \u989c\u8272\u7d22\u5f15, \u9ed1\u8272\u4e3a0, \u7ea2\u8272\u4e3a1\n\u4f8b\u5b50\uff1a\n-- \u4ec5\u9002\u5408\u591a\u8272\u58a8\u6c34\u5c4f, \u5bf9\u5355\u8272\u58a8\u6c34\u5c4f(\u53ea\u6709\u9ed1\u767d)\u7684\u65e0\u6548\neink.setCtx(1)\n-- \u5207\u6362\u540e, \u6240\u6709drawXXX\u90fd\u4f1a\u64cd\u4f5c\u5728\u6307\u5b9a\u989c\u8272\u7684\u753b\u677f\n", "prefix": "eink.setCtx"}, "eink.async": {"body": "eink.async(${1:index})", "description": "eink.async(index) - \u5f02\u6b65\u65b9\u5f0f\uff0c\u4f7f\u7528\u6b64\u65b9\u5f0f\u9700\u8981\u5148 require(\"sysplus\") \u4e4b\u540e eink.clear().wait() eink.show().wait()\u8fdb\u884c\u5237\u5c4f\n\u4f20\u5165\u503c\uff1a\nint 1 \u4f7f\u7528\u5f02\u6b65\n\u4f8b\u5b50\uff1a\n eink.async(1)\n spi_eink = spi.deviceSetup(spi_id,pin_cs,0,0,8,20*1000*1000,spi.MSB,1,1)\n eink.init(eink.MODEL_1in54,\n {port = \"device\",pin_dc = pin_dc, pin_busy = pin_busy,pin_rst = pin_reset},\n spi_eink)\n eink.setWin(200, 200, 0)\n sys.wait(100)\n log.info(\"e-paper 1.54\", \"Testing Go\")\n eink.print(30, 20, \"LuatOS-AIR780E\",0x00)\n eink.show().wait()\n log.info(\"e-paper 1.54\", \"Testing End\")\n", "prefix": "eink.async"}, "errDump.dump": {"body": "errDump.dump(${1:zbuff},${2:type},${3:isDelete})", "description": "errDump.dump(zbuff, type, isDelete) - \u624b\u52a8\u8bfb\u53d6\u5f02\u5e38\u65e5\u5fd7\uff0c\u4e3b\u8981\u7528\u4e8e\u7528\u6237\u5c06\u65e5\u5fd7\u53d1\u9001\u7ed9\u81ea\u5df1\u7684\u670d\u52a1\u5668\u800c\u4e0d\u662fIOT\u5e73\u53f0\uff0c\u5982\u679c\u5728errDump.config\u914d\u7f6e\u4e86\u5468\u671f\u4e0a\u4f20\uff0c\u5219\u4e0d\u80fd\u4f7f\u7528\u672c\u51fd\u6570\n\u4f20\u5165\u503c\uff1a\nzbuff \u65e5\u5fd7\u4fe1\u606f\u7f13\u5b58\uff0c\u5982\u679c\u4e3anil\u5c31\u4e0d\u4f1a\u8bfb\u51fa\uff0c\u4e00\u822c\u5f53\nint \u65e5\u5fd7\u7c7b\u578b\uff0c\u76ee\u524d\u53ea\u6709errDump.TYPE_SYS\u548cerrDump.TYPE_USR\nboolean \u662f\u5426\u5220\u9664\u65e5\u5fd7\n\u8fd4\u56de\u503c\uff1a\nboolean true\u8868\u793a\u672c\u6b21\u8bfb\u53d6\u524d\u5e76\u6ca1\u6709\u5199\u5165\u6570\u636e\uff0cfalse\u53cd\u4e4b\uff0c\u5728\u5220\u9664\u65e5\u5fd7\u524d\uff0c\u6700\u597d\u518d\u8bfb\u4e00\u4e0b\u786e\u4fdd\u6ca1\u6709\u65b0\u7684\u6570\u636e\u5199\u5165\u4e86\n\u4f8b\u5b50\uff1a\nlocal result = errDump.dump(buff, errDump.TYPE_SYS, false) --\u8bfb\u51fa\u7cfb\u7edf\u8bb0\u5f55\u7684\u5f02\u5e38\u65e5\u5fd7\nlocal result = errDump.dump(nil, errDump.TYPE_SYS, true) --\u6e05\u9664\u7cfb\u7edf\u8bb0\u5f55\u7684\u5f02\u5e38\u65e5\u5fd7\n", "prefix": "errDump.dump"}, "errDump.record": {"body": "errDump.record(${1:string})", "description": "errDump.record(string) - \u5199\u5165\u7528\u6237\u7684\u5f02\u5e38\u65e5\u5fd7\uff0c\u6ce8\u610f\u6700\u5927\u53ea\u67094KB\uff0c\u8d85\u8fc7\u90e8\u5206\u65b0\u7684\u8986\u76d6\u65e7\u7684\uff0c\u5f00\u542f\u81ea\u52a8\u4e0a\u4f20\u540e\u4f1a\u4e0a\u4f20\u5230\u5408\u5b99IOT\u5e73\u53f0\n\u4f20\u5165\u503c\uff1a\nstring \u65e5\u5fd7\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\nerrDump.record(\"socket long time no connect\") --\u8bb0\u5f55\u4e0b\"socket long time no connect\"\n", "prefix": "errDump.record"}, "errDump.config": {"body": "errDump.config(${1:enable},${2:period},${3:user_flag},${4:custom_id})", "description": "errDump.config(enable, period, user_flag, custom_id) - \u914d\u7f6e\u5173\u952e\u65e5\u5fd7\u4e0a\u4f20IOT\u5e73\u53f0\uff0c\u8fd9\u91cc\u7684\u65e5\u5fd7\u5305\u62ec\u5f15\u8d77luavm\u5f02\u5e38\u9000\u51fa\u7684\u65e5\u5fd7\u548c\u7528\u6237\u901a\u8fc7record\u5199\u5165\u7684\u65e5\u5fd7\uff0c\u7c7b\u4f3c\u4e8eair\u7684errDump\n\u4f20\u5165\u503c\uff1a\nboolean \u662f\u5426\u542f\u7528\u8bb0\u5f55\u529f\u80fd\uff0cfalse\u7684\u8bdd\u5c06\u4e0d\u4f1a\u8bb0\u5f55\u4efb\u4f55\u65e5\u5fd7\nint \u5b9a\u65f6\u4e0a\u4f20\u5468\u671f\uff0c\u5355\u4f4d\u79d2\uff0c\u9ed8\u8ba4600\u79d2\uff0c\u8fd9\u4e2a\u662f\u81ea\u52a8\u4e0a\u4f20\u65f6\u5019\u540e\u7684\u91cd\u8bd5\u65f6\u95f4\u65f6\u95f4\uff0c\u5728\u5f00\u673a\u540e\u6216\u8005\u6709record\u64cd\u4f5c\u540e\u4f1a\u5f88\u5feb\u5c1d\u8bd5\u4e0a\u4f20\u5230\u5408\u5b99IOT\u5e73\u53f0\u4e00\u6b21\uff0c\u5982\u679c\u4e3a0\uff0c\u5219\u4e0d\u4f1a\u4e0a\u4f20\uff0c\u7531\u7528\u6237dump\u540e\u81ea\u5df1\u4e0a\u4f20\u81ea\u5df1\u7684\u5e73\u53f0\nstring \u7528\u6237\u7684\u7279\u6b8a\u6807\u8bc6\uff0c\u53ef\u4ee5\u4e3a\u7a7a\nstring \u8bbe\u5907\u8bc6\u522b\u53f7, 4G\u8bbe\u5907\u9ed8\u8ba4\u662fimei,\u5176\u4ed6\u8bbe\u5907\u9ed8\u8ba4\u662fmcu.unique_id\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\nerrDump.config(true, 3600, \"12345678\")\t--\u4e00\u4e2a\u5c0f\u65f6\u5c1d\u8bd5\u4e0a\u6b21\u4e00\u6b21\uff0c\u4e0a\u4f20\u65f6\u4f1a\u5728imei\u540e\u9644\u52a0\u4e0a12345678\nerrDump.config(false)\t--\u5173\u95ed\u8bb0\u5f55\u529f\u80fd\uff0c\u4e0d\u518d\u4e0a\u4f20\nerrDump.config(true, 0)\t--\u8bb0\u5f55\uff0c\u4f46\u662f\u4e0d\u4f1a\u4e3b\u52a8\u4e0a\u4f20\uff0c\u7531\u7528\u6237\u5b9e\u73b0\u4e0a\u4f20\u529f\u80fd\n-- 2023.09.22\u65b0\u589ecustom_id\u53c2\u6570\nerrDump.config(true, 3600, nil, \"ABC\")\t--\u4e00\u4e2a\u5c0f\u65f6\u5c1d\u8bd5\u4e0a\u6b21\u4e00\u6b21\uff0c\u4e0a\u4f20\u65f6\u4f7f\u7528\u81ea\u5b9a\u4e49\u7684\u8bbe\u5907\u8bc6\u522b\u53f7ABC\n", "prefix": "errDump.config"}, "fastlz.compress": {"body": "fastlz.compress(${1:data},${2:level})", "description": "fastlz.compress(data, level) - \u5feb\u901f\u538b\u7f29\n\u4f20\u5165\u503c\uff1a\nstring \u5f85\u538b\u7f29\u7684\u6570\u636e, \u5c11\u4e8e400\u5b57\u8282\u7684\u6570\u636e\u4e0d\u5efa\u8bae\u538b\u7f29, \u4e14\u538b\u7f29\u540e\u7684\u6570\u636e\u4e0d\u80fd\u5927\u4e8e32k\nint \u538b\u7f29\u7ea7\u522b,\u9ed8\u8ba41, \u53ef\u90091\u6216\u80052, 2\u7684\u538b\u7f29\u6bd4\u66f4\u9ad8(\u6709\u65f6\u5019)\n\u8fd4\u56de\u503c\uff1a\nstring \u82e5\u538b\u7f29\u6210\u529f,\u8fd4\u56de\u6570\u636e\u5b57\u7b26\u4e32, \u5426\u5219\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\n-- \u6ce8\u610f, \u538b\u7f29\u8fc7\u7a0b\u7684\u5185\u5b58\u6d88\u8017\u5982\u4e0b\n-- \u7cfb\u7edf\u5185\u5b58, \u56fa\u5b9a32k\n-- lua\u5185\u5b58, \u539f\u59cb\u6570\u636e\u7684\u5927\u5c0f\u76841.05\u500d,\u6700\u5c0f\u5360\u75281024\u5b57\u8282.\n", "prefix": "fastlz.compress"}, "fastlz.uncompress": {"body": "fastlz.uncompress(${1:data},${2:maxout})", "description": "fastlz.uncompress(data, maxout) - \u5feb\u901f\u89e3\u538b\n\u4f20\u5165\u503c\uff1a\nstring \u5f85\u89e3\u538b\u7684\u6570\u636e\nint \u89e3\u538b\u540e\u7684\u6700\u5927\u5927\u5c0f, \u9ed8\u8ba4\u662f4k, \u53ef\u6309\u9700\u8c03\u6574\n\u8fd4\u56de\u503c\uff1a\nstring \u82e5\u89e3\u538b\u6210\u529f,\u8fd4\u56de\u6570\u636e\u5b57\u7b26\u4e32, \u5426\u5219\u8fd4\u56denil\n", "prefix": "fastlz.uncompress"}, "fatfs.mount": {"body": "fatfs.mount(${1:mode},${2:mount_point},${3:spiid_or_spidevice},${4:spi_cs},${5:spi_speed},${6:power_pin},${7:power_on_delay},${8:auto_format})", "description": "fatfs.mount(mode,mount_point, spiid_or_spidevice, spi_cs, spi_speed, power_pin, power_on_delay, auto_format) - \u6302\u8f7dfatfs\n\u4f20\u5165\u503c\uff1a\nint fatfs\u6a21\u5f0f,\u53ef\u9009fatfs.SPI,fatfs.SDIO,fatfs.RAM,fatfs.USB\nstring \u865a\u62df\u6587\u4ef6\u7cfb\u7edf\u7684\u6302\u8f7d\u70b9, \u9ed8\u8ba4\u662f /fatfs\nint \u4f20\u5165spi device\u6307\u9488,\u6216\u8005spi\u7684id,\u6216\u8005sdio\u7684id\nint \u7247\u9009\u811a\u7684GPIO \u53f7, spi\u6a21\u5f0f\u6709\u6548,\u82e5\u524d\u4e00\u4e2a\u53c2\u6570\u4f20\u7684\u662fspi device,\u8fd9\u4e2a\u53c2\u6570\u5c31\u4e0d\u9700\u8981\u4f20\nint SPI\u6700\u9ad8\u901f\u5ea6,\u9ed8\u8ba410M, \u82e5\u524d2\u4e2a\u53c2\u6570\u4f20\u7684\u662fspi device,\u8fd9\u4e2a\u53c2\u6570\u5c31\u4e0d\u9700\u8981\u4f20\nint TF\u5361\u7535\u6e90\u63a7\u5236\u811a,TF\u5361\u521d\u59cb\u524d\u5148\u62c9\u4f4e\u590d\u4f4d\u518d\u62c9\u9ad8,\u5982\u679c\u6ca1\u6709,\u6216\u8005\u662f\u5185\u7f6e\u7535\u6e90\u63a7\u5236\u65b9\u5f0f,\u8fd9\u4e2a\u53c2\u6570\u5c31\u4e0d\u9700\u8981\u4f20\nint TF\u5361\u7535\u6e90\u590d\u4f4d\u8fc7\u7a0b\u65f6\u95f4,\u5355\u4f4dms,\u9ed8\u8ba4\u503c\u662f1\nbool \u6302\u8f7d\u5931\u8d25\u662f\u5426\u5c1d\u8bd5\u683c\u5f0f\u5316,\u9ed8\u8ba4\u662ftrue,\u5373\u81ea\u52a8\u683c\u5f0f\u5316. \u672c\u53c2\u6570\u57282023.8.16\u6dfb\u52a0\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue, \u5426\u5219\u8fd4\u56denil\u6216\u8005false\nstring \u5931\u8d25\u7684\u539f\u56e0\n\u4f8b\u5b50\uff1a\n-- \u65b9\u6cd51, \u4f7f\u7528SPI\u6a21\u5f0f\n local spiId = 2\n local result = spi.setup(\n spiId,--\u4e32\u53e3id\n 255, -- \u4e0d\u4f7f\u7528\u9ed8\u8ba4CS\u811a\n 0,--CPHA\n 0,--CPOL\n 8,--\u6570\u636e\u5bbd\u5ea6\n 400*1000 -- \u521d\u59cb\u5316\u65f6\u4f7f\u7528\u8f83\u4f4e\u7684\u9891\u7387\n )\n local TF_CS = pin.PB3\n gpio.setup(TF_CS, 1)\n --fatfs.debug(1) -- \u82e5\u6302\u8f7d\u5931\u8d25,\u53ef\u4ee5\u5c1d\u8bd5\u6253\u5f00\u8c03\u8bd5\u4fe1\u606f,\u67e5\u627e\u539f\u56e0\n\t-- \u63d0\u9192, \u82e5TF/SD\u6a21\u5757\u5e26\u7535\u5e73\u8f6c\u6362, \u901a\u5e38\u4e0d\u652f\u630110M\u4ee5\u4e0a\u7684\u6ce2\u7279\u7387!!\n fatfs.mount(fatfs.SPI,\"SD\", spiId, TF_CS, 24000000)\n local data, err = fatfs.getfree(\"SD\")\n if data then\n log.info(\"fatfs\", \"getfree\", json.encode(data))\n else\n log.info(\"fatfs\", \"err\", err)\n end\n\t-- \u5f80\u4e0b\u7684\u64cd\u4f5c, \u4f7f\u7528 io.open(\"/sd/xxx\", \"w+\") \u7b49io\u5e93\u7684API\u5c31\u53ef\u4ee5\u4e86\n", "prefix": "fatfs.mount"}, "fatfs.getfree": {"body": "fatfs.getfree(${1:mount_point})", "description": "fatfs.getfree(mount_point) - \u83b7\u53d6\u53ef\u7528\u7a7a\u95f4\u4fe1\u606f\n\u4f20\u5165\u503c\uff1a\nstring \u6302\u8f7d\u70b9, \u9700\u8981\u8ddffatfs.mount\u4f20\u5165\u7684\u503c\u4e00\u81f4\n\u8fd4\u56de\u503c\uff1a\ntable \u82e5\u6210\u529f\u4f1a\u8fd4\u56detable,\u5426\u5219\u8fd4\u56denil\nint \u5bfc\u81f4\u5931\u8d25\u7684\u5e95\u5c42\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n-- table\u5305\u542b\u7684\u5185\u5bb9\u6709\n-- total_sectors \u603b\u6247\u533a\u6570\u91cf\n-- free_sectors \u7a7a\u95f2\u6247\u533a\u6570\u91cf\n-- total_kb \u603b\u5b57\u8282\u6570,\u5355\u4f4dkb\n-- free_kb \u7a7a\u95f2\u5b57\u8282\u6570, \u5355\u4f4dkb\n-- \u6ce8\u610f,\u5f53\u524d\u6247\u533a\u5927\u5c0f\u56fa\u5b9a\u5728512\u5b57\u8282\n\n local data, err = fatfs.getfree(\"SD\")\n if data then\n log.info(\"fatfs\", \"getfree\", json.encode(data))\n else\n log.info(\"fatfs\", \"err\", err)\n end\n", "prefix": "fatfs.getfree"}, "fatfs.debug": {"body": "fatfs.debug(${1:value})", "description": "fatfs.debug(value) - \u8bbe\u7f6e\u8c03\u8bd5\u6a21\u5f0f\n\u4f20\u5165\u503c\uff1a\nbool \u662f\u5426\u8fdb\u5165\u8c03\u8bd5\u6a21\u5f0f,true\u4ee3\u8868\u8fdb\u5165\u8c03\u8bd5\u6a21\u5f0f,\u589e\u52a0\u8c03\u8bd5\u65e5\u5fd7\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n", "prefix": "fatfs.debug"}, "fdb.kvdb_init": {"body": "fdb.kvdb_init(${1:name},${2:partition})", "description": "fdb.kvdb_init(name, partition) - \u521d\u59cb\u5316kv\u6570\u636e\u5e93\n\u4f20\u5165\u503c\uff1a\nstring \u6570\u636e\u5e93\u540d,\u5f53\u524d\u4ec5\u652f\u6301env\nstring FAL\u5206\u533a\u540d,\u5f53\u524d\u4ec5\u652f\u6301onchip_fdb\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- fdb\u5e93\u57fa\u4e8e flashdb , \u518d\u6b21\u8868\u793a\u611f\u8c22.\nif fdb.kvdb_init(\"env\", \"onchip_fdb\") then\n log.info(\"fdb\", \"kv\u6570\u636e\u5e93\u521d\u59cb\u5316\u6210\u529f\")\nend\n\n-- \u5173\u4e8e\u6e05\u7a7afdb\u5e93\n-- \u4e0b\u8f7d\u5de5\u5177\u662f\u6ca1\u6709\u63d0\u4f9b\u76f4\u63a5\u6e05\u9664fdb\u6570\u636e\u7684\u9014\u5f84\u7684, \u4f46\u6709\u6709\u529e\u6cd5\u89e3\u51b3\n-- \u5199\u4e00\u4e2amain.lua, \u6267\u884c fdb.kvdb_init \u540e \u6267\u884c fdb.clear() \u5373\u53ef\u5168\u6e05fdb\u6570\u636e.\n", "prefix": "fdb.kvdb_init"}, "fdb.kv_set": {"body": "fdb.kv_set(${1:key},${2:value})", "description": "fdb.kv_set(key, value) - \u8bbe\u7f6e\u4e00\u5bf9kv\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nstring key\u7684\u540d\u79f0,\u5fc5\u586b,\u4e0d\u80fd\u7a7a\u5b57\u7b26\u4e32\nstring \u7528\u6237\u6570\u636e,\u5fc5\u586b,\u4e0d\u80fdnil, \u652f\u6301\u5b57\u7b26\u4e32/\u6570\u503c/table/\u5e03\u5c14\u503c, \u6570\u636e\u957f\u5ea6\u6700\u5927255\u5b57\u8282\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\nnumber \u7b2c\u4e8c\u4e2a\u4e3a\u8fd4\u56de\u4e3aflashdb\u7684fdb_kv_set_blob\u8fd4\u56de\u8be6\u7ec6\u72b6\u6001,0\uff1a\u65e0\u9519\u8bef 1:\u64e6\u9664\u9519\u8bef 2:\u8bfb\u9519\u8bef 3:\u5199\u9519\u8bef 4:\u672a\u627e\u5230 5:kv\u540d\u5b57\u9519\u8bef 6:kv\u540d\u5b57\u5b58\u5728 7:\u5df2\u4fdd\u5b58 8:\u521d\u59cb\u5316\u9519\u8bef\n\u4f8b\u5b50\uff1a\nif fdb.kvdb_init(\"env\", \"onchip_fdb\") then\n log.info(\"fdb\", fdb.kv_set(\"wendal\", \"goodgoodstudy\"))\nend\n", "prefix": "fdb.kv_set"}, "fdb.kv_get": {"body": "fdb.kv_get(${1:key},${2:skey})", "description": "fdb.kv_get(key, skey) - \u6839\u636ekey\u83b7\u53d6\u5bf9\u5e94\u7684\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nstring key\u7684\u540d\u79f0,\u5fc5\u586b,\u4e0d\u80fd\u7a7a\u5b57\u7b26\u4e32\nstring \u53ef\u9009\u7684\u6b21\u7ea7key,\u4ec5\u5f53\u539f\u59cb\u503c\u4e3atable\u65f6\u6709\u6548,\u76f8\u5f53\u4e8e fdb.kv_get(key)[skey]\n\u8fd4\u56de\u503c\uff1a\nany \u5b58\u5728\u5219\u8fd4\u56de\u6570\u636e,\u5426\u5219\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\nif fdb.kvdb_init(\"env\", \"onchip_fdb\") then\n log.info(\"fdb\", fdb.kv_get(\"wendal\"))\nend\n", "prefix": "fdb.kv_get"}, "fdb.kv_del": {"body": "fdb.kv_del(${1:key})", "description": "fdb.kv_del(key) - \u6839\u636ekey\u5220\u9664\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nstring key\u7684\u540d\u79f0,\u5fc5\u586b,\u4e0d\u80fd\u7a7a\u5b57\u7b26\u4e32\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\nif fdb.kvdb_init(\"env\", \"onchip_fdb\") then\n log.info(\"fdb\", fdb.kv_del(\"wendal\"))\nend\n", "prefix": "fdb.kv_del"}, "fdb.kv_clr": {"body": "fdb.kv_clr()", "description": "fdb.kv_clr() - \u6e05\u7a7a\u6574\u4e2akv\u6570\u636e\u5e93\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- \u6e05\u7a7a\nfdb.kv_clr()\n", "prefix": "fdb.kv_clr"}, "fdb.kv_iter": {"body": "fdb.kv_iter(${1:iter})", "description": "fdb.kv_iter(iter) - kv\u8fed\u4ee3\u5668\u83b7\u53d6\u4e0b\u4e00\u4e2akey\n\u4f20\u5165\u503c\uff1a\nuserdata fdb.kv_iter()\u8fd4\u56de\u7684\u6307\u9488\n\u8fd4\u56de\u503c\uff1a\nstring \u6210\u529f\u8fd4\u56de\u5b57\u7b26\u4e32key\u503c, \u5426\u5219\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\n-- \u6e05\u7a7a\nlocal iter = fdb.kv_iter()\nif iter then\n while 1 do\n local k = fdb.kv_next(iter)\n if not k then\n break\n end\n log.info(\"fdb\", k, \"value\", fdb.kv_get(k))\n end\nend\n", "prefix": "fdb.kv_iter"}, "fdb.kv_stat": {"body": "fdb.kv_stat()", "description": "fdb.kv_stat() - \u83b7\u53d6kv\u6570\u636e\u5e93\u72b6\u6001\n\u8fd4\u56de\u503c\uff1a\nint \u5df2\u4f7f\u7528\u7684\u7a7a\u95f4,\u5355\u4f4d\u5b57\u8282\nint \u603b\u53ef\u7528\u7a7a\u95f4, \u5355\u4f4d\u5b57\u8282\nint \u603bkv\u952e\u503c\u5bf9\u6570\u91cf, \u5355\u4f4d\u4e2a\n\u4f8b\u5b50\uff1a\n-- \u672cAPI\u4e8e2022.07.23 \u6dfb\u52a0\nlocal used,maxs,kv_count = fdb.kv_stat()\nlog.info(\"fdb\", \"kv\", used,maxs,kv_count)\n", "prefix": "fdb.kv_stat"}, "fonts.list": {"body": "fonts.list(${1:tp})", "description": "fonts.list(tp) - \u8fd4\u56de\u56fa\u4ef6\u652f\u6301\u7684\u5b57\u4f53\u5217\u8868\n\u4f20\u5165\u503c\uff1a\nstring \u7c7b\u578b, \u9ed8\u8ba4 u8g2, \u8fd8\u53ef\u4ee5\u662flvgl\n\u8fd4\u56de\u503c\uff1a\ntable \u5b57\u4f53\u5217\u8868\n\u4f8b\u5b50\uff1a\n-- API\u65b0\u589e\u4e8e2022-07-12\nif fonts.list then\n log.info(\"fonts\", \"u8g2\", json.encode(fonts.list(\"u8g2\")))\nend\n", "prefix": "fonts.list"}, "fonts.u8g2_get": {"body": "fonts.u8g2_get(${1:name},${2:tp})", "description": "fonts.u8g2_get(name, tp) - \u83b7\u53d6\u5b57\u4f53\n\u4f20\u5165\u503c\uff1a\nstring \u5b57\u4f53\u540d\u79f0, \u4f8b\u5982opposansm8_chinese unifont_t_symbols\nstring \u7c7b\u578b, \u9ed8\u8ba4 u8g2, \u8fd8\u53ef\u4ee5\u662flvgl\n\u8fd4\u56de\u503c\uff1a\nuserdata \u82e5\u5b57\u4f53\u5b58\u653e,\u8fd4\u56de\u5b57\u4f53\u6307\u9488, \u5426\u5219\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\noppo_8 = fonts.get(\"opposansm8_chinese\", \"u8g2\")\nif oppo_8 then\n u8g2.SetFont(oppo_8)\nelse\n log.warn(\"fonts\", \"no such font opposansm8_chinese\")\nend\n-- \u82e5\u4f7f\u7528\u4e91\u7f16\u8bd1\u7684\u81ea\u5b9a\u4e49\u5b57\u5e93, \u4f7f\u7528\u65b9\u5f0f\u5982\u4e0b\noppo_8 = fonts.get(\"oppo_bold_8\", \"u8g2\") -- oppo_bold_8 \u662f\u4e91\u7f16\u8bd1\u754c\u9762\u7684\u5b57\u5e93\u547d\u540d\nif oppo_8 then\n u8g2.SetFont(oppo_8)\nelse\n log.warn(\"fonts\", \"no such font opposansm8_chinese\")\nend\n", "prefix": "fonts.u8g2_get"}, "fonts.u8g2_load": {"body": "fonts.u8g2_load(${1:path},${2:path})", "description": "fonts.u8g2_load(path, path) - \u4ece\u6587\u4ef6\u52a0\u8f7d\u5b57\u4f53\n\u4f20\u5165\u503c\uff1a\nstring \u5b57\u4f53\u8def\u5f84, \u4f8b\u5982 /luadb/abc.bin\nstring \u7c7b\u578b, \u9ed8\u8ba4 u8g2. \u4e5f\u652f\u6301lvgl\n\u8fd4\u56de\u503c\uff1a\nuserdata \u82e5\u5b57\u4f53\u5b58\u653e,\u8fd4\u56de\u5b57\u4f53\u6307\u9488, \u5426\u5219\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\n-- API\u65b0\u589e\u4e8e2022-07-11\n-- \u63d0\u9192: \u82e5\u6587\u4ef6\u4f4d\u4e8e/luadb\u4e0b, \u4e0d\u9700\u8981\u5360\u7528\u5185\u5b58\n-- \u82e5\u6587\u4ef6\u5904\u4e8e\u5176\u4ed6\u8def\u5f84, \u4f8b\u5982tf/sd\u5361, spi flash, \u4f1a\u81ea\u52a8\u52a0\u8f7d\u5230\u5185\u5b58, \u6d88\u8017lua vm\u7684\u5185\u5b58\u7a7a\u95f4\n-- \u52a0\u8f7d\u540e\u8bf7\u9002\u5f53\u5f15\u7528, \u4e0d\u5fc5\u53cd\u590d\u52a0\u8f7d\u540c\u4e00\u4e2a\u5b57\u4f53\u6587\u4ef6\noppo12 = fonts.load(\"/luadb/oppo12.bin\")\nif oppo12 then\n u8g2.SetFont(oppo12)\nelse\n log.warn(\"fonts\", \"no such font file oppo12.bin\")\nend\n", "prefix": "fonts.u8g2_load"}, "fota.init": {"body": "fota.init(${1:storge_location},${2:len},${3:param1})", "description": "fota.init(storge_location, len, param1) - \u521d\u59cb\u5316fota\u6d41\u7a0b\n\u4f20\u5165\u503c\uff1a\nint/string fota\u6570\u636e\u5b58\u50a8\u7684\u8d77\u59cb\u4f4d\u7f6e
    \u5982\u679c\u662fint\uff0c\u5219\u662f\u7531\u82af\u7247\u5e73\u53f0\u5177\u4f53\u5224\u65ad
    \u5982\u679c\u662fstring\uff0c\u5219\u5b58\u50a8\u5728\u6587\u4ef6\u7cfb\u7edf\u4e2d
    \u5982\u679c\u4e3anil\uff0c\u5219\u7531\u5e95\u5c42\u51b3\u5b9a\u5b58\u50a8\u4f4d\u7f6e\nint \u6570\u636e\u5b58\u50a8\u7684\u6700\u5927\u7a7a\u95f4\nuserdata param1\uff0c\u5982\u679c\u6570\u636e\u5b58\u50a8\u5728spiflash\u65f6,\u4e3aspi_device\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u8fd4\u56detrue, \u5931\u8d25\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- \u521d\u59cb\u5316fota\u6d41\u7a0b\nlocal result = fota.init(0, 0x00300000, spi_device)\t--\u7531\u4e8e105\u7684flash\u4ece0x01000000\u5f00\u59cb\uff0c\u6240\u4ee50\u5c31\u662f\u5916\u90e8spiflash\nlocal result = fota.init()\t--ec618\u4f7f\u7528\u56fa\u5b9a\u5185\u90e8\u5730\u5740\uff0c\u6240\u4ee5\u4e0d\u9700\u8981\u53c2\u6570\u4e86\n", "prefix": "fota.init"}, "fota.wait": {"body": "fota.wait()", "description": "fota.wait() - \u7b49\u5f85\u5e95\u5c42fota\u6d41\u7a0b\u51c6\u5907\u597d\n\u4f20\u5165\u503c\uff1a\nboolean \u662f\u5426\u5b8c\u6574\u8d70\u5b8c\u6d41\u7a0b\uff0ctrue \u8868\u793a\u6b63\u786e\u8d70\u5b8c\u6d41\u7a0b\u4e86\n\u8fd4\u56de\u503c\uff1a\nboolean \u51c6\u5907\u597d\u8fd4\u56detrue\n\u4f8b\u5b50\uff1a\nlocal isDone = fota.wait()\n", "prefix": "fota.wait"}, "fota.run": {"body": "fota.run(${1:buff})", "description": "fota.run(buff) - \u5199\u5165fota\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nzbuff/string fota\u6570\u636e\uff0c\u5c3d\u91cf\u7528zbuff\n\u8fd4\u56de\u503c\uff1a\nboolean \u6709\u5f02\u5e38\u8fd4\u56defalse\uff0c\u65e0\u5f02\u5e38\u8fd4\u56detrue\nboolean \u63a5\u6536\u5230\u6700\u540e\u4e00\u5757\u8fd4\u56detrue\nint \u8fd8\u672a\u5199\u5165\u7684\u6570\u636e\u91cf\uff0c\u8d85\u8fc764K\u5fc5\u987b\u505a\u7b49\u5f85\n\u4f8b\u5b50\uff1a\nlocal result, isDone, cache = fota.run(buf) -- \u5199\u5165fota\u6d41\u7a0b\n\n-- \u63d0\u793a: \uff0c\u5982\u679c\u4f20\u5165\u7684\u662fzbuff\uff0c\u5199\u5165\u6210\u529f\u540e\uff0c\u8bf7\u81ea\u884c\u6e05\u7a7azbuff\u5185\u7684\u6570\u636e\n", "prefix": "fota.run"}, "fota.file": {"body": "fota.file(${1:path})", "description": "fota.file(path) - \u4ece\u6307\u5b9a\u6587\u4ef6\u8bfb\u53d6fota\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nstring \u6587\u4ef6\u8def\u5f84\n\u8fd4\u56de\u503c\uff1a\nboolean \u6709\u5f02\u5e38\u8fd4\u56defalse\uff0c\u65e0\u5f02\u5e38\u8fd4\u56detrue\nboolean \u63a5\u6536\u5230\u6700\u540e\u4e00\u5757\u8fd4\u56detrue\nint \u8fd8\u672a\u5199\u5165\u7684\u6570\u636e\u91cf\uff0c\u8d85\u8fc764K\u5fc5\u987b\u505a\u7b49\u5f85\n\u4f8b\u5b50\uff1a\nlocal result, isDone, cache = fota.file(\"/xxx.bin\") -- \u5199\u5165fota\u6d41\u7a0b\n-- \u672cAPI\u4e8e2023.03.23 \u6dfb\u52a0\n", "prefix": "fota.file"}, "fota.isDone": {"body": "fota.isDone()", "description": "fota.isDone() - \u7b49\u5f85\u5e95\u5c42fota\u6d41\u7a0b\u5b8c\u6210\n\u8fd4\u56de\u503c\uff1a\nboolean \u6709\u5f02\u5e38\u8fd4\u56defalse\uff0c\u65e0\u5f02\u5e38\u8fd4\u56detrue\nboolean \u5199\u5165\u5230\u6700\u540e\u4e00\u5757\u8fd4\u56detrue\n\u4f8b\u5b50\uff1a\nlocal result, isDone = fota.isDone()\n", "prefix": "fota.isDone"}, "fota.finish": {"body": "fota.finish(${1:is_ok})", "description": "fota.finish(is_ok) - \u7ed3\u675ffota\u6d41\u7a0b\n\u4f20\u5165\u503c\uff1a\nboolean \u662f\u5426\u5b8c\u6574\u8d70\u5b8c\u6d41\u7a0b\uff0ctrue \u8868\u793a\u6b63\u786e\u8d70\u5b8c\u6d41\u7a0b\u4e86\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u8fd4\u56detrue, \u5931\u8d25\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- \u7ed3\u675ffota\u6d41\u7a0b\nlocal result = fota.finish(true)\n", "prefix": "fota.finish"}, "fs.fsstat": {"body": "fs.fsstat(${1:path})", "description": "fs.fsstat(path) - \u83b7\u53d6\u6587\u4ef6\u7cfb\u7edf\u4fe1\u606f\n\u4f20\u5165\u503c\uff1a\nstring \u8def\u5f84,\u9ed8\u8ba4\"/\",\u53ef\u9009\n\u8fd4\u56de\u503c\uff1a\nboolean \u83b7\u53d6\u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\nint \u603b\u7684block\u6570\u91cf\nint \u5df2\u4f7f\u7528\u7684block\u6570\u91cf\nint block\u7684\u5927\u5c0f,\u5355\u4f4d\u5b57\u8282\nstring \u6587\u4ef6\u7cfb\u7edf\u7c7b\u578b,\u4f8b\u5982lfs\u4ee3\u8868littlefs\n\u4f8b\u5b50\uff1a\n-- \u6253\u5370\u6839\u5206\u533a\u7684\u4fe1\u606f\nlog.info(\"fsstat\", fs.fsstat(\"/\"))\n", "prefix": "fs.fsstat"}, "fs.fsize": {"body": "fs.fsize(${1:path})", "description": "fs.fsize(path) - \u83b7\u53d6\u6587\u4ef6\u5927\u5c0f\n\u4f20\u5165\u503c\uff1a\nstring \u6587\u4ef6\u8def\u5f84\n\u8fd4\u56de\u503c\uff1a\nint \u6587\u4ef6\u5927\u5c0f,\u82e5\u83b7\u53d6\u5931\u8d25\u4f1a\u8fd4\u56de0\n\u4f8b\u5b50\uff1a\n-- \u6253\u5370main.luac\u7684\u5927\u5c0f\nlog.info(\"fsize\", fs.fsize(\"/main.luac\"))\n", "prefix": "fs.fsize"}, "fskv.init": {"body": "fskv.init()", "description": "fskv.init() - \u521d\u59cb\u5316kv\u6570\u636e\u5e93\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\nif fskv.init() then\n log.info(\"fdb\", \"kv\u6570\u636e\u5e93\u521d\u59cb\u5316\u6210\u529f\")\nend\n\n-- \u5173\u4e8e\u6e05\u7a7afdb\u5e93\n-- \u4e0b\u8f7d\u5de5\u5177\u662f\u6ca1\u6709\u63d0\u4f9b\u76f4\u63a5\u6e05\u9664fdb\u6570\u636e\u7684\u9014\u5f84\u7684, \u4f46\u6709\u529e\u6cd5\u89e3\u51b3\n-- \u5199\u4e00\u4e2amain.lua, \u6267\u884c fskv.kvdb_init \u540e \u6267\u884c fskv.clear() \u5373\u53ef\u5168\u6e05fdb\u6570\u636e.\n", "prefix": "fskv.init"}, "fskv.set": {"body": "fskv.set(${1:key},${2:value})", "description": "fskv.set(key, value) - \u8bbe\u7f6e\u4e00\u5bf9kv\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nstring key\u7684\u540d\u79f0,\u5fc5\u586b,\u4e0d\u80fd\u7a7a\u5b57\u7b26\u4e32\nstring \u7528\u6237\u6570\u636e,\u5fc5\u586b,\u4e0d\u80fdnil, \u652f\u6301\u5b57\u7b26\u4e32/\u6570\u503c/table/\u5e03\u5c14\u503c, \u6570\u636e\u957f\u5ea6\u6700\u59274095\u5b57\u8282\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- \u8bbe\u7f6e\u6570\u636e, \u5b57\u7b26\u4e32,\u6570\u503c,table,\u5e03\u5c14\u503c,\u5747\u53ef\n-- \u4f46\u4e0d\u53ef\u4ee5\u662fnil, function, userdata, task\nlog.info(\"fdb\", fskv.set(\"wendal\", \"goodgoodstudy\"))\nlog.info(\"fdb\", fskv.set(\"upgrade\", true))\nlog.info(\"fdb\", fskv.set(\"timer\", 1))\nlog.info(\"fdb\", fskv.set(\"bigd\", {name=\"wendal\",age=123}))\n", "prefix": "fskv.set"}, "fskv.sett": {"body": "fskv.sett(${1:key},${2:skey},${3:value})", "description": "fskv.sett(key, skey, value) - \u8bbe\u7f6etable\u5185\u7684\u952e\u503c\u5bf9\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nstring key\u7684\u540d\u79f0,\u5fc5\u586b,\u4e0d\u80fd\u7a7a\u5b57\u7b26\u4e32\nstring table\u7684key\u540d\u79f0, \u5fc5\u586b, \u4e0d\u80fd\u662f\u7a7a\u5b57\u7b26\u4e32\nstring \u7528\u6237\u6570\u636e,\u5fc5\u586b,\u652f\u6301\u5b57\u7b26\u4e32/\u6570\u503c/table/\u5e03\u5c14\u503c, \u6570\u636e\u957f\u5ea6\u6700\u59274095\u5b57\u8282\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse/nil\n\u4f8b\u5b50\uff1a\n-- \u672cAPI\u57282023.7.26\u65b0\u589e,\u6ce8\u610f\u4e0eset\u51fd\u6570\u533a\u522b\n-- \u8bbe\u7f6e\u6570\u636e, \u5b57\u7b26\u4e32,\u6570\u503c,table,\u5e03\u5c14\u503c,\u5747\u53ef\n-- \u4f46\u4e0d\u53ef\u4ee5\u662ffunction, userdata, task\nlog.info(\"fdb\", fskv.sett(\"mytable\", \"wendal\", \"goodgoodstudy\"))\nlog.info(\"fdb\", fskv.sett(\"mytable\", \"upgrade\", true))\nlog.info(\"fdb\", fskv.sett(\"mytable\", \"timer\", 1))\nlog.info(\"fdb\", fskv.sett(\"mytable\", \"bigd\", {name=\"wendal\",age=123}))\n\n-- \u4e0b\u5217\u8bed\u53e5\u5c06\u6253\u5370\u51fa4\u4e2a\u5143\u7d20\u7684table\nlog.info(\"fdb\", fskv.get(\"mytable\"), json.encode(fskv.get(\"mytable\")))\n-- \u6ce8\u610f: \u5982\u679ckey\u4e0d\u5b58\u5728, \u6216\u8005\u539f\u672c\u7684\u503c\u4e0d\u662ftable\u7c7b\u578b,\u5c06\u4f1a\u5b8c\u5168\u8986\u76d6\n-- \u4f8b\u5982\u4e0b\u5217\u5199\u6cd5,\u6700\u7ec8\u83b7\u53d6\u5230\u7684\u662ftable,\u800c\u975e\u7b2c\u4e00\u884c\u7684\u5b57\u7b26\u4e32\nlog.info(\"fdb\", fskv.set(\"mykv\", \"123\"))\nlog.info(\"fdb\", fskv.sett(\"mykv\", \"age\", \"123\")) -- \u4fdd\u5b58\u7684\u5c06\u662f {age:\"123\"}\n\n\n-- \u5982\u679c\u8bbe\u7f6e\u7684\u6570\u636e\u586bnil, \u4ee3\u8868\u5220\u9664\u5bf9\u5e94\u7684key\nlog.info(\"fdb\", fskv.sett(\"mykv\", \"name\", \"wendal\"))\nlog.info(\"fdb\", fskv.sett(\"mykv\", \"name\")) -- \u76f8\u5f53\u4e8e\u5220\u9664\n-- \n", "prefix": "fskv.sett"}, "fskv.get": {"body": "fskv.get(${1:key},${2:skey})", "description": "fskv.get(key, skey) - \u6839\u636ekey\u83b7\u53d6\u5bf9\u5e94\u7684\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nstring key\u7684\u540d\u79f0,\u5fc5\u586b,\u4e0d\u80fd\u7a7a\u5b57\u7b26\u4e32\nstring \u53ef\u9009\u7684\u6b21\u7ea7key,\u4ec5\u5f53\u539f\u59cb\u503c\u4e3atable\u65f6\u6709\u6548,\u76f8\u5f53\u4e8e fskv.get(key)[skey]\n\u8fd4\u56de\u503c\uff1a\nany \u5b58\u5728\u5219\u8fd4\u56de\u6570\u636e,\u5426\u5219\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\nif fskv.init() then\n log.info(\"fdb\", fskv.get(\"wendal\"))\nend\n\n-- \u82e5\u9700\u8981\"\u9ed8\u8ba4\u503c\", \u5bf9\u5e94\u975ebool\u5e03\u5c14\u503c, \u53ef\u4ee5\u8fd9\u6837\u5199\nlocal v = fskv.get(\"wendal\") or \"123\"\n", "prefix": "fskv.get"}, "fskv.del": {"body": "fskv.del(${1:key})", "description": "fskv.del(key) - \u6839\u636ekey\u5220\u9664\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nstring key\u7684\u540d\u79f0,\u5fc5\u586b,\u4e0d\u80fd\u7a7a\u5b57\u7b26\u4e32\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\nlog.info(\"fdb\", fskv.del(\"wendal\"))\n", "prefix": "fskv.del"}, "fskv.clear": {"body": "fskv.clear()", "description": "fskv.clear() - \u6e05\u7a7a\u6574\u4e2akv\u6570\u636e\u5e93\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- \u6e05\u7a7a\nfskv.clear()\n", "prefix": "fskv.clear"}, "fskv.iter": {"body": "fskv.iter()", "description": "fskv.iter() - kv\u6570\u636e\u5e93\u8fed\u4ee3\u5668\n\u8fd4\u56de\u503c\uff1a\nuserdata \u6210\u529f\u8fd4\u56de\u8fed\u4ee3\u5668\u6307\u9488,\u5426\u5219\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\n-- \u6e05\u7a7a\nlocal iter = fskv.iter()\nif iter then\n while 1 do\n local k = fskv.next(iter)\n if not k then\n break\n end\n log.info(\"fdb\", k, \"value\", fskv.kv_get(k))\n end\nend\n", "prefix": "fskv.iter"}, "fskv.next": {"body": "fskv.next(${1:iter})", "description": "fskv.next(iter) - kv\u8fed\u4ee3\u5668\u83b7\u53d6\u4e0b\u4e00\u4e2akey\n\u4f20\u5165\u503c\uff1a\nuserdata fskv.iter()\u8fd4\u56de\u7684\u6307\u9488\n\u8fd4\u56de\u503c\uff1a\nstring \u6210\u529f\u8fd4\u56de\u5b57\u7b26\u4e32key\u503c, \u5426\u5219\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\n-- \u6e05\u7a7a\nlocal iter = fskv.iter()\nif iter then\n while 1 do\n local k = fskv.next(iter)\n if not k then\n break\n end\n log.info(\"fskv\", k, \"value\", fskv.get(k))\n end\nend\n", "prefix": "fskv.next"}, "fskv.status": {"body": "fskv.status()", "description": "fskv.status() - \u83b7\u53d6kv\u6570\u636e\u5e93\u72b6\u6001\n\u8fd4\u56de\u503c\uff1a\nint \u5df2\u4f7f\u7528\u7684\u7a7a\u95f4,\u5355\u4f4d\u5b57\u8282\nint \u603b\u53ef\u7528\u7a7a\u95f4, \u5355\u4f4d\u5b57\u8282\nint \u603bkv\u952e\u503c\u5bf9\u6570\u91cf, \u5355\u4f4d\u4e2a\n\u4f8b\u5b50\uff1a\nlocal used, total,kv_count = fskv.status()\nlog.info(\"fdb\", \"kv\", used,total,kv_count)\n", "prefix": "fskv.status"}, "ftp.login": {"body": "ftp.login(${1:adapter},${2:ip_addr},${3:port},${4:username},${5:password})", "description": "ftp.login(adapter,ip_addr,port,username,password) - FTP\u5ba2\u6237\u7aef\n\u4f20\u5165\u503c\uff1a\nint \u9002\u914d\u5668\u5e8f\u53f7, \u53ea\u80fd\u662fsocket.ETH0, socket.STA, socket.AP,\u5982\u679c\u4e0d\u586b,\u4f1a\u9009\u62e9\u5e73\u53f0\u81ea\u5e26\u7684\u65b9\u5f0f,\u7136\u540e\u662f\u6700\u540e\u4e00\u4e2a\u6ce8\u518c\u7684\u9002\u914d\u5668\nstring ip_addr \u5730\u5740\nstring port \u7aef\u53e3,\u9ed8\u8ba421\nstring username \u7528\u6237\u540d\nstring password \u5bc6\u7801\nbool/table \u662f\u5426\u4e3assl\u52a0\u5bc6\u8fde\u63a5,\u9ed8\u8ba4\u4e0d\u52a0\u5bc6,true\u4e3a\u65e0\u8bc1\u4e66\u6700\u7b80\u5355\u7684\u52a0\u5bc6\uff0ctable\u4e3a\u6709\u8bc1\u4e66\u7684\u52a0\u5bc6
    server_cert \u670d\u52a1\u5668ca\u8bc1\u4e66\u6570\u636e
    client_cert \u5ba2\u6237\u7aefca\u8bc1\u4e66\u6570\u636e
    client_key \u5ba2\u6237\u7aef\u79c1\u94a5\u52a0\u5bc6\u6570\u636e
    client_password \u5ba2\u6237\u7aef\u79c1\u94a5\u53e3\u4ee4\u6570\u636e\n\u8fd4\u56de\u503c\uff1a\nbool/string \u6210\u529f\u8fd4\u56detrue \u5931\u8d25\u8fd4\u56destring\n\u4f8b\u5b50\uff1a\nftp_login = ftp.login(nil,\"xxx\")\n", "prefix": "ftp.login"}, "ftp.command": {"body": "ftp.command(${1:cmd})", "description": "ftp.command(cmd) - FTP\u547d\u4ee4\n\u4f20\u5165\u503c\uff1a\nstring cmd \u547d\u4ee4 \u76ee\u524d\u652f\u6301:NOOP SYST TYPE PWD MKD CWD CDUP RMD DELE LIST\n\u8fd4\u56de\u503c\uff1a\nstring \u6210\u529f\u8fd4\u56detrue \u5931\u8d25\u8fd4\u56destring\n\u4f8b\u5b50\uff1a\n print(ftp.command(\"NOOP\").wait())\n print(ftp.command(\"SYST\").wait())\n print(ftp.command(\"TYPE I\").wait())\n print(ftp.command(\"PWD\").wait())\n print(ftp.command(\"MKD QWER\").wait())\n print(ftp.command(\"CWD /QWER\").wait())\n print(ftp.command(\"CDUP\").wait())\n print(ftp.command(\"RMD QWER\").wait())\n\tprint(ftp.command(\"DELE /1/12222.txt\").wait())\n", "prefix": "ftp.command"}, "ftp.pull": {"body": "ftp.pull(${1:local_name},${2:remote_name})", "description": "ftp.pull(local_name,remote_name) - FTP\u6587\u4ef6\u4e0b\u8f7d\n\u4f20\u5165\u503c\uff1a\nstring local_name \u672c\u5730\u6587\u4ef6\nstring remote_name \u670d\u52a1\u5668\u6587\u4ef6\n\u8fd4\u56de\u503c\uff1a\nbool/string \u6210\u529f\u8fd4\u56detrue \u5931\u8d25\u8fd4\u56destring\n\u4f8b\u5b50\uff1a\nftp.pull(\"/1222.txt\",\"/1222.txt\").wait()\n", "prefix": "ftp.pull"}, "ftp.push": {"body": "ftp.push(${1:local_name},${2:remote_name})", "description": "ftp.push(local_name,remote_name) - FTP\u6587\u4ef6\u4e0a\u4f20\n\u4f20\u5165\u503c\uff1a\nstring local_name \u672c\u5730\u6587\u4ef6\nstring remote_name \u670d\u52a1\u5668\u6587\u4ef6\n\u8fd4\u56de\u503c\uff1a\nbool/string \u6210\u529f\u8fd4\u56detrue \u5931\u8d25\u8fd4\u56destring\n\u4f8b\u5b50\uff1a\nftp.push(\"/1222.txt\",\"/1222.txt\").wait()\n", "prefix": "ftp.push"}, "ftp.close": {"body": "ftp.close()", "description": "ftp.close() - FTP\u5ba2\u6237\u7aef\u5173\u95ed\n\u8fd4\u56de\u503c\uff1a\nbool/string \u6210\u529f\u8fd4\u56detrue \u5931\u8d25\u8fd4\u56destring\n\u4f8b\u5b50\uff1a\nftp.close().wait()\n", "prefix": "ftp.close"}, "sm.sm2encrypt": {"body": "sm.sm2encrypt(${1:pkx},${2:pky},${3:data},${4:mode},${5:mode2})", "description": "sm.sm2encrypt(pkx,pky,data, mode, mode2) - sm2\u7b97\u6cd5\u52a0\u5bc6\n\u4f20\u5165\u503c\uff1a\nstring \u516c\u94a5x,\u5fc5\u9009. HEX\u5b57\u7b26\u4e32\nstring \u516c\u94a5y,\u5fc5\u9009. HEX\u5b57\u7b26\u4e32\nstring \u5f85\u8ba1\u7b97\u7684\u6570\u636e,\u5fc5\u9009,\u6700\u957f32\u5b57\u8282, \u975eHEX\u5b57\u7b26\u4e32\nboolean \u8f93\u51fa\u6a21\u5f0f,\u9ed8\u8ba4false. false-GMSSL\u9ed8\u8ba4\u683c\u5f0fDER, true-\u7f51\u7ad9\u517c\u5bb9\u6a21\u5f0f\nboolean \u6807\u51c6\u7248\u672c,\u9ed8\u8ba4false. false-C1C3C2\u65b0\u56fd\u9645, true-C1C2C3\u8001\u56fd\u9645\n\u8fd4\u56de\u503c\uff1a\nstring \u52a0\u5bc6\u540e\u7684\u5b57\u7b26\u4e32, \u539f\u6837\u8f93\u51fa,\u672a\u7ecfHEX\u8f6c\u6362. \u82e5\u52a0\u5bc6\u5931\u8d25\u4f1a\u8fd4\u56denil\u6216\u7a7a\u5b57\u7b26\u4e32\n\u4f8b\u5b50\uff1a\n-- \u63d0\u793a mode/mode2 \u53c2\u6570\u662f 2023.10.17 \u65b0\u589e\n-- \u7531\u4e8eSM2\u5728\u5404\u5e73\u53f0\u7684\u5b9e\u73b0\u90fd\u6709\u5dee\u5f02,\u7528\u6cd5\u52a1\u5fc5\u53c2\u8003demo\n", "prefix": "sm.sm2encrypt"}, "sm.sm2decrypt": {"body": "sm.sm2decrypt(${1:private},${2:data},${3:mode},${4:mode2})", "description": "sm.sm2decrypt(private,data,mode,mode2) - sm2\u7b97\u6cd5\u89e3\u5bc6\n\u4f20\u5165\u503c\uff1a\nstring \u79c1\u94a5,\u5fc5\u9009,HEX\u5b57\u7b26\u4e32\nstring \u5f85\u8ba1\u7b97\u7684\u6570\u636e,\u5fc5\u9009,\u539f\u59cb\u6570\u636e,\u975eHEX\u5b57\u7b26\u4e32\nboolean \u8f93\u51fa\u6a21\u5f0f,\u9ed8\u8ba4false. false-GMSSL\u9ed8\u8ba4\u683c\u5f0fDER, true-\u7f51\u7ad9\u517c\u5bb9\u6a21\u5f0f\nboolean \u6807\u51c6\u7248\u672c,\u9ed8\u8ba4false. false-C1C3C2\u65b0\u56fd\u9645, true-C1C2C3\u8001\u56fd\u9645\n\u8fd4\u56de\u503c\uff1a\nstring \u89e3\u5bc6\u540e\u7684\u5b57\u7b26\u4e32,\u672a\u7ecfHEX\u8f6c\u6362.\u82e5\u89e3\u5bc6\u5931\u8d25\u4f1a\u8fd4\u56denil\u6216\u7a7a\u5b57\u7b26\u4e32\n\u4f8b\u5b50\uff1a\n-- \u63d0\u793a mode/mode2 \u53c2\u6570\u662f 2023.10.17 \u65b0\u589e\n-- \u7531\u4e8eSM2\u5728\u5404\u5e73\u53f0\u7684\u5b9e\u73b0\u90fd\u6709\u5dee\u5f02,\u7528\u6cd5\u52a1\u5fc5\u53c2\u8003demo\n", "prefix": "sm.sm2decrypt"}, "sm.sm3": {"body": "sm.sm3(${1:data})", "description": "sm.sm3(data) - sm3\u7b97\u6cd5,\u7b97HASH\u503c\n\u4f20\u5165\u503c\uff1a\nstring \u5f85\u8ba1\u7b97\u7684\u6570\u636e,\u5fc5\u9009\n\u8fd4\u56de\u503c\uff1a\nstring \u5bf9\u5e94\u7684hash\u503c\n\u4f8b\u5b50\uff1a\nlocal encodeStr = gmssl.sm3(\"lqlq666lqlq946\")\nlog.info(\"testsm.sm3update\",string.toHex(encodeStr))\n", "prefix": "sm.sm3"}, "sm.sm3hmac": {"body": "sm.sm3hmac(${1:data},${2:key})", "description": "sm.sm3hmac(data, key) - sm3\u7b97\u6cd5,\u7b97HASH\u503c,\u4f46\u5e26HMAC\n\u4f20\u5165\u503c\uff1a\nstring \u5f85\u8ba1\u7b97\u7684\u6570\u636e,\u5fc5\u9009\nstring \u5bc6\u94a5\n\u8fd4\u56de\u503c\uff1a\nstring \u5bf9\u5e94\u7684hash\u503c\n\u4f8b\u5b50\uff1a\nlocal encodeStr = gmssl.sm3hmac(\"lqlq666lqlq946\", \"123\")\nlog.info(\"testsm.sm3update\",string.toHex(encodeStr))\n", "prefix": "sm.sm3hmac"}, "gmssl.sm4encrypt": {"body": "gmssl.sm4encrypt(${1:mode},${2:padding},${3:originStr},${4:password})", "description": "gmssl.sm4encrypt(mode,padding,originStr,password) - SM4\u52a0\u5bc6\u7b97\u6cd5\n\u4f20\u5165\u503c\uff1a\nstring \u52a0\u5bc6\u6a21\u5f0f, CBC\u6216ECB \nstring \u586b\u5145\u65b9\u5f0f, NONE/ZERO/PKCS5/PKCS7\nstring \u52a0\u5bc6\u7684\u5b57\u7b26\u4e32\nstring \u5bc6\u94a5\n\u8fd4\u56de\u503c\uff1a\nstring \u52a0\u5bc6\u540e\u7684\u6570\u636e\n\u4f8b\u5b50\uff1a\nlocal originStr = \"SM4 ECB ZeroPadding test\"\n--\u52a0\u5bc6\u6a21\u5f0f\uff1aECB\uff1b\u586b\u5145\u65b9\u5f0f\uff1aZeroPadding\uff1b\u5bc6\u94a5\uff1a1234567890123456\uff1b\u5bc6\u94a5\u957f\u5ea6\uff1a128 bit\nlocal encodeStr = gmssl.sm4encrypt(\"ECB\",\"ZERO\",originStr,\"1234567890123456\")\nprint(originStr,\"encrypt\",string.toHex(encodeStr))\nlog.info(\"testsm.decrypt\",gmssl.sm4decrypt(\"ECB\",\"ZERO\",encodeStr,\"1234567890123456\"))\n\noriginStr = \"SM4 ECB Pkcs5Padding test\"\n--\u52a0\u5bc6\u6a21\u5f0f\uff1aECB\uff1b\u586b\u5145\u65b9\u5f0f\uff1aPkcs5Padding\uff1b\u5bc6\u94a5\uff1a1234567890123456\uff1b\u5bc6\u94a5\u957f\u5ea6\uff1a128 bit\nencodeStr = gmssl.sm4encrypt(\"ECB\",\"PKCS5\",originStr,\"1234567890123456\")\nprint(originStr,\"encrypt\",string.toHex(encodeStr))\nlog.info(\"testsm.decrypt\",gmssl.sm4decrypt(\"ECB\",\"PKCS5\",encodeStr,\"1234567890123456\"))\n\noriginStr = \"SM4 CBC Pkcs5Padding test\"\n--\u52a0\u5bc6\u6a21\u5f0f\uff1aCBC\uff1b\u586b\u5145\u65b9\u5f0f\uff1aPkcs5Padding\uff1b\u5bc6\u94a5\uff1a1234567890123456\uff1b\u5bc6\u94a5\u957f\u5ea6\uff1a256 bit\uff1b\u504f\u79fb\u91cf\uff1a1234567890666666\nencodeStr = gmssl.sm4encrypt(\"CBC\",\"PKCS5\",originStr,\"1234567890123456\",\"1234567890666666\")\nprint(originStr,\"encrypt\",string.toHex(encodeStr))\nlog.info(\"testsm.decrypt\",gmssl.sm4decrypt(\"CBC\",\"PKCS5\",encodeStr,\"1234567890123456\",\"1234567890666666\"))\n", "prefix": "gmssl.sm4encrypt"}, "gmssl.sm4decrypt": {"body": "gmssl.sm4decrypt(${1:mode},${2:padding},${3:encodeStr},${4:password})", "description": "gmssl.sm4decrypt(mode,padding,encodeStr,password) - SM4\u89e3\u5bc6\u7b97\u6cd5\n\u4f20\u5165\u503c\uff1a\nstring \u52a0\u5bc6\u6a21\u5f0f, CBC\u6216ECB \nstring \u586b\u5145\u65b9\u5f0f, NONE/ZERO/PKCS5/PKCS7\nstring \u5df2\u52a0\u5bc6\u7684\u5b57\u7b26\u4e32\nstring \u5bc6\u94a5\n\u8fd4\u56de\u503c\uff1a\nstring \u89e3\u5bc6\u7684\u5b57\u7b26\u4e32\n\u4f8b\u5b50\uff1a\n-- \u53c2\u8003gmssl.sm4encrypt\n", "prefix": "gmssl.sm4decrypt"}, "sm.sm2sign": {"body": "sm.sm2sign(${1:private},${2:data},${3:id})", "description": "sm.sm2sign(private,data,id) - sm2\u7b97\u6cd5\u7b7e\u540d\n\u4f20\u5165\u503c\uff1a\nstring \u79c1\u94a5,\u5fc5\u9009,HEX\u5b57\u7b26\u4e32\nstring \u5f85\u8ba1\u7b97\u7684\u6570\u636e,\u5fc5\u9009,\u539f\u59cb\u6570\u636e,\u975eHEX\u5b57\u7b26\u4e32\nstring id\u503c,\u975eHEX\u5b57\u7b26\u4e32,\u53ef\u9009,\u9ed8\u8ba4\u503c\"1234567812345678\"\n\u8fd4\u56de\u503c\uff1a\nstring \u524d\u9762\u5b57\u7b26\u4e32,\u672a\u7ecfHEX\u8f6c\u6362.\u82e5\u7b7e\u540d\u5931\u8d25\u4f1a\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\n-- \u672cAPI\u4e8e 2023.10.19 \u65b0\u589e\n-- \u5177\u4f53\u7528\u6cd5\u8bf7\u67e5\u9605demo\n", "prefix": "sm.sm2sign"}, "sm.sm2verify": {"body": "sm.sm2verify(${1:pkx},${2:pky},${3:data},${4:id},${5:sig})", "description": "sm.sm2verify(pkx, pky, data, id, sig) - sm2\u7b97\u6cd5\u9a8c\u7b7e\n\u4f20\u5165\u503c\uff1a\nstring \u516c\u94a5X,\u5fc5\u9009,HEX\u5b57\u7b26\u4e32\nstring \u516c\u94a5Y,\u5fc5\u9009,HEX\u5b57\u7b26\u4e32\nstring \u5f85\u8ba1\u7b97\u7684\u6570\u636e,\u5fc5\u9009,\u539f\u59cb\u6570\u636e,\u975eHEX\u5b57\u7b26\u4e32\nstring id\u503c,\u975eHEX\u5b57\u7b26\u4e32,\u53ef\u9009,\u9ed8\u8ba4\u503c\"1234567812345678\"\nstring \u7b7e\u540d\u6570\u636e,\u5fc5\u987b64\u5b57\u8282,\u975eHEX\u5b57\u7b26\u4e32\n\u8fd4\u56de\u503c\uff1a\nboolean \u9a8c\u8bc1\u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\n-- \u672cAPI\u4e8e 2023.10.19 \u65b0\u589e\n-- \u5177\u4f53\u7528\u6cd5\u8bf7\u67e5\u9605demo\n", "prefix": "sm.sm2verify"}, "gpio.setup": {"body": "gpio.setup(${1:pin},${2:mode},${3:pull},${4:irq},${5:alt})", "description": "gpio.setup(pin, mode, pull, irq, alt) - \u8bbe\u7f6e\u7ba1\u811a\u529f\u80fd\n\u4f20\u5165\u503c\uff1a\nint pin gpio\u7f16\u53f7,\u5fc5\u987b\u662f\u6570\u503c\nany mode \u8f93\u5165\u8f93\u51fa\u6a21\u5f0f\uff1a
    \u6570\u5b570/1\u4ee3\u8868\u8f93\u51fa\u6a21\u5f0f
    nil\u4ee3\u8868\u8f93\u5165\u6a21\u5f0f
    function\u4ee3\u8868\u4e2d\u65ad\u6a21\u5f0f\nint pull \u4e0a\u62c9\u4e0b\u5217\u6a21\u5f0f, \u53ef\u4ee5\u662fgpio.PULLUP \u6216 gpio.PULLDOWN, \u9700\u8981\u6839\u636e\u5b9e\u9645\u786c\u4ef6\u9009\u7528\nint irq \u4e2d\u65ad\u89e6\u53d1\u6a21\u5f0f,\u9ed8\u8ba4gpio.BOTH\u3002\u4e2d\u65ad\u89e6\u53d1\u6a21\u5f0f
    \u4e0a\u5347\u6cbfgpio.RISING
    \u4e0b\u964d\u6cbfgpio.FALLING
    \u4e0a\u5347\u548c\u4e0b\u964d\u90fd\u89e6\u53d1gpio.BOTH \nint alt \u590d\u7528\u9009\u9879\uff0c\u76ee\u524d\u53ea\u6709EC618\u5e73\u53f0\u9700\u8981\u8fd9\u4e2a\u53c2\u6570\uff0c\u6709\u4e9bGPIO\u53ef\u4ee5\u590d\u7528\u5230\u4e0d\u540c\u5f15\u811a\u4e0a\uff0c\u53ef\u4ee5\u9009\u62e9\u590d\u7528\u9009\u9879\uff080\u6216\u80054\uff09\u4ece\u800c\u590d\u7528\u5230\u5bf9\u5e94\u7684\u5f15\u811a\u4e0a\n\u8fd4\u56de\u503c\uff1a\nany \u8f93\u51fa\u6a21\u5f0f\u8fd4\u56de\u8bbe\u7f6e\u7535\u5e73\u7684\u95ed\u5305, \u8f93\u5165\u6a21\u5f0f\u548c\u4e2d\u65ad\u6a21\u5f0f\u8fd4\u56de\u83b7\u53d6\u7535\u5e73\u7684\u95ed\u5305\n\u4f8b\u5b50\uff1a\n-- \u8bbe\u7f6egpio17\u4e3a\u8f93\u5165\ngpio.setup(17, nil)\n-- \u8bbe\u7f6egpio17\u4e3a\u8f93\u51fa,\u4e14\u521d\u59cb\u5316\u7535\u5e73\u4e3a\u4f4e,\u4f7f\u7528\u786c\u4ef6\u9ed8\u8ba4\u4e0a\u4e0b\u62c9\u914d\u7f6e\ngpio.setup(17, 0)\n-- \u8bbe\u7f6egpio17\u4e3a\u8f93\u51fa,\u4e14\u521d\u59cb\u5316\u7535\u5e73\u4e3a\u9ad8,\u4e14\u542f\u7528\u5185\u90e8\u4e0a\u62c9\ngpio.setup(17, 1, gpio.PULLUP)\n-- \u8bbe\u7f6egpio27\u4e3a\u4e2d\u65ad\ngpio.setup(27, function(val) print(\"IRQ_27\",val) end, gpio.PULLUP)\n-- \u8bbe\u7f6egpio27\u4e3a\u4e2d\u65ad\ngpio.setup(27, function(val) print(\"IRQ_27\",val) end, gpio.PULLUP)\n\n-- alt_func \u4e8e2023.7.2\u65b0\u589e\n-- \u8bbe\u7f6eAIR780E\u7684PIN33\u590d\u7528\u6210gpio18\uff0c\u65b9\u5411\u8f93\u51fa,\u4e14\u521d\u59cb\u5316\u7535\u5e73\u4e3a\u4f4e,\u4f7f\u7528\u786c\u4ef6\u9ed8\u8ba4\u4e0a\u4e0b\u62c9\u914d\u7f6e\ngpio.setup(18, 0, nil, nil, 4)\n", "prefix": "gpio.setup"}, "gpio.set": {"body": "gpio.set(${1:pin},${2:value})", "description": "gpio.set(pin, value) - \u8bbe\u7f6e\u7ba1\u811a\u7535\u5e73\n\u4f20\u5165\u503c\uff1a\nint pin GPIO\u7f16\u53f7,\u5fc5\u987b\u662f\u6570\u503c\nint value \u7535\u5e73, \u53ef\u4ee5\u662f \u9ad8\u7535\u5e73gpio.HIGH, \u4f4e\u7535\u5e73gpio.LOW, \u6216\u8005\u76f4\u63a5\u5199\u6570\u503c1\u62160\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n-- \u8bbe\u7f6egpio17\u4e3a\u4f4e\u7535\u5e73\ngpio.set(17, 0)\n", "prefix": "gpio.set"}, "gpio.get": {"body": "gpio.get(${1:pin})", "description": "gpio.get(pin) - \u83b7\u53d6\u7ba1\u811a\u7535\u5e73\n\u4f20\u5165\u503c\uff1a\nint pin GPIO\u7f16\u53f7,\u5fc5\u987b\u662f\u6570\u503c\n\u8fd4\u56de\u503c\uff1a\nvalue \u7535\u5e73, \u9ad8\u7535\u5e73gpio.HIGH, \u4f4e\u7535\u5e73gpio.LOW, \u5bf9\u5e94\u6570\u503c1\u548c0\n\u4f8b\u5b50\uff1a\n-- \u83b7\u53d6gpio17\u7684\u5f53\u524d\u7535\u5e73\ngpio.get(17)\n", "prefix": "gpio.get"}, "gpio.close": {"body": "gpio.close(${1:pin})", "description": "gpio.close(pin) - \u5173\u95ed\u7ba1\u811a\u529f\u80fd(\u9ad8\u963b\u8f93\u5165\u6001),\u5173\u6389\u4e2d\u65ad\n\u4f20\u5165\u503c\uff1a\nint pin GPIO\u7f16\u53f7,\u5fc5\u987b\u662f\u6570\u503c\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c,\u603b\u662f\u6267\u884c\u6210\u529f\n\u4f8b\u5b50\uff1a\n-- \u5173\u95edgpio17\ngpio.close(17)\n", "prefix": "gpio.close"}, "gpio.setDefaultPull": {"body": "gpio.setDefaultPull(${1:val})", "description": "gpio.setDefaultPull(val) - \u8bbe\u7f6eGPIO\u811a\u7684\u9ed8\u8ba4\u4e0a\u62c9/\u4e0b\u62c9\u8bbe\u7f6e, \u9ed8\u8ba4\u662f\u5e73\u53f0\u81ea\u5b9a\u4e49(\u4e00\u822c\u4e3a\u5f00\u6f0f).\n\u4f20\u5165\u503c\uff1a\nint val 0\u5e73\u53f0\u81ea\u5b9a\u4e49,1\u4e0a\u62c9, 2\u4e0b\u62c9\n\u8fd4\u56de\u503c\uff1a\nboolean \u4f20\u503c\u6b63\u786e\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- \u8bbe\u7f6egpio.setup\u7684pull\u9ed8\u8ba4\u503c\u4e3a\u4e0a\u62c9\ngpio.setDefaultPull(1)\n", "prefix": "gpio.setDefaultPull"}, "gpio.toggle": {"body": "gpio.toggle(${1:pin})", "description": "gpio.toggle(pin) - \u53d8\u6362GPIO\u811a\u8f93\u51fa\u7535\u5e73,\u4ec5\u8f93\u51fa\u6a21\u5f0f\u53ef\u7528\n\u4f20\u5165\u503c\uff1a\nint \u7ba1\u811a\u7684GPIO\u53f7\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n-- \u672cAPI\u4e8e 2022.05.17 \u6dfb\u52a0\n-- \u5047\u8bbeGPIO16\u4e0a\u6709LED, \u6bcf500ms\u5207\u6362\u4e00\u6b21\u5f00\u5173\ngpio.setup(16, 0)\nsys.timerLoopStart(function()\n gpio.toggle(16)\nend, 500)\n", "prefix": "gpio.toggle"}, "gpio.pulse": {"body": "gpio.pulse(${1:pin},${2:level},${3:len},${4:delay})", "description": "gpio.pulse(pin,level,len,delay) - \u5728\u540c\u4e00\u4e2aGPIO\u8f93\u51fa\u4e00\u7ec4\u8109\u51b2, \u6ce8\u610f, len\u7684\u5355\u4f4d\u662fbit, \u9ad8\u4f4d\u5728\u524d.\n\u4f20\u5165\u503c\uff1a\nint gpio\u53f7\nint/string \u6570\u503c\u6216\u8005\u5b57\u7b26\u4e32.\nint len \u957f\u5ea6 \u5355\u4f4d\u662fbit, \u9ad8\u4f4d\u5728\u524d.\nint delay \u5ef6\u8fdf,\u5f53\u524d\u65e0\u56fa\u5b9a\u65f6\u95f4\u5355\u4f4d\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n-- \u901a\u8fc7PB06\u811a\u8f93\u51fa\u8f93\u51fa8\u4e2a\u7535\u5e73\u53d8\u5316.\ngpio.pulse(pin.PB06,0xA9, 8, 0)\n", "prefix": "gpio.pulse"}, "gpio.debounce": {"body": "gpio.debounce(${1:pin},${2:ms},${3:mode})", "description": "gpio.debounce(pin, ms, mode) - \u9632\u6296\u8bbe\u7f6e, \u6839\u636e\u786c\u4ef6ticks\u8fdb\u884c\u9632\u6296\n\u4f20\u5165\u503c\uff1a\nint gpio\u53f7, 0~127, \u4e0e\u786c\u4ef6\u76f8\u5173\nint \u9632\u6296\u65f6\u957f,\u5355\u4f4d\u6beb\u79d2, \u6700\u5927 65555 ms, \u8bbe\u7f6e\u4e3a0\u5219\u5173\u95ed\nint \u6a21\u5f0f, 0\u51b7\u5374\u6a21\u5f0f, 1\u5ef6\u65f6\u6a21\u5f0f. \u9ed8\u8ba4\u662f0\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n-- \u6d88\u6296\u6a21\u5f0f, \u5f53\u524d\u652f\u63012\u79cd, 2022.12.16\u5f00\u59cb\u652f\u6301mode=1\n-- 0 \u89e6\u53d1\u4e2d\u65ad\u540e,\u9a6c\u4e0a\u4e0a\u62a5\u4e00\u6b21, \u7136\u540e\u51b7\u5374N\u4e2a\u6beb\u79d2\u540e,\u91cd\u65b0\u63a5\u53d7\u4e2d\u65ad\n-- 1 \u89e6\u53d1\u4e2d\u65ad\u540e,\u5ef6\u8fdfN\u4e2a\u6beb\u79d2,\u671f\u95f4\u6ca1\u6709\u65b0\u4e2d\u65ad\u4e14\u7535\u5e73\u6ca1\u6709\u53d8\u5316,\u4e0a\u62a5\u4e00\u6b21\n\n-- \u5f00\u542f\u9632\u6296, \u6a21\u5f0f0-\u51b7\u5374, \u4e2d\u65ad\u540e\u9a6c\u4e0a\u4e0a\u62a5, \u4f46100ms\u5185\u53ea\u4e0a\u62a5\u4e00\u6b21\ngpio.debounce(7, 100) -- \u82e5\u82af\u7247\u652f\u6301pin\u5e93, \u53ef\u7528pin.PA7\u4ee3\u66ff\u6570\u5b577\n-- \u5f00\u542f\u9632\u6296, \u6a21\u5f0f1-\u5ef6\u65f6, \u4e2d\u65ad\u540e\u7b49\u5f85100ms,\u671f\u95f4\u82e5\u4fdd\u6301\u8be5\u7535\u5e73\u4e86,\u65f6\u95f4\u5230\u4e4b\u540e\u4e0a\u62a5\u4e00\u6b21\n-- \u5bf9\u5e94\u7684,\u5982\u679c\u8f93\u5165\u7684\u662f\u4e00\u4e2a 50hz\u7684\u65b9\u6ce2,\u90a3\u4e48\u4e0d\u4f1a\u89e6\u53d1\u4efb\u4f55\u4e0a\u62a5\ngpio.debounce(7, 100, 1)\n\n-- \u5173\u95ed\u9632\u6296,\u65f6\u95f4\u8bbe\u7f6e\u4e3a0\u5c31\u5173\u95ed\ngpio.debounce(7, 0)\n", "prefix": "gpio.debounce"}, "gtfont.init": {"body": "gtfont.init(${1:spi_device})", "description": "gtfont.init(spi_device) - \u521d\u59cb\u5316\u9ad8\u901a\u5b57\u4f53\u82af\u7247\n\u4f20\u5165\u503c\uff1a\nuserdata \u4ec5\u652f\u6301spi device \u751f\u6210\u7684\u6307\u9488\u6570\u636e\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- \u7279\u522b\u63d0\u9192: \u4f7f\u7528\u672c\u5e93\u7684\u4efb\u4f55\u4ee3\u7801, \u90fd\u9700\u8981 \u989d\u5916 \u7684 \u9ad8\u901a\u5b57\u4f53\u82af\u7247 !!\n-- \u6ca1\u6709\u989d\u5916\u82af\u7247\u662f\u8dd1\u4e0d\u4e86\u7684!!\ngtfont.init(spi_device)\n", "prefix": "gtfont.init"}, "hmeta.model": {"body": "hmeta.model()", "description": "hmeta.model() - \u83b7\u53d6\u6a21\u7ec4\u540d\u79f0\n\u8fd4\u56de\u503c\uff1a\nstring \u82e5\u80fd\u8bc6\u522b\u5230,\u8fd4\u56de\u6a21\u7ec4\u7c7b\u578b, \u5426\u5219\u4f1a\u662fnil\n\u4f8b\u5b50\uff1a\nsys.taskInit(function()\n while 1 do\n sys.wait(3000)\n -- hmeta\u8bc6\u522b\u5e95\u5c42\u6a21\u7ec4\u7c7b\u578b\u7684\n -- \u4e0d\u540c\u7684\u6a21\u7ec4\u53ef\u4ee5\u4f7f\u7528\u76f8\u540c\u7684bsp,\u4f46\u6839\u636e\u5c01\u88c5\u7684\u4e0d\u540c,\u6839\u636e\u5185\u90e8\u6570\u636e\u4ecd\u53ef\u8bc6\u522b\u51fa\u5177\u4f53\u6a21\u5757\n log.info(\"hmeta\", hmeta.model())\n log.info(\"bsp\", rtos.bsp())\n end\nend)\n", "prefix": "hmeta.model"}, "hmeta.hwver": {"body": "hmeta.hwver()", "description": "hmeta.hwver() - \u83b7\u53d6\u6a21\u7ec4\u7684\u786c\u4ef6\u7248\u672c\u53f7\n\u8fd4\u56de\u503c\uff1a\nstring \u82e5\u80fd\u8bc6\u522b\u5230,\u8fd4\u56de\u6a21\u7ec4\u7c7b\u578b, \u5426\u5219\u4f1a\u662fnil\n\u4f8b\u5b50\uff1a\nsys.taskInit(function()\n while 1 do\n sys.wait(3000)\n -- hmeta\u8bc6\u522b\u5e95\u5c42\u6a21\u7ec4\u7c7b\u578b\u7684\n -- \u4e0d\u540c\u7684\u6a21\u7ec4\u53ef\u4ee5\u4f7f\u7528\u76f8\u540c\u7684bsp,\u4f46\u6839\u636e\u5c01\u88c5\u7684\u4e0d\u540c,\u6839\u636e\u5185\u90e8\u6570\u636e\u4ecd\u53ef\u8bc6\u522b\u51fa\u5177\u4f53\u6a21\u5757\n log.info(\"hmeta\", hmeta.model(), hmeta.hwver())\n log.info(\"bsp\", rtos.bsp())\n end\nend)\n", "prefix": "hmeta.hwver"}, "http.request": {"body": "http.request(${1:method},${2:url},${3:headers},${4:body},${5:opts},${6:ca_file},${7:client_ca},${8:client_key},${9:client_password})", "description": "http.request(method,url,headers,body,opts,ca_file,client_ca, client_key, client_password) - http\u5ba2\u6237\u7aef\n\u4f20\u5165\u503c\uff1a\nstring \u8bf7\u6c42\u65b9\u6cd5, \u652f\u6301 GET/POST \u7b49\u5408\u6cd5\u7684HTTP\u65b9\u6cd5\nstring url\u5730\u5740, \u652f\u6301 http\u548chttps, \u652f\u6301\u57df\u540d, \u652f\u6301\u81ea\u5b9a\u4e49\u7aef\u53e3\ntabal \u8bf7\u6c42\u5934 \u53ef\u9009 \u4f8b\u5982 {[\"Content-Type\"] = \"application/x-www-form-urlencoded\"}\nstring body \u53ef\u9009, \u5bf9POST/PUT\u7b49\u8bf7\u6c42\u65b9\u5f0f\u6709\u6548\ntable \u989d\u5916\u914d\u7f6e \u53ef\u9009 \u5305\u542b timeout:\u8d85\u65f6\u65f6\u95f4\u5355\u4f4dms \u53ef\u9009,\u9ed8\u8ba410\u5206\u949f,\u51990\u5373\u6c38\u4e45\u7b49\u5f85 dst:\u4e0b\u8f7d\u8def\u5f84,\u53ef\u9009 adapter:\u9009\u62e9\u4f7f\u7528\u7f51\u5361,\u53ef\u9009 debug:\u662f\u5426\u6253\u5f00debug\u4fe1\u606f,\u53ef\u9009,ipv6:\u662f\u5426\u4e3aipv6 \u9ed8\u8ba4\u4e0d\u662f,\u53ef\u9009 callback:\u4e0b\u8f7d\u56de\u8c03\u51fd\u6570,\u53c2\u6570 content_len:\u603b\u957f\u5ea6 body_len:\u4ee5\u4e0b\u8f7d\u957f\u5ea6 userdata \u7528\u6237\u4f20\u53c2,\u53ef\u9009 userdata:\u56de\u8c03\u81ea\u5b9a\u4e49\u4f20\u53c2 \nstring \u670d\u52a1\u5668ca\u8bc1\u4e66\u6570\u636e, \u53ef\u9009, \u4e00\u822c\u4e0d\u9700\u8981\nstring \u5ba2\u6237\u7aefca\u8bc1\u4e66\u6570\u636e, \u53ef\u9009, \u4e00\u822c\u4e0d\u9700\u8981, \u53cc\u5411https\u8ba4\u8bc1\u624d\u9700\u8981\nstring \u5ba2\u6237\u7aef\u79c1\u94a5\u52a0\u5bc6\u6570\u636e, \u53ef\u9009, \u4e00\u822c\u4e0d\u9700\u8981, \u53cc\u5411https\u8ba4\u8bc1\u624d\u9700\u8981\nstring \u5ba2\u6237\u7aef\u79c1\u94a5\u53e3\u4ee4\u6570\u636e, \u53ef\u9009, \u4e00\u822c\u4e0d\u9700\u8981, \u53cc\u5411https\u8ba4\u8bc1\u624d\u9700\u8981\n\u8fd4\u56de\u503c\uff1a\nint code , \u670d\u52a1\u5668\u53cd\u9988\u7684\u503c>=100, \u6700\u5e38\u89c1\u7684\u662f200.\u5982\u679c\u662f\u5e95\u5c42\u9519\u8bef,\u4f8b\u5982\u8fde\u63a5\u5931\u8d25, \u8fd4\u56de\u503c\u5c0f\u4e8e0\ntabal headers \u5f53code>100\u65f6, \u4ee3\u8868\u670d\u52a1\u5668\u8fd4\u56de\u7684\u5934\u90e8\u6570\u636e \nstring/int body \u670d\u52a1\u5668\u54cd\u5e94\u7684\u5185\u5bb9\u5b57\u7b26\u4e32,\u5982\u679c\u662f\u4e0b\u8f7d\u6a21\u5f0f, \u5219\u8fd4\u56de\u6587\u4ef6\u5927\u5c0f\n\u4f8b\u5b50\uff1a\n\n--[[\ncode\u62a5\u9519\u4fe1\u606f\u5217\u8868:\n-1 HTTP_ERROR_STATE \u9519\u8bef\u7684\u72b6\u6001, \u4e00\u822c\u662f\u5e95\u5c42\u5f02\u5e38,\u8bf7\u62a5issue\n-2 HTTP_ERROR_HEADER \u9519\u8bef\u7684\u54cd\u5e94\u5934\u90e8, \u901a\u5e38\u662f\u670d\u52a1\u5668\u95ee\u9898\n-3 HTTP_ERROR_BODY \u9519\u8bef\u7684\u54cd\u5e94\u4f53,\u901a\u5e38\u662f\u670d\u52a1\u5668\u95ee\u9898\n-4 HTTP_ERROR_CONNECT \u8fde\u63a5\u670d\u52a1\u5668\u5931\u8d25, \u672a\u8054\u7f51,\u5730\u5740\u9519\u8bef,\u57df\u540d\u9519\u8bef\n-5 HTTP_ERROR_CLOSE \u63d0\u524d\u65ad\u5f00\u4e86\u8fde\u63a5, \u7f51\u7edc\u6216\u670d\u52a1\u5668\u95ee\u9898\n-6 HTTP_ERROR_RX \u63a5\u6536\u6570\u636e\u62a5\u9519, \u7f51\u7edc\u95ee\u9898\n-7 HTTP_ERROR_DOWNLOAD \u4e0b\u8f7d\u6587\u4ef6\u8fc7\u7a0b\u62a5\u9519, \u7f51\u7edc\u95ee\u9898\u6216\u4e0b\u8f7d\u8def\u5f84\u95ee\u9898\n-8 HTTP_ERROR_TIMEOUT \u8d85\u65f6, \u5305\u62ec\u8fde\u63a5\u8d85\u65f6,\u8bfb\u53d6\u6570\u636e\u8d85\u65f6\n-9 HTTP_ERROR_FOTA fota\u529f\u80fd\u62a5\u9519,\u901a\u5e38\u662f\u66f4\u65b0\u5305\u4e0d\u5408\u6cd5\n]]\n\n-- GET\u8bf7\u6c42\nlocal code, headers, body = http.request(\"GET\",\"http://site0.cn/api/httptest/simple/time\").wait()\nlog.info(\"http.get\", code, headers, body)\n-- POST\u8bf7\u6c42\nlocal code, headers, body = http.request(\"POST\",\"http://httpbin.com/post\", {}, \"abc=123\").wait()\nlog.info(\"http.post\", code, headers, body)\n\n-- GET\u8bf7\u6c42,\u4f46\u4e0b\u8f7d\u5230\u6587\u4ef6\nlocal code, headers, body = http.request(\"GET\",\"http://httpbin.com/\", {}, \"\", {dst=\"/data.bin\"}).wait()\nlog.info(\"http.get\", code, headers, body)\n\n-- \u81ea\u5b9a\u4e49\u8d85\u65f6\u65f6\u95f4, 5000ms\nhttp.request(\"GET\",\"http://httpbin.com/\", nil, nil, {timeout=5000}).wait()\n", "prefix": "http.request"}, "httpsrv.start": {"body": "httpsrv.start(${1:port},${2:func})", "description": "httpsrv.start(port, func) - \u542f\u52a8\u5e76\u76d1\u542c\u4e00\u4e2ahttp\u7aef\u53e3\n\u4f20\u5165\u503c\uff1a\nint \u7aef\u53e3\u53f7\nfunction \u56de\u8c03\u51fd\u6570\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue, \u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n\n-- \u76d1\u542c80\u7aef\u53e3\nhttpsrv.start(80, function(client, method, uri, headers, body)\n -- method \u662f\u5b57\u7b26\u4e32, \u4f8b\u5982 GET POST PUT DELETE\n -- uri \u4e5f\u662f\u5b57\u7b26\u4e32 \u4f8b\u5982 / /api/abc\n -- headers table\u7c7b\u578b\n -- body \u5b57\u7b26\u4e32\n log.info(\"httpsrv\", method, uri, json.encode(headers), body)\n if uri == \"/led/1\" then\n LEDA(1)\n return 200, {}, \"ok\"\n elseif uri == \"/led/0\" then\n LEDA(0)\n return 200, {}, \"ok\"\n end\n -- \u8fd4\u56de\u503c\u7684\u7ea6\u5b9a code, headers, body\n -- \u82e5\u6ca1\u6709\u8fd4\u56de\u503c, \u5219\u9ed8\u8ba4 404, {} ,\"\"\n return 404, {}, \"Not Found\" .. uri\nend)\n-- \u5173\u4e8e\u9759\u6001\u6587\u4ef6\n-- \u60c5\u51b51: / , \u6620\u5c04\u4e3a /index.html\n-- \u60c5\u51b52: /abc.html , \u5148\u67e5\u627e /abc.html, \u4e0d\u5b58\u5728\u7684\u8bdd\u67e5\u627e /abc.html.gz\n-- \u82e5gz\u5b58\u5728, \u4f1a\u81ea\u52a8\u4ee5\u538b\u7f29\u6587\u4ef6\u8fdb\u884c\u54cd\u5e94, \u7edd\u5927\u90e8\u5206\u6d4f\u89c8\u5668\u652f\u6301.\n-- \u5f53\u524d\u9ed8\u8ba4\u67e5\u627e /luadb/xxx \u4e0b\u7684\u6587\u4ef6,\u6682\u4e0d\u53ef\u914d\u7f6e\n", "prefix": "httpsrv.start"}, "httpsrv.stop": {"body": "httpsrv.stop(${1:port})", "description": "httpsrv.stop(port) - \u505c\u6b62http\u670d\u52a1\n\u4f20\u5165\u503c\uff1a\nint \u7aef\u53e3\u53f7\n\u8fd4\u56de\u503c\uff1a\nnil \u5f53\u524d\u65e0\u8fd4\u56de\u503c\n", "prefix": "httpsrv.stop"}, "i2c.exist": {"body": "i2c.exist(${1:id})", "description": "i2c.exist(id) - i2c\u7f16\u53f7\u662f\u5426\u5b58\u5728\n\u4f20\u5165\u503c\uff1a\nint \u8bbe\u5907id, \u4f8b\u5982i2c1\u7684id\u4e3a1, i2c2\u7684id\u4e3a2\n\u8fd4\u56de\u503c\uff1a\nbool \u5b58\u5728\u5c31\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- \u68c0\u67e5i2c1\u662f\u5426\u5b58\u5728\nif i2c.exist(1) then\n log.info(\"\u5b58\u5728 i2c1\")\nend\n", "prefix": "i2c.exist"}, "i2c.setup": {"body": "i2c.setup(${1:id},${2:speed},${3:slaveAddr})", "description": "i2c.setup(id, speed, slaveAddr) - i2c\u521d\u59cb\u5316\n\u4f20\u5165\u503c\uff1a\nint \u8bbe\u5907id, \u4f8b\u5982i2c1\u7684id\u4e3a1, i2c2\u7684id\u4e3a2\nint I2C\u901f\u5ea6, \u4f8b\u5982i2c.FAST\n\u8fd4\u56de\u503c\uff1a\nint \u6210\u529f\u5c31\u8fd4\u56de1,\u5426\u5219\u8fd4\u56de0\n\u4f8b\u5b50\uff1a\n-- \u521d\u59cb\u5316i2c1\ni2c.setup(1, i2c.FAST) -- \u7aef\u53e3\u6b63\u786e\u5c31\u4e00\u5b9a\u6210\u529f\n-- \u5982\u9700\u5224\u65adi2c id\u662f\u5426\u5408\u6cd5, \u8bf7\u4f7f\u7528 i2c.exist \u51fd\u6570\n", "prefix": "i2c.setup"}, "i2c.createSoft": {"body": "i2c.createSoft(${1:scl},${2:sda},${3:delay})", "description": "i2c.createSoft(scl,sda,delay) - \u65b0\u5efa\u4e00\u4e2a\u8f6f\u4ef6i2c\u5bf9\u8c61\n\u4f20\u5165\u503c\uff1a\nint i2c SCL\u5f15\u811a\u7f16\u53f7(GPIO\u7f16\u53f7)\nint i2c SDA\u5f15\u811a\u7f16\u53f7(GPIO\u7f16\u53f7)\nint \u6bcf\u4e2a\u64cd\u4f5c\u7684\u5ef6\u65f6, \u5355\u4f4dus, \u9ed8\u8ba45\n\u8fd4\u56de\u503c\uff1a\n\u8f6f\u4ef6I2C\u5bf9\u8c61 \u53ef\u5f53\u4f5ci2c\u7684id\u4f7f\u7528\n\u4f8b\u5b50\uff1a\n-- \u6ce8\u610f\uff01\u8fd9\u4e2a\u63a5\u53e3\u662f\u8f6f\u4ef6\u6a21\u62dfi2c\uff0c\u901f\u5ea6\u53ef\u80fd\u4f1a\u6bd4\u786c\u4ef6\u7684\u6162\n-- \u4e0d\u9700\u8981\u8c03\u7528i2c.close\u63a5\u53e3\n-- \u521d\u59cb\u5316\u8f6f\u4ef6i2c\nlocal softI2C = i2c.createSoft(1, 2, 5)\ni2c.send(softI2C, 0x5C, string.char(0x0F, 0x2F))\n-- \u6ce8\u610f, \u7b2c3\u4e2a\u53c2\u6570\u662f 2023.06.19 \u6dfb\u52a0\u7684delay\n-- \u901a\u8fc7\u8c03\u6574delay\u53c2\u6570\u7684\u503c, \u53ef\u589e\u52a0\u6216\u964d\u4f4eI2C\u7684\u901f\u5ea6\n", "prefix": "i2c.createSoft"}, "i2c.send": {"body": "i2c.send(${1:id},${2:addr},${3:data},${4:stop})", "description": "i2c.send(id, addr, data,stop) - i2c\u53d1\u9001\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nint \u8bbe\u5907id, \u4f8b\u5982i2c1\u7684id\u4e3a1, i2c2\u7684id\u4e3a2\nint I2C\u5b50\u8bbe\u5907\u7684\u5730\u5740, 7\u4f4d\u5730\u5740\ninteger/string/table \u5f85\u53d1\u9001\u7684\u6570\u636e,\u81ea\u9002\u5e94\u53c2\u6570\u7c7b\u578b\ninteger \u53ef\u9009\u53c2\u6570 \u662f\u5426\u53d1\u9001\u505c\u6b62\u4f4d 1\u53d1\u9001 0\u4e0d\u53d1\u9001 \u9ed8\u8ba4\u53d1\u9001(105\u4e0d\u652f\u6301)\n\u8fd4\u56de\u503c\uff1a\ntrue/false \u53d1\u9001\u662f\u5426\u6210\u529f\n\u4f8b\u5b50\uff1a\n-- \u5f80i2c0\u53d1\u90011\u4e2a\u5b57\u8282\u7684\u6570\u636e\ni2c.send(0, 0x68, 0x75)\n-- \u5f80i2c1\u53d1\u90012\u4e2a\u5b57\u8282\u7684\u6570\u636e\ni2c.send(1, 0x5C, string.char(0x0F, 0x2F))\ni2c.send(1, 0x5C, {0x0F, 0x2F})\n", "prefix": "i2c.send"}, "i2c.recv": {"body": "i2c.recv(${1:id},${2:addr},${3:len})", "description": "i2c.recv(id, addr, len) - i2c\u63a5\u6536\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nint \u8bbe\u5907id, \u4f8b\u5982i2c1\u7684id\u4e3a1, i2c2\u7684id\u4e3a2\nint I2C\u5b50\u8bbe\u5907\u7684\u5730\u5740, 7\u4f4d\u5730\u5740\nint \u63a5\u6536\u6570\u636e\u7684\u957f\u5ea6\n\u8fd4\u56de\u503c\uff1a\nstring \u6536\u5230\u7684\u6570\u636e\n\u4f8b\u5b50\uff1a\n-- \u4ecei2c1\u8bfb\u53d62\u4e2a\u5b57\u8282\u7684\u6570\u636e\nlocal data = i2c.recv(1, 0x5C, 2)\n", "prefix": "i2c.recv"}, "i2c.writeReg": {"body": "i2c.writeReg(${1:id},${2:addr},${3:reg},${4:data},${5:stop})", "description": "i2c.writeReg(id, addr, reg, data,stop) - i2c\u5199\u5bc4\u5b58\u5668\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nint \u8bbe\u5907id, \u4f8b\u5982i2c1\u7684id\u4e3a1, i2c2\u7684id\u4e3a2\nint I2C\u5b50\u8bbe\u5907\u7684\u5730\u5740, 7\u4f4d\u5730\u5740\nint \u5bc4\u5b58\u5668\u5730\u5740\nstring \u5f85\u53d1\u9001\u7684\u6570\u636e\ninteger \u53ef\u9009\u53c2\u6570 \u662f\u5426\u53d1\u9001\u505c\u6b62\u4f4d 1\u53d1\u9001 0\u4e0d\u53d1\u9001 \u9ed8\u8ba4\u53d1\u9001(105\u4e0d\u652f\u6301)\n\u8fd4\u56de\u503c\uff1a\ntrue/false \u53d1\u9001\u662f\u5426\u6210\u529f\n\u4f8b\u5b50\uff1a\n-- \u4ecei2c1\u7684\u5730\u5740\u4e3a0x5C\u7684\u8bbe\u5907\u7684\u5bc4\u5b58\u56680x01\u5199\u51652\u4e2a\u5b57\u8282\u7684\u6570\u636e\ni2c.writeReg(1, 0x5C, 0x01, string.char(0x00, 0xF2))\n", "prefix": "i2c.writeReg"}, "i2c.readReg": {"body": "i2c.readReg(${1:id},${2:addr},${3:reg},${4:len})", "description": "i2c.readReg(id, addr, reg, len) - i2c\u8bfb\u5bc4\u5b58\u5668\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nint \u8bbe\u5907id, \u4f8b\u5982i2c1\u7684id\u4e3a1, i2c2\u7684id\u4e3a2\nint I2C\u5b50\u8bbe\u5907\u7684\u5730\u5740, 7\u4f4d\u5730\u5740\nint \u5bc4\u5b58\u5668\u5730\u5740\nint \u5f85\u63a5\u6536\u7684\u6570\u636e\u957f\u5ea6\ninteger \u53ef\u9009\u53c2\u6570 \u662f\u5426\u53d1\u9001\u505c\u6b62\u4f4d 1\u53d1\u9001 0\u4e0d\u53d1\u9001 \u9ed8\u8ba4\u53d1\u9001(105\u4e0d\u652f\u6301)\n\u8fd4\u56de\u503c\uff1a\nstring \u6536\u5230\u7684\u6570\u636e\n\u4f8b\u5b50\uff1a\n-- \u4ecei2c1\u7684\u5730\u5740\u4e3a0x5C\u7684\u8bbe\u5907\u7684\u5bc4\u5b58\u56680x01\u8bfb\u51fa2\u4e2a\u5b57\u8282\u7684\u6570\u636e\ni2c.readReg(1, 0x5C, 0x01, 2)\n", "prefix": "i2c.readReg"}, "i2c.close": {"body": "i2c.close(${1:id})", "description": "i2c.close(id) - \u5173\u95edi2c\u8bbe\u5907\n\u4f20\u5165\u503c\uff1a\nint \u8bbe\u5907id, \u4f8b\u5982i2c1\u7684id\u4e3a1, i2c2\u7684id\u4e3a2\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n-- \u5173\u95edi2c1\ni2c.close(1)\n", "prefix": "i2c.close"}, "i2c.readDHT12": {"body": "i2c.readDHT12(${1:id})", "description": "i2c.readDHT12(id) - \u4ecei2c\u603b\u7ebf\u8bfb\u53d6DHT12\u7684\u6e29\u6e7f\u5ea6\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nint \u8bbe\u5907id, \u4f8b\u5982i2c1\u7684id\u4e3a1, i2c2\u7684id\u4e3a2\nint DHT12\u7684\u8bbe\u5907\u5730\u5740,\u9ed8\u8ba40x5C\n\u8fd4\u56de\u503c\uff1a\nboolean \u8bfb\u53d6\u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\nint \u6e7f\u5ea6\u503c,\u5355\u4f4d0.1%, \u4f8b\u5982 591 \u4ee3\u8868 59.1%\nint \u6e29\u5ea6\u503c,\u5355\u4f4d0.1\u6444\u6c0f\u5ea6, \u4f8b\u5982 292 \u4ee3\u8868 29.2\u6444\u6c0f\u5ea6\n\u4f8b\u5b50\uff1a\n-- \u4ecei2c0\u8bfb\u53d6DHT12\ni2c.setup(0)\nlocal re, H, T = i2c.readDHT12(0)\nif re then\n log.info(\"dht12\", H, T)\nend\n", "prefix": "i2c.readDHT12"}, "i2c.readSHT30": {"body": "i2c.readSHT30(${1:id},${2:addr})", "description": "i2c.readSHT30(id,addr) - \u4ecei2c\u603b\u7ebf\u8bfb\u53d6DHT30\u7684\u6e29\u6e7f\u5ea6\u6570\u636e(\u7531\"\u597d\u5947\u661f\"\u8d21\u732e)\n\u4f20\u5165\u503c\uff1a\nint \u8bbe\u5907id, \u4f8b\u5982i2c1\u7684id\u4e3a1, i2c2\u7684id\u4e3a2\nint \u8bbe\u5907addr,SHT30\u7684\u8bbe\u5907\u5730\u5740,\u9ed8\u8ba40x44 bit7\n\u8fd4\u56de\u503c\uff1a\nboolean \u8bfb\u53d6\u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\nint \u6e7f\u5ea6\u503c,\u5355\u4f4d0.1%, \u4f8b\u5982 591 \u4ee3\u8868 59.1%\nint \u6e29\u5ea6\u503c,\u5355\u4f4d0.1\u6444\u6c0f\u5ea6, \u4f8b\u5982 292 \u4ee3\u8868 29.2\u6444\u6c0f\u5ea6\n\u4f8b\u5b50\uff1a\n-- \u4ecei2c0\u8bfb\u53d6SHT30\ni2c.setup(0)\nlocal re, H, T = i2c.readSHT30(0)\nif re then\n log.info(\"sht30\", H, T)\nend\n", "prefix": "i2c.readSHT30"}, "i2c.transfer": {"body": "i2c.transfer(${1:id},${2:addr},${3:txBuff},${4:rxBuff},${5:rxLen})", "description": "i2c.transfer(id, addr, txBuff, rxBuff, rxLen) - i2c\u901a\u7528\u4f20\u8f93\uff0c\u5305\u62ec\u53d1\u9001N\u5b57\u8282\uff0c\u53d1\u9001N\u5b57\u8282+\u63a5\u6536N\u5b57\u8282\uff0c\u63a5\u6536N\u5b57\u8282\u4e09\u79cd\u529f\u80fd\uff0c\u5728\u53d1\u9001\u8f6c\u63a5\u6536\u8fc7\u7a0b\u4e2d\u53d1\u9001reStart\u4fe1\u53f7,\u89e3\u51b3\u7c7b\u4f3cmlx90614\u5fc5\u987b\u5e26restart\u4fe1\u53f7\uff0c\u4f46\u662f\u53c8\u4e0d\u80fd\u7528i2c.send\u6765\u63a7\u5236\u7684\uff0c\u6bd4\u5982air105\n\u4f20\u5165\u503c\uff1a\nint \u8bbe\u5907id, \u4f8b\u5982i2c1\u7684id\u4e3a1, i2c2\u7684id\u4e3a2\nint I2C\u5b50\u8bbe\u5907\u7684\u5730\u5740, 7\u4f4d\u5730\u5740\ninteger/string/zbuff \u5f85\u53d1\u9001\u7684\u6570\u636e,\u81ea\u9002\u5e94\u53c2\u6570\u7c7b\u578b\uff0c\u5982\u679c\u4e3anil\uff0c\u5219\u4e0d\u53d1\u9001\u6570\u636e\nzbuff \u5f85\u63a5\u6536\u6570\u636e\u7684zbuff \u5982\u679c\u4e0d\u7528zbuff\uff0c\u5219\u63a5\u6536\u6570\u636e\u5c06\u5728return\u8fd4\u56de\nint \u9700\u8981\u63a5\u6536\u7684\u6570\u636e\u957f\u5ea6\uff0c\u5982\u679c\u4e3a0\u6216nil\uff0c\u5219\u4e0d\u63a5\u6536\u6570\u636e\n\u8fd4\u56de\u503c\uff1a\nboolean true/false \u53d1\u9001\u662f\u5426\u6210\u529f\nstring or nil \u5982\u679c\u53c2\u65705\u662finterger\uff0c\u5219\u8fd4\u56de\u63a5\u6536\u5230\u7684\u6570\u636e\n\u4f8b\u5b50\uff1a\nlocal result, _ = i2c.transfer(0, 0x11, txbuff, rxbuff, 1)\nlocal result, _ = i2c.transfer(0, 0x11, txbuff, nil, 0)\t--\u53ea\u53d1\u9001txbuff\u91cc\u7684\u6570\u636e\uff0c\u4e0d\u63a5\u6536\u6570\u636e\uff0c\u5178\u578b\u5e94\u7528\u5c31\u662f\u5199\u5bc4\u5b58\u5668\u4e86\uff0c\u8fd9\u91cc\u5bc4\u5b58\u5668\u5730\u5740\u548c\u503c\u90fd\u653e\u5728\u4e86txbuff\u91cc\nlocal result, _ = i2c.transfer(0, 0x11, \"\\x01\\x02\\x03\", nil, 1) --\u53d1\u90010x01\uff0c 0x02\uff0c0x03\uff0c\u4e0d\u63a5\u6536\u6570\u636e\uff0c\u5982\u679c\u662feeprom\uff0c\u5c31\u662f\u5f800x01\u7684\u5730\u5740\u519902\u548c03\uff0c\u6216\u8005\u5f800x0102\u7684\u5730\u5740\u519903\uff0c\u770b\u5177\u4f53\u82af\u7247\u4e86\nlocal result, rxdata = i2c.transfer(0, 0x11, \"\\x01\\x02\", nil, 1) --\u53d1\u90010x01\uff0c 0x02\uff0c\u7136\u540e\u63a5\u65361\u4e2a\u5b57\u8282\uff0c\u5178\u578b\u5e94\u7528\u5c31\u662feeprom\nlocal result, rxdata = i2c.transfer(0, 0x11, 0x00, nil, 1) --\u53d1\u90010x00\uff0c\u7136\u540e\u63a5\u65361\u4e2a\u5b57\u8282\uff0c\u5178\u578b\u5e94\u7528\u5404\u79cd\u4f20\u611f\u5668\n", "prefix": "i2c.transfer"}, "i2c.xfer": {"body": "i2c.xfer(${1:id},${2:addr},${3:txBuff},${4:rxBuff},${5:rxLen},${6:transfer_done_topic},${7:timeout})", "description": "i2c.xfer(id, addr, txBuff, rxBuff, rxLen, transfer_done_topic, timeout) - i2c\u975e\u963b\u585e\u901a\u7528\u4f20\u8f93\uff0c\u7c7b\u4f3ctransfer\uff0c\u4f46\u662f\u4e0d\u4f1a\u7b49\u5230I2C\u4f20\u8f93\u5b8c\u6210\u624d\u8fd4\u56de\uff0c\u8c03\u7528\u672c\u51fd\u6570\u4f1a\u7acb\u523b\u8fd4\u56de\uff0cI2C\u4f20\u8f93\u5b8c\u6210\u540e\uff0c\u901a\u8fc7\u6d88\u606f\u56de\u8c03\n\u4f20\u5165\u503c\uff1a\nint \u8bbe\u5907id, \u4f8b\u5982i2c1\u7684id\u4e3a1, i2c2\u7684id\u4e3a2\nint I2C\u5b50\u8bbe\u5907\u7684\u5730\u5740, 7\u4f4d\u5730\u5740\nzbuff \u5f85\u53d1\u9001\u7684\u6570\u636e\uff0c\u7531\u4e8e\u7528\u7684\u975e\u963b\u585e\u6a21\u578b\uff0c\u4e3a\u4fdd\u8bc1\u52a8\u6001\u6570\u636e\u7684\u6709\u6548\u6027\uff0c\u53ea\u80fd\u4f7f\u7528zbuff\uff0c\u53d1\u9001\u7684\u6570\u636e\u4ecezbuff.addr\u5f00\u59cb\uff0c\u957f\u5ea6\u4e3azbuff.used\nzbuff \u5f85\u63a5\u6536\u6570\u636e\u7684zbuff\uff0c\u5982\u679c\u4e3anil\uff0c\u5219\u5ffd\u7565\u540e\u9762\u53c2\u6570\uff0c \u4e0d\u63a5\u6536\u6570\u636e\u3002\u63a5\u6536\u7684\u6570\u636e\u4f1a\u653e\u5728zbuff.addr\u5f00\u59cb\u7684\u4f4d\u7f6e\uff0c\u4f1a\u8986\u76d6\u6389\u4e4b\u524d\u7684\u6570\u636e\uff0c\u6ce8\u610fzhuff\u7684\u9884\u7559\u7a7a\u95f4\u8981\u8db3\u591f\nint \u9700\u8981\u63a5\u6536\u7684\u6570\u636e\u957f\u5ea6\uff0c\u5982\u679c\u4e3a0\u6216nil\uff0c\u5219\u4e0d\u63a5\u6536\u6570\u636e\nstring \u4f20\u8f93\u5b8c\u6210\u540e\u56de\u8c03\u7684\u6d88\u606f\nint \u8d85\u65f6\u65f6\u95f4\uff0c\u5982\u679c\u586bnil\uff0c\u5219\u4e3a100ms\n\u8fd4\u56de\u503c\uff1a\nboolean true/false \u672c\u6b21\u4f20\u8f93\u662f\u5426\u6b63\u786e\u542f\u52a8\uff0ctrue\uff0c\u542f\u52a8\uff0cfalse\uff0c\u6709\u9519\u8bef\u65e0\u6cd5\u542f\u52a8\u3002\u4f20\u8f93\u5b8c\u6210\u4f1a\u53d1\u5e03\u6d88\u606ftransfer_done_topic\u548cboolean\u578b\u7ed3\u679c\n\u4f8b\u5b50\uff1a\nlocal result = i2c.xfer(0, 0x11, txbuff, rxbuff, 1, \"I2CDONE\") if result then result, i2c_id, succ, error_code = sys.waitUntil(\"I2CDONE\") end if not result or not succ then log.info(\"i2c fail, error code\", error_code) else log.info(\"i2c ok\") end\n\n", "prefix": "i2c.xfer"}, "i2c.scan": {"body": "i2c.scan(${1:id})", "description": "i2c.scan(id) - \u626b\u63cfi2c\u8bbe\u5907\n\u4f20\u5165\u503c\uff1a\nint \u8bbe\u5907id, \u4f8b\u5982i2c1\u7684id\u4e3a1, i2c2\u7684id\u4e3a2\n\u8fd4\u56de\u503c\uff1a\nnil \u5f53\u524d\u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n-- \u672c\u51fd\u6570\u4e8e2023.07.04\u6dfb\u52a0\n-- \u8fd9\u4e2a\u51fd\u6570\u7684\u4e3b\u8981\u76ee\u6807\u662f\u4e3a\u4e86\u5728\u5f00\u53d1\u671f\u626b\u63cfi2c\u8bbe\u5907\n-- \u6709\u4e9bBSP\u5728\u6307\u5b9aaddr\u65e0\u54cd\u5e94\u65f6\u4f1a\u8f93\u51fa\u65e5\u5fd7,\u5bfc\u81f4\u8f93\u51fa\u4f1a\u88ab\u6253\u4e71\ni2c.scan()\n", "prefix": "i2c.scan"}, "i2s.setup": {"body": "i2s.setup(${1:id},${2:mode},${3:sample},${4:bitw},${5:channel},${6:format},${7:mclk})", "description": "i2s.setup(id, mode, sample, bitw, channel, format, mclk) - \u521d\u59cb\u5316i2s\n\u4f20\u5165\u503c\uff1a\nint i2s\u901a\u9053\u53f7,\u4e0e\u5177\u4f53\u8bbe\u5907\u6709\u5173\nint \u6a21\u5f0f, \u5f53\u524d\u4ec5\u652f\u63010, MASTER|TX|RX \u6a21\u5f0f, \u6682\u4e0d\u652f\u6301slave. \u53ef\u9009\nint \u91c7\u6837\u7387,\u9ed8\u8ba444100. \u53ef\u9009\nint \u6570\u636e\u4f4d\u6570,\u9ed8\u8ba416, \u53ef\u4ee5\u662f8\u7684\u500d\u6570\nint \u58f0\u9053, 0 \u5de6\u58f0\u9053, 1 \u53f3\u58f0\u9053, 2 \u53cc\u58f0\u9053. \u53ef\u9009\nint \u683c\u5f0f, \u53ef\u9009MODE_I2S, MODE_LSB, MODE_MSB\nint mclk\u9891\u7387, \u9ed8\u8ba4 8M. \u53ef\u9009\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u4e0e\u5426\nint \u5e95\u5c42\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n-- \u4ee5\u9ed8\u8ba4\u53c2\u6570\u521d\u59cb\u5316i2s\ni2s.setup(0)\n-- \u4ee5\u8be6\u7ec6\u53c2\u6570\u521d\u59cb\u5316i2s, \u793a\u4f8b\u4e3a\u9ed8\u8ba4\u503c\ni2s.setup(0, 0, 44100, 16, 0, 0, 8000000)\n", "prefix": "i2s.setup"}, "i2s.send": {"body": "i2s.send(${1:id},${2:data},${3:len})", "description": "i2s.send(id, data, len) - \u53d1\u9001i2s\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nint \u901a\u9053id\nstring \u6570\u636e, \u53ef\u4ee5\u662f\u5b57\u7b26\u4e32\u6216zbuff\nint \u6570\u636e\u957f\u5ea6,\u5355\u4f4d\u5b57\u8282, \u5b57\u7b26\u4e32\u9ed8\u8ba4\u4e3a\u5b57\u7b26\u4e32\u5168\u957f, zbuff\u9ed8\u8ba4\u4e3a\u6307\u9488\u4f4d\u7f6e\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u4e0e\u5426\nint \u5e95\u5c42\u8fd4\u56de\u503c,\u4f9b\u8c03\u8bd5\u7528\n\u4f8b\u5b50\uff1a\nlocal f = io.open(\"/luadb/abc.wav\")\nwhile 1 do\n local data = f:read(4096)\n if not data or #data == 0 then\n break\n end\n i2s.send(0, data)\n sys.wait(100)\nend\n", "prefix": "i2s.send"}, "i2s.recv": {"body": "i2s.recv(${1:id},${2:buffer},${3:len})", "description": "i2s.recv(id, buffer, len) - \u63a5\u6536i2s\u6570\u636e\uff0c\u6ce8\u610f\u5728\u6570\u636e\u5728\u56de\u8c03\u65f6\u5df2\u7ecf\u5b58\u653e\u5728zbuff\u91cc\uff0c\u76ee\u524d\u53ea\u6709air780e\u7cfb\u5217\u652f\u6301\n\u4f20\u5165\u503c\uff1a\nint \u901a\u9053id\nzbuff \u6570\u636e\u7f13\u5b58\u533a\nint \u5355\u6b21\u8fd4\u56de\u7684\u6570\u636e\u957f\u5ea6,\u5355\u4f4d\u5b57\u8282,\u5fc5\u987b\u4e0e\u4f20\u5165\u7684zbuff\u7684\u5927\u5c0f\u4e00\u81f4\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u4e0e\u5426\n\u4f8b\u5b50\uff1a\nlocal buffer = zbuff.create(3200)\nlocal succ = i2s.recv(0, buffer, 3200);\n", "prefix": "i2s.recv"}, "i2s.close": {"body": "i2s.close(${1:id})", "description": "i2s.close(id) - \u5173\u95edi2s\n\u4f20\u5165\u503c\uff1a\nint \u901a\u9053id\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\ni2s.close(0)\n", "prefix": "i2s.close"}, "i2s.on": {"body": "i2s.on(${1:id},${2:func})", "description": "i2s.on(id, func) - \u6ce8\u518cI2S\u4e8b\u4ef6\u56de\u8c03\n\u4f20\u5165\u503c\uff1a\nint i2s id, i2s0\u51990, i2s1\u51991\nfunction \u56de\u8c03\u65b9\u6cd5\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\ni2s.on(0, function(id, buff)\n\tif buff then\n\t\tlog.info(\"i2s get data in zbuff\")\n\telse\n\t\tlog.info(\"i2s tx one block done\")\n\tend\nend)\n", "prefix": "i2s.on"}, "i2s.txStat": {"body": "i2s.txStat(${1:id})", "description": "i2s.txStat(id) - \u83b7\u53d6i2s\u7684\u53d1\u9001\u7f13\u51b2\u533a\u72b6\u6001\n\u4f20\u5165\u503c\uff1a\nint i2s id, i2s0\u51990, i2s1\u51991\nreturn \u5e95\u5c42\u7f13\u51b2\u533a\u7684\u603b\u5927\u5c0f\nreturn \u5e95\u5c42\u7f13\u51b2\u533a\u7684\u5269\u4f59\u5f85\u53d1\u9001\u6570\u636e\n\u4f8b\u5b50\uff1a\n-- \u8bfb\u53d6\u53d1\u9001\u7f13\u51b2\u533a\u7684\u72b6\u6001, \u4ece\u800c\u5224\u65ad\u662f\u5426\u9700\u8981\u7ee7\u7eed\u4f20\u5165\u97f3\u9891\u6570\u636e\nlocal max, remain = i2s.txStat(0)\nlog.info(\"i2s\u53d1\u9001\u7f13\u51b2\u533a\u72b6\u6001\", max, remain)\n", "prefix": "i2s.txStat"}, "iconv.open": {"body": "iconv.open(${1:tocode},${2:fromcode})", "description": "iconv.open(tocode, fromcode) - \u6253\u5f00\u76f8\u5e94\u5b57\u7b26\u7f16\u7801\u8f6c\u6362\u51fd\u6570\n\u4f20\u5165\u503c\uff1a\nstring tocode$\u76ee\u6807\u7f16\u7801\u683c\u5f0f$gb2312/ucs2/ucs2be/utf8\nstring fromcode$\u6e90\u7f16\u7801\u683c\u5f0f$gb2312/ucs2/ucs2be/utf8\nreturn table$cd$\u7f16\u7801\u8f6c\u6362\u51fd\u6570\u7684\u8f6c\u6362\u53e5\u67c4$ \n\u4f8b\u5b50\uff1a\n--unicode\u5927\u7aef\u7f16\u7801 \u8f6c\u5316\u4e3a utf8\u7f16\u7801\nlocal cd = iconv.open(\"utf8\", \"ucs2be\")\n", "prefix": "iconv.open"}, "iconv:iconv": {"body": "iconv:iconv(${1:inbuf})", "description": "iconv:iconv(inbuf) - \u5b57\u7b26\u7f16\u7801\u8f6c\u6362\n\u4f20\u5165\u503c\uff1a\nstring \u91ca\u4e49\uff1a\u5f85\u8f6c\u6362\u5b57\u7b26\u4e32\n\u8fd4\u56de\u503c\uff1a\nnumber \u91ca\u4e49\uff1a\u8fd4\u56de\u7f16\u7801\u8f6c\u6362\u540e\u7684\u7ed3\u679c
    \u53d6\u503c\uff1a0\u6210\u529f,-1\u5931\u8d25\n\u4f8b\u5b50\uff1a\n--unicode\u5927\u7aef\u7f16\u7801 \u8f6c\u5316\u4e3a utf8\u7f16\u7801\nfunction ucs2beToUtf8(ucs2s)\n local iconv = iconv.open(\"utf8\", \"ucs2be\")\n return iconv:iconv(ucs2s)\nend\n", "prefix": "iconv:iconv"}, "cd:iconv": {"body": "cd:iconv(${1:inbuf})", "description": "cd:iconv(inbuf) - \u5b57\u7b26\u7f16\u7801\u8f6c\u6362\n\u4f20\u5165\u503c\uff1a\nstring inbuf$\u8f93\u5165\u5b57\u7b26\u4e32$\u4f8b\u5982:ucs2s \nreturn number$result$\u8fd4\u56de\u7f16\u7801\u8f6c\u6362\u540e\u7684\u7ed3\u679c$0\u6210\u529f,-1\u5931\u8d25\n\u4f8b\u5b50\uff1a\n--unicode\u5927\u7aef\u7f16\u7801 \u8f6c\u5316\u4e3a utf8\u7f16\u7801\nfunction ucs2beToUtf8(ucs2s)\n local cd = iconv.open(\"utf8\", \"ucs2be\")\n return cd:iconv(ucs2s)\nend\n", "prefix": "cd:iconv"}, "iconv.close": {"body": "iconv.close(${1:cd})", "description": "iconv.close(cd) - \u5173\u95ed\u5b57\u7b26\u7f16\u7801\u8f6c\u6362\n\u4f20\u5165\u503c\uff1a\nstring cd$iconv.open\u8fd4\u56de\u7684\u53e5\u67c4$ \nreturn \n\u4f8b\u5b50\uff1a\n--\u5173\u95ed\u5b57\u7b26\u7f16\u7801\u8f6c\u6362\nlocal cd = iconv.open(\"utf8\", \"ucs2be\")\niconv.close(cd)\n", "prefix": "iconv.close"}, "io.exists": {"body": "io.exists(${1:path})", "description": "io.exists(path) - \u5224\u65ad\u6587\u4ef6\u662f\u5426\u5b58\u5728\n\u4f20\u5165\u503c\uff1a\nstring \u6587\u4ef6\u8def\u5f84\n\u8fd4\u56de\u503c\uff1a\nbool \u5b58\u5728\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\nlog.info(\"io\", \"file exists\", io.exists(\"/boottime\"))\n", "prefix": "io.exists"}, "io.fileSize": {"body": "io.fileSize(${1:path})", "description": "io.fileSize(path) - \u83b7\u53d6\u6587\u4ef6\u5927\u5c0f\n\u4f20\u5165\u503c\uff1a\nstring \u6587\u4ef6\u8def\u5f84\n\u8fd4\u56de\u503c\uff1a\nint \u6587\u4ef6\u6570\u636e,\u82e5\u6587\u4ef6\u4e0d\u5b58\u5728\u4f1a\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\nlocal fsize = io.fileSize(\"/bootime\")\nif fsize and fsize > 1024 then\n log.info(\"io\", \"file size\", fsize)\nend\n", "prefix": "io.fileSize"}, "io.readFile": {"body": "io.readFile(${1:path},${2:mode},${3:offset},${4:len})", "description": "io.readFile(path, mode, offset, len) - \u8bfb\u53d6\u6574\u4e2a\u6587\u4ef6,\u8bf7\u6ce8\u610f\u5185\u5b58\u6d88\u8017\n\u4f20\u5165\u503c\uff1a\nstring \u6587\u4ef6\u8def\u5f84\nstring \u8bfb\u53d6\u6a21\u5f0f, \u9ed8\u8ba4 \"rb\"\nint \u8d77\u59cb\u4f4d\u7f6e,\u9ed8\u8ba40\nint \u8bfb\u53d6\u957f\u5ea6,\u9ed8\u8ba4\u6574\u4e2a\u6587\u4ef6\n\u8fd4\u56de\u503c\uff1a\nstring \u6587\u4ef6\u6570\u636e,\u82e5\u6587\u4ef6\u4e0d\u5b58\u5728\u4f1a\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\nlocal data = io.readFile(\"/bootime\")\n-- \u6ce8\u610f: offset\u548clen\u53c2\u6570\u662f 2023.6.6\u6dfb\u52a0\u7684\n-- \u8bfb\u53d6abc.txt, \u5148\u8df3\u8fc7128\u5b57\u8282, \u7136\u540e\u8bfb\u53d6512\u5b57\u8282\u6570\u636e\nlocal data = io.readFile(\"/abc.txt\", \"rb\", 128, 512)\n", "prefix": "io.readFile"}, "io.writeFile": {"body": "io.writeFile(${1:path},${2:data})", "description": "io.writeFile(path, data) - \u5c06\u6570\u636e\u5199\u5165\u6587\u4ef6\n\u4f20\u5165\u503c\uff1a\nstring \u6587\u4ef6\u8def\u5f84\nstring \u6570\u636e\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u8fd4\u56detrue, \u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\nio.writeFile(\"/bootime\", \"1\")\n", "prefix": "io.writeFile"}, "io.fill": {"body": "io.fill(${1:buff},${2:offset},${3:len})", "description": "io.fill(buff, offset, len) - \u8bfb\u53d6\u6587\u4ef6\u5e76\u586b\u5145\u5230zbuff\u5185,\u4f46\u4e0d\u79fb\u52a8\u6307\u9488\u4f4d\u7f6e\n\u4f20\u5165\u503c\uff1a\nuserdata zbuff\u5b9e\u4f53\nint \u5199\u5165\u7684\u4f4d\u7f6e,\u9ed8\u8ba4\u662f0\nint \u5199\u5165\u7684\u957f\u5ea6,\u9ed8\u8ba4\u662fzbuff\u7684len\u51cf\u53bboffset\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\nint \u8fd4\u56de\u5b9e\u9645\u8bfb\u53d6\u5230\u7684\u957f\u5ea6\uff0c\u5982\u679c\u5c0f\u4e8e0\u4e5f\u8bf4\u660e\u662f\u8bfb\u53d6\u5931\u8d25\u4e86\n\u4f8b\u5b50\uff1a\nlocal buff = zbuff.create(1024)\nlocal f = io.open(\"/sd/test.txt\")\nif f then\n f:fill(buff)\nend\n", "prefix": "io.fill"}, "io.mkfs": {"body": "io.mkfs(${1:path})", "description": "io.mkfs(path) - \u683c\u5f0f\u5316\u6587\u4ef6\u7cfb\u7edf,\u9700\u6307\u5b9a\u6302\u8f7d\u70b9\n\u4f20\u5165\u503c\uff1a\nstring \u6302\u8f7d\u70b9\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u4e0e\u5426\nint \u5e95\u5c42\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\nlocal ret, errio = io.mkfs(\"/sd\")\nlog.info(\"fs\", \"mkfs\", ret, errio)\n", "prefix": "io.mkfs"}, "io.mkdir": {"body": "io.mkdir(${1:path})", "description": "io.mkdir(path) - \u521b\u5efa\u6587\u4ef6\u5939\n\u4f20\u5165\u503c\uff1a\nstring \u9700\u8981\u5efa\u7acb\u7684\u76ee\u5f55\u8def\u5f84\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u4e0e\u5426\nint \u5e95\u5c42\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\nlocal ret, errio = io.mkdir(\"/data/\")\nlog.info(\"fs\", \"mkdir\", ret, errio)\n", "prefix": "io.mkdir"}, "io.rmdir": {"body": "io.rmdir(${1:path})", "description": "io.rmdir(path) - \u5220\u9664\u6587\u4ef6\u5939\n\u4f20\u5165\u503c\uff1a\nstring \u9700\u8981\u79fb\u9664\u7684\u76ee\u5f55\u8def\u5f84\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u4e0e\u5426\nint \u5e95\u5c42\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\nlocal ret, errio = io.rmdir(\"/data/\")\nlog.info(\"fs\", \"rmdir\", ret, errio)\n", "prefix": "io.rmdir"}, "io.lsdir": {"body": "io.lsdir(${1:path},${2:len},${3:offset})", "description": "io.lsdir(path, len, offset) - \u5217\u51fa\u76ee\u5f55\u4e0b\u7684\u6587\u4ef6\n\u4f20\u5165\u503c\uff1a\nstring \u9700\u8981\u679a\u4e3e\u7684\u76ee\u5f55\u8def\u5f84\nint \u6700\u5927\u957f\u5ea6, \u9ed8\u8ba410, \u6700\u9ad850\nint \u504f\u79fb\u91cf, \u9ed8\u8ba40, \u5f53\u76ee\u5f55\u6587\u4ef6\u5f88\u591a\u65f6\u5206\u9875\u67e5\u8be2\u7528\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u4e0e\u5426\nint \u5e95\u5c42\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\nlocal ret, data = io.lsdir(\"/data/\", 10, 0)\nif ret then\n log.info(\"fs\", \"lsdir\", json.encode(data))\nelse\n log.info(\"fs\", \"lsdir\", \"fail\", ret, data)\nend\n", "prefix": "io.lsdir"}, "io.lsmount": {"body": "io.lsmount()", "description": "io.lsmount() - \u5217\u51fa\u6240\u6709\u6302\u8f7d\u70b9\n\u8fd4\u56de\u503c\uff1a\ntable \u6302\u8f7d\u70b9\u5217\u8868\n\u4f8b\u5b50\uff1a\nlocal data = io.lsmount()\nlog.info(\"fs\", \"lsmount\", json.encode(data))\n", "prefix": "io.lsmount"}, "ioqueue.init": {"body": "ioqueue.init(${1:hwtimer_id},${2:cmd_cnt},${3:repeat_cnt})", "description": "ioqueue.init(hwtimer_id,cmd_cnt,repeat_cnt) - \u521d\u59cb\u5316\u4e00\u4e2aio\u64cd\u4f5c\u961f\u5217\n\u4f20\u5165\u503c\uff1a\nint \u786c\u4ef6\u5b9a\u65f6\u5668id\uff0c\u9ed8\u8ba4\u75280\uff0c\u6839\u636e\u5b9e\u9645MCU\u786e\u5b9a\uff0cair105\u4e3a0~5\uff0c\u4e0epwm\u5171\u7528\uff0c\u540c\u4e00\u4e2a\u901a\u9053\u53f7\u4e0d\u80fd\u540c\u65f6\u4e3apwm\u548cioqueue\nint \u4e00\u4e2a\u5b8c\u6574\u5468\u671f\u9700\u8981\u7684\u547d\u4ee4\uff0c\u53ef\u4ee5\u6bd4\u5b9e\u9645\u7684\u591a\nint \u91cd\u590d\u6b21\u6570,\u9ed8\u8ba4\u662f1\uff0c\u5982\u679c\u51990\u5219\u8868\u793a\u65e0\u9650\u6b21\u6570\u5faa\u73af\nreturn \u65e0\n\u4f8b\u5b50\uff1a\nioqueue.init(0,10,5) --\u4ee5timer0\u4e3a\u65f6\u949f\u6e90\u521d\u59cb\u5316\u4e00\u4e2aio\u64cd\u4f5c\u961f\u5217\uff0c\u670910\u4e2a\u6709\u6548\u547d\u4ee4\uff0c\u5faa\u73af5\u6b21\n", "prefix": "ioqueue.init"}, "ioqueue.setdelay": {"body": "ioqueue.setdelay(${1:hwtimer_id},${2:time_us},${3:time_tick},${4:continue})", "description": "ioqueue.setdelay(hwtimer_id,time_us,time_tick,continue) - \u5bf9io\u64cd\u4f5c\u961f\u5217\u589e\u52a0\u5ef6\u65f6\u547d\u4ee4\n\u4f20\u5165\u503c\uff1a\nint \u786c\u4ef6\u5b9a\u65f6\u5668id\nint \u5ef6\u65f6\u65f6\u95f4,0~65535us\nint \u5ef6\u65f6\u5fae\u8c03\u65f6\u95f4,0~255tick,\u603b\u7684\u5ef6\u65f6\u65f6\u95f4\u662ftime_us * 1us_tick + time_tick\nboolean \u662f\u5426\u8fde\u7eed\u662f\u8fde\u7eed\u5ef6\u65f6\uff0c\u9ed8\u8ba4\u5426\uff0c\u5982\u679c\u662f\uff0c\u5b9a\u65f6\u5668\u5728\u65f6\u95f4\u5230\u540e\u4e0d\u4f1a\u505c\u6b62\u800c\u662f\u91cd\u65b0\u8ba1\u65f6\uff0c\n", "prefix": "ioqueue.setdelay"}, "ioqueue.delay": {"body": "ioqueue.delay(${1:hwtimer_id})", "description": "ioqueue.delay(hwtimer_id) - \u5bf9io\u64cd\u4f5c\u961f\u5217\u589e\u52a0\u4e00\u6b21\u91cd\u590d\u5ef6\u65f6\uff0c\u5728\u524d\u9762\u5fc5\u987b\u6709setdelay\u4e14\u662f\u8fde\u7eed\u5ef6\u65f6\n\u4f20\u5165\u503c\uff1a\nint \u786c\u4ef6\u5b9a\u65f6\u5668id\nreturn \u65e0\n\u4f8b\u5b50\uff1a\nioqueue.setdelay(0,9,15,true) --\u5ef6\u65f69us+15\u4e2atick,\u5728\u4e4b\u540e\u9047\u5230delay\u547d\u4ee4\u65f6\uff0c\u4f1a\u5ef6\u65f69us+15\u4e2atick\nioqueue.delay(0)\n", "prefix": "ioqueue.delay"}, "ioqueue.setgpio": {"body": "ioqueue.setgpio(${1:hwtimer_id},${2:pin},${3:is_input},${4:pull_mode},${5:init_level})", "description": "ioqueue.setgpio(hwtimer_id,pin,is_input,pull_mode,init_level) - \u5bf9io\u64cd\u4f5c\u961f\u5217\u589e\u52a0\u8bbe\u7f6egpio\u547d\u4ee4\n\u4f20\u5165\u503c\uff1a\nint \u786c\u4ef6\u5b9a\u65f6\u5668id\nint pin\nboolean \u662f\u5426\u662f\u8f93\u5165\nint \u4e0a\u4e0b\u62c9\u6a21\u5f0f,\u53ea\u80fd\u662f0,gpio.PULLUP,gpio.PULLDOWN\nint \u521d\u59cb\u8f93\u51fa\u7535\u5e73\nreturn \u65e0\n\u4f8b\u5b50\uff1a\nioqueue.setgpio(0,pin.PB01,true,gpio.PULLUP,0) --PB01\u8bbe\u7f6e\u6210\u4e0a\u62c9\u8f93\u5165\nioqueue.setgpio(0,pin.PB01,false,0,1)--PB01\u8bbe\u7f6e\u6210\u9ed8\u8ba4\u4e0a\u4e0b\u62c9\u8f93\u51fa\u9ad8\u7535\u5e73\n", "prefix": "ioqueue.setgpio"}, "ioqueue.input": {"body": "ioqueue.input(${1:hwtimer_id},${2:pin})", "description": "ioqueue.input(hwtimer_id,pin) - \u5bf9io\u64cd\u4f5c\u961f\u5217\u589e\u52a0\u8bfb\u53d6gpio\u547d\u4ee4\n\u4f20\u5165\u503c\uff1a\nint \u786c\u4ef6\u5b9a\u65f6\u5668id\nint pin\nreturn \u65e0\n\u4f8b\u5b50\uff1a\nioqueue.input(0,pin.PB01)\n\n", "prefix": "ioqueue.input"}, "ioqueue.output": {"body": "ioqueue.output(${1:hwtimer_id},${2:pin},${3:level})", "description": "ioqueue.output(hwtimer_id,pin,level) - \u5bf9io\u64cd\u4f5c\u961f\u5217\u589e\u52a0\u8f93\u51faGPIO\u547d\u4ee4\n\u4f20\u5165\u503c\uff1a\nint \u786c\u4ef6\u5b9a\u65f6\u5668id\nint pin\nint \u8f93\u51fa\u7535\u5e73\nreturn \u65e0\n\u4f8b\u5b50\uff1a\nioqueue.output(0,pin.PB01,0)\n", "prefix": "ioqueue.output"}, "ioqueue.setcap": {"body": "ioqueue.setcap(${1:hwtimer_id},${2:pin},${3:pull_mode},${4:irq_mode},${5:max_tick})", "description": "ioqueue.setcap(hwtimer_id,pin,pull_mode,irq_mode,max_tick) - \u5bf9io\u64cd\u4f5c\u961f\u5217\u589e\u52a0\u8bbe\u7f6e\u6355\u83b7\u67d0\u4e2aIO\u547d\u4ee4\n\u4f20\u5165\u503c\uff1a\nint \u786c\u4ef6\u5b9a\u65f6\u5668id\nint pin\nint \u4e0a\u4e0b\u62c9\u6a21\u5f0f,\u53ea\u80fd\u662f0,gpio.PULLUP,gpio.PULLDOWN\nint \u4e2d\u65ad\u6a21\u5f0f,\u53ea\u80fd\u662fgpio.BOTH,gpio.RISING,gpio.FALLING\nint \u5b9a\u65f6\u5668\u6700\u5927\u8ba1\u65f6\u65f6\u95f4 \u8003\u8651\u5230lua\u662fint\u7c7b\u578b\uff0c\u6700\u5c0f0x10000, \u6700\u5927\u503c\u4e3a0x7fffffff\uff0c\u9ed8\u8ba4\u4e3a\u6700\u5927\u503c\nreturn \u65e0\n\u4f8b\u5b50\uff1a\nioqueue.setcap(0,pin.PB01,gpio.PULLUP,gpio.FALLING,48000000)\n", "prefix": "ioqueue.setcap"}, "ioqueue.capture": {"body": "ioqueue.capture(${1:hwtimer_id})", "description": "ioqueue.capture(hwtimer_id) - \u5bf9io\u64cd\u4f5c\u961f\u5217\u589e\u52a0\u6355\u83b7\u4e00\u6b21IO\u72b6\u6001\u547d\u4ee4\n\u4f20\u5165\u503c\uff1a\nint \u786c\u4ef6\u5b9a\u65f6\u5668id\nreturn \u65e0\n\u4f8b\u5b50\uff1a\nioqueue.capture(0)\n", "prefix": "ioqueue.capture"}, "ioqueue.capend": {"body": "ioqueue.capend(${1:hwtimer_id},${2:pin})", "description": "ioqueue.capend(hwtimer_id,pin) - \u5bf9io\u64cd\u4f5c\u961f\u5217\u589e\u52a0\u7ed3\u675f\u6355\u83b7\u67d0\u4e2aIO\u547d\u4ee4\n\u4f20\u5165\u503c\uff1a\nint \u786c\u4ef6\u5b9a\u65f6\u5668id\nint pin\nreturn \u65e0\n\u4f8b\u5b50\uff1a\nioqueue.capend(0,pin.PB01)\n", "prefix": "ioqueue.capend"}, "ioqueue.get": {"body": "ioqueue.get(${1:hwtimer_id},${2:input_buff},${3:capture_buff})", "description": "ioqueue.get(hwtimer_id, input_buff, capture_buff) - * \u83b7\u53d6io\u64cd\u4f5c\u961f\u5217\u4e2d\u8f93\u5165\u548c\u6355\u83b7\u7684\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nint \u786c\u4ef6\u5b9a\u65f6\u5668id\nzbuff \u5b58\u653eIO\u8f93\u5165\u6570\u636e\u7684buff\uff0c\u6309\u71671byte pin + 1byte level \u5f62\u5f0f\u5b58\u653e\u6570\u636e\nzbuff \u5b58\u653eIO\u6355\u83b7\u6570\u636e\u7684buff\uff0c\u6309\u71671byte pin + 1byte level + 4byte tick\u5f62\u5f0f\u5b58\u653e\u6570\u636e\n\u8fd4\u56de\u503c\uff1a\nint \u8fd4\u56de\u591a\u5c11\u7ec4IO\u8f93\u5165\u6570\u636e\nint \u8fd4\u56de\u591a\u5c11\u7ec4IO\u6355\u83b7\u6570\u636e\n\u4f8b\u5b50\uff1a\nlocal input_cnt, capture_cnt = ioqueue.get(0, input_buff, capture_buff)\n", "prefix": "ioqueue.get"}, "ioqueue.start": {"body": "ioqueue.start(${1:hwtimer_id})", "description": "ioqueue.start(hwtimer_id) - \u542f\u52a8io\u64cd\u4f5c\u961f\u5217\n\u4f20\u5165\u503c\uff1a\nint \u786c\u4ef6\u5b9a\u65f6\u5668id\nreturn \u65e0\n\u4f8b\u5b50\uff1a\nioqueue.start(0)\n", "prefix": "ioqueue.start"}, "ioqueue.stop": {"body": "ioqueue.stop(${1:hwtimer_id})", "description": "ioqueue.stop(hwtimer_id) - \u505c\u6b62io\u64cd\u4f5c\u961f\u5217\uff0c\u53ef\u4ee5\u901a\u8fc7start\u4ece\u5934\u5f00\u59cb\n\u4f20\u5165\u503c\uff1a\nint \u786c\u4ef6\u5b9a\u65f6\u5668id\n\u8fd4\u56de\u503c\uff1a\nint \u8fd4\u56de\u5df2\u7ecf\u5faa\u73af\u7684\u6b21\u6570\uff0c\u5982\u679c\u662f0\uff0c\u8868\u793a\u4e00\u6b21\u5faa\u73af\u90fd\u6ca1\u6709\u5b8c\u6210\nint \u8fd4\u56de\u5355\u6b21\u5faa\u73af\u4e2d\u5df2\u7ecf\u6267\u884c\u7684cmd\u6b21\u6570\uff0c\u5982\u679c\u662f0\uff0c\u53ef\u80fd\u662f\u4e00\u6b21\u5faa\u73af\u521a\u521a\u7ed3\u675f\n\u4f8b\u5b50\uff1a\nioqueue.stop(0)\n", "prefix": "ioqueue.stop"}, "ioqueue.release": {"body": "ioqueue.release(${1:hwtimer_id})", "description": "ioqueue.release(hwtimer_id) - \u91ca\u653eio\u64cd\u4f5c\u961f\u5217\u7684\u8d44\u6e90\uff0c\u4e0b\u6b21\u4f7f\u7528\u5fc5\u987b\u91cd\u65b0init\n\u4f20\u5165\u503c\uff1a\nint \u786c\u4ef6\u5b9a\u65f6\u5668id\nreturn \u65e0\n\u4f8b\u5b50\uff1a\nioqueue.clear(0)\n", "prefix": "ioqueue.release"}, "ioqueue.clear": {"body": "ioqueue.clear(${1:hwtimer_id})", "description": "ioqueue.clear(hwtimer_id) - \u6e05\u7a7aio\u64cd\u4f5c\u961f\u5217\n\u4f20\u5165\u503c\uff1a\nint \u786c\u4ef6\u5b9a\u65f6\u5668id\nreturn \u65e0\n\u4f8b\u5b50\uff1a\nioqueue.clear(0)\n", "prefix": "ioqueue.clear"}, "ioqueue.done": {"body": "ioqueue.done(${1:hwtimer_id})", "description": "ioqueue.done(hwtimer_id) - \u68c0\u6d4bio\u64cd\u4f5c\u961f\u5217\u662f\u5426\u5df2\u7ecf\u6267\u884c\u5b8c\u6210\n\u4f20\u5165\u503c\uff1a\nint \u786c\u4ef6\u5b9a\u65f6\u5668id\n\u8fd4\u56de\u503c\uff1a\nboolean \u961f\u5217\u662f\u5426\u6267\u884c\u5b8c\u6210\uff0c\n\u4f8b\u5b50\uff1a\nlocal result = ioqueue.done(0)\n", "prefix": "ioqueue.done"}, "ioqueue.exti": {"body": "ioqueue.exti(${1:pin},${2:pull_mode},${3:irq_mode},${4:onoff})", "description": "ioqueue.exti(pin,pull_mode,irq_mode,onoff) - \u542f\u52a8/\u505c\u6b62\u4e00\u4e2a\u5e26\u7cfb\u7edftick\u8fd4\u56de\u7684\u5916\u90e8\u4e2d\u65ad\n\u4f20\u5165\u503c\uff1a\nint pin\nint \u4e0a\u4e0b\u62c9\u6a21\u5f0f,\u53ea\u80fd\u662f0,gpio.PULLUP,gpio.PULLDOWN\nint \u4e2d\u65ad\u6a21\u5f0f,\u53ea\u80fd\u662fgpio.BOTH,gpio.RISING,gpio.FALLING\nboolean \u5f00\u5173\uff0c\u9ed8\u8ba4\u662ffalse\u5173\nreturn \u65e0\n\u4f8b\u5b50\uff1a\nioqueue.exti(pin.PB01, gpio.PULLUP, gpio.BOTH, true)\nioqueue.exti(pin.PB01)\n", "prefix": "ioqueue.exti"}, "iotauth.aliyun": {"body": "iotauth.aliyun(${1:product_key},${2:device_name},${3:device_secret},${4:method},${5:cur_timestamp})", "description": "iotauth.aliyun(product_key, device_name,device_secret,method,cur_timestamp) - \u963f\u91cc\u4e91\u7269\u8054\u7f51\u5e73\u53f0\u4e09\u5143\u7ec4\u751f\u6210\n\u4f20\u5165\u503c\uff1a\nstring product_key\nstring device_name\nstring device_secret\nstring method \u52a0\u5bc6\u65b9\u5f0f,\"hmacmd5\" \"hmacsha1\" \"hmacsha256\" \u53ef\u9009,\u9ed8\u8ba4\"hmacmd5\"\nnumber cur_timestamp \u53ef\u9009 \u9ed8\u8ba4\u4e3a 32472115200(2999-01-01 0:0:0)\nbool istls \u662f\u5426TLS\u76f4\u8fde true:TLS\u76f4\u8fde false:TCP\u76f4\u8fde\u6a21\u5f0f \u9ed8\u8ba4TCP\u76f4\u8fde\u6a21\u5f0f\n\u8fd4\u56de\u503c\uff1a\nstring mqtt\u4e09\u5143\u7ec4 client_id\nstring mqtt\u4e09\u5143\u7ec4 user_name\nstring mqtt\u4e09\u5143\u7ec4 password\n\u4f8b\u5b50\uff1a\nlocal client_id,user_name,password = iotauth.aliyun(\"123456789\",\"abcdefg\",\"Y877Bgo8X5owd3lcB5wWDjryNPoB\")\nprint(client_id,user_name,password)\n", "prefix": "iotauth.aliyun"}, "iotauth.onenet": {"body": "iotauth.onenet(${1:produt_id},${2:device_name},${3:key},${4:method},${5:cur_timestamp},${6:version})", "description": "iotauth.onenet(produt_id, device_name,key,method,cur_timestamp,version) - \u4e2d\u56fd\u79fb\u52a8\u7269\u8054\u7f51\u5e73\u53f0\u4e09\u5143\u7ec4\u751f\u6210\n\u4f20\u5165\u503c\uff1a\nstring produt_id\nstring device_name\nstring key\nstring method \u52a0\u5bc6\u65b9\u5f0f,\"md5\" \"sha1\" \"sha256\" \u53ef\u9009,\u9ed8\u8ba4\"md5\"\nnumber cur_timestamp \u53ef\u9009 \u9ed8\u8ba4\u4e3a 32472115200(2999-01-01 0:0:0)\nstring version \u53ef\u9009 \u9ed8\u8ba4\"2018-10-31\"\n\u8fd4\u56de\u503c\uff1a\nstring mqtt\u4e09\u5143\u7ec4 client_id\nstring mqtt\u4e09\u5143\u7ec4 user_name\nstring mqtt\u4e09\u5143\u7ec4 password\n\u4f8b\u5b50\uff1a\nlocal client_id,user_name,password = iotauth.onenet(\"123456789\",\"test\",\"KuF3NT/jUBJ62LNBB/A8XZA9CqS3Cu79B/ABmfA1UCw=\")\nprint(client_id,user_name,password)\n", "prefix": "iotauth.onenet"}, "iotauth.iotda": {"body": "iotauth.iotda(${1:device_id},${2:device_secret},${3:cur_timestamp})", "description": "iotauth.iotda(device_id,device_secret,cur_timestamp) - \u534e\u4e3a\u7269\u8054\u7f51\u5e73\u53f0\u4e09\u5143\u7ec4\u751f\u6210\n\u4f20\u5165\u503c\uff1a\nstring device_id\nstring device_secret\nnumber cur_timestamp \u53ef\u9009 \u5982\u4e0d\u586b\u5219\u4e0d\u6821\u9a8c\u65f6\u95f4\u6233\n\u8fd4\u56de\u503c\uff1a\nstring mqtt\u4e09\u5143\u7ec4 client_id\nstring mqtt\u4e09\u5143\u7ec4 user_name\nstring mqtt\u4e09\u5143\u7ec4 password\n\u4f8b\u5b50\uff1a\nlocal client_id,user_name,password = iotauth.iotda(\"6203cc94c7fb24029b110408_88888888\",\"123456789\")\nprint(client_id,user_name,password)\n", "prefix": "iotauth.iotda"}, "iotauth.qcloud": {"body": "iotauth.qcloud(${1:product_id},${2:device_name},${3:device_secret},${4:method},${5:cur_timestamp},${6:sdk_appid})", "description": "iotauth.qcloud(product_id, device_name,device_secret,method,cur_timestamp,sdk_appid) - \u817e\u8baf\u8054\u7f51\u5e73\u53f0\u4e09\u5143\u7ec4\u751f\u6210\n\u4f20\u5165\u503c\uff1a\nstring \u4ea7\u54c1id,\u521b\u5efa\u9879\u76ee\u540e\u53ef\u4ee5\u67e5\u770b\u5230,\u7c7b\u4f3c\u4e8eLD8S5J1L07\nstring \u8bbe\u5907\u540d\u79f0,\u4f8b\u5982\u8bbe\u5907\u7684imei\u53f7\nstring \u8bbe\u5907\u5bc6\u94a5,\u521b\u5efa\u8bbe\u5907\u540e,\u67e5\u770b\u8bbe\u5907\u8be6\u60c5\u53ef\u5f97\u5230\nstring method \u52a0\u5bc6\u65b9\u5f0f,\"sha1\" \"sha256\" \u53ef\u9009,\u9ed8\u8ba4\"sha256\"\nnumber cur_timestamp \u53ef\u9009 \u9ed8\u8ba4\u4e3a 32472115200(2999-01-01 0:0:0)\nstring sdk_appid \u53ef\u9009 \u9ed8\u8ba4\u4e3a\"12010126\"\n\u8fd4\u56de\u503c\uff1a\nstring mqtt\u4e09\u5143\u7ec4 client_id\nstring mqtt\u4e09\u5143\u7ec4 user_name\nstring mqtt\u4e09\u5143\u7ec4 password\n\u4f8b\u5b50\uff1a\nlocal client_id,user_name,password = iotauth.qcloud(\"LD8S5J1L07\",\"test\",\"acyv3QDJrRa0fW5UE58KnQ==\")\nprint(client_id,user_name,password)\n", "prefix": "iotauth.qcloud"}, "iotauth.tuya": {"body": "iotauth.tuya(${1:device_id},${2:device_secret},${3:cur_timestamp})", "description": "iotauth.tuya(device_id,device_secret,cur_timestamp) - \u6d82\u9e26\u8054\u7f51\u5e73\u53f0\u4e09\u5143\u7ec4\u751f\u6210\n\u4f20\u5165\u503c\uff1a\nstring device_id\nstring device_secret\nnumber cur_timestamp \u53ef\u9009 \u9ed8\u8ba47258089600(2200-01-01 0:0:0)\n\u8fd4\u56de\u503c\uff1a\nstring mqtt\u4e09\u5143\u7ec4 client_id\nstring mqtt\u4e09\u5143\u7ec4 user_name\nstring mqtt\u4e09\u5143\u7ec4 password\n\u4f8b\u5b50\uff1a\nlocal client_id,user_name,password = iotauth.tuya(\"6c95875d0f5ba69607nzfl\",\"fb803786602df760\")\nprint(client_id,user_name,password)\n", "prefix": "iotauth.tuya"}, "iotauth.baidu": {"body": "iotauth.baidu(${1:iot_core_id},${2:device_key},${3:device_secret},${4:method},${5:cur_timestamp})", "description": "iotauth.baidu(iot_core_id, device_key,device_secret,method,cur_timestamp) - \u767e\u5ea6\u7269\u8054\u7f51\u5e73\u53f0\u4e09\u5143\u7ec4\u751f\u6210\n\u4f20\u5165\u503c\uff1a\nstring iot_core_id\nstring device_key\nstring device_secret\nstring method \u52a0\u5bc6\u65b9\u5f0f,\"MD5\" \"SHA256\" \u53ef\u9009,\u9ed8\u8ba4\"MD5\"\nnumber cur_timestamp \u53ef\u9009 \u5982\u4e0d\u586b\u5219\u4e0d\u6821\u9a8c\u65f6\u95f4\u6233\n\u8fd4\u56de\u503c\uff1a\nstring mqtt\u4e09\u5143\u7ec4 client_id\nstring mqtt\u4e09\u5143\u7ec4 user_name\nstring mqtt\u4e09\u5143\u7ec4 password\n\u4f8b\u5b50\uff1a\nlocal client_id,user_name,password = iotauth.baidu(\"abcd123\",\"mydevice\",\"ImSeCrEt0I1M2jkl\")\nprint(client_id,user_name,password)\n", "prefix": "iotauth.baidu"}, "ir.sendNEC": {"body": "ir.sendNEC(${1:pin},${2:addr},${3:cmd},${4:repeat},${5:disablePWM})", "description": "ir.sendNEC(pin, addr, cmd, repeat, disablePWM) - \u53d1\u9001NEC\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nint \u4f7f\u7528\u7684GPIO\u5f15\u811a\u7f16\u53f7\nint \u7528\u6237\u7801\uff08\u5927\u4e8e0xff\u5219\u91c7\u7528Extended NEC\u6a21\u5f0f\uff09\nint \u6570\u636e\u7801\nint \u53ef\u9009\uff0c\u5f15\u5bfc\u7801\u53d1\u9001\u6b21\u6570\uff08110ms\u4e00\u6b21\uff09\uff0c\u9ed8\u8ba40\u6b21\nbool \u53ef\u9009\uff0c\u662f\u5426\u7981\u6b62\u76f4\u63a5\u53d1\u9001pwm\u6ce2\uff0c\u9ed8\u8ba4false\n\u4f8b\u5b50\uff1a\n--\u76f4\u63a5\u53d1\nir.sendNEC(0, 0x11, 0x22)\n--\u5916\u63a5\u4e8638K\u7684PWM\u8f7d\u6ce2\uff0c\u53ea\u63a7\u5236\u7535\u5e73\nir.sendNEC(0, 0x11, 0x22,0,true)\n", "prefix": "ir.sendNEC"}, "json.encode": {"body": "json.encode(${1:obj},${2:t})", "description": "json.encode(obj,t) - \u5c06\u5bf9\u8c61\u5e8f\u5217\u5316\u4e3ajson\u5b57\u7b26\u4e32\n\u4f20\u5165\u503c\uff1a\nobj \u9700\u8981\u5e8f\u5217\u5316\u7684\u5bf9\u8c61\nstring \u6d6e\u70b9\u6570\u7cbe\u5ea6\u548c\u6a21\u5f0f,\u8fd9\u9879\u4e0d\u5b58\u5728\u7684\u65f6\u5019,\u4e3a\u9ed8\u8ba4\u503c\"7g\",\u6570\u5b57\u53ea\u652f\u6301\"0~14\",\u6a21\u5f0f\u53ea\u652f\u6301\"f/g\"\n\u8fd4\u56de\u503c\uff1a\nstring \u5e8f\u5217\u5316\u540e\u7684json\u5b57\u7b26\u4e32, \u5931\u8d25\u7684\u8bdd\u8fd4\u56denil\nstring \u5e8f\u5217\u5316\u5931\u8d25\u7684\u62a5\u9519\u4fe1\u606f\n\u4f8b\u5b50\uff1a\njson.encode(obj)-->\u6d6e\u70b9\u6570\u7528%.7g\u7684\u65b9\u5f0f\u8f6c\u6362\u4e3a\u5b57\u7b26\u4e32\njson.encode(obj,\"12f\")-->\u6d6e\u70b9\u6570\u7528%.12f\u7684\u65b9\u5f0f\u8f6c\u6362\u4e3a\u5b57\u7b26\u4e32\n", "prefix": "json.encode"}, "json.decode": {"body": "json.decode(${1:str})", "description": "json.decode(str) - \u5c06\u5b57\u7b26\u4e32\u53cd\u5e8f\u5217\u5316\u4e3a\u5bf9\u8c61\n\u4f20\u5165\u503c\uff1a\nstring \u9700\u8981\u53cd\u5e8f\u5217\u5316\u7684json\u5b57\u7b26\u4e32\n\u8fd4\u56de\u503c\uff1a\nobj \u53cd\u5e8f\u5217\u5316\u540e\u7684\u5bf9\u8c61(\u901a\u5e38\u662ftable), \u5931\u8d25\u7684\u8bdd\u8fd4\u56denil\nresult \u6210\u529f\u8fd4\u56de1,\u5426\u5219\u8fd4\u56de0\nerr \u53cd\u5e8f\u5217\u5316\u5931\u8d25\u7684\u62a5\u9519\u4fe1\u606f\n\u4f8b\u5b50\uff1a\njson.decode(\"[1,2,3,4,5,6]\")\n", "prefix": "json.decode"}, "keyboard.init": {"body": "keyboard.init(${1:port},${2:conf},${3:map},${4:debounce})", "description": "keyboard.init(port, conf, map, debounce) - \u521d\u59cb\u5316\u952e\u76d8\u77e9\u9635\n\u4f20\u5165\u503c\uff1a\nint \u9884\u7559, \u5f53\u524d\u586b0\nint \u542f\u7528\u7684keyboard\u7ba1\u811a\u63a9\u7801, \u4f8b\u5982\u4f7f\u7528keyboard0~9, \u5219\u63a9\u7801\u4e3a 0x1FF, \u82e5\u4f7f\u7528 0~3 \u5219 0xF\nint keyboard\u7ba1\u811a\u65b9\u5411\u6620\u5c04, \u5176\u4e2d\u8f93\u5165\u4e3a0,\u8f93\u51fa\u4e3a1, \u6309\u4f4d\u8bbe\u7f6e. \u4f8b\u5982 keyboard0~3\u4f5c\u4e3a\u8f93\u5165, keyboard4~7\u4e3a\u8f93\u5165, \u5219 0xF0\nint \u6d88\u6296\u914d\u7f6e,\u9884\u7559,\u53ef\u4ee5\u4e0d\u586b\n\u4f8b\u5b50\uff1a\n-- \u505a\u4e00\u4e2a 4*4 \u952e\u76d8\u77e9\u9635, \u4f7f\u7528 keyboard0~7, \u5176\u4e2d0~3\u505a\u8f93\u5165, 4~7\u505a\u8f93\u51fa\n-- \u4f7f\u7528 keyboard0~7, \u5bf9\u5e94conf\u4e3a 0xFF\n-- \u5176\u4e2d0~3\u505a\u8f93\u5165, 4~7\u505a\u8f93\u51fa, \u5bf9\u5e94map \u4e3a 0xF0\nkeyboard.init(0, 0xFF, 0xF0)\n\n-- \u505a\u4e00\u4e2a 2*3 \u952e\u76d8\u77e9\u9635, \u4f7f\u7528 keyboard0~4, \u5176\u4e2d0~1\u505a\u8f93\u5165, 2~4\u505a\u8f93\u51fa\n-- \u4f7f\u7528 keyboard0~4, \u4e8c\u8fdb\u5236\u4e3a 11111, \u5bf9\u5e94conf\u7684\u5341\u516d\u8fdb\u5236\u8868\u8fbe\u4e3a 0x1F\n-- \u5176\u4e2d0~1\u505a\u8f93\u5165, 2~4\u505a\u8f93\u51fa, \u4e8c\u8fdb\u5236\u4e3a 11100 \u5bf9\u5e94map \u4e3a 0x14\n-- keyboard.init(0, 0xFF, 0x14)\n\nsys.subscribe(\"KB_INC\", function(port, data, state)\n -- port \u5f53\u524d\u56fa\u5b9a\u4e3a0, \u53ef\u4ee5\u65e0\u89c6\n -- data, \u9700\u8981\u914d\u5408init\u7684map\u8fdb\u884c\u89e3\u6790\n -- state, 1 \u4e3a\u6309\u4e0b, 0 \u4e3a \u91ca\u653e\n -- TODO \u8be6\u7ec6\u4ecb\u7ecd\nend)\n", "prefix": "keyboard.init"}, "lcd.init": {"body": "lcd.init(${1:tp},${2:args})", "description": "lcd.init(tp, args) - lcd\u663e\u793a\u5c4f\u521d\u59cb\u5316\n\u4f20\u5165\u503c\uff1a\nstring lcd\u7c7b\u578b\uff0c\u5f53\u524d\u652f\u6301\uff1a
    st7796
    st7789
    st7735
    st7735v
    st7735s
    gc9a01
    gc9106l
    gc9306x
    ili9486
    custom\ntable \u9644\u52a0\u53c2\u6570,\u4e0e\u5177\u4f53\u8bbe\u5907\u6709\u5173\uff1a
    pin_pwr\uff08\u80cc\u5149\uff09\u4e3a\u53ef\u9009\u9879,\u53ef\u4e0d\u8bbe\u7f6e
    port\uff1aspi\u7aef\u53e3,\u4f8b\u59820,1,2...\u5982\u679c\u4e3adevice\u65b9\u5f0f\u5219\u4e3a\"device\"
    pin_dc\uff1alcd\u6570\u636e/\u547d\u4ee4\u9009\u62e9\u5f15\u811a
    pin_rst\uff1alcd\u590d\u4f4d\u5f15\u811a
    pin_pwr\uff1alcd\u80cc\u5149\u5f15\u811a \u53ef\u9009\u9879,\u53ef\u4e0d\u8bbe\u7f6e
    direction\uff1alcd\u5c4f\u5e55\u65b9\u5411 0:0\u00b0 1:180\u00b0 2:270\u00b0 3:90\u00b0
    w\uff1alcd \u6c34\u5e73\u5206\u8fa8\u7387
    h\uff1alcd \u7ad6\u76f4\u5206\u8fa8\u7387
    xoffset\uff1ax\u504f\u79fb(\u4e0d\u540c\u5c4f\u5e55ic \u4e0d\u540c\u5c4f\u5e55\u65b9\u5411\u4f1a\u6709\u5dee\u5f02)
    yoffset\uff1ay\u504f\u79fb(\u4e0d\u540c\u5c4f\u5e55ic \u4e0d\u540c\u5c4f\u5e55\u65b9\u5411\u4f1a\u6709\u5dee\u5f02)\nuserdata spi\u8bbe\u5907,\u5f53port = \"device\"\u65f6\u6709\u6548\n\u4f8b\u5b50\uff1a\n-- \u521d\u59cb\u5316spi0\u7684st7735s \u6ce8\u610f:lcd\u521d\u59cb\u5316\u4e4b\u524d\u9700\u8981\u5148\u521d\u59cb\u5316spi\nspi_lcd = spi.deviceSetup(0,20,0,0,8,2000000,spi.MSB,1,1)\nlog.info(\"lcd.init\",\nlcd.init(\"st7735s\",{port = \"device\",pin_dc = 17, pin_pwr = 7,pin_rst = 19,direction = 2,w = 160,h = 80,xoffset = 1,yoffset = 26},spi_lcd))\n", "prefix": "lcd.init"}, "lcd.close": {"body": "lcd.close()", "description": "lcd.close() - \u5173\u95edlcd\u663e\u793a\u5c4f\n\u4f8b\u5b50\uff1a\n-- \u5173\u95edlcd\nlcd.close()\n", "prefix": "lcd.close"}, "lcd.on": {"body": "lcd.on()", "description": "lcd.on() - \u5f00\u542flcd\u663e\u793a\u5c4f\u80cc\u5149\n\u4f8b\u5b50\uff1a\n-- \u5f00\u542flcd\u663e\u793a\u5c4f\u80cc\u5149\nlcd.on()\n", "prefix": "lcd.on"}, "lcd.off": {"body": "lcd.off()", "description": "lcd.off() - \u5173\u95edlcd\u663e\u793a\u5c4f\u80cc\u5149\n\u4f8b\u5b50\uff1a\n-- \u5173\u95edlcd\u663e\u793a\u5c4f\u80cc\u5149\nlcd.off()\n", "prefix": "lcd.off"}, "lcd.sleep": {"body": "lcd.sleep()", "description": "lcd.sleep() - lcd\u7761\u7720\n\u4f8b\u5b50\uff1a\n-- lcd\u7761\u7720\nlcd.sleep()\n", "prefix": "lcd.sleep"}, "lcd.wakeup": {"body": "lcd.wakeup()", "description": "lcd.wakeup() - lcd\u5524\u9192\n\u4f8b\u5b50\uff1a\n-- lcd\u5524\u9192\nlcd.wakeup()\n", "prefix": "lcd.wakeup"}, "lcd.invon": {"body": "lcd.invon()", "description": "lcd.invon() - lcd\u53cd\u663e\n\u4f8b\u5b50\uff1a\n-- lcd\u53cd\u663e\nlcd.invon()\n", "prefix": "lcd.invon"}, "lcd.invoff": {"body": "lcd.invoff()", "description": "lcd.invoff() - lcd\u53cd\u663e\u5173\u95ed\n\u4f8b\u5b50\uff1a\n-- lcd\u53cd\u663e\u5173\u95ed\nlcd.invoff()\n", "prefix": "lcd.invoff"}, "lcd.cmd": {"body": "lcd.cmd(${1:cmd})", "description": "lcd.cmd(cmd) - lcd\u547d\u4ee4\n\u4f20\u5165\u503c\uff1a\nint cmd\n\u4f8b\u5b50\uff1a\n-- lcd\u547d\u4ee4\nlcd.cmd(0x21)\n", "prefix": "lcd.cmd"}, "lcd.data": {"body": "lcd.data(${1:data})", "description": "lcd.data(data) - lcd\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nint data\n\u4f8b\u5b50\uff1a\n-- lcd\u6570\u636e\nlcd.data(0x21)\n", "prefix": "lcd.data"}, "lcd.setColor": {"body": "lcd.setColor(${1:back},${2:fore})", "description": "lcd.setColor(back,fore) - lcd\u989c\u8272\u8bbe\u7f6e\n\u4f20\u5165\u503c\uff1a\nint \u80cc\u666f\u8272\nint \u524d\u666f\u8272\n\u4f8b\u5b50\uff1a\n-- lcd\u989c\u8272\u8bbe\u7f6e\nlcd.setColor(0xFFFF,0x0000)\n", "prefix": "lcd.setColor"}, "lcd.draw": {"body": "lcd.draw(${1:x1},${2:y1},${3:x2},${4:y2},${5:color})", "description": "lcd.draw(x1, y1, x2, y2,color) - lcd\u989c\u8272\u586b\u5145\n\u4f20\u5165\u503c\uff1a\nint \u5de6\u4e0a\u8fb9\u7f18\u7684X\u4f4d\u7f6e.\nint \u5de6\u4e0a\u8fb9\u7f18\u7684Y\u4f4d\u7f6e.\nint \u53f3\u4e0b\u8fb9\u7f18\u7684X\u4f4d\u7f6e.\nint \u53f3\u4e0b\u8fb9\u7f18\u7684Y\u4f4d\u7f6e.\nstring \u5b57\u7b26\u4e32\u6216zbuff\u5bf9\u8c61\n\u4f8b\u5b50\uff1a\n-- lcd\u989c\u8272\u586b\u5145\nlocal buff = zbuff.create({201,1,16},0x001F)\nlcd.draw(20,30,220,30,buff)\n", "prefix": "lcd.draw"}, "lcd.clear": {"body": "lcd.clear(${1:color})", "description": "lcd.clear(color) - lcd\u6e05\u5c4f\n\u4f20\u5165\u503c\uff1a\nint \u5c4f\u5e55\u989c\u8272 \u53ef\u9009\u53c2\u6570,\u9ed8\u8ba4\u80cc\u666f\u8272\n\u4f8b\u5b50\uff1a\n-- lcd\u6e05\u5c4f\nlcd.clear()\n", "prefix": "lcd.clear"}, "lcd.fill": {"body": "lcd.fill(${1:x1},${2:y1},${3:x2},${4:y2},${5:color})", "description": "lcd.fill(x1, y1, x2, y2,color) - lcd\u989c\u8272\u586b\u5145\n\u4f20\u5165\u503c\uff1a\nint \u5de6\u4e0a\u8fb9\u7f18\u7684X\u4f4d\u7f6e.\nint \u5de6\u4e0a\u8fb9\u7f18\u7684Y\u4f4d\u7f6e.\nint \u53f3\u4e0b\u8fb9\u7f18\u7684X\u4f4d\u7f6e,\u4e0d\u542b\nint \u53f3\u4e0b\u8fb9\u7f18\u7684Y\u4f4d\u7f6e,\u4e0d\u542b\nint \u7ed8\u753b\u989c\u8272 \u53ef\u9009\u53c2\u6570,\u9ed8\u8ba4\u80cc\u666f\u8272\n\u4f8b\u5b50\uff1a\n-- lcd\u989c\u8272\u586b\u5145\nlcd.fill(20,30,220,30,0x0000)\n", "prefix": "lcd.fill"}, "lcd.drawPoint": {"body": "lcd.drawPoint(${1:x0},${2:y0},${3:color})", "description": "lcd.drawPoint(x0,y0,color) - \u753b\u4e00\u4e2a\u70b9.\n\u4f20\u5165\u503c\uff1a\nint \u70b9\u7684X\u4f4d\u7f6e.\nint \u70b9\u7684Y\u4f4d\u7f6e.\nint \u7ed8\u753b\u989c\u8272 \u53ef\u9009\u53c2\u6570,\u9ed8\u8ba4\u524d\u666f\u8272\n\u4f8b\u5b50\uff1a\nlcd.drawPoint(20,30,0x001F)\n", "prefix": "lcd.drawPoint"}, "lcd.drawLine": {"body": "lcd.drawLine(${1:x0},${2:y0},${3:x1},${4:y1},${5:color})", "description": "lcd.drawLine(x0,y0,x1,y1,color) - \u5728\u4e24\u70b9\u4e4b\u95f4\u753b\u4e00\u6761\u7ebf.\n\u4f20\u5165\u503c\uff1a\nint \u7b2c\u4e00\u4e2a\u70b9\u7684X\u4f4d\u7f6e.\nint \u7b2c\u4e00\u4e2a\u70b9\u7684Y\u4f4d\u7f6e.\nint \u7b2c\u4e8c\u4e2a\u70b9\u7684X\u4f4d\u7f6e.\nint \u7b2c\u4e8c\u4e2a\u70b9\u7684Y\u4f4d\u7f6e.\nint \u7ed8\u753b\u989c\u8272 \u53ef\u9009\u53c2\u6570,\u9ed8\u8ba4\u524d\u666f\u8272\n\u4f8b\u5b50\uff1a\nlcd.drawLine(20,30,220,30,0x001F)\n", "prefix": "lcd.drawLine"}, "lcd.drawRectangle": {"body": "lcd.drawRectangle(${1:x0},${2:y0},${3:x1},${4:y1},${5:color})", "description": "lcd.drawRectangle(x0,y0,x1,y1,color) - \u4ecex / y\u4f4d\u7f6e\uff08\u5de6\u4e0a\u8fb9\u7f18\uff09\u5f00\u59cb\u7ed8\u5236\u4e00\u4e2a\u6846\n\u4f20\u5165\u503c\uff1a\nint \u5de6\u4e0a\u8fb9\u7f18\u7684X\u4f4d\u7f6e.\nint \u5de6\u4e0a\u8fb9\u7f18\u7684Y\u4f4d\u7f6e.\nint \u53f3\u4e0b\u8fb9\u7f18\u7684X\u4f4d\u7f6e.\nint \u53f3\u4e0b\u8fb9\u7f18\u7684Y\u4f4d\u7f6e.\nint \u7ed8\u753b\u989c\u8272 \u53ef\u9009\u53c2\u6570,\u9ed8\u8ba4\u524d\u666f\u8272\n\u4f8b\u5b50\uff1a\nlcd.drawRectangle(20,40,220,80,0x001F)\n", "prefix": "lcd.drawRectangle"}, "lcd.drawCircle": {"body": "lcd.drawCircle(${1:x0},${2:y0},${3:r},${4:color})", "description": "lcd.drawCircle(x0,y0,r,color) - \u4ecex / y\u4f4d\u7f6e\uff08\u5706\u5fc3\uff09\u5f00\u59cb\u7ed8\u5236\u4e00\u4e2a\u5706\n\u4f20\u5165\u503c\uff1a\nint \u5706\u5fc3\u7684X\u4f4d\u7f6e.\nint \u5706\u5fc3\u7684Y\u4f4d\u7f6e.\nint \u534a\u5f84.\nint \u7ed8\u753b\u989c\u8272 \u53ef\u9009\u53c2\u6570,\u9ed8\u8ba4\u524d\u666f\u8272\n\u4f8b\u5b50\uff1a\nlcd.drawCircle(120,120,20,0x001F)\n", "prefix": "lcd.drawCircle"}, "lcd.drawQrcode": {"body": "lcd.drawQrcode(${1:x},${2:y},${3:str},${4:size})", "description": "lcd.drawQrcode(x, y, str, size) - \u7f13\u51b2\u533a\u7ed8\u5236QRCode\n\u4f20\u5165\u503c\uff1a\nint x\u5750\u6807\nint y\u5750\u6807\nstring \u4e8c\u7ef4\u7801\u7684\u5185\u5bb9\nint \u663e\u793a\u5927\u5c0f (\u6ce8\u610f:\u4e8c\u7ef4\u7801\u751f\u6210\u5927\u5c0f\u4e0e\u8981\u663e\u793a\u5185\u5bb9\u548c\u7ea0\u9519\u7b49\u7ea7\u6709\u5173,\u751f\u6210\u7248\u672c\u4e3a1-40(\u5bf9\u5e94 21x21 - 177x177)\u7684\u4e0d\u5b9a\u5927\u5c0f,\u5982\u679c\u548c\u8bbe\u7f6e\u5927\u5c0f\u4e0d\u540c\u4f1a\u81ea\u52a8\u5728\u6307\u5b9a\u7684\u533a\u57df\u4e2d\u95f4\u663e\u793a\u4e8c\u7ef4\u7801,\u5982\u4e8c\u7ef4\u7801\u672a\u663e\u793a\u8bf7\u67e5\u770b\u65e5\u5fd7\u63d0\u793a)\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n", "prefix": "lcd.drawQrcode"}, "lcd.setFont": {"body": "lcd.setFont(${1:font})", "description": "lcd.setFont(font) - \u8bbe\u7f6e\u5b57\u4f53\n\u4f20\u5165\u503c\uff1a\nint font lcd.font_XXX \u8bf7\u67e5\u9605\u5e38\u91cf\u8868\n\u4f8b\u5b50\uff1a\n-- \u8bbe\u7f6e\u4e3a\u5b57\u4f53,\u5bf9\u4e4b\u540e\u7684drawStr\u6709\u6548,\u8c03\u7528lcd.drawStr\u524d\u4e00\u5b9a\u8981\u5148\u8bbe\u7f6e\n\n-- \u82e5\u63d0\u793a \"only font pointer is allow\" , \u5219\u4ee3\u8868\u5f53\u524d\u56fa\u4ef6\u4e0d\u542b\u5bf9\u5e94\u5b57\u4f53, \u53ef\u4f7f\u7528\u4e91\u7f16\u8bd1\u670d\u52a1\u514d\u8d39\u5b9a\u5236\n-- \u4e91\u7f16\u8bd1\u6587\u6863: https://wiki.luatos.com/develop/compile/Cloud_compilation.html\n\n-- lcd\u5e93\u7684\u9ed8\u8ba4\u5b57\u4f53\u5747\u4ee5 lcd.font_ \u5f00\u5934\nlcd.setFont(lcd.font_opposansm12)\nlcd.drawStr(40,10,\"drawStr\")\nsys.wait(2000)\nlcd.setFont(lcd.font_opposansm12_chinese) -- \u5177\u4f53\u53d6\u503c\u53ef\u53c2\u8003api\u6587\u6863\u7684\u5e38\u91cf\u8868\nlcd.drawStr(40,40,\"drawStr\u6d4b\u8bd5\")\n", "prefix": "lcd.setFont"}, "lcd.drawStr": {"body": "lcd.drawStr(${1:x},${2:y},${3:str},${4:fg_color})", "description": "lcd.drawStr(x,y,str,fg_color) - \u663e\u793a\u5b57\u7b26\u4e32\n\u4f20\u5165\u503c\uff1a\nint x \u6a2a\u5750\u6807\nint y \u7ad6\u5750\u6807 \u6ce8\u610f:\u6b64(x,y)\u4e3a\u5de6\u4e0b\u8d77\u59cb\u5750\u6807\nstring str \u6587\u4ef6\u5185\u5bb9\nint fg_color str\u989c\u8272 \u6ce8\u610f:\u6b64\u53c2\u6570\u53ef\u9009\uff0c\u5982\u4e0d\u586b\u5199\u5219\u4f7f\u7528\u4e4b\u524d\u8bbe\u7f6e\u7684\u989c\u8272\uff0c\u7ed8\u5236\u53ea\u4f1a\u7ed8\u5236\u5b57\u4f53\u90e8\u5206\uff0c\u80cc\u666f\u9700\u8981\u81ea\u5df1\u6e05\u9664\n\u4f8b\u5b50\uff1a\n-- \u663e\u793a\u4e4b\u524d\u5148\u8bbe\u7f6e\u4e3a\u4e2d\u6587\u5b57\u4f53,\u5bf9\u4e4b\u540e\u7684drawStr\u6709\u6548\nlcd.setFont(lcd.font_opposansm12)\nlcd.drawStr(40,10,\"drawStr\")\nsys.wait(2000)\nlcd.setFont(lcd.font_opposansm16_chinese)\nlcd.drawStr(40,40,\"drawStr\u6d4b\u8bd5\")\n", "prefix": "lcd.drawStr"}, "lcd.drawGtfontGb2312": {"body": "lcd.drawGtfontGb2312(${1:str},${2:size},${3:x},${4:y})", "description": "lcd.drawGtfontGb2312(str,size,x,y) - \u4f7f\u7528gtfont\u663e\u793agb2312\u5b57\u7b26\u4e32\n\u4f20\u5165\u503c\uff1a\nstring str \u663e\u793a\u5b57\u7b26\u4e32\nint size \u5b57\u4f53\u5927\u5c0f (\u652f\u630116-192\u53f7\u5927\u5c0f\u5b57\u4f53)\nint x \u6a2a\u5750\u6807\nint y \u7ad6\u5750\u6807\n\u4f8b\u5b50\uff1a\n-- \u6ce8\u610f, gtfont\u662f\u989d\u5916\u7684\u5b57\u4f53\u82af\u7247\u786c\u4ef6, \u9700\u8981\u5916\u6302\u5728SPI\u603b\u7ebf\u624d\u80fd\u8c03\u7528\u672c\u51fd\u6570\u7684\nlcd.drawGtfontGb2312(\"\u554a\u554a\u554a\",32,0,0)\n", "prefix": "lcd.drawGtfontGb2312"}, "lcd.drawGtfontGb2312Gray": {"body": "lcd.drawGtfontGb2312Gray(${1:str},${2:size},${3:gray},${4:x},${5:y})", "description": "lcd.drawGtfontGb2312Gray(str,size,gray,x,y) - \u4f7f\u7528gtfont\u7070\u5ea6\u663e\u793agb2312\u5b57\u7b26\u4e32\n\u4f20\u5165\u503c\uff1a\nstring str \u663e\u793a\u5b57\u7b26\u4e32\nint size \u5b57\u4f53\u5927\u5c0f (\u652f\u630116-192\u53f7\u5927\u5c0f\u5b57\u4f53)\nint gray \u7070\u5ea6[1\u9636/2\u9636/3\u9636/4\u9636]\nint x \u6a2a\u5750\u6807\nint y \u7ad6\u5750\u6807\n\u4f8b\u5b50\uff1a\n-- \u6ce8\u610f, gtfont\u662f\u989d\u5916\u7684\u5b57\u4f53\u82af\u7247\u786c\u4ef6, \u9700\u8981\u5916\u6302\u5728SPI\u603b\u7ebf\u624d\u80fd\u8c03\u7528\u672c\u51fd\u6570\u7684\nlcd.drawGtfontGb2312Gray(\"\u554a\u554a\u554a\",32,4,0,40)\n", "prefix": "lcd.drawGtfontGb2312Gray"}, "lcd.drawGtfontUtf8": {"body": "lcd.drawGtfontUtf8(${1:str},${2:size},${3:x},${4:y})", "description": "lcd.drawGtfontUtf8(str,size,x,y) - \u4f7f\u7528gtfont\u663e\u793aUTF8\u5b57\u7b26\u4e32\n\u4f20\u5165\u503c\uff1a\nstring str \u663e\u793a\u5b57\u7b26\u4e32\nint size \u5b57\u4f53\u5927\u5c0f (\u652f\u630116-192\u53f7\u5927\u5c0f\u5b57\u4f53)\nint x \u6a2a\u5750\u6807\nint y \u7ad6\u5750\u6807\n\u4f8b\u5b50\uff1a\nlcd.drawGtfontUtf8(\"\u554a\u554a\u554a\",32,0,0)\n", "prefix": "lcd.drawGtfontUtf8"}, "lcd.drawGtfontUtf8Gray": {"body": "lcd.drawGtfontUtf8Gray(${1:str},${2:size},${3:gray},${4:x},${5:y})", "description": "lcd.drawGtfontUtf8Gray(str,size,gray,x,y) - \u4f7f\u7528gtfont\u7070\u5ea6\u663e\u793aUTF8\u5b57\u7b26\u4e32\n\u4f20\u5165\u503c\uff1a\nstring str \u663e\u793a\u5b57\u7b26\u4e32\nint size \u5b57\u4f53\u5927\u5c0f (\u652f\u630116-192\u53f7\u5927\u5c0f\u5b57\u4f53)\nint gray \u7070\u5ea6[1\u9636/2\u9636/3\u9636/4\u9636]\nint x \u6a2a\u5750\u6807\nint y \u7ad6\u5750\u6807\n\u4f8b\u5b50\uff1a\nlcd.drawGtfontUtf8Gray(\"\u554a\u554a\u554a\",32,4,0,40)\n", "prefix": "lcd.drawGtfontUtf8Gray"}, "lcd.getSize": {"body": "lcd.getSize()", "description": "lcd.getSize() - \u83b7\u53d6\u5c4f\u5e55\u5c3a\u5bf8\n\u8fd4\u56de\u503c\uff1a\nint \u5bbd, \u5982\u679c\u672a\u521d\u59cb\u5316\u4f1a\u8fd4\u56de0\nint \u9ad8, \u5982\u679c\u672a\u521d\u59cb\u5316\u4f1a\u8fd4\u56de0\n\u4f8b\u5b50\uff1a\nlog.info(\"lcd\", \"size\", lcd.getSize())\n", "prefix": "lcd.getSize"}, "lcd.drawXbm": {"body": "lcd.drawXbm(${1:x},${2:y},${3:w},${4:h},${5:data})", "description": "lcd.drawXbm(x, y, w, h, data) - \u7ed8\u5236\u4f4d\u56fe\n\u4f20\u5165\u503c\uff1a\nint X\u5750\u6807\nint y\u5750\u6807\nint \u4f4d\u56fe\u5bbd\nint \u4f4d\u56fe\u9ad8\nint \u4f4d\u56fe\u6570\u636e,\u6bcf\u4e00\u4f4d\u4ee3\u8868\u4e00\u4e2a\u50cf\u7d20\n\u4f8b\u5b50\uff1a\n-- \u53d6\u6a21\u4f7f\u7528PCtoLCD2002\u8f6f\u4ef6\u5373\u53ef \u9634\u7801 \u9010\u884c \u9006\u5411\n-- \u5728(0,0)\u4e3a\u5de6\u4e0a\u89d2,\u7ed8\u5236 16x16 \"\u4eca\" \u7684\u4f4d\u56fe\nlcd.drawXbm(0, 0, 16,16, string.char(\n 0x80,0x00,0x80,0x00,0x40,0x01,0x20,0x02,0x10,0x04,0x48,0x08,0x84,0x10,0x83,0x60,\n 0x00,0x00,0xF8,0x0F,0x00,0x08,0x00,0x04,0x00,0x04,0x00,0x02,0x00,0x01,0x80,0x00\n))\n", "prefix": "lcd.drawXbm"}, "lcd.showImage": {"body": "lcd.showImage(${1:x},${2:y},${3:file})", "description": "lcd.showImage(x, y, file) - \u663e\u793a\u56fe\u7247,\u5f53\u524d\u53ea\u652f\u6301jpg,jpeg\n\u4f20\u5165\u503c\uff1a\nint X\u5750\u6807\nint y\u5750\u6807\nstring \u6587\u4ef6\u8def\u5f84\n\u4f8b\u5b50\uff1a\nlcd.showImage(0,0,\"/luadb/logo.jpg\")\n", "prefix": "lcd.showImage"}, "lcd.flush": {"body": "lcd.flush()", "description": "lcd.flush() - \u4e3b\u52a8\u5237\u65b0\u6570\u636e\u5230\u754c\u9762, \u4ec5\u8bbe\u7f6ebuff\u4e14\u7981\u7528\u81ea\u52a8\u5c5e\u6027\u540e\u4f7f\u7528\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue, \u5426\u5219\u8fd4\u56denil/false\n", "prefix": "lcd.flush"}, "lcd.setupBuff": {"body": "lcd.setupBuff(${1:conf},${2:onheap})", "description": "lcd.setupBuff(conf, onheap) - \u8bbe\u7f6e\u663e\u793a\u7f13\u51b2\u533a, \u6240\u9700\u5185\u5b58\u5927\u5c0f\u4e3a 2\u00d7\u5bbd\u00d7\u9ad8 \u5b57\u8282. \u8bf7\u8861\u91cf\u5185\u5b58\u9700\u6c42\u4e0e\u4e1a\u52a1\u6240\u9700\u7684\u5237\u65b0\u9891\u6b21.\n\u4f20\u5165\u503c\uff1a\nuserdata conf\u6307\u9488, \u4e0d\u9700\u8981\u4f20\nbool true\u4f7f\u7528heap\u5185\u5b58, false\u4f7f\u7528vm\u5185\u5b58, \u9ed8\u8ba4\u4f7f\u7528vm\u5185\u5b58, \u4e0d\u9700\u8981\u4e3b\u52a8\u4f20\n\u8fd4\u56de\u503c\uff1a\nbool \u662f\u5426\u6210\u529f\n\u4f8b\u5b50\uff1a\n-- \u521d\u59cb\u5316lcd\u7684buff\u7f13\u51b2\u533a, \u53ef\u7406\u89e3\u4e3aFrameBuffer\u533a\u57df.\nlcd.setupBuff()\n", "prefix": "lcd.setupBuff"}, "lcd.autoFlush": {"body": "lcd.autoFlush(${1:enable})", "description": "lcd.autoFlush(enable) - \u8bbe\u7f6e\u81ea\u52a8\u5237\u65b0, \u9700\u914d\u5408lcd.setupBuff\u4f7f\u7528\n\u4f20\u5165\u503c\uff1a\nbool \u662f\u5426\u81ea\u52a8\u5237\u65b0,\u9ed8\u8ba4\u4e3atrue\n\u4f8b\u5b50\uff1a\n-- \u8bbe\u7f6ebuff \u5e76\u7981\u7528\u81ea\u52a8\u66f4\u65b0\nlcd.setupBuff()\nlcd.autoFlush(false)\n-- \u7981\u6b62\u81ea\u52a8\u66f4\u65b0\u540e, \u9700\u8981\u4f7f\u7528 lcd.flush() \u4e3b\u52a8\u5237\u65b0\u6570\u636e\u5230\u5c4f\u5e55\n", "prefix": "lcd.autoFlush"}, "lcd.rgb565": {"body": "lcd.rgb565(${1:r},${2:g},${3:b},${4:swap})", "description": "lcd.rgb565(r, g, b, swap) - RGB565\u989c\u8272\u751f\u6210\n\u4f20\u5165\u503c\uff1a\nint \u7ea2\u8272, 0x00 ~ 0xFF\nint \u7eff\u8272, 0x00 ~ 0xFF\nint \u84dd\u8272, 0x00 ~ 0xFF\nbool \u662f\u5426\u7ffb\u8f6c, true \u7ffb\u8f6c, false \u4e0d\u7ffb\u8f6c. \u9ed8\u8ba4\u7ffb\u8f6c\n\u8fd4\u56de\u503c\uff1a\nint \u989c\u8272\u503c\n\u4f8b\u5b50\uff1a\n-- \u672cAPI\u652f\u6301\u591a\u79cd\u6a21\u5f0f, \u53c2\u6570\u6570\u91cf\u5206\u522b\u662f 1, 2, 3, 4\n-- 1. \u5355\u53c2\u6570\u5f62\u5f0f, 24bit RGB\u503c, swap = true, \u63a8\u8350\nlocal red = lcd.rgb565(0xFF0000)\nlocal green = lcd.rgb565(0x00FF00)\nlocal blue = lcd.rgb565(0x0000FF)\n\n-- 2. \u4e24\u53c2\u6570\u5f62\u5f0f, 24bit RGB\u503c, \u589e\u52a0swap\u7684\u8bbe\u7f6e\nlocal red = lcd.rgb565(0xFF0000, true)\nlocal green = lcd.rgb565(0x00FF00, true)\nlocal blue = lcd.rgb565(0x0000FF, true)\n\n-- 3. \u4e09\u53c2\u6570\u5f62\u5f0f, \u7ea2/\u7eff/\u84dd, \u54048bit\nlocal red = lcd.rgb565(0xFF, 0x00, 0x00)\nlocal green = lcd.rgb565(0x00, 0xFF, 0x00)\nlocal blue = lcd.rgb565(0x00, 0x00, 0xFF)\n\n-- 4. \u56db\u53c2\u6570\u5f62\u5f0f, \u7ea2/\u7eff/\u84dd, \u54048bit, \u589e\u52a0swap\u7684\u8bbe\u7f6e\nlocal red = lcd.rgb565(0xFF, 0x00, 0x00, true)\nlocal green = lcd.rgb565(0x00, 0xFF, 0x00, true)\nlocal blue = lcd.rgb565(0x00, 0x00, 0xFF, true)\n", "prefix": "lcd.rgb565"}, "lcdseg.setup": {"body": "lcdseg.setup(${1:bias},${2:duty},${3:vlcd},${4:com_number},${5:fresh_rate},${6:com_mark},${7:seg_mark})", "description": "lcdseg.setup(bias, duty, vlcd, com_number, fresh_rate, com_mark, seg_mark) - \u521d\u59cb\u5316lcdseg\u5e93\n\u4f20\u5165\u503c\uff1a\nint bias\u503c,\u901a\u5e38\u4e3a 1/3 bias, \u5bf9\u5e94 lcdseg.BIAS_ONETHIRD\nint duty\u503c,\u901a\u5e38\u4e3a 1/4 duty, \u5bf9\u5e94 lcdseg.DUTY_ONEFOURTH\nint \u7535\u538b, \u5355\u4f4d100mV, \u4f8b\u59822.7v\u519927. air103\u652f\u6301\u7684\u503c\u6709 27/29/31/33\nint COM\u811a\u7684\u6570\u91cf, \u53d6\u51b3\u4e8e\u5177\u4f53\u6a21\u5757, air103\u652f\u63011-4\nint \u5237\u65b0\u7387,\u901a\u5e38\u4e3a60, \u5bf9\u5e9460HZ\nint COM\u542f\u7528\u4e0e\u5426\u7684\u63a9\u7801, \u9ed8\u8ba4\u4e3a0xFF,\u5168\u90e8\u542f\u7528.\u82e5\u53ea\u542f\u7528COM0/COM1, \u52190x03\nint seg\u542f\u7528\u4e0e\u5426\u7684\u63a9\u7801, \u9ed8\u8ba4\u4e3a0xFFFFFFFF,\u5373\u5168\u90e8\u542f\u7528. \u82e5\u53ea\u542f\u7528\u524d16\u4e2a, 0xFFFF\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- \u521d\u59cb\u5316lcdseg\nif lcdseg.setup(lcdseg.BIAS_ONETHIRD, lcdseg.DUTY_ONEFOURTH, 33, 4, 60) then\n lcdseg.enable(1)\n\n lcdseg.seg_set(0, 1, 1)\n lcdseg.seg_set(2, 0, 1)\n lcdseg.seg_set(3, 31, 1)\nend\n", "prefix": "lcdseg.setup"}, "lcdseg.enable": {"body": "lcdseg.enable(${1:en})", "description": "lcdseg.enable(en) - \u542f\u7528\u6216\u7981\u7528lcdseg\u5e93\n\u4f20\u5165\u503c\uff1a\nint 1\u542f\u7528,0\u7981\u7528\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u4e0e\u5426\n", "prefix": "lcdseg.enable"}, "lcdseg.power": {"body": "lcdseg.power(${1:en})", "description": "lcdseg.power(en) - \u542f\u7528\u6216\u7981\u7528lcdseg\u7684\u8f93\u51fa\n\u4f20\u5165\u503c\uff1a\nint 1\u542f\u7528,0\u7981\u7528\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u4e0e\u5426\n", "prefix": "lcdseg.power"}, "lcdseg.seg_set": {"body": "lcdseg.seg_set(${1:com},${2:seg},${3:en})", "description": "lcdseg.seg_set(com, seg, en) - \u8bbe\u7f6e\u5177\u4f53\u4e00\u4e2a\u6bb5\u7801\u7684\u72b6\u6001\n\u4f20\u5165\u503c\uff1a\nint COM\u53f7\nint seg\u53f7 \u8981\u66f4\u6539\u7684\u5b57\u6bb5\u7684\u4f4d\u7d22\u5f15\nint 1\u542f\u7528,0\u7981\u7528\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u4e0e\u5426\n", "prefix": "lcdseg.seg_set"}, "libcoap.new": {"body": "libcoap.new(${1:code},${2:uri},${3:headers},${4:payload})", "description": "libcoap.new(code, uri, headers, payload) - \u521b\u5efa\u4e00\u4e2acoap\u6570\u636e\u5305\n\u4f20\u5165\u503c\uff1a\nint coap\u7684code, \u4f8b\u5982libcoap.GET/libcoap.POST/libcoap.PUT/libcoap.DELETE\nstring \u76ee\u6807URI,\u5fc5\u987b\u586b\u5199, \u4e0d\u9700\u8981\u52a0\u4e0a/\u5f00\u5934\ntable \u8bf7\u6c42\u5934,\u7c7b\u4f3c\u4e8ehttp\u7684headers,\u53ef\u9009\nstring \u8bf7\u6c42\u4f53,\u7c7b\u4f3c\u4e8ehttp\u7684body,\u53ef\u9009\n\u8fd4\u56de\u503c\uff1a\nuserdata coap\u6570\u636e\u5305\n\u4f8b\u5b50\uff1a\n-- \u521b\u5efa\u4e00\u4e2a\u8bf7\u6c42\u670d\u52a1\u5668time\u7684\u6570\u636e\u5305\nlocal coapdata = libcoap.new(libcoap.GET, \"time\")\nlocal data = coapdata:rawdata()\n", "prefix": "libcoap.new"}, "libcoap.parse": {"body": "libcoap.parse(${1:str})", "description": "libcoap.parse(str) - \u89e3\u6790coap\u6570\u636e\u5305\n\u4f20\u5165\u503c\uff1a\nstring coap\u6570\u636e\u5305\n\u8fd4\u56de\u503c\uff1a\nuserdata coap\u6570\u636e\u5305,\u5982\u679c\u89e3\u6790\u5931\u8d25\u4f1a\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\n-- \u89e3\u6790\u670d\u52a1\u5668\u4f20\u5165\u7684\u6570\u636e\u5305\nlocal coapdata = libcoap.parse(indata)\nlog.info(\"coapdata\", coapdata:hcode(), coapdata:data())\n", "prefix": "libcoap.parse"}, "coapdata:msgid": {"body": "coapdata:msgid()", "description": "coapdata:msgid() - \u83b7\u53d6coap\u6570\u636e\u5305\u7684msgid\n\u8fd4\u56de\u503c\uff1a\nint coap\u6570\u636e\u5305\u7684msgid\n\u4f8b\u5b50\uff1a\n-- \u89e3\u6790\u670d\u52a1\u5668\u4f20\u5165\u7684\u6570\u636e\u5305\nlocal coapdata = libcoap.parse(indata)\nlog.info(\"coapdata\", coapdata:msgid())\n", "prefix": "coapdata:msgid"}, "coapdata:token": {"body": "coapdata:token()", "description": "coapdata:token() - \u83b7\u53d6coap\u6570\u636e\u5305\u7684token\n\u8fd4\u56de\u503c\uff1a\nstring coap\u6570\u636e\u5305\u7684token\n\u4f8b\u5b50\uff1a\n-- \u89e3\u6790\u670d\u52a1\u5668\u4f20\u5165\u7684\u6570\u636e\u5305\nlocal coapdata = libcoap.parse(indata)\nlog.info(\"coapdata\", coapdata:token())\n", "prefix": "coapdata:token"}, "coapdata:rawdata": {"body": "coapdata:rawdata()", "description": "coapdata:rawdata() - \u83b7\u53d6coap\u6570\u636e\u5305\u7684\u4e8c\u8fdb\u5236\u6570\u636e,\u7528\u4e8e\u53d1\u9001\u5230\u670d\u52a1\u5668\n\u8fd4\u56de\u503c\uff1a\nstring coap\u6570\u636e\u5305\u7684\u4e8c\u8fdb\u5236\u6570\u636e\n\u4f8b\u5b50\uff1a\n-- \u89e3\u6790\u670d\u52a1\u5668\u4f20\u5165\u7684\u6570\u636e\u5305\nlocal coapdata = libcoap.new(libcoap.GET, \"time\")\nnetc:send(coapdata:rawdata())\n", "prefix": "coapdata:rawdata"}, "coapdata:code": {"body": "coapdata:code()", "description": "coapdata:code() - \u83b7\u53d6coap\u6570\u636e\u5305\u7684code\n\u8fd4\u56de\u503c\uff1a\nint coap\u6570\u636e\u5305\u7684code\n\u4f8b\u5b50\uff1a\n-- \u89e3\u6790\u670d\u52a1\u5668\u4f20\u5165\u7684\u6570\u636e\u5305\nlocal coapdata = libcoap.parse(indata)\nlog.info(\"coapdata\", coapdata:code())\n", "prefix": "coapdata:code"}, "coapdata:hcode": {"body": "coapdata:hcode()", "description": "coapdata:hcode() - \u83b7\u53d6coap\u6570\u636e\u5305\u7684http code, \u6bd4coap\u539f\u59cb\u7684code\u8981\u53cb\u597d\n\u8fd4\u56de\u503c\uff1a\nint coap\u6570\u636e\u5305\u7684http code,\u4f8b\u5982200,205,404\n\u4f8b\u5b50\uff1a\n-- \u89e3\u6790\u670d\u52a1\u5668\u4f20\u5165\u7684\u6570\u636e\u5305\nlocal coapdata = libcoap.parse(indata)\nlog.info(\"coapdata\", coapdata:hcode())\n", "prefix": "coapdata:hcode"}, "coapdata:type": {"body": "coapdata:type(${1:t})", "description": "coapdata:type(t) - \u83b7\u53d6coap\u6570\u636e\u5305\u7684type, \u4f8b\u5982libcoap.CON/NON/ACK/RST\n\u4f20\u5165\u503c\uff1a\nint \u65b0\u7684type\u503c,\u53ef\u9009\n\u8fd4\u56de\u503c\uff1a\nint coap\u6570\u636e\u5305\u7684type\n\u4f8b\u5b50\uff1a\n-- \u89e3\u6790\u670d\u52a1\u5668\u4f20\u5165\u7684\u6570\u636e\u5305\nlocal coapdata = libcoap.parse(indata)\nlog.info(\"coapdata\", coapdata:type())\n", "prefix": "coapdata:type"}, "coapdata:data": {"body": "coapdata:data()", "description": "coapdata:data() - \u83b7\u53d6coap\u6570\u636e\u5305\u7684data\n\u8fd4\u56de\u503c\uff1a\nstring coap\u6570\u636e\u5305\u7684data\n\u4f8b\u5b50\uff1a\n-- \u89e3\u6790\u670d\u52a1\u5668\u4f20\u5165\u7684\u6570\u636e\u5305\nlocal coapdata = libcoap.parse(indata)\nlog.info(\"coapdata\", coapdata:data())\n", "prefix": "coapdata:data"}, "libgnss.parse": {"body": "libgnss.parse(${1:str})", "description": "libgnss.parse(str) - \u5904\u7406nmea\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nstring \u539f\u59cbnmea\u6570\u636e\n\u4f8b\u5b50\uff1a\n-- \u89e3\u6790nmea\u6570\u636e\nlibgnss.parse(indata)\nlog.info(\"nmea\", json.encode(libgnss.getRmc(), \"11g\"))\n", "prefix": "libgnss.parse"}, "libgnss.isFix": {"body": "libgnss.isFix()", "description": "libgnss.isFix() - \u5f53\u524d\u662f\u5426\u5df2\u7ecf\u5b9a\u4f4d\u6210\u529f\n\u8fd4\u56de\u503c\uff1a\nboolean \u5b9a\u4f4d\u6210\u529f\u4e0e\u5426\n\u4f8b\u5b50\uff1a\nlog.info(\"nmea\", \"isFix\", libgnss.isFix())\n", "prefix": "libgnss.isFix"}, "libgnss.getIntLocation": {"body": "libgnss.getIntLocation()", "description": "libgnss.getIntLocation() - \u83b7\u53d6\u4f4d\u7f6e\u4fe1\u606f\n\u8fd4\u56de\u503c\uff1a\nint lat\u6570\u636e, \u683c\u5f0f\u4e3a ddddddddd\nint lng\u6570\u636e, \u683c\u5f0f\u4e3a ddddddddd\nint speed\u6570\u636e, \u5355\u4f4d\u7c73. \u4e8e2023.9.26\u4fee\u6b63\n\u4f8b\u5b50\uff1a\n-- \u5efa\u8bae\u7528libgnss.getRmc(1)\nlog.info(\"nmea\", \"loc\", libgnss.getIntLocation())\n", "prefix": "libgnss.getIntLocation"}, "libgnss.getRmc": {"body": "libgnss.getRmc(${1:data_mode})", "description": "libgnss.getRmc(data_mode) - \u83b7\u53d6\u539f\u59cbRMC\u4f4d\u7f6e\u4fe1\u606f\n\u4f20\u5165\u503c\uff1a\nint \u5750\u6807\u7c7b\u6570\u636e\u7684\u683c\u5f0f, 0-DDMM.MMM\u683c\u5f0f, 1-DDDDDDD\u683c\u5f0f, 2-DD.DDDDD\u683c\u5f0f\n\u8fd4\u56de\u503c\uff1a\ntable \u539f\u59cbrmc\u6570\u636e\n\u4f8b\u5b50\uff1a\n-- \u89e3\u6790nmea\nlog.info(\"nmea\", \"rmc\", json.encode(libgnss.getRmc(2)))\n-- \u5b9e\u4f8b\u8f93\u51fa\n--[[\n{\n \"course\":0,\n \"valid\":true, // true\u5b9a\u4f4d\u6210\u529f,false\u5b9a\u4f4d\u4e22\u5931\n \"lat\":23.4067, // \u7eac\u5ea6, \u6b63\u6570\u4e3a\u5317\u7eac, \u8d1f\u6570\u4e3a\u5357\u7eac\n \"lng\":113.231, // \u7ecf\u5ea6, \u6b63\u6570\u4e3a\u4e1c\u7ecf, \u8d1f\u6570\u4e3a\u897f\u7ecf\n \"variation\":0, // \u5730\u9762\u822a\u5411\uff0c\u5355\u4f4d\u4e3a\u5ea6\uff0c\u4ece\u5317\u5411\u8d77\u987a\u65f6\u9488\u8ba1\u7b97\n \"speed\":0 // \u5730\u9762\u901f\u5ea6, \u5355\u4f4d\u4e3a\"\u8282\"\n \"year\":2023, // \u5e74\u4efd\n \"month\":1, // \u6708\u4efd, 1-12\n \"day\":5, // \u6708\u4efd\u5929, 1-31\n \"hour\":7, // \u5c0f\u65f6,0-23\n \"min\":23, // \u5206\u949f,0-59\n \"sec\":20, // \u79d2,0-59\n}\n]]\n", "prefix": "libgnss.getRmc"}, "libgnss.getGsv": {"body": "libgnss.getGsv()", "description": "libgnss.getGsv() - \u83b7\u53d6\u539f\u59cbGSV\u4fe1\u606f\n\u8fd4\u56de\u503c\uff1a\ntable \u539f\u59cbGSV\u6570\u636e\n\u4f8b\u5b50\uff1a\n-- \u89e3\u6790nmea\nlog.info(\"nmea\", \"gsv\", json.encode(libgnss.getGsv()))\n--[[\u5b9e\u4f8b\u8f93\u51fa\n{\n \"total_sats\":24, // \u603b\u53ef\u89c1\u536b\u661f\u6570\u91cf\n \"sats\":[\n {\n \"snr\":27, // \u4fe1\u566a\u6bd4\n \"azimuth\":278, // \u65b9\u5411\u89d2\n \"elevation\":59, // \u4ef0\u89d2\n \"tp\":0, // 0 - GPS/SASS/QSZZ, 1 - BD\n \"nr\":4 // \u536b\u661f\u7f16\u53f7\n },\n // \u8fd9\u91cc\u5ffd\u7565\u4e8622\u4e2a\u536b\u661f\u7684\u4fe1\u606f\n {\n \"snr\":0,\n \"azimuth\":107,\n \"elevation\":19,\n \"tp\":1,\n \"nr\":31\n }\n ]\n}\n]]\n", "prefix": "libgnss.getGsv"}, "libgnss.getGsa": {"body": "libgnss.getGsa(${1:data_mode})", "description": "libgnss.getGsa(data_mode) - \u83b7\u53d6\u539f\u59cbGSA\u4fe1\u606f\n\u4f20\u5165\u503c\uff1a\nint \u5750\u6807\u7c7b\u6570\u636e\u7684\u683c\u5f0f, 0-DDMM.MMM\u683c\u5f0f, 1-DDDDDDD\u683c\u5f0f, 2-DD.DDDDD\u683c\u5f0f\n\u8fd4\u56de\u503c\uff1a\ntable \u539f\u59cbGSA\u6570\u636e\n\u4f8b\u5b50\uff1a\n-- \u83b7\u53d6\nlog.info(\"nmea\", \"gsa\", json.encode(libgnss.getGsa(), \"11g\"))\n-- \u793a\u4f8b\u6570\u636e\n--[[\n{\n \"sats\":[ // \u6b63\u5728\u4f7f\u7528\u7684\u536b\u661f\u7f16\u53f7\n 9,\n 6,\n 16,\n 16,\n 26,\n 21,\n 27,\n 27,\n 4,\n 36,\n 3,\n 7,\n 8,\n 194\n ],\n \"vdop\":0.03083333, // \u5782\u76f4\u7cbe\u5ea6\u56e0\u5b50\uff0c0.00 - 99.99\uff0c\u4e0d\u5b9a\u4f4d\u65f6\u503c\u4e3a 99.99\n \"pdop\":0.0455, // \u6c34\u5e73\u7cbe\u5ea6\u56e0\u5b50\uff0c0.00 - 99.99\uff0c\u4e0d\u5b9a\u4f4d\u65f6\u503c\u4e3a 99.99\n \"fix_type\":3, // \u5b9a\u4f4d\u6a21\u5f0f, 1-\u672a\u5b9a\u4f4d, 2-2D\u5b9a\u4f4d, 3-3D\u5b9a\u4f4d\n \"hdop\":0.0335 // \u4f4d\u7f6e\u7cbe\u5ea6\u56e0\u5b50\uff0c0.00 - 99.99\uff0c\u4e0d\u5b9a\u4f4d\u65f6\u503c\u4e3a 99.99\n}\n]]\n", "prefix": "libgnss.getGsa"}, "libgnss.getVtg": {"body": "libgnss.getVtg(${1:data_mode})", "description": "libgnss.getVtg(data_mode) - \u83b7\u53d6VTA\u901f\u5ea6\u4fe1\u606f\n\u4f20\u5165\u503c\uff1a\nint \u53ef\u9009, 3-\u539f\u59cb\u5b57\u7b26\u4e32, \u4e0d\u4f20\u6216\u8005\u4f20\u5176\u4ed6\u503c, \u5219\u8fd4\u56de\u6d6e\u70b9\u503c\n\u8fd4\u56de\u503c\uff1a\ntable \u539f\u59cbVTA\u6570\u636e\n\u4f8b\u5b50\uff1a\n-- \u89e3\u6790nmea\nlog.info(\"nmea\", \"vtg\", json.encode(libgnss.getVtg()))\n-- \u793a\u4f8b\n--[[\n{\n \"speed_knots\":0, // \u901f\u5ea6, \u82f1\u91cc/\u5c0f\u65f6\n \"true_track_degrees\":0, // \u771f\u5317\u65b9\u5411\u89d2\n \"magnetic_track_degrees\":0, // \u78c1\u5317\u65b9\u5411\u89d2\n \"speed_kph\":0 // \u901f\u5ea6, \u5343\u7c73/\u5c0f\u65f6\n}\n]]\n", "prefix": "libgnss.getVtg"}, "libgnss.getZda": {"body": "libgnss.getZda()", "description": "libgnss.getZda() - \u83b7\u53d6\u539f\u59cbZDA\u65f6\u95f4\u548c\u65e5\u671f\u4fe1\u606f\n\u8fd4\u56de\u503c\uff1a\ntable \u539f\u59cbzda\u6570\u636e\n\u4f8b\u5b50\uff1a\nlog.info(\"nmea\", \"zda\", json.encode(libgnss.getZda()))\n-- \u5b9e\u4f8b\u8f93\u51fa\n--[[\n{\n \"minute_offset\":0, // \u672c\u5730\u65f6\u533a\u7684\u5206\u949f, \u4e00\u822c\u56fa\u5b9a\u8f93\u51fa0\n \"hour_offset\":0, // \u672c\u5730\u65f6\u533a\u7684\u5c0f\u65f6, \u4e00\u822c\u56fa\u5b9a\u8f93\u51fa0\n \"year\":2023 // UTC \u5e74\uff0c\u56db\u4f4d\u6570\u5b57\n \"month\":1, // UTC \u6708\uff0c\u4e24\u4f4d\uff0c01 ~ 12\n \"day\":5, // UTC \u65e5\uff0c\u4e24\u4f4d\u6570\u5b57\uff0c01 ~ 31\n \"hour\":7, // \u5c0f\u65f6\n \"min\":50, // \u5206\n \"sec\":14, // \u79d2\n}\n]]\n", "prefix": "libgnss.getZda"}, "libgnss.debug": {"body": "libgnss.debug(${1:mode})", "description": "libgnss.debug(mode) - \u8bbe\u7f6e\u8c03\u8bd5\u6a21\u5f0f\n\u4f20\u5165\u503c\uff1a\nbool true\u5f00\u542f\u8c03\u8bd5,false\u5173\u95ed\u8c03\u8bd5,\u9ed8\u8ba4\u4e3afalse\n\u4f8b\u5b50\uff1a\n-- \u5f00\u542f\u8c03\u8bd5, \u4f1a\u8f93\u51faGNSS\u539f\u59cb\u6570\u636e\u5230\u65e5\u5fd7\u4e2d\nlibgnss.debug(true)\n-- \u5173\u95ed\u8c03\u8bd5\nlibgnss.debug(false)\n", "prefix": "libgnss.debug"}, "libgnss.getGga": {"body": "libgnss.getGga(${1:data_mode})", "description": "libgnss.getGga(data_mode) - \u83b7\u53d6GGA\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nint \u5750\u6807\u7c7b\u6570\u636e\u7684\u683c\u5f0f, 0-DDMM.MMM\u683c\u5f0f, 1-DDDDDDD\u683c\u5f0f, 2-DD.DDDDD\u683c\u5f0f, 3-\u539f\u59cb\u5b57\u7b26\u4e32\n\u8fd4\u56de\u503c\uff1a\ntable GGA\u6570\u636e, \u82e5\u5982\u4e0d\u5b58\u5728\u4f1a\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\nlocal gga = libgnss.getGga(2)\nif gga then\n log.info(\"GGA\", json.encode(gga, \"11g\"))\nend\n--\u5b9e\u4f8b\u8f93\u51fa\n--[[\n{\n \"dgps_age\":0, // \u5dee\u5206\u6821\u6b63\u65f6\u5ef6\uff0c\u5355\u4f4d\u4e3a\u79d2\n \"fix_quality\":1, // \u5b9a\u4f4d\u72b6\u6001\u6807\u8bc6 0 - \u65e0\u6548,1 - \u5355\u70b9\u5b9a\u4f4d,2 - \u5dee\u5206\u5b9a\u4f4d\n \"satellites_tracked\":14, // \u53c2\u4e0e\u5b9a\u4f4d\u7684\u536b\u661f\u6570\u91cf\n \"altitude\":0.255, // \u6d77\u5e73\u9762\u5206\u79bb\u5ea6, \u6216\u8005\u6210\u4e3a\u6d77\u62d4, \u5355\u4f4d\u662f\u7c73,\n \"hdop\":0.0335, // \u6c34\u5e73\u7cbe\u5ea6\u56e0\u5b50\uff0c0.00 - 99.99\uff0c\u4e0d\u5b9a\u4f4d\u65f6\u503c\u4e3a 99.99\n \"longitude\":113.231, // \u7ecf\u5ea6, \u6b63\u6570\u4e3a\u4e1c\u7ecf, \u8d1f\u6570\u4e3a\u897f\u7ecf\n \"latitude\":23.4067, // \u7eac\u5ea6, \u6b63\u6570\u4e3a\u5317\u7eac, \u8d1f\u6570\u4e3a\u5357\u7eac\n \"height\":0 // \u692d\u7403\u9ad8\uff0c\u56fa\u5b9a\u8f93\u51fa 1 \u4f4d\u5c0f\u6570\n}\n]]\n", "prefix": "libgnss.getGga"}, "libgnss.getGll": {"body": "libgnss.getGll(${1:data_mode})", "description": "libgnss.getGll(data_mode) - \u83b7\u53d6GLL\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nint \u5750\u6807\u7c7b\u6570\u636e\u7684\u683c\u5f0f, 0-DDMM.MMM\u683c\u5f0f, 1-DDDDDDD\u683c\u5f0f, 2-DD.DDDDD\u683c\u5f0f\n\u8fd4\u56de\u503c\uff1a\ntable GLL\u6570\u636e, \u82e5\u5982\u4e0d\u5b58\u5728\u4f1a\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\nlocal gll = libgnss.getGll(2)\nif gll then\n log.info(\"GLL\", json.encode(gll, \"11g\"))\nend\n-- \u5b9e\u4f8b\u6570\u636e\n--[[\n{\n \"status\":\"A\", // \u5b9a\u4f4d\u72b6\u6001, A\u6709\u6548, B\u65e0\u6548\n \"mode\":\"A\", // \u5b9a\u4f4d\u6a21\u5f0f, V\u65e0\u6548, A\u5355\u70b9\u89e3, D\u5dee\u5206\u89e3\n \"sec\":20, // \u79d2, UTC\u65f6\u95f4\u4e3a\u51c6\n \"min\":23, // \u5206\u949f, UTC\u65f6\u95f4\u4e3a\u51c6\n \"hour\":7, // \u5c0f\u65f6, UTC\u65f6\u95f4\u4e3a\u51c6\n \"longitude\":113.231, // \u7ecf\u5ea6, \u6b63\u6570\u4e3a\u4e1c\u7ecf, \u8d1f\u6570\u4e3a\u897f\u7ecf\n \"latitude\":23.4067, // \u7eac\u5ea6, \u6b63\u6570\u4e3a\u5317\u7eac, \u8d1f\u6570\u4e3a\u5357\u7eac\n \"us\":0 // \u5fae\u5999\u6570, \u901a\u5e38\u4e3a0\n}\n]]\n", "prefix": "libgnss.getGll"}, "libgnss.clear": {"body": "libgnss.clear()", "description": "libgnss.clear() - \u6e05\u9664\u5386\u53f2\u5b9a\u4f4d\u6570\u636e\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n-- \u8be5\u64cd\u4f5c\u4f1a\u6e05\u9664\u6240\u6709\u5b9a\u4f4d\u6570\u636e\n", "prefix": "libgnss.clear"}, "libgnss.bind": {"body": "libgnss.bind(${1:id},${2:next_id})", "description": "libgnss.bind(id, next_id) - \u7ed1\u5b9auart\u7aef\u53e3\u8fdb\u884cGNSS\u6570\u636e\u8bfb\u53d6\n\u4f20\u5165\u503c\uff1a\nint uart\u7aef\u53e3\u53f7\nint \u8f6c\u53d1\u5230uart\u7684id, \u4f8b\u5982\u865a\u62dfuart.VUART_0\n\u4f8b\u5b50\uff1a\n-- \u914d\u7f6e\u4e32\u53e3\u4fe1\u606f, \u901a\u5e38\u4e3a 115200 8N1\nuart.setup(2, 115200)\n-- \u7ed1\u5b9auart, \u9a6c\u4e0a\u5f00\u59cb\u89e3\u6790GNSS\u6570\u636e\nlibgnss.bind(2)\n-- \u65e0\u9700\u518d\u8c03\u7528uart.on\u7136\u540e\u8c03\u7528libgnss.parse\n-- \u5f00\u53d1\u671f\u53ef\u6253\u5f00\u8c03\u8bd5\u65e5\u5fd7\nlibgnss.debug(true)\n\n-- 2023-01-02\u4e4b\u540e\u7f16\u8bd1\u7684\u56fa\u4ef6\u6709\u6548\n-- \u4eceuart2\u8bfb\u53d6\u5e76\u89e3\u6790, \u540c\u65f6\u8f6c\u53d1\u5230\u865a\u62df\u4e32\u53e30\nlibgnss.bind(2, uart.VUART_0)\n", "prefix": "libgnss.bind"}, "libgnss.locStr": {"body": "libgnss.locStr(${1:mode})", "description": "libgnss.locStr(mode) - \u83b7\u53d6\u4f4d\u7f6e\u5b57\u7b26\u4e32\n\u4f20\u5165\u503c\uff1a\nint \u5b57\u7b26\u4e32\u6a21\u5f0f. 0- Air780EG\u6240\u9700\u7684\u683c\u5f0f\nreturn \u6307\u5b9a\u6a21\u5f0f\u7684\u5b57\u7b26\u4e32\n\u4f8b\u5b50\uff1a\n-- \u4ec5\u63a8\u8350\u5728\u5b9a\u4f4d\u6210\u529f\u540e\u8c03\u7528\n", "prefix": "libgnss.locStr"}, "libgnss.rtcAuto": {"body": "libgnss.rtcAuto(${1:enable})", "description": "libgnss.rtcAuto(enable) - \u5b9a\u4f4d\u6210\u529f\u540e\u81ea\u52a8\u8bbe\u7f6eRTC\n\u4f20\u5165\u503c\uff1a\nbool \u5f00\u542f\u4e0e\u5426, \u9ed8\u8ba4\u662ffalse\u5173\u95ed\n\u4f8b\u5b50\uff1a\n-- \u5f00\u542f\u81ea\u52a8\u8bbe\u7f6eRTC\nlibgnss.rtcAuto(true)\n", "prefix": "libgnss.rtcAuto"}, "libgnss.on": {"body": "libgnss.on(${1:tp},${2:fn})", "description": "libgnss.on(tp, fn) - \u5e95\u5c42\u4e8b\u4ef6\u56de\u8c03\n\u4f20\u5165\u503c\uff1a\nstring \u4e8b\u4ef6\u7c7b\u578b,\u5f53\u524d\u652f\u6301\"raw\"\n\u4f8b\u5b50\uff1a\n-- \u672c\u51fd\u6570\u4e00\u822c\u7528\u4e8e\u8c03\u8bd5, \u7528\u4e8e\u83b7\u53d6\u5e95\u5c42\u5b9e\u9645\u6536\u5230\u7684\u6570\u636e\nlibgnss.on(\"raw\", function(data)\n log.info(\"GNSS\", data)\nend)\n", "prefix": "libgnss.on"}, "libgnss.getTxt": {"body": "libgnss.getTxt()", "description": "libgnss.getTxt() - \u83b7\u53d6\u975e\u6807\u7684GPTXT\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nreturn GPTXT\u6240\u643a\u5e26\u7684\u5b57\u7b26\u4e32\n\u4f8b\u5b50\uff1a\n-- \u672c\u51fd\u6570\u4e8e2023.6.6 \u6dfb\u52a0\nlog.info(\"gnss\", \"txt\", libgnss.getTxt())\n\n-- \u6d4b\u8bd5\u8bed\u53e5\nlibgnss.parse(\"$GPTXT,01,01,01,ANTENNA SHORT*63\\r\\n\")\nlog.info(\"GNSS\", libgnss.getTxt())\nlibgnss.parse(\"$GPTXT,01,01,01,ANTENNA OPEN*25\\r\\n\")\nlog.info(\"GNSS\", libgnss.getTxt())\nlibgnss.parse(\"$GPTXT,01,01,01,ANTENNA OK*35\\r\\n\")\nlog.info(\"GNSS\", libgnss.getTxt())\n", "prefix": "libgnss.getTxt"}, "log.setLevel": {"body": "log.setLevel(${1:level})", "description": "log.setLevel(level) - \u8bbe\u7f6e\u65e5\u5fd7\u7ea7\u522b\n\u4f20\u5165\u503c\uff1a\nstring level \u65e5\u5fd7\u7ea7\u522b,\u53ef\u7528\u5b57\u7b26\u4e32\u6216\u6570\u503c, \u5b57\u7b26\u4e32\u4e3a(SILENT,DEBUG,INFO,WARN,ERROR,FATAL), \u6570\u503c\u4e3a(0,1,2,3,4,5)\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n-- \u8bbe\u7f6e\u65e5\u5fd7\u7ea7\u522b\u4e3aINFO\nlog.setLevel(\"INFO\")\n", "prefix": "log.setLevel"}, "log.style": {"body": "log.style(${1:val})", "description": "log.style(val) - \u8bbe\u7f6e\u65e5\u5fd7\u98ce\u683c\n\u4f20\u5165\u503c\uff1a\nint \u65e5\u5fd7\u98ce\u683c,\u9ed8\u8ba4\u4e3a0, \u4e0d\u4f20\u5c31\u662f\u83b7\u53d6\u5f53\u524d\u503c\n\u8fd4\u56de\u503c\uff1a\nint \u5f53\u524d\u7684\u65e5\u5fd7\u98ce\u683c\n\u4f8b\u5b50\uff1a\n-- \u4ee5 log.info(\"ABC\", \"DEF\", 123) \u4e3a\u4f8b, \u5047\u8bbe\u8be5\u4ee3\u7801\u4f4d\u4e8emain.lua\u768412\u884c\n-- \u9ed8\u8ba4\u65e5\u5fd70\n-- I/user.ABC DEF 123\n-- \u8c03\u8bd5\u98ce\u683c1, \u6dfb\u52a0\u989d\u5916\u7684\u8c03\u8bd5\u4fe1\u606f\n-- I/main.lua:12 ABC DEF 123\n-- \u8c03\u8bd5\u98ce\u683c2, \u6dfb\u52a0\u989d\u5916\u7684\u8c03\u8bd5\u4fe1\u606f, \u4f4d\u7f6e\u6709\u6240\u533a\u522b\n-- I/user.ABC main.lua:12 DEF 123\n\nlog.style(0) -- \u9ed8\u8ba4\u98ce\u683c0\nlog.style(1) -- \u8c03\u8bd5\u98ce\u683c1\nlog.style(2) -- \u8c03\u8bd5\u98ce\u683c2\n", "prefix": "log.style"}, "log.getLevel": {"body": "log.getLevel()", "description": "log.getLevel() - \u83b7\u53d6\u65e5\u5fd7\u7ea7\u522b\n\u8fd4\u56de\u503c\uff1a\nint \u65e5\u5fd7\u7ea7\u522b\u5bf9\u5e940,1,2,3,4,5\n\u4f8b\u5b50\uff1a\n-- \u5f97\u5230\u65e5\u5fd7\u7ea7\u522b\nlog.getLevel()\n", "prefix": "log.getLevel"}, "log.debug": {"body": "log.debug(${1:tag},${2:val},${3:val2},${4:val3},${5:...})", "description": "log.debug(tag, val, val2, val3, ...) - \u8f93\u51fa\u65e5\u5fd7,\u7ea7\u522bdebug\n\u4f20\u5165\u503c\uff1a\nstring tag \u65e5\u5fd7\u6807\u8bc6,\u5fc5\u987b\u662f\u5b57\u7b26\u4e32\n... \u9700\u6253\u5370\u7684\u53c2\u6570\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n-- \u65e5\u5fd7\u8f93\u51fa D/onenet connect ok\nlog.debug(\"onenet\", \"connect ok\")\n", "prefix": "log.debug"}, "log.info": {"body": "log.info(${1:tag},${2:val},${3:val2},${4:val3},${5:...})", "description": "log.info(tag, val, val2, val3, ...) - \u8f93\u51fa\u65e5\u5fd7,\u7ea7\u522binfo\n\u4f20\u5165\u503c\uff1a\nstring tag \u65e5\u5fd7\u6807\u8bc6,\u5fc5\u987b\u662f\u5b57\u7b26\u4e32\n... \u9700\u6253\u5370\u7684\u53c2\u6570\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n-- \u65e5\u5fd7\u8f93\u51fa I/onenet connect ok\nlog.info(\"onenet\", \"connect ok\")\n", "prefix": "log.info"}, "log.warn": {"body": "log.warn(${1:tag},${2:val},${3:val2},${4:val3},${5:...})", "description": "log.warn(tag, val, val2, val3, ...) - \u8f93\u51fa\u65e5\u5fd7,\u7ea7\u522bwarn\n\u4f20\u5165\u503c\uff1a\nstring tag \u65e5\u5fd7\u6807\u8bc6,\u5fc5\u987b\u662f\u5b57\u7b26\u4e32\n... \u9700\u6253\u5370\u7684\u53c2\u6570\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n-- \u65e5\u5fd7\u8f93\u51fa W/onenet connect ok\nlog.warn(\"onenet\", \"connect ok\")\n", "prefix": "log.warn"}, "log.error": {"body": "log.error(${1:tag},${2:val},${3:val2},${4:val3},${5:...})", "description": "log.error(tag, val, val2, val3, ...) - \u8f93\u51fa\u65e5\u5fd7,\u7ea7\u522berror\n\u4f20\u5165\u503c\uff1a\nstring tag \u65e5\u5fd7\u6807\u8bc6,\u5fc5\u987b\u662f\u5b57\u7b26\u4e32\n... \u9700\u6253\u5370\u7684\u53c2\u6570\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n-- \u65e5\u5fd7\u8f93\u51fa E/onenet connect ok\nlog.error(\"onenet\", \"connect ok\")\n", "prefix": "log.error"}, "lora.init": {"body": "lora.init(${1:ic},${2:loraconfig},${3:spiconfig})", "description": "lora.init(ic, loraconfig,spiconfig) - lora\u521d\u59cb\u5316\n\u4f20\u5165\u503c\uff1a\nstring lora \u578b\u53f7\uff0c\u5f53\u524d\u652f\u6301\uff1a
    llcc68
    sx1268\ntable lora\u914d\u7f6e\u53c2\u6570,\u4e0e\u5177\u4f53\u8bbe\u5907\u6709\u5173\n\u4f8b\u5b50\uff1a\nlora.init(\"llcc68\",\n {\n id = 0, -- SPI id\n cs = pin.PB04, -- SPI \u7247\u9009\u7684GPIO\u53f7,\u5982\u679c\u6ca1\u6709pin\u5e93,\u586bGPIO\u6570\u5b57\u7f16\u53f7\u5c31\u884c\n res = pin.PB00, -- \u590d\u4f4d\u811a\u8fde\u63a5\u7684GPIO\u53f7,\u5982\u679c\u6ca1\u6709pin\u5e93,\u586bGPIO\u6570\u5b57\u7f16\u53f7\u5c31\u884c\n busy = pin.PB01, -- \u5fd9\u68c0\u6d4b\u811a\u7684GPIO\u53f7\n dio1 = pin.PB06, -- \u6570\u636e\u8f93\u5165\u4e2d\u65ad\u811a\n lora_init = true -- \u662f\u5426\u53d1\u9001\u521d\u59cb\u5316\u547d\u4ee4. \u5982\u679c\u662f\u5524\u9192\u540e\u76f4\u63a5\u8bfb\u53d6, \u5c31\u4f20false\n }\n)\n", "prefix": "lora.init"}, "lora.set_channel": {"body": "lora.set_channel(${1:freq})", "description": "lora.set_channel(freq) - \u8bbe\u7f6e\u9891\u9053\u9891\u7387\n\u4f20\u5165\u503c\uff1a\nnumber \u9891\u7387\n\u4f8b\u5b50\uff1a\nlora.set_channel(433000000)\n", "prefix": "lora.set_channel"}, "lora.set_txconfig": {"body": "lora.set_txconfig(${1:ic},${2:txconfig})", "description": "lora.set_txconfig(ic, txconfig) - lora\u914d\u7f6e\u53d1\u9001\u53c2\u6570\n\u4f20\u5165\u503c\uff1a\nstring lora \u578b\u53f7\uff0c\u5f53\u524d\u652f\u6301\uff1a
    llcc68
    sx1268\ntable lora\u53d1\u9001\u914d\u7f6e\u53c2\u6570,\u4e0e\u5177\u4f53\u8bbe\u5907\u6709\u5173\n\u4f8b\u5b50\uff1a\nlora.set_txconfig(\"llcc68\",\n {\n mode=1,\n power=22,\n fdev=0,\n bandwidth=0,\n datarate=9,\n coderate=4,\n preambleLen=8,\n fixLen=false,\n crcOn=true,\n freqHopOn=0,\n hopPeriod=0,\n iqInverted=false,\n timeout=3000\n }\n)\n", "prefix": "lora.set_txconfig"}, "lora.set_rxconfig": {"body": "lora.set_rxconfig(${1:ic},${2:set_rxconfig})", "description": "lora.set_rxconfig(ic, set_rxconfig) - lora\u914d\u7f6e\u63a5\u6536\u53c2\u6570\n\u4f20\u5165\u503c\uff1a\nstring lora \u578b\u53f7\uff0c\u5f53\u524d\u652f\u6301\uff1a
    llcc68
    sx1268\ntable lora\u63a5\u6536\u914d\u7f6e\u53c2\u6570,\u4e0e\u5177\u4f53\u8bbe\u5907\u6709\u5173\n\u4f8b\u5b50\uff1a\nlora.set_rxconfig(\"llcc68\",\n {\n mode=1,\n bandwidth=0,\n datarate=9,\n coderate=4,\n bandwidthAfc=0,\n preambleLen=8,\n symbTimeout=0,\n fixLen=false,\n payloadLen=0,\n crcOn=true,\n freqHopOn=0,\n hopPeriod=0,\n iqInverted=false,\n rxContinuous=false\n }\n)\n", "prefix": "lora.set_rxconfig"}, "lora.send": {"body": "lora.send(${1:data})", "description": "lora.send(data) - \u53d1\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nstring \u5199\u5165\u7684\u6570\u636e\n\u4f8b\u5b50\uff1a\nlora.send(\"PING\")\n", "prefix": "lora.send"}, "lora.recv": {"body": "lora.recv(${1:timeout})", "description": "lora.recv(timeout) - \u5f00\u542f\u6536\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nnumber \u8d85\u65f6\u65f6\u95f4\uff0c\u9ed8\u8ba41000 \u5355\u4f4dms\n\u4f8b\u5b50\uff1a\nsys.subscribe(\"LORA_RX_DONE\", function(data, size)\n log.info(\"LORA_RX_DONE: \", data, size)\n lora.send(\"PING\")\nend)\n-- \u8001\u7248\u672c\u6ca1\u6709recv, \u53ef\u4ee5\u6539\u6210 lora.recive\nlora.recv(1000)\n", "prefix": "lora.recv"}, "lora.mode": {"body": "lora.mode(${1:mode})", "description": "lora.mode(mode) - \u8bbe\u7f6e\u8fdb\u5165\u6a21\u5f0f(\u4f11\u7720\uff0c\u6b63\u5e38\u7b49)\n\u4f20\u5165\u503c\uff1a\nnumber \u6a21\u5f0f \u6b63\u5e38\u6a21\u5f0f:lora.STANDBY \u4f11\u7720\u6a21\u5f0f:lora.SLEEP \u9ed8\u8ba4\u4e3a\u6b63\u5e38\u6a21\u5f0f\n\u4f8b\u5b50\uff1a\nlora.mode(lora.STANDBY)\n", "prefix": "lora.mode"}, "lora2.init": {"body": "lora2.init(${1:ic},${2:loraconfig},${3:spiconfig})", "description": "lora2.init(ic, loraconfig,spiconfig) - lora\u521d\u59cb\u5316\n\u4f20\u5165\u503c\uff1a\nstring lora \u578b\u53f7\uff0c\u5f53\u524d\u652f\u6301\uff1a
    llcc68
    sx1268\ntable lora\u914d\u7f6e\u53c2\u6570,\u4e0e\u5177\u4f53\u8bbe\u5907\u6709\u5173\n\u8fd4\u56de\u503c\uff1a\nuserdata \u82e5\u6210\u529f\u4f1a\u8fd4\u56delora\u5bf9\u8c61,\u5426\u5219\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\nspi_lora = spi.deviceSetup(spi_id,pin_cs,0,0,8,10*1000*1000,spi.MSB,1,0)\nlora_device = lora2.init(\"llcc68\",{res = pin_reset,busy = pin_busy,dio1 = pin_dio1},spi_lora)\n", "prefix": "lora2.init"}, "lora_device:set_channel": {"body": "lora_device:set_channel(${1:freq})", "description": "lora_device:set_channel(freq) - \u8bbe\u7f6e\u9891\u9053\u9891\u7387\n\u4f20\u5165\u503c\uff1a\nnumber \u9891\u7387\n\u4f8b\u5b50\uff1a\nlora_device:set_channel(433000000)\n", "prefix": "lora_device:set_channel"}, "lora_device:set_txconfig": {"body": "lora_device:set_txconfig(${1:txconfig})", "description": "lora_device:set_txconfig(txconfig) - lora\u914d\u7f6e\u53d1\u9001\u53c2\u6570\n\u4f20\u5165\u503c\uff1a\ntable lora\u53d1\u9001\u914d\u7f6e\u53c2\u6570,\u4e0e\u5177\u4f53\u8bbe\u5907\u6709\u5173\n\u4f8b\u5b50\uff1a\nlora_device:set_txconfig(\n {\n mode=1,\n power=22,\n fdev=0,\n bandwidth=0,\n datarate=9,\n coderate=4,\n preambleLen=8,\n fixLen=false,\n crcOn=true,\n freqHopOn=0,\n hopPeriod=0,\n iqInverted=false,\n timeout=3000\n }\n)\n", "prefix": "lora_device:set_txconfig"}, "lora_device:set_rxconfig": {"body": "lora_device:set_rxconfig(${1:set_rxconfig})", "description": "lora_device:set_rxconfig(set_rxconfig) - lora\u914d\u7f6e\u63a5\u6536\u53c2\u6570\n\u4f20\u5165\u503c\uff1a\ntable lora\u63a5\u6536\u914d\u7f6e\u53c2\u6570,\u4e0e\u5177\u4f53\u8bbe\u5907\u6709\u5173\n\u4f8b\u5b50\uff1a\nlora_device:set_rxconfig(\n {\n mode=1,\n bandwidth=0,\n datarate=9,\n coderate=4,\n bandwidthAfc=0,\n preambleLen=8,\n symbTimeout=0,\n fixLen=false,\n payloadLen=0,\n crcOn=true,\n freqHopOn=0,\n hopPeriod=0,\n iqInverted=false,\n rxContinuous=false\n }\n)\n", "prefix": "lora_device:set_rxconfig"}, "lora_device:send": {"body": "lora_device:send(${1:data})", "description": "lora_device:send(data) - \u53d1\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nstring \u5199\u5165\u7684\u6570\u636e\n\u4f8b\u5b50\uff1a\nlora_device:send(\"PING\")\n", "prefix": "lora_device:send"}, "lora_device:recv": {"body": "lora_device:recv(${1:timeout})", "description": "lora_device:recv(timeout) - \u5f00\u542f\u6536\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nnumber \u8d85\u65f6\u65f6\u95f4\uff0c\u9ed8\u8ba41000 \u5355\u4f4dms\n\u4f8b\u5b50\uff1a\nsys.subscribe(\"LORA_RX_DONE\", function(data, size)\n log.info(\"LORA_RX_DONE: \", data, size)\n lora_device:send(\"PING\")\nend)\nlora_device:recv(1000)\n", "prefix": "lora_device:recv"}, "lora_device:mode": {"body": "lora_device:mode(${1:mode})", "description": "lora_device:mode(mode) - \u8bbe\u7f6e\u8fdb\u5165\u6a21\u5f0f(\u4f11\u7720\uff0c\u6b63\u5e38\u7b49)\n\u4f20\u5165\u503c\uff1a\nnumber \u6a21\u5f0f \u6b63\u5e38\u6a21\u5f0f:lora.STANDBY \u4f11\u7720\u6a21\u5f0f:lora.SLEEP \u9ed8\u8ba4\u4e3a\u6b63\u5e38\u6a21\u5f0f\n\u4f8b\u5b50\uff1a\nlora_device:mode(lora.STANDBY)\n", "prefix": "lora_device:mode"}, "lora_device:on": {"body": "lora_device:on(${1:cb})", "description": "lora_device:on(cb) - \u6ce8\u518clora\u56de\u8c03\n\u4f20\u5165\u503c\uff1a\nfunction cb lora\u56de\u8c03,\u53c2\u6570\u5305\u62eclora_device, event, data, size\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\nlora_device:on(function(lora_device, event, data, size)\n log.info(\"lora\", \"event\", event, lora_device, data, size)\n if event == \"tx_done\" then\n lora_device:recv(1000)\n elseif event == \"rx_done\" then\n lora_device:send(\"PING\")\n elseif event == \"tx_timeout\" then\n\n elseif event == \"rx_timeout\" then\n lora_device:recv(1000)\n elseif event == \"rx_error\" then\n\n end\nend)\n--[[\nevent\u53ef\u80fd\u51fa\u73b0\u7684\u503c\u6709\n tx_done -- \u53d1\u9001\u5b8c\u6210\n rx_done -- \u63a5\u6536\u5b8c\u6210\n tx_timeout -- \u53d1\u9001\u8d85\u65f6\n rx_timeout -- \u63a5\u6536\u8d85\u65f6\n rx_error -- \u63a5\u6536\u9519\u8bef\n]]\n", "prefix": "lora_device:on"}, "lvgl.draw_mask_radius_param_t": {"body": "lvgl.draw_mask_radius_param_t()", "description": "lvgl.draw_mask_radius_param_t() - \u521b\u5efa\u4e00\u4e2alv_draw_mask_radius_param_t\n\u8fd4\u56de\u503c\uff1a\nuserdata lv_draw_mask_radius_param_t\u6307\u9488\n\u4f8b\u5b50\uff1a\nlocal radius = lvgl.draw_mask_radius_param_t()\n", "prefix": "lvgl.draw_mask_radius_param_t"}, "lvgl.draw_mask_radius_param_t_free": {"body": "lvgl.draw_mask_radius_param_t_free(${1:radius})", "description": "lvgl.draw_mask_radius_param_t_free(radius) - \u91ca\u653e\u4e00\u4e2alv_draw_mask_radius_param_t\n\u4f8b\u5b50\uff1a\nlocal lvgl.draw_mask_radius_param_t_free(radius)\n", "prefix": "lvgl.draw_mask_radius_param_t_free"}, "lvgl.draw_mask_line_param_t": {"body": "lvgl.draw_mask_line_param_t()", "description": "lvgl.draw_mask_line_param_t() - \u521b\u5efa\u4e00\u4e2alv_draw_mask_line_param_t\n\u8fd4\u56de\u503c\uff1a\nuserdata lv_draw_mask_line_param_t\u6307\u9488\n\u4f8b\u5b50\uff1a\nlocal line = lvgl.draw_mask_line_param_t()\n", "prefix": "lvgl.draw_mask_line_param_t"}, "lvgl.draw_mask_line_param_t_free": {"body": "lvgl.draw_mask_line_param_t_free(${1:line})", "description": "lvgl.draw_mask_line_param_t_free(line) - \u91ca\u653e\u4e00\u4e2alv_draw_mask_line_param_t\n\u4f8b\u5b50\uff1a\nlocal lvgl.draw_mask_line_param_t_free(line)\n", "prefix": "lvgl.draw_mask_line_param_t_free"}, "lvgl.draw_mask_fade_param_t": {"body": "lvgl.draw_mask_fade_param_t()", "description": "lvgl.draw_mask_fade_param_t() - \u521b\u5efa\u4e00\u4e2alv_draw_mask_fade_param_t\n\u8fd4\u56de\u503c\uff1a\nuserdata lv_draw_mask_fade_param_t\u6307\u9488\n\u4f8b\u5b50\uff1a\nlocal fade = lvgl.draw_mask_fade_param_t()\n", "prefix": "lvgl.draw_mask_fade_param_t"}, "lvgl.draw_mask_fade_param_t_free": {"body": "lvgl.draw_mask_fade_param_t_free(${1:fade})", "description": "lvgl.draw_mask_fade_param_t_free(fade) - \u91ca\u653e\u4e00\u4e2alv_draw_mask_fade_param_t\n\u4f8b\u5b50\uff1a\nlocal lvgl.draw_mask_fade_param_t_free(fade)\n", "prefix": "lvgl.draw_mask_fade_param_t_free"}, "lvgl.font_get": {"body": "lvgl.font_get(${1:name})", "description": "lvgl.font_get(name) - \u83b7\u53d6\u5185\u7f6e\u5b57\u4f53\n\u4f20\u5165\u503c\uff1a\nstring \u5b57\u4f53\u540d\u79f0+\u5b57\u53f7, \u4f8b\u5982 opposans_m_10\n\u8fd4\u56de\u503c\uff1a\nuserdata \u5b57\u4f53\u6307\u9488\n\u4f8b\u5b50\uff1a\n\nlocal font = lvgl.font_get(\"opposans_m_12\")\n", "prefix": "lvgl.font_get"}, "lvgl.font_load": {"body": "lvgl.font_load(${1:path/spi_device},${2:size},${3:bpp},${4:thickness},${5:cache_size},${6:sty_zh},${7:sty_en})", "description": "lvgl.font_load(path/spi_device,size,bpp,thickness,cache_size,sty_zh,sty_en) - \u4ece\u6587\u4ef6\u7cfb\u7edf\u52a0\u8f7d\u5b57\u4f53\n\u4f20\u5165\u503c\uff1a\nstring/userdata \u5b57\u4f53\u8def\u5f84/spi_device (spi_device\u4e3a\u4f7f\u7528\u5916\u7f6e\u9ad8\u901a\u77e2\u91cf\u5b57\u5e93\u82af\u7247)\nnumber size \u53ef\u9009,\u5b57\u53f7 16-192 \u9ed8\u8ba416(\u4f7f\u7528\u9ad8\u901a\u77e2\u91cf\u5b57\u5e93)\nnumber bpp \u53ef\u9009 \u6df1\u5ea6 \u9ed8\u8ba44(\u4f7f\u7528\u9ad8\u901a\u77e2\u91cf\u5b57\u5e93)\nnumber thickness \u53ef\u9009 \u7c97\u7ec6\u503c \u9ed8\u8ba4size * bpp(\u4f7f\u7528\u9ad8\u901a\u77e2\u91cf\u5b57\u5e93)\nnumber cache_size \u53ef\u9009 \u9ed8\u8ba40(\u4f7f\u7528\u9ad8\u901a\u77e2\u91cf\u5b57\u5e93)\nnumber sty_zh \u53ef\u9009 \u9009\u62e9\u5b57\u4f53 \u9ed8\u8ba41(\u4f7f\u7528\u9ad8\u901a\u77e2\u91cf\u5b57\u5e93)\nnumber sty_en \u53ef\u9009 \u9009\u62e9\u5b57\u4f53 \u9ed8\u8ba43(\u4f7f\u7528\u9ad8\u901a\u77e2\u91cf\u5b57\u5e93)\n\u8fd4\u56de\u503c\uff1a\nuserdata \u5b57\u4f53\u6307\u9488\n\u4f8b\u5b50\uff1a\nlocal font = lvgl.font_load(\"/font_32.bin\")\n--local font = lvgl.font_load(spi_device,16)(\u9ad8\u901a\u77e2\u91cf\u5b57\u5e93)\n", "prefix": "lvgl.font_load"}, "lvgl.font_free": {"body": "lvgl.font_free(${1:font})", "description": "lvgl.font_free(font) - \u91ca\u653e\u5b57\u4f53,\u614e\u7528!!!\u4ec5\u901a\u8fc7font_load\u52a0\u8f7d\u7684\u5b57\u4f53\u5141\u8bb8\u5378\u8f7d,\u901a\u8fc7font_get\u83b7\u53d6\u7684\u5b57\u4f53\u4e0d\u5141\u8bb8\u5378\u8f7d\n\u4f20\u5165\u503c\uff1a\nstring \u5b57\u4f53\u8def\u5f84\n\u8fd4\u56de\u503c\uff1a\nuserdata \u5b57\u4f53\u6307\u9488\n\u4f8b\u5b50\uff1a\nlocal font = lvgl.font_load(\"/font_32.bin\")\n-- N N N N \u64cd\u4f5c\n-- \u786e\u5b9a\u5b57\u4f53\u4e0d\u88ab\u4f7f\u7528,\u4e0d\u88ab\u5f15\u7528,\u4e14\u5185\u5b58\u7d27\u5f20\u9700\u8981\u91ca\u653e\nlvgl.font_free(font)\n", "prefix": "lvgl.font_free"}, "lvgl.obj_set_event_cb": {"body": "lvgl.obj_set_event_cb(${1:obj},${2:func})", "description": "lvgl.obj_set_event_cb(obj, func) - \u8bbe\u7f6e\u7ec4\u4ef6\u7684\u4e8b\u4ef6\u56de\u8c03\n\u4f20\u5165\u503c\uff1a\nuserdata lvgl\u7ec4\u4ef6\u6307\u9488\nfunc lua\u51fd\u6570, \u53c2\u6570\u67092\u4e2a (obj, event), \u5176\u4e2dobj\u662f\u5f53\u524d\u5bf9\u8c61, event\u662f\u4e8b\u4ef6\u7c7b\u578b, \u4e3a\u6574\u578b\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n", "prefix": "lvgl.obj_set_event_cb"}, "lvgl.obj_set_signal_cb": {"body": "lvgl.obj_set_signal_cb(${1:obj},${2:func})", "description": "lvgl.obj_set_signal_cb(obj, func) - \u8bbe\u7f6e\u7ec4\u4ef6\u7684\u4fe1\u53f7\u56de\u8c03\n\u4f20\u5165\u503c\uff1a\nuserdata lvgl\u7ec4\u4ef6\u6307\u9488\nfunc lua\u51fd\u6570, \u53c2\u6570\u67092\u4e2a (obj, signal), \u5176\u4e2dobj\u662f\u5f53\u524d\u5bf9\u8c61, signal\u662f\u4fe1\u53f7\u7c7b\u578b, \u4e3a\u6574\u578b\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n", "prefix": "lvgl.obj_set_signal_cb"}, "lvgl.anim_set_exec_cb": {"body": "lvgl.anim_set_exec_cb(${1:anim},${2:func})", "description": "lvgl.anim_set_exec_cb(anim, func) - \u8bbe\u7f6e\u52a8\u753b\u56de\u8c03\n\u4f20\u5165\u503c\uff1a\nuserdata \u52a8\u753b\u6307\u9488\nuserdata lvgl\u7ec4\u4ef6\u6307\u9488\nfunc lua\u51fd\u6570, \u53c2\u6570\u67092\u4e2a (obj, value), \u5176\u4e2dobj\u662f\u5f53\u524d\u5bf9\u8c61, signal\u662f\u4fe1\u53f7\u7c7b\u578b, \u4e3a\u6574\u578b\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n", "prefix": "lvgl.anim_set_exec_cb"}, "lvgl.anim_set_ready_cb": {"body": "lvgl.anim_set_ready_cb(${1:anim},${2:func})", "description": "lvgl.anim_set_ready_cb(anim, func) - \u8bbe\u7f6e\u52a8\u753b\u56de\u8c03\n\u4f20\u5165\u503c\uff1a\nuserdata \u52a8\u753b\u6307\u9488\nuserdata lvgl\u7ec4\u4ef6\u6307\u9488\nfunc lua\u51fd\u6570, \u53c2\u6570\u67091\u4e2a (anim), \u5176\u4e2danim\u662f\u5f53\u524d\u5bf9\u8c61\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n", "prefix": "lvgl.anim_set_ready_cb"}, "lvgl.anim_path_set_cb": {"body": "lvgl.anim_path_set_cb(${1:path},${2:func})", "description": "lvgl.anim_path_set_cb(path, func) - \u8bbe\u7f6e\u52a8\u753b\u56de\u8c03\n\u4f20\u5165\u503c\uff1a\nuserdata \u52a8\u753b\u6307\u9488\nuserdata lvgl\u7ec4\u4ef6\u6307\u9488\nfunc lua\u51fd\u6570, \u53c2\u6570\u67091\u4e2a (path), \u5176\u4e2dpath\u662f\u5f53\u524d\u5bf9\u8c61\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n", "prefix": "lvgl.anim_path_set_cb"}, "lvgl.event_send": {"body": "lvgl.event_send(${1:obj},${2:ent})", "description": "lvgl.event_send(obj, ent) - \u53d1\u9001\u4e8b\u4ef6\u7ed9\u7ec4\u4ef6\n\u4f20\u5165\u503c\uff1a\nuserdata \u7ec4\u4ef6\u6307\u9488\nint \u4e8b\u4ef6id, \u4f8b\u5982 lvgl.EVENT_PRESSED\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue, \u5bf9\u8c61\u5df2\u88ab\u5220\u9664\u7684\u8bdd\u8fd4\u56defalse\u6216\u8005nil\nint \u5e95\u5c42\u8fd4\u56de\u503c,\u5982\u679cobj\u4e3anil\u5c31\u8fd4\u56denil\n", "prefix": "lvgl.event_send"}, "lvgl.scr_act": {"body": "lvgl.scr_act()", "description": "lvgl.scr_act() - \u83b7\u53d6\u5f53\u524d\u6d3b\u8dc3\u7684screen\u5bf9\u8c61\n\u8fd4\u56de\u503c\uff1a\n\u6307\u9488 screen\u6307\u9488\n\u4f8b\u5b50\uff1a\nlocal scr = lvgl.scr_act()\n\n", "prefix": "lvgl.scr_act"}, "lvgl.layer_top": {"body": "lvgl.layer_top()", "description": "lvgl.layer_top() - \u83b7\u53d6layer_top\n\u8fd4\u56de\u503c\uff1a\n\u6307\u9488 layer\u6307\u9488\n", "prefix": "lvgl.layer_top"}, "lvgl.layer_sys": {"body": "lvgl.layer_sys()", "description": "lvgl.layer_sys() - \u83b7\u53d6layer_sys\n\u8fd4\u56de\u503c\uff1a\n\u6307\u9488 layer\u6307\u9488\n", "prefix": "lvgl.layer_sys"}, "lvgl.scr_load": {"body": "lvgl.scr_load(${1:scr})", "description": "lvgl.scr_load(scr) - \u8f7d\u5165\u6307\u5b9a\u7684screen\n\u4f20\u5165\u503c\uff1a\nuserdata screen\u6307\u9488\n\u4f8b\u5b50\uff1a\n local scr = lvgl.obj_create(nil, nil)\n local btn = lvgl.btn_create(scr)\n lvgl.obj_align(btn, lvgl.scr_act(), lvgl.ALIGN_CENTER, 0, 0)\n local label = lvgl.label_create(btn)\n lvgl.label_set_text(label, \"LuatOS!\")\n lvgl.scr_load(scr)\n", "prefix": "lvgl.scr_load"}, "lvgl.scr_load_anim": {"body": "lvgl.scr_load_anim(${1:scr})", "description": "lvgl.scr_load_anim(scr) - \u8f7d\u5165\u6307\u5b9a\u7684screen\u5e76\u4f7f\u7528\u6307\u5b9a\u7684\u8f6c\u573a\u52a8\u753b\n\u4f20\u5165\u503c\uff1a\nuserdata screen\u6307\u9488\n\u4f8b\u5b50\uff1a\n local scr = lvgl.obj_create(nil, nil)\n local btn = lvgl.btn_create(scr)\n lvgl.obj_align(btn, lvgl.scr_act(), lvgl.ALIGN_CENTER, 0, 0)\n local label = lvgl.label_create(btn)\n lvgl.label_set_text(label, \"LuatOS!\")\n\n local scr2 = lvgl.obj_create(nil,nil)\n local btn2 = lvgl.btn_create(scr2)\n lvgl.obj_align(btn, scr2, lvgl.ALIGN_CENTER, 0, 20)\n local label2 = lvgl.label_create(btn2)\n lvgl.label_set_text(label2, \"Btn2\")\n lvgl.scr_load(scr)\n --sys.wait(1000);\n lvgl.scr_load_anim(scr2,lvgl.SCR_LOAD_ANIM_OVER_LEFT,100,100,false)\n\u539f\u51fd\u6570\uff1alv_scr_load_anim(lv_obj_t * new_scr, lv_scr_load_anim_t anim_type, uint32_t time, uint32_t delay, bool auto_del)\n", "prefix": "lvgl.scr_load_anim"}, "lvgl.theme_set_act": {"body": "lvgl.theme_set_act(${1:name})", "description": "lvgl.theme_set_act(name) - \u8bbe\u7f6e\u4e3b\u9898\n\u4f20\u5165\u503c\uff1a\nstring \u4e3b\u9898\u540d\u79f0,\u53ef\u9009\u503c\u6709 default/mono/empty/material_light/material_dark/material_no_transition/material_no_focus\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\n-- \u9ed1\u767d\u4e3b\u9898\nlvgl.theme_set_act(\"mono\")\n-- \u7a7a\u767d\u4e3b\u9898\nlvgl.theme_set_act(\"empty\")\n", "prefix": "lvgl.theme_set_act"}, "lvgl.sleep": {"body": "lvgl.sleep(${1:enable})", "description": "lvgl.sleep(enable) - LVGL\u4f11\u7720\u63a7\u5236\uff0c\u6682\u505c/\u6062\u590d\u5237\u65b0\u5b9a\u65f6\u5668\uff0c\u76ee\u524d\u53ea\u6709105\u548cEC618\u53ef\u4ee5\u7528\n\u4f20\u5165\u503c\uff1a\nboolean true\u6682\u505c false\u6062\u590d\n\u4f8b\u5b50\uff1a\nlvgl.sleep(true)\t\t--\u6682\u505c\u5237\u65b0\uff0c\u7cfb\u7edf\u53ef\u4ee5\u4f11\u7720\nlvgl.sleep(false)\t\t--\u6062\u590d\u5237\u65b0\uff0c\u7cfb\u7edf\u4e0d\u4f11\u7720\n", "prefix": "lvgl.sleep"}, "lvgl.init": {"body": "lvgl.init(${1:w},${2:h},${3:lcd},${4:buff_size},${5:buff_mode})", "description": "lvgl.init(w, h, lcd, buff_size, buff_mode) - \u521d\u59cb\u5316LVGL\n\u4f20\u5165\u503c\uff1a\nint \u5c4f\u5e55\u5bbd,\u53ef\u9009,\u9ed8\u8ba4\u4ecelcd\u53d6\nint \u5c4f\u5e55\u9ad8,\u53ef\u9009,\u9ed8\u8ba4\u4ecelcd\u53d6\nuserdata lcd\u6307\u9488,\u53ef\u9009,lcd\u521d\u59cb\u5316\u540e\u6709\u9ed8\u8ba4\u503c,\u9884\u7559\u7684\u591a\u5c4f\u5165\u53e3\nint \u7f13\u51b2\u533a\u5927\u5c0f,\u9ed8\u8ba4\u5bbd*10, \u4e0d\u542b\u8272\u6df1.\nint \u7f13\u51b2\u6a21\u5f0f,\u9ed8\u8ba40, \u5355buff\u6a21\u5f0f, \u53ef\u90091,\u53ccbuff\u6a21\u5f0f\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n", "prefix": "lvgl.init"}, "lvgl.anim_create": {"body": "lvgl.anim_create()", "description": "lvgl.anim_create() - \u521b\u5efa\u5e76\u521d\u59cb\u5316\u4e00\u4e2aanim\n\u8fd4\u56de\u503c\uff1a\nuserdata anim\u6307\u9488\n\u4f8b\u5b50\uff1a\nlocal anim = lvgl.anim_create()\n", "prefix": "lvgl.anim_create"}, "lvgl.anim_free": {"body": "lvgl.anim_free(${1:anim})", "description": "lvgl.anim_free(anim) - \u91ca\u653e\u4e00\u4e2aanim\n\u4f8b\u5b50\uff1a\nlocal lvgl.anim_free(anim)\n", "prefix": "lvgl.anim_free"}, "lvgl.anim_path_t": {"body": "lvgl.anim_path_t()", "description": "lvgl.anim_path_t() - \u521b\u5efa\u4e00\u4e2alv_anim_path_t\n\u8fd4\u56de\u503c\uff1a\nuserdata lv_anim_path_t\u6307\u9488\n\u4f8b\u5b50\uff1a\nlocal anim_path_t = lvgl.anim_path_t()\n", "prefix": "lvgl.anim_path_t"}, "lvgl.anim_path_t_free": {"body": "lvgl.anim_path_t_free(${1:anim_path_t})", "description": "lvgl.anim_path_t_free(anim_path_t) - \u91ca\u653e\u4e00\u4e2alv_anim_path_t\n\u4f8b\u5b50\uff1a\nlocal lvgl.anim_path_t_free(anim_path_t)\n", "prefix": "lvgl.anim_path_t_free"}, "lvgl.anim_set_path_str": {"body": "lvgl.anim_set_path_str(${1:anim},${2:tp})", "description": "lvgl.anim_set_path_str(anim, tp) - \u8bbe\u7f6e\u52a8\u753b\u8def\u5f84\u65b9\u5f0f\n\u4f20\u5165\u503c\uff1a\nuserdata \u52a8\u753b\u6307\u9488\nstring \u7c7b\u578b, \u652f\u6301 linear/ease_in/ease_out/ease_in_out/overshoot/bounce/step\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n", "prefix": "lvgl.anim_set_path_str"}, "lvgl.qrcode_create": {"body": "lvgl.qrcode_create(${1:parent},${2:size},${3:dark_color},${4:light_color})", "description": "lvgl.qrcode_create(parent, size, dark_color, light_color) - \u521b\u5efaqrcode\u7ec4\u4ef6\n\u4f20\u5165\u503c\uff1a\nuserdata \u7236\u7ec4\u4ef6\nint \u957f\u5ea6,\u56e0\u4e3aqrcode\u662f\u6b63\u65b9\u5f62\nint \u4e8c\u7ef4\u7801\u4e2d\u6570\u636e\u70b9\u7684\u989c\u8272, RGB\u989c\u8272, \u9ed8\u8ba4 0x3333ff\nint \u4e8c\u7ef4\u7801\u4e2d\u80cc\u666f\u70b9\u7684\u989c\u8272, RGB\u989c\u8272, \u9ed8\u8ba4 0xeeeeff\n\u8fd4\u56de\u503c\uff1a\nuserdata qrcode\u7ec4\u4ef6\n\u4f8b\u5b50\uff1a\n-- \u521b\u5efa\u5e76\u663e\u793aqrcode\nlocal qrcode = lvgl.qrcode_create(scr, 100)\nlvgl.qrcode_update(qrcode, \"https://luatos.com\")\nlvgl.obj_align(qrcode, lvgl.scr_act(), lvgl.ALIGN_CENTER, -100, -100)\n", "prefix": "lvgl.qrcode_create"}, "lvgl.qrcode_update": {"body": "lvgl.qrcode_update(${1:qrcode},${2:cnt})", "description": "lvgl.qrcode_update(qrcode, cnt) - \u8bbe\u7f6eqrcode\u7ec4\u4ef6\u7684\u4e8c\u7ef4\u7801\u5185\u5bb9,\u914d\u5408qrcode_create\u4f7f\u7528\n\u4f20\u5165\u503c\uff1a\nuserdata qrcode\u7ec4\u4ef6,\u7531qrcode_create\u521b\u5efa\nstring \u4e8c\u7ef4\u7801\u7684\u5185\u5bb9\u6570\u636e\n\u8fd4\u56de\u503c\uff1a\nbool \u66f4\u65b0\u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse. \u901a\u5e38\u53ea\u6709\u6570\u636e\u592a\u957f\u65e0\u6cd5\u5bb9\u7eb3\u624d\u4f1a\u8fd4\u56defalse\n", "prefix": "lvgl.qrcode_update"}, "lvgl.qrcode_delete": {"body": "lvgl.qrcode_delete(${1:qrcode})", "description": "lvgl.qrcode_delete(qrcode) - \u5220\u9664qrcode\u7ec4\u4ef6\n\u4f20\u5165\u503c\uff1a\nuserdata qrcode\u7ec4\u4ef6,\u7531qrcode_create\u521b\u5efa\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n", "prefix": "lvgl.qrcode_delete"}, "lvgl.style_t": {"body": "lvgl.style_t()", "description": "lvgl.style_t() - \u521b\u5efa\u4e00\u4e2astyle\n\u8fd4\u56de\u503c\uff1a\nuserdata style\u6307\u9488\n\u4f8b\u5b50\uff1a\nlocal style = lvgl.style_t()\nlvgl.style_init(style)\n", "prefix": "lvgl.style_t"}, "lvgl.style_create": {"body": "lvgl.style_create()", "description": "lvgl.style_create() - \u521b\u5efa\u4e00\u4e2astyle\u5e76\u521d\u59cb\u5316\n\u8fd4\u56de\u503c\uff1a\nuserdata style\u6307\u9488\n\u4f8b\u5b50\uff1a\nlocal style = lvgl.style_create()\n", "prefix": "lvgl.style_create"}, "lvgl.style_list_create": {"body": "lvgl.style_list_create()", "description": "lvgl.style_list_create() - \u521b\u5efa\u4e00\u4e2astyle_list\n\u8fd4\u56de\u503c\uff1a\nuserdata style\u6307\u9488\n\u4f8b\u5b50\uff1a\nlocal style_list = lvgl.style_list_create()\n", "prefix": "lvgl.style_list_create"}, "lvgl.style_list_t": {"body": "lvgl.style_list_t()", "description": "lvgl.style_list_t() - \u521b\u5efa\u4e00\u4e2astyle_list\n\u8fd4\u56de\u503c\uff1a\nuserdata style\u6307\u9488\n\u4f8b\u5b50\uff1a\nlocal style = lvgl.style_list_t()\n", "prefix": "lvgl.style_list_t"}, "lvgl.style_delete": {"body": "lvgl.style_delete(${1:style})", "description": "lvgl.style_delete(style) - \u5220\u9664style,\u614e\u7528,\u901a\u5e38\u4e0d\u4f1a\u6267\u884c\u5220\u9664\u64cd\u4f5c\n\u4f20\u5165\u503c\uff1a\nuserdata style\u6307\u9488\n\u4f8b\u5b50\uff1a\nlocal style = lvgl.style_create()\n-- ...\n-- ...\n-- lvgl.style_delete(style)\n", "prefix": "lvgl.style_delete"}, "lvgl.style_list_delete": {"body": "lvgl.style_list_delete(${1:style})", "description": "lvgl.style_list_delete(style) - \u5220\u9664style_list,\u614e\u7528,\u901a\u5e38\u4e0d\u4f1a\u6267\u884c\u5220\u9664\u64cd\u4f5c\n\u4f20\u5165\u503c\uff1a\nuserdata style\u6307\u9488\n\u4f8b\u5b50\uff1a\nlocal style_list = lvgl.style_list_create()\n-- ...\n-- ...\n-- lvgl.style_list_delete(style_list)\n", "prefix": "lvgl.style_list_delete"}, "lvgl.demo_benchmark": {"body": "lvgl.demo_benchmark()", "description": "lvgl.demo_benchmark() - lvgl benchmark demo\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\nlvgl.init()\nlvgl.demo_benchmark()\n", "prefix": "lvgl.demo_benchmark"}, "lvgl.demo_keypad_encoder": {"body": "lvgl.demo_keypad_encoder()", "description": "lvgl.demo_keypad_encoder() - lvgl keypad_encoder demo\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\nlvgl.init()\nlvgl.demo_keypad_encoder()\n", "prefix": "lvgl.demo_keypad_encoder"}, "lvgl.demo_music": {"body": "lvgl.demo_music()", "description": "lvgl.demo_music() - lvgl music demo\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\nlvgl.init()\nlvgl.demo_music()\n", "prefix": "lvgl.demo_music"}, "lvgl.demo_printer": {"body": "lvgl.demo_printer()", "description": "lvgl.demo_printer() - lvgl printer demo\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\nlvgl.init()\nlvgl.demo_printer()\n", "prefix": "lvgl.demo_printer"}, "lvgl.demo_stress": {"body": "lvgl.demo_stress()", "description": "lvgl.demo_stress() - lvgl stress demo\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\nlvgl.init()\nlvgl.demo_stress()\n", "prefix": "lvgl.demo_stress"}, "lvgl.demo_widgets": {"body": "lvgl.demo_widgets()", "description": "lvgl.demo_widgets() - lvgl widgets demo\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\nlvgl.init()\nlvgl.demo_widgets()\n", "prefix": "lvgl.demo_widgets"}, "lvgl.indev_drv_register": {"body": "lvgl.indev_drv_register(${1:tp},${2:dtp})", "description": "lvgl.indev_drv_register(tp, dtp) - \u6ce8\u518c\u8f93\u5165\u8bbe\u5907\u9a71\u52a8\n\u4f20\u5165\u503c\uff1a\nstring \u8bbe\u5907\u7c7b\u578b\uff0c\u5f53\u524d\u652f\u6301\"pointer\",\u6307\u9488\u7c7b/\u89e6\u6478\u7c7b\u5747\u53ef\uff0c\"keyboard\",\u952e\u76d8\u7c7b\u578b\nstring \u8bbe\u5907\u578b\u53f7\uff0c\u5f53\u524d\u652f\u6301\"emulator\",\u6a21\u62df\u5668\u7c7b\u578b\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\nlvgl.indev_drv_register(\"pointer\", \"emulator\")\n", "prefix": "lvgl.indev_drv_register"}, "lvgl.indev_point_emulator_update": {"body": "lvgl.indev_point_emulator_update(${1:x},${2:y},${3:state})", "description": "lvgl.indev_point_emulator_update(x, y, state) - \u66f4\u65b0\u6a21\u62df\u8f93\u5165\u8bbe\u5907\u7684\u5750\u6807\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nint x\u5750\u6807,\u4ee5\u5de6\u4e0a\u89d2\u4e3a0,\u53f3\u4e0b\u89d2\u4e3a\u6700\u5927\u503c\nint y\u5750\u6807,\u4ee5\u5de6\u4e0a\u89d2\u4e3a0,\u53f3\u4e0b\u89d2\u4e3a\u6700\u5927\u503c\nint \u72b6\u6001, 0 \u4e3a \u91ca\u653e, 1 \u4e3a\u6309\u4e0b\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n-- \u6a21\u62df\u5728\u5c4f\u5e55\u4e0a\u7684\u70b9\u51fb,\u901a\u8fc7timeout\u6a21\u62df\u957f\u6309\u548c\u77ed\u6309\nsys.taskInit(function(x, y, timeout)\n lvgl.indev_point_emulator_update(x, y, 1)\n sys.wait(timeout)\n lvgl.indev_point_emulator_update(x, y, 0)\nend, 240, 120, 50)\n", "prefix": "lvgl.indev_point_emulator_update"}, "lvgl.indev_kb_update": {"body": "lvgl.indev_kb_update(${1:key})", "description": "lvgl.indev_kb_update(key) - \u66f4\u65b0\u952e\u76d8\u8f93\u5165\u8bbe\u5907\u7684\u6309\u952e\u503c\n\u4f20\u5165\u503c\uff1a\nint \u6309\u952e\u503c\uff0c\u9ed8\u8ba4\u4e3a0\uff0c\u6309\u952e\u62ac\u8d77\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n", "prefix": "lvgl.indev_kb_update"}, "lvgl.gif_create": {"body": "lvgl.gif_create(${1:parent},${2:path})", "description": "lvgl.gif_create(parent, path) - \u521b\u5efagif\u7ec4\u4ef6\n\u4f20\u5165\u503c\uff1a\nuserdata \u7236\u7ec4\u4ef6,\u53ef\u4ee5\u662fnil,\u4f46\u901a\u5e38\u4e0d\u4f1a\u662fnil\nstring \u6587\u4ef6\u8def\u5f84\n\u8fd4\u56de\u503c\uff1a\nuserdata \u7ec4\u4ef6\u6307\u9488,\u82e5\u5931\u8d25\u4f1a\u8fd4\u56denil,\u5efa\u8bae\u68c0\u67e5\n\u4f8b\u5b50\uff1a\nlocal gif = lvgl.gif_create(scr, \"S/emtry.gif\")\nif gif then\n log.info(\"gif\", \"create ok\")\nend\n\n", "prefix": "lvgl.gif_create"}, "lvgl.gif_restart": {"body": "lvgl.gif_restart(${1:gif})", "description": "lvgl.gif_restart(gif) - \u91cd\u65b0\u64ad\u653egif\u7ec4\u4ef6\n\u4f20\u5165\u503c\uff1a\nuserdata gif\u7ec4\u4ef6\u652f\u6301, \u7531gif_create\u65b9\u6cd5\u8fd4\u56de\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\nlocal gif = lvgl.gif_create(scr, \"S/emtry.gif\")\nif gif then\n log.info(\"gif\", \"create ok\")\nend\n\n", "prefix": "lvgl.gif_restart"}, "max30102.init": {"body": "max30102.init(${1:i2c_id},${2:int})", "description": "max30102.init(i2c_id,int) - \u521d\u59cb\u5316MAX30102\u4f20\u611f\u5668\n\u4f20\u5165\u503c\uff1a\nint \u4f20\u611f\u5668\u6240\u5728\u7684i2c\u603b\u7ebfid,\u9ed8\u8ba4\u4e3a0\nint int\u5f15\u811a\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue, \u5426\u5219\u8fd4\u56denil\u6216\u8005false\n\u4f8b\u5b50\uff1a\nif max30102.init(0,pin.PC05) then\n log.info(\"max30102\", \"init ok\")\nelse\n log.info(\"max30102\", \"init fail\")\nend\n", "prefix": "max30102.init"}, "max30102.get": {"body": "max30102.get()", "description": "max30102.get() - \u83b7\u53d6\u5fc3\u7387\u8840\u6c27(\u5927\u6982\u9700\u898110s\u65f6\u95f4\u6d4b\u91cf)\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue, \u5426\u5219\u8fd4\u56denil\u6216\u8005false\nnumber \u5fc3\u7387\nnumber \u8840\u6c27\n", "prefix": "max30102.get"}, "max30102.shutdown": {"body": "max30102.shutdown()", "description": "max30102.shutdown() - \u5173\u95edmax30102\n", "prefix": "max30102.shutdown"}, "mcu.setClk": {"body": "mcu.setClk(${1:mhz})", "description": "mcu.setClk(mhz) - \u8bbe\u7f6e\u4e3b\u9891,\u5355\u4f4dMHZ\n\u4f20\u5165\u503c\uff1a\nint \u4e3b\u9891,\u6839\u636e\u8bbe\u5907\u7684\u4e0d\u540c\u6709\u4e0d\u540c\u7684\u6709\u6548\u503c,\u8bf7\u67e5\u9605\u624b\u518c\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- \u8bf7\u6ce8\u610f,\u4e3b\u9891\u4e0e\u5916\u8bbe\u4e3b\u9891\u6709\u5173\u8054\u6027, \u4f8b\u5982\u4e3b\u98912M\u65f6SPI\u7684\u6700\u9ad8\u53ea\u80fd1M\n-- \u8bbe\u7f6e\u523080MHZ\nmcu.setClk(80)\nsys.wait(1000)\n-- \u8bbe\u7f6e\u5230240MHZ\nmcu.setClk(240)\nsys.wait(1000)\n-- \u8bbe\u7f6e\u52302MHZ\nmcu.setClk(2)\nsys.wait(1000)\n", "prefix": "mcu.setClk"}, "mcu.getClk": {"body": "mcu.getClk()", "description": "mcu.getClk() - \u83b7\u53d6\u4e3b\u9891,\u5355\u4f4dMHZ\n\u8fd4\u56de\u503c\uff1a\nint \u82e5\u5931\u8d25\u8fd4\u56de-1,\u5426\u5219\u8fd4\u56de\u4e3b\u9891\u6570\u503c,\u82e5\u7b49\u4e8e0,\u53ef\u80fd\u5904\u4e8e32k\u6676\u632f\u7684\u7701\u7535\u6a21\u5f0f\n\u4f8b\u5b50\uff1a\nlocal mhz = mcu.getClk()\nprint(\"Boom\", mhz)\n", "prefix": "mcu.getClk"}, "mcu.unique_id": {"body": "mcu.unique_id()", "description": "mcu.unique_id() - \u83b7\u53d6\u8bbe\u5907\u552f\u4e00id. \u6ce8\u610f,\u53ef\u80fd\u5305\u542b\u4e0d\u53ef\u89c1\u5b57\u7b26,\u5982\u9700\u67e5\u770b\u5efa\u8baetoHex()\u540e\u6253\u5370\n\u8fd4\u56de\u503c\uff1a\nstring \u8bbe\u5907\u552f\u4e00id.\u82e5\u4e0d\u652f\u6301, \u4f1a\u8fd4\u56de\u7a7a\u5b57\u7b26\u4e32.\n\u4f8b\u5b50\uff1a\nlocal unique_id = mcu.unique_id()\nprint(\"unique_id\", unique_id)\n", "prefix": "mcu.unique_id"}, "mcu.ticks": {"body": "mcu.ticks()", "description": "mcu.ticks() - \u83b7\u53d6\u542f\u52a8\u540e\u7684tick\u6570,\u6ce8\u610f\u4f1a\u51fa\u73b0\u6ea2\u51fa\u4f1a\u51fa\u73b0\u8d1f\u6570\n\u8fd4\u56de\u503c\uff1a\nint \u5f53\u524dtick\u503c\n\u4f8b\u5b50\uff1a\nlocal tick = mcu.ticks()\nprint(\"ticks\", tick)\n", "prefix": "mcu.ticks"}, "mcu.hz": {"body": "mcu.hz()", "description": "mcu.hz() - \u83b7\u53d6\u6bcf\u79d2\u7684tick\u6570\u91cf\n\u8fd4\u56de\u503c\uff1a\nint \u6bcf\u79d2\u7684tick\u6570\u91cf,\u901a\u5e38\u4e3a1000\n\u4f8b\u5b50\uff1a\nlocal hz = mcu.hz()\nprint(\"mcu.hz\", hz)\n", "prefix": "mcu.hz"}, "mcu.reg32": {"body": "mcu.reg32(${1:address},${2:value},${3:mask})", "description": "mcu.reg32(address, value, mask) - \u8bfb\u5199mcu\u768432bit\u5bc4\u5b58\u5668\u6216\u8005ram,\u8c28\u614e\u4f7f\u7528\u5199\u529f\u80fd,\u8bf7\u719f\u6089mcu\u7684\u5bc4\u5b58\u5668\u4f7f\u7528\u65b9\u6cd5\u540e\u518d\u4f7f\u7528\n\u4f20\u5165\u503c\uff1a\nint \u5bc4\u5b58\u5668\u6216\u8005ram\u5730\u5740\nint \u5199\u5165\u7684\u503c,\u5982\u679c\u6ca1\u6709,\u5219\u76f4\u63a5\u8fd4\u56de\u5f53\u524d\u503c\nint \u4f4d\u63a9\u7801,\u53ef\u4ee5\u5bf9\u7279\u5b9a\u51e0\u4e2a\u4f4d\u7f6e\u7684bit\u505a\u4fee\u6539, \u9ed8\u8ba40xffffffff,\u4fee\u6539\u5168\u90e832bit\n\u8fd4\u56de\u503c\uff1a\nint \u8fd4\u56de\u5f53\u524d\u5bc4\u5b58\u7684\u503c\n\u4f8b\u5b50\uff1a\nlocal value = mcu.reg32(0x2009FFFC, 0x01, 0x01) --\u5bf90x2009FFFC\u5730\u5740\u4e0a\u7684\u503c,\u4fee\u6539bit0\u4e3a1\n", "prefix": "mcu.reg32"}, "mcu.x32": {"body": "mcu.x32(${1:value})", "description": "mcu.x32(value) - \u8f6c\u636210\u8fdb\u5236\u6570\u4e3a16\u8fdb\u5236\u5b57\u7b26\u4e32\u8f93\u51fa\n\u4f20\u5165\u503c\uff1a\nint \u9700\u8981\u8f6c\u6362\u7684\u503c\n\u8fd4\u56de\u503c\uff1a\nstring 16\u8fdb\u5236\u5b57\u7b26\u4e32\n\u4f8b\u5b50\uff1a\nlocal value = mcu.x32(0x2009FFFC) --\u8f93\u51fa\"0x2009fffc\"\n", "prefix": "mcu.x32"}, "mcu.tick64": {"body": "mcu.tick64()", "description": "mcu.tick64() - \u83b7\u53d6\u542f\u52a8\u540e\u7684\u9ad8\u7cbe\u5ea6tick\uff0c\u5982\u679c\u652f\u6301bit64\u5e93\uff0c\u53ef\u4ee5\u76f4\u63a5\u8f93\u51fa\u8f6c\u6362\u597d\u7684bit64\u7ed3\u6784\n\u4f20\u5165\u503c\uff1a\nboolean \u662f\u5426\u8f93\u51fabit64\u7ed3\u6784,true\u662f,\u5176\u4ed6\u90fd\u662ffalse,\u7559\u7a7a\u4e5f\u662ffalse,\u7528\u4e8e\u517c\u5bb9\u65e7\u7684demo\n\u8fd4\u56de\u503c\uff1a\nstring \u5f53\u524dtick\u503c,8\u4e2a\u5b57\u8282\u7684uint64,\u5982\u679c\u652f\u630164bit\u5e93,\u540c\u65f6\u8981\u6c42\u8f93\u51fa64bit\u7ed3\u6784\u7684\u8bdd,\u4f1a\u8f93\u51fa9\u5b57\u8282\u7684string\nint 1us\u6709\u51e0\u4e2atick,0\u8868\u793a\u672a\u77e5\n\u4f8b\u5b50\uff1a\nlocal tick_str, tick_per = mcu.tick64()\nprint(\"ticks\", tick_str, tick_per)\n", "prefix": "mcu.tick64"}, "mcu.dtick64": {"body": "mcu.dtick64(${1:tick1},${2:tick2},${3:check_value})", "description": "mcu.dtick64(tick1, tick2, check_value) - \u8ba1\u7b972\u4e2a64bit tick\u7684\u5dee\u503c\n\u4f20\u5165\u503c\uff1a\nstring 64bit\u7684string\nstring 64bit\u7684string\nint \u53c2\u8003\u503c,\u53ef\u9009\u9879,\u5982\u679c\u4e3a0,\u5219\u8fd4\u56de\u7ed3\u679c\u4e2d\u7b2c\u4e00\u4e2a\u9879\u76ee\u4e3atrue\n\u8fd4\u56de\u503c\uff1a\nboolean \u4e0e\u53c2\u8003\u503c\u6bd4\u8f83,\u5982\u679c\u5927\u4e8e\u7b49\u4e8e\u4e3atrue,\u53cd\u4e4b\u4e3afalse\nint \u5dee\u503ctick1 - tick2,\u5982\u679c\u8d85\u8fc7\u4e860x7fffffff,\u7ed3\u679c\u53ef\u80fd\u662f\u9519\u7684\n\u4f8b\u5b50\uff1a\nlocal result, diff_tick = mcu.dtick64(tick1, tick2)\nprint(\"ticks\", result, diff_tick)\n", "prefix": "mcu.dtick64"}, "mcu.setXTAL": {"body": "mcu.setXTAL(${1:source_main},${2:source_32k},${3:delay})", "description": "mcu.setXTAL(source_main, source_32k, delay) - \u9009\u62e9\u65f6\u949f\u6e90,\u5f53\u524d\u4ec5air105\u652f\u6301\n\u4f20\u5165\u503c\uff1a\nboolean \u9ad8\u901f\u65f6\u949f\u662f\u5426\u4f7f\u7528\u5916\u90e8\u65f6\u949f\u6e90,\u5982\u679c\u4e3a\u7a7a\u5219\u4e0d\u6539\u53d8\nboolean \u4f4e\u901f32K\u662f\u5426\u4f7f\u7528\u5916\u90e8\u65f6\u949f\u6e90,\u5982\u679c\u4e3a\u7a7a\u5219\u4e0d\u6539\u53d8\nint PLL\u7a33\u5b9a\u65f6\u95f4,\u5728\u5207\u6362\u9ad8\u901f\u65f6\u949f\u7684\u65f6\u5019,\u6839\u636e\u786c\u4ef6\u73af\u5883,\u9700\u8981delay\u4e00\u6bb5\u65f6\u95f4\u7b49\u5f85PLL\u7a33\u5b9a,\u9ed8\u8ba4\u662f1200,\u5efa\u8bae\u4e0d\u5c0f\u4e8e1024\n\u4f8b\u5b50\uff1a\nmcu.setXTAL(true, true, 1248)\t--\u9ad8\u901f\u65f6\u949f\u4f7f\u7528\u5916\u90e8\u65f6\u949f,\u4f4e\u901f32K\u4f7f\u7528\u5916\u90e8\u6676\u632f, delay1248\n", "prefix": "mcu.setXTAL"}, "mcu.hardfault": {"body": "mcu.hardfault(${1:mode})", "description": "mcu.hardfault(mode) - mcu\u6b7b\u673a\u65f6\u5904\u7406\u6a21\u5f0f\uff0c\u76ee\u524d\u53ea\u6709EC618\u5e73\u53f0\u9002\u7528\n\u4f20\u5165\u503c\uff1a\nint \u5904\u7406\u6a21\u5f0f\uff0c0\u6b7b\u673a\u505c\u673a\uff0c1\u6b7b\u673a\u540e\u91cd\u542f\uff0c2\u6b7b\u673a\u540e\u5c3d\u91cf\u5c06\u9519\u8bef\u4fe1\u606f\u63d0\u4ea4\u7ed9\u5916\u90e8\u5de5\u5177\u540e\u91cd\u542f\n\u4f8b\u5b50\uff1a\nmcu.hardfault(0)\t--\u6b7b\u673a\u540e\u505c\u673a\uff0c\u4e00\u822c\u7528\u4e8e\u8c03\u8bd5\u72b6\u6001\nmcu.hardfault(1)\t--\u6b7b\u673a\u540e\u91cd\u542f\uff0c\u4e00\u822c\u7528\u4e8e\u6b63\u5f0f\u4ea7\u54c1\nmcu.hardfault(2)\t--\u6b7b\u673a\u540e\u5c3d\u91cf\u5c06\u9519\u8bef\u4fe1\u606f\u63d0\u4ea4\u7ed9\u5916\u90e8\u5de5\u5177\u540e\u91cd\u542f\uff0c\u4e00\u822c\u7528\u4e8e\u538b\u529b\u6d4b\u8bd5\u6216\u8005\u6b63\u5f0f\u4ea7\u54c1\n", "prefix": "mcu.hardfault"}, "mcu.iomux": {"body": "mcu.iomux(${1:type},${2:channel},${3:value})", "description": "mcu.iomux(type, channel, value) - \u5728\u5916\u8bbe\u6253\u5f00\u524d\uff0c\u5c06\u5916\u8bbeIO\u590d\u7528\u5230\u975e\u9ed8\u8ba4\u914d\u7f6e\u4e0a\uff0c\u76ee\u524d\u53ea\u652f\u6301Air780E\u7684\u90e8\u5206\u5916\u8bbe\u590d\u7528\u5230\u5176\u4ed6\u914d\u7f6e\uff0c\u8fd9\u662f\u4e00\u4e2a\u4e34\u65f6\u63a5\u53e3\uff0c\u5982\u679c\u540e\u7eed\u6709\u66f4\u5408\u9002\u7684api\uff0c\u672c\u63a5\u53e3\u5c06\u4e0d\u518d\u66f4\u65b0\n\u4f20\u5165\u503c\uff1a\nint \u5916\u8bbe\u7c7b\u578b\uff0c\u76ee\u524d\u53ea\u6709mcu.UART,mcu.I2C\nint \u603b\u7ebf\u5e8f\u53f7\uff0c0~N\uff0c\nint \u65b0\u7684\u914d\u7f6e\uff0c\u8fd9\u4e2a\u9700\u8981\u6839\u636e\u5177\u4f53\u5e73\u53f0\u51b3\u5b9a\n\u4f8b\u5b50\uff1a\nmcu.iomux(mcu.UART, 2, 1)\t-- Air780E\u7684UART2\u590d\u7528\u5230gpio12\u548cgpio13(Air780EG\u9ed8\u8ba4\u662f\u8fd9\u4e2a\u590d\u7528\uff0c\u4e0d\u8981\u52a8)\nmcu.iomux(mcu.UART, 2, 2)\t-- Air780E\u7684UART2\u590d\u7528\u5230gpio6\u548cgpio7\nmcu.iomux(mcu.I2C, 0, 1)\t-- Air780E\u7684I2C0\u590d\u7528\u5230gpio12\u548cgpio13\nmcu.iomux(mcu.I2C, 0, 2)\t-- Air780E\u7684I2C0\u590d\u7528\u5230gpio16\u548cgpio17\nmcu.iomux(mcu.I2C, 1, 1)\t-- Air780E\u7684I2C1\u590d\u7528\u5230gpio4\u548cgpio5\n", "prefix": "mcu.iomux"}, "mcu.altfun": {"body": "mcu.altfun(${1:type},${2:sn},${3:pad_index},${4:alt_fun},${5:is_input})", "description": "mcu.altfun(type, sn, pad_index, alt_fun, is_input) - IO\u5916\u8bbe\u529f\u80fd\u590d\u7528\u9009\u62e9\uff0c\u6ce8\u610f\u666e\u901aMCU\u662f\u4ee5GPIO\u53f7\u4e3a\u5e8f\u53f7\uff0c\u4f46\u662f\u4e13\u7528SOC\uff0c\u6bd4\u5982CAT1\u7684\uff0c\u662f\u4ee5PAD\u53f7\u4e3a\u5e8f\u53f7\u3002\u672c\u51fd\u6570\u4e0d\u662f\u6240\u6709\u5e73\u53f0\u9002\u7528\n\u4f20\u5165\u503c\uff1a\nint \u5916\u8bbe\u7c7b\u578b\uff0c\u76ee\u524d\u6709mcu.UART,mcu.I2C,mcu.SPI,mcu.PWM,mcu.GPIO,mcu.I2S,mcu.LCD,mcu.CAM\uff0c\u5177\u4f53\u9700\u8981\u770b\u5e73\u53f0\nint \u603b\u7ebf\u5e8f\u53f7\uff0c0~N\uff0c\u5982\u679c\u662fmcu.GPIO\uff0c\u5219\u662fGPIO\u53f7\u3002\u5177\u4f53\u770b\u5e73\u53f0\u7684IOMUX\u590d\u7528\u8868\nint pad\u53f7\uff0c\u5982\u679c\u7559\u7a7a\u4e0d\u5199\uff0c\u5219\u8868\u793a\u6e05\u9664\u914d\u7f6e\uff0c\u4f7f\u7528\u5e73\u53f0\u7684\u9ed8\u8ba4\u914d\u7f6e\u3002\u5177\u4f53\u770b\u5e73\u53f0\u7684IOMUX\u590d\u7528\u8868\nint \u590d\u7528\u529f\u80fd\u5e8f\u53f7\uff0c0~N\u3002\u5177\u4f53\u770b\u5e73\u53f0\u7684IOMUX\u590d\u7528\u8868\nboolean \u662f\u5426\u662f\u8f93\u5165\u529f\u80fd\uff0ctrue\u662f\uff0c\u7559\u7a7a\u662ffalse\n\u4f8b\u5b50\uff1a\nmcu.altfun(mcu.GPIO, 46, 32, 1, 0)\nmcu.altfun(mcu.GPIO, 46)\n", "prefix": "mcu.altfun"}, "miniz.compress": {"body": "miniz.compress(${1:data},${2:flags})", "description": "miniz.compress(data, flags) - \u5feb\u901f\u538b\u7f29,\u9700\u8981165kb\u7684\u7cfb\u7edf\u5185\u5b58\u548c32kb\u7684LuaVM\u5185\u5b58\n\u4f20\u5165\u503c\uff1a\nstring \u5f85\u538b\u7f29\u7684\u6570\u636e, \u5c11\u4e8e400\u5b57\u8282\u7684\u6570\u636e\u4e0d\u5efa\u8bae\u538b\u7f29, \u4e14\u538b\u7f29\u540e\u7684\u6570\u636e\u4e0d\u80fd\u5927\u4e8e32k.\nflags \u538b\u7f29\u53c2\u6570,\u9ed8\u8ba4\u662f miniz.WRITE_ZLIB_HEADER , \u5373\u5199\u5165zlib\u5934\u90e8\n\u8fd4\u56de\u503c\uff1a\nstring \u82e5\u538b\u7f29\u6210\u529f,\u8fd4\u56de\u6570\u636e\u5b57\u7b26\u4e32, \u5426\u5219\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\n\nlocal bigdata = \"123jfoiq4hlkfjbnasdilfhuqwo;hfashfp9qw38hrfaios;hfiuoaghfluaeisw\"\nlocal cdata = miniz.compress(bigdata)\nif cdata then\n log.info(\"miniz\", \"before\", #bigdata, \"after\", #cdata)\n log.info(\"miniz\", \"cdata as hex\", cdata:toHex())\nend\n\n", "prefix": "miniz.compress"}, "miniz.uncompress": {"body": "miniz.uncompress(${1:data},${2:flags})", "description": "miniz.uncompress(data, flags) - \u5feb\u901f\u89e3\u538b,\u9700\u898132kb\u7684LuaVM\u5185\u5b58\n\u4f20\u5165\u503c\uff1a\nstring \u5f85\u89e3\u538b\u7684\u6570\u636e, \u89e3\u538b\u540e\u7684\u6570\u636e\u4e0d\u80fd\u5927\u4e8e32k\nflags \u89e3\u538b\u53c2\u6570,\u9ed8\u8ba4\u662f miniz.PARSE_ZLIB_HEADER , \u5373\u89e3\u6790zlib\u5934\u90e8\n\u8fd4\u56de\u503c\uff1a\nstring \u82e5\u89e3\u538b\u6210\u529f,\u8fd4\u56de\u6570\u636e\u5b57\u7b26\u4e32, \u5426\u5219\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\n\nlocal bigdata = \"123jfoiq4hlkfjbnasdilfhuqwo;hfashfp9qw38hrfaios;hfiuoaghfluaeisw\"\nlocal cdata = miniz.compress(bigdata)\nif cdata then\n log.info(\"miniz\", \"before\", #bigdata, \"after\", #cdata)\n log.info(\"miniz\", \"cdata as hex\", cdata:toHex())\n\n local udata = miniz.uncompress(cdata)\n log.info(\"miniz\", \"udata\", udata)\nend\n", "prefix": "miniz.uncompress"}, "mlx90640.init": {"body": "mlx90640.init(${1:i2c_id},${2:refresh_rate)(\u6ce8\u610f:2023.5.15\u4e4b\u540e\u4f7f\u7528\u6b64\u63a5\u53e3},${3:\u7528\u6237\u9700\u8981\u81ea\u884c\u521d\u59cb\u5316i2c\u63a5\u53e3})", "description": "mlx90640.init(i2c_id,refresh_rate) (\u6ce8\u610f:2023.5.15\u4e4b\u540e\u4f7f\u7528\u6b64\u63a5\u53e3,\u7528\u6237\u9700\u8981\u81ea\u884c\u521d\u59cb\u5316i2c\u63a5\u53e3) - \u521d\u59cb\u5316MLX90640\u4f20\u611f\u5668\n\u4f20\u5165\u503c\uff1a\nint \u4f20\u611f\u5668\u6240\u5728\u7684i2c\u603b\u7ebfid\u6216\u8005\u8f6fi2c\u5bf9\u8c61,\u9ed8\u8ba4\u4e3a0\nint \u4f20\u611f\u5668\u7684\u6d4b\u91cf\u901f\u7387,\u9ed8\u8ba4\u4e3a4Hz\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue, \u5426\u5219\u8fd4\u56denil\u6216\u8005false\n\u4f8b\u5b50\uff1a\ni2c.setup(i2cid,i2c_speed)\nif mlx90640.init(0,mlx90640.FPS4HZ) then\n log.info(\"mlx90640\", \"init ok\")\n sys.wait(500) -- \u7a0d\u7b49\u7247\u523b\n while 1 do\n mlx90640.feed() -- \u53d6\u4e00\u5e27\u6570\u636e\n mlx90640.draw2lcd(0, 0 ,1)-- \u9700\u63d0\u524d\u628alcd\u521d\u59cb\u5316\u597d\n sys.wait(250) -- \u9ed8\u8ba4\u662f4HZ\n end\nelse\n log.info(\"mlx90640\", \"init fail\")\nend\n\n", "prefix": "mlx90640.init"}, "mlx90640.feed": {"body": "mlx90640.feed()", "description": "mlx90640.feed() - \u53d6\u4e00\u5e27\u6570\u636e\n", "prefix": "mlx90640.feed"}, "mlx90640.raw_data": {"body": "mlx90640.raw_data()", "description": "mlx90640.raw_data() - \u83b7\u53d6\u5e95\u5c42\u88f8\u6570\u636e,\u6d6e\u70b9\u6570\u77e9\u9635\n\u8fd4\u56de\u503c\uff1a\ntable \u6d6e\u70b9\u6570\u6570\u636e,768\u4e2a\u50cf\u7d20\u5bf9\u5e94\u7684\u6e29\u5ea6\u503c\n", "prefix": "mlx90640.raw_data"}, "mlx90640.raw_point": {"body": "mlx90640.raw_point(${1:index})", "description": "mlx90640.raw_point(index) - \u83b7\u53d6\u5355\u4e00\u70b9\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nint \u7d22\u5f15\u503c(0-767)\n\u8fd4\u56de\u503c\uff1a\nnumber \u5355\u70b9\u6e29\u5ea6\u503c\n", "prefix": "mlx90640.raw_point"}, "mlx90640.ta_temp": {"body": "mlx90640.ta_temp()", "description": "mlx90640.ta_temp() - \u83b7\u53d6\u5916\u58f3\u6e29\u5ea6\n\u8fd4\u56de\u503c\uff1a\nnumber \u5916\u58f3\u6e29\u5ea6\n", "prefix": "mlx90640.ta_temp"}, "mlx90640.max_temp": {"body": "mlx90640.max_temp()", "description": "mlx90640.max_temp() - \u83b7\u53d6\u6700\u9ad8\u6e29\u5ea6\n\u8fd4\u56de\u503c\uff1a\nnumber \u6700\u9ad8\u6e29\u5ea6\nnumber \u6700\u9ad8\u6e29\u5ea6\u4f4d\u7f6e\n", "prefix": "mlx90640.max_temp"}, "mlx90640.min_temp": {"body": "mlx90640.min_temp()", "description": "mlx90640.min_temp() - \u83b7\u53d6\u6700\u4f4e\u6e29\u5ea6\n\u8fd4\u56de\u503c\uff1a\nnumber \u6700\u4f4e\u6e29\u5ea6\nnumber \u6700\u4f4e\u6e29\u5ea6\u4f4d\u7f6e\n", "prefix": "mlx90640.min_temp"}, "mlx90640.average_temp": {"body": "mlx90640.average_temp()", "description": "mlx90640.average_temp() - \u83b7\u53d6\u5e73\u5747\u6e29\u5ea6\n\u8fd4\u56de\u503c\uff1a\nnumber \u5e73\u5747\u6e29\u5ea6\n", "prefix": "mlx90640.average_temp"}, "mlx90640.get_vdd": {"body": "mlx90640.get_vdd()", "description": "mlx90640.get_vdd() - \u83b7\u53d6vdd\n\u8fd4\u56de\u503c\uff1a\nnumber vdd\n", "prefix": "mlx90640.get_vdd"}, "mlx90640.draw2lcd": {"body": "mlx90640.draw2lcd(${1:x},${2:y},${3:fold})", "description": "mlx90640.draw2lcd(x, y, fold) - \u7ed8\u5236\u5230lcd\n\u4f20\u5165\u503c\uff1a\nint \u5de6\u4e0a\u89d2x\u5750\u6807\nint \u5de6\u4e0a\u89d2y\u5750\u6807\nint \u653e\u5927\u500d\u6570,\u5fc5\u987b\u4e3a2\u7684\u6307\u6570\u500d(1,2,4,8,16...)\u9ed8\u8ba4\u4e3a1\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n", "prefix": "mlx90640.draw2lcd"}, "mobile.imei": {"body": "mobile.imei(${1:index})", "description": "mobile.imei(index) - \u83b7\u53d6IMEI\n\u4f20\u5165\u503c\uff1a\nint \u7f16\u53f7,\u9ed8\u8ba40. \u5728\u652f\u6301\u53cc\u5361\u7684\u6a21\u5757\u4e0a\u624d\u4f1a\u51fa\u73b00\u62161\u7684\u60c5\u51b5\n\u8fd4\u56de\u503c\uff1a\nstring \u5f53\u524d\u7684IMEI\u503c,\u82e5\u5931\u8d25\u8fd4\u56denil\n", "prefix": "mobile.imei"}, "mobile.imsi": {"body": "mobile.imsi(${1:index})", "description": "mobile.imsi(index) - \u83b7\u53d6IMSI\n\u4f20\u5165\u503c\uff1a\nint \u7f16\u53f7,\u9ed8\u8ba40. \u5728\u652f\u6301\u53cc\u5361\u7684\u6a21\u5757\u4e0a\u624d\u4f1a\u51fa\u73b00\u62161\u7684\u60c5\u51b5\n\u8fd4\u56de\u503c\uff1a\nstring \u5f53\u524d\u7684IMSI\u503c,\u82e5\u5931\u8d25\u8fd4\u56denil\n", "prefix": "mobile.imsi"}, "mobile.sn": {"body": "mobile.sn()", "description": "mobile.sn() - \u83b7\u53d6SN\n\u8fd4\u56de\u503c\uff1a\nstring \u5f53\u524d\u7684SN\u503c,\u82e5\u5931\u8d25\u8fd4\u56denil. \u6ce8\u610f, SN\u53ef\u80fd\u5305\u542b\u4e0d\u53ef\u89c1\u5b57\u7b26\n\u4f8b\u5b50\uff1a\n-- \u6ce8\u610f, \u51fa\u5382\u672a\u5fc5\u6709\u5199SN\n-- \u4e00\u822c\u7528\u9014\u7684\u552f\u4e00id, \u53ef\u4ee5\u7528mobile.imei()\u4ee3\u66ff\n-- \u5982\u9700\u8981\u771f\u6b63\u7684\u552f\u4e00ID, \u4f7f\u7528 mcu.unique_id()\n", "prefix": "mobile.sn"}, "mobile.muid": {"body": "mobile.muid()", "description": "mobile.muid() - \u83b7\u53d6MUID\n\u8fd4\u56de\u503c\uff1a\nstring \u5f53\u524d\u7684MUID\u503c,\u82e5\u5931\u8d25\u8fd4\u56denil\n", "prefix": "mobile.muid"}, "mobile.iccid": {"body": "mobile.iccid(${1:id})", "description": "mobile.iccid(id) - \u83b7\u53d6\u6216\u8bbe\u7f6eICCID\n\u4f20\u5165\u503c\uff1a\nint SIM\u5361\u7684\u7f16\u53f7, \u4f8b\u59820, 1, \u9ed8\u8ba40\n\u8fd4\u56de\u503c\uff1a\nstring ICCID\u503c,\u82e5\u5931\u8d25\u8fd4\u56denil\n", "prefix": "mobile.iccid"}, "mobile.number": {"body": "mobile.number(${1:id})", "description": "mobile.number(id) - \u83b7\u53d6\u624b\u673a\u5361\u53f7\uff0c\u6ce8\u610f\uff0c\u53ea\u6709\u5199\u5165\u4e86\u624b\u673a\u53f7\u624d\u80fd\u8bfb\u51fa\uff0c\u56e0\u6b64\u6709\u53ef\u80fd\u8bfb\u51fa\u6765\u662f\u7a7a\u7684\n\u4f20\u5165\u503c\uff1a\nint SIM\u5361\u7684\u7f16\u53f7, \u4f8b\u59820, 1, \u9ed8\u8ba40\n\u8fd4\u56de\u503c\uff1a\nstring number\u503c,\u82e5\u5931\u8d25\u8fd4\u56denil\n", "prefix": "mobile.number"}, "mobile.simid": {"body": "mobile.simid(${1:id})", "description": "mobile.simid(id) - \u83b7\u53d6\u5f53\u524dSIM\u5361\u69fd,\u6216\u8005\u5207\u6362\u5361\u69fd\n\u4f20\u5165\u503c\uff1a\nint SIM\u5361\u7684\u7f16\u53f7, \u4f8b\u59820, 1, \u5982\u679c\u652f\u6301\u53cc\u5361\uff0c\u6bd4\u5982EC618\uff0c\u53ef\u4ee5\u586b2\u6765\u81ea\u9002\u5e94\uff0c\u4f46\u662f\u4f1a\u5360\u7528\u63894\u4e2aIO(gpio4/5/6/23)\u3002\u5982\u679c\u4e0d\u586b\u5c31\u76f4\u63a5\u8bfb\u53d6\u5f53\u524d\u5361\u69fd\nboolean \u662f\u5426\u4f18\u5148\u7528SIM0\uff0c\u53ea\u6709SIM\u5361\u7f16\u53f7\u51992\u81ea\u9002\u5e94\u624d\u6709\u7528\uff01\uff01\uff01\u3002true\u4f18\u5148\u7528SIM0\uff0cfalse\u5219\u7531\u5177\u4f53\u5e73\u53f0\u51b3\u5b9a\uff0c\u652f\u6301\u53cc\u5361\u53cc\u5f85SIM0\u4f18\u5148\uff0c\u4e0d\u652f\u6301\u7684\u662f\u4e0a\u4e00\u6b21\u68c0\u6d4b\u5230\u7684\u4f18\u5148\uff0c\u9ed8\u8ba4\u662ffalse\uff0c\u5fc5\u987b\u5728\u5f00\u673a\u5c31\u914d\u7f6e\uff0c\u5426\u5219\u5c31\u65e0\u6548\u4e86\n\u8fd4\u56de\u503c\uff1a\nint \u5f53\u524dsim\u5361\u69fd\u7f16\u53f7,\u82e5\u5931\u8d25\u8fd4\u56de-1\n\u4f8b\u5b50\uff1a\nmobile.simid(0) -- \u56fa\u5b9a\u4f7f\u7528SIM0\nmobile.simid(1) -- \u56fa\u4ef6\u4f7f\u7528SIM1\nmobile.simid(2) -- \u81ea\u52a8\u8bc6\u522bSIM0, SIM1, \u4f18\u5148\u7ea7\u770b\u5177\u4f53\u5e73\u53f0\nmobile.simid(2, true) -- -- \u81ea\u52a8\u8bc6\u522bSIM0, SIM1, \u4e14SIM0\u4f18\u5148\n-- \u63d0\u9192, \u81ea\u52a8\u8bc6\u522b\u662f\u4f1a\u589e\u52a0\u65f6\u95f4\u7684\n", "prefix": "mobile.simid"}, "mobile.simPin": {"body": "mobile.simPin(${1:id},${2:operation},${3:pin1},${4:pin2})", "description": "mobile.simPin(id,operation,pin1,pin2) - \u68c0\u6d4b\u5f53\u524dSIM\u5361\u662f\u5426\u51c6\u5907\u597d\uff0c\u5bf9SIM\u5361\u7684PIN\u7801\u505a\u76f8\u5173\u64cd\u4f5c\n\u4f20\u5165\u503c\uff1a\nint SIM\u5361\u7684\u7f16\u53f7, \u4f8b\u59820, 1, \u652f\u6301\u53cc\u5361\u53cc\u5f85\u7684\u624d\u9700\u8981\u9009\u62e9\nint PIN\u7801\u64cd\u4f5c\u7c7b\u578b\uff0c\u53ea\u80fd\u662fmobile.PIN_XXXX\uff0c\u4e0d\u64cd\u4f5c\u5c31\u7559\u7a7a\nstring \u66f4\u6362pin\u65f6\u64cd\u4f5c\u7684pin\u7801\uff0c\u6216\u8005\u9a8c\u8bc1\u64cd\u4f5c\u7684pin\u7801\uff0c\u6216\u8005\u89e3\u9501pin\u7801\u65f6\u7684PUK\uff0c4~8\u5b57\u8282\nstring \u66f4\u6362pin\u7801\u64cd\u4f5c\u65f6\u7684\u65b0\u7684pin\u7801\uff0c\u89e3\u9501pin\u7801\u65f6\u7684\u65b0PIN\uff0c4~8\u5b57\u8282\n\u8fd4\u56de\u503c\uff1a\nboolean \u5f53\u65e0PIN\u64cd\u4f5c\u65f6\uff0c\u8fd4\u56deSIM\u5361\u662f\u5426\u51c6\u5907\u597d\uff0c\u6709PIN\u64cd\u4f5c\u65f6\uff0c\u8fd4\u56de\u662f\u5426\u6210\u529f\n\u4f8b\u5b50\uff1a\nlocal cpin_is_ready = mobile.simPin() -- \u5f53\u524dsim\u5361\u662f\u5426\u51c6\u5907\u597d\uff0c\u4e00\u822c\u8fd4\u56defalse\u5c31\u662f\u6ca1\u5361\nlocal succ = mobile.simPin(0, mobile.PIN_VERIFY, \"1234\")\t-- \u8f93\u5165pin\u7801\u9a8c\u8bc1\n", "prefix": "mobile.simPin"}, "mobile.rtime": {"body": "mobile.rtime(${1:time},${2:auto_reset_stack})", "description": "mobile.rtime(time, auto_reset_stack) - \u8bbe\u7f6eRRC\u81ea\u52a8\u91ca\u653e\u65f6\u95f4\u95f4\u9694\uff0c\u5f53\u5f00\u542f\u65f6\u540e\uff0c\u9047\u5230\u6781\u5f31\u4fe1\u53f7+\u9891\u7e41\u6570\u636e\u64cd\u4f5c\u53ef\u80fd\u4f1a\u5f15\u8d77\u7f51\u7edc\u4e25\u91cd\u6545\u969c\uff0c\u56e0\u6b64\u9700\u8981\u989d\u5916\u8bbe\u7f6e\u81ea\u52a8\u91cd\u542f\u534f\u8bae\u6808\n\u4f20\u5165\u503c\uff1a\nint RRC\u81ea\u52a8\u91ca\u653e\u65f6\u95f4\uff0c\u7b49\u540c\u4e8eAir724\u7684AT+RTIME\uff0c\u5355\u4f4d\u79d2\uff0c\u51990\u6216\u8005\u4e0d\u5199\u5219\u662f\u505c\u7528\uff0c\u4e0d\u8981\u8d85\u8fc720\u79d2\uff0c\u6ca1\u6709\u610f\u4e49\nboolean \u7f51\u7edc\u9047\u5230\u4e25\u91cd\u6545\u969c\u65f6\u5c1d\u8bd5\u81ea\u52a8\u6062\u590d\uff0c\u548c\u98de\u884c\u6a21\u5f0f/SIM\u5361\u5207\u6362\u51b2\u7a81\uff0ctrue\u5f00\u542f\uff0cfalse\u5173\u95ed\uff0c\u7559\u7a7a\u65f6\uff0c\u5982\u679c\u8bbe\u7f6e\u4e86\u65f6\u95f4\u5219\u81ea\u52a8\u5f00\u542f\u3002\u539f\u5382\u4f18\u5316\u8fc7\u534f\u8bae\u6808\u540e\u4e0d\u9700\u8981\u4e86\u3002\u672c\u53c2\u6570\u5e9f\u5f03\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n", "prefix": "mobile.rtime"}, "mobile.setAuto": {"body": "mobile.setAuto(${1:check_sim_period},${2:get_cell_period},${3:search_cell_time},${4:auto_reset_stack},${5:network_check_period})", "description": "mobile.setAuto(check_sim_period, get_cell_period, search_cell_time, auto_reset_stack, network_check_period) - \u8bbe\u7f6e\u4e00\u4e9b\u8f85\u52a9\u5468\u671f\u6027\u6216\u8005\u81ea\u52a8\u529f\u80fd\uff0c\u76ee\u524d\u652f\u6301SIM\u5361\u6682\u65f6\u8131\u79bb\u540e\u6062\u590d\uff0c\u5468\u671f\u6027\u83b7\u53d6\u5c0f\u533a\u4fe1\u606f\uff0c\u7f51\u7edc\u9047\u5230\u4e25\u91cd\u6545\u969c\u65f6\u5c1d\u8bd5\u81ea\u52a8\u6062\u590d\n\u4f20\u5165\u503c\uff1a\nint SIM\u5361\u81ea\u52a8\u6062\u590d\u65f6\u95f4\uff0c\u5355\u4f4d\u6beb\u79d2\uff0c\u5efa\u8bae5000~10000\uff0c\u548c\u98de\u884c\u6a21\u5f0f/SIM\u5361\u5207\u6362\u51b2\u7a81\uff0c\u4e0d\u80fd\u518d\u540c\u4e00\u65f6\u95f4\u4f7f\u7528\uff0c\u5fc5\u987b\u9519\u5f00\u6267\u884c\u3002\u51990\u6216\u8005\u4e0d\u5199\u5219\u662f\u5173\u95ed\u529f\u80fd\nint \u5468\u671f\u6027\u83b7\u53d6\u5c0f\u533a\u4fe1\u606f\u7684\u65f6\u95f4\u95f4\u9694\uff0c\u5355\u4f4d\u6beb\u79d2\u3002\u83b7\u53d6\u5c0f\u533a\u4fe1\u606f\u4f1a\u589e\u52a0\u90e8\u5206\u529f\u8017\u3002\u51990\u6216\u8005\u4e0d\u5199\u5219\u662f\u5173\u95ed\u529f\u80fd\nint \u6bcf\u6b21\u641c\u7d22\u5c0f\u533a\u65f6\u6700\u5927\u641c\u7d22\u65f6\u95f4\uff0c\u5355\u4f4d\u79d2\u3002\u4e0d\u8981\u8d85\u8fc78\u79d2\nboolean \u7f51\u7edc\u9047\u5230\u4e25\u91cd\u6545\u969c\u65f6\u5c1d\u8bd5\u81ea\u52a8\u6062\u590d\uff0c\u548c\u98de\u884c\u6a21\u5f0f/SIM\u5361\u5207\u6362\u51b2\u7a81\uff0ctrue\u5f00\u542f\uff0cfalse\u5173\u95ed\uff0c\u5f00\u59cb\u72b6\u6001\u662ffalse\uff0c\u7559\u7a7a\u5219\u4e0d\u505a\u6539\u53d8\nint \u8bbe\u7f6e\u5b9a\u65f6\u68c0\u6d4b\u7f51\u7edc\u662f\u5426\u6b63\u5e38\u5e76\u4e14\u5728\u68c0\u6d4b\u5230\u957f\u65f6\u95f4\u65e0\u7f51\u65f6\u901a\u8fc7\u91cd\u542f\u534f\u8bae\u6808\u6765\u6062\u590d\uff0c\u65e0\u7f51\u6062\u590d\u65f6\u957f\uff0c\u5355\u4f4dms\uff0c\u5efa\u8bae60000\u4ee5\u4e0a\uff0c\u4e3a\u7f51\u7edc\u641c\u7d22\u7f51\u7edc\u4fdd\u7559\u8db3\u591f\u7684\u65f6\u95f4\uff0c\u7559\u7a7a\u5219\u4e0d\u505a\u66f4\u6539\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n", "prefix": "mobile.setAuto"}, "mobile.apn": {"body": "mobile.apn(${1:index},${2:cid},${3:new_apn_name},${4:user_name},${5:password},${6:ip_type},${7:protocol})", "description": "mobile.apn(index, cid, new_apn_name, user_name, password, ip_type, protocol) - \u83b7\u53d6\u6216\u8bbe\u7f6eAPN\uff0c\u8bbe\u7f6eAPN\u5fc5\u987b\u5728\u5165\u7f51\u524d\u5c31\u8bbe\u7f6e\u597d\uff0c\u6bd4\u5982\u5728SIM\u5361\u8bc6\u522b\u5b8c\u6210\u524d\u5c31\u8bbe\u7f6e\u597d\n\u4f20\u5165\u503c\uff1a\nint \u7f16\u53f7,\u9ed8\u8ba40. \u5728\u652f\u6301\u53cc\u5361\u7684\u6a21\u5757\u4e0a\u624d\u4f1a\u51fa\u73b00\u62161\u7684\u60c5\u51b5\nint cid, \u9ed8\u8ba40\uff0c\u5982\u679c\u8981\u7528\u975e\u9ed8\u8ba4APN\u6765\u6fc0\u6d3b\uff0c\u5fc5\u987b>0\nstring \u65b0\u7684APN,\u4e0d\u586b\u5c31\u662f\u83b7\u53d6APN, \u586b\u4e86\u5c31\u662f\u8bbe\u7f6eAPN, \u662f\u5426\u652f\u6301\u8bbe\u7f6e\u53d6\u51b3\u4e8e\u5e95\u5c42\u5b9e\u73b0\nstring \u65b0\u7684APN\u7684username,\u5982\u679cAPN\u4e0d\u662f\u7a7a,\u90a3\u5fc5\u987b\u586b\u5199,\u5982\u679c\u6ca1\u6709\u7559\u4e2a\u7a7a\u5b57\u7b26\u4e32\"\"\u3002\u5982\u679cAPN\u662f\u7a7a\u7684\uff0c\u90a3\u53ef\u4ee5nil\nstring \u65b0\u7684APN\u7684password,\u5982\u679cAPN\u4e0d\u662f\u7a7a,\u90a3\u5fc5\u987b\u586b\u5199,\u5982\u679c\u6ca1\u6709\u7559\u4e2a\u7a7a\u5b57\u7b26\u4e32\"\"\u3002\u5982\u679cAPN\u662f\u7a7a\u7684\uff0c\u90a3\u53ef\u4ee5nil\nint \u6fc0\u6d3bAPN\u65f6\u7684IP TYPE,1=IPV4 2=IPV6 3=IPV4V6,\u9ed8\u8ba4\u662f1\nint \u6fc0\u6d3bAPN\u65f6,\u5982\u679c\u9700\u8981username\u548cpassword,\u5c31\u8981\u5199\u9274\u6743\u534f\u8bae\u7c7b\u578b,1~3,\u9ed8\u8ba43,\u4ee3\u88681\u548c2\u90fd\u5c1d\u8bd5\u4e00\u4e0b\u3002\u4e0d\u9700\u8981\u9274\u6743\u7684\u51990\nboolean \u662f\u5426\u5220\u9664APN,true\u662f,\u5176\u4ed6\u90fd\u5426,\u53ea\u6709\u53c2\u65703\u65b0\u7684APN\u4e0d\u662fstring\u7684\u65f6\u5019\u624d\u6709\u6548\u679c\n\u8fd4\u56de\u503c\uff1a\nstring \u83b7\u53d6\u5230\u7684\u9ed8\u8ba4APN\u503c,\u5931\u8d25\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\nmobile.apn(0,1,\"cmiot\",\"\",\"\",nil,0) -- \u79fb\u52a8\u516c\u7f51\u5361\u8bbe\u7f6eAPN\u4e3acmiot,\u4e00\u822c\u4e0d\u7528\u8bbe\u7f6e\nmobile.apn(0,1,\"name\",\"user\",\"password\",nil,3) -- \u4e13\u7f51\u5361\u8bbe\u7f6e\u7684demo\uff0cname\uff0cuser\uff0cpassword\u8054\u7cfb\u5361\u5546\u83b7\u53d6\n", "prefix": "mobile.apn"}, "mobile.ipv6": {"body": "mobile.ipv6(${1:onff})", "description": "mobile.ipv6(onff) - \u662f\u5426\u9ed8\u8ba4\u5f00\u542fIPV6\u529f\u80fd\uff0c\u5fc5\u987b\u5728LTE\u7f51\u7edc\u8fde\u63a5\u524d\u5c31\u8bbe\u7f6e\u597d\n\u4f20\u5165\u503c\uff1a\nboolean \u5f00\u5173 true\u5f00\u542f false \u5173\u95ed\n\u8fd4\u56de\u503c\uff1a\nboolean true \u5f53\u524d\u662f\u5f00\u542f\u7684\uff0cfalse \u5f53\u524d\u662f\u5173\u95ed\u7684\n\u4f8b\u5b50\uff1a\n-- \u6ce8\u610f, \u5f00\u542fipv6\u540e, \u5f00\u673a\u8054\u7f51\u4f1a\u61622~3\u79d2\n", "prefix": "mobile.ipv6"}, "mobile.csq": {"body": "mobile.csq()", "description": "mobile.csq() - \u83b7\u53d6csq\n\u8fd4\u56de\u503c\uff1a\nint \u5f53\u524dCSQ\u503c, \u82e5\u5931\u8d25\u8fd4\u56de0. \u8303\u56f4 0 - 31, \u8d8a\u5927\u8d8a\u597d\n\u4f8b\u5b50\uff1a\n-- \u6ce8\u610f, 4G\u6a21\u5757\u7684CSQ\u503c\u4ec5\u4f9b\u53c2\u8003, rsrp/rsrq\u624d\u662f\u771f\u6b63\u7684\u4fe1\u53f7\u5f3a\u5ea6\u6307\u6807\n", "prefix": "mobile.csq"}, "mobile.rssi": {"body": "mobile.rssi()", "description": "mobile.rssi() - \u83b7\u53d6rssi\n\u8fd4\u56de\u503c\uff1a\nint \u5f53\u524drssi\u503c,\u82e5\u5931\u8d25\u8fd4\u56de0. \u8303\u56f4 0 \u5230 -114, \u8d8a\u5c0f\u8d8a\u597d\n", "prefix": "mobile.rssi"}, "mobile.rsrp": {"body": "mobile.rsrp()", "description": "mobile.rsrp() - \u83b7\u53d6rsrp,\u53c2\u8003\u4fe1\u53f7\u63a5\u6536\u529f\u7387\n\u8fd4\u56de\u503c\uff1a\nint \u5f53\u524drsrp\u503c,\u82e5\u5931\u8d25\u8fd4\u56de0. \u53d6\u503c\u8303\u56f4: -44 ~ -140 \uff0c\u503c\u8d8a\u5927\u8d8a\u597d\n", "prefix": "mobile.rsrp"}, "mobile.rsrq": {"body": "mobile.rsrq()", "description": "mobile.rsrq() - \u83b7\u53d6rsrq,\u53c2\u8003\u4fe1\u53f7\u53d1\u9001\u529f\u7387\n\u8fd4\u56de\u503c\uff1a\nint \u5f53\u524drsrq\u503c,\u82e5\u5931\u8d25\u8fd4\u56de0. \u53d6\u503c\u8303\u56f4: -3 ~ -19.5 \uff0c\u503c\u8d8a\u5927\u8d8a\u597d\n", "prefix": "mobile.rsrq"}, "mobile.snr": {"body": "mobile.snr()", "description": "mobile.snr() - \u83b7\u53d6snr,\u4fe1\u566a\u6bd4\n\u8fd4\u56de\u503c\uff1a\nint \u5f53\u524dsnq\u503c,\u82e5\u5931\u8d25\u8fd4\u56de0.\u8303\u56f4 0 - 30, \u8d8a\u5927\u8d8a\u597d\n", "prefix": "mobile.snr"}, "mobile.eci": {"body": "mobile.eci()", "description": "mobile.eci() - \u83b7\u53d6\u5f53\u524d\u670d\u52a1\u5c0f\u533a\u7684ECI(E-UTRAN Cell Identifier)\n\u8fd4\u56de\u503c\uff1a\nint \u5f53\u524deci\u503c,\u82e5\u5931\u8d25\u8fd4\u56de-1\n", "prefix": "mobile.eci"}, "mobile.tac": {"body": "mobile.tac()", "description": "mobile.tac() - \u83b7\u53d6\u5f53\u524d\u670d\u52a1\u5c0f\u533a\u7684TAC\u6216\u8005LAC\n\u8fd4\u56de\u503c\uff1a\nint \u5f53\u524deci\u503c,\u82e5\u5931\u8d25\u8fd4\u56de-1. \u5982\u679c\u5c1a\u672a\u6ce8\u518c\u5230\u7f51\u7edc,\u4f1a\u8fd4\u56de0\n\u4f8b\u5b50\uff1a\n-- \u672cAPI\u4e8e 2023.7.9 \u65b0\u589e\n", "prefix": "mobile.tac"}, "mobile.enbid": {"body": "mobile.enbid()", "description": "mobile.enbid() - \u83b7\u53d6\u5f53\u524d\u670d\u52a1\u5c0f\u533a\u7684eNBID(eNodeB Identifier)\n\u8fd4\u56de\u503c\uff1a\nint \u5f53\u524denbid\u503c,\u82e5\u5931\u8d25\u8fd4\u56de-1\n", "prefix": "mobile.enbid"}, "mobile.flymode": {"body": "mobile.flymode(${1:index},${2:enable})", "description": "mobile.flymode(index, enable) - \u8fdb\u51fa\u98de\u884c\u6a21\u5f0f\n\u4f20\u5165\u503c\uff1a\nint \u7f16\u53f7,\u9ed8\u8ba40. \u5728\u652f\u6301\u53cc\u5361\u7684\u6a21\u5757\u4e0a\u624d\u4f1a\u51fa\u73b00\u62161\u7684\u60c5\u51b5\nbool \u662f\u5426\u8bbe\u7f6e\u4e3a\u98de\u884c\u6a21\u5f0f,true\u4e3a\u8bbe\u7f6e, false\u4e3a\u9000\u51fa,\u53ef\u9009\n\u8fd4\u56de\u503c\uff1a\nbool \u539f\u98de\u884c\u6a21\u5f0f\u7684\u72b6\u6001\n", "prefix": "mobile.flymode"}, "mobile.status": {"body": "mobile.status()", "description": "mobile.status() - \u83b7\u53d6\u7f51\u7edc\u72b6\u6001\n\u8fd4\u56de\u503c\uff1a\nint \u5f53\u524d\u7f51\u7edc\u72b6\u6001,0:\u7f51\u7edc\u672a\u6ce8\u518c;1:\u7f51\u7edc\u5df2\u6ce8\u518c;2:\u6b63\u5728\u641c\u7f51\u4e2d;3:\u7f51\u7edc\u6ce8\u518c\u88ab\u62d2\u7edd\n", "prefix": "mobile.status"}, "mobile.getCellInfo": {"body": "mobile.getCellInfo()", "description": "mobile.getCellInfo() - \u83b7\u53d6\u673a\u5236\u4fe1\u606f\n\u8fd4\u56de\u503c\uff1a\ntable \u5305\u542b\u57fa\u7ad9\u6570\u636e\u7684\u6570\u7ec4\n\u4f8b\u5b50\uff1a\n-- \u6ce8\u610f: \u4ece2023.06.20\u5f00\u59cb, \u9700\u8981\u4e3b\u52a8\u8bf7\u6c42\u4e00\u6b21reqCellInfo\u624d\u4f1a\u6709\u57fa\u7ad9\u6570\u636e.\n\n--\u793a\u4f8b\u8f93\u51fa\n--[[\n[\n {\"rsrq\":-10,\"rssi\":-55,\"cid\":124045360,\"mnc\":17,\"pci\":115,\"earfcn\":1850,\"snr\":15,\"rsrp\":-85,\"mcc\":1120,\"tdd\":0},\n {\"pci\":388,\"rsrq\":-11,\"mnc\":17,\"earfcn\":2452,\"snr\":5,\"rsrp\":-67,\"mcc\":1120,\"cid\":124045331},\n {\"pci\":100,\"rsrq\":-9,\"mnc\":17,\"earfcn\":75,\"snr\":17,\"rsrp\":-109,\"mcc\":1120,\"cid\":227096712}\n]\n]]\n\nmobile.reqCellInfo(60)\n-- \u8ba2\u9605\nsys.subscribe(\"CELL_INFO_UPDATE\", function()\n log.info(\"cell\", json.encode(mobile.getCellInfo()))\nend)\n\n-- \u5b9a\u671f\u8f6e\u8bad\u5f0f\nsys.taskInit(function()\n sys.wait(3000)\n while 1 do\n mobile.reqCellInfo(15)\n sys.waitUntil(\"CELL_INFO_UPDATE\", 15000)\n log.info(\"cell\", json.encode(mobile.getCellInfo()))\n end\nend)\n", "prefix": "mobile.getCellInfo"}, "mobile.reqCellInfo": {"body": "mobile.reqCellInfo(${1:timeout})", "description": "mobile.reqCellInfo(timeout) - \u53d1\u8d77\u57fa\u7ad9\u4fe1\u606f\u67e5\u8be2,\u542b\u4e34\u8fd1\u5c0f\u533a\n\u4f20\u5165\u503c\uff1a\nint \u8d85\u65f6\u65f6\u957f,\u5355\u4f4d\u79d2,\u9ed8\u8ba415. \u6700\u5c115, \u6700\u9ad860\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n-- \u53c2\u8003 mobile.getCellInfo \u51fd\u6570\n", "prefix": "mobile.reqCellInfo"}, "mobile.reset": {"body": "mobile.reset()", "description": "mobile.reset() - \u91cd\u542f\u534f\u8bae\u6808\n\u4f8b\u5b50\uff1a\n-- \u91cd\u542fLTE\u534f\u8bae\u6808\nmobile.reset()\n", "prefix": "mobile.reset"}, "mobile.dataTraffic": {"body": "mobile.dataTraffic(${1:clearUplink},${2:clearDownlink})", "description": "mobile.dataTraffic(clearUplink, clearDownlink) - \u6570\u636e\u91cf\u6d41\u91cf\u5904\u7406\n\u4f20\u5165\u503c\uff1a\nboolean \u6e05\u7a7a\u4e0a\u884c\u6d41\u91cf\u7d2f\u8ba1\u503c\uff0ctrue\u6e05\u7a7a\uff0c\u5176\u4ed6\u5ffd\u7565\nboolean \u6e05\u7a7a\u4e0b\u884c\u6d41\u91cf\u7d2f\u8ba1\u503c\uff0ctrue\u6e05\u7a7a\uff0c\u5176\u4ed6\u5ffd\u7565\n\u8fd4\u56de\u503c\uff1a\nint \u4e0a\u884c\u6d41\u91cfGB\nint \u4e0a\u884c\u6d41\u91cfB\nint \u4e0b\u884c\u6d41\u91cfGB\nint \u4e0b\u884c\u6d41\u91cfB\n\u4f8b\u5b50\uff1a\n-- \u83b7\u53d6\u4e0a\u4e0b\u884c\u6d41\u91cf\u7d2f\u8ba1\u503c\n-- \u4e0a\u884c\u6d41\u91cf\u503cByte = uplinkGB * 1024 * 1024 * 1024 + uplinkB\n-- \u4e0b\u884c\u6d41\u91cf\u503cByte = downlinkGB * 1024 * 1024 * 1024 + downlinkB\nlocal uplinkGB, uplinkB, downlinkGB, downlinkB = mobile.dataTraffic()\n\n-- \u6e05\u7a7a\u4e0a\u4e0b\u884c\u6d41\u91cf\u7d2f\u8ba1\u503c\nmobile.dataTraffic(true, true)\n", "prefix": "mobile.dataTraffic"}, "mobile.config": {"body": "mobile.config(${1:item},${2:value})", "description": "mobile.config(item, value) - \u7f51\u7edc\u7279\u6b8a\u914d\u7f6e\uff0c\u9488\u5bf9\u4e0d\u540c\u5e73\u53f0\u6709\u4e0d\u540c\u7684\u914d\u7f6e\uff0c\u8c28\u614e\u4f7f\u7528\uff0c\u76ee\u524d\u53ea\u6709EC618\n\u4f20\u5165\u503c\uff1a\nint \u914d\u7f6e\u9879\u76ee\uff0c\u770bmobile.CONF_XXX\nint \u914d\u7f6e\u503c\n\u8fd4\u56de\u503c\uff1a\nboolean \u662f\u5426\u6210\u529f\n\u4f8b\u5b50\uff1a\n-- EC618\u914d\u7f6e\u5c0f\u533a\u91cd\u9009\u4fe1\u53f7\u5dee\u503c\u95e8\u9650\uff0c\u4e0d\u80fd\u5927\u4e8e15dbm\uff0c\u5fc5\u987b\u5728\u98de\u884c\u6a21\u5f0f\u4e0b\u624d\u80fd\u7528\nmobile.flymode(0,true)\nmobile.config(mobile.CONF_RESELTOWEAKNCELL, 15)\nmobile.config(mobile.CONF_STATICCONFIG, 1) --\u5f00\u542f\u7f51\u7edc\u9759\u6001\u4f18\u5316\nmobile.flymode(0,false)\n\n-- EC618\u8bbe\u7f6eSIM\u5199\u5165\u6b21\u6570\u7684\u7edf\u8ba1\n-- \u5173\u95ed\u7edf\u8ba1\nmobile.config(mobile.CONF_SIM_WC_MODE, 0)\n-- \u5f00\u542f\u7edf\u8ba1, \u9ed8\u8ba4\u4e5f\u662f\u5f00\u542f\u7684.\nmobile.config(mobile.CONF_SIM_WC_MODE, 1)\n-- \u8bfb\u53d6\u7edf\u8ba1\u503c,\u5f02\u6b65, \u9700\u8981\u901a\u8fc7\u7cfb\u7edf\u6d88\u606fSIM_IND\u83b7\u53d6\nsys.subscribe(\"SIM_IND\", function(stats, value)\n log.info(\"SIM_IND\", stats)\n if stats == \"SIM_WC\" then\n log.info(\"sim\", \"write counter\", value)\n end\nend)\nmobile.config(mobile.CONF_SIM_WC_MODE, 2)\n-- \u6e05\u7a7a\u7edf\u8ba1\u503c\nmobile.config(mobile.CONF_SIM_WC_MODE, 3)\n", "prefix": "mobile.config"}, "mobile.getBand": {"body": "mobile.getBand(${1:band},${2:is_default})", "description": "mobile.getBand(band, is_default) - \u83b7\u53d6\u5f53\u524d\u4f7f\u7528/\u652f\u6301\u7684band\n\u4f20\u5165\u503c\uff1a\nzbuff \u8f93\u51faband\nboolean true\u9ed8\u8ba4\u652f\u6301\uff0cfalse\u5f53\u524d\u652f\u6301\u7684\uff0c\u9ed8\u8ba4\u662ffalse\uff0c\u5f53\u524d\u662f\u9884\u7559\u529f\u80fd\uff0c\u4e0d\u8981\u5199true\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u8fd4\u56detrue\uff0c\u5931\u8d25\u653e\u56defalse\n\u4f8b\u5b50\uff1a\nlocal buff = zbuff.create(40)\nmobile.getBand(buff) --\u8f93\u51fa\u5f53\u524d\u4f7f\u7528\u7684band\uff0cband\u53f7\u653e\u5728buff\u5185\uff0cbuff[0]\uff0cbuff[1]\uff0cbuff[2] .. buff[buff:used() - 1]\n", "prefix": "mobile.getBand"}, "mobile.setBand": {"body": "mobile.setBand(${1:band},${2:num})", "description": "mobile.setBand(band, num) - \u8bbe\u7f6e\u4f7f\u7528\u7684band\n\u4f20\u5165\u503c\uff1a\nzbuff \u8f93\u5165\u4f7f\u7528\u7684band\nint band\u6570\u91cf\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u8fd4\u56detrue\uff0c\u5931\u8d25\u653e\u56defalse\n\u4f8b\u5b50\uff1a\nlocal buff = zbuff.create(40)\nbuff[0] = 3\nbuff[1] = 5\nbuff[2] = 8\nbuff[3] = 40\nmobile.setBand(buff, 4) --\u8bbe\u7f6e\u4f7f\u7528\u7684band\u4e00\u51714\u4e2a\uff0c\u4e3a3,5,8,40\n", "prefix": "mobile.setBand"}, "mobile.nstOnOff": {"body": "mobile.nstOnOff(${1:onoff},${2:uart_id})", "description": "mobile.nstOnOff(onoff, uart_id) - RF\u6d4b\u8bd5\u5f00\u5173\u548c\u914d\u7f6e\n\u4f20\u5165\u503c\uff1a\nboolean true\u5f00\u542f\u6d4b\u8bd5\u6a21\u5f0f\uff0cfalse\u5173\u95ed\nint \u4e32\u53e3\u53f7\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\nmobile.nstOnOff(true, uart.VUART_0)\t--\u6253\u5f00\u6d4b\u8bd5\u6a21\u5f0f\uff0c\u5e76\u4e14\u7528\u865a\u62df\u4e32\u53e3\u53d1\u9001\u7ed3\u679c\nmobile.nstOnOff(false) --\u5173\u95ed\u6d4b\u8bd5\u6a21\u5f0f\n", "prefix": "mobile.nstOnOff"}, "mobile.nstInput": {"body": "mobile.nstInput(${1:data})", "description": "mobile.nstInput(data) - RF\u6d4b\u8bd5\u6570\u636e\u8f93\u5165\n\u4f20\u5165\u503c\uff1a\nstring or zbuff \u7528\u6237\u4ece\u4e32\u53e3\u83b7\u53d6\u7684\u6570\u636e\uff0c\u6ce8\u610f\uff0c\u5f53\u83b7\u53d6\u5b8c\u6240\u6709\u6570\u636e\u540e\uff0c\u9700\u8981\u518d\u4f20\u4e00\u4e2anil\u6765\u4f5c\u4e3a\u4f20\u8f93\u7ed3\u675f\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\nmobile.nstInput(uart_data)\nmobile.nstInput(nil)\n", "prefix": "mobile.nstInput"}, "mqttc:subscribe": {"body": "mqttc:subscribe(${1:topic},${2:qos})", "description": "mqttc:subscribe(topic, qos) - \u8ba2\u9605\u4e3b\u9898\n\u4f20\u5165\u503c\uff1a\nstring/table \u4e3b\u9898\nint topic\u4e3astring\u65f6\u751f\u6548 0/1/2 \u9ed8\u8ba40\n\u8fd4\u56de\u503c\uff1a\nint \u6d88\u606fid,\u5f53qos\u4e3a1/2\u65f6\u6709\u6548, \u82e5\u5e95\u5c42\u8fd4\u56de\u5931\u8d25,\u4f1a\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\n-- \u8ba2\u9605\u5355\u4e2atopic, \u4e14qos=0\nmqttc:subscribe(\"/luatos/123456\", 0)\n-- \u8ba2\u9605\u5355\u4e2atopic, \u4e14qos=1\nmqttc:subscribe(\"/luatos/12345678\", 1)\n-- \u8ba2\u9605\u591a\u4e2atopic, \u4e14\u4f7f\u7528\u4e0d\u540c\u7684qos\nmqttc:subscribe({[\"/luatos/1234567\"]=1,[\"/luatos/12345678\"]=2})\n", "prefix": "mqttc:subscribe"}, "mqttc:unsubscribe": {"body": "mqttc:unsubscribe(${1:topic})", "description": "mqttc:unsubscribe(topic) - \u53d6\u6d88\u8ba2\u9605\u4e3b\u9898\n\u4f20\u5165\u503c\uff1a\nstring/table \u4e3b\u9898\n\u4f8b\u5b50\uff1a\nmqttc:unsubscribe(\"/luatos/123456\")\nmqttc:unsubscribe({\"/luatos/1234567\",\"/luatos/12345678\"})\n", "prefix": "mqttc:unsubscribe"}, "mqttc:debug": {"body": "mqttc:debug(${1:onoff})", "description": "mqttc:debug(onoff) - \u914d\u7f6e\u662f\u5426\u6253\u5f00debug\u4fe1\u606f\n\u4f20\u5165\u503c\uff1a\nboolean \u662f\u5426\u6253\u5f00debug\u5f00\u5173\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n", "prefix": "mqttc:debug"}, "mqtt.create": {"body": "mqtt.create(${1:adapter},${2:host},${3:port},${4:ssl},${5:isipv6})", "description": "mqtt.create(adapter,host,port,ssl,isipv6) - mqtt\u5ba2\u6237\u7aef\u521b\u5efa\n\u4f20\u5165\u503c\uff1a\nint \u9002\u914d\u5668\u5e8f\u53f7, \u53ea\u80fd\u662fsocket.ETH0, socket.STA, socket.AP,\u5982\u679c\u4e0d\u586b,\u4f1a\u9009\u62e9\u5e73\u53f0\u81ea\u5e26\u7684\u65b9\u5f0f,\u7136\u540e\u662f\u6700\u540e\u4e00\u4e2a\u6ce8\u518c\u7684\u9002\u914d\u5668\nstring \u670d\u52a1\u5668\u5730\u5740,\u53ef\u4ee5\u662f\u57df\u540d, \u4e5f\u53ef\u4ee5\u662fip\nint \t\u7aef\u53e3\u53f7\nbool/table \u662f\u5426\u4e3assl\u52a0\u5bc6\u8fde\u63a5,\u9ed8\u8ba4\u4e0d\u52a0\u5bc6,true\u4e3a\u65e0\u8bc1\u4e66\u6700\u7b80\u5355\u7684\u52a0\u5bc6\uff0ctable\u4e3a\u6709\u8bc1\u4e66\u7684\u52a0\u5bc6
    server_cert \u670d\u52a1\u5668ca\u8bc1\u4e66\u6570\u636e
    client_cert \u5ba2\u6237\u7aef\u8bc1\u4e66\u6570\u636e
    client_key \u5ba2\u6237\u7aef\u79c1\u94a5\u52a0\u5bc6\u6570\u636e
    client_password \u5ba2\u6237\u7aef\u79c1\u94a5\u53e3\u4ee4\u6570\u636e
    verify \u662f\u5426\u5f3a\u5236\u6821\u9a8c 0\u4e0d\u6821\u9a8c/1\u53ef\u9009\u6821\u9a8c/2\u5f3a\u5236\u6821\u9a8c \u9ed8\u8ba42\nbool \u662f\u5426\u4e3aipv6 \u9ed8\u8ba4\u4e0d\u662f\n\u8fd4\u56de\u503c\uff1a\nuserdata \u82e5\u6210\u529f\u4f1a\u8fd4\u56demqtt\u5ba2\u6237\u7aef\u5b9e\u4f8b,\u5426\u5219\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\n-- \u666e\u901aTCP\u94fe\u63a5\nmqttc = mqtt.create(nil,\"120.55.137.106\", 1884)\n-- \u52a0\u5bc6TCP\u94fe\u63a5,\u4e0d\u9a8c\u8bc1\u670d\u52a1\u5668\u8bc1\u4e66\nmqttc = mqtt.create(nil,\"120.55.137.106\", 8883, true)\n-- \u52a0\u5bc6TCPTCP\u94fe\u63a5,\u5355\u670d\u52a1\u5668\u8bc1\u4e66\u9a8c\u8bc1\nmqttc = mqtt.create(nil,\"120.55.137.106\", 8883, {server_cert=io.readFile(\"/luadb/ca.crt\")})\n-- \u52a0\u5bc6TCPTCP\u94fe\u63a5,\u5355\u670d\u52a1\u5668\u8bc1\u4e66\u9a8c\u8bc1, \u4f46\u53ef\u9009\u8ba4\u8bc1\nmqttc = mqtt.create(nil,\"120.55.137.106\", 8883, {server_cert=io.readFile(\"/luadb/ca.crt\"), verify=1})\n-- \u52a0\u5bc6TCPTCP\u94fe\u63a5,\u53cc\u5411\u8bc1\u4e66\u9a8c\u8bc1\nmqttc = mqtt.create(nil,\"120.55.137.106\", 8883, {\n\t\t\t\t\tserver_cert=io.readFile(\"/luadb/ca.crt\"),\n\t\t\t\t\tclient_cert=io.readFile(\"/luadb/client.pem\"),\n\t\t\t\t\tclient_key=\"123456\",\n\t\t\t\t\tclient_password=\"123456\",\n\t\t\t\t\t})\n", "prefix": "mqtt.create"}, "mqttc:auth": {"body": "mqttc:auth(${1:client_id},${2:username},${3:password},${4:cleanSession})", "description": "mqttc:auth(client_id,username,password,cleanSession) - mqtt\u4e09\u5143\u7ec4\u914d\u7f6e\u53cacleanSession\n\u4f20\u5165\u503c\uff1a\nstring \u8bbe\u5907\u8bc6\u522bid,\u5bf9\u4e8e\u540c\u4e00\u4e2amqtt\u670d\u52a1\u5668\u6765\u8bf4, \u901a\u5e38\u8981\u6c42\u552f\u4e00,\u76f8\u540cclient_id\u4f1a\u4e92\u76f8\u8e22\u4e0b\u7ebf\nstring \u8d26\u53f7 \u53ef\u9009\nstring \u5bc6\u7801 \u53ef\u9009\nbool \u6e05\u9664session,\u9ed8\u8ba4true,\u53ef\u9009\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n-- \u65e0\u8d26\u53f7\u5bc6\u7801\u767b\u5f55,\u4ec5clientId\nmqttc:auth(\"123456789\")\n-- \u5e26\u8d26\u53f7\u5bc6\u7801\u767b\u5f55\nmqttc:auth(\"123456789\",\"username\",\"password\")\n-- \u989d\u5916\u914d\u7f6ecleanSession,\u4e0d\u6e05\u9664\nmqttc:auth(\"123456789\",\"username\",\"password\", false)\n-- \u65e0clientId\u6a21\u5f0f, \u670d\u52a1\u5668\u968f\u673a\u751f\u6210id, cleanSession\u4e0d\u53ef\u914d\u7f6e\nmqttc:auth()\n", "prefix": "mqttc:auth"}, "mqttc:keepalive": {"body": "mqttc:keepalive(${1:time})", "description": "mqttc:keepalive(time) - mqtt\u5fc3\u8df3\u8bbe\u7f6e\n\u4f20\u5165\u503c\uff1a\nint \u53ef\u9009 \u5355\u4f4ds \u9ed8\u8ba4240s. \u6700\u514815,\u6700\u9ad8600\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\nmqttc:keepalive(30)\n", "prefix": "mqttc:keepalive"}, "mqttc:on": {"body": "mqttc:on(${1:cb})", "description": "mqttc:on(cb) - \u6ce8\u518cmqtt\u56de\u8c03\n\u4f20\u5165\u503c\uff1a\nfunction cb mqtt\u56de\u8c03,\u53c2\u6570\u5305\u62ecmqtt_client, event, data, payload\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\nmqttc:on(function(mqtt_client, event, data, payload, metas)\n\t-- \u7528\u6237\u81ea\u5b9a\u4e49\u4ee3\u7801\n\tlog.info(\"mqtt\", \"event\", event, mqtt_client, data, payload)\nend)\n--[[\nevent\u53ef\u80fd\u51fa\u73b0\u7684\u503c\u6709\n conack -- \u670d\u52a1\u5668\u9274\u6743\u5b8c\u6210,mqtt\u8fde\u63a5\u5df2\u7ecf\u5efa\u7acb, \u53ef\u4ee5\u8ba2\u9605\u548c\u53d1\u5e03\u6570\u636e\u4e86,\u6ca1\u6709\u9644\u52a0\u6570\u636e\n recv -- \u63a5\u6536\u5230\u6570\u636e,\u7531\u670d\u52a1\u5668\u4e0b\u53d1, data\u4e3atopic\u503c(string), payload\u4e3a\u4e1a\u52a1\u6570\u636e(string).metas\u662f\u5143\u6570\u636e(table), \u4e00\u822c\u4e0d\u5904\u7406. \n -- metas\u5305\u542b\u4ee5\u4e0b\u5185\u5bb9\n\t\t\t -- qos \u53d6\u503c\u8303\u56f40,1,2\n\t\t\t -- retain \u53d6\u503c\u8303\u56f4 0,1\n\t\t\t -- dup \u53d6\u503c\u8303\u56f4 0,1\n sent -- \u53d1\u9001\u5b8c\u6210, qos0\u4f1a\u9a6c\u4e0a\u901a\u77e5, qos1/qos2\u4f1a\u5728\u670d\u52a1\u5668\u5e94\u7b54\u4f1a\u56de\u8c03, data\u4e3a\u6d88\u606fid\n disconnect -- \u670d\u52a1\u5668\u65ad\u5f00\u8fde\u63a5,\u7f51\u7edc\u95ee\u9898\u6216\u670d\u52a1\u5668\u8e22\u4e86\u5ba2\u6237\u7aef,\u4f8b\u5982clientId\u91cd\u590d,\u8d85\u65f6\u672a\u4e0a\u62a5\u4e1a\u52a1\u6570\u636e\n]]\n", "prefix": "mqttc:on"}, "mqttc:connect": {"body": "mqttc:connect()", "description": "mqttc:connect() - \u8fde\u63a5\u670d\u52a1\u5668\n\u8fd4\u56de\u503c\uff1a\nboolean \u53d1\u8d77\u6210\u529f\u8fd4\u56detrue, \u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- \u5f00\u59cb\u5efa\u7acb\u8fde\u63a5\nmqttc:connect()\n-- \u672c\u51fd\u6570\u4ec5\u4ee3\u8868\u53d1\u8d77\u6210\u529f, \u540e\u7eed\u4ecd\u9700\u6839\u636eready\u51fd\u6570\u5224\u65admqtt\u662f\u5426\u8fde\u63a5\u6b63\u5e38\n", "prefix": "mqttc:connect"}, "mqttc:disconnect": {"body": "mqttc:disconnect()", "description": "mqttc:disconnect() - \u65ad\u5f00\u670d\u52a1\u5668\u8fde\u63a5(\u4e0d\u4f1a\u91ca\u653e\u8d44\u6e90)\n\u8fd4\u56de\u503c\uff1a\nboolean \u53d1\u8d77\u6210\u529f\u8fd4\u56detrue, \u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- \u65ad\u5f00\u8fde\u63a5\nmqttc:disconnect()\n", "prefix": "mqttc:disconnect"}, "mqttc:autoreconn": {"body": "mqttc:autoreconn(${1:reconnect},${2:reconnect_time})", "description": "mqttc:autoreconn(reconnect, reconnect_time) - \u81ea\u52a8\u91cd\u8fde\n\u4f20\u5165\u503c\uff1a\nbool \u662f\u5426\u81ea\u52a8\u91cd\u8fde\nint \u81ea\u52a8\u91cd\u8fde\u5468\u671f \u5355\u4f4dms \u9ed8\u8ba43000ms\n\u4f8b\u5b50\uff1a\nmqttc:autoreconn(true)\n", "prefix": "mqttc:autoreconn"}, "mqttc:publish": {"body": "mqttc:publish(${1:topic},${2:data},${3:qos},${4:retain})", "description": "mqttc:publish(topic, data, qos, retain) - \u53d1\u5e03\u6d88\u606f\n\u4f20\u5165\u503c\uff1a\nstring \u4e3b\u9898,\u5fc5\u586b\nstring \u6d88\u606f,\u5fc5\u586b,\u4f46\u957f\u5ea6\u53ef\u4ee5\u662f0\nint \u6d88\u606f\u7ea7\u522b 0/1 \u9ed8\u8ba40\nint \u662f\u5426\u5b58\u6863, 0/1,\u9ed8\u8ba40\n\u8fd4\u56de\u503c\uff1a\nint \u6d88\u606fid, \u5f53qos\u4e3a1\u62162\u65f6\u4f1a\u6709\u6548\u503c. \u82e5\u5e95\u5c42\u8fd4\u56de\u662f\u5426, \u4f1a\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\nmqttc:publish(\"/luatos/123456\", \"123\")\n", "prefix": "mqttc:publish"}, "mqttc:close": {"body": "mqttc:close()", "description": "mqttc:close() - mqtt\u5ba2\u6237\u7aef\u5173\u95ed(\u5173\u95ed\u540e\u8d44\u6e90\u91ca\u653e\u65e0\u6cd5\u518d\u4f7f\u7528)\n\u4f8b\u5b50\uff1a\nmqttc:close()\n", "prefix": "mqttc:close"}, "mqttc:ready": {"body": "mqttc:ready()", "description": "mqttc:ready() - mqtt\u5ba2\u6237\u7aef\u662f\u5426\u5c31\u7eea\n\u8fd4\u56de\u503c\uff1a\nbool \u5ba2\u6237\u7aef\u662f\u5426\u5c31\u7eea\n\u4f8b\u5b50\uff1a\nlocal error = mqttc:ready()\n", "prefix": "mqttc:ready"}, "mqttc:state": {"body": "mqttc:state()", "description": "mqttc:state() - mqtt\u5ba2\u6237\u7aef\u72b6\u6001\n\u8fd4\u56de\u503c\uff1a\nnumber \u5ba2\u6237\u7aef\u72b6\u6001\n\u4f8b\u5b50\uff1a\nlocal state = mqttc:state()\n", "prefix": "mqttc:state"}, "mqttc:will": {"body": "mqttc:will(${1:topic},${2:payload},${3:qos},${4:retain})", "description": "mqttc:will(topic, payload, qos, retain) - \u8bbe\u7f6e\u9057\u5631\u6d88\u606f\n\u4f20\u5165\u503c\uff1a\nstring \u9057\u5631\u6d88\u606f\u7684topic\nstring \u9057\u5631\u6d88\u606f\u7684payload\nstring \u9057\u5631\u6d88\u606f\u7684qos, \u9ed8\u8ba40, \u53ef\u4ee5\u4e0d\u586b\nstring \u9057\u5631\u6d88\u606f\u7684retain, \u9ed8\u8ba40, \u53ef\u4ee5\u4e0d\u586b\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- \u8981\u5728connect\u4e4b\u524d\u8c03\u7528\nmqttc:will(\"/xxx/xxx\", \"xxxxxx\")\n", "prefix": "mqttc:will"}, "nbiot.isReady": {"body": "nbiot.isReady()", "description": "nbiot.isReady() - \u7f51\u7edc\u662f\u5426\u5c31\u7eea\n\u8fd4\u56de\u503c\uff1a\nboolean \u5df2\u8054\u7f51\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- \u5224\u65ad\u662f\u5426\u5df2\u7ecf\u8054\u7f51\nif nbiot.isReady() then \n log.info(\"nbiot\", \"net is ready\")\nend\n", "prefix": "nbiot.isReady"}, "nbiot.imsi": {"body": "nbiot.imsi()", "description": "nbiot.imsi() - \u8bfb\u53d6IMSI\n\u8fd4\u56de\u503c\uff1a\nstring \u8fd4\u56deIMSI\u503c\uff0c\u5982\u679c\u4e0d\u5b58\u5728\u5c31\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\n--\u8bfb\u53d6imsi\nlog.info(\"nbiot\", \"imsi\", nbiot.imsi())\n", "prefix": "nbiot.imsi"}, "nbiot.iccid": {"body": "nbiot.iccid()", "description": "nbiot.iccid() - \u8bfb\u53d6ICCID\n\u8fd4\u56de\u503c\uff1a\nstring \u8fd4\u56deICCID\u503c\uff0c\u5982\u679c\u4e0d\u5b58\u5728\u5c31\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\n-- \u8bfb\u53d6iccid\nlog.info(\"nbiot\", \"iccid\", nbiot.iccid())\n", "prefix": "nbiot.iccid"}, "nbiot.imei": {"body": "nbiot.imei(${1:val})", "description": "nbiot.imei(val) - \u8bfb\u53d6\u6216\u8bbe\u7f6eIMEI\n\u4f20\u5165\u503c\uff1a\nstring \u4f20\u5165\u9700\u8981\u8bbe\u7f6e\u7684imei\u503c\uff0c\u4e0d\u4f20\u5c31\u662f\u8bfb\u53d6\n\u8fd4\u56de\u503c\uff1a\nstring \u8fd4\u56deimei\u503c\uff0c\u5982\u679c\u4e0d\u5b58\u5728\u5c31\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\n-- \u8bfb\u53d6imei\nlog.info(\"nbiot\", \"imei\", nbiot.imei())\n@usage \n-- \u8bbe\u7f6eimei\nlog.info(\"nbiot\", \"imei\", nbiot.imei(\"898989898989899898\"))\n", "prefix": "nbiot.imei"}, "nbiot.rssi": {"body": "nbiot.rssi()", "description": "nbiot.rssi() - \u8bfb\u53d6RSSI\n\u8fd4\u56de\u503c\uff1a\nint \u8fd4\u56derssi\u503c\n\u4f8b\u5b50\uff1a\n-- \u8bfb\u53d6rssi\nlog.info(\"nbiot\", \"rssi\", nbiot.rssi())\n", "prefix": "nbiot.rssi"}, "nbiot.apn": {"body": "nbiot.apn()", "description": "nbiot.apn() - \u8bfb\u53d6APN\n\u8fd4\u56de\u503c\uff1a\nstring \u8fd4\u56deapn\u503c\n\u4f8b\u5b50\uff1a\n-- \u8bfb\u53d6APN\nlog.info(\"nbiot\", \"apn\", nbiot.apn())\n", "prefix": "nbiot.apn"}, "nbiot.userApn": {"body": "nbiot.userApn(${1:apn},${2:Auth_User_Name},${3:Auth_Password},${4:PDN_TYPE})", "description": "nbiot.userApn(apn,Auth_User_Name,Auth_Password,PDN_TYPE) - \u8bfb\u53d6\u8bbe\u7f6e\u7528\u6237APN\n\u4f20\u5165\u503c\uff1a\nreturn \u8bfb\u53d6\u8fd4\u56dePDN_TYPE,Auth_User_Name,Auth_Password\uff0c\u8bbe\u7f6e\u8fd4\u56debool\n\u4f8b\u5b50\uff1a\n-- \u8bfb\u53d6APN\nlog.info(\"nbiot\", \"apn\", nbiot.userApn())\n", "prefix": "nbiot.userApn"}, "nbiot.tac": {"body": "nbiot.tac()", "description": "nbiot.tac() - \u8bfb\u53d6TAC\n\u8fd4\u56de\u503c\uff1a\nint \u8fd4\u56deTAC\u503c\n\u4f8b\u5b50\uff1a\n-- \u8bfb\u53d6TAC\nlog.info(\"nbiot\", \"tac\", nbiot.tac())\n", "prefix": "nbiot.tac"}, "nbiot.tauTime": {"body": "nbiot.tauTime()", "description": "nbiot.tauTime() - \u8bfb\u53d6Tau Time\n\u8fd4\u56de\u503c\uff1a\nint \u8fd4\u56deTau Time\u503c\n\u4f8b\u5b50\uff1a\n-- \u8bfb\u53d6Tau Time\nlog.info(\"nbiot\", \"tau time\", nbiot.tauTime())\n", "prefix": "nbiot.tauTime"}, "nbiot.activeTime": {"body": "nbiot.activeTime()", "description": "nbiot.activeTime() - \u8bfb\u53d6Active Time\n\u8fd4\u56de\u503c\uff1a\nint \u8fd4\u56deActive Time\u503c\n\u4f8b\u5b50\uff1a\n-- \u8bfb\u53d6Active Time\nlog.info(\"nbiot\", \"Active Time\", nbiot.activeTime())\n", "prefix": "nbiot.activeTime"}, "nbiot.cellID": {"body": "nbiot.cellID()", "description": "nbiot.cellID() - \u8bfb\u53d6CellID\n\u8fd4\u56de\u503c\uff1a\nint \u8fd4\u56deCellID\u503c\n\u4f8b\u5b50\uff1a\n-- \u8bfb\u53d6CellID\nlog.info(\"nbiot\", \"CellID\", nbiot.cellID())\n", "prefix": "nbiot.cellID"}, "nbiot.snr": {"body": "nbiot.snr()", "description": "nbiot.snr() - \u8bfb\u53d6SNR\n\u8fd4\u56de\u503c\uff1a\nint \u8fd4\u56deSNR\u503c\n\u4f8b\u5b50\uff1a\n-- \u8bfb\u53d6SNR\nlog.info(\"nbiot\", \"SNR\", nbiot.snr())\n", "prefix": "nbiot.snr"}, "nbiot.csq": {"body": "nbiot.csq()", "description": "nbiot.csq() - \u8bfb\u53d6CSQ, \u5e76\u4e0d\u5b8c\u5168\u7b49\u4ef7\u4e8eGSM\u7684CSQ\n\u8fd4\u56de\u503c\uff1a\nint \u8fd4\u56decsq\u503c\n\u4f8b\u5b50\uff1a\n-- \u8bfb\u53d6csq\nlog.info(\"nbiot\", \"csq\", nbiot.csq())\n", "prefix": "nbiot.csq"}, "nbiot.ceLevel": {"body": "nbiot.ceLevel()", "description": "nbiot.ceLevel() - \u8bfb\u53d6CE Level\n\u8fd4\u56de\u503c\uff1a\nint \u8fd4\u56deCE Level\u503c\n\u4f8b\u5b50\uff1a\n-- \u8bfb\u53d6CE Level\nlog.info(\"nbiot\", \"CE Level\", nbiot.ceLevel())\n", "prefix": "nbiot.ceLevel"}, "nbiot.sn": {"body": "nbiot.sn(${1:val})", "description": "nbiot.sn(val) - \u8bfb\u53d6\u6216\u8bbe\u7f6eSN,\u666e\u901a\u5237\u673a(\u5237\u5e95\u5c42/\u5237\u811a\u672c)\u4e0d\u4f1a\u6e05\u9664\n\u4f20\u5165\u503c\uff1a\nstring \u9700\u8981\u8bbe\u7f6e\u7684SN\u503c(\u53ea\u80fd\u662f\u53ef\u89c1\u5b57\u7b26),\u4e0d\u4f20\u503c\u5219\u4e3a\u8bfb\u53d6\n\u8fd4\u56de\u503c\uff1a\nstring \u8fd4\u56deSN\u503c\n\u4f8b\u5b50\uff1a\n-- \u8bfb\u53d6SN\nlog.info(\"nbiot\", \"SN\", nbiot.sn())\n@usage \n-- \u8bbe\u7f6eSN\nlog.info(\"nbiot\", \"SN\", nbiot.sn(\"My Custom SN\"))\n", "prefix": "nbiot.sn"}, "nbiot.updateCellInfo": {"body": "nbiot.updateCellInfo()", "description": "nbiot.updateCellInfo() - \u5237\u65b0\u7f51\u7edc\u4fe1\u606f,\u53ef\u901a\u8fc7\u5b9a\u65f6\u4efb\u52a1\u5237\u65b0,\u6700\u5c0f\u95f4\u96945\u79d2\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u542f\u52a8\u5237\u65b0\u7ebf\u7a0b\u8fd4\u56detrue\uff0c\u5426\u5219\u8fd4\u56defalse.\n\u4f8b\u5b50\uff1a\n-- \u5237\u65b0\u7f51\u7edc\u4fe1\u606f\nnbiot.updateCellInfo()\nsys.waitUntil(\"CELL_INFO_IND\", 3000)\nlog.info(\"nbiot\", \"cell\", json.encode(nbiot.getCellInfo()))\n", "prefix": "nbiot.updateCellInfo"}, "nbiot.mcc": {"body": "nbiot.mcc()", "description": "nbiot.mcc() - \u8bfb\u53d6MCC\u503c,\u6ce8\u518c\u7f51\u7edc\u540e\u53ef\u7528,\u901a\u8fc7nbiot.updateCellInfo()\u5237\u65b0\n\u8fd4\u56de\u503c\uff1a\nint \u8fd0\u8425\u5546MCC\u503c\n\u4f8b\u5b50\uff1a\n-- \u8bfb\u53d6MCC\nlog.info(\"nbiot\", \"mcc\", nbiot.mcc())\n", "prefix": "nbiot.mcc"}, "nbiot.mnc": {"body": "nbiot.mnc()", "description": "nbiot.mnc() - \u8bfb\u53d6MNC\u503c,\u6ce8\u518c\u7f51\u7edc\u540e\u53ef\u7528,\u901a\u8fc7nbiot.updateCellInfo()\u5237\u65b0\n\u8fd4\u56de\u503c\uff1a\nint \u8fd0\u8425\u5546MNC\u503c\n\u4f8b\u5b50\uff1a\n-- \u8bfb\u53d6MNC\nlog.info(\"nbiot\", \"mnc\", nbiot.mnc())\n", "prefix": "nbiot.mnc"}, "nbiot.earfcn": {"body": "nbiot.earfcn()", "description": "nbiot.earfcn() - \u8bfb\u53d6earfcn\u503c,\u6ce8\u518c\u7f51\u7edc\u540e\u53ef\u7528,\u901a\u8fc7nbiot.updateCellInfo()\u5237\u65b0\n\u8fd4\u56de\u503c\uff1a\nint \u8fd0\u8425\u5546earfcn\u503c\n\u4f8b\u5b50\uff1a\n-- \u8bfb\u53d6earfcn\nlog.info(\"nbiot\", \"earfcn\", nbiot.earfcn())\n", "prefix": "nbiot.earfcn"}, "nbiot.phyCellId": {"body": "nbiot.phyCellId()", "description": "nbiot.phyCellId() - \u8bfb\u53d6phyCellId\u503c,\u6ce8\u518c\u7f51\u7edc\u540e\u53ef\u7528,\u901a\u8fc7nbiot.updateCellInfo()\u5237\u65b0\n\u8fd4\u56de\u503c\uff1a\nint \u8fd0\u8425\u5546phyCellId\u503c\n\u4f8b\u5b50\uff1a\n-- \u8bfb\u53d6phyCellId\nlog.info(\"nbiot\", \"phyCellId\", nbiot.phyCellId())\n", "prefix": "nbiot.phyCellId"}, "nbiot.rsrq": {"body": "nbiot.rsrq()", "description": "nbiot.rsrq() - \u8bfb\u53d6rsrq\u503c,\u6ce8\u518c\u7f51\u7edc\u540e\u53ef\u7528,\u901a\u8fc7nbiot.updateCellInfo()\u5237\u65b0\n\u8fd4\u56de\u503c\uff1a\nint \u8fd0\u8425\u5546ersrq\u503c\n\u4f8b\u5b50\uff1a\n-- \u8bfb\u53d6rsrq\nlog.info(\"nbiot\", \"rsrq\", nbiot.rsrq())\n", "prefix": "nbiot.rsrq"}, "nbiot.rsrp": {"body": "nbiot.rsrp()", "description": "nbiot.rsrp() - \u8bfb\u53d6rsrp\u503c,\u6ce8\u518c\u7f51\u7edc\u540e\u53ef\u7528,\u901a\u8fc7nbiot.updateCellInfo()\u5237\u65b0\n\u8fd4\u56de\u503c\uff1a\nint \u8fd0\u8425\u5546rsrp\u503c\n\u4f8b\u5b50\uff1a\n-- \u8bfb\u53d6rsrp\nlog.info(\"nbiot\", \"rsrp\", nbiot.rsrp())\n", "prefix": "nbiot.rsrp"}, "nbiot.powerLevel": {"body": "nbiot.powerLevel()", "description": "nbiot.powerLevel() - \u8bfb\u53d6PowerLevel\u503c,\u6ce8\u518c\u7f51\u7edc\u540e\u53ef\u7528,\u901a\u8fc7nbiot.updateCellInfo()\u5237\u65b0\n\u8fd4\u56de\u503c\uff1a\nint \u8fd0\u8425\u5546PowerLevel\u503c\n\u4f8b\u5b50\uff1a\n-- \u8bfb\u53d6PowerLevel\nlog.info(\"nbiot\", \"PowerLevel\", nbiot.powerLevel())\n", "prefix": "nbiot.powerLevel"}, "nbiot.getCellInfo": {"body": "nbiot.getCellInfo()", "description": "nbiot.getCellInfo() - \u83b7\u53d6\u7f51\u7edc\u57fa\u7ad9\u8be6\u60c5,\u6ce8\u518c\u7f51\u7edc\u540e\u53ef\u7528,\u901a\u8fc7nbiot.updateCellInfo()\u5237\u65b0\n\u8fd4\u56de\u503c\uff1a\ntable \u7f51\u7edc\u57fa\u7ad9\u8be6\u60c5\n\u4f8b\u5b50\uff1a\n-- \u8bfb\u53d6\u57fa\u7ad9\u4fe1\u606f\nlog.info(\"nbiot\", \"cell info\", json.encode(nbiot.getCellInfo()))\n", "prefix": "nbiot.getCellInfo"}, "nbiot.setCFUN": {"body": "nbiot.setCFUN(${1:val})", "description": "nbiot.setCFUN(val) - \u8fdb\u5165\u6216\u9000\u51fa\u98de\u884c\u6a21\u5f0f\n\u4f20\u5165\u503c\uff1a\nint 0\u98de\u884c\u6a21\u5f0f,1\u666e\u901a\u8054\u7f51\u6a21\u5f0f\n\u8fd4\u56de\u503c\uff1a\nboolean \u8bbe\u7f6e\u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- \u8fdb\u5165\u98de\u884c\u6a21\u5f0f\nnbiot.setCFUN(0)\n", "prefix": "nbiot.setCFUN"}, "nbiot.setBootCFUN": {"body": "nbiot.setBootCFUN(${1:val})", "description": "nbiot.setBootCFUN(val) - \u8bbe\u7f6e\u8bbe\u5907\u4e0a\u7535\u542f\u52a8\u65f6\uff0c\u662f\u5426\u8fdb\u5165\u98de\u884c\u6a21\u5f0f\n\u4f20\u5165\u503c\uff1a\nint 0\u98de\u884c\u6a21\u5f0f,1\u666e\u901a\u8054\u7f51\u6a21\u5f0f\n\u8fd4\u56de\u503c\uff1a\nboolean \u8bbe\u7f6e\u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- \u8bbe\u7f6e\u4e3a\u4e0a\u7535\u8fdb\u5165\u98de\u884c\u6a21\u5f0f\nnbiot.setBootCFUN(0)\n", "prefix": "nbiot.setBootCFUN"}, "nbiot.getBootCFUN": {"body": "nbiot.getBootCFUN(${1:val})", "description": "nbiot.getBootCFUN(val) - \u83b7\u53d6\u8bbe\u5907\u4e0a\u7535\u542f\u52a8\u65f6\uff0c\u662f\u5426\u8fdb\u5165\u98de\u884c\u6a21\u5f0f\n\u8fd4\u56de\u503c\uff1a\nint \u5f00\u673a\u5c31\u8fdb\u5165\u98de\u884c\u6a21\u5f0f\u8fd4\u56de0,\u8fdb\u5165\u666e\u901a\u6a21\u5f0f\u8fd4\u56de1\n\u4f8b\u5b50\uff1a\n-- \u83b7\u53d6\u4e0a\u7535\u6a21\u5f0f\nnbiot.getBootCFUN()\n", "prefix": "nbiot.getBootCFUN"}, "nbiot.setPSM": {"body": "nbiot.setPSM(${1:psmMode},${2:tauTimeS},${3:activeTimeS})", "description": "nbiot.setPSM(psmMode,tauTimeS,activeTimeS) - \u8bbe\u7f6ePSM\u53c2\u6570\n\u4f20\u5165\u503c\uff1a\nint psm\u6a21\u5f0f, CMI_MM_DISABLE_PSM(0)/CMI_MM_ENABLE_PSM(1)/CMI_MM_DISCARD_PSM(2)\nint TAU time(unit: S)---related to T3412\nint active time(unit: S)---related to T3324\n\u8fd4\u56de\u503c\uff1a\nboolean \u8bbe\u7f6e\u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- \u8bbe\u7f6ePSM\nnbiot.setPSM(1, 60, 120)\n", "prefix": "nbiot.setPSM"}, "nbiot.setEDRX": {"body": "nbiot.setEDRX(${1:modeVal},${2:actType},${3:reqEdrxValueMs})", "description": "nbiot.setEDRX(modeVal,actType,reqEdrxValueMs) - \u8bbe\u7f6eEDRX\u53c2\u6570\n\u4f20\u5165\u503c\uff1a\nint \u6a21\u5f0f,CMI_MM_DISABLE_EDRX = 0/CMI_MM_ENABLE_EDRX_AND_DISABLE_IND = 1/CMI_MM_ENABLE_EDRX_AND_ENABLE_IND = 2/CMI_MM_DISCARD_EDRX = 3\nint \u53ef\u9009\u503c, 0\u6216\u80055. CMI_MM_EDRX_NO_ACT_OR_NOT_USE_EDRX = 0/CMI_MM_EDRX_NB_IOT = 5\nint edrx\u503c,4\u4e2a\u5b57\u8282\u957f\u5ea6\u4e8c\u8fdb\u5236\u5b57\u7b26\u4e32\n\u8fd4\u56de\u503c\uff1a\nboolean \u8bbe\u7f6e\u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- \u8bbe\u7f6eEDRX\nnbiot.setPSM(1, 5, \"0101\")\n", "prefix": "nbiot.setEDRX"}, "nbiot.getPSM": {"body": "nbiot.getPSM()", "description": "nbiot.getPSM() - \u83b7\u53d6PSM\u53c2\u6570\n\u8fd4\u56de\u503c\uff1a\nint psm\u6a21\u5f0f, CMI_MM_DISABLE_PSM(0)/CMI_MM_ENABLE_PSM(1)/CMI_MM_DISCARD_PSM(2)\nint TAU time(unit: S)---related to T3412\nint active time(unit: S)---related to T3324\n\u4f8b\u5b50\uff1a\n-- \u83b7\u53d6PSM\nlog.info(\"psm\", nbiot.getPSM())\n", "prefix": "nbiot.getPSM"}, "nbiot.getEDRX": {"body": "nbiot.getEDRX()", "description": "nbiot.getEDRX() - \u83b7\u53d6EDRX\u53c2\u6570\n\u8fd4\u56de\u503c\uff1a\nint \u6a21\u5f0f,CMI_MM_DISABLE_EDRX = 0/CMI_MM_ENABLE_EDRX_AND_DISABLE_IND = 1/CMI_MM_ENABLE_EDRX_AND_ENABLE_IND = 2/CMI_MM_DISCARD_EDRX = 3\nint \u53ef\u9009\u503c, 0\u6216\u80055. CMI_MM_EDRX_NO_ACT_OR_NOT_USE_EDRX = 0/CMI_MM_EDRX_NB_IOT = 5\nint edrx\u503c,\u5355\u4f4d\u6beb\u79d2\n\u4f8b\u5b50\uff1a\n-- \u83b7\u53d6EDRX\nlog.info(\"edrx\", nbiot.getEDRX())\n", "prefix": "nbiot.getEDRX"}, "nbiot.setTZ": {"body": "nbiot.setTZ(${1:tz},${2:auto})", "description": "nbiot.setTZ(tz, auto) - \u8bbe\u7f6e\u65f6\u533a\u53c2\u6570\n\u4f20\u5165\u503c\uff1a\nint \u65f6\u533a\u53c2\u6570,\u53ef\u9009, \u5355\u4f4d\u662f1/4\u65f6\u533a, \u9ed8\u8ba4\u4e3a \u4e1c8\u533a, \u5bf9\u5e94\u7684\u503c\u4e3a32\nboolean \u662f\u5426\u81ea\u52a8\u8bbe\u7f6e\u65f6\u533a,\u53ef\u9009, \u9ed8\u8ba4\u4e3atrue\n\u4f8b\u5b50\uff1a\n-- \u8bbe\u7f6e\u4e3a\u4e1c8\u533a,\u7981\u7528\u81ea\u52a8\u66f4\u65b0\u65f6\u533a\u529f\u80fd\nnbiot.setTZ(32, false)\n@usage \n-- \u542f\u7528\u81ea\u52a8\u66f4\u65b0\u65f6\u533a\u529f\u80fd\nnbiot.setTZ(nil, true)\n", "prefix": "nbiot.setTZ"}, "nbiot.getTZ": {"body": "nbiot.getTZ()", "description": "nbiot.getTZ() - \u83b7\u53d6\u65f6\u533a\u53c2\u6570\n\u8fd4\u56de\u503c\uff1a\nint \u65f6\u533a\u53c2\u6570,\u5355\u4f4d1/4\u65f6\u533a, \u9ed8\u8ba4\u4e1c8\u533a, \u503c\u4e3a32\nboolean \u81ea\u52a8\u8bbe\u7f6e\u65f6\u533a,\u9ed8\u8ba4\u4e3atrue\n\u4f8b\u5b50\uff1a\n-- \u83b7\u53d6\u65f6\u533a\u53c2\u6570\nlog.info(\"timezone\", nbiot.getTZ())\n", "prefix": "nbiot.getTZ"}, "nbiot.setBands": {"body": "nbiot.setBands(${1:modes})", "description": "nbiot.setBands(modes) - \u8bbe\u7f6eBand\u6a21\u5f0f(\u6682\u4e0d\u53ef\u7528)\n\u4f20\u5165\u503c\uff1a\nany \u6a21\u5f0f,\u9700\u8981\u662f\u4e00\u4e2atable\u5f62\u5f0f\u7684\u6570\u7ec4,\u5fc5\u987b\u4f20\u5165\n\u8fd4\u56de\u503c\uff1a\nboolean \u8bbe\u7f6e\u7ed3\u679c\n\u4f8b\u5b50\uff1a\n-- \u4ec5\u641c\u7d22band 8\nlog.info(\"band\", nbiot.setBands({8}))\n", "prefix": "nbiot.setBands"}, "nbiot.getBands": {"body": "nbiot.getBands()", "description": "nbiot.getBands() - \u83b7\u53d6\u5f53\u524d\u4f7f\u7528\u7684Band\u6a21\u5f0f(\u6682\u4e0d\u53ef\u7528)\n\u8fd4\u56de\u503c\uff1a\ntable \u6240\u8bbe\u7f6e\u7684band\u7684\u6570\u7ec4\n\u4f8b\u5b50\uff1a\n-- \u4ec5\u641c\u7d22band 8\nlog.info(\"band\", json.encode(nbiot.getBands()))\n", "prefix": "nbiot.getBands"}, "nbiot.setEDRXPtw": {"body": "nbiot.setEDRXPtw(${1:val})", "description": "nbiot.setEDRXPtw(val) - \u8bbe\u7f6eEDRX PTW\u53c2\u6570\n\u4f20\u5165\u503c\uff1a\nint \u9700\u8981\u8bbe\u7f6e\u7684\u503c\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- \u8bbe\u7f6ePTW\u503c\u4e3aX\nnbiot.setEDRXPtw(val)\n-- \u53ef\u9009\u503c\nreqPtwValue:\nNB-S1 mode\nThe field contains the PTW value in seconds for NB-S1 mode.The PTW value is used\nas specified in 3GPP TS 23.682 [133a].The PTW value is derived as follows:\nbit\n Paging Time Window length\n0 0 0 0 2,56 seconds\n0 0 0 1 5,12 seconds\n0 0 1 0 7,68 seconds\n0 0 1 1 10,24 seconds\n0 1 0 0 12,8 seconds\n0 1 0 1 15,36 seconds\n0 1 1 0 17,92 seconds\n0 1 1 1 20,48 seconds\n1 0 0 0 23,04 seconds\n1 0 0 1 25,6 seconds\n1 0 1 0 28,16 seconds\n1 0 1 1 30,72 seconds\n1 1 0 0 33,28 seconds\n1 1 0 1 35,84 seconds\n1 1 1 0 38,4 seconds\n1 1 1 1 40,96 seconds\n \n", "prefix": "nbiot.setEDRXPtw"}, "nbiot.getEDRXPtw": {"body": "nbiot.getEDRXPtw()", "description": "nbiot.getEDRXPtw() - \u83b7\u53d6EDRX PTW\u53c2\u6570\n\u8fd4\u56de\u503c\uff1a\nint ptw\u503c\n\u4f8b\u5b50\uff1a\n-- \u6253\u5370PTW\u503c\nlog.info(\"ptw\", nbiot.getEDRXPtw())\n", "prefix": "nbiot.getEDRXPtw"}, "nbiot.ticks": {"body": "nbiot.ticks()", "description": "nbiot.ticks() - \u83b7\u53d6tick\u8ba1\u6570\n\u8fd4\u56de\u503c\uff1a\nint tick\u8ba1\u6570\n\u4f8b\u5b50\uff1a\n-- \u6253\u5370PTW\u503c\nlog.info(\"tick\", nbiot.ticks())\n", "prefix": "nbiot.ticks"}, "nes.init": {"body": "nes.init(${1:file_path})", "description": "nes.init(file_path) - nes\u6a21\u62df\u5668\u521d\u59cb\u5316\n\u4f20\u5165\u503c\uff1a\nstring file_path \u6587\u4ef6\u8def\u5f84\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\nnes.init(\"/luadb/super_mario.nes\")\n", "prefix": "nes.init"}, "nes.key": {"body": "nes.key(${1:key},${2:val})", "description": "nes.key(key,val) - nes\u6a21\u62df\u5668\u521d\u59cb\u5316\n\u4f20\u5165\u503c\uff1a\nnumber key \u6309\u952e\nnumber val \u72b6\u6001 1\u6309\u4e0b 0\u62ac\u8d77\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\nnes.init(\"/luadb/super_mario.nes\")\n", "prefix": "nes.key"}, "nimble.init": {"body": "nimble.init(${1:name})", "description": "nimble.init(name) - \u521d\u59cb\u5316BLE\u4e0a\u4e0b\u6587,\u5f00\u59cb\u5bf9\u5916\u5e7f\u64ad/\u626b\u63cf\n\u4f20\u5165\u503c\uff1a\nstring \u84dd\u7259\u8bbe\u5907\u540d\u79f0,\u53ef\u9009,\u5efa\u8bae\u586b\u5199\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u4e0e\u5426\n\u4f8b\u5b50\uff1a\n-- \u53c2\u8003 demo/nimble\n-- \u672c\u51fd\u6570\u5bf9\u6240\u6709\u6a21\u5f0f\u90fd\u9002\u7528\n", "prefix": "nimble.init"}, "nimble.deinit": {"body": "nimble.deinit()", "description": "nimble.deinit() - \u5173\u95edBLE\u4e0a\u4e0b\u6587\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u4e0e\u5426\n\u4f8b\u5b50\uff1a\n-- \u4ec5\u90e8\u5206\u8bbe\u5907\u652f\u6301,\u5f53\u524d\u53ef\u80fd\u90fd\u4e0d\u652f\u6301\n-- \u672c\u51fd\u6570\u5bf9\u6240\u6709\u6a21\u5f0f\u90fd\u9002\u7528\n", "prefix": "nimble.deinit"}, "nimble.mode": {"body": "nimble.mode(${1:tp})", "description": "nimble.mode(tp) - \u8bbe\u7f6e\u6a21\u5f0f\n\u4f20\u5165\u503c\uff1a\nint \u6a21\u5f0f, \u9ed8\u8ba4server/peripheral, \u53ef\u9009 client/central\u6a21\u5f0f nimble.MODE_BLE_CLIENT\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u4e0e\u5426\n\u4f8b\u5b50\uff1a\n-- \u53c2\u8003 demo/nimble\n-- \u5fc5\u987b\u5728nimble.init()\u4e4b\u524d\u8c03\u7528\n-- nimble.mode(nimble.MODE_BLE_CLIENT) -- \u7b80\u79f0\u4ece\u673a\u6a21\u5f0f,\u672a\u5b8c\u5584\n", "prefix": "nimble.mode"}, "nimble.connok": {"body": "nimble.connok()", "description": "nimble.connok() - \u662f\u5426\u5df2\u7ecf\u5efa\u7acb\u8fde\u63a5\n\u8fd4\u56de\u503c\uff1a\nbool \u5df2\u8fde\u63a5\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\nlog.info(\"ble\", \"connected?\", nimble.connok())\n-- \u4ece\u673aperipheral\u6a21\u5f0f, \u8bbe\u5907\u662f\u5426\u5df2\u7ecf\u88ab\u8fde\u63a5\n-- \u4e3b\u673acentral\u6a21\u5f0f, \u662f\u5426\u5df2\u7ecf\u8fde\u63a5\u5230\u8bbe\u5907\n-- ibeacon\u6a21\u5f0f, \u65e0\u610f\u4e49\n", "prefix": "nimble.connok"}, "nimble.send_msg": {"body": "nimble.send_msg(${1:conn},${2:handle},${3:data})", "description": "nimble.send_msg(conn, handle, data) - \u53d1\u9001\u4fe1\u606f\n\u4f20\u5165\u503c\uff1a\nint \u8fde\u63a5id, \u5f53\u524d\u56fa\u5b9a\u586b1\nint \u5904\u7406id, \u5f53\u524d\u56fa\u5b9a\u586b0\nstring \u6570\u636e\u5b57\u7b26\u4e32,\u53ef\u5305\u542b\u4e0d\u53ef\u89c1\u5b57\u7b26\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u4e0e\u5426\n\u4f8b\u5b50\uff1a\n-- \u53c2\u8003 demo/nimble\n-- \u672c\u51fd\u6570\u5bf9peripheral/\u4ece\u673a\u6a21\u5f0f\u9002\u7528\n", "prefix": "nimble.send_msg"}, "nimble.setUUID": {"body": "nimble.setUUID(${1:tp},${2:addr})", "description": "nimble.setUUID(tp, addr) - \u8bbe\u7f6eserver/peripheral\u7684UUID\n\u4f20\u5165\u503c\uff1a\nstring \u914d\u7f6e\u5b57\u7b26\u4e32,\u540e\u9762\u7684\u793a\u4f8b\u6709\u8bf4\u660e\nstring \u5730\u5740\u5b57\u7b26\u4e32\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u4e0e\u5426\n\u4f8b\u5b50\uff1a\n-- \u53c2\u8003 demo/nimble, 2023-02-25\u4e4b\u540e\u7f16\u8bd1\u7684\u56fa\u4ef6\u652f\u6301\u672cAPI\n-- \u5fc5\u987b\u5728nimble.init()\u4e4b\u524d\u8c03\u7528\n-- \u672c\u51fd\u6570\u5bf9peripheral/\u4ece\u673a\u6a21\u5f0f\u9002\u7528\n\n-- \u8bbe\u7f6eSERVER/Peripheral\u6a21\u5f0f\u4e0b\u7684UUID, \u652f\u6301\u8bbe\u7f6e3\u4e2a\n-- \u5730\u5740\u652f\u6301 2/4/16\u5b57\u8282, \u9700\u8981\u4e8c\u8fdb\u5236\u6570\u636e\n-- 2\u5b57\u8282\u5730\u5740\u793a\u4f8b: AABB, \u5199 string.fromHex(\"AABB\") ,\u6216\u8005 string.char(0xAA, 0xBB)\n-- 4\u5b57\u8282\u5730\u5740\u793a\u4f8b: AABBCCDD , \u5199 string.fromHex(\"AABBCCDD\") ,\u6216\u8005 string.char(0xAA, 0xBB, 0xCC, 0xDD)\nnimble.setUUID(\"srv\", string.fromHex(\"380D\")) -- \u670d\u52a1\u4e3bUUID , \u9ed8\u8ba4\u503c 180D\nnimble.setUUID(\"write\", string.fromHex(\"FF31\")) -- \u5f80\u672c\u8bbe\u5907\u5199\u6570\u636e\u7684UUID, \u9ed8\u8ba4\u503c FFF1\nnimble.setUUID(\"indicate\", string.fromHex(\"FF32\")) -- \u8ba2\u9605\u672c\u8bbe\u5907\u7684\u6570\u636e\u7684UUID,\u9ed8\u8ba4\u503c FFF2\n", "prefix": "nimble.setUUID"}, "nimble.mac": {"body": "nimble.mac()", "description": "nimble.mac() - \u83b7\u53d6\u84dd\u7259MAC\n\u8fd4\u56de\u503c\uff1a\nstring \u84dd\u7259MAC\u5730\u5740,6\u5b57\u8282\n\u4f8b\u5b50\uff1a\n-- \u53c2\u8003 demo/nimble, 2023-02-25\u4e4b\u540e\u7f16\u8bd1\u7684\u56fa\u4ef6\u652f\u6301\u672cAPI\n-- \u672c\u51fd\u6570\u5bf9\u6240\u6709\u6a21\u5f0f\u90fd\u9002\u7528\nlocal mac = nimble.mac()\nlog.info(\"ble\", \"mac\", mac and mac:toHex() or \"Unknwn\")\n", "prefix": "nimble.mac"}, "nimble.sendNotify": {"body": "nimble.sendNotify(${1:srv_uuid},${2:chr_uuid},${3:data})", "description": "nimble.sendNotify(srv_uuid, chr_uuid, data) - \u53d1\u9001notify\n\u4f20\u5165\u503c\uff1a\nstring \u670d\u52a1\u7684UUID,\u9884\u7559,\u5f53\u524d\u586bnil\u5c31\u884c\nstring \u7279\u5f81\u7684UUID,\u5fc5\u987b\u586b\u5199\nstring \u6570\u636e, \u5fc5\u586b, \u8ddfMTU\u5927\u5c0f\u76f8\u5173, \u4e00\u822c\u4e0d\u8981\u8d85\u8fc7256\u5b57\u8282\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- \u672cAPI\u4e8e 2023.07.31 \u65b0\u589e\n-- \u672c\u51fd\u6570\u5bf9peripheral\u6a21\u5f0f\u9002\u7528\nnimble.sendNotify(nil, string.fromHex(\"FF01\"), string.char(0x31, 0x32, 0x33, 0x34, 0x35))\n", "prefix": "nimble.sendNotify"}, "nimble.sendIndicate": {"body": "nimble.sendIndicate(${1:srv_uuid},${2:chr_uuid},${3:data})", "description": "nimble.sendIndicate(srv_uuid, chr_uuid, data) - \u53d1\u9001indicate\n\u4f20\u5165\u503c\uff1a\nstring \u670d\u52a1\u7684UUID,\u9884\u7559,\u5f53\u524d\u586bnil\u5c31\u884c\nstring \u7279\u5f81\u7684UUID,\u5fc5\u987b\u586b\u5199\nstring \u6570\u636e, \u5fc5\u586b, \u8ddfMTU\u5927\u5c0f\u76f8\u5173, \u4e00\u822c\u4e0d\u8981\u8d85\u8fc7256\u5b57\u8282\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- \u672cAPI\u4e8e 2023.07.31 \u65b0\u589e\n-- \u672c\u51fd\u6570\u5bf9peripheral\u6a21\u5f0f\u9002\u7528\nnimble.sendIndicate(nil, string.fromHex(\"FF01\"), string.char(0x31, 0x32, 0x33, 0x34, 0x35))\n", "prefix": "nimble.sendIndicate"}, "nimble.advParams": {"body": "nimble.advParams(${1:conn_mode},${2:disc_mode},${3:itvl_min},${4:itvl_max},${5:channel_map},${6:filter_policy},${7:high_duty_cycle})", "description": "nimble.advParams(conn_mode, disc_mode, itvl_min, itvl_max, channel_map, filter_policy, high_duty_cycle) - \u8bbe\u7f6e\u5e7f\u64ad\u53c2\u6570\n\u4f20\u5165\u503c\uff1a\nint \u5e7f\u64ad\u6a21\u5f0f, 0 - \u4e0d\u53ef\u8fde\u63a5, 1 - \u5b9a\u5411\u8fde\u63a5, 2 - \u672a\u5b9a\u5411\u8fde\u63a5, \u9ed8\u8ba40\nint \u53d1\u73b0\u6a21\u5f0f, 0 - \u4e0d\u53ef\u53d1\u73b0, 1 - \u9650\u5236\u53d1\u73b0, 3 - \u901a\u7528\u53d1\u73b0, \u9ed8\u8ba40\nint \u6700\u5c0f\u5e7f\u64ad\u95f4\u9694, 0 - \u4f7f\u7528\u9ed8\u8ba4\u503c, \u8303\u56f4 1 - 65535, \u5355\u4f4d0.625ms, \u9ed8\u8ba40\nint \u6700\u5927\u5e7f\u64ad\u95f4\u9694, 0 - \u4f7f\u7528\u9ed8\u8ba4\u503c, \u8303\u56f4 1 - 65535, \u5355\u4f4d0.625ms, \u9ed8\u8ba40\nint \u5e7f\u64ad\u901a\u9053, \u9ed8\u8ba40, \u4e00\u822c\u4e0d\u9700\u8981\u8bbe\u7f6e\nint \u8fc7\u6ee4\u89c4\u5219, \u9ed8\u8ba40, \u4e00\u822c\u4e0d\u9700\u8981\u8bbe\u7f6e\nint \u5f53\u5e7f\u64ad\u6a21\u5f0f\u4e3a\"\u5b9a\u5411\u8fde\u63a5\"\u65f6,\u662f\u5426\u4f7f\u7528\u9ad8\u5360\u7a7a\u6bd4\u6a21\u5f0f, \u9ed8\u8ba40, \u53ef\u90091\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n-- \u5f53\u524d\u4ec5ibeacon\u6a21\u5f0f/peripheral/\u4ece\u673a\u53ef\u4f7f\u7528\n-- \u4f8b\u5982\u8bbe\u7f6e \u4e0d\u53ef\u8fde\u63a5 + \u9650\u5236\u53d1\u73b0\n-- \u9700\u8981\u5728nimble.init\u4e4b\u524d\u8bbe\u7f6e\u597d\nnimble.advParams(0, 1)\n-- \u6ce8\u610fperipheral\u6a21\u5f0f\u4e0b\u81ea\u52a8\u914d\u7f6e conn_mode \u548c disc_mode\n", "prefix": "nimble.advParams"}, "nimble.setChr": {"body": "nimble.setChr(${1:index},${2:uuid},${3:flags})", "description": "nimble.setChr(index, uuid, flags) - \u8bbe\u7f6echr\u7684\u7279\u5f81\n\u4f20\u5165\u503c\uff1a\nint chr\u7684\u7d22\u5f15, \u9ed8\u8ba40-3\nint chr\u7684UUID, \u53ef\u4ee5\u662f2/4/16\u5b57\u8282\nint chr\u7684FLAGS, \u8bf7\u67e5\u9605\u5e38\u91cf\u8868\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n-- \u4ec5peripheral/\u4ece\u673a\u53ef\u4f7f\u7528\nnimble.setChr(0, string.fromHex(\"FF01\"), nimble.CHR_F_WRITE_NO_RSP | nimble.CHR_F_NOTIFY)\nnimble.setChr(1, string.fromHex(\"FF02\"), nimble.CHR_F_READ | nimble.CHR_F_NOTIFY)\nnimble.setChr(2, string.fromHex(\"FF03\"), nimble.CHR_F_WRITE_NO_RSP)\n-- \u53ef\u67e5\u9605 demo/nimble/kt6368a\n", "prefix": "nimble.setChr"}, "nimble.config": {"body": "nimble.config(${1:id},${2:value})", "description": "nimble.config(id, value) - \u8bbe\u7f6echr\u7684\u7279\u5f81\n\u4f20\u5165\u503c\uff1a\nint \u914d\u7f6e\u7684id,\u8bf7\u67e5\u9605\u5e38\u91cf\u8868\nany \u6839\u636e\u914d\u7f6e\u7684\u4e0d\u540c, \u6709\u4e0d\u540c\u7684\u53ef\u9009\u503c\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n-- \u672c\u51fd\u6570\u5728\u4efb\u610f\u6a21\u5f0f\u53ef\u7528\n-- \u672cAPI\u4e8e 2023.07.31 \u65b0\u589e\n-- \u4f8b\u5982\u8bbe\u7f6e\u5730\u5740\u8f6c\u6362\u7684\u5927\u5c0f\u7aef, \u9ed8\u8ba4\u662f0, \u517c\u5bb9\u8001\u7684\u4ee3\u7801\n-- \u8bbe\u7f6e\u62101, \u670d\u52a1UUID\u548cchr\u7684UUID\u66f4\u76f4\u89c2\nnimble.config(nimble.CFG_ADDR_ORDER, 1)\n", "prefix": "nimble.config"}, "nimble.ibeacon": {"body": "nimble.ibeacon(${1:data},${2:major},${3:minor},${4:measured_power})", "description": "nimble.ibeacon(data, major, minor, measured_power) - \u914d\u7f6eiBeacon\u7684\u53c2\u6570,\u4ec5iBeacon\u6a21\u5f0f\u53ef\u7528\n\u4f20\u5165\u503c\uff1a\nstring \u6570\u636e, \u5fc5\u987b\u662f16\u5b57\u8282\nint \u4e3b\u7248\u672c\u53f7,\u9ed8\u8ba42, \u53ef\u9009, \u8303\u56f4 0 ~ 65536\nint \u6b21\u7248\u672c\u53f7,\u9ed8\u8ba410,\u53ef\u9009, \u8303\u56f4 0 ~ 65536\nint \u540d\u4e49\u529f\u7387, \u9ed8\u8ba40, \u8303\u56f4 -126 \u5230 20 \n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- \u53c2\u8003 demo/nimble, 2023-02-25\u4e4b\u540e\u7f16\u8bd1\u7684\u56fa\u4ef6\u652f\u6301\u672cAPI\n-- \u672c\u51fd\u6570\u5bf9ibeacon\u6a21\u5f0f\u9002\u7528\nnimble.ibeacon(data, 2, 10, 0)\nnimble.init()\n", "prefix": "nimble.ibeacon"}, "nimble.advData": {"body": "nimble.advData(${1:data},${2:flags})", "description": "nimble.advData(data, flags) - \u914d\u7f6e\u5e7f\u64ad\u6570\u636e,\u4ec5iBeacon\u6a21\u5f0f\u53ef\u7528\n\u4f20\u5165\u503c\uff1a\nstring \u5e7f\u64ad\u6570\u636e, \u5f53\u524d\u6700\u9ad8128\u5b57\u8282\nint \u5e7f\u64ad\u6807\u8bc6, \u53ef\u9009, \u9ed8\u8ba4\u503c\u662f 0x06,\u5373 \u4e0d\u652f\u6301\u4f20\u7edf\u84dd\u7259(0x04) + \u666e\u901a\u53d1\u73b0\u6a21\u5f0f(0x02)\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- \u53c2\u8003 demo/nimble/adv_free, 2023-03-18\u4e4b\u540e\u7f16\u8bd1\u7684\u56fa\u4ef6\u652f\u6301\u672cAPI\n-- \u672c\u51fd\u6570\u5bf9ibeacon\u6a21\u5f0f\u9002\u7528\n-- \u6570\u636e\u6765\u6e90\u53ef\u4ee5\u591a\u79cd\u591a\u6837\nlocal data = string.fromHex(\"123487651234876512348765123487651234876512348765\")\n-- local data = crypto.trng(25)\n-- local data = string.char(0x11, 0x13, 0xA3, 0x5A, 0x11, 0x13, 0xA3, 0x5A, 0x11, 0x13, 0xA3, 0x5A, 0x11, 0x13, 0xA3, 0x5A)\nnimble.advData(data)\nnimble.init()\n\n-- nimble\u652f\u6301\u5728init\u4e4b\u540e\u7684\u4efb\u610f\u65f6\u523b\u518d\u6b21\u8c03\u7528, \u4ee5\u5b9e\u73b0\u6570\u636e\u66f4\u65b0\n-- \u4f8b\u5982 1\u5206\u949f\u53d8\u4e00\u6b21\nwhile 1 do\n sys.wait(60000)\n local data = crypto.trng(25)\n nimble.advData(data)\nend\n", "prefix": "nimble.advData"}, "nimble.scan": {"body": "nimble.scan(${1:timeout})", "description": "nimble.scan(timeout) - \u626b\u63cf\u4ece\u673a\n\u4f20\u5165\u503c\uff1a\nint \u8d85\u65f6\u65f6\u95f4,\u5355\u4f4d\u79d2,\u9ed8\u8ba428\u79d2\n\u8fd4\u56de\u503c\uff1a\nbool \u542f\u52a8\u626b\u63cf\u6210\u529f\u4e0e\u5426\n\u4f8b\u5b50\uff1a\n-- \u53c2\u8003 demo/nimble/scan\n-- \u672c\u51fd\u6570\u5bf9central/\u4e3b\u673a\u6a21\u5f0f\u9002\u7528\n-- \u672c\u51fd\u6570\u4f1a\u76f4\u63a5\u8fd4\u56de, \u7136\u540e\u901a\u8fc7\u5f02\u6b65\u56de\u8c03\u8fd4\u56de\u7ed3\u679c\n\n-- \u8c03\u7528\u672c\u51fd\u6570\u524d, \u9700\u8981\u5148\u786e\u4fdd\u5df2\u7ecfnimble.init()\nnimble.scan()\n-- timeout\u53c2\u6570\u4e8e 2023.7.11 \u6dfb\u52a0\n", "prefix": "nimble.scan"}, "nimble.connect": {"body": "nimble.connect(${1:mac})", "description": "nimble.connect(mac) - \u8fde\u63a5\u5230\u4ece\u673a\n\u4f20\u5165\u503c\uff1a\nstring \u8bbe\u5907\u7684MAC\u5730\u5740\n\u8fd4\u56de\u503c\uff1a\nbool \u542f\u52a8\u8fde\u63a5\u6210\u529f\u4e0e\u5426\n\u4f8b\u5b50\uff1a\n-- \u672c\u51fd\u6570\u5bf9central/\u4e3b\u673a\u6a21\u5f0f\u9002\u7528\n-- \u672c\u51fd\u6570\u4f1a\u76f4\u63a5\u8fd4\u56de, \u7136\u540e\u901a\u8fc7\u5f02\u6b65\u56de\u8c03\u8fd4\u56de\u7ed3\u679c\n", "prefix": "nimble.connect"}, "nimble.disconnect": {"body": "nimble.disconnect()", "description": "nimble.disconnect() - \u65ad\u5f00\u4e0e\u4ece\u673a\u7684\u8fde\u63a5\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n-- \u672c\u51fd\u6570\u5bf9central/\u4e3b\u673a\u6a21\u5f0f\u9002\u7528\n-- \u672c\u51fd\u6570\u4f1a\u76f4\u63a5\u8fd4\u56de\n", "prefix": "nimble.disconnect"}, "nimble.discSvr": {"body": "nimble.discSvr()", "description": "nimble.discSvr() - \u626b\u63cf\u4ece\u673a\u7684\u670d\u52a1\u5217\u8868\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n-- \u672c\u51fd\u6570\u5bf9central/\u4e3b\u673a\u6a21\u5f0f\u9002\u7528\n-- \u672c\u51fd\u6570\u4f1a\u76f4\u63a5\u8fd4\u56de,\u7136\u540e\u5f02\u6b65\u8fd4\u56de\u7ed3\u679c\n-- \u8fd9\u4e2aAPI\u901a\u5e38\u4e0d\u9700\u8981\u8c03\u7528, \u5728\u8fde\u63a5\u4ece\u673a\u5b8c\u6210\u540e,\u4f1a\u4e3b\u52a8\u8c03\u7528\u4e00\u6b21\n", "prefix": "nimble.discSvr"}, "nimble.listSvr": {"body": "nimble.listSvr()", "description": "nimble.listSvr() - \u83b7\u53d6\u4ece\u673a\u7684\u670d\u52a1\u5217\u8868\n\u8fd4\u56de\u503c\uff1a\ntable \u670d\u52a1UUID\u7684\u6570\u7ec4\n\u4f8b\u5b50\uff1a\n-- \u672c\u51fd\u6570\u5bf9central/\u4e3b\u673a\u6a21\u5f0f\u9002\u7528\n", "prefix": "nimble.listSvr"}, "nimble.discChr": {"body": "nimble.discChr(${1:svr_uuid})", "description": "nimble.discChr(svr_uuid) - \u626b\u63cf\u4ece\u673a\u7684\u6307\u5b9a\u670d\u52a1\u7684\u7279\u5f81\u503c\n\u4f20\u5165\u503c\uff1a\nstring \u6307\u5b9a\u670d\u52a1\u7684UUID\u503c\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u542f\u52a8\u626b\u63cf\u4e0e\u5426\n\u4f8b\u5b50\uff1a\n-- \u672c\u51fd\u6570\u5bf9central/\u4e3b\u673a\u6a21\u5f0f\u9002\u7528\n", "prefix": "nimble.discChr"}, "nimble.listChr": {"body": "nimble.listChr(${1:svr_uuid})", "description": "nimble.listChr(svr_uuid) - \u83b7\u53d6\u4ece\u673a\u7684\u6307\u5b9a\u670d\u52a1\u7684\u7279\u5f81\u503c\u5217\u8868\n\u4f20\u5165\u503c\uff1a\nstring \u6307\u5b9a\u670d\u52a1\u7684UUID\u503c\n\u8fd4\u56de\u503c\uff1a\ntable \u7279\u5f81\u503c\u5217\u8868,\u5305\u542bUUID\u548cflags\n\u4f8b\u5b50\uff1a\n-- \u672c\u51fd\u6570\u5bf9central/\u4e3b\u673a\u6a21\u5f0f\u9002\u7528\n", "prefix": "nimble.listChr"}, "nimble.discDsc": {"body": "nimble.discDsc(${1:svr_uuid},${2:chr_uuid})", "description": "nimble.discDsc(svr_uuid, chr_uuid) - \u626b\u63cf\u4ece\u673a\u7684\u6307\u5b9a\u670d\u52a1\u7684\u7279\u5f81\u503c\u7684\u5176\u4ed6\u5c5e\u6027\n\u4f20\u5165\u503c\uff1a\nstring \u6307\u5b9a\u670d\u52a1\u7684UUID\u503c\nstring \u7279\u5f81\u503c\u7684UUID\u503c\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u542f\u52a8\u626b\u63cf\u4e0e\u5426\n\u4f8b\u5b50\uff1a\n-- \u672c\u51fd\u6570\u5bf9central/\u4e3b\u673a\u6a21\u5f0f\u9002\u7528\n", "prefix": "nimble.discDsc"}, "nimble.writeChr": {"body": "nimble.writeChr(${1:svr_uuid},${2:chr_uuid})", "description": "nimble.writeChr(svr_uuid, chr_uuid) - \u4ece\u6307\u5b9a\u7684\u670d\u52a1\u7684\u6307\u5b9a\u7279\u5f81\u503c\u8bfb\u53d6\u6570\u636e(\u5f02\u6b65)\n\u4f20\u5165\u503c\uff1a\nstring \u6307\u5b9a\u670d\u52a1\u7684UUID\u503c\nstring \u6307\u5b9a\u7279\u5f81\u503c\u7684UUID\u503c\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u542f\u52a8\u5199\u5165\u4e0e\u5426\n\u4f8b\u5b50\uff1a\n-- \u672c\u51fd\u6570\u5bf9central/\u4e3b\u673a\u6a21\u5f0f\u9002\u7528\n-- \u8be6\u7ec6\u7528\u6cd5\u8bf7\u53c2\u6570 demo/nimble/central\n", "prefix": "nimble.writeChr"}, "nimble.subChr": {"body": "nimble.subChr(${1:svr_uuid},${2:chr_uuid})", "description": "nimble.subChr(svr_uuid, chr_uuid) - \u8ba2\u9605\u6307\u5b9a\u7684\u670d\u52a1\u7684\u6307\u5b9a\u7279\u5f81\u503c\n\u4f20\u5165\u503c\uff1a\nstring \u6307\u5b9a\u670d\u52a1\u7684UUID\u503c\nstring \u6307\u5b9a\u7279\u5f81\u503c\u7684UUID\u503c\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u542f\u52a8\u8ba2\u9605\u4e0e\u5426\n\u4f8b\u5b50\uff1a\n-- \u672c\u51fd\u6570\u5bf9central/\u4e3b\u673a\u6a21\u5f0f\u9002\u7528\n-- \u8be6\u7ec6\u7528\u6cd5\u8bf7\u53c2\u6570 demo/nimble/central\n", "prefix": "nimble.subChr"}, "nimble.unsubChr": {"body": "nimble.unsubChr(${1:svr_uuid},${2:chr_uuid})", "description": "nimble.unsubChr(svr_uuid, chr_uuid) - \u53d6\u6d88\u8ba2\u9605\u6307\u5b9a\u7684\u670d\u52a1\u7684\u6307\u5b9a\u7279\u5f81\u503c\n\u4f20\u5165\u503c\uff1a\nstring \u6307\u5b9a\u670d\u52a1\u7684UUID\u503c\nstring \u6307\u5b9a\u7279\u5f81\u503c\u7684UUID\u503c\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u542f\u52a8\u53d6\u6d88\u8ba2\u9605\u4e0e\u5426\n\u4f8b\u5b50\uff1a\n-- \u672c\u51fd\u6570\u5bf9central/\u4e3b\u673a\u6a21\u5f0f\u9002\u7528\n-- \u8be6\u7ec6\u7528\u6cd5\u8bf7\u53c2\u6570 demo/nimble/central\n", "prefix": "nimble.unsubChr"}, "otp.read": {"body": "otp.read(${1:zone},${2:offset},${3:len})", "description": "otp.read(zone, offset, len) - \u8bfb\u53d6\u6307\u5b9aOTP\u533a\u57df\u8bfb\u53d6\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nint \u533a\u57df, \u901a\u5e38\u4e3a0/1/2/3, \u4e0e\u5177\u4f53\u786c\u4ef6\u76f8\u5173\nint \u504f\u79fb\u91cf\nint \u8bfb\u53d6\u957f\u5ea6, \u5355\u4f4d\u5b57\u8282, \u5fc5\u987b\u662f4\u7684\u500d\u6570, \u4e0d\u80fd\u8d85\u8fc74096\u5b57\u8282\n\u8fd4\u56de\u503c\uff1a\nstring \u6210\u529f\u8fd4\u56de\u5b57\u7b26\u4e32, \u5426\u5219\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\n\nlocal otpdata = otp.read(0, 0, 64)\nif otpdata then\n log.info(\"otp\", otpdata:toHex())\nend\n", "prefix": "otp.read"}, "otp.write": {"body": "otp.write(${1:zone},${2:data},${3:offset})", "description": "otp.write(zone, data, offset) - \u5f80\u6307\u5b9aOTP\u533a\u57df\u5199\u5165\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nint \u533a\u57df, \u901a\u5e38\u4e3a0/1/2/3, \u4e0e\u5177\u4f53\u786c\u4ef6\u76f8\u5173\nstring \u6570\u636e, \u957f\u5ea6\u5fc5\u987b\u662f4\u4e2a\u500d\u6570\nint \u504f\u79fb\u91cf\n\u8fd4\u56de\u503c\uff1a\nbooL \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n", "prefix": "otp.write"}, "otp.erase": {"body": "otp.erase(${1:zone})", "description": "otp.erase(zone) - \u64e6\u9664\u6307\u5b9aOTP\u533a\u57df\n\u4f20\u5165\u503c\uff1a\nint \u533a\u57df, \u901a\u5e38\u4e3a0/1/2/3, \u4e0e\u5177\u4f53\u786c\u4ef6\u76f8\u5173\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n", "prefix": "otp.erase"}, "otp.lock": {"body": "otp.lock(${1:zone})", "description": "otp.lock(zone) - \u9501\u5b9aOTP\u533a\u57df. \u7279\u522b\u6ce8\u610f!!\u4e00\u65e6\u52a0\u9501\u5373\u65e0\u6cd5\u89e3\u9501,OTP\u53d8\u6210\u53ea\u8bfb!!!\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n", "prefix": "otp.lock"}, "pack.unpack": {"body": "pack.unpack(${1:string},${2:format},${3:init})", "description": "pack.unpack( string, format, init) - \u89e3\u5305\u5b57\u7b26\u4e32\n\u4f20\u5165\u503c\uff1a\nstring \u9700\u89e3\u5305\u7684\u5b57\u7b26\u4e32\nstring \u683c\u5f0f\u5316\u7b26\u53f7 '<':\u8bbe\u4e3a\u5c0f\u7aef\u7f16\u7801 '>':\u8bbe\u4e3a\u5927\u7aef\u7f16\u7801 '=':\u5927\u5c0f\u7aef\u9075\u5faa\u672c\u5730\u8bbe\u7f6e 'z':\u7a7a\u5b57\u7b26\u4e32 'p':byte\u5b57\u7b26\u4e32 'P':word\u5b57\u7b26\u4e32 'a':size_t\u5b57\u7b26\u4e32 'A':\u6307\u5b9a\u957f\u5ea6\u5b57\u7b26\u4e32 'f':float 'd':double 'n':Lua number 'c':char 'b':byte = unsigned char 'h':short 'H':unsigned short 'i':int 'I':unsigned int 'l':long 'L':unsigned long\nint \u9ed8\u8ba4\u503c\u4e3a1\uff0c\u6807\u8bb0\u89e3\u5305\u5f00\u59cb\u7684\u4f4d\u7f6e\n\u8fd4\u56de\u503c\uff1a\nint \u5b57\u7b26\u4e32\u6807\u8bb0\u7684\u4f4d\u7f6e\nany \u7b2c\u4e00\u4e2a\u89e3\u5305\u7684\u503c, \u6839\u636eformat\u503c,\u53ef\u80fd\u6709N\u4e2a\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\nlocal _,a = pack.unpack(x,\">h\") --\u89e3\u5305\u6210short (2\u5b57\u8282)\n", "prefix": "pack.unpack"}, "pack.pack": {"body": "pack.pack(${1:format},${2:val1},${3:val2},${4:val3},${5:valn})", "description": "pack.pack( format, val1, val2, val3, valn ) - \u6253\u5305\u5b57\u7b26\u4e32\u7684\u503c\n\u4f20\u5165\u503c\uff1a\nstring format \u683c\u5f0f\u5316\u7b26\u53f7 '<':\u8bbe\u4e3a\u5c0f\u7aef\u7f16\u7801 '>':\u8bbe\u4e3a\u5927\u7aef\u7f16\u7801 '=':\u5927\u5c0f\u7aef\u9075\u5faa\u672c\u5730\u8bbe\u7f6e 'z':\u7a7a\u5b57\u7b26\u4e32 'p':byte\u5b57\u7b26\u4e32 'P':word\u5b57\u7b26\u4e32 'a':size_t\u5b57\u7b26\u4e32 'A':\u6307\u5b9a\u957f\u5ea6\u5b57\u7b26\u4e32 'f':float 'd':double 'n':Lua number 'c':char 'b':byte = unsigned char 'h':short 'H':unsigned short 'i':int 'I':unsigned int 'l':long 'L':unsigned long\nany \u7b2c\u4e00\u4e2a\u9700\u6253\u5305\u7684\u503c\nany \u7b2c\u4e8c\u4e2a\u9700\u6253\u5305\u7684\u503c\nany \u7b2c\u4e8c\u4e2a\u9700\u6253\u5305\u7684\u503c\nany \u7b2cn\u4e2a\u9700\u6253\u5305\u7684\u503c\n\u8fd4\u56de\u503c\uff1a\nstring \u4e00\u4e2a\u5305\u542b\u6240\u6709\u683c\u5f0f\u5316\u53d8\u91cf\u7684\u5b57\u7b26\u4e32\n\u4f8b\u5b50\uff1a\nlocal data = pack.pack('=0 \u662f\u672c\u6b21\u5b9a\u65f6\u5524\u9192\u7684\u5b9a\u65f6\u5668ID\uff0c\u5176\u4ed6\u9519\u8bef\uff0c\u8bf4\u660e\u4e0d\u662f\u5b9a\u65f6\u5524\u9192\u7684\n\u4f8b\u5b50\uff1a\nlocal timer_id = pm.dtimerWkId()\n", "prefix": "dtimerWkId"}, "pm.lastReson": {"body": "pm.lastReson()", "description": "pm.lastReson() - \u5f00\u673a\u539f\u56e0,\u7528\u4e8e\u5224\u65ad\u662f\u4ece\u4f11\u7720\u6a21\u5757\u5f00\u673a,\u8fd8\u662f\u7535\u6e90/\u590d\u4f4d\u5f00\u673a\n\u8fd4\u56de\u503c\uff1a\nint 0-\u4e0a\u7535/\u590d\u4f4d\u5f00\u673a, 1-RTC\u5f00\u673a, 2-WakeupIn/Pad/IO\u5f00\u673a, 3-Wakeup/RTC\u5f00\u673a\nint 0-\u666e\u901a\u5f00\u673a(\u4e0a\u7535/\u590d\u4f4d),3-\u6df1\u7761\u7720\u5f00\u673a,4-\u4f11\u7720\u5f00\u673a\nint \u590d\u4f4d\u5f00\u673a\u8be6\u7ec6\u539f\u56e0\uff1a0-powerkey\u6216\u8005\u4e0a\u7535\u5f00\u673a 1-\u5145\u7535\u6216\u8005AT\u6307\u4ee4\u4e0b\u8f7d\u5b8c\u6210\u540e\u5f00\u673a 2-\u95f9\u949f\u5f00\u673a 3-\u8f6f\u4ef6\u91cd\u542f 4-\u672a\u77e5\u539f\u56e0 5-RESET\u952e 6-\u5f02\u5e38\u91cd\u542f 7-\u5de5\u5177\u63a7\u5236\u91cd\u542f 8-\u5185\u90e8\u770b\u95e8\u72d7\u91cd\u542f 9-\u5916\u90e8\u91cd\u542f 10-\u5145\u7535\u5f00\u673a\n\u4f8b\u5b50\uff1a\n-- \u662f\u54ea\u79cd\u65b9\u5f0f\u5f00\u673a\u5462\nlog.info(\"pm\", \"last power reson\", pm.lastReson())\n", "prefix": "pm.lastReson"}, "pm.force": {"body": "pm.force(${1:mode})", "description": "pm.force(mode) - \u5f3a\u5236\u8fdb\u5165\u6307\u5b9a\u7684\u4f11\u7720\u6a21\u5f0f\uff0c\u5ffd\u7565\u67d0\u4e9b\u5916\u8bbe\u7684\u5f71\u54cd\uff0c\u6bd4\u5982USB\n\u4f20\u5165\u503c\uff1a\nint \u4f11\u7720\u6a21\u5f0f\n\u8fd4\u56de\u503c\uff1a\nboolean \u5904\u7406\u7ed3\u679c,\u82e5\u8fd4\u56de\u6210\u529f,\u5927\u6982\u7387\u4f1a\u9a6c\u4e0a\u8fdb\u5165\u8be5\u4f11\u7720\u6a21\u5f0f\n\u4f8b\u5b50\uff1a\n-- \u8bf7\u6c42\u8fdb\u5165\u4f11\u7720\u6a21\u5f0f\npm.force(pm.HIB)\n-- \u5bf9\u5e94EC618\u7cfb\u5217(Air780E/Air700E\u7b49), \u8be5\u64cd\u4f5c\u4f1a\u5173\u95edUSB\u901a\u4fe1\n-- \u5524\u9192\u540e\u5982\u9700\u5f00\u542fUSB, \u8bf7\u6253\u5f00USB\u7535\u538b\n--pm.power(pm.USB, true)\n", "prefix": "pm.force"}, "pm.check": {"body": "pm.check()", "description": "pm.check() - \u68c0\u67e5\u4f11\u7720\u72b6\u6001\n\u8fd4\u56de\u503c\uff1a\nboolean \u5904\u7406\u7ed3\u679c,\u5982\u679c\u80fd\u987a\u5229\u8fdb\u5165\u4f11\u7720,\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\nint \u5e95\u5c42\u8fd4\u56de\u503c,0\u4ee3\u8868\u80fd\u8fdb\u5165\u6700\u5e95\u5c42\u4f11\u7720,\u5176\u4ed6\u503c\u4ee3\u8868\u6700\u4f4e\u53ef\u4f11\u7720\u7ea7\u522b\n\u4f8b\u5b50\uff1a\n-- \u8bf7\u6c42\u8fdb\u5165\u4f11\u7720\u6a21\u5f0f,\u7136\u540e\u68c0\u67e5\u662f\u5426\u80fd\u771f\u7684\u4f11\u7720\npm.request(pm.HIB)\nif pm.check() then\n log.info(\"pm\", \"it is ok to hib\")\nelse\n -- \u5bf9\u5e94EC618\u7cfb\u5217(Air780E/Air700E\u7b49), \u8be5\u64cd\u4f5c\u4f1a\u5173\u95edUSB\u901a\u4fe1\n pm.force(pm.HIB) -- \u5f3a\u5236\u4f11\u7720\n -- \u5524\u9192\u540e\u5982\u9700\u5f00\u542fUSB, \u8bf7\u6253\u5f00USB\u7535\u538b\n --sys.wait(100)\n --pm.power(pm.USB, true)\nend\n", "prefix": "pm.check"}, "pm.shutdown": {"body": "pm.shutdown()", "description": "pm.shutdown() - \u5173\u673a\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n-- \u5f53\u524d\u4ec5EC618\u7cfb\u5217(Air780E/Air600E/Air700E/Air780EG\u652f\u6301)\n-- \u9700\u89812022-12-22\u4e4b\u540e\u7f16\u8bd1\u7684\u56fa\u4ef6\npm.shutdown()\n", "prefix": "pm.shutdown"}, "pm.reboot": {"body": "pm.reboot()", "description": "pm.reboot() - \u91cd\u542f\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n", "prefix": "pm.reboot"}, "pm.power": {"body": "pm.power(${1:id},${2:onoff})", "description": "pm.power(id, onoff) - \u5f00\u542f\u5185\u90e8\u7684\u7535\u6e90\u63a7\u5236\uff0c\u6ce8\u610f\u4e0d\u662f\u6240\u6709\u7684\u5e73\u53f0\u90fd\u652f\u6301\uff0c\u53ef\u80fd\u90e8\u5206\u5e73\u53f0\u652f\u6301\u90e8\u5206\u9009\u9879\uff0c\u770b\u786c\u4ef6\n\u4f20\u5165\u503c\uff1a\nint \u7535\u6e90\u63a7\u5236id,pm.USB pm.GPS\u4e4b\u7c7b\nboolean or int \u5f00\u5173true/1\u5f00\uff0cfalse/0\u5173\uff0c\u9ed8\u8ba4\u5173\uff0c\u90e8\u5206\u9009\u9879\u652f\u6301\u6570\u503c\n\u8fd4\u56de\u503c\uff1a\nboolean \u5904\u7406\u7ed3\u679ctrue\u6210\u529f\uff0cfalse\u5931\u8d25\n\u4f8b\u5b50\uff1a\n-- \u5173\u95edUSB\u7535\u6e90, \u53cd\u4e4b\u5f00\u542f\u5c31\u662f\u4f20true\npm.power(pm.USB, false) \n\n-- Air780EG,\u4e3a\u5185\u7f6e\u7684GPS\u82af\u7247\u4e0a\u7535. \u6ce8\u610f, Air780EG\u7684GPS\u548cGPS_ANT\u662f\u4e00\u8d77\u63a7\u5236\u7684,\u6240\u4ee5\u5408\u5e76\u4e86.\npm.power(pm.GPS, true)\n\n-- EC618\u7cfb\u5217\u5f00\u542fpwrkey\u5f00\u673a\u9632\u6296\n-- \u6ce8\u610f: \u5f00\u542f\u540e, \u590d\u4f4d\u952e\u5c31\u53d8\u6210\u5173\u673a\u4e86!!! pwrkey\u8981\u957f\u63092\u79d2\u624d\u80fd\u5f00\u673a\n-- pm.power(pm.PWK_MODE, true)\n\n-- EC618\u7cfb\u5217PSM+\u4f4e\u529f\u8017\u8bbe\u7f6e\n-- ec618\u7684\u8282\u80fd\u6a21\u5f0f\uff0c0~3\uff0c0\u5b8c\u5168\u5173\u95ed\uff0c1\u6027\u80fd\u4f18\u5148\uff0c2\u5e73\u8861\uff0c3\u6781\u81f4\u529f\u8017\n-- \u8be6\u60c5\u8bbf\u95ee: https://airpsm.cn\n-- pm.power(pm.WORK_MODE, 1)\n", "prefix": "pm.power"}, "pm.ioVol": {"body": "pm.ioVol(${1:id},${2:val})", "description": "pm.ioVol(id, val) - IO\u9ad8\u7535\u5e73\u7535\u538b\u63a7\u5236,\u5f53\u524d\u4ec5EC618\u7cfb\u5217\u53ef\u7528\n\u4f20\u5165\u503c\uff1a\nint \u7535\u5e73id,\u76ee\u524d\u53ea\u6709pm.IOVOL_ALL_GPIO\nint \u7535\u5e73\u503c,\u5355\u4f4d\u6beb\u4f0f\n\u8fd4\u56de\u503c\uff1a\nboolean \u5904\u7406\u7ed3\u679ctrue\u6210\u529f\uff0cfalse\u5931\u8d25\n\u4f8b\u5b50\uff1a\n-- EC618\u7cfb\u5217\u8bbe\u7f6eIO\u7535\u5e73, \u8303\u56f4 1650 ~ 2000\uff0c2650~3400 , \u5355\u4f4d\u6beb\u4f0f, \u6b65\u8fdb50mv\n-- \u4f8b\u5982Air780E/Air600E/Air700E/Air780EG\n-- \u6ce8\u610f, \u8fd9\u91cc\u7684\u8bbe\u7f6e\u4f18\u5148\u7ea7\u4f1a\u9ad8\u4e8e\u786c\u4ef6IOSEL\u811a\u7684\u914d\u7f6e\n-- \u4f46\u5f00\u673a\u65f6\u4f9d\u7136\u5148\u4f7f\u7528\u786c\u4ef6\u914d\u7f6e,\u76f4\u81f3\u8c03\u7528\u672cAPI\u8fdb\u884c\u914d\u7f6e, \u6240\u4ee5io\u7535\u5e73\u4f1a\u53d8\u5316\n-- pm.ioVol(pm.IOVOL_ALL_GPIO, 3300) -- \u6240\u6709GPIO\u9ad8\u7535\u5e73\u8f93\u51fa3.3V\n-- pm.ioVol(pm.IOVOL_ALL_GPIO, 1800) -- \u6240\u6709GPIO\u9ad8\u7535\u5e73\u8f93\u51fa1.8V\n", "prefix": "pm.ioVol"}, "pm.wakeupPin": {"body": "pm.wakeupPin(${1:pin},${2:level})", "description": "pm.wakeupPin(pin,level) - \u914d\u7f6e\u5524\u9192\u5f15\u811a (\u5f53\u524d\u4ec5\u4ec5esp\u7cfb\u5217\u53ef\u7528)\n\u4f20\u5165\u503c\uff1a\nint/table gpio\u5f15\u811a\nint \u5524\u9192\u7535\u538b \u53ef\u9009,\u9ed8\u8ba4\u4f4e\u7535\u5e73\u5524\u9192\n\u8fd4\u56de\u503c\uff1a\nboolean \u5904\u7406\u7ed3\u679c\n\u4f8b\u5b50\uff1a\npm.wakeupPin(8,0)\n", "prefix": "pm.wakeupPin"}, "protobuf.load": {"body": "protobuf.load(${1:pbdata})", "description": "protobuf.load(pbdata) - \u52a0\u8f7dpb\u4e8c\u8fdb\u5236\u5b9a\u4e49\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nstring \u901a\u8fc7protoc.exe\u7a0b\u5e8f\u8f6c\u6362\u5f97\u5230\u7684\u6570\u636e,\u901a\u5e38\u4ece\u6587\u4ef6\u8bfb\u53d6\u5f97\u5230\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u4e0e\u5426\nint \u8bfb\u53d6\u4e86\u591a\u957f, \u8c03\u8bd5\u7528\n\u4f8b\u5b50\uff1a\n-- \u6ce8\u610f, \u540c\u4e00\u4e2a\u6587\u4ef6\u53ea\u9700\u8981\u52a0\u8f7d\u4e00\u6b21, \u9664\u975e\u8c03\u7528\u8fc7protobuf.clear()\nprotobuf.load(io.readFile(\"/luadb/person.pb\"))\n", "prefix": "protobuf.load"}, "protobuf.clear": {"body": "protobuf.clear()", "description": "protobuf.clear() - \u6e05\u9664\u5df2\u52a0\u8f7d\u7684\u4e8c\u8fdb\u5236\u5b9a\u4e49\u6570\u636e\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c, \u603b\u662f\u6210\u529f\n\u4f8b\u5b50\uff1a\n-- \u6e05\u9664\u6240\u6709\u5df2\u52a0\u8f7d\u7684\u5b9a\u4e49\u6570\u636e\nprotobuf.clear()\n", "prefix": "protobuf.clear"}, "protobuf.encode": {"body": "protobuf.encode(${1:tpname},${2:data})", "description": "protobuf.encode(tpname, data) - \u7f16\u7801protobuffs\u6570\u636e\u5305\n\u4f20\u5165\u503c\uff1a\nstring \u6570\u636e\u7c7b\u578b\u540d\u79f0, \u5b9a\u4e49\u5728pb\u6587\u4ef6\u4e2d, \u7531protobuf.load\u52a0\u8f7d\ntable \u5f85\u7f16\u7801\u6570\u636e, \u5fc5\u987b\u662ftable, \u5185\u5bb9\u7b26\u5408pb\u6587\u4ef6\u91cc\u7684\u5b9a\u4e49\n\u8fd4\u56de\u503c\uff1a\nstring \u7f16\u7801\u540e\u7684\u6570\u636e,\u82e5\u5931\u8d25\u4f1a\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\n-- \u6570\u636e\u7f16\u7801\nlocal tb = {\n name = \"wendal\"\n}\nlocal pbdata = protobuf.encode(\"Person\", tb)\nif pbdata then\n -- \u6ce8\u610f, \u7f16\u7801\u540e\u7684\u6570\u636e\u901a\u5e38\u5e26\u4e0d\u53ef\u89c1\u5b57\u7b26\n log.info(\"protobuf\", #pbdata, pbdata:toHex())\nend\n", "prefix": "protobuf.encode"}, "protobuf.decode": {"body": "protobuf.decode(${1:tpname},${2:data})", "description": "protobuf.decode(tpname, data) - \u89e3\u7801protobuffs\u6570\u636e\u5305\n\u4f20\u5165\u503c\uff1a\nstring \u6570\u636e\u7c7b\u578b\u540d\u79f0, \u5b9a\u4e49\u5728pb\u6587\u4ef6\u4e2d, \u7531protobuf.load\u52a0\u8f7d\nstring \u5f85\u7f16\u7801\u6570\u636e\n\u8fd4\u56de\u503c\uff1a\ntable \u89e3\u7801\u540e\u7684\u6570\u636e\n\u4f8b\u5b50\uff1a\n-- \u6570\u636e\u7f16\u7801\nlocal tb = {\n name = \"wendal\"\n}\nlocal pbdata = protobuf.encode(\"Person\", tb)\nif pbdata then\n -- \u6ce8\u610f, \u7f16\u7801\u540e\u7684\u6570\u636e\u901a\u5e38\u5e26\u4e0d\u53ef\u89c1\u5b57\u7b26\n log.info(\"protobuf\", #pbdata, pbdata:toHex())\nend\n", "prefix": "protobuf.decode"}, "pwm.open": {"body": "pwm.open(${1:channel},${2:period},${3:pulse},${4:pnum},${5:precision})", "description": "pwm.open(channel, period, pulse, pnum, precision) - \u5f00\u542f\u6307\u5b9a\u7684PWM\u901a\u9053\n\u4f20\u5165\u503c\uff1a\nint PWM\u901a\u9053\nint \u9891\u7387, 1-1000000hz\nint \u5360\u7a7a\u6bd4 0-\u5206\u9891\u7cbe\u5ea6\nint \u8f93\u51fa\u5468\u671f 0\u4e3a\u6301\u7eed\u8f93\u51fa, 1\u4e3a\u5355\u6b21\u8f93\u51fa, \u5176\u4ed6\u4e3a\u6307\u5b9a\u8109\u51b2\u6570\u8f93\u51fa\nint \u5206\u9891\u7cbe\u5ea6, 100/256/1000, \u9ed8\u8ba4\u4e3a100, \u82e5\u8bbe\u5907\u4e0d\u652f\u6301\u4f1a\u6709\u65e5\u5fd7\u63d0\u793a\n\u8fd4\u56de\u503c\uff1a\nboolean \u5904\u7406\u7ed3\u679c,\u6210\u529f\u8fd4\u56detrue,\u5931\u8d25\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- \u6253\u5f00PWM5, \u9891\u73871kHz, \u5360\u7a7a\u6bd450%\npwm.open(5, 1000, 50)\n-- \u6253\u5f00PWM5, \u9891\u738710kHz, \u5206\u9891\u4e3a 31/256\npwm.open(5, 10000, 31, 0, 256)\n", "prefix": "pwm.open"}, "pwm.close": {"body": "pwm.close(${1:channel})", "description": "pwm.close(channel) - \u5173\u95ed\u6307\u5b9a\u7684PWM\u901a\u9053\n\u4f20\u5165\u503c\uff1a\nint PWM\u901a\u9053\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u5904\u7406\u7ed3\u679c\n\u4f8b\u5b50\uff1a\n-- \u5173\u95edPWM5\npwm.close(5)\n", "prefix": "pwm.close"}, "pwm.capture": {"body": "pwm.capture(${1:channel})", "description": "pwm.capture(channel) - PWM\u6355\u83b7\n\u4f20\u5165\u503c\uff1a\nint PWM\u901a\u9053\nint \u6355\u83b7\u9891\u7387\n\u8fd4\u56de\u503c\uff1a\nboolean \u5904\u7406\u7ed3\u679c,\u6210\u529f\u8fd4\u56detrue,\u5931\u8d25\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- PWM0\u6355\u83b7\nwhile 1 do\n pwm.capture(0,1000)\n local ret,channel,pulse,pwmH,pwmL = sys.waitUntil(\"PWM_CAPTURE\", 2000)\n if ret then\n log.info(\"PWM_CAPTURE\",\"channel\"..channel,\"pulse\"..pulse,\"pwmH\"..pwmH,\"pwmL\"..pwmL)\n end\nend\n", "prefix": "pwm.capture"}, "repl.enable": {"body": "repl.enable(${1:re})", "description": "repl.enable(re) - \u542f\u7528\u6216\u7981\u7528REPL\u529f\u80fd\n\u4f20\u5165\u503c\uff1a\nbool \u542f\u7528\u4e0e\u5426,\u9ed8\u8ba4\u662f\u542f\u7528\nreturn \u4e4b\u524d\u7684\u8bbe\u7f6e\u72b6\u6001\n\u4f8b\u5b50\uff1a\n-- \u82e5\u56fa\u4ef6\u652f\u6301REPL,\u5373\u7f16\u8bd1\u65f6\u542f\u7528\u4e86REPL,\u662f\u9ed8\u8ba4\u542f\u7528REPL\u529f\u80fd\u7684\n-- \u672c\u51fd\u6570\u662f\u63d0\u4f9b\u5173\u95edREPL\u7684\u9014\u5f84\nrepl.enable(false)\n", "prefix": "repl.enable"}, "repl.push": {"body": "repl.push(${1:data})", "description": "repl.push(data) - \u4e3b\u52a8\u63a8\u9001\u5f85\u5904\u7406\u7684\u6570\u636e\u5230\u5e95\u5c42\n\u4f20\u5165\u503c\uff1a\nstring \u5f85\u5904\u7406\u7684\u6570\u636e,\u901a\u5e38\u4ece\u4e32\u53e3\u6765\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n-- \u865a\u62df\u4e32\u53e3\u7684\u8bbe\u5907\u624d\u9700\u8981\u8fd9\u4e2a\u51fd\u6570\n", "prefix": "repl.push"}, "rsa.encrypt": {"body": "rsa.encrypt(${1:key},${2:data})", "description": "rsa.encrypt(key, data) - RSA\u52a0\u5bc6\n\u4f20\u5165\u503c\uff1a\nstring \u516c\u94a5\u6570\u636e,\u4ec5\u652f\u6301PEM\u683c\u5f0f\nstring \u5f85\u52a0\u5bc6\u6570\u636e, \u4e0d\u80fd\u8d85\u8fc7\u516c\u94a5\u4f4d\u6570\u7684\u4e00\u534a, \u4f8b\u5982 2048bit\u7684\u516c\u94a5, \u53ea\u80fd\u52a0\u5bc6128\u5b57\u8282\u7684\u6570\u636e\n\u8fd4\u56de\u503c\uff1a\nstring \u52a0\u5bc6\u6210\u529f\u540e\u7684\u6570\u636e,\u82e5\u5931\u8d25\u4f1a\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\n-- \u4e0b\u9762\u4ee3\u7801\u4e2d\u7684 \"abc\" \u662f\u5f85\u52a0\u5bc6\u6570\u636e\nlocal res = rsa.encrypt((io.readFile(\"/luadb/public.pem\")), \"abc\")\n-- \u6253\u5370\u7ed3\u679c\nlog.info(\"rsa\", \"encrypt\", res and #res or 0, res and res:toHex() or \"\")\n", "prefix": "rsa.encrypt"}, "rsa.decrypt": {"body": "rsa.decrypt(${1:key},${2:data},${3:pwd})", "description": "rsa.decrypt(key, data, pwd) - RSA\u89e3\u5bc6\n\u4f20\u5165\u503c\uff1a\nstring \u79c1\u94a5\u6570\u636e,\u4ec5\u652f\u6301PEM\u683c\u5f0f\nstring \u5f85\u89e3\u5bc6\u6570\u636e\nstring \u79c1\u94a5\u7684\u5bc6\u7801,\u53ef\u9009\n\u8fd4\u56de\u503c\uff1a\nstring \u89e3\u5bc6\u6210\u529f\u540e\u7684\u6570\u636e,\u82e5\u5931\u8d25\u4f1a\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\n-- \u6ce8\u610f, \u89e3\u5bc6\u901a\u5e38\u5f88\u6162, \u5efa\u8bae\u5728\u670d\u52a1\u5668\u7aef\u8fdb\u884c\n-- res \u662f\u5f85\u89e3\u5bc6\u7684\u6570\u636e\nlocal dst = rsa.decrypt((io.readFile(\"/luadb/privkey.pem\")), res, \"\")\nlog.info(\"rsa\", \"decrypt\", dst and #dst or 0, dst and dst:toHex() or \"\")\n", "prefix": "rsa.decrypt"}, "rsa.verify": {"body": "rsa.verify(${1:key},${2:md},${3:hash},${4:sig})", "description": "rsa.verify(key, md, hash, sig) - RSA\u9a8c\u7b7e\n\u4f20\u5165\u503c\uff1a\nstring \u516c\u94a5\u6570\u636e,\u4ec5\u652f\u6301PEM\u683c\u5f0f\nint \u7b7e\u540d\u6a21\u5f0f, \u4f8b\u5982 rsa.MD_SHA1 , rsa.MD_SHA256\nstring hash\u6570\u636e, \u5982\u679c\u662fHEX\u5b57\u7b26\u4e32,\u8bb0\u5f97fromHex\u8f6c\u4e8c\u8fdb\u5236\u6570\u636e\nstring sig\u6570\u636e, \u5982\u679c\u662fHEX\u5b57\u7b26\u4e32,\u8bb0\u5f97fromHex\u8f6c\u4e8c\u8fdb\u5236\u6570\u636e\n\u8fd4\u56de\u503c\uff1a\nbool \u6709\u6548\u8fd4\u56detrue,\u5426\u5219\u4e3afalse,\u51fa\u9519\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\nlocal ret = rsa.verify((io.readFile(\"/luadb/public.pem\")), rsa.MD_SHA1, hash, sig)\nlog.info(\"rsa\", \"verify\", ret)\n", "prefix": "rsa.verify"}, "rsa.sign": {"body": "rsa.sign(${1:key},${2:md},${3:hash},${4:pwd})", "description": "rsa.sign(key, md, hash, pwd) - RSA\u7b7e\u540d\n\u4f20\u5165\u503c\uff1a\nstring \u79c1\u94a5\u6570\u636e,\u4ec5\u652f\u6301PEM\u683c\u5f0f\nint \u7b7e\u540d\u6a21\u5f0f, \u4f8b\u5982 rsa.MD_SHA1 , rsa.MD_SHA256\nstring hash\u6570\u636e, \u5982\u679c\u662fHEX\u5b57\u7b26\u4e32,\u8bb0\u5f97fromHex\u8f6c\u4e8c\u8fdb\u5236\u6570\u636e\nstring \u79c1\u94a5\u5bc6\u7801, \u53ef\u9009\n\u8fd4\u56de\u503c\uff1a\nstring \u6210\u529f\u8fd4\u56desig\u6570\u636e, \u5426\u5219\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\nlocal sig = rsa.sign((io.readFile(\"/luadb/privkey.pem\")), rsa.MD_SHA1, hash, \"\")\nlog.info(\"rsa\", \"sign\", sig and #sig or 0, sig and sig:toHex() or \"\")\n", "prefix": "rsa.sign"}, "rtc.set": {"body": "rtc.set(${1:tab})", "description": "rtc.set(tab) - \u8bbe\u7f6e\u65f6\u949f\n\u4f20\u5165\u503c\uff1a\ntable or int \u65f6\u949f\u53c2\u6570,\u89c1\u793a\u4f8b\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56denil\u6216false\n\u4f8b\u5b50\uff1a\nrtc.set({year=2021,mon=8,day=31,hour=17,min=8,sec=43})\n--\u76ee\u524d\u53ea\u6709Air101/Air103/Air105/EC618\u7cfb\u5217\u652f\u6301\u65f6\u95f4\u6233\u65b9\u5f0f\nrtc.set(1652230554)\n", "prefix": "rtc.set"}, "rtc.get": {"body": "rtc.get()", "description": "rtc.get() - \u83b7\u53d6\u65f6\u949f\n\u8fd4\u56de\u503c\uff1a\ntable \u65f6\u949f\u53c2\u6570,\u89c1\u793a\u4f8b\n\u4f8b\u5b50\uff1a\nlocal t = rtc.get()\n-- {year=2021,mon=8,day=31,hour=17,min=8,sec=43}\nlog.info(\"rtc\", json.encode(t))\n", "prefix": "rtc.get"}, "rtc.timerStart": {"body": "rtc.timerStart(${1:id},${2:tab})", "description": "rtc.timerStart(id, tab) - \u8bbe\u7f6eRTC\u5524\u9192\u65f6\u95f4\n\u4f20\u5165\u503c\uff1a\nint \u65f6\u949fid,\u901a\u5e38\u53ea\u652f\u63010\ntable \u65f6\u949f\u53c2\u6570,\u89c1\u793a\u4f8b\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56denil\u6216false\n\u4f8b\u5b50\uff1a\n-- \u4f7f\u7528\u524d\u5efa\u8bae\u5148rtc.set\u8bbe\u7f6e\u4e3a\u6b63\u786e\u7684\u65f6\u95f4\nrtc.timerStart(0, {year=2021,mon=9,day=1,hour=17,min=8,sec=43})\n", "prefix": "rtc.timerStart"}, "rtc.timerStop": {"body": "rtc.timerStop(${1:id})", "description": "rtc.timerStop(id) - \u53d6\u6d88RTC\u5524\u9192\u65f6\u95f4\n\u4f20\u5165\u503c\uff1a\nint \u65f6\u949fid,\u901a\u5e38\u53ea\u652f\u63010\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56denil\u6216false\n\u4f8b\u5b50\uff1a\nrtc.timerStop(0)\n", "prefix": "rtc.timerStop"}, "rtc.setBaseYear": {"body": "rtc.setBaseYear(${1:Base_year})", "description": "rtc.setBaseYear(Base_year) - \u8bbe\u7f6eRTC\u57fa\u51c6\u5e74,\u4e0d\u63a8\u8350\n\u4f20\u5165\u503c\uff1a\nint \u57fa\u51c6\u5e74Base_year,\u901a\u5e381900\n\u4f8b\u5b50\uff1a\nrtc.setBaseYear(1900)\n", "prefix": "rtc.setBaseYear"}, "rtc.timezone": {"body": "rtc.timezone(${1:tz})", "description": "rtc.timezone(tz) - \u8bfb\u53d6\u6216\u8bbe\u7f6e\u65f6\u533a\n\u4f20\u5165\u503c\uff1a\nint \u65f6\u533a\u503c,\u6ce8\u610f\u5355\u4f4d\u662f1/4\u65f6\u533a.\u4f8b\u5982\u4e1c\u516b\u533a\u662f 32,\u800c\u975e8. \u53ef\u4ee5\u4e0d\u4f20\nreturn \u5f53\u524d/\u8bbe\u7f6e\u540e\u7684\u65f6\u533a\u503c\n\u4f8b\u5b50\uff1a\n-- \u8bbe\u7f6e\u4e3a\u4e1c8\u533a\nrtc.timezone(32)\n-- \u8bbe\u7f6e\u4e3a\u4e1c3\u533a\nrtc.timezone(12)\n-- \u8bbe\u7f6e\u4e3a\u897f4\u533a\nrtc.timezone(-16)\n-- \u6ce8\u610f: \u65e0\u8bba\u8bbe\u7f6e\u65f6\u533a\u662f\u591a\u5c11, rtc.get/set\u603b\u662fUTC\u65f6\u95f4\n-- \u65f6\u533a\u5f71\u54cd\u7684\u662f os.date/os.time \u51fd\u6570\n-- \u53ea\u6709\u90e8\u5206\u6a21\u5757\u652f\u6301\u8bbe\u7f6e\u65f6\u533a, \u4e14\u9ed8\u8ba4\u503c\u4e00\u822c\u4e3a32, \u5373\u4e1c\u516b\u533a\n", "prefix": "rtc.timezone"}, "rtos.receive": {"body": "rtos.receive(${1:timeout})", "description": "rtos.receive(timeout) - \u63a5\u53d7\u5e76\u5904\u7406\u5e95\u5c42\u6d88\u606f\u961f\u5217.\n\u4f20\u5165\u503c\uff1a\nint \u8d85\u65f6\u65f6\u957f,\u901a\u5e38\u662f-1,\u6c38\u4e45\u7b49\u5f85\n\u8fd4\u56de\u503c\uff1a\nmsgid \u5982\u679c\u662f\u5b9a\u65f6\u5668\u6d88\u606f,\u4f1a\u8fd4\u56de\u5b9a\u65f6\u5668\u6d88\u606fid\u53ca\u9644\u52a0\u4fe1\u606f, \u5176\u4ed6\u6d88\u606f\u7531\u5e95\u5c42\u51b3\u5b9a,\u4e0d\u5411lua\u5c42\u8fdb\u884c\u4efb\u4f55\u4fdd\u8bc1.\n", "prefix": "rtos.receive"}, "rtos.timer_start": {"body": "rtos.timer_start(${1:id},${2:timeout},${3:_repeat})", "description": "rtos.timer_start(id,timeout,_repeat) - \u542f\u52a8\u4e00\u4e2a\u5b9a\u65f6\u5668\n\u4f20\u5165\u503c\uff1a\nint \u5b9a\u65f6\u5668id\nint \u8d85\u65f6\u65f6\u957f,\u5355\u4f4d\u6beb\u79d2\nint \u91cd\u590d\u6b21\u6570,\u9ed8\u8ba4\u662f0\n\u8fd4\u56de\u503c\uff1a\nid \u5982\u679c\u662f\u5b9a\u65f6\u5668\u6d88\u606f,\u4f1a\u8fd4\u56de\u5b9a\u65f6\u5668\u6d88\u606fid\u53ca\u9644\u52a0\u4fe1\u606f, \u5176\u4ed6\u6d88\u606f\u7531\u5e95\u5c42\u51b3\u5b9a,\u4e0d\u5411lua\u5c42\u8fdb\u884c\u4efb\u4f55\u4fdd\u8bc1.\n\u4f8b\u5b50\uff1a\n-- \u7528\u6237\u4ee3\u7801\u8bf7\u4f7f\u7528 sys.timerStart\n-- \u542f\u52a8\u4e00\u4e2a3\u79d2\u7684\u5faa\u73af\u5b9a\u65f6\u5668\nrtos.timer_start(10000, 3000, -1)\n", "prefix": "rtos.timer_start"}, "rtos.timer_stop": {"body": "rtos.timer_stop(${1:id})", "description": "rtos.timer_stop(id) - \u5173\u95ed\u5e76\u91ca\u653e\u4e00\u4e2a\u5b9a\u65f6\u5668\n\u4f20\u5165\u503c\uff1a\nint \u5b9a\u65f6\u5668id\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n-- \u7528\u6237\u4ee3\u7801\u8bf7\u4f7f\u7528sys.timerStop\nrtos.timer_stop(id)\n", "prefix": "rtos.timer_stop"}, "rtos.reboot": {"body": "rtos.reboot()", "description": "rtos.reboot() - \u8bbe\u5907\u91cd\u542f\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n", "prefix": "rtos.reboot"}, "rtos.buildDate": {"body": "rtos.buildDate()", "description": "rtos.buildDate() - \u83b7\u53d6\u56fa\u4ef6\u7f16\u8bd1\u65e5\u671f\n\u8fd4\u56de\u503c\uff1a\nstring \u56fa\u4ef6\u7f16\u8bd1\u65e5\u671f\n\u4f8b\u5b50\uff1a\n-- \u83b7\u53d6\u7f16\u8bd1\u65e5\u671f\nlocal d = rtos.buildDate()\n", "prefix": "rtos.buildDate"}, "rtos.bsp": {"body": "rtos.bsp()", "description": "rtos.bsp() - \u83b7\u53d6\u786c\u4ef6bsp\u578b\u53f7\n\u8fd4\u56de\u503c\uff1a\nstring \u786c\u4ef6bsp\u578b\u53f7\n\u4f8b\u5b50\uff1a\n-- \u83b7\u53d6\u786c\u4ef6bsp\u578b\u53f7\nlocal bsp = rtos.bsp()\n", "prefix": "rtos.bsp"}, "rtos.version": {"body": "rtos.version()", "description": "rtos.version() - \u83b7\u53d6\u56fa\u4ef6\u7248\u672c\u53f7\n\u8fd4\u56de\u503c\uff1a\nstring \u56fa\u4ef6\u7248\u672c\u53f7,\u4f8b\u5982\"V0001\"\n\u4f8b\u5b50\uff1a\n-- \u8bfb\u53d6\u7248\u672c\u53f7\nlocal luatos_version = rtos.version()\n", "prefix": "rtos.version"}, "rtos.standy": {"body": "rtos.standy(${1:timeout})", "description": "rtos.standy(timeout) - \u8fdb\u5165\u5f85\u673a\u6a21\u5f0f, \u4ec5\u90e8\u5206\u8bbe\u5907\u53ef\u7528, \u672cAPI\u5df2\u5e9f\u5f03, \u63a8\u8350\u4f7f\u7528pm\u5e93\n\u4f20\u5165\u503c\uff1a\nint \u4f11\u7720\u65f6\u957f,\u5355\u4f4d\u6beb\u79d2\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n-- \u8fdb\u5165\u5f85\u673a\u6a21\u5f0f\nrtos.standby(5000)\n", "prefix": "rtos.standy"}, "rtos.meminfo": {"body": "rtos.meminfo(${1:type})", "description": "rtos.meminfo(type) - \u83b7\u53d6\u5185\u5b58\u4fe1\u606f\n\u4f20\u5165\u503c\uff1a\ntype \"sys\"\u7cfb\u7edf\u5185\u5b58, \"lua\"\u865a\u62df\u673a\u5185\u5b58, \u9ed8\u8ba4\u4e3alua\u865a\u62df\u673a\u5185\u5b58\n\u8fd4\u56de\u503c\uff1a\nint \u603b\u5185\u5b58\u5927\u5c0f,\u5355\u4f4d\u5b57\u8282\nint \u5f53\u524d\u5df2\u4f7f\u7528\u7684\u5185\u5b58\u5927\u5c0f,\u5355\u4f4d\u5b57\u8282\nint \u5386\u53f2\u6700\u9ad8\u5df2\u4f7f\u7528\u7684\u5185\u5b58\u5927\u5c0f,\u5355\u4f4d\u5b57\u8282\n\u4f8b\u5b50\uff1a\n-- \u6253\u5370\u5185\u5b58\u5360\u7528\nlog.info(\"mem.lua\", rtos.meminfo())\nlog.info(\"mem.sys\", rtos.meminfo(\"sys\"))\n", "prefix": "rtos.meminfo"}, "rtos.firmware": {"body": "rtos.firmware()", "description": "rtos.firmware() - \u8fd4\u56de\u5e95\u5c42\u63cf\u8ff0\u4fe1\u606f,\u683c\u5f0f\u4e3a LuatOS_$VERSION_$BSP,\u53ef\u7528\u4e8eOTA\u5347\u7ea7\u5224\u65ad\u5e95\u5c42\u4fe1\u606f\n\u8fd4\u56de\u503c\uff1a\nstring \u5e95\u5c42\u63cf\u8ff0\u4fe1\u606f\n\u4f8b\u5b50\uff1a\n-- \u6253\u5370\u5e95\u5c42\u63cf\u8ff0\u4fe1\u606f\nlog.info(\"firmware\", rtos.firmware())\n", "prefix": "rtos.firmware"}, "rtos.setPaths": {"body": "rtos.setPaths(${1:pathA},${2:pathB},${3:pathC},${4:pathD})", "description": "rtos.setPaths(pathA, pathB, pathC, pathD) - \u8bbe\u7f6e\u81ea\u5b9a\u4e49lua\u811a\u672c\u641c\u7d22\u8def\u5f84,\u4f18\u5148\u7ea7\u9ad8\u4e8e\u5185\u7f6e\u8def\u5f84\n\u4f20\u5165\u503c\uff1a\nstring \u8def\u5f84A, \u4f8b\u5982 \"/sdcard/%s.luac\",\u82e5\u4e0d\u4f20\u503c,\u5c06\u9ed8\u8ba4\u4e3a\"\",\u53e6\u5916,\u6700\u5927\u957f\u5ea6\u4e0d\u80fd\u8d85\u8fc723\u5b57\u8282\nstring \u8def\u5f84B, \u4f8b\u5982 \"/sdcard/%s.lua\"\nstring \u8def\u5f84C, \u4f8b\u5982 \"/lfs2/%s.luac\"\nstring \u8def\u5f84D, \u4f8b\u5982 \"/lfs2/%s.lua\"\n\u4f8b\u5b50\uff1a\n-- \u6302\u8f7dsd\u5361\u6216\u8005spiflash\u540e\nrtos.setPaths(\"/sdcard/user/%s.luac\", \"/sdcard/user/%s.lua\")\nrequire(\"sd_user_main\") -- \u5c06\u641c\u7d22\u5e76\u52a0\u8f7d /sdcard/user/sd_user_main.luac \u548c /sdcard/user/sd_user_main.lua\n", "prefix": "rtos.setPaths"}, "rtos.nop": {"body": "rtos.nop()", "description": "rtos.nop() - \u7a7a\u51fd\u6570,\u4ec0\u4e48\u90fd\u4e0d\u505a\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n-- \u8fd9\u4e2a\u51fd\u6570\u5355\u7eaf\u5c31\u662f lua -> c -> lua \u8d70\u4e00\u904d\n-- \u6ca1\u6709\u53c2\u6570,\u6ca1\u6709\u8fd4\u56de\u503c,\u6ca1\u6709\u903b\u8f91\u5904\u7406\n-- \u5728\u7edd\u5927\u591a\u6570\u60c5\u51b5\u4e0b,\u4e0d\u4f1a\u9047\u5230\u8fd9\u4e2a\u51fd\u6570\u7684\u8c03\u7528\n-- \u5b83\u901a\u5e38\u53ea\u4f1a\u51fa\u73b0\u5728\u6027\u80fd\u6d4b\u8bd5\u7684\u4ee3\u7801\u91cc, \u56e0\u4e3a\u5b83\u4ec0\u4e48\u90fd\u4e0d\u5e72.\nrtos.nop()\n", "prefix": "rtos.nop"}, "rtos.autoCollectMem": {"body": "rtos.autoCollectMem(${1:period},${2:warning_level},${3:force_level})", "description": "rtos.autoCollectMem(period, warning_level, force_level) - \u5185\u5b58\u81ea\u52a8\u6536\u96c6\u914d\u7f6e\uff0c\u662flua\u672c\u8eab\u6536\u96c6\u673a\u5236\u7684\u4e00\u79cd\u8865\u5145\uff0c\u4e0d\u662f\u5fc5\u8981\u7684\uff0c\u800c\u4e14\u53ea\u5728luavm\u7a7a\u95f2\u65f6\u89e6\u53d1\n", "prefix": "rtos.autoCollectMem"}, "sdio.init": {"body": "sdio.init(${1:id})", "description": "sdio.init(id) - \u521d\u59cb\u5316sdio\n\u4f20\u5165\u503c\uff1a\nint \u901a\u9053id,\u4e0e\u5177\u4f53\u8bbe\u5907\u6709\u5173,\u901a\u5e38\u4ece0\u5f00\u59cb,\u9ed8\u8ba40\n\u8fd4\u56de\u503c\uff1a\nboolean \u6253\u5f00\u7ed3\u679c\n", "prefix": "sdio.init"}, "sdio.sd_read": {"body": "sdio.sd_read(${1:id},${2:offset},${3:len})", "description": "sdio.sd_read(id, offset, len) - \u76f4\u63a5\u8bfb\u5199sd\u5361\u4e0a\u7684\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nint sdio\u603b\u7ebfid\nint \u504f\u79fb\u91cf,\u5fc5\u987b\u662f512\u7684\u500d\u6570\nint \u957f\u5ea6,\u5fc5\u987b\u662f512\u7684\u500d\u6570\n\u8fd4\u56de\u503c\uff1a\nstring \u82e5\u8bfb\u53d6\u6210\u529f,\u8fd4\u56de\u5b57\u7b26\u4e32,\u5426\u5219\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\n-- \u521d\u59cb\u5316sdio\u5e76\u76f4\u63a5\u8bfb\u53d6sd\u5361\u6570\u636e\nsdio.init(0)\nlocal t = sdio.sd_read(0, 0, 1024)\nif t then\n --- xxx\nend\n", "prefix": "sdio.sd_read"}, "sdio.sd_write": {"body": "sdio.sd_write(${1:id},${2:data},${3:offset})", "description": "sdio.sd_write(id, data, offset) - \u76f4\u63a5\u5199sd\u5361\n\u4f20\u5165\u503c\uff1a\nint sdio\u603b\u7ebfid\nstring \u5f85\u5199\u5165\u7684\u6570\u636e,\u957f\u5ea6\u5fc5\u987b\u662f512\u7684\u500d\u6570\nint \u504f\u79fb\u91cf,\u5fc5\u987b\u662f512\u7684\u500d\u6570\n\u8fd4\u56de\u503c\uff1a\nbool \u82e5\u8bfb\u53d6\u6210\u529f,\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- \u521d\u59cb\u5316sdio\u5e76\u76f4\u63a5\u8bfb\u53d6sd\u5361\u6570\u636e\nsdio.init(0)\nlocal t = sdio.sd_write(0, data, 0)\nif t then\n --- xxx\nend\n", "prefix": "sdio.sd_write"}, "sensor.ds18b20": {"body": "sensor.ds18b20(${1:pin})", "description": "sensor.ds18b20(pin) - \u83b7\u53d6DS18B20\u7684\u6e29\u5ea6\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nint gpio\u7aef\u53e3\u53f7\nboolean \u662f\u5426\u6821\u9a8ccrc\u503c,\u9ed8\u8ba4\u4e3atrue. \u4e0d\u6821\u9a8ccrc\u503c\u80fd\u63d0\u9ad8\u8bfb\u53d6\u6210\u529f\u7684\u6982\u7387,\u4f46\u53ef\u80fd\u4f1a\u8bfb\u53d6\u5230\u9519\u8bef\u7684\u503c\n\u8fd4\u56de\u503c\uff1a\nint \u6e29\u5ea6\u6570\u636e,\u5355\u4f4d0.1\u6444\u6c0f\u5ea6\uff0c\u8bfb\u53d6\u5931\u8d25\u65f6\u8fd4\u56de\u9519\u8bef\u7801\nboolean \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\nwhile 1 do\n sys.wait(5000)\n local val,result = sensor.ds18b20(17, true) -- GPIO17\u4e14\u6821\u9a8cCRC\u503c\n -- val 301 == 30.1\u6444\u6c0f\u5ea6\n -- result true \u8bfb\u53d6\u6210\u529f\n log.info(\"ds18b20\", val, result)\nend\n", "prefix": "sensor.ds18b20"}, "sensor.w1_reset": {"body": "sensor.w1_reset(${1:pin})", "description": "sensor.w1_reset(pin) - \u5355\u603b\u7ebf\u534f\u8bae,\u590d\u4f4d\u8bbe\u5907\n\u4f20\u5165\u503c\uff1a\nint gpio\u7aef\u53e3\u53f7\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\n", "prefix": "sensor.w1_reset"}, "sensor.w1_connect": {"body": "sensor.w1_connect(${1:pin})", "description": "sensor.w1_connect(pin) - \u5355\u603b\u7ebf\u534f\u8bae,\u8fde\u63a5\u8bbe\u5907\n\u4f20\u5165\u503c\uff1a\nint gpio\u7aef\u53e3\u53f7\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u8fd4\u56detrue,\u5931\u8d25\u8fd4\u56defalse\n", "prefix": "sensor.w1_connect"}, "sensor.w1_write": {"body": "sensor.w1_write(${1:pin},${2:data1},${3:data2})", "description": "sensor.w1_write(pin, data1,data2) - \u5355\u603b\u7ebf\u534f\u8bae,\u5f80\u603b\u7ebf\u5199\u5165\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nint gpio\u7aef\u53e3\u53f7\nint \u7b2c\u4e00\u4e2a\u6570\u636e\nint \u7b2c\u4e8c\u4e2a\u6570\u636e, \u53ef\u4ee5\u5199N\u4e2a\u6570\u636e\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n", "prefix": "sensor.w1_write"}, "sensor.w1_read": {"body": "sensor.w1_read(${1:pin},${2:len})", "description": "sensor.w1_read(pin, len) - \u5355\u603b\u7ebf\u534f\u8bae,\u4ece\u603b\u7ebf\u8bfb\u53d6\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nint gpio\u7aef\u53e3\u53f7\nint \u8bfb\u53d6\u7684\u957f\u5ea6\n\u8fd4\u56de\u503c\uff1a\nint \u6309\u8bfb\u53d6\u7684\u957f\u5ea6\u8fd4\u56deN\u4e2a\u6574\u6570\n", "prefix": "sensor.w1_read"}, "sensor.hx711": {"body": "sensor.hx711(${1:pin_date},${2:pin_clk})", "description": "sensor.hx711(pin_date,pin_clk) - \u83b7\u53d6Hx711\u7684\u538b\u529b\u4f20\u611f\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nint \u6570\u636e\u7684gpio\u7aef\u53e3\u53f7\nint \u65f6\u949f\u7684gpio\u7aef\u53e3\u53f7\n\u8fd4\u56de\u503c\uff1a\nint hx711\u8bfb\u5230\u7684\u6570\u636e\n\u4f8b\u5b50\uff1a\n-- \u5982\u679c\u8bbe\u5907\u4e0d\u5b58\u5728\u4f1a\u5361\u5728\u8bfb\u53d6\u63a5\u53e3\nsys.taskInit(\n function()\n sys.wait(1000)\n local maopi = sensor.hx711(0,7)\n while true do\n sys.wait(2000)\n a = sensor.hx711(0,7) - maopi\n if a > 0 then\n log.info(\"tag\", a / 4.6)\n end\n end\n end\n)\n", "prefix": "sensor.hx711"}, "sensor.ws2812b": {"body": "sensor.ws2812b(${1:pin},${2:data},${3:T0H},${4:T0L},${5:T1H},${6:T1L})", "description": "sensor.ws2812b(pin,data,T0H,T0L,T1H,T1L) - \u8bbe\u7f6ews2812b\u8f93\u51fa(gpio\u9a71\u52a8\u65b9\u5f0f)\n\u4f20\u5165\u503c\uff1a\nint ws2812b\u7684gpio\u7aef\u53e3\u53f7\nstring/zbuff \u5f85\u53d1\u9001\u7684\u6570\u636e\uff08\u5982\u679c\u4e3azbuff\u6570\u636e\uff0c\u5219\u4f1a\u65e0\u89c6\u6307\u9488\u4f4d\u7f6e\u59cb\u7ec8\u4ece0\u504f\u79fb\u5f00\u59cb\uff09\nint T0H\u65f6\u95f4\uff0c\u8868\u793a\u5ef6\u65f6\u591a\u5c11\u4e2anop\uff0c\u6bcf\u4e2a\u578b\u53f7\u4e0d\u4e00\u6837\uff0c\u81ea\u5df1\u8c03\nint T0L\u65f6\u95f4\uff0c\u8868\u793a\u5ef6\u65f6\u591a\u5c11\u4e2anop\nint T1H\u65f6\u95f4\uff0c\u8868\u793a\u5ef6\u65f6\u591a\u5c11\u4e2anop\nint T1L\u65f6\u95f4\uff0c\u8868\u793a\u5ef6\u65f6\u591a\u5c11\u4e2anop\n\u4f8b\u5b50\uff1a\nlocal buff = zbuff.create({8,8,24})\nbuff:drawLine(1,2,5,6,0x00ffff)\nsensor.ws2812b(7,buff,300,700,700,700)\n", "prefix": "sensor.ws2812b"}, "sensor.ws2812b_pwm": {"body": "sensor.ws2812b_pwm(${1:pin},${2:data})", "description": "sensor.ws2812b_pwm(pin,data) - \u8bbe\u7f6ews2812b\u8f93\u51fa(pwm\u9a71\u52a8\u65b9\u5f0f,\u9700\u8981pwm\u80fd\u8f93\u51fa800k\u9891\u7387\uff0c\u5426\u5219\u65e0\u6cd5\u4f7f\u7528\u6b64\u65b9\u6cd5)\n\u4f20\u5165\u503c\uff1a\nint pwm\u7aef\u53e3\u53f7\nstring/zbuff \u5f85\u53d1\u9001\u7684\u6570\u636e\uff08\u5982\u679c\u4e3azbuff\u6570\u636e\uff0c\u5219\u4f1a\u65e0\u89c6\u6307\u9488\u4f4d\u7f6e\u59cb\u7ec8\u4ece0\u504f\u79fb\u5f00\u59cb\uff09\n\u4f8b\u5b50\uff1a\nlocal buff = zbuff.create({8,8,24})\nbuff:setFrameBuffer(8,8,24,0x0000ff)\nsensor.ws2812b_pwm(7,buff)\n", "prefix": "sensor.ws2812b_pwm"}, "sensor.ws2812b_spi": {"body": "sensor.ws2812b_spi(${1:pin},${2:data})", "description": "sensor.ws2812b_spi(pin,data) - \u8bbe\u7f6ews2812b\u8f93\u51fa(spi\u9a71\u52a8\u65b9\u5f0f,\u9700\u8981spi\u80fd\u8f93\u51fa5M\u9891\u7387\uff0c\u5426\u5219\u65e0\u6cd5\u4f7f\u7528\u6b64\u65b9\u6cd5)\n\u4f20\u5165\u503c\uff1a\nint spi\u7aef\u53e3\u53f7\nstring/zbuff \u5f85\u53d1\u9001\u7684\u6570\u636e\uff08\u5982\u679c\u4e3azbuff\u6570\u636e\uff0c\u5219\u4f1a\u65e0\u89c6\u6307\u9488\u4f4d\u7f6e\u59cb\u7ec8\u4ece0\u504f\u79fb\u5f00\u59cb\uff09\n\u4f8b\u5b50\uff1a\nlocal buff = zbuff.create({8,8,24})\nbuff:setFrameBuffer(8,8,24,0x0000ff)\nsensor.ws2812b_spi(2,buff)\n", "prefix": "sensor.ws2812b_spi"}, "sensor.dht1x": {"body": "sensor.dht1x(${1:pin})", "description": "sensor.dht1x(pin) - \u83b7\u53d6DHT11/DHT12\u7684\u6e29\u6e7f\u5ea6\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nint gpio\u7aef\u53e3\u53f7\nboolean \u662f\u5426\u6821\u9a8ccrc\u503c,\u9ed8\u8ba4\u4e3atrue. \u4e0d\u6821\u9a8ccrc\u503c\u80fd\u63d0\u9ad8\u8bfb\u53d6\u6210\u529f\u7684\u6982\u7387,\u4f46\u53ef\u80fd\u4f1a\u8bfb\u53d6\u5230\u9519\u8bef\u7684\u503c\n\u8fd4\u56de\u503c\uff1a\nint \u6e7f\u5ea6\u6570\u636e,\u5355\u4f4d0.01%\uff0c\u8bfb\u53d6\u5931\u8d25\u65f6\u8fd4\u56de\u9519\u8bef\u503c\nint \u6e29\u5ea6\u6570\u636e,\u5355\u4f4d0.01\u6444\u6c0f\u5ea6\uff0c\u8bfb\u53d6\u5931\u8d25\u65f6\u8fd4\u56de\u9519\u8bef\u503c\nboolean \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\nwhile 1 do\n sys.wait(1000)\n local h,t,r = sensor.dht1x(17, true) -- GPIO17\u4e14\u6821\u9a8cCRC\u503c\n log.info(\"dht11\", h/100,t/100,r)--90.1 23.22\nend\n", "prefix": "sensor.dht1x"}, "sfd.init": {"body": "sfd.init(${1:type},${2:spi_id},${3:spi_cs})", "description": "sfd.init(type, spi_id, spi_cs) - \u521d\u59cb\u5316spi flash\n\u4f20\u5165\u503c\uff1a\nstring \u7c7b\u578b, \u53ef\u4ee5\u662f\"spi\", \u4e5f\u53ef\u4ee5\u662f\"zbuff\", \u6216\u8005\"onchip\"\nint SPI\u603b\u7ebf\u7684id, \u6216\u8005 zbuff\u5b9e\u4f8b\nint SPI FLASH\u7684\u7247\u9009\u811a\u5bf9\u5e94\u7684GPIO, \u5f53\u7c7b\u578b\u662fspi\u65f6\u624d\u9700\u8981\u4f20\n\u8fd4\u56de\u503c\uff1a\nuserdata \u6210\u529f\u8fd4\u56de\u4e00\u4e2a\u6570\u636e\u7ed3\u6784,\u5426\u5219\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\nlocal drv = sfd.init(\"spi\", 0, 17)\nif drv then\n log.info(\"sfd\", \"chip id\", sfd.id(drv):toHex())\nend\n-- 2023.01.15\u4e4b\u540e\u7684\u56fa\u4ef6\u652f\u6301onchip\u7c7b\u578b, \u652f\u6301\u76f4\u63a5\u8bfb\u5199\u7247\u4e0aflash\u7684\u4e00\u5c0f\u5757\u533a\u57df,\u4e00\u822c\u662f64k\n-- \u8fd9\u5757\u533a\u57df\u901a\u5e38\u662ffdb/fskv\u5e93\u6240\u5728\u7684\u533a\u57df, \u6240\u4ee5\u4e0d\u8981\u6df7\u7740\u7528\nlocal onchip = sfd.init(\"onchip\")\nlocal data = sfd.read(onchip, 0x100, 256)\nsfd.erase(onchip, 0x100)\nsfd.write(onchip, 0x100, data or \"Hi\")\n\n", "prefix": "sfd.init"}, "sfd.status": {"body": "sfd.status(${1:drv})", "description": "sfd.status(drv) - \u68c0\u67e5spi flash\u72b6\u6001\n\u4f20\u5165\u503c\uff1a\nuserdata sfd.init\u8fd4\u56de\u7684\u6570\u636e\u7ed3\u6784\n\u8fd4\u56de\u503c\uff1a\nint \u72b6\u6001\u503c, 0 \u672a\u521d\u59cb\u5316\u6210\u529f,1\u521d\u59cb\u5316\u6210\u529f\u4e14\u7a7a\u95f2,2\u6b63\u5fd9\n\u4f8b\u5b50\uff1a\nlocal drv = sfd.init(\"spi\", 0, 17)\nif drv then\n log.info(\"sfd\", \"status\", sfd.status(drv))\nend\n", "prefix": "sfd.status"}, "sfd.read": {"body": "sfd.read(${1:drv},${2:offset},${3:len})", "description": "sfd.read(drv, offset, len) - \u8bfb\u53d6\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nuserdata sfd.init\u8fd4\u56de\u7684\u6570\u636e\u7ed3\u6784\nint \u8d77\u59cb\u504f\u79fb\u91cf\nint \u8bfb\u53d6\u957f\u5ea6,\u5f53\u524d\u9650\u5236\u5728256\u4ee5\u5185\n\u8fd4\u56de\u503c\uff1a\nstring \u6570\u636e\n\u4f8b\u5b50\uff1a\nlocal drv = sfd.init(\"spi\", 0, 17)\nif drv then\n log.info(\"sfd\", \"read\", sfd.read(drv, 0x100, 256))\nend\n", "prefix": "sfd.read"}, "sfd.write": {"body": "sfd.write(${1:drv},${2:offset},${3:data})", "description": "sfd.write(drv, offset, data) - \u5199\u5165\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nuserdata sfd.init\u8fd4\u56de\u7684\u6570\u636e\u7ed3\u6784\nint \u8d77\u59cb\u504f\u79fb\u91cf\nstring \u9700\u8981\u5199\u5165\u7684\u6570\u636e,\u5f53\u524d\u652f\u6301256\u5b57\u8282\u53ca\u4ee5\u4e0b\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u8fd4\u56detrue,\u5931\u8d25\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\nlocal drv = sfd.init(\"spi\", 0, 17)\nif drv then\n log.info(\"sfd\", \"write\", sfd.write(drv, 0x100, \"hi,luatos\"))\nend\n", "prefix": "sfd.write"}, "sfd.erase": {"body": "sfd.erase(${1:drv},${2:offset})", "description": "sfd.erase(drv, offset) - \u64e6\u9664\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nuserdata sfd.init\u8fd4\u56de\u7684\u6570\u636e\u7ed3\u6784\nint \u8d77\u59cb\u504f\u79fb\u91cf\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u8fd4\u56detrue,\u5931\u8d25\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\nlocal drv = sfd.init(\"spi\", 0, 17)\nif drv then\n log.info(\"sfd\", \"write\", sfd.erase(drv, 0x100))\nend\n", "prefix": "sfd.erase"}, "sfd.id": {"body": "sfd.id(${1:drv})", "description": "sfd.id(drv) - \u82af\u7247\u552f\u4e00id\n\u4f20\u5165\u503c\uff1a\nuserdata sfd.init\u8fd4\u56de\u7684\u6570\u636e\u7ed3\u6784\n\u8fd4\u56de\u503c\uff1a\nstring 8\u5b57\u8282(64bit)\u7684\u82af\u7247id\n\u4f8b\u5b50\uff1a\nlocal drv = sfd.init(\"spi\", 0, 17)\nif drv then\n log.info(\"sfd\", \"chip id\", sfd.id(drv))\nend\n", "prefix": "sfd.id"}, "sfud.init": {"body": "sfud.init(${1:spi_id},${2:spi_cs},${3:spi_bandrate)/sfud.init(spi_device})", "description": "sfud.init(spi_id, spi_cs, spi_bandrate)/sfud.init(spi_device) - \u521d\u59cb\u5316sfud\n\u4f20\u5165\u503c\uff1a\nint spi_id SPI\u7684ID/userdata spi_device\nint spi_cs SPI\u7684\u7247\u9009\nint spi_bandrate SPI\u7684\u9891\u7387\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n--spi\nlog.info(\"sfud.init\",sfud.init(0,20,20 * 1000 * 1000))\n--spi_device\nlocal spi_device = spi.deviceSetup(0,17,0,0,8,2000000,spi.MSB,1,0)\nlog.info(\"sfud.init\",sfud.init(spi_device))\n", "prefix": "sfud.init"}, "sfud.getDeviceNum": {"body": "sfud.getDeviceNum()", "description": "sfud.getDeviceNum() - \u83b7\u53d6flash\u8bbe\u5907\u4fe1\u606f\u8868\u4e2d\u7684\u8bbe\u5907\u603b\u6570\n\u8fd4\u56de\u503c\uff1a\nint \u8fd4\u56de\u8bbe\u5907\u603b\u6570\n\u4f8b\u5b50\uff1a\nlog.info(\"sfud.getDeviceNum\",sfud.getDeviceNum())\n", "prefix": "sfud.getDeviceNum"}, "sfud.getDevice": {"body": "sfud.getDevice(${1:index})", "description": "sfud.getDevice(index) - \u901a\u8fc7flash\u4fe1\u606f\u8868\u4e2d\u7684\u7d22\u5f15\u83b7\u53d6flash\u8bbe\u5907\n\u4f20\u5165\u503c\uff1a\nint index flash\u4fe1\u606f\u8868\u4e2d\u7684\u7d22\u5f15\n\u8fd4\u56de\u503c\uff1a\nuserdata \u6210\u529f\u8fd4\u56de\u4e00\u4e2a\u6570\u636e\u7ed3\u6784,\u5426\u5219\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\nlocal sfud_device = sfud.getDevice(1)\n", "prefix": "sfud.getDevice"}, "sfud.getDeviceTable": {"body": "sfud.getDeviceTable()", "description": "sfud.getDeviceTable() - \u83b7\u53d6flash\u8bbe\u5907\u4fe1\u606f\u8868\n\u8fd4\u56de\u503c\uff1a\nuserdata \u6210\u529f\u8fd4\u56de\u4e00\u4e2a\u6570\u636e\u7ed3\u6784,\u5426\u5219\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\nlocal sfud_device = sfud.getDeviceTable()\n", "prefix": "sfud.getDeviceTable"}, "sfud.chipErase": {"body": "sfud.chipErase(${1:flash})", "description": "sfud.chipErase(flash) - \u64e6\u9664 Flash \u5168\u90e8\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nuserdata flash Flash \u8bbe\u5907\u5bf9\u8c61 sfud.get_device_table()\u8fd4\u56de\u7684\u6570\u636e\u7ed3\u6784\n\u8fd4\u56de\u503c\uff1a\nint \u6210\u529f\u8fd4\u56de0\n\u4f8b\u5b50\uff1a\nsfud.chipErase(flash)\n", "prefix": "sfud.chipErase"}, "sfud.erase": {"body": "sfud.erase(${1:flash},${2:add},${3:size})", "description": "sfud.erase(flash,add,size) - \u64e6\u9664 Flash \u6307\u5b9a\u5730\u5740\u6307\u5b9a\u5927\u5c0f\n\u4f20\u5165\u503c\uff1a\nuserdata flash Flash \u8bbe\u5907\u5bf9\u8c61 sfud.get_device_table()\u8fd4\u56de\u7684\u6570\u636e\u7ed3\u6784\nnumber add \u64e6\u9664\u5730\u5740\nnumber size \u64e6\u9664\u5927\u5c0f\n\u8fd4\u56de\u503c\uff1a\nint \u6210\u529f\u8fd4\u56de0\n\u4f8b\u5b50\uff1a\nsfud.erase(flash,add,size)\n", "prefix": "sfud.erase"}, "sfud.read": {"body": "sfud.read(${1:flash},${2:addr},${3:size})", "description": "sfud.read(flash, addr, size) - \u8bfb\u53d6 Flash \u6570\u636e\n\u4f20\u5165\u503c\uff1a\nuserdata flash Flash \u8bbe\u5907\u5bf9\u8c61 sfud.get_device_table()\u8fd4\u56de\u7684\u6570\u636e\u7ed3\u6784\nint addr \u8d77\u59cb\u5730\u5740\nint size \u4ece\u8d77\u59cb\u5730\u5740\u5f00\u59cb\u8bfb\u53d6\u6570\u636e\u7684\u603b\u5927\u5c0f\n\u8fd4\u56de\u503c\uff1a\nstring data \u8bfb\u53d6\u5230\u7684\u6570\u636e\n\u4f8b\u5b50\uff1a\nlog.info(\"sfud.read\",sfud.read(sfud_device,1024,4))\n", "prefix": "sfud.read"}, "sfud.write": {"body": "sfud.write(${1:flash},${2:addr},${3:data})", "description": "sfud.write(flash, addr,data) - \u5411 Flash \u5199\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nuserdata flash Flash \u8bbe\u5907\u5bf9\u8c61 sfud.get_device_table()\u8fd4\u56de\u7684\u6570\u636e\u7ed3\u6784\nint addr \u8d77\u59cb\u5730\u5740\nstring data \u5f85\u5199\u5165\u7684\u6570\u636e\n\u8fd4\u56de\u503c\uff1a\nint \u6210\u529f\u8fd4\u56de0\n\u4f8b\u5b50\uff1a\nlog.info(\"sfud.write\",sfud.write(sfud_device,1024,\"sfud\"))\n", "prefix": "sfud.write"}, "sfud.eraseWrite": {"body": "sfud.eraseWrite(${1:flash},${2:addr},${3:data})", "description": "sfud.eraseWrite(flash, addr,data) - \u5148\u64e6\u9664\u518d\u5f80 Flash \u5199\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nuserdata flash Flash \u8bbe\u5907\u5bf9\u8c61 sfud.get_device_table()\u8fd4\u56de\u7684\u6570\u636e\u7ed3\u6784\nint addr \u8d77\u59cb\u5730\u5740\nstring data \u5f85\u5199\u5165\u7684\u6570\u636e\n\u8fd4\u56de\u503c\uff1a\nint \u6210\u529f\u8fd4\u56de0\n\u4f8b\u5b50\uff1a\nlog.info(\"sfud.eraseWrite\",sfud.eraseWrite(sfud_device,1024,\"sfud\"))\n", "prefix": "sfud.eraseWrite"}, "sfud.mount": {"body": "sfud.mount(${1:flash},${2:mount_point},${3:offset},${4:maxsize})", "description": "sfud.mount(flash, mount_point, offset, maxsize) - \u6302\u8f7dsfud lfs\u6587\u4ef6\u7cfb\u7edf\n\u4f20\u5165\u503c\uff1a\nuserdata flash Flash \u8bbe\u5907\u5bf9\u8c61 sfud.get_device_table()\u8fd4\u56de\u7684\u6570\u636e\u7ed3\u6784\nstring mount_point \u6302\u8f7d\u76ee\u5f55\u540d\nint \u8d77\u59cb\u504f\u79fb\u91cf,\u9ed8\u8ba40\nint \u603b\u5927\u5c0f, \u9ed8\u8ba4\u662f\u6574\u4e2aflash\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue\n\u4f8b\u5b50\uff1a\nlog.info(\"sfud.mount\",sfud.mount(sfud_device,\"/sfud\"))\nlog.info(\"fsstat\", fs.fsstat(\"/\"))\nlog.info(\"fsstat\", fs.fsstat(\"/sfud\"))\n", "prefix": "sfud.mount"}, "sms.send": {"body": "sms.send(${1:phone},${2:msg},${3:auto_phone_fix})", "description": "sms.send(phone, msg, auto_phone_fix) - \u53d1\u9001\u77ed\u4fe1\n\u4f20\u5165\u503c\uff1a\nstring \u7535\u8bdd\u53f7\u7801,\u5fc5\u586b\nstring \u77ed\u4fe1\u5185\u5bb9,\u5fc5\u586b\nbool \u662f\u5426\u81ea\u52a8\u5904\u7406\u7535\u8bdd\u53f7\u53f7\u7801\u7684\u683c\u5f0f,\u9ed8\u8ba4\u662f\u6309\u77ed\u4fe1\u5185\u5bb9\u548c\u53f7\u7801\u683c\u5f0f\u8fdb\u884c\u81ea\u52a8\u5224\u65ad, \u8bbe\u7f6e\u4e3afalse\u53ef\u7981\u7528\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\u6216nil\n", "prefix": "sms.send"}, "sms.setNewSmsCb": {"body": "sms.setNewSmsCb(${1:func})", "description": "sms.setNewSmsCb(func) - \u8bbe\u7f6e\u65b0SMS\u7684\u56de\u8c03\u51fd\u6570\n\u4f20\u5165\u503c\uff1a\nfunction \u56de\u8c03\u51fd\u6570, 3\u4e2a\u53c2\u6570, num, txt, metas\n\u8fd4\u56de\u503c\uff1a\nnil \u4f20\u5165\u662f\u51fd\u6570\u5c31\u80fd\u6210\u529f,\u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n\nsms.setNewSmsCb(function(num, txt, metas)\n -- num \u624b\u673a\u53f7\u7801\n -- txt \u6587\u672c\u5185\u5bb9\n -- metas \u77ed\u4fe1\u7684\u5143\u6570\u636e,\u4f8b\u5982\u53d1\u9001\u7684\u65f6\u95f4,\u957f\u77ed\u4fe1\u7f16\u53f7\n -- \u6ce8\u610f, \u957f\u77ed\u4fe1\u4f1a\u81ea\u52a8\u5408\u5e76\u6210\u4e00\u6761txt\n log.info(\"sms\", num, txt, metas and json.encode(metas) or \"\")\nend)\n", "prefix": "sms.setNewSmsCb"}, "sms.autoLong": {"body": "sms.autoLong(${1:mode})", "description": "sms.autoLong(mode) - \u8bbe\u7f6e\u957f\u77ed\u4fe1\u7684\u81ea\u52a8\u5408\u5e76\u529f\u80fd\n\u4f20\u5165\u503c\uff1a\nbool \u662f\u5426\u81ea\u52a8\u5408\u5e76,true\u4e3a\u81ea\u52a8\u5408\u5e76,\u4e3a\u9ed8\u8ba4\u503c\n\u8fd4\u56de\u503c\uff1a\nbool \u8bbe\u7f6e\u540e\u7684\u503c\n\u4f8b\u5b50\uff1a\n-- \u7981\u7528\u957f\u77ed\u4fe1\u7684\u81ea\u52a8\u5408\u5e76, \u4e00\u822c\u4e0d\u9700\u8981\u7981\u7528\nsms.autoLong(false)\n", "prefix": "sms.autoLong"}, "sms.clearLong": {"body": "sms.clearLong()", "description": "sms.clearLong() - \u6e05\u9664\u957f\u77ed\u4fe1\u7f13\u5b58\n\u8fd4\u56de\u503c\uff1a\nint \u6e05\u7406\u6389\u7684\u7247\u6bb5\u6570\u91cf\n\u4f8b\u5b50\uff1a\nsms.clearLong()\n", "prefix": "sms.clearLong"}, "socket.sntp": {"body": "socket.sntp(${1:sntp_server})", "description": "socket.sntp(sntp_server) - sntp\u65f6\u95f4\u540c\u6b65\n\u4f20\u5165\u503c\uff1a\nstring/table sntp\u670d\u52a1\u5668\u5730\u5740 \u9009\u586b\nint \u9002\u914d\u5668\u5e8f\u53f7\uff0c \u53ea\u80fd\u662fsocket.ETH0\uff08\u5916\u7f6e\u4ee5\u592a\u7f51\uff09\uff0csocket.LWIP_ETH\uff08\u5185\u7f6e\u4ee5\u592a\u7f51\uff09\uff0csocket.LWIP_STA\uff08\u5185\u7f6eWIFI\u7684STA\uff09\uff0csocket.LWIP_AP\uff08\u5185\u7f6eWIFI\u7684AP\uff09\uff0csocket.LWIP_GP\uff08\u5185\u7f6e\u8702\u7a9d\u7f51\u7edc\u7684GPRS\uff09\uff0csocket.USB\uff08\u5916\u7f6eUSB\u7f51\u5361\uff09\uff0c\u5982\u679c\u4e0d\u586b\uff0c\u4f18\u5148\u9009\u62e9soc\u5e73\u53f0\u81ea\u5e26\u80fd\u4e0a\u5916\u7f51\u7684\u9002\u914d\u5668\uff0c\u82e5\u4ecd\u7136\u6ca1\u6709\uff0c\u9009\u62e9\u6700\u540e\u4e00\u4e2a\u6ce8\u518c\u7684\u9002\u914d\u5668\n\u4f8b\u5b50\uff1a\nsocket.sntp()\n--socket.sntp(\"ntp.aliyun.com\") --\u81ea\u5b9a\u4e49sntp\u670d\u52a1\u5668\u5730\u5740\n--socket.sntp({\"ntp.aliyun.com\",\"ntp1.aliyun.com\",\"ntp2.aliyun.com\"}) --sntp\u81ea\u5b9a\u4e49\u670d\u52a1\u5668\u5730\u5740\n--socket.sntp(nil, socket.ETH0) --sntp\u81ea\u5b9a\u4e49\u9002\u914d\u5668\u5e8f\u53f7\nsys.subscribe(\"NTP_UPDATE\", function()\n log.info(\"sntp\", \"time\", os.date())\nend)\nsys.subscribe(\"NTP_ERROR\", function()\n log.info(\"socket\", \"sntp error\")\n socket.sntp()\nend)\n", "prefix": "socket.sntp"}, "socket.localIP": {"body": "socket.localIP(${1:adapter})", "description": "socket.localIP(adapter) - \u83b7\u53d6\u672c\u5730ip\n\u4f20\u5165\u503c\uff1a\nint \u9002\u914d\u5668\u5e8f\u53f7\uff0c \u53ea\u80fd\u662fsocket.ETH0\uff08\u5916\u7f6e\u4ee5\u592a\u7f51\uff09\uff0csocket.LWIP_ETH\uff08\u5185\u7f6e\u4ee5\u592a\u7f51\uff09\uff0csocket.LWIP_STA\uff08\u5185\u7f6eWIFI\u7684STA\uff09\uff0csocket.LWIP_AP\uff08\u5185\u7f6eWIFI\u7684AP\uff09\uff0csocket.LWIP_GP\uff08\u5185\u7f6e\u8702\u7a9d\u7f51\u7edc\u7684GPRS\uff09\uff0csocket.USB\uff08\u5916\u7f6eUSB\u7f51\u5361\uff09\uff0c\u5982\u679c\u4e0d\u586b\uff0c\u4f18\u5148\u9009\u62e9soc\u5e73\u53f0\u81ea\u5e26\u80fd\u4e0a\u5916\u7f51\u7684\u9002\u914d\u5668\uff0c\u82e5\u4ecd\u7136\u6ca1\u6709\uff0c\u9009\u62e9\u6700\u540e\u4e00\u4e2a\u6ce8\u518c\u7684\u9002\u914d\u5668\n\u8fd4\u56de\u503c\uff1a\nstring \u901a\u5e38\u662f\u5185\u7f51ip, \u4e5f\u53ef\u80fd\u662f\u5916\u7f51ip, \u53d6\u51b3\u4e8e\u8fd0\u8425\u5546\u7684\u5206\u914d\nstring \u7f51\u7edc\u63a9\u7801\nstring \u7f51\u5173IP\n\u4f8b\u5b50\uff1a\nsys.taskInit(function()\n while 1 do\n sys.wait(3000)\n log.info(\"socket\", \"ip\", socket.localIP())\n\t\t-- \u8f93\u51fa\u793a\u4f8b\n\t\t-- 62.39.244.10\t255.255.255.255\t0.0.0.0\n end\nend)\n", "prefix": "socket.localIP"}, "socket.create": {"body": "socket.create(${1:adapter},${2:cb})", "description": "socket.create(adapter, cb) - \u5728\u67d0\u4e2a\u9002\u914d\u7684\u7f51\u5361\u4e0a\u7533\u8bf7\u4e00\u4e2asocket_ctrl\n\u4f20\u5165\u503c\uff1a\nint \u9002\u914d\u5668\u5e8f\u53f7\uff0c \u53ea\u80fd\u662fsocket.ETH0\uff08\u5916\u7f6e\u4ee5\u592a\u7f51\uff09\uff0csocket.LWIP_ETH\uff08\u5185\u7f6e\u4ee5\u592a\u7f51\uff09\uff0csocket.LWIP_STA\uff08\u5185\u7f6eWIFI\u7684STA\uff09\uff0csocket.LWIP_AP\uff08\u5185\u7f6eWIFI\u7684AP\uff09\uff0csocket.LWIP_GP\uff08\u5185\u7f6e\u8702\u7a9d\u7f51\u7edc\u7684GPRS\uff09\uff0csocket.USB\uff08\u5916\u7f6eUSB\u7f51\u5361\uff09\uff0c\u5982\u679c\u4e0d\u586b\uff0c\u4f18\u5148\u9009\u62e9soc\u5e73\u53f0\u81ea\u5e26\u80fd\u4e0a\u5916\u7f51\u7684\u9002\u914d\u5668\uff0c\u82e5\u4ecd\u7136\u6ca1\u6709\uff0c\u9009\u62e9\u6700\u540e\u4e00\u4e2a\u6ce8\u518c\u7684\u9002\u914d\u5668\nstring or function string\u4e3a\u6d88\u606f\u901a\u77e5\u7684taskName\uff0cfunction\u5219\u4e3a\u56de\u8c03\u51fd\u6570\uff0c\u5982\u679c\u56fa\u4ef6\u6ca1\u6709\u5185\u7f6esys_wait\uff0c\u5219\u5fc5\u987b\u662ffunction\n", "prefix": "socket.create"}, "socket.debug": {"body": "socket.debug(${1:ctrl},${2:onoff})", "description": "socket.debug(ctrl, onoff) - \u914d\u7f6e\u662f\u5426\u6253\u5f00debug\u4fe1\u606f\n\u4f20\u5165\u503c\uff1a\nuser_data socket.create\u5f97\u5230\u7684ctrl\nboolean true \u6253\u5f00debug\u5f00\u5173\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n-- \u6253\u5f00\u8c03\u8bd5\u4fe1\u606f,\u9ed8\u8ba4\u662f\u5173\u95ed\u72b6\u6001\nsocket.debug(ctrl, true)\n", "prefix": "socket.debug"}, "socket.config": {"body": "socket.config(${1:ctrl},${2:local_port},${3:is_udp},${4:is_tls},${5:keep_idle},${6:keep_interval},${7:keep_cnt},${8:server_cert},${9:client_cert},${10:client_key},${11:client_password})", "description": "socket.config(ctrl, local_port, is_udp, is_tls, keep_idle, keep_interval, keep_cnt, server_cert, client_cert, client_key, client_password) - \u914d\u7f6enetwork\u4e00\u4e9b\u4fe1\u606f\uff0c\n\u4f20\u5165\u503c\uff1a\nuser_data socket.create\u5f97\u5230\u7684ctrl\nint \u672c\u5730\u7aef\u53e3\u53f7\uff0c\u5c0f\u7aef\u683c\u5f0f\uff0c\u5982\u679c\u4e0d\u5199\uff0c\u5219\u81ea\u52a8\u5206\u914d\u4e00\u4e2a\uff0c\u5982\u679c\u7528\u6237\u586b\u4e86\u7aef\u53e3\u53f7\u5219\u9700\u8981\u5c0f\u4e8e60000, \u9ed8\u8ba4\u4e0d\u5199\nboolean \u662f\u5426\u662fUDP\uff0c\u9ed8\u8ba4false\nboolean \u662f\u5426\u662f\u52a0\u5bc6\u4f20\u8f93\uff0c\u9ed8\u8ba4false\nint tcp keep live\u6a21\u5f0f\u4e0b\u7684idle\u65f6\u95f4\uff08\u79d2\uff09\uff0c\u5982\u679c\u7559\u7a7a\u5219\u8868\u793a\u4e0d\u542f\u7528\uff0c\u5982\u679c\u662f\u4e0d\u652f\u6301\u6807\u51c6posix\u63a5\u53e3\u7684\u7f51\u5361\uff08\u6bd4\u5982W5500\uff09\uff0c\u5219\u4e3a\u5fc3\u8df3\u95f4\u9694\nint tcp keep live\u6a21\u5f0f\u4e0b\u7684\u63a2\u6d4b\u95f4\u9694\u65f6\u95f4\uff08\u79d2\uff09\nint tcp keep live\u6a21\u5f0f\u4e0b\u7684\u63a2\u6d4b\u6b21\u6570\nstring TCP\u6a21\u5f0f\u4e0b\u7684\u670d\u52a1\u5668ca\u8bc1\u4e66\u6570\u636e\uff0cUDP\u6a21\u5f0f\u4e0b\u7684PSK\uff0c\u4e0d\u9700\u8981\u52a0\u5bc6\u4f20\u8f93\u5199nil\uff0c\u540e\u7eed\u53c2\u6570\u4e5f\u5168\u90e8nil\nstring TCP\u6a21\u5f0f\u4e0b\u7684\u5ba2\u6237\u7aefca\u8bc1\u4e66\u6570\u636e\uff0cUDP\u6a21\u5f0f\u4e0b\u7684PSK-ID\uff0cTCP\u6a21\u5f0f\u4e0b\u5982\u679c\u4e0d\u9700\u8981\u9a8c\u8bc1\u5ba2\u6237\u7aef\u8bc1\u4e66\u65f6\uff0c\u5ffd\u7565\uff0c\u4e00\u822c\u4e0d\u9700\u8981\u9a8c\u8bc1\u5ba2\u6237\u7aef\u8bc1\u4e66\nstring TCP\u6a21\u5f0f\u4e0b\u7684\u5ba2\u6237\u7aef\u79c1\u94a5\u52a0\u5bc6\u6570\u636e\nstring TCP\u6a21\u5f0f\u4e0b\u7684\u5ba2\u6237\u7aef\u79c1\u94a5\u53e3\u4ee4\u6570\u636e\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u8fd4\u56detrue\uff0c\u5931\u8d25\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n--\u6700\u666e\u901a\u7684TCP\u4f20\u8f93\nsocket.config(ctrl)\n--\u6700\u666e\u901a\u7684\u52a0\u5bc6TCP\u4f20\u8f93\uff0c\u8bc1\u4e66\u90fd\u4e0d\u7528\u9a8c\u8bc1\u7684\u90a3\u79cd\nsocket.config(ctrl, nil, nil ,true)\n", "prefix": "socket.config"}, "socket.linkup": {"body": "socket.linkup(${1:ctrl})", "description": "socket.linkup(ctrl) - \u7b49\u5f85\u7f51\u5361linkup\n\u4f20\u5165\u503c\uff1a\nuser_data socket.create\u5f97\u5230\u7684ctrl\n\u8fd4\u56de\u503c\uff1a\nboolean true\u6ca1\u6709\u5f02\u5e38\u53d1\u751f\uff0cfalse\u5931\u8d25\u4e86\uff0c\u5982\u679cfalse\u5219\u4e0d\u9700\u8981\u770b\u4e0b\u4e00\u4e2a\u8fd4\u56de\u503c\u4e86\nboolean true\u5df2\u7ecflinkup\uff0cfalse\u6ca1\u6709linkup\uff0c\u4e4b\u540e\u9700\u8981\u63a5\u6536socket.LINK\u6d88\u606f\n\u4f8b\u5b50\uff1a\n-- \u5224\u65ad\u4e00\u4e0b\u662f\u5426\u5df2\u7ecf\u8054\u7f51\nlocal succ, result = socket.linkup(ctrl)\n", "prefix": "socket.linkup"}, "socket.connect": {"body": "socket.connect(${1:ctrl},${2:ip},${3:remote_port},${4:need_ipv6_dns})", "description": "socket.connect(ctrl, ip, remote_port, need_ipv6_dns) - \u4f5c\u4e3a\u5ba2\u6237\u7aef\u8fde\u63a5\u670d\u52a1\u5668\n\u4f20\u5165\u503c\uff1a\nuser_data socket.create\u5f97\u5230\u7684ctrl\nstring or int ip\u6216\u8005\u57df\u540d\uff0c\u5982\u679c\u662fIPV4\uff0c\u53ef\u4ee5\u662f\u5927\u7aef\u683c\u5f0f\u7684int\u503c\nint \u670d\u52a1\u5668\u7aef\u53e3\u53f7\uff0c\u5c0f\u7aef\u683c\u5f0f\nboolean \u57df\u540d\u89e3\u6790\u662f\u5426\u8981IPV6\uff0ctrue\u8981\uff0cfalse\u4e0d\u8981\uff0c\u9ed8\u8ba4false\u4e0d\u8981\uff0c\u53ea\u6709\u652f\u6301IPV6\u7684\u534f\u8bae\u6808\u624d\u6709\u6548\u679c\n\u8fd4\u56de\u503c\uff1a\nboolean true\u6ca1\u6709\u5f02\u5e38\u53d1\u751f\uff0cfalse\u5931\u8d25\u4e86\uff0c\u5982\u679cfalse\u5219\u4e0d\u9700\u8981\u770b\u4e0b\u4e00\u4e2a\u8fd4\u56de\u503c\u4e86\uff0c\u5982\u679c\u6709\u5f02\u5e38\uff0c\u540e\u7eed\u8981close\nboolean true\u5df2\u7ecfconnect\uff0cfalse\u6ca1\u6709connect\uff0c\u4e4b\u540e\u9700\u8981\u63a5\u6536socket.ON_LINE\u6d88\u606f\n\u4f8b\u5b50\uff1a\n\nlocal succ, result = socket.connect(ctrl, \"netlab.luatos.com\", 40123)\n\n--[[\n\u5e38\u89c1\u7684\u8fde\u63a5\u5931\u8d25\u7684code\u503c, \u4f1a\u5728\u65e5\u5fd7\u4e2d\u663e\u793a\n-1 \u5e95\u5c42\u5185\u5b58\u4e0d\u8db3\n-3 \u8d85\u65f6\n-8 \u7aef\u53e3\u5df2\u7ecf\u88ab\u5360\u7528\n-11 \u94fe\u63a5\u672a\u5efa\u7acb\n-13 \u6a21\u5757\u4e3b\u52a8\u65ad\u5f00\u8fde\u63a5\n-14 \u670d\u52a1\u5668\u4e3b\u52a8\u65ad\u5f00\u8fde\u63a5\n]]\n", "prefix": "socket.connect"}, "socket.discon": {"body": "socket.discon(${1:ctrl})", "description": "socket.discon(ctrl) - \u4f5c\u4e3a\u5ba2\u6237\u7aef\u65ad\u5f00\u8fde\u63a5\n\u4f20\u5165\u503c\uff1a\nuser_data socket.create\u5f97\u5230\u7684ctrl\n\u8fd4\u56de\u503c\uff1a\nboolean true\u6ca1\u6709\u5f02\u5e38\u53d1\u751f\uff0cfalse\u5931\u8d25\u4e86\uff0c\u5982\u679cfalse\u5219\u4e0d\u9700\u8981\u770b\u4e0b\u4e00\u4e2a\u8fd4\u56de\u503c\u4e86\nboolean true\u5df2\u7ecf\u65ad\u5f00\uff0cfalse\u6ca1\u6709\u65ad\u5f00\uff0c\u4e4b\u540e\u9700\u8981\u63a5\u6536socket.CLOSED\u6d88\u606f\n\u4f8b\u5b50\uff1a\nlocal succ, result = socket.discon(ctrl)\n", "prefix": "socket.discon"}, "socket.close": {"body": "socket.close(${1:ctrl})", "description": "socket.close(ctrl) - \u5f3a\u5236\u5173\u95edsocket\n\u4f20\u5165\u503c\uff1a\nuser_data socket.create\u5f97\u5230\u7684ctrl\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n", "prefix": "socket.close"}, "socket.tx": {"body": "socket.tx(${1:ctrl},${2:data},${3:ip},${4:port},${5:flag})", "description": "socket.tx(ctrl, data, ip, port, flag) - \u53d1\u9001\u6570\u636e\u7ed9\u5bf9\u7aef\uff0cUDP\u5355\u6b21\u53d1\u9001\u4e0d\u8981\u8d85\u8fc71460\u5b57\u8282\uff0c\u5426\u5219\u5f88\u5bb9\u6613\u5931\u8d25\n\u4f20\u5165\u503c\uff1a\nuser_data socket.create\u5f97\u5230\u7684ctrl\nstring or user_data zbuff \u8981\u53d1\u9001\u7684\u6570\u636e\nstring or int \u5bf9\u7aefIP\uff0c\u5982\u679c\u662fTCP\u5e94\u7528\u5219\u5ffd\u7565\uff0c\u5982\u679c\u662fUDP\uff0c\u5982\u679c\u7559\u7a7a\u5219\u7528connect\u65f6\u5019\u7684\u53c2\u6570\uff0c\u5982\u679c\u662fIPV4\uff0c\u53ef\u4ee5\u662f\u5927\u7aef\u683c\u5f0f\u7684int\u503c\nint \u5bf9\u7aef\u7aef\u53e3\u53f7\uff0c\u5c0f\u7aef\u683c\u5f0f\uff0c\u5982\u679c\u662fTCP\u5e94\u7528\u5219\u5ffd\u7565\uff0c\u5982\u679c\u662fUDP\uff0c\u5982\u679c\u7559\u7a7a\u5219\u7528connect\u65f6\u5019\u7684\u53c2\u6570\nint \u53d1\u9001\u53c2\u6570\uff0c\u76ee\u524d\u9884\u7559\uff0c\u4e0d\u8d77\u4f5c\u7528\n\u8fd4\u56de\u503c\uff1a\nboolean true\u6ca1\u6709\u5f02\u5e38\u53d1\u751f\uff0cfalse\u5931\u8d25\u4e86\uff0c\u5982\u679cfalse\u5219\u4e0d\u9700\u8981\u770b\u4e0b\u4e00\u4e2a\u8fd4\u56de\u503c\u4e86\uff0c\u5982\u679cfalse\uff0c\u540e\u7eed\u8981close\nboolean true\u7f13\u51b2\u533a\u6ee1\u4e86\uff0cfalse\u6ca1\u6709\u6ee1\uff0c\u5982\u679ctrue\uff0c\u5219\u9700\u8981\u7b49\u5f85\u4e00\u6bb5\u65f6\u95f4\u6216\u8005\u7b49\u5230socket.TX_OK\u6d88\u606f\u540e\u518d\u5c1d\u8bd5\u53d1\u9001\uff0c\u540c\u65f6\u5ffd\u7565\u4e0b\u4e00\u4e2a\u8fd4\u56de\u503c\nboolean true\u5df2\u7ecf\u6536\u5230\u5e94\u7b54\uff0cfalse\u6ca1\u6709\u6536\u5230\u5e94\u7b54\uff0c\u4e4b\u540e\u9700\u8981\u63a5\u6536socket.TX_OK\u6d88\u606f\uff0c \u4e5f\u53ef\u4ee5\u5ffd\u7565\u7ee7\u7eed\u53d1\u9001\uff0c\u76f4\u5230full==true\n\u4f8b\u5b50\uff1a\n\nlocal succ, full, result = socket.tx(ctrl, \"123456\", \"xxx.xxx.xxx.xxx\", xxxx)\n", "prefix": "socket.tx"}, "socket.rx": {"body": "socket.rx(${1:ctrl},${2:buff},${3:flag})", "description": "socket.rx(ctrl, buff, flag) - \u63a5\u6536\u5bf9\u7aef\u53d1\u51fa\u7684\u6570\u636e\uff0c\u6ce8\u610f\u6570\u636e\u5df2\u7ecf\u7f13\u5b58\u5728\u5e95\u5c42\uff0c\u4f7f\u7528\u672c\u51fd\u6570\u53ea\u662f\u63d0\u53d6\u51fa\u6765\uff0cUDP\u6a21\u5f0f\u4e0b\u4e00\u6b21\u53ea\u4f1a\u53d6\u51fa\u4e00\u4e2a\u6570\u636e\u5305\n\u4f20\u5165\u503c\uff1a\nuser_data socket.create\u5f97\u5230\u7684ctrl\nuser_data zbuff \u5b58\u653e\u63a5\u6536\u7684\u6570\u636e\uff0c\u5982\u679c\u7f13\u51b2\u533a\u4e0d\u591f\u5927\u4f1a\u81ea\u52a8\u6269\u5bb9\nint \u63a5\u6536\u53c2\u6570\uff0c\u76ee\u524d\u9884\u7559\uff0c\u4e0d\u8d77\u4f5c\u7528\n\u8fd4\u56de\u503c\uff1a\nboolean true\u6ca1\u6709\u5f02\u5e38\u53d1\u751f\uff0cfalse\u5931\u8d25\u4e86\uff0c\u5982\u679cfalse\u5219\u4e0d\u9700\u8981\u770b\u4e0b\u4e00\u4e2a\u8fd4\u56de\u503c\u4e86\uff0c\u5982\u679cfalse\uff0c\u540e\u7eed\u8981close\nint \u672c\u6b21\u63a5\u6536\u5230\u6570\u636e\u957f\u5ea6\nstring \u5bf9\u7aefIP\uff0c\u53ea\u6709UDP\u6a21\u5f0f\u4e0b\u624d\u6709\u610f\u4e49\uff0cTCP\u6a21\u5f0f\u8fd4\u56denil\uff0c\u6ce8\u610f\u8fd4\u56de\u7684\u683c\u5f0f\uff0c\u5982\u679c\u662fIPV4\uff0c1byte 0x00 + 4byte\u5730\u5740 \u5982\u679c\u662fIPV6\uff0c1byte 0x01 + 16byte\u5730\u5740\nint \u5bf9\u7aefport\uff0c\u53ea\u6709UDP\u6a21\u5f0f\u4e0b\u624d\u6709\u610f\u4e49\uff0cTCP\u6a21\u5f0f\u8fd4\u56de0\n\u4f8b\u5b50\uff1a\nlocal succ, data_len, ip, port = socket.rx(ctrl, buff)\n", "prefix": "socket.rx"}, "socket.wait": {"body": "socket.wait(${1:ctrl})", "description": "socket.wait(ctrl) - \u7b49\u5f85\u65b0\u7684socket\u6d88\u606f\uff0c\u5728\u8fde\u63a5\u6210\u529f\u548c\u53d1\u9001\u6570\u636e\u6210\u529f\u540e\uff0c\u4f7f\u7528\u4e00\u6b21\u5c06network\u72b6\u6001\u8f6c\u6362\u5230\u63a5\u6536\u65b0\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nuser_data socket.create\u5f97\u5230\u7684ctrl\n\u8fd4\u56de\u503c\uff1a\nboolean true\u6ca1\u6709\u5f02\u5e38\u53d1\u751f\uff0cfalse\u5931\u8d25\u4e86\uff0c\u5982\u679cfalse\u5219\u4e0d\u9700\u8981\u770b\u4e0b\u4e00\u4e2a\u8fd4\u56de\u503c\u4e86\uff0c\u5982\u679cfalse\uff0c\u540e\u7eed\u8981close\nboolean true\u6709\u65b0\u7684\u6570\u636e\u9700\u8981\u63a5\u6536\uff0cfalse\u6ca1\u6709\u6570\u636e\uff0c\u4e4b\u540e\u9700\u8981\u63a5\u6536socket.EVENT\u6d88\u606f\n\u4f8b\u5b50\uff1a\nlocal succ, result = socket.wait(ctrl)\n", "prefix": "socket.wait"}, "socket.listen": {"body": "socket.listen(${1:ctrl})", "description": "socket.listen(ctrl) - \u4f5c\u4e3a\u670d\u52a1\u7aef\u5f00\u59cb\u76d1\u542c\n\u4f20\u5165\u503c\uff1a\nuser_data socket.create\u5f97\u5230\u7684ctrl\n\u8fd4\u56de\u503c\uff1a\nboolean true\u6ca1\u6709\u5f02\u5e38\u53d1\u751f\uff0cfalse\u5931\u8d25\u4e86\uff0c\u5982\u679cfalse\u5219\u4e0d\u9700\u8981\u770b\u4e0b\u4e00\u4e2a\u8fd4\u56de\u503c\u4e86\uff0c\u5982\u679cfalse\uff0c\u540e\u7eed\u8981close\nboolean true\u5df2\u7ecfconnect\uff0cfalse\u6ca1\u6709connect\uff0c\u4e4b\u540e\u9700\u8981\u63a5\u6536socket.ON_LINE\u6d88\u606f\n\u4f8b\u5b50\uff1a\nlocal succ, result = socket.listen(ctrl)\n", "prefix": "socket.listen"}, "socket.accept": {"body": "socket.accept(${1:ctrl})", "description": "socket.accept(ctrl) - \u4f5c\u4e3a\u670d\u52a1\u7aef\u63a5\u6536\u5230\u4e00\u4e2a\u65b0\u7684\u5ba2\u6237\u7aef\uff0c\u6ce8\u610f\uff0c\u5982\u679c\u662f\u7c7b\u4f3cW5500\u7684\u786c\u4ef6\u534f\u8bae\u6808\u4e0d\u652f\u63011\u5bf9\u591a\uff0c\u5219\u4e0d\u9700\u8981\u7b2c\u4e8c\u4e2a\u53c2\u6570\n\u4f20\u5165\u503c\uff1a\nuser_data socket.create\u5f97\u5230\u7684ctrl\uff0c\u8fd9\u91cc\u662f\u670d\u52a1\u5668\u7aef\nstring or function or nil string\u4e3a\u6d88\u606f\u901a\u77e5\u7684taskName\uff0cfunction\u5219\u4e3a\u56de\u8c03\u51fd\u6570\uff0c\u548csocket.create\u53c2\u6570\u4e00\u81f4\n\u8fd4\u56de\u503c\uff1a\nboolean true\u6ca1\u6709\u5f02\u5e38\u53d1\u751f\uff0cfalse\u5931\u8d25\u4e86\uff0c\u5982\u679cfalse\u5219\u4e0d\u9700\u8981\u770b\u4e0b\u4e00\u4e2a\u8fd4\u56de\u503c\u4e86\uff0c\u5982\u679cfalse\uff0c\u540e\u7eed\u8981close\nuser_data or nil \u5982\u679c\u652f\u63011\u5bf9\u591a\uff0c\u5219\u4f1a\u8fd4\u56de\u65b0\u7684ctrl\uff0c\u81ea\u52a8create\uff0c\u5982\u679c\u4e0d\u652f\u6301\u5219\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\nlocal succ, new_netc = socket.listen(ctrl, cb)\n", "prefix": "socket.accept"}, "socket.release": {"body": "socket.release(${1:ctrl})", "description": "socket.release(ctrl) - \u4e3b\u52a8\u91ca\u653e\u6389network_ctrl\n", "prefix": "socket.release"}, "socket.setDNS": {"body": "socket.setDNS(${1:adapter_index},${2:dns_index},${3:ip})", "description": "socket.setDNS(adapter_index, dns_index, ip) - \u8bbe\u7f6eDNS\u670d\u52a1\u5668\n\u4f20\u5165\u503c\uff1a\nint \u9002\u914d\u5668\u5e8f\u53f7\uff0c \u53ea\u80fd\u662fsocket.ETH0\uff0csocket.STA\uff0csocket.AP\uff0c\u5982\u679c\u4e0d\u586b\uff0c\u4f1a\u9009\u62e9\u6700\u540e\u4e00\u4e2a\u6ce8\u518c\u7684\u9002\u914d\u5668\nint dns\u670d\u52a1\u5668\u5e8f\u53f7\uff0c\u4ece1\u5f00\u59cb\nstring or int dns\uff0c\u5982\u679c\u662fIPV4\uff0c\u53ef\u4ee5\u662f\u5927\u7aef\u683c\u5f0f\u7684int\u503c\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u8fd4\u56detrue\uff0c\u5931\u8d25\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- \u8bbe\u7f6e\u9ed8\u8ba4\u7f51\u7edc\u9002\u914d\u5668\u7684DNS\u914d\u7f6e\nsocket.setDNS(nil, 1, \"114.114.114.114\")\n-- \u8bbe\u7f6e\u5236\u5b9a\u7f51\u7edc\u9002\u914d\u5668\u7684DNS\u914d\u7f6e\nsocket.setDNS(socket.ETH0, 1, \"114.114.114.114\")\n", "prefix": "socket.setDNS"}, "socket.sslLog": {"body": "socket.sslLog(${1:log_level})", "description": "socket.sslLog(log_level) - \u8bbe\u7f6eSSL\u7684log\u767b\u8bb0\n\u4f20\u5165\u503c\uff1a\nint\tmbedtls log\u7b49\u7ea7\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n--[[\nSSL/TLS log\u7ea7\u522b\u8bf4\u660e\n0\u4e0d\u6253\u5370\n1\u53ea\u6253\u5370\u9519\u8bef\u548c\u8b66\n2\u5927\u90e8\u5206info\n3\u53ca3\u4ee5\u4e0a\u8be6\u7ec6\u7684debug\n\n\u8fc7\u591a\u7684\u4fe1\u606f\u53ef\u80fd\u4f1a\u9020\u6210\u5185\u5b58\u788e\u7247\u5316\n]]\n-- \u6253\u5370\u5927\u90e8\u5206info\u65e5\u5fd7\nsocket.sslLog(2)\n", "prefix": "socket.sslLog"}, "socket.adapter": {"body": "socket.adapter(${1:index})", "description": "socket.adapter(index) - \u67e5\u770b\u7f51\u5361\u9002\u914d\u5668\u7684\u8054\u7f51\u72b6\u6001\n\u4f20\u5165\u503c\uff1a\nint \u9700\u8981\u67e5\u770b\u7684\u9002\u914d\u5668\u5e8f\u53f7\uff0c\u53ef\u4ee5\u7559\u7a7a\u4f1a\u67e5\u770b\u5168\u90e8\u7f51\u5361\uff0c\u76f4\u5230\u9047\u5230IP READY\u7684\uff0c\u5982\u679c\u6307\u5b9a\u7f51\u5361\uff0c\u53ea\u80fd\u662fsocket.ETH0\uff08\u5916\u7f6e\u4ee5\u592a\u7f51\uff09\uff0csocket.LWIP_ETH\uff08\u5185\u7f6e\u4ee5\u592a\u7f51\uff09\uff0csocket.LWIP_STA\uff08\u5185\u7f6eWIFI\u7684STA\uff09\uff0csocket.LWIP_AP\uff08\u5185\u7f6eWIFI\u7684AP\uff09\uff0csocket.LWIP_GP\uff08\u5185\u7f6e\u8702\u7a9d\u7f51\u7edc\u7684GPRS\uff09\uff0csocket.USB\uff08\u5916\u7f6eUSB\u7f51\u5361\uff09\n\u8fd4\u56de\u503c\uff1a\nboolean \u88ab\u67e5\u770b\u7684\u9002\u914d\u5668\u662f\u5426IP READY,true\u8868\u793a\u5df2\u7ecf\u51c6\u5907\u597d\u53ef\u4ee5\u8054\u7f51\u4e86,false\u6682\u65f6\u4e0d\u53ef\u4ee5\u8054\u7f51\nint \u6700\u540e\u4e00\u4e2a\u88ab\u67e5\u770b\u7684\u9002\u914d\u5668\u5e8f\u53f7\n\u4f8b\u5b50\uff1a\n-- \u67e5\u770b\u5168\u90e8\u7f51\u5361\uff0c\u76f4\u5230\u627e\u5230\u4e00\u4e2a\u662fIP READY\u7684\nlocal isReady,index = socket.adapter() --\u5982\u679cisReady\u4e3atrue,\u5219index\u4e3aIP READY\u7684\u7f51\u5361\u9002\u914d\u5668\u5e8f\u53f7\n--\u67e5\u770b\u5916\u7f6e\u4ee5\u592a\u7f51\uff08\u6bd4\u5982W5500\uff09\u662f\u5426IP READY\nlocal isReady,default = socket.adapter(socket.ETH0)\n", "prefix": "socket.adapter"}, "socket.remoteIP": {"body": "socket.remoteIP(${1:ctrl})", "description": "socket.remoteIP(ctrl) - \u83b7\u53d6\u5bf9\u7aefip\n\u4f20\u5165\u503c\uff1a\nuser_data socket.create\u5f97\u5230\u7684ctrl\n\u8fd4\u56de\u503c\uff1a\nstring IP1\uff0c\u5982\u679c\u4e3anil\uff0c\u5219\u8868\u793a\u6ca1\u6709\u83b7\u53d6\u5230IP\u5730\u5740\nstring IP2\uff0c\u5982\u679c\u4e3anil\uff0c\u5219\u8868\u793a\u6ca1\u6709IP2\nstring IP3\uff0c\u5982\u679c\u4e3anil\uff0c\u5219\u8868\u793a\u6ca1\u6709IP3\nstring IP4\uff0c\u5982\u679c\u4e3anil\uff0c\u5219\u8868\u793a\u6ca1\u6709IP4\n\u4f8b\u5b50\uff1a\n-- \u6ce8\u610f: \uff0c\u5fc5\u987b\u5728\u63a5\u6536\u5230socket.ON_LINE\u6d88\u606f\u4e4b\u540e\u624d\u53ef\u80fd\u83b7\u53d6\u5230\uff0c\u6700\u591a\u8fd4\u56de4\u4e2aIP\u3002\n-- socket.connect\u91cc\u5982\u679cremote_port\u8bbe\u7f6e\u62100\uff0c\u5219\u5f53DNS\u5b8c\u6210\u65f6\u5c31\u8fd4\u56desocket.ON_LINE\u6d88\u606f\nlocal ip1,ip2,ip3,ip4 = socket.remoteIP(ctrl)\n", "prefix": "socket.remoteIP"}, "softkb.init": {"body": "softkb.init(${1:port},${2:key_in},${3:key_out})", "description": "softkb.init(port, key_in, key_out) - \u521d\u59cb\u5316\u8f6f\u4ef6\u952e\u76d8\u77e9\u9635\n\u4f20\u5165\u503c\uff1a\nint \u9884\u7559, \u5f53\u524d\u586b0\ntable \u77e9\u9635\u8f93\u5165\u6309\u952e\u8868\ntable \u77e9\u9635\u8f93\u51fa\u6309\u952e\u8868\n\u4f8b\u5b50\uff1a\n key_in = {pin.PD10,pin.PE00,pin.PE01,pin.PE02}\n key_out = {pin.PD12,pin.PD13,pin.PD14,pin.PD15}\n softkb.init(0,key_in,key_out)\n\nsys.subscribe(\"SOFT_KB_INC\", function(port, data, state)\n -- port \u5f53\u524d\u56fa\u5b9a\u4e3a0, \u53ef\u4ee5\u65e0\u89c6\n -- data, \u9700\u8981\u914d\u5408init\u7684map\u8fdb\u884c\u89e3\u6790\n -- state, 1 \u4e3a\u6309\u4e0b, 0 \u4e3a \u91ca\u653e\n -- TODO \u8be6\u7ec6\u4ecb\u7ecd\nend)\n", "prefix": "softkb.init"}, "softkb.deinit": {"body": "softkb.deinit(${1:port})", "description": "softkb.deinit(port) - \u5220\u9664\u8f6f\u4ef6\u952e\u76d8\u77e9\u9635\n\u4f20\u5165\u503c\uff1a\nint \u9884\u7559, \u5f53\u524d\u586b0\n\u4f8b\u5b50\uff1a\n softkb.deinit(0)\n", "prefix": "softkb.deinit"}, "spi.setup": {"body": "spi.setup(${1:id},${2:cs},${3:CPHA},${4:CPOL},${5:dataw},${6:bandrate},${7:bitdict},${8:ms},${9:mode})", "description": "spi.setup(id, cs, CPHA, CPOL, dataw, bandrate, bitdict, ms, mode) - \u8bbe\u7f6e\u5e76\u542f\u7528SPI\n\u4f20\u5165\u503c\uff1a\nint SPI\u53f7,\u4f8b\u59820\nint CS \u7247\u9009\u811a,\u5728w600\u4e0d\u53ef\u7528\u8bf7\u586bnil\nint CPHA \u9ed8\u8ba40,\u53ef\u90090/1\nint CPOL \u9ed8\u8ba40,\u53ef\u90090/1\nint \u6570\u636e\u5bbd\u5ea6,\u9ed8\u8ba48bit\nint \u6ce2\u7279\u7387,\u9ed8\u8ba42M=2000000\nint \u5927\u5c0f\u7aef, \u9ed8\u8ba4spi.MSB, \u53ef\u9009spi.LSB\nint \u4e3b\u4ece\u8bbe\u7f6e, \u9ed8\u8ba4\u4e3b1, \u53ef\u9009\u4ece\u673a0. \u901a\u5e38\u53ea\u652f\u6301\u4e3b\u673a\u6a21\u5f0f\nint \u5de5\u4f5c\u6a21\u5f0f, \u5168\u53cc\u5de51, \u534a\u53cc\u5de50, \u9ed8\u8ba4\u5168\u53cc\u5de5\n\u8fd4\u56de\u503c\uff1a\nint \u6210\u529f\u8fd4\u56de0,\u5426\u5219\u8fd4\u56de\u5176\u4ed6\u503c\n\u4f8b\u5b50\uff1a\n-- \u521d\u59cb\u5316spi\nspi.setup(0,20,0,0,8,2000000,spi.MSB,1,1)\n", "prefix": "spi.setup"}, "spi.createSoft": {"body": "spi.createSoft(${1:cs},${2:mosi},${3:miso},${4:clk},${5:CPHA},${6:CPOL},${7:dataw},${8:bitdict},${9:ms},${10:mode})", "description": "spi.createSoft(cs, mosi, miso, clk, CPHA, CPOL, dataw, bitdict, ms, mode) - \u8bbe\u7f6e\u5e76\u542f\u7528\u8f6f\u4ef6SPI\n\u4f20\u5165\u503c\uff1a\nint cs\u5f15\u811a\u7f16\u53f7\uff0c\u4f20\u5165nil\u610f\u4e3aLua\u63a7\u5236cs\u811a\nint mosi\u5f15\u811a\u7f16\u53f7\nint miso\u5f15\u811a\u7f16\u53f7\nint clk\u5f15\u811a\u7f16\u53f7\nint \u9ed8\u8ba40\uff0c\u53ef\u90090/1\nint \u9ed8\u8ba40\uff0c\u53ef\u90090/1\nint \u6570\u636e\u5bbd\u5ea6\uff0c\u9ed8\u8ba48bit\nint \u5927\u5c0f\u7aef\uff0c\u9ed8\u8ba4spi.MSB, \u53ef\u9009spi.LSB\nint \u4e3b\u4ece\u8bbe\u7f6e\uff0c\u9ed8\u8ba4\u4e3b1, \u53ef\u9009\u4ece\u673a0. \u901a\u5e38\u53ea\u652f\u6301\u4e3b\u673a\u6a21\u5f0f\nint \u5de5\u4f5c\u6a21\u5f0f\uff0c\u5168\u53cc\u5de51\uff0c\u534a\u53cc\u5de50\uff0c\u9ed8\u8ba4\u534a\u53cc\u5de5\n\u8fd4\u56de\u503c\uff1a\n\u8f6f\u4ef6SPI\u5bf9\u8c61 \u53ef\u5f53\u4f5cSPI\u7684id\u4f7f\u7528\n\u4f8b\u5b50\uff1a\n-- \u521d\u59cb\u5316\u8f6f\u4ef6spi\nlocal softSpiDevice = spi.createSoft(0, 1, 2, 3, 0, 0, 8, spi.MSB, 1, 1)\nlocal result = spi.send(softSpiDevice, string.char(0x9f))\n", "prefix": "spi.createSoft"}, "spi.close": {"body": "spi.close(${1:id})", "description": "spi.close(id) - \u5173\u95ed\u6307\u5b9a\u7684SPI\n\u4f20\u5165\u503c\uff1a\nint SPI\u53f7,\u4f8b\u59820\n\u8fd4\u56de\u503c\uff1a\nint \u6210\u529f\u8fd4\u56de0,\u5426\u5219\u8fd4\u56de\u5176\u4ed6\u503c\n\u4f8b\u5b50\uff1a\n-- \u521d\u59cb\u5316spi\nspi.close(0)\n", "prefix": "spi.close"}, "spi.transfer": {"body": "spi.transfer(${1:id},${2:send_data[},${3:len]})", "description": "spi.transfer(id, send_data[, len]) - \u4f20\u8f93SPI\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nint SPI\u53f7(\u4f8b\u59820)\u6216\u8f6f\u4ef6SPI\u5bf9\u8c61\nstring/zbuff \u5f85\u53d1\u9001\u7684\u6570\u636e\uff0c\u5982\u679c\u4e3azbuff\u6570\u636e\uff0c\u5219\u4f1a\u4ece\u5bf9\u8c61\u6240\u5904\u7684\u6307\u9488\u5904\u5f00\u59cb\u8bfb\nint \u53ef\u9009\u3002\u5f85\u53d1\u9001\u6570\u636e\u7684\u957f\u5ea6\uff0c\u9ed8\u8ba4\u4e3adata\u957f\u5ea6\nint \u53ef\u9009\u3002\u8bfb\u53d6\u6570\u636e\u7684\u957f\u5ea6\uff0c\u9ed8\u8ba4\u4e3a1\n\u8fd4\u56de\u503c\uff1a\nstring \u8bfb\u53d6\u6210\u529f\u8fd4\u56de\u5b57\u7b26\u4e32,\u5426\u5219\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\n-- \u521d\u59cb\u5316spi\nspi.setup(0,nil,0,0,8,2000000,spi.MSB,1,1)\nlocal recv = spi.transfer(0, \"123\")--\u53d1\u9001123,\u5e76\u8bfb\u53d6\u6570\u636e\n\nlocal buff = zbuff.create(1024, 0x33) --\u521b\u5efa\u4e00\u4e2a\u521d\u503c\u5168\u4e3a0x33\u7684\u5185\u5b58\u533a\u57df\nlocal recv = spi.transfer(0, buff)--\u628azbuff\u6570\u636e\u4ece\u6307\u9488\u5f00\u59cb\uff0c\u5168\u53d1\u51fa\u53bb,\u5e76\u8bfb\u53d6\u6570\u636e\n", "prefix": "spi.transfer"}, "spi.recv": {"body": "spi.recv(${1:id},${2:size})", "description": "spi.recv(id, size) - \u63a5\u6536\u6307\u5b9a\u957f\u5ea6\u7684SPI\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nint SPI\u53f7,\u4f8b\u59820\nint \u6570\u636e\u957f\u5ea6\n\u8fd4\u56de\u503c\uff1a\nstring \u8bfb\u53d6\u6210\u529f\u8fd4\u56de\u5b57\u7b26\u4e32,\u5426\u5219\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\n-- \u521d\u59cb\u5316spi\nspi.setup(0,nil,0,0,8,2000000,spi.MSB,1,1)\nlocal recv = spi.recv(0, 4)--\u63a5\u65364\u5b57\u8282\u6570\u636e\n", "prefix": "spi.recv"}, "spi.send": {"body": "spi.send(${1:id},${2:data[},${3:len]})", "description": "spi.send(id, data[, len]) - \u53d1\u9001SPI\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nint SPI\u53f7,\u4f8b\u59820\nstring/zbuff \u5f85\u53d1\u9001\u7684\u6570\u636e\uff0c\u5982\u679c\u4e3azbuff\u6570\u636e\uff0c\u5219\u4f1a\u4ece\u5bf9\u8c61\u6240\u5904\u7684\u6307\u9488\u5904\u5f00\u59cb\u8bfb\nint \u53ef\u9009\u3002\u5f85\u53d1\u9001\u6570\u636e\u7684\u957f\u5ea6\uff0c\u9ed8\u8ba4\u4e3adata\u957f\u5ea6\n\u8fd4\u56de\u503c\uff1a\nint \u53d1\u9001\u7ed3\u679c\n\u4f8b\u5b50\uff1a\n-- \u521d\u59cb\u5316spi\nspi.setup(0,nil,0,0,8,2000000,spi.MSB,1,1)\nlocal result = spi.send(0, \"123\")--\u53d1\u9001123\n\nlocal buff = zbuff.create(1024, 0x33) --\u521b\u5efa\u4e00\u4e2a\u521d\u503c\u5168\u4e3a0x33\u7684\u5185\u5b58\u533a\u57df\nlocal result = spi.send(0, buff)--\u628azbuff\u6570\u636e\u4ece\u6307\u9488\u5f00\u59cb\uff0c\u5168\u53d1\u51fa\u53bb\n", "prefix": "spi.send"}, "spi.deviceSetup": {"body": "spi.deviceSetup(${1:id},${2:cs},${3:CPHA},${4:CPOL},${5:dataw},${6:bandrate},${7:bitdict},${8:ms},${9:mode})", "description": "spi.deviceSetup(id, cs, CPHA, CPOL, dataw, bandrate, bitdict, ms, mode) - \u8bbe\u7f6e\u5e76\u542f\u7528SPI(\u5bf9\u8c61\u65b9\u5f0f)\n\u4f20\u5165\u503c\uff1a\nint SPI\u53f7,\u4f8b\u59820\nint CS \u7247\u9009\u811a,\u5728w600\u4e0d\u53ef\u7528\u8bf7\u586bnil\nint CPHA \u9ed8\u8ba40,\u53ef\u90090/1\nint CPOL \u9ed8\u8ba40,\u53ef\u90090/1\nint \u6570\u636e\u5bbd\u5ea6,\u9ed8\u8ba48bit\nint \u6ce2\u7279\u7387,\u9ed8\u8ba420M=20000000\nint \u5927\u5c0f\u7aef, \u9ed8\u8ba4spi.MSB, \u53ef\u9009spi.LSB\nint \u4e3b\u4ece\u8bbe\u7f6e, \u9ed8\u8ba4\u4e3b1, \u53ef\u9009\u4ece\u673a0. \u901a\u5e38\u53ea\u652f\u6301\u4e3b\u673a\u6a21\u5f0f\nint \u5de5\u4f5c\u6a21\u5f0f, \u5168\u53cc\u5de51, \u534a\u53cc\u5de50, \u9ed8\u8ba4\u5168\u53cc\u5de5\n\u8fd4\u56de\u503c\uff1a\nuserdata spi_device\n\u4f8b\u5b50\uff1a\n-- \u521d\u59cb\u5316spi\nlocal spi_device = spi.deviceSetup(0,17,0,0,8,2000000,spi.MSB,1,1)\n", "prefix": "spi.deviceSetup"}, "spi_device:close": {"body": "spi_device:close()", "description": "spi_device:close() - \u5173\u95ed\u6307\u5b9a\u7684SPI(\u5bf9\u8c61\u65b9\u5f0f)\n\u4f20\u5165\u503c\uff1a\nuserdata spi_device\n\u8fd4\u56de\u503c\uff1a\nint \u6210\u529f\u8fd4\u56de0,\u5426\u5219\u8fd4\u56de\u5176\u4ed6\u503c\n\u4f8b\u5b50\uff1a\n-- \u521d\u59cb\u5316spi\nspi_device.close()\n", "prefix": "spi_device:close"}, "spi_device:transfer": {"body": "spi_device:transfer(${1:send_data[},${2:len]})", "description": "spi_device:transfer(send_data[, len]) - \u4f20\u8f93SPI\u6570\u636e(\u5bf9\u8c61\u65b9\u5f0f)\n\u4f20\u5165\u503c\uff1a\nuserdata spi_device\nstring/zbuff \u5f85\u53d1\u9001\u7684\u6570\u636e\uff0c\u5982\u679c\u4e3azbuff\u6570\u636e\uff0c\u5219\u4f1a\u4ece\u5bf9\u8c61\u6240\u5904\u7684\u6307\u9488\u5904\u5f00\u59cb\u8bfb\nint \u53ef\u9009\u3002\u5f85\u53d1\u9001\u6570\u636e\u7684\u957f\u5ea6\uff0c\u9ed8\u8ba4\u4e3adata\u957f\u5ea6\nint \u53ef\u9009\u3002\u8bfb\u53d6\u6570\u636e\u7684\u957f\u5ea6\uff0c\u9ed8\u8ba4\u4e3a1\n\u8fd4\u56de\u503c\uff1a\nstring \u8bfb\u53d6\u6210\u529f\u8fd4\u56de\u5b57\u7b26\u4e32,\u5426\u5219\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\n-- \u521d\u59cb\u5316spi\nlocal spi_device = spi.device_setup(0,17,0,0,8,2000000,spi.MSB,1,1)\nlocal recv = spi_device:transfer(\"123\")--\u53d1\u9001123,\u5e76\u8bfb\u53d6\u6570\u636e\n\nlocal buff = zbuff.create(1024, 0x33) --\u521b\u5efa\u4e00\u4e2a\u521d\u503c\u5168\u4e3a0x33\u7684\u5185\u5b58\u533a\u57df\nlocal recv = spi_device:transfer(buff)--\u628azbuff\u6570\u636e\u4ece\u6307\u9488\u5f00\u59cb\uff0c\u5168\u53d1\u51fa\u53bb,\u5e76\u8bfb\u53d6\u6570\u636e\n", "prefix": "spi_device:transfer"}, "spi_device:send": {"body": "spi_device:send(${1:data[},${2:len]})", "description": "spi_device:send(data[, len]) - \u53d1\u9001SPI\u6570\u636e(\u5bf9\u8c61\u65b9\u5f0f)\n\u4f20\u5165\u503c\uff1a\nuserdata spi_device\nstring/zbuff \u5f85\u53d1\u9001\u7684\u6570\u636e\uff0c\u5982\u679c\u4e3azbuff\u6570\u636e\uff0c\u5219\u4f1a\u4ece\u5bf9\u8c61\u6240\u5904\u7684\u6307\u9488\u5904\u5f00\u59cb\u8bfb\n\u8fd4\u56de\u503c\uff1a\nint \u53d1\u9001\u7ed3\u679c\n\u4f8b\u5b50\uff1a\n-- \u521d\u59cb\u5316spi\nlocal spi_device = spi.device_setup(0,17,0,0,8,2000000,spi.MSB,1,1)\nlocal result = spi_device:send(\"123\")--\u53d1\u9001123\n\nlocal buff = zbuff.create(1024, 0x33) --\u521b\u5efa\u4e00\u4e2a\u521d\u503c\u5168\u4e3a0x33\u7684\u5185\u5b58\u533a\u57df\nlocal result = spi_device:send(buff)--\u628azbuff\u6570\u636e\u4ece\u6307\u9488\u5f00\u59cb\uff0c\u5168\u53d1\u51fa\u53bb\n", "prefix": "spi_device:send"}, "spi_device:recv": {"body": "spi_device:recv(${1:size})", "description": "spi_device:recv(size) - \u63a5\u6536\u6307\u5b9a\u957f\u5ea6\u7684SPI\u6570\u636e(\u5bf9\u8c61\u65b9\u5f0f)\n\u4f20\u5165\u503c\uff1a\nuserdata spi_device\nint \u6570\u636e\u957f\u5ea6\n\u8fd4\u56de\u503c\uff1a\nstring \u8bfb\u53d6\u6210\u529f\u8fd4\u56de\u5b57\u7b26\u4e32,\u5426\u5219\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\n-- \u521d\u59cb\u5316spi\nlocal spi_device = spi.device_setup(0,17,0,0,8,2000000,spi.MSB,1,1)\nlocal recv = spi_device:recv(4)--\u63a5\u65364\u5b57\u8282\u6570\u636e\n", "prefix": "spi_device:recv"}, "spi.xfer": {"body": "spi.xfer(${1:id},${2:txbuff},${3:rxbuff},${4:rx_len},${5:transfer_done_topic})", "description": "spi.xfer(id, txbuff, rxbuff, rx_len, transfer_done_topic) - \u975e\u963b\u585e\u65b9\u5f0f\u786c\u4ef6SPI\u4f20\u8f93SPI\u6570\u636e\uff0c\u76ee\u7684\u4e3a\u4e86\u63d0\u9ad8\u6838\u5fc3\u5229\u7528\u7387\u3002API\u76f4\u63a5\u8fd4\u56de\u662f\u5426\u542f\u52a8\u4f20\u8f93\uff0c\u4f20\u8f93\u5b8c\u6210\u540e\u901a\u8fc7topic\u56de\u8c03\uff0c\u672cAPI\u9002\u5408\u786c\u4ef6SPI\u4f20\u8f93\u5927\u91cf\u6570\u636e\u4f20\u8f93\uff0c\u5916\u8bbe\u529f\u80fd\uff08LCD SPI\uff0cW5500 SPI\u4e4b\u7c7b\u7684\uff09\u5360\u636e\u7684SPI\u548c\u8f6f\u4ef6SPI\u4e0d\u80fd\u7528\uff0c\u5c11\u91cf\u6570\u636e\u4f20\u8f93\u5efa\u8bae\u4f7f\u7528\u4f20\u7edf\u963b\u585e\u578bAPI\n\u4f20\u5165\u503c\uff1a\nuserdata or int spi_device\u6216\u8005spi_id\uff0c\u6ce8\u610f\uff0c\u5982\u679c\u662fspi_device\uff0c\u9700\u8981\u624b\u52a8\u5728\u4f20\u8f93\u5b8c\u6210\u540e\u62c9\u9ad8cs!!!!!!\nzbuff \u5f85\u53d1\u9001\u7684\u6570\u636e\uff0c\u5982\u679c\u4e3anil\uff0c\u5219\u53ea\u63a5\u6536\u6570\u636e\uff0c\u7531\u4e8e\u7528\u7684\u975e\u963b\u585e\u6a21\u578b\uff0c\u4e3a\u4fdd\u8bc1\u52a8\u6001\u6570\u636e\u7684\u6709\u6548\u6027\uff0c\u53ea\u80fd\u4f7f\u7528zbuff\uff0c\u53d1\u9001\u7684\u6570\u636e\u4ecezbuff.addr\nzbuff \u63a5\u6536\u6570\u636e\uff0c\u5982\u679c\u4e3anil\uff0c\u5219\u53ea\u53d1\u9001\u6570\u636e\uff0c\u7531\u4e8e\u7528\u7684\u975e\u963b\u585e\u6a21\u578b\uff0c\u4e3a\u4fdd\u8bc1\u52a8\u6001\u6570\u636e\u7684\u6709\u6548\u6027\uff0c\u53ea\u80fd\u4f7f\u7528zbuff\uff0c\u63a5\u6536\u7684\u6570\u636e\u4ecezbuff.addr\u5f00\u59cb\u5b58\u50a8\nint \u4f20\u8f93\u6570\u636e\u957f\u5ea6\uff0c\u7279\u522b\u8bf4\u660e \u5982\u679c\u4e3a\u534a\u53cc\u5de5\uff0c\u5148\u53d1\u540e\u6536\uff0c\u6bd4\u5982spi flash\u64cd\u4f5c\u8fd9\u79cd\uff0c\u5219\u957f\u5ea6=\u53d1\u9001\u5b57\u8282+\u63a5\u6536\u5b57\u8282\uff0c\u6ce8\u610f\u4e0a\u9762\u53d1\u9001\u548c\u63a5\u6536buff\u90fd\u8981\u7559\u8db3\u591f\u7684\u6570\u636e\uff0c\u540e\u7eed\u63a5\u6536\u6570\u636e\u5904\u7406\u9700\u8981\u8df3\u8fc7\u53d1\u9001\u6570\u636e\u957f\u5ea6\u5b57\u8282\nstring \u4f20\u8f93\u5b8c\u6210\u540e\u56de\u8c03\u7684topic\n\u8fd4\u56de\u503c\uff1a\nboolean true/false \u672c\u6b21\u4f20\u8f93\u662f\u5426\u6b63\u786e\u542f\u52a8\uff0ctrue\uff0c\u542f\u52a8\uff0cfalse\uff0c\u6709\u9519\u8bef\u65e0\u6cd5\u542f\u52a8\u3002\u4f20\u8f93\u5b8c\u6210\u4f1a\u53d1\u5e03\u6d88\u606ftransfer_done_topic\u548cboolean\u578b\u7ed3\u679c\n\u4f8b\u5b50\uff1a\nlocal result = spi.xfer(spi.SPI_0, txbuff, rxbuff, 1024, \"SPIDONE\") if result then result, spi_id, succ, error_code = sys.waitUntil(\"SPIDONE\") end if not result or not succ then log.info(\"spi fail, error code\", error_code) else log.info(\"spi ok\") end\n\n", "prefix": "spi.xfer"}, "statem.create": {"body": "statem.create(${1:count},${2:repeat})", "description": "statem.create(count, repeat) - \u521b\u5efa\u4e00\u4e2a\u65b0\u7684\u72b6\u6001\u673a.\n\u4f20\u5165\u503c\uff1a\nint \u6307\u4ee4\u6761\u6570,\u9ed8\u8ba432\u6761\nint \u91cd\u590d\u6267\u884c\u7684\u6b21\u6570, 0 \u4ee3\u8868\u4e0d\u91cd\u590d, \u6b63\u6574\u6570\u4ee3\u8868\u5177\u4f53\u91cd\u590d\u6267\u884c\u7684\u6b21\u6570. \u6682\u4e0d\u652f\u6301\u6c38\u7eed\u6267\u884c\n\u8fd4\u56de\u503c\uff1a\nsome \u82e5\u6210\u529f,\u8fd4\u56de\u72b6\u6001\u673a\u6307\u9488,\u5426\u5219\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\ngpio.setup(7, 0, gpio.PULLUP)\ngpio.setup(12, 0, gpio.PULLUP)\ngpio.setup(13, 0, gpio.PULLUP)\ngpio.setup(14, 0, gpio.PULLUP)\nlocal sm = statem.create()\n :gpio_set(7, 0) -- gpio\u8bbe\u7f6e\u4e3a\u4f4e\u7535\u5e73\n :usleep(10) -- \u4f11\u772010us\n :gpio_set(7, 1) -- gpio\u8bbe\u7f6e\u4e3a\u9ad8\u7535\u5e73\n :usleep(40) -- \u4f11\u772040us\n :gpio_set(12, 1) -- gpio\u8bbe\u7f6e\u4e3a\u9ad8\u7535\u5e73\n :gpio_set(13, 1) -- gpio\u8bbe\u7f6e\u4e3a\u9ad8\u7535\u5e73\n :gpio_set(14, 1) -- gpio\u8bbe\u7f6e\u4e3a\u9ad8\u7535\u5e73\n :usleep(40) -- \u4f11\u772040us\n :gpio_set(7, 0) -- gpio\u8bbe\u7f6e\u4e3a\u4f4e\u7535\u5e73\n :finish()\n\n-- \u6267\u884c\u4e4b,\u540e\u7eed\u4f1a\u652f\u6301\u540e\u53f0\u6267\u884c\nsm:exec()\n", "prefix": "statem.create"}, "string.toHex": {"body": "string.toHex(${1:str},${2:separator})", "description": "string.toHex(str, separator) - \u5c06\u5b57\u7b26\u4e32\u8f6c\u6210HEX\n\u4f20\u5165\u503c\uff1a\nstring \u9700\u8981\u8f6c\u6362\u7684\u5b57\u7b26\u4e32\nstring \u5206\u9694\u7b26, \u9ed8\u8ba4\u4e3a\"\"\n\u8fd4\u56de\u503c\uff1a\nstring HEX\u5b57\u7b26\u4e32\nnumber HEX\u5b57\u7b26\u4e32\u7684\u957f\u5ea6\n\u4f8b\u5b50\uff1a\nstring.toHex(\"\\1\\2\\3\") --> \"010203\" 6\nstring.toHex(\"123abc\") --> \"313233616263\" 12\nstring.toHex(\"123abc\", \" \") --> \"31 32 33 61 62 63 \" 12\n", "prefix": "string.toHex"}, "string.fromHex": {"body": "string.fromHex(${1:hex})", "description": "string.fromHex(hex) - \u5c06HEX\u8f6c\u6210\u5b57\u7b26\u4e32\n\u4f20\u5165\u503c\uff1a\nstring hex,16\u8fdb\u5236\u7ec4\u6210\u7684\u4e32\n\u8fd4\u56de\u503c\uff1a\nstring \u5b57\u7b26\u4e32\n\u4f8b\u5b50\uff1a\nstring.fromHex(\"010203\") --> \"\\1\\2\\3\"\nstring.fromHex(\"313233616263\") --> \"123abc\"\n", "prefix": "string.fromHex"}, "string.split": {"body": "string.split(${1:str},${2:delimiter},${3:keepEmtry})", "description": "string.split(str, delimiter, keepEmtry) - \u6309\u7167\u6307\u5b9a\u5206\u9694\u7b26\u5206\u5272\u5b57\u7b26\u4e32\n\u4f20\u5165\u503c\uff1a\nstring \u8f93\u5165\u5b57\u7b26\u4e32\nstring \u5206\u9694\u7b26,\u53ef\u9009,\u9ed8\u8ba4 \",\"\nbool \u662f\u5426\u4fdd\u7559\u7a7a\u767d\u7247\u6bb5,\u9ed8\u8ba4\u4e3afalse,\u4e0d\u4fdd\u7559. 2023.4.11\u4e4b\u540e\u7684\u56fa\u4ef6\u53ef\u7528\n\u8fd4\u56de\u503c\uff1a\ntable \u5206\u5272\u540e\u7684\u5b57\u7b26\u4e32\u8868\n\u4f8b\u5b50\uff1a\nlocal tmp = string.split(\"123,233333,122\")\nlog.info(\"tmp\", json.encode(tmp))\nlocal tmp = (\"123,456,789\"):split(',') --> {'123','456','789'}\nlog.info(\"tmp\", json.encode(tmp))\n\n-- \u4fdd\u7559\u7a7a\u7247\u6bb5, 2023.4.11\u4e4b\u540e\u7684\u56fa\u4ef6\u53ef\u7528\nlocal str = \"/tmp//def/1234/\"\nlocal tmp = str:split(\"/\", true) \nlog.info(\"str.split\", #tmp, json.encode(tmp))\n", "prefix": "string.split"}, "string.toValue": {"body": "string.toValue(${1:str})", "description": "string.toValue(str) - \u8fd4\u56de\u5b57\u7b26\u4e32tonumber\u7684\u8f6c\u4e49\u5b57\u7b26\u4e32(\u7528\u6765\u652f\u6301\u8d85\u8fc731\u4f4d\u6574\u6570\u7684\u8f6c\u6362)\n\u4f20\u5165\u503c\uff1a\nstring \u8f93\u5165\u5b57\u7b26\u4e32\n\u8fd4\u56de\u503c\uff1a\nstring \u8f6c\u6362\u540e\u7684\u4e8c\u8fdb\u5236\u5b57\u7b26\u4e32\nnumber \u8f6c\u6362\u4e86\u591a\u5c11\u4e2a\u5b57\u7b26\n\u4f8b\u5b50\uff1a\nstring.toValue(\"123456\") --> \"\\1\\2\\3\\4\\5\\6\" 6\nstring.toValue(\"123abc\") --> \"\\1\\2\\3\\a\\b\\c\" 6\n", "prefix": "string.toValue"}, "string.urlEncode": {"body": "string.urlEncode(${1:\"123abc\"})", "description": "string.urlEncode(\"123 abc\") - \u5c06\u5b57\u7b26\u4e32\u8fdb\u884curl\u7f16\u7801\u8f6c\u6362\n\u4f20\u5165\u503c\uff1a\nstring \u9700\u8981\u8f6c\u6362\u7684\u5b57\u7b26\u4e32\n", "prefix": "string.urlEncode"}, "string.toBase64": {"body": "string.toBase64(${1:str})", "description": "string.toBase64(str) - \u5c06\u5b57\u7b26\u4e32\u8fdb\u884cbase64\u7f16\u7801\n\u4f20\u5165\u503c\uff1a\nstring \u9700\u8981\u8f6c\u6362\u7684\u5b57\u7b26\u4e32\n\u8fd4\u56de\u503c\uff1a\nstring \u89e3\u7801\u540e\u7684\u5b57\u7b26\u4e32,\u5982\u679c\u89e3\u7801\u5931\u8d25\u4f1a\u8fd4\u56de\u7a7a\u5b57\u7b26\u4e32\n", "prefix": "string.toBase64"}, "string.fromBase64": {"body": "string.fromBase64(${1:str})", "description": "string.fromBase64(str) - \u5c06\u5b57\u7b26\u4e32\u8fdb\u884cbase64\u89e3\u7801\n\u4f20\u5165\u503c\uff1a\nstring \u9700\u8981\u8f6c\u6362\u7684\u5b57\u7b26\u4e32\n\u8fd4\u56de\u503c\uff1a\nstring \u89e3\u7801\u540e\u7684\u5b57\u7b26\u4e32,\u5982\u679c\u89e3\u7801\u5931\u8d25\u4f1a\u8fd4\u56de\u7a7a\u5b57\u7b26\u4e32\n", "prefix": "string.fromBase64"}, "string.toBase32": {"body": "string.toBase32(${1:str})", "description": "string.toBase32(str) - \u5c06\u5b57\u7b26\u4e32\u8fdb\u884cbase32\u7f16\u7801\n\u4f20\u5165\u503c\uff1a\nstring \u9700\u8981\u8f6c\u6362\u7684\u5b57\u7b26\u4e32\n\u8fd4\u56de\u503c\uff1a\nstring \u89e3\u7801\u540e\u7684\u5b57\u7b26\u4e32,\u5982\u679c\u89e3\u7801\u5931\u8d25\u4f1a\u8fd4\u56de0\u957f\u5ea6\u5b57\u7b26\u4e32\n", "prefix": "string.toBase32"}, "string.fromBase32": {"body": "string.fromBase32(${1:str})", "description": "string.fromBase32(str) - \u5c06\u5b57\u7b26\u4e32\u8fdb\u884cbase32\u89e3\u7801\n\u4f20\u5165\u503c\uff1a\nstring \u9700\u8981\u8f6c\u6362\u7684\u5b57\u7b26\u4e32\n\u8fd4\u56de\u503c\uff1a\nstring \u89e3\u7801\u540e\u7684\u5b57\u7b26\u4e32,\u5982\u679c\u89e3\u7801\u5931\u8d25\u4f1a\u8fd4\u56de0\u957f\u5ea6\u5b57\u7b26\u4e32\n", "prefix": "string.fromBase32"}, "string.startsWith": {"body": "string.startsWith(${1:str},${2:prefix})", "description": "string.startsWith(str, prefix) - \u5224\u65ad\u5b57\u7b26\u4e32\u524d\u7f00\n\u4f20\u5165\u503c\uff1a\nstring \u9700\u8981\u68c0\u67e5\u7684\u5b57\u7b26\u4e32\nstring \u524d\u7f00\u5b57\u7b26\u4e32\n\u8fd4\u56de\u503c\uff1a\nbool \u771f\u4e3atrue, \u5047\u4e3afalse\n\u4f8b\u5b50\uff1a\nlocal str = \"abc\"\nlog.info(\"str\", str:startsWith(\"a\"))\nlog.info(\"str\", str:startsWith(\"b\"))\n", "prefix": "string.startsWith"}, "string.endsWith": {"body": "string.endsWith(${1:str},${2:suffix})", "description": "string.endsWith(str, suffix) - \u5224\u65ad\u5b57\u7b26\u4e32\u540e\u7f00\n\u4f20\u5165\u503c\uff1a\nstring \u9700\u8981\u68c0\u67e5\u7684\u5b57\u7b26\u4e32\nstring \u540e\u7f00\u5b57\u7b26\u4e32\n\u8fd4\u56de\u503c\uff1a\nbool \u771f\u4e3atrue, \u5047\u4e3afalse\n\u4f8b\u5b50\uff1a\nlocal str = \"abc\"\nlog.info(\"str\", str:endsWith(\"c\"))\nlog.info(\"str\", str:endsWith(\"b\"))\n", "prefix": "string.endsWith"}, "string.trim": {"body": "string.trim(${1:str},${2:ltrim},${3:rtrim})", "description": "string.trim(str, ltrim, rtrim) - \u88c1\u526a\u5b57\u7b26\u4e32,\u53bb\u9664\u5934\u5c3e\u7684\u7a7a\u683c\n\u4f20\u5165\u503c\uff1a\nstring \u9700\u8981\u5904\u7406\u7684\u5b57\u7b26\u4e32\nbool \u6e05\u7406\u524d\u7f00,\u9ed8\u8ba4\u4e3atrue\nbool \u6e05\u7406\u540e\u7f00,\u9ed8\u8ba4\u4e3atrue\n\u8fd4\u56de\u503c\uff1a\nstring \u6e05\u7406\u540e\u7684\u5b57\u7b26\u4e32\n\u4f8b\u5b50\uff1a\nlocal str = \"\\r\\nabc\\r\\n\"\nlog.info(\"str\", string.trim(str)) -- \u6253\u5370 \"abc\"\nlog.info(\"str\", str:trim()) -- \u6253\u5370 \"abc\"\nlog.info(\"str\", #string.trim(str, false, true)) -- \u4ec5\u88c1\u526a\u540e\u7f00,\u6240\u4ee5\u957f\u5ea6\u662f5\n", "prefix": "string.trim"}, "sys.wait": {"body": "sys.wait(${1:timeout})", "description": "sys.wait(timeout) - Task\u534f\u7a0b\u7b49\u5f85\u6307\u5b9a\u65f6\u957f\n\u4f20\u5165\u503c\uff1a\nint \u7b49\u5f85\u65f6\u957f,\u5355\u4f4d\u6beb\u79d2,\u5fc5\u987b\u5927\u4e8e0,\u5426\u5219\u65e0\u6548\n\u8fd4\u56de\u503c\uff1a\nany \u901a\u5e38\u4e3anil,\u9664\u975e\u4e3b\u52a8\u88ab\u5524\u9192(\u901a\u5e38\u4e0d\u4f1a)\n\u4f8b\u5b50\uff1a\nsys.taskInit(function()\n while 1 do\n sys.wait(500)\n end\nend)\n", "prefix": "sys.wait"}, "sys.waitUntil": {"body": "sys.waitUntil(${1:topic},${2:timeout})", "description": "sys.waitUntil(topic, timeout) - Task\u534f\u7a0b\u7b49\u5f85\u6307\u5b9a\u65f6\u957f\u6216\u8005\u7279\u5b9a\u7684topic\n\u4f20\u5165\u503c\uff1a\nstring \u4e8b\u4ef6topic\nint \u7b49\u5f85\u65f6\u957f,\u5355\u4f4d\u6beb\u79d2,\u5fc5\u987b\u5927\u4e8e0,\u5426\u5219\u65e0\u6548\n\u8fd4\u56de\u503c\uff1a\nboolean \u5982\u679c\u662f\u8d85\u65f6,\u8fd4\u56defalse,\u5426\u5219\u8fd4\u56detrue\nany \u5bf9\u5e94topic\u7684\u5185\u5bb9\n\u4f8b\u5b50\uff1a\nsys.taskInit(function()\n // do something\n local result, data = sys.waitUntil(\"NET_READY\", 30000)\n // do something else\nend)\n", "prefix": "sys.waitUntil"}, "sys.taskInit": {"body": "sys.taskInit(${1:func},${2:arg1},${3:arg2},${4:argN})", "description": "sys.taskInit(func, arg1, arg2, argN) - \u521b\u5efa\u4e00\u4e2aTask\u534f\u7a0b\n\u4f20\u5165\u503c\uff1a\nfunction \u5f85\u6267\u884c\u7684\u51fd\u6570,\u53ef\u4ee5\u662f\u533f\u540d\u51fd\u6570, \u4e5f\u53ef\u4ee5\u662flocal\u6216\u5168\u5c40\u51fd\u6570\nany \u9700\u8981\u4f20\u9012\u7684\u53c2\u65701,\u53ef\u9009 \nany \u9700\u8981\u4f20\u9012\u7684\u53c2\u65702,\u53ef\u9009 \nany \u9700\u8981\u4f20\u9012\u7684\u53c2\u6570N,\u53ef\u9009 \n\u8fd4\u56de\u503c\uff1a\ntask \u534f\u7a0b\u5bf9\u8c61\n\u4f8b\u5b50\uff1a\nsys.taskInit(function(a, b, c)\n log.info(\"task\", a, b, c) -- \u6253\u5370 task A B C\nend, \"A\", \"B\", \"N\")\n", "prefix": "sys.taskInit"}, "sys.timerStart": {"body": "sys.timerStart(${1:func},${2:timeout},${3:arg1},${4:arg2},${5:argN})", "description": "sys.timerStart(func, timeout, arg1, arg2, argN) - \u521b\u5efa\u4e00\u4e2a\u5b9a\u65f6\u5668.\u975eTask,\u51fd\u6570\u91cc\u4e0d\u80fd\u76f4\u63a5sys.waitXXX\n\u4f20\u5165\u503c\uff1a\nfunction \u5f85\u6267\u884c\u7684\u51fd\u6570,\u53ef\u4ee5\u662f\u533f\u540d\u51fd\u6570, \u4e5f\u53ef\u4ee5\u662flocal\u6216\u5168\u5c40\u51fd\u6570\nint \u5ef6\u65f6\u65f6\u957f,\u5355\u4f4d\u6beb\u79d2\nany \u9700\u8981\u4f20\u9012\u7684\u53c2\u65701,\u53ef\u9009 \nany \u9700\u8981\u4f20\u9012\u7684\u53c2\u65702,\u53ef\u9009 \nany \u9700\u8981\u4f20\u9012\u7684\u53c2\u6570N,\u53ef\u9009 \n\u8fd4\u56de\u503c\uff1a\nint \u5b9a\u65f6\u5668id\n\u4f8b\u5b50\uff1a\nsys.timerStart(function(a, b, c)\n log.info(\"task\", a, b, c) -- 1000\u6beb\u79d2\u540e\u624d\u4f1a\u6267\u884c, \u6253\u5370 task A B C\nend, 1000, \"A\", \"B\", \"N\")\n", "prefix": "sys.timerStart"}, "sys.timerLoopStart": {"body": "sys.timerLoopStart(${1:func},${2:timeout},${3:arg1},${4:arg2},${5:argN})", "description": "sys.timerLoopStart(func, timeout, arg1, arg2, argN) - \u521b\u5efa\u4e00\u4e2a\u5faa\u73af\u5b9a\u65f6\u5668.\u975eTask,\u51fd\u6570\u91cc\u4e0d\u80fd\u76f4\u63a5sys.waitXXX\n\u4f20\u5165\u503c\uff1a\nfunction \u5f85\u6267\u884c\u7684\u51fd\u6570,\u53ef\u4ee5\u662f\u533f\u540d\u51fd\u6570, \u4e5f\u53ef\u4ee5\u662flocal\u6216\u5168\u5c40\u51fd\u6570\nint \u5ef6\u65f6\u65f6\u957f,\u5355\u4f4d\u6beb\u79d2\nany \u9700\u8981\u4f20\u9012\u7684\u53c2\u65701,\u53ef\u9009 \nany \u9700\u8981\u4f20\u9012\u7684\u53c2\u65702,\u53ef\u9009 \nany \u9700\u8981\u4f20\u9012\u7684\u53c2\u6570N,\u53ef\u9009 \n\u8fd4\u56de\u503c\uff1a\nint \u5b9a\u65f6\u5668id\n\u4f8b\u5b50\uff1a\nsys.timerLoopStart(function(a, b, c)\n log.info(\"task\", a, b, c) -- 1000\u6beb\u79d2\u540e\u624d\u4f1a\u6267\u884c, \u6253\u5370 task A B C\nend, 1000, \"A\", \"B\", \"N\")\n", "prefix": "sys.timerLoopStart"}, "sys.timerStop": {"body": "sys.timerStop(${1:id})", "description": "sys.timerStop(id) - \u5173\u95ed\u4e00\u4e2a\u5b9a\u65f6\u5668.\n\u4f20\u5165\u503c\uff1a\nint \u5b9a\u65f6\u5668id\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\nlocal tcount = 0\nlocal tid \ntid = sys.timerLoopStart(function(a, b, c)\n log.info(\"task\", a, b, c) -- 1000\u6beb\u79d2\u540e\u624d\u4f1a\u6267\u884c, \u6253\u5370 task A B C\n if tcount > 10 then\n sys.timerStop(tid)\n end\n tcount = tcount + 1\nend, 1000, \"A\", \"B\", \"N\")\n", "prefix": "sys.timerStop"}, "sys.publish": {"body": "sys.publish(${1:topic},${2:arg1},${3:agr2},${4:argN})", "description": "sys.publish(topic, arg1, agr2, argN) - \u5f80\u7279\u5b9atopic\u901a\u9053\u53d1\u5e03\u4e00\u4e2a\u6d88\u606f\n\u4f20\u5165\u503c\uff1a\nstring topic\u7684\u503c\nany \u9644\u5e26\u7684\u53c2\u65701\nany \u9644\u5e26\u7684\u53c2\u65702\nany \u9644\u5e26\u7684\u53c2\u6570N\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\nsys.publish(\"BT_READY\", false)\n", "prefix": "sys.publish"}, "sys.subscribe": {"body": "sys.subscribe(${1:topic},${2:func})", "description": "sys.subscribe(topic, func) - \u8ba2\u9605\u4e00\u4e2atopic\u901a\u9053\n\u4f20\u5165\u503c\uff1a\nstring topic\u7684\u503c\nfunction \u56de\u8c03\u51fd\u6570, \u6ce8\u610f, \u4e0d\u80fd\u76f4\u63a5\u4f7f\u7528sys.waitXXX\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\nlocal function bt_cb(state)\n log.info(\"bt\", state)\nend\nsys.subscribe(\"BT_READY\", bt_cb)\nsys.subscribe(\"BT_READY\", function(state)\n log.info(\"sys\", \"Got BT_READY\", state)\nend)\n", "prefix": "sys.subscribe"}, "sys.unsubscribe": {"body": "sys.unsubscribe(${1:topic},${2:func})", "description": "sys.unsubscribe(topic, func) - \u53d6\u6d88\u8ba2\u9605topic\u901a\u9053\n\u4f20\u5165\u503c\uff1a\nstring topic\u7684\u503c\nfunction \u56de\u8c03\u51fd\u6570, \u6ce8\u610f, \u4e0d\u80fd\u76f4\u63a5\u4f7f\u7528sys.waitXXX\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\nlocal function bt_cb(state)\n log.info(\"bt\", state)\nend\nsys.unsubscribe(\"BT_READY\", bt_cb)\n", "prefix": "sys.unsubscribe"}, "sys.run": {"body": "sys.run()", "description": "sys.run() - sys\u5e93\u4e3b\u5faa\u73af\u65b9\u6cd5,\u4ec5\u5141\u8bb8\u5728main.lua\u7684\u672b\u5c3e\u8c03\u7528\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c. \u8fd9\u4e2a\u65b9\u6cd5\u51e0\u4e4e\u4e0d\u53ef\u80fd\u8fd4\u56de.\n\u4f8b\u5b50\uff1a\n-- \u603b\u662fmain.lua\u7684\u7ed3\u5c3e\u4e00\u53e5,\u5c06\u6765\u4e5f\u8bb8\u4f1a\u7b80\u5316\u6389\nsys.run()\n-- \u4e4b\u540e\u7684\u4ee3\u7801\u4e0d\u4f1a\u88ab\u6267\u884c\n", "prefix": "sys.run"}, "sysplus.waitMsg": {"body": "sysplus.waitMsg(${1:taskName},${2:target},${3:timeout})", "description": "sysplus.waitMsg(taskName, target, timeout) - \u7b49\u5f85\u63a5\u6536\u4e00\u4e2a\u76ee\u6807\u6d88\u606f\n\u4f20\u5165\u503c\uff1a\nstring \u4efb\u52a1\u540d\u79f0\uff0c\u7528\u4e8e\u5524\u9192\u4efb\u52a1\u7684id\nstring \u76ee\u6807\u6d88\u606f\uff0c\u5982\u679c\u4e3anil\uff0c\u5219\u8868\u793a\u63a5\u6536\u5230\u4efb\u610f\u6d88\u606f\u90fd\u4f1a\u9000\u51fa\nint \u8d85\u65f6\u65f6\u95f4\uff0c\u5982\u679c\u4e3anil\uff0c\u5219\u8868\u793a\u65e0\u8d85\u65f6\uff0c\u6c38\u8fdc\u7b49\u5f85\n\u8fd4\u56de\u503c\uff1a\ntable \u6210\u529f\u8fd4\u56detable\u578b\u7684msg\uff0c\u8d85\u65f6\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- \u7b49\u5f85\u4efb\u52a1\nsysplus.waitMsg('a', 'b', 1000)\n-- \u6ce8\u610f, \u672c\u51fd\u6570\u4f1a\u81ea\u52a8\u6ce8\u518c\u6210\u5168\u5c40\u51fd\u6570 sys_wait\n", "prefix": "sysplus.waitMsg"}, "sysplus.sendMsg": {"body": "sysplus.sendMsg(${1:taskName},${2:target},${3:arg2},${4:arg3},${5:arg4})", "description": "sysplus.sendMsg(taskName, target, arg2, arg3, arg4) - \u5411\u76ee\u6807\u4efb\u52a1\u53d1\u9001\u4e00\u4e2a\u6d88\u606f\n\u4f20\u5165\u503c\uff1a\nstring \u4efb\u52a1\u540d\u79f0\uff0c\u7528\u4e8e\u5524\u9192\u4efb\u52a1\u7684id\nany \u6d88\u606f\u4e2d\u7684\u53c2\u65701\uff0c\u540c\u65f6\u4e5f\u662fwaitMsg\u91cc\u7684target\nany \u6d88\u606f\u4e2d\u7684\u53c2\u65702\nany \u6d88\u606f\u4e2d\u7684\u53c2\u65703\nany \u6d88\u606f\u4e2d\u7684\u53c2\u65704\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue, \u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- \u5411\u4efb\u52a1a,\u76ee\u6807b\u53d1\u9001\u6d88\u606f\nsysplus.sendMsg('a', 'b')\n-- \u6ce8\u610f, \u672c\u51fd\u6570\u4f1a\u81ea\u52a8\u6ce8\u518c\u6210\u5168\u5c40\u51fd\u6570 sys_send\n", "prefix": "sysplus.sendMsg"}, "sysplus.taskInitEx": {"body": "sysplus.taskInitEx(${1:fun},${2:taskName},${3:cbFun},${4:...})", "description": "sysplus.taskInitEx(fun, taskName, cbFun, ...) - \u521b\u5efa\u4e00\u4e2a\u4efb\u52a1\u7ebf\u7a0b,\u5728\u6a21\u5757\u6700\u672b\u884c\u8c03\u7528\u8be5\u51fd\u6570\u5e76\u6ce8\u518c\u6a21\u5757\u4e2d\u7684\u4efb\u52a1\u51fd\u6570,main.lua\u5bfc\u5165\u8be5\u6a21\u5757\u5373\u53ef\n\u4f20\u5165\u503c\uff1a\nfunction \u4efb\u52a1\u51fd\u6570\u540d,\u7528\u4e8eresume\u5524\u9192\u65f6\u8c03\u7528\nstring \u4efb\u52a1\u540d\u79f0,\u7528\u4e8e\u5524\u9192\u4efb\u52a1\u7684id\nfunction \u63a5\u6536\u5230\u975e\u76ee\u6807\u6d88\u606f\u65f6\u7684\u56de\u8c03\u51fd\u6570\nany ... \u4efb\u52a1\u51fd\u6570fun\u7684\u53ef\u53d8\u53c2\u6570\n\u8fd4\u56de\u503c\uff1a\nnumber \u8fd4\u56de\u8be5\u4efb\u52a1\u7684\u7ebf\u7a0b\u53f7\n\u4f8b\u5b50\uff1a\nsysplus.taskInitEx(task1,'a',callback)\n", "prefix": "sysplus.taskInitEx"}, "sysplus.taskDel": {"body": "sysplus.taskDel(${1:taskName})", "description": "sysplus.taskDel(taskName) - \u5220\u9664\u7531taskInitEx\u521b\u5efa\u7684\u4efb\u52a1\u7ebf\u7a0b\n\u4f20\u5165\u503c\uff1a\nstring \u4efb\u52a1\u540d\u79f0,\u7528\u4e8e\u5524\u9192\u4efb\u52a1\u7684id\n\u4f8b\u5b50\uff1a\nsysplus.taskDel('a')\n", "prefix": "sysplus.taskDel"}, "sysplus.cleanMsg": {"body": "sysplus.cleanMsg(${1:taskName})", "description": "sysplus.cleanMsg(taskName) - \u6e05\u9664\u6307\u5b9atask\u7684\u6d88\u606f\u961f\u5217\n\u4f20\u5165\u503c\uff1a\nstring \u4efb\u52a1\u540d\u79f0\n\u4f8b\u5b50\uff1a\nsysplus.cleanMsg('a')\n", "prefix": "sysplus.cleanMsg"}, "timer.mdelay": {"body": "timer.mdelay(${1:timeout})", "description": "timer.mdelay(timeout) - \u786c\u963b\u585e\u6307\u5b9a\u65f6\u957f\n\u4f20\u5165\u503c\uff1a\nint \u963b\u585e\u65f6\u957f,\u5355\u4f4dms, \u6700\u9ad81024ms, \u5b9e\u9645\u4f7f\u7528\u5f3a\u70c8\u5efa\u8bae\u4e0d\u8981\u8d85\u8fc7200ms\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n-- \u671f\u95f4\u6ca1\u6709\u4efb\u4f55luat\u4ee3\u7801\u4f1a\u6267\u884c,\u5305\u62ec\u5e95\u5c42\u6d88\u606f\u5904\u7406\u673a\u5236\n-- \u672c\u65b9\u6cd5\u901a\u5e38\u4e0d\u4f1a\u4f7f\u7528,\u9664\u975e\u4f60\u5f88\u6e05\u695a\u4f1a\u53d1\u751f\u4ec0\u4e48\ntimer.mdelay(10)\n", "prefix": "timer.mdelay"}, "timer.udelay": {"body": "timer.udelay(${1:timeout})", "description": "timer.udelay(timeout) - \u786c\u963b\u585e\u6307\u5b9a\u65f6\u957f\u4f46us\u7ea7\u522b,\u4e0d\u4f1a\u5f88\u7cbe\u51c6\n\u4f20\u5165\u503c\uff1a\nint \u963b\u585e\u65f6\u957f,\u5355\u4f4dus, \u6700\u59273000us\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n-- \u672c\u65b9\u6cd5\u901a\u5e38\u4e0d\u4f1a\u4f7f\u7528,\u9664\u975e\u4f60\u5f88\u6e05\u695a\u4f1a\u53d1\u751f\u4ec0\u4e48\n-- \u672cAPI\u5728 2023.05.18 \u6dfb\u52a0\ntimer.udelay(10)\n-- \u5b9e\u9645\u963b\u585e\u65f6\u957f\u662f\u6709\u6ce2\u52a8\u7684\n", "prefix": "timer.udelay"}, "touchkey.setup": {"body": "touchkey.setup(${1:id},${2:scan_period},${3:window},${4:threshold})", "description": "touchkey.setup(id, scan_period, window, threshold) - \u914d\u7f6e\u89e6\u6478\u6309\u952e\n\u4f20\u5165\u503c\uff1a\nint \u4f20\u611f\u5668id,\u8bf7\u67e5\u9605\u786c\u4ef6\u6587\u6863, \u4f8b\u5982air101/air103\u652f\u6301 1~15, \u4f8b\u5982PA7\u5bf9\u5e94touch id=1\nint \u626b\u63cf\u95f4\u9694,\u8303\u56f41 ~ 0x3F, \u5355\u4f4d16ms,\u53ef\u9009\nint \u626b\u63cf\u7a97\u53e3,\u8303\u56f42-7, \u53ef\u9009\nint \u9600\u503c, \u8303\u56f40-127, \u53ef\u9009\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue, \u5931\u8d25\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\ntouchkey.setup(1)\nsys.subscribe(\"TOUCHKEY_INC\", function(id, count)\n -- \u4f20\u611f\u5668id\n -- \u8ba1\u6570\u5668,\u89e6\u6478\u6b21\u6570\u7edf\u8ba1\n log.info(\"touchkey\", id, count)\nend)\n", "prefix": "touchkey.setup"}, "touchkey.close": {"body": "touchkey.close(${1:id})", "description": "touchkey.close(id) - \u5173\u95ed\u521d\u59cb\u89e6\u6478\u6309\u952e\n\u4f20\u5165\u503c\uff1a\nint \u4f20\u611f\u5668id,\u8bf7\u67e5\u9605\u786c\u4ef6\u6587\u6863\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n-- \u4e0d\u592a\u53ef\u80fd\u9700\u8981\u5173\u6389\u7684\u6837\u5b50\ntouchkey.close(1)\n", "prefix": "touchkey.close"}, "u8g2.begin": {"body": "u8g2.begin(${1:conf})", "description": "u8g2.begin(conf) - u8g2\u663e\u793a\u5c4f\u521d\u59cb\u5316\n\u4f20\u5165\u503c\uff1a\ntable conf \u914d\u7f6e\u4fe1\u606f ic:\u652f\u6301 custom(\u81ea\u5b9a\u4e49\u547d\u4ee4) ssd1306(\u9ed8\u8ba4) ssd1309 ssd1322 sh1106 sh1107 sh1108 st7567 uc1701 ssd1306_128x32, direction:\u65b9\u5411,\u53ef\u90090 90 180 270 \u9ed8\u8ba40 mode:\u6a21\u5f0f,\u53ef\u9009i2c_sw:\u8f6f\u4ef6i2c i2c_hw:\u786c\u4ef6i2c spi_hw_4pin:\u786c\u4ef6spi i2c_id:\u786c\u4ef6i2c\u65f6\u6709\u6548 i2c_scl=1\u3001i2c_sda:\u8f6f\u4ef6i2c\u65f6\u6709\u6548 spi_id\u3001spi_res\u3001spi_dc\u3001spi_cs:\u786c\u4ef6spi\u65f6\u751f\u6548\n\u8fd4\u56de\u503c\uff1a\nint \u6b63\u5e38\u521d\u59cb\u53161,\u5df2\u7ecf\u521d\u59cb\u5316\u8fc72,\u5185\u5b58\u4e0d\u591f3,\u521d\u59cb\u5316\u5931\u8d25\u8fd4\u56de4\n\u4f8b\u5b50\uff1a\n-- \u521d\u59cb\u5316\u786c\u4ef6i2c\u7684ssd1306\nu8g2.begin({ic = \"ssd1306\",direction = 0,mode=\"i2c_hw\",i2c_id=0}) -- direction \u53ef\u90090 90 180 270\n-- \u521d\u59cb\u5316\u786c\u4ef6spi\u7684ssd1306\nu8g2.begin({ic = \"ssd1306\",direction = 0,mode=\"spi_hw_4pin\",spi_id=0,spi_res=pin.PB03,spi_dc=pin.PB01,spi_cs=pin.PB04}) -- direction \u53ef\u90090 90 180 270\n-- \u521d\u59cb\u5316\u8f6f\u4ef6i2c\u7684ssd1306\nu8g2.begin({ic = \"ssd1306\",direction = 0,mode=\"i2c_sw\", i2c_scl=1, i2c_sda=4}) -- \u901a\u8fc7PA1 SCL / PA4 SDA\u6a21\u62df\n\n", "prefix": "u8g2.begin"}, "u8g2.close": {"body": "u8g2.close()", "description": "u8g2.close() - \u5173\u95ed\u663e\u793a\u5c4f\n\u4f8b\u5b50\uff1a\n-- \u5173\u95eddisp,\u518d\u6b21\u4f7f\u7528disp\u76f8\u5173API\u7684\u8bdd,\u9700\u8981\u91cd\u65b0\u521d\u59cb\u5316\nu8g2.close()\n", "prefix": "u8g2.close"}, "u8g2.ClearBuffer": {"body": "u8g2.ClearBuffer()", "description": "u8g2.ClearBuffer() - \u6e05\u5c4f\uff0c\u6e05\u9664\u5185\u5b58\u5e27\u7f13\u51b2\u533a\u4e2d\u7684\u6240\u6709\u50cf\u7d20\n\u4f8b\u5b50\uff1a\n-- \u6e05\u5c4f\nu8g2.ClearBuffer()\n", "prefix": "u8g2.ClearBuffer"}, "u8g2.SendBuffer": {"body": "u8g2.SendBuffer()", "description": "u8g2.SendBuffer() - \u5c06\u6570\u636e\u66f4\u65b0\u5230\u5c4f\u5e55\uff0c\u5c06\u5b58\u50a8\u5668\u5e27\u7f13\u51b2\u533a\u7684\u5185\u5bb9\u53d1\u9001\u5230\u663e\u793a\u5668\n\u4f8b\u5b50\uff1a\n-- \u628a\u663e\u793a\u6570\u636e\u66f4\u65b0\u5230\u5c4f\u5e55\nu8g2.SendBuffer()\n", "prefix": "u8g2.SendBuffer"}, "u8g2.DrawUTF8": {"body": "u8g2.DrawUTF8(${1:str},${2:x},${3:y})", "description": "u8g2.DrawUTF8(str, x, y) - \u5728\u663e\u793a\u5c4f\u4e0a\u753b\u4e00\u6bb5\u6587\u5b57\uff0c\u5728\u663e\u793a\u5c4f\u4e0a\u753b\u4e00\u6bb5\u6587\u5b57,\u8981\u8c03\u7528u8g2.SendBuffer()\u624d\u4f1a\u66f4\u65b0\u5230\u5c4f\u5e55\n\u4f20\u5165\u503c\uff1a\nstring \u6587\u4ef6\u5185\u5bb9\nint \u6a2a\u5750\u6807\nint \u7ad6\u5750\u6807\n\u4f8b\u5b50\uff1a\nu8g2.DrawUTF8(\"wifi is ready\", 10, 20)\n", "prefix": "u8g2.DrawUTF8"}, "u8g2.DrawButtonUTF8": {"body": "u8g2.DrawButtonUTF8(${1:str},${2:x},${3:y},${4:flags},${5:w},${6:h},${7:v},${8:str})", "description": "u8g2.DrawButtonUTF8(str, x, y, flags, w, h, v, str) - \u5728\u63d0\u4f9b\u7684\u6587\u672c\u5468\u56f4\u753b\u4e00\u4e2a\u6846\u3002\u8fd9\u4e0e DrawUTF8 \u7c7b\u4f3c\uff0c\u4f46\u4e3a\u6587\u672c\u6dfb\u52a0\u4e86\u4e00\u4e9b\u88c5\u9970\u3002,\u8981\u8c03\u7528u8g2.SendBuffer()\u624d\u4f1a\u66f4\u65b0\u5230\u5c4f\u5e55\n\u4f20\u5165\u503c\uff1a\nstring \u6587\u4ef6\u5185\u5bb9\nint \u6a2a\u5750\u6807\nint \u7ad6\u5750\u6807\nint \u6807\u5fd7 \u591a\u4e2a\u6807\u5fd7\u53ef\u4ee5\u4e0e\u201c\u6216\u201d\u8fd0\u7b97\u7b26\u4e00\u8d77\u4f7f\u7528\u3002\nint \u6587\u672c\u7684\u6700\u5c0f\u5bbd\u5ea6\u3002\u5982\u679c\u4e3a0\uff08\u6216\u4f4e\u4e8e\u6587\u672c\u5bbd\u5ea6\uff09\uff0c\u5219\u6587\u672c\u5bbd\u5ea6\u5c06\u7528\u4e8e\u6846\u67b6\u3002\nint \u6587\u672c\u524d\u540e\u7684\u989d\u5916\u7a7a\u95f4\u3002\nint \u6587\u672c\u4e0a\u4e0b\u7684\u989d\u5916\u7a7a\u95f4\u3002\n\u4f8b\u5b50\uff1a\nu8g2.DrawButtonUTF8(\"str\", 10, 20,u8g2.BTN_BW2,0,2,2)\n", "prefix": "u8g2.DrawButtonUTF8"}, "u8g2.SetFontMode": {"body": "u8g2.SetFontMode(${1:mode})", "description": "u8g2.SetFontMode(mode) - \u8bbe\u7f6e\u5b57\u4f53\u6a21\u5f0f\n\u4f20\u5165\u503c\uff1a\nint mode\u5b57\u4f53\u6a21\u5f0f\uff0c\u542f\u7528\uff081\uff09\u6216\u7981\u7528\uff080\uff09\u900f\u660e\u6a21\u5f0f\n\u4f8b\u5b50\uff1a\nu8g2.SetFontMode(1)\n", "prefix": "u8g2.SetFontMode"}, "u8g2.SetFont": {"body": "u8g2.SetFont(${1:font})", "description": "u8g2.SetFont(font) - \u8bbe\u7f6e\u5b57\u4f53\n\u4f20\u5165\u503c\uff1a\nuserdata font, u8g2.font_opposansm8 \u4e3a\u7eaf\u82f1\u65878\u53f7\u5b57\u4f53,\u8fd8\u6709font_opposansm10 font_opposansm12 font_opposansm16 font_opposansm18 font_opposansm20 font_opposansm22 font_opposansm24 font_opposansm32 \u53ef\u9009 u8g2.font_opposansm12_chinese \u4e3a12x12\u5168\u4e2d\u6587,\u8fd8\u6709 font_opposansm16_chinese font_opposansm24_chinese font_opposansm32_chinese \u53ef\u9009, u8g2.font_unifont_t_symbols \u4e3a\u7b26\u53f7.\n\u4f8b\u5b50\uff1a\n-- \u8bbe\u7f6e\u4e3a\u4e2d\u6587\u5b57\u4f53,\u5bf9\u4e4b\u540e\u7684drawStr\u6709\u6548\nu8g2.SetFont(u8g2.font_opposansm12)\n", "prefix": "u8g2.SetFont"}, "u8g2.GetDisplayHeight": {"body": "u8g2.GetDisplayHeight()", "description": "u8g2.GetDisplayHeight() - \u83b7\u53d6\u663e\u793a\u5c4f\u9ad8\u5ea6\n\u8fd4\u56de\u503c\uff1a\nint \u663e\u793a\u5c4f\u9ad8\u5ea6\n\u4f8b\u5b50\uff1a\nu8g2.GetDisplayHeight()\n", "prefix": "u8g2.GetDisplayHeight"}, "u8g2.GetDisplayWidth": {"body": "u8g2.GetDisplayWidth()", "description": "u8g2.GetDisplayWidth() - \u83b7\u53d6\u663e\u793a\u5c4f\u5bbd\u5ea6\n\u8fd4\u56de\u503c\uff1a\nint \u663e\u793a\u5c4f\u5bbd\u5ea6\n\u4f8b\u5b50\uff1a\nu8g2.GetDisplayWidth()\n", "prefix": "u8g2.GetDisplayWidth"}, "u8g2.SetDrawColor": {"body": "u8g2.SetDrawColor(${1:c})", "description": "u8g2.SetDrawColor(c) - \u4e3a\u6240\u6709\u7ed8\u56fe\u529f\u80fd\u5206\u914d\u7ed8\u56fe\u989c\u8272\u3002\n\u4f20\u5165\u503c\uff1a\nint c\u4e3a\u989c\u8272\u503c 0\u6ca1\u6709\u8272 1\u6709\u8272 2\u4e0e\u5e95\u8272xor\n\u4f8b\u5b50\uff1a\nu8g2.SetDrawColor(0)\n", "prefix": "u8g2.SetDrawColor"}, "u8g2.DrawPixel": {"body": "u8g2.DrawPixel(${1:x},${2:y})", "description": "u8g2.DrawPixel(x,y) - \u753b\u4e00\u4e2a\u70b9.\n\u4f20\u5165\u503c\uff1a\nint X\u4f4d\u7f6e.\nint Y\u4f4d\u7f6e.\n\u4f8b\u5b50\uff1a\nu8g2.DrawPixel(20, 5)\n", "prefix": "u8g2.DrawPixel"}, "u8g2.DrawLine": {"body": "u8g2.DrawLine(${1:x0},${2:y0},${3:x1},${4:y1})", "description": "u8g2.DrawLine(x0,y0,x1,y1) - \u5728\u4e24\u70b9\u4e4b\u95f4\u753b\u4e00\u6761\u7ebf.\n\u4f20\u5165\u503c\uff1a\nint \u7b2c\u4e00\u4e2a\u70b9\u7684X\u4f4d\u7f6e.\nint \u7b2c\u4e00\u4e2a\u70b9\u7684Y\u4f4d\u7f6e.\nint \u7b2c\u4e8c\u4e2a\u70b9\u7684X\u4f4d\u7f6e.\nint \u7b2c\u4e8c\u4e2a\u70b9\u7684Y\u4f4d\u7f6e.\n\u4f8b\u5b50\uff1a\nu8g2.DrawLine(20, 5, 5, 32)\n", "prefix": "u8g2.DrawLine"}, "u8g2.DrawCircle": {"body": "u8g2.DrawCircle(${1:x0},${2:y0},${3:rad},${4:opt})", "description": "u8g2.DrawCircle(x0,y0,rad,opt) - \u5728x,y\u4f4d\u7f6e\u753b\u4e00\u4e2a\u534a\u5f84\u4e3arad\u7684\u7a7a\u5fc3\u5706.\n\u4f20\u5165\u503c\uff1a\nint \u5706\u5fc3\u4f4d\u7f6e\nint \u5706\u5fc3\u4f4d\u7f6e\nint \u5706\u534a\u5f84.\nint \u9009\u62e9\u5706\u7684\u90e8\u5206\u6216\u5168\u90e8. \u9ed8\u8ba4\u5168\u753b \u53ef\u9009 u8g2.DRAW_UPPER_RIGHT u8g2.DRAW_UPPER_LEFT u8g2.DRAW_LOWER_LEFT u8g2.DRAW_LOWER_RIGHT u8g2.DRAW_ALL\n\u4f8b\u5b50\uff1a\nu8g2.DrawCircle(60,30,8,u8g2.DRAW_ALL)\n", "prefix": "u8g2.DrawCircle"}, "u8g2.DrawDisc": {"body": "u8g2.DrawDisc(${1:x0},${2:y0},${3:rad},${4:opt})", "description": "u8g2.DrawDisc(x0,y0,rad,opt) - \u5728x,y\u4f4d\u7f6e\u753b\u4e00\u4e2a\u534a\u5f84\u4e3arad\u7684\u5b9e\u5fc3\u5706.\n\u4f20\u5165\u503c\uff1a\nint \u5706\u5fc3\u4f4d\u7f6e\nint \u5706\u5fc3\u4f4d\u7f6e\nint \u5706\u534a\u5f84.\nint \u9009\u62e9\u5706\u7684\u90e8\u5206\u6216\u5168\u90e8. \u9ed8\u8ba4\u5168\u753b \u53ef\u9009 u8g2.DRAW_UPPER_RIGHT u8g2.DRAW_UPPER_LEFT u8g2.DRAW_LOWER_LEFT u8g2.DRAW_LOWER_RIGHT u8g2.DRAW_ALL\n\u4f8b\u5b50\uff1a\nu8g2.DrawDisc(60,30,8,u8g2.DRAW_ALL)\n", "prefix": "u8g2.DrawDisc"}, "u8g2.DrawEllipse": {"body": "u8g2.DrawEllipse(${1:x0},${2:y0},${3:rx},${4:ry},${5:opt})", "description": "u8g2.DrawEllipse(x0,y0,rx,ry,opt) - \u5728x,y\u4f4d\u7f6e\u753b\u4e00\u4e2a\u534a\u5f84\u4e3arad\u7684\u7a7a\u5fc3\u692d\u5706.\n\u4f20\u5165\u503c\uff1a\nint \u5706\u5fc3\u4f4d\u7f6e\nint \u5706\u5fc3\u4f4d\u7f6e\nint \u692d\u5706\u5927\u5c0f\nint \u692d\u5706\u5927\u5c0f\nint \u9009\u62e9\u5706\u7684\u90e8\u5206\u6216\u5168\u90e8. \u9ed8\u8ba4\u5168\u753b \u53ef\u9009 u8g2.DRAW_UPPER_RIGHT u8g2.DRAW_UPPER_LEFT u8g2.DRAW_LOWER_LEFT u8g2.DRAW_LOWER_RIGHT u8g2.DRAW_ALL\n\u4f8b\u5b50\uff1a\nu8g2.DrawEllipse(60,30,8,u8g2.DRAW_ALL)\n", "prefix": "u8g2.DrawEllipse"}, "u8g2.DrawFilledEllipse": {"body": "u8g2.DrawFilledEllipse(${1:x0},${2:y0},${3:rx},${4:ry},${5:opt})", "description": "u8g2.DrawFilledEllipse(x0,y0,rx,ry,opt) - \u5728x,y\u4f4d\u7f6e\u753b\u4e00\u4e2a\u534a\u5f84\u4e3arad\u7684\u5b9e\u5fc3\u692d\u5706.\n\u4f20\u5165\u503c\uff1a\nint \u5706\u5fc3\u4f4d\u7f6e\nint \u5706\u5fc3\u4f4d\u7f6e\nint \u692d\u5706\u5927\u5c0f\nint \u692d\u5706\u5927\u5c0f\nint \u9009\u62e9\u5706\u7684\u90e8\u5206\u6216\u5168\u90e8. \u9ed8\u8ba4\u5168\u753b \u53ef\u9009 u8g2.DRAW_UPPER_RIGHT u8g2.DRAW_UPPER_LEFT u8g2.DRAW_LOWER_LEFT u8g2.DRAW_LOWER_RIGHT u8g2.DRAW_ALL\n\u4f8b\u5b50\uff1a\nu8g2.DrawFilledEllipse(60,30,8,15)\n", "prefix": "u8g2.DrawFilledEllipse"}, "u8g2.DrawBox": {"body": "u8g2.DrawBox(${1:x},${2:y},${3:w},${4:h})", "description": "u8g2.DrawBox(x,y,w,h) - \u4ecex / y\u4f4d\u7f6e\uff08\u5de6\u4e0a\u8fb9\u7f18\uff09\u5f00\u59cb\u7ed8\u5236\u4e00\u4e2a\u6846\uff08\u586b\u5145\u7684\u6846\uff09.\n\u4f20\u5165\u503c\uff1a\nint \u5de6\u4e0a\u8fb9\u7f18\u7684X\u4f4d\u7f6e\nint \u5de6\u4e0a\u8fb9\u7f18\u7684Y\u4f4d\u7f6e\nint \u76d2\u5b50\u7684\u5bbd\u5ea6\nint \u76d2\u5b50\u7684\u9ad8\u5ea6\n\u4f8b\u5b50\uff1a\nu8g2.DrawBox(3,7,25,15)\n", "prefix": "u8g2.DrawBox"}, "u8g2.DrawFrame": {"body": "u8g2.DrawFrame(${1:x},${2:y},${3:w},${4:h})", "description": "u8g2.DrawFrame(x,y,w,h) - \u4ecex / y\u4f4d\u7f6e\uff08\u5de6\u4e0a\u8fb9\u7f18\uff09\u5f00\u59cb\u7ed8\u5236\u4e00\u4e2a\u6846\uff08\u7a7a\u6846\uff09.\n\u4f20\u5165\u503c\uff1a\nint \u5de6\u4e0a\u8fb9\u7f18\u7684X\u4f4d\u7f6e\nint \u5de6\u4e0a\u8fb9\u7f18\u7684Y\u4f4d\u7f6e\nint \u76d2\u5b50\u7684\u5bbd\u5ea6\nint \u76d2\u5b50\u7684\u9ad8\u5ea6\n\u4f8b\u5b50\uff1a\nu8g2.DrawFrame(3,7,25,15)\n", "prefix": "u8g2.DrawFrame"}, "u8g2.DrawRBox": {"body": "u8g2.DrawRBox(${1:x},${2:y},${3:w},${4:h},${5:r})", "description": "u8g2.DrawRBox(x,y,w,h,r) - \u7ed8\u5236\u4e00\u4e2a\u4ecex / y\u4f4d\u7f6e\uff08\u5de6\u4e0a\u8fb9\u7f18\uff09\u5f00\u59cb\u5177\u6709\u5706\u5f62\u8fb9\u7f18\u7684\u586b\u5145\u6846/\u6846\u67b6.\n\u4f20\u5165\u503c\uff1a\nint \u5de6\u4e0a\u8fb9\u7f18\u7684X\u4f4d\u7f6e\nint \u5de6\u4e0a\u8fb9\u7f18\u7684Y\u4f4d\u7f6e\nint \u76d2\u5b50\u7684\u5bbd\u5ea6\nint \u76d2\u5b50\u7684\u9ad8\u5ea6\nint \u56db\u4e2a\u8fb9\u7f18\u7684\u534a\u5f84\n\u4f8b\u5b50\uff1a\nu8g2.DrawRBox(3,7,25,15)\n", "prefix": "u8g2.DrawRBox"}, "u8g2.DrawRFrame": {"body": "u8g2.DrawRFrame(${1:x},${2:y},${3:w},${4:h},${5:r})", "description": "u8g2.DrawRFrame(x,y,w,h,r) - \u7ed8\u5236\u4e00\u4e2a\u4ecex / y\u4f4d\u7f6e\uff08\u5de6\u4e0a\u8fb9\u7f18\uff09\u5f00\u59cb\u5177\u6709\u5706\u5f62\u8fb9\u7f18\u7684\u7a7a\u6846/\u6846\u67b6.\n\u4f20\u5165\u503c\uff1a\nint \u5de6\u4e0a\u8fb9\u7f18\u7684X\u4f4d\u7f6e\nint \u5de6\u4e0a\u8fb9\u7f18\u7684Y\u4f4d\u7f6e\nint \u76d2\u5b50\u7684\u5bbd\u5ea6\nint \u76d2\u5b50\u7684\u9ad8\u5ea6\nint \u56db\u4e2a\u8fb9\u7f18\u7684\u534a\u5f84\n\u4f8b\u5b50\uff1a\nu8g2.DrawRFrame(3,7,25,15)\n", "prefix": "u8g2.DrawRFrame"}, "u8g2.DrawGlyph": {"body": "u8g2.DrawGlyph(${1:x},${2:y},${3:encoding})", "description": "u8g2.DrawGlyph(x,y,encoding) - \u7ed8\u5236\u4e00\u4e2a\u56fe\u5f62\u5b57\u7b26\u3002\u5b57\u7b26\u653e\u7f6e\u5728\u6307\u5b9a\u7684\u50cf\u7d20\u4f4d\u7f6ex\u548cy.\n\u4f20\u5165\u503c\uff1a\nint \u5b57\u7b26\u5728\u663e\u793a\u5c4f\u4e0a\u7684\u4f4d\u7f6e\nint \u5b57\u7b26\u5728\u663e\u793a\u5c4f\u4e0a\u7684\u4f4d\u7f6e\nint \u5b57\u7b26\u7684Unicode\u503c\n\u4f8b\u5b50\uff1a\nu8g2.SetFont(u8g2_font_unifont_t_symbols)\nu8g2.DrawGlyph(5, 20, 0x2603)\t-- dec 9731/hex 2603 Snowman\n", "prefix": "u8g2.DrawGlyph"}, "u8g2.DrawTriangle": {"body": "u8g2.DrawTriangle(${1:x0},${2:y0},${3:x1},${4:y1},${5:x2},${6:y2})", "description": "u8g2.DrawTriangle(x0,y0,x1,y1,x2,y2) - \u7ed8\u5236\u4e00\u4e2a\u4e09\u89d2\u5f62\uff08\u5b9e\u5fc3\u591a\u8fb9\u5f62\uff09.\n\u4f20\u5165\u503c\uff1a\nint \u70b90X\u4f4d\u7f6e\nint \u70b90Y\u4f4d\u7f6e\nint \u70b91X\u4f4d\u7f6e\nint \u70b91Y\u4f4d\u7f6e\nint \u70b92X\u4f4d\u7f6e\nint \u70b92Y\u4f4d\u7f6e\n\u4f8b\u5b50\uff1a\nu8g2.DrawTriangle(20,5, 27,50, 5,32)\n", "prefix": "u8g2.DrawTriangle"}, "u8g2.SetBitmapMode": {"body": "u8g2.SetBitmapMode(${1:mode})", "description": "u8g2.SetBitmapMode(mode) - \u5b9a\u4e49\u4f4d\u56fe\u51fd\u6570\u662f\u5426\u5c06\u5199\u5165\u80cc\u666f\u8272\n\u4f20\u5165\u503c\uff1a\nint mode\u5b57\u4f53\u6a21\u5f0f\uff0c\u542f\u7528\uff081\uff09\u6216\u7981\u7528\uff080\uff09\u900f\u660e\u6a21\u5f0f\n\u4f8b\u5b50\uff1a\nu8g2.SetBitmapMode(1)\n", "prefix": "u8g2.SetBitmapMode"}, "u8g2.DrawXBM": {"body": "u8g2.DrawXBM(${1:x},${2:y},${3:w},${4:h},${5:data})", "description": "u8g2.DrawXBM(x, y, w, h, data) - \u7ed8\u5236\u4f4d\u56fe\n\u4f20\u5165\u503c\uff1a\nint X\u5750\u6807\nint y\u5750\u6807\nint \u4f4d\u56fe\u5bbd\nint \u4f4d\u56fe\u9ad8\nint \u4f4d\u56fe\u6570\u636e,\u6bcf\u4e00\u4f4d\u4ee3\u8868\u4e00\u4e2a\u50cf\u7d20\n\u4f8b\u5b50\uff1a\n-- \u53d6\u6a21\u4f7f\u7528PCtoLCD2002\u8f6f\u4ef6\u5373\u53ef\n-- \u5728(0,0)\u4e3a\u5de6\u4e0a\u89d2,\u7ed8\u5236 16x16 \"\u4eca\" \u7684\u4f4d\u56fe\nu8g2.DrawXBM(0, 0, 16,16, string.char(\n 0x80,0x00,0x80,0x00,0x40,0x01,0x20,0x02,0x10,0x04,0x48,0x08,0x84,0x10,0x83,0x60,\n 0x00,0x00,0xF8,0x0F,0x00,0x08,0x00,0x04,0x00,0x04,0x00,0x02,0x00,0x01,0x80,0x00\n))\n", "prefix": "u8g2.DrawXBM"}, "u8g2.DrawDrcode": {"body": "u8g2.DrawDrcode(${1:x},${2:y},${3:str},${4:size})", "description": "u8g2.DrawDrcode(x, y, str, size) - \u7f13\u51b2\u533a\u7ed8\u5236QRCode\n\u4f20\u5165\u503c\uff1a\nint x\u5750\u6807\nint y\u5750\u6807\nstring \u4e8c\u7ef4\u7801\u7684\u5185\u5bb9\nint \u663e\u793a\u5927\u5c0f (\u6ce8\u610f:\u4e8c\u7ef4\u7801\u751f\u6210\u5927\u5c0f\u4e0e\u8981\u663e\u793a\u5185\u5bb9\u548c\u7ea0\u9519\u7b49\u7ea7\u6709\u5173,\u751f\u6210\u7248\u672c\u4e3a1-40(\u5bf9\u5e94 21x21 - 177x177)\u7684\u4e0d\u5b9a\u5927\u5c0f,\u5982\u679c\u548c\u8bbe\u7f6e\u5927\u5c0f\u4e0d\u540c\u4f1a\u81ea\u52a8\u5728\u6307\u5b9a\u7684\u533a\u57df\u4e2d\u95f4\u663e\u793a\u4e8c\u7ef4\u7801,\u5982\u4e8c\u7ef4\u7801\u672a\u663e\u793a\u8bf7\u67e5\u770b\u65e5\u5fd7\u63d0\u793a)\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n", "prefix": "u8g2.DrawDrcode"}, "u8g2.SetContrast": {"body": "u8g2.SetContrast(${1:contrast})", "description": "u8g2.SetContrast(contrast) - \u8c03\u6574\u5c4f\u5e55\u5bf9\u6bd4\u5ea6\n\u4f20\u5165\u503c\uff1a\nint \u5bf9\u6bd4\u5ea6\uff08\u53d6\u503c\u8303\u56f4\u4e0eIC\u6709\u5173\uff0c\u5982st7567\u4e3a0-63\uff09\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n", "prefix": "u8g2.SetContrast"}, "u8g2.drawGtfontGb2312": {"body": "u8g2.drawGtfontGb2312(${1:str},${2:size},${3:x},${4:y})", "description": "u8g2.drawGtfontGb2312(str,size,x,y) - \u4f7f\u7528gtfont\u663e\u793agb2312\u5b57\u7b26\u4e32\n\u4f20\u5165\u503c\uff1a\nstring str \u663e\u793a\u5b57\u7b26\u4e32\nint size \u5b57\u4f53\u5927\u5c0f (\u652f\u630116-192\u53f7\u5927\u5c0f\u5b57\u4f53)\nint x \u6a2a\u5750\u6807\nint y \u7ad6\u5750\u6807\n\u4f8b\u5b50\uff1a\nu8g2.drawGtfontGb2312(\"\u554a\u554a\u554a\",32,0,0)\n", "prefix": "u8g2.drawGtfontGb2312"}, "u8g2.drawGtfontUtf8": {"body": "u8g2.drawGtfontUtf8(${1:str},${2:size},${3:x},${4:y})", "description": "u8g2.drawGtfontUtf8(str,size,x,y) - \u4f7f\u7528gtfont\u663e\u793aUTF8\u5b57\u7b26\u4e32\n\u4f20\u5165\u503c\uff1a\nstring str \u663e\u793a\u5b57\u7b26\u4e32\nint size \u5b57\u4f53\u5927\u5c0f (\u652f\u630116-192\u53f7\u5927\u5c0f\u5b57\u4f53)\nint x \u6a2a\u5750\u6807\nint y \u7ad6\u5750\u6807\n\u4f8b\u5b50\uff1a\nu8g2.drawGtfontUtf8(\"\u554a\u554a\u554a\",32,0,0)\n", "prefix": "u8g2.drawGtfontUtf8"}, "u8g2.CopyBuffer": {"body": "u8g2.CopyBuffer(${1:buff})", "description": "u8g2.CopyBuffer(buff) - \u83b7\u53d6\u5e95\u5c42\u56fe\u50cf\u7f13\u51b2\u533a\n\u4f20\u5165\u503c\uff1a\nuserdata zbuff\u5b9e\u4f8b,\u7a7a\u95f4\u8981\u5927\u4e8e\u7b49\u4e8e\u5e95\u5c42buff\u7684\u5927\u5c0f\n\u8fd4\u56de\u503c\uff1a\nint \u6210\u529f\u8fd4\u56debuff\u5927\u5c0f,\u5426\u5219\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\n-- \u672c\u51fd\u6570\u5728u8g2\u521d\u59cb\u5316\u4e4b\u540e\u624d\u80fd\u8c03\u7528\n\n-- \u83b7\u53d6\u5927\u5c0f\nlocal sz = u8g2.CopyBuffer()\n\n-- \u62f7\u8d1d\u5e95\u5c42buff\nlocal buff = zbuff.create(sz)\nu8g2.CopyBuffer(buff)\n\n", "prefix": "u8g2.CopyBuffer"}, "u8g2.SetPowerSave": {"body": "u8g2.SetPowerSave(${1:is_enable})", "description": "u8g2.SetPowerSave(is_enable) - \u8bbe\u7f6e\u7701\u7535\u6a21\u5f0f\n\u4f20\u5165\u503c\uff1a\nboolean \u542f\u7528\u4e0e\u5426. true \u542f\u7528, false\u7981\u7528\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n-- \u672cAPI\u4e8e2023.11.02\u65b0\u589e\n-- \u5f00\u542f\u7701\u7535\nu8g2.SetPowerSave(true)\n-- \u5173\u95ed\u7701\u7535\nu8g2.SetPowerSave(false)\n", "prefix": "u8g2.SetPowerSave"}, "uart.setup": {"body": "uart.setup(${1:id},${2:baud_rate},${3:data_bits},${4:stop_bits},${5:partiy},${6:bit_order},${7:buff_size},${8:rs485_gpio},${9:rs485_level},${10:rs485_delay})", "description": "uart.setup(id, baud_rate, data_bits, stop_bits, partiy, bit_order, buff_size, rs485_gpio, rs485_level, rs485_delay) - \u914d\u7f6e\u4e32\u53e3\u53c2\u6570\n\u4f20\u5165\u503c\uff1a\nint \u4e32\u53e3id, uart0\u51990, uart1\u51991, \u5982\u6b64\u7c7b\u63a8, \u6700\u5927\u503c\u53d6\u51b3\u4e8e\u8bbe\u5907\nint \u6ce2\u7279\u7387, \u9ed8\u8ba4115200\uff0c\u53ef\u9009\u62e9\u6ce2\u7279\u7387\u8868:{2000000,921600,460800,230400,115200,57600,38400,19200,9600,4800,2400}\nint \u6570\u636e\u4f4d\uff0c\u9ed8\u8ba4\u4e3a8, \u53ef\u9009 7/8\nint \u505c\u6b62\u4f4d\uff0c\u9ed8\u8ba4\u4e3a1, \u6839\u636e\u5b9e\u9645\u60c5\u51b5\uff0c\u53ef\u4ee5\u67090.5/1/1.5/2\u7b49\nint \u6821\u9a8c\u4f4d\uff0c\u53ef\u9009 uart.None/uart.Even/uart.Odd\nint \u5927\u5c0f\u7aef\uff0c\u9ed8\u8ba4\u5c0f\u7aef uart.LSB, \u53ef\u9009 uart.MSB\nint \u7f13\u51b2\u533a\u5927\u5c0f\uff0c\u9ed8\u8ba4\u503c1024\nint 485\u6a21\u5f0f\u4e0b\u7684\u8f6c\u6362GPIO, \u9ed8\u8ba4\u503c0xffffffff\nint 485\u6a21\u5f0f\u4e0b\u7684rx\u65b9\u5411GPIO\u7684\u7535\u5e73, \u9ed8\u8ba4\u503c0\nint 485\u6a21\u5f0f\u4e0btx\u5411rx\u8f6c\u6362\u7684\u5ef6\u8fdf\u65f6\u95f4\uff0c\u9ed8\u8ba4\u503c12bit\u7684\u65f6\u95f4\uff0c\u5355\u4f4dus\n\u8fd4\u56de\u503c\uff1a\nint \u6210\u529f\u8fd4\u56de0,\u5931\u8d25\u8fd4\u56de\u5176\u4ed6\u503c\n\u4f8b\u5b50\uff1a\n-- \u6700\u5e38\u7528115200 8N1\nuart.setup(1, 115200, 8, 1, uart.NONE)\n-- \u53ef\u4ee5\u7b80\u5199\u4e3a uart.setup(1)\n\n-- 485\u81ea\u52a8\u5207\u6362, \u9009\u53d6GPIO10\u4f5c\u4e3a\u6536\u53d1\u8f6c\u6362\u811a\nuart.setup(1, 115200, 8, 1, uart.NONE, uart.LSB, 1024, 10, 0, 100)\n", "prefix": "uart.setup"}, "uart.write": {"body": "uart.write(${1:id},${2:data})", "description": "uart.write(id, data) - \u5199\u4e32\u53e3\n\u4f20\u5165\u503c\uff1a\nint \u4e32\u53e3id, uart0\u51990, uart1\u51991\nstring/zbuff \u5f85\u5199\u5165\u7684\u6570\u636e\uff0c\u5982\u679c\u662fzbuff\u4f1a\u4ece\u6307\u9488\u8d77\u59cb\u4f4d\u7f6e\u5f00\u59cb\u8bfb\nint \u53ef\u9009\uff0c\u8981\u53d1\u9001\u7684\u6570\u636e\u957f\u5ea6\uff0c\u9ed8\u8ba4\u5168\u53d1\n\u8fd4\u56de\u503c\uff1a\nint \u6210\u529f\u7684\u6570\u636e\u957f\u5ea6\n\u4f8b\u5b50\uff1a\n-- \u5199\u5165\u53ef\u89c1\u5b57\u7b26\u4e32\nuart.write(1, \"rdy\\r\\n\")\n-- \u5199\u5165\u5341\u516d\u8fdb\u5236\u7684\u6570\u636e\u4e32\nuart.write(1, string.char(0x55,0xAA,0x4B,0x03,0x86))\n", "prefix": "uart.write"}, "uart.read": {"body": "uart.read(${1:id},${2:len})", "description": "uart.read(id, len) - \u8bfb\u4e32\u53e3\n\u4f20\u5165\u503c\uff1a\nint \u4e32\u53e3id, uart0\u51990, uart1\u51991\nint \u8bfb\u53d6\u957f\u5ea6\nfile/zbuff \u53ef\u9009\uff1a\u6587\u4ef6\u53e5\u67c4\u6216zbuff\u5bf9\u8c61\n\u8fd4\u56de\u503c\uff1a\nstring \u8bfb\u53d6\u5230\u7684\u6570\u636e / \u4f20\u5165zbuff\u65f6\uff0c\u8fd4\u56de\u8bfb\u5230\u7684\u957f\u5ea6\uff0c\u5e76\u628azbuff\u6307\u9488\u540e\u79fb\n\u4f8b\u5b50\uff1a\nuart.read(1, 16)\n", "prefix": "uart.read"}, "uart.close": {"body": "uart.close(${1:id})", "description": "uart.close(id) - \u5173\u95ed\u4e32\u53e3\n\u4f20\u5165\u503c\uff1a\nint \u4e32\u53e3id, uart0\u51990, uart1\u51991\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\nuart.close(1)\n", "prefix": "uart.close"}, "uart.on": {"body": "uart.on(${1:id},${2:event},${3:func})", "description": "uart.on(id, event, func) - \u6ce8\u518c\u4e32\u53e3\u4e8b\u4ef6\u56de\u8c03\n\u4f20\u5165\u503c\uff1a\nint \u4e32\u53e3id, uart0\u51990, uart1\u51991\nstring \u4e8b\u4ef6\u540d\u79f0\nfunction \u56de\u8c03\u65b9\u6cd5\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\nuart.on(1, \"receive\", function(id, len)\n local data = uart.read(id, len)\n log.info(\"uart\", id, len, data)\nend)\n", "prefix": "uart.on"}, "uart.wait485": {"body": "uart.wait485(${1:id})", "description": "uart.wait485(id) - \u7b49\u5f85485\u6a21\u5f0f\u4e0bTX\u5b8c\u6210\uff0cmcu\u4e0d\u652f\u6301\u4e32\u53e3\u53d1\u9001\u79fb\u4f4d\u5bc4\u5b58\u5668\u7a7a\u6216\u8005\u7c7b\u4f3c\u4e2d\u65ad\u65f6\u624d\u9700\u8981\uff0c\u5728sent\u4e8b\u4ef6\u56de\u8c03\u540e\u4f7f\u7528\n\u4f20\u5165\u503c\uff1a\nint \u4e32\u53e3id, uart0\u51990, uart1\u51991\n\u8fd4\u56de\u503c\uff1a\nint \u7b49\u5f85\u4e86\u591a\u5c11\u6b21\u5faa\u73af\u624d\u7b49\u5230tx\u5b8c\u6210\uff0c\u7528\u4e8e\u7c97\u52a3\u7684\u89c2\u5bdfdelay\u65f6\u95f4\u662f\u5426\u8db3\u591f\uff0c\u8fd4\u56de\u4e0d\u4e3a0\u8bf4\u660e\u8fd8\u9700\u8981\u653e\u5927delay\n", "prefix": "uart.wait485"}, "uart.exist": {"body": "uart.exist(${1:id})", "description": "uart.exist(id) - \u68c0\u67e5\u4e32\u53e3\u53f7\u662f\u5426\u5b58\u5728\n\u4f20\u5165\u503c\uff1a\nint \u4e32\u53e3id, uart0\u51990, uart1\u51991, \u5982\u6b64\u7c7b\u63a8\n\u8fd4\u56de\u503c\uff1a\nbool \u5b58\u5728\u8fd4\u56detrue\n", "prefix": "uart.exist"}, "uart.rx": {"body": "uart.rx(${1:id},${2:buff})", "description": "uart.rx(id, buff) - buff\u5f62\u5f0f\u8bfb\u4e32\u53e3\uff0c\u4e00\u6b21\u8bfb\u51fa\u5168\u90e8\u6570\u636e\u5b58\u5165buff\u4e2d\uff0c\u5982\u679cbuff\u7a7a\u95f4\u4e0d\u591f\u4f1a\u81ea\u52a8\u6269\u5c55\uff0c\u76ee\u524dair105,air780e\u652f\u6301\u8fd9\u4e2a\u64cd\u4f5c\n\u4f20\u5165\u503c\uff1a\nint \u4e32\u53e3id, uart0\u51990, uart1\u51991\nzbuff zbuff\u5bf9\u8c61\n\u8fd4\u56de\u503c\uff1a\nint \u8fd4\u56de\u8bfb\u5230\u7684\u957f\u5ea6\uff0c\u5e76\u628azbuff\u6307\u9488\u540e\u79fb\n\u4f8b\u5b50\uff1a\nuart.rx(1, buff)\n", "prefix": "uart.rx"}, "uart.rxSize": {"body": "uart.rxSize(${1:id})", "description": "uart.rxSize(id) - \u8bfb\u4e32\u53e3Rx\u7f13\u5b58\u4e2d\u5269\u4f59\u6570\u636e\u91cf\uff0c\u76ee\u524dair105,air780e\u652f\u6301\u8fd9\u4e2a\u64cd\u4f5c\n\u4f20\u5165\u503c\uff1a\nint \u4e32\u53e3id, uart0\u51990, uart1\u51991\n\u8fd4\u56de\u503c\uff1a\nint \u8fd4\u56de\u8bfb\u5230\u7684\u957f\u5ea6\n\u4f8b\u5b50\uff1a\nlocal size = uart.rxSize(1)\n", "prefix": "uart.rxSize"}, "uart.rxClear": {"body": "uart.rxClear(${1:id})", "description": "uart.rxClear(id) - \u6e05\u9664\u4e32\u53e3Rx\u7f13\u5b58\u4e2d\u5269\u4f59\u6570\u636e\u91cf\uff0c\u76ee\u524dair105,air780e\u652f\u6301\u8fd9\u4e2a\u64cd\u4f5c\n\u4f20\u5165\u503c\uff1a\nint \u4e32\u53e3id, uart0\u51990, uart1\u51991\n\u4f8b\u5b50\uff1a\nuart.rxClear(1)\n", "prefix": "uart.rxClear"}, "uart.tx": {"body": "uart.tx(${1:id},${2:buff},${3:start},${4:len})", "description": "uart.tx(id, buff, start, len) - buff\u5f62\u5f0f\u5199\u4e32\u53e3,\u7b49\u540c\u4e8ec\u8bed\u8a00uart_tx(uart_id, &buff[start], len);\n\u4f20\u5165\u503c\uff1a\nint \u4e32\u53e3id, uart0\u51990, uart1\u51991\nzbuff \u5f85\u5199\u5165\u7684\u6570\u636e\uff0c\u5982\u679c\u662fzbuff\u4f1a\u4ece\u6307\u9488\u8d77\u59cb\u4f4d\u7f6e\u5f00\u59cb\u8bfb\nint \u53ef\u9009\uff0c\u8981\u53d1\u9001\u7684\u6570\u636e\u8d77\u59cb\u4f4d\u7f6e\uff0c\u9ed8\u8ba4\u4e3a0\nint \u53ef\u9009\uff0c\u8981\u53d1\u9001\u7684\u6570\u636e\u957f\u5ea6\uff0c\u9ed8\u8ba4\u4e3azbuff\u5185\u6709\u6548\u6570\u636e\uff0c\u6700\u5927\u503c\u4e0d\u8d85\u8fc7zbuff\u7684\u6700\u5927\u7a7a\u95f4\n\u8fd4\u56de\u503c\uff1a\nint \u6210\u529f\u7684\u6570\u636e\u957f\u5ea6\n\u4f8b\u5b50\uff1a\nuart.tx(1, buf)\n", "prefix": "uart.tx"}, "uart.createSoft": {"body": "uart.createSoft(${1:tx_pin},${2:tx_hwtimer_id},${3:rx_pin},${4:rx_hwtimer_id},${5:adjust_period})", "description": "uart.createSoft(tx_pin, tx_hwtimer_id, rx_pin, rx_hwtimer_id, adjust_period) - \u8bbe\u7f6e\u8f6f\u4ef6uart\u7684\u786c\u4ef6\u914d\u7f6e\uff0c\u53ea\u6709\u652f\u6301\u786c\u4ef6\u5b9a\u65f6\u5668\u7684SOC\u624d\u80fd\u4f7f\u7528\uff0c\u76ee\u524d\u53ea\u80fd\u8bbe\u7f6e\u4e00\u4e2a\uff0c\u6ce2\u7279\u7387\u6839\u636e\u5e73\u53f0\u7684\u8f6f\u786c\u4ef6\u914d\u7f6e\u6709\u4e0d\u540c\u7684\u6781\u9650\uff0c\u5efa\u8bae9600\uff0c\u63a5\u6536\u7f13\u5b58\u4e0d\u8d85\u8fc765535\uff0c\u4e0d\u652f\u6301MSB\uff0c\u652f\u6301485\u81ea\u52a8\u63a7\u5236\u3002\u540e\u7eed\u4ecd\u8981setup\u64cd\u4f5c\n\u4f20\u5165\u503c\uff1a\nint \u53d1\u9001\u5f15\u811a\u7f16\u53f7\nint \u53d1\u9001\u7528\u7684\u786c\u4ef6\u5b9a\u65f6\u5668ID\nint \u63a5\u6536\u5f15\u811a\u7f16\u53f7\nint \u63a5\u6536\u7528\u7684\u786c\u4ef6\u5b9a\u65f6\u5668ID\nint \u53d1\u9001\u65f6\u5e8f\u8c03\u6574\uff0c\u5355\u4f4d\u662f\u5b9a\u65f6\u5668\u65f6\u949f\u5468\u671f\uff0c\u9ed8\u8ba4\u662f0\uff0c\u9700\u8981\u6839\u636e\u793a\u6ce2\u5668\u6216\u8005\u903b\u8f91\u5206\u6790\u4eea\u8fdb\u884c\u5fae\u8c03\nint \u63a5\u6536\u65f6\u5e8f\u8c03\u6574\uff0c\u5355\u4f4d\u662f\u5b9a\u65f6\u5668\u65f6\u949f\u5468\u671f\uff0c\u9ed8\u8ba4\u662f0\uff0c\u9700\u8981\u6839\u636e\u793a\u6ce2\u5668\u6216\u8005\u903b\u8f91\u5206\u6790\u4eea\u8fdb\u884c\u5fae\u8c03\n\u8fd4\u56de\u503c\uff1a\nint \u8f6f\u4ef6uart\u7684id\uff0c\u5982\u679c\u5931\u8d25\u5219\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\n-- \u521d\u59cb\u5316\u8f6f\u4ef6uart\nlocal uart_id = uart.createSoft(21, 0, 1, 2) --air780e\u5efa\u8bae\u7528\u5b9a\u65f6\u56680\u548c2\uff0ctx_pin\u6700\u597d\u7528AGPIO\uff0c\u9632\u6b62\u4f11\u7720\u65f6\u8bef\u89e6\u53d1\u5bf9\u7aefRX\n", "prefix": "uart.createSoft"}, "uart.list": {"body": "uart.list(${1:max})", "description": "uart.list(max) - \u83b7\u53d6\u53ef\u7528\u4e32\u53e3\u53f7\u5217\u8868\uff0c\u5f53\u524d\u4ec5\u9650win32\n\u4f20\u5165\u503c\uff1a\nint \u53ef\u9009\uff0c\u9ed8\u8ba4256\uff0c\u6700\u591a\u83b7\u53d6\u591a\u5c11\u4e2a\u4e32\u53e3\n\u8fd4\u56de\u503c\uff1a\ntable \u83b7\u53d6\u5230\u7684\u53ef\u7528\u4e32\u53e3\u53f7\u5217\u8868\n", "prefix": "uart.list"}, "ufont.get": {"body": "ufont.get(${1:name})", "description": "ufont.get(name) - \u83b7\u53d6\u5b57\u4f53\n\u4f20\u5165\u503c\uff1a\nstring \u5b57\u4f53\u540d\u79f0, \u4f8b\u5982\n\u8fd4\u56de\u503c\uff1a\nuserdata \u82e5\u5b57\u4f53\u5b58\u5728,\u8fd4\u56de\u5b57\u4f53\u6307\u9488, \u5426\u5219\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\n-- TODO\n", "prefix": "ufont.get"}, "ufont.list": {"body": "ufont.list()", "description": "ufont.list() - \u8fd4\u56de\u56fa\u4ef6\u652f\u6301\u7684\u5b57\u4f53\u5217\u8868\n\u8fd4\u56de\u503c\uff1a\ntable \u5b57\u4f53\u5217\u8868\n\u4f8b\u5b50\uff1a\n-- API\u65b0\u589e\u4e8e2022-08-05\nlog.info(\"fonts\", \"u8g2\", json.encode(ufont.list()))\n", "prefix": "ufont.list"}, "usbapp.set_id": {"body": "usbapp.set_id(${1:id},${2:vid},${3:pid})", "description": "usbapp.set_id(id, vid, pid) - USB \u8bbe\u7f6eVID\u548cPID\n\u4f20\u5165\u503c\uff1a\nint \u8bbe\u5907id,\u9ed8\u8ba4\u4e3a0\nint vid \u5c0f\u7aef\u683c\u5f0f\nint pid \u5c0f\u7aef\u683c\u5f0f\n\u4f8b\u5b50\uff1a\nusbapp.set_id(0, 0x1234, 0x5678)\n", "prefix": "usbapp.set_id"}, "usbapp.hid_mode": {"body": "usbapp.hid_mode(${1:id},${2:mode},${3:buff_size})", "description": "usbapp.hid_mode(id, mode, buff_size) - USB HID\u8bbe\u5907\u6a21\u5f0f\n\u4f20\u5165\u503c\uff1a\nint \u8bbe\u5907id,\u9ed8\u8ba4\u4e3a0\nint mode\uff0c\u76ee\u524d0\u662f\u952e\u76d8\uff0c1\u662f\u81ea\u5b9a\u4e49\nint buff_size\uff0c\u53ea\u80fd\u662f8,16,32,64\uff0c\u5982\u679c\u662f\u952e\u76d8\u6a21\u5f0f\u6216\u8005\u586b\u4e86\u5176\u4ed6\u503c\uff0c\u81ea\u52a8\u4e3a8\n\u4f8b\u5b50\uff1a\nusbapp.hid_mode(0, 0) -- usb hid\u952e\u76d8\u6a21\u5f0f\nusbapp.hid_mode(0, 1) -- usb hid\u81ea\u5b9a\u4e49\u6a21\u5f0f\uff0c\u7528\u4e8e\u514d\u9a71USB\u4ea4\u4e92\n", "prefix": "usbapp.hid_mode"}, "usbapp.start": {"body": "usbapp.start(${1:id})", "description": "usbapp.start(id) - \u542f\u52a8USB\u8bbe\u5907\n\u4f20\u5165\u503c\uff1a\nint \u8bbe\u5907id,\u9ed8\u8ba4\u4e3a0\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- \u542f\u52a8USB\nusbapp.start(0)\n", "prefix": "usbapp.start"}, "usbapp.stop": {"body": "usbapp.stop(${1:id})", "description": "usbapp.stop(id) - \u5173\u95edUSB\u8bbe\u5907\n\u4f20\u5165\u503c\uff1a\nint \u8bbe\u5907id,\u9ed8\u8ba4\u4e3a0\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- \u5173\u95edUSB\nusbapp.stop(0)\n", "prefix": "usbapp.stop"}, "usbapp.vhid_upload": {"body": "usbapp.vhid_upload(${1:id},${2:data})", "description": "usbapp.vhid_upload(id, data) - USB HID\u8bbe\u5907\u4e0a\u4f20\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nint \u8bbe\u5907id,\u9ed8\u8ba4\u4e3a0\nstring \u6570\u636e. \u6ce8\u610f, HID\u7684\u53ef\u7528\u5b57\u7b26\u662f\u6709\u9650\u5236\u7684, \u57fa\u672c\u4e0a\u53ea\u6709\u53ef\u89c1\u5b57\u7b26\u662f\u652f\u6301\u7684, \u4e0d\u652f\u6301\u7684\u5b57\u7b26\u4f1a\u66ff\u6362\u4e3a\u7a7a\u683c.\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- HID\u4e0a\u4f20\u6570\u636e\nusbapp.vhid_upload(0, \"1234\") -- usb hid\u4f1a\u6a21\u62df\u6572\u51fa1234\n", "prefix": "usbapp.vhid_upload"}, "usbapp.hid_tx": {"body": "usbapp.hid_tx(${1:id},${2:data},${3:start},${4:len})", "description": "usbapp.hid_tx(id, data, start, len) - USB HID\u8bbe\u5907\u4e0a\u4f20\u7528\u6237\u81ea\u5b9a\u4e49\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nint \u8bbe\u5907id,\u9ed8\u8ba4\u4e3a0\nstring or zbuff \u6ce8\u610f\u6570\u636e\u91cf\u4e0d\u8db3\u65f6\u4f1a\u81ea\u52a8\u586b\u51450\nint \u53ef\u9009\uff0cdata\u4e3azbuff\u624d\u6709\u6548\uff0c\u8981\u53d1\u9001\u7684\u6570\u636e\u8d77\u59cb\u4f4d\u7f6e\uff0c\u9ed8\u8ba4\u4e3a0\nint \u53ef\u9009\uff0cdata\u4e3azbuff\u624d\u6709\u6548\uff0c\u8981\u53d1\u9001\u7684\u6570\u636e\u957f\u5ea6\uff0c\u9ed8\u8ba4\u4e3azbuff\u5185\u6709\u6548\u6570\u636e\uff0c\u6700\u5927\u503c\u4e0d\u8d85\u8fc7zbuff\u7684\u6700\u5927\u7a7a\u95f4\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- HID\u4e0a\u4f20\u6570\u636e\nusbapp.hid_tx(0, \"1234\") -- usb hid\u4e0a\u4f200x31 0x32 0x33 0x34 + N\u4e2a0\n", "prefix": "usbapp.hid_tx"}, "usbapp.hid_rx": {"body": "usbapp.hid_rx(${1:id},${2:buff})", "description": "usbapp.hid_rx(id, buff) - buff\u5f62\u5f0f\u8bfb\u63a5\u6536\u5230\u7684\u6570\u636e\uff0c\u4e00\u6b21\u8bfb\u51fa\u5168\u90e8\u6570\u636e\u5b58\u5165buff\u4e2d\uff0c\u5982\u679cbuff\u7a7a\u95f4\u4e0d\u591f\u4f1a\u81ea\u52a8\u6269\u5c55\uff0c\u76ee\u524d\u53ea\u6709air105\u652f\u6301\u8fd9\u4e2a\u64cd\u4f5c\n\u4f20\u5165\u503c\uff1a\nint \u8bbe\u5907id,\u9ed8\u8ba4\u4e3a0\nzbuff zbuff\u5bf9\u8c61\n\u8fd4\u56de\u503c\uff1a\nint \u8fd4\u56de\u8bfb\u5230\u7684\u957f\u5ea6\uff0c\u5e76\u628azbuff\u6307\u9488\u540e\u79fb\n\u4f8b\u5b50\uff1a\nusbapp.hid_rx(0, buff)\n", "prefix": "usbapp.hid_rx"}, "usbapp.vhid_cancel_upload": {"body": "usbapp.vhid_cancel_upload(${1:id})", "description": "usbapp.vhid_cancel_upload(id) - USB HID\u8bbe\u5907\u53d6\u6d88\u4e0a\u4f20\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nint \u8bbe\u5907id,\u9ed8\u8ba4\u4e3a0\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n-- \u53d6\u6d88\u4e0a\u4f20\u6570\u636e,\u901a\u5e38\u4e0d\u9700\u8981\nusbapp.vhid_cancel_upload(0)\n", "prefix": "usbapp.vhid_cancel_upload"}, "usbapp.udisk_attach_sdhc": {"body": "usbapp.udisk_attach_sdhc(${1:id})", "description": "usbapp.udisk_attach_sdhc(id) - USB U\u76d8\u8bbe\u5907\u6302\u8f7dSDHC\uff0cTF\u5361\n\u4f20\u5165\u503c\uff1a\nint \u8bbe\u5907id,\u9ed8\u8ba4\u4e3a0\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\nusbapp.udisk_attach_sdhc(0)\n", "prefix": "usbapp.udisk_attach_sdhc"}, "usbapp.udisk_detach_sdhc": {"body": "usbapp.udisk_detach_sdhc(${1:id})", "description": "usbapp.udisk_detach_sdhc(id) - USB U\u76d8\u8bbe\u5907\u53bb\u9664\u6302\u8f7dSDHC\uff0cTF\u5361\n\u4f20\u5165\u503c\uff1a\nint \u8bbe\u5907id,\u9ed8\u8ba4\u4e3a0\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\nusbapp.udisk_detach_sdhc(0)\n", "prefix": "usbapp.udisk_detach_sdhc"}, "w5500.init": {"body": "w5500.init(${1:spiid},${2:speed},${3:cs_pin},${4:irq_pin},${5:rst_pin},${6:link_pin})", "description": "w5500.init(spiid, speed, cs_pin, irq_pin, rst_pin, link_pin) - \u521d\u59cb\u5316w5500\n\u4f20\u5165\u503c\uff1a\nint spi\u901a\u9053\u53f7, \u4f8b\u5982 0, 1, 5, \u6309\u8bbe\u5907\u5b9e\u9645\u60c5\u51b5\u9009\nint spi\u901f\u5ea6, \u53ef\u4ee5\u8bbe\u7f6e\u5230\u5bf9\u5e94SPI\u7684\u6700\u9ad8\u901f\u5ea6\nint cs pin, \u7247\u9009\u811a, \u5bf9\u5e94W5500\u7684SCS\nint irq pin, \u4e2d\u65ad\u811a, \u5bf9\u5e94W5500\u7684INT\nint reset pin, \u590d\u4f4d\u811a, \u5bf9\u5e94W5500\u7684RST\nint link \u72b6\u6001 pin\uff0c\u53ef\u4ee5\u7559\u7a7a\u4e0d\u4f7f\u7528\uff0c\u9ed8\u8ba4\u4e0d\u4f7f\u7528\n\u4f8b\u5b50\uff1a\nw5500.init(spi.SPI_0, 24000000, pin.PB13, pin.PC08, pin.PC09)\n", "prefix": "w5500.init"}, "w5500.config": {"body": "w5500.config(${1:ip},${2:submask},${3:gateway},${4:mac},${5:RTR},${6:RCR},${7:speed})", "description": "w5500.config(ip, submask, gateway, mac, RTR, RCR, speed) - w5500\u914d\u7f6e\u7f51\u7edc\u4fe1\u606f\n\u4f20\u5165\u503c\uff1a\nstring \u9759\u6001ip\u5730\u5740\uff0c\u5982\u679c\u9700\u8981\u7528DHCP\u83b7\u53d6\uff0c\u8bf7\u5199nil\nstring \u5b50\u7f51\u63a9\u7801\uff0c\u5982\u679c\u4f7f\u7528\u52a8\u6001ip\uff0c\u5219\u5ffd\u7565\nstring \u7f51\u5173\uff0c\u5982\u679c\u4f7f\u7528\u52a8\u6001ip\uff0c\u5219\u5ffd\u7565\nstring MAC\uff0c\u5199nil\u5219\u901a\u8fc7MCU\u552f\u4e00\u7801\u81ea\u52a8\u751f\u6210\uff0c\u5982\u679c\u8981\u5199\uff0c\u957f\u5ea6\u5fc5\u987b\u662f6byte\nint \u91cd\u8bd5\u95f4\u9694\u65f6\u95f4\uff0c\u9ed8\u8ba42000\uff0c\u5355\u4f4d100us\uff0c\u4e0d\u61c2\u7684\u4e0d\u8981\u6539\nint \u6700\u5927\u91cd\u8bd5\u6b21\u6570\uff0c\u9ed8\u8ba48\uff0c\u4e0d\u61c2\u7684\u4e0d\u8981\u6539\nint \u901f\u5ea6\u7c7b\u578b\uff0c\u76ee\u524d\u53ea\u67090\u786c\u4ef6\u914d\u7f6e\uff0c1\u81ea\u9002\u5e94\uff0c\u9ed8\u8ba4\u4e3a0\n\u4f8b\u5b50\uff1a\nw5500.config(\"192.168.1.2\", \"255.255.255.0\", \"192.168.1.1\", string.fromHex(\"102a3b4c5d6e\"))\n", "prefix": "w5500.config"}, "w5500.bind": {"body": "w5500.bind(${1:id})", "description": "w5500.bind(id) - \u5c06w5500\u6ce8\u518c\u8fdb\u901a\u7528\u7f51\u7edc\u63a5\u53e3\n\u4f20\u5165\u503c\uff1a\nint \u901a\u7528\u7f51\u7edc\u901a\u9053\u53f7\n\u4f8b\u5b50\uff1a\n-- \u82e5\u4f7f\u7528\u7684\u7248\u672c\u4e0d\u5e26socket\u5e93, \u6539\u6210 network.ETH0\nw5500.bind(socket.ETH0)\n", "prefix": "w5500.bind"}, "w5500.getMac": {"body": "w5500.getMac()", "description": "w5500.getMac() - \u83b7\u53d6w5500\u5f53\u524d\u7684MAC\uff0c\u5fc5\u987b\u5728init\u4e4b\u540e\u7528\uff0c\u5982\u679cconfig\u4e2d\u8bbe\u7f6e\u4e86\u81ea\u5df1\u7684MAC\uff0c\u9700\u8981\u5ef6\u8fdf\u4e00\u70b9\u65f6\u95f4\u518d\u8bfb\n\u8fd4\u56de\u503c\uff1a\nstring \u5f53\u524d\u7684MAC\n\u4f8b\u5b50\uff1a\nlocal mac = w5500.getMac()\nlog.info(\"w5500 mac\", mac:toHex())\n", "prefix": "w5500.getMac"}, "wdt.init": {"body": "wdt.init(${1:timeout})", "description": "wdt.init(timeout) - \u521d\u59cb\u5316watchdog\u5e76\u9a6c\u4e0a\u542f\u7528.\u5927\u90e8\u5206\u8bbe\u5907\u7684watchdog\u4e00\u65e6\u542f\u7528\u5c31\u65e0\u6cd5\u5173\u95ed.\n\u4f20\u5165\u503c\uff1a\nint \u8d85\u65f6\u65f6\u957f,\u5355\u4f4d\u4e3a\u6beb\u79d2\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse(\u4f8b\u5982\u5e95\u5c42\u4e0d\u652f\u6301)\n\u4f8b\u5b50\uff1a\nwdt.init(9000)\nsys.timerLoopStart(wdt.feed, 3000)\n", "prefix": "wdt.init"}, "wdt.setTimeout": {"body": "wdt.setTimeout(${1:timeout})", "description": "wdt.setTimeout(timeout) - \u90e8\u5206\u8bbe\u5907\u652f\u6301\u91cd\u65b0\u8bbe\u7f6ewatchdog\u8d85\u65f6\u65f6\u957f\n\u4f20\u5165\u503c\uff1a\nint \u8d85\u65f6\u65f6\u957f,\u5355\u4f4d\u4e3a\u6beb\u79d2\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse(\u4f8b\u5982\u5e95\u5c42\u4e0d\u652f\u6301)\n\u4f8b\u5b50\uff1a\nwdt.init(10000)\nsys.timerLoopStart(wdt.feed, 3000)\nsys.wait(5000)\nsys.setTimeout(5000)\n", "prefix": "wdt.setTimeout"}, "wdt.feed": {"body": "wdt.feed()", "description": "wdt.feed() - \u5582\u72d7,\u4f7f\u5f97\u8d85\u65f6\u8ba1\u65f6\u590d\u4f4d,\u91cd\u65b0\u8ba1\u65f6\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse(\u4f8b\u5982\u5e95\u5c42\u4e0d\u652f\u6301)\n\u4f8b\u5b50\uff1a\nwdt.init(10000)\n-- \u5b9a\u65f6\u5582\u72d7,\u6216\u8005\u6839\u636e\u4e1a\u52a1\u6309\u9700\u5582\u72d7\nsys.timerLoopStart(wdt.feed, 3000)\n", "prefix": "wdt.feed"}, "wdt.close": {"body": "wdt.close()", "description": "wdt.close() - \u5173\u95edwatchdog,\u901a\u5e38\u4e0d\u88ab\u652f\u6301\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse(\u4f8b\u5982\u5e95\u5c42\u4e0d\u652f\u6301)\n\u4f8b\u5b50\uff1a\nwdt.init(10000)\nsys.wait(9000)\nwdt.close()\n", "prefix": "wdt.close"}, "wsc:debug": {"body": "wsc:debug(${1:onoff})", "description": "wsc:debug(onoff) - \u914d\u7f6e\u662f\u5426\u6253\u5f00debug\u4fe1\u606f\n\u4f20\u5165\u503c\uff1a\nboolean \u662f\u5426\u6253\u5f00debug\u5f00\u5173\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n", "prefix": "wsc:debug"}, "websocket.create": {"body": "websocket.create(${1:adapter},${2:url})", "description": "websocket.create(adapter, url) - websocket\u5ba2\u6237\u7aef\u521b\u5efa\n\u4f20\u5165\u503c\uff1a\nint \u9002\u914d\u5668\u5e8f\u53f7, \u53ea\u80fd\u662fsocket.ETH0, socket.STA, socket.AP,\u5982\u679c\u4e0d\u586b,\u4f1a\u9009\u62e9\u5e73\u53f0\u81ea\u5e26\u7684\u65b9\u5f0f,\u7136\u540e\u662f\u6700\u540e\u4e00\u4e2a\u6ce8\u518c\u7684\u9002\u914d\u5668\nstring \u8fde\u63a5\u5b57\u7b26\u4e32,\u53c2\u8003usage\n\u8fd4\u56de\u503c\uff1a\nuserdata \u82e5\u6210\u529f\u4f1a\u8fd4\u56dewebsocket\u5ba2\u6237\u7aef\u5b9e\u4f8b,\u5426\u5219\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\n-- \u666e\u901aTCP\u94fe\u63a5\nwsc = websocket.create(nil,\"ws://air32.cn/abc\")\n-- \u52a0\u5bc6TCP\u94fe\u63a5\nwsc = websocket.create(nil,\"wss://air32.cn/abc\")\n", "prefix": "websocket.create"}, "wsc:on": {"body": "wsc:on(${1:cb})", "description": "wsc:on(cb) - \u6ce8\u518cwebsocket\u56de\u8c03\n\u4f20\u5165\u503c\uff1a\nfunction cb websocket\u56de\u8c03,\u53c2\u6570\u5305\u62ecwebsocket_client, event, data, payload\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\nwsc:on(function(websocket_client, event, data, payload)\n\t-- \u6253\u5370\u5404\u79cd\u4e8b\u4ef6\n\tlog.info(\"websocket\", \"event\", event, data, payload)\nend)\n--[[\nevent\u7684\u503c\u6709:\n\tconack \u8fde\u63a5\u670d\u52a1\u5668\u6210\u529f,\u5df2\u7ecf\u6536\u5230websocket\u534f\u8bae\u5934\u90e8\u4fe1\u606f,\u901a\u4fe1\u5df2\u5efa\u7acb\n\trecv \u6536\u5230\u670d\u52a1\u5668\u4e0b\u53d1\u7684\u4fe1\u606f, data, payload \u4e0d\u4e3anil\n\tsent send\u51fd\u6570\u53d1\u9001\u7684\u6d88\u606f,\u670d\u52a1\u5668\u5728TCP\u534f\u8bae\u5c42\u5df2\u786e\u8ba4\u6536\u5230\n\tdisconnect \u670d\u52a1\u5668\u8fde\u63a5\u5df2\u65ad\u5f00\n\n\u5176\u4e2d sent/disconnect \u4e8b\u4ef6\u5728 2023.04.01 \u65b0\u589e\n]]\n", "prefix": "wsc:on"}, "wsc:connect": {"body": "wsc:connect()", "description": "wsc:connect() - \u8fde\u63a5\u670d\u52a1\u5668\n\u8fd4\u56de\u503c\uff1a\nboolean \u53d1\u8d77\u6210\u529f\u8fd4\u56detrue, \u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- \u5f00\u59cb\u5efa\u7acb\u8fde\u63a5\nwsc:connect()\n-- \u672c\u51fd\u6570\u4ec5\u4ee3\u8868\u53d1\u8d77\u6210\u529f, \u540e\u7eed\u4ecd\u9700\u6839\u636eready\u51fd\u6570\u5224\u65adwebsocket\u662f\u5426\u8fde\u63a5\u6b63\u5e38\n", "prefix": "wsc:connect"}, "wsc:autoreconn": {"body": "wsc:autoreconn(${1:reconnect},${2:reconnect_time})", "description": "wsc:autoreconn(reconnect, reconnect_time) - \u81ea\u52a8\u91cd\u8fde\n\u4f20\u5165\u503c\uff1a\nbool \u662f\u5426\u81ea\u52a8\u91cd\u8fde\nint \u81ea\u52a8\u91cd\u8fde\u5468\u671f \u5355\u4f4dms \u9ed8\u8ba43000ms\n\u4f8b\u5b50\uff1a\nwsc:autoreconn(true)\n", "prefix": "wsc:autoreconn"}, "wsc:send": {"body": "wsc:send(${1:data},${2:fin},${3:opt})", "description": "wsc:send(data, fin, opt) - \u53d1\u5e03\u6d88\u606f\n\u4f20\u5165\u503c\uff1a\nstring \u5f85\u53d1\u9001\u7684\u6570\u636e,\u5fc5\u586b\nint \u662f\u5426\u4e3a\u6700\u540e\u4e00\u5e27,\u9ed8\u8ba41,\u5373\u9a6c\u4e0a\u8bbe\u7f6e\u4e3a\u6700\u540e\u4e00\u5e27, \u4e5f\u5c31\u662f\u5355\u5e27\u53d1\u9001\nint \u64cd\u4f5c\u7801, \u9ed8\u8ba4\u4e3a\u5b57\u7b26\u4e32\u5e270, \u53ef\u90091\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u4e3afalse\u6216\u8005nil\n\u4f8b\u5b50\uff1a\n-- \u7b80\u5355\u53d1\u9001\u6570\u636e\nwsc:send(\"123\")\n-- \u5206\u6bb5\u53d1\u9001\u6570\u636e, \u6700\u540e\u8981\u75281(\u5373FIN\u5e27\u7ed3\u675f)\nwsc:send(\"123\", 0)\nwsc:send(\"456\", 0)\nwsc:send(\"789\", 1)\n", "prefix": "wsc:send"}, "wsc:close": {"body": "wsc:close()", "description": "wsc:close() - websocket\u5ba2\u6237\u7aef\u5173\u95ed(\u5173\u95ed\u540e\u8d44\u6e90\u91ca\u653e\u65e0\u6cd5\u518d\u4f7f\u7528)\n\u4f8b\u5b50\uff1a\nwsc:close()\n", "prefix": "wsc:close"}, "wsc:ready": {"body": "wsc:ready()", "description": "wsc:ready() - websocket\u5ba2\u6237\u7aef\u662f\u5426\u5c31\u7eea\n\u8fd4\u56de\u503c\uff1a\nbool \u5ba2\u6237\u7aef\u662f\u5426\u5c31\u7eea\n\u4f8b\u5b50\uff1a\nlocal stat = wsc:ready()\n", "prefix": "wsc:ready"}, "wsc:headers": {"body": "wsc:headers(${1:headers})", "description": "wsc:headers(headers) - \u8bbe\u7f6e\u989d\u5916\u7684headers\n\u4f20\u5165\u503c\uff1a\ntable/string \u53ef\u4ee5\u662ftable,\u4e5f\u53ef\u4ee5\u662f\u5b57\u7b26\u4e32\n\u8fd4\u56de\u503c\uff1a\nbool \u5ba2\u6237\u7aef\u662f\u5426\u5c31\u7eea\n\u4f8b\u5b50\uff1a\n-- table\u5f62\u5f0f\nwsc:headers({\n\tAuth=\"Basic ABCDEFGG\"\n})\n-- \u5b57\u7b26\u4e32\u5f62\u5f0f\nwsc:headers(\"Auth: Basic ABCDERG\\r\\n\")\n", "prefix": "wsc:headers"}, "wlan.init": {"body": "wlan.init()", "description": "wlan.init() - \u521d\u59cb\u5316\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n", "prefix": "wlan.init"}, "wlan.setMode": {"body": "wlan.setMode(${1:mode})", "description": "wlan.setMode(mode) - \u8bbe\u7f6ewifi\u6a21\u5f0f\n\u4f20\u5165\u503c\uff1a\nint wifi\u6a21\u5f0f\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- \u8bbe\u7f6e\u4e3aAP\u6a21\u5f0f, \u5e7f\u64adssid, \u63a5\u6536wifi\u5ba2\u6237\u7aef\u7684\u94fe\u63a5\nwlan.setMode(wlan.AP)\n\n-- \u8bbe\u7f6e\u4e3aSTATION\u6a21\u5f0f, \u4e5f\u662f\u521d\u59cb\u5316\u540e\u7684\u9ed8\u8ba4\u6a21\u5f0f\nwlan.setMode(wlan.STATION)\n\n-- \u6df7\u5408\u6a21\u5f0f, \u505aAP\u53c8\u505aSTATION\nwlan.setMode(wlan.APSTA)\n", "prefix": "wlan.setMode"}, "wlan.ready": {"body": "wlan.ready()", "description": "wlan.ready() - \u4f5c\u4e3aSTATION\u65f6,\u662f\u5426\u5df2\u7ecf\u8fde\u63a5\u4e0aAP,\u4e14\u83b7\u53d6IP\u6210\u529f\n\u8fd4\u56de\u503c\uff1a\nbool \u5df2\u7ecf\u8fde\u63a5\u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n", "prefix": "wlan.ready"}, "wlan.connect": {"body": "wlan.connect(${1:ssid},${2:password})", "description": "wlan.connect(ssid, password) - \u4f5c\u4e3aSTATION\u65f6,\u8fde\u63a5\u5230\u6307\u5b9aAP\n\u4f20\u5165\u503c\uff1a\nstring AP\u7684ssid\nstring AP\u7684password,\u53ef\u9009\n\u8fd4\u56de\u503c\uff1a\nbool \u53d1\u8d77\u8fde\u63a5\u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse.\u6ce8\u610f,\u4e0d\u4ee3\u8868\u8fde\u63a5AP\u6210\u529f!!\n\u4f8b\u5b50\uff1a\n\n-- \u666e\u901a\u6a21\u5f0f,\u5e26\u5bc6\u7801\nwlan.connect(\"myap\", \"12345678\")\n-- \u666e\u901a\u6a21\u5f0f,\u4e0d\u5e26\u5bc6\u7801\nwlan.connect(\"myap\")\n-- \u7279\u6b8a\u6a21\u5f0f, \u91cd\u7528\u4e4b\u524d\u7684ssid\u548c\u5bc6\u7801,\u672c\u6b21\u76f4\u63a5\u8fde\u63a5\n-- \u6ce8\u610f, \u524d\u63d0\u662f\u672c\u6b21\u4e0a\u7535\u540e\u5df2\u7ecf\u4f20\u8fc7ssid\u548c\u6216password,\u5426\u5219\u5fc5\u5931\u8d25\nwlan.connect()\n", "prefix": "wlan.connect"}, "wlan.disconnect": {"body": "wlan.disconnect()", "description": "wlan.disconnect() - \u4f5c\u4e3aSTATION\u65f6,\u65ad\u5f00AP\n", "prefix": "wlan.disconnect"}, "wlan.scan": {"body": "wlan.scan()", "description": "wlan.scan() - \u626b\u63cfwifi\u9891\u6bb5\n\u4f8b\u5b50\uff1a\n-- \u6ce8\u610f, wlan.scan()\u662f\u5f02\u6b65API,\u542f\u52a8\u626b\u63cf\u540e\u4f1a\u9a6c\u4e0a\u8fd4\u56de\n\n-- wifi\u626b\u63cf\u6210\u529f\u540e, \u4f1a\u6709WLAN_SCAN_DONE\u6d88\u606f, \u8bfb\u53d6\u5373\u53ef\nsys.subscribe(\"WLAN_SCAN_DONE\", function ()\n local results = wlan.scanResult()\n log.info(\"scan\", \"results\", #results)\n for k,v in pairs(results) do\n log.info(\"scan\", v[\"ssid\"], v[\"rssi\"], (v[\"bssid\"]:toHex()))\n end\nend)\n\n-- \u4e0b\u9762\u6f14\u793a\u7684\u662f\u521d\u59cb\u5316wifi\u540e\u5b9a\u65f6\u626b\u63cf,\u8bf7\u6309\u5b9e\u9645\u4e1a\u52a1\u9700\u6c42\u4fee\u6539\nsys.taskInit(function()\n sys.wait(1000)\n wlan.init()\n while 1 do\n wlan.scan()\n sys.wait(15000)\n end\nend)\n", "prefix": "wlan.scan"}, "wlan.scanResult": {"body": "wlan.scanResult()", "description": "wlan.scanResult() - \u83b7\u53d6wifi\u626b\u63cf\u7ed3\u679c\n\u8fd4\u56de\u503c\uff1a\ntable \u626b\u63cf\u7ed3\u679c\n\u4f8b\u5b50\uff1a\n-- \u7528\u6cd5\u8bf7\u67e5\u9605 wlan.scan() \u51fd\u6570\n", "prefix": "wlan.scanResult"}, "wlan.smartconfig": {"body": "wlan.smartconfig(${1:mode})", "description": "wlan.smartconfig(mode) - \u914d\u7f51\n\u4f20\u5165\u503c\uff1a\nint \u914d\u7f51\u6a21\u5f0f, \u9ed8\u8ba4\u4e3aesptouch, \u82e5\u4f200\u5219\u4e3b\u52a8\u505c\u6b62\u914d\u7f51\n\u8fd4\u56de\u503c\uff1a\nbool \u542f\u52a8\u6210\u529f\u6216\u505c\u6b62\u6210\u529f, \u8fd4\u56detrue, \u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\nwlan.smartconfig()\nlocal ret, ssid, passwd = sys.waitUntil(\"SC_RESULT\", 180*1000) -- \u6700\u591a\u7b493\u5206\u949f\nlog.info(\"sc\", ret, ssid, passwd)\n-- \u8be6\u7ec6\u7528\u6cd5\u8bf7\u67e5\u770bdemo\n", "prefix": "wlan.smartconfig"}, "wlan.getMac": {"body": "wlan.getMac(${1:tp},${2:hexstr})", "description": "wlan.getMac(tp, hexstr) - \u83b7\u53d6mac\n\u4f20\u5165\u503c\uff1a\nint \u8bbe\u7f6e\u4f55\u79cdmac\u5730\u5740,\u5bf9ESP32\u7cfb\u5217\u6765\u8bf4,\u53ea\u80fd\u8bbe\u7f6eSTA\u7684\u5730\u5740,\u53730,\u9ed8\u8ba4\u503c\u4e5f\u662f0\nbool \u662f\u5426\u8f6cHEX\u5b57\u7b26, \u9ed8\u8ba4\u662ftrue,\u5373\u8f93\u51fahex\u5b57\u7b26\u4e32\n\u8fd4\u56de\u503c\uff1a\nstring MAC\u5730\u5740,\u5341\u516d\u8fdb\u5236\u5b57\u7b26\u4e32\u5f62\u5f0f \"AABBCCDDEEFF\" \u6216\u539f\u59cb\u6570\u636e\n", "prefix": "wlan.getMac"}, "wlan.setMac": {"body": "wlan.setMac(${1:tp},${2:mac})", "description": "wlan.setMac(tp, mac) - \u8bbe\u7f6emac\n\u4f20\u5165\u503c\uff1a\nint \u8bbe\u7f6e\u4f55\u79cdmac\u5730\u5740,\u5bf9ESP32\u7cfb\u5217\u6765\u8bf4,\u53ea\u80fd\u8bbe\u7f6eSTA\u7684\u5730\u5740,\u53730\nstring \u5f85\u8bbe\u7f6e\u7684MAC\u5730\u5740,\u957f\u5ea66\u5b57\u8282\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- \u8bbe\u7f6eMAC\u5730\u5740, 2023-03-01\u4e4b\u540e\u7f16\u8bd1\u7684\u56fa\u4ef6\u53ef\u7528\nlocal mac = string.fromHex(\"F01122334455\")\nwlan.setMac(0, mac)\n\n-- \u90e8\u5206\u6a21\u5757\u652f\u6301\u6062\u590d\u9ed8\u8ba4MAC, \u4f8b\u5982esp32\u7cfb\u5217\n-- \u57282023-11-01 \u4e4b\u540e\u7f16\u8bd1\u7684\u56fa\u4ef6\u53ef\u7528\nlocal mac = string.fromHex(\"000000000000\")\nwlan.setMac(0, mac)\n", "prefix": "wlan.setMac"}, "wlan.getIP": {"body": "wlan.getIP()", "description": "wlan.getIP() - \u83b7\u53d6ip,\u4ec5STATION\u6216APSTA\u6a21\u5f0f\u4e0b\u6709\u610f\u4e49\n\u8fd4\u56de\u503c\uff1a\nstring ip\u5730\u5740,\u5f53\u524d\u4ec5\u8fd4\u56deipv4\u5730\u5740,\u4f8b\u5982 \"192.168.1.25\"\n", "prefix": "wlan.getIP"}, "wlan.createAP": {"body": "wlan.createAP(${1:ssid},${2:passwd},${3:gateway},${4:netmask},${5:channel})", "description": "wlan.createAP(ssid, passwd, gateway, netmask, channel) - \u542f\u52a8AP\n\u4f20\u5165\u503c\uff1a\nstring AP\u7684SSID,\u5fc5\u586b\nstring AP\u7684\u5bc6\u7801,\u53ef\u9009\nstring AP\u7684\u7f51\u5173\u5730\u5740, \u9ed8\u8ba4192.168.4.1\nstring AP\u7684\u7f51\u5173\u63a9\u7801, \u9ed8\u8ba4255.255.255.0\nint AP\u5efa\u7acb\u7684\u901a\u9053, \u9ed8\u8ba46\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u521b\u5efa\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- \u6ce8\u610f, \u8c03\u7528\u672cAP\u65f6,\u82e5wifi\u6a21\u5f0f\u4e3aSTATION,\u4f1a\u81ea\u52a8\u5207\u6362\u6210 APSTA\nwlan.createAP(\"uiot\", \"12345678\")\n-- \u8bbe\u7f6e\u7f51\u5173IP,\u63a9\u7801, \u901a\u9053, 2023.7.13 \u65b0\u589e, BSP\u672a\u5fc5\u652f\u6301\n-- wlan.createAP(\"uiot\", \"12345678\", \"192.168.4.1\", \"255.255.255.0\", 6)\n", "prefix": "wlan.createAP"}, "wlan.stopAP": {"body": "wlan.stopAP()", "description": "wlan.stopAP() - \u5173\u95edAP\u529f\u80fd\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u521b\u5efa\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\nwlan.stopAP()\n", "prefix": "wlan.stopAP"}, "wlan.getInfo": {"body": "wlan.getInfo()", "description": "wlan.getInfo() - \u83b7\u53d6\u4fe1\u606f,\u5982AP\u7684bssid,\u4fe1\u53f7\u5f3a\u5ea6\n\u8fd4\u56de\u503c\uff1a\ntable \u8be6\u60c5,\u952e\u503c\u5bf9\u5f62\u5f0f\n\u4f8b\u5b50\uff1a\n\nlog.info(\"wlan\", \"info\", json.encode(wlan.getInfo()))\n--[[\n\u5178\u578b\u8f93\u51fa\n{\n \"bssid\" : \"xxxxxx\",\n \"rssi\" : -89,\n \"gw\" : \"192.168.1.1\"\n}\n]]\n", "prefix": "wlan.getInfo"}, "wlan.powerSave": {"body": "wlan.powerSave(${1:mode})", "description": "wlan.powerSave(mode) - \u8bfb\u53d6\u6216\u8bbe\u7f6e\u7701\u7535\u6a21\u5f0f\n\u4f20\u5165\u503c\uff1a\nint \u7701\u7535\u6a21\u5f0f,\u53ef\u9009, \u4f20\u5165\u5c31\u662f\u8bbe\u7f6e, \u4f8b\u5982wlan.PS_NONE\n\u8fd4\u56de\u503c\uff1a\nint \u5f53\u524d\u7701\u7535\u6a21\u5f0f/\u8bbe\u7f6e\u540e\u7684\u7701\u7535\u6a21\u5f0f\n\u4f8b\u5b50\uff1a\n-- \u8bf7\u67e5\u9605\u5e38\u91cf\u8868 PS_NONE/PS_MIN_MODEM/PS_MAX_MODEM\nlog.info(\"wlan\", \"PS\", wlan.powerSave(wlan.PS_NONE))\n-- \u672cAPI\u4e8e 2023.03.31 \u65b0\u589e\n", "prefix": "wlan.powerSave"}, "wlan.hostname": {"body": "wlan.hostname(${1:new_name})", "description": "wlan.hostname(new_name) - \u8bfb\u53d6\u6216\u8bbe\u7f6eHostname\n\u4f20\u5165\u503c\uff1a\nstring \u65b0\u7684hostname,\u53ef\u9009, \u4f20\u5165\u5c31\u662f\u8bbe\u7f6e\n\u8fd4\u56de\u503c\uff1a\nstring \u5f53\u524d\u7684hostname\u6216\u8005\u8bbe\u7f6e\u540e\u7684hostname\n\u4f8b\u5b50\uff1a\n-- \u672cAPI\u4e8e 2023.07.23 \u65b0\u589e\n-- \u672c\u51fd\u6570\u5e94\u8be5\u5728wlan.init\u4e4b\u524d\u8bbe\u7f6e\u597d, \u6700\u665a\u5e94\u65e9\u4e8ewlan.connect\n-- hostname\u7684\u9ed8\u8ba4\u503c\u662f \"LUATOS_\" + \u8bbe\u5907\u7684MAC\u503c\n-- \u4f8b\u5982: LUATOS_0022EECC2399\n\nwlan.hostname(\"\u6211\u7684wifi\u7269\u8054\u7f51\u8bbe\u5907\")\n", "prefix": "wlan.hostname"}, "wlan.staIp": {"body": "wlan.staIp(${1:dhcp_enable},${2:ip},${3:netmask},${4:gateway})", "description": "wlan.staIp(dhcp_enable, ip, netmask, gateway) - \u8bbe\u7f6eStation\u6a21\u5f0f\u4e0b\u7684IP\u83b7\u53d6\u6a21\u5f0f\n\u4f20\u5165\u503c\uff1a\nbool \u662f\u5426\u542f\u7528DHCP,\u9ed8\u8ba4\u662ftrue\nstring \u672c\u673aIP\u5730\u5740,\u4f8b\u5982192.168.2.200, \u7981\u7528DHCP\u65f6\u5fc5\u586b\nstring \u672c\u673aIP\u63a9\u7801,\u4f8b\u5982255.255.255.0, \u7981\u7528DHCP\u65f6\u5fc5\u586b\nstring \u672c\u673aIP\u7f51\u5173,\u4f8b\u5982192.168.2.1, \u7981\u7528DHCP\u65f6\u5fc5\u586b\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- \u672cAPI\u4e8e 2023.10.06 \u65b0\u589e\n-- \u672c\u51fd\u6570\u9700\u8981\u5728wlan.init\u4e4b\u540e\u624d\u5141\u8bb8\u8c03\u7528\n\n-- \u542f\u7528DHCP, \u9ed8\u8ba4\u4e5f\u662f\u542f\u7528DHCP,\u8fd9\u91cc\u662f\u6f14\u793aAPI\u4f7f\u7528\nwlan.staIp(true)\n-- \u7981\u7528DHCP,\u81ea\u884c\u8bbe\u7f6eIP/\u63a9\u7801/\u7f51\u5173\nwlan.staIp(false, \"192.168.2.200\", \"255.255.255.0\", \"192.168.2.1\")\n", "prefix": "wlan.staIp"}, "ymodem.create": {"body": "ymodem.create(${1:dir_path},${2:file_path})", "description": "ymodem.create(dir_path,file_path) - \u521b\u5efa\u4e00\u4e2aymodem\u5904\u7406\u53e5\u67c4\n\u4f20\u5165\u503c\uff1a\nstring \u4fdd\u5b58\u7684\u6587\u4ef6\u5939\u8def\u5f84\uff0c\u9ed8\u8ba4\u662f\"/\"\nstring \u5f3a\u5236\u4fdd\u5b58\u7684\u7edd\u5bf9\u6587\u4ef6\u8def\u5f84\uff0c\u9ed8\u8ba4\u662f\u7a7a\uff0c\u5982\u679c\u8bbe\u7f6e\u4e86\uff0c\u5c31\u4f1a\u76f4\u63a5\u4fdd\u5b58\u5728\u8be5\u6587\u4ef6\u4e2d\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529ftrue, \u5931\u8d25false\n\u4f8b\u5b50\uff1a\nlocal handler = ymodem.create(\"/\")\n", "prefix": "ymodem.create"}, "ymodem.receive": {"body": "ymodem.receive(${1:handler},${2:data})", "description": "ymodem.receive(handler, data) - ymodem\u63a5\u6536\u6587\u4ef6\u6570\u636e\u5e76\u4fdd\u5b58\n\u4f20\u5165\u503c\uff1a\nuserdata ymodem\u5904\u7406\u53e5\u67c4\nzbuff/string \u8f93\u5165\u7684\u6570\u636e\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529ftrue\uff0c\u5931\u8d25false\nint ack\u503c\uff0c\u9700\u8981\u901a\u8fc7\u4e32\u53e3/\u7f51\u7edc\u7b49\u9014\u5f84\u8fd4\u56de\u53d1\u9001\u65b9\nint flag\u503c\uff0c\u9700\u8981\u901a\u8fc7\u4e32\u53e3/\u7f51\u7edc\u7b49\u9014\u5f84\u8fd4\u56de\u53d1\u9001\u65b9\uff0c\u5982\u679c\u6709ack\u503c\u5219\u4e0d\u53d1\u9001flag\nboolean, \u4e00\u4e2a\u6587\u4ef6\u63a5\u6536\u5b8c\u6210true\uff0c\u4f20\u8f93\u4e2dfalse\nboolean, \u6574\u4e2a\u4f20\u8f93\u5b8c\u6210true \u5426\u5219false\n\u4f8b\u5b50\uff1a\n-- \u6ce8\u610f, \u6570\u636e\u6765\u6e90\u4e0d\u9650, \u901a\u5e38\u662fuart.read\u5f97\u5230data\nno_error,ack,flag,file_done,all_done = ymodem.receive(handler, data)\n", "prefix": "ymodem.receive"}, "ymodem.reset": {"body": "ymodem.reset(${1:handler})", "description": "ymodem.reset(handler) - \u91cd\u7f6eymodem\u5904\u7406\u8fc7\u7a0b\n\u4f20\u5165\u503c\uff1a\nuserdata ymodem\u5904\u7406\u53e5\u67c4\n\u4f8b\u5b50\uff1a\n-- \u6062\u590d\u5230\u521d\u59cb\u72b6\u6001\uff0c\u4e00\u822c\u7528\u4e8e\u63a5\u6536\u51fa\u9519\u540e\u91cd\u7f6e\uff0c\u4ece\u800c\u8fdb\u884c\u4e0b\u4e00\u6b21\u63a5\u6536\nymodem.reset(handler)\n", "prefix": "ymodem.reset"}, "ymodem.release": {"body": "ymodem.release(${1:handler})", "description": "ymodem.release(handler) - \u91ca\u653eymodem\u5904\u7406\u53e5\u67c4\n\u4f20\u5165\u503c\uff1a\nuserdata handler\n\u4f8b\u5b50\uff1a\nymodem.release(handler)\n", "prefix": "ymodem.release"}, "zbuff.create": {"body": "zbuff.create(${1:{width},${2:height},${3:bit}},${4:data})", "description": "zbuff.create({width,height,bit},data) - \u521b\u5efaframebuff\u7528\u7684zbuff\n\u4f20\u5165\u503c\uff1a\ntable \u5bbd\u5ea6\u3001\u9ad8\u5ea6\u3001\u8272\u4f4d\u6df1\u5ea6\nint \u53ef\u9009\u53c2\u6570\uff0c\u586b\u5145\u6570\u636e\n\u8fd4\u56de\u503c\uff1a\nobject zbuff\u5bf9\u8c61\uff0c\u5982\u679c\u521b\u5efa\u5931\u8d25\u4f1a\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\n-- \u521b\u5efazbuff\nlocal buff = zbuff.create({128,160,16})--\u521b\u5efa\u4e00\u4e2a128*160\u7684framebuff\nlocal buff = zbuff.create({128,160,16},0xf800)--\u521b\u5efa\u4e00\u4e2a128*160\u7684framebuff\uff0c\u521d\u59cb\u72b6\u6001\u7ea2\u8272\n", "prefix": "zbuff.create"}, "buff:write": {"body": "buff:write(${1:para},${2:...})", "description": "buff:write(para,...) - zbuff\u5199\u6570\u636e\uff08\u4ece\u5f53\u524d\u6307\u9488\u4f4d\u7f6e\u5f00\u59cb\uff1b\u6267\u884c\u540e\u6307\u9488\u4f1a\u5411\u540e\u79fb\u52a8\uff09\n\u4f20\u5165\u503c\uff1a\nany \u5199\u5165buff\u7684\u6570\u636e\uff0cstring\u65f6\u4e3a\u4e00\u4e2a\u53c2\u6570\uff0cnumber\u65f6\u53ef\u4e3a\u591a\u4e2a\u53c2\u6570\n\u8fd4\u56de\u503c\uff1a\nnumber \u6570\u636e\u6210\u529f\u5199\u5165\u7684\u957f\u5ea6\n\u4f8b\u5b50\uff1a\n-- \u7c7bfile\u7684\u8bfb\u5199\u64cd\u4f5c\nlocal len = buff:write(\"123\") -- \u5199\u5165\u6570\u636e, \u6307\u9488\u76f8\u5e94\u5730\u5f80\u540e\u79fb\u52a8\uff0c\u8fd4\u56de\u5199\u5165\u7684\u6570\u636e\u957f\u5ea6\nlocal len = buff:write(0x1a,0x30,0x31,0x32,0x00,0x01) -- \u6309\u6570\u503c\u5199\u5165\u591a\u4e2a\u5b57\u8282\u6570\u636e\n", "prefix": "buff:write"}, "buff:read": {"body": "buff:read(${1:length})", "description": "buff:read(length) - zbuff\u8bfb\u6570\u636e\uff08\u4ece\u5f53\u524d\u6307\u9488\u4f4d\u7f6e\u5f00\u59cb\uff1b\u6267\u884c\u540e\u6307\u9488\u4f1a\u5411\u540e\u79fb\u52a8\uff09\n\u4f20\u5165\u503c\uff1a\nint \u8bfb\u53d6buff\u4e2d\u7684\u5b57\u8282\u6570\n\u8fd4\u56de\u503c\uff1a\nstring \u8bfb\u53d6\u7ed3\u679c\n\u4f8b\u5b50\uff1a\n-- \u7c7bfile\u7684\u8bfb\u5199\u64cd\u4f5c\nlocal str = buff:read(3)\n", "prefix": "buff:read"}, "buff:clear": {"body": "buff:clear(${1:num})", "description": "buff:clear(num) - zbuff\u6e05\u7a7a\u6570\u636e\uff08\u4e0e\u5f53\u524d\u6307\u9488\u4f4d\u7f6e\u65e0\u5173\uff1b\u6267\u884c\u540e\u6307\u9488\u4f4d\u7f6e\u4e0d\u53d8\uff09\n\u4f20\u5165\u503c\uff1a\nint \u53ef\u9009\uff0c\u9ed8\u8ba4\u4e3a0\u3002\u8981\u8bbe\u7f6e\u4e3a\u7684\u503c\uff0c\u4e0d\u4f1a\u6539\u53d8buff\u6307\u9488\u4f4d\u7f6e\n\u4f8b\u5b50\uff1a\n-- \u5168\u90e8\u521d\u59cb\u5316\u4e3a0\nbuff:clear(0)\n", "prefix": "buff:clear"}, "buff:seek": {"body": "buff:seek(${1:base},${2:offset})", "description": "buff:seek(base,offset) - zbuff\u8bbe\u7f6e\u5149\u6807\u4f4d\u7f6e\uff08\u53ef\u80fd\u4e0e\u5f53\u524d\u6307\u9488\u4f4d\u7f6e\u6709\u5173\uff1b\u6267\u884c\u540e\u6307\u9488\u4f1a\u88ab\u8bbe\u7f6e\u5230\u6307\u5b9a\u4f4d\u7f6e\uff09\n\u4f20\u5165\u503c\uff1a\nint \u504f\u79fb\u957f\u5ea6\nint where, \u57fa\u70b9\uff0c\u9ed8\u8ba4zbuff.SEEK_SET\u3002zbuff.SEEK_SET: \u57fa\u70b9\u4e3a 0 \uff08\u6587\u4ef6\u5f00\u5934\uff09\uff0czbuff.SEEK_CUR: \u57fa\u70b9\u4e3a\u5f53\u524d\u4f4d\u7f6e\uff0czbuff.SEEK_END: \u57fa\u70b9\u4e3a\u6587\u4ef6\u5c3e\n\u8fd4\u56de\u503c\uff1a\nint \u8bbe\u7f6e\u5149\u6807\u540e\u4ecebuff\u5f00\u5934\u8ba1\u7b97\u8d77\u7684\u5149\u6807\u7684\u4f4d\u7f6e\n\u4f8b\u5b50\uff1a\nbuff:seek(0) -- \u628a\u5149\u6807\u8bbe\u7f6e\u5230\u6307\u5b9a\u4f4d\u7f6e\nbuff:seek(5,zbuff.SEEK_CUR)\nbuff:seek(-3,zbuff.SEEK_END)\n", "prefix": "buff:seek"}, "buff:pack": {"body": "buff:pack(${1:format},${2:val1},${3:val2},${4:...})", "description": "buff:pack(format,val1, val2,...) - \u5c06\u4e00\u7cfb\u5217\u6570\u636e\u6309\u7167\u683c\u5f0f\u5b57\u7b26\u8f6c\u5316\uff0c\u5e76\u5199\u5165\uff08\u4ece\u5f53\u524d\u6307\u9488\u4f4d\u7f6e\u5f00\u59cb\uff1b\u6267\u884c\u540e\u6307\u9488\u4f1a\u5411\u540e\u79fb\u52a8\uff09\n\u4f20\u5165\u503c\uff1a\nstring \u540e\u9762\u6570\u636e\u7684\u683c\u5f0f\uff08\u7b26\u53f7\u542b\u4e49\u89c1\u4e0b\u9762\u7684\u4f8b\u5b50\uff09\nval \u4f20\u5165\u7684\u6570\u636e\uff0c\u53ef\u4ee5\u4e3a\u591a\u4e2a\u6570\u636e\n\u8fd4\u56de\u503c\uff1a\nint \u6210\u529f\u5199\u5165\u7684\u6570\u636e\u957f\u5ea6\n\u4f8b\u5b50\uff1a\nbuff:pack(\">IIHA\", 0x1234, 0x4567, 0x12,\"abcdefg\") -- \u6309\u683c\u5f0f\u5199\u5165\u51e0\u4e2a\u6570\u636e\n-- A string\n-- f float\n-- d double\n-- n Lua number\n-- c char\n-- b byte / unsignen char\n-- h short\n-- H unsigned short\n-- i int\n-- I unsigned int\n-- l long\n-- L unsigned long\n-- < \u5c0f\u7aef\n-- > \u5927\u7aef\n-- = \u9ed8\u8ba4\u5927\u5c0f\u7aef\n", "prefix": "buff:pack"}, "buff:unpack": {"body": "buff:unpack(${1:format})", "description": "buff:unpack(format) - \u5c06\u4e00\u7cfb\u5217\u6570\u636e\u6309\u7167\u683c\u5f0f\u5b57\u7b26\u8bfb\u53d6\u51fa\u6765\uff08\u4ece\u5f53\u524d\u6307\u9488\u4f4d\u7f6e\u5f00\u59cb\uff1b\u6267\u884c\u540e\u6307\u9488\u4f1a\u5411\u540e\u79fb\u52a8\uff09\n\u4f20\u5165\u503c\uff1a\nstring \u6570\u636e\u7684\u683c\u5f0f\uff08\u7b26\u53f7\u542b\u4e49\u89c1\u4e0a\u9762pack\u63a5\u53e3\u7684\u4f8b\u5b50\uff09\n\u8fd4\u56de\u503c\uff1a\nint \u6210\u529f\u8bfb\u53d6\u7684\u6570\u636e\u5b57\u8282\u957f\u5ea6\nany \u6309\u683c\u5f0f\u8bfb\u51fa\u6765\u7684\u6570\u636e\n\u4f8b\u5b50\uff1a\nlocal cnt,a,b,c,s = buff:unpack(\">IIHA10\") -- \u6309\u683c\u5f0f\u8bfb\u53d6\u51e0\u4e2a\u6570\u636e\n--\u5982\u679c\u5168\u90e8\u6210\u529f\u8bfb\u53d6\uff0ccnt\u5c31\u662f4+4+2+10=20\n", "prefix": "buff:unpack"}, "buff:read\u7c7b\u578b": {"body": "buff:read\u7c7b\u578b()", "description": "buff:read\u7c7b\u578b() - \u8bfb\u53d6\u4e00\u4e2a\u6307\u5b9a\u7c7b\u578b\u7684\u6570\u636e\uff08\u4ece\u5f53\u524d\u6307\u9488\u4f4d\u7f6e\u5f00\u59cb\uff1b\u6267\u884c\u540e\u6307\u9488\u4f1a\u5411\u540e\u79fb\u52a8\uff09\n\u4f20\u5165\u503c\uff1a\n\u6ce8\u91ca \u8bfb\u53d6\u7c7b\u578b\u53ef\u4e3a\uff1aI8\u3001U8\u3001I16\u3001U16\u3001I32\u3001U32\u3001I64\u3001U64\u3001F32\u3001F64\n\u8fd4\u56de\u503c\uff1a\nnumber \u8bfb\u53d6\u7684\u6570\u636e\uff0c\u5982\u679c\u8d8a\u754c\u5219\u4e3anil\n\u4f8b\u5b50\uff1a\nlocal data = buff:readI8()\nlocal data = buff:readU32()\n", "prefix": "buff:read\u7c7b\u578b"}, "buff:write\u7c7b\u578b": {"body": "buff:write\u7c7b\u578b()", "description": "buff:write\u7c7b\u578b() - \u5199\u5165\u4e00\u4e2a\u6307\u5b9a\u7c7b\u578b\u7684\u6570\u636e\uff08\u4ece\u5f53\u524d\u6307\u9488\u4f4d\u7f6e\u5f00\u59cb\uff1b\u6267\u884c\u540e\u6307\u9488\u4f1a\u5411\u540e\u79fb\u52a8\uff09\n\u4f20\u5165\u503c\uff1a\nnumber \u5f85\u5199\u5165\u7684\u6570\u636e\n\u6ce8\u91ca \u5199\u5165\u7c7b\u578b\u53ef\u4e3a\uff1aI8\u3001U8\u3001I16\u3001U16\u3001I32\u3001U32\u3001I64\u3001U64\u3001F32\u3001F64\n\u8fd4\u56de\u503c\uff1a\nnumber \u6210\u529f\u5199\u5165\u7684\u957f\u5ea6\n\u4f8b\u5b50\uff1a\nlocal len = buff:writeI8(10)\nlocal len = buff:writeU32(1024)\n", "prefix": "buff:write\u7c7b\u578b"}, "buff:toStr": {"body": "buff:toStr(${1:offset},${2:length})", "description": "buff:toStr(offset,length) - \u6309\u8d77\u59cb\u4f4d\u7f6e\u548c\u957f\u5ea6\u53d6\u51fa\u6570\u636e\uff08\u4e0e\u5f53\u524d\u6307\u9488\u4f4d\u7f6e\u65e0\u5173\uff1b\u6267\u884c\u540e\u6307\u9488\u4f4d\u7f6e\u4e0d\u53d8\uff09\n\u4f20\u5165\u503c\uff1a\nint \u6570\u636e\u7684\u8d77\u59cb\u4f4d\u7f6e\uff08\u8d77\u59cb\u4f4d\u7f6e\u4e3a0\uff09,\u9ed8\u8ba4\u503c\u4e5f\u662f0\nint \u6570\u636e\u7684\u957f\u5ea6,\u9ed8\u8ba4\u662f\u5168\u90e8\u6570\u636e\n\u8fd4\u56de\u503c\uff1a\nstring \u8bfb\u51fa\u6765\u7684\u6570\u636e\n\u4f8b\u5b50\uff1a\nlocal s = buff:toStr(0,5)--\u8bfb\u53d6\u5f00\u5934\u7684\u4e94\u4e2a\u5b57\u8282\u6570\u636e\nlocal s = buff:toStr() -- \u53d6\u51fa\u6574\u4e2azbuff\u7684\u6570\u636e\nlocal s = buff:toStr(0, buff:used()) -- \u53d6\u51fa\u5df2\u4f7f\u7528\u7684\u90e8\u5206, \u4e0ebuff:query()\u4e00\u6837\n", "prefix": "buff:toStr"}, "buff:len": {"body": "buff:len()", "description": "buff:len() - \u83b7\u53d6zbuff\u5bf9\u8c61\u7684\u957f\u5ea6\uff08\u4e0e\u5f53\u524d\u6307\u9488\u4f4d\u7f6e\u65e0\u5173\uff1b\u6267\u884c\u540e\u6307\u9488\u4f4d\u7f6e\u4e0d\u53d8\uff09\n\u8fd4\u56de\u503c\uff1a\nint zbuff\u5bf9\u8c61\u7684\u957f\u5ea6\n\u4f8b\u5b50\uff1a\nlen = buff:len()\nlen = #buff\n", "prefix": "buff:len"}, "buff:setFrameBuffer": {"body": "buff:setFrameBuffer(${1:width},${2:height},${3:bit},${4:color})", "description": "buff:setFrameBuffer(width,height,bit,color) - \u8bbe\u7f6ebuff\u5bf9\u8c61\u7684FrameBuffer\u5c5e\u6027\uff08\u4e0e\u5f53\u524d\u6307\u9488\u4f4d\u7f6e\u65e0\u5173\uff1b\u6267\u884c\u540e\u6307\u9488\u4f4d\u7f6e\u4e0d\u53d8\uff09\n\u4f20\u5165\u503c\uff1a\nint FrameBuffer\u7684\u5bbd\u5ea6\nint FrameBuffer\u7684\u9ad8\u5ea6\nint FrameBuffer\u7684\u8272\u4f4d\u6df1\u5ea6\nint FrameBuffer\u7684\u521d\u59cb\u989c\u8272\n\u8fd4\u56de\u503c\uff1a\nbool \u8bbe\u7f6e\u6210\u529f\u4f1a\u8fd4\u56detrue\n\u4f8b\u5b50\uff1a\nresult = buff:setFrameBuffer(320,240,16,0xffff)\n", "prefix": "buff:setFrameBuffer"}, "buff:pixel": {"body": "buff:pixel(${1:x},${2:y},${3:color})", "description": "buff:pixel(x,y,color) - \u8bbe\u7f6e\u6216\u83b7\u53d6FrameBuffer\u67d0\u4e2a\u50cf\u7d20\u70b9\u7684\u989c\u8272\uff08\u4e0e\u5f53\u524d\u6307\u9488\u4f4d\u7f6e\u65e0\u5173\uff1b\u6267\u884c\u540e\u6307\u9488\u4f4d\u7f6e\u4e0d\u53d8\uff09\n\u4f20\u5165\u503c\uff1a\nint \u4e0e\u6700\u5de6\u8fb9\u7684\u8ddd\u79bb\uff0c\u8303\u56f4\u662f0~\u5bbd\u5ea6-1\nint \u4e0e\u6700\u4e0a\u8fb9\u7684\u8ddd\u79bb\uff0c\u8303\u56f4\u662f0~\u9ad8\u5ea6-1\nint \u989c\u8272\uff0c\u5982\u679c\u7559\u7a7a\u5219\u8868\u793a\u83b7\u53d6\u8be5\u4f4d\u7f6e\u7684\u989c\u8272\n\u8fd4\u56de\u503c\uff1a\nany \u8bbe\u7f6e\u989c\u8272\u65f6\uff0c\u8bbe\u7f6e\u6210\u529f\u4f1a\u8fd4\u56detrue\uff1b\u8bfb\u53d6\u989c\u8272\u65f6\uff0c\u8fd4\u56de\u989c\u8272\u7684\u503c\uff0c\u8bfb\u53d6\u5931\u8d25\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\nrerult = buff:pixel(0,3,0)\ncolor = buff:pixel(0,3)\n", "prefix": "buff:pixel"}, "buff:drawLine": {"body": "buff:drawLine(${1:x1},${2:y1},${3:x2},${4:y2},${5:color})", "description": "buff:drawLine(x1,y1,x2,y2,color) - \u753b\u4e00\u6761\u7ebf\uff08\u4e0e\u5f53\u524d\u6307\u9488\u4f4d\u7f6e\u65e0\u5173\uff1b\u6267\u884c\u540e\u6307\u9488\u4f4d\u7f6e\u4e0d\u53d8\uff09\n\u4f20\u5165\u503c\uff1a\nint \u8d77\u59cb\u5750\u6807\u70b9\u4e0e\u6700\u5de6\u8fb9\u7684\u8ddd\u79bb\uff0c\u8303\u56f4\u662f0~\u5bbd\u5ea6-1\nint \u8d77\u59cb\u5750\u6807\u70b9\u4e0e\u6700\u4e0a\u8fb9\u7684\u8ddd\u79bb\uff0c\u8303\u56f4\u662f0~\u9ad8\u5ea6-1\nint \u7ed3\u675f\u5750\u6807\u70b9\u4e0e\u6700\u5de6\u8fb9\u7684\u8ddd\u79bb\uff0c\u8303\u56f4\u662f0~\u5bbd\u5ea6-1\nint \u7ed3\u675f\u5750\u6807\u70b9\u4e0e\u6700\u4e0a\u8fb9\u7684\u8ddd\u79bb\uff0c\u8303\u56f4\u662f0~\u9ad8\u5ea6-1\nint \u53ef\u9009\uff0c\u989c\u8272\uff0c\u9ed8\u8ba4\u4e3a0\n\u8fd4\u56de\u503c\uff1a\nbool \u753b\u6210\u529f\u4f1a\u8fd4\u56detrue\n\u4f8b\u5b50\uff1a\nrerult = buff:drawLine(0,0,2,3,0xffff)\n", "prefix": "buff:drawLine"}, "buff:drawRect": {"body": "buff:drawRect(${1:x1},${2:y1},${3:x2},${4:y2},${5:color},${6:fill})", "description": "buff:drawRect(x1,y1,x2,y2,color,fill) - \u753b\u4e00\u4e2a\u77e9\u5f62\uff08\u4e0e\u5f53\u524d\u6307\u9488\u4f4d\u7f6e\u65e0\u5173\uff1b\u6267\u884c\u540e\u6307\u9488\u4f4d\u7f6e\u4e0d\u53d8\uff09\n\u4f20\u5165\u503c\uff1a\nint \u8d77\u59cb\u5750\u6807\u70b9\u4e0e\u6700\u5de6\u8fb9\u7684\u8ddd\u79bb\uff0c\u8303\u56f4\u662f0~\u5bbd\u5ea6-1\nint \u8d77\u59cb\u5750\u6807\u70b9\u4e0e\u6700\u4e0a\u8fb9\u7684\u8ddd\u79bb\uff0c\u8303\u56f4\u662f0~\u9ad8\u5ea6-1\nint \u7ed3\u675f\u5750\u6807\u70b9\u4e0e\u6700\u5de6\u8fb9\u7684\u8ddd\u79bb\uff0c\u8303\u56f4\u662f0~\u5bbd\u5ea6-1\nint \u7ed3\u675f\u5750\u6807\u70b9\u4e0e\u6700\u4e0a\u8fb9\u7684\u8ddd\u79bb\uff0c\u8303\u56f4\u662f0~\u9ad8\u5ea6-1\nint \u53ef\u9009\uff0c\u989c\u8272\uff0c\u9ed8\u8ba4\u4e3a0\nbool \u53ef\u9009\uff0c\u662f\u5426\u5728\u5185\u90e8\u586b\u5145\uff0c\u9ed8\u8ba4nil\n\u8fd4\u56de\u503c\uff1a\nbool \u753b\u6210\u529f\u4f1a\u8fd4\u56detrue\n\u4f8b\u5b50\uff1a\nrerult = buff:drawRect(0,0,2,3,0xffff)\n", "prefix": "buff:drawRect"}, "buff:drawCircle": {"body": "buff:drawCircle(${1:x},${2:y},${3:r},${4:color},${5:fill})", "description": "buff:drawCircle(x,y,r,color,fill) - \u753b\u4e00\u4e2a\u5706\u5f62\uff08\u4e0e\u5f53\u524d\u6307\u9488\u4f4d\u7f6e\u65e0\u5173\uff1b\u6267\u884c\u540e\u6307\u9488\u4f4d\u7f6e\u4e0d\u53d8\uff09\n\u4f20\u5165\u503c\uff1a\nint **\u5706\u5fc3**\u4e0e\u6700\u5de6\u8fb9\u7684\u8ddd\u79bb\uff0c\u8303\u56f4\u662f0~\u5bbd\u5ea6-1\nint **\u5706\u5fc3**\u4e0e\u6700\u4e0a\u8fb9\u7684\u8ddd\u79bb\uff0c\u8303\u56f4\u662f0~\u9ad8\u5ea6-1\nint \u5706\u7684\u534a\u5f84\nint \u53ef\u9009\uff0c\u5706\u7684\u989c\u8272\uff0c\u9ed8\u8ba4\u4e3a0\nbool \u53ef\u9009\uff0c\u662f\u5426\u5728\u5185\u90e8\u586b\u5145\uff0c\u9ed8\u8ba4nil\n\u8fd4\u56de\u503c\uff1a\nbool \u753b\u6210\u529f\u4f1a\u8fd4\u56detrue\n\u4f8b\u5b50\uff1a\nrerult = buff:drawCircle(15,5,3,0xC)\nrerult = buff:drawCircle(15,5,3,0xC,true)\n", "prefix": "buff:drawCircle"}, "buff[n": {"body": "buff[n]", "description": "buff[n] - \u4ee5\u4e0b\u6807\u5f62\u5f0f\u8fdb\u884c\u6570\u636e\u8bfb\u5199\uff08\u4e0e\u5f53\u524d\u6307\u9488\u4f4d\u7f6e\u65e0\u5173\uff1b\u6267\u884c\u540e\u6307\u9488\u4f4d\u7f6e\u4e0d\u53d8\uff09\n\u4f20\u5165\u503c\uff1a\nint \u7b2c\u51e0\u4e2a\u6570\u636e\uff0c\u4ee50\u5f00\u59cb\u7684\u4e0b\u6807\uff08C\u6807\u51c6\uff09\n\u8fd4\u56de\u503c\uff1a\nnumber \u8be5\u4f4d\u7f6e\u7684\u6570\u636e\n\u4f8b\u5b50\uff1a\nbuff[0] = 0xc8\nlocal data = buff[0]\n", "prefix": "buff[n"}, "buff:resize": {"body": "buff:resize(${1:n})", "description": "buff:resize(n) - \u8c03\u6574zbuff\u5b9e\u9645\u5206\u914d\u7a7a\u95f4\u7684\u5927\u5c0f\uff0c\u7c7b\u4f3c\u4e8erealloc\u7684\u6548\u679c\uff0cnew = realloc(old, n)\uff0c\u53ef\u4ee5\u6269\u5927\u6216\u8005\u7f29\u5c0f\uff08\u5982\u679c\u7f29\u5c0f\u540elen\u5c0f\u4e8e\u4e86used\uff0c\u90a3\u4e48used=\u65b0len\uff09\n\u4f20\u5165\u503c\uff1a\nint \u65b0\u7a7a\u95f4\u5927\u5c0f\n\u4f8b\u5b50\uff1a\nbuff:resize(20)\n", "prefix": "buff:resize"}, "buff:copy": {"body": "buff:copy(${1:start},${2:para},${3:...})", "description": "buff:copy(start, para,...) - zbuff\u52a8\u6001\u5199\u6570\u636e\uff0c\u7c7b\u4f3c\u4e8ememcpy\u6548\u679c\uff0c\u5f53\u539f\u6709\u7a7a\u95f4\u4e0d\u8db3\u65f6\u52a8\u6001\u6269\u5927\u7a7a\u95f4\n\u4f20\u5165\u503c\uff1a\nint \u5199\u5165buff\u7684\u8d77\u59cb\u4f4d\u7f6e\uff0c\u5982\u679c\u4e0d\u4e3a\u6570\u5b57\uff0c\u5219\u4e3abuff\u7684used\uff0c\u5982\u679c\u5c0f\u4e8e0\uff0c\u5219\u4eceused\u5f80\u524d\u6570\uff0c-1 = used - 1\nany \u5199\u5165buff\u7684\u6570\u636e\uff0cstring\u6216zbuff\u8005\u65f6\u4e3a\u4e00\u4e2a\u53c2\u6570\uff0cnumber\u65f6\u53ef\u4e3a\u591a\u4e2a\u53c2\u6570\n\u8fd4\u56de\u503c\uff1a\nnumber \u6570\u636e\u6210\u529f\u5199\u5165\u7684\u957f\u5ea6\n\u4f8b\u5b50\uff1a\nlocal len = buff:copy(nil, \"123\") -- \u7c7b\u4f3c\u4e8ememcpy(&buff[used], \"123\", 3) used+= 3 \u4ecebuff\u5f00\u59cb\u5199\u5165\u6570\u636e,\u6307\u9488\u76f8\u5e94\u5730\u5f80\u540e\u79fb\u52a8\nlocal len = buff:copy(0, \"123\") -- \u7c7b\u4f3c\u4e8ememcpy(&buff[0], \"123\", 3) if (used < 3) used = 3 \u4ece\u4f4d\u7f6e0\u5199\u5165\u6570\u636e,\u6307\u9488\u6709\u53ef\u80fd\u4f1a\u79fb\u52a8\nlocal len = buff:copy(2, 0x1a,0x30,0x31,0x32,0x00,0x01) -- \u7c7b\u4f3c\u4e8ememcpy(&buff[2], [0x1a,0x30,0x31,0x32,0x00,0x01], 6) if (used < (2+6)) used = (2+6)\u4ece\u4f4d\u7f6e2\u5f00\u59cb\uff0c\u6309\u6570\u503c\u5199\u5165\u591a\u4e2a\u5b57\u8282\u6570\u636e\nlocal len = buff:copy(9, buff2) -- \u7c7b\u4f3c\u4e8ememcpy(&buff[9], &buff2[0], buff2\u7684used) if (used < (9+buff2\u7684used)) used = (9+buff2\u7684used) \u4ece\u4f4d\u7f6e9\u5f00\u59cb\uff0c\u5408\u5e76\u5165buff2\u91cc0~used\u7684\u5185\u5bb9\nlocal len = buff:copy(5, buff2, 10, 1024) -- \u7c7b\u4f3c\u4e8ememcpy(&buff[5], &buff2[10], 1024) if (used < (5+1024)) used = (5+1024)\n", "prefix": "buff:copy"}, "buff:used": {"body": "buff:used()", "description": "buff:used() - \u83b7\u53d6zbuff\u91cc\u6700\u540e\u4e00\u4e2a\u6570\u636e\u4f4d\u7f6e\u6307\u9488\u5230\u9996\u5730\u5740\u7684\u504f\u79fb\u91cf\uff0c\u6765\u8868\u793azbuff\u5185\u5df2\u6709\u6709\u6548\u6570\u636e\u91cf\u5927\u5c0f\uff0c\u6ce8\u610f\u8fd9\u4e2a\u4e0d\u540c\u4e8e\u5206\u914d\u7684\u7a7a\u95f4\u5927\u5c0f\uff0c\u7531\u4e8eseek()\u4f1a\u6539\u53d8\u6700\u540e\u4e00\u4e2a\u6570\u636e\u4f4d\u7f6e\u6307\u9488\uff0c\u56e0\u6b64\u4e5f\u4f1a\u5f71\u54cd\u5230used()\u8fd4\u56de\u503c\u3002\n\u8fd4\u56de\u503c\uff1a\nint \u6709\u6548\u6570\u636e\u91cf\u5927\u5c0f\n\u4f8b\u5b50\uff1a\nbuff:used()\n", "prefix": "buff:used"}, "buff:del": {"body": "buff:del(${1:offset},${2:length})", "description": "buff:del(offset,length) - \u5220\u9664zbuff 0~used\u8303\u56f4\u5185\u7684\u4e00\u6bb5\u6570\u636e\uff0c\u6ce8\u610f\u53ea\u662f\u6539\u53d8\u4e86used\u7684\u503c\uff0c\u5e76\u4e0d\u662f\u771f\u7684\u5728ram\u91cc\u53bb\u6e05\u9664\u6389\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nint \u8d77\u59cb\u4f4d\u7f6estart, \u9ed8\u8ba40\uff0c\u5982\u679c<0\u5219\u4eceused\u5f80\u524d\u6570\uff0c\u6bd4\u5982 -1 \u90a3\u4e48start= used - 1\nint \u957f\u5ea6del_len\uff0c\u9ed8\u8ba4\u4e3aused\uff0c\u5982\u679cstart + del_len\u6570\u503c\u5927\u4e8eused\uff0c\u4f1a\u5f3a\u5236\u8c03\u6574del_len = used - start\n\u4f8b\u5b50\uff1a\nbuff:del(1,4)\t--\u4ece\u4f4d\u7f6e1\u5f00\u59cb\u5220\u96644\u4e2a\u5b57\u8282\u6570\u636e\nbuff:del(-1,4)\t--\u4ece\u4f4d\u7f6eused-1\u5f00\u59cb\u5220\u96644\u4e2a\u5b57\u8282\u6570\u636e\uff0c\u4f46\u662f\u8fd9\u80af\u5b9a\u4f1a\u8d85\u8fc7used\uff0c\u6240\u4ee5del_len\u4f1a\u8c03\u6574\u4e3a1\uff0c\u5b9e\u9645\u4e0a\u5c31\u662f\u5220\u6389\u4e86\u6700\u540e\u4e00\u4e2a\u5b57\u8282\n", "prefix": "buff:del"}, "buff:query": {"body": "buff:query(${1:offset},${2:length},${3:isbigend},${4:issigned},${5:isfloat})", "description": "buff:query(offset,length,isbigend,issigned,isfloat) - \u6309\u8d77\u59cb\u4f4d\u7f6e\u548c\u957f\u5ea60~used\u8303\u56f4\u5185\u53d6\u51fa\u6570\u636e\uff0c\u5982\u679c\u662f1,2,4,8\u5b57\u8282\uff0c\u6839\u636e\u540e\u7eed\u53c2\u6570\u8f6c\u6362\u6210\u6d6e\u70b9\u6216\u8005\u6574\u5f62\n\u4f20\u5165\u503c\uff1a\nint \u6570\u636e\u7684\u8d77\u59cb\u4f4d\u7f6e\uff08\u8d77\u59cb\u4f4d\u7f6e\u4e3a0\uff09\nint \u6570\u636e\u7684\u957f\u5ea6\nboolean \u662f\u5426\u662f\u5927\u7aef\u683c\u5f0f\uff0c\u5982\u679c\u4e3anil\uff0c\u5219\u4e0d\u4f1a\u8f6c\u6362\uff0c\u76f4\u63a5\u5b57\u8282\u6d41\u8f93\u51fa\nboolean \u662f\u5426\u662f\u6709\u7b26\u53f7\u7684\uff0c\u9ed8\u8ba4\u4e3afalse\nboolean \u662f\u5426\u662f\u6d6e\u70b9\u578b\uff0c\u9ed8\u8ba4\u4e3afalse\n\u8fd4\u56de\u503c\uff1a\nstring \u8bfb\u51fa\u6765\u7684\u6570\u636e\n\u4f8b\u5b50\uff1a\nlocal s = buff:query(0,5)--\u8bfb\u53d6\u5f00\u5934\u7684\u4e94\u4e2a\u5b57\u8282\u6570\u636e\n", "prefix": "buff:query"}, "buff:set": {"body": "buff:set(${1:start},${2:num},${3:len})", "description": "buff:set(start, num, len) - zbuff\u7684\u7c7b\u4f3c\u4e8ememset\u64cd\u4f5c\uff0c\u7c7b\u4f3c\u4e8ememset(&buff[start], num, len)\uff0c\u5f53\u7136\u6709ram\u8d8a\u754c\u4fdd\u62a4\uff0c\u4f1a\u5bf9len\u6709\u4e00\u5b9a\u7684\u9650\u5236\n\u4f20\u5165\u503c\uff1a\nint \u53ef\u9009\uff0c\u5f00\u59cb\u4f4d\u7f6e\uff0c\u9ed8\u8ba4\u4e3a0,\nint \u53ef\u9009\uff0c\u9ed8\u8ba4\u4e3a0\u3002\u8981\u8bbe\u7f6e\u4e3a\u7684\u503c\nint \u53ef\u9009\uff0c\u957f\u5ea6\uff0c\u9ed8\u8ba4\u4e3a\u5168\u90e8\u7a7a\u95f4\uff0c\u5982\u679c\u8d85\u51fa\u8303\u56f4\u4e86\uff0c\u4f1a\u81ea\u52a8\u622a\u65ad\n\u4f8b\u5b50\uff1a\n-- \u5168\u90e8\u521d\u59cb\u5316\u4e3a0\nbuff:set() --\u7b49\u540c\u4e8e memset(buff, 0, sizeof(buff))\nbuff:set(8) --\u7b49\u540c\u4e8e memset(&buff[8], 0, sizeof(buff) - 8)\nbuff:set(0, 0x55) --\u7b49\u540c\u4e8e memset(buff, 0x55, sizeof(buff))\nbuff:set(4, 0xaa, 12) --\u7b49\u7528\u4e8e memset(&buff[4], 0xaa, 12)\n", "prefix": "buff:set"}, "buff:isEqual": {"body": "buff:isEqual(${1:start},${2:buff2},${3:start2},${4:len})", "description": "buff:isEqual(start, buff2, start2, len) - zbuff\u7684\u7c7b\u4f3c\u4e8ememcmp\u64cd\u4f5c\uff0c\u7c7b\u4f3c\u4e8ememcmp(&buff[start], &buff2[start2], len)\n\u4f20\u5165\u503c\uff1a\nint \u53ef\u9009\uff0c\u5f00\u59cb\u4f4d\u7f6e\uff0c\u9ed8\u8ba4\u4e3a0,\nzbuff \u6bd4\u8f83\u7684\u5bf9\u8c61\nint \u53ef\u9009\uff0c\u6bd4\u8f83\u7684\u5bf9\u8c61\u7684\u5f00\u59cb\u4f4d\u7f6e\uff0c\u9ed8\u8ba4\u4e3a0\nint \u6bd4\u8f83\u957f\u5ea6\n\u8fd4\u56de\u503c\uff1a\nboolean true\u76f8\u7b49\uff0cfalse\u4e0d\u76f8\u7b49\nint \u76f8\u7b49\u8fd4\u56de0\uff0c\u4e0d\u76f8\u7b49\u8fd4\u56de\u7b2c\u4e00\u4e2a\u4e0d\u76f8\u7b49\u4f4d\u7f6e\u7684\u5e8f\u53f7\n\u4f8b\u5b50\uff1a\nlocal result, offset = buff:isEqual(1, buff2, 2, 10) --\u7b49\u540c\u4e8ememcmp(&buff[1], &buff2[2], 10)\n", "prefix": "buff:isEqual"}, "zlib.c": {"body": "zlib.c(${1:input_file},${2:output_file})", "description": "zlib.c(input_file,output_file) - zlib\u538b\u7f29(\u9700\u8981\u5927\u7ea6270k\u5185\u5b58\uff0c\u5927\u90e8\u5206mcu\u4e0d\u652f\u6301)\n\u4f20\u5165\u503c\uff1a\nstring input_file \u8f93\u5165\u6587\u4ef6\nstring output_file \u8f93\u51fa\u6587\u4ef6\n\u8fd4\u56de\u503c\uff1a\nbool \u6b63\u5e38\u8fd4\u56de ture \u5931\u8d25\u8fd4\u56de false\n\u4f8b\u5b50\uff1a\nzlib.c(\"/sd/1.txt\",\"/sd/zlib\")\n", "prefix": "zlib.c"}, "zlib.d": {"body": "zlib.d(${1:input_file},${2:output_file})", "description": "zlib.d(input_file,output_file) - zlib\u89e3\u538b\u7f29(\u9700\u8981\u5927\u7ea618k\u5185\u5b58\uff0c\u5927\u90e8\u5206mcu\u90fd\u652f\u6301)\n\u4f20\u5165\u503c\uff1a\nstring input_file \u8f93\u5165\u6587\u4ef6\nstring output_file \u8f93\u51fa\u6587\u4ef6\n\u8fd4\u56de\u503c\uff1a\nbool \u6b63\u5e38\u8fd4\u56de ture \u5931\u8d25\u8fd4\u56de false\n\u4f8b\u5b50\uff1a\nzlib.d(\"/sd/zlib\",\"/sd/1.txt\")\n", "prefix": "zlib.d"}} \ No newline at end of file +{"_G": {"body": "_G(${0:...})", "description": "_G", "prefix": "_G"}, "_VERSION": {"body": "_VERSION(${0:...})", "description": "_VERSION", "prefix": "_VERSION"}, "assert": {"body": "assert(${1:v}${2:[, message]})", "description": "assert()", "prefix": "assert"}, "collectgarbage": {"body": "collectgarbage(${1:[opt]}${2:[, arg]})", "description": "collectgarbage()", "prefix": "collectgarbage"}, "coroutine.create": {"body": "coroutine.create( ${1:function} )", "description": "coroutine.create", "prefix": "coroutine.create"}, "coroutine.isyieldable": {"body": "coroutine.isyieldable( )", "description": "coroutine.isyieldable", "prefix": "coroutine.isyieldable"}, "coroutine.resume": {"body": "coroutine.resume( ${1:co}${2:[, val1, \u00b7\u00b7\u00b7]} )", "description": "coroutine.resume", "prefix": "coroutine.resume"}, "coroutine.running": {"body": "coroutine.running( )", "description": "coroutine.running", "prefix": "coroutine.running"}, "coroutine.status": {"body": "coroutine.status( ${1:co} )", "description": "coroutine.status", "prefix": "coroutine.status"}, "coroutine.wrap": {"body": "coroutine.wrap( ${1:function} )", "description": "coroutine.wrap", "prefix": "coroutine.wrap"}, "coroutine.yield": {"body": "coroutine.yield( ${1:...} )", "description": "coroutine.yield", "prefix": "coroutine.yield"}, "debug.debug": {"body": "debug.debug()", "description": "debug.debug ()", "prefix": "debug.debug"}, "debug.getfenv": {"body": "debug.getfenv(${0:...})", "description": "debug.getfenv (o)", "prefix": "debug.getfenv"}, "debug.gethook": {"body": "debug.gethook( ${1:[thread]} )", "description": "debug.gethook ([thread])", "prefix": "debug.gethook"}, "debug.getinfo": {"body": "debug.getinfo( ${1:[thread],}${2:f}${3:[, what]} )", "description": "debug.getinfo ([thread,] f [, what])", "prefix": "debug.getinfo"}, "debug.getlocal": {"body": "debug.getlocal( ${1:[thread],}${2:f}${3:[, local]} )", "description": "debug.getlocal ([thread,] f, local)", "prefix": "debug.getlocal"}, "debug.getmetatable": {"body": "debug.getmetatable( ${1:value} )", "description": "debug.getmetatable (value)", "prefix": "debug.getmetatable"}, "debug.getregistry": {"body": "debug.getregistry()", "description": "debug.getregistry ()", "prefix": "debug.getregistry"}, "debug.getupvalue": {"body": "debug.getupvalue( ${1:f}, ${2:up} )", "description": "debug.getupvalue (f, up)", "prefix": "debug.getupvalue"}, "debug.getuservalue": {"body": "debug.getuservalue(${0:...})", "description": "debug.getuservalue (u)", "prefix": "debug.getuservalue"}, "debug.getuservalue ": {"body": "debug.getuservalue ( ${1:u} )", "description": "debug.getuservalue (u)", "prefix": "debug.getuservalue "}, "debug.setfenv": {"body": "debug.setfenv(${0:...})", "description": "debug.setfenv (object, table)", "prefix": "debug.setfenv"}, "debug.sethook": {"body": "debug.sethook( ${1:[thead,]}${2:hook}, ${3:mask}${4:[, count]} )", "description": "debug.sethook ([thread,] hook, mask [, count])", "prefix": "debug.sethook"}, "debug.setlocal": {"body": "debug.setlocal( ${1:[thead,]}${2:level}, ${3:local}, ${4:value} )", "description": "debug.setlocal ([thread,] level, local, value)", "prefix": "debug.setlocal"}, "debug.setmetatable": {"body": "debug.setmetatable( ${1:value}, ${2:table} )", "description": "debug.setmetatable (value, table)", "prefix": "debug.setmetatable"}, "debug.setupvalue": {"body": "debug.setupvalue( ${1:f}, ${2:up}, ${3:value} )", "description": "debug.setupvalue (f, up, value)", "prefix": "debug.setupvalue"}, "debug.setuservalue": {"body": "debug.setuservalue( ${1:udata}, ${2:value} )", "description": "debug.setuservalue (udata, value)", "prefix": "debug.setuservalue"}, "debug.traceback": {"body": "debug.traceback( ${1:[thread,]}${2:[message]}${3:[, level]} )", "description": "debug.traceback ([thread,] [message [, level]])", "prefix": "debug.traceback"}, "debug.upvalueid": {"body": "debug.upvalueid( ${1:f}, ${2:n})", "description": "debug.upvalueid (f, n)", "prefix": "debug.upvalueid"}, "debug.upvaluejoin": {"body": "debug.upvaluejoin( ${1:f1}, ${2:n1}, ${3:f2}, ${4:n2} )", "description": "debug.upvaluejoin (f1, n1, f2, n2)", "prefix": "debug.upvaluejoin"}, "dofile": {"body": "dofile(${1:[filename]})", "description": "dofile ([filename])", "prefix": "dofile"}, "elif": {"body": "else if ${1:condition} then\n\t${0:-- body}\n", "description": "elif", "prefix": "elif"}, "error": {"body": "error(${0:...})", "description": "error (message [, level])", "prefix": "error"}, "file:close": {"body": "file:close(${0:...})", "description": "file:close ()", "prefix": "file:close"}, "file:flush": {"body": "file:flush(${0:...})", "description": "file:flush ()", "prefix": "file:flush"}, "file:lines": {"body": "file:lines(${0:...})", "description": "file:lines ()", "prefix": "file:lines"}, "file:read": {"body": "file:read(${0:...})", "description": "file:read (...)", "prefix": "file:read"}, "file:seek": {"body": "file:seek(${0:...})", "description": "file:seek ([whence] [, offset])", "prefix": "file:seek"}, "file:setvbuf": {"body": "file:setvbuf(${0:...})", "description": "file:setvbuf (mode [, size])", "prefix": "file:setvbuf"}, "file:write": {"body": "file:write(${0:...})", "description": "file:write (...)", "prefix": "file:write"}, "for": {"body": "for ${1:i}=${2:1},${3:10} do\n\t${0:print(i)}\nend", "description": "for i=1,10", "prefix": "for"}, "fori": {"body": "for ${1:i},${2:v} in ipairs(${3:table_name}) do\n\t${0:print(i,v)}\nend", "description": "for i,v in ipairs()", "prefix": "fori"}, "forp": {"body": "for ${1:k},${2:v} in pairs(${3:table_name}) do\n\t${0:print(k,v)}\nend", "description": "for k,v in pairs()", "prefix": "forp"}, "fun": {"body": "function ${1:function_name}( ${2:...} )\n\t${0:-- body}\nend", "description": "function", "prefix": "fun"}, "function": {"body": "function ${1:function_name}( ${2:...} )\n\t${0:-- body}\nend", "description": "function", "prefix": "function"}, "getfenv": {"body": "getfenv(${0:...})", "description": "getfenv ([f])", "prefix": "getfenv"}, "getmetatable": {"body": "getmetatable(${1:object})", "description": "getmetatable (object)", "prefix": "getmetatable"}, "if": {"body": "if ${1:condition} then\n\t${0:-- body}\nend", "description": "if", "prefix": "if"}, "ifel": {"body": "if ${1:condition} then\n\t${2:-- body}\nelse\n\t${0:-- body}\nend", "description": "ifel", "prefix": "ifel"}, "io.close": {"body": "io.close(${0:...})", "description": "io.close ([file])", "prefix": "io.close"}, "io.flush": {"body": "io.flush(${0:...})", "description": "io.flush ()", "prefix": "io.flush"}, "io.input": {"body": "io.input(${0:...})", "description": "io.input ([file])", "prefix": "io.input"}, "io.lines": {"body": "io.lines(${0:...})", "description": "io.lines ([filename])", "prefix": "io.lines"}, "io.open": {"body": "io.open(${0:...})", "description": "io.open (filename [, mode])", "prefix": "io.open"}, "io.output": {"body": "io.output(${0:...})", "description": "io.output ([file])", "prefix": "io.output"}, "io.popen": {"body": "io.popen(${0:...})", "description": "io.popen (prog [, mode])", "prefix": "io.popen"}, "io.read": {"body": "io.read(${0:...})", "description": "io.read (...)", "prefix": "io.read"}, "io.tmpfile": {"body": "io.tmpfile(${0:...})", "description": "io.tmpfile ()", "prefix": "io.tmpfile"}, "io.type": {"body": "io.type(${0:...})", "description": "io.type (obj)", "prefix": "io.type"}, "io.write": {"body": "io.write(${0:...})", "description": "io.write (...)", "prefix": "io.write"}, "ipairs": {"body": "ipairs(${0:...})", "description": "ipairs (t)", "prefix": "ipairs"}, "load": {"body": "load(${0:...})", "description": "load (func [, chunkname])", "prefix": "load"}, "loadfile": {"body": "loadfile(${0:...})", "description": "loadfile ([filename])", "prefix": "loadfile"}, "loadstring": {"body": "loadstring(${0:...})", "description": "loadstring (string [, chunkname])", "prefix": "loadstring"}, "local": {"body": "local ${1:x} = ${0:1}", "description": "local x = 1", "prefix": "local"}, "math.abs": {"body": "math.abs( ${1:x} )", "description": "math.abs", "prefix": "math.abs"}, "math.acos": {"body": "math.acos( ${1:x} )", "description": "math.acos", "prefix": "math.acos"}, "math.asin": {"body": "math.asin( ${1:x} )", "description": "math.asin", "prefix": "math.asin"}, "math.atan": {"body": "math.atan( ${1:y}${2:[, x]} )", "description": "math.atan", "prefix": "math.atan"}, "math.atan2": {"body": "math.atan2(${0:...})", "description": "math.atan2 (y, x)", "prefix": "math.atan2"}, "math.ceil": {"body": "math.ceil( ${1:x} )", "description": "math.ceil", "prefix": "math.ceil"}, "math.cos": {"body": "math.cos( ${1:x} )", "description": "math.cos", "prefix": "math.cos"}, "math.cosh": {"body": "math.cosh(${0:...})", "description": "math.cosh (x)", "prefix": "math.cosh"}, "math.deg": {"body": "math.deg( ${1:x} )", "description": "math.deg", "prefix": "math.deg"}, "math.exp": {"body": "math.exp( ${1:x} )", "description": "math.exp", "prefix": "math.exp"}, "math.floor": {"body": "math.floor( ${1:x} )", "description": "math.floor", "prefix": "math.floor"}, "math.fmod": {"body": "math.fmod( ${1:x},${2:y} )", "description": "math.fmod", "prefix": "math.fmod"}, "math.frexp": {"body": "math.frexp(${0:...})", "description": "math.frexp (x)", "prefix": "math.frexp"}, "math.huge": {"body": "math.huge(${0:...})", "description": "math.huge", "prefix": "math.huge"}, "math.ldexp": {"body": "math.ldexp(${0:...})", "description": "math.ldexp (m, e)", "prefix": "math.ldexp"}, "math.log": {"body": "math.log( ${1:x}${2:[, base]} )", "description": "math.log", "prefix": "math.log"}, "math.log10": {"body": "math.log10(${0:...})", "description": "math.log10 (x)", "prefix": "math.log10"}, "math.math.randomseed": {"body": "math.math.randomseed( ${1:x} )", "description": "math.math.randomseed", "prefix": "math.math.randomseed"}, "math.max": {"body": "math.max( ${1:x},${2:...} )", "description": "math.max", "prefix": "math.max"}, "math.maxinteger": {"body": "math.maxinteger(${0:...})", "description": "math.maxinteger", "prefix": "math.maxinteger"}, "math.min": {"body": "math.min( ${1:x},${2:...} )", "description": "math.min", "prefix": "math.min"}, "math.mininteger": {"body": "math.mininteger(${0:...})", "description": "math.mininteger", "prefix": "math.mininteger"}, "math.modf": {"body": "math.modf( ${1:x} )", "description": "math.modf", "prefix": "math.modf"}, "math.pi": {"body": "math.pi(${0:...})", "description": "math.pi", "prefix": "math.pi"}, "math.pow": {"body": "math.pow(${0:...})", "description": "math.pow (x, y)", "prefix": "math.pow"}, "math.rad": {"body": "math.rad(${0:...})", "description": "math.rad (x)", "prefix": "math.rad"}, "math.random": {"body": "math.random( ${1:[m]}${2:[, n]} )", "description": "math.random", "prefix": "math.random"}, "math.randomseed": {"body": "math.randomseed(${0:...})", "description": "math.randomseed (x)", "prefix": "math.randomseed"}, "math.sin": {"body": "math.sin( ${1:x} )", "description": "math.sin", "prefix": "math.sin"}, "math.sinh": {"body": "math.sinh(${0:...})", "description": "math.sinh (x)", "prefix": "math.sinh"}, "math.sqrt": {"body": "math.sqrt( ${1:x} )", "description": "math.sqrt", "prefix": "math.sqrt"}, "math.tan": {"body": "math.tan( ${1:x} )", "description": "math.tan", "prefix": "math.tan"}, "math.tanh": {"body": "math.tanh(${0:...})", "description": "math.tanh (x)", "prefix": "math.tanh"}, "math.tointeger": {"body": "math.tointeger( ${1:x} )", "description": "math.tointeger", "prefix": "math.tointeger"}, "math.type": {"body": "math.type( ${1:x} )", "description": "math.type", "prefix": "math.type"}, "math.ult": {"body": "math.ult(${0:...})", "description": "math.ult (m, n)", "prefix": "math.ult"}, "module": {"body": "module(${0:...})", "description": "module (name [, ...])", "prefix": "module"}, "next": {"body": "next(${1:table}${2:[, index]})", "description": "next (table [, index])", "prefix": "next"}, "os.clock": {"body": "os.clock()", "description": "os.clock() - \u8fd4\u56de\u7a0b\u5e8f\u4f7f\u7528\u7684\u6309\u79d2\u8ba1 CPU \u65f6\u95f4\u7684\u8fd1\u4f3c\u503c\n\u4f20\u5165\u503c\uff1a\nreturn \u65f6\u95f4\u6233\n\u4f8b\u5b50\uff1a\n-- \u4e0d\u63a8\u8350\u4f7f\u7528\u672cAPI\n-- \u5982\u9700\u8981\u83b7\u53d6 \u65f6\u95f4\u6233, \u8bf7\u4f7f\u7528 os.time()\n-- \u5982\u9700\u83b7\u53d6\u7cfb\u7edf\u8fd0\u884c\u65f6\u957f, \u8bf7\u4f7f\u7528 mcu.ticks()\n", "prefix": "os.clock"}, "os.date": {"body": "os.date(${1:fmt},${2:time})", "description": "os.date(fmt, time) - \u65e5\u671f\u51fd\u6570\n\u4f20\u5165\u503c\uff1a\nstring \u683c\u5f0f\u5316\u5b57\u7b26\u4e32,\u53ef\u4ee5\u662fnil\ntable \u65e5\u671f\u65f6\u95f4\u7684table\n\u8fd4\u56de\u503c\uff1a\ntable/string \u6839\u636efmt\u7684\u4e0d\u540c,\u8fd4\u56de\u503c\u4e0d\u540c\n\u4f8b\u5b50\uff1a\n\n-- \u503c\u5f97\u6ce8\u610f\u7684\u51e0\u70b9:\n-- 1. \u82e5\u9700\u8981UTC\u65f6\u95f4, fmt\u7684\u7b2c\u4e00\u4e2a\u5b57\u7b26\u5199\"!\"\n-- 2. fmt\u7684\u683c\u5f0f\u5316\u9075\u5faa C \u51fd\u6570 strftime, \u53ef\u4ee5\u67e5\u9605 https://developer.aliyun.com/article/320480\n\n-- \u83b7\u53d6\u672c\u5730\u65f6\u95f4\u5b57\u7b26\u4e32\nlog.info(\"\u672c\u5730\u65f6\u95f4\u5b57\u7b26\u4e32\", os.date())\n-- \u83b7\u53d6UTC\u65f6\u95f4\u5b57\u7b26\u4e32\nlog.info(\"UTC\u65f6\u95f4\u5b57\u7b26\u4e32\", os.date(\"!%c\"))\n-- \u683c\u5f0f\u5316\u672c\u5730\u65f6\u95f4\u5b57\u7b26\u4e32\nlog.info(\"\u672c\u5730\u65f6\u95f4\u5b57\u7b26\u4e32\", os.date(\"%Y-%m-%d %H:%M:%S\"))\n-- \u683c\u5f0f\u5316UTC\u65f6\u95f4\u5b57\u7b26\u4e32\nlog.info(\"UTC\u65f6\u95f4\u5b57\u7b26\u4e32\", os.date(\"!%Y-%m-%d %H:%M:%S\"))\n-- \u683c\u5f0f\u5316\u65f6\u95f4\u5b57\u7b26\u4e32\nlog.info(\"\u81ea\u5b9a\u4e49\u65f6\u95f4\u7684\u5b57\u7b26\u4e32\", os.date(\"!%Y-%m-%d %H:%M:%S\", os.time({year=2000, mon=1, day=1, hour=0, min=0, sec=0})))\n\n-- \u83b7\u53d6\u672c\u5730\u65f6\u95f4\u7684table\nlog.info(\"\u672c\u5730\u65f6\u95f4\u5b57\u7b26\u4e32\", json.encode(os.date(\"*t\")))\n-- \u83b7\u53d6UTC\u65f6\u95f4\u7684table\nlog.info(\"UTC\u65f6\u95f4\u5b57\u7b26\u4e32\", json.encode(os.date(\"!*t\")))\n", "prefix": "os.date"}, "os.difftime": {"body": "os.difftime(${1:timeA},${2:timeB})", "description": "os.difftime(timeA, timeB) - \u65f6\u95f4\u5dee\u503c\n\u4f20\u5165\u503c\uff1a\nint \u65f6\u95f4A,\u6570\u503c\u7c7b\u578b\nint \u65f6\u95f4B,\u6570\u503c\u7c7b\u578b\n\u8fd4\u56de\u503c\uff1a\nint \u65f6\u95f4\u5dee\u503c\n", "prefix": "os.difftime"}, "os.execute": {"body": "os.execute(${0:...})", "description": "os.execute ([command])", "prefix": "os.execute"}, "os.exit": {"body": "os.exit(${0:...})", "description": "os.exit ([code])", "prefix": "os.exit"}, "os.getenv": {"body": "os.getenv(${0:...})", "description": "os.getenv (varname)", "prefix": "os.getenv"}, "os.remove": {"body": "os.remove(${1:path})", "description": "os.remove(path) - \u79fb\u9664\u6587\u4ef6\n\u4f20\u5165\u503c\uff1a\nstring \u5f85\u79fb\u9664\u7684\u6587\u4ef6\u5b8c\u6574\u8def\u5f84\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5176\u4ed6\u60c5\u51b5\u8fd4\u56denil\nstring \u5931\u8d25\u65f6\u8fd4\u56de\u539f\u56e0\u5b57\u7b26\u4e32\n\u4f8b\u5b50\uff1a\n-- \u5220\u9664\u6839\u76ee\u5f55\u4e0b\u7684\u67d0\u4e2a\u6587\u4ef6\nos.remove(\"/1.txt\")\n-- \u6ce8\u610f, \u7ebf\u5237\u65f6\u7684\u6587\u4ef6, \u4e00\u822c\u5728 /luadb \u76ee\u5f55, \u8fd9\u4e2a\u76ee\u5f55\u4e0b\u7684\u6587\u4ef6\u662f\u53ea\u8bfb\u7684\n-- \u4e5f\u5c31\u662f\u65e0\u6cd5\u6267\u884c os.remove(\"/luadb/xxx.bin\")\n", "prefix": "os.remove"}, "os.rename": {"body": "os.rename(${1:old_path},${2:new_path})", "description": "os.rename(old_path, new_path) - \u6587\u4ef6\u91cd\u547d\u540d\n\u4f20\u5165\u503c\uff1a\nstring \u6e90\u6587\u4ef6\u5b8c\u6574\u8def\u5f84\nstring \u76ee\u6807\u6587\u4ef6\u5b8c\u6574\u8def\u5f84\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5176\u4ed6\u60c5\u51b5\u8fd4\u56denil\nstring \u5931\u8d25\u65f6\u8fd4\u56de\u539f\u56e0\u5b57\u7b26\u4e32\n\u4f8b\u5b50\uff1a\n-- \u6ce8\u610f, \u53ea\u6709\u5728\u76f8\u540c\u6587\u4ef6\u7cfb\u7edf\u4e0b\u7684\u6587\u4ef6\u53ef\u4ee5\u91cd\u547d\u540d\n-- \u4f8b\u5982:\nos.rename(\"/1.txt\", \"/2.txt\")\n-- \u4e0d\u540c\u6587\u4ef6\u7cfb\u7edf, \u6216\u8005\u6e90\u6587\u4ef6\u7cfb\u7edf\u662f\u53ea\u8bfb\u7684, \u5219\u65e0\u6cd5\u6267\u884c\n--os.rename(\"/luadb/1.txt\", \"/luadb/2.txt\")\n--os.rename(\"/luadb/1.txt\", \"/2.txt\")\n", "prefix": "os.rename"}, "os.setlocale": {"body": "os.setlocale(${0:...})", "description": "os.setlocale (locale [, category])", "prefix": "os.setlocale"}, "os.time": {"body": "os.time(${1:mytime})", "description": "os.time(mytime) - \u65f6\u95f4\u6233\u51fd\u6570\n\u4f20\u5165\u503c\uff1a\ntable \u65e5\u671f\u65f6\u95f4\u7684table\nreturn \u65f6\u95f4\u6233\n\u4f8b\u5b50\uff1a\n-- \u6ce8\u610f\u6ce8\u610f, \u8fd9\u4e2a\u51fd\u6570\u8fd4\u56de\u7684\u662fUTC\u65f6\u95f4\u6233\n-- \u65f6\u95f4\u6233, \u4f46lua\u4e0b\u7684\u7cbe\u5ea6\u53ea\u80fd\u5230\u79d2\nlog.info(\"UTC\u65f6\u95f4\u6233\", os.time())\nlog.info(\"\u81ea\u5b9a\u4e49\u65f6\u95f4\u6233\", os.time({year=2000, mon=1, day=1, hour=0, min=0, sec=0}))\n", "prefix": "os.time"}, "os.tmpname": {"body": "os.tmpname(${0:...})", "description": "os.tmpname ()", "prefix": "os.tmpname"}, "package.config": {"body": "package.config(${0:...})", "description": "package.config", "prefix": "package.config"}, "package.cpath": {"body": "package.cpath(${0:...})", "description": "package.cpath", "prefix": "package.cpath"}, "package.loaded": {"body": "package.loaded(${0:...})", "description": "package.loaded", "prefix": "package.loaded"}, "package.loaders": {"body": "package.loaders(${0:...})", "description": "package.loaders", "prefix": "package.loaders"}, "package.loadlib": {"body": "package.loadlib(${0:...})", "description": "package.loadlib (libname, funcname)", "prefix": "package.loadlib"}, "package.path": {"body": "package.path(${0:...})", "description": "package.path", "prefix": "package.path"}, "package.preload": {"body": "package.preload(${0:...})", "description": "package.preload", "prefix": "package.preload"}, "package.searchers": {"body": "package.searchers(${0:...})", "description": "package.searchers", "prefix": "package.searchers"}, "package.searchpath": {"body": "package.searchpath(${0:...})", "description": "package.searchpath (name, path [, sep [, rep]])", "prefix": "package.searchpath"}, "package.seeall": {"body": "package.seeall(${0:...})", "description": "package.seeall (module)", "prefix": "package.seeall"}, "pairs": {"body": "pairs(${0:...})", "description": "pairs (t)", "prefix": "pairs"}, "pcall": {"body": "pcall(${0:...})", "description": "pcall (f, arg1, ...)", "prefix": "pcall"}, "print": {"body": "print(${1:...})", "description": "print(...)", "prefix": "print"}, "require": {"body": "require\"${1:module}\"", "description": "require()", "prefix": "require"}, "ret": {"body": "return ${1:...}", "description": "return ...", "prefix": "ret"}, "select": {"body": "select(${1:index}, ${2:...})", "description": "select (index, \u00b7\u00b7\u00b7)", "prefix": "select"}, "setfenv": {"body": "setfenv(${0:...})", "description": "setfenv (f, table)", "prefix": "setfenv"}, "setmetatable": {"body": "setmetatable(${1:table}, ${2:metatable})", "description": "setmetatable (table, metatable)", "prefix": "setmetatable"}, "tonumber": {"body": "tonumber(${1:e}${2:[, base]})", "description": "tonumber (e [, base])", "prefix": "tonumber"}, "tostring": {"body": "tostring(${1:v})", "description": "tostring (v)", "prefix": "tostring"}, "type": {"body": "type(${1:v})", "description": "type (v)", "prefix": "type"}, "unpack": {"body": "unpack(${0:...})", "description": "unpack (list [, i [, j]])", "prefix": "unpack"}, "xpcall": {"body": "xpcall(${0:...})", "description": "xpcall (f, err)", "prefix": "xpcall"}, "sys.publish(...)": {"body": "sys.publish(${1:...})", "description": "\u53d1\u5e03\u5185\u90e8\u6d88\u606f\uff0c\u5b58\u50a8\u5728\u5185\u90e8\u6d88\u606f\u961f\u5217\u4e2d\r\n\u8fd4\u56de\u503c\uff1a\r\n\u65e0\r\n\u4f8b\u5b50\uff1a\r\npublish(\"NET_STATUS_IND\")\r\n", "prefix": "sys.publish(...)"}, "sys.restart(r)": {"body": "sys.restart(${1:r})", "description": "\u8f6f\u4ef6\u91cd\u542f\r\n\u8fd4\u56de\u503c\uff1a\r\n\u65e0\r\n\u4f8b\u5b50\uff1a\r\nsys.restart('\u7a0b\u5e8f\u8d85\u65f6\u8f6f\u4ef6\u91cd\u542f')\r\n", "prefix": "sys.restart(r)"}, "sys.run()": {"body": "sys.run()", "description": "run()\u4ece\u5e95\u5c42\u83b7\u53d6core\u6d88\u606f\u5e76\u53ca\u65f6\u5904\u7406\u76f8\u5173\u6d88\u606f\uff0c\u67e5\u8be2\u5b9a\u65f6\u5668\u5e76\u8c03\u5ea6\u5404\u6ce8\u518c\u6210\u529f\u7684\u4efb\u52a1\u7ebf\u7a0b\u8fd0\u884c\u548c\u6302\u8d77\r\n\u8fd4\u56de\u503c\uff1a\r\n\u65e0\r\n\u4f8b\u5b50\uff1a\r\nsys.run()\r\n", "prefix": "sys.run()"}, "sys.setRollBack(flag, secs)": {"body": "sys.setRollBack(${1:flag},${2: secs})", "description": "\u8bbe\u7f6e\u201clua\u811a\u672c\u8fd0\u884c\u51fa\u9519\u65f6\uff0c\u662f\u5426\u56de\u9000\u539f\u59cb\u70e7\u5199\u7248\u672c\u201d\u7684\u529f\u80fd\u5f00\u5173\u3002\u5982\u679c\u6ca1\u6709\u8c03\u7528\u6b64\u63a5\u53e3\u8bbe\u7f6e\uff0c\u9ed8\u8ba4\u56de\u6eda\r\n\u8fd4\u56de\u503c\uff1a\r\nnil\r\n\u4f8b\u5b50\uff1a\r\nsys.setRollBack(true)\r\nsys.setRollBack(false)\r\n", "prefix": "sys.setRollBack(flag, secs)"}, "sys.subscribe(id, callback)": {"body": "sys.subscribe(${1:id},${2: callback})", "description": "\u8ba2\u9605\u6d88\u606f\r\n\u8fd4\u56de\u503c\uff1a\r\n\u65e0\r\n\u4f8b\u5b50\uff1a\r\nsubscribe(\"NET_STATUS_IND\", callback)\r\n", "prefix": "sys.subscribe(id, callback)"}, "sys.taskInit(fun, ...)": {"body": "sys.taskInit(${1:fun},${2: ...})", "description": "\u521b\u5efa\u4e00\u4e2a\u4efb\u52a1\u7ebf\u7a0b,\u5728\u6a21\u5757\u6700\u672b\u884c\u8c03\u7528\u8be5\u51fd\u6570\u5e76\u6ce8\u518c\u6a21\u5757\u4e2d\u7684\u4efb\u52a1\u51fd\u6570\uff0cmain.lua\u5bfc\u5165\u8be5\u6a21\u5757\u5373\u53ef\r\n\u8fd4\u56de\u503c\uff1a\r\nco \u8fd4\u56de\u8be5\u4efb\u52a1\u7684\u7ebf\u7a0b\u53f7\r\n\u4f8b\u5b50\uff1a\r\nsys.taskInit(task1,'a','b')\r\n", "prefix": "sys.taskInit(fun, ...)"}, "sys.timerIsActive(val, ...)": {"body": "sys.timerIsActive(${1:val},${2: ...})", "description": "\u5224\u65ad\u67d0\u4e2a\u5b9a\u65f6\u5668\u662f\u5426\u5904\u4e8e\u5f00\u542f\u72b6\u6001\r\n\u8fd4\u56de\u503c\uff1a\r\nnumber \u5f00\u542f\u72b6\u6001\u8fd4\u56detrue\uff0c\u5426\u5219nil", "prefix": "sys.timerIsActive(val, ...)"}, "sys.timerLoopStart(fnc, ms, ...)": {"body": "sys.timerLoopStart(${1:fnc},${2: ms},${3: ...})", "description": "\u5f00\u542f\u4e00\u4e2a\u5faa\u73af\u5b9a\u65f6\u5668\r\n\u8fd4\u56de\u503c\uff1a\r\nnumber \u5b9a\u65f6\u5668ID\uff0c\u5982\u679c\u5931\u8d25\uff0c\u8fd4\u56denil", "prefix": "sys.timerLoopStart(fnc, ms, ...)"}, "sys.timerStart(fnc, ms, ...)": {"body": "sys.timerStart(${1:fnc},${2: ms},${3: ...})", "description": "\u5f00\u542f\u4e00\u4e2a\u5b9a\u65f6\u5668\r\n\u8fd4\u56de\u503c\uff1a\r\nnumber \u5b9a\u65f6\u5668ID\uff0c\u5982\u679c\u5931\u8d25\uff0c\u8fd4\u56denil", "prefix": "sys.timerStart(fnc, ms, ...)"}, "sys.timerStop(val, ...)": {"body": "sys.timerStop(${1:val},${2: ...})", "description": "\u5173\u95ed\u5b9a\u65f6\u5668\r\n\u8fd4\u56de\u503c\uff1a\r\n\u65e0\r\n\u4f8b\u5b50\uff1a\r\ntimerStop(1)\r\n", "prefix": "sys.timerStop(val, ...)"}, "sys.timerStopAll(fnc)": {"body": "sys.timerStopAll(${1:fnc})", "description": "\u5173\u95ed\u540c\u4e00\u56de\u8c03\u51fd\u6570\u7684\u6240\u6709\u5b9a\u65f6\u5668\r\n\u8fd4\u56de\u503c\uff1a\r\n\u65e0\r\n\u4f8b\u5b50\uff1a\r\ntimerStopAll(cbFnc)\r\n", "prefix": "sys.timerStopAll(fnc)"}, "sys.unsubscribe(id, callback)": {"body": "sys.unsubscribe(${1:id},${2: callback})", "description": "\u53d6\u6d88\u8ba2\u9605\u6d88\u606f\r\n\u8fd4\u56de\u503c\uff1a\r\n\u65e0\r\n\u4f8b\u5b50\uff1a\r\nunsubscribe(\"NET_STATUS_IND\", callback)\r\n", "prefix": "sys.unsubscribe(id, callback)"}, "sys.wait(ms)": {"body": "sys.wait(${1:ms})", "description": "Task\u4efb\u52a1\u5ef6\u65f6\u51fd\u6570\uff0c\u53ea\u80fd\u7528\u4e8e\u4efb\u52a1\u51fd\u6570\u4e2d\r\n\u8fd4\u56de\u503c\uff1a\r\n\u5b9a\u65f6\u7ed3\u675f\u8fd4\u56denil,\u88ab\u5176\u4ed6\u7ebf\u7a0b\u5524\u8d77\u8fd4\u56de\u8c03\u7528\u7ebf\u7a0b\u4f20\u5165\u7684\u53c2\u6570\r\n\u4f8b\u5b50\uff1a\r\nsys.wait(30)\r\n", "prefix": "sys.wait(ms)"}, "sys.waitUntil(id, ms)": {"body": "sys.waitUntil(${1:id},${2: ms})", "description": "Task\u4efb\u52a1\u7684\u6761\u4ef6\u7b49\u5f85\u51fd\u6570\uff08\u5305\u62ec\u4e8b\u4ef6\u6d88\u606f\u548c\u5b9a\u65f6\u5668\u6d88\u606f\u7b49\u6761\u4ef6\uff09\uff0c\u53ea\u80fd\u7528\u4e8e\u4efb\u52a1\u51fd\u6570\u4e2d\u3002\r\n\u8fd4\u56de\u503c\uff1a\r\nresult \u63a5\u6536\u5230\u6d88\u606f\u8fd4\u56detrue\uff0c\u8d85\u65f6\u8fd4\u56defalse\r\n\u4f8b\u5b50\uff1a\r\nresult, data = sys.waitUntil(\"SIM_IND\", 120000)\r\n", "prefix": "sys.waitUntil(id, ms)"}, "sys.waitUntilExt(id, ms)": {"body": "sys.waitUntilExt(${1:id},${2: ms})", "description": "Task\u4efb\u52a1\u7684\u6761\u4ef6\u7b49\u5f85\u51fd\u6570\u6269\u5c55\uff08\u5305\u62ec\u4e8b\u4ef6\u6d88\u606f\u548c\u5b9a\u65f6\u5668\u6d88\u606f\u7b49\u6761\u4ef6\uff09\uff0c\u53ea\u80fd\u7528\u4e8e\u4efb\u52a1\u51fd\u6570\u4e2d\u3002\r\n\u8fd4\u56de\u503c\uff1a\r\nmessage \u63a5\u6536\u5230\u6d88\u606f\u8fd4\u56demessage\uff0c\u8d85\u65f6\u8fd4\u56defalse\r\n\u4f8b\u5b50\uff1a\r\nresult, data = sys.waitUntilExt(\"SIM_IND\", 120000)\r\n", "prefix": "sys.waitUntilExt(id, ms)"}, "table.concat(t,s)": {"body": "table.concat(${1:t},${2: s})", "description": "\u8868\u8fde\u63a5\r\n\u8fd4\u56de\u503c\uff1a\r\n \u5b57\u7b26\u4e32\r\n\u4f8b\u5b50\uff1a\r\nfruits = {\"banana\",\"orange\",\"apple\"}\r\n-- \u8fd4\u56de table \u8fde\u63a5\u540e\u7684\u5b57\u7b26\u4e32\r\nprint(\"\u8fde\u63a5\u540e\u7684\u5b57\u7b26\u4e32 \",table.concat(fruits))\r\n--\u8fde\u63a5\u540e\u7684\u5b57\u7b26\u4e32 bananaorangeapple\r\n\r\n-- \u6307\u5b9a\u8fde\u63a5\u5b57\u7b26\r\nprint(\"\u8fde\u63a5\u540e\u7684\u5b57\u7b26\u4e32 \",table.concat(fruits,\", \"))\r\n--\u8fde\u63a5\u540e\u7684\u5b57\u7b26\u4e32 banana, orange, apple\r\n\r\n-- \u6307\u5b9a\u7d22\u5f15\u6765\u8fde\u63a5 table\r\nprint(\"\u8fde\u63a5\u540e\u7684\u5b57\u7b26\u4e32 \",table.concat(fruits,\", \", 2,3))\r\n--\u8fde\u63a5\u540e\u7684\u5b57\u7b26\u4e32 orange, apple\r\n", "prefix": "table.concat()"}, "table.gsort(t, f)": {"body": "table.gsort(${1:t},${2: f})", "description": "\u8fd4\u56de\u4e00\u4e2a\u8fed\u4ee3\u5668\u51fd\u6570,\u6bcf\u6b21\u8c03\u7528\u51fd\u6570\u90fd\u4f1a\u8fd4\u56dehash\u8868\u7684\u6392\u5e8f\u540e\u7684\u952e\u503c\u5bf9\r\n\u8fd4\u56de\u503c\uff1a\r\nfunction.\r\n\u4f8b\u5b50\uff1a\r\ntest = {a=1,f=9,d=2,c=8,b=5}\r\nfor name,line in pairsByKeys(test) do print(name,line) end\r\n", "prefix": "table.gsort(t, f)"}, "table.insert(t,d)": {"body": "table.insert(${1:t},${2: d})", "description": "\u6dfb\u52a0table\u53c2\u6570\r\n\u8fd4\u56de\u503c\uff1a\r\n table\r\n\u4f8b\u5b50\uff1a\r\nfruits = {\"banana\",\"orange\",\"apple\"}\r\n\r\n-- \u5728\u672b\u5c3e\u63d2\u5165\r\ntable.insert(fruits,\"mango\")\r\nprint(\"\u7d22\u5f15\u4e3a 4 \u7684\u5143\u7d20\u4e3a \",fruits[4])\r\n--\u7d22\u5f15\u4e3a 4 \u7684\u5143\u7d20\u4e3a mango\r\n\r\n-- \u5728\u7d22\u5f15\u4e3a 2 \u7684\u952e\u5904\u63d2\u5165\r\ntable.insert(fruits,2,\"grapes\")\r\nprint(\"\u7d22\u5f15\u4e3a 2 \u7684\u5143\u7d20\u4e3a \",fruits[2])\r\n--\u7d22\u5f15\u4e3a 2 \u7684\u5143\u7d20\u4e3a grapes\r\n\r\nprint(\"\u6700\u540e\u4e00\u4e2a\u5143\u7d20\u4e3a \",fruits[5])\r\n--\u6700\u540e\u4e00\u4e2a\u5143\u7d20\u4e3a mango\r\n", "prefix": "table.insert()"}, "table.remove(t,i)": {"body": "table.remove(${1:t},${2: i})", "description": "\u79fb\u9664table\u53c2\u6570\r\n\u8fd4\u56de\u503c\uff1a\r\n table", "prefix": "table.remove()"}, "string.byte()": {"body": "string.byte()", "description": "\u63a5\u6536\u63a7\u5236\u5b57\u7b26\uff0c\u8fd4\u56deASCII\u7801\r\n\u8fd4\u56de\u503c\uff1a\r\n ASCII\u7801\r\n\u4f8b\u5b50\uff1a\r\nstring.byte(\"ABCD\") --65\r\nstring.byte(\"ABCD\",4) --68\r\n", "prefix": "string.byte()"}, "string.char()": {"body": "string.char()", "description": "\u63a5\u6536ASCII\u7801\uff0c\u8fd4\u56de\u5bf9\u5e94\u7684\u63a7\u5236\u5b57\u7b26\r\n\u8fd4\u56de\u503c\uff1a\r\n \u5b57\u7b26\r\n\u4f8b\u5b50\uff1a\r\nstring.char(97,98,99,100) --abcd\r\n", "prefix": "string.char()"}, "string.find()": {"body": "string.find()", "description": "\u67e5\u627e\u7b2c\u4e00\u4e2a\u5b57\u7b26\u4e32\u00a0s\u00a0\u4e2d\u5339\u914d\u5230\u7684\u00a0pattern\r\n\u8fd4\u56de\u503c\uff1a\r\n \u8fd4\u56de\u5339\u914d\u5b57\u7b26\u5177\u4f53\u4f4d\u7f6e\u3002\u4e0d\u5b58\u5728\u5219\u8fd4\u56de nil\r\n\u4f8b\u5b50\uff1a\r\nstring.find(\"Hello Lua user\", \"Lua\", 1) --7 9\r\n", "prefix": "string.find()"}, "string.format()": {"body": "string.format()", "description": "\u683c\u5f0f\u5316\u5b57\u7b26\u4e32\r\n\u8fd4\u56de\u503c\uff1a\r\n \u5b57\u7b26\u4e32\r\n\u4f8b\u5b50\uff1a\r\nstring.format(\"the value is:%d\",4) --the value is:4\r\n", "prefix": "string.format()"}, "string.gsub()": {"body": "string.gsub()", "description": "\u5b57\u7b26\u4e32\u66ff\u6362", "prefix": "string.gsub()"}, "string.len()": {"body": "string.len()", "description": "\u8ba1\u7b97\u5b57\u7b26\u4e32\u957f\u5ea6\r\n\u8fd4\u56de\u503c\uff1a\r\n \u5b57\u7b26\u4e32\u957f\u5ea6\r\n\u4f8b\u5b50\uff1a\r\nstring.len(\"abc\") --3\r\n", "prefix": "string.len()"}, "string.lower()": {"body": "string.lower()", "description": "\u5b57\u7b26\u4e32\u5168\u90e8\u8f6c\u4e3a\u5c0f\u5199\u5b57\u6bcd\r\n\u8fd4\u56de\u503c\uff1a\r\n \u5c0f\u5199\u5b57\u6bcd\u5b57\u7b26\u4e32", "prefix": "string.lower()"}, "string.rep()": {"body": "string.rep()", "description": "\u5b57\u7b26\u4e32\u62f7\u8d1d\r\n\u8fd4\u56de\u503c\uff1a\r\n \u5b57\u7b26\u4e32\r\n\u4f8b\u5b50\uff1a\r\nstring.rep(\"abcd\",2) --abcdabcd\r\n", "prefix": "string.rep()"}, "string.reverse()": {"body": "string.reverse()", "description": "\u5b57\u7b26\u4e32\u53cd\u8f6c\r\n\u8fd4\u56de\u503c\uff1a\r\n \u53cd\u8f6c\u540e\u7684\u5b57\u7b26\u4e32\r\n\u4f8b\u5b50\uff1a\r\nstring.reverse(\"Luat\") --tauL\r\n", "prefix": "string.reverse()"}, "string.split(str, delimiter)": {"body": "string.split(${1:str},${2: delimiter})", "description": "\u6309\u7167\u6307\u5b9a\u5206\u9694\u7b26\u5206\u5272\u5b57\u7b26\u4e32\r\n\u8fd4\u56de\u503c\uff1a\r\n\u5206\u5272\u540e\u7684\u5b57\u7b26\u4e32\u5217\u8868\r\n\u4f8b\u5b50\uff1a\r\n\"123,456,789\":split(',') -> {'123','456','789'}\r\n", "prefix": "string.split(str, delimiter)"}, "string.upper()": {"body": "string.upper()", "description": "\u5b57\u7b26\u4e32\u5168\u90e8\u8f6c\u4e3a\u5927\u5199\u5b57\u6bcd\r\n\u8fd4\u56de\u503c\uff1a\r\n \u5927\u5199\u5b57\u6bcd\u5b57\u7b26\u4e32", "prefix": "string.upper()"}, "adc.open": {"body": "adc.open(${1:id})", "description": "adc.open(id) - \u6253\u5f00adc\u901a\u9053\n\u4f20\u5165\u503c\uff1a\nint \u901a\u9053id,\u4e0e\u5177\u4f53\u8bbe\u5907\u6709\u5173,\u901a\u5e38\u4ece0\u5f00\u59cb\n\u8fd4\u56de\u503c\uff1a\nboolean \u6253\u5f00\u7ed3\u679c\n\u4f8b\u5b50\uff1a\n-- \u6253\u5f00adc\u901a\u90534,\u5e76\u8bfb\u53d6\nif adc.open(4) then\n log.info(\"adc\", adc.read(4)) -- \u8fd4\u56de\u503c\u67092\u4e2a, \u539f\u59cb\u503c\u548c\u8ba1\u7b97\u503c,\u901a\u5e38\u53ea\u9700\u8981\u540e\u8005\n log.info(\"adc\", adc.get(4)) -- \u8fd4\u56de\u503c\u67091\u4e2a, \u4ec5\u8ba1\u7b97\u503c\nend\nadc.close(4) -- \u82e5\u9700\u8981\u6301\u7eed\u8bfb\u53d6, \u5219\u4e0d\u9700\u8981close, \u529f\u8017\u4f1a\u9ad8\u4e00\u70b9.\n", "prefix": "adc.open"}, "adc.setRange": {"body": "adc.setRange(${1:range})", "description": "adc.setRange(range) - \u8bbe\u7f6eADC\u7684\u6d4b\u91cf\u8303\u56f4\uff0c\u6ce8\u610f\u8fd9\u4e2a\u548c\u5177\u4f53\u82af\u7247\u6709\u5173\uff0c\u76ee\u524d\u53ea\u652f\u6301air105/Air780E\u7cfb\u5217\n\u4f20\u5165\u503c\uff1a\nint range\u53c2\u6570,\u4e0e\u5177\u4f53\u8bbe\u5907\u6709\u5173,\u6bd4\u5982air105\u586badc.ADC_RANGE_1_8\u548cadc.ADC_RANGE_3_6\nreturn nil\n\u4f8b\u5b50\uff1a\n-- \u5173\u95edair105\u5185\u90e8\u5206\u538b\nadc.setRange(adc.ADC_RANGE_1_8)\n-- \u6253\u5f00air105\u5185\u90e8\u5206\u538b\nadc.setRange(adc.ADC_RANGE_3_6)\n\n\n-- EC618\u7cfb\u5217(Air780E\u7b49)\u652f\u63012\u79cd\nadc.setRange(adc.ADC_RANGE_1_2) -- \u5173\u95ed\u5206\u538b\nadc.setRange(adc.ADC_RANGE_3_8) -- \u542f\u7528\u5206\u538b\n", "prefix": "adc.setRange"}, "adc.read": {"body": "adc.read(${1:id})", "description": "adc.read(id) - \u8bfb\u53d6adc\u901a\u9053\n\u4f20\u5165\u503c\uff1a\nint \u901a\u9053id,\u4e0e\u5177\u4f53\u8bbe\u5907\u6709\u5173,\u901a\u5e38\u4ece0\u5f00\u59cb\n\u8fd4\u56de\u503c\uff1a\nint \u539f\u59cb\u503c,\u4e00\u822c\u6ca1\u7528,\u53ef\u4ee5\u76f4\u63a5\u629b\u5f03\nint \u4ece\u539f\u59cb\u503c\u6362\u7b97\u5f97\u51fa\u7684\u5b9e\u9645\u503c\uff0c\u901a\u5e38\u5355\u4f4d\u662fmV\n\u4f8b\u5b50\uff1a\n-- \u6253\u5f00adc\u901a\u90532,\u5e76\u8bfb\u53d6\nif adc.open(2) then\n -- \u8fd9\u91cc\u4f7f\u7528\u7684\u662fadc.read\u4f1a\u8fd4\u56de2\u4e2a\u503c, \u63a8\u8350\u8d70adc.get\u51fd\u6570,\u76f4\u63a5\u53d6\u5b9e\u9645\u503c\n log.info(\"adc\", adc.read(2))\nend\nadc.close(2)\n", "prefix": "adc.read"}, "adc.get": {"body": "adc.get(${1:id})", "description": "adc.get(id) - \u83b7\u53d6adc\u8ba1\u7b97\u503c\n\u4f20\u5165\u503c\uff1a\nint \u901a\u9053id,\u4e0e\u5177\u4f53\u8bbe\u5907\u6709\u5173,\u901a\u5e38\u4ece0\u5f00\u59cb\n\u8fd4\u56de\u503c\uff1a\nint \u5355\u4f4d\u901a\u5e38\u662fmV, \u90e8\u5206\u901a\u9053\u4f1a\u8fd4\u56de\u6e29\u5ea6\u503c,\u5355\u4f4d\u5343\u5206\u4e4b\u4e00\u6444\u6c0f\u5ea6. \u82e5\u8bfb\u53d6\u5931\u8d25,\u4f1a\u8fd4\u56de-1\n\u4f8b\u5b50\uff1a\n-- \u672cAPI \u5728 2022.10.01\u540e\u7f16\u8bd1\u7684\u56fa\u4ef6\u53ef\u7528\n-- \u6253\u5f00adc\u901a\u90532,\u5e76\u8bfb\u53d6\nif adc.open(2) then\n log.info(\"adc\", adc.get(2))\nend\nadc.close(2) -- \u6309\u9700\u5173\u95ed\n", "prefix": "adc.get"}, "adc.close": {"body": "adc.close(${1:id})", "description": "adc.close(id) - \u5173\u95edadc\u901a\u9053\n\u4f20\u5165\u503c\uff1a\nint \u901a\u9053id,\u4e0e\u5177\u4f53\u8bbe\u5907\u6709\u5173,\u901a\u5e38\u4ece0\u5f00\u59cb\n\u4f8b\u5b50\uff1a\n-- \u6253\u5f00adc\u901a\u90532,\u5e76\u8bfb\u53d6\nif adc.open(2) then\n log.info(\"adc\", adc.read(2))\nend\nadc.close(2)\n", "prefix": "adc.close"}, "audio.start": {"body": "audio.start(${1:id},${2:audio_format},${3:num_channels},${4:sample_rate},${5:bits_per_sample},${6:is_signed})", "description": "audio.start(id, audio_format, num_channels, sample_rate, bits_per_sample, is_signed) - \u542f\u52a8\u4e00\u4e2a\u591a\u5a92\u4f53\u901a\u9053\u51c6\u5907\u64ad\u653e\u97f3\u9891\n\u4f20\u5165\u503c\uff1a\nint \u591a\u5a92\u4f53\u64ad\u653e\u901a\u9053\u53f7\uff0c0\u6216\u80051\nint \u97f3\u9891\u683c\u5f0f\nint \u58f0\u97f3\u901a\u9053\u6570\nint \u91c7\u6837\u9891\u7387\nint \u91c7\u6837\u4f4d\u6570\nboolean \u662f\u5426\u6709\u7b26\u53f7\uff0c\u9ed8\u8ba4true\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529ftrue, \u5931\u8d25false\n\u4f8b\u5b50\uff1a\naudio.start(0, audio.PCM, 1, 16000, 16)\n", "prefix": "audio.start"}, "audio.write": {"body": "audio.write(${1:id},${2:data})", "description": "audio.write(id, data) - \u5f80\u4e00\u4e2a\u591a\u5a92\u4f53\u901a\u9053\u5199\u5165\u97f3\u9891\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nstring or zbuff \u97f3\u9891\u6570\u636e\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\naudio.write(0, \"xxxxxx\")\n", "prefix": "audio.write"}, "audio.stop": {"body": "audio.stop(${1:id})", "description": "audio.stop(id) - \u505c\u6b62\u6307\u5b9a\u7684\u591a\u5a92\u4f53\u901a\u9053\n\u4f20\u5165\u503c\uff1a\nint audio id,\u4f8b\u59820\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\naudio.stop(0)\n", "prefix": "audio.stop"}, "audio.pause": {"body": "audio.pause(${1:id},${2:pause})", "description": "audio.pause(id, pause) - \u6682\u505c/\u6062\u590d\u6307\u5b9a\u7684\u591a\u5a92\u4f53\u901a\u9053\n\u4f20\u5165\u503c\uff1a\nint audio id,\u4f8b\u59820\nboolean onoff true \u6682\u505c\uff0cfalse \u6062\u590d\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\naudio.pause(0, true) --\u6682\u505c\u901a\u90530\naudio.pause(0, false) --\u6062\u590d\u901a\u90530\n", "prefix": "audio.pause"}, "audio.on": {"body": "audio.on(${1:id},${2:event},${3:func})", "description": "audio.on(id, event, func) - \u6ce8\u518caudio\u64ad\u653e\u4e8b\u4ef6\u56de\u8c03\n\u4f20\u5165\u503c\uff1a\nint audio id, audio 0\u51990, audio 1\u51991\nfunction \u56de\u8c03\u65b9\u6cd5\uff0c\u56de\u8c03\u65f6\u4f20\u5165\u53c2\u6570\u4e3a1\u3001int \u901a\u9053ID 2\u3001int \u6d88\u606f\u503c\uff0c\u53ea\u6709audio.MORE_DATA\u548caudio.DONE\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\naudio.on(0, function(audio_id, msg)\n log.info(\"msg\", audio_id, msg)\nend)\n", "prefix": "audio.on"}, "audio.play": {"body": "audio.play(${1:id},${2:path},${3:errStop})", "description": "audio.play(id, path, errStop) - \u64ad\u653e\u6216\u8005\u505c\u6b62\u64ad\u653e\u4e00\u4e2a\u6587\u4ef6\uff0c\u64ad\u653e\u5b8c\u6210\u540e\uff0c\u4f1a\u56de\u8c03\u4e00\u4e2aaudio.DONE\u6d88\u606f\uff0c\u53ef\u4ee5\u7528pause\u6765\u6682\u505c\u6216\u8005\u6062\u590d\uff0c\u5176\u4ed6API\u4e0d\u53ef\u7528\u3002\u8003\u8651\u5230\u8bfbSD\u5361\u901f\u5ea6\u6bd4\u8f83\u6162\u800c\u62d6\u7d2fluavm\u8fdb\u7a0b\u7684\u901f\u5ea6\uff0c\u6240\u4ee5\u5c3d\u91cf\u4f7f\u7528\u672cAPI\n\u4f20\u5165\u503c\uff1a\nint \u97f3\u9891\u901a\u9053\nstring/table \u6587\u4ef6\u540d\uff0c\u5982\u679c\u4e3a\u7a7a\uff0c\u5219\u8868\u793a\u505c\u6b62\u64ad\u653e\uff0c\u5982\u679c\u662ftable\uff0c\u5219\u8868\u793a\u8fde\u7eed\u64ad\u653e\u591a\u4e2a\u6587\u4ef6\uff0c\u4e3b\u8981\u5e94\u7528\u4e8e\u4e91\u5587\u53ed\uff0c\u76ee\u524d\u53ea\u6709EC618\u652f\u6301\uff0c\u5e76\u4e14\u4f1a\u7528\u5230errStop\u53c2\u6570\nboolean \u662f\u5426\u5728\u6587\u4ef6\u89e3\u7801\u5931\u8d25\u540e\u505c\u6b62\u89e3\u7801\uff0c\u53ea\u6709\u5728\u8fde\u7eed\u64ad\u653e\u591a\u4e2a\u6587\u4ef6\u65f6\u624d\u6709\u7528\uff0c\u9ed8\u8ba4true\uff0c\u9047\u5230\u89e3\u7801\u9519\u8bef\u81ea\u52a8\u505c\u6b62\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\naudio.play(0, \"xxxxxx\")\t\t--\u5f00\u59cb\u64ad\u653e\u67d0\u4e2a\u6587\u4ef6\naudio.play(0)\t\t\t\t--\u505c\u6b62\u64ad\u653e\u67d0\u4e2a\u6587\u4ef6\n", "prefix": "audio.play"}, "audio.tts": {"body": "audio.tts(${1:id},${2:data})", "description": "audio.tts(id, data) - TTS\u64ad\u653e\u6216\u8005\u505c\u6b62\n\u4f20\u5165\u503c\uff1a\nint \u97f3\u9891\u901a\u9053\nstring/zbuff \u9700\u8981\u64ad\u653e\u7684\u5185\u5bb9\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n", "prefix": "audio.tts"}, "audio.playStop": {"body": "audio.playStop(${1:id})", "description": "audio.playStop(id) - \u505c\u6b62\u64ad\u653e\u6587\u4ef6\uff0c\u548caudio.play(id)\u662f\u4e00\u6837\u7684\u4f5c\u7528\n\u4f20\u5165\u503c\uff1a\nint audio id,\u4f8b\u59820\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\naudio.playStop(0)\n", "prefix": "audio.playStop"}, "audio.isEnd": {"body": "audio.isEnd(${1:id})", "description": "audio.isEnd(id) - \u68c0\u67e5\u5f53\u524d\u6587\u4ef6\u662f\u5426\u5df2\u7ecf\u64ad\u653e\u7ed3\u675f\n\u4f20\u5165\u503c\uff1a\nint \u97f3\u9891\u901a\u9053\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\naudio.isEnd(0)\n\n", "prefix": "audio.isEnd"}, "audio.getError": {"body": "audio.getError(${1:id})", "description": "audio.getError(id) - \u83b7\u53d6\u6700\u8fd1\u4e00\u6b21\u64ad\u653e\u7ed3\u679c\uff0c\u4e0d\u662f\u6240\u6709\u5e73\u53f0\u90fd\u652f\u6301\u7684\uff0c\u76ee\u524d\u53ea\u6709EC618\u652f\u6301\n\u4f20\u5165\u503c\uff1a\nint \u97f3\u9891\u901a\u9053\n\u8fd4\u56de\u503c\uff1a\nboolean \u662f\u5426\u5168\u90e8\u64ad\u653e\u6210\u529f\uff0ctrue\u6210\u529f\uff0cfalse\u6709\u6587\u4ef6\u64ad\u653e\u5931\u8d25\nboolean \u5982\u679c\u64ad\u653e\u5931\u8d25\uff0c\u662f\u5426\u662f\u7528\u6237\u505c\u6b62\uff0ctrue\u662f\uff0cfalse\u4e0d\u662f\nint \u7b2c\u51e0\u4e2a\u6587\u4ef6\u5931\u8d25\u4e86\uff0c\u4ece1\u5f00\u59cb\n\u4f8b\u5b50\uff1a\nlocal result, user_stop, file_no = audio.getError(0)\n", "prefix": "audio.getError"}, "audio.config": {"body": "audio.config(${1:id},${2:paPin},${3:onLevel},${4:dacDelay},${5:paDelay},${6:dacPin},${7:dacLevel},${8:dacTimeDelay})", "description": "audio.config(id, paPin, onLevel, dacDelay, paDelay, dacPin, dacLevel, dacTimeDelay) - \u914d\u7f6e\u4e00\u4e2a\u97f3\u9891\u901a\u9053\u7684\u7279\u6027\uff0c\u6bd4\u5982\u5b9e\u73b0\u81ea\u52a8\u63a7\u5236PA\u5f00\u5173\u3002\u6ce8\u610f\u8fd9\u4e2a\u4e0d\u662f\u5fc5\u987b\u7684\uff0c\u4e00\u822c\u5728\u8c03\u7528play\u7684\u65f6\u5019\u624d\u9700\u8981\u81ea\u52a8\u63a7\u5236\uff0c\u5176\u4ed6\u60c5\u51b5\u6bd4\u5982\u4f60\u624b\u52a8\u63a7\u5236\u64ad\u653e\u65f6\uff0c\u5c31\u53ef\u4ee5\u81ea\u5df1\u63a7\u5236PA\u5f00\u5173\n\u4f20\u5165\u503c\uff1a\nint \u97f3\u9891\u901a\u9053\nint PA\u63a7\u5236IO\nint PA\u6253\u5f00\u65f6\u7684\u7535\u5e73\nint \u5728DAC\u542f\u52a8\u524d\u63d2\u5165\u7684\u5197\u4f59\u65f6\u95f4\uff0c\u5355\u4f4d100ms\uff0c\u4e00\u822c\u7528\u4e8e\u5916\u90e8DAC\nint \u5728DAC\u542f\u52a8\u540e\uff0c\u5ef6\u8fdf\u591a\u957f\u65f6\u95f4\u6253\u5f00PA\uff0c\u5355\u4f4d1ms\nint \u5916\u90e8dac\u7535\u6e90\u63a7\u5236IO\uff0c\u5982\u679c\u4e0d\u586b\uff0c\u5219\u8868\u793a\u4f7f\u7528\u5e73\u53f0\u9ed8\u8ba4IO\uff0c\u6bd4\u5982Air780E\u4f7f\u7528DACEN\u811a\uff0cair105\u5219\u4e0d\u542f\u7528\nint \u5916\u90e8dac\u6253\u5f00\u65f6\uff0c\u7535\u6e90\u63a7\u5236IO\u7684\u7535\u5e73\uff0c\u9ed8\u8ba4\u62c9\u9ad8\nint \u97f3\u9891\u64ad\u653e\u5b8c\u6bd5\u65f6\uff0cPA\u4e0eDAC\u5173\u95ed\u7684\u65f6\u95f4\u95f4\u9694\uff0c\u5355\u4f4d1ms\uff0c\u9ed8\u8ba40ms\n\u4f8b\u5b50\uff1a\naudio.config(0, pin.PC0, 1)\t--PA\u63a7\u5236\u811a\u662fPC0\uff0c\u9ad8\u7535\u5e73\u6253\u5f00\uff0cair105\u7528\u8fd9\u4e2a\u914d\u7f6e\u5c31\u53ef\u4ee5\u7528\u4e86\naudio.config(0, 25, 1, 6, 200)\t--PA\u63a7\u5236\u811a\u662fGPIO25\uff0c\u9ad8\u7535\u5e73\u6253\u5f00\uff0cAir780E\u4e91\u5587\u53ed\u677f\u7528\u8fd9\u4e2a\u914d\u7f6e\u5c31\u53ef\u4ee5\u7528\u4e86\n", "prefix": "audio.config"}, "audio.vol": {"body": "audio.vol(${1:id},${2:value})", "description": "audio.vol(id, value) - \u914d\u7f6e\u4e00\u4e2a\u97f3\u9891\u901a\u9053\u7684\u97f3\u91cf\u8c03\u8282\uff0c\u76f4\u63a5\u5c06\u539f\u59cb\u6570\u636e\u653e\u5927\u6216\u8005\u7f29\u5c0f\uff0c\u4e0d\u662f\u6240\u6709\u5e73\u53f0\u90fd\u652f\u6301\uff0c\u5efa\u8bae\u5c3d\u91cf\u7528\u786c\u4ef6\u65b9\u6cd5\u53bb\u7f29\u653e\n\u4f20\u5165\u503c\uff1a\nint \u97f3\u9891\u901a\u9053\nint \u97f3\u91cf\uff0c\u767e\u5206\u6bd4\uff0c1%~1000%\uff0c\u9ed8\u8ba4100%\uff0c\u5c31\u662f\u4e0d\u8c03\u8282\n\u8fd4\u56de\u503c\uff1a\nint \u5f53\u524d\u97f3\u91cf\n\u4f8b\u5b50\uff1a\nlocal result = audio.vol(0, 90)\t--\u901a\u90530\u7684\u97f3\u91cf\u8c03\u8282\u523090%\uff0cresult\u5b58\u653e\u4e86\u8c03\u8282\u540e\u7684\u97f3\u91cf\u6c34\u5e73\uff0c\u6709\u53ef\u80fd\u4ecd\u7136\u662f100\n", "prefix": "audio.vol"}, "audio.setBus": {"body": "audio.setBus(${1:id},${2:bus_type})", "description": "audio.setBus(id, bus_type) - \u914d\u7f6e\u4e00\u4e2a\u97f3\u9891\u901a\u9053\u7684\u786c\u4ef6\u8f93\u51fa\u603b\u7ebf\uff0c\u53ea\u6709\u5bf9\u5e94soc\u8f6f\u786c\u4ef6\u5e73\u53f0\u652f\u6301\u624d\u8bbe\u7f6e\u5bf9\u5e94\u7c7b\u578b\n\u4f20\u5165\u503c\uff1a\nint \u97f3\u9891\u901a\u9053,\u4f8b\u59820\nint \u603b\u7ebf\u7c7b\u578b, \u4f8b\u5982 audio.BUS_SOFT_DAC\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\naudio.setBus(0, audio.BUS_SOFT_DAC)\t--\u901a\u90530\u7684\u786c\u4ef6\u8f93\u51fa\u901a\u9053\u8bbe\u7f6e\u4e3a\u8f6f\u4ef6DAC\naudio.setBus(0, audio.BUS_I2S)\t--\u901a\u90530\u7684\u786c\u4ef6\u8f93\u51fa\u901a\u9053\u8bbe\u7f6e\u4e3aI2S\n", "prefix": "audio.setBus"}, "audio.debug": {"body": "audio.debug(${1:on_off})", "description": "audio.debug(on_off) - \u914d\u7f6e\u8c03\u8bd5\u4fe1\u606f\u8f93\u51fa\n\u4f20\u5165\u503c\uff1a\nboolean true\u5f00 false\u5173\n", "prefix": "audio.debug"}, "bit64.to32": {"body": "bit64.to32(${1:data64bit})", "description": "bit64.to32(data64bit) - 64bit\u6570\u636e\u8f6c\u621032bit\u8f93\u51fa\n\u4f20\u5165\u503c\uff1a\nstring 9\u5b57\u8282\u6570\u636e\n\u8fd4\u56de\u503c\uff1a\nany \u6839\u636e64bit\u6570\u636e\u8f93\u51faint\u6216\u8005number\n", "prefix": "bit64.to32"}, "bit64.to64": {"body": "bit64.to64(${1:data32bit})", "description": "bit64.to64(data32bit) - 32bit\u6570\u636e\u8f6c\u621064bit\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nint/number 32bit\u6570\u636e\n\u8fd4\u56de\u503c\uff1a\nstring 9\u5b57\u8282\u6570\u636e\n", "prefix": "bit64.to64"}, "bit64.show": {"body": "bit64.show(${1:a},${2:type},${3:flag})", "description": "bit64.show(a,type,flag) - 64bit\u6570\u636e\u683c\u5f0f\u5316\u6253\u5370\u6210\u5b57\u7b26\u4e32\uff0c\u7528\u4e8e\u663e\u793a\u503c\n\u4f20\u5165\u503c\uff1a\nstring \u9700\u8981\u6253\u5370\u768464bit\u6570\u636e\nint \u8fdb\u5236\uff0c10=10\u8fdb\u5236\uff0c16=16\u8fdb\u5236\uff0c\u9ed8\u8ba410\uff0c\u53ea\u652f\u630110\u6216\u800516\nboolean \u6574\u5f62\u662f\u5426\u6309\u7167\u65e0\u7b26\u53f7\u65b9\u5f0f\u6253\u5370\uff0ctrue\u662f\uff0cfalse\u4e0d\u662f\uff0c\u9ed8\u8ba4false\uff0c\u6d6e\u70b9\u5ffd\u7565\n\u8fd4\u56de\u503c\uff1a\nstring \u53ef\u4ee5\u6253\u5370\u7684\u503c\n", "prefix": "bit64.show"}, "bit64.plus": {"body": "bit64.plus(${1:a},${2:b},${3:flag1},${4:flag2})", "description": "bit64.plus(a,b,flag1,flag2) - 64bit\u6570\u636e\u52a0,a+b,a\u548cb\u4e2d\u6709\u4e00\u4e2a\u4e3a\u6d6e\u70b9\uff0c\u5219\u6309\u7167\u6d6e\u70b9\u8fd0\u7b97\n\u4f20\u5165\u503c\uff1a\nstring a\nstring/int/number b\nboolean \u6574\u5f62\u8fd0\u7b97\u65f6\u662f\u5426\u6309\u7167\u65e0\u7b26\u53f7\u65b9\u5f0f\uff0ctrue\u662f\uff0cfalse\u4e0d\u662f\uff0c\u9ed8\u8ba4false\uff0c\u6d6e\u70b9\u8fd0\u7b97\u5ffd\u7565\nboolean \u6d6e\u70b9\u8fd0\u7b97\u7ed3\u679c\u662f\u5426\u8981\u5f3a\u5236\u8f6c\u6210\u6574\u6570\uff0ctrue\u662f\uff0cfalse\u4e0d\u662f\uff0c\u9ed8\u8ba4false\uff0c\u6574\u5f62\u8fd0\u7b97\u5ffd\u7565\n\u8fd4\u56de\u503c\uff1a\nstring 9\u5b57\u8282\u6570\u636e\n", "prefix": "bit64.plus"}, "bit64.minus": {"body": "bit64.minus(${1:a},${2:b},${3:flag1},${4:flag2})", "description": "bit64.minus(a,b,flag1,flag2) - 64bit\u6570\u636e\u51cf,a-b,a\u548cb\u4e2d\u6709\u4e00\u4e2a\u4e3a\u6d6e\u70b9\uff0c\u5219\u6309\u7167\u6d6e\u70b9\u8fd0\u7b97\n\u4f20\u5165\u503c\uff1a\nstring a\nstring/int/number b\nboolean \u6574\u5f62\u8fd0\u7b97\u65f6\u662f\u5426\u6309\u7167\u65e0\u7b26\u53f7\u65b9\u5f0f\uff0ctrue\u662f\uff0cfalse\u4e0d\u662f\uff0c\u9ed8\u8ba4false\uff0c\u6d6e\u70b9\u8fd0\u7b97\u5ffd\u7565\nboolean \u6d6e\u70b9\u8fd0\u7b97\u7ed3\u679c\u662f\u5426\u8981\u5f3a\u5236\u8f6c\u6210\u6574\u6570\uff0ctrue\u662f\uff0cfalse\u4e0d\u662f\uff0c\u9ed8\u8ba4false\uff0c\u6574\u5f62\u8fd0\u7b97\u5ffd\u7565\n\u8fd4\u56de\u503c\uff1a\nstring 9\u5b57\u8282\u6570\u636e\n", "prefix": "bit64.minus"}, "bit64.multi": {"body": "bit64.multi(${1:a},${2:b},${3:flag1},${4:flag2})", "description": "bit64.multi(a,b,flag1,flag2) - 64bit\u6570\u636e\u4e58,a*b,a\u548cb\u4e2d\u6709\u4e00\u4e2a\u4e3a\u6d6e\u70b9\uff0c\u5219\u6309\u7167\u6d6e\u70b9\u8fd0\u7b97\n\u4f20\u5165\u503c\uff1a\nstring a\nstring/int/number b\nboolean \u6574\u5f62\u8fd0\u7b97\u65f6\u662f\u5426\u6309\u7167\u65e0\u7b26\u53f7\u65b9\u5f0f\uff0ctrue\u662f\uff0cfalse\u4e0d\u662f\uff0c\u9ed8\u8ba4false\uff0c\u6d6e\u70b9\u8fd0\u7b97\u5ffd\u7565\nboolean \u6d6e\u70b9\u8fd0\u7b97\u7ed3\u679c\u662f\u5426\u8981\u5f3a\u5236\u8f6c\u6210\u6574\u6570\uff0ctrue\u662f\uff0cfalse\u4e0d\u662f\uff0c\u9ed8\u8ba4false\uff0c\u6574\u5f62\u8fd0\u7b97\u5ffd\u7565\n\u8fd4\u56de\u503c\uff1a\nstring 9\u5b57\u8282\u6570\u636e\n", "prefix": "bit64.multi"}, "bit64.pide": {"body": "bit64.pide(${1:a},${2:b},${3:flag1},${4:flag2})", "description": "bit64.pide(a,b,flag1,flag2) - 64bit\u6570\u636e\u9664,a/b,a\u548cb\u4e2d\u6709\u4e00\u4e2a\u4e3a\u6d6e\u70b9\uff0c\u5219\u6309\u7167\u6d6e\u70b9\u8fd0\u7b97\n\u4f20\u5165\u503c\uff1a\nstring a\nstring/int/number b\nboolean \u6574\u5f62\u8fd0\u7b97\u65f6\u662f\u5426\u6309\u7167\u65e0\u7b26\u53f7\u65b9\u5f0f\uff0ctrue\u662f\uff0cfalse\u4e0d\u662f\uff0c\u9ed8\u8ba4false\uff0c\u6d6e\u70b9\u8fd0\u7b97\u5ffd\u7565\nboolean \u6d6e\u70b9\u8fd0\u7b97\u7ed3\u679c\u662f\u5426\u8981\u5f3a\u5236\u8f6c\u6210\u6574\u6570\uff0ctrue\u662f\uff0cfalse\u4e0d\u662f\uff0c\u9ed8\u8ba4false\uff0c\u6574\u5f62\u8fd0\u7b97\u5ffd\u7565\n\u8fd4\u56de\u503c\uff1a\nstring 9\u5b57\u8282\u6570\u636e\n", "prefix": "bit64.pide"}, "bit64.shift": {"body": "bit64.shift(${1:a},${2:b},${3:flag})", "description": "bit64.shift(a,b,flag) - 64bit\u6570\u636e\u4f4d\u79fb a>>b \u6216\u8005 a<>\uff0c\u9ed8\u8ba4false\n\u8fd4\u56de\u503c\uff1a\nstring 9\u5b57\u8282\u6570\u636e\n", "prefix": "bit64.shift"}, "bit64.strtoll": {"body": "bit64.strtoll(${1:data},${2:base})", "description": "bit64.strtoll(data, base) - \u5c06\u5b57\u7b26\u4e32\u8f6c\u4e3aLongLong\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nstring \u5f85\u8f6c\u6362\u7684\u6570\u636e,\u5fc5\u987b\u5b58\u5728\nint \u8f6c\u6362\u8fdb\u5236, \u9ed8\u8ba410, \u53ef\u900916\u62168\n\u8fd4\u56de\u503c\uff1a\nstring 9\u5b57\u8282\u6570\u636e\n\u4f8b\u5b50\uff1a\n-- \u672cAPI\u4e8e 2023.10.27 \u6dfb\u52a0\n-- \u63d0\u9192, \u5982\u679c\u8f6c\u6362\u5931\u8d25, \u662f\u8fd4\u56de9\u4e2a\u5b57\u8282\u76840x00\nlocal data = bit64.strtoll(\"864040064024194\", 10)\nlog.info(\"data\", data:toHex())\nlog.info(\"data\", bit64.show(data))\n", "prefix": "bit64.strtoll"}, "camera.init": {"body": "camera.init(${1:InitReg})", "description": "camera.init(InitReg) - \u521d\u59cb\u5316\u6444\u50cf\u5934\n\u4f20\u5165\u503c\uff1a\ntable InitReg camera\u521d\u59cb\u5316\u547d\u4ee4 \u89c1demo/camera/AIR105 \u6ce8\u610f:\u5982\u626b\u7801 camera\u521d\u59cb\u5316\u65f6\u9700\u8bbe\u7f6e\u4e3a\u7070\u5ea6\u8f93\u51fa\n\u8fd4\u56de\u503c\uff1a\nint camera_id\n\u4f8b\u5b50\uff1a\ncamera_id = camera.init(GC032A_InitReg)--\u5c4f\u5e55\u8f93\u51fargb\u56fe\u50cf\n--\u521d\u59cb\u5316\u540e\u9700\u8981start\u624d\u5f00\u59cb\u8f93\u51fa/\u626b\u7801\ncamera.start(camera_id)--\u5f00\u59cb\u6307\u5b9a\u7684camera\n", "prefix": "camera.init"}, "camera.on": {"body": "camera.on(${1:id},${2:event},${3:func})", "description": "camera.on(id, event, func) - \u6ce8\u518c\u6444\u50cf\u5934\u4e8b\u4ef6\u56de\u8c03\n\u4f20\u5165\u503c\uff1a\nint camera id, camera 0\u51990, camera 1\u51991\nstring \u4e8b\u4ef6\u540d\u79f0\nfunction \u56de\u8c03\u65b9\u6cd5\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\ncamera.on(0, \"scanned\", function(id, str)\n--id int camera id\n--str \u591a\u79cd\u7c7b\u578b false \u6444\u50cf\u5934\u6ca1\u6709\u6b63\u5e38\u5de5\u4f5c\uff0ctrue \u62cd\u7167\u6a21\u5f0f\u4e0b\u62cd\u7167\u6210\u529f\u5e76\u4fdd\u5b58\u5b8c\u6210\uff0c int \u539f\u59cb\u6570\u636e\u6a21\u5f0f\u4e0b\u672c\u6b21\u8fd4\u56de\u7684\u6570\u636e\u5927\u5c0f\uff0c string \u626b\u7801\u6a21\u5f0f\u4e0b\u626b\u7801\u6210\u529f\u540e\u7684\u89e3\u7801\u503c\n print(id, str)\nend)\n", "prefix": "camera.on"}, "camera.start": {"body": "camera.start(${1:id})", "description": "camera.start(id) - \u5f00\u59cb\u6307\u5b9a\u7684camera\n\u4f20\u5165\u503c\uff1a\nint camera id,\u4f8b\u59820\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\ncamera.start(0)\n", "prefix": "camera.start"}, "camera.stop": {"body": "camera.stop(${1:id})", "description": "camera.stop(id) - \u505c\u6b62\u6307\u5b9a\u7684camera\n\u4f20\u5165\u503c\uff1a\nint camera id,\u4f8b\u59820\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\ncamera.stop(0)\n", "prefix": "camera.stop"}, "camera.close": {"body": "camera.close(${1:id})", "description": "camera.close(id) - \u5173\u95ed\u6307\u5b9a\u7684camera\uff0c\u91ca\u653e\u76f8\u5e94\u7684IO\u8d44\u6e90\n\u4f20\u5165\u503c\uff1a\nint camera id,\u4f8b\u59820\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\ncamera.close(0)\n", "prefix": "camera.close"}, "camera.capture": {"body": "camera.capture(${1:id},${2:save_path},${3:quality})", "description": "camera.capture(id, save_path, quality) - camera\u62cd\u7167\n\u4f20\u5165\u503c\uff1a\nint camera id,\u4f8b\u59820\nstring save_path,\u6587\u4ef6\u4fdd\u5b58\u8def\u5f84\uff0c\u7a7a\u5219\u5199\u5728\u4e0a\u6b21\u8def\u5f84\u91cc\uff0c\u9ed8\u8ba4\u662f/capture.jpg\nint quality, jpeg\u538b\u7f29\u8d28\u91cf\uff0c1\u6700\u5dee\uff0c\u5360\u7528\u7a7a\u95f4\u5c0f\uff0c3\u6700\u9ad8\uff0c\u5360\u7528\u7a7a\u95f4\u6700\u5927\u800c\u4e14\u8d39\u65f6\u95f4\uff0c\u9ed8\u8ba41\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\ncamera.capture(0)\n", "prefix": "camera.capture"}, "camera.video": {"body": "camera.video(${1:id},${2:w},${3:h},${4:out_path})", "description": "camera.video(id, w, h, out_path) - camera\u8f93\u51fa\u89c6\u9891\u6d41\u5230USB\n\u4f20\u5165\u503c\uff1a\nint camera id,\u4f8b\u59820\nint \u5bbd\u5ea6\nint \u9ad8\u5ea6\nint \u8f93\u51fa\u8def\u5f84\uff0c\u76ee\u524d\u53ea\u80fd\u7528\u865a\u62df\u4e32\u53e30\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\ncamera.video(0, 320, 240, uart.VUART_0)\n", "prefix": "camera.video"}, "camera.startRaw": {"body": "camera.startRaw(${1:id},${2:w},${3:h},${4:buff})", "description": "camera.startRaw(id, w, h, buff) - \u542f\u52a8camera\u8f93\u51fa\u539f\u59cb\u6570\u636e\u5230\u7528\u6237\u7684zbuff\u7f13\u5b58\u533a\uff0c\u8f93\u51fa1fps\u540e\u4f1a\u505c\u6b62\uff0c\u5e76\u901a\u8fc7camera.on\u8bbe\u7f6e\u7684\u56de\u8c03\u51fd\u6570\u56de\u8c03\u63a5\u6536\u5230\u7684\u957f\u5ea6\uff0c\u5982\u679c\u9700\u8981\u518d\u6b21\u8f93\u51fa\uff0c\u8bf7\u8c03\u7528camera.getRaw\n\u4f20\u5165\u503c\uff1a\nint camera id,\u4f8b\u59820\nint \u5bbd\u5ea6\nint \u9ad8\u5ea6\nzbuff \u7528\u4e8e\u5b58\u653e\u6570\u636e\u7684\u7f13\u5b58\u533a\uff0c\u5927\u5c0f\u5fc5\u987b\u4e0d\u5c0f\u4e8ew X h X 2 byte\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\ncamera.startRaw(0, 320, 240, buff)\n", "prefix": "camera.startRaw"}, "camera.getRaw": {"body": "camera.getRaw(${1:id})", "description": "camera.getRaw(id) - \u518d\u6b21\u542f\u52a8camera\u8f93\u51fa\u539f\u59cb\u6570\u636e\u5230\u7528\u6237\u7684zbuff\u7f13\u5b58\u533a\uff0c\u8f93\u51fa1fps\u540e\u4f1a\u505c\u6b62\uff0c\u5e76\u901a\u8fc7camera.on\u8bbe\u7f6e\u7684\u56de\u8c03\u51fd\u6570\u56de\u8c03\u63a5\u6536\u5230\u7684\u957f\u5ea6\uff0c\u5982\u679c\u9700\u8981\u518d\u6b21\u8f93\u51fa\uff0c\u8bf7\u7ee7\u7eed\u8c03\u7528\u672cAPI\n\u4f20\u5165\u503c\uff1a\nint camera id,\u4f8b\u59820\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\ncamera.getRaw(0)\n", "prefix": "camera.getRaw"}, "codec.create": {"body": "codec.create(${1:type},${2:isDecoder})", "description": "codec.create(type, isDecoder) - \u521b\u5efa\u7f16\u89e3\u7801\u7528\u7684codec\n\u4f20\u5165\u503c\uff1a\nint \u591a\u5a92\u4f53\u7c7b\u578b\uff0c\u76ee\u524d\u652f\u6301codec.MP3 codec.AMR\nboolean \u662f\u5426\u662f\u89e3\u7801\u5668\uff0ctrue\u89e3\u7801\u5668\uff0cfalse\u7f16\u7801\u5668\uff0c\u9ed8\u8ba4true\uff0c\u662f\u89e3\u7801\u5668\n\u8fd4\u56de\u503c\uff1a\nuserdata \u6210\u529f\u8fd4\u56de\u4e00\u4e2a\u6570\u636e\u7ed3\u6784,\u5426\u5219\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\n-- \u521b\u5efa\u89e3\u7801\u5668\nlocal decoder = codec.create(codec.MP3)--\u521b\u5efa\u4e00\u4e2amp3\u7684decoder\n-- \u521b\u5efa\u7f16\u7801\u5668\nlocal encoder = codec.create(codec.AMR, false)--\u521b\u5efa\u4e00\u4e2aamr\u7684encoder\n", "prefix": "codec.create"}, "codec.info": {"body": "codec.info(${1:decoder},${2:file_path})", "description": "codec.info(decoder, file_path) - decoder\u4ece\u6587\u4ef6\u4e2d\u89e3\u6790\u51fa\u97f3\u9891\u4fe1\u606f\n\u4f20\u5165\u503c\uff1a\nuserdata \u89e3\u7801\u7528\u7684decoder\nstring \u6587\u4ef6\u8def\u5f84\n\u8fd4\u56de\u503c\uff1a\nboolean \u662f\u5426\u6210\u529f\u89e3\u6790\nint \u97f3\u9891\u683c\u5f0f\nint \u58f0\u97f3\u901a\u9053\u6570\nint \u91c7\u6837\u9891\u7387\nint \u91c7\u6837\u4f4d\u6570\nboolean \u662f\u5426\u6709\u7b26\u53f7\n\u4f8b\u5b50\uff1a\nlocal result, audio_format, num_channels, sample_rate, bits_per_sample, is_signed= codec.info(coder, \"xxx\")\n", "prefix": "codec.info"}, "codec.data": {"body": "codec.data(${1:decoder},${2:out_buff})", "description": "codec.data(decoder, out_buff) - decoder\u4ece\u6587\u4ef6\u4e2d\u89e3\u6790\u51fa\u539f\u59cb\u97f3\u9891\u6570\u636e\uff0c\u6bd4\u5982\u4eceMP3\u6587\u4ef6\u91cc\u89e3\u6790\u51faPCM\u6570\u636e\uff0c\u8fd9\u91cc\u7684\u6587\u4ef6\u8def\u5f84\u5df2\u7ecf\u5728codec.info\u4f20\u5165\uff0c\u4e0d\u9700\u8981\u518d\u6b21\u4f20\u5165\n\u4f20\u5165\u503c\uff1a\nuserdata \u89e3\u7801\u7528\u7684decoder\nzbuff \u5b58\u653e\u8f93\u51fa\u6570\u636e\u7684zbuff\uff0c\u7a7a\u95f4\u5fc5\u987b\u4e0d\u5c11\u4e8e16KB\nint \u6700\u5c11\u89e3\u7801\u51fa\u591a\u5c11\u5b57\u8282\u7684\u97f3\u9891\u6570\u636e,\u9ed8\u8ba416384\n\u8fd4\u56de\u503c\uff1a\nboolean \u662f\u5426\u6210\u529f\u89e3\u6790\n\u4f8b\u5b50\uff1a\n-- \u5927\u5185\u5b58\u8bbe\u5907\nlocal buff = zbuff.create(16*1024)\nlocal result = codec.data(coder, buff)\n-- \u5c0f\u5185\u5b58\u8bbe\u5907\nlocal buff = zbuff.create(8*1024)\nlocal result = codec.data(coder, buff, 4096)\n", "prefix": "codec.data"}, "codec.encode": {"body": "codec.encode(${1:coder},${2:in_buffer},${3:out_buffer},${4:mode})", "description": "codec.encode(coder, in_buffer, out_buffer, mode) - \u7f16\u7801\u97f3\u9891\u6570\u636e\uff0c\u7531\u4e8eflash\u548cram\u7a7a\u95f4\u4e00\u822c\u6bd4\u8f83\u6709\u9650\uff0c\u76ee\u524d\u53ea\u652f\u6301amr-nb\u7f16\u7801\n\u4f20\u5165\u503c\uff1a\nuserdata codec.create\u521b\u5efa\u7684\u7f16\u89e3\u7801\u7528\u7684coder\nzbuff \u8f93\u5165\u7684\u6570\u636e,zbuff\u5f62\u5f0f,\u4ece0\u5230used\nzbuff \u8f93\u51fa\u7684\u6570\u636e,zbuff\u5f62\u5f0f,\u81ea\u52a8\u6dfb\u52a0\u5230buff\u7684\u5c3e\u90e8,\u5982\u679c\u7a7a\u95f4\u5927\u5c0f\u4e0d\u8db3,\u4f1a\u81ea\u52a8\u6269\u5c55,\u4f46\u662f\u4f1a\u989d\u5916\u6d88\u8017\u65f6\u95f4,\u751a\u81f3\u4f1a\u5931\u8d25,\u6240\u4ee5\u5c3d\u91cf\u4e00\u5f00\u59cb\u5c31\u7ed9\u8db3\u7a7a\u95f4\nint amr_nb\u7684\u7f16\u7801\u7b49\u7ea7 0~7(\u5373 MR475~MR122)\u503c\u8d8a\u5927\u6d88\u8017\u7684\u7a7a\u95f4\u8d8a\u591a,\u97f3\u8d28\u8d8a\u9ad8,\u9ed8\u8ba40\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u8fd4\u56detrue,\u5931\u8d25\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\ncodec.encode(amr_coder, inbuf, outbuf, codec.AMR_)\n", "prefix": "codec.encode"}, "codec.release": {"body": "codec.release(${1:coder})", "description": "codec.release(coder) - \u91ca\u653e\u7f16\u89e3\u7801\u7528\u7684coder\n\u4f20\u5165\u503c\uff1a\ncoder codec.create\u521b\u5efa\u7684\u7f16\u89e3\u7801\u7528\u7684coder\n\u4f8b\u5b50\uff1a\ncodec.release(coder)\n", "prefix": "codec.release"}, "coremark.run": {"body": "coremark.run()", "description": "coremark.run() - \u5f00\u59cb\u8dd1\u5206\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c,\u7ed3\u679c\u76f4\u63a5\u6253\u5370\u5728\u65e5\u5fd7\u4e2d\n\u4f8b\u5b50\uff1a\n-- \u5927\u90e8\u5206\u60c5\u51b5\u4e0b, \u8fd9\u4e2a\u5e93\u90fd\u4e0d\u4f1a\u5305\u542b\u5728\u6b63\u5f0f\u7248\u56fa\u4ef6\u91cc\n-- \u82e5\u9700\u4f7f\u7528,\u53ef\u4ee5\u53c2\u8003wiki\u6587\u6863\u81ea\u884c\u7f16\u8bd1\u6216\u4f7f\u7528\u4e91\u7f16\u8bd1\n-- https://wiki.luatos.com/develop/compile.html\n\n-- \u8dd1\u5206\u7684main.lua \u5e94\u79fb\u9664\u786c\u72d7\u4ee3\u7801, \u9632\u6b62\u91cd\u542f\n-- \u82e5\u8bbe\u5907\u652f\u6301\u81ea\u52a8\u4f11\u7720, \u5e94\u5173\u95ed\u4f11\u7720\u529f\u80fd\n-- \u82e5\u8bbe\u5907\u652f\u6301\u66f4\u591a\u7684\u9891\u7387\u8fd0\u884c, \u5efa\u8bae\u8bbe\u7f6e\u5230\u6700\u9ad8\u9891\u7387\n-- \u4f7f\u7528 -O3 \u6bd4 -O2 -Os \u7684\u5206\u6570\u66f4\u9ad8, \u901a\u5e38\u60c5\u51b5\u4e0b\n\n-- \u4f1a\u4e00\u76f4\u72ec\u5360\u7ebf\u7a0b\u5230\u6267\u884c\u5b8c\u6bd5, \u7136\u540e\u5728\u63a7\u5236\u53f0\u8f93\u51fa\u7ed3\u679c\ncoremark.run()\n\n-- \u8dd1\u5206\u56fe\u4e00\u4e50^_^\n\n", "prefix": "coremark.run"}, "crypto.md5": {"body": "crypto.md5(${1:str})", "description": "crypto.md5(str) - \u8ba1\u7b97md5\u503c\n\u4f20\u5165\u503c\uff1a\nstring \u9700\u8981\u8ba1\u7b97\u7684\u5b57\u7b26\u4e32\n\u8fd4\u56de\u503c\uff1a\nstring \u8ba1\u7b97\u5f97\u51fa\u7684md5\u503c\u7684hex\u5b57\u7b26\u4e32\n\u4f8b\u5b50\uff1a\n-- \u8ba1\u7b97\u5b57\u7b26\u4e32\"abc\"\u7684md5\nlog.info(\"md5\", crypto.md5(\"abc\"))\n", "prefix": "crypto.md5"}, "crypto.hmac_md5": {"body": "crypto.hmac_md5(${1:str},${2:key})", "description": "crypto.hmac_md5(str, key) - \u8ba1\u7b97hmac_md5\u503c\n\u4f20\u5165\u503c\uff1a\nstring \u9700\u8981\u8ba1\u7b97\u7684\u5b57\u7b26\u4e32\nstring \u5bc6\u94a5\n\u8fd4\u56de\u503c\uff1a\nstring \u8ba1\u7b97\u5f97\u51fa\u7684hmac_md5\u503c\u7684hex\u5b57\u7b26\u4e32\n\u4f8b\u5b50\uff1a\n-- \u8ba1\u7b97\u5b57\u7b26\u4e32\"abc\"\u7684hmac_md5\nlog.info(\"hmac_md5\", crypto.hmac_md5(\"abc\", \"1234567890\"))\n", "prefix": "crypto.hmac_md5"}, "crypto.sha1": {"body": "crypto.sha1(${1:str})", "description": "crypto.sha1(str) - \u8ba1\u7b97sha1\u503c\n\u4f20\u5165\u503c\uff1a\nstring \u9700\u8981\u8ba1\u7b97\u7684\u5b57\u7b26\u4e32\n\u8fd4\u56de\u503c\uff1a\nstring \u8ba1\u7b97\u5f97\u51fa\u7684sha1\u503c\u7684hex\u5b57\u7b26\u4e32\n\u4f8b\u5b50\uff1a\n-- \u8ba1\u7b97\u5b57\u7b26\u4e32\"abc\"\u7684sha1\nlog.info(\"sha1\", crypto.sha1(\"abc\"))\n", "prefix": "crypto.sha1"}, "crypto.hmac_sha1": {"body": "crypto.hmac_sha1(${1:str},${2:key})", "description": "crypto.hmac_sha1(str, key) - \u8ba1\u7b97hmac_sha1\u503c\n\u4f20\u5165\u503c\uff1a\nstring \u9700\u8981\u8ba1\u7b97\u7684\u5b57\u7b26\u4e32\nstring \u5bc6\u94a5\n\u8fd4\u56de\u503c\uff1a\nstring \u8ba1\u7b97\u5f97\u51fa\u7684hmac_sha1\u503c\u7684hex\u5b57\u7b26\u4e32\n\u4f8b\u5b50\uff1a\n-- \u8ba1\u7b97\u5b57\u7b26\u4e32\"abc\"\u7684hmac_sha1\nlog.info(\"hmac_sha1\", crypto.hmac_sha1(\"abc\", \"1234567890\"))\n", "prefix": "crypto.hmac_sha1"}, "crypto.sha256": {"body": "crypto.sha256(${1:str})", "description": "crypto.sha256(str) - \u8ba1\u7b97sha256\u503c\n\u4f20\u5165\u503c\uff1a\nstring \u9700\u8981\u8ba1\u7b97\u7684\u5b57\u7b26\u4e32\n\u8fd4\u56de\u503c\uff1a\nstring \u8ba1\u7b97\u5f97\u51fa\u7684sha256\u503c\u7684hex\u5b57\u7b26\u4e32\n\u4f8b\u5b50\uff1a\n-- \u8ba1\u7b97\u5b57\u7b26\u4e32\"abc\"\u7684sha256\nlog.info(\"sha256\", crypto.sha256(\"abc\"))\n", "prefix": "crypto.sha256"}, "crypto.hmac_sha256": {"body": "crypto.hmac_sha256(${1:str},${2:key})", "description": "crypto.hmac_sha256(str, key) - \u8ba1\u7b97hmac_sha256\u503c\n\u4f20\u5165\u503c\uff1a\nstring \u9700\u8981\u8ba1\u7b97\u7684\u5b57\u7b26\u4e32\nstring \u5bc6\u94a5\n\u8fd4\u56de\u503c\uff1a\nstring \u8ba1\u7b97\u5f97\u51fa\u7684hmac_sha256\u503c\u7684hex\u5b57\u7b26\u4e32\n\u4f8b\u5b50\uff1a\n-- \u8ba1\u7b97\u5b57\u7b26\u4e32\"abc\"\u7684hmac_sha256\nlog.info(\"hmac_sha256\", crypto.hmac_sha256(\"abc\", \"1234567890\"))\n", "prefix": "crypto.hmac_sha256"}, "crypto.sha512": {"body": "crypto.sha512(${1:str})", "description": "crypto.sha512(str) - \u8ba1\u7b97sha512\u503c\n\u4f20\u5165\u503c\uff1a\nstring \u9700\u8981\u8ba1\u7b97\u7684\u5b57\u7b26\u4e32\n\u8fd4\u56de\u503c\uff1a\nstring \u8ba1\u7b97\u5f97\u51fa\u7684sha512\u503c\u7684hex\u5b57\u7b26\u4e32\n\u4f8b\u5b50\uff1a\n-- \u8ba1\u7b97\u5b57\u7b26\u4e32\"abc\"\u7684sha512\nlog.info(\"sha512\", crypto.sha512(\"abc\"))\n", "prefix": "crypto.sha512"}, "crypto.hmac_sha512": {"body": "crypto.hmac_sha512(${1:str},${2:key})", "description": "crypto.hmac_sha512(str, key) - \u8ba1\u7b97hmac_sha512\u503c\n\u4f20\u5165\u503c\uff1a\nstring \u9700\u8981\u8ba1\u7b97\u7684\u5b57\u7b26\u4e32\nstring \u5bc6\u94a5\n\u8fd4\u56de\u503c\uff1a\nstring \u8ba1\u7b97\u5f97\u51fa\u7684hmac_sha512\u503c\u7684hex\u5b57\u7b26\u4e32\n\u4f8b\u5b50\uff1a\n-- \u8ba1\u7b97\u5b57\u7b26\u4e32\"abc\"\u7684hmac_sha512\nlog.info(\"hmac_sha512\", crypto.hmac_sha512(\"abc\", \"1234567890\"))\n", "prefix": "crypto.hmac_sha512"}, "crypto.cipher_encrypt": {"body": "crypto.cipher_encrypt(${1:type},${2:padding},${3:str},${4:key},${5:iv})", "description": "crypto.cipher_encrypt(type, padding, str, key, iv) - \u5bf9\u79f0\u52a0\u5bc6\n\u4f20\u5165\u503c\uff1a\nstring \u7b97\u6cd5\u540d\u79f0, \u4f8b\u5982 AES-128-ECB/AES-128-CBC, \u53ef\u67e5\u9605crypto.cipher_list()\nstring \u5bf9\u9f50\u65b9\u5f0f, \u652f\u6301PKCS7/ZERO/ONE_AND_ZEROS/ZEROS_AND_LEN/NONE\nstring \u9700\u8981\u52a0\u5bc6\u7684\u6570\u636e\nstring \u5bc6\u94a5,\u9700\u8981\u5bf9\u5e94\u7b97\u6cd5\u7684\u5bc6\u94a5\u957f\u5ea6\nstring IV\u503c, \u975eECB\u7b97\u6cd5\u9700\u8981\n\u8fd4\u56de\u503c\uff1a\nstring \u52a0\u5bc6\u540e\u7684\u5b57\u7b26\u4e32\n\u4f8b\u5b50\uff1a\n-- \u8ba1\u7b97AES\nlocal data = crypto.cipher_encrypt(\"AES-128-ECB\", \"PKCS7\", \"1234567890123456\", \"1234567890123456\")\nlocal data2 = crypto.cipher_encrypt(\"AES-128-CBC\", \"PKCS7\", \"1234567890123456\", \"1234567890123456\", \"1234567890666666\")\n", "prefix": "crypto.cipher_encrypt"}, "crypto.cipher_decrypt": {"body": "crypto.cipher_decrypt(${1:type},${2:padding},${3:str},${4:key},${5:iv})", "description": "crypto.cipher_decrypt(type, padding, str, key, iv) - \u5bf9\u79f0\u89e3\u5bc6\n\u4f20\u5165\u503c\uff1a\nstring \u7b97\u6cd5\u540d\u79f0, \u4f8b\u5982 AES-128-ECB/AES-128-CBC, \u53ef\u67e5\u9605crypto.cipher_list()\nstring \u5bf9\u9f50\u65b9\u5f0f, \u652f\u6301PKCS7/ZERO/ONE_AND_ZEROS/ZEROS_AND_LEN/NONE\nstring \u9700\u8981\u89e3\u5bc6\u7684\u6570\u636e\nstring \u5bc6\u94a5,\u9700\u8981\u5bf9\u5e94\u7b97\u6cd5\u7684\u5bc6\u94a5\u957f\u5ea6\nstring IV\u503c, \u975eECB\u7b97\u6cd5\u9700\u8981\n\u8fd4\u56de\u503c\uff1a\nstring \u89e3\u5bc6\u540e\u7684\u5b57\u7b26\u4e32\n\u4f8b\u5b50\uff1a\n-- \u7528AES\u52a0\u5bc6,\u7136\u540e\u7528AES\u89e3\u5bc6\nlocal data = crypto.cipher_encrypt(\"AES-128-ECB\", \"PKCS7\", \"1234567890123456\", \"1234567890123456\")\nlocal data2 = crypto.cipher_decrypt(\"AES-128-ECB\", \"PKCS7\", data, \"1234567890123456\")\n-- data\u7684hex\u4e3a 757CCD0CDC5C90EADBEEECF638DD0000\n-- data2\u7684\u503c\u4e3a 1234567890123456\n", "prefix": "crypto.cipher_decrypt"}, "crypto.crc16": {"body": "crypto.crc16(${1:method},${2:data},${3:poly},${4:initial},${5:finally},${6:inReversemoutReverse})", "description": "crypto.crc16(method, data, poly, initial, finally, inReversem outReverse) - \u8ba1\u7b97CRC16\n\u4f20\u5165\u503c\uff1a\nstring CRC16\u6a21\u5f0f\uff08\"IBM\",\"MAXIM\",\"USB\",\"MODBUS\",\"CCITT\",\"CCITT-FALSE\",\"X25\",\"XMODEM\",\"DNP\",\"USER-DEFINED\"\uff09\nstring \u5b57\u7b26\u4e32\nint poly\u503c\nint initial\u503c\nint finally\u503c\nint \u8f93\u5165\u53cd\u8f6c,1\u53cd\u8f6c,\u9ed8\u8ba40\u4e0d\u53cd\u8f6c\nint \u8f93\u5165\u53cd\u8f6c,1\u53cd\u8f6c,\u9ed8\u8ba40\u4e0d\u53cd\u8f6c\n\u8fd4\u56de\u503c\uff1a\nint \u5bf9\u5e94\u7684CRC16\u503c\n\u4f8b\u5b50\uff1a\n-- \u8ba1\u7b97CRC16\nlocal crc = crypto.crc16(\"\")\n", "prefix": "crypto.crc16"}, "crypto.crc16_modbus": {"body": "crypto.crc16_modbus(${1:data})", "description": "crypto.crc16_modbus(data) - \u76f4\u63a5\u8ba1\u7b97modbus\u7684crc16\u503c\n\u4f20\u5165\u503c\uff1a\nstring \u6570\u636e\n\u8fd4\u56de\u503c\uff1a\nint \u5bf9\u5e94\u7684CRC16\u503c\n\u4f8b\u5b50\uff1a\n-- \u8ba1\u7b97CRC16 modbus\nlocal crc = crypto.crc16_modbus(data)\n", "prefix": "crypto.crc16_modbus"}, "crypto.crc32": {"body": "crypto.crc32(${1:data})", "description": "crypto.crc32(data) - \u8ba1\u7b97crc32\u503c\n\u4f20\u5165\u503c\uff1a\nstring \u6570\u636e\n\u8fd4\u56de\u503c\uff1a\nint \u5bf9\u5e94\u7684CRC32\u503c\n\u4f8b\u5b50\uff1a\n-- \u8ba1\u7b97CRC32\nlocal crc = crypto.crc32(data)\n", "prefix": "crypto.crc32"}, "crypto.crc8": {"body": "crypto.crc8(${1:data},${2:poly},${3:start},${4:revert})", "description": "crypto.crc8(data, poly, start, revert) - \u8ba1\u7b97crc8\u503c\n\u4f20\u5165\u503c\uff1a\nstring \u6570\u636e\nint crc\u591a\u9879\u5f0f\uff0c\u53ef\u9009\uff0c\u5982\u679c\u4e0d\u5199\uff0c\u5c06\u5ffd\u7565\u9664\u4e86\u6570\u636e\u5916\u6240\u6709\u53c2\u6570\nint crc\u521d\u59cb\u503c\uff0c\u53ef\u9009\uff0c\u9ed8\u8ba40\nboolean \u662f\u5426\u9700\u8981\u9006\u5e8f\u5904\u7406\uff0c\u9ed8\u8ba4\u5426\n\u8fd4\u56de\u503c\uff1a\nint \u5bf9\u5e94\u7684CRC8\u503c\n\u4f8b\u5b50\uff1a\n-- \u8ba1\u7b97CRC8\nlocal crc = crypto.crc8(data)\nlocal crc = crypto.crc8(data, 0x31, 0xff, false)\n", "prefix": "crypto.crc8"}, "crypto.crc7": {"body": "crypto.crc7(${1:data},${2:poly},${3:start})", "description": "crypto.crc7(data, poly, start) - \u8ba1\u7b97crc7\u503c\n\u4f20\u5165\u503c\uff1a\nstring \u6570\u636e\nint crc\u591a\u9879\u5f0f\uff0c\u53ef\u9009\uff0c\u9ed8\u8ba40xE5\nint crc\u521d\u59cb\u503c\uff0c\u53ef\u9009\uff0c\u9ed8\u8ba40x00\n\u8fd4\u56de\u503c\uff1a\nint \u5bf9\u5e94\u7684CRC7\u503c\n\u4f8b\u5b50\uff1a\n-- \u8ba1\u7b97CRC7, \u672cAPI\u4e8e2023.10.07\u65b0\u589e\nlocal crc = crypto.crc7(data)\nlocal crc = crypto.crc7(data, 0x31, 0xff)\n", "prefix": "crypto.crc7"}, "crypto.trng": {"body": "crypto.trng(${1:len})", "description": "crypto.trng(len) - \u751f\u6210\u771f\u968f\u673a\u6570\n\u4f20\u5165\u503c\uff1a\nint \u6570\u636e\u957f\u5ea6\n\u8fd4\u56de\u503c\uff1a\nstring \u6307\u5b9a\u968f\u673a\u6570\u5b57\u7b26\u4e32\n\u4f8b\u5b50\uff1a\n-- \u751f\u621032\u4f4d\u968f\u673a\u6570ir\nlocal r = crypto.trng(4)\nlocal _, ir = pack.unpack(r, \"I\")\n", "prefix": "crypto.trng"}, "crypto.totp": {"body": "crypto.totp(${1:secret},${2:time})", "description": "crypto.totp(secret,time) - \u8ba1\u7b97TOTP\u52a8\u6001\u5bc6\u7801\u7684\u7ed3\u679c\n\u4f20\u5165\u503c\uff1a\nstring \u7f51\u7ad9\u63d0\u4f9b\u7684\u5bc6\u94a5\uff08\u5c31\u662fBASE32\u7f16\u7801\u540e\u7684\u7ed3\u679c\uff09\nint \u53ef\u9009\uff0c\u65f6\u95f4\u6233\uff0c\u9ed8\u8ba4\u5f53\u524d\u65f6\u95f4\n\u8fd4\u56de\u503c\uff1a\nint \u8ba1\u7b97\u5f97\u51fa\u7684\u516d\u4f4d\u6570\u7ed3\u679c \u8ba1\u7b97\u5931\u8d25\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\n--\u4f7f\u7528\u5f53\u524d\u7cfb\u7edf\u65f6\u95f4\u8ba1\u7b97\nlocal otp = crypto.totp(\"asdfassdfasdfass\")\n", "prefix": "crypto.totp"}, "crypto.base64_encode": {"body": "crypto.base64_encode(${1:data})", "description": "crypto.base64_encode(data) - \u5c06\u6570\u636e\u8fdb\u884cbase64\u7f16\u7801\n\u4f20\u5165\u503c\uff1a\nstring \u5f85\u7f16\u7801\u7684\u6570\u636e\n\u8fd4\u56de\u503c\uff1a\nstring \u7f16\u7801\u540e\u7684\u6570\u636e\n\u4f8b\u5b50\uff1a\n-- \u672c\u51fd\u6570\u4e0e string.toBase64 \u662f\u540c\u4e00\u4e2a\nlocal data = \"123\"\nlocal bdata = crypto.base64_encode(data)\nlog.info(\"base64\", \"encode\", data, bdata)\ndata = crypto.base64_decode(data)\nlog.info(\"base64\", \"decode\", data, bdata)\n", "prefix": "crypto.base64_encode"}, "crypto.base64_decode": {"body": "crypto.base64_decode(${1:data})", "description": "crypto.base64_decode(data) - \u5c06\u6570\u636e\u8fdb\u884cbase64\u89e3\u7801\n\u4f20\u5165\u503c\uff1a\nstring \u5f85\u89e3\u7801\u7684\u6570\u636e\n\u8fd4\u56de\u503c\uff1a\nstring \u89e3\u7801\u540e\u7684\u6570\u636e\n\u4f8b\u5b50\uff1a\n-- \u672c\u51fd\u6570\u4e0e string.fromBase64 \u662f\u540c\u4e00\u4e2a\nlocal data = \"123\"\nlocal bdata = crypto.base64_encode(data)\nlog.info(\"base64\", \"encode\", data, bdata)\ndata = crypto.base64_decode(data)\nlog.info(\"base64\", \"decode\", data, bdata)\n", "prefix": "crypto.base64_decode"}, "crypto.cipher_list": {"body": "crypto.cipher_list()", "description": "crypto.cipher_list() - \u83b7\u53d6\u5f53\u524d\u56fa\u4ef6\u652f\u6301\u7684cipher\u5217\u8868\n\u8fd4\u56de\u503c\uff1a\ntable \u672c\u56fa\u4ef6\u652f\u6301\u7684cipher\u5217\u8868,\u5b57\u7b26\u4e32\u6570\u7ec4\n\u4f8b\u5b50\uff1a\n-- \u672cAPI\u4e8e2022.07.27\u6dfb\u52a0\nlocal ciphers = crypto.cipher_list()\nif ciphers then\n log.info(\"crypto\", \"ciphers list\", json.encode(ciphers))\nend\n", "prefix": "crypto.cipher_list"}, "crypto.cipher_suites": {"body": "crypto.cipher_suites()", "description": "crypto.cipher_suites() - \u83b7\u53d6\u5f53\u524d\u56fa\u4ef6\u652f\u6301\u7684cipher suites\u5217\u8868\n\u8fd4\u56de\u503c\uff1a\ntable \u672c\u56fa\u4ef6\u652f\u6301\u7684cipher suites\u5217\u8868,\u5b57\u7b26\u4e32\u6570\u7ec4\n\u4f8b\u5b50\uff1a\n-- \u672cAPI\u4e8e2022.11.16\u6dfb\u52a0\nlocal suites = crypto.cipher_suites()\nif suites then\n log.info(\"crypto\", \"ciphers suites\", json.encode(suites))\nend\n", "prefix": "crypto.cipher_suites"}, "crypto.md_file": {"body": "crypto.md_file(${1:tp},${2:path},${3:hmac})", "description": "crypto.md_file(tp, path, hmac) - \u8ba1\u7b97\u6587\u4ef6\u7684hash\u503c(md5/sha1/sha256\u53cahmac\u5f62\u5f0f)\n\u4f20\u5165\u503c\uff1a\nstring hash\u7c7b\u578b, \u5927\u5c0f\u5b57\u6bcd, \u4f8b\u5982 \"MD5\" \"SHA1\" \"SHA256\"\nstring \u6587\u4ef6\u8def\u5f84, \u4f8b\u5982 /luadb/logo.jpg\nstring hmac\u503c,\u53ef\u9009\n\u8fd4\u56de\u503c\uff1a\nstring HEX\u8fc7\u7684hash\u503c,\u82e5\u5931\u8d25\u4f1a\u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n\n-- \u65e0hmac\u7684hash\u503c\nlog.info(\"md5\", crypto.md_file(\"MD5\", \"/luadb/logo.jpg\"))\nlog.info(\"sha1\", crypto.md_file(\"SHA1\", \"/luadb/logo.jpg\"))\nlog.info(\"sha256\", crypto.md_file(\"SHA256\", \"/luadb/logo.jpg\"))\n\n-- \u5e26hmac\u7684hash\u503c\nlog.info(\"hmac_md5\", crypto.md_file(\"MD5\", \"/luadb/logo.jpg\", \"123456\"))\nlog.info(\"hmac_sha1\", crypto.md_file(\"SHA1\", \"/luadb/logo.jpg\", \"123456\"))\nlog.info(\"hmac_sha256\", crypto.md_file(\"SHA256\", \"/luadb/logo.jpg\", \"123456\"))\n", "prefix": "crypto.md_file"}, "crypto.md": {"body": "crypto.md(${1:tp},${2:data},${3:hmac})", "description": "crypto.md(tp, data, hmac) - \u8ba1\u7b97\u6570\u636e\u7684hash\u503c(md5/sha1/sha256\u53cahmac\u5f62\u5f0f)\n\u4f20\u5165\u503c\uff1a\nstring hash\u7c7b\u578b, \u5927\u5c0f\u5b57\u6bcd, \u4f8b\u5982 \"MD5\" \"SHA1\" \"SHA256\"\nstring \u5f85\u5904\u7406\u7684\u6570\u636e\nstring hmac\u503c,\u53ef\u9009\n\u8fd4\u56de\u503c\uff1a\nstring HEX\u8fc7\u7684hash\u503c,\u82e5\u5931\u8d25\u4f1a\u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n\n-- \u65e0hmac\u7684hash\u503c\nlog.info(\"md5\", crypto.md(\"MD5\", \"1234567890\"))\nlog.info(\"sha1\", crypto.md(\"SHA1\", \"1234567890\"))\nlog.info(\"sha256\", crypto.md(\"SHA256\", \"1234567890\"))\n\n-- \u5e26hmac\u7684hash\u503c\nlog.info(\"hmac_md5\", crypto.md(\"MD5\", \"1234567890\", \"123456\"))\nlog.info(\"hmac_sha1\", crypto.md(\"SHA1\", \"1234567890\", \"123456\"))\nlog.info(\"hmac_sha256\", crypto.md(\"SHA256\", \"1234567890\", \"123456\"))\n", "prefix": "crypto.md"}, "crypto.hash_init": {"body": "crypto.hash_init(${1:tp})", "description": "crypto.hash_init(tp) - \u521b\u5efa\u6d41\u5f0fhash\u7528\u7684stream\n\u4f20\u5165\u503c\uff1a\nstring hash\u7c7b\u578b, \u5927\u5199\u5b57\u6bcd, \u4f8b\u5982 \"MD5\" \"SHA1\" \"SHA256\"\nstring hmac\u503c\uff0c\u53ef\u9009\n\u8fd4\u56de\u503c\uff1a\nuserdata \u6210\u529f\u8fd4\u56de\u4e00\u4e2a\u6570\u636e\u7ed3\u6784,\u5426\u5219\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\n-- \u65e0hmac\u7684hash stream\nlocal md5_stream = crypto.hash_init(\"MD5\")\nlocal sha1_stream = crypto.hash_init(\"SHA1\")\nlocal sha256_stream = crypto.hash_init(\"SHA256\")\n\n-- \u5e26hmac\u7684hash stream\nlocal md5_stream = crypto.hash_init(\"MD5\", \"123456\")\nlocal sha1_stream = crypto.hash_init(\"SHA1\", \"123456\")\nlocal sha256_stream = crypto.hash_init(\"SHA256\", \"123456\")\n", "prefix": "crypto.hash_init"}, "crypto.hash_update": {"body": "crypto.hash_update(${1:stream},${2:data})", "description": "crypto.hash_update(stream, data) - \u6d41\u5f0fhash\u66f4\u65b0\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nuserdata crypto.hash_init()\u521b\u5efa\u7684stream, \u5fc5\u9009\nstring \u5f85\u8ba1\u7b97\u7684\u6570\u636e,\u5fc5\u9009\nreturn \u65e0\n\u4f8b\u5b50\uff1a\ncrypto.hash_update(stream, \"OK\")\n", "prefix": "crypto.hash_update"}, "crypto.hash_finish": {"body": "crypto.hash_finish(${1:stream})", "description": "crypto.hash_finish(stream) - \u83b7\u53d6\u6d41\u5f0fhash\u6821\u9a8c\u503c\u5e76\u91ca\u653e\u521b\u5efa\u7684stream\n\u4f20\u5165\u503c\uff1a\nuserdata crypto.hash_init()\u521b\u5efa\u7684stream,\u5fc5\u9009\n\u8fd4\u56de\u503c\uff1a\nstring \u6210\u529f\u8fd4\u56de\u8ba1\u7b97\u5f97\u51fa\u7684\u6d41\u5f0fhash\u503c\u7684hex\u5b57\u7b26\u4e32\uff0c\u5931\u8d25\u65e0\u8fd4\u56de\n\u4f8b\u5b50\uff1a\nlocal hashResult = crypto.hash_finish(stream)\n", "prefix": "crypto.hash_finish"}, "crypto.checksum": {"body": "crypto.checksum(${1:data},${2:mode})", "description": "crypto.checksum(data, mode) - \u8ba1\u7b97checksum\u6821\u9a8c\u548c\n\u4f20\u5165\u503c\uff1a\nstring \u5f85\u8ba1\u7b97\u7684\u6570\u636e,\u5fc5\u9009\nint \u6a21\u5f0f,\u7d2f\u52a0\u6a21\u5f0f, 0 - \u5f02\u6216, 1 - \u7d2f\u52a0, \u9ed8\u8ba4\u4e3a0\n\u8fd4\u56de\u503c\uff1a\nint checksum\u503c,\u6821\u9a8c\u548c\n\u4f8b\u5b50\uff1a\n-- \u672c\u51fd\u6570\u5728 2022.12.28 \u6dfb\u52a0\n-- \u5355\u7eaf\u8ba1\u7b97checksum\u503c\nlocal ck = crypto.checksum(\"OK\")\nlog.info(\"checksum\", \"ok\", string.format(\"%02X\", ck))\n-- \u7b2c\u4e8c\u4e2a\u53c2\u6570mode\u57282023.5.23\u65e5\u6dfb\u52a0\n", "prefix": "crypto.checksum"}, "dac.open": {"body": "dac.open(${1:ch},${2:freq},${3:mode})", "description": "dac.open(ch, freq, mode) - \u6253\u5f00DAC\u901a\u9053,\u5e76\u914d\u7f6e\u53c2\u6570\n\u4f20\u5165\u503c\uff1a\nint \u901a\u9053\u7f16\u53f7,\u4f8b\u59820\nint \u8f93\u51fa\u9891\u7387,\u5355\u4f4dhz\nint \u6a21\u5f0f,\u9ed8\u8ba4\u4e3a0,\u9884\u7559\n\u8fd4\u56de\u503c\uff1a\ntrue \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\nint \u5e95\u5c42\u8fd4\u56de\u503c,\u8c03\u8bd5\u7528\n\u4f8b\u5b50\uff1a\nif dac.open(0, 44000) then\n log.info(\"dac\", \"dac ch0 is opened\")\nend\n\n", "prefix": "dac.open"}, "dac.write": {"body": "dac.write(${1:ch},${2:data})", "description": "dac.write(ch, data) - \u4ece\u6307\u5b9aDAC\u901a\u9053\u8f93\u51fa\u4e00\u6bb5\u6ce2\u5f62,\u6216\u8005\u5355\u4e2a\u503c\n\u4f20\u5165\u503c\uff1a\nint \u901a\u9053\u7f16\u53f7,\u4f8b\u59820\nstring \u82e5\u8f93\u51fa\u56fa\u5b9a\u503c,\u53ef\u4ee5\u586b\u6570\u503c, \u82e5\u8f93\u51fa\u6ce2\u5f62,\u586bstring\n\u8fd4\u56de\u503c\uff1a\ntrue \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\nint \u5e95\u5c42\u8fd4\u56de\u503c,\u8c03\u8bd5\u7528\n\u4f8b\u5b50\uff1a\nif dac.open(0, 44000) then\n log.info(\"dac\", \"dac ch0 is opened\")\n dac.write(0, string.fromHex(\"ABCDABCD\"))\nend\ndac.close(0)\n", "prefix": "dac.write"}, "dac.close": {"body": "dac.close(${1:ch})", "description": "dac.close(ch) - \u5173\u95edDAC\u901a\u9053\n\u4f20\u5165\u503c\uff1a\nint \u901a\u9053\u7f16\u53f7,\u4f8b\u59820\n\u8fd4\u56de\u503c\uff1a\ntrue \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\nint \u5e95\u5c42\u8fd4\u56de\u503c,\u8c03\u8bd5\u7528\n\u4f8b\u5b50\uff1a\nif dac.open(0, 44000) then\n log.info(\"dac\", \"dac ch0 is opened\")\n dac.write(0, string.fromHex(\"ABCDABCD\"))\nend\ndac.close(0)\n", "prefix": "dac.close"}, "disp.init": {"body": "disp.init(${1:conf})", "description": "disp.init(conf) - \u663e\u793a\u5c4f\u521d\u59cb\u5316,\u8bf7\u4f7f\u7528u8g2\u5e93\n\u4f20\u5165\u503c\uff1a\ntable conf \u914d\u7f6e\u4fe1\u606f\n\u8fd4\u56de\u503c\uff1a\nint \u6b63\u5e38\u521d\u59cb\u53161,\u5df2\u7ecf\u521d\u59cb\u5316\u8fc72,\u5185\u5b58\u4e0d\u591f3,\u521d\u59cb\u5316\u5931\u8d25\u8fd4\u56de4\n\u4f8b\u5b50\uff1a\n-- disp\u5e93\u7684\u6240\u6709API\u5747\u5df2\u5408\u5e76\u5230u8g2\u5e93\n-- disp\u5e93\u5df2\u7ecf\u6620\u5c04\u4e3au8g2\u5e93,\u6240\u6709API\u5747\u4ee3\u7406\u5230u8g2,\u8bf7\u67e5\u9605u8g2\u5e93\u7684API\n", "prefix": "disp.init"}, "eink.init": {"body": "eink.init(${1:tp},${2:args},${3:spi_device})", "description": "eink.init(tp, args,spi_device) - eink\u663e\u793a\u5c4f\u521d\u59cb\u5316\n\u4f20\u5165\u503c\uff1a\nnumber eink\u7c7b\u578b\uff0c\u5f53\u524d\u652f\u6301\uff1ahttps://wiki.luatos.com/api/eink.html#id1\ntable \u9644\u52a0\u53c2\u6570,\u4e0e\u5177\u4f53\u8bbe\u5907\u6709\u5173\uff1a
    pin_busy\uff08busy\uff09
    port\uff1aspi\u7aef\u53e3,\u4f8b\u59820,1,2...\u5982\u679c\u4e3adevice\u65b9\u5f0f\u5219\u4e3a\"device\"
    pin_dc\uff1aeink\u6570\u636e/\u547d\u4ee4\u9009\u62e9\u5f15\u811a
    pin_rst\uff1aeink\u590d\u4f4d\u5f15\u811a\nuserdata spi\u8bbe\u5907,\u5f53port = \"device\"\u65f6\u6709\u6548\n\u4f8b\u5b50\uff1a\n-- \u521d\u59cb\u5316spi0\u7684eink.MODEL_4in2bc) \u6ce8\u610f:eink\u521d\u59cb\u5316\u4e4b\u524d\u9700\u8981\u5148\u521d\u59cb\u5316spi\nspi_eink = spi.deviceSetup(0,20,0,0,8,20000000,spi.MSB,1,1)\nlog.info(\"eink.init\",\neink.init(eink.MODEL_4in2bc,{port = \"device\",pin_dc = 17, pin_pwr = 7,pin_rst = 19,direction = 2,w = 160,h = 80,xoffset = 1,yoffset = 26},spi_eink))\n", "prefix": "eink.init"}, "eink.setup": {"body": "eink.setup(${1:full},${2:spiid},${3:pin_busy},${4:pin_reset},${5:pin_dc},${6:pin_cs})", "description": "eink.setup(full, spiid, pin_busy, pin_reset, pin_dc, pin_cs) - \u521d\u59cb\u5316eink\n\u4f20\u5165\u503c\uff1a\nint \u5168\u5c4f\u5237\u65b00,\u5c40\u90e8\u5237\u65b01,\u9ed8\u8ba4\u662f\u5168\u5c4f\u5237\u65b0\nint \u6240\u5728\u7684spi,\u9ed8\u8ba4\u662f0\nint Busy \u5fd9\u4fe1\u53f7\u7ba1\u811a\nint Reset \u590d\u4f4d\u7ba1\u811a\nint DC \u6570\u636e\u547d\u4ee4\u9009\u62e9\u7ba1\u811a\nint CS \u4f7f\u80fd\u7ba1\u811a\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n", "prefix": "eink.setup"}, "eink.sleep": {"body": "eink.sleep()", "description": "eink.sleep() - \u8fdb\u5165\u4f11\u7720\u6a21\u5f0f\uff0c\u518d\u6b21\u4f7f\u7528\u65f6\u9700\u8981\u91cd\u65b0\u521d\u59cb\u5316\n", "prefix": "eink.sleep"}, "eink.clear": {"body": "eink.clear(${1:color},${2:force})", "description": "eink.clear(color, force) - \u6e05\u9664\u7ed8\u56fe\u7f13\u51b2\u533a\uff0c\u9ed8\u8ba4\u4e0d\u4f1a\u9a6c\u4e0a\u5237\u65b0\u5230\u8bbe\u5907\n\u4f20\u5165\u503c\uff1a\nnumber color \u53ef\u9009\uff0c\u9ed8\u8ba41\u3002\u5237\u5c4f\u989c\u8272\nbool force \u53ef\u9009\uff0c\u9ed8\u8ba4false\u3002\u5982\u679c\u4e3atrue\u5219\u9a6c\u4e0a\u6e05\u5c4f\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n", "prefix": "eink.clear"}, "eink.setWin": {"body": "eink.setWin(${1:width},${2:height},${3:rotate})", "description": "eink.setWin(width, height, rotate) - \u8bbe\u7f6e\u7a97\u53e3\n\u4f20\u5165\u503c\uff1a\nint width \u5bbd\u5ea6\nint height \u9ad8\u5ea6\nint rotate \u663e\u793a\u65b9\u5411,0/1/2/3, \u76f8\u5f53\u4e8e\u65cb\u8f6c0\u5ea6/90\u5ea6/180\u5ea6/270\u5ea6\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n", "prefix": "eink.setWin"}, "eink.getWin": {"body": "eink.getWin()", "description": "eink.getWin() - \u83b7\u53d6\u7a97\u53e3\u4fe1\u606f\n\u8fd4\u56de\u503c\uff1a\nint width \u5bbd\nint height \u9ad8\nint rotate \u65cb\u8f6c\u65b9\u5411\n", "prefix": "eink.getWin"}, "eink.setFont": {"body": "eink.setFont(${1:font})", "description": "eink.setFont(font) - \u8bbe\u7f6e\u5b57\u4f53\n\u4f20\u5165\u503c\uff1a\nuserdata \u5b57\u4f53\n\u4f8b\u5b50\uff1a\n-- \u8bbe\u7f6e\u4e3a\u5b57\u4f53,\u5bf9\u4e4b\u540e\u7684print\u6709\u6548\neink.setFont(eink.font_opposansm12_chinese)\n", "prefix": "eink.setFont"}, "eink.print": {"body": "eink.print(${1:x},${2:y},${3:str},${4:colored})", "description": "eink.print(x, y, str, colored) - \u7ed8\u5236\u5b57\u7b26\u4e32\n\u4f20\u5165\u503c\uff1a\nint x\u5750\u6807\nint y\u5750\u6807\nstring \u5b57\u7b26\u4e32\nint \u989c\u8272, \u53ef\u4ee5\u662f0\u6216\u80051, \u9ed8\u8ba4\u662f0\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n-- \u5148\u8bbe\u7f6e\u5b57\u4f53, \u7136\u540e\u5199\u5b57\n-- \u53ef\u7528\u5b57\u4f53\u53d6\u51b3\u4e8e\u5177\u4f53\u7684\u56fa\u4ef6, \u5982\u679c\u6ca1\u6709\u4f60\u60f3\u8981\u7684\u5927\u5c0f,\u53ef\u4ee5\u4e91\u7f16\u8bd1\u4e00\u4efd\u81ea\u5b9a\u4e49\u56fa\u4ef6\n-- font_opposansm8_chinese\n-- font_opposansm10_chinese\n-- font_opposansm12_chinese\n-- font_opposansm14_chinese\n-- font_opposansm16_chinese\neink.setFont(eink.font_opposansm12_chinese)\neink.print(10, 20, \"LuatOS\")\n", "prefix": "eink.print"}, "eink.show": {"body": "eink.show(${1:x},${2:y},${3:noClear})", "description": "eink.show(x, y, noClear) - \u5c06\u7f13\u51b2\u533a\u56fe\u50cf\u8f93\u51fa\u5230\u5c4f\u5e55\n\u4f20\u5165\u503c\uff1a\nint x \u8f93\u51fa\u7684x\u5750\u6807,\u9ed8\u8ba40\nint y \u8f93\u51fa\u7684y\u5750\u6807,\u9ed8\u8ba40\nbool \u53ef\u9009\uff0c\u9ed8\u8ba4false\u3002\u5982\u679c\u4e3atrue\u5219\u4e0d\u8fdb\u884c\u6e05\u5c4f\uff0c\u76f4\u63a5\u5237\u4e0a\u65b0\u5185\u5bb9\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n", "prefix": "eink.show"}, "eink.draw": {"body": "eink.draw(${1:buff},${2:buff2},${3:noclear})", "description": "eink.draw(buff, buff2, noclear) - \u76f4\u63a5\u8f93\u51fa\u6570\u636e\u5230\u5c4f\u5e55,\u652f\u6301\u53cc\u8272\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nuserdata zbuff\u6307\u9488\nuserdata zbuff\u6307\u9488\nbool \u53ef\u9009\uff0c\u9ed8\u8ba4false\u3002\u5982\u679c\u4e3atrue\u5219\u4e0d\u8fdb\u884c\u6e05\u5c4f\uff0c\u76f4\u63a5\u5237\u4e0a\u65b0\u5185\u5bb9\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n", "prefix": "eink.draw"}, "eink.line": {"body": "eink.line(${1:x},${2:y},${3:x2},${4:y2},${5:colored})", "description": "eink.line(x, y, x2, y2, colored) - \u7f13\u51b2\u533a\u7ed8\u5236\u7ebf\n\u4f20\u5165\u503c\uff1a\nint \u8d77\u70b9x\u5750\u6807\nint \u8d77\u70b9y\u5750\u6807\nint \u7ec8\u70b9x\u5750\u6807\nint \u7ec8\u70b9y\u5750\u6807\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\neink.line(0, 0, 10, 20, 0)\n", "prefix": "eink.line"}, "eink.rect": {"body": "eink.rect(${1:x},${2:y},${3:x2},${4:y2},${5:colored},${6:fill})", "description": "eink.rect(x, y, x2, y2, colored, fill) - \u7f13\u51b2\u533a\u7ed8\u5236\u77e9\u5f62\n\u4f20\u5165\u503c\uff1a\nint \u5de6\u4e0a\u9876\u70b9x\u5750\u6807\nint \u5de6\u4e0a\u9876\u70b9y\u5750\u6807\nint \u53f3\u4e0b\u9876\u70b9x\u5750\u6807\nint \u53f3\u4e0b\u9876\u70b9y\u5750\u6807\nint \u9ed8\u8ba4\u662f0\nint \u662f\u5426\u586b\u5145,\u9ed8\u8ba4\u662f0,\u4e0d\u586b\u5145\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\neink.rect(0, 0, 10, 20)\neink.rect(0, 0, 10, 20,0, 1) -- Filled\n", "prefix": "eink.rect"}, "eink.circle": {"body": "eink.circle(${1:x},${2:y},${3:radius},${4:colored},${5:fill})", "description": "eink.circle(x, y, radius, colored, fill) - \u7f13\u51b2\u533a\u7ed8\u5236\u5706\u5f62\n\u4f20\u5165\u503c\uff1a\nint \u5706\u5fc3x\u5750\u6807\nint \u5706\u5fc3y\u5750\u6807\nint \u534a\u5f84\nint \u9ed8\u8ba4\u662f0\nint \u662f\u5426\u586b\u5145,\u9ed8\u8ba4\u662f0,\u4e0d\u586b\u5145\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\neink.circle(0, 0, 10)\neink.circle(0, 0, 10, 1, 1) -- Filled\n", "prefix": "eink.circle"}, "eink.qrcode": {"body": "eink.qrcode(${1:x},${2:y},${3:str},${4:size})", "description": "eink.qrcode(x, y, str, size) - \u7f13\u51b2\u533a\u7ed8\u5236QRCode\n\u4f20\u5165\u503c\uff1a\nint x\u5750\u6807\nint y\u5750\u6807\nstring \u4e8c\u7ef4\u7801\u7684\u5185\u5bb9\nint \u663e\u793a\u5927\u5c0f (\u6ce8\u610f:\u4e8c\u7ef4\u7801\u751f\u6210\u5927\u5c0f\u4e0e\u8981\u663e\u793a\u5185\u5bb9\u548c\u7ea0\u9519\u7b49\u7ea7\u6709\u5173,\u751f\u6210\u7248\u672c\u4e3a1-40(\u5bf9\u5e94 21x21 - 177x177)\u7684\u4e0d\u5b9a\u5927\u5c0f,\u5982\u679c\u548c\u8bbe\u7f6e\u5927\u5c0f\u4e0d\u540c\u4f1a\u81ea\u52a8\u5728\u6307\u5b9a\u7684\u533a\u57df\u4e2d\u95f4\u663e\u793a\u4e8c\u7ef4\u7801,\u5982\u4e8c\u7ef4\u7801\u672a\u663e\u793a\u8bf7\u67e5\u770b\u65e5\u5fd7\u63d0\u793a)\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n", "prefix": "eink.qrcode"}, "eink.bat": {"body": "eink.bat(${1:x},${2:y},${3:bat})", "description": "eink.bat(x, y, bat) - \u7f13\u51b2\u533a\u7ed8\u5236\u7535\u6c60\n\u4f20\u5165\u503c\uff1a\nint x\u5750\u6807\nint y\u5750\u6807\nint \u7535\u6c60\u7535\u538b,\u5355\u4f4d\u6beb\u4f0f\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n", "prefix": "eink.bat"}, "eink.weather_icon": {"body": "eink.weather_icon(${1:x},${2:y},${3:code})", "description": "eink.weather_icon(x, y, code) - \u7f13\u51b2\u533a\u7ed8\u5236\u5929\u6c14\u56fe\u6807\n\u4f20\u5165\u503c\uff1a\nint x\u5750\u6807\nint y\u5750\u6807\nint \u5929\u6c14\u4ee3\u53f7\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n", "prefix": "eink.weather_icon"}, "eink.model": {"body": "eink.model(${1:m})", "description": "eink.model(m) - \u8bbe\u7f6e\u58a8\u6c34\u5c4f\u9a71\u52a8\u578b\u53f7\n\u4f20\u5165\u503c\uff1a\nint \u578b\u53f7\u540d\u79f0, \u4f8b\u5982 eink.model(eink.MODEL_1in54_V2)\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n", "prefix": "eink.model"}, "eink.drawXbm": {"body": "eink.drawXbm(${1:x},${2:y},${3:w},${4:h},${5:data})", "description": "eink.drawXbm(x, y, w, h, data) - \u7ed8\u5236\u4f4d\u56fe\n\u4f20\u5165\u503c\uff1a\nint X\u5750\u6807\nint y\u5750\u6807\nint \u4f4d\u56fe\u5bbd\nint \u4f4d\u56fe\u9ad8\nint \u4f4d\u56fe\u6570\u636e,\u6bcf\u4e00\u4f4d\u4ee3\u8868\u4e00\u4e2a\u50cf\u7d20\n\u4f8b\u5b50\uff1a\n-- \u53d6\u6a21\u4f7f\u7528PCtoLCD2002\u8f6f\u4ef6\u5373\u53ef\n-- \u5728(0,0)\u4e3a\u5de6\u4e0a\u89d2,\u7ed8\u5236 16x16 \"\u4eca\" \u7684\u4f4d\u56fe\neink.drawXbm(0, 0, 16,16, string.char(\n 0x80,0x00,0x80,0x00,0x40,0x01,0x20,0x02,0x10,0x04,0x48,0x08,0x84,0x10,0x83,0x60,\n 0x00,0x00,0xF8,0x0F,0x00,0x08,0x00,0x04,0x00,0x04,0x00,0x02,0x00,0x01,0x80,0x00\n))\n", "prefix": "eink.drawXbm"}, "eink.setCtx": {"body": "eink.setCtx(${1:index})", "description": "eink.setCtx(index) - \u5207\u6362\u989c\u8272\u753b\u677f, \u9002\u5408\u591a\u8272\u58a8\u6c34\u5c4f\n\u4f20\u5165\u503c\uff1a\nint \u989c\u8272\u7d22\u5f15, \u9ed1\u8272\u4e3a0, \u7ea2\u8272\u4e3a1\n\u4f8b\u5b50\uff1a\n-- \u4ec5\u9002\u5408\u591a\u8272\u58a8\u6c34\u5c4f, \u5bf9\u5355\u8272\u58a8\u6c34\u5c4f(\u53ea\u6709\u9ed1\u767d)\u7684\u65e0\u6548\neink.setCtx(1)\n-- \u5207\u6362\u540e, \u6240\u6709drawXXX\u90fd\u4f1a\u64cd\u4f5c\u5728\u6307\u5b9a\u989c\u8272\u7684\u753b\u677f\n", "prefix": "eink.setCtx"}, "eink.async": {"body": "eink.async(${1:index})", "description": "eink.async(index) - \u5f02\u6b65\u65b9\u5f0f\uff0c\u4f7f\u7528\u6b64\u65b9\u5f0f\u9700\u8981\u5148 require(\"sysplus\") \u4e4b\u540e eink.clear().wait() eink.show().wait()\u8fdb\u884c\u5237\u5c4f\n\u4f20\u5165\u503c\uff1a\nint 1 \u4f7f\u7528\u5f02\u6b65\n\u4f8b\u5b50\uff1a\n eink.async(1)\n spi_eink = spi.deviceSetup(spi_id,pin_cs,0,0,8,20*1000*1000,spi.MSB,1,1)\n eink.init(eink.MODEL_1in54,\n {port = \"device\",pin_dc = pin_dc, pin_busy = pin_busy,pin_rst = pin_reset},\n spi_eink)\n eink.setWin(200, 200, 0)\n sys.wait(100)\n log.info(\"e-paper 1.54\", \"Testing Go\")\n eink.print(30, 20, \"LuatOS-AIR780E\",0x00)\n eink.show().wait()\n log.info(\"e-paper 1.54\", \"Testing End\")\n", "prefix": "eink.async"}, "errDump.dump": {"body": "errDump.dump(${1:zbuff},${2:type},${3:isDelete})", "description": "errDump.dump(zbuff, type, isDelete) - \u624b\u52a8\u8bfb\u53d6\u5f02\u5e38\u65e5\u5fd7\uff0c\u4e3b\u8981\u7528\u4e8e\u7528\u6237\u5c06\u65e5\u5fd7\u53d1\u9001\u7ed9\u81ea\u5df1\u7684\u670d\u52a1\u5668\u800c\u4e0d\u662fIOT\u5e73\u53f0\uff0c\u5982\u679c\u5728errDump.config\u914d\u7f6e\u4e86\u5468\u671f\u4e0a\u4f20\uff0c\u5219\u4e0d\u80fd\u4f7f\u7528\u672c\u51fd\u6570\n\u4f20\u5165\u503c\uff1a\nzbuff \u65e5\u5fd7\u4fe1\u606f\u7f13\u5b58\uff0c\u5982\u679c\u4e3anil\u5c31\u4e0d\u4f1a\u8bfb\u51fa\uff0c\u4e00\u822c\u5f53\nint \u65e5\u5fd7\u7c7b\u578b\uff0c\u76ee\u524d\u53ea\u6709errDump.TYPE_SYS\u548cerrDump.TYPE_USR\nboolean \u662f\u5426\u5220\u9664\u65e5\u5fd7\n\u8fd4\u56de\u503c\uff1a\nboolean true\u8868\u793a\u672c\u6b21\u8bfb\u53d6\u524d\u5e76\u6ca1\u6709\u5199\u5165\u6570\u636e\uff0cfalse\u53cd\u4e4b\uff0c\u5728\u5220\u9664\u65e5\u5fd7\u524d\uff0c\u6700\u597d\u518d\u8bfb\u4e00\u4e0b\u786e\u4fdd\u6ca1\u6709\u65b0\u7684\u6570\u636e\u5199\u5165\u4e86\n\u4f8b\u5b50\uff1a\nlocal result = errDump.dump(buff, errDump.TYPE_SYS, false) --\u8bfb\u51fa\u7cfb\u7edf\u8bb0\u5f55\u7684\u5f02\u5e38\u65e5\u5fd7\nlocal result = errDump.dump(nil, errDump.TYPE_SYS, true) --\u6e05\u9664\u7cfb\u7edf\u8bb0\u5f55\u7684\u5f02\u5e38\u65e5\u5fd7\n", "prefix": "errDump.dump"}, "errDump.record": {"body": "errDump.record(${1:string})", "description": "errDump.record(string) - \u5199\u5165\u7528\u6237\u7684\u5f02\u5e38\u65e5\u5fd7\uff0c\u6ce8\u610f\u6700\u5927\u53ea\u67094KB\uff0c\u8d85\u8fc7\u90e8\u5206\u65b0\u7684\u8986\u76d6\u65e7\u7684\uff0c\u5f00\u542f\u81ea\u52a8\u4e0a\u4f20\u540e\u4f1a\u4e0a\u4f20\u5230\u5408\u5b99IOT\u5e73\u53f0\n\u4f20\u5165\u503c\uff1a\nstring \u65e5\u5fd7\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\nerrDump.record(\"socket long time no connect\") --\u8bb0\u5f55\u4e0b\"socket long time no connect\"\n", "prefix": "errDump.record"}, "errDump.config": {"body": "errDump.config(${1:enable},${2:period},${3:user_flag},${4:custom_id})", "description": "errDump.config(enable, period, user_flag, custom_id) - \u914d\u7f6e\u5173\u952e\u65e5\u5fd7\u4e0a\u4f20IOT\u5e73\u53f0\uff0c\u8fd9\u91cc\u7684\u65e5\u5fd7\u5305\u62ec\u5f15\u8d77luavm\u5f02\u5e38\u9000\u51fa\u7684\u65e5\u5fd7\u548c\u7528\u6237\u901a\u8fc7record\u5199\u5165\u7684\u65e5\u5fd7\uff0c\u7c7b\u4f3c\u4e8eair\u7684errDump\n\u4f20\u5165\u503c\uff1a\nboolean \u662f\u5426\u542f\u7528\u8bb0\u5f55\u529f\u80fd\uff0cfalse\u7684\u8bdd\u5c06\u4e0d\u4f1a\u8bb0\u5f55\u4efb\u4f55\u65e5\u5fd7\nint \u5b9a\u65f6\u4e0a\u4f20\u5468\u671f\uff0c\u5355\u4f4d\u79d2\uff0c\u9ed8\u8ba4600\u79d2\uff0c\u8fd9\u4e2a\u662f\u81ea\u52a8\u4e0a\u4f20\u65f6\u5019\u540e\u7684\u91cd\u8bd5\u65f6\u95f4\u65f6\u95f4\uff0c\u5728\u5f00\u673a\u540e\u6216\u8005\u6709record\u64cd\u4f5c\u540e\u4f1a\u5f88\u5feb\u5c1d\u8bd5\u4e0a\u4f20\u5230\u5408\u5b99IOT\u5e73\u53f0\u4e00\u6b21\uff0c\u5982\u679c\u4e3a0\uff0c\u5219\u4e0d\u4f1a\u4e0a\u4f20\uff0c\u7531\u7528\u6237dump\u540e\u81ea\u5df1\u4e0a\u4f20\u81ea\u5df1\u7684\u5e73\u53f0\nstring \u7528\u6237\u7684\u7279\u6b8a\u6807\u8bc6\uff0c\u53ef\u4ee5\u4e3a\u7a7a\nstring \u8bbe\u5907\u8bc6\u522b\u53f7, 4G\u8bbe\u5907\u9ed8\u8ba4\u662fimei,\u5176\u4ed6\u8bbe\u5907\u9ed8\u8ba4\u662fmcu.unique_id\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\nerrDump.config(true, 3600, \"12345678\")\t--\u4e00\u4e2a\u5c0f\u65f6\u5c1d\u8bd5\u4e0a\u6b21\u4e00\u6b21\uff0c\u4e0a\u4f20\u65f6\u4f1a\u5728imei\u540e\u9644\u52a0\u4e0a12345678\nerrDump.config(false)\t--\u5173\u95ed\u8bb0\u5f55\u529f\u80fd\uff0c\u4e0d\u518d\u4e0a\u4f20\nerrDump.config(true, 0)\t--\u8bb0\u5f55\uff0c\u4f46\u662f\u4e0d\u4f1a\u4e3b\u52a8\u4e0a\u4f20\uff0c\u7531\u7528\u6237\u5b9e\u73b0\u4e0a\u4f20\u529f\u80fd\n-- 2023.09.22\u65b0\u589ecustom_id\u53c2\u6570\nerrDump.config(true, 3600, nil, \"ABC\")\t--\u4e00\u4e2a\u5c0f\u65f6\u5c1d\u8bd5\u4e0a\u6b21\u4e00\u6b21\uff0c\u4e0a\u4f20\u65f6\u4f7f\u7528\u81ea\u5b9a\u4e49\u7684\u8bbe\u5907\u8bc6\u522b\u53f7ABC\n", "prefix": "errDump.config"}, "fastlz.compress": {"body": "fastlz.compress(${1:data},${2:level})", "description": "fastlz.compress(data, level) - \u5feb\u901f\u538b\u7f29\n\u4f20\u5165\u503c\uff1a\nstring \u5f85\u538b\u7f29\u7684\u6570\u636e, \u5c11\u4e8e400\u5b57\u8282\u7684\u6570\u636e\u4e0d\u5efa\u8bae\u538b\u7f29, \u4e14\u538b\u7f29\u540e\u7684\u6570\u636e\u4e0d\u80fd\u5927\u4e8e32k\nint \u538b\u7f29\u7ea7\u522b,\u9ed8\u8ba41, \u53ef\u90091\u6216\u80052, 2\u7684\u538b\u7f29\u6bd4\u66f4\u9ad8(\u6709\u65f6\u5019)\n\u8fd4\u56de\u503c\uff1a\nstring \u82e5\u538b\u7f29\u6210\u529f,\u8fd4\u56de\u6570\u636e\u5b57\u7b26\u4e32, \u5426\u5219\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\n-- \u6ce8\u610f, \u538b\u7f29\u8fc7\u7a0b\u7684\u5185\u5b58\u6d88\u8017\u5982\u4e0b\n-- \u7cfb\u7edf\u5185\u5b58, \u56fa\u5b9a32k\n-- lua\u5185\u5b58, \u539f\u59cb\u6570\u636e\u7684\u5927\u5c0f\u76841.05\u500d,\u6700\u5c0f\u5360\u75281024\u5b57\u8282.\n", "prefix": "fastlz.compress"}, "fastlz.uncompress": {"body": "fastlz.uncompress(${1:data},${2:maxout})", "description": "fastlz.uncompress(data, maxout) - \u5feb\u901f\u89e3\u538b\n\u4f20\u5165\u503c\uff1a\nstring \u5f85\u89e3\u538b\u7684\u6570\u636e\nint \u89e3\u538b\u540e\u7684\u6700\u5927\u5927\u5c0f, \u9ed8\u8ba4\u662f4k, \u53ef\u6309\u9700\u8c03\u6574\n\u8fd4\u56de\u503c\uff1a\nstring \u82e5\u89e3\u538b\u6210\u529f,\u8fd4\u56de\u6570\u636e\u5b57\u7b26\u4e32, \u5426\u5219\u8fd4\u56denil\n", "prefix": "fastlz.uncompress"}, "fatfs.mount": {"body": "fatfs.mount(${1:mode},${2:mount_point},${3:spiid_or_spidevice},${4:spi_cs},${5:spi_speed},${6:power_pin},${7:power_on_delay},${8:auto_format})", "description": "fatfs.mount(mode,mount_point, spiid_or_spidevice, spi_cs, spi_speed, power_pin, power_on_delay, auto_format) - \u6302\u8f7dfatfs\n\u4f20\u5165\u503c\uff1a\nint fatfs\u6a21\u5f0f,\u53ef\u9009fatfs.SPI,fatfs.SDIO,fatfs.RAM,fatfs.USB\nstring \u865a\u62df\u6587\u4ef6\u7cfb\u7edf\u7684\u6302\u8f7d\u70b9, \u9ed8\u8ba4\u662f /fatfs\nint \u4f20\u5165spi device\u6307\u9488,\u6216\u8005spi\u7684id,\u6216\u8005sdio\u7684id\nint \u7247\u9009\u811a\u7684GPIO \u53f7, spi\u6a21\u5f0f\u6709\u6548,\u82e5\u524d\u4e00\u4e2a\u53c2\u6570\u4f20\u7684\u662fspi device,\u8fd9\u4e2a\u53c2\u6570\u5c31\u4e0d\u9700\u8981\u4f20\nint SPI\u6700\u9ad8\u901f\u5ea6,\u9ed8\u8ba410M, \u82e5\u524d2\u4e2a\u53c2\u6570\u4f20\u7684\u662fspi device,\u8fd9\u4e2a\u53c2\u6570\u5c31\u4e0d\u9700\u8981\u4f20\nint TF\u5361\u7535\u6e90\u63a7\u5236\u811a,TF\u5361\u521d\u59cb\u524d\u5148\u62c9\u4f4e\u590d\u4f4d\u518d\u62c9\u9ad8,\u5982\u679c\u6ca1\u6709,\u6216\u8005\u662f\u5185\u7f6e\u7535\u6e90\u63a7\u5236\u65b9\u5f0f,\u8fd9\u4e2a\u53c2\u6570\u5c31\u4e0d\u9700\u8981\u4f20\nint TF\u5361\u7535\u6e90\u590d\u4f4d\u8fc7\u7a0b\u65f6\u95f4,\u5355\u4f4dms,\u9ed8\u8ba4\u503c\u662f1\nbool \u6302\u8f7d\u5931\u8d25\u662f\u5426\u5c1d\u8bd5\u683c\u5f0f\u5316,\u9ed8\u8ba4\u662ftrue,\u5373\u81ea\u52a8\u683c\u5f0f\u5316. \u672c\u53c2\u6570\u57282023.8.16\u6dfb\u52a0\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue, \u5426\u5219\u8fd4\u56denil\u6216\u8005false\nstring \u5931\u8d25\u7684\u539f\u56e0\n\u4f8b\u5b50\uff1a\n-- \u65b9\u6cd51, \u4f7f\u7528SPI\u6a21\u5f0f\n local spiId = 2\n local result = spi.setup(\n spiId,--\u4e32\u53e3id\n 255, -- \u4e0d\u4f7f\u7528\u9ed8\u8ba4CS\u811a\n 0,--CPHA\n 0,--CPOL\n 8,--\u6570\u636e\u5bbd\u5ea6\n 400*1000 -- \u521d\u59cb\u5316\u65f6\u4f7f\u7528\u8f83\u4f4e\u7684\u9891\u7387\n )\n local TF_CS = pin.PB3\n gpio.setup(TF_CS, 1)\n --fatfs.debug(1) -- \u82e5\u6302\u8f7d\u5931\u8d25,\u53ef\u4ee5\u5c1d\u8bd5\u6253\u5f00\u8c03\u8bd5\u4fe1\u606f,\u67e5\u627e\u539f\u56e0\n\t-- \u63d0\u9192, \u82e5TF/SD\u6a21\u5757\u5e26\u7535\u5e73\u8f6c\u6362, \u901a\u5e38\u4e0d\u652f\u630110M\u4ee5\u4e0a\u7684\u6ce2\u7279\u7387!!\n fatfs.mount(fatfs.SPI,\"SD\", spiId, TF_CS, 24000000)\n local data, err = fatfs.getfree(\"SD\")\n if data then\n log.info(\"fatfs\", \"getfree\", json.encode(data))\n else\n log.info(\"fatfs\", \"err\", err)\n end\n\t-- \u5f80\u4e0b\u7684\u64cd\u4f5c, \u4f7f\u7528 io.open(\"/sd/xxx\", \"w+\") \u7b49io\u5e93\u7684API\u5c31\u53ef\u4ee5\u4e86\n", "prefix": "fatfs.mount"}, "fatfs.getfree": {"body": "fatfs.getfree(${1:mount_point})", "description": "fatfs.getfree(mount_point) - \u83b7\u53d6\u53ef\u7528\u7a7a\u95f4\u4fe1\u606f\n\u4f20\u5165\u503c\uff1a\nstring \u6302\u8f7d\u70b9, \u9700\u8981\u8ddffatfs.mount\u4f20\u5165\u7684\u503c\u4e00\u81f4\n\u8fd4\u56de\u503c\uff1a\ntable \u82e5\u6210\u529f\u4f1a\u8fd4\u56detable,\u5426\u5219\u8fd4\u56denil\nint \u5bfc\u81f4\u5931\u8d25\u7684\u5e95\u5c42\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n-- table\u5305\u542b\u7684\u5185\u5bb9\u6709\n-- total_sectors \u603b\u6247\u533a\u6570\u91cf\n-- free_sectors \u7a7a\u95f2\u6247\u533a\u6570\u91cf\n-- total_kb \u603b\u5b57\u8282\u6570,\u5355\u4f4dkb\n-- free_kb \u7a7a\u95f2\u5b57\u8282\u6570, \u5355\u4f4dkb\n-- \u6ce8\u610f,\u5f53\u524d\u6247\u533a\u5927\u5c0f\u56fa\u5b9a\u5728512\u5b57\u8282\n\n local data, err = fatfs.getfree(\"SD\")\n if data then\n log.info(\"fatfs\", \"getfree\", json.encode(data))\n else\n log.info(\"fatfs\", \"err\", err)\n end\n", "prefix": "fatfs.getfree"}, "fatfs.debug": {"body": "fatfs.debug(${1:value})", "description": "fatfs.debug(value) - \u8bbe\u7f6e\u8c03\u8bd5\u6a21\u5f0f\n\u4f20\u5165\u503c\uff1a\nbool \u662f\u5426\u8fdb\u5165\u8c03\u8bd5\u6a21\u5f0f,true\u4ee3\u8868\u8fdb\u5165\u8c03\u8bd5\u6a21\u5f0f,\u589e\u52a0\u8c03\u8bd5\u65e5\u5fd7\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n", "prefix": "fatfs.debug"}, "fdb.kvdb_init": {"body": "fdb.kvdb_init(${1:name},${2:partition})", "description": "fdb.kvdb_init(name, partition) - \u521d\u59cb\u5316kv\u6570\u636e\u5e93\n\u4f20\u5165\u503c\uff1a\nstring \u6570\u636e\u5e93\u540d,\u5f53\u524d\u4ec5\u652f\u6301env\nstring FAL\u5206\u533a\u540d,\u5f53\u524d\u4ec5\u652f\u6301onchip_fdb\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- fdb\u5e93\u57fa\u4e8e flashdb , \u518d\u6b21\u8868\u793a\u611f\u8c22.\nif fdb.kvdb_init(\"env\", \"onchip_fdb\") then\n log.info(\"fdb\", \"kv\u6570\u636e\u5e93\u521d\u59cb\u5316\u6210\u529f\")\nend\n\n-- \u5173\u4e8e\u6e05\u7a7afdb\u5e93\n-- \u4e0b\u8f7d\u5de5\u5177\u662f\u6ca1\u6709\u63d0\u4f9b\u76f4\u63a5\u6e05\u9664fdb\u6570\u636e\u7684\u9014\u5f84\u7684, \u4f46\u6709\u6709\u529e\u6cd5\u89e3\u51b3\n-- \u5199\u4e00\u4e2amain.lua, \u6267\u884c fdb.kvdb_init \u540e \u6267\u884c fdb.clear() \u5373\u53ef\u5168\u6e05fdb\u6570\u636e.\n", "prefix": "fdb.kvdb_init"}, "fdb.kv_set": {"body": "fdb.kv_set(${1:key},${2:value})", "description": "fdb.kv_set(key, value) - \u8bbe\u7f6e\u4e00\u5bf9kv\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nstring key\u7684\u540d\u79f0,\u5fc5\u586b,\u4e0d\u80fd\u7a7a\u5b57\u7b26\u4e32\nstring \u7528\u6237\u6570\u636e,\u5fc5\u586b,\u4e0d\u80fdnil, \u652f\u6301\u5b57\u7b26\u4e32/\u6570\u503c/table/\u5e03\u5c14\u503c, \u6570\u636e\u957f\u5ea6\u6700\u5927255\u5b57\u8282\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\nnumber \u7b2c\u4e8c\u4e2a\u4e3a\u8fd4\u56de\u4e3aflashdb\u7684fdb_kv_set_blob\u8fd4\u56de\u8be6\u7ec6\u72b6\u6001,0\uff1a\u65e0\u9519\u8bef 1:\u64e6\u9664\u9519\u8bef 2:\u8bfb\u9519\u8bef 3:\u5199\u9519\u8bef 4:\u672a\u627e\u5230 5:kv\u540d\u5b57\u9519\u8bef 6:kv\u540d\u5b57\u5b58\u5728 7:\u5df2\u4fdd\u5b58 8:\u521d\u59cb\u5316\u9519\u8bef\n\u4f8b\u5b50\uff1a\nif fdb.kvdb_init(\"env\", \"onchip_fdb\") then\n log.info(\"fdb\", fdb.kv_set(\"wendal\", \"goodgoodstudy\"))\nend\n", "prefix": "fdb.kv_set"}, "fdb.kv_get": {"body": "fdb.kv_get(${1:key},${2:skey})", "description": "fdb.kv_get(key, skey) - \u6839\u636ekey\u83b7\u53d6\u5bf9\u5e94\u7684\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nstring key\u7684\u540d\u79f0,\u5fc5\u586b,\u4e0d\u80fd\u7a7a\u5b57\u7b26\u4e32\nstring \u53ef\u9009\u7684\u6b21\u7ea7key,\u4ec5\u5f53\u539f\u59cb\u503c\u4e3atable\u65f6\u6709\u6548,\u76f8\u5f53\u4e8e fdb.kv_get(key)[skey]\n\u8fd4\u56de\u503c\uff1a\nany \u5b58\u5728\u5219\u8fd4\u56de\u6570\u636e,\u5426\u5219\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\nif fdb.kvdb_init(\"env\", \"onchip_fdb\") then\n log.info(\"fdb\", fdb.kv_get(\"wendal\"))\nend\n", "prefix": "fdb.kv_get"}, "fdb.kv_del": {"body": "fdb.kv_del(${1:key})", "description": "fdb.kv_del(key) - \u6839\u636ekey\u5220\u9664\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nstring key\u7684\u540d\u79f0,\u5fc5\u586b,\u4e0d\u80fd\u7a7a\u5b57\u7b26\u4e32\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\nif fdb.kvdb_init(\"env\", \"onchip_fdb\") then\n log.info(\"fdb\", fdb.kv_del(\"wendal\"))\nend\n", "prefix": "fdb.kv_del"}, "fdb.kv_clr": {"body": "fdb.kv_clr()", "description": "fdb.kv_clr() - \u6e05\u7a7a\u6574\u4e2akv\u6570\u636e\u5e93\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- \u6e05\u7a7a\nfdb.kv_clr()\n", "prefix": "fdb.kv_clr"}, "fdb.kv_iter": {"body": "fdb.kv_iter(${1:iter})", "description": "fdb.kv_iter(iter) - kv\u8fed\u4ee3\u5668\u83b7\u53d6\u4e0b\u4e00\u4e2akey\n\u4f20\u5165\u503c\uff1a\nuserdata fdb.kv_iter()\u8fd4\u56de\u7684\u6307\u9488\n\u8fd4\u56de\u503c\uff1a\nstring \u6210\u529f\u8fd4\u56de\u5b57\u7b26\u4e32key\u503c, \u5426\u5219\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\n-- \u6e05\u7a7a\nlocal iter = fdb.kv_iter()\nif iter then\n while 1 do\n local k = fdb.kv_next(iter)\n if not k then\n break\n end\n log.info(\"fdb\", k, \"value\", fdb.kv_get(k))\n end\nend\n", "prefix": "fdb.kv_iter"}, "fdb.kv_stat": {"body": "fdb.kv_stat()", "description": "fdb.kv_stat() - \u83b7\u53d6kv\u6570\u636e\u5e93\u72b6\u6001\n\u8fd4\u56de\u503c\uff1a\nint \u5df2\u4f7f\u7528\u7684\u7a7a\u95f4,\u5355\u4f4d\u5b57\u8282\nint \u603b\u53ef\u7528\u7a7a\u95f4, \u5355\u4f4d\u5b57\u8282\nint \u603bkv\u952e\u503c\u5bf9\u6570\u91cf, \u5355\u4f4d\u4e2a\n\u4f8b\u5b50\uff1a\n-- \u672cAPI\u4e8e2022.07.23 \u6dfb\u52a0\nlocal used,maxs,kv_count = fdb.kv_stat()\nlog.info(\"fdb\", \"kv\", used,maxs,kv_count)\n", "prefix": "fdb.kv_stat"}, "fonts.list": {"body": "fonts.list(${1:tp})", "description": "fonts.list(tp) - \u8fd4\u56de\u56fa\u4ef6\u652f\u6301\u7684\u5b57\u4f53\u5217\u8868\n\u4f20\u5165\u503c\uff1a\nstring \u7c7b\u578b, \u9ed8\u8ba4 u8g2, \u8fd8\u53ef\u4ee5\u662flvgl\n\u8fd4\u56de\u503c\uff1a\ntable \u5b57\u4f53\u5217\u8868\n\u4f8b\u5b50\uff1a\n-- API\u65b0\u589e\u4e8e2022-07-12\nif fonts.list then\n log.info(\"fonts\", \"u8g2\", json.encode(fonts.list(\"u8g2\")))\nend\n", "prefix": "fonts.list"}, "fonts.u8g2_get": {"body": "fonts.u8g2_get(${1:name},${2:tp})", "description": "fonts.u8g2_get(name, tp) - \u83b7\u53d6\u5b57\u4f53\n\u4f20\u5165\u503c\uff1a\nstring \u5b57\u4f53\u540d\u79f0, \u4f8b\u5982opposansm8_chinese unifont_t_symbols\nstring \u7c7b\u578b, \u9ed8\u8ba4 u8g2, \u8fd8\u53ef\u4ee5\u662flvgl\n\u8fd4\u56de\u503c\uff1a\nuserdata \u82e5\u5b57\u4f53\u5b58\u653e,\u8fd4\u56de\u5b57\u4f53\u6307\u9488, \u5426\u5219\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\noppo_8 = fonts.get(\"opposansm8_chinese\", \"u8g2\")\nif oppo_8 then\n u8g2.SetFont(oppo_8)\nelse\n log.warn(\"fonts\", \"no such font opposansm8_chinese\")\nend\n-- \u82e5\u4f7f\u7528\u4e91\u7f16\u8bd1\u7684\u81ea\u5b9a\u4e49\u5b57\u5e93, \u4f7f\u7528\u65b9\u5f0f\u5982\u4e0b\noppo_8 = fonts.get(\"oppo_bold_8\", \"u8g2\") -- oppo_bold_8 \u662f\u4e91\u7f16\u8bd1\u754c\u9762\u7684\u5b57\u5e93\u547d\u540d\nif oppo_8 then\n u8g2.SetFont(oppo_8)\nelse\n log.warn(\"fonts\", \"no such font opposansm8_chinese\")\nend\n", "prefix": "fonts.u8g2_get"}, "fonts.u8g2_load": {"body": "fonts.u8g2_load(${1:path},${2:path})", "description": "fonts.u8g2_load(path, path) - \u4ece\u6587\u4ef6\u52a0\u8f7d\u5b57\u4f53\n\u4f20\u5165\u503c\uff1a\nstring \u5b57\u4f53\u8def\u5f84, \u4f8b\u5982 /luadb/abc.bin\nstring \u7c7b\u578b, \u9ed8\u8ba4 u8g2. \u4e5f\u652f\u6301lvgl\n\u8fd4\u56de\u503c\uff1a\nuserdata \u82e5\u5b57\u4f53\u5b58\u653e,\u8fd4\u56de\u5b57\u4f53\u6307\u9488, \u5426\u5219\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\n-- API\u65b0\u589e\u4e8e2022-07-11\n-- \u63d0\u9192: \u82e5\u6587\u4ef6\u4f4d\u4e8e/luadb\u4e0b, \u4e0d\u9700\u8981\u5360\u7528\u5185\u5b58\n-- \u82e5\u6587\u4ef6\u5904\u4e8e\u5176\u4ed6\u8def\u5f84, \u4f8b\u5982tf/sd\u5361, spi flash, \u4f1a\u81ea\u52a8\u52a0\u8f7d\u5230\u5185\u5b58, \u6d88\u8017lua vm\u7684\u5185\u5b58\u7a7a\u95f4\n-- \u52a0\u8f7d\u540e\u8bf7\u9002\u5f53\u5f15\u7528, \u4e0d\u5fc5\u53cd\u590d\u52a0\u8f7d\u540c\u4e00\u4e2a\u5b57\u4f53\u6587\u4ef6\noppo12 = fonts.load(\"/luadb/oppo12.bin\")\nif oppo12 then\n u8g2.SetFont(oppo12)\nelse\n log.warn(\"fonts\", \"no such font file oppo12.bin\")\nend\n", "prefix": "fonts.u8g2_load"}, "fota.init": {"body": "fota.init(${1:storge_location},${2:len},${3:param1})", "description": "fota.init(storge_location, len, param1) - \u521d\u59cb\u5316fota\u6d41\u7a0b\n\u4f20\u5165\u503c\uff1a\nint/string fota\u6570\u636e\u5b58\u50a8\u7684\u8d77\u59cb\u4f4d\u7f6e
    \u5982\u679c\u662fint\uff0c\u5219\u662f\u7531\u82af\u7247\u5e73\u53f0\u5177\u4f53\u5224\u65ad
    \u5982\u679c\u662fstring\uff0c\u5219\u5b58\u50a8\u5728\u6587\u4ef6\u7cfb\u7edf\u4e2d
    \u5982\u679c\u4e3anil\uff0c\u5219\u7531\u5e95\u5c42\u51b3\u5b9a\u5b58\u50a8\u4f4d\u7f6e\nint \u6570\u636e\u5b58\u50a8\u7684\u6700\u5927\u7a7a\u95f4\nuserdata param1\uff0c\u5982\u679c\u6570\u636e\u5b58\u50a8\u5728spiflash\u65f6,\u4e3aspi_device\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u8fd4\u56detrue, \u5931\u8d25\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- \u521d\u59cb\u5316fota\u6d41\u7a0b\nlocal result = fota.init(0, 0x00300000, spi_device)\t--\u7531\u4e8e105\u7684flash\u4ece0x01000000\u5f00\u59cb\uff0c\u6240\u4ee50\u5c31\u662f\u5916\u90e8spiflash\nlocal result = fota.init()\t--ec618\u4f7f\u7528\u56fa\u5b9a\u5185\u90e8\u5730\u5740\uff0c\u6240\u4ee5\u4e0d\u9700\u8981\u53c2\u6570\u4e86\n", "prefix": "fota.init"}, "fota.wait": {"body": "fota.wait()", "description": "fota.wait() - \u7b49\u5f85\u5e95\u5c42fota\u6d41\u7a0b\u51c6\u5907\u597d\n\u4f20\u5165\u503c\uff1a\nboolean \u662f\u5426\u5b8c\u6574\u8d70\u5b8c\u6d41\u7a0b\uff0ctrue \u8868\u793a\u6b63\u786e\u8d70\u5b8c\u6d41\u7a0b\u4e86\n\u8fd4\u56de\u503c\uff1a\nboolean \u51c6\u5907\u597d\u8fd4\u56detrue\n\u4f8b\u5b50\uff1a\nlocal isDone = fota.wait()\n", "prefix": "fota.wait"}, "fota.run": {"body": "fota.run(${1:buff})", "description": "fota.run(buff) - \u5199\u5165fota\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nzbuff/string fota\u6570\u636e\uff0c\u5c3d\u91cf\u7528zbuff\n\u8fd4\u56de\u503c\uff1a\nboolean \u6709\u5f02\u5e38\u8fd4\u56defalse\uff0c\u65e0\u5f02\u5e38\u8fd4\u56detrue\nboolean \u63a5\u6536\u5230\u6700\u540e\u4e00\u5757\u8fd4\u56detrue\nint \u8fd8\u672a\u5199\u5165\u7684\u6570\u636e\u91cf\uff0c\u8d85\u8fc764K\u5fc5\u987b\u505a\u7b49\u5f85\n\u4f8b\u5b50\uff1a\nlocal result, isDone, cache = fota.run(buf) -- \u5199\u5165fota\u6d41\u7a0b\n\n-- \u63d0\u793a: \uff0c\u5982\u679c\u4f20\u5165\u7684\u662fzbuff\uff0c\u5199\u5165\u6210\u529f\u540e\uff0c\u8bf7\u81ea\u884c\u6e05\u7a7azbuff\u5185\u7684\u6570\u636e\n", "prefix": "fota.run"}, "fota.file": {"body": "fota.file(${1:path})", "description": "fota.file(path) - \u4ece\u6307\u5b9a\u6587\u4ef6\u8bfb\u53d6fota\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nstring \u6587\u4ef6\u8def\u5f84\n\u8fd4\u56de\u503c\uff1a\nboolean \u6709\u5f02\u5e38\u8fd4\u56defalse\uff0c\u65e0\u5f02\u5e38\u8fd4\u56detrue\nboolean \u63a5\u6536\u5230\u6700\u540e\u4e00\u5757\u8fd4\u56detrue\nint \u8fd8\u672a\u5199\u5165\u7684\u6570\u636e\u91cf\uff0c\u8d85\u8fc764K\u5fc5\u987b\u505a\u7b49\u5f85\n\u4f8b\u5b50\uff1a\nlocal result, isDone, cache = fota.file(\"/xxx.bin\") -- \u5199\u5165fota\u6d41\u7a0b\n-- \u672cAPI\u4e8e2023.03.23 \u6dfb\u52a0\n", "prefix": "fota.file"}, "fota.isDone": {"body": "fota.isDone()", "description": "fota.isDone() - \u7b49\u5f85\u5e95\u5c42fota\u6d41\u7a0b\u5b8c\u6210\n\u8fd4\u56de\u503c\uff1a\nboolean \u6709\u5f02\u5e38\u8fd4\u56defalse\uff0c\u65e0\u5f02\u5e38\u8fd4\u56detrue\nboolean \u5199\u5165\u5230\u6700\u540e\u4e00\u5757\u8fd4\u56detrue\n\u4f8b\u5b50\uff1a\nlocal result, isDone = fota.isDone()\n", "prefix": "fota.isDone"}, "fota.finish": {"body": "fota.finish(${1:is_ok})", "description": "fota.finish(is_ok) - \u7ed3\u675ffota\u6d41\u7a0b\n\u4f20\u5165\u503c\uff1a\nboolean \u662f\u5426\u5b8c\u6574\u8d70\u5b8c\u6d41\u7a0b\uff0ctrue \u8868\u793a\u6b63\u786e\u8d70\u5b8c\u6d41\u7a0b\u4e86\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u8fd4\u56detrue, \u5931\u8d25\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- \u7ed3\u675ffota\u6d41\u7a0b\nlocal result = fota.finish(true)\n", "prefix": "fota.finish"}, "fs.fsstat": {"body": "fs.fsstat(${1:path})", "description": "fs.fsstat(path) - \u83b7\u53d6\u6587\u4ef6\u7cfb\u7edf\u4fe1\u606f\n\u4f20\u5165\u503c\uff1a\nstring \u8def\u5f84,\u9ed8\u8ba4\"/\",\u53ef\u9009\n\u8fd4\u56de\u503c\uff1a\nboolean \u83b7\u53d6\u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\nint \u603b\u7684block\u6570\u91cf\nint \u5df2\u4f7f\u7528\u7684block\u6570\u91cf\nint block\u7684\u5927\u5c0f,\u5355\u4f4d\u5b57\u8282\nstring \u6587\u4ef6\u7cfb\u7edf\u7c7b\u578b,\u4f8b\u5982lfs\u4ee3\u8868littlefs\n\u4f8b\u5b50\uff1a\n-- \u6253\u5370\u6839\u5206\u533a\u7684\u4fe1\u606f\nlog.info(\"fsstat\", fs.fsstat(\"/\"))\n", "prefix": "fs.fsstat"}, "fs.fsize": {"body": "fs.fsize(${1:path})", "description": "fs.fsize(path) - \u83b7\u53d6\u6587\u4ef6\u5927\u5c0f\n\u4f20\u5165\u503c\uff1a\nstring \u6587\u4ef6\u8def\u5f84\n\u8fd4\u56de\u503c\uff1a\nint \u6587\u4ef6\u5927\u5c0f,\u82e5\u83b7\u53d6\u5931\u8d25\u4f1a\u8fd4\u56de0\n\u4f8b\u5b50\uff1a\n-- \u6253\u5370main.luac\u7684\u5927\u5c0f\nlog.info(\"fsize\", fs.fsize(\"/main.luac\"))\n", "prefix": "fs.fsize"}, "fskv.init": {"body": "fskv.init()", "description": "fskv.init() - \u521d\u59cb\u5316kv\u6570\u636e\u5e93\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\nif fskv.init() then\n log.info(\"fdb\", \"kv\u6570\u636e\u5e93\u521d\u59cb\u5316\u6210\u529f\")\nend\n\n-- \u5173\u4e8e\u6e05\u7a7afdb\u5e93\n-- \u4e0b\u8f7d\u5de5\u5177\u662f\u6ca1\u6709\u63d0\u4f9b\u76f4\u63a5\u6e05\u9664fdb\u6570\u636e\u7684\u9014\u5f84\u7684, \u4f46\u6709\u529e\u6cd5\u89e3\u51b3\n-- \u5199\u4e00\u4e2amain.lua, \u6267\u884c fskv.kvdb_init \u540e \u6267\u884c fskv.clear() \u5373\u53ef\u5168\u6e05fdb\u6570\u636e.\n", "prefix": "fskv.init"}, "fskv.set": {"body": "fskv.set(${1:key},${2:value})", "description": "fskv.set(key, value) - \u8bbe\u7f6e\u4e00\u5bf9kv\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nstring key\u7684\u540d\u79f0,\u5fc5\u586b,\u4e0d\u80fd\u7a7a\u5b57\u7b26\u4e32\nstring \u7528\u6237\u6570\u636e,\u5fc5\u586b,\u4e0d\u80fdnil, \u652f\u6301\u5b57\u7b26\u4e32/\u6570\u503c/table/\u5e03\u5c14\u503c, \u6570\u636e\u957f\u5ea6\u6700\u59274095\u5b57\u8282\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- \u8bbe\u7f6e\u6570\u636e, \u5b57\u7b26\u4e32,\u6570\u503c,table,\u5e03\u5c14\u503c,\u5747\u53ef\n-- \u4f46\u4e0d\u53ef\u4ee5\u662fnil, function, userdata, task\nlog.info(\"fdb\", fskv.set(\"wendal\", \"goodgoodstudy\"))\nlog.info(\"fdb\", fskv.set(\"upgrade\", true))\nlog.info(\"fdb\", fskv.set(\"timer\", 1))\nlog.info(\"fdb\", fskv.set(\"bigd\", {name=\"wendal\",age=123}))\n", "prefix": "fskv.set"}, "fskv.sett": {"body": "fskv.sett(${1:key},${2:skey},${3:value})", "description": "fskv.sett(key, skey, value) - \u8bbe\u7f6etable\u5185\u7684\u952e\u503c\u5bf9\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nstring key\u7684\u540d\u79f0,\u5fc5\u586b,\u4e0d\u80fd\u7a7a\u5b57\u7b26\u4e32\nstring table\u7684key\u540d\u79f0, \u5fc5\u586b, \u4e0d\u80fd\u662f\u7a7a\u5b57\u7b26\u4e32\nstring \u7528\u6237\u6570\u636e,\u5fc5\u586b,\u652f\u6301\u5b57\u7b26\u4e32/\u6570\u503c/table/\u5e03\u5c14\u503c, \u6570\u636e\u957f\u5ea6\u6700\u59274095\u5b57\u8282\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse/nil\n\u4f8b\u5b50\uff1a\n-- \u672cAPI\u57282023.7.26\u65b0\u589e,\u6ce8\u610f\u4e0eset\u51fd\u6570\u533a\u522b\n-- \u8bbe\u7f6e\u6570\u636e, \u5b57\u7b26\u4e32,\u6570\u503c,table,\u5e03\u5c14\u503c,\u5747\u53ef\n-- \u4f46\u4e0d\u53ef\u4ee5\u662ffunction, userdata, task\nlog.info(\"fdb\", fskv.sett(\"mytable\", \"wendal\", \"goodgoodstudy\"))\nlog.info(\"fdb\", fskv.sett(\"mytable\", \"upgrade\", true))\nlog.info(\"fdb\", fskv.sett(\"mytable\", \"timer\", 1))\nlog.info(\"fdb\", fskv.sett(\"mytable\", \"bigd\", {name=\"wendal\",age=123}))\n\n-- \u4e0b\u5217\u8bed\u53e5\u5c06\u6253\u5370\u51fa4\u4e2a\u5143\u7d20\u7684table\nlog.info(\"fdb\", fskv.get(\"mytable\"), json.encode(fskv.get(\"mytable\")))\n-- \u6ce8\u610f: \u5982\u679ckey\u4e0d\u5b58\u5728, \u6216\u8005\u539f\u672c\u7684\u503c\u4e0d\u662ftable\u7c7b\u578b,\u5c06\u4f1a\u5b8c\u5168\u8986\u76d6\n-- \u4f8b\u5982\u4e0b\u5217\u5199\u6cd5,\u6700\u7ec8\u83b7\u53d6\u5230\u7684\u662ftable,\u800c\u975e\u7b2c\u4e00\u884c\u7684\u5b57\u7b26\u4e32\nlog.info(\"fdb\", fskv.set(\"mykv\", \"123\"))\nlog.info(\"fdb\", fskv.sett(\"mykv\", \"age\", \"123\")) -- \u4fdd\u5b58\u7684\u5c06\u662f {age:\"123\"}\n\n\n-- \u5982\u679c\u8bbe\u7f6e\u7684\u6570\u636e\u586bnil, \u4ee3\u8868\u5220\u9664\u5bf9\u5e94\u7684key\nlog.info(\"fdb\", fskv.sett(\"mykv\", \"name\", \"wendal\"))\nlog.info(\"fdb\", fskv.sett(\"mykv\", \"name\")) -- \u76f8\u5f53\u4e8e\u5220\u9664\n-- \n", "prefix": "fskv.sett"}, "fskv.get": {"body": "fskv.get(${1:key},${2:skey})", "description": "fskv.get(key, skey) - \u6839\u636ekey\u83b7\u53d6\u5bf9\u5e94\u7684\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nstring key\u7684\u540d\u79f0,\u5fc5\u586b,\u4e0d\u80fd\u7a7a\u5b57\u7b26\u4e32\nstring \u53ef\u9009\u7684\u6b21\u7ea7key,\u4ec5\u5f53\u539f\u59cb\u503c\u4e3atable\u65f6\u6709\u6548,\u76f8\u5f53\u4e8e fskv.get(key)[skey]\n\u8fd4\u56de\u503c\uff1a\nany \u5b58\u5728\u5219\u8fd4\u56de\u6570\u636e,\u5426\u5219\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\nif fskv.init() then\n log.info(\"fdb\", fskv.get(\"wendal\"))\nend\n\n-- \u82e5\u9700\u8981\"\u9ed8\u8ba4\u503c\", \u5bf9\u5e94\u975ebool\u5e03\u5c14\u503c, \u53ef\u4ee5\u8fd9\u6837\u5199\nlocal v = fskv.get(\"wendal\") or \"123\"\n", "prefix": "fskv.get"}, "fskv.del": {"body": "fskv.del(${1:key})", "description": "fskv.del(key) - \u6839\u636ekey\u5220\u9664\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nstring key\u7684\u540d\u79f0,\u5fc5\u586b,\u4e0d\u80fd\u7a7a\u5b57\u7b26\u4e32\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\nlog.info(\"fdb\", fskv.del(\"wendal\"))\n", "prefix": "fskv.del"}, "fskv.clear": {"body": "fskv.clear()", "description": "fskv.clear() - \u6e05\u7a7a\u6574\u4e2akv\u6570\u636e\u5e93\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- \u6e05\u7a7a\nfskv.clear()\n", "prefix": "fskv.clear"}, "fskv.iter": {"body": "fskv.iter()", "description": "fskv.iter() - kv\u6570\u636e\u5e93\u8fed\u4ee3\u5668\n\u8fd4\u56de\u503c\uff1a\nuserdata \u6210\u529f\u8fd4\u56de\u8fed\u4ee3\u5668\u6307\u9488,\u5426\u5219\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\n-- \u6e05\u7a7a\nlocal iter = fskv.iter()\nif iter then\n while 1 do\n local k = fskv.next(iter)\n if not k then\n break\n end\n log.info(\"fdb\", k, \"value\", fskv.kv_get(k))\n end\nend\n", "prefix": "fskv.iter"}, "fskv.next": {"body": "fskv.next(${1:iter})", "description": "fskv.next(iter) - kv\u8fed\u4ee3\u5668\u83b7\u53d6\u4e0b\u4e00\u4e2akey\n\u4f20\u5165\u503c\uff1a\nuserdata fskv.iter()\u8fd4\u56de\u7684\u6307\u9488\n\u8fd4\u56de\u503c\uff1a\nstring \u6210\u529f\u8fd4\u56de\u5b57\u7b26\u4e32key\u503c, \u5426\u5219\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\n-- \u6e05\u7a7a\nlocal iter = fskv.iter()\nif iter then\n while 1 do\n local k = fskv.next(iter)\n if not k then\n break\n end\n log.info(\"fskv\", k, \"value\", fskv.get(k))\n end\nend\n", "prefix": "fskv.next"}, "fskv.status": {"body": "fskv.status()", "description": "fskv.status() - \u83b7\u53d6kv\u6570\u636e\u5e93\u72b6\u6001\n\u8fd4\u56de\u503c\uff1a\nint \u5df2\u4f7f\u7528\u7684\u7a7a\u95f4,\u5355\u4f4d\u5b57\u8282\nint \u603b\u53ef\u7528\u7a7a\u95f4, \u5355\u4f4d\u5b57\u8282\nint \u603bkv\u952e\u503c\u5bf9\u6570\u91cf, \u5355\u4f4d\u4e2a\n\u4f8b\u5b50\uff1a\nlocal used, total,kv_count = fskv.status()\nlog.info(\"fdb\", \"kv\", used,total,kv_count)\n", "prefix": "fskv.status"}, "ftp.login": {"body": "ftp.login(${1:adapter},${2:ip_addr},${3:port},${4:username},${5:password})", "description": "ftp.login(adapter,ip_addr,port,username,password) - FTP\u5ba2\u6237\u7aef\n\u4f20\u5165\u503c\uff1a\nint \u9002\u914d\u5668\u5e8f\u53f7, \u53ea\u80fd\u662fsocket.ETH0, socket.STA, socket.AP,\u5982\u679c\u4e0d\u586b,\u4f1a\u9009\u62e9\u5e73\u53f0\u81ea\u5e26\u7684\u65b9\u5f0f,\u7136\u540e\u662f\u6700\u540e\u4e00\u4e2a\u6ce8\u518c\u7684\u9002\u914d\u5668\nstring ip_addr \u5730\u5740\nstring port \u7aef\u53e3,\u9ed8\u8ba421\nstring username \u7528\u6237\u540d\nstring password \u5bc6\u7801\nbool/table \u662f\u5426\u4e3assl\u52a0\u5bc6\u8fde\u63a5,\u9ed8\u8ba4\u4e0d\u52a0\u5bc6,true\u4e3a\u65e0\u8bc1\u4e66\u6700\u7b80\u5355\u7684\u52a0\u5bc6\uff0ctable\u4e3a\u6709\u8bc1\u4e66\u7684\u52a0\u5bc6
    server_cert \u670d\u52a1\u5668ca\u8bc1\u4e66\u6570\u636e
    client_cert \u5ba2\u6237\u7aefca\u8bc1\u4e66\u6570\u636e
    client_key \u5ba2\u6237\u7aef\u79c1\u94a5\u52a0\u5bc6\u6570\u636e
    client_password \u5ba2\u6237\u7aef\u79c1\u94a5\u53e3\u4ee4\u6570\u636e\n\u8fd4\u56de\u503c\uff1a\nbool/string \u6210\u529f\u8fd4\u56detrue \u5931\u8d25\u8fd4\u56destring\n\u4f8b\u5b50\uff1a\nftp_login = ftp.login(nil,\"xxx\")\n", "prefix": "ftp.login"}, "ftp.command": {"body": "ftp.command(${1:cmd})", "description": "ftp.command(cmd) - FTP\u547d\u4ee4\n\u4f20\u5165\u503c\uff1a\nstring cmd \u547d\u4ee4 \u76ee\u524d\u652f\u6301:NOOP SYST TYPE PWD MKD CWD CDUP RMD DELE LIST\n\u8fd4\u56de\u503c\uff1a\nstring \u6210\u529f\u8fd4\u56detrue \u5931\u8d25\u8fd4\u56destring\n\u4f8b\u5b50\uff1a\n print(ftp.command(\"NOOP\").wait())\n print(ftp.command(\"SYST\").wait())\n print(ftp.command(\"TYPE I\").wait())\n print(ftp.command(\"PWD\").wait())\n print(ftp.command(\"MKD QWER\").wait())\n print(ftp.command(\"CWD /QWER\").wait())\n print(ftp.command(\"CDUP\").wait())\n print(ftp.command(\"RMD QWER\").wait())\n\tprint(ftp.command(\"DELE /1/12222.txt\").wait())\n", "prefix": "ftp.command"}, "ftp.pull": {"body": "ftp.pull(${1:local_name},${2:remote_name})", "description": "ftp.pull(local_name,remote_name) - FTP\u6587\u4ef6\u4e0b\u8f7d\n\u4f20\u5165\u503c\uff1a\nstring local_name \u672c\u5730\u6587\u4ef6\nstring remote_name \u670d\u52a1\u5668\u6587\u4ef6\n\u8fd4\u56de\u503c\uff1a\nbool/string \u6210\u529f\u8fd4\u56detrue \u5931\u8d25\u8fd4\u56destring\n\u4f8b\u5b50\uff1a\nftp.pull(\"/1222.txt\",\"/1222.txt\").wait()\n", "prefix": "ftp.pull"}, "ftp.push": {"body": "ftp.push(${1:local_name},${2:remote_name})", "description": "ftp.push(local_name,remote_name) - FTP\u6587\u4ef6\u4e0a\u4f20\n\u4f20\u5165\u503c\uff1a\nstring local_name \u672c\u5730\u6587\u4ef6\nstring remote_name \u670d\u52a1\u5668\u6587\u4ef6\n\u8fd4\u56de\u503c\uff1a\nbool/string \u6210\u529f\u8fd4\u56detrue \u5931\u8d25\u8fd4\u56destring\n\u4f8b\u5b50\uff1a\nftp.push(\"/1222.txt\",\"/1222.txt\").wait()\n", "prefix": "ftp.push"}, "ftp.close": {"body": "ftp.close()", "description": "ftp.close() - FTP\u5ba2\u6237\u7aef\u5173\u95ed\n\u8fd4\u56de\u503c\uff1a\nbool/string \u6210\u529f\u8fd4\u56detrue \u5931\u8d25\u8fd4\u56destring\n\u4f8b\u5b50\uff1a\nftp.close().wait()\n", "prefix": "ftp.close"}, "sm.sm2encrypt": {"body": "sm.sm2encrypt(${1:pkx},${2:pky},${3:data},${4:mode},${5:mode2})", "description": "sm.sm2encrypt(pkx,pky,data, mode, mode2) - sm2\u7b97\u6cd5\u52a0\u5bc6\n\u4f20\u5165\u503c\uff1a\nstring \u516c\u94a5x,\u5fc5\u9009. HEX\u5b57\u7b26\u4e32\nstring \u516c\u94a5y,\u5fc5\u9009. HEX\u5b57\u7b26\u4e32\nstring \u5f85\u8ba1\u7b97\u7684\u6570\u636e,\u5fc5\u9009,\u6700\u957f32\u5b57\u8282, \u975eHEX\u5b57\u7b26\u4e32\nboolean \u8f93\u51fa\u6a21\u5f0f,\u9ed8\u8ba4false. false-GMSSL\u9ed8\u8ba4\u683c\u5f0fDER, true-\u7f51\u7ad9\u517c\u5bb9\u6a21\u5f0f\nboolean \u6807\u51c6\u7248\u672c,\u9ed8\u8ba4false. false-C1C3C2\u65b0\u56fd\u9645, true-C1C2C3\u8001\u56fd\u9645\n\u8fd4\u56de\u503c\uff1a\nstring \u52a0\u5bc6\u540e\u7684\u5b57\u7b26\u4e32, \u539f\u6837\u8f93\u51fa,\u672a\u7ecfHEX\u8f6c\u6362. \u82e5\u52a0\u5bc6\u5931\u8d25\u4f1a\u8fd4\u56denil\u6216\u7a7a\u5b57\u7b26\u4e32\n\u4f8b\u5b50\uff1a\n-- \u63d0\u793a mode/mode2 \u53c2\u6570\u662f 2023.10.17 \u65b0\u589e\n-- \u7531\u4e8eSM2\u5728\u5404\u5e73\u53f0\u7684\u5b9e\u73b0\u90fd\u6709\u5dee\u5f02,\u7528\u6cd5\u52a1\u5fc5\u53c2\u8003demo\n", "prefix": "sm.sm2encrypt"}, "sm.sm2decrypt": {"body": "sm.sm2decrypt(${1:private},${2:data},${3:mode},${4:mode2})", "description": "sm.sm2decrypt(private,data,mode,mode2) - sm2\u7b97\u6cd5\u89e3\u5bc6\n\u4f20\u5165\u503c\uff1a\nstring \u79c1\u94a5,\u5fc5\u9009,HEX\u5b57\u7b26\u4e32\nstring \u5f85\u8ba1\u7b97\u7684\u6570\u636e,\u5fc5\u9009,\u539f\u59cb\u6570\u636e,\u975eHEX\u5b57\u7b26\u4e32\nboolean \u8f93\u51fa\u6a21\u5f0f,\u9ed8\u8ba4false. false-GMSSL\u9ed8\u8ba4\u683c\u5f0fDER, true-\u7f51\u7ad9\u517c\u5bb9\u6a21\u5f0f\nboolean \u6807\u51c6\u7248\u672c,\u9ed8\u8ba4false. false-C1C3C2\u65b0\u56fd\u9645, true-C1C2C3\u8001\u56fd\u9645\n\u8fd4\u56de\u503c\uff1a\nstring \u89e3\u5bc6\u540e\u7684\u5b57\u7b26\u4e32,\u672a\u7ecfHEX\u8f6c\u6362.\u82e5\u89e3\u5bc6\u5931\u8d25\u4f1a\u8fd4\u56denil\u6216\u7a7a\u5b57\u7b26\u4e32\n\u4f8b\u5b50\uff1a\n-- \u63d0\u793a mode/mode2 \u53c2\u6570\u662f 2023.10.17 \u65b0\u589e\n-- \u7531\u4e8eSM2\u5728\u5404\u5e73\u53f0\u7684\u5b9e\u73b0\u90fd\u6709\u5dee\u5f02,\u7528\u6cd5\u52a1\u5fc5\u53c2\u8003demo\n", "prefix": "sm.sm2decrypt"}, "sm.sm3": {"body": "sm.sm3(${1:data})", "description": "sm.sm3(data) - sm3\u7b97\u6cd5,\u7b97HASH\u503c\n\u4f20\u5165\u503c\uff1a\nstring \u5f85\u8ba1\u7b97\u7684\u6570\u636e,\u5fc5\u9009\n\u8fd4\u56de\u503c\uff1a\nstring \u5bf9\u5e94\u7684hash\u503c\n\u4f8b\u5b50\uff1a\nlocal encodeStr = gmssl.sm3(\"lqlq666lqlq946\")\nlog.info(\"testsm.sm3update\",string.toHex(encodeStr))\n", "prefix": "sm.sm3"}, "sm.sm3hmac": {"body": "sm.sm3hmac(${1:data},${2:key})", "description": "sm.sm3hmac(data, key) - sm3\u7b97\u6cd5,\u7b97HASH\u503c,\u4f46\u5e26HMAC\n\u4f20\u5165\u503c\uff1a\nstring \u5f85\u8ba1\u7b97\u7684\u6570\u636e,\u5fc5\u9009\nstring \u5bc6\u94a5\n\u8fd4\u56de\u503c\uff1a\nstring \u5bf9\u5e94\u7684hash\u503c\n\u4f8b\u5b50\uff1a\nlocal encodeStr = gmssl.sm3hmac(\"lqlq666lqlq946\", \"123\")\nlog.info(\"testsm.sm3update\",string.toHex(encodeStr))\n", "prefix": "sm.sm3hmac"}, "gmssl.sm4encrypt": {"body": "gmssl.sm4encrypt(${1:mode},${2:padding},${3:originStr},${4:password})", "description": "gmssl.sm4encrypt(mode,padding,originStr,password) - SM4\u52a0\u5bc6\u7b97\u6cd5\n\u4f20\u5165\u503c\uff1a\nstring \u52a0\u5bc6\u6a21\u5f0f, CBC\u6216ECB \nstring \u586b\u5145\u65b9\u5f0f, NONE/ZERO/PKCS5/PKCS7\nstring \u52a0\u5bc6\u7684\u5b57\u7b26\u4e32\nstring \u5bc6\u94a5\n\u8fd4\u56de\u503c\uff1a\nstring \u52a0\u5bc6\u540e\u7684\u6570\u636e\n\u4f8b\u5b50\uff1a\nlocal originStr = \"SM4 ECB ZeroPadding test\"\n--\u52a0\u5bc6\u6a21\u5f0f\uff1aECB\uff1b\u586b\u5145\u65b9\u5f0f\uff1aZeroPadding\uff1b\u5bc6\u94a5\uff1a1234567890123456\uff1b\u5bc6\u94a5\u957f\u5ea6\uff1a128 bit\nlocal encodeStr = gmssl.sm4encrypt(\"ECB\",\"ZERO\",originStr,\"1234567890123456\")\nprint(originStr,\"encrypt\",string.toHex(encodeStr))\nlog.info(\"testsm.decrypt\",gmssl.sm4decrypt(\"ECB\",\"ZERO\",encodeStr,\"1234567890123456\"))\n\noriginStr = \"SM4 ECB Pkcs5Padding test\"\n--\u52a0\u5bc6\u6a21\u5f0f\uff1aECB\uff1b\u586b\u5145\u65b9\u5f0f\uff1aPkcs5Padding\uff1b\u5bc6\u94a5\uff1a1234567890123456\uff1b\u5bc6\u94a5\u957f\u5ea6\uff1a128 bit\nencodeStr = gmssl.sm4encrypt(\"ECB\",\"PKCS5\",originStr,\"1234567890123456\")\nprint(originStr,\"encrypt\",string.toHex(encodeStr))\nlog.info(\"testsm.decrypt\",gmssl.sm4decrypt(\"ECB\",\"PKCS5\",encodeStr,\"1234567890123456\"))\n\noriginStr = \"SM4 CBC Pkcs5Padding test\"\n--\u52a0\u5bc6\u6a21\u5f0f\uff1aCBC\uff1b\u586b\u5145\u65b9\u5f0f\uff1aPkcs5Padding\uff1b\u5bc6\u94a5\uff1a1234567890123456\uff1b\u5bc6\u94a5\u957f\u5ea6\uff1a256 bit\uff1b\u504f\u79fb\u91cf\uff1a1234567890666666\nencodeStr = gmssl.sm4encrypt(\"CBC\",\"PKCS5\",originStr,\"1234567890123456\",\"1234567890666666\")\nprint(originStr,\"encrypt\",string.toHex(encodeStr))\nlog.info(\"testsm.decrypt\",gmssl.sm4decrypt(\"CBC\",\"PKCS5\",encodeStr,\"1234567890123456\",\"1234567890666666\"))\n", "prefix": "gmssl.sm4encrypt"}, "gmssl.sm4decrypt": {"body": "gmssl.sm4decrypt(${1:mode},${2:padding},${3:encodeStr},${4:password})", "description": "gmssl.sm4decrypt(mode,padding,encodeStr,password) - SM4\u89e3\u5bc6\u7b97\u6cd5\n\u4f20\u5165\u503c\uff1a\nstring \u52a0\u5bc6\u6a21\u5f0f, CBC\u6216ECB \nstring \u586b\u5145\u65b9\u5f0f, NONE/ZERO/PKCS5/PKCS7\nstring \u5df2\u52a0\u5bc6\u7684\u5b57\u7b26\u4e32\nstring \u5bc6\u94a5\n\u8fd4\u56de\u503c\uff1a\nstring \u89e3\u5bc6\u7684\u5b57\u7b26\u4e32\n\u4f8b\u5b50\uff1a\n-- \u53c2\u8003gmssl.sm4encrypt\n", "prefix": "gmssl.sm4decrypt"}, "sm.sm2sign": {"body": "sm.sm2sign(${1:private},${2:data},${3:id})", "description": "sm.sm2sign(private,data,id) - sm2\u7b97\u6cd5\u7b7e\u540d\n\u4f20\u5165\u503c\uff1a\nstring \u79c1\u94a5,\u5fc5\u9009,HEX\u5b57\u7b26\u4e32\nstring \u5f85\u8ba1\u7b97\u7684\u6570\u636e,\u5fc5\u9009,\u539f\u59cb\u6570\u636e,\u975eHEX\u5b57\u7b26\u4e32\nstring id\u503c,\u975eHEX\u5b57\u7b26\u4e32,\u53ef\u9009,\u9ed8\u8ba4\u503c\"1234567812345678\"\n\u8fd4\u56de\u503c\uff1a\nstring \u524d\u9762\u5b57\u7b26\u4e32,\u672a\u7ecfHEX\u8f6c\u6362.\u82e5\u7b7e\u540d\u5931\u8d25\u4f1a\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\n-- \u672cAPI\u4e8e 2023.10.19 \u65b0\u589e\n-- \u5177\u4f53\u7528\u6cd5\u8bf7\u67e5\u9605demo\n", "prefix": "sm.sm2sign"}, "sm.sm2verify": {"body": "sm.sm2verify(${1:pkx},${2:pky},${3:data},${4:id},${5:sig})", "description": "sm.sm2verify(pkx, pky, data, id, sig) - sm2\u7b97\u6cd5\u9a8c\u7b7e\n\u4f20\u5165\u503c\uff1a\nstring \u516c\u94a5X,\u5fc5\u9009,HEX\u5b57\u7b26\u4e32\nstring \u516c\u94a5Y,\u5fc5\u9009,HEX\u5b57\u7b26\u4e32\nstring \u5f85\u8ba1\u7b97\u7684\u6570\u636e,\u5fc5\u9009,\u539f\u59cb\u6570\u636e,\u975eHEX\u5b57\u7b26\u4e32\nstring id\u503c,\u975eHEX\u5b57\u7b26\u4e32,\u53ef\u9009,\u9ed8\u8ba4\u503c\"1234567812345678\"\nstring \u7b7e\u540d\u6570\u636e,\u5fc5\u987b64\u5b57\u8282,\u975eHEX\u5b57\u7b26\u4e32\n\u8fd4\u56de\u503c\uff1a\nboolean \u9a8c\u8bc1\u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\n-- \u672cAPI\u4e8e 2023.10.19 \u65b0\u589e\n-- \u5177\u4f53\u7528\u6cd5\u8bf7\u67e5\u9605demo\n", "prefix": "sm.sm2verify"}, "gpio.setup": {"body": "gpio.setup(${1:pin},${2:mode},${3:pull},${4:irq},${5:alt})", "description": "gpio.setup(pin, mode, pull, irq, alt) - \u8bbe\u7f6e\u7ba1\u811a\u529f\u80fd\n\u4f20\u5165\u503c\uff1a\nint pin gpio\u7f16\u53f7,\u5fc5\u987b\u662f\u6570\u503c\nany mode \u8f93\u5165\u8f93\u51fa\u6a21\u5f0f\uff1a
    \u6570\u5b570/1\u4ee3\u8868\u8f93\u51fa\u6a21\u5f0f
    nil\u4ee3\u8868\u8f93\u5165\u6a21\u5f0f
    function\u4ee3\u8868\u4e2d\u65ad\u6a21\u5f0f\nint pull \u4e0a\u62c9\u4e0b\u5217\u6a21\u5f0f, \u53ef\u4ee5\u662fgpio.PULLUP \u6216 gpio.PULLDOWN, \u9700\u8981\u6839\u636e\u5b9e\u9645\u786c\u4ef6\u9009\u7528\nint irq \u4e2d\u65ad\u89e6\u53d1\u6a21\u5f0f,\u9ed8\u8ba4gpio.BOTH\u3002\u4e2d\u65ad\u89e6\u53d1\u6a21\u5f0f
    \u4e0a\u5347\u6cbfgpio.RISING
    \u4e0b\u964d\u6cbfgpio.FALLING
    \u4e0a\u5347\u548c\u4e0b\u964d\u90fd\u89e6\u53d1gpio.BOTH \nint alt \u590d\u7528\u9009\u9879\uff0c\u76ee\u524d\u53ea\u6709EC618\u5e73\u53f0\u9700\u8981\u8fd9\u4e2a\u53c2\u6570\uff0c\u6709\u4e9bGPIO\u53ef\u4ee5\u590d\u7528\u5230\u4e0d\u540c\u5f15\u811a\u4e0a\uff0c\u53ef\u4ee5\u9009\u62e9\u590d\u7528\u9009\u9879\uff080\u6216\u80054\uff09\u4ece\u800c\u590d\u7528\u5230\u5bf9\u5e94\u7684\u5f15\u811a\u4e0a\n\u8fd4\u56de\u503c\uff1a\nany \u8f93\u51fa\u6a21\u5f0f\u8fd4\u56de\u8bbe\u7f6e\u7535\u5e73\u7684\u95ed\u5305, \u8f93\u5165\u6a21\u5f0f\u548c\u4e2d\u65ad\u6a21\u5f0f\u8fd4\u56de\u83b7\u53d6\u7535\u5e73\u7684\u95ed\u5305\n\u4f8b\u5b50\uff1a\n-- \u8bbe\u7f6egpio17\u4e3a\u8f93\u5165\ngpio.setup(17, nil)\n-- \u8bbe\u7f6egpio17\u4e3a\u8f93\u51fa,\u4e14\u521d\u59cb\u5316\u7535\u5e73\u4e3a\u4f4e,\u4f7f\u7528\u786c\u4ef6\u9ed8\u8ba4\u4e0a\u4e0b\u62c9\u914d\u7f6e\ngpio.setup(17, 0)\n-- \u8bbe\u7f6egpio17\u4e3a\u8f93\u51fa,\u4e14\u521d\u59cb\u5316\u7535\u5e73\u4e3a\u9ad8,\u4e14\u542f\u7528\u5185\u90e8\u4e0a\u62c9\ngpio.setup(17, 1, gpio.PULLUP)\n-- \u8bbe\u7f6egpio27\u4e3a\u4e2d\u65ad\ngpio.setup(27, function(val) print(\"IRQ_27\",val) end, gpio.PULLUP)\n-- \u8bbe\u7f6egpio27\u4e3a\u4e2d\u65ad\ngpio.setup(27, function(val) print(\"IRQ_27\",val) end, gpio.PULLUP)\n\n-- alt_func \u4e8e2023.7.2\u65b0\u589e\n-- \u8bbe\u7f6eAIR780E\u7684PIN33\u590d\u7528\u6210gpio18\uff0c\u65b9\u5411\u8f93\u51fa,\u4e14\u521d\u59cb\u5316\u7535\u5e73\u4e3a\u4f4e,\u4f7f\u7528\u786c\u4ef6\u9ed8\u8ba4\u4e0a\u4e0b\u62c9\u914d\u7f6e\ngpio.setup(18, 0, nil, nil, 4)\n", "prefix": "gpio.setup"}, "gpio.set": {"body": "gpio.set(${1:pin},${2:value})", "description": "gpio.set(pin, value) - \u8bbe\u7f6e\u7ba1\u811a\u7535\u5e73\n\u4f20\u5165\u503c\uff1a\nint pin GPIO\u7f16\u53f7,\u5fc5\u987b\u662f\u6570\u503c\nint value \u7535\u5e73, \u53ef\u4ee5\u662f \u9ad8\u7535\u5e73gpio.HIGH, \u4f4e\u7535\u5e73gpio.LOW, \u6216\u8005\u76f4\u63a5\u5199\u6570\u503c1\u62160\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n-- \u8bbe\u7f6egpio17\u4e3a\u4f4e\u7535\u5e73\ngpio.set(17, 0)\n", "prefix": "gpio.set"}, "gpio.get": {"body": "gpio.get(${1:pin})", "description": "gpio.get(pin) - \u83b7\u53d6\u7ba1\u811a\u7535\u5e73\n\u4f20\u5165\u503c\uff1a\nint pin GPIO\u7f16\u53f7,\u5fc5\u987b\u662f\u6570\u503c\n\u8fd4\u56de\u503c\uff1a\nvalue \u7535\u5e73, \u9ad8\u7535\u5e73gpio.HIGH, \u4f4e\u7535\u5e73gpio.LOW, \u5bf9\u5e94\u6570\u503c1\u548c0\n\u4f8b\u5b50\uff1a\n-- \u83b7\u53d6gpio17\u7684\u5f53\u524d\u7535\u5e73\ngpio.get(17)\n", "prefix": "gpio.get"}, "gpio.close": {"body": "gpio.close(${1:pin})", "description": "gpio.close(pin) - \u5173\u95ed\u7ba1\u811a\u529f\u80fd(\u9ad8\u963b\u8f93\u5165\u6001),\u5173\u6389\u4e2d\u65ad\n\u4f20\u5165\u503c\uff1a\nint pin GPIO\u7f16\u53f7,\u5fc5\u987b\u662f\u6570\u503c\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c,\u603b\u662f\u6267\u884c\u6210\u529f\n\u4f8b\u5b50\uff1a\n-- \u5173\u95edgpio17\ngpio.close(17)\n", "prefix": "gpio.close"}, "gpio.setDefaultPull": {"body": "gpio.setDefaultPull(${1:val})", "description": "gpio.setDefaultPull(val) - \u8bbe\u7f6eGPIO\u811a\u7684\u9ed8\u8ba4\u4e0a\u62c9/\u4e0b\u62c9\u8bbe\u7f6e, \u9ed8\u8ba4\u662f\u5e73\u53f0\u81ea\u5b9a\u4e49(\u4e00\u822c\u4e3a\u5f00\u6f0f).\n\u4f20\u5165\u503c\uff1a\nint val 0\u5e73\u53f0\u81ea\u5b9a\u4e49,1\u4e0a\u62c9, 2\u4e0b\u62c9\n\u8fd4\u56de\u503c\uff1a\nboolean \u4f20\u503c\u6b63\u786e\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- \u8bbe\u7f6egpio.setup\u7684pull\u9ed8\u8ba4\u503c\u4e3a\u4e0a\u62c9\ngpio.setDefaultPull(1)\n", "prefix": "gpio.setDefaultPull"}, "gpio.toggle": {"body": "gpio.toggle(${1:pin})", "description": "gpio.toggle(pin) - \u53d8\u6362GPIO\u811a\u8f93\u51fa\u7535\u5e73,\u4ec5\u8f93\u51fa\u6a21\u5f0f\u53ef\u7528\n\u4f20\u5165\u503c\uff1a\nint \u7ba1\u811a\u7684GPIO\u53f7\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n-- \u672cAPI\u4e8e 2022.05.17 \u6dfb\u52a0\n-- \u5047\u8bbeGPIO16\u4e0a\u6709LED, \u6bcf500ms\u5207\u6362\u4e00\u6b21\u5f00\u5173\ngpio.setup(16, 0)\nsys.timerLoopStart(function()\n gpio.toggle(16)\nend, 500)\n", "prefix": "gpio.toggle"}, "gpio.pulse": {"body": "gpio.pulse(${1:pin},${2:level},${3:len},${4:delay})", "description": "gpio.pulse(pin,level,len,delay) - \u5728\u540c\u4e00\u4e2aGPIO\u8f93\u51fa\u4e00\u7ec4\u8109\u51b2, \u6ce8\u610f, len\u7684\u5355\u4f4d\u662fbit, \u9ad8\u4f4d\u5728\u524d.\n\u4f20\u5165\u503c\uff1a\nint gpio\u53f7\nint/string \u6570\u503c\u6216\u8005\u5b57\u7b26\u4e32.\nint len \u957f\u5ea6 \u5355\u4f4d\u662fbit, \u9ad8\u4f4d\u5728\u524d.\nint delay \u5ef6\u8fdf,\u5f53\u524d\u65e0\u56fa\u5b9a\u65f6\u95f4\u5355\u4f4d\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n-- \u901a\u8fc7PB06\u811a\u8f93\u51fa\u8f93\u51fa8\u4e2a\u7535\u5e73\u53d8\u5316.\ngpio.pulse(pin.PB06,0xA9, 8, 0)\n", "prefix": "gpio.pulse"}, "gpio.debounce": {"body": "gpio.debounce(${1:pin},${2:ms},${3:mode})", "description": "gpio.debounce(pin, ms, mode) - \u9632\u6296\u8bbe\u7f6e, \u6839\u636e\u786c\u4ef6ticks\u8fdb\u884c\u9632\u6296\n\u4f20\u5165\u503c\uff1a\nint gpio\u53f7, 0~127, \u4e0e\u786c\u4ef6\u76f8\u5173\nint \u9632\u6296\u65f6\u957f,\u5355\u4f4d\u6beb\u79d2, \u6700\u5927 65555 ms, \u8bbe\u7f6e\u4e3a0\u5219\u5173\u95ed\nint \u6a21\u5f0f, 0\u51b7\u5374\u6a21\u5f0f, 1\u5ef6\u65f6\u6a21\u5f0f. \u9ed8\u8ba4\u662f0\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n-- \u6d88\u6296\u6a21\u5f0f, \u5f53\u524d\u652f\u63012\u79cd, 2022.12.16\u5f00\u59cb\u652f\u6301mode=1\n-- 0 \u89e6\u53d1\u4e2d\u65ad\u540e,\u9a6c\u4e0a\u4e0a\u62a5\u4e00\u6b21, \u7136\u540e\u51b7\u5374N\u4e2a\u6beb\u79d2\u540e,\u91cd\u65b0\u63a5\u53d7\u4e2d\u65ad\n-- 1 \u89e6\u53d1\u4e2d\u65ad\u540e,\u5ef6\u8fdfN\u4e2a\u6beb\u79d2,\u671f\u95f4\u6ca1\u6709\u65b0\u4e2d\u65ad\u4e14\u7535\u5e73\u6ca1\u6709\u53d8\u5316,\u4e0a\u62a5\u4e00\u6b21\n\n-- \u5f00\u542f\u9632\u6296, \u6a21\u5f0f0-\u51b7\u5374, \u4e2d\u65ad\u540e\u9a6c\u4e0a\u4e0a\u62a5, \u4f46100ms\u5185\u53ea\u4e0a\u62a5\u4e00\u6b21\ngpio.debounce(7, 100) -- \u82e5\u82af\u7247\u652f\u6301pin\u5e93, \u53ef\u7528pin.PA7\u4ee3\u66ff\u6570\u5b577\n-- \u5f00\u542f\u9632\u6296, \u6a21\u5f0f1-\u5ef6\u65f6, \u4e2d\u65ad\u540e\u7b49\u5f85100ms,\u671f\u95f4\u82e5\u4fdd\u6301\u8be5\u7535\u5e73\u4e86,\u65f6\u95f4\u5230\u4e4b\u540e\u4e0a\u62a5\u4e00\u6b21\n-- \u5bf9\u5e94\u7684,\u5982\u679c\u8f93\u5165\u7684\u662f\u4e00\u4e2a 50hz\u7684\u65b9\u6ce2,\u90a3\u4e48\u4e0d\u4f1a\u89e6\u53d1\u4efb\u4f55\u4e0a\u62a5\ngpio.debounce(7, 100, 1)\n\n-- \u5173\u95ed\u9632\u6296,\u65f6\u95f4\u8bbe\u7f6e\u4e3a0\u5c31\u5173\u95ed\ngpio.debounce(7, 0)\n", "prefix": "gpio.debounce"}, "gtfont.init": {"body": "gtfont.init(${1:spi_device})", "description": "gtfont.init(spi_device) - \u521d\u59cb\u5316\u9ad8\u901a\u5b57\u4f53\u82af\u7247\n\u4f20\u5165\u503c\uff1a\nuserdata \u4ec5\u652f\u6301spi device \u751f\u6210\u7684\u6307\u9488\u6570\u636e\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- \u7279\u522b\u63d0\u9192: \u4f7f\u7528\u672c\u5e93\u7684\u4efb\u4f55\u4ee3\u7801, \u90fd\u9700\u8981 \u989d\u5916 \u7684 \u9ad8\u901a\u5b57\u4f53\u82af\u7247 !!\n-- \u6ca1\u6709\u989d\u5916\u82af\u7247\u662f\u8dd1\u4e0d\u4e86\u7684!!\ngtfont.init(spi_device)\n", "prefix": "gtfont.init"}, "hmeta.model": {"body": "hmeta.model()", "description": "hmeta.model() - \u83b7\u53d6\u6a21\u7ec4\u540d\u79f0\n\u8fd4\u56de\u503c\uff1a\nstring \u82e5\u80fd\u8bc6\u522b\u5230,\u8fd4\u56de\u6a21\u7ec4\u7c7b\u578b, \u5426\u5219\u4f1a\u662fnil\n\u4f8b\u5b50\uff1a\nsys.taskInit(function()\n while 1 do\n sys.wait(3000)\n -- hmeta\u8bc6\u522b\u5e95\u5c42\u6a21\u7ec4\u7c7b\u578b\u7684\n -- \u4e0d\u540c\u7684\u6a21\u7ec4\u53ef\u4ee5\u4f7f\u7528\u76f8\u540c\u7684bsp,\u4f46\u6839\u636e\u5c01\u88c5\u7684\u4e0d\u540c,\u6839\u636e\u5185\u90e8\u6570\u636e\u4ecd\u53ef\u8bc6\u522b\u51fa\u5177\u4f53\u6a21\u5757\n log.info(\"hmeta\", hmeta.model())\n log.info(\"bsp\", rtos.bsp())\n end\nend)\n", "prefix": "hmeta.model"}, "hmeta.hwver": {"body": "hmeta.hwver()", "description": "hmeta.hwver() - \u83b7\u53d6\u6a21\u7ec4\u7684\u786c\u4ef6\u7248\u672c\u53f7\n\u8fd4\u56de\u503c\uff1a\nstring \u82e5\u80fd\u8bc6\u522b\u5230,\u8fd4\u56de\u6a21\u7ec4\u7c7b\u578b, \u5426\u5219\u4f1a\u662fnil\n\u4f8b\u5b50\uff1a\nsys.taskInit(function()\n while 1 do\n sys.wait(3000)\n -- hmeta\u8bc6\u522b\u5e95\u5c42\u6a21\u7ec4\u7c7b\u578b\u7684\n -- \u4e0d\u540c\u7684\u6a21\u7ec4\u53ef\u4ee5\u4f7f\u7528\u76f8\u540c\u7684bsp,\u4f46\u6839\u636e\u5c01\u88c5\u7684\u4e0d\u540c,\u6839\u636e\u5185\u90e8\u6570\u636e\u4ecd\u53ef\u8bc6\u522b\u51fa\u5177\u4f53\u6a21\u5757\n log.info(\"hmeta\", hmeta.model(), hmeta.hwver())\n log.info(\"bsp\", rtos.bsp())\n end\nend)\n", "prefix": "hmeta.hwver"}, "http.request": {"body": "http.request(${1:method},${2:url},${3:headers},${4:body},${5:opts},${6:ca_file},${7:client_ca},${8:client_key},${9:client_password})", "description": "http.request(method,url,headers,body,opts,ca_file,client_ca, client_key, client_password) - http\u5ba2\u6237\u7aef\n\u4f20\u5165\u503c\uff1a\nstring \u8bf7\u6c42\u65b9\u6cd5, \u652f\u6301 GET/POST \u7b49\u5408\u6cd5\u7684HTTP\u65b9\u6cd5\nstring url\u5730\u5740, \u652f\u6301 http\u548chttps, \u652f\u6301\u57df\u540d, \u652f\u6301\u81ea\u5b9a\u4e49\u7aef\u53e3\ntabal \u8bf7\u6c42\u5934 \u53ef\u9009 \u4f8b\u5982 {[\"Content-Type\"] = \"application/x-www-form-urlencoded\"}\nstring body \u53ef\u9009, \u5bf9POST/PUT\u7b49\u8bf7\u6c42\u65b9\u5f0f\u6709\u6548\ntable \u989d\u5916\u914d\u7f6e \u53ef\u9009 \u5305\u542b timeout:\u8d85\u65f6\u65f6\u95f4\u5355\u4f4dms \u53ef\u9009,\u9ed8\u8ba410\u5206\u949f,\u51990\u5373\u6c38\u4e45\u7b49\u5f85 dst:\u4e0b\u8f7d\u8def\u5f84,\u53ef\u9009 adapter:\u9009\u62e9\u4f7f\u7528\u7f51\u5361,\u53ef\u9009 debug:\u662f\u5426\u6253\u5f00debug\u4fe1\u606f,\u53ef\u9009,ipv6:\u662f\u5426\u4e3aipv6 \u9ed8\u8ba4\u4e0d\u662f,\u53ef\u9009 callback:\u4e0b\u8f7d\u56de\u8c03\u51fd\u6570,\u53c2\u6570 content_len:\u603b\u957f\u5ea6 body_len:\u4ee5\u4e0b\u8f7d\u957f\u5ea6 userdata \u7528\u6237\u4f20\u53c2,\u53ef\u9009 userdata:\u56de\u8c03\u81ea\u5b9a\u4e49\u4f20\u53c2 \nstring \u670d\u52a1\u5668ca\u8bc1\u4e66\u6570\u636e, \u53ef\u9009, \u4e00\u822c\u4e0d\u9700\u8981\nstring \u5ba2\u6237\u7aefca\u8bc1\u4e66\u6570\u636e, \u53ef\u9009, \u4e00\u822c\u4e0d\u9700\u8981, \u53cc\u5411https\u8ba4\u8bc1\u624d\u9700\u8981\nstring \u5ba2\u6237\u7aef\u79c1\u94a5\u52a0\u5bc6\u6570\u636e, \u53ef\u9009, \u4e00\u822c\u4e0d\u9700\u8981, \u53cc\u5411https\u8ba4\u8bc1\u624d\u9700\u8981\nstring \u5ba2\u6237\u7aef\u79c1\u94a5\u53e3\u4ee4\u6570\u636e, \u53ef\u9009, \u4e00\u822c\u4e0d\u9700\u8981, \u53cc\u5411https\u8ba4\u8bc1\u624d\u9700\u8981\n\u8fd4\u56de\u503c\uff1a\nint code , \u670d\u52a1\u5668\u53cd\u9988\u7684\u503c>=100, \u6700\u5e38\u89c1\u7684\u662f200.\u5982\u679c\u662f\u5e95\u5c42\u9519\u8bef,\u4f8b\u5982\u8fde\u63a5\u5931\u8d25, \u8fd4\u56de\u503c\u5c0f\u4e8e0\ntabal headers \u5f53code>100\u65f6, \u4ee3\u8868\u670d\u52a1\u5668\u8fd4\u56de\u7684\u5934\u90e8\u6570\u636e \nstring/int body \u670d\u52a1\u5668\u54cd\u5e94\u7684\u5185\u5bb9\u5b57\u7b26\u4e32,\u5982\u679c\u662f\u4e0b\u8f7d\u6a21\u5f0f, \u5219\u8fd4\u56de\u6587\u4ef6\u5927\u5c0f\n\u4f8b\u5b50\uff1a\n\n--[[\ncode\u62a5\u9519\u4fe1\u606f\u5217\u8868:\n-1 HTTP_ERROR_STATE \u9519\u8bef\u7684\u72b6\u6001, \u4e00\u822c\u662f\u5e95\u5c42\u5f02\u5e38,\u8bf7\u62a5issue\n-2 HTTP_ERROR_HEADER \u9519\u8bef\u7684\u54cd\u5e94\u5934\u90e8, \u901a\u5e38\u662f\u670d\u52a1\u5668\u95ee\u9898\n-3 HTTP_ERROR_BODY \u9519\u8bef\u7684\u54cd\u5e94\u4f53,\u901a\u5e38\u662f\u670d\u52a1\u5668\u95ee\u9898\n-4 HTTP_ERROR_CONNECT \u8fde\u63a5\u670d\u52a1\u5668\u5931\u8d25, \u672a\u8054\u7f51,\u5730\u5740\u9519\u8bef,\u57df\u540d\u9519\u8bef\n-5 HTTP_ERROR_CLOSE \u63d0\u524d\u65ad\u5f00\u4e86\u8fde\u63a5, \u7f51\u7edc\u6216\u670d\u52a1\u5668\u95ee\u9898\n-6 HTTP_ERROR_RX \u63a5\u6536\u6570\u636e\u62a5\u9519, \u7f51\u7edc\u95ee\u9898\n-7 HTTP_ERROR_DOWNLOAD \u4e0b\u8f7d\u6587\u4ef6\u8fc7\u7a0b\u62a5\u9519, \u7f51\u7edc\u95ee\u9898\u6216\u4e0b\u8f7d\u8def\u5f84\u95ee\u9898\n-8 HTTP_ERROR_TIMEOUT \u8d85\u65f6, \u5305\u62ec\u8fde\u63a5\u8d85\u65f6,\u8bfb\u53d6\u6570\u636e\u8d85\u65f6\n-9 HTTP_ERROR_FOTA fota\u529f\u80fd\u62a5\u9519,\u901a\u5e38\u662f\u66f4\u65b0\u5305\u4e0d\u5408\u6cd5\n]]\n\n-- GET\u8bf7\u6c42\nlocal code, headers, body = http.request(\"GET\",\"http://site0.cn/api/httptest/simple/time\").wait()\nlog.info(\"http.get\", code, headers, body)\n-- POST\u8bf7\u6c42\nlocal code, headers, body = http.request(\"POST\",\"http://httpbin.com/post\", {}, \"abc=123\").wait()\nlog.info(\"http.post\", code, headers, body)\n\n-- GET\u8bf7\u6c42,\u4f46\u4e0b\u8f7d\u5230\u6587\u4ef6\nlocal code, headers, body = http.request(\"GET\",\"http://httpbin.com/\", {}, \"\", {dst=\"/data.bin\"}).wait()\nlog.info(\"http.get\", code, headers, body)\n\n-- \u81ea\u5b9a\u4e49\u8d85\u65f6\u65f6\u95f4, 5000ms\nhttp.request(\"GET\",\"http://httpbin.com/\", nil, nil, {timeout=5000}).wait()\n", "prefix": "http.request"}, "httpsrv.start": {"body": "httpsrv.start(${1:port},${2:func})", "description": "httpsrv.start(port, func) - \u542f\u52a8\u5e76\u76d1\u542c\u4e00\u4e2ahttp\u7aef\u53e3\n\u4f20\u5165\u503c\uff1a\nint \u7aef\u53e3\u53f7\nfunction \u56de\u8c03\u51fd\u6570\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue, \u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n\n-- \u76d1\u542c80\u7aef\u53e3\nhttpsrv.start(80, function(client, method, uri, headers, body)\n -- method \u662f\u5b57\u7b26\u4e32, \u4f8b\u5982 GET POST PUT DELETE\n -- uri \u4e5f\u662f\u5b57\u7b26\u4e32 \u4f8b\u5982 / /api/abc\n -- headers table\u7c7b\u578b\n -- body \u5b57\u7b26\u4e32\n log.info(\"httpsrv\", method, uri, json.encode(headers), body)\n if uri == \"/led/1\" then\n LEDA(1)\n return 200, {}, \"ok\"\n elseif uri == \"/led/0\" then\n LEDA(0)\n return 200, {}, \"ok\"\n end\n -- \u8fd4\u56de\u503c\u7684\u7ea6\u5b9a code, headers, body\n -- \u82e5\u6ca1\u6709\u8fd4\u56de\u503c, \u5219\u9ed8\u8ba4 404, {} ,\"\"\n return 404, {}, \"Not Found\" .. uri\nend)\n-- \u5173\u4e8e\u9759\u6001\u6587\u4ef6\n-- \u60c5\u51b51: / , \u6620\u5c04\u4e3a /index.html\n-- \u60c5\u51b52: /abc.html , \u5148\u67e5\u627e /abc.html, \u4e0d\u5b58\u5728\u7684\u8bdd\u67e5\u627e /abc.html.gz\n-- \u82e5gz\u5b58\u5728, \u4f1a\u81ea\u52a8\u4ee5\u538b\u7f29\u6587\u4ef6\u8fdb\u884c\u54cd\u5e94, \u7edd\u5927\u90e8\u5206\u6d4f\u89c8\u5668\u652f\u6301.\n-- \u5f53\u524d\u9ed8\u8ba4\u67e5\u627e /luadb/xxx \u4e0b\u7684\u6587\u4ef6,\u6682\u4e0d\u53ef\u914d\u7f6e\n", "prefix": "httpsrv.start"}, "httpsrv.stop": {"body": "httpsrv.stop(${1:port})", "description": "httpsrv.stop(port) - \u505c\u6b62http\u670d\u52a1\n\u4f20\u5165\u503c\uff1a\nint \u7aef\u53e3\u53f7\n\u8fd4\u56de\u503c\uff1a\nnil \u5f53\u524d\u65e0\u8fd4\u56de\u503c\n", "prefix": "httpsrv.stop"}, "i2c.exist": {"body": "i2c.exist(${1:id})", "description": "i2c.exist(id) - i2c\u7f16\u53f7\u662f\u5426\u5b58\u5728\n\u4f20\u5165\u503c\uff1a\nint \u8bbe\u5907id, \u4f8b\u5982i2c1\u7684id\u4e3a1, i2c2\u7684id\u4e3a2\n\u8fd4\u56de\u503c\uff1a\nbool \u5b58\u5728\u5c31\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- \u68c0\u67e5i2c1\u662f\u5426\u5b58\u5728\nif i2c.exist(1) then\n log.info(\"\u5b58\u5728 i2c1\")\nend\n", "prefix": "i2c.exist"}, "i2c.setup": {"body": "i2c.setup(${1:id},${2:speed},${3:slaveAddr})", "description": "i2c.setup(id, speed, slaveAddr) - i2c\u521d\u59cb\u5316\n\u4f20\u5165\u503c\uff1a\nint \u8bbe\u5907id, \u4f8b\u5982i2c1\u7684id\u4e3a1, i2c2\u7684id\u4e3a2\nint I2C\u901f\u5ea6, \u4f8b\u5982i2c.FAST\n\u8fd4\u56de\u503c\uff1a\nint \u6210\u529f\u5c31\u8fd4\u56de1,\u5426\u5219\u8fd4\u56de0\n\u4f8b\u5b50\uff1a\n-- \u521d\u59cb\u5316i2c1\ni2c.setup(1, i2c.FAST) -- \u7aef\u53e3\u6b63\u786e\u5c31\u4e00\u5b9a\u6210\u529f\n-- \u5982\u9700\u5224\u65adi2c id\u662f\u5426\u5408\u6cd5, \u8bf7\u4f7f\u7528 i2c.exist \u51fd\u6570\n", "prefix": "i2c.setup"}, "i2c.createSoft": {"body": "i2c.createSoft(${1:scl},${2:sda},${3:delay})", "description": "i2c.createSoft(scl,sda,delay) - \u65b0\u5efa\u4e00\u4e2a\u8f6f\u4ef6i2c\u5bf9\u8c61\n\u4f20\u5165\u503c\uff1a\nint i2c SCL\u5f15\u811a\u7f16\u53f7(GPIO\u7f16\u53f7)\nint i2c SDA\u5f15\u811a\u7f16\u53f7(GPIO\u7f16\u53f7)\nint \u6bcf\u4e2a\u64cd\u4f5c\u7684\u5ef6\u65f6, \u5355\u4f4dus, \u9ed8\u8ba45\n\u8fd4\u56de\u503c\uff1a\n\u8f6f\u4ef6I2C\u5bf9\u8c61 \u53ef\u5f53\u4f5ci2c\u7684id\u4f7f\u7528\n\u4f8b\u5b50\uff1a\n-- \u6ce8\u610f\uff01\u8fd9\u4e2a\u63a5\u53e3\u662f\u8f6f\u4ef6\u6a21\u62dfi2c\uff0c\u901f\u5ea6\u53ef\u80fd\u4f1a\u6bd4\u786c\u4ef6\u7684\u6162\n-- \u4e0d\u9700\u8981\u8c03\u7528i2c.close\u63a5\u53e3\n-- \u521d\u59cb\u5316\u8f6f\u4ef6i2c\nlocal softI2C = i2c.createSoft(1, 2, 5)\ni2c.send(softI2C, 0x5C, string.char(0x0F, 0x2F))\n-- \u6ce8\u610f, \u7b2c3\u4e2a\u53c2\u6570\u662f 2023.06.19 \u6dfb\u52a0\u7684delay\n-- \u901a\u8fc7\u8c03\u6574delay\u53c2\u6570\u7684\u503c, \u53ef\u589e\u52a0\u6216\u964d\u4f4eI2C\u7684\u901f\u5ea6\n", "prefix": "i2c.createSoft"}, "i2c.send": {"body": "i2c.send(${1:id},${2:addr},${3:data},${4:stop})", "description": "i2c.send(id, addr, data,stop) - i2c\u53d1\u9001\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nint \u8bbe\u5907id, \u4f8b\u5982i2c1\u7684id\u4e3a1, i2c2\u7684id\u4e3a2\nint I2C\u5b50\u8bbe\u5907\u7684\u5730\u5740, 7\u4f4d\u5730\u5740\ninteger/string/table \u5f85\u53d1\u9001\u7684\u6570\u636e,\u81ea\u9002\u5e94\u53c2\u6570\u7c7b\u578b\ninteger \u53ef\u9009\u53c2\u6570 \u662f\u5426\u53d1\u9001\u505c\u6b62\u4f4d 1\u53d1\u9001 0\u4e0d\u53d1\u9001 \u9ed8\u8ba4\u53d1\u9001(105\u4e0d\u652f\u6301)\n\u8fd4\u56de\u503c\uff1a\ntrue/false \u53d1\u9001\u662f\u5426\u6210\u529f\n\u4f8b\u5b50\uff1a\n-- \u5f80i2c0\u53d1\u90011\u4e2a\u5b57\u8282\u7684\u6570\u636e\ni2c.send(0, 0x68, 0x75)\n-- \u5f80i2c1\u53d1\u90012\u4e2a\u5b57\u8282\u7684\u6570\u636e\ni2c.send(1, 0x5C, string.char(0x0F, 0x2F))\ni2c.send(1, 0x5C, {0x0F, 0x2F})\n", "prefix": "i2c.send"}, "i2c.recv": {"body": "i2c.recv(${1:id},${2:addr},${3:len})", "description": "i2c.recv(id, addr, len) - i2c\u63a5\u6536\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nint \u8bbe\u5907id, \u4f8b\u5982i2c1\u7684id\u4e3a1, i2c2\u7684id\u4e3a2\nint I2C\u5b50\u8bbe\u5907\u7684\u5730\u5740, 7\u4f4d\u5730\u5740\nint \u63a5\u6536\u6570\u636e\u7684\u957f\u5ea6\n\u8fd4\u56de\u503c\uff1a\nstring \u6536\u5230\u7684\u6570\u636e\n\u4f8b\u5b50\uff1a\n-- \u4ecei2c1\u8bfb\u53d62\u4e2a\u5b57\u8282\u7684\u6570\u636e\nlocal data = i2c.recv(1, 0x5C, 2)\n", "prefix": "i2c.recv"}, "i2c.writeReg": {"body": "i2c.writeReg(${1:id},${2:addr},${3:reg},${4:data},${5:stop})", "description": "i2c.writeReg(id, addr, reg, data,stop) - i2c\u5199\u5bc4\u5b58\u5668\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nint \u8bbe\u5907id, \u4f8b\u5982i2c1\u7684id\u4e3a1, i2c2\u7684id\u4e3a2\nint I2C\u5b50\u8bbe\u5907\u7684\u5730\u5740, 7\u4f4d\u5730\u5740\nint \u5bc4\u5b58\u5668\u5730\u5740\nstring \u5f85\u53d1\u9001\u7684\u6570\u636e\ninteger \u53ef\u9009\u53c2\u6570 \u662f\u5426\u53d1\u9001\u505c\u6b62\u4f4d 1\u53d1\u9001 0\u4e0d\u53d1\u9001 \u9ed8\u8ba4\u53d1\u9001(105\u4e0d\u652f\u6301)\n\u8fd4\u56de\u503c\uff1a\ntrue/false \u53d1\u9001\u662f\u5426\u6210\u529f\n\u4f8b\u5b50\uff1a\n-- \u4ecei2c1\u7684\u5730\u5740\u4e3a0x5C\u7684\u8bbe\u5907\u7684\u5bc4\u5b58\u56680x01\u5199\u51652\u4e2a\u5b57\u8282\u7684\u6570\u636e\ni2c.writeReg(1, 0x5C, 0x01, string.char(0x00, 0xF2))\n", "prefix": "i2c.writeReg"}, "i2c.readReg": {"body": "i2c.readReg(${1:id},${2:addr},${3:reg},${4:len})", "description": "i2c.readReg(id, addr, reg, len) - i2c\u8bfb\u5bc4\u5b58\u5668\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nint \u8bbe\u5907id, \u4f8b\u5982i2c1\u7684id\u4e3a1, i2c2\u7684id\u4e3a2\nint I2C\u5b50\u8bbe\u5907\u7684\u5730\u5740, 7\u4f4d\u5730\u5740\nint \u5bc4\u5b58\u5668\u5730\u5740\nint \u5f85\u63a5\u6536\u7684\u6570\u636e\u957f\u5ea6\ninteger \u53ef\u9009\u53c2\u6570 \u662f\u5426\u53d1\u9001\u505c\u6b62\u4f4d 1\u53d1\u9001 0\u4e0d\u53d1\u9001 \u9ed8\u8ba4\u53d1\u9001(105\u4e0d\u652f\u6301)\n\u8fd4\u56de\u503c\uff1a\nstring \u6536\u5230\u7684\u6570\u636e\n\u4f8b\u5b50\uff1a\n-- \u4ecei2c1\u7684\u5730\u5740\u4e3a0x5C\u7684\u8bbe\u5907\u7684\u5bc4\u5b58\u56680x01\u8bfb\u51fa2\u4e2a\u5b57\u8282\u7684\u6570\u636e\ni2c.readReg(1, 0x5C, 0x01, 2)\n", "prefix": "i2c.readReg"}, "i2c.close": {"body": "i2c.close(${1:id})", "description": "i2c.close(id) - \u5173\u95edi2c\u8bbe\u5907\n\u4f20\u5165\u503c\uff1a\nint \u8bbe\u5907id, \u4f8b\u5982i2c1\u7684id\u4e3a1, i2c2\u7684id\u4e3a2\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n-- \u5173\u95edi2c1\ni2c.close(1)\n", "prefix": "i2c.close"}, "i2c.readDHT12": {"body": "i2c.readDHT12(${1:id})", "description": "i2c.readDHT12(id) - \u4ecei2c\u603b\u7ebf\u8bfb\u53d6DHT12\u7684\u6e29\u6e7f\u5ea6\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nint \u8bbe\u5907id, \u4f8b\u5982i2c1\u7684id\u4e3a1, i2c2\u7684id\u4e3a2\nint DHT12\u7684\u8bbe\u5907\u5730\u5740,\u9ed8\u8ba40x5C\n\u8fd4\u56de\u503c\uff1a\nboolean \u8bfb\u53d6\u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\nint \u6e7f\u5ea6\u503c,\u5355\u4f4d0.1%, \u4f8b\u5982 591 \u4ee3\u8868 59.1%\nint \u6e29\u5ea6\u503c,\u5355\u4f4d0.1\u6444\u6c0f\u5ea6, \u4f8b\u5982 292 \u4ee3\u8868 29.2\u6444\u6c0f\u5ea6\n\u4f8b\u5b50\uff1a\n-- \u4ecei2c0\u8bfb\u53d6DHT12\ni2c.setup(0)\nlocal re, H, T = i2c.readDHT12(0)\nif re then\n log.info(\"dht12\", H, T)\nend\n", "prefix": "i2c.readDHT12"}, "i2c.readSHT30": {"body": "i2c.readSHT30(${1:id},${2:addr})", "description": "i2c.readSHT30(id,addr) - \u4ecei2c\u603b\u7ebf\u8bfb\u53d6DHT30\u7684\u6e29\u6e7f\u5ea6\u6570\u636e(\u7531\"\u597d\u5947\u661f\"\u8d21\u732e)\n\u4f20\u5165\u503c\uff1a\nint \u8bbe\u5907id, \u4f8b\u5982i2c1\u7684id\u4e3a1, i2c2\u7684id\u4e3a2\nint \u8bbe\u5907addr,SHT30\u7684\u8bbe\u5907\u5730\u5740,\u9ed8\u8ba40x44 bit7\n\u8fd4\u56de\u503c\uff1a\nboolean \u8bfb\u53d6\u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\nint \u6e7f\u5ea6\u503c,\u5355\u4f4d0.1%, \u4f8b\u5982 591 \u4ee3\u8868 59.1%\nint \u6e29\u5ea6\u503c,\u5355\u4f4d0.1\u6444\u6c0f\u5ea6, \u4f8b\u5982 292 \u4ee3\u8868 29.2\u6444\u6c0f\u5ea6\n\u4f8b\u5b50\uff1a\n-- \u4ecei2c0\u8bfb\u53d6SHT30\ni2c.setup(0)\nlocal re, H, T = i2c.readSHT30(0)\nif re then\n log.info(\"sht30\", H, T)\nend\n", "prefix": "i2c.readSHT30"}, "i2c.transfer": {"body": "i2c.transfer(${1:id},${2:addr},${3:txBuff},${4:rxBuff},${5:rxLen})", "description": "i2c.transfer(id, addr, txBuff, rxBuff, rxLen) - i2c\u901a\u7528\u4f20\u8f93\uff0c\u5305\u62ec\u53d1\u9001N\u5b57\u8282\uff0c\u53d1\u9001N\u5b57\u8282+\u63a5\u6536N\u5b57\u8282\uff0c\u63a5\u6536N\u5b57\u8282\u4e09\u79cd\u529f\u80fd\uff0c\u5728\u53d1\u9001\u8f6c\u63a5\u6536\u8fc7\u7a0b\u4e2d\u53d1\u9001reStart\u4fe1\u53f7,\u89e3\u51b3\u7c7b\u4f3cmlx90614\u5fc5\u987b\u5e26restart\u4fe1\u53f7\uff0c\u4f46\u662f\u53c8\u4e0d\u80fd\u7528i2c.send\u6765\u63a7\u5236\u7684\uff0c\u6bd4\u5982air105\n\u4f20\u5165\u503c\uff1a\nint \u8bbe\u5907id, \u4f8b\u5982i2c1\u7684id\u4e3a1, i2c2\u7684id\u4e3a2\nint I2C\u5b50\u8bbe\u5907\u7684\u5730\u5740, 7\u4f4d\u5730\u5740\ninteger/string/zbuff \u5f85\u53d1\u9001\u7684\u6570\u636e,\u81ea\u9002\u5e94\u53c2\u6570\u7c7b\u578b\uff0c\u5982\u679c\u4e3anil\uff0c\u5219\u4e0d\u53d1\u9001\u6570\u636e\nzbuff \u5f85\u63a5\u6536\u6570\u636e\u7684zbuff \u5982\u679c\u4e0d\u7528zbuff\uff0c\u5219\u63a5\u6536\u6570\u636e\u5c06\u5728return\u8fd4\u56de\nint \u9700\u8981\u63a5\u6536\u7684\u6570\u636e\u957f\u5ea6\uff0c\u5982\u679c\u4e3a0\u6216nil\uff0c\u5219\u4e0d\u63a5\u6536\u6570\u636e\n\u8fd4\u56de\u503c\uff1a\nboolean true/false \u53d1\u9001\u662f\u5426\u6210\u529f\nstring or nil \u5982\u679c\u53c2\u65705\u662finterger\uff0c\u5219\u8fd4\u56de\u63a5\u6536\u5230\u7684\u6570\u636e\n\u4f8b\u5b50\uff1a\nlocal result, _ = i2c.transfer(0, 0x11, txbuff, rxbuff, 1)\nlocal result, _ = i2c.transfer(0, 0x11, txbuff, nil, 0)\t--\u53ea\u53d1\u9001txbuff\u91cc\u7684\u6570\u636e\uff0c\u4e0d\u63a5\u6536\u6570\u636e\uff0c\u5178\u578b\u5e94\u7528\u5c31\u662f\u5199\u5bc4\u5b58\u5668\u4e86\uff0c\u8fd9\u91cc\u5bc4\u5b58\u5668\u5730\u5740\u548c\u503c\u90fd\u653e\u5728\u4e86txbuff\u91cc\nlocal result, _ = i2c.transfer(0, 0x11, \"\\x01\\x02\\x03\", nil, 1) --\u53d1\u90010x01\uff0c 0x02\uff0c0x03\uff0c\u4e0d\u63a5\u6536\u6570\u636e\uff0c\u5982\u679c\u662feeprom\uff0c\u5c31\u662f\u5f800x01\u7684\u5730\u5740\u519902\u548c03\uff0c\u6216\u8005\u5f800x0102\u7684\u5730\u5740\u519903\uff0c\u770b\u5177\u4f53\u82af\u7247\u4e86\nlocal result, rxdata = i2c.transfer(0, 0x11, \"\\x01\\x02\", nil, 1) --\u53d1\u90010x01\uff0c 0x02\uff0c\u7136\u540e\u63a5\u65361\u4e2a\u5b57\u8282\uff0c\u5178\u578b\u5e94\u7528\u5c31\u662feeprom\nlocal result, rxdata = i2c.transfer(0, 0x11, 0x00, nil, 1) --\u53d1\u90010x00\uff0c\u7136\u540e\u63a5\u65361\u4e2a\u5b57\u8282\uff0c\u5178\u578b\u5e94\u7528\u5404\u79cd\u4f20\u611f\u5668\n", "prefix": "i2c.transfer"}, "i2c.xfer": {"body": "i2c.xfer(${1:id},${2:addr},${3:txBuff},${4:rxBuff},${5:rxLen},${6:transfer_done_topic},${7:timeout})", "description": "i2c.xfer(id, addr, txBuff, rxBuff, rxLen, transfer_done_topic, timeout) - i2c\u975e\u963b\u585e\u901a\u7528\u4f20\u8f93\uff0c\u7c7b\u4f3ctransfer\uff0c\u4f46\u662f\u4e0d\u4f1a\u7b49\u5230I2C\u4f20\u8f93\u5b8c\u6210\u624d\u8fd4\u56de\uff0c\u8c03\u7528\u672c\u51fd\u6570\u4f1a\u7acb\u523b\u8fd4\u56de\uff0cI2C\u4f20\u8f93\u5b8c\u6210\u540e\uff0c\u901a\u8fc7\u6d88\u606f\u56de\u8c03\n\u4f20\u5165\u503c\uff1a\nint \u8bbe\u5907id, \u4f8b\u5982i2c1\u7684id\u4e3a1, i2c2\u7684id\u4e3a2\nint I2C\u5b50\u8bbe\u5907\u7684\u5730\u5740, 7\u4f4d\u5730\u5740\nzbuff \u5f85\u53d1\u9001\u7684\u6570\u636e\uff0c\u7531\u4e8e\u7528\u7684\u975e\u963b\u585e\u6a21\u578b\uff0c\u4e3a\u4fdd\u8bc1\u52a8\u6001\u6570\u636e\u7684\u6709\u6548\u6027\uff0c\u53ea\u80fd\u4f7f\u7528zbuff\uff0c\u53d1\u9001\u7684\u6570\u636e\u4ecezbuff.addr\u5f00\u59cb\uff0c\u957f\u5ea6\u4e3azbuff.used\nzbuff \u5f85\u63a5\u6536\u6570\u636e\u7684zbuff\uff0c\u5982\u679c\u4e3anil\uff0c\u5219\u5ffd\u7565\u540e\u9762\u53c2\u6570\uff0c \u4e0d\u63a5\u6536\u6570\u636e\u3002\u63a5\u6536\u7684\u6570\u636e\u4f1a\u653e\u5728zbuff.addr\u5f00\u59cb\u7684\u4f4d\u7f6e\uff0c\u4f1a\u8986\u76d6\u6389\u4e4b\u524d\u7684\u6570\u636e\uff0c\u6ce8\u610fzhuff\u7684\u9884\u7559\u7a7a\u95f4\u8981\u8db3\u591f\nint \u9700\u8981\u63a5\u6536\u7684\u6570\u636e\u957f\u5ea6\uff0c\u5982\u679c\u4e3a0\u6216nil\uff0c\u5219\u4e0d\u63a5\u6536\u6570\u636e\nstring \u4f20\u8f93\u5b8c\u6210\u540e\u56de\u8c03\u7684\u6d88\u606f\nint \u8d85\u65f6\u65f6\u95f4\uff0c\u5982\u679c\u586bnil\uff0c\u5219\u4e3a100ms\n\u8fd4\u56de\u503c\uff1a\nboolean true/false \u672c\u6b21\u4f20\u8f93\u662f\u5426\u6b63\u786e\u542f\u52a8\uff0ctrue\uff0c\u542f\u52a8\uff0cfalse\uff0c\u6709\u9519\u8bef\u65e0\u6cd5\u542f\u52a8\u3002\u4f20\u8f93\u5b8c\u6210\u4f1a\u53d1\u5e03\u6d88\u606ftransfer_done_topic\u548cboolean\u578b\u7ed3\u679c\n\u4f8b\u5b50\uff1a\nlocal result = i2c.xfer(0, 0x11, txbuff, rxbuff, 1, \"I2CDONE\") if result then result, i2c_id, succ, error_code = sys.waitUntil(\"I2CDONE\") end if not result or not succ then log.info(\"i2c fail, error code\", error_code) else log.info(\"i2c ok\") end\n\n", "prefix": "i2c.xfer"}, "i2c.scan": {"body": "i2c.scan(${1:id})", "description": "i2c.scan(id) - \u626b\u63cfi2c\u8bbe\u5907\n\u4f20\u5165\u503c\uff1a\nint \u8bbe\u5907id, \u4f8b\u5982i2c1\u7684id\u4e3a1, i2c2\u7684id\u4e3a2\n\u8fd4\u56de\u503c\uff1a\nnil \u5f53\u524d\u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n-- \u672c\u51fd\u6570\u4e8e2023.07.04\u6dfb\u52a0\n-- \u8fd9\u4e2a\u51fd\u6570\u7684\u4e3b\u8981\u76ee\u6807\u662f\u4e3a\u4e86\u5728\u5f00\u53d1\u671f\u626b\u63cfi2c\u8bbe\u5907\n-- \u6709\u4e9bBSP\u5728\u6307\u5b9aaddr\u65e0\u54cd\u5e94\u65f6\u4f1a\u8f93\u51fa\u65e5\u5fd7,\u5bfc\u81f4\u8f93\u51fa\u4f1a\u88ab\u6253\u4e71\ni2c.scan()\n", "prefix": "i2c.scan"}, "i2s.setup": {"body": "i2s.setup(${1:id},${2:mode},${3:sample},${4:bitw},${5:channel},${6:format},${7:mclk})", "description": "i2s.setup(id, mode, sample, bitw, channel, format, mclk) - \u521d\u59cb\u5316i2s\n\u4f20\u5165\u503c\uff1a\nint i2s\u901a\u9053\u53f7,\u4e0e\u5177\u4f53\u8bbe\u5907\u6709\u5173\nint \u6a21\u5f0f, \u5f53\u524d\u4ec5\u652f\u63010, MASTER|TX|RX \u6a21\u5f0f, \u6682\u4e0d\u652f\u6301slave. \u53ef\u9009\nint \u91c7\u6837\u7387,\u9ed8\u8ba444100. \u53ef\u9009\nint \u6570\u636e\u4f4d\u6570,\u9ed8\u8ba416, \u53ef\u4ee5\u662f8\u7684\u500d\u6570\nint \u58f0\u9053, 0 \u5de6\u58f0\u9053, 1 \u53f3\u58f0\u9053, 2 \u53cc\u58f0\u9053. \u53ef\u9009\nint \u683c\u5f0f, \u53ef\u9009MODE_I2S, MODE_LSB, MODE_MSB\nint mclk\u9891\u7387, \u9ed8\u8ba4 8M. \u53ef\u9009\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u4e0e\u5426\nint \u5e95\u5c42\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n-- \u4ee5\u9ed8\u8ba4\u53c2\u6570\u521d\u59cb\u5316i2s\ni2s.setup(0)\n-- \u4ee5\u8be6\u7ec6\u53c2\u6570\u521d\u59cb\u5316i2s, \u793a\u4f8b\u4e3a\u9ed8\u8ba4\u503c\ni2s.setup(0, 0, 44100, 16, 0, 0, 8000000)\n", "prefix": "i2s.setup"}, "i2s.send": {"body": "i2s.send(${1:id},${2:data},${3:len})", "description": "i2s.send(id, data, len) - \u53d1\u9001i2s\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nint \u901a\u9053id\nstring \u6570\u636e, \u53ef\u4ee5\u662f\u5b57\u7b26\u4e32\u6216zbuff\nint \u6570\u636e\u957f\u5ea6,\u5355\u4f4d\u5b57\u8282, \u5b57\u7b26\u4e32\u9ed8\u8ba4\u4e3a\u5b57\u7b26\u4e32\u5168\u957f, zbuff\u9ed8\u8ba4\u4e3a\u6307\u9488\u4f4d\u7f6e\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u4e0e\u5426\nint \u5e95\u5c42\u8fd4\u56de\u503c,\u4f9b\u8c03\u8bd5\u7528\n\u4f8b\u5b50\uff1a\nlocal f = io.open(\"/luadb/abc.wav\")\nwhile 1 do\n local data = f:read(4096)\n if not data or #data == 0 then\n break\n end\n i2s.send(0, data)\n sys.wait(100)\nend\n", "prefix": "i2s.send"}, "i2s.recv": {"body": "i2s.recv(${1:id},${2:buffer},${3:len})", "description": "i2s.recv(id, buffer, len) - \u63a5\u6536i2s\u6570\u636e\uff0c\u6ce8\u610f\u5728\u6570\u636e\u5728\u56de\u8c03\u65f6\u5df2\u7ecf\u5b58\u653e\u5728zbuff\u91cc\uff0c\u76ee\u524d\u53ea\u6709air780e\u7cfb\u5217\u652f\u6301\n\u4f20\u5165\u503c\uff1a\nint \u901a\u9053id\nzbuff \u6570\u636e\u7f13\u5b58\u533a\nint \u5355\u6b21\u8fd4\u56de\u7684\u6570\u636e\u957f\u5ea6,\u5355\u4f4d\u5b57\u8282,\u5fc5\u987b\u4e0e\u4f20\u5165\u7684zbuff\u7684\u5927\u5c0f\u4e00\u81f4\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u4e0e\u5426\n\u4f8b\u5b50\uff1a\nlocal buffer = zbuff.create(3200)\nlocal succ = i2s.recv(0, buffer, 3200);\n", "prefix": "i2s.recv"}, "i2s.close": {"body": "i2s.close(${1:id})", "description": "i2s.close(id) - \u5173\u95edi2s\n\u4f20\u5165\u503c\uff1a\nint \u901a\u9053id\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\ni2s.close(0)\n", "prefix": "i2s.close"}, "i2s.on": {"body": "i2s.on(${1:id},${2:func})", "description": "i2s.on(id, func) - \u6ce8\u518cI2S\u4e8b\u4ef6\u56de\u8c03\n\u4f20\u5165\u503c\uff1a\nint i2s id, i2s0\u51990, i2s1\u51991\nfunction \u56de\u8c03\u65b9\u6cd5\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\ni2s.on(0, function(id, buff)\n\tif buff then\n\t\tlog.info(\"i2s get data in zbuff\")\n\telse\n\t\tlog.info(\"i2s tx one block done\")\n\tend\nend)\n", "prefix": "i2s.on"}, "i2s.txStat": {"body": "i2s.txStat(${1:id})", "description": "i2s.txStat(id) - \u83b7\u53d6i2s\u7684\u53d1\u9001\u7f13\u51b2\u533a\u72b6\u6001\n\u4f20\u5165\u503c\uff1a\nint i2s id, i2s0\u51990, i2s1\u51991\nreturn \u5e95\u5c42\u7f13\u51b2\u533a\u7684\u603b\u5927\u5c0f\nreturn \u5e95\u5c42\u7f13\u51b2\u533a\u7684\u5269\u4f59\u5f85\u53d1\u9001\u6570\u636e\n\u4f8b\u5b50\uff1a\n-- \u8bfb\u53d6\u53d1\u9001\u7f13\u51b2\u533a\u7684\u72b6\u6001, \u4ece\u800c\u5224\u65ad\u662f\u5426\u9700\u8981\u7ee7\u7eed\u4f20\u5165\u97f3\u9891\u6570\u636e\nlocal max, remain = i2s.txStat(0)\nlog.info(\"i2s\u53d1\u9001\u7f13\u51b2\u533a\u72b6\u6001\", max, remain)\n", "prefix": "i2s.txStat"}, "iconv.open": {"body": "iconv.open(${1:tocode},${2:fromcode})", "description": "iconv.open(tocode, fromcode) - \u6253\u5f00\u76f8\u5e94\u5b57\u7b26\u7f16\u7801\u8f6c\u6362\u51fd\u6570\n\u4f20\u5165\u503c\uff1a\nstring tocode$\u76ee\u6807\u7f16\u7801\u683c\u5f0f$gb2312/ucs2/ucs2be/utf8\nstring fromcode$\u6e90\u7f16\u7801\u683c\u5f0f$gb2312/ucs2/ucs2be/utf8\nreturn table$cd$\u7f16\u7801\u8f6c\u6362\u51fd\u6570\u7684\u8f6c\u6362\u53e5\u67c4$ \n\u4f8b\u5b50\uff1a\n--unicode\u5927\u7aef\u7f16\u7801 \u8f6c\u5316\u4e3a utf8\u7f16\u7801\nlocal cd = iconv.open(\"utf8\", \"ucs2be\")\n", "prefix": "iconv.open"}, "iconv:iconv": {"body": "iconv:iconv(${1:inbuf})", "description": "iconv:iconv(inbuf) - \u5b57\u7b26\u7f16\u7801\u8f6c\u6362\n\u4f20\u5165\u503c\uff1a\nstring \u91ca\u4e49\uff1a\u5f85\u8f6c\u6362\u5b57\u7b26\u4e32\n\u8fd4\u56de\u503c\uff1a\nnumber \u91ca\u4e49\uff1a\u8fd4\u56de\u7f16\u7801\u8f6c\u6362\u540e\u7684\u7ed3\u679c
    \u53d6\u503c\uff1a0\u6210\u529f,-1\u5931\u8d25\n\u4f8b\u5b50\uff1a\n--unicode\u5927\u7aef\u7f16\u7801 \u8f6c\u5316\u4e3a utf8\u7f16\u7801\nfunction ucs2beToUtf8(ucs2s)\n local iconv = iconv.open(\"utf8\", \"ucs2be\")\n return iconv:iconv(ucs2s)\nend\n", "prefix": "iconv:iconv"}, "cd:iconv": {"body": "cd:iconv(${1:inbuf})", "description": "cd:iconv(inbuf) - \u5b57\u7b26\u7f16\u7801\u8f6c\u6362\n\u4f20\u5165\u503c\uff1a\nstring inbuf$\u8f93\u5165\u5b57\u7b26\u4e32$\u4f8b\u5982:ucs2s \nreturn number$result$\u8fd4\u56de\u7f16\u7801\u8f6c\u6362\u540e\u7684\u7ed3\u679c$0\u6210\u529f,-1\u5931\u8d25\n\u4f8b\u5b50\uff1a\n--unicode\u5927\u7aef\u7f16\u7801 \u8f6c\u5316\u4e3a utf8\u7f16\u7801\nfunction ucs2beToUtf8(ucs2s)\n local cd = iconv.open(\"utf8\", \"ucs2be\")\n return cd:iconv(ucs2s)\nend\n", "prefix": "cd:iconv"}, "iconv.close": {"body": "iconv.close(${1:cd})", "description": "iconv.close(cd) - \u5173\u95ed\u5b57\u7b26\u7f16\u7801\u8f6c\u6362\n\u4f20\u5165\u503c\uff1a\nstring cd$iconv.open\u8fd4\u56de\u7684\u53e5\u67c4$ \nreturn \n\u4f8b\u5b50\uff1a\n--\u5173\u95ed\u5b57\u7b26\u7f16\u7801\u8f6c\u6362\nlocal cd = iconv.open(\"utf8\", \"ucs2be\")\niconv.close(cd)\n", "prefix": "iconv.close"}, "io.exists": {"body": "io.exists(${1:path})", "description": "io.exists(path) - \u5224\u65ad\u6587\u4ef6\u662f\u5426\u5b58\u5728\n\u4f20\u5165\u503c\uff1a\nstring \u6587\u4ef6\u8def\u5f84\n\u8fd4\u56de\u503c\uff1a\nbool \u5b58\u5728\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\nlog.info(\"io\", \"file exists\", io.exists(\"/boottime\"))\n", "prefix": "io.exists"}, "io.fileSize": {"body": "io.fileSize(${1:path})", "description": "io.fileSize(path) - \u83b7\u53d6\u6587\u4ef6\u5927\u5c0f\n\u4f20\u5165\u503c\uff1a\nstring \u6587\u4ef6\u8def\u5f84\n\u8fd4\u56de\u503c\uff1a\nint \u6587\u4ef6\u6570\u636e,\u82e5\u6587\u4ef6\u4e0d\u5b58\u5728\u4f1a\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\nlocal fsize = io.fileSize(\"/bootime\")\nif fsize and fsize > 1024 then\n log.info(\"io\", \"file size\", fsize)\nend\n", "prefix": "io.fileSize"}, "io.readFile": {"body": "io.readFile(${1:path},${2:mode},${3:offset},${4:len})", "description": "io.readFile(path, mode, offset, len) - \u8bfb\u53d6\u6574\u4e2a\u6587\u4ef6,\u8bf7\u6ce8\u610f\u5185\u5b58\u6d88\u8017\n\u4f20\u5165\u503c\uff1a\nstring \u6587\u4ef6\u8def\u5f84\nstring \u8bfb\u53d6\u6a21\u5f0f, \u9ed8\u8ba4 \"rb\"\nint \u8d77\u59cb\u4f4d\u7f6e,\u9ed8\u8ba40\nint \u8bfb\u53d6\u957f\u5ea6,\u9ed8\u8ba4\u6574\u4e2a\u6587\u4ef6\n\u8fd4\u56de\u503c\uff1a\nstring \u6587\u4ef6\u6570\u636e,\u82e5\u6587\u4ef6\u4e0d\u5b58\u5728\u4f1a\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\nlocal data = io.readFile(\"/bootime\")\n-- \u6ce8\u610f: offset\u548clen\u53c2\u6570\u662f 2023.6.6\u6dfb\u52a0\u7684\n-- \u8bfb\u53d6abc.txt, \u5148\u8df3\u8fc7128\u5b57\u8282, \u7136\u540e\u8bfb\u53d6512\u5b57\u8282\u6570\u636e\nlocal data = io.readFile(\"/abc.txt\", \"rb\", 128, 512)\n", "prefix": "io.readFile"}, "io.writeFile": {"body": "io.writeFile(${1:path},${2:data})", "description": "io.writeFile(path, data) - \u5c06\u6570\u636e\u5199\u5165\u6587\u4ef6\n\u4f20\u5165\u503c\uff1a\nstring \u6587\u4ef6\u8def\u5f84\nstring \u6570\u636e\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u8fd4\u56detrue, \u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\nio.writeFile(\"/bootime\", \"1\")\n", "prefix": "io.writeFile"}, "io.fill": {"body": "io.fill(${1:buff},${2:offset},${3:len})", "description": "io.fill(buff, offset, len) - \u8bfb\u53d6\u6587\u4ef6\u5e76\u586b\u5145\u5230zbuff\u5185,\u4f46\u4e0d\u79fb\u52a8\u6307\u9488\u4f4d\u7f6e\n\u4f20\u5165\u503c\uff1a\nuserdata zbuff\u5b9e\u4f53\nint \u5199\u5165\u7684\u4f4d\u7f6e,\u9ed8\u8ba4\u662f0\nint \u5199\u5165\u7684\u957f\u5ea6,\u9ed8\u8ba4\u662fzbuff\u7684len\u51cf\u53bboffset\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\nint \u8fd4\u56de\u5b9e\u9645\u8bfb\u53d6\u5230\u7684\u957f\u5ea6\uff0c\u5982\u679c\u5c0f\u4e8e0\u4e5f\u8bf4\u660e\u662f\u8bfb\u53d6\u5931\u8d25\u4e86\n\u4f8b\u5b50\uff1a\nlocal buff = zbuff.create(1024)\nlocal f = io.open(\"/sd/test.txt\")\nif f then\n f:fill(buff)\nend\n", "prefix": "io.fill"}, "io.mkfs": {"body": "io.mkfs(${1:path})", "description": "io.mkfs(path) - \u683c\u5f0f\u5316\u6587\u4ef6\u7cfb\u7edf,\u9700\u6307\u5b9a\u6302\u8f7d\u70b9\n\u4f20\u5165\u503c\uff1a\nstring \u6302\u8f7d\u70b9\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u4e0e\u5426\nint \u5e95\u5c42\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\nlocal ret, errio = io.mkfs(\"/sd\")\nlog.info(\"fs\", \"mkfs\", ret, errio)\n", "prefix": "io.mkfs"}, "io.mkdir": {"body": "io.mkdir(${1:path})", "description": "io.mkdir(path) - \u521b\u5efa\u6587\u4ef6\u5939\n\u4f20\u5165\u503c\uff1a\nstring \u9700\u8981\u5efa\u7acb\u7684\u76ee\u5f55\u8def\u5f84\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u4e0e\u5426\nint \u5e95\u5c42\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\nlocal ret, errio = io.mkdir(\"/data/\")\nlog.info(\"fs\", \"mkdir\", ret, errio)\n", "prefix": "io.mkdir"}, "io.rmdir": {"body": "io.rmdir(${1:path})", "description": "io.rmdir(path) - \u5220\u9664\u6587\u4ef6\u5939\n\u4f20\u5165\u503c\uff1a\nstring \u9700\u8981\u79fb\u9664\u7684\u76ee\u5f55\u8def\u5f84\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u4e0e\u5426\nint \u5e95\u5c42\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\nlocal ret, errio = io.rmdir(\"/data/\")\nlog.info(\"fs\", \"rmdir\", ret, errio)\n", "prefix": "io.rmdir"}, "io.lsdir": {"body": "io.lsdir(${1:path},${2:len},${3:offset})", "description": "io.lsdir(path, len, offset) - \u5217\u51fa\u76ee\u5f55\u4e0b\u7684\u6587\u4ef6\n\u4f20\u5165\u503c\uff1a\nstring \u9700\u8981\u679a\u4e3e\u7684\u76ee\u5f55\u8def\u5f84\nint \u6700\u5927\u957f\u5ea6, \u9ed8\u8ba410, \u6700\u9ad850\nint \u504f\u79fb\u91cf, \u9ed8\u8ba40, \u5f53\u76ee\u5f55\u6587\u4ef6\u5f88\u591a\u65f6\u5206\u9875\u67e5\u8be2\u7528\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u4e0e\u5426\nint \u5e95\u5c42\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\nlocal ret, data = io.lsdir(\"/data/\", 10, 0)\nif ret then\n log.info(\"fs\", \"lsdir\", json.encode(data))\nelse\n log.info(\"fs\", \"lsdir\", \"fail\", ret, data)\nend\n", "prefix": "io.lsdir"}, "io.lsmount": {"body": "io.lsmount()", "description": "io.lsmount() - \u5217\u51fa\u6240\u6709\u6302\u8f7d\u70b9\n\u8fd4\u56de\u503c\uff1a\ntable \u6302\u8f7d\u70b9\u5217\u8868\n\u4f8b\u5b50\uff1a\nlocal data = io.lsmount()\nlog.info(\"fs\", \"lsmount\", json.encode(data))\n", "prefix": "io.lsmount"}, "ioqueue.init": {"body": "ioqueue.init(${1:hwtimer_id},${2:cmd_cnt},${3:repeat_cnt})", "description": "ioqueue.init(hwtimer_id,cmd_cnt,repeat_cnt) - \u521d\u59cb\u5316\u4e00\u4e2aio\u64cd\u4f5c\u961f\u5217\n\u4f20\u5165\u503c\uff1a\nint \u786c\u4ef6\u5b9a\u65f6\u5668id\uff0c\u9ed8\u8ba4\u75280\uff0c\u6839\u636e\u5b9e\u9645MCU\u786e\u5b9a\uff0cair105\u4e3a0~5\uff0c\u4e0epwm\u5171\u7528\uff0c\u540c\u4e00\u4e2a\u901a\u9053\u53f7\u4e0d\u80fd\u540c\u65f6\u4e3apwm\u548cioqueue\nint \u4e00\u4e2a\u5b8c\u6574\u5468\u671f\u9700\u8981\u7684\u547d\u4ee4\uff0c\u53ef\u4ee5\u6bd4\u5b9e\u9645\u7684\u591a\nint \u91cd\u590d\u6b21\u6570,\u9ed8\u8ba4\u662f1\uff0c\u5982\u679c\u51990\u5219\u8868\u793a\u65e0\u9650\u6b21\u6570\u5faa\u73af\nreturn \u65e0\n\u4f8b\u5b50\uff1a\nioqueue.init(0,10,5) --\u4ee5timer0\u4e3a\u65f6\u949f\u6e90\u521d\u59cb\u5316\u4e00\u4e2aio\u64cd\u4f5c\u961f\u5217\uff0c\u670910\u4e2a\u6709\u6548\u547d\u4ee4\uff0c\u5faa\u73af5\u6b21\n", "prefix": "ioqueue.init"}, "ioqueue.setdelay": {"body": "ioqueue.setdelay(${1:hwtimer_id},${2:time_us},${3:time_tick},${4:continue})", "description": "ioqueue.setdelay(hwtimer_id,time_us,time_tick,continue) - \u5bf9io\u64cd\u4f5c\u961f\u5217\u589e\u52a0\u5ef6\u65f6\u547d\u4ee4\n\u4f20\u5165\u503c\uff1a\nint \u786c\u4ef6\u5b9a\u65f6\u5668id\nint \u5ef6\u65f6\u65f6\u95f4,0~65535us\nint \u5ef6\u65f6\u5fae\u8c03\u65f6\u95f4,0~255tick,\u603b\u7684\u5ef6\u65f6\u65f6\u95f4\u662ftime_us * 1us_tick + time_tick\nboolean \u662f\u5426\u8fde\u7eed\u662f\u8fde\u7eed\u5ef6\u65f6\uff0c\u9ed8\u8ba4\u5426\uff0c\u5982\u679c\u662f\uff0c\u5b9a\u65f6\u5668\u5728\u65f6\u95f4\u5230\u540e\u4e0d\u4f1a\u505c\u6b62\u800c\u662f\u91cd\u65b0\u8ba1\u65f6\uff0c\n", "prefix": "ioqueue.setdelay"}, "ioqueue.delay": {"body": "ioqueue.delay(${1:hwtimer_id})", "description": "ioqueue.delay(hwtimer_id) - \u5bf9io\u64cd\u4f5c\u961f\u5217\u589e\u52a0\u4e00\u6b21\u91cd\u590d\u5ef6\u65f6\uff0c\u5728\u524d\u9762\u5fc5\u987b\u6709setdelay\u4e14\u662f\u8fde\u7eed\u5ef6\u65f6\n\u4f20\u5165\u503c\uff1a\nint \u786c\u4ef6\u5b9a\u65f6\u5668id\nreturn \u65e0\n\u4f8b\u5b50\uff1a\nioqueue.setdelay(0,9,15,true) --\u5ef6\u65f69us+15\u4e2atick,\u5728\u4e4b\u540e\u9047\u5230delay\u547d\u4ee4\u65f6\uff0c\u4f1a\u5ef6\u65f69us+15\u4e2atick\nioqueue.delay(0)\n", "prefix": "ioqueue.delay"}, "ioqueue.setgpio": {"body": "ioqueue.setgpio(${1:hwtimer_id},${2:pin},${3:is_input},${4:pull_mode},${5:init_level})", "description": "ioqueue.setgpio(hwtimer_id,pin,is_input,pull_mode,init_level) - \u5bf9io\u64cd\u4f5c\u961f\u5217\u589e\u52a0\u8bbe\u7f6egpio\u547d\u4ee4\n\u4f20\u5165\u503c\uff1a\nint \u786c\u4ef6\u5b9a\u65f6\u5668id\nint pin\nboolean \u662f\u5426\u662f\u8f93\u5165\nint \u4e0a\u4e0b\u62c9\u6a21\u5f0f,\u53ea\u80fd\u662f0,gpio.PULLUP,gpio.PULLDOWN\nint \u521d\u59cb\u8f93\u51fa\u7535\u5e73\nreturn \u65e0\n\u4f8b\u5b50\uff1a\nioqueue.setgpio(0,pin.PB01,true,gpio.PULLUP,0) --PB01\u8bbe\u7f6e\u6210\u4e0a\u62c9\u8f93\u5165\nioqueue.setgpio(0,pin.PB01,false,0,1)--PB01\u8bbe\u7f6e\u6210\u9ed8\u8ba4\u4e0a\u4e0b\u62c9\u8f93\u51fa\u9ad8\u7535\u5e73\n", "prefix": "ioqueue.setgpio"}, "ioqueue.input": {"body": "ioqueue.input(${1:hwtimer_id},${2:pin})", "description": "ioqueue.input(hwtimer_id,pin) - \u5bf9io\u64cd\u4f5c\u961f\u5217\u589e\u52a0\u8bfb\u53d6gpio\u547d\u4ee4\n\u4f20\u5165\u503c\uff1a\nint \u786c\u4ef6\u5b9a\u65f6\u5668id\nint pin\nreturn \u65e0\n\u4f8b\u5b50\uff1a\nioqueue.input(0,pin.PB01)\n\n", "prefix": "ioqueue.input"}, "ioqueue.output": {"body": "ioqueue.output(${1:hwtimer_id},${2:pin},${3:level})", "description": "ioqueue.output(hwtimer_id,pin,level) - \u5bf9io\u64cd\u4f5c\u961f\u5217\u589e\u52a0\u8f93\u51faGPIO\u547d\u4ee4\n\u4f20\u5165\u503c\uff1a\nint \u786c\u4ef6\u5b9a\u65f6\u5668id\nint pin\nint \u8f93\u51fa\u7535\u5e73\nreturn \u65e0\n\u4f8b\u5b50\uff1a\nioqueue.output(0,pin.PB01,0)\n", "prefix": "ioqueue.output"}, "ioqueue.setcap": {"body": "ioqueue.setcap(${1:hwtimer_id},${2:pin},${3:pull_mode},${4:irq_mode},${5:max_tick})", "description": "ioqueue.setcap(hwtimer_id,pin,pull_mode,irq_mode,max_tick) - \u5bf9io\u64cd\u4f5c\u961f\u5217\u589e\u52a0\u8bbe\u7f6e\u6355\u83b7\u67d0\u4e2aIO\u547d\u4ee4\n\u4f20\u5165\u503c\uff1a\nint \u786c\u4ef6\u5b9a\u65f6\u5668id\nint pin\nint \u4e0a\u4e0b\u62c9\u6a21\u5f0f,\u53ea\u80fd\u662f0,gpio.PULLUP,gpio.PULLDOWN\nint \u4e2d\u65ad\u6a21\u5f0f,\u53ea\u80fd\u662fgpio.BOTH,gpio.RISING,gpio.FALLING\nint \u5b9a\u65f6\u5668\u6700\u5927\u8ba1\u65f6\u65f6\u95f4 \u8003\u8651\u5230lua\u662fint\u7c7b\u578b\uff0c\u6700\u5c0f0x10000, \u6700\u5927\u503c\u4e3a0x7fffffff\uff0c\u9ed8\u8ba4\u4e3a\u6700\u5927\u503c\nreturn \u65e0\n\u4f8b\u5b50\uff1a\nioqueue.setcap(0,pin.PB01,gpio.PULLUP,gpio.FALLING,48000000)\n", "prefix": "ioqueue.setcap"}, "ioqueue.capture": {"body": "ioqueue.capture(${1:hwtimer_id})", "description": "ioqueue.capture(hwtimer_id) - \u5bf9io\u64cd\u4f5c\u961f\u5217\u589e\u52a0\u6355\u83b7\u4e00\u6b21IO\u72b6\u6001\u547d\u4ee4\n\u4f20\u5165\u503c\uff1a\nint \u786c\u4ef6\u5b9a\u65f6\u5668id\nreturn \u65e0\n\u4f8b\u5b50\uff1a\nioqueue.capture(0)\n", "prefix": "ioqueue.capture"}, "ioqueue.capend": {"body": "ioqueue.capend(${1:hwtimer_id},${2:pin})", "description": "ioqueue.capend(hwtimer_id,pin) - \u5bf9io\u64cd\u4f5c\u961f\u5217\u589e\u52a0\u7ed3\u675f\u6355\u83b7\u67d0\u4e2aIO\u547d\u4ee4\n\u4f20\u5165\u503c\uff1a\nint \u786c\u4ef6\u5b9a\u65f6\u5668id\nint pin\nreturn \u65e0\n\u4f8b\u5b50\uff1a\nioqueue.capend(0,pin.PB01)\n", "prefix": "ioqueue.capend"}, "ioqueue.get": {"body": "ioqueue.get(${1:hwtimer_id},${2:input_buff},${3:capture_buff})", "description": "ioqueue.get(hwtimer_id, input_buff, capture_buff) - * \u83b7\u53d6io\u64cd\u4f5c\u961f\u5217\u4e2d\u8f93\u5165\u548c\u6355\u83b7\u7684\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nint \u786c\u4ef6\u5b9a\u65f6\u5668id\nzbuff \u5b58\u653eIO\u8f93\u5165\u6570\u636e\u7684buff\uff0c\u6309\u71671byte pin + 1byte level \u5f62\u5f0f\u5b58\u653e\u6570\u636e\nzbuff \u5b58\u653eIO\u6355\u83b7\u6570\u636e\u7684buff\uff0c\u6309\u71671byte pin + 1byte level + 4byte tick\u5f62\u5f0f\u5b58\u653e\u6570\u636e\n\u8fd4\u56de\u503c\uff1a\nint \u8fd4\u56de\u591a\u5c11\u7ec4IO\u8f93\u5165\u6570\u636e\nint \u8fd4\u56de\u591a\u5c11\u7ec4IO\u6355\u83b7\u6570\u636e\n\u4f8b\u5b50\uff1a\nlocal input_cnt, capture_cnt = ioqueue.get(0, input_buff, capture_buff)\n", "prefix": "ioqueue.get"}, "ioqueue.start": {"body": "ioqueue.start(${1:hwtimer_id})", "description": "ioqueue.start(hwtimer_id) - \u542f\u52a8io\u64cd\u4f5c\u961f\u5217\n\u4f20\u5165\u503c\uff1a\nint \u786c\u4ef6\u5b9a\u65f6\u5668id\nreturn \u65e0\n\u4f8b\u5b50\uff1a\nioqueue.start(0)\n", "prefix": "ioqueue.start"}, "ioqueue.stop": {"body": "ioqueue.stop(${1:hwtimer_id})", "description": "ioqueue.stop(hwtimer_id) - \u505c\u6b62io\u64cd\u4f5c\u961f\u5217\uff0c\u53ef\u4ee5\u901a\u8fc7start\u4ece\u5934\u5f00\u59cb\n\u4f20\u5165\u503c\uff1a\nint \u786c\u4ef6\u5b9a\u65f6\u5668id\n\u8fd4\u56de\u503c\uff1a\nint \u8fd4\u56de\u5df2\u7ecf\u5faa\u73af\u7684\u6b21\u6570\uff0c\u5982\u679c\u662f0\uff0c\u8868\u793a\u4e00\u6b21\u5faa\u73af\u90fd\u6ca1\u6709\u5b8c\u6210\nint \u8fd4\u56de\u5355\u6b21\u5faa\u73af\u4e2d\u5df2\u7ecf\u6267\u884c\u7684cmd\u6b21\u6570\uff0c\u5982\u679c\u662f0\uff0c\u53ef\u80fd\u662f\u4e00\u6b21\u5faa\u73af\u521a\u521a\u7ed3\u675f\n\u4f8b\u5b50\uff1a\nioqueue.stop(0)\n", "prefix": "ioqueue.stop"}, "ioqueue.release": {"body": "ioqueue.release(${1:hwtimer_id})", "description": "ioqueue.release(hwtimer_id) - \u91ca\u653eio\u64cd\u4f5c\u961f\u5217\u7684\u8d44\u6e90\uff0c\u4e0b\u6b21\u4f7f\u7528\u5fc5\u987b\u91cd\u65b0init\n\u4f20\u5165\u503c\uff1a\nint \u786c\u4ef6\u5b9a\u65f6\u5668id\nreturn \u65e0\n\u4f8b\u5b50\uff1a\nioqueue.clear(0)\n", "prefix": "ioqueue.release"}, "ioqueue.clear": {"body": "ioqueue.clear(${1:hwtimer_id})", "description": "ioqueue.clear(hwtimer_id) - \u6e05\u7a7aio\u64cd\u4f5c\u961f\u5217\n\u4f20\u5165\u503c\uff1a\nint \u786c\u4ef6\u5b9a\u65f6\u5668id\nreturn \u65e0\n\u4f8b\u5b50\uff1a\nioqueue.clear(0)\n", "prefix": "ioqueue.clear"}, "ioqueue.done": {"body": "ioqueue.done(${1:hwtimer_id})", "description": "ioqueue.done(hwtimer_id) - \u68c0\u6d4bio\u64cd\u4f5c\u961f\u5217\u662f\u5426\u5df2\u7ecf\u6267\u884c\u5b8c\u6210\n\u4f20\u5165\u503c\uff1a\nint \u786c\u4ef6\u5b9a\u65f6\u5668id\n\u8fd4\u56de\u503c\uff1a\nboolean \u961f\u5217\u662f\u5426\u6267\u884c\u5b8c\u6210\uff0c\n\u4f8b\u5b50\uff1a\nlocal result = ioqueue.done(0)\n", "prefix": "ioqueue.done"}, "ioqueue.exti": {"body": "ioqueue.exti(${1:pin},${2:pull_mode},${3:irq_mode},${4:onoff})", "description": "ioqueue.exti(pin,pull_mode,irq_mode,onoff) - \u542f\u52a8/\u505c\u6b62\u4e00\u4e2a\u5e26\u7cfb\u7edftick\u8fd4\u56de\u7684\u5916\u90e8\u4e2d\u65ad\n\u4f20\u5165\u503c\uff1a\nint pin\nint \u4e0a\u4e0b\u62c9\u6a21\u5f0f,\u53ea\u80fd\u662f0,gpio.PULLUP,gpio.PULLDOWN\nint \u4e2d\u65ad\u6a21\u5f0f,\u53ea\u80fd\u662fgpio.BOTH,gpio.RISING,gpio.FALLING\nboolean \u5f00\u5173\uff0c\u9ed8\u8ba4\u662ffalse\u5173\nreturn \u65e0\n\u4f8b\u5b50\uff1a\nioqueue.exti(pin.PB01, gpio.PULLUP, gpio.BOTH, true)\nioqueue.exti(pin.PB01)\n", "prefix": "ioqueue.exti"}, "iotauth.aliyun": {"body": "iotauth.aliyun(${1:product_key},${2:device_name},${3:device_secret},${4:method},${5:cur_timestamp})", "description": "iotauth.aliyun(product_key, device_name,device_secret,method,cur_timestamp) - \u963f\u91cc\u4e91\u7269\u8054\u7f51\u5e73\u53f0\u4e09\u5143\u7ec4\u751f\u6210\n\u4f20\u5165\u503c\uff1a\nstring product_key\nstring device_name\nstring device_secret\nstring method \u52a0\u5bc6\u65b9\u5f0f,\"hmacmd5\" \"hmacsha1\" \"hmacsha256\" \u53ef\u9009,\u9ed8\u8ba4\"hmacmd5\"\nnumber cur_timestamp \u53ef\u9009 \u9ed8\u8ba4\u4e3a 32472115200(2999-01-01 0:0:0)\nbool istls \u662f\u5426TLS\u76f4\u8fde true:TLS\u76f4\u8fde false:TCP\u76f4\u8fde\u6a21\u5f0f \u9ed8\u8ba4TCP\u76f4\u8fde\u6a21\u5f0f\n\u8fd4\u56de\u503c\uff1a\nstring mqtt\u4e09\u5143\u7ec4 client_id\nstring mqtt\u4e09\u5143\u7ec4 user_name\nstring mqtt\u4e09\u5143\u7ec4 password\n\u4f8b\u5b50\uff1a\nlocal client_id,user_name,password = iotauth.aliyun(\"123456789\",\"abcdefg\",\"Y877Bgo8X5owd3lcB5wWDjryNPoB\")\nprint(client_id,user_name,password)\n", "prefix": "iotauth.aliyun"}, "iotauth.onenet": {"body": "iotauth.onenet(${1:produt_id},${2:device_name},${3:key},${4:method},${5:cur_timestamp},${6:version})", "description": "iotauth.onenet(produt_id, device_name,key,method,cur_timestamp,version) - \u4e2d\u56fd\u79fb\u52a8\u7269\u8054\u7f51\u5e73\u53f0\u4e09\u5143\u7ec4\u751f\u6210\n\u4f20\u5165\u503c\uff1a\nstring produt_id\nstring device_name\nstring key\nstring method \u52a0\u5bc6\u65b9\u5f0f,\"md5\" \"sha1\" \"sha256\" \u53ef\u9009,\u9ed8\u8ba4\"md5\"\nnumber cur_timestamp \u53ef\u9009 \u9ed8\u8ba4\u4e3a 32472115200(2999-01-01 0:0:0)\nstring version \u53ef\u9009 \u9ed8\u8ba4\"2018-10-31\"\n\u8fd4\u56de\u503c\uff1a\nstring mqtt\u4e09\u5143\u7ec4 client_id\nstring mqtt\u4e09\u5143\u7ec4 user_name\nstring mqtt\u4e09\u5143\u7ec4 password\n\u4f8b\u5b50\uff1a\nlocal client_id,user_name,password = iotauth.onenet(\"123456789\",\"test\",\"KuF3NT/jUBJ62LNBB/A8XZA9CqS3Cu79B/ABmfA1UCw=\")\nprint(client_id,user_name,password)\n", "prefix": "iotauth.onenet"}, "iotauth.iotda": {"body": "iotauth.iotda(${1:device_id},${2:device_secret},${3:cur_timestamp})", "description": "iotauth.iotda(device_id,device_secret,cur_timestamp) - \u534e\u4e3a\u7269\u8054\u7f51\u5e73\u53f0\u4e09\u5143\u7ec4\u751f\u6210\n\u4f20\u5165\u503c\uff1a\nstring device_id\nstring device_secret\nnumber cur_timestamp \u53ef\u9009 \u5982\u4e0d\u586b\u5219\u4e0d\u6821\u9a8c\u65f6\u95f4\u6233\n\u8fd4\u56de\u503c\uff1a\nstring mqtt\u4e09\u5143\u7ec4 client_id\nstring mqtt\u4e09\u5143\u7ec4 user_name\nstring mqtt\u4e09\u5143\u7ec4 password\n\u4f8b\u5b50\uff1a\nlocal client_id,user_name,password = iotauth.iotda(\"6203cc94c7fb24029b110408_88888888\",\"123456789\")\nprint(client_id,user_name,password)\n", "prefix": "iotauth.iotda"}, "iotauth.qcloud": {"body": "iotauth.qcloud(${1:product_id},${2:device_name},${3:device_secret},${4:method},${5:cur_timestamp},${6:sdk_appid})", "description": "iotauth.qcloud(product_id, device_name,device_secret,method,cur_timestamp,sdk_appid) - \u817e\u8baf\u8054\u7f51\u5e73\u53f0\u4e09\u5143\u7ec4\u751f\u6210\n\u4f20\u5165\u503c\uff1a\nstring \u4ea7\u54c1id,\u521b\u5efa\u9879\u76ee\u540e\u53ef\u4ee5\u67e5\u770b\u5230,\u7c7b\u4f3c\u4e8eLD8S5J1L07\nstring \u8bbe\u5907\u540d\u79f0,\u4f8b\u5982\u8bbe\u5907\u7684imei\u53f7\nstring \u8bbe\u5907\u5bc6\u94a5,\u521b\u5efa\u8bbe\u5907\u540e,\u67e5\u770b\u8bbe\u5907\u8be6\u60c5\u53ef\u5f97\u5230\nstring method \u52a0\u5bc6\u65b9\u5f0f,\"sha1\" \"sha256\" \u53ef\u9009,\u9ed8\u8ba4\"sha256\"\nnumber cur_timestamp \u53ef\u9009 \u9ed8\u8ba4\u4e3a 32472115200(2999-01-01 0:0:0)\nstring sdk_appid \u53ef\u9009 \u9ed8\u8ba4\u4e3a\"12010126\"\n\u8fd4\u56de\u503c\uff1a\nstring mqtt\u4e09\u5143\u7ec4 client_id\nstring mqtt\u4e09\u5143\u7ec4 user_name\nstring mqtt\u4e09\u5143\u7ec4 password\n\u4f8b\u5b50\uff1a\nlocal client_id,user_name,password = iotauth.qcloud(\"LD8S5J1L07\",\"test\",\"acyv3QDJrRa0fW5UE58KnQ==\")\nprint(client_id,user_name,password)\n", "prefix": "iotauth.qcloud"}, "iotauth.tuya": {"body": "iotauth.tuya(${1:device_id},${2:device_secret},${3:cur_timestamp})", "description": "iotauth.tuya(device_id,device_secret,cur_timestamp) - \u6d82\u9e26\u8054\u7f51\u5e73\u53f0\u4e09\u5143\u7ec4\u751f\u6210\n\u4f20\u5165\u503c\uff1a\nstring device_id\nstring device_secret\nnumber cur_timestamp \u53ef\u9009 \u9ed8\u8ba47258089600(2200-01-01 0:0:0)\n\u8fd4\u56de\u503c\uff1a\nstring mqtt\u4e09\u5143\u7ec4 client_id\nstring mqtt\u4e09\u5143\u7ec4 user_name\nstring mqtt\u4e09\u5143\u7ec4 password\n\u4f8b\u5b50\uff1a\nlocal client_id,user_name,password = iotauth.tuya(\"6c95875d0f5ba69607nzfl\",\"fb803786602df760\")\nprint(client_id,user_name,password)\n", "prefix": "iotauth.tuya"}, "iotauth.baidu": {"body": "iotauth.baidu(${1:iot_core_id},${2:device_key},${3:device_secret},${4:method},${5:cur_timestamp})", "description": "iotauth.baidu(iot_core_id, device_key,device_secret,method,cur_timestamp) - \u767e\u5ea6\u7269\u8054\u7f51\u5e73\u53f0\u4e09\u5143\u7ec4\u751f\u6210\n\u4f20\u5165\u503c\uff1a\nstring iot_core_id\nstring device_key\nstring device_secret\nstring method \u52a0\u5bc6\u65b9\u5f0f,\"MD5\" \"SHA256\" \u53ef\u9009,\u9ed8\u8ba4\"MD5\"\nnumber cur_timestamp \u53ef\u9009 \u5982\u4e0d\u586b\u5219\u4e0d\u6821\u9a8c\u65f6\u95f4\u6233\n\u8fd4\u56de\u503c\uff1a\nstring mqtt\u4e09\u5143\u7ec4 client_id\nstring mqtt\u4e09\u5143\u7ec4 user_name\nstring mqtt\u4e09\u5143\u7ec4 password\n\u4f8b\u5b50\uff1a\nlocal client_id,user_name,password = iotauth.baidu(\"abcd123\",\"mydevice\",\"ImSeCrEt0I1M2jkl\")\nprint(client_id,user_name,password)\n", "prefix": "iotauth.baidu"}, "ir.sendNEC": {"body": "ir.sendNEC(${1:pin},${2:addr},${3:cmd},${4:repeat},${5:disablePWM})", "description": "ir.sendNEC(pin, addr, cmd, repeat, disablePWM) - \u53d1\u9001NEC\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nint \u4f7f\u7528\u7684GPIO\u5f15\u811a\u7f16\u53f7\nint \u7528\u6237\u7801\uff08\u5927\u4e8e0xff\u5219\u91c7\u7528Extended NEC\u6a21\u5f0f\uff09\nint \u6570\u636e\u7801\nint \u53ef\u9009\uff0c\u5f15\u5bfc\u7801\u53d1\u9001\u6b21\u6570\uff08110ms\u4e00\u6b21\uff09\uff0c\u9ed8\u8ba40\u6b21\nbool \u53ef\u9009\uff0c\u662f\u5426\u7981\u6b62\u76f4\u63a5\u53d1\u9001pwm\u6ce2\uff0c\u9ed8\u8ba4false\n\u4f8b\u5b50\uff1a\n--\u76f4\u63a5\u53d1\nir.sendNEC(0, 0x11, 0x22)\n--\u5916\u63a5\u4e8638K\u7684PWM\u8f7d\u6ce2\uff0c\u53ea\u63a7\u5236\u7535\u5e73\nir.sendNEC(0, 0x11, 0x22,0,true)\n", "prefix": "ir.sendNEC"}, "json.encode": {"body": "json.encode(${1:obj},${2:t})", "description": "json.encode(obj,t) - \u5c06\u5bf9\u8c61\u5e8f\u5217\u5316\u4e3ajson\u5b57\u7b26\u4e32\n\u4f20\u5165\u503c\uff1a\nobj \u9700\u8981\u5e8f\u5217\u5316\u7684\u5bf9\u8c61\nstring \u6d6e\u70b9\u6570\u7cbe\u5ea6\u548c\u6a21\u5f0f,\u8fd9\u9879\u4e0d\u5b58\u5728\u7684\u65f6\u5019,\u4e3a\u9ed8\u8ba4\u503c\"7g\",\u6570\u5b57\u53ea\u652f\u6301\"0~14\",\u6a21\u5f0f\u53ea\u652f\u6301\"f/g\"\n\u8fd4\u56de\u503c\uff1a\nstring \u5e8f\u5217\u5316\u540e\u7684json\u5b57\u7b26\u4e32, \u5931\u8d25\u7684\u8bdd\u8fd4\u56denil\nstring \u5e8f\u5217\u5316\u5931\u8d25\u7684\u62a5\u9519\u4fe1\u606f\n\u4f8b\u5b50\uff1a\njson.encode(obj)-->\u6d6e\u70b9\u6570\u7528%.7g\u7684\u65b9\u5f0f\u8f6c\u6362\u4e3a\u5b57\u7b26\u4e32\njson.encode(obj,\"12f\")-->\u6d6e\u70b9\u6570\u7528%.12f\u7684\u65b9\u5f0f\u8f6c\u6362\u4e3a\u5b57\u7b26\u4e32\n", "prefix": "json.encode"}, "json.decode": {"body": "json.decode(${1:str})", "description": "json.decode(str) - \u5c06\u5b57\u7b26\u4e32\u53cd\u5e8f\u5217\u5316\u4e3a\u5bf9\u8c61\n\u4f20\u5165\u503c\uff1a\nstring \u9700\u8981\u53cd\u5e8f\u5217\u5316\u7684json\u5b57\u7b26\u4e32\n\u8fd4\u56de\u503c\uff1a\nobj \u53cd\u5e8f\u5217\u5316\u540e\u7684\u5bf9\u8c61(\u901a\u5e38\u662ftable), \u5931\u8d25\u7684\u8bdd\u8fd4\u56denil\nresult \u6210\u529f\u8fd4\u56de1,\u5426\u5219\u8fd4\u56de0\nerr \u53cd\u5e8f\u5217\u5316\u5931\u8d25\u7684\u62a5\u9519\u4fe1\u606f\n\u4f8b\u5b50\uff1a\njson.decode(\"[1,2,3,4,5,6]\")\n", "prefix": "json.decode"}, "keyboard.init": {"body": "keyboard.init(${1:port},${2:conf},${3:map},${4:debounce})", "description": "keyboard.init(port, conf, map, debounce) - \u521d\u59cb\u5316\u952e\u76d8\u77e9\u9635\n\u4f20\u5165\u503c\uff1a\nint \u9884\u7559, \u5f53\u524d\u586b0\nint \u542f\u7528\u7684keyboard\u7ba1\u811a\u63a9\u7801, \u4f8b\u5982\u4f7f\u7528keyboard0~9, \u5219\u63a9\u7801\u4e3a 0x1FF, \u82e5\u4f7f\u7528 0~3 \u5219 0xF\nint keyboard\u7ba1\u811a\u65b9\u5411\u6620\u5c04, \u5176\u4e2d\u8f93\u5165\u4e3a0,\u8f93\u51fa\u4e3a1, \u6309\u4f4d\u8bbe\u7f6e. \u4f8b\u5982 keyboard0~3\u4f5c\u4e3a\u8f93\u5165, keyboard4~7\u4e3a\u8f93\u5165, \u5219 0xF0\nint \u6d88\u6296\u914d\u7f6e,\u9884\u7559,\u53ef\u4ee5\u4e0d\u586b\n\u4f8b\u5b50\uff1a\n-- \u505a\u4e00\u4e2a 4*4 \u952e\u76d8\u77e9\u9635, \u4f7f\u7528 keyboard0~7, \u5176\u4e2d0~3\u505a\u8f93\u5165, 4~7\u505a\u8f93\u51fa\n-- \u4f7f\u7528 keyboard0~7, \u5bf9\u5e94conf\u4e3a 0xFF\n-- \u5176\u4e2d0~3\u505a\u8f93\u5165, 4~7\u505a\u8f93\u51fa, \u5bf9\u5e94map \u4e3a 0xF0\nkeyboard.init(0, 0xFF, 0xF0)\n\n-- \u505a\u4e00\u4e2a 2*3 \u952e\u76d8\u77e9\u9635, \u4f7f\u7528 keyboard0~4, \u5176\u4e2d0~1\u505a\u8f93\u5165, 2~4\u505a\u8f93\u51fa\n-- \u4f7f\u7528 keyboard0~4, \u4e8c\u8fdb\u5236\u4e3a 11111, \u5bf9\u5e94conf\u7684\u5341\u516d\u8fdb\u5236\u8868\u8fbe\u4e3a 0x1F\n-- \u5176\u4e2d0~1\u505a\u8f93\u5165, 2~4\u505a\u8f93\u51fa, \u4e8c\u8fdb\u5236\u4e3a 11100 \u5bf9\u5e94map \u4e3a 0x14\n-- keyboard.init(0, 0xFF, 0x14)\n\nsys.subscribe(\"KB_INC\", function(port, data, state)\n -- port \u5f53\u524d\u56fa\u5b9a\u4e3a0, \u53ef\u4ee5\u65e0\u89c6\n -- data, \u9700\u8981\u914d\u5408init\u7684map\u8fdb\u884c\u89e3\u6790\n -- state, 1 \u4e3a\u6309\u4e0b, 0 \u4e3a \u91ca\u653e\n -- TODO \u8be6\u7ec6\u4ecb\u7ecd\nend)\n", "prefix": "keyboard.init"}, "lcd.init": {"body": "lcd.init(${1:tp},${2:args})", "description": "lcd.init(tp, args) - lcd\u663e\u793a\u5c4f\u521d\u59cb\u5316\n\u4f20\u5165\u503c\uff1a\nstring lcd\u7c7b\u578b\uff0c\u5f53\u524d\u652f\u6301\uff1a
    st7796
    st7789
    st7735
    st7735v
    st7735s
    gc9a01
    gc9106l
    gc9306x
    ili9486
    custom\ntable \u9644\u52a0\u53c2\u6570,\u4e0e\u5177\u4f53\u8bbe\u5907\u6709\u5173\uff1a
    pin_pwr\uff08\u80cc\u5149\uff09\u4e3a\u53ef\u9009\u9879,\u53ef\u4e0d\u8bbe\u7f6e
    port\uff1aspi\u7aef\u53e3,\u4f8b\u59820,1,2...\u5982\u679c\u4e3adevice\u65b9\u5f0f\u5219\u4e3a\"device\"
    pin_dc\uff1alcd\u6570\u636e/\u547d\u4ee4\u9009\u62e9\u5f15\u811a
    pin_rst\uff1alcd\u590d\u4f4d\u5f15\u811a
    pin_pwr\uff1alcd\u80cc\u5149\u5f15\u811a \u53ef\u9009\u9879,\u53ef\u4e0d\u8bbe\u7f6e
    direction\uff1alcd\u5c4f\u5e55\u65b9\u5411 0:0\u00b0 1:180\u00b0 2:270\u00b0 3:90\u00b0
    w\uff1alcd \u6c34\u5e73\u5206\u8fa8\u7387
    h\uff1alcd \u7ad6\u76f4\u5206\u8fa8\u7387
    xoffset\uff1ax\u504f\u79fb(\u4e0d\u540c\u5c4f\u5e55ic \u4e0d\u540c\u5c4f\u5e55\u65b9\u5411\u4f1a\u6709\u5dee\u5f02)
    yoffset\uff1ay\u504f\u79fb(\u4e0d\u540c\u5c4f\u5e55ic \u4e0d\u540c\u5c4f\u5e55\u65b9\u5411\u4f1a\u6709\u5dee\u5f02)\nuserdata spi\u8bbe\u5907,\u5f53port = \"device\"\u65f6\u6709\u6548\n\u4f8b\u5b50\uff1a\n-- \u521d\u59cb\u5316spi0\u7684st7735s \u6ce8\u610f:lcd\u521d\u59cb\u5316\u4e4b\u524d\u9700\u8981\u5148\u521d\u59cb\u5316spi\nspi_lcd = spi.deviceSetup(0,20,0,0,8,2000000,spi.MSB,1,1)\nlog.info(\"lcd.init\",\nlcd.init(\"st7735s\",{port = \"device\",pin_dc = 17, pin_pwr = 7,pin_rst = 19,direction = 2,w = 160,h = 80,xoffset = 1,yoffset = 26},spi_lcd))\n", "prefix": "lcd.init"}, "lcd.close": {"body": "lcd.close()", "description": "lcd.close() - \u5173\u95edlcd\u663e\u793a\u5c4f\n\u4f8b\u5b50\uff1a\n-- \u5173\u95edlcd\nlcd.close()\n", "prefix": "lcd.close"}, "lcd.on": {"body": "lcd.on()", "description": "lcd.on() - \u5f00\u542flcd\u663e\u793a\u5c4f\u80cc\u5149\n\u4f8b\u5b50\uff1a\n-- \u5f00\u542flcd\u663e\u793a\u5c4f\u80cc\u5149\nlcd.on()\n", "prefix": "lcd.on"}, "lcd.off": {"body": "lcd.off()", "description": "lcd.off() - \u5173\u95edlcd\u663e\u793a\u5c4f\u80cc\u5149\n\u4f8b\u5b50\uff1a\n-- \u5173\u95edlcd\u663e\u793a\u5c4f\u80cc\u5149\nlcd.off()\n", "prefix": "lcd.off"}, "lcd.sleep": {"body": "lcd.sleep()", "description": "lcd.sleep() - lcd\u7761\u7720\n\u4f8b\u5b50\uff1a\n-- lcd\u7761\u7720\nlcd.sleep()\n", "prefix": "lcd.sleep"}, "lcd.wakeup": {"body": "lcd.wakeup()", "description": "lcd.wakeup() - lcd\u5524\u9192\n\u4f8b\u5b50\uff1a\n-- lcd\u5524\u9192\nlcd.wakeup()\n", "prefix": "lcd.wakeup"}, "lcd.invon": {"body": "lcd.invon()", "description": "lcd.invon() - lcd\u53cd\u663e\n\u4f8b\u5b50\uff1a\n-- lcd\u53cd\u663e\nlcd.invon()\n", "prefix": "lcd.invon"}, "lcd.invoff": {"body": "lcd.invoff()", "description": "lcd.invoff() - lcd\u53cd\u663e\u5173\u95ed\n\u4f8b\u5b50\uff1a\n-- lcd\u53cd\u663e\u5173\u95ed\nlcd.invoff()\n", "prefix": "lcd.invoff"}, "lcd.cmd": {"body": "lcd.cmd(${1:cmd})", "description": "lcd.cmd(cmd) - lcd\u547d\u4ee4\n\u4f20\u5165\u503c\uff1a\nint cmd\n\u4f8b\u5b50\uff1a\n-- lcd\u547d\u4ee4\nlcd.cmd(0x21)\n", "prefix": "lcd.cmd"}, "lcd.data": {"body": "lcd.data(${1:data})", "description": "lcd.data(data) - lcd\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nint data\n\u4f8b\u5b50\uff1a\n-- lcd\u6570\u636e\nlcd.data(0x21)\n", "prefix": "lcd.data"}, "lcd.setColor": {"body": "lcd.setColor(${1:back},${2:fore})", "description": "lcd.setColor(back,fore) - lcd\u989c\u8272\u8bbe\u7f6e\n\u4f20\u5165\u503c\uff1a\nint \u80cc\u666f\u8272\nint \u524d\u666f\u8272\n\u4f8b\u5b50\uff1a\n-- lcd\u989c\u8272\u8bbe\u7f6e\nlcd.setColor(0xFFFF,0x0000)\n", "prefix": "lcd.setColor"}, "lcd.draw": {"body": "lcd.draw(${1:x1},${2:y1},${3:x2},${4:y2},${5:color})", "description": "lcd.draw(x1, y1, x2, y2,color) - lcd\u989c\u8272\u586b\u5145\n\u4f20\u5165\u503c\uff1a\nint \u5de6\u4e0a\u8fb9\u7f18\u7684X\u4f4d\u7f6e.\nint \u5de6\u4e0a\u8fb9\u7f18\u7684Y\u4f4d\u7f6e.\nint \u53f3\u4e0b\u8fb9\u7f18\u7684X\u4f4d\u7f6e.\nint \u53f3\u4e0b\u8fb9\u7f18\u7684Y\u4f4d\u7f6e.\nstring \u5b57\u7b26\u4e32\u6216zbuff\u5bf9\u8c61\n\u4f8b\u5b50\uff1a\n-- lcd\u989c\u8272\u586b\u5145\nlocal buff = zbuff.create({201,1,16},0x001F)\nlcd.draw(20,30,220,30,buff)\n", "prefix": "lcd.draw"}, "lcd.clear": {"body": "lcd.clear(${1:color})", "description": "lcd.clear(color) - lcd\u6e05\u5c4f\n\u4f20\u5165\u503c\uff1a\nint \u5c4f\u5e55\u989c\u8272 \u53ef\u9009\u53c2\u6570,\u9ed8\u8ba4\u80cc\u666f\u8272\n\u4f8b\u5b50\uff1a\n-- lcd\u6e05\u5c4f\nlcd.clear()\n", "prefix": "lcd.clear"}, "lcd.fill": {"body": "lcd.fill(${1:x1},${2:y1},${3:x2},${4:y2},${5:color})", "description": "lcd.fill(x1, y1, x2, y2,color) - lcd\u989c\u8272\u586b\u5145\n\u4f20\u5165\u503c\uff1a\nint \u5de6\u4e0a\u8fb9\u7f18\u7684X\u4f4d\u7f6e.\nint \u5de6\u4e0a\u8fb9\u7f18\u7684Y\u4f4d\u7f6e.\nint \u53f3\u4e0b\u8fb9\u7f18\u7684X\u4f4d\u7f6e,\u4e0d\u542b\nint \u53f3\u4e0b\u8fb9\u7f18\u7684Y\u4f4d\u7f6e,\u4e0d\u542b\nint \u7ed8\u753b\u989c\u8272 \u53ef\u9009\u53c2\u6570,\u9ed8\u8ba4\u80cc\u666f\u8272\n\u4f8b\u5b50\uff1a\n-- lcd\u989c\u8272\u586b\u5145\nlcd.fill(20,30,220,30,0x0000)\n", "prefix": "lcd.fill"}, "lcd.drawPoint": {"body": "lcd.drawPoint(${1:x0},${2:y0},${3:color})", "description": "lcd.drawPoint(x0,y0,color) - \u753b\u4e00\u4e2a\u70b9.\n\u4f20\u5165\u503c\uff1a\nint \u70b9\u7684X\u4f4d\u7f6e.\nint \u70b9\u7684Y\u4f4d\u7f6e.\nint \u7ed8\u753b\u989c\u8272 \u53ef\u9009\u53c2\u6570,\u9ed8\u8ba4\u524d\u666f\u8272\n\u4f8b\u5b50\uff1a\nlcd.drawPoint(20,30,0x001F)\n", "prefix": "lcd.drawPoint"}, "lcd.drawLine": {"body": "lcd.drawLine(${1:x0},${2:y0},${3:x1},${4:y1},${5:color})", "description": "lcd.drawLine(x0,y0,x1,y1,color) - \u5728\u4e24\u70b9\u4e4b\u95f4\u753b\u4e00\u6761\u7ebf.\n\u4f20\u5165\u503c\uff1a\nint \u7b2c\u4e00\u4e2a\u70b9\u7684X\u4f4d\u7f6e.\nint \u7b2c\u4e00\u4e2a\u70b9\u7684Y\u4f4d\u7f6e.\nint \u7b2c\u4e8c\u4e2a\u70b9\u7684X\u4f4d\u7f6e.\nint \u7b2c\u4e8c\u4e2a\u70b9\u7684Y\u4f4d\u7f6e.\nint \u7ed8\u753b\u989c\u8272 \u53ef\u9009\u53c2\u6570,\u9ed8\u8ba4\u524d\u666f\u8272\n\u4f8b\u5b50\uff1a\nlcd.drawLine(20,30,220,30,0x001F)\n", "prefix": "lcd.drawLine"}, "lcd.drawRectangle": {"body": "lcd.drawRectangle(${1:x0},${2:y0},${3:x1},${4:y1},${5:color})", "description": "lcd.drawRectangle(x0,y0,x1,y1,color) - \u4ecex / y\u4f4d\u7f6e\uff08\u5de6\u4e0a\u8fb9\u7f18\uff09\u5f00\u59cb\u7ed8\u5236\u4e00\u4e2a\u6846\n\u4f20\u5165\u503c\uff1a\nint \u5de6\u4e0a\u8fb9\u7f18\u7684X\u4f4d\u7f6e.\nint \u5de6\u4e0a\u8fb9\u7f18\u7684Y\u4f4d\u7f6e.\nint \u53f3\u4e0b\u8fb9\u7f18\u7684X\u4f4d\u7f6e.\nint \u53f3\u4e0b\u8fb9\u7f18\u7684Y\u4f4d\u7f6e.\nint \u7ed8\u753b\u989c\u8272 \u53ef\u9009\u53c2\u6570,\u9ed8\u8ba4\u524d\u666f\u8272\n\u4f8b\u5b50\uff1a\nlcd.drawRectangle(20,40,220,80,0x001F)\n", "prefix": "lcd.drawRectangle"}, "lcd.drawCircle": {"body": "lcd.drawCircle(${1:x0},${2:y0},${3:r},${4:color})", "description": "lcd.drawCircle(x0,y0,r,color) - \u4ecex / y\u4f4d\u7f6e\uff08\u5706\u5fc3\uff09\u5f00\u59cb\u7ed8\u5236\u4e00\u4e2a\u5706\n\u4f20\u5165\u503c\uff1a\nint \u5706\u5fc3\u7684X\u4f4d\u7f6e.\nint \u5706\u5fc3\u7684Y\u4f4d\u7f6e.\nint \u534a\u5f84.\nint \u7ed8\u753b\u989c\u8272 \u53ef\u9009\u53c2\u6570,\u9ed8\u8ba4\u524d\u666f\u8272\n\u4f8b\u5b50\uff1a\nlcd.drawCircle(120,120,20,0x001F)\n", "prefix": "lcd.drawCircle"}, "lcd.drawQrcode": {"body": "lcd.drawQrcode(${1:x},${2:y},${3:str},${4:size})", "description": "lcd.drawQrcode(x, y, str, size) - \u7f13\u51b2\u533a\u7ed8\u5236QRCode\n\u4f20\u5165\u503c\uff1a\nint x\u5750\u6807\nint y\u5750\u6807\nstring \u4e8c\u7ef4\u7801\u7684\u5185\u5bb9\nint \u663e\u793a\u5927\u5c0f (\u6ce8\u610f:\u4e8c\u7ef4\u7801\u751f\u6210\u5927\u5c0f\u4e0e\u8981\u663e\u793a\u5185\u5bb9\u548c\u7ea0\u9519\u7b49\u7ea7\u6709\u5173,\u751f\u6210\u7248\u672c\u4e3a1-40(\u5bf9\u5e94 21x21 - 177x177)\u7684\u4e0d\u5b9a\u5927\u5c0f,\u5982\u679c\u548c\u8bbe\u7f6e\u5927\u5c0f\u4e0d\u540c\u4f1a\u81ea\u52a8\u5728\u6307\u5b9a\u7684\u533a\u57df\u4e2d\u95f4\u663e\u793a\u4e8c\u7ef4\u7801,\u5982\u4e8c\u7ef4\u7801\u672a\u663e\u793a\u8bf7\u67e5\u770b\u65e5\u5fd7\u63d0\u793a)\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n", "prefix": "lcd.drawQrcode"}, "lcd.setFont": {"body": "lcd.setFont(${1:font})", "description": "lcd.setFont(font) - \u8bbe\u7f6e\u5b57\u4f53\n\u4f20\u5165\u503c\uff1a\nint font lcd.font_XXX \u8bf7\u67e5\u9605\u5e38\u91cf\u8868\n\u4f8b\u5b50\uff1a\n-- \u8bbe\u7f6e\u4e3a\u5b57\u4f53,\u5bf9\u4e4b\u540e\u7684drawStr\u6709\u6548,\u8c03\u7528lcd.drawStr\u524d\u4e00\u5b9a\u8981\u5148\u8bbe\u7f6e\n\n-- \u82e5\u63d0\u793a \"only font pointer is allow\" , \u5219\u4ee3\u8868\u5f53\u524d\u56fa\u4ef6\u4e0d\u542b\u5bf9\u5e94\u5b57\u4f53, \u53ef\u4f7f\u7528\u4e91\u7f16\u8bd1\u670d\u52a1\u514d\u8d39\u5b9a\u5236\n-- \u4e91\u7f16\u8bd1\u6587\u6863: https://wiki.luatos.com/develop/compile/Cloud_compilation.html\n\n-- lcd\u5e93\u7684\u9ed8\u8ba4\u5b57\u4f53\u5747\u4ee5 lcd.font_ \u5f00\u5934\nlcd.setFont(lcd.font_opposansm12)\nlcd.drawStr(40,10,\"drawStr\")\nsys.wait(2000)\nlcd.setFont(lcd.font_opposansm12_chinese) -- \u5177\u4f53\u53d6\u503c\u53ef\u53c2\u8003api\u6587\u6863\u7684\u5e38\u91cf\u8868\nlcd.drawStr(40,40,\"drawStr\u6d4b\u8bd5\")\n", "prefix": "lcd.setFont"}, "lcd.drawStr": {"body": "lcd.drawStr(${1:x},${2:y},${3:str},${4:fg_color})", "description": "lcd.drawStr(x,y,str,fg_color) - \u663e\u793a\u5b57\u7b26\u4e32\n\u4f20\u5165\u503c\uff1a\nint x \u6a2a\u5750\u6807\nint y \u7ad6\u5750\u6807 \u6ce8\u610f:\u6b64(x,y)\u4e3a\u5de6\u4e0b\u8d77\u59cb\u5750\u6807\nstring str \u6587\u4ef6\u5185\u5bb9\nint fg_color str\u989c\u8272 \u6ce8\u610f:\u6b64\u53c2\u6570\u53ef\u9009\uff0c\u5982\u4e0d\u586b\u5199\u5219\u4f7f\u7528\u4e4b\u524d\u8bbe\u7f6e\u7684\u989c\u8272\uff0c\u7ed8\u5236\u53ea\u4f1a\u7ed8\u5236\u5b57\u4f53\u90e8\u5206\uff0c\u80cc\u666f\u9700\u8981\u81ea\u5df1\u6e05\u9664\n\u4f8b\u5b50\uff1a\n-- \u663e\u793a\u4e4b\u524d\u5148\u8bbe\u7f6e\u4e3a\u4e2d\u6587\u5b57\u4f53,\u5bf9\u4e4b\u540e\u7684drawStr\u6709\u6548\nlcd.setFont(lcd.font_opposansm12)\nlcd.drawStr(40,10,\"drawStr\")\nsys.wait(2000)\nlcd.setFont(lcd.font_opposansm16_chinese)\nlcd.drawStr(40,40,\"drawStr\u6d4b\u8bd5\")\n", "prefix": "lcd.drawStr"}, "lcd.drawGtfontGb2312": {"body": "lcd.drawGtfontGb2312(${1:str},${2:size},${3:x},${4:y})", "description": "lcd.drawGtfontGb2312(str,size,x,y) - \u4f7f\u7528gtfont\u663e\u793agb2312\u5b57\u7b26\u4e32\n\u4f20\u5165\u503c\uff1a\nstring str \u663e\u793a\u5b57\u7b26\u4e32\nint size \u5b57\u4f53\u5927\u5c0f (\u652f\u630116-192\u53f7\u5927\u5c0f\u5b57\u4f53)\nint x \u6a2a\u5750\u6807\nint y \u7ad6\u5750\u6807\n\u4f8b\u5b50\uff1a\n-- \u6ce8\u610f, gtfont\u662f\u989d\u5916\u7684\u5b57\u4f53\u82af\u7247\u786c\u4ef6, \u9700\u8981\u5916\u6302\u5728SPI\u603b\u7ebf\u624d\u80fd\u8c03\u7528\u672c\u51fd\u6570\u7684\nlcd.drawGtfontGb2312(\"\u554a\u554a\u554a\",32,0,0)\n", "prefix": "lcd.drawGtfontGb2312"}, "lcd.drawGtfontGb2312Gray": {"body": "lcd.drawGtfontGb2312Gray(${1:str},${2:size},${3:gray},${4:x},${5:y})", "description": "lcd.drawGtfontGb2312Gray(str,size,gray,x,y) - \u4f7f\u7528gtfont\u7070\u5ea6\u663e\u793agb2312\u5b57\u7b26\u4e32\n\u4f20\u5165\u503c\uff1a\nstring str \u663e\u793a\u5b57\u7b26\u4e32\nint size \u5b57\u4f53\u5927\u5c0f (\u652f\u630116-192\u53f7\u5927\u5c0f\u5b57\u4f53)\nint gray \u7070\u5ea6[1\u9636/2\u9636/3\u9636/4\u9636]\nint x \u6a2a\u5750\u6807\nint y \u7ad6\u5750\u6807\n\u4f8b\u5b50\uff1a\n-- \u6ce8\u610f, gtfont\u662f\u989d\u5916\u7684\u5b57\u4f53\u82af\u7247\u786c\u4ef6, \u9700\u8981\u5916\u6302\u5728SPI\u603b\u7ebf\u624d\u80fd\u8c03\u7528\u672c\u51fd\u6570\u7684\nlcd.drawGtfontGb2312Gray(\"\u554a\u554a\u554a\",32,4,0,40)\n", "prefix": "lcd.drawGtfontGb2312Gray"}, "lcd.drawGtfontUtf8": {"body": "lcd.drawGtfontUtf8(${1:str},${2:size},${3:x},${4:y})", "description": "lcd.drawGtfontUtf8(str,size,x,y) - \u4f7f\u7528gtfont\u663e\u793aUTF8\u5b57\u7b26\u4e32\n\u4f20\u5165\u503c\uff1a\nstring str \u663e\u793a\u5b57\u7b26\u4e32\nint size \u5b57\u4f53\u5927\u5c0f (\u652f\u630116-192\u53f7\u5927\u5c0f\u5b57\u4f53)\nint x \u6a2a\u5750\u6807\nint y \u7ad6\u5750\u6807\n\u4f8b\u5b50\uff1a\nlcd.drawGtfontUtf8(\"\u554a\u554a\u554a\",32,0,0)\n", "prefix": "lcd.drawGtfontUtf8"}, "lcd.drawGtfontUtf8Gray": {"body": "lcd.drawGtfontUtf8Gray(${1:str},${2:size},${3:gray},${4:x},${5:y})", "description": "lcd.drawGtfontUtf8Gray(str,size,gray,x,y) - \u4f7f\u7528gtfont\u7070\u5ea6\u663e\u793aUTF8\u5b57\u7b26\u4e32\n\u4f20\u5165\u503c\uff1a\nstring str \u663e\u793a\u5b57\u7b26\u4e32\nint size \u5b57\u4f53\u5927\u5c0f (\u652f\u630116-192\u53f7\u5927\u5c0f\u5b57\u4f53)\nint gray \u7070\u5ea6[1\u9636/2\u9636/3\u9636/4\u9636]\nint x \u6a2a\u5750\u6807\nint y \u7ad6\u5750\u6807\n\u4f8b\u5b50\uff1a\nlcd.drawGtfontUtf8Gray(\"\u554a\u554a\u554a\",32,4,0,40)\n", "prefix": "lcd.drawGtfontUtf8Gray"}, "lcd.getSize": {"body": "lcd.getSize()", "description": "lcd.getSize() - \u83b7\u53d6\u5c4f\u5e55\u5c3a\u5bf8\n\u8fd4\u56de\u503c\uff1a\nint \u5bbd, \u5982\u679c\u672a\u521d\u59cb\u5316\u4f1a\u8fd4\u56de0\nint \u9ad8, \u5982\u679c\u672a\u521d\u59cb\u5316\u4f1a\u8fd4\u56de0\n\u4f8b\u5b50\uff1a\nlog.info(\"lcd\", \"size\", lcd.getSize())\n", "prefix": "lcd.getSize"}, "lcd.drawXbm": {"body": "lcd.drawXbm(${1:x},${2:y},${3:w},${4:h},${5:data})", "description": "lcd.drawXbm(x, y, w, h, data) - \u7ed8\u5236\u4f4d\u56fe\n\u4f20\u5165\u503c\uff1a\nint X\u5750\u6807\nint y\u5750\u6807\nint \u4f4d\u56fe\u5bbd\nint \u4f4d\u56fe\u9ad8\nint \u4f4d\u56fe\u6570\u636e,\u6bcf\u4e00\u4f4d\u4ee3\u8868\u4e00\u4e2a\u50cf\u7d20\n\u4f8b\u5b50\uff1a\n-- \u53d6\u6a21\u4f7f\u7528PCtoLCD2002\u8f6f\u4ef6\u5373\u53ef \u9634\u7801 \u9010\u884c \u9006\u5411\n-- \u5728(0,0)\u4e3a\u5de6\u4e0a\u89d2,\u7ed8\u5236 16x16 \"\u4eca\" \u7684\u4f4d\u56fe\nlcd.drawXbm(0, 0, 16,16, string.char(\n 0x80,0x00,0x80,0x00,0x40,0x01,0x20,0x02,0x10,0x04,0x48,0x08,0x84,0x10,0x83,0x60,\n 0x00,0x00,0xF8,0x0F,0x00,0x08,0x00,0x04,0x00,0x04,0x00,0x02,0x00,0x01,0x80,0x00\n))\n", "prefix": "lcd.drawXbm"}, "lcd.showImage": {"body": "lcd.showImage(${1:x},${2:y},${3:file})", "description": "lcd.showImage(x, y, file) - \u663e\u793a\u56fe\u7247,\u5f53\u524d\u53ea\u652f\u6301jpg,jpeg\n\u4f20\u5165\u503c\uff1a\nint X\u5750\u6807\nint y\u5750\u6807\nstring \u6587\u4ef6\u8def\u5f84\n\u4f8b\u5b50\uff1a\nlcd.showImage(0,0,\"/luadb/logo.jpg\")\n", "prefix": "lcd.showImage"}, "lcd.flush": {"body": "lcd.flush()", "description": "lcd.flush() - \u4e3b\u52a8\u5237\u65b0\u6570\u636e\u5230\u754c\u9762, \u4ec5\u8bbe\u7f6ebuff\u4e14\u7981\u7528\u81ea\u52a8\u5c5e\u6027\u540e\u4f7f\u7528\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue, \u5426\u5219\u8fd4\u56denil/false\n", "prefix": "lcd.flush"}, "lcd.setupBuff": {"body": "lcd.setupBuff(${1:conf},${2:onheap})", "description": "lcd.setupBuff(conf, onheap) - \u8bbe\u7f6e\u663e\u793a\u7f13\u51b2\u533a, \u6240\u9700\u5185\u5b58\u5927\u5c0f\u4e3a 2\u00d7\u5bbd\u00d7\u9ad8 \u5b57\u8282. \u8bf7\u8861\u91cf\u5185\u5b58\u9700\u6c42\u4e0e\u4e1a\u52a1\u6240\u9700\u7684\u5237\u65b0\u9891\u6b21.\n\u4f20\u5165\u503c\uff1a\nuserdata conf\u6307\u9488, \u4e0d\u9700\u8981\u4f20\nbool true\u4f7f\u7528heap\u5185\u5b58, false\u4f7f\u7528vm\u5185\u5b58, \u9ed8\u8ba4\u4f7f\u7528vm\u5185\u5b58, \u4e0d\u9700\u8981\u4e3b\u52a8\u4f20\n\u8fd4\u56de\u503c\uff1a\nbool \u662f\u5426\u6210\u529f\n\u4f8b\u5b50\uff1a\n-- \u521d\u59cb\u5316lcd\u7684buff\u7f13\u51b2\u533a, \u53ef\u7406\u89e3\u4e3aFrameBuffer\u533a\u57df.\nlcd.setupBuff()\n", "prefix": "lcd.setupBuff"}, "lcd.autoFlush": {"body": "lcd.autoFlush(${1:enable})", "description": "lcd.autoFlush(enable) - \u8bbe\u7f6e\u81ea\u52a8\u5237\u65b0, \u9700\u914d\u5408lcd.setupBuff\u4f7f\u7528\n\u4f20\u5165\u503c\uff1a\nbool \u662f\u5426\u81ea\u52a8\u5237\u65b0,\u9ed8\u8ba4\u4e3atrue\n\u4f8b\u5b50\uff1a\n-- \u8bbe\u7f6ebuff \u5e76\u7981\u7528\u81ea\u52a8\u66f4\u65b0\nlcd.setupBuff()\nlcd.autoFlush(false)\n-- \u7981\u6b62\u81ea\u52a8\u66f4\u65b0\u540e, \u9700\u8981\u4f7f\u7528 lcd.flush() \u4e3b\u52a8\u5237\u65b0\u6570\u636e\u5230\u5c4f\u5e55\n", "prefix": "lcd.autoFlush"}, "lcd.rgb565": {"body": "lcd.rgb565(${1:r},${2:g},${3:b},${4:swap})", "description": "lcd.rgb565(r, g, b, swap) - RGB565\u989c\u8272\u751f\u6210\n\u4f20\u5165\u503c\uff1a\nint \u7ea2\u8272, 0x00 ~ 0xFF\nint \u7eff\u8272, 0x00 ~ 0xFF\nint \u84dd\u8272, 0x00 ~ 0xFF\nbool \u662f\u5426\u7ffb\u8f6c, true \u7ffb\u8f6c, false \u4e0d\u7ffb\u8f6c. \u9ed8\u8ba4\u7ffb\u8f6c\n\u8fd4\u56de\u503c\uff1a\nint \u989c\u8272\u503c\n\u4f8b\u5b50\uff1a\n-- \u672cAPI\u652f\u6301\u591a\u79cd\u6a21\u5f0f, \u53c2\u6570\u6570\u91cf\u5206\u522b\u662f 1, 2, 3, 4\n-- 1. \u5355\u53c2\u6570\u5f62\u5f0f, 24bit RGB\u503c, swap = true, \u63a8\u8350\nlocal red = lcd.rgb565(0xFF0000)\nlocal green = lcd.rgb565(0x00FF00)\nlocal blue = lcd.rgb565(0x0000FF)\n\n-- 2. \u4e24\u53c2\u6570\u5f62\u5f0f, 24bit RGB\u503c, \u589e\u52a0swap\u7684\u8bbe\u7f6e\nlocal red = lcd.rgb565(0xFF0000, true)\nlocal green = lcd.rgb565(0x00FF00, true)\nlocal blue = lcd.rgb565(0x0000FF, true)\n\n-- 3. \u4e09\u53c2\u6570\u5f62\u5f0f, \u7ea2/\u7eff/\u84dd, \u54048bit\nlocal red = lcd.rgb565(0xFF, 0x00, 0x00)\nlocal green = lcd.rgb565(0x00, 0xFF, 0x00)\nlocal blue = lcd.rgb565(0x00, 0x00, 0xFF)\n\n-- 4. \u56db\u53c2\u6570\u5f62\u5f0f, \u7ea2/\u7eff/\u84dd, \u54048bit, \u589e\u52a0swap\u7684\u8bbe\u7f6e\nlocal red = lcd.rgb565(0xFF, 0x00, 0x00, true)\nlocal green = lcd.rgb565(0x00, 0xFF, 0x00, true)\nlocal blue = lcd.rgb565(0x00, 0x00, 0xFF, true)\n", "prefix": "lcd.rgb565"}, "lcdseg.setup": {"body": "lcdseg.setup(${1:bias},${2:duty},${3:vlcd},${4:com_number},${5:fresh_rate},${6:com_mark},${7:seg_mark})", "description": "lcdseg.setup(bias, duty, vlcd, com_number, fresh_rate, com_mark, seg_mark) - \u521d\u59cb\u5316lcdseg\u5e93\n\u4f20\u5165\u503c\uff1a\nint bias\u503c,\u901a\u5e38\u4e3a 1/3 bias, \u5bf9\u5e94 lcdseg.BIAS_ONETHIRD\nint duty\u503c,\u901a\u5e38\u4e3a 1/4 duty, \u5bf9\u5e94 lcdseg.DUTY_ONEFOURTH\nint \u7535\u538b, \u5355\u4f4d100mV, \u4f8b\u59822.7v\u519927. air103\u652f\u6301\u7684\u503c\u6709 27/29/31/33\nint COM\u811a\u7684\u6570\u91cf, \u53d6\u51b3\u4e8e\u5177\u4f53\u6a21\u5757, air103\u652f\u63011-4\nint \u5237\u65b0\u7387,\u901a\u5e38\u4e3a60, \u5bf9\u5e9460HZ\nint COM\u542f\u7528\u4e0e\u5426\u7684\u63a9\u7801, \u9ed8\u8ba4\u4e3a0xFF,\u5168\u90e8\u542f\u7528.\u82e5\u53ea\u542f\u7528COM0/COM1, \u52190x03\nint seg\u542f\u7528\u4e0e\u5426\u7684\u63a9\u7801, \u9ed8\u8ba4\u4e3a0xFFFFFFFF,\u5373\u5168\u90e8\u542f\u7528. \u82e5\u53ea\u542f\u7528\u524d16\u4e2a, 0xFFFF\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- \u521d\u59cb\u5316lcdseg\nif lcdseg.setup(lcdseg.BIAS_ONETHIRD, lcdseg.DUTY_ONEFOURTH, 33, 4, 60) then\n lcdseg.enable(1)\n\n lcdseg.seg_set(0, 1, 1)\n lcdseg.seg_set(2, 0, 1)\n lcdseg.seg_set(3, 31, 1)\nend\n", "prefix": "lcdseg.setup"}, "lcdseg.enable": {"body": "lcdseg.enable(${1:en})", "description": "lcdseg.enable(en) - \u542f\u7528\u6216\u7981\u7528lcdseg\u5e93\n\u4f20\u5165\u503c\uff1a\nint 1\u542f\u7528,0\u7981\u7528\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u4e0e\u5426\n", "prefix": "lcdseg.enable"}, "lcdseg.power": {"body": "lcdseg.power(${1:en})", "description": "lcdseg.power(en) - \u542f\u7528\u6216\u7981\u7528lcdseg\u7684\u8f93\u51fa\n\u4f20\u5165\u503c\uff1a\nint 1\u542f\u7528,0\u7981\u7528\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u4e0e\u5426\n", "prefix": "lcdseg.power"}, "lcdseg.seg_set": {"body": "lcdseg.seg_set(${1:com},${2:seg},${3:en})", "description": "lcdseg.seg_set(com, seg, en) - \u8bbe\u7f6e\u5177\u4f53\u4e00\u4e2a\u6bb5\u7801\u7684\u72b6\u6001\n\u4f20\u5165\u503c\uff1a\nint COM\u53f7\nint seg\u53f7 \u8981\u66f4\u6539\u7684\u5b57\u6bb5\u7684\u4f4d\u7d22\u5f15\nint 1\u542f\u7528,0\u7981\u7528\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u4e0e\u5426\n", "prefix": "lcdseg.seg_set"}, "libcoap.new": {"body": "libcoap.new(${1:code},${2:uri},${3:headers},${4:payload})", "description": "libcoap.new(code, uri, headers, payload) - \u521b\u5efa\u4e00\u4e2acoap\u6570\u636e\u5305\n\u4f20\u5165\u503c\uff1a\nint coap\u7684code, \u4f8b\u5982libcoap.GET/libcoap.POST/libcoap.PUT/libcoap.DELETE\nstring \u76ee\u6807URI,\u5fc5\u987b\u586b\u5199, \u4e0d\u9700\u8981\u52a0\u4e0a/\u5f00\u5934\ntable \u8bf7\u6c42\u5934,\u7c7b\u4f3c\u4e8ehttp\u7684headers,\u53ef\u9009\nstring \u8bf7\u6c42\u4f53,\u7c7b\u4f3c\u4e8ehttp\u7684body,\u53ef\u9009\n\u8fd4\u56de\u503c\uff1a\nuserdata coap\u6570\u636e\u5305\n\u4f8b\u5b50\uff1a\n-- \u521b\u5efa\u4e00\u4e2a\u8bf7\u6c42\u670d\u52a1\u5668time\u7684\u6570\u636e\u5305\nlocal coapdata = libcoap.new(libcoap.GET, \"time\")\nlocal data = coapdata:rawdata()\n", "prefix": "libcoap.new"}, "libcoap.parse": {"body": "libcoap.parse(${1:str})", "description": "libcoap.parse(str) - \u89e3\u6790coap\u6570\u636e\u5305\n\u4f20\u5165\u503c\uff1a\nstring coap\u6570\u636e\u5305\n\u8fd4\u56de\u503c\uff1a\nuserdata coap\u6570\u636e\u5305,\u5982\u679c\u89e3\u6790\u5931\u8d25\u4f1a\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\n-- \u89e3\u6790\u670d\u52a1\u5668\u4f20\u5165\u7684\u6570\u636e\u5305\nlocal coapdata = libcoap.parse(indata)\nlog.info(\"coapdata\", coapdata:hcode(), coapdata:data())\n", "prefix": "libcoap.parse"}, "coapdata:msgid": {"body": "coapdata:msgid()", "description": "coapdata:msgid() - \u83b7\u53d6coap\u6570\u636e\u5305\u7684msgid\n\u8fd4\u56de\u503c\uff1a\nint coap\u6570\u636e\u5305\u7684msgid\n\u4f8b\u5b50\uff1a\n-- \u89e3\u6790\u670d\u52a1\u5668\u4f20\u5165\u7684\u6570\u636e\u5305\nlocal coapdata = libcoap.parse(indata)\nlog.info(\"coapdata\", coapdata:msgid())\n", "prefix": "coapdata:msgid"}, "coapdata:token": {"body": "coapdata:token()", "description": "coapdata:token() - \u83b7\u53d6coap\u6570\u636e\u5305\u7684token\n\u8fd4\u56de\u503c\uff1a\nstring coap\u6570\u636e\u5305\u7684token\n\u4f8b\u5b50\uff1a\n-- \u89e3\u6790\u670d\u52a1\u5668\u4f20\u5165\u7684\u6570\u636e\u5305\nlocal coapdata = libcoap.parse(indata)\nlog.info(\"coapdata\", coapdata:token())\n", "prefix": "coapdata:token"}, "coapdata:rawdata": {"body": "coapdata:rawdata()", "description": "coapdata:rawdata() - \u83b7\u53d6coap\u6570\u636e\u5305\u7684\u4e8c\u8fdb\u5236\u6570\u636e,\u7528\u4e8e\u53d1\u9001\u5230\u670d\u52a1\u5668\n\u8fd4\u56de\u503c\uff1a\nstring coap\u6570\u636e\u5305\u7684\u4e8c\u8fdb\u5236\u6570\u636e\n\u4f8b\u5b50\uff1a\n-- \u89e3\u6790\u670d\u52a1\u5668\u4f20\u5165\u7684\u6570\u636e\u5305\nlocal coapdata = libcoap.new(libcoap.GET, \"time\")\nnetc:send(coapdata:rawdata())\n", "prefix": "coapdata:rawdata"}, "coapdata:code": {"body": "coapdata:code()", "description": "coapdata:code() - \u83b7\u53d6coap\u6570\u636e\u5305\u7684code\n\u8fd4\u56de\u503c\uff1a\nint coap\u6570\u636e\u5305\u7684code\n\u4f8b\u5b50\uff1a\n-- \u89e3\u6790\u670d\u52a1\u5668\u4f20\u5165\u7684\u6570\u636e\u5305\nlocal coapdata = libcoap.parse(indata)\nlog.info(\"coapdata\", coapdata:code())\n", "prefix": "coapdata:code"}, "coapdata:hcode": {"body": "coapdata:hcode()", "description": "coapdata:hcode() - \u83b7\u53d6coap\u6570\u636e\u5305\u7684http code, \u6bd4coap\u539f\u59cb\u7684code\u8981\u53cb\u597d\n\u8fd4\u56de\u503c\uff1a\nint coap\u6570\u636e\u5305\u7684http code,\u4f8b\u5982200,205,404\n\u4f8b\u5b50\uff1a\n-- \u89e3\u6790\u670d\u52a1\u5668\u4f20\u5165\u7684\u6570\u636e\u5305\nlocal coapdata = libcoap.parse(indata)\nlog.info(\"coapdata\", coapdata:hcode())\n", "prefix": "coapdata:hcode"}, "coapdata:type": {"body": "coapdata:type(${1:t})", "description": "coapdata:type(t) - \u83b7\u53d6coap\u6570\u636e\u5305\u7684type, \u4f8b\u5982libcoap.CON/NON/ACK/RST\n\u4f20\u5165\u503c\uff1a\nint \u65b0\u7684type\u503c,\u53ef\u9009\n\u8fd4\u56de\u503c\uff1a\nint coap\u6570\u636e\u5305\u7684type\n\u4f8b\u5b50\uff1a\n-- \u89e3\u6790\u670d\u52a1\u5668\u4f20\u5165\u7684\u6570\u636e\u5305\nlocal coapdata = libcoap.parse(indata)\nlog.info(\"coapdata\", coapdata:type())\n", "prefix": "coapdata:type"}, "coapdata:data": {"body": "coapdata:data()", "description": "coapdata:data() - \u83b7\u53d6coap\u6570\u636e\u5305\u7684data\n\u8fd4\u56de\u503c\uff1a\nstring coap\u6570\u636e\u5305\u7684data\n\u4f8b\u5b50\uff1a\n-- \u89e3\u6790\u670d\u52a1\u5668\u4f20\u5165\u7684\u6570\u636e\u5305\nlocal coapdata = libcoap.parse(indata)\nlog.info(\"coapdata\", coapdata:data())\n", "prefix": "coapdata:data"}, "libgnss.parse": {"body": "libgnss.parse(${1:str})", "description": "libgnss.parse(str) - \u5904\u7406nmea\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nstring \u539f\u59cbnmea\u6570\u636e\n\u4f8b\u5b50\uff1a\n-- \u89e3\u6790nmea\u6570\u636e\nlibgnss.parse(indata)\nlog.info(\"nmea\", json.encode(libgnss.getRmc(), \"11g\"))\n", "prefix": "libgnss.parse"}, "libgnss.isFix": {"body": "libgnss.isFix()", "description": "libgnss.isFix() - \u5f53\u524d\u662f\u5426\u5df2\u7ecf\u5b9a\u4f4d\u6210\u529f\n\u8fd4\u56de\u503c\uff1a\nboolean \u5b9a\u4f4d\u6210\u529f\u4e0e\u5426\n\u4f8b\u5b50\uff1a\nlog.info(\"nmea\", \"isFix\", libgnss.isFix())\n", "prefix": "libgnss.isFix"}, "libgnss.getIntLocation": {"body": "libgnss.getIntLocation()", "description": "libgnss.getIntLocation() - \u83b7\u53d6\u4f4d\u7f6e\u4fe1\u606f\n\u8fd4\u56de\u503c\uff1a\nint lat\u6570\u636e, \u683c\u5f0f\u4e3a ddddddddd\nint lng\u6570\u636e, \u683c\u5f0f\u4e3a ddddddddd\nint speed\u6570\u636e, \u5355\u4f4d\u7c73. \u4e8e2023.9.26\u4fee\u6b63\n\u4f8b\u5b50\uff1a\n-- \u5efa\u8bae\u7528libgnss.getRmc(1)\nlog.info(\"nmea\", \"loc\", libgnss.getIntLocation())\n", "prefix": "libgnss.getIntLocation"}, "libgnss.getRmc": {"body": "libgnss.getRmc(${1:data_mode})", "description": "libgnss.getRmc(data_mode) - \u83b7\u53d6\u539f\u59cbRMC\u4f4d\u7f6e\u4fe1\u606f\n\u4f20\u5165\u503c\uff1a\nint \u5750\u6807\u7c7b\u6570\u636e\u7684\u683c\u5f0f, 0-DDMM.MMM\u683c\u5f0f, 1-DDDDDDD\u683c\u5f0f, 2-DD.DDDDD\u683c\u5f0f\n\u8fd4\u56de\u503c\uff1a\ntable \u539f\u59cbrmc\u6570\u636e\n\u4f8b\u5b50\uff1a\n-- \u89e3\u6790nmea\nlog.info(\"nmea\", \"rmc\", json.encode(libgnss.getRmc(2)))\n-- \u5b9e\u4f8b\u8f93\u51fa\n--[[\n{\n \"course\":0,\n \"valid\":true, // true\u5b9a\u4f4d\u6210\u529f,false\u5b9a\u4f4d\u4e22\u5931\n \"lat\":23.4067, // \u7eac\u5ea6, \u6b63\u6570\u4e3a\u5317\u7eac, \u8d1f\u6570\u4e3a\u5357\u7eac\n \"lng\":113.231, // \u7ecf\u5ea6, \u6b63\u6570\u4e3a\u4e1c\u7ecf, \u8d1f\u6570\u4e3a\u897f\u7ecf\n \"variation\":0, // \u5730\u9762\u822a\u5411\uff0c\u5355\u4f4d\u4e3a\u5ea6\uff0c\u4ece\u5317\u5411\u8d77\u987a\u65f6\u9488\u8ba1\u7b97\n \"speed\":0 // \u5730\u9762\u901f\u5ea6, \u5355\u4f4d\u4e3a\"\u8282\"\n \"year\":2023, // \u5e74\u4efd\n \"month\":1, // \u6708\u4efd, 1-12\n \"day\":5, // \u6708\u4efd\u5929, 1-31\n \"hour\":7, // \u5c0f\u65f6,0-23\n \"min\":23, // \u5206\u949f,0-59\n \"sec\":20, // \u79d2,0-59\n}\n]]\n", "prefix": "libgnss.getRmc"}, "libgnss.getGsv": {"body": "libgnss.getGsv()", "description": "libgnss.getGsv() - \u83b7\u53d6\u539f\u59cbGSV\u4fe1\u606f\n\u8fd4\u56de\u503c\uff1a\ntable \u539f\u59cbGSV\u6570\u636e\n\u4f8b\u5b50\uff1a\n-- \u89e3\u6790nmea\nlog.info(\"nmea\", \"gsv\", json.encode(libgnss.getGsv()))\n--[[\u5b9e\u4f8b\u8f93\u51fa\n{\n \"total_sats\":24, // \u603b\u53ef\u89c1\u536b\u661f\u6570\u91cf\n \"sats\":[\n {\n \"snr\":27, // \u4fe1\u566a\u6bd4\n \"azimuth\":278, // \u65b9\u5411\u89d2\n \"elevation\":59, // \u4ef0\u89d2\n \"tp\":0, // 0 - GPS/SASS/QSZZ, 1 - BD\n \"nr\":4 // \u536b\u661f\u7f16\u53f7\n },\n // \u8fd9\u91cc\u5ffd\u7565\u4e8622\u4e2a\u536b\u661f\u7684\u4fe1\u606f\n {\n \"snr\":0,\n \"azimuth\":107,\n \"elevation\":19,\n \"tp\":1,\n \"nr\":31\n }\n ]\n}\n]]\n", "prefix": "libgnss.getGsv"}, "libgnss.getGsa": {"body": "libgnss.getGsa(${1:data_mode})", "description": "libgnss.getGsa(data_mode) - \u83b7\u53d6\u539f\u59cbGSA\u4fe1\u606f\n\u4f20\u5165\u503c\uff1a\nint \u5750\u6807\u7c7b\u6570\u636e\u7684\u683c\u5f0f, 0-DDMM.MMM\u683c\u5f0f, 1-DDDDDDD\u683c\u5f0f, 2-DD.DDDDD\u683c\u5f0f\n\u8fd4\u56de\u503c\uff1a\ntable \u539f\u59cbGSA\u6570\u636e\n\u4f8b\u5b50\uff1a\n-- \u83b7\u53d6\nlog.info(\"nmea\", \"gsa\", json.encode(libgnss.getGsa(), \"11g\"))\n-- \u793a\u4f8b\u6570\u636e\n--[[\n{\n \"sats\":[ // \u6b63\u5728\u4f7f\u7528\u7684\u536b\u661f\u7f16\u53f7\n 9,\n 6,\n 16,\n 16,\n 26,\n 21,\n 27,\n 27,\n 4,\n 36,\n 3,\n 7,\n 8,\n 194\n ],\n \"vdop\":0.03083333, // \u5782\u76f4\u7cbe\u5ea6\u56e0\u5b50\uff0c0.00 - 99.99\uff0c\u4e0d\u5b9a\u4f4d\u65f6\u503c\u4e3a 99.99\n \"pdop\":0.0455, // \u6c34\u5e73\u7cbe\u5ea6\u56e0\u5b50\uff0c0.00 - 99.99\uff0c\u4e0d\u5b9a\u4f4d\u65f6\u503c\u4e3a 99.99\n \"fix_type\":3, // \u5b9a\u4f4d\u6a21\u5f0f, 1-\u672a\u5b9a\u4f4d, 2-2D\u5b9a\u4f4d, 3-3D\u5b9a\u4f4d\n \"hdop\":0.0335 // \u4f4d\u7f6e\u7cbe\u5ea6\u56e0\u5b50\uff0c0.00 - 99.99\uff0c\u4e0d\u5b9a\u4f4d\u65f6\u503c\u4e3a 99.99\n}\n]]\n", "prefix": "libgnss.getGsa"}, "libgnss.getVtg": {"body": "libgnss.getVtg(${1:data_mode})", "description": "libgnss.getVtg(data_mode) - \u83b7\u53d6VTA\u901f\u5ea6\u4fe1\u606f\n\u4f20\u5165\u503c\uff1a\nint \u53ef\u9009, 3-\u539f\u59cb\u5b57\u7b26\u4e32, \u4e0d\u4f20\u6216\u8005\u4f20\u5176\u4ed6\u503c, \u5219\u8fd4\u56de\u6d6e\u70b9\u503c\n\u8fd4\u56de\u503c\uff1a\ntable \u539f\u59cbVTA\u6570\u636e\n\u4f8b\u5b50\uff1a\n-- \u89e3\u6790nmea\nlog.info(\"nmea\", \"vtg\", json.encode(libgnss.getVtg()))\n-- \u793a\u4f8b\n--[[\n{\n \"speed_knots\":0, // \u901f\u5ea6, \u82f1\u91cc/\u5c0f\u65f6\n \"true_track_degrees\":0, // \u771f\u5317\u65b9\u5411\u89d2\n \"magnetic_track_degrees\":0, // \u78c1\u5317\u65b9\u5411\u89d2\n \"speed_kph\":0 // \u901f\u5ea6, \u5343\u7c73/\u5c0f\u65f6\n}\n]]\n", "prefix": "libgnss.getVtg"}, "libgnss.getZda": {"body": "libgnss.getZda()", "description": "libgnss.getZda() - \u83b7\u53d6\u539f\u59cbZDA\u65f6\u95f4\u548c\u65e5\u671f\u4fe1\u606f\n\u8fd4\u56de\u503c\uff1a\ntable \u539f\u59cbzda\u6570\u636e\n\u4f8b\u5b50\uff1a\nlog.info(\"nmea\", \"zda\", json.encode(libgnss.getZda()))\n-- \u5b9e\u4f8b\u8f93\u51fa\n--[[\n{\n \"minute_offset\":0, // \u672c\u5730\u65f6\u533a\u7684\u5206\u949f, \u4e00\u822c\u56fa\u5b9a\u8f93\u51fa0\n \"hour_offset\":0, // \u672c\u5730\u65f6\u533a\u7684\u5c0f\u65f6, \u4e00\u822c\u56fa\u5b9a\u8f93\u51fa0\n \"year\":2023 // UTC \u5e74\uff0c\u56db\u4f4d\u6570\u5b57\n \"month\":1, // UTC \u6708\uff0c\u4e24\u4f4d\uff0c01 ~ 12\n \"day\":5, // UTC \u65e5\uff0c\u4e24\u4f4d\u6570\u5b57\uff0c01 ~ 31\n \"hour\":7, // \u5c0f\u65f6\n \"min\":50, // \u5206\n \"sec\":14, // \u79d2\n}\n]]\n", "prefix": "libgnss.getZda"}, "libgnss.debug": {"body": "libgnss.debug(${1:mode})", "description": "libgnss.debug(mode) - \u8bbe\u7f6e\u8c03\u8bd5\u6a21\u5f0f\n\u4f20\u5165\u503c\uff1a\nbool true\u5f00\u542f\u8c03\u8bd5,false\u5173\u95ed\u8c03\u8bd5,\u9ed8\u8ba4\u4e3afalse\n\u4f8b\u5b50\uff1a\n-- \u5f00\u542f\u8c03\u8bd5, \u4f1a\u8f93\u51faGNSS\u539f\u59cb\u6570\u636e\u5230\u65e5\u5fd7\u4e2d\nlibgnss.debug(true)\n-- \u5173\u95ed\u8c03\u8bd5\nlibgnss.debug(false)\n", "prefix": "libgnss.debug"}, "libgnss.getGga": {"body": "libgnss.getGga(${1:data_mode})", "description": "libgnss.getGga(data_mode) - \u83b7\u53d6GGA\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nint \u5750\u6807\u7c7b\u6570\u636e\u7684\u683c\u5f0f, 0-DDMM.MMM\u683c\u5f0f, 1-DDDDDDD\u683c\u5f0f, 2-DD.DDDDD\u683c\u5f0f, 3-\u539f\u59cb\u5b57\u7b26\u4e32\n\u8fd4\u56de\u503c\uff1a\ntable GGA\u6570\u636e, \u82e5\u5982\u4e0d\u5b58\u5728\u4f1a\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\nlocal gga = libgnss.getGga(2)\nif gga then\n log.info(\"GGA\", json.encode(gga, \"11g\"))\nend\n--\u5b9e\u4f8b\u8f93\u51fa\n--[[\n{\n \"dgps_age\":0, // \u5dee\u5206\u6821\u6b63\u65f6\u5ef6\uff0c\u5355\u4f4d\u4e3a\u79d2\n \"fix_quality\":1, // \u5b9a\u4f4d\u72b6\u6001\u6807\u8bc6 0 - \u65e0\u6548,1 - \u5355\u70b9\u5b9a\u4f4d,2 - \u5dee\u5206\u5b9a\u4f4d\n \"satellites_tracked\":14, // \u53c2\u4e0e\u5b9a\u4f4d\u7684\u536b\u661f\u6570\u91cf\n \"altitude\":0.255, // \u6d77\u5e73\u9762\u5206\u79bb\u5ea6, \u6216\u8005\u6210\u4e3a\u6d77\u62d4, \u5355\u4f4d\u662f\u7c73,\n \"hdop\":0.0335, // \u6c34\u5e73\u7cbe\u5ea6\u56e0\u5b50\uff0c0.00 - 99.99\uff0c\u4e0d\u5b9a\u4f4d\u65f6\u503c\u4e3a 99.99\n \"longitude\":113.231, // \u7ecf\u5ea6, \u6b63\u6570\u4e3a\u4e1c\u7ecf, \u8d1f\u6570\u4e3a\u897f\u7ecf\n \"latitude\":23.4067, // \u7eac\u5ea6, \u6b63\u6570\u4e3a\u5317\u7eac, \u8d1f\u6570\u4e3a\u5357\u7eac\n \"height\":0 // \u692d\u7403\u9ad8\uff0c\u56fa\u5b9a\u8f93\u51fa 1 \u4f4d\u5c0f\u6570\n}\n]]\n", "prefix": "libgnss.getGga"}, "libgnss.getGll": {"body": "libgnss.getGll(${1:data_mode})", "description": "libgnss.getGll(data_mode) - \u83b7\u53d6GLL\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nint \u5750\u6807\u7c7b\u6570\u636e\u7684\u683c\u5f0f, 0-DDMM.MMM\u683c\u5f0f, 1-DDDDDDD\u683c\u5f0f, 2-DD.DDDDD\u683c\u5f0f\n\u8fd4\u56de\u503c\uff1a\ntable GLL\u6570\u636e, \u82e5\u5982\u4e0d\u5b58\u5728\u4f1a\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\nlocal gll = libgnss.getGll(2)\nif gll then\n log.info(\"GLL\", json.encode(gll, \"11g\"))\nend\n-- \u5b9e\u4f8b\u6570\u636e\n--[[\n{\n \"status\":\"A\", // \u5b9a\u4f4d\u72b6\u6001, A\u6709\u6548, B\u65e0\u6548\n \"mode\":\"A\", // \u5b9a\u4f4d\u6a21\u5f0f, V\u65e0\u6548, A\u5355\u70b9\u89e3, D\u5dee\u5206\u89e3\n \"sec\":20, // \u79d2, UTC\u65f6\u95f4\u4e3a\u51c6\n \"min\":23, // \u5206\u949f, UTC\u65f6\u95f4\u4e3a\u51c6\n \"hour\":7, // \u5c0f\u65f6, UTC\u65f6\u95f4\u4e3a\u51c6\n \"longitude\":113.231, // \u7ecf\u5ea6, \u6b63\u6570\u4e3a\u4e1c\u7ecf, \u8d1f\u6570\u4e3a\u897f\u7ecf\n \"latitude\":23.4067, // \u7eac\u5ea6, \u6b63\u6570\u4e3a\u5317\u7eac, \u8d1f\u6570\u4e3a\u5357\u7eac\n \"us\":0 // \u5fae\u5999\u6570, \u901a\u5e38\u4e3a0\n}\n]]\n", "prefix": "libgnss.getGll"}, "libgnss.clear": {"body": "libgnss.clear()", "description": "libgnss.clear() - \u6e05\u9664\u5386\u53f2\u5b9a\u4f4d\u6570\u636e\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n-- \u8be5\u64cd\u4f5c\u4f1a\u6e05\u9664\u6240\u6709\u5b9a\u4f4d\u6570\u636e\n", "prefix": "libgnss.clear"}, "libgnss.bind": {"body": "libgnss.bind(${1:id},${2:next_id})", "description": "libgnss.bind(id, next_id) - \u7ed1\u5b9auart\u7aef\u53e3\u8fdb\u884cGNSS\u6570\u636e\u8bfb\u53d6\n\u4f20\u5165\u503c\uff1a\nint uart\u7aef\u53e3\u53f7\nint \u8f6c\u53d1\u5230uart\u7684id, \u4f8b\u5982\u865a\u62dfuart.VUART_0\n\u4f8b\u5b50\uff1a\n-- \u914d\u7f6e\u4e32\u53e3\u4fe1\u606f, \u901a\u5e38\u4e3a 115200 8N1\nuart.setup(2, 115200)\n-- \u7ed1\u5b9auart, \u9a6c\u4e0a\u5f00\u59cb\u89e3\u6790GNSS\u6570\u636e\nlibgnss.bind(2)\n-- \u65e0\u9700\u518d\u8c03\u7528uart.on\u7136\u540e\u8c03\u7528libgnss.parse\n-- \u5f00\u53d1\u671f\u53ef\u6253\u5f00\u8c03\u8bd5\u65e5\u5fd7\nlibgnss.debug(true)\n\n-- 2023-01-02\u4e4b\u540e\u7f16\u8bd1\u7684\u56fa\u4ef6\u6709\u6548\n-- \u4eceuart2\u8bfb\u53d6\u5e76\u89e3\u6790, \u540c\u65f6\u8f6c\u53d1\u5230\u865a\u62df\u4e32\u53e30\nlibgnss.bind(2, uart.VUART_0)\n", "prefix": "libgnss.bind"}, "libgnss.locStr": {"body": "libgnss.locStr(${1:mode})", "description": "libgnss.locStr(mode) - \u83b7\u53d6\u4f4d\u7f6e\u5b57\u7b26\u4e32\n\u4f20\u5165\u503c\uff1a\nint \u5b57\u7b26\u4e32\u6a21\u5f0f. 0- Air780EG\u6240\u9700\u7684\u683c\u5f0f\nreturn \u6307\u5b9a\u6a21\u5f0f\u7684\u5b57\u7b26\u4e32\n\u4f8b\u5b50\uff1a\n-- \u4ec5\u63a8\u8350\u5728\u5b9a\u4f4d\u6210\u529f\u540e\u8c03\u7528\n", "prefix": "libgnss.locStr"}, "libgnss.rtcAuto": {"body": "libgnss.rtcAuto(${1:enable})", "description": "libgnss.rtcAuto(enable) - \u5b9a\u4f4d\u6210\u529f\u540e\u81ea\u52a8\u8bbe\u7f6eRTC\n\u4f20\u5165\u503c\uff1a\nbool \u5f00\u542f\u4e0e\u5426, \u9ed8\u8ba4\u662ffalse\u5173\u95ed\n\u4f8b\u5b50\uff1a\n-- \u5f00\u542f\u81ea\u52a8\u8bbe\u7f6eRTC\nlibgnss.rtcAuto(true)\n", "prefix": "libgnss.rtcAuto"}, "libgnss.on": {"body": "libgnss.on(${1:tp},${2:fn})", "description": "libgnss.on(tp, fn) - \u5e95\u5c42\u4e8b\u4ef6\u56de\u8c03\n\u4f20\u5165\u503c\uff1a\nstring \u4e8b\u4ef6\u7c7b\u578b,\u5f53\u524d\u652f\u6301\"raw\"\n\u4f8b\u5b50\uff1a\n-- \u672c\u51fd\u6570\u4e00\u822c\u7528\u4e8e\u8c03\u8bd5, \u7528\u4e8e\u83b7\u53d6\u5e95\u5c42\u5b9e\u9645\u6536\u5230\u7684\u6570\u636e\nlibgnss.on(\"raw\", function(data)\n log.info(\"GNSS\", data)\nend)\n", "prefix": "libgnss.on"}, "libgnss.getTxt": {"body": "libgnss.getTxt()", "description": "libgnss.getTxt() - \u83b7\u53d6\u975e\u6807\u7684GPTXT\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nreturn GPTXT\u6240\u643a\u5e26\u7684\u5b57\u7b26\u4e32\n\u4f8b\u5b50\uff1a\n-- \u672c\u51fd\u6570\u4e8e2023.6.6 \u6dfb\u52a0\nlog.info(\"gnss\", \"txt\", libgnss.getTxt())\n\n-- \u6d4b\u8bd5\u8bed\u53e5\nlibgnss.parse(\"$GPTXT,01,01,01,ANTENNA SHORT*63\\r\\n\")\nlog.info(\"GNSS\", libgnss.getTxt())\nlibgnss.parse(\"$GPTXT,01,01,01,ANTENNA OPEN*25\\r\\n\")\nlog.info(\"GNSS\", libgnss.getTxt())\nlibgnss.parse(\"$GPTXT,01,01,01,ANTENNA OK*35\\r\\n\")\nlog.info(\"GNSS\", libgnss.getTxt())\n", "prefix": "libgnss.getTxt"}, "log.setLevel": {"body": "log.setLevel(${1:level})", "description": "log.setLevel(level) - \u8bbe\u7f6e\u65e5\u5fd7\u7ea7\u522b\n\u4f20\u5165\u503c\uff1a\nstring level \u65e5\u5fd7\u7ea7\u522b,\u53ef\u7528\u5b57\u7b26\u4e32\u6216\u6570\u503c, \u5b57\u7b26\u4e32\u4e3a(SILENT,DEBUG,INFO,WARN,ERROR,FATAL), \u6570\u503c\u4e3a(0,1,2,3,4,5)\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n-- \u8bbe\u7f6e\u65e5\u5fd7\u7ea7\u522b\u4e3aINFO\nlog.setLevel(\"INFO\")\n", "prefix": "log.setLevel"}, "log.style": {"body": "log.style(${1:val})", "description": "log.style(val) - \u8bbe\u7f6e\u65e5\u5fd7\u98ce\u683c\n\u4f20\u5165\u503c\uff1a\nint \u65e5\u5fd7\u98ce\u683c,\u9ed8\u8ba4\u4e3a0, \u4e0d\u4f20\u5c31\u662f\u83b7\u53d6\u5f53\u524d\u503c\n\u8fd4\u56de\u503c\uff1a\nint \u5f53\u524d\u7684\u65e5\u5fd7\u98ce\u683c\n\u4f8b\u5b50\uff1a\n-- \u4ee5 log.info(\"ABC\", \"DEF\", 123) \u4e3a\u4f8b, \u5047\u8bbe\u8be5\u4ee3\u7801\u4f4d\u4e8emain.lua\u768412\u884c\n-- \u9ed8\u8ba4\u65e5\u5fd70\n-- I/user.ABC DEF 123\n-- \u8c03\u8bd5\u98ce\u683c1, \u6dfb\u52a0\u989d\u5916\u7684\u8c03\u8bd5\u4fe1\u606f\n-- I/main.lua:12 ABC DEF 123\n-- \u8c03\u8bd5\u98ce\u683c2, \u6dfb\u52a0\u989d\u5916\u7684\u8c03\u8bd5\u4fe1\u606f, \u4f4d\u7f6e\u6709\u6240\u533a\u522b\n-- I/user.ABC main.lua:12 DEF 123\n\nlog.style(0) -- \u9ed8\u8ba4\u98ce\u683c0\nlog.style(1) -- \u8c03\u8bd5\u98ce\u683c1\nlog.style(2) -- \u8c03\u8bd5\u98ce\u683c2\n", "prefix": "log.style"}, "log.getLevel": {"body": "log.getLevel()", "description": "log.getLevel() - \u83b7\u53d6\u65e5\u5fd7\u7ea7\u522b\n\u8fd4\u56de\u503c\uff1a\nint \u65e5\u5fd7\u7ea7\u522b\u5bf9\u5e940,1,2,3,4,5\n\u4f8b\u5b50\uff1a\n-- \u5f97\u5230\u65e5\u5fd7\u7ea7\u522b\nlog.getLevel()\n", "prefix": "log.getLevel"}, "log.debug": {"body": "log.debug(${1:tag},${2:val},${3:val2},${4:val3},${5:...})", "description": "log.debug(tag, val, val2, val3, ...) - \u8f93\u51fa\u65e5\u5fd7,\u7ea7\u522bdebug\n\u4f20\u5165\u503c\uff1a\nstring tag \u65e5\u5fd7\u6807\u8bc6,\u5fc5\u987b\u662f\u5b57\u7b26\u4e32\n... \u9700\u6253\u5370\u7684\u53c2\u6570\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n-- \u65e5\u5fd7\u8f93\u51fa D/onenet connect ok\nlog.debug(\"onenet\", \"connect ok\")\n", "prefix": "log.debug"}, "log.info": {"body": "log.info(${1:tag},${2:val},${3:val2},${4:val3},${5:...})", "description": "log.info(tag, val, val2, val3, ...) - \u8f93\u51fa\u65e5\u5fd7,\u7ea7\u522binfo\n\u4f20\u5165\u503c\uff1a\nstring tag \u65e5\u5fd7\u6807\u8bc6,\u5fc5\u987b\u662f\u5b57\u7b26\u4e32\n... \u9700\u6253\u5370\u7684\u53c2\u6570\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n-- \u65e5\u5fd7\u8f93\u51fa I/onenet connect ok\nlog.info(\"onenet\", \"connect ok\")\n", "prefix": "log.info"}, "log.warn": {"body": "log.warn(${1:tag},${2:val},${3:val2},${4:val3},${5:...})", "description": "log.warn(tag, val, val2, val3, ...) - \u8f93\u51fa\u65e5\u5fd7,\u7ea7\u522bwarn\n\u4f20\u5165\u503c\uff1a\nstring tag \u65e5\u5fd7\u6807\u8bc6,\u5fc5\u987b\u662f\u5b57\u7b26\u4e32\n... \u9700\u6253\u5370\u7684\u53c2\u6570\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n-- \u65e5\u5fd7\u8f93\u51fa W/onenet connect ok\nlog.warn(\"onenet\", \"connect ok\")\n", "prefix": "log.warn"}, "log.error": {"body": "log.error(${1:tag},${2:val},${3:val2},${4:val3},${5:...})", "description": "log.error(tag, val, val2, val3, ...) - \u8f93\u51fa\u65e5\u5fd7,\u7ea7\u522berror\n\u4f20\u5165\u503c\uff1a\nstring tag \u65e5\u5fd7\u6807\u8bc6,\u5fc5\u987b\u662f\u5b57\u7b26\u4e32\n... \u9700\u6253\u5370\u7684\u53c2\u6570\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n-- \u65e5\u5fd7\u8f93\u51fa E/onenet connect ok\nlog.error(\"onenet\", \"connect ok\")\n", "prefix": "log.error"}, "lora.init": {"body": "lora.init(${1:ic},${2:loraconfig},${3:spiconfig})", "description": "lora.init(ic, loraconfig,spiconfig) - lora\u521d\u59cb\u5316\n\u4f20\u5165\u503c\uff1a\nstring lora \u578b\u53f7\uff0c\u5f53\u524d\u652f\u6301\uff1a
    llcc68
    sx1268\ntable lora\u914d\u7f6e\u53c2\u6570,\u4e0e\u5177\u4f53\u8bbe\u5907\u6709\u5173\n\u4f8b\u5b50\uff1a\nlora.init(\"llcc68\",\n {\n id = 0, -- SPI id\n cs = pin.PB04, -- SPI \u7247\u9009\u7684GPIO\u53f7,\u5982\u679c\u6ca1\u6709pin\u5e93,\u586bGPIO\u6570\u5b57\u7f16\u53f7\u5c31\u884c\n res = pin.PB00, -- \u590d\u4f4d\u811a\u8fde\u63a5\u7684GPIO\u53f7,\u5982\u679c\u6ca1\u6709pin\u5e93,\u586bGPIO\u6570\u5b57\u7f16\u53f7\u5c31\u884c\n busy = pin.PB01, -- \u5fd9\u68c0\u6d4b\u811a\u7684GPIO\u53f7\n dio1 = pin.PB06, -- \u6570\u636e\u8f93\u5165\u4e2d\u65ad\u811a\n lora_init = true -- \u662f\u5426\u53d1\u9001\u521d\u59cb\u5316\u547d\u4ee4. \u5982\u679c\u662f\u5524\u9192\u540e\u76f4\u63a5\u8bfb\u53d6, \u5c31\u4f20false\n }\n)\n", "prefix": "lora.init"}, "lora.set_channel": {"body": "lora.set_channel(${1:freq})", "description": "lora.set_channel(freq) - \u8bbe\u7f6e\u9891\u9053\u9891\u7387\n\u4f20\u5165\u503c\uff1a\nnumber \u9891\u7387\n\u4f8b\u5b50\uff1a\nlora.set_channel(433000000)\n", "prefix": "lora.set_channel"}, "lora.set_txconfig": {"body": "lora.set_txconfig(${1:ic},${2:txconfig})", "description": "lora.set_txconfig(ic, txconfig) - lora\u914d\u7f6e\u53d1\u9001\u53c2\u6570\n\u4f20\u5165\u503c\uff1a\nstring lora \u578b\u53f7\uff0c\u5f53\u524d\u652f\u6301\uff1a
    llcc68
    sx1268\ntable lora\u53d1\u9001\u914d\u7f6e\u53c2\u6570,\u4e0e\u5177\u4f53\u8bbe\u5907\u6709\u5173\n\u4f8b\u5b50\uff1a\nlora.set_txconfig(\"llcc68\",\n {\n mode=1,\n power=22,\n fdev=0,\n bandwidth=0,\n datarate=9,\n coderate=4,\n preambleLen=8,\n fixLen=false,\n crcOn=true,\n freqHopOn=0,\n hopPeriod=0,\n iqInverted=false,\n timeout=3000\n }\n)\n", "prefix": "lora.set_txconfig"}, "lora.set_rxconfig": {"body": "lora.set_rxconfig(${1:ic},${2:set_rxconfig})", "description": "lora.set_rxconfig(ic, set_rxconfig) - lora\u914d\u7f6e\u63a5\u6536\u53c2\u6570\n\u4f20\u5165\u503c\uff1a\nstring lora \u578b\u53f7\uff0c\u5f53\u524d\u652f\u6301\uff1a
    llcc68
    sx1268\ntable lora\u63a5\u6536\u914d\u7f6e\u53c2\u6570,\u4e0e\u5177\u4f53\u8bbe\u5907\u6709\u5173\n\u4f8b\u5b50\uff1a\nlora.set_rxconfig(\"llcc68\",\n {\n mode=1,\n bandwidth=0,\n datarate=9,\n coderate=4,\n bandwidthAfc=0,\n preambleLen=8,\n symbTimeout=0,\n fixLen=false,\n payloadLen=0,\n crcOn=true,\n freqHopOn=0,\n hopPeriod=0,\n iqInverted=false,\n rxContinuous=false\n }\n)\n", "prefix": "lora.set_rxconfig"}, "lora.send": {"body": "lora.send(${1:data})", "description": "lora.send(data) - \u53d1\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nstring \u5199\u5165\u7684\u6570\u636e\n\u4f8b\u5b50\uff1a\nlora.send(\"PING\")\n", "prefix": "lora.send"}, "lora.recv": {"body": "lora.recv(${1:timeout})", "description": "lora.recv(timeout) - \u5f00\u542f\u6536\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nnumber \u8d85\u65f6\u65f6\u95f4\uff0c\u9ed8\u8ba41000 \u5355\u4f4dms\n\u4f8b\u5b50\uff1a\nsys.subscribe(\"LORA_RX_DONE\", function(data, size)\n log.info(\"LORA_RX_DONE: \", data, size)\n lora.send(\"PING\")\nend)\n-- \u8001\u7248\u672c\u6ca1\u6709recv, \u53ef\u4ee5\u6539\u6210 lora.recive\nlora.recv(1000)\n", "prefix": "lora.recv"}, "lora.mode": {"body": "lora.mode(${1:mode})", "description": "lora.mode(mode) - \u8bbe\u7f6e\u8fdb\u5165\u6a21\u5f0f(\u4f11\u7720\uff0c\u6b63\u5e38\u7b49)\n\u4f20\u5165\u503c\uff1a\nnumber \u6a21\u5f0f \u6b63\u5e38\u6a21\u5f0f:lora.STANDBY \u4f11\u7720\u6a21\u5f0f:lora.SLEEP \u9ed8\u8ba4\u4e3a\u6b63\u5e38\u6a21\u5f0f\n\u4f8b\u5b50\uff1a\nlora.mode(lora.STANDBY)\n", "prefix": "lora.mode"}, "lora2.init": {"body": "lora2.init(${1:ic},${2:loraconfig},${3:spiconfig})", "description": "lora2.init(ic, loraconfig,spiconfig) - lora\u521d\u59cb\u5316\n\u4f20\u5165\u503c\uff1a\nstring lora \u578b\u53f7\uff0c\u5f53\u524d\u652f\u6301\uff1a
    llcc68
    sx1268\ntable lora\u914d\u7f6e\u53c2\u6570,\u4e0e\u5177\u4f53\u8bbe\u5907\u6709\u5173\n\u8fd4\u56de\u503c\uff1a\nuserdata \u82e5\u6210\u529f\u4f1a\u8fd4\u56delora\u5bf9\u8c61,\u5426\u5219\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\nspi_lora = spi.deviceSetup(spi_id,pin_cs,0,0,8,10*1000*1000,spi.MSB,1,0)\nlora_device = lora2.init(\"llcc68\",{res = pin_reset,busy = pin_busy,dio1 = pin_dio1},spi_lora)\n", "prefix": "lora2.init"}, "lora_device:set_channel": {"body": "lora_device:set_channel(${1:freq})", "description": "lora_device:set_channel(freq) - \u8bbe\u7f6e\u9891\u9053\u9891\u7387\n\u4f20\u5165\u503c\uff1a\nnumber \u9891\u7387\n\u4f8b\u5b50\uff1a\nlora_device:set_channel(433000000)\n", "prefix": "lora_device:set_channel"}, "lora_device:set_txconfig": {"body": "lora_device:set_txconfig(${1:txconfig})", "description": "lora_device:set_txconfig(txconfig) - lora\u914d\u7f6e\u53d1\u9001\u53c2\u6570\n\u4f20\u5165\u503c\uff1a\ntable lora\u53d1\u9001\u914d\u7f6e\u53c2\u6570,\u4e0e\u5177\u4f53\u8bbe\u5907\u6709\u5173\n\u4f8b\u5b50\uff1a\nlora_device:set_txconfig(\n {\n mode=1,\n power=22,\n fdev=0,\n bandwidth=0,\n datarate=9,\n coderate=4,\n preambleLen=8,\n fixLen=false,\n crcOn=true,\n freqHopOn=0,\n hopPeriod=0,\n iqInverted=false,\n timeout=3000\n }\n)\n", "prefix": "lora_device:set_txconfig"}, "lora_device:set_rxconfig": {"body": "lora_device:set_rxconfig(${1:set_rxconfig})", "description": "lora_device:set_rxconfig(set_rxconfig) - lora\u914d\u7f6e\u63a5\u6536\u53c2\u6570\n\u4f20\u5165\u503c\uff1a\ntable lora\u63a5\u6536\u914d\u7f6e\u53c2\u6570,\u4e0e\u5177\u4f53\u8bbe\u5907\u6709\u5173\n\u4f8b\u5b50\uff1a\nlora_device:set_rxconfig(\n {\n mode=1,\n bandwidth=0,\n datarate=9,\n coderate=4,\n bandwidthAfc=0,\n preambleLen=8,\n symbTimeout=0,\n fixLen=false,\n payloadLen=0,\n crcOn=true,\n freqHopOn=0,\n hopPeriod=0,\n iqInverted=false,\n rxContinuous=false\n }\n)\n", "prefix": "lora_device:set_rxconfig"}, "lora_device:send": {"body": "lora_device:send(${1:data})", "description": "lora_device:send(data) - \u53d1\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nstring \u5199\u5165\u7684\u6570\u636e\n\u4f8b\u5b50\uff1a\nlora_device:send(\"PING\")\n", "prefix": "lora_device:send"}, "lora_device:recv": {"body": "lora_device:recv(${1:timeout})", "description": "lora_device:recv(timeout) - \u5f00\u542f\u6536\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nnumber \u8d85\u65f6\u65f6\u95f4\uff0c\u9ed8\u8ba41000 \u5355\u4f4dms\n\u4f8b\u5b50\uff1a\nsys.subscribe(\"LORA_RX_DONE\", function(data, size)\n log.info(\"LORA_RX_DONE: \", data, size)\n lora_device:send(\"PING\")\nend)\nlora_device:recv(1000)\n", "prefix": "lora_device:recv"}, "lora_device:mode": {"body": "lora_device:mode(${1:mode})", "description": "lora_device:mode(mode) - \u8bbe\u7f6e\u8fdb\u5165\u6a21\u5f0f(\u4f11\u7720\uff0c\u6b63\u5e38\u7b49)\n\u4f20\u5165\u503c\uff1a\nnumber \u6a21\u5f0f \u6b63\u5e38\u6a21\u5f0f:lora.STANDBY \u4f11\u7720\u6a21\u5f0f:lora.SLEEP \u9ed8\u8ba4\u4e3a\u6b63\u5e38\u6a21\u5f0f\n\u4f8b\u5b50\uff1a\nlora_device:mode(lora.STANDBY)\n", "prefix": "lora_device:mode"}, "lora_device:on": {"body": "lora_device:on(${1:cb})", "description": "lora_device:on(cb) - \u6ce8\u518clora\u56de\u8c03\n\u4f20\u5165\u503c\uff1a\nfunction cb lora\u56de\u8c03,\u53c2\u6570\u5305\u62eclora_device, event, data, size\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\nlora_device:on(function(lora_device, event, data, size)\n log.info(\"lora\", \"event\", event, lora_device, data, size)\n if event == \"tx_done\" then\n lora_device:recv(1000)\n elseif event == \"rx_done\" then\n lora_device:send(\"PING\")\n elseif event == \"tx_timeout\" then\n\n elseif event == \"rx_timeout\" then\n lora_device:recv(1000)\n elseif event == \"rx_error\" then\n\n end\nend)\n--[[\nevent\u53ef\u80fd\u51fa\u73b0\u7684\u503c\u6709\n tx_done -- \u53d1\u9001\u5b8c\u6210\n rx_done -- \u63a5\u6536\u5b8c\u6210\n tx_timeout -- \u53d1\u9001\u8d85\u65f6\n rx_timeout -- \u63a5\u6536\u8d85\u65f6\n rx_error -- \u63a5\u6536\u9519\u8bef\n]]\n", "prefix": "lora_device:on"}, "lvgl.draw_mask_radius_param_t": {"body": "lvgl.draw_mask_radius_param_t()", "description": "lvgl.draw_mask_radius_param_t() - \u521b\u5efa\u4e00\u4e2alv_draw_mask_radius_param_t\n\u8fd4\u56de\u503c\uff1a\nuserdata lv_draw_mask_radius_param_t\u6307\u9488\n\u4f8b\u5b50\uff1a\nlocal radius = lvgl.draw_mask_radius_param_t()\n", "prefix": "lvgl.draw_mask_radius_param_t"}, "lvgl.draw_mask_radius_param_t_free": {"body": "lvgl.draw_mask_radius_param_t_free(${1:radius})", "description": "lvgl.draw_mask_radius_param_t_free(radius) - \u91ca\u653e\u4e00\u4e2alv_draw_mask_radius_param_t\n\u4f8b\u5b50\uff1a\nlocal lvgl.draw_mask_radius_param_t_free(radius)\n", "prefix": "lvgl.draw_mask_radius_param_t_free"}, "lvgl.draw_mask_line_param_t": {"body": "lvgl.draw_mask_line_param_t()", "description": "lvgl.draw_mask_line_param_t() - \u521b\u5efa\u4e00\u4e2alv_draw_mask_line_param_t\n\u8fd4\u56de\u503c\uff1a\nuserdata lv_draw_mask_line_param_t\u6307\u9488\n\u4f8b\u5b50\uff1a\nlocal line = lvgl.draw_mask_line_param_t()\n", "prefix": "lvgl.draw_mask_line_param_t"}, "lvgl.draw_mask_line_param_t_free": {"body": "lvgl.draw_mask_line_param_t_free(${1:line})", "description": "lvgl.draw_mask_line_param_t_free(line) - \u91ca\u653e\u4e00\u4e2alv_draw_mask_line_param_t\n\u4f8b\u5b50\uff1a\nlocal lvgl.draw_mask_line_param_t_free(line)\n", "prefix": "lvgl.draw_mask_line_param_t_free"}, "lvgl.draw_mask_fade_param_t": {"body": "lvgl.draw_mask_fade_param_t()", "description": "lvgl.draw_mask_fade_param_t() - \u521b\u5efa\u4e00\u4e2alv_draw_mask_fade_param_t\n\u8fd4\u56de\u503c\uff1a\nuserdata lv_draw_mask_fade_param_t\u6307\u9488\n\u4f8b\u5b50\uff1a\nlocal fade = lvgl.draw_mask_fade_param_t()\n", "prefix": "lvgl.draw_mask_fade_param_t"}, "lvgl.draw_mask_fade_param_t_free": {"body": "lvgl.draw_mask_fade_param_t_free(${1:fade})", "description": "lvgl.draw_mask_fade_param_t_free(fade) - \u91ca\u653e\u4e00\u4e2alv_draw_mask_fade_param_t\n\u4f8b\u5b50\uff1a\nlocal lvgl.draw_mask_fade_param_t_free(fade)\n", "prefix": "lvgl.draw_mask_fade_param_t_free"}, "lvgl.font_get": {"body": "lvgl.font_get(${1:name})", "description": "lvgl.font_get(name) - \u83b7\u53d6\u5185\u7f6e\u5b57\u4f53\n\u4f20\u5165\u503c\uff1a\nstring \u5b57\u4f53\u540d\u79f0+\u5b57\u53f7, \u4f8b\u5982 opposans_m_10\n\u8fd4\u56de\u503c\uff1a\nuserdata \u5b57\u4f53\u6307\u9488\n\u4f8b\u5b50\uff1a\n\nlocal font = lvgl.font_get(\"opposans_m_12\")\n", "prefix": "lvgl.font_get"}, "lvgl.font_load": {"body": "lvgl.font_load(${1:path/spi_device},${2:size},${3:bpp},${4:thickness},${5:cache_size},${6:sty_zh},${7:sty_en})", "description": "lvgl.font_load(path/spi_device,size,bpp,thickness,cache_size,sty_zh,sty_en) - \u4ece\u6587\u4ef6\u7cfb\u7edf\u52a0\u8f7d\u5b57\u4f53\n\u4f20\u5165\u503c\uff1a\nstring/userdata \u5b57\u4f53\u8def\u5f84/spi_device (spi_device\u4e3a\u4f7f\u7528\u5916\u7f6e\u9ad8\u901a\u77e2\u91cf\u5b57\u5e93\u82af\u7247)\nnumber size \u53ef\u9009,\u5b57\u53f7 16-192 \u9ed8\u8ba416(\u4f7f\u7528\u9ad8\u901a\u77e2\u91cf\u5b57\u5e93)\nnumber bpp \u53ef\u9009 \u6df1\u5ea6 \u9ed8\u8ba44(\u4f7f\u7528\u9ad8\u901a\u77e2\u91cf\u5b57\u5e93)\nnumber thickness \u53ef\u9009 \u7c97\u7ec6\u503c \u9ed8\u8ba4size * bpp(\u4f7f\u7528\u9ad8\u901a\u77e2\u91cf\u5b57\u5e93)\nnumber cache_size \u53ef\u9009 \u9ed8\u8ba40(\u4f7f\u7528\u9ad8\u901a\u77e2\u91cf\u5b57\u5e93)\nnumber sty_zh \u53ef\u9009 \u9009\u62e9\u5b57\u4f53 \u9ed8\u8ba41(\u4f7f\u7528\u9ad8\u901a\u77e2\u91cf\u5b57\u5e93)\nnumber sty_en \u53ef\u9009 \u9009\u62e9\u5b57\u4f53 \u9ed8\u8ba43(\u4f7f\u7528\u9ad8\u901a\u77e2\u91cf\u5b57\u5e93)\n\u8fd4\u56de\u503c\uff1a\nuserdata \u5b57\u4f53\u6307\u9488\n\u4f8b\u5b50\uff1a\nlocal font = lvgl.font_load(\"/font_32.bin\")\n--local font = lvgl.font_load(spi_device,16)(\u9ad8\u901a\u77e2\u91cf\u5b57\u5e93)\n", "prefix": "lvgl.font_load"}, "lvgl.font_free": {"body": "lvgl.font_free(${1:font})", "description": "lvgl.font_free(font) - \u91ca\u653e\u5b57\u4f53,\u614e\u7528!!!\u4ec5\u901a\u8fc7font_load\u52a0\u8f7d\u7684\u5b57\u4f53\u5141\u8bb8\u5378\u8f7d,\u901a\u8fc7font_get\u83b7\u53d6\u7684\u5b57\u4f53\u4e0d\u5141\u8bb8\u5378\u8f7d\n\u4f20\u5165\u503c\uff1a\nstring \u5b57\u4f53\u8def\u5f84\n\u8fd4\u56de\u503c\uff1a\nuserdata \u5b57\u4f53\u6307\u9488\n\u4f8b\u5b50\uff1a\nlocal font = lvgl.font_load(\"/font_32.bin\")\n-- N N N N \u64cd\u4f5c\n-- \u786e\u5b9a\u5b57\u4f53\u4e0d\u88ab\u4f7f\u7528,\u4e0d\u88ab\u5f15\u7528,\u4e14\u5185\u5b58\u7d27\u5f20\u9700\u8981\u91ca\u653e\nlvgl.font_free(font)\n", "prefix": "lvgl.font_free"}, "lvgl.obj_set_event_cb": {"body": "lvgl.obj_set_event_cb(${1:obj},${2:func})", "description": "lvgl.obj_set_event_cb(obj, func) - \u8bbe\u7f6e\u7ec4\u4ef6\u7684\u4e8b\u4ef6\u56de\u8c03\n\u4f20\u5165\u503c\uff1a\nuserdata lvgl\u7ec4\u4ef6\u6307\u9488\nfunc lua\u51fd\u6570, \u53c2\u6570\u67092\u4e2a (obj, event), \u5176\u4e2dobj\u662f\u5f53\u524d\u5bf9\u8c61, event\u662f\u4e8b\u4ef6\u7c7b\u578b, \u4e3a\u6574\u578b\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n", "prefix": "lvgl.obj_set_event_cb"}, "lvgl.obj_set_signal_cb": {"body": "lvgl.obj_set_signal_cb(${1:obj},${2:func})", "description": "lvgl.obj_set_signal_cb(obj, func) - \u8bbe\u7f6e\u7ec4\u4ef6\u7684\u4fe1\u53f7\u56de\u8c03\n\u4f20\u5165\u503c\uff1a\nuserdata lvgl\u7ec4\u4ef6\u6307\u9488\nfunc lua\u51fd\u6570, \u53c2\u6570\u67092\u4e2a (obj, signal), \u5176\u4e2dobj\u662f\u5f53\u524d\u5bf9\u8c61, signal\u662f\u4fe1\u53f7\u7c7b\u578b, \u4e3a\u6574\u578b\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n", "prefix": "lvgl.obj_set_signal_cb"}, "lvgl.anim_set_exec_cb": {"body": "lvgl.anim_set_exec_cb(${1:anim},${2:func})", "description": "lvgl.anim_set_exec_cb(anim, func) - \u8bbe\u7f6e\u52a8\u753b\u56de\u8c03\n\u4f20\u5165\u503c\uff1a\nuserdata \u52a8\u753b\u6307\u9488\nuserdata lvgl\u7ec4\u4ef6\u6307\u9488\nfunc lua\u51fd\u6570, \u53c2\u6570\u67092\u4e2a (obj, value), \u5176\u4e2dobj\u662f\u5f53\u524d\u5bf9\u8c61, signal\u662f\u4fe1\u53f7\u7c7b\u578b, \u4e3a\u6574\u578b\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n", "prefix": "lvgl.anim_set_exec_cb"}, "lvgl.anim_set_ready_cb": {"body": "lvgl.anim_set_ready_cb(${1:anim},${2:func})", "description": "lvgl.anim_set_ready_cb(anim, func) - \u8bbe\u7f6e\u52a8\u753b\u56de\u8c03\n\u4f20\u5165\u503c\uff1a\nuserdata \u52a8\u753b\u6307\u9488\nuserdata lvgl\u7ec4\u4ef6\u6307\u9488\nfunc lua\u51fd\u6570, \u53c2\u6570\u67091\u4e2a (anim), \u5176\u4e2danim\u662f\u5f53\u524d\u5bf9\u8c61\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n", "prefix": "lvgl.anim_set_ready_cb"}, "lvgl.anim_path_set_cb": {"body": "lvgl.anim_path_set_cb(${1:path},${2:func})", "description": "lvgl.anim_path_set_cb(path, func) - \u8bbe\u7f6e\u52a8\u753b\u56de\u8c03\n\u4f20\u5165\u503c\uff1a\nuserdata \u52a8\u753b\u6307\u9488\nuserdata lvgl\u7ec4\u4ef6\u6307\u9488\nfunc lua\u51fd\u6570, \u53c2\u6570\u67091\u4e2a (path), \u5176\u4e2dpath\u662f\u5f53\u524d\u5bf9\u8c61\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n", "prefix": "lvgl.anim_path_set_cb"}, "lvgl.event_send": {"body": "lvgl.event_send(${1:obj},${2:ent})", "description": "lvgl.event_send(obj, ent) - \u53d1\u9001\u4e8b\u4ef6\u7ed9\u7ec4\u4ef6\n\u4f20\u5165\u503c\uff1a\nuserdata \u7ec4\u4ef6\u6307\u9488\nint \u4e8b\u4ef6id, \u4f8b\u5982 lvgl.EVENT_PRESSED\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue, \u5bf9\u8c61\u5df2\u88ab\u5220\u9664\u7684\u8bdd\u8fd4\u56defalse\u6216\u8005nil\nint \u5e95\u5c42\u8fd4\u56de\u503c,\u5982\u679cobj\u4e3anil\u5c31\u8fd4\u56denil\n", "prefix": "lvgl.event_send"}, "lvgl.scr_act": {"body": "lvgl.scr_act()", "description": "lvgl.scr_act() - \u83b7\u53d6\u5f53\u524d\u6d3b\u8dc3\u7684screen\u5bf9\u8c61\n\u8fd4\u56de\u503c\uff1a\n\u6307\u9488 screen\u6307\u9488\n\u4f8b\u5b50\uff1a\nlocal scr = lvgl.scr_act()\n\n", "prefix": "lvgl.scr_act"}, "lvgl.layer_top": {"body": "lvgl.layer_top()", "description": "lvgl.layer_top() - \u83b7\u53d6layer_top\n\u8fd4\u56de\u503c\uff1a\n\u6307\u9488 layer\u6307\u9488\n", "prefix": "lvgl.layer_top"}, "lvgl.layer_sys": {"body": "lvgl.layer_sys()", "description": "lvgl.layer_sys() - \u83b7\u53d6layer_sys\n\u8fd4\u56de\u503c\uff1a\n\u6307\u9488 layer\u6307\u9488\n", "prefix": "lvgl.layer_sys"}, "lvgl.scr_load": {"body": "lvgl.scr_load(${1:scr})", "description": "lvgl.scr_load(scr) - \u8f7d\u5165\u6307\u5b9a\u7684screen\n\u4f20\u5165\u503c\uff1a\nuserdata screen\u6307\u9488\n\u4f8b\u5b50\uff1a\n local scr = lvgl.obj_create(nil, nil)\n local btn = lvgl.btn_create(scr)\n lvgl.obj_align(btn, lvgl.scr_act(), lvgl.ALIGN_CENTER, 0, 0)\n local label = lvgl.label_create(btn)\n lvgl.label_set_text(label, \"LuatOS!\")\n lvgl.scr_load(scr)\n", "prefix": "lvgl.scr_load"}, "lvgl.scr_load_anim": {"body": "lvgl.scr_load_anim(${1:scr})", "description": "lvgl.scr_load_anim(scr) - \u8f7d\u5165\u6307\u5b9a\u7684screen\u5e76\u4f7f\u7528\u6307\u5b9a\u7684\u8f6c\u573a\u52a8\u753b\n\u4f20\u5165\u503c\uff1a\nuserdata screen\u6307\u9488\n\u4f8b\u5b50\uff1a\n local scr = lvgl.obj_create(nil, nil)\n local btn = lvgl.btn_create(scr)\n lvgl.obj_align(btn, lvgl.scr_act(), lvgl.ALIGN_CENTER, 0, 0)\n local label = lvgl.label_create(btn)\n lvgl.label_set_text(label, \"LuatOS!\")\n\n local scr2 = lvgl.obj_create(nil,nil)\n local btn2 = lvgl.btn_create(scr2)\n lvgl.obj_align(btn, scr2, lvgl.ALIGN_CENTER, 0, 20)\n local label2 = lvgl.label_create(btn2)\n lvgl.label_set_text(label2, \"Btn2\")\n lvgl.scr_load(scr)\n --sys.wait(1000);\n lvgl.scr_load_anim(scr2,lvgl.SCR_LOAD_ANIM_OVER_LEFT,100,100,false)\n\u539f\u51fd\u6570\uff1alv_scr_load_anim(lv_obj_t * new_scr, lv_scr_load_anim_t anim_type, uint32_t time, uint32_t delay, bool auto_del)\n", "prefix": "lvgl.scr_load_anim"}, "lvgl.theme_set_act": {"body": "lvgl.theme_set_act(${1:name})", "description": "lvgl.theme_set_act(name) - \u8bbe\u7f6e\u4e3b\u9898\n\u4f20\u5165\u503c\uff1a\nstring \u4e3b\u9898\u540d\u79f0,\u53ef\u9009\u503c\u6709 default/mono/empty/material_light/material_dark/material_no_transition/material_no_focus\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\n-- \u9ed1\u767d\u4e3b\u9898\nlvgl.theme_set_act(\"mono\")\n-- \u7a7a\u767d\u4e3b\u9898\nlvgl.theme_set_act(\"empty\")\n", "prefix": "lvgl.theme_set_act"}, "lvgl.sleep": {"body": "lvgl.sleep(${1:enable})", "description": "lvgl.sleep(enable) - LVGL\u4f11\u7720\u63a7\u5236\uff0c\u6682\u505c/\u6062\u590d\u5237\u65b0\u5b9a\u65f6\u5668\uff0c\u76ee\u524d\u53ea\u6709105\u548cEC618\u53ef\u4ee5\u7528\n\u4f20\u5165\u503c\uff1a\nboolean true\u6682\u505c false\u6062\u590d\n\u4f8b\u5b50\uff1a\nlvgl.sleep(true)\t\t--\u6682\u505c\u5237\u65b0\uff0c\u7cfb\u7edf\u53ef\u4ee5\u4f11\u7720\nlvgl.sleep(false)\t\t--\u6062\u590d\u5237\u65b0\uff0c\u7cfb\u7edf\u4e0d\u4f11\u7720\n", "prefix": "lvgl.sleep"}, "lvgl.init": {"body": "lvgl.init(${1:w},${2:h},${3:lcd},${4:buff_size},${5:buff_mode})", "description": "lvgl.init(w, h, lcd, buff_size, buff_mode) - \u521d\u59cb\u5316LVGL\n\u4f20\u5165\u503c\uff1a\nint \u5c4f\u5e55\u5bbd,\u53ef\u9009,\u9ed8\u8ba4\u4ecelcd\u53d6\nint \u5c4f\u5e55\u9ad8,\u53ef\u9009,\u9ed8\u8ba4\u4ecelcd\u53d6\nuserdata lcd\u6307\u9488,\u53ef\u9009,lcd\u521d\u59cb\u5316\u540e\u6709\u9ed8\u8ba4\u503c,\u9884\u7559\u7684\u591a\u5c4f\u5165\u53e3\nint \u7f13\u51b2\u533a\u5927\u5c0f,\u9ed8\u8ba4\u5bbd*10, \u4e0d\u542b\u8272\u6df1.\nint \u7f13\u51b2\u6a21\u5f0f,\u9ed8\u8ba40, \u5355buff\u6a21\u5f0f, \u53ef\u90091,\u53ccbuff\u6a21\u5f0f\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n", "prefix": "lvgl.init"}, "lvgl.anim_create": {"body": "lvgl.anim_create()", "description": "lvgl.anim_create() - \u521b\u5efa\u5e76\u521d\u59cb\u5316\u4e00\u4e2aanim\n\u8fd4\u56de\u503c\uff1a\nuserdata anim\u6307\u9488\n\u4f8b\u5b50\uff1a\nlocal anim = lvgl.anim_create()\n", "prefix": "lvgl.anim_create"}, "lvgl.anim_free": {"body": "lvgl.anim_free(${1:anim})", "description": "lvgl.anim_free(anim) - \u91ca\u653e\u4e00\u4e2aanim\n\u4f8b\u5b50\uff1a\nlocal lvgl.anim_free(anim)\n", "prefix": "lvgl.anim_free"}, "lvgl.anim_path_t": {"body": "lvgl.anim_path_t()", "description": "lvgl.anim_path_t() - \u521b\u5efa\u4e00\u4e2alv_anim_path_t\n\u8fd4\u56de\u503c\uff1a\nuserdata lv_anim_path_t\u6307\u9488\n\u4f8b\u5b50\uff1a\nlocal anim_path_t = lvgl.anim_path_t()\n", "prefix": "lvgl.anim_path_t"}, "lvgl.anim_path_t_free": {"body": "lvgl.anim_path_t_free(${1:anim_path_t})", "description": "lvgl.anim_path_t_free(anim_path_t) - \u91ca\u653e\u4e00\u4e2alv_anim_path_t\n\u4f8b\u5b50\uff1a\nlocal lvgl.anim_path_t_free(anim_path_t)\n", "prefix": "lvgl.anim_path_t_free"}, "lvgl.anim_set_path_str": {"body": "lvgl.anim_set_path_str(${1:anim},${2:tp})", "description": "lvgl.anim_set_path_str(anim, tp) - \u8bbe\u7f6e\u52a8\u753b\u8def\u5f84\u65b9\u5f0f\n\u4f20\u5165\u503c\uff1a\nuserdata \u52a8\u753b\u6307\u9488\nstring \u7c7b\u578b, \u652f\u6301 linear/ease_in/ease_out/ease_in_out/overshoot/bounce/step\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n", "prefix": "lvgl.anim_set_path_str"}, "lvgl.qrcode_create": {"body": "lvgl.qrcode_create(${1:parent},${2:size},${3:dark_color},${4:light_color})", "description": "lvgl.qrcode_create(parent, size, dark_color, light_color) - \u521b\u5efaqrcode\u7ec4\u4ef6\n\u4f20\u5165\u503c\uff1a\nuserdata \u7236\u7ec4\u4ef6\nint \u957f\u5ea6,\u56e0\u4e3aqrcode\u662f\u6b63\u65b9\u5f62\nint \u4e8c\u7ef4\u7801\u4e2d\u6570\u636e\u70b9\u7684\u989c\u8272, RGB\u989c\u8272, \u9ed8\u8ba4 0x3333ff\nint \u4e8c\u7ef4\u7801\u4e2d\u80cc\u666f\u70b9\u7684\u989c\u8272, RGB\u989c\u8272, \u9ed8\u8ba4 0xeeeeff\n\u8fd4\u56de\u503c\uff1a\nuserdata qrcode\u7ec4\u4ef6\n\u4f8b\u5b50\uff1a\n-- \u521b\u5efa\u5e76\u663e\u793aqrcode\nlocal qrcode = lvgl.qrcode_create(scr, 100)\nlvgl.qrcode_update(qrcode, \"https://luatos.com\")\nlvgl.obj_align(qrcode, lvgl.scr_act(), lvgl.ALIGN_CENTER, -100, -100)\n", "prefix": "lvgl.qrcode_create"}, "lvgl.qrcode_update": {"body": "lvgl.qrcode_update(${1:qrcode},${2:cnt})", "description": "lvgl.qrcode_update(qrcode, cnt) - \u8bbe\u7f6eqrcode\u7ec4\u4ef6\u7684\u4e8c\u7ef4\u7801\u5185\u5bb9,\u914d\u5408qrcode_create\u4f7f\u7528\n\u4f20\u5165\u503c\uff1a\nuserdata qrcode\u7ec4\u4ef6,\u7531qrcode_create\u521b\u5efa\nstring \u4e8c\u7ef4\u7801\u7684\u5185\u5bb9\u6570\u636e\n\u8fd4\u56de\u503c\uff1a\nbool \u66f4\u65b0\u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse. \u901a\u5e38\u53ea\u6709\u6570\u636e\u592a\u957f\u65e0\u6cd5\u5bb9\u7eb3\u624d\u4f1a\u8fd4\u56defalse\n", "prefix": "lvgl.qrcode_update"}, "lvgl.qrcode_delete": {"body": "lvgl.qrcode_delete(${1:qrcode})", "description": "lvgl.qrcode_delete(qrcode) - \u5220\u9664qrcode\u7ec4\u4ef6\n\u4f20\u5165\u503c\uff1a\nuserdata qrcode\u7ec4\u4ef6,\u7531qrcode_create\u521b\u5efa\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n", "prefix": "lvgl.qrcode_delete"}, "lvgl.style_t": {"body": "lvgl.style_t()", "description": "lvgl.style_t() - \u521b\u5efa\u4e00\u4e2astyle\n\u8fd4\u56de\u503c\uff1a\nuserdata style\u6307\u9488\n\u4f8b\u5b50\uff1a\nlocal style = lvgl.style_t()\nlvgl.style_init(style)\n", "prefix": "lvgl.style_t"}, "lvgl.style_create": {"body": "lvgl.style_create()", "description": "lvgl.style_create() - \u521b\u5efa\u4e00\u4e2astyle\u5e76\u521d\u59cb\u5316\n\u8fd4\u56de\u503c\uff1a\nuserdata style\u6307\u9488\n\u4f8b\u5b50\uff1a\nlocal style = lvgl.style_create()\n", "prefix": "lvgl.style_create"}, "lvgl.style_list_create": {"body": "lvgl.style_list_create()", "description": "lvgl.style_list_create() - \u521b\u5efa\u4e00\u4e2astyle_list\n\u8fd4\u56de\u503c\uff1a\nuserdata style\u6307\u9488\n\u4f8b\u5b50\uff1a\nlocal style_list = lvgl.style_list_create()\n", "prefix": "lvgl.style_list_create"}, "lvgl.style_list_t": {"body": "lvgl.style_list_t()", "description": "lvgl.style_list_t() - \u521b\u5efa\u4e00\u4e2astyle_list\n\u8fd4\u56de\u503c\uff1a\nuserdata style\u6307\u9488\n\u4f8b\u5b50\uff1a\nlocal style = lvgl.style_list_t()\n", "prefix": "lvgl.style_list_t"}, "lvgl.style_delete": {"body": "lvgl.style_delete(${1:style})", "description": "lvgl.style_delete(style) - \u5220\u9664style,\u614e\u7528,\u901a\u5e38\u4e0d\u4f1a\u6267\u884c\u5220\u9664\u64cd\u4f5c\n\u4f20\u5165\u503c\uff1a\nuserdata style\u6307\u9488\n\u4f8b\u5b50\uff1a\nlocal style = lvgl.style_create()\n-- ...\n-- ...\n-- lvgl.style_delete(style)\n", "prefix": "lvgl.style_delete"}, "lvgl.style_list_delete": {"body": "lvgl.style_list_delete(${1:style})", "description": "lvgl.style_list_delete(style) - \u5220\u9664style_list,\u614e\u7528,\u901a\u5e38\u4e0d\u4f1a\u6267\u884c\u5220\u9664\u64cd\u4f5c\n\u4f20\u5165\u503c\uff1a\nuserdata style\u6307\u9488\n\u4f8b\u5b50\uff1a\nlocal style_list = lvgl.style_list_create()\n-- ...\n-- ...\n-- lvgl.style_list_delete(style_list)\n", "prefix": "lvgl.style_list_delete"}, "lvgl.demo_benchmark": {"body": "lvgl.demo_benchmark()", "description": "lvgl.demo_benchmark() - lvgl benchmark demo\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\nlvgl.init()\nlvgl.demo_benchmark()\n", "prefix": "lvgl.demo_benchmark"}, "lvgl.demo_keypad_encoder": {"body": "lvgl.demo_keypad_encoder()", "description": "lvgl.demo_keypad_encoder() - lvgl keypad_encoder demo\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\nlvgl.init()\nlvgl.demo_keypad_encoder()\n", "prefix": "lvgl.demo_keypad_encoder"}, "lvgl.demo_music": {"body": "lvgl.demo_music()", "description": "lvgl.demo_music() - lvgl music demo\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\nlvgl.init()\nlvgl.demo_music()\n", "prefix": "lvgl.demo_music"}, "lvgl.demo_printer": {"body": "lvgl.demo_printer()", "description": "lvgl.demo_printer() - lvgl printer demo\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\nlvgl.init()\nlvgl.demo_printer()\n", "prefix": "lvgl.demo_printer"}, "lvgl.demo_stress": {"body": "lvgl.demo_stress()", "description": "lvgl.demo_stress() - lvgl stress demo\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\nlvgl.init()\nlvgl.demo_stress()\n", "prefix": "lvgl.demo_stress"}, "lvgl.demo_widgets": {"body": "lvgl.demo_widgets()", "description": "lvgl.demo_widgets() - lvgl widgets demo\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\nlvgl.init()\nlvgl.demo_widgets()\n", "prefix": "lvgl.demo_widgets"}, "lvgl.indev_drv_register": {"body": "lvgl.indev_drv_register(${1:tp},${2:dtp})", "description": "lvgl.indev_drv_register(tp, dtp) - \u6ce8\u518c\u8f93\u5165\u8bbe\u5907\u9a71\u52a8\n\u4f20\u5165\u503c\uff1a\nstring \u8bbe\u5907\u7c7b\u578b\uff0c\u5f53\u524d\u652f\u6301\"pointer\",\u6307\u9488\u7c7b/\u89e6\u6478\u7c7b\u5747\u53ef\uff0c\"keyboard\",\u952e\u76d8\u7c7b\u578b\nstring \u8bbe\u5907\u578b\u53f7\uff0c\u5f53\u524d\u652f\u6301\"emulator\",\u6a21\u62df\u5668\u7c7b\u578b\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\nlvgl.indev_drv_register(\"pointer\", \"emulator\")\n", "prefix": "lvgl.indev_drv_register"}, "lvgl.indev_point_emulator_update": {"body": "lvgl.indev_point_emulator_update(${1:x},${2:y},${3:state})", "description": "lvgl.indev_point_emulator_update(x, y, state) - \u66f4\u65b0\u6a21\u62df\u8f93\u5165\u8bbe\u5907\u7684\u5750\u6807\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nint x\u5750\u6807,\u4ee5\u5de6\u4e0a\u89d2\u4e3a0,\u53f3\u4e0b\u89d2\u4e3a\u6700\u5927\u503c\nint y\u5750\u6807,\u4ee5\u5de6\u4e0a\u89d2\u4e3a0,\u53f3\u4e0b\u89d2\u4e3a\u6700\u5927\u503c\nint \u72b6\u6001, 0 \u4e3a \u91ca\u653e, 1 \u4e3a\u6309\u4e0b\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n-- \u6a21\u62df\u5728\u5c4f\u5e55\u4e0a\u7684\u70b9\u51fb,\u901a\u8fc7timeout\u6a21\u62df\u957f\u6309\u548c\u77ed\u6309\nsys.taskInit(function(x, y, timeout)\n lvgl.indev_point_emulator_update(x, y, 1)\n sys.wait(timeout)\n lvgl.indev_point_emulator_update(x, y, 0)\nend, 240, 120, 50)\n", "prefix": "lvgl.indev_point_emulator_update"}, "lvgl.indev_kb_update": {"body": "lvgl.indev_kb_update(${1:key})", "description": "lvgl.indev_kb_update(key) - \u66f4\u65b0\u952e\u76d8\u8f93\u5165\u8bbe\u5907\u7684\u6309\u952e\u503c\n\u4f20\u5165\u503c\uff1a\nint \u6309\u952e\u503c\uff0c\u9ed8\u8ba4\u4e3a0\uff0c\u6309\u952e\u62ac\u8d77\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n", "prefix": "lvgl.indev_kb_update"}, "lvgl.gif_create": {"body": "lvgl.gif_create(${1:parent},${2:path})", "description": "lvgl.gif_create(parent, path) - \u521b\u5efagif\u7ec4\u4ef6\n\u4f20\u5165\u503c\uff1a\nuserdata \u7236\u7ec4\u4ef6,\u53ef\u4ee5\u662fnil,\u4f46\u901a\u5e38\u4e0d\u4f1a\u662fnil\nstring \u6587\u4ef6\u8def\u5f84\n\u8fd4\u56de\u503c\uff1a\nuserdata \u7ec4\u4ef6\u6307\u9488,\u82e5\u5931\u8d25\u4f1a\u8fd4\u56denil,\u5efa\u8bae\u68c0\u67e5\n\u4f8b\u5b50\uff1a\nlocal gif = lvgl.gif_create(scr, \"S/emtry.gif\")\nif gif then\n log.info(\"gif\", \"create ok\")\nend\n\n", "prefix": "lvgl.gif_create"}, "lvgl.gif_restart": {"body": "lvgl.gif_restart(${1:gif})", "description": "lvgl.gif_restart(gif) - \u91cd\u65b0\u64ad\u653egif\u7ec4\u4ef6\n\u4f20\u5165\u503c\uff1a\nuserdata gif\u7ec4\u4ef6\u652f\u6301, \u7531gif_create\u65b9\u6cd5\u8fd4\u56de\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\nlocal gif = lvgl.gif_create(scr, \"S/emtry.gif\")\nif gif then\n log.info(\"gif\", \"create ok\")\nend\n\n", "prefix": "lvgl.gif_restart"}, "max30102.init": {"body": "max30102.init(${1:i2c_id},${2:int})", "description": "max30102.init(i2c_id,int) - \u521d\u59cb\u5316MAX30102\u4f20\u611f\u5668\n\u4f20\u5165\u503c\uff1a\nint \u4f20\u611f\u5668\u6240\u5728\u7684i2c\u603b\u7ebfid,\u9ed8\u8ba4\u4e3a0\nint int\u5f15\u811a\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue, \u5426\u5219\u8fd4\u56denil\u6216\u8005false\n\u4f8b\u5b50\uff1a\nif max30102.init(0,pin.PC05) then\n log.info(\"max30102\", \"init ok\")\nelse\n log.info(\"max30102\", \"init fail\")\nend\n", "prefix": "max30102.init"}, "max30102.get": {"body": "max30102.get()", "description": "max30102.get() - \u83b7\u53d6\u5fc3\u7387\u8840\u6c27(\u5927\u6982\u9700\u898110s\u65f6\u95f4\u6d4b\u91cf)\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue, \u5426\u5219\u8fd4\u56denil\u6216\u8005false\nnumber \u5fc3\u7387\nnumber \u8840\u6c27\n", "prefix": "max30102.get"}, "max30102.shutdown": {"body": "max30102.shutdown()", "description": "max30102.shutdown() - \u5173\u95edmax30102\n", "prefix": "max30102.shutdown"}, "mcu.setClk": {"body": "mcu.setClk(${1:mhz})", "description": "mcu.setClk(mhz) - \u8bbe\u7f6e\u4e3b\u9891,\u5355\u4f4dMHZ\n\u4f20\u5165\u503c\uff1a\nint \u4e3b\u9891,\u6839\u636e\u8bbe\u5907\u7684\u4e0d\u540c\u6709\u4e0d\u540c\u7684\u6709\u6548\u503c,\u8bf7\u67e5\u9605\u624b\u518c\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- \u8bf7\u6ce8\u610f,\u4e3b\u9891\u4e0e\u5916\u8bbe\u4e3b\u9891\u6709\u5173\u8054\u6027, \u4f8b\u5982\u4e3b\u98912M\u65f6SPI\u7684\u6700\u9ad8\u53ea\u80fd1M\n-- \u8bbe\u7f6e\u523080MHZ\nmcu.setClk(80)\nsys.wait(1000)\n-- \u8bbe\u7f6e\u5230240MHZ\nmcu.setClk(240)\nsys.wait(1000)\n-- \u8bbe\u7f6e\u52302MHZ\nmcu.setClk(2)\nsys.wait(1000)\n", "prefix": "mcu.setClk"}, "mcu.getClk": {"body": "mcu.getClk()", "description": "mcu.getClk() - \u83b7\u53d6\u4e3b\u9891,\u5355\u4f4dMHZ\n\u8fd4\u56de\u503c\uff1a\nint \u82e5\u5931\u8d25\u8fd4\u56de-1,\u5426\u5219\u8fd4\u56de\u4e3b\u9891\u6570\u503c,\u82e5\u7b49\u4e8e0,\u53ef\u80fd\u5904\u4e8e32k\u6676\u632f\u7684\u7701\u7535\u6a21\u5f0f\n\u4f8b\u5b50\uff1a\nlocal mhz = mcu.getClk()\nprint(\"Boom\", mhz)\n", "prefix": "mcu.getClk"}, "mcu.unique_id": {"body": "mcu.unique_id()", "description": "mcu.unique_id() - \u83b7\u53d6\u8bbe\u5907\u552f\u4e00id. \u6ce8\u610f,\u53ef\u80fd\u5305\u542b\u4e0d\u53ef\u89c1\u5b57\u7b26,\u5982\u9700\u67e5\u770b\u5efa\u8baetoHex()\u540e\u6253\u5370\n\u8fd4\u56de\u503c\uff1a\nstring \u8bbe\u5907\u552f\u4e00id.\u82e5\u4e0d\u652f\u6301, \u4f1a\u8fd4\u56de\u7a7a\u5b57\u7b26\u4e32.\n\u4f8b\u5b50\uff1a\nlocal unique_id = mcu.unique_id()\nprint(\"unique_id\", unique_id)\n", "prefix": "mcu.unique_id"}, "mcu.ticks": {"body": "mcu.ticks()", "description": "mcu.ticks() - \u83b7\u53d6\u542f\u52a8\u540e\u7684tick\u6570,\u6ce8\u610f\u4f1a\u51fa\u73b0\u6ea2\u51fa\u4f1a\u51fa\u73b0\u8d1f\u6570\n\u8fd4\u56de\u503c\uff1a\nint \u5f53\u524dtick\u503c\n\u4f8b\u5b50\uff1a\nlocal tick = mcu.ticks()\nprint(\"ticks\", tick)\n", "prefix": "mcu.ticks"}, "mcu.hz": {"body": "mcu.hz()", "description": "mcu.hz() - \u83b7\u53d6\u6bcf\u79d2\u7684tick\u6570\u91cf\n\u8fd4\u56de\u503c\uff1a\nint \u6bcf\u79d2\u7684tick\u6570\u91cf,\u901a\u5e38\u4e3a1000\n\u4f8b\u5b50\uff1a\nlocal hz = mcu.hz()\nprint(\"mcu.hz\", hz)\n", "prefix": "mcu.hz"}, "mcu.reg32": {"body": "mcu.reg32(${1:address},${2:value},${3:mask})", "description": "mcu.reg32(address, value, mask) - \u8bfb\u5199mcu\u768432bit\u5bc4\u5b58\u5668\u6216\u8005ram,\u8c28\u614e\u4f7f\u7528\u5199\u529f\u80fd,\u8bf7\u719f\u6089mcu\u7684\u5bc4\u5b58\u5668\u4f7f\u7528\u65b9\u6cd5\u540e\u518d\u4f7f\u7528\n\u4f20\u5165\u503c\uff1a\nint \u5bc4\u5b58\u5668\u6216\u8005ram\u5730\u5740\nint \u5199\u5165\u7684\u503c,\u5982\u679c\u6ca1\u6709,\u5219\u76f4\u63a5\u8fd4\u56de\u5f53\u524d\u503c\nint \u4f4d\u63a9\u7801,\u53ef\u4ee5\u5bf9\u7279\u5b9a\u51e0\u4e2a\u4f4d\u7f6e\u7684bit\u505a\u4fee\u6539, \u9ed8\u8ba40xffffffff,\u4fee\u6539\u5168\u90e832bit\n\u8fd4\u56de\u503c\uff1a\nint \u8fd4\u56de\u5f53\u524d\u5bc4\u5b58\u7684\u503c\n\u4f8b\u5b50\uff1a\nlocal value = mcu.reg32(0x2009FFFC, 0x01, 0x01) --\u5bf90x2009FFFC\u5730\u5740\u4e0a\u7684\u503c,\u4fee\u6539bit0\u4e3a1\n", "prefix": "mcu.reg32"}, "mcu.x32": {"body": "mcu.x32(${1:value})", "description": "mcu.x32(value) - \u8f6c\u636210\u8fdb\u5236\u6570\u4e3a16\u8fdb\u5236\u5b57\u7b26\u4e32\u8f93\u51fa\n\u4f20\u5165\u503c\uff1a\nint \u9700\u8981\u8f6c\u6362\u7684\u503c\n\u8fd4\u56de\u503c\uff1a\nstring 16\u8fdb\u5236\u5b57\u7b26\u4e32\n\u4f8b\u5b50\uff1a\nlocal value = mcu.x32(0x2009FFFC) --\u8f93\u51fa\"0x2009fffc\"\n", "prefix": "mcu.x32"}, "mcu.tick64": {"body": "mcu.tick64()", "description": "mcu.tick64() - \u83b7\u53d6\u542f\u52a8\u540e\u7684\u9ad8\u7cbe\u5ea6tick\uff0c\u5982\u679c\u652f\u6301bit64\u5e93\uff0c\u53ef\u4ee5\u76f4\u63a5\u8f93\u51fa\u8f6c\u6362\u597d\u7684bit64\u7ed3\u6784\n\u4f20\u5165\u503c\uff1a\nboolean \u662f\u5426\u8f93\u51fabit64\u7ed3\u6784,true\u662f,\u5176\u4ed6\u90fd\u662ffalse,\u7559\u7a7a\u4e5f\u662ffalse,\u7528\u4e8e\u517c\u5bb9\u65e7\u7684demo\n\u8fd4\u56de\u503c\uff1a\nstring \u5f53\u524dtick\u503c,8\u4e2a\u5b57\u8282\u7684uint64,\u5982\u679c\u652f\u630164bit\u5e93,\u540c\u65f6\u8981\u6c42\u8f93\u51fa64bit\u7ed3\u6784\u7684\u8bdd,\u4f1a\u8f93\u51fa9\u5b57\u8282\u7684string\nint 1us\u6709\u51e0\u4e2atick,0\u8868\u793a\u672a\u77e5\n\u4f8b\u5b50\uff1a\nlocal tick_str, tick_per = mcu.tick64()\nprint(\"ticks\", tick_str, tick_per)\n", "prefix": "mcu.tick64"}, "mcu.dtick64": {"body": "mcu.dtick64(${1:tick1},${2:tick2},${3:check_value})", "description": "mcu.dtick64(tick1, tick2, check_value) - \u8ba1\u7b972\u4e2a64bit tick\u7684\u5dee\u503c\n\u4f20\u5165\u503c\uff1a\nstring 64bit\u7684string\nstring 64bit\u7684string\nint \u53c2\u8003\u503c,\u53ef\u9009\u9879,\u5982\u679c\u4e3a0,\u5219\u8fd4\u56de\u7ed3\u679c\u4e2d\u7b2c\u4e00\u4e2a\u9879\u76ee\u4e3atrue\n\u8fd4\u56de\u503c\uff1a\nboolean \u4e0e\u53c2\u8003\u503c\u6bd4\u8f83,\u5982\u679c\u5927\u4e8e\u7b49\u4e8e\u4e3atrue,\u53cd\u4e4b\u4e3afalse\nint \u5dee\u503ctick1 - tick2,\u5982\u679c\u8d85\u8fc7\u4e860x7fffffff,\u7ed3\u679c\u53ef\u80fd\u662f\u9519\u7684\n\u4f8b\u5b50\uff1a\nlocal result, diff_tick = mcu.dtick64(tick1, tick2)\nprint(\"ticks\", result, diff_tick)\n", "prefix": "mcu.dtick64"}, "mcu.setXTAL": {"body": "mcu.setXTAL(${1:source_main},${2:source_32k},${3:delay})", "description": "mcu.setXTAL(source_main, source_32k, delay) - \u9009\u62e9\u65f6\u949f\u6e90,\u5f53\u524d\u4ec5air105\u652f\u6301\n\u4f20\u5165\u503c\uff1a\nboolean \u9ad8\u901f\u65f6\u949f\u662f\u5426\u4f7f\u7528\u5916\u90e8\u65f6\u949f\u6e90,\u5982\u679c\u4e3a\u7a7a\u5219\u4e0d\u6539\u53d8\nboolean \u4f4e\u901f32K\u662f\u5426\u4f7f\u7528\u5916\u90e8\u65f6\u949f\u6e90,\u5982\u679c\u4e3a\u7a7a\u5219\u4e0d\u6539\u53d8\nint PLL\u7a33\u5b9a\u65f6\u95f4,\u5728\u5207\u6362\u9ad8\u901f\u65f6\u949f\u7684\u65f6\u5019,\u6839\u636e\u786c\u4ef6\u73af\u5883,\u9700\u8981delay\u4e00\u6bb5\u65f6\u95f4\u7b49\u5f85PLL\u7a33\u5b9a,\u9ed8\u8ba4\u662f1200,\u5efa\u8bae\u4e0d\u5c0f\u4e8e1024\n\u4f8b\u5b50\uff1a\nmcu.setXTAL(true, true, 1248)\t--\u9ad8\u901f\u65f6\u949f\u4f7f\u7528\u5916\u90e8\u65f6\u949f,\u4f4e\u901f32K\u4f7f\u7528\u5916\u90e8\u6676\u632f, delay1248\n", "prefix": "mcu.setXTAL"}, "mcu.hardfault": {"body": "mcu.hardfault(${1:mode})", "description": "mcu.hardfault(mode) - mcu\u6b7b\u673a\u65f6\u5904\u7406\u6a21\u5f0f\uff0c\u76ee\u524d\u53ea\u6709EC618\u5e73\u53f0\u9002\u7528\n\u4f20\u5165\u503c\uff1a\nint \u5904\u7406\u6a21\u5f0f\uff0c0\u6b7b\u673a\u505c\u673a\uff0c1\u6b7b\u673a\u540e\u91cd\u542f\uff0c2\u6b7b\u673a\u540e\u5c3d\u91cf\u5c06\u9519\u8bef\u4fe1\u606f\u63d0\u4ea4\u7ed9\u5916\u90e8\u5de5\u5177\u540e\u91cd\u542f\n\u4f8b\u5b50\uff1a\nmcu.hardfault(0)\t--\u6b7b\u673a\u540e\u505c\u673a\uff0c\u4e00\u822c\u7528\u4e8e\u8c03\u8bd5\u72b6\u6001\nmcu.hardfault(1)\t--\u6b7b\u673a\u540e\u91cd\u542f\uff0c\u4e00\u822c\u7528\u4e8e\u6b63\u5f0f\u4ea7\u54c1\nmcu.hardfault(2)\t--\u6b7b\u673a\u540e\u5c3d\u91cf\u5c06\u9519\u8bef\u4fe1\u606f\u63d0\u4ea4\u7ed9\u5916\u90e8\u5de5\u5177\u540e\u91cd\u542f\uff0c\u4e00\u822c\u7528\u4e8e\u538b\u529b\u6d4b\u8bd5\u6216\u8005\u6b63\u5f0f\u4ea7\u54c1\n", "prefix": "mcu.hardfault"}, "mcu.iomux": {"body": "mcu.iomux(${1:type},${2:channel},${3:value})", "description": "mcu.iomux(type, channel, value) - \u5728\u5916\u8bbe\u6253\u5f00\u524d\uff0c\u5c06\u5916\u8bbeIO\u590d\u7528\u5230\u975e\u9ed8\u8ba4\u914d\u7f6e\u4e0a\uff0c\u76ee\u524d\u53ea\u652f\u6301Air780E\u7684\u90e8\u5206\u5916\u8bbe\u590d\u7528\u5230\u5176\u4ed6\u914d\u7f6e\uff0c\u8fd9\u662f\u4e00\u4e2a\u4e34\u65f6\u63a5\u53e3\uff0c\u5982\u679c\u540e\u7eed\u6709\u66f4\u5408\u9002\u7684api\uff0c\u672c\u63a5\u53e3\u5c06\u4e0d\u518d\u66f4\u65b0\n\u4f20\u5165\u503c\uff1a\nint \u5916\u8bbe\u7c7b\u578b\uff0c\u76ee\u524d\u53ea\u6709mcu.UART,mcu.I2C\nint \u603b\u7ebf\u5e8f\u53f7\uff0c0~N\uff0c\nint \u65b0\u7684\u914d\u7f6e\uff0c\u8fd9\u4e2a\u9700\u8981\u6839\u636e\u5177\u4f53\u5e73\u53f0\u51b3\u5b9a\n\u4f8b\u5b50\uff1a\nmcu.iomux(mcu.UART, 2, 1)\t-- Air780E\u7684UART2\u590d\u7528\u5230gpio12\u548cgpio13(Air780EG\u9ed8\u8ba4\u662f\u8fd9\u4e2a\u590d\u7528\uff0c\u4e0d\u8981\u52a8)\nmcu.iomux(mcu.UART, 2, 2)\t-- Air780E\u7684UART2\u590d\u7528\u5230gpio6\u548cgpio7\nmcu.iomux(mcu.I2C, 0, 1)\t-- Air780E\u7684I2C0\u590d\u7528\u5230gpio12\u548cgpio13\nmcu.iomux(mcu.I2C, 0, 2)\t-- Air780E\u7684I2C0\u590d\u7528\u5230gpio16\u548cgpio17\nmcu.iomux(mcu.I2C, 1, 1)\t-- Air780E\u7684I2C1\u590d\u7528\u5230gpio4\u548cgpio5\n", "prefix": "mcu.iomux"}, "mcu.altfun": {"body": "mcu.altfun(${1:type},${2:sn},${3:pad_index},${4:alt_fun},${5:is_input})", "description": "mcu.altfun(type, sn, pad_index, alt_fun, is_input) - IO\u5916\u8bbe\u529f\u80fd\u590d\u7528\u9009\u62e9\uff0c\u6ce8\u610f\u666e\u901aMCU\u662f\u4ee5GPIO\u53f7\u4e3a\u5e8f\u53f7\uff0c\u4f46\u662f\u4e13\u7528SOC\uff0c\u6bd4\u5982CAT1\u7684\uff0c\u662f\u4ee5PAD\u53f7\u4e3a\u5e8f\u53f7\u3002\u672c\u51fd\u6570\u4e0d\u662f\u6240\u6709\u5e73\u53f0\u9002\u7528\n\u4f20\u5165\u503c\uff1a\nint \u5916\u8bbe\u7c7b\u578b\uff0c\u76ee\u524d\u6709mcu.UART,mcu.I2C,mcu.SPI,mcu.PWM,mcu.GPIO,mcu.I2S,mcu.LCD,mcu.CAM\uff0c\u5177\u4f53\u9700\u8981\u770b\u5e73\u53f0\nint \u603b\u7ebf\u5e8f\u53f7\uff0c0~N\uff0c\u5982\u679c\u662fmcu.GPIO\uff0c\u5219\u662fGPIO\u53f7\u3002\u5177\u4f53\u770b\u5e73\u53f0\u7684IOMUX\u590d\u7528\u8868\nint pad\u53f7\uff0c\u5982\u679c\u7559\u7a7a\u4e0d\u5199\uff0c\u5219\u8868\u793a\u6e05\u9664\u914d\u7f6e\uff0c\u4f7f\u7528\u5e73\u53f0\u7684\u9ed8\u8ba4\u914d\u7f6e\u3002\u5177\u4f53\u770b\u5e73\u53f0\u7684IOMUX\u590d\u7528\u8868\nint \u590d\u7528\u529f\u80fd\u5e8f\u53f7\uff0c0~N\u3002\u5177\u4f53\u770b\u5e73\u53f0\u7684IOMUX\u590d\u7528\u8868\nboolean \u662f\u5426\u662f\u8f93\u5165\u529f\u80fd\uff0ctrue\u662f\uff0c\u7559\u7a7a\u662ffalse\n\u4f8b\u5b50\uff1a\nmcu.altfun(mcu.GPIO, 46, 32, 1, 0)\nmcu.altfun(mcu.GPIO, 46)\n", "prefix": "mcu.altfun"}, "miniz.compress": {"body": "miniz.compress(${1:data},${2:flags})", "description": "miniz.compress(data, flags) - \u5feb\u901f\u538b\u7f29,\u9700\u8981165kb\u7684\u7cfb\u7edf\u5185\u5b58\u548c32kb\u7684LuaVM\u5185\u5b58\n\u4f20\u5165\u503c\uff1a\nstring \u5f85\u538b\u7f29\u7684\u6570\u636e, \u5c11\u4e8e400\u5b57\u8282\u7684\u6570\u636e\u4e0d\u5efa\u8bae\u538b\u7f29, \u4e14\u538b\u7f29\u540e\u7684\u6570\u636e\u4e0d\u80fd\u5927\u4e8e32k.\nflags \u538b\u7f29\u53c2\u6570,\u9ed8\u8ba4\u662f miniz.WRITE_ZLIB_HEADER , \u5373\u5199\u5165zlib\u5934\u90e8\n\u8fd4\u56de\u503c\uff1a\nstring \u82e5\u538b\u7f29\u6210\u529f,\u8fd4\u56de\u6570\u636e\u5b57\u7b26\u4e32, \u5426\u5219\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\n\nlocal bigdata = \"123jfoiq4hlkfjbnasdilfhuqwo;hfashfp9qw38hrfaios;hfiuoaghfluaeisw\"\nlocal cdata = miniz.compress(bigdata)\nif cdata then\n log.info(\"miniz\", \"before\", #bigdata, \"after\", #cdata)\n log.info(\"miniz\", \"cdata as hex\", cdata:toHex())\nend\n\n", "prefix": "miniz.compress"}, "miniz.uncompress": {"body": "miniz.uncompress(${1:data},${2:flags})", "description": "miniz.uncompress(data, flags) - \u5feb\u901f\u89e3\u538b,\u9700\u898132kb\u7684LuaVM\u5185\u5b58\n\u4f20\u5165\u503c\uff1a\nstring \u5f85\u89e3\u538b\u7684\u6570\u636e, \u89e3\u538b\u540e\u7684\u6570\u636e\u4e0d\u80fd\u5927\u4e8e32k\nflags \u89e3\u538b\u53c2\u6570,\u9ed8\u8ba4\u662f miniz.PARSE_ZLIB_HEADER , \u5373\u89e3\u6790zlib\u5934\u90e8\n\u8fd4\u56de\u503c\uff1a\nstring \u82e5\u89e3\u538b\u6210\u529f,\u8fd4\u56de\u6570\u636e\u5b57\u7b26\u4e32, \u5426\u5219\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\n\nlocal bigdata = \"123jfoiq4hlkfjbnasdilfhuqwo;hfashfp9qw38hrfaios;hfiuoaghfluaeisw\"\nlocal cdata = miniz.compress(bigdata)\nif cdata then\n log.info(\"miniz\", \"before\", #bigdata, \"after\", #cdata)\n log.info(\"miniz\", \"cdata as hex\", cdata:toHex())\n\n local udata = miniz.uncompress(cdata)\n log.info(\"miniz\", \"udata\", udata)\nend\n", "prefix": "miniz.uncompress"}, "mlx90640.init": {"body": "mlx90640.init(${1:i2c_id},${2:refresh_rate)(\u6ce8\u610f:2023.5.15\u4e4b\u540e\u4f7f\u7528\u6b64\u63a5\u53e3},${3:\u7528\u6237\u9700\u8981\u81ea\u884c\u521d\u59cb\u5316i2c\u63a5\u53e3})", "description": "mlx90640.init(i2c_id,refresh_rate) (\u6ce8\u610f:2023.5.15\u4e4b\u540e\u4f7f\u7528\u6b64\u63a5\u53e3,\u7528\u6237\u9700\u8981\u81ea\u884c\u521d\u59cb\u5316i2c\u63a5\u53e3) - \u521d\u59cb\u5316MLX90640\u4f20\u611f\u5668\n\u4f20\u5165\u503c\uff1a\nint \u4f20\u611f\u5668\u6240\u5728\u7684i2c\u603b\u7ebfid\u6216\u8005\u8f6fi2c\u5bf9\u8c61,\u9ed8\u8ba4\u4e3a0\nint \u4f20\u611f\u5668\u7684\u6d4b\u91cf\u901f\u7387,\u9ed8\u8ba4\u4e3a4Hz\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue, \u5426\u5219\u8fd4\u56denil\u6216\u8005false\n\u4f8b\u5b50\uff1a\ni2c.setup(i2cid,i2c_speed)\nif mlx90640.init(0,mlx90640.FPS4HZ) then\n log.info(\"mlx90640\", \"init ok\")\n sys.wait(500) -- \u7a0d\u7b49\u7247\u523b\n while 1 do\n mlx90640.feed() -- \u53d6\u4e00\u5e27\u6570\u636e\n mlx90640.draw2lcd(0, 0 ,1)-- \u9700\u63d0\u524d\u628alcd\u521d\u59cb\u5316\u597d\n sys.wait(250) -- \u9ed8\u8ba4\u662f4HZ\n end\nelse\n log.info(\"mlx90640\", \"init fail\")\nend\n\n", "prefix": "mlx90640.init"}, "mlx90640.feed": {"body": "mlx90640.feed()", "description": "mlx90640.feed() - \u53d6\u4e00\u5e27\u6570\u636e\n", "prefix": "mlx90640.feed"}, "mlx90640.raw_data": {"body": "mlx90640.raw_data()", "description": "mlx90640.raw_data() - \u83b7\u53d6\u5e95\u5c42\u88f8\u6570\u636e,\u6d6e\u70b9\u6570\u77e9\u9635\n\u8fd4\u56de\u503c\uff1a\ntable \u6d6e\u70b9\u6570\u6570\u636e,768\u4e2a\u50cf\u7d20\u5bf9\u5e94\u7684\u6e29\u5ea6\u503c\n", "prefix": "mlx90640.raw_data"}, "mlx90640.raw_point": {"body": "mlx90640.raw_point(${1:index})", "description": "mlx90640.raw_point(index) - \u83b7\u53d6\u5355\u4e00\u70b9\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nint \u7d22\u5f15\u503c(0-767)\n\u8fd4\u56de\u503c\uff1a\nnumber \u5355\u70b9\u6e29\u5ea6\u503c\n", "prefix": "mlx90640.raw_point"}, "mlx90640.ta_temp": {"body": "mlx90640.ta_temp()", "description": "mlx90640.ta_temp() - \u83b7\u53d6\u5916\u58f3\u6e29\u5ea6\n\u8fd4\u56de\u503c\uff1a\nnumber \u5916\u58f3\u6e29\u5ea6\n", "prefix": "mlx90640.ta_temp"}, "mlx90640.max_temp": {"body": "mlx90640.max_temp()", "description": "mlx90640.max_temp() - \u83b7\u53d6\u6700\u9ad8\u6e29\u5ea6\n\u8fd4\u56de\u503c\uff1a\nnumber \u6700\u9ad8\u6e29\u5ea6\nnumber \u6700\u9ad8\u6e29\u5ea6\u4f4d\u7f6e\n", "prefix": "mlx90640.max_temp"}, "mlx90640.min_temp": {"body": "mlx90640.min_temp()", "description": "mlx90640.min_temp() - \u83b7\u53d6\u6700\u4f4e\u6e29\u5ea6\n\u8fd4\u56de\u503c\uff1a\nnumber \u6700\u4f4e\u6e29\u5ea6\nnumber \u6700\u4f4e\u6e29\u5ea6\u4f4d\u7f6e\n", "prefix": "mlx90640.min_temp"}, "mlx90640.average_temp": {"body": "mlx90640.average_temp()", "description": "mlx90640.average_temp() - \u83b7\u53d6\u5e73\u5747\u6e29\u5ea6\n\u8fd4\u56de\u503c\uff1a\nnumber \u5e73\u5747\u6e29\u5ea6\n", "prefix": "mlx90640.average_temp"}, "mlx90640.get_vdd": {"body": "mlx90640.get_vdd()", "description": "mlx90640.get_vdd() - \u83b7\u53d6vdd\n\u8fd4\u56de\u503c\uff1a\nnumber vdd\n", "prefix": "mlx90640.get_vdd"}, "mlx90640.draw2lcd": {"body": "mlx90640.draw2lcd(${1:x},${2:y},${3:fold})", "description": "mlx90640.draw2lcd(x, y, fold) - \u7ed8\u5236\u5230lcd\n\u4f20\u5165\u503c\uff1a\nint \u5de6\u4e0a\u89d2x\u5750\u6807\nint \u5de6\u4e0a\u89d2y\u5750\u6807\nint \u653e\u5927\u500d\u6570,\u5fc5\u987b\u4e3a2\u7684\u6307\u6570\u500d(1,2,4,8,16...)\u9ed8\u8ba4\u4e3a1\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n", "prefix": "mlx90640.draw2lcd"}, "mobile.imei": {"body": "mobile.imei(${1:index})", "description": "mobile.imei(index) - \u83b7\u53d6IMEI\n\u4f20\u5165\u503c\uff1a\nint \u7f16\u53f7,\u9ed8\u8ba40. \u5728\u652f\u6301\u53cc\u5361\u7684\u6a21\u5757\u4e0a\u624d\u4f1a\u51fa\u73b00\u62161\u7684\u60c5\u51b5\n\u8fd4\u56de\u503c\uff1a\nstring \u5f53\u524d\u7684IMEI\u503c,\u82e5\u5931\u8d25\u8fd4\u56denil\n", "prefix": "mobile.imei"}, "mobile.imsi": {"body": "mobile.imsi(${1:index})", "description": "mobile.imsi(index) - \u83b7\u53d6IMSI\n\u4f20\u5165\u503c\uff1a\nint \u7f16\u53f7,\u9ed8\u8ba40. \u5728\u652f\u6301\u53cc\u5361\u7684\u6a21\u5757\u4e0a\u624d\u4f1a\u51fa\u73b00\u62161\u7684\u60c5\u51b5\n\u8fd4\u56de\u503c\uff1a\nstring \u5f53\u524d\u7684IMSI\u503c,\u82e5\u5931\u8d25\u8fd4\u56denil\n", "prefix": "mobile.imsi"}, "mobile.sn": {"body": "mobile.sn()", "description": "mobile.sn() - \u83b7\u53d6SN\n\u8fd4\u56de\u503c\uff1a\nstring \u5f53\u524d\u7684SN\u503c,\u82e5\u5931\u8d25\u8fd4\u56denil. \u6ce8\u610f, SN\u53ef\u80fd\u5305\u542b\u4e0d\u53ef\u89c1\u5b57\u7b26\n\u4f8b\u5b50\uff1a\n-- \u6ce8\u610f, \u51fa\u5382\u672a\u5fc5\u6709\u5199SN\n-- \u4e00\u822c\u7528\u9014\u7684\u552f\u4e00id, \u53ef\u4ee5\u7528mobile.imei()\u4ee3\u66ff\n-- \u5982\u9700\u8981\u771f\u6b63\u7684\u552f\u4e00ID, \u4f7f\u7528 mcu.unique_id()\n", "prefix": "mobile.sn"}, "mobile.muid": {"body": "mobile.muid()", "description": "mobile.muid() - \u83b7\u53d6MUID\n\u8fd4\u56de\u503c\uff1a\nstring \u5f53\u524d\u7684MUID\u503c,\u82e5\u5931\u8d25\u8fd4\u56denil\n", "prefix": "mobile.muid"}, "mobile.iccid": {"body": "mobile.iccid(${1:id})", "description": "mobile.iccid(id) - \u83b7\u53d6\u6216\u8bbe\u7f6eICCID\n\u4f20\u5165\u503c\uff1a\nint SIM\u5361\u7684\u7f16\u53f7, \u4f8b\u59820, 1, \u9ed8\u8ba40\n\u8fd4\u56de\u503c\uff1a\nstring ICCID\u503c,\u82e5\u5931\u8d25\u8fd4\u56denil\n", "prefix": "mobile.iccid"}, "mobile.number": {"body": "mobile.number(${1:id})", "description": "mobile.number(id) - \u83b7\u53d6\u624b\u673a\u5361\u53f7\uff0c\u6ce8\u610f\uff0c\u53ea\u6709\u5199\u5165\u4e86\u624b\u673a\u53f7\u624d\u80fd\u8bfb\u51fa\uff0c\u56e0\u6b64\u6709\u53ef\u80fd\u8bfb\u51fa\u6765\u662f\u7a7a\u7684\n\u4f20\u5165\u503c\uff1a\nint SIM\u5361\u7684\u7f16\u53f7, \u4f8b\u59820, 1, \u9ed8\u8ba40\n\u8fd4\u56de\u503c\uff1a\nstring number\u503c,\u82e5\u5931\u8d25\u8fd4\u56denil\n", "prefix": "mobile.number"}, "mobile.simid": {"body": "mobile.simid(${1:id})", "description": "mobile.simid(id) - \u83b7\u53d6\u5f53\u524dSIM\u5361\u69fd,\u6216\u8005\u5207\u6362\u5361\u69fd\n\u4f20\u5165\u503c\uff1a\nint SIM\u5361\u7684\u7f16\u53f7, \u4f8b\u59820, 1, \u5982\u679c\u652f\u6301\u53cc\u5361\uff0c\u6bd4\u5982EC618\uff0c\u53ef\u4ee5\u586b2\u6765\u81ea\u9002\u5e94\uff0c\u4f46\u662f\u4f1a\u5360\u7528\u63894\u4e2aIO(gpio4/5/6/23)\u3002\u5982\u679c\u4e0d\u586b\u5c31\u76f4\u63a5\u8bfb\u53d6\u5f53\u524d\u5361\u69fd\nboolean \u662f\u5426\u4f18\u5148\u7528SIM0\uff0c\u53ea\u6709SIM\u5361\u7f16\u53f7\u51992\u81ea\u9002\u5e94\u624d\u6709\u7528\uff01\uff01\uff01\u3002true\u4f18\u5148\u7528SIM0\uff0cfalse\u5219\u7531\u5177\u4f53\u5e73\u53f0\u51b3\u5b9a\uff0c\u652f\u6301\u53cc\u5361\u53cc\u5f85SIM0\u4f18\u5148\uff0c\u4e0d\u652f\u6301\u7684\u662f\u4e0a\u4e00\u6b21\u68c0\u6d4b\u5230\u7684\u4f18\u5148\uff0c\u9ed8\u8ba4\u662ffalse\uff0c\u5fc5\u987b\u5728\u5f00\u673a\u5c31\u914d\u7f6e\uff0c\u5426\u5219\u5c31\u65e0\u6548\u4e86\n\u8fd4\u56de\u503c\uff1a\nint \u5f53\u524dsim\u5361\u69fd\u7f16\u53f7,\u82e5\u5931\u8d25\u8fd4\u56de-1\n\u4f8b\u5b50\uff1a\nmobile.simid(0) -- \u56fa\u5b9a\u4f7f\u7528SIM0\nmobile.simid(1) -- \u56fa\u4ef6\u4f7f\u7528SIM1\nmobile.simid(2) -- \u81ea\u52a8\u8bc6\u522bSIM0, SIM1, \u4f18\u5148\u7ea7\u770b\u5177\u4f53\u5e73\u53f0\nmobile.simid(2, true) -- -- \u81ea\u52a8\u8bc6\u522bSIM0, SIM1, \u4e14SIM0\u4f18\u5148\n-- \u63d0\u9192, \u81ea\u52a8\u8bc6\u522b\u662f\u4f1a\u589e\u52a0\u65f6\u95f4\u7684\n", "prefix": "mobile.simid"}, "mobile.simPin": {"body": "mobile.simPin(${1:id},${2:operation},${3:pin1},${4:pin2})", "description": "mobile.simPin(id,operation,pin1,pin2) - \u68c0\u6d4b\u5f53\u524dSIM\u5361\u662f\u5426\u51c6\u5907\u597d\uff0c\u5bf9SIM\u5361\u7684PIN\u7801\u505a\u76f8\u5173\u64cd\u4f5c\n\u4f20\u5165\u503c\uff1a\nint SIM\u5361\u7684\u7f16\u53f7, \u4f8b\u59820, 1, \u652f\u6301\u53cc\u5361\u53cc\u5f85\u7684\u624d\u9700\u8981\u9009\u62e9\nint PIN\u7801\u64cd\u4f5c\u7c7b\u578b\uff0c\u53ea\u80fd\u662fmobile.PIN_XXXX\uff0c\u4e0d\u64cd\u4f5c\u5c31\u7559\u7a7a\nstring \u66f4\u6362pin\u65f6\u64cd\u4f5c\u7684pin\u7801\uff0c\u6216\u8005\u9a8c\u8bc1\u64cd\u4f5c\u7684pin\u7801\uff0c\u6216\u8005\u89e3\u9501pin\u7801\u65f6\u7684PUK\uff0c4~8\u5b57\u8282\nstring \u66f4\u6362pin\u7801\u64cd\u4f5c\u65f6\u7684\u65b0\u7684pin\u7801\uff0c\u89e3\u9501pin\u7801\u65f6\u7684\u65b0PIN\uff0c4~8\u5b57\u8282\n\u8fd4\u56de\u503c\uff1a\nboolean \u5f53\u65e0PIN\u64cd\u4f5c\u65f6\uff0c\u8fd4\u56deSIM\u5361\u662f\u5426\u51c6\u5907\u597d\uff0c\u6709PIN\u64cd\u4f5c\u65f6\uff0c\u8fd4\u56de\u662f\u5426\u6210\u529f\n\u4f8b\u5b50\uff1a\nlocal cpin_is_ready = mobile.simPin() -- \u5f53\u524dsim\u5361\u662f\u5426\u51c6\u5907\u597d\uff0c\u4e00\u822c\u8fd4\u56defalse\u5c31\u662f\u6ca1\u5361\nlocal succ = mobile.simPin(0, mobile.PIN_VERIFY, \"1234\")\t-- \u8f93\u5165pin\u7801\u9a8c\u8bc1\n", "prefix": "mobile.simPin"}, "mobile.rtime": {"body": "mobile.rtime(${1:time},${2:auto_reset_stack})", "description": "mobile.rtime(time, auto_reset_stack) - \u8bbe\u7f6eRRC\u81ea\u52a8\u91ca\u653e\u65f6\u95f4\u95f4\u9694\uff0c\u5f53\u5f00\u542f\u65f6\u540e\uff0c\u9047\u5230\u6781\u5f31\u4fe1\u53f7+\u9891\u7e41\u6570\u636e\u64cd\u4f5c\u53ef\u80fd\u4f1a\u5f15\u8d77\u7f51\u7edc\u4e25\u91cd\u6545\u969c\uff0c\u56e0\u6b64\u9700\u8981\u989d\u5916\u8bbe\u7f6e\u81ea\u52a8\u91cd\u542f\u534f\u8bae\u6808\n\u4f20\u5165\u503c\uff1a\nint RRC\u81ea\u52a8\u91ca\u653e\u65f6\u95f4\uff0c\u7b49\u540c\u4e8eAir724\u7684AT+RTIME\uff0c\u5355\u4f4d\u79d2\uff0c\u51990\u6216\u8005\u4e0d\u5199\u5219\u662f\u505c\u7528\uff0c\u4e0d\u8981\u8d85\u8fc720\u79d2\uff0c\u6ca1\u6709\u610f\u4e49\nboolean \u7f51\u7edc\u9047\u5230\u4e25\u91cd\u6545\u969c\u65f6\u5c1d\u8bd5\u81ea\u52a8\u6062\u590d\uff0c\u548c\u98de\u884c\u6a21\u5f0f/SIM\u5361\u5207\u6362\u51b2\u7a81\uff0ctrue\u5f00\u542f\uff0cfalse\u5173\u95ed\uff0c\u7559\u7a7a\u65f6\uff0c\u5982\u679c\u8bbe\u7f6e\u4e86\u65f6\u95f4\u5219\u81ea\u52a8\u5f00\u542f\u3002\u539f\u5382\u4f18\u5316\u8fc7\u534f\u8bae\u6808\u540e\u4e0d\u9700\u8981\u4e86\u3002\u672c\u53c2\u6570\u5e9f\u5f03\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n", "prefix": "mobile.rtime"}, "mobile.setAuto": {"body": "mobile.setAuto(${1:check_sim_period},${2:get_cell_period},${3:search_cell_time},${4:auto_reset_stack},${5:network_check_period})", "description": "mobile.setAuto(check_sim_period, get_cell_period, search_cell_time, auto_reset_stack, network_check_period) - \u8bbe\u7f6e\u4e00\u4e9b\u8f85\u52a9\u5468\u671f\u6027\u6216\u8005\u81ea\u52a8\u529f\u80fd\uff0c\u76ee\u524d\u652f\u6301SIM\u5361\u6682\u65f6\u8131\u79bb\u540e\u6062\u590d\uff0c\u5468\u671f\u6027\u83b7\u53d6\u5c0f\u533a\u4fe1\u606f\uff0c\u7f51\u7edc\u9047\u5230\u4e25\u91cd\u6545\u969c\u65f6\u5c1d\u8bd5\u81ea\u52a8\u6062\u590d\n\u4f20\u5165\u503c\uff1a\nint SIM\u5361\u81ea\u52a8\u6062\u590d\u65f6\u95f4\uff0c\u5355\u4f4d\u6beb\u79d2\uff0c\u5efa\u8bae5000~10000\uff0c\u548c\u98de\u884c\u6a21\u5f0f/SIM\u5361\u5207\u6362\u51b2\u7a81\uff0c\u4e0d\u80fd\u518d\u540c\u4e00\u65f6\u95f4\u4f7f\u7528\uff0c\u5fc5\u987b\u9519\u5f00\u6267\u884c\u3002\u51990\u6216\u8005\u4e0d\u5199\u5219\u662f\u5173\u95ed\u529f\u80fd\nint \u5468\u671f\u6027\u83b7\u53d6\u5c0f\u533a\u4fe1\u606f\u7684\u65f6\u95f4\u95f4\u9694\uff0c\u5355\u4f4d\u6beb\u79d2\u3002\u83b7\u53d6\u5c0f\u533a\u4fe1\u606f\u4f1a\u589e\u52a0\u90e8\u5206\u529f\u8017\u3002\u51990\u6216\u8005\u4e0d\u5199\u5219\u662f\u5173\u95ed\u529f\u80fd\nint \u6bcf\u6b21\u641c\u7d22\u5c0f\u533a\u65f6\u6700\u5927\u641c\u7d22\u65f6\u95f4\uff0c\u5355\u4f4d\u79d2\u3002\u4e0d\u8981\u8d85\u8fc78\u79d2\nboolean \u7f51\u7edc\u9047\u5230\u4e25\u91cd\u6545\u969c\u65f6\u5c1d\u8bd5\u81ea\u52a8\u6062\u590d\uff0c\u548c\u98de\u884c\u6a21\u5f0f/SIM\u5361\u5207\u6362\u51b2\u7a81\uff0ctrue\u5f00\u542f\uff0cfalse\u5173\u95ed\uff0c\u5f00\u59cb\u72b6\u6001\u662ffalse\uff0c\u7559\u7a7a\u5219\u4e0d\u505a\u6539\u53d8\nint \u8bbe\u7f6e\u5b9a\u65f6\u68c0\u6d4b\u7f51\u7edc\u662f\u5426\u6b63\u5e38\u5e76\u4e14\u5728\u68c0\u6d4b\u5230\u957f\u65f6\u95f4\u65e0\u7f51\u65f6\u901a\u8fc7\u91cd\u542f\u534f\u8bae\u6808\u6765\u6062\u590d\uff0c\u65e0\u7f51\u6062\u590d\u65f6\u957f\uff0c\u5355\u4f4dms\uff0c\u5efa\u8bae60000\u4ee5\u4e0a\uff0c\u4e3a\u7f51\u7edc\u641c\u7d22\u7f51\u7edc\u4fdd\u7559\u8db3\u591f\u7684\u65f6\u95f4\uff0c\u7559\u7a7a\u5219\u4e0d\u505a\u66f4\u6539\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n", "prefix": "mobile.setAuto"}, "mobile.apn": {"body": "mobile.apn(${1:index},${2:cid},${3:new_apn_name},${4:user_name},${5:password},${6:ip_type},${7:protocol})", "description": "mobile.apn(index, cid, new_apn_name, user_name, password, ip_type, protocol) - \u83b7\u53d6\u6216\u8bbe\u7f6eAPN\uff0c\u8bbe\u7f6eAPN\u5fc5\u987b\u5728\u5165\u7f51\u524d\u5c31\u8bbe\u7f6e\u597d\uff0c\u6bd4\u5982\u5728SIM\u5361\u8bc6\u522b\u5b8c\u6210\u524d\u5c31\u8bbe\u7f6e\u597d\n\u4f20\u5165\u503c\uff1a\nint \u7f16\u53f7,\u9ed8\u8ba40. \u5728\u652f\u6301\u53cc\u5361\u7684\u6a21\u5757\u4e0a\u624d\u4f1a\u51fa\u73b00\u62161\u7684\u60c5\u51b5\nint cid, \u9ed8\u8ba40\uff0c\u5982\u679c\u8981\u7528\u975e\u9ed8\u8ba4APN\u6765\u6fc0\u6d3b\uff0c\u5fc5\u987b>0\nstring \u65b0\u7684APN,\u4e0d\u586b\u5c31\u662f\u83b7\u53d6APN, \u586b\u4e86\u5c31\u662f\u8bbe\u7f6eAPN, \u662f\u5426\u652f\u6301\u8bbe\u7f6e\u53d6\u51b3\u4e8e\u5e95\u5c42\u5b9e\u73b0\nstring \u65b0\u7684APN\u7684username,\u5982\u679cAPN\u4e0d\u662f\u7a7a,\u90a3\u5fc5\u987b\u586b\u5199,\u5982\u679c\u6ca1\u6709\u7559\u4e2a\u7a7a\u5b57\u7b26\u4e32\"\"\u3002\u5982\u679cAPN\u662f\u7a7a\u7684\uff0c\u90a3\u53ef\u4ee5nil\nstring \u65b0\u7684APN\u7684password,\u5982\u679cAPN\u4e0d\u662f\u7a7a,\u90a3\u5fc5\u987b\u586b\u5199,\u5982\u679c\u6ca1\u6709\u7559\u4e2a\u7a7a\u5b57\u7b26\u4e32\"\"\u3002\u5982\u679cAPN\u662f\u7a7a\u7684\uff0c\u90a3\u53ef\u4ee5nil\nint \u6fc0\u6d3bAPN\u65f6\u7684IP TYPE,1=IPV4 2=IPV6 3=IPV4V6,\u9ed8\u8ba4\u662f1\nint \u6fc0\u6d3bAPN\u65f6,\u5982\u679c\u9700\u8981username\u548cpassword,\u5c31\u8981\u5199\u9274\u6743\u534f\u8bae\u7c7b\u578b,1~3,\u9ed8\u8ba43,\u4ee3\u88681\u548c2\u90fd\u5c1d\u8bd5\u4e00\u4e0b\u3002\u4e0d\u9700\u8981\u9274\u6743\u7684\u51990\nboolean \u662f\u5426\u5220\u9664APN,true\u662f,\u5176\u4ed6\u90fd\u5426,\u53ea\u6709\u53c2\u65703\u65b0\u7684APN\u4e0d\u662fstring\u7684\u65f6\u5019\u624d\u6709\u6548\u679c\n\u8fd4\u56de\u503c\uff1a\nstring \u83b7\u53d6\u5230\u7684\u9ed8\u8ba4APN\u503c,\u5931\u8d25\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\nmobile.apn(0,1,\"cmiot\",\"\",\"\",nil,0) -- \u79fb\u52a8\u516c\u7f51\u5361\u8bbe\u7f6eAPN\u4e3acmiot,\u4e00\u822c\u4e0d\u7528\u8bbe\u7f6e\nmobile.apn(0,1,\"name\",\"user\",\"password\",nil,3) -- \u4e13\u7f51\u5361\u8bbe\u7f6e\u7684demo\uff0cname\uff0cuser\uff0cpassword\u8054\u7cfb\u5361\u5546\u83b7\u53d6\n", "prefix": "mobile.apn"}, "mobile.ipv6": {"body": "mobile.ipv6(${1:onff})", "description": "mobile.ipv6(onff) - \u662f\u5426\u9ed8\u8ba4\u5f00\u542fIPV6\u529f\u80fd\uff0c\u5fc5\u987b\u5728LTE\u7f51\u7edc\u8fde\u63a5\u524d\u5c31\u8bbe\u7f6e\u597d\n\u4f20\u5165\u503c\uff1a\nboolean \u5f00\u5173 true\u5f00\u542f false \u5173\u95ed\n\u8fd4\u56de\u503c\uff1a\nboolean true \u5f53\u524d\u662f\u5f00\u542f\u7684\uff0cfalse \u5f53\u524d\u662f\u5173\u95ed\u7684\n\u4f8b\u5b50\uff1a\n-- \u6ce8\u610f, \u5f00\u542fipv6\u540e, \u5f00\u673a\u8054\u7f51\u4f1a\u61622~3\u79d2\n", "prefix": "mobile.ipv6"}, "mobile.csq": {"body": "mobile.csq()", "description": "mobile.csq() - \u83b7\u53d6csq\n\u8fd4\u56de\u503c\uff1a\nint \u5f53\u524dCSQ\u503c, \u82e5\u5931\u8d25\u8fd4\u56de0. \u8303\u56f4 0 - 31, \u8d8a\u5927\u8d8a\u597d\n\u4f8b\u5b50\uff1a\n-- \u6ce8\u610f, 4G\u6a21\u5757\u7684CSQ\u503c\u4ec5\u4f9b\u53c2\u8003, rsrp/rsrq\u624d\u662f\u771f\u6b63\u7684\u4fe1\u53f7\u5f3a\u5ea6\u6307\u6807\n", "prefix": "mobile.csq"}, "mobile.rssi": {"body": "mobile.rssi()", "description": "mobile.rssi() - \u83b7\u53d6rssi\n\u8fd4\u56de\u503c\uff1a\nint \u5f53\u524drssi\u503c,\u82e5\u5931\u8d25\u8fd4\u56de0. \u8303\u56f4 0 \u5230 -114, \u8d8a\u5c0f\u8d8a\u597d\n", "prefix": "mobile.rssi"}, "mobile.rsrp": {"body": "mobile.rsrp()", "description": "mobile.rsrp() - \u83b7\u53d6rsrp,\u53c2\u8003\u4fe1\u53f7\u63a5\u6536\u529f\u7387\n\u8fd4\u56de\u503c\uff1a\nint \u5f53\u524drsrp\u503c,\u82e5\u5931\u8d25\u8fd4\u56de0. \u53d6\u503c\u8303\u56f4: -44 ~ -140 \uff0c\u503c\u8d8a\u5927\u8d8a\u597d\n", "prefix": "mobile.rsrp"}, "mobile.rsrq": {"body": "mobile.rsrq()", "description": "mobile.rsrq() - \u83b7\u53d6rsrq,\u53c2\u8003\u4fe1\u53f7\u53d1\u9001\u529f\u7387\n\u8fd4\u56de\u503c\uff1a\nint \u5f53\u524drsrq\u503c,\u82e5\u5931\u8d25\u8fd4\u56de0. \u53d6\u503c\u8303\u56f4: -3 ~ -19.5 \uff0c\u503c\u8d8a\u5927\u8d8a\u597d\n", "prefix": "mobile.rsrq"}, "mobile.snr": {"body": "mobile.snr()", "description": "mobile.snr() - \u83b7\u53d6snr,\u4fe1\u566a\u6bd4\n\u8fd4\u56de\u503c\uff1a\nint \u5f53\u524dsnq\u503c,\u82e5\u5931\u8d25\u8fd4\u56de0.\u8303\u56f4 0 - 30, \u8d8a\u5927\u8d8a\u597d\n", "prefix": "mobile.snr"}, "mobile.eci": {"body": "mobile.eci()", "description": "mobile.eci() - \u83b7\u53d6\u5f53\u524d\u670d\u52a1\u5c0f\u533a\u7684ECI(E-UTRAN Cell Identifier)\n\u8fd4\u56de\u503c\uff1a\nint \u5f53\u524deci\u503c,\u82e5\u5931\u8d25\u8fd4\u56de-1\n", "prefix": "mobile.eci"}, "mobile.tac": {"body": "mobile.tac()", "description": "mobile.tac() - \u83b7\u53d6\u5f53\u524d\u670d\u52a1\u5c0f\u533a\u7684TAC\u6216\u8005LAC\n\u8fd4\u56de\u503c\uff1a\nint \u5f53\u524deci\u503c,\u82e5\u5931\u8d25\u8fd4\u56de-1. \u5982\u679c\u5c1a\u672a\u6ce8\u518c\u5230\u7f51\u7edc,\u4f1a\u8fd4\u56de0\n\u4f8b\u5b50\uff1a\n-- \u672cAPI\u4e8e 2023.7.9 \u65b0\u589e\n", "prefix": "mobile.tac"}, "mobile.enbid": {"body": "mobile.enbid()", "description": "mobile.enbid() - \u83b7\u53d6\u5f53\u524d\u670d\u52a1\u5c0f\u533a\u7684eNBID(eNodeB Identifier)\n\u8fd4\u56de\u503c\uff1a\nint \u5f53\u524denbid\u503c,\u82e5\u5931\u8d25\u8fd4\u56de-1\n", "prefix": "mobile.enbid"}, "mobile.flymode": {"body": "mobile.flymode(${1:index},${2:enable})", "description": "mobile.flymode(index, enable) - \u8fdb\u51fa\u98de\u884c\u6a21\u5f0f\n\u4f20\u5165\u503c\uff1a\nint \u7f16\u53f7,\u9ed8\u8ba40. \u5728\u652f\u6301\u53cc\u5361\u7684\u6a21\u5757\u4e0a\u624d\u4f1a\u51fa\u73b00\u62161\u7684\u60c5\u51b5\nbool \u662f\u5426\u8bbe\u7f6e\u4e3a\u98de\u884c\u6a21\u5f0f,true\u4e3a\u8bbe\u7f6e, false\u4e3a\u9000\u51fa,\u53ef\u9009\n\u8fd4\u56de\u503c\uff1a\nbool \u539f\u98de\u884c\u6a21\u5f0f\u7684\u72b6\u6001\n", "prefix": "mobile.flymode"}, "mobile.status": {"body": "mobile.status()", "description": "mobile.status() - \u83b7\u53d6\u7f51\u7edc\u72b6\u6001\n\u8fd4\u56de\u503c\uff1a\nint \u5f53\u524d\u7f51\u7edc\u72b6\u6001,0:\u7f51\u7edc\u672a\u6ce8\u518c;1:\u7f51\u7edc\u5df2\u6ce8\u518c;2:\u6b63\u5728\u641c\u7f51\u4e2d;3:\u7f51\u7edc\u6ce8\u518c\u88ab\u62d2\u7edd\n", "prefix": "mobile.status"}, "mobile.getCellInfo": {"body": "mobile.getCellInfo()", "description": "mobile.getCellInfo() - \u83b7\u53d6\u673a\u5236\u4fe1\u606f\n\u8fd4\u56de\u503c\uff1a\ntable \u5305\u542b\u57fa\u7ad9\u6570\u636e\u7684\u6570\u7ec4\n\u4f8b\u5b50\uff1a\n-- \u6ce8\u610f: \u4ece2023.06.20\u5f00\u59cb, \u9700\u8981\u4e3b\u52a8\u8bf7\u6c42\u4e00\u6b21reqCellInfo\u624d\u4f1a\u6709\u57fa\u7ad9\u6570\u636e.\n\n--\u793a\u4f8b\u8f93\u51fa\n--[[\n[\n {\"rsrq\":-10,\"rssi\":-55,\"cid\":124045360,\"mnc\":17,\"pci\":115,\"earfcn\":1850,\"snr\":15,\"rsrp\":-85,\"mcc\":1120,\"tdd\":0},\n {\"pci\":388,\"rsrq\":-11,\"mnc\":17,\"earfcn\":2452,\"snr\":5,\"rsrp\":-67,\"mcc\":1120,\"cid\":124045331},\n {\"pci\":100,\"rsrq\":-9,\"mnc\":17,\"earfcn\":75,\"snr\":17,\"rsrp\":-109,\"mcc\":1120,\"cid\":227096712}\n]\n]]\n\nmobile.reqCellInfo(60)\n-- \u8ba2\u9605\nsys.subscribe(\"CELL_INFO_UPDATE\", function()\n log.info(\"cell\", json.encode(mobile.getCellInfo()))\nend)\n\n-- \u5b9a\u671f\u8f6e\u8bad\u5f0f\nsys.taskInit(function()\n sys.wait(3000)\n while 1 do\n mobile.reqCellInfo(15)\n sys.waitUntil(\"CELL_INFO_UPDATE\", 15000)\n log.info(\"cell\", json.encode(mobile.getCellInfo()))\n end\nend)\n", "prefix": "mobile.getCellInfo"}, "mobile.reqCellInfo": {"body": "mobile.reqCellInfo(${1:timeout})", "description": "mobile.reqCellInfo(timeout) - \u53d1\u8d77\u57fa\u7ad9\u4fe1\u606f\u67e5\u8be2,\u542b\u4e34\u8fd1\u5c0f\u533a\n\u4f20\u5165\u503c\uff1a\nint \u8d85\u65f6\u65f6\u957f,\u5355\u4f4d\u79d2,\u9ed8\u8ba415. \u6700\u5c115, \u6700\u9ad860\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n-- \u53c2\u8003 mobile.getCellInfo \u51fd\u6570\n", "prefix": "mobile.reqCellInfo"}, "mobile.reset": {"body": "mobile.reset()", "description": "mobile.reset() - \u91cd\u542f\u534f\u8bae\u6808\n\u4f8b\u5b50\uff1a\n-- \u91cd\u542fLTE\u534f\u8bae\u6808\nmobile.reset()\n", "prefix": "mobile.reset"}, "mobile.dataTraffic": {"body": "mobile.dataTraffic(${1:clearUplink},${2:clearDownlink})", "description": "mobile.dataTraffic(clearUplink, clearDownlink) - \u6570\u636e\u91cf\u6d41\u91cf\u5904\u7406\n\u4f20\u5165\u503c\uff1a\nboolean \u6e05\u7a7a\u4e0a\u884c\u6d41\u91cf\u7d2f\u8ba1\u503c\uff0ctrue\u6e05\u7a7a\uff0c\u5176\u4ed6\u5ffd\u7565\nboolean \u6e05\u7a7a\u4e0b\u884c\u6d41\u91cf\u7d2f\u8ba1\u503c\uff0ctrue\u6e05\u7a7a\uff0c\u5176\u4ed6\u5ffd\u7565\n\u8fd4\u56de\u503c\uff1a\nint \u4e0a\u884c\u6d41\u91cfGB\nint \u4e0a\u884c\u6d41\u91cfB\nint \u4e0b\u884c\u6d41\u91cfGB\nint \u4e0b\u884c\u6d41\u91cfB\n\u4f8b\u5b50\uff1a\n-- \u83b7\u53d6\u4e0a\u4e0b\u884c\u6d41\u91cf\u7d2f\u8ba1\u503c\n-- \u4e0a\u884c\u6d41\u91cf\u503cByte = uplinkGB * 1024 * 1024 * 1024 + uplinkB\n-- \u4e0b\u884c\u6d41\u91cf\u503cByte = downlinkGB * 1024 * 1024 * 1024 + downlinkB\nlocal uplinkGB, uplinkB, downlinkGB, downlinkB = mobile.dataTraffic()\n\n-- \u6e05\u7a7a\u4e0a\u4e0b\u884c\u6d41\u91cf\u7d2f\u8ba1\u503c\nmobile.dataTraffic(true, true)\n", "prefix": "mobile.dataTraffic"}, "mobile.config": {"body": "mobile.config(${1:item},${2:value})", "description": "mobile.config(item, value) - \u7f51\u7edc\u7279\u6b8a\u914d\u7f6e\uff0c\u9488\u5bf9\u4e0d\u540c\u5e73\u53f0\u6709\u4e0d\u540c\u7684\u914d\u7f6e\uff0c\u8c28\u614e\u4f7f\u7528\uff0c\u76ee\u524d\u53ea\u6709EC618\n\u4f20\u5165\u503c\uff1a\nint \u914d\u7f6e\u9879\u76ee\uff0c\u770bmobile.CONF_XXX\nint \u914d\u7f6e\u503c\n\u8fd4\u56de\u503c\uff1a\nboolean \u662f\u5426\u6210\u529f\n\u4f8b\u5b50\uff1a\n-- EC618\u914d\u7f6e\u5c0f\u533a\u91cd\u9009\u4fe1\u53f7\u5dee\u503c\u95e8\u9650\uff0c\u4e0d\u80fd\u5927\u4e8e15dbm\uff0c\u5fc5\u987b\u5728\u98de\u884c\u6a21\u5f0f\u4e0b\u624d\u80fd\u7528\nmobile.flymode(0,true)\nmobile.config(mobile.CONF_RESELTOWEAKNCELL, 15)\nmobile.config(mobile.CONF_STATICCONFIG, 1) --\u5f00\u542f\u7f51\u7edc\u9759\u6001\u4f18\u5316\nmobile.flymode(0,false)\n\n-- EC618\u8bbe\u7f6eSIM\u5199\u5165\u6b21\u6570\u7684\u7edf\u8ba1\n-- \u5173\u95ed\u7edf\u8ba1\nmobile.config(mobile.CONF_SIM_WC_MODE, 0)\n-- \u5f00\u542f\u7edf\u8ba1, \u9ed8\u8ba4\u4e5f\u662f\u5f00\u542f\u7684.\nmobile.config(mobile.CONF_SIM_WC_MODE, 1)\n-- \u8bfb\u53d6\u7edf\u8ba1\u503c,\u5f02\u6b65, \u9700\u8981\u901a\u8fc7\u7cfb\u7edf\u6d88\u606fSIM_IND\u83b7\u53d6\nsys.subscribe(\"SIM_IND\", function(stats, value)\n log.info(\"SIM_IND\", stats)\n if stats == \"SIM_WC\" then\n log.info(\"sim\", \"write counter\", value)\n end\nend)\nmobile.config(mobile.CONF_SIM_WC_MODE, 2)\n-- \u6e05\u7a7a\u7edf\u8ba1\u503c\nmobile.config(mobile.CONF_SIM_WC_MODE, 3)\n", "prefix": "mobile.config"}, "mobile.getBand": {"body": "mobile.getBand(${1:band},${2:is_default})", "description": "mobile.getBand(band, is_default) - \u83b7\u53d6\u5f53\u524d\u4f7f\u7528/\u652f\u6301\u7684band\n\u4f20\u5165\u503c\uff1a\nzbuff \u8f93\u51faband\nboolean true\u9ed8\u8ba4\u652f\u6301\uff0cfalse\u5f53\u524d\u652f\u6301\u7684\uff0c\u9ed8\u8ba4\u662ffalse\uff0c\u5f53\u524d\u662f\u9884\u7559\u529f\u80fd\uff0c\u4e0d\u8981\u5199true\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u8fd4\u56detrue\uff0c\u5931\u8d25\u653e\u56defalse\n\u4f8b\u5b50\uff1a\nlocal buff = zbuff.create(40)\nmobile.getBand(buff) --\u8f93\u51fa\u5f53\u524d\u4f7f\u7528\u7684band\uff0cband\u53f7\u653e\u5728buff\u5185\uff0cbuff[0]\uff0cbuff[1]\uff0cbuff[2] .. buff[buff:used() - 1]\n", "prefix": "mobile.getBand"}, "mobile.setBand": {"body": "mobile.setBand(${1:band},${2:num})", "description": "mobile.setBand(band, num) - \u8bbe\u7f6e\u4f7f\u7528\u7684band\n\u4f20\u5165\u503c\uff1a\nzbuff \u8f93\u5165\u4f7f\u7528\u7684band\nint band\u6570\u91cf\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u8fd4\u56detrue\uff0c\u5931\u8d25\u653e\u56defalse\n\u4f8b\u5b50\uff1a\nlocal buff = zbuff.create(40)\nbuff[0] = 3\nbuff[1] = 5\nbuff[2] = 8\nbuff[3] = 40\nmobile.setBand(buff, 4) --\u8bbe\u7f6e\u4f7f\u7528\u7684band\u4e00\u51714\u4e2a\uff0c\u4e3a3,5,8,40\n", "prefix": "mobile.setBand"}, "mobile.nstOnOff": {"body": "mobile.nstOnOff(${1:onoff},${2:uart_id})", "description": "mobile.nstOnOff(onoff, uart_id) - RF\u6d4b\u8bd5\u5f00\u5173\u548c\u914d\u7f6e\n\u4f20\u5165\u503c\uff1a\nboolean true\u5f00\u542f\u6d4b\u8bd5\u6a21\u5f0f\uff0cfalse\u5173\u95ed\nint \u4e32\u53e3\u53f7\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\nmobile.nstOnOff(true, uart.VUART_0)\t--\u6253\u5f00\u6d4b\u8bd5\u6a21\u5f0f\uff0c\u5e76\u4e14\u7528\u865a\u62df\u4e32\u53e3\u53d1\u9001\u7ed3\u679c\nmobile.nstOnOff(false) --\u5173\u95ed\u6d4b\u8bd5\u6a21\u5f0f\n", "prefix": "mobile.nstOnOff"}, "mobile.nstInput": {"body": "mobile.nstInput(${1:data})", "description": "mobile.nstInput(data) - RF\u6d4b\u8bd5\u6570\u636e\u8f93\u5165\n\u4f20\u5165\u503c\uff1a\nstring or zbuff \u7528\u6237\u4ece\u4e32\u53e3\u83b7\u53d6\u7684\u6570\u636e\uff0c\u6ce8\u610f\uff0c\u5f53\u83b7\u53d6\u5b8c\u6240\u6709\u6570\u636e\u540e\uff0c\u9700\u8981\u518d\u4f20\u4e00\u4e2anil\u6765\u4f5c\u4e3a\u4f20\u8f93\u7ed3\u675f\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\nmobile.nstInput(uart_data)\nmobile.nstInput(nil)\n", "prefix": "mobile.nstInput"}, "mqttc:subscribe": {"body": "mqttc:subscribe(${1:topic},${2:qos})", "description": "mqttc:subscribe(topic, qos) - \u8ba2\u9605\u4e3b\u9898\n\u4f20\u5165\u503c\uff1a\nstring/table \u4e3b\u9898\nint topic\u4e3astring\u65f6\u751f\u6548 0/1/2 \u9ed8\u8ba40\n\u8fd4\u56de\u503c\uff1a\nint \u6d88\u606fid,\u5f53qos\u4e3a1/2\u65f6\u6709\u6548, \u82e5\u5e95\u5c42\u8fd4\u56de\u5931\u8d25,\u4f1a\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\n-- \u8ba2\u9605\u5355\u4e2atopic, \u4e14qos=0\nmqttc:subscribe(\"/luatos/123456\", 0)\n-- \u8ba2\u9605\u5355\u4e2atopic, \u4e14qos=1\nmqttc:subscribe(\"/luatos/12345678\", 1)\n-- \u8ba2\u9605\u591a\u4e2atopic, \u4e14\u4f7f\u7528\u4e0d\u540c\u7684qos\nmqttc:subscribe({[\"/luatos/1234567\"]=1,[\"/luatos/12345678\"]=2})\n", "prefix": "mqttc:subscribe"}, "mqttc:unsubscribe": {"body": "mqttc:unsubscribe(${1:topic})", "description": "mqttc:unsubscribe(topic) - \u53d6\u6d88\u8ba2\u9605\u4e3b\u9898\n\u4f20\u5165\u503c\uff1a\nstring/table \u4e3b\u9898\n\u4f8b\u5b50\uff1a\nmqttc:unsubscribe(\"/luatos/123456\")\nmqttc:unsubscribe({\"/luatos/1234567\",\"/luatos/12345678\"})\n", "prefix": "mqttc:unsubscribe"}, "mqttc:debug": {"body": "mqttc:debug(${1:onoff})", "description": "mqttc:debug(onoff) - \u914d\u7f6e\u662f\u5426\u6253\u5f00debug\u4fe1\u606f\n\u4f20\u5165\u503c\uff1a\nboolean \u662f\u5426\u6253\u5f00debug\u5f00\u5173\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n", "prefix": "mqttc:debug"}, "mqtt.create": {"body": "mqtt.create(${1:adapter},${2:host},${3:port},${4:ssl},${5:isipv6})", "description": "mqtt.create(adapter,host,port,ssl,isipv6) - mqtt\u5ba2\u6237\u7aef\u521b\u5efa\n\u4f20\u5165\u503c\uff1a\nint \u9002\u914d\u5668\u5e8f\u53f7, \u53ea\u80fd\u662fsocket.ETH0, socket.STA, socket.AP,\u5982\u679c\u4e0d\u586b,\u4f1a\u9009\u62e9\u5e73\u53f0\u81ea\u5e26\u7684\u65b9\u5f0f,\u7136\u540e\u662f\u6700\u540e\u4e00\u4e2a\u6ce8\u518c\u7684\u9002\u914d\u5668\nstring \u670d\u52a1\u5668\u5730\u5740,\u53ef\u4ee5\u662f\u57df\u540d, \u4e5f\u53ef\u4ee5\u662fip\nint \t\u7aef\u53e3\u53f7\nbool/table \u662f\u5426\u4e3assl\u52a0\u5bc6\u8fde\u63a5,\u9ed8\u8ba4\u4e0d\u52a0\u5bc6,true\u4e3a\u65e0\u8bc1\u4e66\u6700\u7b80\u5355\u7684\u52a0\u5bc6\uff0ctable\u4e3a\u6709\u8bc1\u4e66\u7684\u52a0\u5bc6
    server_cert \u670d\u52a1\u5668ca\u8bc1\u4e66\u6570\u636e
    client_cert \u5ba2\u6237\u7aef\u8bc1\u4e66\u6570\u636e
    client_key \u5ba2\u6237\u7aef\u79c1\u94a5\u52a0\u5bc6\u6570\u636e
    client_password \u5ba2\u6237\u7aef\u79c1\u94a5\u53e3\u4ee4\u6570\u636e
    verify \u662f\u5426\u5f3a\u5236\u6821\u9a8c 0\u4e0d\u6821\u9a8c/1\u53ef\u9009\u6821\u9a8c/2\u5f3a\u5236\u6821\u9a8c \u9ed8\u8ba42\nbool \u662f\u5426\u4e3aipv6 \u9ed8\u8ba4\u4e0d\u662f\n\u8fd4\u56de\u503c\uff1a\nuserdata \u82e5\u6210\u529f\u4f1a\u8fd4\u56demqtt\u5ba2\u6237\u7aef\u5b9e\u4f8b,\u5426\u5219\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\n-- \u666e\u901aTCP\u94fe\u63a5\nmqttc = mqtt.create(nil,\"120.55.137.106\", 1884)\n-- \u52a0\u5bc6TCP\u94fe\u63a5,\u4e0d\u9a8c\u8bc1\u670d\u52a1\u5668\u8bc1\u4e66\nmqttc = mqtt.create(nil,\"120.55.137.106\", 8883, true)\n-- \u52a0\u5bc6TCPTCP\u94fe\u63a5,\u5355\u670d\u52a1\u5668\u8bc1\u4e66\u9a8c\u8bc1\nmqttc = mqtt.create(nil,\"120.55.137.106\", 8883, {server_cert=io.readFile(\"/luadb/ca.crt\")})\n-- \u52a0\u5bc6TCPTCP\u94fe\u63a5,\u5355\u670d\u52a1\u5668\u8bc1\u4e66\u9a8c\u8bc1, \u4f46\u53ef\u9009\u8ba4\u8bc1\nmqttc = mqtt.create(nil,\"120.55.137.106\", 8883, {server_cert=io.readFile(\"/luadb/ca.crt\"), verify=1})\n-- \u52a0\u5bc6TCPTCP\u94fe\u63a5,\u53cc\u5411\u8bc1\u4e66\u9a8c\u8bc1\nmqttc = mqtt.create(nil,\"120.55.137.106\", 8883, {\n\t\t\t\t\tserver_cert=io.readFile(\"/luadb/ca.crt\"),\n\t\t\t\t\tclient_cert=io.readFile(\"/luadb/client.pem\"),\n\t\t\t\t\tclient_key=\"123456\",\n\t\t\t\t\tclient_password=\"123456\",\n\t\t\t\t\t})\n", "prefix": "mqtt.create"}, "mqttc:auth": {"body": "mqttc:auth(${1:client_id},${2:username},${3:password},${4:cleanSession})", "description": "mqttc:auth(client_id,username,password,cleanSession) - mqtt\u4e09\u5143\u7ec4\u914d\u7f6e\u53cacleanSession\n\u4f20\u5165\u503c\uff1a\nstring \u8bbe\u5907\u8bc6\u522bid,\u5bf9\u4e8e\u540c\u4e00\u4e2amqtt\u670d\u52a1\u5668\u6765\u8bf4, \u901a\u5e38\u8981\u6c42\u552f\u4e00,\u76f8\u540cclient_id\u4f1a\u4e92\u76f8\u8e22\u4e0b\u7ebf\nstring \u8d26\u53f7 \u53ef\u9009\nstring \u5bc6\u7801 \u53ef\u9009\nbool \u6e05\u9664session,\u9ed8\u8ba4true,\u53ef\u9009\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n-- \u65e0\u8d26\u53f7\u5bc6\u7801\u767b\u5f55,\u4ec5clientId\nmqttc:auth(\"123456789\")\n-- \u5e26\u8d26\u53f7\u5bc6\u7801\u767b\u5f55\nmqttc:auth(\"123456789\",\"username\",\"password\")\n-- \u989d\u5916\u914d\u7f6ecleanSession,\u4e0d\u6e05\u9664\nmqttc:auth(\"123456789\",\"username\",\"password\", false)\n-- \u65e0clientId\u6a21\u5f0f, \u670d\u52a1\u5668\u968f\u673a\u751f\u6210id, cleanSession\u4e0d\u53ef\u914d\u7f6e\nmqttc:auth()\n", "prefix": "mqttc:auth"}, "mqttc:keepalive": {"body": "mqttc:keepalive(${1:time})", "description": "mqttc:keepalive(time) - mqtt\u5fc3\u8df3\u8bbe\u7f6e\n\u4f20\u5165\u503c\uff1a\nint \u53ef\u9009 \u5355\u4f4ds \u9ed8\u8ba4240s. \u6700\u514815,\u6700\u9ad8600\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\nmqttc:keepalive(30)\n", "prefix": "mqttc:keepalive"}, "mqttc:on": {"body": "mqttc:on(${1:cb})", "description": "mqttc:on(cb) - \u6ce8\u518cmqtt\u56de\u8c03\n\u4f20\u5165\u503c\uff1a\nfunction cb mqtt\u56de\u8c03,\u53c2\u6570\u5305\u62ecmqtt_client, event, data, payload\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\nmqttc:on(function(mqtt_client, event, data, payload, metas)\n\t-- \u7528\u6237\u81ea\u5b9a\u4e49\u4ee3\u7801\n\tlog.info(\"mqtt\", \"event\", event, mqtt_client, data, payload)\nend)\n--[[\nevent\u53ef\u80fd\u51fa\u73b0\u7684\u503c\u6709\n conack -- \u670d\u52a1\u5668\u9274\u6743\u5b8c\u6210,mqtt\u8fde\u63a5\u5df2\u7ecf\u5efa\u7acb, \u53ef\u4ee5\u8ba2\u9605\u548c\u53d1\u5e03\u6570\u636e\u4e86,\u6ca1\u6709\u9644\u52a0\u6570\u636e\n recv -- \u63a5\u6536\u5230\u6570\u636e,\u7531\u670d\u52a1\u5668\u4e0b\u53d1, data\u4e3atopic\u503c(string), payload\u4e3a\u4e1a\u52a1\u6570\u636e(string).metas\u662f\u5143\u6570\u636e(table), \u4e00\u822c\u4e0d\u5904\u7406. \n -- metas\u5305\u542b\u4ee5\u4e0b\u5185\u5bb9\n\t\t\t -- qos \u53d6\u503c\u8303\u56f40,1,2\n\t\t\t -- retain \u53d6\u503c\u8303\u56f4 0,1\n\t\t\t -- dup \u53d6\u503c\u8303\u56f4 0,1\n sent -- \u53d1\u9001\u5b8c\u6210, qos0\u4f1a\u9a6c\u4e0a\u901a\u77e5, qos1/qos2\u4f1a\u5728\u670d\u52a1\u5668\u5e94\u7b54\u4f1a\u56de\u8c03, data\u4e3a\u6d88\u606fid\n disconnect -- \u670d\u52a1\u5668\u65ad\u5f00\u8fde\u63a5,\u7f51\u7edc\u95ee\u9898\u6216\u670d\u52a1\u5668\u8e22\u4e86\u5ba2\u6237\u7aef,\u4f8b\u5982clientId\u91cd\u590d,\u8d85\u65f6\u672a\u4e0a\u62a5\u4e1a\u52a1\u6570\u636e\n]]\n", "prefix": "mqttc:on"}, "mqttc:connect": {"body": "mqttc:connect()", "description": "mqttc:connect() - \u8fde\u63a5\u670d\u52a1\u5668\n\u8fd4\u56de\u503c\uff1a\nboolean \u53d1\u8d77\u6210\u529f\u8fd4\u56detrue, \u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- \u5f00\u59cb\u5efa\u7acb\u8fde\u63a5\nmqttc:connect()\n-- \u672c\u51fd\u6570\u4ec5\u4ee3\u8868\u53d1\u8d77\u6210\u529f, \u540e\u7eed\u4ecd\u9700\u6839\u636eready\u51fd\u6570\u5224\u65admqtt\u662f\u5426\u8fde\u63a5\u6b63\u5e38\n", "prefix": "mqttc:connect"}, "mqttc:disconnect": {"body": "mqttc:disconnect()", "description": "mqttc:disconnect() - \u65ad\u5f00\u670d\u52a1\u5668\u8fde\u63a5(\u4e0d\u4f1a\u91ca\u653e\u8d44\u6e90)\n\u8fd4\u56de\u503c\uff1a\nboolean \u53d1\u8d77\u6210\u529f\u8fd4\u56detrue, \u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- \u65ad\u5f00\u8fde\u63a5\nmqttc:disconnect()\n", "prefix": "mqttc:disconnect"}, "mqttc:autoreconn": {"body": "mqttc:autoreconn(${1:reconnect},${2:reconnect_time})", "description": "mqttc:autoreconn(reconnect, reconnect_time) - \u81ea\u52a8\u91cd\u8fde\n\u4f20\u5165\u503c\uff1a\nbool \u662f\u5426\u81ea\u52a8\u91cd\u8fde\nint \u81ea\u52a8\u91cd\u8fde\u5468\u671f \u5355\u4f4dms \u9ed8\u8ba43000ms\n\u4f8b\u5b50\uff1a\nmqttc:autoreconn(true)\n", "prefix": "mqttc:autoreconn"}, "mqttc:publish": {"body": "mqttc:publish(${1:topic},${2:data},${3:qos},${4:retain})", "description": "mqttc:publish(topic, data, qos, retain) - \u53d1\u5e03\u6d88\u606f\n\u4f20\u5165\u503c\uff1a\nstring \u4e3b\u9898,\u5fc5\u586b\nstring \u6d88\u606f,\u5fc5\u586b,\u4f46\u957f\u5ea6\u53ef\u4ee5\u662f0\nint \u6d88\u606f\u7ea7\u522b 0/1 \u9ed8\u8ba40\nint \u662f\u5426\u5b58\u6863, 0/1,\u9ed8\u8ba40\n\u8fd4\u56de\u503c\uff1a\nint \u6d88\u606fid, \u5f53qos\u4e3a1\u62162\u65f6\u4f1a\u6709\u6548\u503c. \u82e5\u5e95\u5c42\u8fd4\u56de\u662f\u5426, \u4f1a\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\nmqttc:publish(\"/luatos/123456\", \"123\")\n", "prefix": "mqttc:publish"}, "mqttc:close": {"body": "mqttc:close()", "description": "mqttc:close() - mqtt\u5ba2\u6237\u7aef\u5173\u95ed(\u5173\u95ed\u540e\u8d44\u6e90\u91ca\u653e\u65e0\u6cd5\u518d\u4f7f\u7528)\n\u4f8b\u5b50\uff1a\nmqttc:close()\n", "prefix": "mqttc:close"}, "mqttc:ready": {"body": "mqttc:ready()", "description": "mqttc:ready() - mqtt\u5ba2\u6237\u7aef\u662f\u5426\u5c31\u7eea\n\u8fd4\u56de\u503c\uff1a\nbool \u5ba2\u6237\u7aef\u662f\u5426\u5c31\u7eea\n\u4f8b\u5b50\uff1a\nlocal error = mqttc:ready()\n", "prefix": "mqttc:ready"}, "mqttc:state": {"body": "mqttc:state()", "description": "mqttc:state() - mqtt\u5ba2\u6237\u7aef\u72b6\u6001\n\u8fd4\u56de\u503c\uff1a\nnumber \u5ba2\u6237\u7aef\u72b6\u6001\n\u4f8b\u5b50\uff1a\nlocal state = mqttc:state()\n", "prefix": "mqttc:state"}, "mqttc:will": {"body": "mqttc:will(${1:topic},${2:payload},${3:qos},${4:retain})", "description": "mqttc:will(topic, payload, qos, retain) - \u8bbe\u7f6e\u9057\u5631\u6d88\u606f\n\u4f20\u5165\u503c\uff1a\nstring \u9057\u5631\u6d88\u606f\u7684topic\nstring \u9057\u5631\u6d88\u606f\u7684payload\nstring \u9057\u5631\u6d88\u606f\u7684qos, \u9ed8\u8ba40, \u53ef\u4ee5\u4e0d\u586b\nstring \u9057\u5631\u6d88\u606f\u7684retain, \u9ed8\u8ba40, \u53ef\u4ee5\u4e0d\u586b\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- \u8981\u5728connect\u4e4b\u524d\u8c03\u7528\nmqttc:will(\"/xxx/xxx\", \"xxxxxx\")\n", "prefix": "mqttc:will"}, "nbiot.isReady": {"body": "nbiot.isReady()", "description": "nbiot.isReady() - \u7f51\u7edc\u662f\u5426\u5c31\u7eea\n\u8fd4\u56de\u503c\uff1a\nboolean \u5df2\u8054\u7f51\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- \u5224\u65ad\u662f\u5426\u5df2\u7ecf\u8054\u7f51\nif nbiot.isReady() then \n log.info(\"nbiot\", \"net is ready\")\nend\n", "prefix": "nbiot.isReady"}, "nbiot.imsi": {"body": "nbiot.imsi()", "description": "nbiot.imsi() - \u8bfb\u53d6IMSI\n\u8fd4\u56de\u503c\uff1a\nstring \u8fd4\u56deIMSI\u503c\uff0c\u5982\u679c\u4e0d\u5b58\u5728\u5c31\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\n--\u8bfb\u53d6imsi\nlog.info(\"nbiot\", \"imsi\", nbiot.imsi())\n", "prefix": "nbiot.imsi"}, "nbiot.iccid": {"body": "nbiot.iccid()", "description": "nbiot.iccid() - \u8bfb\u53d6ICCID\n\u8fd4\u56de\u503c\uff1a\nstring \u8fd4\u56deICCID\u503c\uff0c\u5982\u679c\u4e0d\u5b58\u5728\u5c31\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\n-- \u8bfb\u53d6iccid\nlog.info(\"nbiot\", \"iccid\", nbiot.iccid())\n", "prefix": "nbiot.iccid"}, "nbiot.imei": {"body": "nbiot.imei(${1:val})", "description": "nbiot.imei(val) - \u8bfb\u53d6\u6216\u8bbe\u7f6eIMEI\n\u4f20\u5165\u503c\uff1a\nstring \u4f20\u5165\u9700\u8981\u8bbe\u7f6e\u7684imei\u503c\uff0c\u4e0d\u4f20\u5c31\u662f\u8bfb\u53d6\n\u8fd4\u56de\u503c\uff1a\nstring \u8fd4\u56deimei\u503c\uff0c\u5982\u679c\u4e0d\u5b58\u5728\u5c31\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\n-- \u8bfb\u53d6imei\nlog.info(\"nbiot\", \"imei\", nbiot.imei())\n@usage \n-- \u8bbe\u7f6eimei\nlog.info(\"nbiot\", \"imei\", nbiot.imei(\"898989898989899898\"))\n", "prefix": "nbiot.imei"}, "nbiot.rssi": {"body": "nbiot.rssi()", "description": "nbiot.rssi() - \u8bfb\u53d6RSSI\n\u8fd4\u56de\u503c\uff1a\nint \u8fd4\u56derssi\u503c\n\u4f8b\u5b50\uff1a\n-- \u8bfb\u53d6rssi\nlog.info(\"nbiot\", \"rssi\", nbiot.rssi())\n", "prefix": "nbiot.rssi"}, "nbiot.apn": {"body": "nbiot.apn()", "description": "nbiot.apn() - \u8bfb\u53d6APN\n\u8fd4\u56de\u503c\uff1a\nstring \u8fd4\u56deapn\u503c\n\u4f8b\u5b50\uff1a\n-- \u8bfb\u53d6APN\nlog.info(\"nbiot\", \"apn\", nbiot.apn())\n", "prefix": "nbiot.apn"}, "nbiot.userApn": {"body": "nbiot.userApn(${1:apn},${2:Auth_User_Name},${3:Auth_Password},${4:PDN_TYPE})", "description": "nbiot.userApn(apn,Auth_User_Name,Auth_Password,PDN_TYPE) - \u8bfb\u53d6\u8bbe\u7f6e\u7528\u6237APN\n\u4f20\u5165\u503c\uff1a\nreturn \u8bfb\u53d6\u8fd4\u56dePDN_TYPE,Auth_User_Name,Auth_Password\uff0c\u8bbe\u7f6e\u8fd4\u56debool\n\u4f8b\u5b50\uff1a\n-- \u8bfb\u53d6APN\nlog.info(\"nbiot\", \"apn\", nbiot.userApn())\n", "prefix": "nbiot.userApn"}, "nbiot.tac": {"body": "nbiot.tac()", "description": "nbiot.tac() - \u8bfb\u53d6TAC\n\u8fd4\u56de\u503c\uff1a\nint \u8fd4\u56deTAC\u503c\n\u4f8b\u5b50\uff1a\n-- \u8bfb\u53d6TAC\nlog.info(\"nbiot\", \"tac\", nbiot.tac())\n", "prefix": "nbiot.tac"}, "nbiot.tauTime": {"body": "nbiot.tauTime()", "description": "nbiot.tauTime() - \u8bfb\u53d6Tau Time\n\u8fd4\u56de\u503c\uff1a\nint \u8fd4\u56deTau Time\u503c\n\u4f8b\u5b50\uff1a\n-- \u8bfb\u53d6Tau Time\nlog.info(\"nbiot\", \"tau time\", nbiot.tauTime())\n", "prefix": "nbiot.tauTime"}, "nbiot.activeTime": {"body": "nbiot.activeTime()", "description": "nbiot.activeTime() - \u8bfb\u53d6Active Time\n\u8fd4\u56de\u503c\uff1a\nint \u8fd4\u56deActive Time\u503c\n\u4f8b\u5b50\uff1a\n-- \u8bfb\u53d6Active Time\nlog.info(\"nbiot\", \"Active Time\", nbiot.activeTime())\n", "prefix": "nbiot.activeTime"}, "nbiot.cellID": {"body": "nbiot.cellID()", "description": "nbiot.cellID() - \u8bfb\u53d6CellID\n\u8fd4\u56de\u503c\uff1a\nint \u8fd4\u56deCellID\u503c\n\u4f8b\u5b50\uff1a\n-- \u8bfb\u53d6CellID\nlog.info(\"nbiot\", \"CellID\", nbiot.cellID())\n", "prefix": "nbiot.cellID"}, "nbiot.snr": {"body": "nbiot.snr()", "description": "nbiot.snr() - \u8bfb\u53d6SNR\n\u8fd4\u56de\u503c\uff1a\nint \u8fd4\u56deSNR\u503c\n\u4f8b\u5b50\uff1a\n-- \u8bfb\u53d6SNR\nlog.info(\"nbiot\", \"SNR\", nbiot.snr())\n", "prefix": "nbiot.snr"}, "nbiot.csq": {"body": "nbiot.csq()", "description": "nbiot.csq() - \u8bfb\u53d6CSQ, \u5e76\u4e0d\u5b8c\u5168\u7b49\u4ef7\u4e8eGSM\u7684CSQ\n\u8fd4\u56de\u503c\uff1a\nint \u8fd4\u56decsq\u503c\n\u4f8b\u5b50\uff1a\n-- \u8bfb\u53d6csq\nlog.info(\"nbiot\", \"csq\", nbiot.csq())\n", "prefix": "nbiot.csq"}, "nbiot.ceLevel": {"body": "nbiot.ceLevel()", "description": "nbiot.ceLevel() - \u8bfb\u53d6CE Level\n\u8fd4\u56de\u503c\uff1a\nint \u8fd4\u56deCE Level\u503c\n\u4f8b\u5b50\uff1a\n-- \u8bfb\u53d6CE Level\nlog.info(\"nbiot\", \"CE Level\", nbiot.ceLevel())\n", "prefix": "nbiot.ceLevel"}, "nbiot.sn": {"body": "nbiot.sn(${1:val})", "description": "nbiot.sn(val) - \u8bfb\u53d6\u6216\u8bbe\u7f6eSN,\u666e\u901a\u5237\u673a(\u5237\u5e95\u5c42/\u5237\u811a\u672c)\u4e0d\u4f1a\u6e05\u9664\n\u4f20\u5165\u503c\uff1a\nstring \u9700\u8981\u8bbe\u7f6e\u7684SN\u503c(\u53ea\u80fd\u662f\u53ef\u89c1\u5b57\u7b26),\u4e0d\u4f20\u503c\u5219\u4e3a\u8bfb\u53d6\n\u8fd4\u56de\u503c\uff1a\nstring \u8fd4\u56deSN\u503c\n\u4f8b\u5b50\uff1a\n-- \u8bfb\u53d6SN\nlog.info(\"nbiot\", \"SN\", nbiot.sn())\n@usage \n-- \u8bbe\u7f6eSN\nlog.info(\"nbiot\", \"SN\", nbiot.sn(\"My Custom SN\"))\n", "prefix": "nbiot.sn"}, "nbiot.updateCellInfo": {"body": "nbiot.updateCellInfo()", "description": "nbiot.updateCellInfo() - \u5237\u65b0\u7f51\u7edc\u4fe1\u606f,\u53ef\u901a\u8fc7\u5b9a\u65f6\u4efb\u52a1\u5237\u65b0,\u6700\u5c0f\u95f4\u96945\u79d2\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u542f\u52a8\u5237\u65b0\u7ebf\u7a0b\u8fd4\u56detrue\uff0c\u5426\u5219\u8fd4\u56defalse.\n\u4f8b\u5b50\uff1a\n-- \u5237\u65b0\u7f51\u7edc\u4fe1\u606f\nnbiot.updateCellInfo()\nsys.waitUntil(\"CELL_INFO_IND\", 3000)\nlog.info(\"nbiot\", \"cell\", json.encode(nbiot.getCellInfo()))\n", "prefix": "nbiot.updateCellInfo"}, "nbiot.mcc": {"body": "nbiot.mcc()", "description": "nbiot.mcc() - \u8bfb\u53d6MCC\u503c,\u6ce8\u518c\u7f51\u7edc\u540e\u53ef\u7528,\u901a\u8fc7nbiot.updateCellInfo()\u5237\u65b0\n\u8fd4\u56de\u503c\uff1a\nint \u8fd0\u8425\u5546MCC\u503c\n\u4f8b\u5b50\uff1a\n-- \u8bfb\u53d6MCC\nlog.info(\"nbiot\", \"mcc\", nbiot.mcc())\n", "prefix": "nbiot.mcc"}, "nbiot.mnc": {"body": "nbiot.mnc()", "description": "nbiot.mnc() - \u8bfb\u53d6MNC\u503c,\u6ce8\u518c\u7f51\u7edc\u540e\u53ef\u7528,\u901a\u8fc7nbiot.updateCellInfo()\u5237\u65b0\n\u8fd4\u56de\u503c\uff1a\nint \u8fd0\u8425\u5546MNC\u503c\n\u4f8b\u5b50\uff1a\n-- \u8bfb\u53d6MNC\nlog.info(\"nbiot\", \"mnc\", nbiot.mnc())\n", "prefix": "nbiot.mnc"}, "nbiot.earfcn": {"body": "nbiot.earfcn()", "description": "nbiot.earfcn() - \u8bfb\u53d6earfcn\u503c,\u6ce8\u518c\u7f51\u7edc\u540e\u53ef\u7528,\u901a\u8fc7nbiot.updateCellInfo()\u5237\u65b0\n\u8fd4\u56de\u503c\uff1a\nint \u8fd0\u8425\u5546earfcn\u503c\n\u4f8b\u5b50\uff1a\n-- \u8bfb\u53d6earfcn\nlog.info(\"nbiot\", \"earfcn\", nbiot.earfcn())\n", "prefix": "nbiot.earfcn"}, "nbiot.phyCellId": {"body": "nbiot.phyCellId()", "description": "nbiot.phyCellId() - \u8bfb\u53d6phyCellId\u503c,\u6ce8\u518c\u7f51\u7edc\u540e\u53ef\u7528,\u901a\u8fc7nbiot.updateCellInfo()\u5237\u65b0\n\u8fd4\u56de\u503c\uff1a\nint \u8fd0\u8425\u5546phyCellId\u503c\n\u4f8b\u5b50\uff1a\n-- \u8bfb\u53d6phyCellId\nlog.info(\"nbiot\", \"phyCellId\", nbiot.phyCellId())\n", "prefix": "nbiot.phyCellId"}, "nbiot.rsrq": {"body": "nbiot.rsrq()", "description": "nbiot.rsrq() - \u8bfb\u53d6rsrq\u503c,\u6ce8\u518c\u7f51\u7edc\u540e\u53ef\u7528,\u901a\u8fc7nbiot.updateCellInfo()\u5237\u65b0\n\u8fd4\u56de\u503c\uff1a\nint \u8fd0\u8425\u5546ersrq\u503c\n\u4f8b\u5b50\uff1a\n-- \u8bfb\u53d6rsrq\nlog.info(\"nbiot\", \"rsrq\", nbiot.rsrq())\n", "prefix": "nbiot.rsrq"}, "nbiot.rsrp": {"body": "nbiot.rsrp()", "description": "nbiot.rsrp() - \u8bfb\u53d6rsrp\u503c,\u6ce8\u518c\u7f51\u7edc\u540e\u53ef\u7528,\u901a\u8fc7nbiot.updateCellInfo()\u5237\u65b0\n\u8fd4\u56de\u503c\uff1a\nint \u8fd0\u8425\u5546rsrp\u503c\n\u4f8b\u5b50\uff1a\n-- \u8bfb\u53d6rsrp\nlog.info(\"nbiot\", \"rsrp\", nbiot.rsrp())\n", "prefix": "nbiot.rsrp"}, "nbiot.powerLevel": {"body": "nbiot.powerLevel()", "description": "nbiot.powerLevel() - \u8bfb\u53d6PowerLevel\u503c,\u6ce8\u518c\u7f51\u7edc\u540e\u53ef\u7528,\u901a\u8fc7nbiot.updateCellInfo()\u5237\u65b0\n\u8fd4\u56de\u503c\uff1a\nint \u8fd0\u8425\u5546PowerLevel\u503c\n\u4f8b\u5b50\uff1a\n-- \u8bfb\u53d6PowerLevel\nlog.info(\"nbiot\", \"PowerLevel\", nbiot.powerLevel())\n", "prefix": "nbiot.powerLevel"}, "nbiot.getCellInfo": {"body": "nbiot.getCellInfo()", "description": "nbiot.getCellInfo() - \u83b7\u53d6\u7f51\u7edc\u57fa\u7ad9\u8be6\u60c5,\u6ce8\u518c\u7f51\u7edc\u540e\u53ef\u7528,\u901a\u8fc7nbiot.updateCellInfo()\u5237\u65b0\n\u8fd4\u56de\u503c\uff1a\ntable \u7f51\u7edc\u57fa\u7ad9\u8be6\u60c5\n\u4f8b\u5b50\uff1a\n-- \u8bfb\u53d6\u57fa\u7ad9\u4fe1\u606f\nlog.info(\"nbiot\", \"cell info\", json.encode(nbiot.getCellInfo()))\n", "prefix": "nbiot.getCellInfo"}, "nbiot.setCFUN": {"body": "nbiot.setCFUN(${1:val})", "description": "nbiot.setCFUN(val) - \u8fdb\u5165\u6216\u9000\u51fa\u98de\u884c\u6a21\u5f0f\n\u4f20\u5165\u503c\uff1a\nint 0\u98de\u884c\u6a21\u5f0f,1\u666e\u901a\u8054\u7f51\u6a21\u5f0f\n\u8fd4\u56de\u503c\uff1a\nboolean \u8bbe\u7f6e\u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- \u8fdb\u5165\u98de\u884c\u6a21\u5f0f\nnbiot.setCFUN(0)\n", "prefix": "nbiot.setCFUN"}, "nbiot.setBootCFUN": {"body": "nbiot.setBootCFUN(${1:val})", "description": "nbiot.setBootCFUN(val) - \u8bbe\u7f6e\u8bbe\u5907\u4e0a\u7535\u542f\u52a8\u65f6\uff0c\u662f\u5426\u8fdb\u5165\u98de\u884c\u6a21\u5f0f\n\u4f20\u5165\u503c\uff1a\nint 0\u98de\u884c\u6a21\u5f0f,1\u666e\u901a\u8054\u7f51\u6a21\u5f0f\n\u8fd4\u56de\u503c\uff1a\nboolean \u8bbe\u7f6e\u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- \u8bbe\u7f6e\u4e3a\u4e0a\u7535\u8fdb\u5165\u98de\u884c\u6a21\u5f0f\nnbiot.setBootCFUN(0)\n", "prefix": "nbiot.setBootCFUN"}, "nbiot.getBootCFUN": {"body": "nbiot.getBootCFUN(${1:val})", "description": "nbiot.getBootCFUN(val) - \u83b7\u53d6\u8bbe\u5907\u4e0a\u7535\u542f\u52a8\u65f6\uff0c\u662f\u5426\u8fdb\u5165\u98de\u884c\u6a21\u5f0f\n\u8fd4\u56de\u503c\uff1a\nint \u5f00\u673a\u5c31\u8fdb\u5165\u98de\u884c\u6a21\u5f0f\u8fd4\u56de0,\u8fdb\u5165\u666e\u901a\u6a21\u5f0f\u8fd4\u56de1\n\u4f8b\u5b50\uff1a\n-- \u83b7\u53d6\u4e0a\u7535\u6a21\u5f0f\nnbiot.getBootCFUN()\n", "prefix": "nbiot.getBootCFUN"}, "nbiot.setPSM": {"body": "nbiot.setPSM(${1:psmMode},${2:tauTimeS},${3:activeTimeS})", "description": "nbiot.setPSM(psmMode,tauTimeS,activeTimeS) - \u8bbe\u7f6ePSM\u53c2\u6570\n\u4f20\u5165\u503c\uff1a\nint psm\u6a21\u5f0f, CMI_MM_DISABLE_PSM(0)/CMI_MM_ENABLE_PSM(1)/CMI_MM_DISCARD_PSM(2)\nint TAU time(unit: S)---related to T3412\nint active time(unit: S)---related to T3324\n\u8fd4\u56de\u503c\uff1a\nboolean \u8bbe\u7f6e\u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- \u8bbe\u7f6ePSM\nnbiot.setPSM(1, 60, 120)\n", "prefix": "nbiot.setPSM"}, "nbiot.setEDRX": {"body": "nbiot.setEDRX(${1:modeVal},${2:actType},${3:reqEdrxValueMs})", "description": "nbiot.setEDRX(modeVal,actType,reqEdrxValueMs) - \u8bbe\u7f6eEDRX\u53c2\u6570\n\u4f20\u5165\u503c\uff1a\nint \u6a21\u5f0f,CMI_MM_DISABLE_EDRX = 0/CMI_MM_ENABLE_EDRX_AND_DISABLE_IND = 1/CMI_MM_ENABLE_EDRX_AND_ENABLE_IND = 2/CMI_MM_DISCARD_EDRX = 3\nint \u53ef\u9009\u503c, 0\u6216\u80055. CMI_MM_EDRX_NO_ACT_OR_NOT_USE_EDRX = 0/CMI_MM_EDRX_NB_IOT = 5\nint edrx\u503c,4\u4e2a\u5b57\u8282\u957f\u5ea6\u4e8c\u8fdb\u5236\u5b57\u7b26\u4e32\n\u8fd4\u56de\u503c\uff1a\nboolean \u8bbe\u7f6e\u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- \u8bbe\u7f6eEDRX\nnbiot.setPSM(1, 5, \"0101\")\n", "prefix": "nbiot.setEDRX"}, "nbiot.getPSM": {"body": "nbiot.getPSM()", "description": "nbiot.getPSM() - \u83b7\u53d6PSM\u53c2\u6570\n\u8fd4\u56de\u503c\uff1a\nint psm\u6a21\u5f0f, CMI_MM_DISABLE_PSM(0)/CMI_MM_ENABLE_PSM(1)/CMI_MM_DISCARD_PSM(2)\nint TAU time(unit: S)---related to T3412\nint active time(unit: S)---related to T3324\n\u4f8b\u5b50\uff1a\n-- \u83b7\u53d6PSM\nlog.info(\"psm\", nbiot.getPSM())\n", "prefix": "nbiot.getPSM"}, "nbiot.getEDRX": {"body": "nbiot.getEDRX()", "description": "nbiot.getEDRX() - \u83b7\u53d6EDRX\u53c2\u6570\n\u8fd4\u56de\u503c\uff1a\nint \u6a21\u5f0f,CMI_MM_DISABLE_EDRX = 0/CMI_MM_ENABLE_EDRX_AND_DISABLE_IND = 1/CMI_MM_ENABLE_EDRX_AND_ENABLE_IND = 2/CMI_MM_DISCARD_EDRX = 3\nint \u53ef\u9009\u503c, 0\u6216\u80055. CMI_MM_EDRX_NO_ACT_OR_NOT_USE_EDRX = 0/CMI_MM_EDRX_NB_IOT = 5\nint edrx\u503c,\u5355\u4f4d\u6beb\u79d2\n\u4f8b\u5b50\uff1a\n-- \u83b7\u53d6EDRX\nlog.info(\"edrx\", nbiot.getEDRX())\n", "prefix": "nbiot.getEDRX"}, "nbiot.setTZ": {"body": "nbiot.setTZ(${1:tz},${2:auto})", "description": "nbiot.setTZ(tz, auto) - \u8bbe\u7f6e\u65f6\u533a\u53c2\u6570\n\u4f20\u5165\u503c\uff1a\nint \u65f6\u533a\u53c2\u6570,\u53ef\u9009, \u5355\u4f4d\u662f1/4\u65f6\u533a, \u9ed8\u8ba4\u4e3a \u4e1c8\u533a, \u5bf9\u5e94\u7684\u503c\u4e3a32\nboolean \u662f\u5426\u81ea\u52a8\u8bbe\u7f6e\u65f6\u533a,\u53ef\u9009, \u9ed8\u8ba4\u4e3atrue\n\u4f8b\u5b50\uff1a\n-- \u8bbe\u7f6e\u4e3a\u4e1c8\u533a,\u7981\u7528\u81ea\u52a8\u66f4\u65b0\u65f6\u533a\u529f\u80fd\nnbiot.setTZ(32, false)\n@usage \n-- \u542f\u7528\u81ea\u52a8\u66f4\u65b0\u65f6\u533a\u529f\u80fd\nnbiot.setTZ(nil, true)\n", "prefix": "nbiot.setTZ"}, "nbiot.getTZ": {"body": "nbiot.getTZ()", "description": "nbiot.getTZ() - \u83b7\u53d6\u65f6\u533a\u53c2\u6570\n\u8fd4\u56de\u503c\uff1a\nint \u65f6\u533a\u53c2\u6570,\u5355\u4f4d1/4\u65f6\u533a, \u9ed8\u8ba4\u4e1c8\u533a, \u503c\u4e3a32\nboolean \u81ea\u52a8\u8bbe\u7f6e\u65f6\u533a,\u9ed8\u8ba4\u4e3atrue\n\u4f8b\u5b50\uff1a\n-- \u83b7\u53d6\u65f6\u533a\u53c2\u6570\nlog.info(\"timezone\", nbiot.getTZ())\n", "prefix": "nbiot.getTZ"}, "nbiot.setBands": {"body": "nbiot.setBands(${1:modes})", "description": "nbiot.setBands(modes) - \u8bbe\u7f6eBand\u6a21\u5f0f(\u6682\u4e0d\u53ef\u7528)\n\u4f20\u5165\u503c\uff1a\nany \u6a21\u5f0f,\u9700\u8981\u662f\u4e00\u4e2atable\u5f62\u5f0f\u7684\u6570\u7ec4,\u5fc5\u987b\u4f20\u5165\n\u8fd4\u56de\u503c\uff1a\nboolean \u8bbe\u7f6e\u7ed3\u679c\n\u4f8b\u5b50\uff1a\n-- \u4ec5\u641c\u7d22band 8\nlog.info(\"band\", nbiot.setBands({8}))\n", "prefix": "nbiot.setBands"}, "nbiot.getBands": {"body": "nbiot.getBands()", "description": "nbiot.getBands() - \u83b7\u53d6\u5f53\u524d\u4f7f\u7528\u7684Band\u6a21\u5f0f(\u6682\u4e0d\u53ef\u7528)\n\u8fd4\u56de\u503c\uff1a\ntable \u6240\u8bbe\u7f6e\u7684band\u7684\u6570\u7ec4\n\u4f8b\u5b50\uff1a\n-- \u4ec5\u641c\u7d22band 8\nlog.info(\"band\", json.encode(nbiot.getBands()))\n", "prefix": "nbiot.getBands"}, "nbiot.setEDRXPtw": {"body": "nbiot.setEDRXPtw(${1:val})", "description": "nbiot.setEDRXPtw(val) - \u8bbe\u7f6eEDRX PTW\u53c2\u6570\n\u4f20\u5165\u503c\uff1a\nint \u9700\u8981\u8bbe\u7f6e\u7684\u503c\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- \u8bbe\u7f6ePTW\u503c\u4e3aX\nnbiot.setEDRXPtw(val)\n-- \u53ef\u9009\u503c\nreqPtwValue:\nNB-S1 mode\nThe field contains the PTW value in seconds for NB-S1 mode.The PTW value is used\nas specified in 3GPP TS 23.682 [133a].The PTW value is derived as follows:\nbit\n Paging Time Window length\n0 0 0 0 2,56 seconds\n0 0 0 1 5,12 seconds\n0 0 1 0 7,68 seconds\n0 0 1 1 10,24 seconds\n0 1 0 0 12,8 seconds\n0 1 0 1 15,36 seconds\n0 1 1 0 17,92 seconds\n0 1 1 1 20,48 seconds\n1 0 0 0 23,04 seconds\n1 0 0 1 25,6 seconds\n1 0 1 0 28,16 seconds\n1 0 1 1 30,72 seconds\n1 1 0 0 33,28 seconds\n1 1 0 1 35,84 seconds\n1 1 1 0 38,4 seconds\n1 1 1 1 40,96 seconds\n \n", "prefix": "nbiot.setEDRXPtw"}, "nbiot.getEDRXPtw": {"body": "nbiot.getEDRXPtw()", "description": "nbiot.getEDRXPtw() - \u83b7\u53d6EDRX PTW\u53c2\u6570\n\u8fd4\u56de\u503c\uff1a\nint ptw\u503c\n\u4f8b\u5b50\uff1a\n-- \u6253\u5370PTW\u503c\nlog.info(\"ptw\", nbiot.getEDRXPtw())\n", "prefix": "nbiot.getEDRXPtw"}, "nbiot.ticks": {"body": "nbiot.ticks()", "description": "nbiot.ticks() - \u83b7\u53d6tick\u8ba1\u6570\n\u8fd4\u56de\u503c\uff1a\nint tick\u8ba1\u6570\n\u4f8b\u5b50\uff1a\n-- \u6253\u5370PTW\u503c\nlog.info(\"tick\", nbiot.ticks())\n", "prefix": "nbiot.ticks"}, "nes.init": {"body": "nes.init(${1:file_path})", "description": "nes.init(file_path) - nes\u6a21\u62df\u5668\u521d\u59cb\u5316\n\u4f20\u5165\u503c\uff1a\nstring file_path \u6587\u4ef6\u8def\u5f84\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\nnes.init(\"/luadb/super_mario.nes\")\n", "prefix": "nes.init"}, "nes.key": {"body": "nes.key(${1:key},${2:val})", "description": "nes.key(key,val) - nes\u6a21\u62df\u5668\u521d\u59cb\u5316\n\u4f20\u5165\u503c\uff1a\nnumber key \u6309\u952e\nnumber val \u72b6\u6001 1\u6309\u4e0b 0\u62ac\u8d77\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\nnes.init(\"/luadb/super_mario.nes\")\n", "prefix": "nes.key"}, "nimble.init": {"body": "nimble.init(${1:name})", "description": "nimble.init(name) - \u521d\u59cb\u5316BLE\u4e0a\u4e0b\u6587,\u5f00\u59cb\u5bf9\u5916\u5e7f\u64ad/\u626b\u63cf\n\u4f20\u5165\u503c\uff1a\nstring \u84dd\u7259\u8bbe\u5907\u540d\u79f0,\u53ef\u9009,\u5efa\u8bae\u586b\u5199\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u4e0e\u5426\n\u4f8b\u5b50\uff1a\n-- \u53c2\u8003 demo/nimble\n-- \u672c\u51fd\u6570\u5bf9\u6240\u6709\u6a21\u5f0f\u90fd\u9002\u7528\n", "prefix": "nimble.init"}, "nimble.deinit": {"body": "nimble.deinit()", "description": "nimble.deinit() - \u5173\u95edBLE\u4e0a\u4e0b\u6587\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u4e0e\u5426\n\u4f8b\u5b50\uff1a\n-- \u4ec5\u90e8\u5206\u8bbe\u5907\u652f\u6301,\u5f53\u524d\u53ef\u80fd\u90fd\u4e0d\u652f\u6301\n-- \u672c\u51fd\u6570\u5bf9\u6240\u6709\u6a21\u5f0f\u90fd\u9002\u7528\n", "prefix": "nimble.deinit"}, "nimble.mode": {"body": "nimble.mode(${1:tp})", "description": "nimble.mode(tp) - \u8bbe\u7f6e\u6a21\u5f0f\n\u4f20\u5165\u503c\uff1a\nint \u6a21\u5f0f, \u9ed8\u8ba4server/peripheral, \u53ef\u9009 client/central\u6a21\u5f0f nimble.MODE_BLE_CLIENT\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u4e0e\u5426\n\u4f8b\u5b50\uff1a\n-- \u53c2\u8003 demo/nimble\n-- \u5fc5\u987b\u5728nimble.init()\u4e4b\u524d\u8c03\u7528\n-- nimble.mode(nimble.MODE_BLE_CLIENT) -- \u7b80\u79f0\u4ece\u673a\u6a21\u5f0f,\u672a\u5b8c\u5584\n", "prefix": "nimble.mode"}, "nimble.connok": {"body": "nimble.connok()", "description": "nimble.connok() - \u662f\u5426\u5df2\u7ecf\u5efa\u7acb\u8fde\u63a5\n\u8fd4\u56de\u503c\uff1a\nbool \u5df2\u8fde\u63a5\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\nlog.info(\"ble\", \"connected?\", nimble.connok())\n-- \u4ece\u673aperipheral\u6a21\u5f0f, \u8bbe\u5907\u662f\u5426\u5df2\u7ecf\u88ab\u8fde\u63a5\n-- \u4e3b\u673acentral\u6a21\u5f0f, \u662f\u5426\u5df2\u7ecf\u8fde\u63a5\u5230\u8bbe\u5907\n-- ibeacon\u6a21\u5f0f, \u65e0\u610f\u4e49\n", "prefix": "nimble.connok"}, "nimble.send_msg": {"body": "nimble.send_msg(${1:conn},${2:handle},${3:data})", "description": "nimble.send_msg(conn, handle, data) - \u53d1\u9001\u4fe1\u606f\n\u4f20\u5165\u503c\uff1a\nint \u8fde\u63a5id, \u5f53\u524d\u56fa\u5b9a\u586b1\nint \u5904\u7406id, \u5f53\u524d\u56fa\u5b9a\u586b0\nstring \u6570\u636e\u5b57\u7b26\u4e32,\u53ef\u5305\u542b\u4e0d\u53ef\u89c1\u5b57\u7b26\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u4e0e\u5426\n\u4f8b\u5b50\uff1a\n-- \u53c2\u8003 demo/nimble\n-- \u672c\u51fd\u6570\u5bf9peripheral/\u4ece\u673a\u6a21\u5f0f\u9002\u7528\n", "prefix": "nimble.send_msg"}, "nimble.setUUID": {"body": "nimble.setUUID(${1:tp},${2:addr})", "description": "nimble.setUUID(tp, addr) - \u8bbe\u7f6eserver/peripheral\u7684UUID\n\u4f20\u5165\u503c\uff1a\nstring \u914d\u7f6e\u5b57\u7b26\u4e32,\u540e\u9762\u7684\u793a\u4f8b\u6709\u8bf4\u660e\nstring \u5730\u5740\u5b57\u7b26\u4e32\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u4e0e\u5426\n\u4f8b\u5b50\uff1a\n-- \u53c2\u8003 demo/nimble, 2023-02-25\u4e4b\u540e\u7f16\u8bd1\u7684\u56fa\u4ef6\u652f\u6301\u672cAPI\n-- \u5fc5\u987b\u5728nimble.init()\u4e4b\u524d\u8c03\u7528\n-- \u672c\u51fd\u6570\u5bf9peripheral/\u4ece\u673a\u6a21\u5f0f\u9002\u7528\n\n-- \u8bbe\u7f6eSERVER/Peripheral\u6a21\u5f0f\u4e0b\u7684UUID, \u652f\u6301\u8bbe\u7f6e3\u4e2a\n-- \u5730\u5740\u652f\u6301 2/4/16\u5b57\u8282, \u9700\u8981\u4e8c\u8fdb\u5236\u6570\u636e\n-- 2\u5b57\u8282\u5730\u5740\u793a\u4f8b: AABB, \u5199 string.fromHex(\"AABB\") ,\u6216\u8005 string.char(0xAA, 0xBB)\n-- 4\u5b57\u8282\u5730\u5740\u793a\u4f8b: AABBCCDD , \u5199 string.fromHex(\"AABBCCDD\") ,\u6216\u8005 string.char(0xAA, 0xBB, 0xCC, 0xDD)\nnimble.setUUID(\"srv\", string.fromHex(\"380D\")) -- \u670d\u52a1\u4e3bUUID , \u9ed8\u8ba4\u503c 180D\nnimble.setUUID(\"write\", string.fromHex(\"FF31\")) -- \u5f80\u672c\u8bbe\u5907\u5199\u6570\u636e\u7684UUID, \u9ed8\u8ba4\u503c FFF1\nnimble.setUUID(\"indicate\", string.fromHex(\"FF32\")) -- \u8ba2\u9605\u672c\u8bbe\u5907\u7684\u6570\u636e\u7684UUID,\u9ed8\u8ba4\u503c FFF2\n", "prefix": "nimble.setUUID"}, "nimble.mac": {"body": "nimble.mac()", "description": "nimble.mac() - \u83b7\u53d6\u84dd\u7259MAC\n\u8fd4\u56de\u503c\uff1a\nstring \u84dd\u7259MAC\u5730\u5740,6\u5b57\u8282\n\u4f8b\u5b50\uff1a\n-- \u53c2\u8003 demo/nimble, 2023-02-25\u4e4b\u540e\u7f16\u8bd1\u7684\u56fa\u4ef6\u652f\u6301\u672cAPI\n-- \u672c\u51fd\u6570\u5bf9\u6240\u6709\u6a21\u5f0f\u90fd\u9002\u7528\nlocal mac = nimble.mac()\nlog.info(\"ble\", \"mac\", mac and mac:toHex() or \"Unknwn\")\n", "prefix": "nimble.mac"}, "nimble.sendNotify": {"body": "nimble.sendNotify(${1:srv_uuid},${2:chr_uuid},${3:data})", "description": "nimble.sendNotify(srv_uuid, chr_uuid, data) - \u53d1\u9001notify\n\u4f20\u5165\u503c\uff1a\nstring \u670d\u52a1\u7684UUID,\u9884\u7559,\u5f53\u524d\u586bnil\u5c31\u884c\nstring \u7279\u5f81\u7684UUID,\u5fc5\u987b\u586b\u5199\nstring \u6570\u636e, \u5fc5\u586b, \u8ddfMTU\u5927\u5c0f\u76f8\u5173, \u4e00\u822c\u4e0d\u8981\u8d85\u8fc7256\u5b57\u8282\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- \u672cAPI\u4e8e 2023.07.31 \u65b0\u589e\n-- \u672c\u51fd\u6570\u5bf9peripheral\u6a21\u5f0f\u9002\u7528\nnimble.sendNotify(nil, string.fromHex(\"FF01\"), string.char(0x31, 0x32, 0x33, 0x34, 0x35))\n", "prefix": "nimble.sendNotify"}, "nimble.sendIndicate": {"body": "nimble.sendIndicate(${1:srv_uuid},${2:chr_uuid},${3:data})", "description": "nimble.sendIndicate(srv_uuid, chr_uuid, data) - \u53d1\u9001indicate\n\u4f20\u5165\u503c\uff1a\nstring \u670d\u52a1\u7684UUID,\u9884\u7559,\u5f53\u524d\u586bnil\u5c31\u884c\nstring \u7279\u5f81\u7684UUID,\u5fc5\u987b\u586b\u5199\nstring \u6570\u636e, \u5fc5\u586b, \u8ddfMTU\u5927\u5c0f\u76f8\u5173, \u4e00\u822c\u4e0d\u8981\u8d85\u8fc7256\u5b57\u8282\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- \u672cAPI\u4e8e 2023.07.31 \u65b0\u589e\n-- \u672c\u51fd\u6570\u5bf9peripheral\u6a21\u5f0f\u9002\u7528\nnimble.sendIndicate(nil, string.fromHex(\"FF01\"), string.char(0x31, 0x32, 0x33, 0x34, 0x35))\n", "prefix": "nimble.sendIndicate"}, "nimble.advParams": {"body": "nimble.advParams(${1:conn_mode},${2:disc_mode},${3:itvl_min},${4:itvl_max},${5:channel_map},${6:filter_policy},${7:high_duty_cycle})", "description": "nimble.advParams(conn_mode, disc_mode, itvl_min, itvl_max, channel_map, filter_policy, high_duty_cycle) - \u8bbe\u7f6e\u5e7f\u64ad\u53c2\u6570\n\u4f20\u5165\u503c\uff1a\nint \u5e7f\u64ad\u6a21\u5f0f, 0 - \u4e0d\u53ef\u8fde\u63a5, 1 - \u5b9a\u5411\u8fde\u63a5, 2 - \u672a\u5b9a\u5411\u8fde\u63a5, \u9ed8\u8ba40\nint \u53d1\u73b0\u6a21\u5f0f, 0 - \u4e0d\u53ef\u53d1\u73b0, 1 - \u9650\u5236\u53d1\u73b0, 3 - \u901a\u7528\u53d1\u73b0, \u9ed8\u8ba40\nint \u6700\u5c0f\u5e7f\u64ad\u95f4\u9694, 0 - \u4f7f\u7528\u9ed8\u8ba4\u503c, \u8303\u56f4 1 - 65535, \u5355\u4f4d0.625ms, \u9ed8\u8ba40\nint \u6700\u5927\u5e7f\u64ad\u95f4\u9694, 0 - \u4f7f\u7528\u9ed8\u8ba4\u503c, \u8303\u56f4 1 - 65535, \u5355\u4f4d0.625ms, \u9ed8\u8ba40\nint \u5e7f\u64ad\u901a\u9053, \u9ed8\u8ba40, \u4e00\u822c\u4e0d\u9700\u8981\u8bbe\u7f6e\nint \u8fc7\u6ee4\u89c4\u5219, \u9ed8\u8ba40, \u4e00\u822c\u4e0d\u9700\u8981\u8bbe\u7f6e\nint \u5f53\u5e7f\u64ad\u6a21\u5f0f\u4e3a\"\u5b9a\u5411\u8fde\u63a5\"\u65f6,\u662f\u5426\u4f7f\u7528\u9ad8\u5360\u7a7a\u6bd4\u6a21\u5f0f, \u9ed8\u8ba40, \u53ef\u90091\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n-- \u5f53\u524d\u4ec5ibeacon\u6a21\u5f0f/peripheral/\u4ece\u673a\u53ef\u4f7f\u7528\n-- \u4f8b\u5982\u8bbe\u7f6e \u4e0d\u53ef\u8fde\u63a5 + \u9650\u5236\u53d1\u73b0\n-- \u9700\u8981\u5728nimble.init\u4e4b\u524d\u8bbe\u7f6e\u597d\nnimble.advParams(0, 1)\n-- \u6ce8\u610fperipheral\u6a21\u5f0f\u4e0b\u81ea\u52a8\u914d\u7f6e conn_mode \u548c disc_mode\n", "prefix": "nimble.advParams"}, "nimble.setChr": {"body": "nimble.setChr(${1:index},${2:uuid},${3:flags})", "description": "nimble.setChr(index, uuid, flags) - \u8bbe\u7f6echr\u7684\u7279\u5f81\n\u4f20\u5165\u503c\uff1a\nint chr\u7684\u7d22\u5f15, \u9ed8\u8ba40-3\nint chr\u7684UUID, \u53ef\u4ee5\u662f2/4/16\u5b57\u8282\nint chr\u7684FLAGS, \u8bf7\u67e5\u9605\u5e38\u91cf\u8868\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n-- \u4ec5peripheral/\u4ece\u673a\u53ef\u4f7f\u7528\nnimble.setChr(0, string.fromHex(\"FF01\"), nimble.CHR_F_WRITE_NO_RSP | nimble.CHR_F_NOTIFY)\nnimble.setChr(1, string.fromHex(\"FF02\"), nimble.CHR_F_READ | nimble.CHR_F_NOTIFY)\nnimble.setChr(2, string.fromHex(\"FF03\"), nimble.CHR_F_WRITE_NO_RSP)\n-- \u53ef\u67e5\u9605 demo/nimble/kt6368a\n", "prefix": "nimble.setChr"}, "nimble.config": {"body": "nimble.config(${1:id},${2:value})", "description": "nimble.config(id, value) - \u8bbe\u7f6echr\u7684\u7279\u5f81\n\u4f20\u5165\u503c\uff1a\nint \u914d\u7f6e\u7684id,\u8bf7\u67e5\u9605\u5e38\u91cf\u8868\nany \u6839\u636e\u914d\u7f6e\u7684\u4e0d\u540c, \u6709\u4e0d\u540c\u7684\u53ef\u9009\u503c\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n-- \u672c\u51fd\u6570\u5728\u4efb\u610f\u6a21\u5f0f\u53ef\u7528\n-- \u672cAPI\u4e8e 2023.07.31 \u65b0\u589e\n-- \u4f8b\u5982\u8bbe\u7f6e\u5730\u5740\u8f6c\u6362\u7684\u5927\u5c0f\u7aef, \u9ed8\u8ba4\u662f0, \u517c\u5bb9\u8001\u7684\u4ee3\u7801\n-- \u8bbe\u7f6e\u62101, \u670d\u52a1UUID\u548cchr\u7684UUID\u66f4\u76f4\u89c2\nnimble.config(nimble.CFG_ADDR_ORDER, 1)\n", "prefix": "nimble.config"}, "nimble.ibeacon": {"body": "nimble.ibeacon(${1:data},${2:major},${3:minor},${4:measured_power})", "description": "nimble.ibeacon(data, major, minor, measured_power) - \u914d\u7f6eiBeacon\u7684\u53c2\u6570,\u4ec5iBeacon\u6a21\u5f0f\u53ef\u7528\n\u4f20\u5165\u503c\uff1a\nstring \u6570\u636e, \u5fc5\u987b\u662f16\u5b57\u8282\nint \u4e3b\u7248\u672c\u53f7,\u9ed8\u8ba42, \u53ef\u9009, \u8303\u56f4 0 ~ 65536\nint \u6b21\u7248\u672c\u53f7,\u9ed8\u8ba410,\u53ef\u9009, \u8303\u56f4 0 ~ 65536\nint \u540d\u4e49\u529f\u7387, \u9ed8\u8ba40, \u8303\u56f4 -126 \u5230 20 \n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- \u53c2\u8003 demo/nimble, 2023-02-25\u4e4b\u540e\u7f16\u8bd1\u7684\u56fa\u4ef6\u652f\u6301\u672cAPI\n-- \u672c\u51fd\u6570\u5bf9ibeacon\u6a21\u5f0f\u9002\u7528\nnimble.ibeacon(data, 2, 10, 0)\nnimble.init()\n", "prefix": "nimble.ibeacon"}, "nimble.advData": {"body": "nimble.advData(${1:data},${2:flags})", "description": "nimble.advData(data, flags) - \u914d\u7f6e\u5e7f\u64ad\u6570\u636e,\u4ec5iBeacon\u6a21\u5f0f\u53ef\u7528\n\u4f20\u5165\u503c\uff1a\nstring \u5e7f\u64ad\u6570\u636e, \u5f53\u524d\u6700\u9ad8128\u5b57\u8282\nint \u5e7f\u64ad\u6807\u8bc6, \u53ef\u9009, \u9ed8\u8ba4\u503c\u662f 0x06,\u5373 \u4e0d\u652f\u6301\u4f20\u7edf\u84dd\u7259(0x04) + \u666e\u901a\u53d1\u73b0\u6a21\u5f0f(0x02)\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- \u53c2\u8003 demo/nimble/adv_free, 2023-03-18\u4e4b\u540e\u7f16\u8bd1\u7684\u56fa\u4ef6\u652f\u6301\u672cAPI\n-- \u672c\u51fd\u6570\u5bf9ibeacon\u6a21\u5f0f\u9002\u7528\n-- \u6570\u636e\u6765\u6e90\u53ef\u4ee5\u591a\u79cd\u591a\u6837\nlocal data = string.fromHex(\"123487651234876512348765123487651234876512348765\")\n-- local data = crypto.trng(25)\n-- local data = string.char(0x11, 0x13, 0xA3, 0x5A, 0x11, 0x13, 0xA3, 0x5A, 0x11, 0x13, 0xA3, 0x5A, 0x11, 0x13, 0xA3, 0x5A)\nnimble.advData(data)\nnimble.init()\n\n-- nimble\u652f\u6301\u5728init\u4e4b\u540e\u7684\u4efb\u610f\u65f6\u523b\u518d\u6b21\u8c03\u7528, \u4ee5\u5b9e\u73b0\u6570\u636e\u66f4\u65b0\n-- \u4f8b\u5982 1\u5206\u949f\u53d8\u4e00\u6b21\nwhile 1 do\n sys.wait(60000)\n local data = crypto.trng(25)\n nimble.advData(data)\nend\n", "prefix": "nimble.advData"}, "nimble.scan": {"body": "nimble.scan(${1:timeout})", "description": "nimble.scan(timeout) - \u626b\u63cf\u4ece\u673a\n\u4f20\u5165\u503c\uff1a\nint \u8d85\u65f6\u65f6\u95f4,\u5355\u4f4d\u79d2,\u9ed8\u8ba428\u79d2\n\u8fd4\u56de\u503c\uff1a\nbool \u542f\u52a8\u626b\u63cf\u6210\u529f\u4e0e\u5426\n\u4f8b\u5b50\uff1a\n-- \u53c2\u8003 demo/nimble/scan\n-- \u672c\u51fd\u6570\u5bf9central/\u4e3b\u673a\u6a21\u5f0f\u9002\u7528\n-- \u672c\u51fd\u6570\u4f1a\u76f4\u63a5\u8fd4\u56de, \u7136\u540e\u901a\u8fc7\u5f02\u6b65\u56de\u8c03\u8fd4\u56de\u7ed3\u679c\n\n-- \u8c03\u7528\u672c\u51fd\u6570\u524d, \u9700\u8981\u5148\u786e\u4fdd\u5df2\u7ecfnimble.init()\nnimble.scan()\n-- timeout\u53c2\u6570\u4e8e 2023.7.11 \u6dfb\u52a0\n", "prefix": "nimble.scan"}, "nimble.connect": {"body": "nimble.connect(${1:mac})", "description": "nimble.connect(mac) - \u8fde\u63a5\u5230\u4ece\u673a\n\u4f20\u5165\u503c\uff1a\nstring \u8bbe\u5907\u7684MAC\u5730\u5740\n\u8fd4\u56de\u503c\uff1a\nbool \u542f\u52a8\u8fde\u63a5\u6210\u529f\u4e0e\u5426\n\u4f8b\u5b50\uff1a\n-- \u672c\u51fd\u6570\u5bf9central/\u4e3b\u673a\u6a21\u5f0f\u9002\u7528\n-- \u672c\u51fd\u6570\u4f1a\u76f4\u63a5\u8fd4\u56de, \u7136\u540e\u901a\u8fc7\u5f02\u6b65\u56de\u8c03\u8fd4\u56de\u7ed3\u679c\n", "prefix": "nimble.connect"}, "nimble.disconnect": {"body": "nimble.disconnect()", "description": "nimble.disconnect() - \u65ad\u5f00\u4e0e\u4ece\u673a\u7684\u8fde\u63a5\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n-- \u672c\u51fd\u6570\u5bf9central/\u4e3b\u673a\u6a21\u5f0f\u9002\u7528\n-- \u672c\u51fd\u6570\u4f1a\u76f4\u63a5\u8fd4\u56de\n", "prefix": "nimble.disconnect"}, "nimble.discSvr": {"body": "nimble.discSvr()", "description": "nimble.discSvr() - \u626b\u63cf\u4ece\u673a\u7684\u670d\u52a1\u5217\u8868\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n-- \u672c\u51fd\u6570\u5bf9central/\u4e3b\u673a\u6a21\u5f0f\u9002\u7528\n-- \u672c\u51fd\u6570\u4f1a\u76f4\u63a5\u8fd4\u56de,\u7136\u540e\u5f02\u6b65\u8fd4\u56de\u7ed3\u679c\n-- \u8fd9\u4e2aAPI\u901a\u5e38\u4e0d\u9700\u8981\u8c03\u7528, \u5728\u8fde\u63a5\u4ece\u673a\u5b8c\u6210\u540e,\u4f1a\u4e3b\u52a8\u8c03\u7528\u4e00\u6b21\n", "prefix": "nimble.discSvr"}, "nimble.listSvr": {"body": "nimble.listSvr()", "description": "nimble.listSvr() - \u83b7\u53d6\u4ece\u673a\u7684\u670d\u52a1\u5217\u8868\n\u8fd4\u56de\u503c\uff1a\ntable \u670d\u52a1UUID\u7684\u6570\u7ec4\n\u4f8b\u5b50\uff1a\n-- \u672c\u51fd\u6570\u5bf9central/\u4e3b\u673a\u6a21\u5f0f\u9002\u7528\n", "prefix": "nimble.listSvr"}, "nimble.discChr": {"body": "nimble.discChr(${1:svr_uuid})", "description": "nimble.discChr(svr_uuid) - \u626b\u63cf\u4ece\u673a\u7684\u6307\u5b9a\u670d\u52a1\u7684\u7279\u5f81\u503c\n\u4f20\u5165\u503c\uff1a\nstring \u6307\u5b9a\u670d\u52a1\u7684UUID\u503c\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u542f\u52a8\u626b\u63cf\u4e0e\u5426\n\u4f8b\u5b50\uff1a\n-- \u672c\u51fd\u6570\u5bf9central/\u4e3b\u673a\u6a21\u5f0f\u9002\u7528\n", "prefix": "nimble.discChr"}, "nimble.listChr": {"body": "nimble.listChr(${1:svr_uuid})", "description": "nimble.listChr(svr_uuid) - \u83b7\u53d6\u4ece\u673a\u7684\u6307\u5b9a\u670d\u52a1\u7684\u7279\u5f81\u503c\u5217\u8868\n\u4f20\u5165\u503c\uff1a\nstring \u6307\u5b9a\u670d\u52a1\u7684UUID\u503c\n\u8fd4\u56de\u503c\uff1a\ntable \u7279\u5f81\u503c\u5217\u8868,\u5305\u542bUUID\u548cflags\n\u4f8b\u5b50\uff1a\n-- \u672c\u51fd\u6570\u5bf9central/\u4e3b\u673a\u6a21\u5f0f\u9002\u7528\n", "prefix": "nimble.listChr"}, "nimble.discDsc": {"body": "nimble.discDsc(${1:svr_uuid},${2:chr_uuid})", "description": "nimble.discDsc(svr_uuid, chr_uuid) - \u626b\u63cf\u4ece\u673a\u7684\u6307\u5b9a\u670d\u52a1\u7684\u7279\u5f81\u503c\u7684\u5176\u4ed6\u5c5e\u6027\n\u4f20\u5165\u503c\uff1a\nstring \u6307\u5b9a\u670d\u52a1\u7684UUID\u503c\nstring \u7279\u5f81\u503c\u7684UUID\u503c\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u542f\u52a8\u626b\u63cf\u4e0e\u5426\n\u4f8b\u5b50\uff1a\n-- \u672c\u51fd\u6570\u5bf9central/\u4e3b\u673a\u6a21\u5f0f\u9002\u7528\n", "prefix": "nimble.discDsc"}, "nimble.writeChr": {"body": "nimble.writeChr(${1:svr_uuid},${2:chr_uuid})", "description": "nimble.writeChr(svr_uuid, chr_uuid) - \u4ece\u6307\u5b9a\u7684\u670d\u52a1\u7684\u6307\u5b9a\u7279\u5f81\u503c\u8bfb\u53d6\u6570\u636e(\u5f02\u6b65)\n\u4f20\u5165\u503c\uff1a\nstring \u6307\u5b9a\u670d\u52a1\u7684UUID\u503c\nstring \u6307\u5b9a\u7279\u5f81\u503c\u7684UUID\u503c\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u542f\u52a8\u5199\u5165\u4e0e\u5426\n\u4f8b\u5b50\uff1a\n-- \u672c\u51fd\u6570\u5bf9central/\u4e3b\u673a\u6a21\u5f0f\u9002\u7528\n-- \u8be6\u7ec6\u7528\u6cd5\u8bf7\u53c2\u6570 demo/nimble/central\n", "prefix": "nimble.writeChr"}, "nimble.subChr": {"body": "nimble.subChr(${1:svr_uuid},${2:chr_uuid})", "description": "nimble.subChr(svr_uuid, chr_uuid) - \u8ba2\u9605\u6307\u5b9a\u7684\u670d\u52a1\u7684\u6307\u5b9a\u7279\u5f81\u503c\n\u4f20\u5165\u503c\uff1a\nstring \u6307\u5b9a\u670d\u52a1\u7684UUID\u503c\nstring \u6307\u5b9a\u7279\u5f81\u503c\u7684UUID\u503c\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u542f\u52a8\u8ba2\u9605\u4e0e\u5426\n\u4f8b\u5b50\uff1a\n-- \u672c\u51fd\u6570\u5bf9central/\u4e3b\u673a\u6a21\u5f0f\u9002\u7528\n-- \u8be6\u7ec6\u7528\u6cd5\u8bf7\u53c2\u6570 demo/nimble/central\n", "prefix": "nimble.subChr"}, "nimble.unsubChr": {"body": "nimble.unsubChr(${1:svr_uuid},${2:chr_uuid})", "description": "nimble.unsubChr(svr_uuid, chr_uuid) - \u53d6\u6d88\u8ba2\u9605\u6307\u5b9a\u7684\u670d\u52a1\u7684\u6307\u5b9a\u7279\u5f81\u503c\n\u4f20\u5165\u503c\uff1a\nstring \u6307\u5b9a\u670d\u52a1\u7684UUID\u503c\nstring \u6307\u5b9a\u7279\u5f81\u503c\u7684UUID\u503c\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u542f\u52a8\u53d6\u6d88\u8ba2\u9605\u4e0e\u5426\n\u4f8b\u5b50\uff1a\n-- \u672c\u51fd\u6570\u5bf9central/\u4e3b\u673a\u6a21\u5f0f\u9002\u7528\n-- \u8be6\u7ec6\u7528\u6cd5\u8bf7\u53c2\u6570 demo/nimble/central\n", "prefix": "nimble.unsubChr"}, "otp.read": {"body": "otp.read(${1:zone},${2:offset},${3:len})", "description": "otp.read(zone, offset, len) - \u8bfb\u53d6\u6307\u5b9aOTP\u533a\u57df\u8bfb\u53d6\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nint \u533a\u57df, \u901a\u5e38\u4e3a0/1/2/3, \u4e0e\u5177\u4f53\u786c\u4ef6\u76f8\u5173\nint \u504f\u79fb\u91cf\nint \u8bfb\u53d6\u957f\u5ea6, \u5355\u4f4d\u5b57\u8282, \u5fc5\u987b\u662f4\u7684\u500d\u6570, \u4e0d\u80fd\u8d85\u8fc74096\u5b57\u8282\n\u8fd4\u56de\u503c\uff1a\nstring \u6210\u529f\u8fd4\u56de\u5b57\u7b26\u4e32, \u5426\u5219\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\n\nlocal otpdata = otp.read(0, 0, 64)\nif otpdata then\n log.info(\"otp\", otpdata:toHex())\nend\n", "prefix": "otp.read"}, "otp.write": {"body": "otp.write(${1:zone},${2:data},${3:offset})", "description": "otp.write(zone, data, offset) - \u5f80\u6307\u5b9aOTP\u533a\u57df\u5199\u5165\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nint \u533a\u57df, \u901a\u5e38\u4e3a0/1/2/3, \u4e0e\u5177\u4f53\u786c\u4ef6\u76f8\u5173\nstring \u6570\u636e, \u957f\u5ea6\u5fc5\u987b\u662f4\u4e2a\u500d\u6570\nint \u504f\u79fb\u91cf\n\u8fd4\u56de\u503c\uff1a\nbooL \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n", "prefix": "otp.write"}, "otp.erase": {"body": "otp.erase(${1:zone})", "description": "otp.erase(zone) - \u64e6\u9664\u6307\u5b9aOTP\u533a\u57df\n\u4f20\u5165\u503c\uff1a\nint \u533a\u57df, \u901a\u5e38\u4e3a0/1/2/3, \u4e0e\u5177\u4f53\u786c\u4ef6\u76f8\u5173\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n", "prefix": "otp.erase"}, "otp.lock": {"body": "otp.lock(${1:zone})", "description": "otp.lock(zone) - \u9501\u5b9aOTP\u533a\u57df. \u7279\u522b\u6ce8\u610f!!\u4e00\u65e6\u52a0\u9501\u5373\u65e0\u6cd5\u89e3\u9501,OTP\u53d8\u6210\u53ea\u8bfb!!!\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n", "prefix": "otp.lock"}, "pack.unpack": {"body": "pack.unpack(${1:string},${2:format},${3:init})", "description": "pack.unpack( string, format, init) - \u89e3\u5305\u5b57\u7b26\u4e32\n\u4f20\u5165\u503c\uff1a\nstring \u9700\u89e3\u5305\u7684\u5b57\u7b26\u4e32\nstring \u683c\u5f0f\u5316\u7b26\u53f7 '<':\u8bbe\u4e3a\u5c0f\u7aef\u7f16\u7801 '>':\u8bbe\u4e3a\u5927\u7aef\u7f16\u7801 '=':\u5927\u5c0f\u7aef\u9075\u5faa\u672c\u5730\u8bbe\u7f6e 'z':\u7a7a\u5b57\u7b26\u4e32 'p':byte\u5b57\u7b26\u4e32 'P':word\u5b57\u7b26\u4e32 'a':size_t\u5b57\u7b26\u4e32 'A':\u6307\u5b9a\u957f\u5ea6\u5b57\u7b26\u4e32 'f':float 'd':double 'n':Lua number 'c':char 'b':byte = unsigned char 'h':short 'H':unsigned short 'i':int 'I':unsigned int 'l':long 'L':unsigned long\nint \u9ed8\u8ba4\u503c\u4e3a1\uff0c\u6807\u8bb0\u89e3\u5305\u5f00\u59cb\u7684\u4f4d\u7f6e\n\u8fd4\u56de\u503c\uff1a\nint \u5b57\u7b26\u4e32\u6807\u8bb0\u7684\u4f4d\u7f6e\nany \u7b2c\u4e00\u4e2a\u89e3\u5305\u7684\u503c, \u6839\u636eformat\u503c,\u53ef\u80fd\u6709N\u4e2a\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\nlocal _,a = pack.unpack(x,\">h\") --\u89e3\u5305\u6210short (2\u5b57\u8282)\n", "prefix": "pack.unpack"}, "pack.pack": {"body": "pack.pack(${1:format},${2:val1},${3:val2},${4:val3},${5:valn})", "description": "pack.pack( format, val1, val2, val3, valn ) - \u6253\u5305\u5b57\u7b26\u4e32\u7684\u503c\n\u4f20\u5165\u503c\uff1a\nstring format \u683c\u5f0f\u5316\u7b26\u53f7 '<':\u8bbe\u4e3a\u5c0f\u7aef\u7f16\u7801 '>':\u8bbe\u4e3a\u5927\u7aef\u7f16\u7801 '=':\u5927\u5c0f\u7aef\u9075\u5faa\u672c\u5730\u8bbe\u7f6e 'z':\u7a7a\u5b57\u7b26\u4e32 'p':byte\u5b57\u7b26\u4e32 'P':word\u5b57\u7b26\u4e32 'a':size_t\u5b57\u7b26\u4e32 'A':\u6307\u5b9a\u957f\u5ea6\u5b57\u7b26\u4e32 'f':float 'd':double 'n':Lua number 'c':char 'b':byte = unsigned char 'h':short 'H':unsigned short 'i':int 'I':unsigned int 'l':long 'L':unsigned long\nany \u7b2c\u4e00\u4e2a\u9700\u6253\u5305\u7684\u503c\nany \u7b2c\u4e8c\u4e2a\u9700\u6253\u5305\u7684\u503c\nany \u7b2c\u4e8c\u4e2a\u9700\u6253\u5305\u7684\u503c\nany \u7b2cn\u4e2a\u9700\u6253\u5305\u7684\u503c\n\u8fd4\u56de\u503c\uff1a\nstring \u4e00\u4e2a\u5305\u542b\u6240\u6709\u683c\u5f0f\u5316\u53d8\u91cf\u7684\u5b57\u7b26\u4e32\n\u4f8b\u5b50\uff1a\nlocal data = pack.pack('=0 \u662f\u672c\u6b21\u5b9a\u65f6\u5524\u9192\u7684\u5b9a\u65f6\u5668ID\uff0c\u5176\u4ed6\u9519\u8bef\uff0c\u8bf4\u660e\u4e0d\u662f\u5b9a\u65f6\u5524\u9192\u7684\n\u4f8b\u5b50\uff1a\nlocal timer_id = pm.dtimerWkId()\n", "prefix": "dtimerWkId"}, "pm.lastReson": {"body": "pm.lastReson()", "description": "pm.lastReson() - \u5f00\u673a\u539f\u56e0,\u7528\u4e8e\u5224\u65ad\u662f\u4ece\u4f11\u7720\u6a21\u5757\u5f00\u673a,\u8fd8\u662f\u7535\u6e90/\u590d\u4f4d\u5f00\u673a\n\u8fd4\u56de\u503c\uff1a\nint 0-\u4e0a\u7535/\u590d\u4f4d\u5f00\u673a, 1-RTC\u5f00\u673a, 2-WakeupIn/Pad/IO\u5f00\u673a, 3-Wakeup/RTC\u5f00\u673a\nint 0-\u666e\u901a\u5f00\u673a(\u4e0a\u7535/\u590d\u4f4d),3-\u6df1\u7761\u7720\u5f00\u673a,4-\u4f11\u7720\u5f00\u673a\nint \u590d\u4f4d\u5f00\u673a\u8be6\u7ec6\u539f\u56e0\uff1a0-powerkey\u6216\u8005\u4e0a\u7535\u5f00\u673a 1-\u5145\u7535\u6216\u8005AT\u6307\u4ee4\u4e0b\u8f7d\u5b8c\u6210\u540e\u5f00\u673a 2-\u95f9\u949f\u5f00\u673a 3-\u8f6f\u4ef6\u91cd\u542f 4-\u672a\u77e5\u539f\u56e0 5-RESET\u952e 6-\u5f02\u5e38\u91cd\u542f 7-\u5de5\u5177\u63a7\u5236\u91cd\u542f 8-\u5185\u90e8\u770b\u95e8\u72d7\u91cd\u542f 9-\u5916\u90e8\u91cd\u542f 10-\u5145\u7535\u5f00\u673a\n\u4f8b\u5b50\uff1a\n-- \u662f\u54ea\u79cd\u65b9\u5f0f\u5f00\u673a\u5462\nlog.info(\"pm\", \"last power reson\", pm.lastReson())\n", "prefix": "pm.lastReson"}, "pm.force": {"body": "pm.force(${1:mode})", "description": "pm.force(mode) - \u5f3a\u5236\u8fdb\u5165\u6307\u5b9a\u7684\u4f11\u7720\u6a21\u5f0f\uff0c\u5ffd\u7565\u67d0\u4e9b\u5916\u8bbe\u7684\u5f71\u54cd\uff0c\u6bd4\u5982USB\n\u4f20\u5165\u503c\uff1a\nint \u4f11\u7720\u6a21\u5f0f\n\u8fd4\u56de\u503c\uff1a\nboolean \u5904\u7406\u7ed3\u679c,\u82e5\u8fd4\u56de\u6210\u529f,\u5927\u6982\u7387\u4f1a\u9a6c\u4e0a\u8fdb\u5165\u8be5\u4f11\u7720\u6a21\u5f0f\n\u4f8b\u5b50\uff1a\n-- \u8bf7\u6c42\u8fdb\u5165\u4f11\u7720\u6a21\u5f0f\npm.force(pm.HIB)\n-- \u5bf9\u5e94EC618\u7cfb\u5217(Air780E/Air700E\u7b49), \u8be5\u64cd\u4f5c\u4f1a\u5173\u95edUSB\u901a\u4fe1\n-- \u5524\u9192\u540e\u5982\u9700\u5f00\u542fUSB, \u8bf7\u6253\u5f00USB\u7535\u538b\n--pm.power(pm.USB, true)\n", "prefix": "pm.force"}, "pm.check": {"body": "pm.check()", "description": "pm.check() - \u68c0\u67e5\u4f11\u7720\u72b6\u6001\n\u8fd4\u56de\u503c\uff1a\nboolean \u5904\u7406\u7ed3\u679c,\u5982\u679c\u80fd\u987a\u5229\u8fdb\u5165\u4f11\u7720,\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\nint \u5e95\u5c42\u8fd4\u56de\u503c,0\u4ee3\u8868\u80fd\u8fdb\u5165\u6700\u5e95\u5c42\u4f11\u7720,\u5176\u4ed6\u503c\u4ee3\u8868\u6700\u4f4e\u53ef\u4f11\u7720\u7ea7\u522b\n\u4f8b\u5b50\uff1a\n-- \u8bf7\u6c42\u8fdb\u5165\u4f11\u7720\u6a21\u5f0f,\u7136\u540e\u68c0\u67e5\u662f\u5426\u80fd\u771f\u7684\u4f11\u7720\npm.request(pm.HIB)\nif pm.check() then\n log.info(\"pm\", \"it is ok to hib\")\nelse\n -- \u5bf9\u5e94EC618\u7cfb\u5217(Air780E/Air700E\u7b49), \u8be5\u64cd\u4f5c\u4f1a\u5173\u95edUSB\u901a\u4fe1\n pm.force(pm.HIB) -- \u5f3a\u5236\u4f11\u7720\n -- \u5524\u9192\u540e\u5982\u9700\u5f00\u542fUSB, \u8bf7\u6253\u5f00USB\u7535\u538b\n --sys.wait(100)\n --pm.power(pm.USB, true)\nend\n", "prefix": "pm.check"}, "pm.shutdown": {"body": "pm.shutdown()", "description": "pm.shutdown() - \u5173\u673a\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n-- \u5f53\u524d\u4ec5EC618\u7cfb\u5217(Air780E/Air600E/Air700E/Air780EG\u652f\u6301)\n-- \u9700\u89812022-12-22\u4e4b\u540e\u7f16\u8bd1\u7684\u56fa\u4ef6\npm.shutdown()\n", "prefix": "pm.shutdown"}, "pm.reboot": {"body": "pm.reboot()", "description": "pm.reboot() - \u91cd\u542f\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n", "prefix": "pm.reboot"}, "pm.power": {"body": "pm.power(${1:id},${2:onoff})", "description": "pm.power(id, onoff) - \u5f00\u542f\u5185\u90e8\u7684\u7535\u6e90\u63a7\u5236\uff0c\u6ce8\u610f\u4e0d\u662f\u6240\u6709\u7684\u5e73\u53f0\u90fd\u652f\u6301\uff0c\u53ef\u80fd\u90e8\u5206\u5e73\u53f0\u652f\u6301\u90e8\u5206\u9009\u9879\uff0c\u770b\u786c\u4ef6\n\u4f20\u5165\u503c\uff1a\nint \u7535\u6e90\u63a7\u5236id,pm.USB pm.GPS\u4e4b\u7c7b\nboolean or int \u5f00\u5173true/1\u5f00\uff0cfalse/0\u5173\uff0c\u9ed8\u8ba4\u5173\uff0c\u90e8\u5206\u9009\u9879\u652f\u6301\u6570\u503c\n\u8fd4\u56de\u503c\uff1a\nboolean \u5904\u7406\u7ed3\u679ctrue\u6210\u529f\uff0cfalse\u5931\u8d25\n\u4f8b\u5b50\uff1a\n-- \u5173\u95edUSB\u7535\u6e90, \u53cd\u4e4b\u5f00\u542f\u5c31\u662f\u4f20true\npm.power(pm.USB, false) \n\n-- Air780EG,\u4e3a\u5185\u7f6e\u7684GPS\u82af\u7247\u4e0a\u7535. \u6ce8\u610f, Air780EG\u7684GPS\u548cGPS_ANT\u662f\u4e00\u8d77\u63a7\u5236\u7684,\u6240\u4ee5\u5408\u5e76\u4e86.\npm.power(pm.GPS, true)\n\n-- EC618\u7cfb\u5217\u5f00\u542fpwrkey\u5f00\u673a\u9632\u6296\n-- \u6ce8\u610f: \u5f00\u542f\u540e, \u590d\u4f4d\u952e\u5c31\u53d8\u6210\u5173\u673a\u4e86!!! pwrkey\u8981\u957f\u63092\u79d2\u624d\u80fd\u5f00\u673a\n-- pm.power(pm.PWK_MODE, true)\n\n-- EC618\u7cfb\u5217PSM+\u4f4e\u529f\u8017\u8bbe\u7f6e\n-- ec618\u7684\u8282\u80fd\u6a21\u5f0f\uff0c0~3\uff0c0\u5b8c\u5168\u5173\u95ed\uff0c1\u6027\u80fd\u4f18\u5148\uff0c2\u5e73\u8861\uff0c3\u6781\u81f4\u529f\u8017\n-- \u8be6\u60c5\u8bbf\u95ee: https://airpsm.cn\n-- pm.power(pm.WORK_MODE, 1)\n", "prefix": "pm.power"}, "pm.ioVol": {"body": "pm.ioVol(${1:id},${2:val})", "description": "pm.ioVol(id, val) - IO\u9ad8\u7535\u5e73\u7535\u538b\u63a7\u5236,\u5f53\u524d\u4ec5EC618\u7cfb\u5217\u53ef\u7528\n\u4f20\u5165\u503c\uff1a\nint \u7535\u5e73id,\u76ee\u524d\u53ea\u6709pm.IOVOL_ALL_GPIO\nint \u7535\u5e73\u503c,\u5355\u4f4d\u6beb\u4f0f\n\u8fd4\u56de\u503c\uff1a\nboolean \u5904\u7406\u7ed3\u679ctrue\u6210\u529f\uff0cfalse\u5931\u8d25\n\u4f8b\u5b50\uff1a\n-- EC618\u7cfb\u5217\u8bbe\u7f6eIO\u7535\u5e73, \u8303\u56f4 1650 ~ 2000\uff0c2650~3400 , \u5355\u4f4d\u6beb\u4f0f, \u6b65\u8fdb50mv\n-- \u4f8b\u5982Air780E/Air600E/Air700E/Air780EG\n-- \u6ce8\u610f, \u8fd9\u91cc\u7684\u8bbe\u7f6e\u4f18\u5148\u7ea7\u4f1a\u9ad8\u4e8e\u786c\u4ef6IOSEL\u811a\u7684\u914d\u7f6e\n-- \u4f46\u5f00\u673a\u65f6\u4f9d\u7136\u5148\u4f7f\u7528\u786c\u4ef6\u914d\u7f6e,\u76f4\u81f3\u8c03\u7528\u672cAPI\u8fdb\u884c\u914d\u7f6e, \u6240\u4ee5io\u7535\u5e73\u4f1a\u53d8\u5316\n-- pm.ioVol(pm.IOVOL_ALL_GPIO, 3300) -- \u6240\u6709GPIO\u9ad8\u7535\u5e73\u8f93\u51fa3.3V\n-- pm.ioVol(pm.IOVOL_ALL_GPIO, 1800) -- \u6240\u6709GPIO\u9ad8\u7535\u5e73\u8f93\u51fa1.8V\n", "prefix": "pm.ioVol"}, "pm.wakeupPin": {"body": "pm.wakeupPin(${1:pin},${2:level})", "description": "pm.wakeupPin(pin,level) - \u914d\u7f6e\u5524\u9192\u5f15\u811a (\u5f53\u524d\u4ec5\u4ec5esp\u7cfb\u5217\u53ef\u7528)\n\u4f20\u5165\u503c\uff1a\nint/table gpio\u5f15\u811a\nint \u5524\u9192\u7535\u538b \u53ef\u9009,\u9ed8\u8ba4\u4f4e\u7535\u5e73\u5524\u9192\n\u8fd4\u56de\u503c\uff1a\nboolean \u5904\u7406\u7ed3\u679c\n\u4f8b\u5b50\uff1a\npm.wakeupPin(8,0)\n", "prefix": "pm.wakeupPin"}, "protobuf.load": {"body": "protobuf.load(${1:pbdata})", "description": "protobuf.load(pbdata) - \u52a0\u8f7dpb\u4e8c\u8fdb\u5236\u5b9a\u4e49\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nstring \u901a\u8fc7protoc.exe\u7a0b\u5e8f\u8f6c\u6362\u5f97\u5230\u7684\u6570\u636e,\u901a\u5e38\u4ece\u6587\u4ef6\u8bfb\u53d6\u5f97\u5230\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u4e0e\u5426\nint \u8bfb\u53d6\u4e86\u591a\u957f, \u8c03\u8bd5\u7528\n\u4f8b\u5b50\uff1a\n-- \u6ce8\u610f, \u540c\u4e00\u4e2a\u6587\u4ef6\u53ea\u9700\u8981\u52a0\u8f7d\u4e00\u6b21, \u9664\u975e\u8c03\u7528\u8fc7protobuf.clear()\nprotobuf.load(io.readFile(\"/luadb/person.pb\"))\n", "prefix": "protobuf.load"}, "protobuf.clear": {"body": "protobuf.clear()", "description": "protobuf.clear() - \u6e05\u9664\u5df2\u52a0\u8f7d\u7684\u4e8c\u8fdb\u5236\u5b9a\u4e49\u6570\u636e\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c, \u603b\u662f\u6210\u529f\n\u4f8b\u5b50\uff1a\n-- \u6e05\u9664\u6240\u6709\u5df2\u52a0\u8f7d\u7684\u5b9a\u4e49\u6570\u636e\nprotobuf.clear()\n", "prefix": "protobuf.clear"}, "protobuf.encode": {"body": "protobuf.encode(${1:tpname},${2:data})", "description": "protobuf.encode(tpname, data) - \u7f16\u7801protobuffs\u6570\u636e\u5305\n\u4f20\u5165\u503c\uff1a\nstring \u6570\u636e\u7c7b\u578b\u540d\u79f0, \u5b9a\u4e49\u5728pb\u6587\u4ef6\u4e2d, \u7531protobuf.load\u52a0\u8f7d\ntable \u5f85\u7f16\u7801\u6570\u636e, \u5fc5\u987b\u662ftable, \u5185\u5bb9\u7b26\u5408pb\u6587\u4ef6\u91cc\u7684\u5b9a\u4e49\n\u8fd4\u56de\u503c\uff1a\nstring \u7f16\u7801\u540e\u7684\u6570\u636e,\u82e5\u5931\u8d25\u4f1a\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\n-- \u6570\u636e\u7f16\u7801\nlocal tb = {\n name = \"wendal\"\n}\nlocal pbdata = protobuf.encode(\"Person\", tb)\nif pbdata then\n -- \u6ce8\u610f, \u7f16\u7801\u540e\u7684\u6570\u636e\u901a\u5e38\u5e26\u4e0d\u53ef\u89c1\u5b57\u7b26\n log.info(\"protobuf\", #pbdata, pbdata:toHex())\nend\n", "prefix": "protobuf.encode"}, "protobuf.decode": {"body": "protobuf.decode(${1:tpname},${2:data})", "description": "protobuf.decode(tpname, data) - \u89e3\u7801protobuffs\u6570\u636e\u5305\n\u4f20\u5165\u503c\uff1a\nstring \u6570\u636e\u7c7b\u578b\u540d\u79f0, \u5b9a\u4e49\u5728pb\u6587\u4ef6\u4e2d, \u7531protobuf.load\u52a0\u8f7d\nstring \u5f85\u7f16\u7801\u6570\u636e\n\u8fd4\u56de\u503c\uff1a\ntable \u89e3\u7801\u540e\u7684\u6570\u636e\n\u4f8b\u5b50\uff1a\n-- \u6570\u636e\u7f16\u7801\nlocal tb = {\n name = \"wendal\"\n}\nlocal pbdata = protobuf.encode(\"Person\", tb)\nif pbdata then\n -- \u6ce8\u610f, \u7f16\u7801\u540e\u7684\u6570\u636e\u901a\u5e38\u5e26\u4e0d\u53ef\u89c1\u5b57\u7b26\n log.info(\"protobuf\", #pbdata, pbdata:toHex())\nend\n", "prefix": "protobuf.decode"}, "pwm.open": {"body": "pwm.open(${1:channel},${2:period},${3:pulse},${4:pnum},${5:precision})", "description": "pwm.open(channel, period, pulse, pnum, precision) - \u5f00\u542f\u6307\u5b9a\u7684PWM\u901a\u9053\n\u4f20\u5165\u503c\uff1a\nint PWM\u901a\u9053\nint \u9891\u7387, 1-1000000hz\nint \u5360\u7a7a\u6bd4 0-\u5206\u9891\u7cbe\u5ea6\nint \u8f93\u51fa\u5468\u671f 0\u4e3a\u6301\u7eed\u8f93\u51fa, 1\u4e3a\u5355\u6b21\u8f93\u51fa, \u5176\u4ed6\u4e3a\u6307\u5b9a\u8109\u51b2\u6570\u8f93\u51fa\nint \u5206\u9891\u7cbe\u5ea6, 100/256/1000, \u9ed8\u8ba4\u4e3a100, \u82e5\u8bbe\u5907\u4e0d\u652f\u6301\u4f1a\u6709\u65e5\u5fd7\u63d0\u793a\n\u8fd4\u56de\u503c\uff1a\nboolean \u5904\u7406\u7ed3\u679c,\u6210\u529f\u8fd4\u56detrue,\u5931\u8d25\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- \u6253\u5f00PWM5, \u9891\u73871kHz, \u5360\u7a7a\u6bd450%\npwm.open(5, 1000, 50)\n-- \u6253\u5f00PWM5, \u9891\u738710kHz, \u5206\u9891\u4e3a 31/256\npwm.open(5, 10000, 31, 0, 256)\n", "prefix": "pwm.open"}, "pwm.close": {"body": "pwm.close(${1:channel})", "description": "pwm.close(channel) - \u5173\u95ed\u6307\u5b9a\u7684PWM\u901a\u9053\n\u4f20\u5165\u503c\uff1a\nint PWM\u901a\u9053\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u5904\u7406\u7ed3\u679c\n\u4f8b\u5b50\uff1a\n-- \u5173\u95edPWM5\npwm.close(5)\n", "prefix": "pwm.close"}, "pwm.capture": {"body": "pwm.capture(${1:channel})", "description": "pwm.capture(channel) - PWM\u6355\u83b7\n\u4f20\u5165\u503c\uff1a\nint PWM\u901a\u9053\nint \u6355\u83b7\u9891\u7387\n\u8fd4\u56de\u503c\uff1a\nboolean \u5904\u7406\u7ed3\u679c,\u6210\u529f\u8fd4\u56detrue,\u5931\u8d25\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- PWM0\u6355\u83b7\nwhile 1 do\n pwm.capture(0,1000)\n local ret,channel,pulse,pwmH,pwmL = sys.waitUntil(\"PWM_CAPTURE\", 2000)\n if ret then\n log.info(\"PWM_CAPTURE\",\"channel\"..channel,\"pulse\"..pulse,\"pwmH\"..pwmH,\"pwmL\"..pwmL)\n end\nend\n", "prefix": "pwm.capture"}, "repl.enable": {"body": "repl.enable(${1:re})", "description": "repl.enable(re) - \u542f\u7528\u6216\u7981\u7528REPL\u529f\u80fd\n\u4f20\u5165\u503c\uff1a\nbool \u542f\u7528\u4e0e\u5426,\u9ed8\u8ba4\u662f\u542f\u7528\nreturn \u4e4b\u524d\u7684\u8bbe\u7f6e\u72b6\u6001\n\u4f8b\u5b50\uff1a\n-- \u82e5\u56fa\u4ef6\u652f\u6301REPL,\u5373\u7f16\u8bd1\u65f6\u542f\u7528\u4e86REPL,\u662f\u9ed8\u8ba4\u542f\u7528REPL\u529f\u80fd\u7684\n-- \u672c\u51fd\u6570\u662f\u63d0\u4f9b\u5173\u95edREPL\u7684\u9014\u5f84\nrepl.enable(false)\n", "prefix": "repl.enable"}, "repl.push": {"body": "repl.push(${1:data})", "description": "repl.push(data) - \u4e3b\u52a8\u63a8\u9001\u5f85\u5904\u7406\u7684\u6570\u636e\u5230\u5e95\u5c42\n\u4f20\u5165\u503c\uff1a\nstring \u5f85\u5904\u7406\u7684\u6570\u636e,\u901a\u5e38\u4ece\u4e32\u53e3\u6765\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n-- \u865a\u62df\u4e32\u53e3\u7684\u8bbe\u5907\u624d\u9700\u8981\u8fd9\u4e2a\u51fd\u6570\n", "prefix": "repl.push"}, "rsa.encrypt": {"body": "rsa.encrypt(${1:key},${2:data})", "description": "rsa.encrypt(key, data) - RSA\u52a0\u5bc6\n\u4f20\u5165\u503c\uff1a\nstring \u516c\u94a5\u6570\u636e,\u4ec5\u652f\u6301PEM\u683c\u5f0f\nstring \u5f85\u52a0\u5bc6\u6570\u636e, \u4e0d\u80fd\u8d85\u8fc7\u516c\u94a5\u4f4d\u6570\u7684\u4e00\u534a, \u4f8b\u5982 2048bit\u7684\u516c\u94a5, \u53ea\u80fd\u52a0\u5bc6128\u5b57\u8282\u7684\u6570\u636e\n\u8fd4\u56de\u503c\uff1a\nstring \u52a0\u5bc6\u6210\u529f\u540e\u7684\u6570\u636e,\u82e5\u5931\u8d25\u4f1a\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\n-- \u4e0b\u9762\u4ee3\u7801\u4e2d\u7684 \"abc\" \u662f\u5f85\u52a0\u5bc6\u6570\u636e\nlocal res = rsa.encrypt((io.readFile(\"/luadb/public.pem\")), \"abc\")\n-- \u6253\u5370\u7ed3\u679c\nlog.info(\"rsa\", \"encrypt\", res and #res or 0, res and res:toHex() or \"\")\n", "prefix": "rsa.encrypt"}, "rsa.decrypt": {"body": "rsa.decrypt(${1:key},${2:data},${3:pwd})", "description": "rsa.decrypt(key, data, pwd) - RSA\u89e3\u5bc6\n\u4f20\u5165\u503c\uff1a\nstring \u79c1\u94a5\u6570\u636e,\u4ec5\u652f\u6301PEM\u683c\u5f0f\nstring \u5f85\u89e3\u5bc6\u6570\u636e\nstring \u79c1\u94a5\u7684\u5bc6\u7801,\u53ef\u9009\n\u8fd4\u56de\u503c\uff1a\nstring \u89e3\u5bc6\u6210\u529f\u540e\u7684\u6570\u636e,\u82e5\u5931\u8d25\u4f1a\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\n-- \u6ce8\u610f, \u89e3\u5bc6\u901a\u5e38\u5f88\u6162, \u5efa\u8bae\u5728\u670d\u52a1\u5668\u7aef\u8fdb\u884c\n-- res \u662f\u5f85\u89e3\u5bc6\u7684\u6570\u636e\nlocal dst = rsa.decrypt((io.readFile(\"/luadb/privkey.pem\")), res, \"\")\nlog.info(\"rsa\", \"decrypt\", dst and #dst or 0, dst and dst:toHex() or \"\")\n", "prefix": "rsa.decrypt"}, "rsa.verify": {"body": "rsa.verify(${1:key},${2:md},${3:hash},${4:sig})", "description": "rsa.verify(key, md, hash, sig) - RSA\u9a8c\u7b7e\n\u4f20\u5165\u503c\uff1a\nstring \u516c\u94a5\u6570\u636e,\u4ec5\u652f\u6301PEM\u683c\u5f0f\nint \u7b7e\u540d\u6a21\u5f0f, \u4f8b\u5982 rsa.MD_SHA1 , rsa.MD_SHA256\nstring hash\u6570\u636e, \u5982\u679c\u662fHEX\u5b57\u7b26\u4e32,\u8bb0\u5f97fromHex\u8f6c\u4e8c\u8fdb\u5236\u6570\u636e\nstring sig\u6570\u636e, \u5982\u679c\u662fHEX\u5b57\u7b26\u4e32,\u8bb0\u5f97fromHex\u8f6c\u4e8c\u8fdb\u5236\u6570\u636e\n\u8fd4\u56de\u503c\uff1a\nbool \u6709\u6548\u8fd4\u56detrue,\u5426\u5219\u4e3afalse,\u51fa\u9519\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\nlocal ret = rsa.verify((io.readFile(\"/luadb/public.pem\")), rsa.MD_SHA1, hash, sig)\nlog.info(\"rsa\", \"verify\", ret)\n", "prefix": "rsa.verify"}, "rsa.sign": {"body": "rsa.sign(${1:key},${2:md},${3:hash},${4:pwd})", "description": "rsa.sign(key, md, hash, pwd) - RSA\u7b7e\u540d\n\u4f20\u5165\u503c\uff1a\nstring \u79c1\u94a5\u6570\u636e,\u4ec5\u652f\u6301PEM\u683c\u5f0f\nint \u7b7e\u540d\u6a21\u5f0f, \u4f8b\u5982 rsa.MD_SHA1 , rsa.MD_SHA256\nstring hash\u6570\u636e, \u5982\u679c\u662fHEX\u5b57\u7b26\u4e32,\u8bb0\u5f97fromHex\u8f6c\u4e8c\u8fdb\u5236\u6570\u636e\nstring \u79c1\u94a5\u5bc6\u7801, \u53ef\u9009\n\u8fd4\u56de\u503c\uff1a\nstring \u6210\u529f\u8fd4\u56desig\u6570\u636e, \u5426\u5219\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\nlocal sig = rsa.sign((io.readFile(\"/luadb/privkey.pem\")), rsa.MD_SHA1, hash, \"\")\nlog.info(\"rsa\", \"sign\", sig and #sig or 0, sig and sig:toHex() or \"\")\n", "prefix": "rsa.sign"}, "rtc.set": {"body": "rtc.set(${1:tab})", "description": "rtc.set(tab) - \u8bbe\u7f6e\u65f6\u949f\n\u4f20\u5165\u503c\uff1a\ntable or int \u65f6\u949f\u53c2\u6570,\u89c1\u793a\u4f8b\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56denil\u6216false\n\u4f8b\u5b50\uff1a\nrtc.set({year=2021,mon=8,day=31,hour=17,min=8,sec=43})\n--\u76ee\u524d\u53ea\u6709Air101/Air103/Air105/EC618\u7cfb\u5217\u652f\u6301\u65f6\u95f4\u6233\u65b9\u5f0f\nrtc.set(1652230554)\n", "prefix": "rtc.set"}, "rtc.get": {"body": "rtc.get()", "description": "rtc.get() - \u83b7\u53d6\u65f6\u949f\n\u8fd4\u56de\u503c\uff1a\ntable \u65f6\u949f\u53c2\u6570,\u89c1\u793a\u4f8b\n\u4f8b\u5b50\uff1a\nlocal t = rtc.get()\n-- {year=2021,mon=8,day=31,hour=17,min=8,sec=43}\nlog.info(\"rtc\", json.encode(t))\n", "prefix": "rtc.get"}, "rtc.timerStart": {"body": "rtc.timerStart(${1:id},${2:tab})", "description": "rtc.timerStart(id, tab) - \u8bbe\u7f6eRTC\u5524\u9192\u65f6\u95f4\n\u4f20\u5165\u503c\uff1a\nint \u65f6\u949fid,\u901a\u5e38\u53ea\u652f\u63010\ntable \u65f6\u949f\u53c2\u6570,\u89c1\u793a\u4f8b\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56denil\u6216false\n\u4f8b\u5b50\uff1a\n-- \u4f7f\u7528\u524d\u5efa\u8bae\u5148rtc.set\u8bbe\u7f6e\u4e3a\u6b63\u786e\u7684\u65f6\u95f4\nrtc.timerStart(0, {year=2021,mon=9,day=1,hour=17,min=8,sec=43})\n", "prefix": "rtc.timerStart"}, "rtc.timerStop": {"body": "rtc.timerStop(${1:id})", "description": "rtc.timerStop(id) - \u53d6\u6d88RTC\u5524\u9192\u65f6\u95f4\n\u4f20\u5165\u503c\uff1a\nint \u65f6\u949fid,\u901a\u5e38\u53ea\u652f\u63010\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56denil\u6216false\n\u4f8b\u5b50\uff1a\nrtc.timerStop(0)\n", "prefix": "rtc.timerStop"}, "rtc.setBaseYear": {"body": "rtc.setBaseYear(${1:Base_year})", "description": "rtc.setBaseYear(Base_year) - \u8bbe\u7f6eRTC\u57fa\u51c6\u5e74,\u4e0d\u63a8\u8350\n\u4f20\u5165\u503c\uff1a\nint \u57fa\u51c6\u5e74Base_year,\u901a\u5e381900\n\u4f8b\u5b50\uff1a\nrtc.setBaseYear(1900)\n", "prefix": "rtc.setBaseYear"}, "rtc.timezone": {"body": "rtc.timezone(${1:tz})", "description": "rtc.timezone(tz) - \u8bfb\u53d6\u6216\u8bbe\u7f6e\u65f6\u533a\n\u4f20\u5165\u503c\uff1a\nint \u65f6\u533a\u503c,\u6ce8\u610f\u5355\u4f4d\u662f1/4\u65f6\u533a.\u4f8b\u5982\u4e1c\u516b\u533a\u662f 32,\u800c\u975e8. \u53ef\u4ee5\u4e0d\u4f20\nreturn \u5f53\u524d/\u8bbe\u7f6e\u540e\u7684\u65f6\u533a\u503c\n\u4f8b\u5b50\uff1a\n-- \u8bbe\u7f6e\u4e3a\u4e1c8\u533a\nrtc.timezone(32)\n-- \u8bbe\u7f6e\u4e3a\u4e1c3\u533a\nrtc.timezone(12)\n-- \u8bbe\u7f6e\u4e3a\u897f4\u533a\nrtc.timezone(-16)\n-- \u6ce8\u610f: \u65e0\u8bba\u8bbe\u7f6e\u65f6\u533a\u662f\u591a\u5c11, rtc.get/set\u603b\u662fUTC\u65f6\u95f4\n-- \u65f6\u533a\u5f71\u54cd\u7684\u662f os.date/os.time \u51fd\u6570\n-- \u53ea\u6709\u90e8\u5206\u6a21\u5757\u652f\u6301\u8bbe\u7f6e\u65f6\u533a, \u4e14\u9ed8\u8ba4\u503c\u4e00\u822c\u4e3a32, \u5373\u4e1c\u516b\u533a\n", "prefix": "rtc.timezone"}, "rtos.receive": {"body": "rtos.receive(${1:timeout})", "description": "rtos.receive(timeout) - \u63a5\u53d7\u5e76\u5904\u7406\u5e95\u5c42\u6d88\u606f\u961f\u5217.\n\u4f20\u5165\u503c\uff1a\nint \u8d85\u65f6\u65f6\u957f,\u901a\u5e38\u662f-1,\u6c38\u4e45\u7b49\u5f85\n\u8fd4\u56de\u503c\uff1a\nmsgid \u5982\u679c\u662f\u5b9a\u65f6\u5668\u6d88\u606f,\u4f1a\u8fd4\u56de\u5b9a\u65f6\u5668\u6d88\u606fid\u53ca\u9644\u52a0\u4fe1\u606f, \u5176\u4ed6\u6d88\u606f\u7531\u5e95\u5c42\u51b3\u5b9a,\u4e0d\u5411lua\u5c42\u8fdb\u884c\u4efb\u4f55\u4fdd\u8bc1.\n", "prefix": "rtos.receive"}, "rtos.timer_start": {"body": "rtos.timer_start(${1:id},${2:timeout},${3:_repeat})", "description": "rtos.timer_start(id,timeout,_repeat) - \u542f\u52a8\u4e00\u4e2a\u5b9a\u65f6\u5668\n\u4f20\u5165\u503c\uff1a\nint \u5b9a\u65f6\u5668id\nint \u8d85\u65f6\u65f6\u957f,\u5355\u4f4d\u6beb\u79d2\nint \u91cd\u590d\u6b21\u6570,\u9ed8\u8ba4\u662f0\n\u8fd4\u56de\u503c\uff1a\nid \u5982\u679c\u662f\u5b9a\u65f6\u5668\u6d88\u606f,\u4f1a\u8fd4\u56de\u5b9a\u65f6\u5668\u6d88\u606fid\u53ca\u9644\u52a0\u4fe1\u606f, \u5176\u4ed6\u6d88\u606f\u7531\u5e95\u5c42\u51b3\u5b9a,\u4e0d\u5411lua\u5c42\u8fdb\u884c\u4efb\u4f55\u4fdd\u8bc1.\n\u4f8b\u5b50\uff1a\n-- \u7528\u6237\u4ee3\u7801\u8bf7\u4f7f\u7528 sys.timerStart\n-- \u542f\u52a8\u4e00\u4e2a3\u79d2\u7684\u5faa\u73af\u5b9a\u65f6\u5668\nrtos.timer_start(10000, 3000, -1)\n", "prefix": "rtos.timer_start"}, "rtos.timer_stop": {"body": "rtos.timer_stop(${1:id})", "description": "rtos.timer_stop(id) - \u5173\u95ed\u5e76\u91ca\u653e\u4e00\u4e2a\u5b9a\u65f6\u5668\n\u4f20\u5165\u503c\uff1a\nint \u5b9a\u65f6\u5668id\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n-- \u7528\u6237\u4ee3\u7801\u8bf7\u4f7f\u7528sys.timerStop\nrtos.timer_stop(id)\n", "prefix": "rtos.timer_stop"}, "rtos.reboot": {"body": "rtos.reboot()", "description": "rtos.reboot() - \u8bbe\u5907\u91cd\u542f\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n", "prefix": "rtos.reboot"}, "rtos.buildDate": {"body": "rtos.buildDate()", "description": "rtos.buildDate() - \u83b7\u53d6\u56fa\u4ef6\u7f16\u8bd1\u65e5\u671f\n\u8fd4\u56de\u503c\uff1a\nstring \u56fa\u4ef6\u7f16\u8bd1\u65e5\u671f\n\u4f8b\u5b50\uff1a\n-- \u83b7\u53d6\u7f16\u8bd1\u65e5\u671f\nlocal d = rtos.buildDate()\n", "prefix": "rtos.buildDate"}, "rtos.bsp": {"body": "rtos.bsp()", "description": "rtos.bsp() - \u83b7\u53d6\u786c\u4ef6bsp\u578b\u53f7\n\u8fd4\u56de\u503c\uff1a\nstring \u786c\u4ef6bsp\u578b\u53f7\n\u4f8b\u5b50\uff1a\n-- \u83b7\u53d6\u786c\u4ef6bsp\u578b\u53f7\nlocal bsp = rtos.bsp()\n", "prefix": "rtos.bsp"}, "rtos.version": {"body": "rtos.version()", "description": "rtos.version() - \u83b7\u53d6\u56fa\u4ef6\u7248\u672c\u53f7\n\u8fd4\u56de\u503c\uff1a\nstring \u56fa\u4ef6\u7248\u672c\u53f7,\u4f8b\u5982\"V0001\"\n\u4f8b\u5b50\uff1a\n-- \u8bfb\u53d6\u7248\u672c\u53f7\nlocal luatos_version = rtos.version()\n", "prefix": "rtos.version"}, "rtos.standy": {"body": "rtos.standy(${1:timeout})", "description": "rtos.standy(timeout) - \u8fdb\u5165\u5f85\u673a\u6a21\u5f0f, \u4ec5\u90e8\u5206\u8bbe\u5907\u53ef\u7528, \u672cAPI\u5df2\u5e9f\u5f03, \u63a8\u8350\u4f7f\u7528pm\u5e93\n\u4f20\u5165\u503c\uff1a\nint \u4f11\u7720\u65f6\u957f,\u5355\u4f4d\u6beb\u79d2\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n-- \u8fdb\u5165\u5f85\u673a\u6a21\u5f0f\nrtos.standby(5000)\n", "prefix": "rtos.standy"}, "rtos.meminfo": {"body": "rtos.meminfo(${1:type})", "description": "rtos.meminfo(type) - \u83b7\u53d6\u5185\u5b58\u4fe1\u606f\n\u4f20\u5165\u503c\uff1a\ntype \"sys\"\u7cfb\u7edf\u5185\u5b58, \"lua\"\u865a\u62df\u673a\u5185\u5b58, \u9ed8\u8ba4\u4e3alua\u865a\u62df\u673a\u5185\u5b58\n\u8fd4\u56de\u503c\uff1a\nint \u603b\u5185\u5b58\u5927\u5c0f,\u5355\u4f4d\u5b57\u8282\nint \u5f53\u524d\u5df2\u4f7f\u7528\u7684\u5185\u5b58\u5927\u5c0f,\u5355\u4f4d\u5b57\u8282\nint \u5386\u53f2\u6700\u9ad8\u5df2\u4f7f\u7528\u7684\u5185\u5b58\u5927\u5c0f,\u5355\u4f4d\u5b57\u8282\n\u4f8b\u5b50\uff1a\n-- \u6253\u5370\u5185\u5b58\u5360\u7528\nlog.info(\"mem.lua\", rtos.meminfo())\nlog.info(\"mem.sys\", rtos.meminfo(\"sys\"))\n", "prefix": "rtos.meminfo"}, "rtos.firmware": {"body": "rtos.firmware()", "description": "rtos.firmware() - \u8fd4\u56de\u5e95\u5c42\u63cf\u8ff0\u4fe1\u606f,\u683c\u5f0f\u4e3a LuatOS_$VERSION_$BSP,\u53ef\u7528\u4e8eOTA\u5347\u7ea7\u5224\u65ad\u5e95\u5c42\u4fe1\u606f\n\u8fd4\u56de\u503c\uff1a\nstring \u5e95\u5c42\u63cf\u8ff0\u4fe1\u606f\n\u4f8b\u5b50\uff1a\n-- \u6253\u5370\u5e95\u5c42\u63cf\u8ff0\u4fe1\u606f\nlog.info(\"firmware\", rtos.firmware())\n", "prefix": "rtos.firmware"}, "rtos.setPaths": {"body": "rtos.setPaths(${1:pathA},${2:pathB},${3:pathC},${4:pathD})", "description": "rtos.setPaths(pathA, pathB, pathC, pathD) - \u8bbe\u7f6e\u81ea\u5b9a\u4e49lua\u811a\u672c\u641c\u7d22\u8def\u5f84,\u4f18\u5148\u7ea7\u9ad8\u4e8e\u5185\u7f6e\u8def\u5f84\n\u4f20\u5165\u503c\uff1a\nstring \u8def\u5f84A, \u4f8b\u5982 \"/sdcard/%s.luac\",\u82e5\u4e0d\u4f20\u503c,\u5c06\u9ed8\u8ba4\u4e3a\"\",\u53e6\u5916,\u6700\u5927\u957f\u5ea6\u4e0d\u80fd\u8d85\u8fc723\u5b57\u8282\nstring \u8def\u5f84B, \u4f8b\u5982 \"/sdcard/%s.lua\"\nstring \u8def\u5f84C, \u4f8b\u5982 \"/lfs2/%s.luac\"\nstring \u8def\u5f84D, \u4f8b\u5982 \"/lfs2/%s.lua\"\n\u4f8b\u5b50\uff1a\n-- \u6302\u8f7dsd\u5361\u6216\u8005spiflash\u540e\nrtos.setPaths(\"/sdcard/user/%s.luac\", \"/sdcard/user/%s.lua\")\nrequire(\"sd_user_main\") -- \u5c06\u641c\u7d22\u5e76\u52a0\u8f7d /sdcard/user/sd_user_main.luac \u548c /sdcard/user/sd_user_main.lua\n", "prefix": "rtos.setPaths"}, "rtos.nop": {"body": "rtos.nop()", "description": "rtos.nop() - \u7a7a\u51fd\u6570,\u4ec0\u4e48\u90fd\u4e0d\u505a\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n-- \u8fd9\u4e2a\u51fd\u6570\u5355\u7eaf\u5c31\u662f lua -> c -> lua \u8d70\u4e00\u904d\n-- \u6ca1\u6709\u53c2\u6570,\u6ca1\u6709\u8fd4\u56de\u503c,\u6ca1\u6709\u903b\u8f91\u5904\u7406\n-- \u5728\u7edd\u5927\u591a\u6570\u60c5\u51b5\u4e0b,\u4e0d\u4f1a\u9047\u5230\u8fd9\u4e2a\u51fd\u6570\u7684\u8c03\u7528\n-- \u5b83\u901a\u5e38\u53ea\u4f1a\u51fa\u73b0\u5728\u6027\u80fd\u6d4b\u8bd5\u7684\u4ee3\u7801\u91cc, \u56e0\u4e3a\u5b83\u4ec0\u4e48\u90fd\u4e0d\u5e72.\nrtos.nop()\n", "prefix": "rtos.nop"}, "rtos.autoCollectMem": {"body": "rtos.autoCollectMem(${1:period},${2:warning_level},${3:force_level})", "description": "rtos.autoCollectMem(period, warning_level, force_level) - \u5185\u5b58\u81ea\u52a8\u6536\u96c6\u914d\u7f6e\uff0c\u662flua\u672c\u8eab\u6536\u96c6\u673a\u5236\u7684\u4e00\u79cd\u8865\u5145\uff0c\u4e0d\u662f\u5fc5\u8981\u7684\uff0c\u800c\u4e14\u53ea\u5728luavm\u7a7a\u95f2\u65f6\u89e6\u53d1\n", "prefix": "rtos.autoCollectMem"}, "sdio.init": {"body": "sdio.init(${1:id})", "description": "sdio.init(id) - \u521d\u59cb\u5316sdio\n\u4f20\u5165\u503c\uff1a\nint \u901a\u9053id,\u4e0e\u5177\u4f53\u8bbe\u5907\u6709\u5173,\u901a\u5e38\u4ece0\u5f00\u59cb,\u9ed8\u8ba40\n\u8fd4\u56de\u503c\uff1a\nboolean \u6253\u5f00\u7ed3\u679c\n", "prefix": "sdio.init"}, "sdio.sd_read": {"body": "sdio.sd_read(${1:id},${2:offset},${3:len})", "description": "sdio.sd_read(id, offset, len) - \u76f4\u63a5\u8bfb\u5199sd\u5361\u4e0a\u7684\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nint sdio\u603b\u7ebfid\nint \u504f\u79fb\u91cf,\u5fc5\u987b\u662f512\u7684\u500d\u6570\nint \u957f\u5ea6,\u5fc5\u987b\u662f512\u7684\u500d\u6570\n\u8fd4\u56de\u503c\uff1a\nstring \u82e5\u8bfb\u53d6\u6210\u529f,\u8fd4\u56de\u5b57\u7b26\u4e32,\u5426\u5219\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\n-- \u521d\u59cb\u5316sdio\u5e76\u76f4\u63a5\u8bfb\u53d6sd\u5361\u6570\u636e\nsdio.init(0)\nlocal t = sdio.sd_read(0, 0, 1024)\nif t then\n --- xxx\nend\n", "prefix": "sdio.sd_read"}, "sdio.sd_write": {"body": "sdio.sd_write(${1:id},${2:data},${3:offset})", "description": "sdio.sd_write(id, data, offset) - \u76f4\u63a5\u5199sd\u5361\n\u4f20\u5165\u503c\uff1a\nint sdio\u603b\u7ebfid\nstring \u5f85\u5199\u5165\u7684\u6570\u636e,\u957f\u5ea6\u5fc5\u987b\u662f512\u7684\u500d\u6570\nint \u504f\u79fb\u91cf,\u5fc5\u987b\u662f512\u7684\u500d\u6570\n\u8fd4\u56de\u503c\uff1a\nbool \u82e5\u8bfb\u53d6\u6210\u529f,\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- \u521d\u59cb\u5316sdio\u5e76\u76f4\u63a5\u8bfb\u53d6sd\u5361\u6570\u636e\nsdio.init(0)\nlocal t = sdio.sd_write(0, data, 0)\nif t then\n --- xxx\nend\n", "prefix": "sdio.sd_write"}, "sensor.ds18b20": {"body": "sensor.ds18b20(${1:pin})", "description": "sensor.ds18b20(pin) - \u83b7\u53d6DS18B20\u7684\u6e29\u5ea6\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nint gpio\u7aef\u53e3\u53f7\nboolean \u662f\u5426\u6821\u9a8ccrc\u503c,\u9ed8\u8ba4\u4e3atrue. \u4e0d\u6821\u9a8ccrc\u503c\u80fd\u63d0\u9ad8\u8bfb\u53d6\u6210\u529f\u7684\u6982\u7387,\u4f46\u53ef\u80fd\u4f1a\u8bfb\u53d6\u5230\u9519\u8bef\u7684\u503c\n\u8fd4\u56de\u503c\uff1a\nint \u6e29\u5ea6\u6570\u636e,\u5355\u4f4d0.1\u6444\u6c0f\u5ea6\uff0c\u8bfb\u53d6\u5931\u8d25\u65f6\u8fd4\u56de\u9519\u8bef\u7801\nboolean \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\nwhile 1 do\n sys.wait(5000)\n local val,result = sensor.ds18b20(17, true) -- GPIO17\u4e14\u6821\u9a8cCRC\u503c\n -- val 301 == 30.1\u6444\u6c0f\u5ea6\n -- result true \u8bfb\u53d6\u6210\u529f\n log.info(\"ds18b20\", val, result)\nend\n", "prefix": "sensor.ds18b20"}, "sensor.w1_reset": {"body": "sensor.w1_reset(${1:pin})", "description": "sensor.w1_reset(pin) - \u5355\u603b\u7ebf\u534f\u8bae,\u590d\u4f4d\u8bbe\u5907\n\u4f20\u5165\u503c\uff1a\nint gpio\u7aef\u53e3\u53f7\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\n", "prefix": "sensor.w1_reset"}, "sensor.w1_connect": {"body": "sensor.w1_connect(${1:pin})", "description": "sensor.w1_connect(pin) - \u5355\u603b\u7ebf\u534f\u8bae,\u8fde\u63a5\u8bbe\u5907\n\u4f20\u5165\u503c\uff1a\nint gpio\u7aef\u53e3\u53f7\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u8fd4\u56detrue,\u5931\u8d25\u8fd4\u56defalse\n", "prefix": "sensor.w1_connect"}, "sensor.w1_write": {"body": "sensor.w1_write(${1:pin},${2:data1},${3:data2})", "description": "sensor.w1_write(pin, data1,data2) - \u5355\u603b\u7ebf\u534f\u8bae,\u5f80\u603b\u7ebf\u5199\u5165\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nint gpio\u7aef\u53e3\u53f7\nint \u7b2c\u4e00\u4e2a\u6570\u636e\nint \u7b2c\u4e8c\u4e2a\u6570\u636e, \u53ef\u4ee5\u5199N\u4e2a\u6570\u636e\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n", "prefix": "sensor.w1_write"}, "sensor.w1_read": {"body": "sensor.w1_read(${1:pin},${2:len})", "description": "sensor.w1_read(pin, len) - \u5355\u603b\u7ebf\u534f\u8bae,\u4ece\u603b\u7ebf\u8bfb\u53d6\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nint gpio\u7aef\u53e3\u53f7\nint \u8bfb\u53d6\u7684\u957f\u5ea6\n\u8fd4\u56de\u503c\uff1a\nint \u6309\u8bfb\u53d6\u7684\u957f\u5ea6\u8fd4\u56deN\u4e2a\u6574\u6570\n", "prefix": "sensor.w1_read"}, "sensor.hx711": {"body": "sensor.hx711(${1:pin_date},${2:pin_clk})", "description": "sensor.hx711(pin_date,pin_clk) - \u83b7\u53d6Hx711\u7684\u538b\u529b\u4f20\u611f\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nint \u6570\u636e\u7684gpio\u7aef\u53e3\u53f7\nint \u65f6\u949f\u7684gpio\u7aef\u53e3\u53f7\n\u8fd4\u56de\u503c\uff1a\nint hx711\u8bfb\u5230\u7684\u6570\u636e\n\u4f8b\u5b50\uff1a\n-- \u5982\u679c\u8bbe\u5907\u4e0d\u5b58\u5728\u4f1a\u5361\u5728\u8bfb\u53d6\u63a5\u53e3\nsys.taskInit(\n function()\n sys.wait(1000)\n local maopi = sensor.hx711(0,7)\n while true do\n sys.wait(2000)\n a = sensor.hx711(0,7) - maopi\n if a > 0 then\n log.info(\"tag\", a / 4.6)\n end\n end\n end\n)\n", "prefix": "sensor.hx711"}, "sensor.ws2812b": {"body": "sensor.ws2812b(${1:pin},${2:data},${3:T0H},${4:T0L},${5:T1H},${6:T1L})", "description": "sensor.ws2812b(pin,data,T0H,T0L,T1H,T1L) - \u8bbe\u7f6ews2812b\u8f93\u51fa(gpio\u9a71\u52a8\u65b9\u5f0f)\n\u4f20\u5165\u503c\uff1a\nint ws2812b\u7684gpio\u7aef\u53e3\u53f7\nstring/zbuff \u5f85\u53d1\u9001\u7684\u6570\u636e\uff08\u5982\u679c\u4e3azbuff\u6570\u636e\uff0c\u5219\u4f1a\u65e0\u89c6\u6307\u9488\u4f4d\u7f6e\u59cb\u7ec8\u4ece0\u504f\u79fb\u5f00\u59cb\uff09\nint T0H\u65f6\u95f4\uff0c\u8868\u793a\u5ef6\u65f6\u591a\u5c11\u4e2anop\uff0c\u6bcf\u4e2a\u578b\u53f7\u4e0d\u4e00\u6837\uff0c\u81ea\u5df1\u8c03\nint T0L\u65f6\u95f4\uff0c\u8868\u793a\u5ef6\u65f6\u591a\u5c11\u4e2anop\nint T1H\u65f6\u95f4\uff0c\u8868\u793a\u5ef6\u65f6\u591a\u5c11\u4e2anop\nint T1L\u65f6\u95f4\uff0c\u8868\u793a\u5ef6\u65f6\u591a\u5c11\u4e2anop\n\u4f8b\u5b50\uff1a\nlocal buff = zbuff.create({8,8,24})\nbuff:drawLine(1,2,5,6,0x00ffff)\nsensor.ws2812b(7,buff,300,700,700,700)\n", "prefix": "sensor.ws2812b"}, "sensor.ws2812b_pwm": {"body": "sensor.ws2812b_pwm(${1:pin},${2:data})", "description": "sensor.ws2812b_pwm(pin,data) - \u8bbe\u7f6ews2812b\u8f93\u51fa(pwm\u9a71\u52a8\u65b9\u5f0f,\u9700\u8981pwm\u80fd\u8f93\u51fa800k\u9891\u7387\uff0c\u5426\u5219\u65e0\u6cd5\u4f7f\u7528\u6b64\u65b9\u6cd5)\n\u4f20\u5165\u503c\uff1a\nint pwm\u7aef\u53e3\u53f7\nstring/zbuff \u5f85\u53d1\u9001\u7684\u6570\u636e\uff08\u5982\u679c\u4e3azbuff\u6570\u636e\uff0c\u5219\u4f1a\u65e0\u89c6\u6307\u9488\u4f4d\u7f6e\u59cb\u7ec8\u4ece0\u504f\u79fb\u5f00\u59cb\uff09\n\u4f8b\u5b50\uff1a\nlocal buff = zbuff.create({8,8,24})\nbuff:setFrameBuffer(8,8,24,0x0000ff)\nsensor.ws2812b_pwm(7,buff)\n", "prefix": "sensor.ws2812b_pwm"}, "sensor.ws2812b_spi": {"body": "sensor.ws2812b_spi(${1:pin},${2:data})", "description": "sensor.ws2812b_spi(pin,data) - \u8bbe\u7f6ews2812b\u8f93\u51fa(spi\u9a71\u52a8\u65b9\u5f0f,\u9700\u8981spi\u80fd\u8f93\u51fa5M\u9891\u7387\uff0c\u5426\u5219\u65e0\u6cd5\u4f7f\u7528\u6b64\u65b9\u6cd5)\n\u4f20\u5165\u503c\uff1a\nint spi\u7aef\u53e3\u53f7\nstring/zbuff \u5f85\u53d1\u9001\u7684\u6570\u636e\uff08\u5982\u679c\u4e3azbuff\u6570\u636e\uff0c\u5219\u4f1a\u65e0\u89c6\u6307\u9488\u4f4d\u7f6e\u59cb\u7ec8\u4ece0\u504f\u79fb\u5f00\u59cb\uff09\n\u4f8b\u5b50\uff1a\nlocal buff = zbuff.create({8,8,24})\nbuff:setFrameBuffer(8,8,24,0x0000ff)\nsensor.ws2812b_spi(2,buff)\n", "prefix": "sensor.ws2812b_spi"}, "sensor.dht1x": {"body": "sensor.dht1x(${1:pin})", "description": "sensor.dht1x(pin) - \u83b7\u53d6DHT11/DHT12\u7684\u6e29\u6e7f\u5ea6\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nint gpio\u7aef\u53e3\u53f7\nboolean \u662f\u5426\u6821\u9a8ccrc\u503c,\u9ed8\u8ba4\u4e3atrue. \u4e0d\u6821\u9a8ccrc\u503c\u80fd\u63d0\u9ad8\u8bfb\u53d6\u6210\u529f\u7684\u6982\u7387,\u4f46\u53ef\u80fd\u4f1a\u8bfb\u53d6\u5230\u9519\u8bef\u7684\u503c\n\u8fd4\u56de\u503c\uff1a\nint \u6e7f\u5ea6\u6570\u636e,\u5355\u4f4d0.01%\uff0c\u8bfb\u53d6\u5931\u8d25\u65f6\u8fd4\u56de\u9519\u8bef\u503c\nint \u6e29\u5ea6\u6570\u636e,\u5355\u4f4d0.01\u6444\u6c0f\u5ea6\uff0c\u8bfb\u53d6\u5931\u8d25\u65f6\u8fd4\u56de\u9519\u8bef\u503c\nboolean \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\nwhile 1 do\n sys.wait(1000)\n local h,t,r = sensor.dht1x(17, true) -- GPIO17\u4e14\u6821\u9a8cCRC\u503c\n log.info(\"dht11\", h/100,t/100,r)--90.1 23.22\nend\n", "prefix": "sensor.dht1x"}, "sfd.init": {"body": "sfd.init(${1:type},${2:spi_id},${3:spi_cs})", "description": "sfd.init(type, spi_id, spi_cs) - \u521d\u59cb\u5316spi flash\n\u4f20\u5165\u503c\uff1a\nstring \u7c7b\u578b, \u53ef\u4ee5\u662f\"spi\", \u4e5f\u53ef\u4ee5\u662f\"zbuff\", \u6216\u8005\"onchip\"\nint SPI\u603b\u7ebf\u7684id, \u6216\u8005 zbuff\u5b9e\u4f8b\nint SPI FLASH\u7684\u7247\u9009\u811a\u5bf9\u5e94\u7684GPIO, \u5f53\u7c7b\u578b\u662fspi\u65f6\u624d\u9700\u8981\u4f20\n\u8fd4\u56de\u503c\uff1a\nuserdata \u6210\u529f\u8fd4\u56de\u4e00\u4e2a\u6570\u636e\u7ed3\u6784,\u5426\u5219\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\nlocal drv = sfd.init(\"spi\", 0, 17)\nif drv then\n log.info(\"sfd\", \"chip id\", sfd.id(drv):toHex())\nend\n-- 2023.01.15\u4e4b\u540e\u7684\u56fa\u4ef6\u652f\u6301onchip\u7c7b\u578b, \u652f\u6301\u76f4\u63a5\u8bfb\u5199\u7247\u4e0aflash\u7684\u4e00\u5c0f\u5757\u533a\u57df,\u4e00\u822c\u662f64k\n-- \u8fd9\u5757\u533a\u57df\u901a\u5e38\u662ffdb/fskv\u5e93\u6240\u5728\u7684\u533a\u57df, \u6240\u4ee5\u4e0d\u8981\u6df7\u7740\u7528\nlocal onchip = sfd.init(\"onchip\")\nlocal data = sfd.read(onchip, 0x100, 256)\nsfd.erase(onchip, 0x100)\nsfd.write(onchip, 0x100, data or \"Hi\")\n\n", "prefix": "sfd.init"}, "sfd.status": {"body": "sfd.status(${1:drv})", "description": "sfd.status(drv) - \u68c0\u67e5spi flash\u72b6\u6001\n\u4f20\u5165\u503c\uff1a\nuserdata sfd.init\u8fd4\u56de\u7684\u6570\u636e\u7ed3\u6784\n\u8fd4\u56de\u503c\uff1a\nint \u72b6\u6001\u503c, 0 \u672a\u521d\u59cb\u5316\u6210\u529f,1\u521d\u59cb\u5316\u6210\u529f\u4e14\u7a7a\u95f2,2\u6b63\u5fd9\n\u4f8b\u5b50\uff1a\nlocal drv = sfd.init(\"spi\", 0, 17)\nif drv then\n log.info(\"sfd\", \"status\", sfd.status(drv))\nend\n", "prefix": "sfd.status"}, "sfd.read": {"body": "sfd.read(${1:drv},${2:offset},${3:len})", "description": "sfd.read(drv, offset, len) - \u8bfb\u53d6\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nuserdata sfd.init\u8fd4\u56de\u7684\u6570\u636e\u7ed3\u6784\nint \u8d77\u59cb\u504f\u79fb\u91cf\nint \u8bfb\u53d6\u957f\u5ea6,\u5f53\u524d\u9650\u5236\u5728256\u4ee5\u5185\n\u8fd4\u56de\u503c\uff1a\nstring \u6570\u636e\n\u4f8b\u5b50\uff1a\nlocal drv = sfd.init(\"spi\", 0, 17)\nif drv then\n log.info(\"sfd\", \"read\", sfd.read(drv, 0x100, 256))\nend\n", "prefix": "sfd.read"}, "sfd.write": {"body": "sfd.write(${1:drv},${2:offset},${3:data})", "description": "sfd.write(drv, offset, data) - \u5199\u5165\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nuserdata sfd.init\u8fd4\u56de\u7684\u6570\u636e\u7ed3\u6784\nint \u8d77\u59cb\u504f\u79fb\u91cf\nstring \u9700\u8981\u5199\u5165\u7684\u6570\u636e,\u5f53\u524d\u652f\u6301256\u5b57\u8282\u53ca\u4ee5\u4e0b\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u8fd4\u56detrue,\u5931\u8d25\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\nlocal drv = sfd.init(\"spi\", 0, 17)\nif drv then\n log.info(\"sfd\", \"write\", sfd.write(drv, 0x100, \"hi,luatos\"))\nend\n", "prefix": "sfd.write"}, "sfd.erase": {"body": "sfd.erase(${1:drv},${2:offset})", "description": "sfd.erase(drv, offset) - \u64e6\u9664\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nuserdata sfd.init\u8fd4\u56de\u7684\u6570\u636e\u7ed3\u6784\nint \u8d77\u59cb\u504f\u79fb\u91cf\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u8fd4\u56detrue,\u5931\u8d25\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\nlocal drv = sfd.init(\"spi\", 0, 17)\nif drv then\n log.info(\"sfd\", \"write\", sfd.erase(drv, 0x100))\nend\n", "prefix": "sfd.erase"}, "sfd.id": {"body": "sfd.id(${1:drv})", "description": "sfd.id(drv) - \u82af\u7247\u552f\u4e00id\n\u4f20\u5165\u503c\uff1a\nuserdata sfd.init\u8fd4\u56de\u7684\u6570\u636e\u7ed3\u6784\n\u8fd4\u56de\u503c\uff1a\nstring 8\u5b57\u8282(64bit)\u7684\u82af\u7247id\n\u4f8b\u5b50\uff1a\nlocal drv = sfd.init(\"spi\", 0, 17)\nif drv then\n log.info(\"sfd\", \"chip id\", sfd.id(drv))\nend\n", "prefix": "sfd.id"}, "sfud.init": {"body": "sfud.init(${1:spi_id},${2:spi_cs},${3:spi_bandrate)/sfud.init(spi_device})", "description": "sfud.init(spi_id, spi_cs, spi_bandrate)/sfud.init(spi_device) - \u521d\u59cb\u5316sfud\n\u4f20\u5165\u503c\uff1a\nint spi_id SPI\u7684ID/userdata spi_device\nint spi_cs SPI\u7684\u7247\u9009\nint spi_bandrate SPI\u7684\u9891\u7387\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n--spi\nlog.info(\"sfud.init\",sfud.init(0,20,20 * 1000 * 1000))\n--spi_device\nlocal spi_device = spi.deviceSetup(0,17,0,0,8,2000000,spi.MSB,1,0)\nlog.info(\"sfud.init\",sfud.init(spi_device))\n", "prefix": "sfud.init"}, "sfud.getDeviceNum": {"body": "sfud.getDeviceNum()", "description": "sfud.getDeviceNum() - \u83b7\u53d6flash\u8bbe\u5907\u4fe1\u606f\u8868\u4e2d\u7684\u8bbe\u5907\u603b\u6570\n\u8fd4\u56de\u503c\uff1a\nint \u8fd4\u56de\u8bbe\u5907\u603b\u6570\n\u4f8b\u5b50\uff1a\nlog.info(\"sfud.getDeviceNum\",sfud.getDeviceNum())\n", "prefix": "sfud.getDeviceNum"}, "sfud.getDevice": {"body": "sfud.getDevice(${1:index})", "description": "sfud.getDevice(index) - \u901a\u8fc7flash\u4fe1\u606f\u8868\u4e2d\u7684\u7d22\u5f15\u83b7\u53d6flash\u8bbe\u5907\n\u4f20\u5165\u503c\uff1a\nint index flash\u4fe1\u606f\u8868\u4e2d\u7684\u7d22\u5f15\n\u8fd4\u56de\u503c\uff1a\nuserdata \u6210\u529f\u8fd4\u56de\u4e00\u4e2a\u6570\u636e\u7ed3\u6784,\u5426\u5219\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\nlocal sfud_device = sfud.getDevice(1)\n", "prefix": "sfud.getDevice"}, "sfud.getDeviceTable": {"body": "sfud.getDeviceTable()", "description": "sfud.getDeviceTable() - \u83b7\u53d6flash\u8bbe\u5907\u4fe1\u606f\u8868\n\u8fd4\u56de\u503c\uff1a\nuserdata \u6210\u529f\u8fd4\u56de\u4e00\u4e2a\u6570\u636e\u7ed3\u6784,\u5426\u5219\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\nlocal sfud_device = sfud.getDeviceTable()\n", "prefix": "sfud.getDeviceTable"}, "sfud.chipErase": {"body": "sfud.chipErase(${1:flash})", "description": "sfud.chipErase(flash) - \u64e6\u9664 Flash \u5168\u90e8\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nuserdata flash Flash \u8bbe\u5907\u5bf9\u8c61 sfud.get_device_table()\u8fd4\u56de\u7684\u6570\u636e\u7ed3\u6784\n\u8fd4\u56de\u503c\uff1a\nint \u6210\u529f\u8fd4\u56de0\n\u4f8b\u5b50\uff1a\nsfud.chipErase(flash)\n", "prefix": "sfud.chipErase"}, "sfud.erase": {"body": "sfud.erase(${1:flash},${2:add},${3:size})", "description": "sfud.erase(flash,add,size) - \u64e6\u9664 Flash \u6307\u5b9a\u5730\u5740\u6307\u5b9a\u5927\u5c0f\n\u4f20\u5165\u503c\uff1a\nuserdata flash Flash \u8bbe\u5907\u5bf9\u8c61 sfud.get_device_table()\u8fd4\u56de\u7684\u6570\u636e\u7ed3\u6784\nnumber add \u64e6\u9664\u5730\u5740\nnumber size \u64e6\u9664\u5927\u5c0f\n\u8fd4\u56de\u503c\uff1a\nint \u6210\u529f\u8fd4\u56de0\n\u4f8b\u5b50\uff1a\nsfud.erase(flash,add,size)\n", "prefix": "sfud.erase"}, "sfud.read": {"body": "sfud.read(${1:flash},${2:addr},${3:size})", "description": "sfud.read(flash, addr, size) - \u8bfb\u53d6 Flash \u6570\u636e\n\u4f20\u5165\u503c\uff1a\nuserdata flash Flash \u8bbe\u5907\u5bf9\u8c61 sfud.get_device_table()\u8fd4\u56de\u7684\u6570\u636e\u7ed3\u6784\nint addr \u8d77\u59cb\u5730\u5740\nint size \u4ece\u8d77\u59cb\u5730\u5740\u5f00\u59cb\u8bfb\u53d6\u6570\u636e\u7684\u603b\u5927\u5c0f\n\u8fd4\u56de\u503c\uff1a\nstring data \u8bfb\u53d6\u5230\u7684\u6570\u636e\n\u4f8b\u5b50\uff1a\nlog.info(\"sfud.read\",sfud.read(sfud_device,1024,4))\n", "prefix": "sfud.read"}, "sfud.write": {"body": "sfud.write(${1:flash},${2:addr},${3:data})", "description": "sfud.write(flash, addr,data) - \u5411 Flash \u5199\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nuserdata flash Flash \u8bbe\u5907\u5bf9\u8c61 sfud.get_device_table()\u8fd4\u56de\u7684\u6570\u636e\u7ed3\u6784\nint addr \u8d77\u59cb\u5730\u5740\nstring data \u5f85\u5199\u5165\u7684\u6570\u636e\n\u8fd4\u56de\u503c\uff1a\nint \u6210\u529f\u8fd4\u56de0\n\u4f8b\u5b50\uff1a\nlog.info(\"sfud.write\",sfud.write(sfud_device,1024,\"sfud\"))\n", "prefix": "sfud.write"}, "sfud.eraseWrite": {"body": "sfud.eraseWrite(${1:flash},${2:addr},${3:data})", "description": "sfud.eraseWrite(flash, addr,data) - \u5148\u64e6\u9664\u518d\u5f80 Flash \u5199\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nuserdata flash Flash \u8bbe\u5907\u5bf9\u8c61 sfud.get_device_table()\u8fd4\u56de\u7684\u6570\u636e\u7ed3\u6784\nint addr \u8d77\u59cb\u5730\u5740\nstring data \u5f85\u5199\u5165\u7684\u6570\u636e\n\u8fd4\u56de\u503c\uff1a\nint \u6210\u529f\u8fd4\u56de0\n\u4f8b\u5b50\uff1a\nlog.info(\"sfud.eraseWrite\",sfud.eraseWrite(sfud_device,1024,\"sfud\"))\n", "prefix": "sfud.eraseWrite"}, "sfud.mount": {"body": "sfud.mount(${1:flash},${2:mount_point},${3:offset},${4:maxsize})", "description": "sfud.mount(flash, mount_point, offset, maxsize) - \u6302\u8f7dsfud lfs\u6587\u4ef6\u7cfb\u7edf\n\u4f20\u5165\u503c\uff1a\nuserdata flash Flash \u8bbe\u5907\u5bf9\u8c61 sfud.get_device_table()\u8fd4\u56de\u7684\u6570\u636e\u7ed3\u6784\nstring mount_point \u6302\u8f7d\u76ee\u5f55\u540d\nint \u8d77\u59cb\u504f\u79fb\u91cf,\u9ed8\u8ba40\nint \u603b\u5927\u5c0f, \u9ed8\u8ba4\u662f\u6574\u4e2aflash\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue\n\u4f8b\u5b50\uff1a\nlog.info(\"sfud.mount\",sfud.mount(sfud_device,\"/sfud\"))\nlog.info(\"fsstat\", fs.fsstat(\"/\"))\nlog.info(\"fsstat\", fs.fsstat(\"/sfud\"))\n", "prefix": "sfud.mount"}, "sms.send": {"body": "sms.send(${1:phone},${2:msg},${3:auto_phone_fix})", "description": "sms.send(phone, msg, auto_phone_fix) - \u53d1\u9001\u77ed\u4fe1\n\u4f20\u5165\u503c\uff1a\nstring \u7535\u8bdd\u53f7\u7801,\u5fc5\u586b\nstring \u77ed\u4fe1\u5185\u5bb9,\u5fc5\u586b\nbool \u662f\u5426\u81ea\u52a8\u5904\u7406\u7535\u8bdd\u53f7\u53f7\u7801\u7684\u683c\u5f0f,\u9ed8\u8ba4\u662f\u6309\u77ed\u4fe1\u5185\u5bb9\u548c\u53f7\u7801\u683c\u5f0f\u8fdb\u884c\u81ea\u52a8\u5224\u65ad, \u8bbe\u7f6e\u4e3afalse\u53ef\u7981\u7528\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\u6216nil\n", "prefix": "sms.send"}, "sms.setNewSmsCb": {"body": "sms.setNewSmsCb(${1:func})", "description": "sms.setNewSmsCb(func) - \u8bbe\u7f6e\u65b0SMS\u7684\u56de\u8c03\u51fd\u6570\n\u4f20\u5165\u503c\uff1a\nfunction \u56de\u8c03\u51fd\u6570, 3\u4e2a\u53c2\u6570, num, txt, metas\n\u8fd4\u56de\u503c\uff1a\nnil \u4f20\u5165\u662f\u51fd\u6570\u5c31\u80fd\u6210\u529f,\u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n\nsms.setNewSmsCb(function(num, txt, metas)\n -- num \u624b\u673a\u53f7\u7801\n -- txt \u6587\u672c\u5185\u5bb9\n -- metas \u77ed\u4fe1\u7684\u5143\u6570\u636e,\u4f8b\u5982\u53d1\u9001\u7684\u65f6\u95f4,\u957f\u77ed\u4fe1\u7f16\u53f7\n -- \u6ce8\u610f, \u957f\u77ed\u4fe1\u4f1a\u81ea\u52a8\u5408\u5e76\u6210\u4e00\u6761txt\n log.info(\"sms\", num, txt, metas and json.encode(metas) or \"\")\nend)\n", "prefix": "sms.setNewSmsCb"}, "sms.autoLong": {"body": "sms.autoLong(${1:mode})", "description": "sms.autoLong(mode) - \u8bbe\u7f6e\u957f\u77ed\u4fe1\u7684\u81ea\u52a8\u5408\u5e76\u529f\u80fd\n\u4f20\u5165\u503c\uff1a\nbool \u662f\u5426\u81ea\u52a8\u5408\u5e76,true\u4e3a\u81ea\u52a8\u5408\u5e76,\u4e3a\u9ed8\u8ba4\u503c\n\u8fd4\u56de\u503c\uff1a\nbool \u8bbe\u7f6e\u540e\u7684\u503c\n\u4f8b\u5b50\uff1a\n-- \u7981\u7528\u957f\u77ed\u4fe1\u7684\u81ea\u52a8\u5408\u5e76, \u4e00\u822c\u4e0d\u9700\u8981\u7981\u7528\nsms.autoLong(false)\n", "prefix": "sms.autoLong"}, "sms.clearLong": {"body": "sms.clearLong()", "description": "sms.clearLong() - \u6e05\u9664\u957f\u77ed\u4fe1\u7f13\u5b58\n\u8fd4\u56de\u503c\uff1a\nint \u6e05\u7406\u6389\u7684\u7247\u6bb5\u6570\u91cf\n\u4f8b\u5b50\uff1a\nsms.clearLong()\n", "prefix": "sms.clearLong"}, "socket.sntp": {"body": "socket.sntp(${1:sntp_server})", "description": "socket.sntp(sntp_server) - sntp\u65f6\u95f4\u540c\u6b65\n\u4f20\u5165\u503c\uff1a\nstring/table sntp\u670d\u52a1\u5668\u5730\u5740 \u9009\u586b\nint \u9002\u914d\u5668\u5e8f\u53f7\uff0c \u53ea\u80fd\u662fsocket.ETH0\uff08\u5916\u7f6e\u4ee5\u592a\u7f51\uff09\uff0csocket.LWIP_ETH\uff08\u5185\u7f6e\u4ee5\u592a\u7f51\uff09\uff0csocket.LWIP_STA\uff08\u5185\u7f6eWIFI\u7684STA\uff09\uff0csocket.LWIP_AP\uff08\u5185\u7f6eWIFI\u7684AP\uff09\uff0csocket.LWIP_GP\uff08\u5185\u7f6e\u8702\u7a9d\u7f51\u7edc\u7684GPRS\uff09\uff0csocket.USB\uff08\u5916\u7f6eUSB\u7f51\u5361\uff09\uff0c\u5982\u679c\u4e0d\u586b\uff0c\u4f18\u5148\u9009\u62e9soc\u5e73\u53f0\u81ea\u5e26\u80fd\u4e0a\u5916\u7f51\u7684\u9002\u914d\u5668\uff0c\u82e5\u4ecd\u7136\u6ca1\u6709\uff0c\u9009\u62e9\u6700\u540e\u4e00\u4e2a\u6ce8\u518c\u7684\u9002\u914d\u5668\n\u4f8b\u5b50\uff1a\nsocket.sntp()\n--socket.sntp(\"ntp.aliyun.com\") --\u81ea\u5b9a\u4e49sntp\u670d\u52a1\u5668\u5730\u5740\n--socket.sntp({\"ntp.aliyun.com\",\"ntp1.aliyun.com\",\"ntp2.aliyun.com\"}) --sntp\u81ea\u5b9a\u4e49\u670d\u52a1\u5668\u5730\u5740\n--socket.sntp(nil, socket.ETH0) --sntp\u81ea\u5b9a\u4e49\u9002\u914d\u5668\u5e8f\u53f7\nsys.subscribe(\"NTP_UPDATE\", function()\n log.info(\"sntp\", \"time\", os.date())\nend)\nsys.subscribe(\"NTP_ERROR\", function()\n log.info(\"socket\", \"sntp error\")\n socket.sntp()\nend)\n", "prefix": "socket.sntp"}, "socket.localIP": {"body": "socket.localIP(${1:adapter})", "description": "socket.localIP(adapter) - \u83b7\u53d6\u672c\u5730ip\n\u4f20\u5165\u503c\uff1a\nint \u9002\u914d\u5668\u5e8f\u53f7\uff0c \u53ea\u80fd\u662fsocket.ETH0\uff08\u5916\u7f6e\u4ee5\u592a\u7f51\uff09\uff0csocket.LWIP_ETH\uff08\u5185\u7f6e\u4ee5\u592a\u7f51\uff09\uff0csocket.LWIP_STA\uff08\u5185\u7f6eWIFI\u7684STA\uff09\uff0csocket.LWIP_AP\uff08\u5185\u7f6eWIFI\u7684AP\uff09\uff0csocket.LWIP_GP\uff08\u5185\u7f6e\u8702\u7a9d\u7f51\u7edc\u7684GPRS\uff09\uff0csocket.USB\uff08\u5916\u7f6eUSB\u7f51\u5361\uff09\uff0c\u5982\u679c\u4e0d\u586b\uff0c\u4f18\u5148\u9009\u62e9soc\u5e73\u53f0\u81ea\u5e26\u80fd\u4e0a\u5916\u7f51\u7684\u9002\u914d\u5668\uff0c\u82e5\u4ecd\u7136\u6ca1\u6709\uff0c\u9009\u62e9\u6700\u540e\u4e00\u4e2a\u6ce8\u518c\u7684\u9002\u914d\u5668\n\u8fd4\u56de\u503c\uff1a\nstring \u901a\u5e38\u662f\u5185\u7f51ip, \u4e5f\u53ef\u80fd\u662f\u5916\u7f51ip, \u53d6\u51b3\u4e8e\u8fd0\u8425\u5546\u7684\u5206\u914d\nstring \u7f51\u7edc\u63a9\u7801\nstring \u7f51\u5173IP\n\u4f8b\u5b50\uff1a\nsys.taskInit(function()\n while 1 do\n sys.wait(3000)\n log.info(\"socket\", \"ip\", socket.localIP())\n\t\t-- \u8f93\u51fa\u793a\u4f8b\n\t\t-- 62.39.244.10\t255.255.255.255\t0.0.0.0\n end\nend)\n", "prefix": "socket.localIP"}, "socket.create": {"body": "socket.create(${1:adapter},${2:cb})", "description": "socket.create(adapter, cb) - \u5728\u67d0\u4e2a\u9002\u914d\u7684\u7f51\u5361\u4e0a\u7533\u8bf7\u4e00\u4e2asocket_ctrl\n\u4f20\u5165\u503c\uff1a\nint \u9002\u914d\u5668\u5e8f\u53f7\uff0c \u53ea\u80fd\u662fsocket.ETH0\uff08\u5916\u7f6e\u4ee5\u592a\u7f51\uff09\uff0csocket.LWIP_ETH\uff08\u5185\u7f6e\u4ee5\u592a\u7f51\uff09\uff0csocket.LWIP_STA\uff08\u5185\u7f6eWIFI\u7684STA\uff09\uff0csocket.LWIP_AP\uff08\u5185\u7f6eWIFI\u7684AP\uff09\uff0csocket.LWIP_GP\uff08\u5185\u7f6e\u8702\u7a9d\u7f51\u7edc\u7684GPRS\uff09\uff0csocket.USB\uff08\u5916\u7f6eUSB\u7f51\u5361\uff09\uff0c\u5982\u679c\u4e0d\u586b\uff0c\u4f18\u5148\u9009\u62e9soc\u5e73\u53f0\u81ea\u5e26\u80fd\u4e0a\u5916\u7f51\u7684\u9002\u914d\u5668\uff0c\u82e5\u4ecd\u7136\u6ca1\u6709\uff0c\u9009\u62e9\u6700\u540e\u4e00\u4e2a\u6ce8\u518c\u7684\u9002\u914d\u5668\nstring or function string\u4e3a\u6d88\u606f\u901a\u77e5\u7684taskName\uff0cfunction\u5219\u4e3a\u56de\u8c03\u51fd\u6570\uff0c\u5982\u679c\u56fa\u4ef6\u6ca1\u6709\u5185\u7f6esys_wait\uff0c\u5219\u5fc5\u987b\u662ffunction\n", "prefix": "socket.create"}, "socket.debug": {"body": "socket.debug(${1:ctrl},${2:onoff})", "description": "socket.debug(ctrl, onoff) - \u914d\u7f6e\u662f\u5426\u6253\u5f00debug\u4fe1\u606f\n\u4f20\u5165\u503c\uff1a\nuser_data socket.create\u5f97\u5230\u7684ctrl\nboolean true \u6253\u5f00debug\u5f00\u5173\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n-- \u6253\u5f00\u8c03\u8bd5\u4fe1\u606f,\u9ed8\u8ba4\u662f\u5173\u95ed\u72b6\u6001\nsocket.debug(ctrl, true)\n", "prefix": "socket.debug"}, "socket.config": {"body": "socket.config(${1:ctrl},${2:local_port},${3:is_udp},${4:is_tls},${5:keep_idle},${6:keep_interval},${7:keep_cnt},${8:server_cert},${9:client_cert},${10:client_key},${11:client_password})", "description": "socket.config(ctrl, local_port, is_udp, is_tls, keep_idle, keep_interval, keep_cnt, server_cert, client_cert, client_key, client_password) - \u914d\u7f6enetwork\u4e00\u4e9b\u4fe1\u606f\uff0c\n\u4f20\u5165\u503c\uff1a\nuser_data socket.create\u5f97\u5230\u7684ctrl\nint \u672c\u5730\u7aef\u53e3\u53f7\uff0c\u5c0f\u7aef\u683c\u5f0f\uff0c\u5982\u679c\u4e0d\u5199\uff0c\u5219\u81ea\u52a8\u5206\u914d\u4e00\u4e2a\uff0c\u5982\u679c\u7528\u6237\u586b\u4e86\u7aef\u53e3\u53f7\u5219\u9700\u8981\u5c0f\u4e8e60000, \u9ed8\u8ba4\u4e0d\u5199\nboolean \u662f\u5426\u662fUDP\uff0c\u9ed8\u8ba4false\nboolean \u662f\u5426\u662f\u52a0\u5bc6\u4f20\u8f93\uff0c\u9ed8\u8ba4false\nint tcp keep live\u6a21\u5f0f\u4e0b\u7684idle\u65f6\u95f4\uff08\u79d2\uff09\uff0c\u5982\u679c\u7559\u7a7a\u5219\u8868\u793a\u4e0d\u542f\u7528\uff0c\u5982\u679c\u662f\u4e0d\u652f\u6301\u6807\u51c6posix\u63a5\u53e3\u7684\u7f51\u5361\uff08\u6bd4\u5982W5500\uff09\uff0c\u5219\u4e3a\u5fc3\u8df3\u95f4\u9694\nint tcp keep live\u6a21\u5f0f\u4e0b\u7684\u63a2\u6d4b\u95f4\u9694\u65f6\u95f4\uff08\u79d2\uff09\nint tcp keep live\u6a21\u5f0f\u4e0b\u7684\u63a2\u6d4b\u6b21\u6570\nstring TCP\u6a21\u5f0f\u4e0b\u7684\u670d\u52a1\u5668ca\u8bc1\u4e66\u6570\u636e\uff0cUDP\u6a21\u5f0f\u4e0b\u7684PSK\uff0c\u4e0d\u9700\u8981\u52a0\u5bc6\u4f20\u8f93\u5199nil\uff0c\u540e\u7eed\u53c2\u6570\u4e5f\u5168\u90e8nil\nstring TCP\u6a21\u5f0f\u4e0b\u7684\u5ba2\u6237\u7aefca\u8bc1\u4e66\u6570\u636e\uff0cUDP\u6a21\u5f0f\u4e0b\u7684PSK-ID\uff0cTCP\u6a21\u5f0f\u4e0b\u5982\u679c\u4e0d\u9700\u8981\u9a8c\u8bc1\u5ba2\u6237\u7aef\u8bc1\u4e66\u65f6\uff0c\u5ffd\u7565\uff0c\u4e00\u822c\u4e0d\u9700\u8981\u9a8c\u8bc1\u5ba2\u6237\u7aef\u8bc1\u4e66\nstring TCP\u6a21\u5f0f\u4e0b\u7684\u5ba2\u6237\u7aef\u79c1\u94a5\u52a0\u5bc6\u6570\u636e\nstring TCP\u6a21\u5f0f\u4e0b\u7684\u5ba2\u6237\u7aef\u79c1\u94a5\u53e3\u4ee4\u6570\u636e\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u8fd4\u56detrue\uff0c\u5931\u8d25\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n--\u6700\u666e\u901a\u7684TCP\u4f20\u8f93\nsocket.config(ctrl)\n--\u6700\u666e\u901a\u7684\u52a0\u5bc6TCP\u4f20\u8f93\uff0c\u8bc1\u4e66\u90fd\u4e0d\u7528\u9a8c\u8bc1\u7684\u90a3\u79cd\nsocket.config(ctrl, nil, nil ,true)\n", "prefix": "socket.config"}, "socket.linkup": {"body": "socket.linkup(${1:ctrl})", "description": "socket.linkup(ctrl) - \u7b49\u5f85\u7f51\u5361linkup\n\u4f20\u5165\u503c\uff1a\nuser_data socket.create\u5f97\u5230\u7684ctrl\n\u8fd4\u56de\u503c\uff1a\nboolean true\u6ca1\u6709\u5f02\u5e38\u53d1\u751f\uff0cfalse\u5931\u8d25\u4e86\uff0c\u5982\u679cfalse\u5219\u4e0d\u9700\u8981\u770b\u4e0b\u4e00\u4e2a\u8fd4\u56de\u503c\u4e86\nboolean true\u5df2\u7ecflinkup\uff0cfalse\u6ca1\u6709linkup\uff0c\u4e4b\u540e\u9700\u8981\u63a5\u6536socket.LINK\u6d88\u606f\n\u4f8b\u5b50\uff1a\n-- \u5224\u65ad\u4e00\u4e0b\u662f\u5426\u5df2\u7ecf\u8054\u7f51\nlocal succ, result = socket.linkup(ctrl)\n", "prefix": "socket.linkup"}, "socket.connect": {"body": "socket.connect(${1:ctrl},${2:ip},${3:remote_port},${4:need_ipv6_dns})", "description": "socket.connect(ctrl, ip, remote_port, need_ipv6_dns) - \u4f5c\u4e3a\u5ba2\u6237\u7aef\u8fde\u63a5\u670d\u52a1\u5668\n\u4f20\u5165\u503c\uff1a\nuser_data socket.create\u5f97\u5230\u7684ctrl\nstring or int ip\u6216\u8005\u57df\u540d\uff0c\u5982\u679c\u662fIPV4\uff0c\u53ef\u4ee5\u662f\u5927\u7aef\u683c\u5f0f\u7684int\u503c\nint \u670d\u52a1\u5668\u7aef\u53e3\u53f7\uff0c\u5c0f\u7aef\u683c\u5f0f\nboolean \u57df\u540d\u89e3\u6790\u662f\u5426\u8981IPV6\uff0ctrue\u8981\uff0cfalse\u4e0d\u8981\uff0c\u9ed8\u8ba4false\u4e0d\u8981\uff0c\u53ea\u6709\u652f\u6301IPV6\u7684\u534f\u8bae\u6808\u624d\u6709\u6548\u679c\n\u8fd4\u56de\u503c\uff1a\nboolean true\u6ca1\u6709\u5f02\u5e38\u53d1\u751f\uff0cfalse\u5931\u8d25\u4e86\uff0c\u5982\u679cfalse\u5219\u4e0d\u9700\u8981\u770b\u4e0b\u4e00\u4e2a\u8fd4\u56de\u503c\u4e86\uff0c\u5982\u679c\u6709\u5f02\u5e38\uff0c\u540e\u7eed\u8981close\nboolean true\u5df2\u7ecfconnect\uff0cfalse\u6ca1\u6709connect\uff0c\u4e4b\u540e\u9700\u8981\u63a5\u6536socket.ON_LINE\u6d88\u606f\n\u4f8b\u5b50\uff1a\n\nlocal succ, result = socket.connect(ctrl, \"netlab.luatos.com\", 40123)\n\n--[[\n\u5e38\u89c1\u7684\u8fde\u63a5\u5931\u8d25\u7684code\u503c, \u4f1a\u5728\u65e5\u5fd7\u4e2d\u663e\u793a\n-1 \u5e95\u5c42\u5185\u5b58\u4e0d\u8db3\n-3 \u8d85\u65f6\n-8 \u7aef\u53e3\u5df2\u7ecf\u88ab\u5360\u7528\n-11 \u94fe\u63a5\u672a\u5efa\u7acb\n-13 \u6a21\u5757\u4e3b\u52a8\u65ad\u5f00\u8fde\u63a5\n-14 \u670d\u52a1\u5668\u4e3b\u52a8\u65ad\u5f00\u8fde\u63a5\n]]\n", "prefix": "socket.connect"}, "socket.discon": {"body": "socket.discon(${1:ctrl})", "description": "socket.discon(ctrl) - \u4f5c\u4e3a\u5ba2\u6237\u7aef\u65ad\u5f00\u8fde\u63a5\n\u4f20\u5165\u503c\uff1a\nuser_data socket.create\u5f97\u5230\u7684ctrl\n\u8fd4\u56de\u503c\uff1a\nboolean true\u6ca1\u6709\u5f02\u5e38\u53d1\u751f\uff0cfalse\u5931\u8d25\u4e86\uff0c\u5982\u679cfalse\u5219\u4e0d\u9700\u8981\u770b\u4e0b\u4e00\u4e2a\u8fd4\u56de\u503c\u4e86\nboolean true\u5df2\u7ecf\u65ad\u5f00\uff0cfalse\u6ca1\u6709\u65ad\u5f00\uff0c\u4e4b\u540e\u9700\u8981\u63a5\u6536socket.CLOSED\u6d88\u606f\n\u4f8b\u5b50\uff1a\nlocal succ, result = socket.discon(ctrl)\n", "prefix": "socket.discon"}, "socket.close": {"body": "socket.close(${1:ctrl})", "description": "socket.close(ctrl) - \u5f3a\u5236\u5173\u95edsocket\n\u4f20\u5165\u503c\uff1a\nuser_data socket.create\u5f97\u5230\u7684ctrl\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n", "prefix": "socket.close"}, "socket.tx": {"body": "socket.tx(${1:ctrl},${2:data},${3:ip},${4:port},${5:flag})", "description": "socket.tx(ctrl, data, ip, port, flag) - \u53d1\u9001\u6570\u636e\u7ed9\u5bf9\u7aef\uff0cUDP\u5355\u6b21\u53d1\u9001\u4e0d\u8981\u8d85\u8fc71460\u5b57\u8282\uff0c\u5426\u5219\u5f88\u5bb9\u6613\u5931\u8d25\n\u4f20\u5165\u503c\uff1a\nuser_data socket.create\u5f97\u5230\u7684ctrl\nstring or user_data zbuff \u8981\u53d1\u9001\u7684\u6570\u636e\nstring or int \u5bf9\u7aefIP\uff0c\u5982\u679c\u662fTCP\u5e94\u7528\u5219\u5ffd\u7565\uff0c\u5982\u679c\u662fUDP\uff0c\u5982\u679c\u7559\u7a7a\u5219\u7528connect\u65f6\u5019\u7684\u53c2\u6570\uff0c\u5982\u679c\u662fIPV4\uff0c\u53ef\u4ee5\u662f\u5927\u7aef\u683c\u5f0f\u7684int\u503c\nint \u5bf9\u7aef\u7aef\u53e3\u53f7\uff0c\u5c0f\u7aef\u683c\u5f0f\uff0c\u5982\u679c\u662fTCP\u5e94\u7528\u5219\u5ffd\u7565\uff0c\u5982\u679c\u662fUDP\uff0c\u5982\u679c\u7559\u7a7a\u5219\u7528connect\u65f6\u5019\u7684\u53c2\u6570\nint \u53d1\u9001\u53c2\u6570\uff0c\u76ee\u524d\u9884\u7559\uff0c\u4e0d\u8d77\u4f5c\u7528\n\u8fd4\u56de\u503c\uff1a\nboolean true\u6ca1\u6709\u5f02\u5e38\u53d1\u751f\uff0cfalse\u5931\u8d25\u4e86\uff0c\u5982\u679cfalse\u5219\u4e0d\u9700\u8981\u770b\u4e0b\u4e00\u4e2a\u8fd4\u56de\u503c\u4e86\uff0c\u5982\u679cfalse\uff0c\u540e\u7eed\u8981close\nboolean true\u7f13\u51b2\u533a\u6ee1\u4e86\uff0cfalse\u6ca1\u6709\u6ee1\uff0c\u5982\u679ctrue\uff0c\u5219\u9700\u8981\u7b49\u5f85\u4e00\u6bb5\u65f6\u95f4\u6216\u8005\u7b49\u5230socket.TX_OK\u6d88\u606f\u540e\u518d\u5c1d\u8bd5\u53d1\u9001\uff0c\u540c\u65f6\u5ffd\u7565\u4e0b\u4e00\u4e2a\u8fd4\u56de\u503c\nboolean true\u5df2\u7ecf\u6536\u5230\u5e94\u7b54\uff0cfalse\u6ca1\u6709\u6536\u5230\u5e94\u7b54\uff0c\u4e4b\u540e\u9700\u8981\u63a5\u6536socket.TX_OK\u6d88\u606f\uff0c \u4e5f\u53ef\u4ee5\u5ffd\u7565\u7ee7\u7eed\u53d1\u9001\uff0c\u76f4\u5230full==true\n\u4f8b\u5b50\uff1a\n\nlocal succ, full, result = socket.tx(ctrl, \"123456\", \"xxx.xxx.xxx.xxx\", xxxx)\n", "prefix": "socket.tx"}, "socket.rx": {"body": "socket.rx(${1:ctrl},${2:buff},${3:flag})", "description": "socket.rx(ctrl, buff, flag) - \u63a5\u6536\u5bf9\u7aef\u53d1\u51fa\u7684\u6570\u636e\uff0c\u6ce8\u610f\u6570\u636e\u5df2\u7ecf\u7f13\u5b58\u5728\u5e95\u5c42\uff0c\u4f7f\u7528\u672c\u51fd\u6570\u53ea\u662f\u63d0\u53d6\u51fa\u6765\uff0cUDP\u6a21\u5f0f\u4e0b\u4e00\u6b21\u53ea\u4f1a\u53d6\u51fa\u4e00\u4e2a\u6570\u636e\u5305\n\u4f20\u5165\u503c\uff1a\nuser_data socket.create\u5f97\u5230\u7684ctrl\nuser_data zbuff \u5b58\u653e\u63a5\u6536\u7684\u6570\u636e\uff0c\u5982\u679c\u7f13\u51b2\u533a\u4e0d\u591f\u5927\u4f1a\u81ea\u52a8\u6269\u5bb9\nint \u63a5\u6536\u53c2\u6570\uff0c\u76ee\u524d\u9884\u7559\uff0c\u4e0d\u8d77\u4f5c\u7528\n\u8fd4\u56de\u503c\uff1a\nboolean true\u6ca1\u6709\u5f02\u5e38\u53d1\u751f\uff0cfalse\u5931\u8d25\u4e86\uff0c\u5982\u679cfalse\u5219\u4e0d\u9700\u8981\u770b\u4e0b\u4e00\u4e2a\u8fd4\u56de\u503c\u4e86\uff0c\u5982\u679cfalse\uff0c\u540e\u7eed\u8981close\nint \u672c\u6b21\u63a5\u6536\u5230\u6570\u636e\u957f\u5ea6\nstring \u5bf9\u7aefIP\uff0c\u53ea\u6709UDP\u6a21\u5f0f\u4e0b\u624d\u6709\u610f\u4e49\uff0cTCP\u6a21\u5f0f\u8fd4\u56denil\uff0c\u6ce8\u610f\u8fd4\u56de\u7684\u683c\u5f0f\uff0c\u5982\u679c\u662fIPV4\uff0c1byte 0x00 + 4byte\u5730\u5740 \u5982\u679c\u662fIPV6\uff0c1byte 0x01 + 16byte\u5730\u5740\nint \u5bf9\u7aefport\uff0c\u53ea\u6709UDP\u6a21\u5f0f\u4e0b\u624d\u6709\u610f\u4e49\uff0cTCP\u6a21\u5f0f\u8fd4\u56de0\n\u4f8b\u5b50\uff1a\nlocal succ, data_len, ip, port = socket.rx(ctrl, buff)\n", "prefix": "socket.rx"}, "socket.wait": {"body": "socket.wait(${1:ctrl})", "description": "socket.wait(ctrl) - \u7b49\u5f85\u65b0\u7684socket\u6d88\u606f\uff0c\u5728\u8fde\u63a5\u6210\u529f\u548c\u53d1\u9001\u6570\u636e\u6210\u529f\u540e\uff0c\u4f7f\u7528\u4e00\u6b21\u5c06network\u72b6\u6001\u8f6c\u6362\u5230\u63a5\u6536\u65b0\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nuser_data socket.create\u5f97\u5230\u7684ctrl\n\u8fd4\u56de\u503c\uff1a\nboolean true\u6ca1\u6709\u5f02\u5e38\u53d1\u751f\uff0cfalse\u5931\u8d25\u4e86\uff0c\u5982\u679cfalse\u5219\u4e0d\u9700\u8981\u770b\u4e0b\u4e00\u4e2a\u8fd4\u56de\u503c\u4e86\uff0c\u5982\u679cfalse\uff0c\u540e\u7eed\u8981close\nboolean true\u6709\u65b0\u7684\u6570\u636e\u9700\u8981\u63a5\u6536\uff0cfalse\u6ca1\u6709\u6570\u636e\uff0c\u4e4b\u540e\u9700\u8981\u63a5\u6536socket.EVENT\u6d88\u606f\n\u4f8b\u5b50\uff1a\nlocal succ, result = socket.wait(ctrl)\n", "prefix": "socket.wait"}, "socket.listen": {"body": "socket.listen(${1:ctrl})", "description": "socket.listen(ctrl) - \u4f5c\u4e3a\u670d\u52a1\u7aef\u5f00\u59cb\u76d1\u542c\n\u4f20\u5165\u503c\uff1a\nuser_data socket.create\u5f97\u5230\u7684ctrl\n\u8fd4\u56de\u503c\uff1a\nboolean true\u6ca1\u6709\u5f02\u5e38\u53d1\u751f\uff0cfalse\u5931\u8d25\u4e86\uff0c\u5982\u679cfalse\u5219\u4e0d\u9700\u8981\u770b\u4e0b\u4e00\u4e2a\u8fd4\u56de\u503c\u4e86\uff0c\u5982\u679cfalse\uff0c\u540e\u7eed\u8981close\nboolean true\u5df2\u7ecfconnect\uff0cfalse\u6ca1\u6709connect\uff0c\u4e4b\u540e\u9700\u8981\u63a5\u6536socket.ON_LINE\u6d88\u606f\n\u4f8b\u5b50\uff1a\nlocal succ, result = socket.listen(ctrl)\n", "prefix": "socket.listen"}, "socket.accept": {"body": "socket.accept(${1:ctrl})", "description": "socket.accept(ctrl) - \u4f5c\u4e3a\u670d\u52a1\u7aef\u63a5\u6536\u5230\u4e00\u4e2a\u65b0\u7684\u5ba2\u6237\u7aef\uff0c\u6ce8\u610f\uff0c\u5982\u679c\u662f\u7c7b\u4f3cW5500\u7684\u786c\u4ef6\u534f\u8bae\u6808\u4e0d\u652f\u63011\u5bf9\u591a\uff0c\u5219\u4e0d\u9700\u8981\u7b2c\u4e8c\u4e2a\u53c2\u6570\n\u4f20\u5165\u503c\uff1a\nuser_data socket.create\u5f97\u5230\u7684ctrl\uff0c\u8fd9\u91cc\u662f\u670d\u52a1\u5668\u7aef\nstring or function or nil string\u4e3a\u6d88\u606f\u901a\u77e5\u7684taskName\uff0cfunction\u5219\u4e3a\u56de\u8c03\u51fd\u6570\uff0c\u548csocket.create\u53c2\u6570\u4e00\u81f4\n\u8fd4\u56de\u503c\uff1a\nboolean true\u6ca1\u6709\u5f02\u5e38\u53d1\u751f\uff0cfalse\u5931\u8d25\u4e86\uff0c\u5982\u679cfalse\u5219\u4e0d\u9700\u8981\u770b\u4e0b\u4e00\u4e2a\u8fd4\u56de\u503c\u4e86\uff0c\u5982\u679cfalse\uff0c\u540e\u7eed\u8981close\nuser_data or nil \u5982\u679c\u652f\u63011\u5bf9\u591a\uff0c\u5219\u4f1a\u8fd4\u56de\u65b0\u7684ctrl\uff0c\u81ea\u52a8create\uff0c\u5982\u679c\u4e0d\u652f\u6301\u5219\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\nlocal succ, new_netc = socket.listen(ctrl, cb)\n", "prefix": "socket.accept"}, "socket.release": {"body": "socket.release(${1:ctrl})", "description": "socket.release(ctrl) - \u4e3b\u52a8\u91ca\u653e\u6389network_ctrl\n", "prefix": "socket.release"}, "socket.setDNS": {"body": "socket.setDNS(${1:adapter_index},${2:dns_index},${3:ip})", "description": "socket.setDNS(adapter_index, dns_index, ip) - \u8bbe\u7f6eDNS\u670d\u52a1\u5668\n\u4f20\u5165\u503c\uff1a\nint \u9002\u914d\u5668\u5e8f\u53f7\uff0c \u53ea\u80fd\u662fsocket.ETH0\uff0csocket.STA\uff0csocket.AP\uff0c\u5982\u679c\u4e0d\u586b\uff0c\u4f1a\u9009\u62e9\u6700\u540e\u4e00\u4e2a\u6ce8\u518c\u7684\u9002\u914d\u5668\nint dns\u670d\u52a1\u5668\u5e8f\u53f7\uff0c\u4ece1\u5f00\u59cb\nstring or int dns\uff0c\u5982\u679c\u662fIPV4\uff0c\u53ef\u4ee5\u662f\u5927\u7aef\u683c\u5f0f\u7684int\u503c\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529f\u8fd4\u56detrue\uff0c\u5931\u8d25\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- \u8bbe\u7f6e\u9ed8\u8ba4\u7f51\u7edc\u9002\u914d\u5668\u7684DNS\u914d\u7f6e\nsocket.setDNS(nil, 1, \"114.114.114.114\")\n-- \u8bbe\u7f6e\u5236\u5b9a\u7f51\u7edc\u9002\u914d\u5668\u7684DNS\u914d\u7f6e\nsocket.setDNS(socket.ETH0, 1, \"114.114.114.114\")\n", "prefix": "socket.setDNS"}, "socket.sslLog": {"body": "socket.sslLog(${1:log_level})", "description": "socket.sslLog(log_level) - \u8bbe\u7f6eSSL\u7684log\u767b\u8bb0\n\u4f20\u5165\u503c\uff1a\nint\tmbedtls log\u7b49\u7ea7\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n--[[\nSSL/TLS log\u7ea7\u522b\u8bf4\u660e\n0\u4e0d\u6253\u5370\n1\u53ea\u6253\u5370\u9519\u8bef\u548c\u8b66\n2\u5927\u90e8\u5206info\n3\u53ca3\u4ee5\u4e0a\u8be6\u7ec6\u7684debug\n\n\u8fc7\u591a\u7684\u4fe1\u606f\u53ef\u80fd\u4f1a\u9020\u6210\u5185\u5b58\u788e\u7247\u5316\n]]\n-- \u6253\u5370\u5927\u90e8\u5206info\u65e5\u5fd7\nsocket.sslLog(2)\n", "prefix": "socket.sslLog"}, "socket.adapter": {"body": "socket.adapter(${1:index})", "description": "socket.adapter(index) - \u67e5\u770b\u7f51\u5361\u9002\u914d\u5668\u7684\u8054\u7f51\u72b6\u6001\n\u4f20\u5165\u503c\uff1a\nint \u9700\u8981\u67e5\u770b\u7684\u9002\u914d\u5668\u5e8f\u53f7\uff0c\u53ef\u4ee5\u7559\u7a7a\u4f1a\u67e5\u770b\u5168\u90e8\u7f51\u5361\uff0c\u76f4\u5230\u9047\u5230IP READY\u7684\uff0c\u5982\u679c\u6307\u5b9a\u7f51\u5361\uff0c\u53ea\u80fd\u662fsocket.ETH0\uff08\u5916\u7f6e\u4ee5\u592a\u7f51\uff09\uff0csocket.LWIP_ETH\uff08\u5185\u7f6e\u4ee5\u592a\u7f51\uff09\uff0csocket.LWIP_STA\uff08\u5185\u7f6eWIFI\u7684STA\uff09\uff0csocket.LWIP_AP\uff08\u5185\u7f6eWIFI\u7684AP\uff09\uff0csocket.LWIP_GP\uff08\u5185\u7f6e\u8702\u7a9d\u7f51\u7edc\u7684GPRS\uff09\uff0csocket.USB\uff08\u5916\u7f6eUSB\u7f51\u5361\uff09\n\u8fd4\u56de\u503c\uff1a\nboolean \u88ab\u67e5\u770b\u7684\u9002\u914d\u5668\u662f\u5426IP READY,true\u8868\u793a\u5df2\u7ecf\u51c6\u5907\u597d\u53ef\u4ee5\u8054\u7f51\u4e86,false\u6682\u65f6\u4e0d\u53ef\u4ee5\u8054\u7f51\nint \u6700\u540e\u4e00\u4e2a\u88ab\u67e5\u770b\u7684\u9002\u914d\u5668\u5e8f\u53f7\n\u4f8b\u5b50\uff1a\n-- \u67e5\u770b\u5168\u90e8\u7f51\u5361\uff0c\u76f4\u5230\u627e\u5230\u4e00\u4e2a\u662fIP READY\u7684\nlocal isReady,index = socket.adapter() --\u5982\u679cisReady\u4e3atrue,\u5219index\u4e3aIP READY\u7684\u7f51\u5361\u9002\u914d\u5668\u5e8f\u53f7\n--\u67e5\u770b\u5916\u7f6e\u4ee5\u592a\u7f51\uff08\u6bd4\u5982W5500\uff09\u662f\u5426IP READY\nlocal isReady,default = socket.adapter(socket.ETH0)\n", "prefix": "socket.adapter"}, "socket.remoteIP": {"body": "socket.remoteIP(${1:ctrl})", "description": "socket.remoteIP(ctrl) - \u83b7\u53d6\u5bf9\u7aefip\n\u4f20\u5165\u503c\uff1a\nuser_data socket.create\u5f97\u5230\u7684ctrl\n\u8fd4\u56de\u503c\uff1a\nstring IP1\uff0c\u5982\u679c\u4e3anil\uff0c\u5219\u8868\u793a\u6ca1\u6709\u83b7\u53d6\u5230IP\u5730\u5740\nstring IP2\uff0c\u5982\u679c\u4e3anil\uff0c\u5219\u8868\u793a\u6ca1\u6709IP2\nstring IP3\uff0c\u5982\u679c\u4e3anil\uff0c\u5219\u8868\u793a\u6ca1\u6709IP3\nstring IP4\uff0c\u5982\u679c\u4e3anil\uff0c\u5219\u8868\u793a\u6ca1\u6709IP4\n\u4f8b\u5b50\uff1a\n-- \u6ce8\u610f: \uff0c\u5fc5\u987b\u5728\u63a5\u6536\u5230socket.ON_LINE\u6d88\u606f\u4e4b\u540e\u624d\u53ef\u80fd\u83b7\u53d6\u5230\uff0c\u6700\u591a\u8fd4\u56de4\u4e2aIP\u3002\n-- socket.connect\u91cc\u5982\u679cremote_port\u8bbe\u7f6e\u62100\uff0c\u5219\u5f53DNS\u5b8c\u6210\u65f6\u5c31\u8fd4\u56desocket.ON_LINE\u6d88\u606f\nlocal ip1,ip2,ip3,ip4 = socket.remoteIP(ctrl)\n", "prefix": "socket.remoteIP"}, "softkb.init": {"body": "softkb.init(${1:port},${2:key_in},${3:key_out})", "description": "softkb.init(port, key_in, key_out) - \u521d\u59cb\u5316\u8f6f\u4ef6\u952e\u76d8\u77e9\u9635\n\u4f20\u5165\u503c\uff1a\nint \u9884\u7559, \u5f53\u524d\u586b0\ntable \u77e9\u9635\u8f93\u5165\u6309\u952e\u8868\ntable \u77e9\u9635\u8f93\u51fa\u6309\u952e\u8868\n\u4f8b\u5b50\uff1a\n key_in = {pin.PD10,pin.PE00,pin.PE01,pin.PE02}\n key_out = {pin.PD12,pin.PD13,pin.PD14,pin.PD15}\n softkb.init(0,key_in,key_out)\n\nsys.subscribe(\"SOFT_KB_INC\", function(port, data, state)\n -- port \u5f53\u524d\u56fa\u5b9a\u4e3a0, \u53ef\u4ee5\u65e0\u89c6\n -- data, \u9700\u8981\u914d\u5408init\u7684map\u8fdb\u884c\u89e3\u6790\n -- state, 1 \u4e3a\u6309\u4e0b, 0 \u4e3a \u91ca\u653e\n -- TODO \u8be6\u7ec6\u4ecb\u7ecd\nend)\n", "prefix": "softkb.init"}, "softkb.deinit": {"body": "softkb.deinit(${1:port})", "description": "softkb.deinit(port) - \u5220\u9664\u8f6f\u4ef6\u952e\u76d8\u77e9\u9635\n\u4f20\u5165\u503c\uff1a\nint \u9884\u7559, \u5f53\u524d\u586b0\n\u4f8b\u5b50\uff1a\n softkb.deinit(0)\n", "prefix": "softkb.deinit"}, "spi.setup": {"body": "spi.setup(${1:id},${2:cs},${3:CPHA},${4:CPOL},${5:dataw},${6:bandrate},${7:bitdict},${8:ms},${9:mode})", "description": "spi.setup(id, cs, CPHA, CPOL, dataw, bandrate, bitdict, ms, mode) - \u8bbe\u7f6e\u5e76\u542f\u7528SPI\n\u4f20\u5165\u503c\uff1a\nint SPI\u53f7,\u4f8b\u59820\nint CS \u7247\u9009\u811a,\u5728w600\u4e0d\u53ef\u7528\u8bf7\u586bnil\nint CPHA \u9ed8\u8ba40,\u53ef\u90090/1\nint CPOL \u9ed8\u8ba40,\u53ef\u90090/1\nint \u6570\u636e\u5bbd\u5ea6,\u9ed8\u8ba48bit\nint \u6ce2\u7279\u7387,\u9ed8\u8ba42M=2000000\nint \u5927\u5c0f\u7aef, \u9ed8\u8ba4spi.MSB, \u53ef\u9009spi.LSB\nint \u4e3b\u4ece\u8bbe\u7f6e, \u9ed8\u8ba4\u4e3b1, \u53ef\u9009\u4ece\u673a0. \u901a\u5e38\u53ea\u652f\u6301\u4e3b\u673a\u6a21\u5f0f\nint \u5de5\u4f5c\u6a21\u5f0f, \u5168\u53cc\u5de51, \u534a\u53cc\u5de50, \u9ed8\u8ba4\u5168\u53cc\u5de5\n\u8fd4\u56de\u503c\uff1a\nint \u6210\u529f\u8fd4\u56de0,\u5426\u5219\u8fd4\u56de\u5176\u4ed6\u503c\n\u4f8b\u5b50\uff1a\n-- \u521d\u59cb\u5316spi\nspi.setup(0,20,0,0,8,2000000,spi.MSB,1,1)\n", "prefix": "spi.setup"}, "spi.createSoft": {"body": "spi.createSoft(${1:cs},${2:mosi},${3:miso},${4:clk},${5:CPHA},${6:CPOL},${7:dataw},${8:bitdict},${9:ms},${10:mode})", "description": "spi.createSoft(cs, mosi, miso, clk, CPHA, CPOL, dataw, bitdict, ms, mode) - \u8bbe\u7f6e\u5e76\u542f\u7528\u8f6f\u4ef6SPI\n\u4f20\u5165\u503c\uff1a\nint cs\u5f15\u811a\u7f16\u53f7\uff0c\u4f20\u5165nil\u610f\u4e3aLua\u63a7\u5236cs\u811a\nint mosi\u5f15\u811a\u7f16\u53f7\nint miso\u5f15\u811a\u7f16\u53f7\nint clk\u5f15\u811a\u7f16\u53f7\nint \u9ed8\u8ba40\uff0c\u53ef\u90090/1\nint \u9ed8\u8ba40\uff0c\u53ef\u90090/1\nint \u6570\u636e\u5bbd\u5ea6\uff0c\u9ed8\u8ba48bit\nint \u5927\u5c0f\u7aef\uff0c\u9ed8\u8ba4spi.MSB, \u53ef\u9009spi.LSB\nint \u4e3b\u4ece\u8bbe\u7f6e\uff0c\u9ed8\u8ba4\u4e3b1, \u53ef\u9009\u4ece\u673a0. \u901a\u5e38\u53ea\u652f\u6301\u4e3b\u673a\u6a21\u5f0f\nint \u5de5\u4f5c\u6a21\u5f0f\uff0c\u5168\u53cc\u5de51\uff0c\u534a\u53cc\u5de50\uff0c\u9ed8\u8ba4\u534a\u53cc\u5de5\n\u8fd4\u56de\u503c\uff1a\n\u8f6f\u4ef6SPI\u5bf9\u8c61 \u53ef\u5f53\u4f5cSPI\u7684id\u4f7f\u7528\n\u4f8b\u5b50\uff1a\n-- \u521d\u59cb\u5316\u8f6f\u4ef6spi\nlocal softSpiDevice = spi.createSoft(0, 1, 2, 3, 0, 0, 8, spi.MSB, 1, 1)\nlocal result = spi.send(softSpiDevice, string.char(0x9f))\n", "prefix": "spi.createSoft"}, "spi.close": {"body": "spi.close(${1:id})", "description": "spi.close(id) - \u5173\u95ed\u6307\u5b9a\u7684SPI\n\u4f20\u5165\u503c\uff1a\nint SPI\u53f7,\u4f8b\u59820\n\u8fd4\u56de\u503c\uff1a\nint \u6210\u529f\u8fd4\u56de0,\u5426\u5219\u8fd4\u56de\u5176\u4ed6\u503c\n\u4f8b\u5b50\uff1a\n-- \u521d\u59cb\u5316spi\nspi.close(0)\n", "prefix": "spi.close"}, "spi.transfer": {"body": "spi.transfer(${1:id},${2:send_data[},${3:len]})", "description": "spi.transfer(id, send_data[, len]) - \u4f20\u8f93SPI\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nint SPI\u53f7(\u4f8b\u59820)\u6216\u8f6f\u4ef6SPI\u5bf9\u8c61\nstring/zbuff \u5f85\u53d1\u9001\u7684\u6570\u636e\uff0c\u5982\u679c\u4e3azbuff\u6570\u636e\uff0c\u5219\u4f1a\u4ece\u5bf9\u8c61\u6240\u5904\u7684\u6307\u9488\u5904\u5f00\u59cb\u8bfb\nint \u53ef\u9009\u3002\u5f85\u53d1\u9001\u6570\u636e\u7684\u957f\u5ea6\uff0c\u9ed8\u8ba4\u4e3adata\u957f\u5ea6\nint \u53ef\u9009\u3002\u8bfb\u53d6\u6570\u636e\u7684\u957f\u5ea6\uff0c\u9ed8\u8ba4\u4e3a1\n\u8fd4\u56de\u503c\uff1a\nstring \u8bfb\u53d6\u6210\u529f\u8fd4\u56de\u5b57\u7b26\u4e32,\u5426\u5219\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\n-- \u521d\u59cb\u5316spi\nspi.setup(0,nil,0,0,8,2000000,spi.MSB,1,1)\nlocal recv = spi.transfer(0, \"123\")--\u53d1\u9001123,\u5e76\u8bfb\u53d6\u6570\u636e\n\nlocal buff = zbuff.create(1024, 0x33) --\u521b\u5efa\u4e00\u4e2a\u521d\u503c\u5168\u4e3a0x33\u7684\u5185\u5b58\u533a\u57df\nlocal recv = spi.transfer(0, buff)--\u628azbuff\u6570\u636e\u4ece\u6307\u9488\u5f00\u59cb\uff0c\u5168\u53d1\u51fa\u53bb,\u5e76\u8bfb\u53d6\u6570\u636e\n", "prefix": "spi.transfer"}, "spi.recv": {"body": "spi.recv(${1:id},${2:size})", "description": "spi.recv(id, size) - \u63a5\u6536\u6307\u5b9a\u957f\u5ea6\u7684SPI\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nint SPI\u53f7,\u4f8b\u59820\nint \u6570\u636e\u957f\u5ea6\n\u8fd4\u56de\u503c\uff1a\nstring \u8bfb\u53d6\u6210\u529f\u8fd4\u56de\u5b57\u7b26\u4e32,\u5426\u5219\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\n-- \u521d\u59cb\u5316spi\nspi.setup(0,nil,0,0,8,2000000,spi.MSB,1,1)\nlocal recv = spi.recv(0, 4)--\u63a5\u65364\u5b57\u8282\u6570\u636e\n", "prefix": "spi.recv"}, "spi.send": {"body": "spi.send(${1:id},${2:data[},${3:len]})", "description": "spi.send(id, data[, len]) - \u53d1\u9001SPI\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nint SPI\u53f7,\u4f8b\u59820\nstring/zbuff \u5f85\u53d1\u9001\u7684\u6570\u636e\uff0c\u5982\u679c\u4e3azbuff\u6570\u636e\uff0c\u5219\u4f1a\u4ece\u5bf9\u8c61\u6240\u5904\u7684\u6307\u9488\u5904\u5f00\u59cb\u8bfb\nint \u53ef\u9009\u3002\u5f85\u53d1\u9001\u6570\u636e\u7684\u957f\u5ea6\uff0c\u9ed8\u8ba4\u4e3adata\u957f\u5ea6\n\u8fd4\u56de\u503c\uff1a\nint \u53d1\u9001\u7ed3\u679c\n\u4f8b\u5b50\uff1a\n-- \u521d\u59cb\u5316spi\nspi.setup(0,nil,0,0,8,2000000,spi.MSB,1,1)\nlocal result = spi.send(0, \"123\")--\u53d1\u9001123\n\nlocal buff = zbuff.create(1024, 0x33) --\u521b\u5efa\u4e00\u4e2a\u521d\u503c\u5168\u4e3a0x33\u7684\u5185\u5b58\u533a\u57df\nlocal result = spi.send(0, buff)--\u628azbuff\u6570\u636e\u4ece\u6307\u9488\u5f00\u59cb\uff0c\u5168\u53d1\u51fa\u53bb\n", "prefix": "spi.send"}, "spi.deviceSetup": {"body": "spi.deviceSetup(${1:id},${2:cs},${3:CPHA},${4:CPOL},${5:dataw},${6:bandrate},${7:bitdict},${8:ms},${9:mode})", "description": "spi.deviceSetup(id, cs, CPHA, CPOL, dataw, bandrate, bitdict, ms, mode) - \u8bbe\u7f6e\u5e76\u542f\u7528SPI(\u5bf9\u8c61\u65b9\u5f0f)\n\u4f20\u5165\u503c\uff1a\nint SPI\u53f7,\u4f8b\u59820\nint CS \u7247\u9009\u811a,\u5728w600\u4e0d\u53ef\u7528\u8bf7\u586bnil\nint CPHA \u9ed8\u8ba40,\u53ef\u90090/1\nint CPOL \u9ed8\u8ba40,\u53ef\u90090/1\nint \u6570\u636e\u5bbd\u5ea6,\u9ed8\u8ba48bit\nint \u6ce2\u7279\u7387,\u9ed8\u8ba420M=20000000\nint \u5927\u5c0f\u7aef, \u9ed8\u8ba4spi.MSB, \u53ef\u9009spi.LSB\nint \u4e3b\u4ece\u8bbe\u7f6e, \u9ed8\u8ba4\u4e3b1, \u53ef\u9009\u4ece\u673a0. \u901a\u5e38\u53ea\u652f\u6301\u4e3b\u673a\u6a21\u5f0f\nint \u5de5\u4f5c\u6a21\u5f0f, \u5168\u53cc\u5de51, \u534a\u53cc\u5de50, \u9ed8\u8ba4\u5168\u53cc\u5de5\n\u8fd4\u56de\u503c\uff1a\nuserdata spi_device\n\u4f8b\u5b50\uff1a\n-- \u521d\u59cb\u5316spi\nlocal spi_device = spi.deviceSetup(0,17,0,0,8,2000000,spi.MSB,1,1)\n", "prefix": "spi.deviceSetup"}, "spi_device:close": {"body": "spi_device:close()", "description": "spi_device:close() - \u5173\u95ed\u6307\u5b9a\u7684SPI(\u5bf9\u8c61\u65b9\u5f0f)\n\u4f20\u5165\u503c\uff1a\nuserdata spi_device\n\u8fd4\u56de\u503c\uff1a\nint \u6210\u529f\u8fd4\u56de0,\u5426\u5219\u8fd4\u56de\u5176\u4ed6\u503c\n\u4f8b\u5b50\uff1a\n-- \u521d\u59cb\u5316spi\nspi_device.close()\n", "prefix": "spi_device:close"}, "spi_device:transfer": {"body": "spi_device:transfer(${1:send_data[},${2:len]})", "description": "spi_device:transfer(send_data[, len]) - \u4f20\u8f93SPI\u6570\u636e(\u5bf9\u8c61\u65b9\u5f0f)\n\u4f20\u5165\u503c\uff1a\nuserdata spi_device\nstring/zbuff \u5f85\u53d1\u9001\u7684\u6570\u636e\uff0c\u5982\u679c\u4e3azbuff\u6570\u636e\uff0c\u5219\u4f1a\u4ece\u5bf9\u8c61\u6240\u5904\u7684\u6307\u9488\u5904\u5f00\u59cb\u8bfb\nint \u53ef\u9009\u3002\u5f85\u53d1\u9001\u6570\u636e\u7684\u957f\u5ea6\uff0c\u9ed8\u8ba4\u4e3adata\u957f\u5ea6\nint \u53ef\u9009\u3002\u8bfb\u53d6\u6570\u636e\u7684\u957f\u5ea6\uff0c\u9ed8\u8ba4\u4e3a1\n\u8fd4\u56de\u503c\uff1a\nstring \u8bfb\u53d6\u6210\u529f\u8fd4\u56de\u5b57\u7b26\u4e32,\u5426\u5219\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\n-- \u521d\u59cb\u5316spi\nlocal spi_device = spi.device_setup(0,17,0,0,8,2000000,spi.MSB,1,1)\nlocal recv = spi_device:transfer(\"123\")--\u53d1\u9001123,\u5e76\u8bfb\u53d6\u6570\u636e\n\nlocal buff = zbuff.create(1024, 0x33) --\u521b\u5efa\u4e00\u4e2a\u521d\u503c\u5168\u4e3a0x33\u7684\u5185\u5b58\u533a\u57df\nlocal recv = spi_device:transfer(buff)--\u628azbuff\u6570\u636e\u4ece\u6307\u9488\u5f00\u59cb\uff0c\u5168\u53d1\u51fa\u53bb,\u5e76\u8bfb\u53d6\u6570\u636e\n", "prefix": "spi_device:transfer"}, "spi_device:send": {"body": "spi_device:send(${1:data[},${2:len]})", "description": "spi_device:send(data[, len]) - \u53d1\u9001SPI\u6570\u636e(\u5bf9\u8c61\u65b9\u5f0f)\n\u4f20\u5165\u503c\uff1a\nuserdata spi_device\nstring/zbuff \u5f85\u53d1\u9001\u7684\u6570\u636e\uff0c\u5982\u679c\u4e3azbuff\u6570\u636e\uff0c\u5219\u4f1a\u4ece\u5bf9\u8c61\u6240\u5904\u7684\u6307\u9488\u5904\u5f00\u59cb\u8bfb\n\u8fd4\u56de\u503c\uff1a\nint \u53d1\u9001\u7ed3\u679c\n\u4f8b\u5b50\uff1a\n-- \u521d\u59cb\u5316spi\nlocal spi_device = spi.device_setup(0,17,0,0,8,2000000,spi.MSB,1,1)\nlocal result = spi_device:send(\"123\")--\u53d1\u9001123\n\nlocal buff = zbuff.create(1024, 0x33) --\u521b\u5efa\u4e00\u4e2a\u521d\u503c\u5168\u4e3a0x33\u7684\u5185\u5b58\u533a\u57df\nlocal result = spi_device:send(buff)--\u628azbuff\u6570\u636e\u4ece\u6307\u9488\u5f00\u59cb\uff0c\u5168\u53d1\u51fa\u53bb\n", "prefix": "spi_device:send"}, "spi_device:recv": {"body": "spi_device:recv(${1:size})", "description": "spi_device:recv(size) - \u63a5\u6536\u6307\u5b9a\u957f\u5ea6\u7684SPI\u6570\u636e(\u5bf9\u8c61\u65b9\u5f0f)\n\u4f20\u5165\u503c\uff1a\nuserdata spi_device\nint \u6570\u636e\u957f\u5ea6\n\u8fd4\u56de\u503c\uff1a\nstring \u8bfb\u53d6\u6210\u529f\u8fd4\u56de\u5b57\u7b26\u4e32,\u5426\u5219\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\n-- \u521d\u59cb\u5316spi\nlocal spi_device = spi.device_setup(0,17,0,0,8,2000000,spi.MSB,1,1)\nlocal recv = spi_device:recv(4)--\u63a5\u65364\u5b57\u8282\u6570\u636e\n", "prefix": "spi_device:recv"}, "spi.xfer": {"body": "spi.xfer(${1:id},${2:txbuff},${3:rxbuff},${4:rx_len},${5:transfer_done_topic})", "description": "spi.xfer(id, txbuff, rxbuff, rx_len, transfer_done_topic) - \u975e\u963b\u585e\u65b9\u5f0f\u786c\u4ef6SPI\u4f20\u8f93SPI\u6570\u636e\uff0c\u76ee\u7684\u4e3a\u4e86\u63d0\u9ad8\u6838\u5fc3\u5229\u7528\u7387\u3002API\u76f4\u63a5\u8fd4\u56de\u662f\u5426\u542f\u52a8\u4f20\u8f93\uff0c\u4f20\u8f93\u5b8c\u6210\u540e\u901a\u8fc7topic\u56de\u8c03\uff0c\u672cAPI\u9002\u5408\u786c\u4ef6SPI\u4f20\u8f93\u5927\u91cf\u6570\u636e\u4f20\u8f93\uff0c\u5916\u8bbe\u529f\u80fd\uff08LCD SPI\uff0cW5500 SPI\u4e4b\u7c7b\u7684\uff09\u5360\u636e\u7684SPI\u548c\u8f6f\u4ef6SPI\u4e0d\u80fd\u7528\uff0c\u5c11\u91cf\u6570\u636e\u4f20\u8f93\u5efa\u8bae\u4f7f\u7528\u4f20\u7edf\u963b\u585e\u578bAPI\n\u4f20\u5165\u503c\uff1a\nuserdata or int spi_device\u6216\u8005spi_id\uff0c\u6ce8\u610f\uff0c\u5982\u679c\u662fspi_device\uff0c\u9700\u8981\u624b\u52a8\u5728\u4f20\u8f93\u5b8c\u6210\u540e\u62c9\u9ad8cs!!!!!!\nzbuff \u5f85\u53d1\u9001\u7684\u6570\u636e\uff0c\u5982\u679c\u4e3anil\uff0c\u5219\u53ea\u63a5\u6536\u6570\u636e\uff0c\u7531\u4e8e\u7528\u7684\u975e\u963b\u585e\u6a21\u578b\uff0c\u4e3a\u4fdd\u8bc1\u52a8\u6001\u6570\u636e\u7684\u6709\u6548\u6027\uff0c\u53ea\u80fd\u4f7f\u7528zbuff\uff0c\u53d1\u9001\u7684\u6570\u636e\u4ecezbuff.addr\nzbuff \u63a5\u6536\u6570\u636e\uff0c\u5982\u679c\u4e3anil\uff0c\u5219\u53ea\u53d1\u9001\u6570\u636e\uff0c\u7531\u4e8e\u7528\u7684\u975e\u963b\u585e\u6a21\u578b\uff0c\u4e3a\u4fdd\u8bc1\u52a8\u6001\u6570\u636e\u7684\u6709\u6548\u6027\uff0c\u53ea\u80fd\u4f7f\u7528zbuff\uff0c\u63a5\u6536\u7684\u6570\u636e\u4ecezbuff.addr\u5f00\u59cb\u5b58\u50a8\nint \u4f20\u8f93\u6570\u636e\u957f\u5ea6\uff0c\u7279\u522b\u8bf4\u660e \u5982\u679c\u4e3a\u534a\u53cc\u5de5\uff0c\u5148\u53d1\u540e\u6536\uff0c\u6bd4\u5982spi flash\u64cd\u4f5c\u8fd9\u79cd\uff0c\u5219\u957f\u5ea6=\u53d1\u9001\u5b57\u8282+\u63a5\u6536\u5b57\u8282\uff0c\u6ce8\u610f\u4e0a\u9762\u53d1\u9001\u548c\u63a5\u6536buff\u90fd\u8981\u7559\u8db3\u591f\u7684\u6570\u636e\uff0c\u540e\u7eed\u63a5\u6536\u6570\u636e\u5904\u7406\u9700\u8981\u8df3\u8fc7\u53d1\u9001\u6570\u636e\u957f\u5ea6\u5b57\u8282\nstring \u4f20\u8f93\u5b8c\u6210\u540e\u56de\u8c03\u7684topic\n\u8fd4\u56de\u503c\uff1a\nboolean true/false \u672c\u6b21\u4f20\u8f93\u662f\u5426\u6b63\u786e\u542f\u52a8\uff0ctrue\uff0c\u542f\u52a8\uff0cfalse\uff0c\u6709\u9519\u8bef\u65e0\u6cd5\u542f\u52a8\u3002\u4f20\u8f93\u5b8c\u6210\u4f1a\u53d1\u5e03\u6d88\u606ftransfer_done_topic\u548cboolean\u578b\u7ed3\u679c\n\u4f8b\u5b50\uff1a\nlocal result = spi.xfer(spi.SPI_0, txbuff, rxbuff, 1024, \"SPIDONE\") if result then result, spi_id, succ, error_code = sys.waitUntil(\"SPIDONE\") end if not result or not succ then log.info(\"spi fail, error code\", error_code) else log.info(\"spi ok\") end\n\n", "prefix": "spi.xfer"}, "statem.create": {"body": "statem.create(${1:count},${2:repeat})", "description": "statem.create(count, repeat) - \u521b\u5efa\u4e00\u4e2a\u65b0\u7684\u72b6\u6001\u673a.\n\u4f20\u5165\u503c\uff1a\nint \u6307\u4ee4\u6761\u6570,\u9ed8\u8ba432\u6761\nint \u91cd\u590d\u6267\u884c\u7684\u6b21\u6570, 0 \u4ee3\u8868\u4e0d\u91cd\u590d, \u6b63\u6574\u6570\u4ee3\u8868\u5177\u4f53\u91cd\u590d\u6267\u884c\u7684\u6b21\u6570. \u6682\u4e0d\u652f\u6301\u6c38\u7eed\u6267\u884c\n\u8fd4\u56de\u503c\uff1a\nsome \u82e5\u6210\u529f,\u8fd4\u56de\u72b6\u6001\u673a\u6307\u9488,\u5426\u5219\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\ngpio.setup(7, 0, gpio.PULLUP)\ngpio.setup(12, 0, gpio.PULLUP)\ngpio.setup(13, 0, gpio.PULLUP)\ngpio.setup(14, 0, gpio.PULLUP)\nlocal sm = statem.create()\n :gpio_set(7, 0) -- gpio\u8bbe\u7f6e\u4e3a\u4f4e\u7535\u5e73\n :usleep(10) -- \u4f11\u772010us\n :gpio_set(7, 1) -- gpio\u8bbe\u7f6e\u4e3a\u9ad8\u7535\u5e73\n :usleep(40) -- \u4f11\u772040us\n :gpio_set(12, 1) -- gpio\u8bbe\u7f6e\u4e3a\u9ad8\u7535\u5e73\n :gpio_set(13, 1) -- gpio\u8bbe\u7f6e\u4e3a\u9ad8\u7535\u5e73\n :gpio_set(14, 1) -- gpio\u8bbe\u7f6e\u4e3a\u9ad8\u7535\u5e73\n :usleep(40) -- \u4f11\u772040us\n :gpio_set(7, 0) -- gpio\u8bbe\u7f6e\u4e3a\u4f4e\u7535\u5e73\n :finish()\n\n-- \u6267\u884c\u4e4b,\u540e\u7eed\u4f1a\u652f\u6301\u540e\u53f0\u6267\u884c\nsm:exec()\n", "prefix": "statem.create"}, "string.toHex": {"body": "string.toHex(${1:str},${2:separator})", "description": "string.toHex(str, separator) - \u5c06\u5b57\u7b26\u4e32\u8f6c\u6210HEX\n\u4f20\u5165\u503c\uff1a\nstring \u9700\u8981\u8f6c\u6362\u7684\u5b57\u7b26\u4e32\nstring \u5206\u9694\u7b26, \u9ed8\u8ba4\u4e3a\"\"\n\u8fd4\u56de\u503c\uff1a\nstring HEX\u5b57\u7b26\u4e32\nnumber HEX\u5b57\u7b26\u4e32\u7684\u957f\u5ea6\n\u4f8b\u5b50\uff1a\nstring.toHex(\"\\1\\2\\3\") --> \"010203\" 6\nstring.toHex(\"123abc\") --> \"313233616263\" 12\nstring.toHex(\"123abc\", \" \") --> \"31 32 33 61 62 63 \" 12\n", "prefix": "string.toHex"}, "string.fromHex": {"body": "string.fromHex(${1:hex})", "description": "string.fromHex(hex) - \u5c06HEX\u8f6c\u6210\u5b57\u7b26\u4e32\n\u4f20\u5165\u503c\uff1a\nstring hex,16\u8fdb\u5236\u7ec4\u6210\u7684\u4e32\n\u8fd4\u56de\u503c\uff1a\nstring \u5b57\u7b26\u4e32\n\u4f8b\u5b50\uff1a\nstring.fromHex(\"010203\") --> \"\\1\\2\\3\"\nstring.fromHex(\"313233616263\") --> \"123abc\"\n", "prefix": "string.fromHex"}, "string.split": {"body": "string.split(${1:str},${2:delimiter},${3:keepEmtry})", "description": "string.split(str, delimiter, keepEmtry) - \u6309\u7167\u6307\u5b9a\u5206\u9694\u7b26\u5206\u5272\u5b57\u7b26\u4e32\n\u4f20\u5165\u503c\uff1a\nstring \u8f93\u5165\u5b57\u7b26\u4e32\nstring \u5206\u9694\u7b26,\u53ef\u9009,\u9ed8\u8ba4 \",\"\nbool \u662f\u5426\u4fdd\u7559\u7a7a\u767d\u7247\u6bb5,\u9ed8\u8ba4\u4e3afalse,\u4e0d\u4fdd\u7559. 2023.4.11\u4e4b\u540e\u7684\u56fa\u4ef6\u53ef\u7528\n\u8fd4\u56de\u503c\uff1a\ntable \u5206\u5272\u540e\u7684\u5b57\u7b26\u4e32\u8868\n\u4f8b\u5b50\uff1a\nlocal tmp = string.split(\"123,233333,122\")\nlog.info(\"tmp\", json.encode(tmp))\nlocal tmp = (\"123,456,789\"):split(',') --> {'123','456','789'}\nlog.info(\"tmp\", json.encode(tmp))\n\n-- \u4fdd\u7559\u7a7a\u7247\u6bb5, 2023.4.11\u4e4b\u540e\u7684\u56fa\u4ef6\u53ef\u7528\nlocal str = \"/tmp//def/1234/\"\nlocal tmp = str:split(\"/\", true) \nlog.info(\"str.split\", #tmp, json.encode(tmp))\n", "prefix": "string.split"}, "string.toValue": {"body": "string.toValue(${1:str})", "description": "string.toValue(str) - \u8fd4\u56de\u5b57\u7b26\u4e32tonumber\u7684\u8f6c\u4e49\u5b57\u7b26\u4e32(\u7528\u6765\u652f\u6301\u8d85\u8fc731\u4f4d\u6574\u6570\u7684\u8f6c\u6362)\n\u4f20\u5165\u503c\uff1a\nstring \u8f93\u5165\u5b57\u7b26\u4e32\n\u8fd4\u56de\u503c\uff1a\nstring \u8f6c\u6362\u540e\u7684\u4e8c\u8fdb\u5236\u5b57\u7b26\u4e32\nnumber \u8f6c\u6362\u4e86\u591a\u5c11\u4e2a\u5b57\u7b26\n\u4f8b\u5b50\uff1a\nstring.toValue(\"123456\") --> \"\\1\\2\\3\\4\\5\\6\" 6\nstring.toValue(\"123abc\") --> \"\\1\\2\\3\\a\\b\\c\" 6\n", "prefix": "string.toValue"}, "string.urlEncode": {"body": "string.urlEncode(${1:\"123abc\"})", "description": "string.urlEncode(\"123 abc\") - \u5c06\u5b57\u7b26\u4e32\u8fdb\u884curl\u7f16\u7801\u8f6c\u6362\n\u4f20\u5165\u503c\uff1a\nstring \u9700\u8981\u8f6c\u6362\u7684\u5b57\u7b26\u4e32\n", "prefix": "string.urlEncode"}, "string.toBase64": {"body": "string.toBase64(${1:str})", "description": "string.toBase64(str) - \u5c06\u5b57\u7b26\u4e32\u8fdb\u884cbase64\u7f16\u7801\n\u4f20\u5165\u503c\uff1a\nstring \u9700\u8981\u8f6c\u6362\u7684\u5b57\u7b26\u4e32\n\u8fd4\u56de\u503c\uff1a\nstring \u89e3\u7801\u540e\u7684\u5b57\u7b26\u4e32,\u5982\u679c\u89e3\u7801\u5931\u8d25\u4f1a\u8fd4\u56de\u7a7a\u5b57\u7b26\u4e32\n", "prefix": "string.toBase64"}, "string.fromBase64": {"body": "string.fromBase64(${1:str})", "description": "string.fromBase64(str) - \u5c06\u5b57\u7b26\u4e32\u8fdb\u884cbase64\u89e3\u7801\n\u4f20\u5165\u503c\uff1a\nstring \u9700\u8981\u8f6c\u6362\u7684\u5b57\u7b26\u4e32\n\u8fd4\u56de\u503c\uff1a\nstring \u89e3\u7801\u540e\u7684\u5b57\u7b26\u4e32,\u5982\u679c\u89e3\u7801\u5931\u8d25\u4f1a\u8fd4\u56de\u7a7a\u5b57\u7b26\u4e32\n", "prefix": "string.fromBase64"}, "string.toBase32": {"body": "string.toBase32(${1:str})", "description": "string.toBase32(str) - \u5c06\u5b57\u7b26\u4e32\u8fdb\u884cbase32\u7f16\u7801\n\u4f20\u5165\u503c\uff1a\nstring \u9700\u8981\u8f6c\u6362\u7684\u5b57\u7b26\u4e32\n\u8fd4\u56de\u503c\uff1a\nstring \u89e3\u7801\u540e\u7684\u5b57\u7b26\u4e32,\u5982\u679c\u89e3\u7801\u5931\u8d25\u4f1a\u8fd4\u56de0\u957f\u5ea6\u5b57\u7b26\u4e32\n", "prefix": "string.toBase32"}, "string.fromBase32": {"body": "string.fromBase32(${1:str})", "description": "string.fromBase32(str) - \u5c06\u5b57\u7b26\u4e32\u8fdb\u884cbase32\u89e3\u7801\n\u4f20\u5165\u503c\uff1a\nstring \u9700\u8981\u8f6c\u6362\u7684\u5b57\u7b26\u4e32\n\u8fd4\u56de\u503c\uff1a\nstring \u89e3\u7801\u540e\u7684\u5b57\u7b26\u4e32,\u5982\u679c\u89e3\u7801\u5931\u8d25\u4f1a\u8fd4\u56de0\u957f\u5ea6\u5b57\u7b26\u4e32\n", "prefix": "string.fromBase32"}, "string.startsWith": {"body": "string.startsWith(${1:str},${2:prefix})", "description": "string.startsWith(str, prefix) - \u5224\u65ad\u5b57\u7b26\u4e32\u524d\u7f00\n\u4f20\u5165\u503c\uff1a\nstring \u9700\u8981\u68c0\u67e5\u7684\u5b57\u7b26\u4e32\nstring \u524d\u7f00\u5b57\u7b26\u4e32\n\u8fd4\u56de\u503c\uff1a\nbool \u771f\u4e3atrue, \u5047\u4e3afalse\n\u4f8b\u5b50\uff1a\nlocal str = \"abc\"\nlog.info(\"str\", str:startsWith(\"a\"))\nlog.info(\"str\", str:startsWith(\"b\"))\n", "prefix": "string.startsWith"}, "string.endsWith": {"body": "string.endsWith(${1:str},${2:suffix})", "description": "string.endsWith(str, suffix) - \u5224\u65ad\u5b57\u7b26\u4e32\u540e\u7f00\n\u4f20\u5165\u503c\uff1a\nstring \u9700\u8981\u68c0\u67e5\u7684\u5b57\u7b26\u4e32\nstring \u540e\u7f00\u5b57\u7b26\u4e32\n\u8fd4\u56de\u503c\uff1a\nbool \u771f\u4e3atrue, \u5047\u4e3afalse\n\u4f8b\u5b50\uff1a\nlocal str = \"abc\"\nlog.info(\"str\", str:endsWith(\"c\"))\nlog.info(\"str\", str:endsWith(\"b\"))\n", "prefix": "string.endsWith"}, "string.trim": {"body": "string.trim(${1:str},${2:ltrim},${3:rtrim})", "description": "string.trim(str, ltrim, rtrim) - \u88c1\u526a\u5b57\u7b26\u4e32,\u53bb\u9664\u5934\u5c3e\u7684\u7a7a\u683c\n\u4f20\u5165\u503c\uff1a\nstring \u9700\u8981\u5904\u7406\u7684\u5b57\u7b26\u4e32\nbool \u6e05\u7406\u524d\u7f00,\u9ed8\u8ba4\u4e3atrue\nbool \u6e05\u7406\u540e\u7f00,\u9ed8\u8ba4\u4e3atrue\n\u8fd4\u56de\u503c\uff1a\nstring \u6e05\u7406\u540e\u7684\u5b57\u7b26\u4e32\n\u4f8b\u5b50\uff1a\nlocal str = \"\\r\\nabc\\r\\n\"\nlog.info(\"str\", string.trim(str)) -- \u6253\u5370 \"abc\"\nlog.info(\"str\", str:trim()) -- \u6253\u5370 \"abc\"\nlog.info(\"str\", #string.trim(str, false, true)) -- \u4ec5\u88c1\u526a\u540e\u7f00,\u6240\u4ee5\u957f\u5ea6\u662f5\n", "prefix": "string.trim"}, "sys.wait": {"body": "sys.wait(${1:timeout})", "description": "sys.wait(timeout) - Task\u534f\u7a0b\u7b49\u5f85\u6307\u5b9a\u65f6\u957f\n\u4f20\u5165\u503c\uff1a\nint \u7b49\u5f85\u65f6\u957f,\u5355\u4f4d\u6beb\u79d2,\u5fc5\u987b\u5927\u4e8e0,\u5426\u5219\u65e0\u6548\n\u8fd4\u56de\u503c\uff1a\nany \u901a\u5e38\u4e3anil,\u9664\u975e\u4e3b\u52a8\u88ab\u5524\u9192(\u901a\u5e38\u4e0d\u4f1a)\n\u4f8b\u5b50\uff1a\nsys.taskInit(function()\n while 1 do\n sys.wait(500)\n end\nend)\n", "prefix": "sys.wait"}, "sys.waitUntil": {"body": "sys.waitUntil(${1:topic},${2:timeout})", "description": "sys.waitUntil(topic, timeout) - Task\u534f\u7a0b\u7b49\u5f85\u6307\u5b9a\u65f6\u957f\u6216\u8005\u7279\u5b9a\u7684topic\n\u4f20\u5165\u503c\uff1a\nstring \u4e8b\u4ef6topic\nint \u7b49\u5f85\u65f6\u957f,\u5355\u4f4d\u6beb\u79d2,\u5fc5\u987b\u5927\u4e8e0,\u5426\u5219\u65e0\u6548\n\u8fd4\u56de\u503c\uff1a\nboolean \u5982\u679c\u662f\u8d85\u65f6,\u8fd4\u56defalse,\u5426\u5219\u8fd4\u56detrue\nany \u5bf9\u5e94topic\u7684\u5185\u5bb9\n\u4f8b\u5b50\uff1a\nsys.taskInit(function()\n // do something\n local result, data = sys.waitUntil(\"NET_READY\", 30000)\n // do something else\nend)\n", "prefix": "sys.waitUntil"}, "sys.taskInit": {"body": "sys.taskInit(${1:func},${2:arg1},${3:arg2},${4:argN})", "description": "sys.taskInit(func, arg1, arg2, argN) - \u521b\u5efa\u4e00\u4e2aTask\u534f\u7a0b\n\u4f20\u5165\u503c\uff1a\nfunction \u5f85\u6267\u884c\u7684\u51fd\u6570,\u53ef\u4ee5\u662f\u533f\u540d\u51fd\u6570, \u4e5f\u53ef\u4ee5\u662flocal\u6216\u5168\u5c40\u51fd\u6570\nany \u9700\u8981\u4f20\u9012\u7684\u53c2\u65701,\u53ef\u9009 \nany \u9700\u8981\u4f20\u9012\u7684\u53c2\u65702,\u53ef\u9009 \nany \u9700\u8981\u4f20\u9012\u7684\u53c2\u6570N,\u53ef\u9009 \n\u8fd4\u56de\u503c\uff1a\ntask \u534f\u7a0b\u5bf9\u8c61\n\u4f8b\u5b50\uff1a\nsys.taskInit(function(a, b, c)\n log.info(\"task\", a, b, c) -- \u6253\u5370 task A B C\nend, \"A\", \"B\", \"N\")\n", "prefix": "sys.taskInit"}, "sys.timerStart": {"body": "sys.timerStart(${1:func},${2:timeout},${3:arg1},${4:arg2},${5:argN})", "description": "sys.timerStart(func, timeout, arg1, arg2, argN) - \u521b\u5efa\u4e00\u4e2a\u5b9a\u65f6\u5668.\u975eTask,\u51fd\u6570\u91cc\u4e0d\u80fd\u76f4\u63a5sys.waitXXX\n\u4f20\u5165\u503c\uff1a\nfunction \u5f85\u6267\u884c\u7684\u51fd\u6570,\u53ef\u4ee5\u662f\u533f\u540d\u51fd\u6570, \u4e5f\u53ef\u4ee5\u662flocal\u6216\u5168\u5c40\u51fd\u6570\nint \u5ef6\u65f6\u65f6\u957f,\u5355\u4f4d\u6beb\u79d2\nany \u9700\u8981\u4f20\u9012\u7684\u53c2\u65701,\u53ef\u9009 \nany \u9700\u8981\u4f20\u9012\u7684\u53c2\u65702,\u53ef\u9009 \nany \u9700\u8981\u4f20\u9012\u7684\u53c2\u6570N,\u53ef\u9009 \n\u8fd4\u56de\u503c\uff1a\nint \u5b9a\u65f6\u5668id\n\u4f8b\u5b50\uff1a\nsys.timerStart(function(a, b, c)\n log.info(\"task\", a, b, c) -- 1000\u6beb\u79d2\u540e\u624d\u4f1a\u6267\u884c, \u6253\u5370 task A B C\nend, 1000, \"A\", \"B\", \"N\")\n", "prefix": "sys.timerStart"}, "sys.timerLoopStart": {"body": "sys.timerLoopStart(${1:func},${2:timeout},${3:arg1},${4:arg2},${5:argN})", "description": "sys.timerLoopStart(func, timeout, arg1, arg2, argN) - \u521b\u5efa\u4e00\u4e2a\u5faa\u73af\u5b9a\u65f6\u5668.\u975eTask,\u51fd\u6570\u91cc\u4e0d\u80fd\u76f4\u63a5sys.waitXXX\n\u4f20\u5165\u503c\uff1a\nfunction \u5f85\u6267\u884c\u7684\u51fd\u6570,\u53ef\u4ee5\u662f\u533f\u540d\u51fd\u6570, \u4e5f\u53ef\u4ee5\u662flocal\u6216\u5168\u5c40\u51fd\u6570\nint \u5ef6\u65f6\u65f6\u957f,\u5355\u4f4d\u6beb\u79d2\nany \u9700\u8981\u4f20\u9012\u7684\u53c2\u65701,\u53ef\u9009 \nany \u9700\u8981\u4f20\u9012\u7684\u53c2\u65702,\u53ef\u9009 \nany \u9700\u8981\u4f20\u9012\u7684\u53c2\u6570N,\u53ef\u9009 \n\u8fd4\u56de\u503c\uff1a\nint \u5b9a\u65f6\u5668id\n\u4f8b\u5b50\uff1a\nsys.timerLoopStart(function(a, b, c)\n log.info(\"task\", a, b, c) -- 1000\u6beb\u79d2\u540e\u624d\u4f1a\u6267\u884c, \u6253\u5370 task A B C\nend, 1000, \"A\", \"B\", \"N\")\n", "prefix": "sys.timerLoopStart"}, "sys.timerStop": {"body": "sys.timerStop(${1:id})", "description": "sys.timerStop(id) - \u5173\u95ed\u4e00\u4e2a\u5b9a\u65f6\u5668.\n\u4f20\u5165\u503c\uff1a\nint \u5b9a\u65f6\u5668id\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\nlocal tcount = 0\nlocal tid \ntid = sys.timerLoopStart(function(a, b, c)\n log.info(\"task\", a, b, c) -- 1000\u6beb\u79d2\u540e\u624d\u4f1a\u6267\u884c, \u6253\u5370 task A B C\n if tcount > 10 then\n sys.timerStop(tid)\n end\n tcount = tcount + 1\nend, 1000, \"A\", \"B\", \"N\")\n", "prefix": "sys.timerStop"}, "sys.publish": {"body": "sys.publish(${1:topic},${2:arg1},${3:agr2},${4:argN})", "description": "sys.publish(topic, arg1, agr2, argN) - \u5f80\u7279\u5b9atopic\u901a\u9053\u53d1\u5e03\u4e00\u4e2a\u6d88\u606f\n\u4f20\u5165\u503c\uff1a\nstring topic\u7684\u503c\nany \u9644\u5e26\u7684\u53c2\u65701\nany \u9644\u5e26\u7684\u53c2\u65702\nany \u9644\u5e26\u7684\u53c2\u6570N\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\nsys.publish(\"BT_READY\", false)\n", "prefix": "sys.publish"}, "sys.subscribe": {"body": "sys.subscribe(${1:topic},${2:func})", "description": "sys.subscribe(topic, func) - \u8ba2\u9605\u4e00\u4e2atopic\u901a\u9053\n\u4f20\u5165\u503c\uff1a\nstring topic\u7684\u503c\nfunction \u56de\u8c03\u51fd\u6570, \u6ce8\u610f, \u4e0d\u80fd\u76f4\u63a5\u4f7f\u7528sys.waitXXX\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\nlocal function bt_cb(state)\n log.info(\"bt\", state)\nend\nsys.subscribe(\"BT_READY\", bt_cb)\nsys.subscribe(\"BT_READY\", function(state)\n log.info(\"sys\", \"Got BT_READY\", state)\nend)\n", "prefix": "sys.subscribe"}, "sys.unsubscribe": {"body": "sys.unsubscribe(${1:topic},${2:func})", "description": "sys.unsubscribe(topic, func) - \u53d6\u6d88\u8ba2\u9605topic\u901a\u9053\n\u4f20\u5165\u503c\uff1a\nstring topic\u7684\u503c\nfunction \u56de\u8c03\u51fd\u6570, \u6ce8\u610f, \u4e0d\u80fd\u76f4\u63a5\u4f7f\u7528sys.waitXXX\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\nlocal function bt_cb(state)\n log.info(\"bt\", state)\nend\nsys.unsubscribe(\"BT_READY\", bt_cb)\n", "prefix": "sys.unsubscribe"}, "sys.run": {"body": "sys.run()", "description": "sys.run() - sys\u5e93\u4e3b\u5faa\u73af\u65b9\u6cd5,\u4ec5\u5141\u8bb8\u5728main.lua\u7684\u672b\u5c3e\u8c03\u7528\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c. \u8fd9\u4e2a\u65b9\u6cd5\u51e0\u4e4e\u4e0d\u53ef\u80fd\u8fd4\u56de.\n\u4f8b\u5b50\uff1a\n-- \u603b\u662fmain.lua\u7684\u7ed3\u5c3e\u4e00\u53e5,\u5c06\u6765\u4e5f\u8bb8\u4f1a\u7b80\u5316\u6389\nsys.run()\n-- \u4e4b\u540e\u7684\u4ee3\u7801\u4e0d\u4f1a\u88ab\u6267\u884c\n", "prefix": "sys.run"}, "sysplus.waitMsg": {"body": "sysplus.waitMsg(${1:taskName},${2:target},${3:timeout})", "description": "sysplus.waitMsg(taskName, target, timeout) - \u7b49\u5f85\u63a5\u6536\u4e00\u4e2a\u76ee\u6807\u6d88\u606f\n\u4f20\u5165\u503c\uff1a\nstring \u4efb\u52a1\u540d\u79f0\uff0c\u7528\u4e8e\u5524\u9192\u4efb\u52a1\u7684id\nstring \u76ee\u6807\u6d88\u606f\uff0c\u5982\u679c\u4e3anil\uff0c\u5219\u8868\u793a\u63a5\u6536\u5230\u4efb\u610f\u6d88\u606f\u90fd\u4f1a\u9000\u51fa\nint \u8d85\u65f6\u65f6\u95f4\uff0c\u5982\u679c\u4e3anil\uff0c\u5219\u8868\u793a\u65e0\u8d85\u65f6\uff0c\u6c38\u8fdc\u7b49\u5f85\n\u8fd4\u56de\u503c\uff1a\ntable \u6210\u529f\u8fd4\u56detable\u578b\u7684msg\uff0c\u8d85\u65f6\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- \u7b49\u5f85\u4efb\u52a1\nsysplus.waitMsg('a', 'b', 1000)\n-- \u6ce8\u610f, \u672c\u51fd\u6570\u4f1a\u81ea\u52a8\u6ce8\u518c\u6210\u5168\u5c40\u51fd\u6570 sys_wait\n", "prefix": "sysplus.waitMsg"}, "sysplus.sendMsg": {"body": "sysplus.sendMsg(${1:taskName},${2:target},${3:arg2},${4:arg3},${5:arg4})", "description": "sysplus.sendMsg(taskName, target, arg2, arg3, arg4) - \u5411\u76ee\u6807\u4efb\u52a1\u53d1\u9001\u4e00\u4e2a\u6d88\u606f\n\u4f20\u5165\u503c\uff1a\nstring \u4efb\u52a1\u540d\u79f0\uff0c\u7528\u4e8e\u5524\u9192\u4efb\u52a1\u7684id\nany \u6d88\u606f\u4e2d\u7684\u53c2\u65701\uff0c\u540c\u65f6\u4e5f\u662fwaitMsg\u91cc\u7684target\nany \u6d88\u606f\u4e2d\u7684\u53c2\u65702\nany \u6d88\u606f\u4e2d\u7684\u53c2\u65703\nany \u6d88\u606f\u4e2d\u7684\u53c2\u65704\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue, \u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- \u5411\u4efb\u52a1a,\u76ee\u6807b\u53d1\u9001\u6d88\u606f\nsysplus.sendMsg('a', 'b')\n-- \u6ce8\u610f, \u672c\u51fd\u6570\u4f1a\u81ea\u52a8\u6ce8\u518c\u6210\u5168\u5c40\u51fd\u6570 sys_send\n", "prefix": "sysplus.sendMsg"}, "sysplus.taskInitEx": {"body": "sysplus.taskInitEx(${1:fun},${2:taskName},${3:cbFun},${4:...})", "description": "sysplus.taskInitEx(fun, taskName, cbFun, ...) - \u521b\u5efa\u4e00\u4e2a\u4efb\u52a1\u7ebf\u7a0b,\u5728\u6a21\u5757\u6700\u672b\u884c\u8c03\u7528\u8be5\u51fd\u6570\u5e76\u6ce8\u518c\u6a21\u5757\u4e2d\u7684\u4efb\u52a1\u51fd\u6570,main.lua\u5bfc\u5165\u8be5\u6a21\u5757\u5373\u53ef\n\u4f20\u5165\u503c\uff1a\nfunction \u4efb\u52a1\u51fd\u6570\u540d,\u7528\u4e8eresume\u5524\u9192\u65f6\u8c03\u7528\nstring \u4efb\u52a1\u540d\u79f0,\u7528\u4e8e\u5524\u9192\u4efb\u52a1\u7684id\nfunction \u63a5\u6536\u5230\u975e\u76ee\u6807\u6d88\u606f\u65f6\u7684\u56de\u8c03\u51fd\u6570\nany ... \u4efb\u52a1\u51fd\u6570fun\u7684\u53ef\u53d8\u53c2\u6570\n\u8fd4\u56de\u503c\uff1a\nnumber \u8fd4\u56de\u8be5\u4efb\u52a1\u7684\u7ebf\u7a0b\u53f7\n\u4f8b\u5b50\uff1a\nsysplus.taskInitEx(task1,'a',callback)\n", "prefix": "sysplus.taskInitEx"}, "sysplus.taskDel": {"body": "sysplus.taskDel(${1:taskName})", "description": "sysplus.taskDel(taskName) - \u5220\u9664\u7531taskInitEx\u521b\u5efa\u7684\u4efb\u52a1\u7ebf\u7a0b\n\u4f20\u5165\u503c\uff1a\nstring \u4efb\u52a1\u540d\u79f0,\u7528\u4e8e\u5524\u9192\u4efb\u52a1\u7684id\n\u4f8b\u5b50\uff1a\nsysplus.taskDel('a')\n", "prefix": "sysplus.taskDel"}, "sysplus.cleanMsg": {"body": "sysplus.cleanMsg(${1:taskName})", "description": "sysplus.cleanMsg(taskName) - \u6e05\u9664\u6307\u5b9atask\u7684\u6d88\u606f\u961f\u5217\n\u4f20\u5165\u503c\uff1a\nstring \u4efb\u52a1\u540d\u79f0\n\u4f8b\u5b50\uff1a\nsysplus.cleanMsg('a')\n", "prefix": "sysplus.cleanMsg"}, "timer.mdelay": {"body": "timer.mdelay(${1:timeout})", "description": "timer.mdelay(timeout) - \u786c\u963b\u585e\u6307\u5b9a\u65f6\u957f\n\u4f20\u5165\u503c\uff1a\nint \u963b\u585e\u65f6\u957f,\u5355\u4f4dms, \u6700\u9ad81024ms, \u5b9e\u9645\u4f7f\u7528\u5f3a\u70c8\u5efa\u8bae\u4e0d\u8981\u8d85\u8fc7200ms\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n-- \u671f\u95f4\u6ca1\u6709\u4efb\u4f55luat\u4ee3\u7801\u4f1a\u6267\u884c,\u5305\u62ec\u5e95\u5c42\u6d88\u606f\u5904\u7406\u673a\u5236\n-- \u672c\u65b9\u6cd5\u901a\u5e38\u4e0d\u4f1a\u4f7f\u7528,\u9664\u975e\u4f60\u5f88\u6e05\u695a\u4f1a\u53d1\u751f\u4ec0\u4e48\ntimer.mdelay(10)\n", "prefix": "timer.mdelay"}, "timer.udelay": {"body": "timer.udelay(${1:timeout})", "description": "timer.udelay(timeout) - \u786c\u963b\u585e\u6307\u5b9a\u65f6\u957f\u4f46us\u7ea7\u522b,\u4e0d\u4f1a\u5f88\u7cbe\u51c6\n\u4f20\u5165\u503c\uff1a\nint \u963b\u585e\u65f6\u957f,\u5355\u4f4dus, \u6700\u59273000us\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n-- \u672c\u65b9\u6cd5\u901a\u5e38\u4e0d\u4f1a\u4f7f\u7528,\u9664\u975e\u4f60\u5f88\u6e05\u695a\u4f1a\u53d1\u751f\u4ec0\u4e48\n-- \u672cAPI\u5728 2023.05.18 \u6dfb\u52a0\ntimer.udelay(10)\n-- \u5b9e\u9645\u963b\u585e\u65f6\u957f\u662f\u6709\u6ce2\u52a8\u7684\n", "prefix": "timer.udelay"}, "touchkey.setup": {"body": "touchkey.setup(${1:id},${2:scan_period},${3:window},${4:threshold})", "description": "touchkey.setup(id, scan_period, window, threshold) - \u914d\u7f6e\u89e6\u6478\u6309\u952e\n\u4f20\u5165\u503c\uff1a\nint \u4f20\u611f\u5668id,\u8bf7\u67e5\u9605\u786c\u4ef6\u6587\u6863, \u4f8b\u5982air101/air103\u652f\u6301 1~15, \u4f8b\u5982PA7\u5bf9\u5e94touch id=1\nint \u626b\u63cf\u95f4\u9694,\u8303\u56f41 ~ 0x3F, \u5355\u4f4d16ms,\u53ef\u9009\nint \u626b\u63cf\u7a97\u53e3,\u8303\u56f42-7, \u53ef\u9009\nint \u9600\u503c, \u8303\u56f40-127, \u53ef\u9009\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue, \u5931\u8d25\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\ntouchkey.setup(1)\nsys.subscribe(\"TOUCHKEY_INC\", function(id, count)\n -- \u4f20\u611f\u5668id\n -- \u8ba1\u6570\u5668,\u89e6\u6478\u6b21\u6570\u7edf\u8ba1\n log.info(\"touchkey\", id, count)\nend)\n", "prefix": "touchkey.setup"}, "touchkey.close": {"body": "touchkey.close(${1:id})", "description": "touchkey.close(id) - \u5173\u95ed\u521d\u59cb\u89e6\u6478\u6309\u952e\n\u4f20\u5165\u503c\uff1a\nint \u4f20\u611f\u5668id,\u8bf7\u67e5\u9605\u786c\u4ef6\u6587\u6863\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n-- \u4e0d\u592a\u53ef\u80fd\u9700\u8981\u5173\u6389\u7684\u6837\u5b50\ntouchkey.close(1)\n", "prefix": "touchkey.close"}, "u8g2.begin": {"body": "u8g2.begin(${1:conf})", "description": "u8g2.begin(conf) - u8g2\u663e\u793a\u5c4f\u521d\u59cb\u5316\n\u4f20\u5165\u503c\uff1a\ntable conf \u914d\u7f6e\u4fe1\u606f ic:\u652f\u6301 custom(\u81ea\u5b9a\u4e49\u547d\u4ee4) ssd1306(\u9ed8\u8ba4) ssd1309 ssd1322 sh1106 sh1107 sh1108 st7567 uc1701 ssd1306_128x32, direction:\u65b9\u5411,\u53ef\u90090 90 180 270 \u9ed8\u8ba40 mode:\u6a21\u5f0f,\u53ef\u9009i2c_sw:\u8f6f\u4ef6i2c i2c_hw:\u786c\u4ef6i2c spi_hw_4pin:\u786c\u4ef6spi i2c_id:\u786c\u4ef6i2c\u65f6\u6709\u6548 i2c_scl=1\u3001i2c_sda:\u8f6f\u4ef6i2c\u65f6\u6709\u6548 spi_id\u3001spi_res\u3001spi_dc\u3001spi_cs:\u786c\u4ef6spi\u65f6\u751f\u6548\n\u8fd4\u56de\u503c\uff1a\nint \u6b63\u5e38\u521d\u59cb\u53161,\u5df2\u7ecf\u521d\u59cb\u5316\u8fc72,\u5185\u5b58\u4e0d\u591f3,\u521d\u59cb\u5316\u5931\u8d25\u8fd4\u56de4\n\u4f8b\u5b50\uff1a\n-- \u521d\u59cb\u5316\u786c\u4ef6i2c\u7684ssd1306\nu8g2.begin({ic = \"ssd1306\",direction = 0,mode=\"i2c_hw\",i2c_id=0}) -- direction \u53ef\u90090 90 180 270\n-- \u521d\u59cb\u5316\u786c\u4ef6spi\u7684ssd1306\nu8g2.begin({ic = \"ssd1306\",direction = 0,mode=\"spi_hw_4pin\",spi_id=0,spi_res=pin.PB03,spi_dc=pin.PB01,spi_cs=pin.PB04}) -- direction \u53ef\u90090 90 180 270\n-- \u521d\u59cb\u5316\u8f6f\u4ef6i2c\u7684ssd1306\nu8g2.begin({ic = \"ssd1306\",direction = 0,mode=\"i2c_sw\", i2c_scl=1, i2c_sda=4}) -- \u901a\u8fc7PA1 SCL / PA4 SDA\u6a21\u62df\n\n", "prefix": "u8g2.begin"}, "u8g2.close": {"body": "u8g2.close()", "description": "u8g2.close() - \u5173\u95ed\u663e\u793a\u5c4f\n\u4f8b\u5b50\uff1a\n-- \u5173\u95eddisp,\u518d\u6b21\u4f7f\u7528disp\u76f8\u5173API\u7684\u8bdd,\u9700\u8981\u91cd\u65b0\u521d\u59cb\u5316\nu8g2.close()\n", "prefix": "u8g2.close"}, "u8g2.ClearBuffer": {"body": "u8g2.ClearBuffer()", "description": "u8g2.ClearBuffer() - \u6e05\u5c4f\uff0c\u6e05\u9664\u5185\u5b58\u5e27\u7f13\u51b2\u533a\u4e2d\u7684\u6240\u6709\u50cf\u7d20\n\u4f8b\u5b50\uff1a\n-- \u6e05\u5c4f\nu8g2.ClearBuffer()\n", "prefix": "u8g2.ClearBuffer"}, "u8g2.SendBuffer": {"body": "u8g2.SendBuffer()", "description": "u8g2.SendBuffer() - \u5c06\u6570\u636e\u66f4\u65b0\u5230\u5c4f\u5e55\uff0c\u5c06\u5b58\u50a8\u5668\u5e27\u7f13\u51b2\u533a\u7684\u5185\u5bb9\u53d1\u9001\u5230\u663e\u793a\u5668\n\u4f8b\u5b50\uff1a\n-- \u628a\u663e\u793a\u6570\u636e\u66f4\u65b0\u5230\u5c4f\u5e55\nu8g2.SendBuffer()\n", "prefix": "u8g2.SendBuffer"}, "u8g2.DrawUTF8": {"body": "u8g2.DrawUTF8(${1:str},${2:x},${3:y})", "description": "u8g2.DrawUTF8(str, x, y) - \u5728\u663e\u793a\u5c4f\u4e0a\u753b\u4e00\u6bb5\u6587\u5b57\uff0c\u5728\u663e\u793a\u5c4f\u4e0a\u753b\u4e00\u6bb5\u6587\u5b57,\u8981\u8c03\u7528u8g2.SendBuffer()\u624d\u4f1a\u66f4\u65b0\u5230\u5c4f\u5e55\n\u4f20\u5165\u503c\uff1a\nstring \u6587\u4ef6\u5185\u5bb9\nint \u6a2a\u5750\u6807\nint \u7ad6\u5750\u6807\n\u4f8b\u5b50\uff1a\nu8g2.DrawUTF8(\"wifi is ready\", 10, 20)\n", "prefix": "u8g2.DrawUTF8"}, "u8g2.DrawButtonUTF8": {"body": "u8g2.DrawButtonUTF8(${1:str},${2:x},${3:y},${4:flags},${5:w},${6:h},${7:v},${8:str})", "description": "u8g2.DrawButtonUTF8(str, x, y, flags, w, h, v, str) - \u5728\u63d0\u4f9b\u7684\u6587\u672c\u5468\u56f4\u753b\u4e00\u4e2a\u6846\u3002\u8fd9\u4e0e DrawUTF8 \u7c7b\u4f3c\uff0c\u4f46\u4e3a\u6587\u672c\u6dfb\u52a0\u4e86\u4e00\u4e9b\u88c5\u9970\u3002,\u8981\u8c03\u7528u8g2.SendBuffer()\u624d\u4f1a\u66f4\u65b0\u5230\u5c4f\u5e55\n\u4f20\u5165\u503c\uff1a\nstring \u6587\u4ef6\u5185\u5bb9\nint \u6a2a\u5750\u6807\nint \u7ad6\u5750\u6807\nint \u6807\u5fd7 \u591a\u4e2a\u6807\u5fd7\u53ef\u4ee5\u4e0e\u201c\u6216\u201d\u8fd0\u7b97\u7b26\u4e00\u8d77\u4f7f\u7528\u3002\nint \u6587\u672c\u7684\u6700\u5c0f\u5bbd\u5ea6\u3002\u5982\u679c\u4e3a0\uff08\u6216\u4f4e\u4e8e\u6587\u672c\u5bbd\u5ea6\uff09\uff0c\u5219\u6587\u672c\u5bbd\u5ea6\u5c06\u7528\u4e8e\u6846\u67b6\u3002\nint \u6587\u672c\u524d\u540e\u7684\u989d\u5916\u7a7a\u95f4\u3002\nint \u6587\u672c\u4e0a\u4e0b\u7684\u989d\u5916\u7a7a\u95f4\u3002\n\u4f8b\u5b50\uff1a\nu8g2.DrawButtonUTF8(\"str\", 10, 20,u8g2.BTN_BW2,0,2,2)\n", "prefix": "u8g2.DrawButtonUTF8"}, "u8g2.SetFontMode": {"body": "u8g2.SetFontMode(${1:mode})", "description": "u8g2.SetFontMode(mode) - \u8bbe\u7f6e\u5b57\u4f53\u6a21\u5f0f\n\u4f20\u5165\u503c\uff1a\nint mode\u5b57\u4f53\u6a21\u5f0f\uff0c\u542f\u7528\uff081\uff09\u6216\u7981\u7528\uff080\uff09\u900f\u660e\u6a21\u5f0f\n\u4f8b\u5b50\uff1a\nu8g2.SetFontMode(1)\n", "prefix": "u8g2.SetFontMode"}, "u8g2.SetFont": {"body": "u8g2.SetFont(${1:font})", "description": "u8g2.SetFont(font) - \u8bbe\u7f6e\u5b57\u4f53\n\u4f20\u5165\u503c\uff1a\nuserdata font, u8g2.font_opposansm8 \u4e3a\u7eaf\u82f1\u65878\u53f7\u5b57\u4f53,\u8fd8\u6709font_opposansm10 font_opposansm12 font_opposansm16 font_opposansm18 font_opposansm20 font_opposansm22 font_opposansm24 font_opposansm32 \u53ef\u9009 u8g2.font_opposansm12_chinese \u4e3a12x12\u5168\u4e2d\u6587,\u8fd8\u6709 font_opposansm16_chinese font_opposansm24_chinese font_opposansm32_chinese \u53ef\u9009, u8g2.font_unifont_t_symbols \u4e3a\u7b26\u53f7.\n\u4f8b\u5b50\uff1a\n-- \u8bbe\u7f6e\u4e3a\u4e2d\u6587\u5b57\u4f53,\u5bf9\u4e4b\u540e\u7684drawStr\u6709\u6548\nu8g2.SetFont(u8g2.font_opposansm12)\n", "prefix": "u8g2.SetFont"}, "u8g2.GetDisplayHeight": {"body": "u8g2.GetDisplayHeight()", "description": "u8g2.GetDisplayHeight() - \u83b7\u53d6\u663e\u793a\u5c4f\u9ad8\u5ea6\n\u8fd4\u56de\u503c\uff1a\nint \u663e\u793a\u5c4f\u9ad8\u5ea6\n\u4f8b\u5b50\uff1a\nu8g2.GetDisplayHeight()\n", "prefix": "u8g2.GetDisplayHeight"}, "u8g2.GetDisplayWidth": {"body": "u8g2.GetDisplayWidth()", "description": "u8g2.GetDisplayWidth() - \u83b7\u53d6\u663e\u793a\u5c4f\u5bbd\u5ea6\n\u8fd4\u56de\u503c\uff1a\nint \u663e\u793a\u5c4f\u5bbd\u5ea6\n\u4f8b\u5b50\uff1a\nu8g2.GetDisplayWidth()\n", "prefix": "u8g2.GetDisplayWidth"}, "u8g2.SetDrawColor": {"body": "u8g2.SetDrawColor(${1:c})", "description": "u8g2.SetDrawColor(c) - \u4e3a\u6240\u6709\u7ed8\u56fe\u529f\u80fd\u5206\u914d\u7ed8\u56fe\u989c\u8272\u3002\n\u4f20\u5165\u503c\uff1a\nint c\u4e3a\u989c\u8272\u503c 0\u6ca1\u6709\u8272 1\u6709\u8272 2\u4e0e\u5e95\u8272xor\n\u4f8b\u5b50\uff1a\nu8g2.SetDrawColor(0)\n", "prefix": "u8g2.SetDrawColor"}, "u8g2.DrawPixel": {"body": "u8g2.DrawPixel(${1:x},${2:y})", "description": "u8g2.DrawPixel(x,y) - \u753b\u4e00\u4e2a\u70b9.\n\u4f20\u5165\u503c\uff1a\nint X\u4f4d\u7f6e.\nint Y\u4f4d\u7f6e.\n\u4f8b\u5b50\uff1a\nu8g2.DrawPixel(20, 5)\n", "prefix": "u8g2.DrawPixel"}, "u8g2.DrawLine": {"body": "u8g2.DrawLine(${1:x0},${2:y0},${3:x1},${4:y1})", "description": "u8g2.DrawLine(x0,y0,x1,y1) - \u5728\u4e24\u70b9\u4e4b\u95f4\u753b\u4e00\u6761\u7ebf.\n\u4f20\u5165\u503c\uff1a\nint \u7b2c\u4e00\u4e2a\u70b9\u7684X\u4f4d\u7f6e.\nint \u7b2c\u4e00\u4e2a\u70b9\u7684Y\u4f4d\u7f6e.\nint \u7b2c\u4e8c\u4e2a\u70b9\u7684X\u4f4d\u7f6e.\nint \u7b2c\u4e8c\u4e2a\u70b9\u7684Y\u4f4d\u7f6e.\n\u4f8b\u5b50\uff1a\nu8g2.DrawLine(20, 5, 5, 32)\n", "prefix": "u8g2.DrawLine"}, "u8g2.DrawCircle": {"body": "u8g2.DrawCircle(${1:x0},${2:y0},${3:rad},${4:opt})", "description": "u8g2.DrawCircle(x0,y0,rad,opt) - \u5728x,y\u4f4d\u7f6e\u753b\u4e00\u4e2a\u534a\u5f84\u4e3arad\u7684\u7a7a\u5fc3\u5706.\n\u4f20\u5165\u503c\uff1a\nint \u5706\u5fc3\u4f4d\u7f6e\nint \u5706\u5fc3\u4f4d\u7f6e\nint \u5706\u534a\u5f84.\nint \u9009\u62e9\u5706\u7684\u90e8\u5206\u6216\u5168\u90e8. \u9ed8\u8ba4\u5168\u753b \u53ef\u9009 u8g2.DRAW_UPPER_RIGHT u8g2.DRAW_UPPER_LEFT u8g2.DRAW_LOWER_LEFT u8g2.DRAW_LOWER_RIGHT u8g2.DRAW_ALL\n\u4f8b\u5b50\uff1a\nu8g2.DrawCircle(60,30,8,u8g2.DRAW_ALL)\n", "prefix": "u8g2.DrawCircle"}, "u8g2.DrawDisc": {"body": "u8g2.DrawDisc(${1:x0},${2:y0},${3:rad},${4:opt})", "description": "u8g2.DrawDisc(x0,y0,rad,opt) - \u5728x,y\u4f4d\u7f6e\u753b\u4e00\u4e2a\u534a\u5f84\u4e3arad\u7684\u5b9e\u5fc3\u5706.\n\u4f20\u5165\u503c\uff1a\nint \u5706\u5fc3\u4f4d\u7f6e\nint \u5706\u5fc3\u4f4d\u7f6e\nint \u5706\u534a\u5f84.\nint \u9009\u62e9\u5706\u7684\u90e8\u5206\u6216\u5168\u90e8. \u9ed8\u8ba4\u5168\u753b \u53ef\u9009 u8g2.DRAW_UPPER_RIGHT u8g2.DRAW_UPPER_LEFT u8g2.DRAW_LOWER_LEFT u8g2.DRAW_LOWER_RIGHT u8g2.DRAW_ALL\n\u4f8b\u5b50\uff1a\nu8g2.DrawDisc(60,30,8,u8g2.DRAW_ALL)\n", "prefix": "u8g2.DrawDisc"}, "u8g2.DrawEllipse": {"body": "u8g2.DrawEllipse(${1:x0},${2:y0},${3:rx},${4:ry},${5:opt})", "description": "u8g2.DrawEllipse(x0,y0,rx,ry,opt) - \u5728x,y\u4f4d\u7f6e\u753b\u4e00\u4e2a\u534a\u5f84\u4e3arad\u7684\u7a7a\u5fc3\u692d\u5706.\n\u4f20\u5165\u503c\uff1a\nint \u5706\u5fc3\u4f4d\u7f6e\nint \u5706\u5fc3\u4f4d\u7f6e\nint \u692d\u5706\u5927\u5c0f\nint \u692d\u5706\u5927\u5c0f\nint \u9009\u62e9\u5706\u7684\u90e8\u5206\u6216\u5168\u90e8. \u9ed8\u8ba4\u5168\u753b \u53ef\u9009 u8g2.DRAW_UPPER_RIGHT u8g2.DRAW_UPPER_LEFT u8g2.DRAW_LOWER_LEFT u8g2.DRAW_LOWER_RIGHT u8g2.DRAW_ALL\n\u4f8b\u5b50\uff1a\nu8g2.DrawEllipse(60,30,8,u8g2.DRAW_ALL)\n", "prefix": "u8g2.DrawEllipse"}, "u8g2.DrawFilledEllipse": {"body": "u8g2.DrawFilledEllipse(${1:x0},${2:y0},${3:rx},${4:ry},${5:opt})", "description": "u8g2.DrawFilledEllipse(x0,y0,rx,ry,opt) - \u5728x,y\u4f4d\u7f6e\u753b\u4e00\u4e2a\u534a\u5f84\u4e3arad\u7684\u5b9e\u5fc3\u692d\u5706.\n\u4f20\u5165\u503c\uff1a\nint \u5706\u5fc3\u4f4d\u7f6e\nint \u5706\u5fc3\u4f4d\u7f6e\nint \u692d\u5706\u5927\u5c0f\nint \u692d\u5706\u5927\u5c0f\nint \u9009\u62e9\u5706\u7684\u90e8\u5206\u6216\u5168\u90e8. \u9ed8\u8ba4\u5168\u753b \u53ef\u9009 u8g2.DRAW_UPPER_RIGHT u8g2.DRAW_UPPER_LEFT u8g2.DRAW_LOWER_LEFT u8g2.DRAW_LOWER_RIGHT u8g2.DRAW_ALL\n\u4f8b\u5b50\uff1a\nu8g2.DrawFilledEllipse(60,30,8,15)\n", "prefix": "u8g2.DrawFilledEllipse"}, "u8g2.DrawBox": {"body": "u8g2.DrawBox(${1:x},${2:y},${3:w},${4:h})", "description": "u8g2.DrawBox(x,y,w,h) - \u4ecex / y\u4f4d\u7f6e\uff08\u5de6\u4e0a\u8fb9\u7f18\uff09\u5f00\u59cb\u7ed8\u5236\u4e00\u4e2a\u6846\uff08\u586b\u5145\u7684\u6846\uff09.\n\u4f20\u5165\u503c\uff1a\nint \u5de6\u4e0a\u8fb9\u7f18\u7684X\u4f4d\u7f6e\nint \u5de6\u4e0a\u8fb9\u7f18\u7684Y\u4f4d\u7f6e\nint \u76d2\u5b50\u7684\u5bbd\u5ea6\nint \u76d2\u5b50\u7684\u9ad8\u5ea6\n\u4f8b\u5b50\uff1a\nu8g2.DrawBox(3,7,25,15)\n", "prefix": "u8g2.DrawBox"}, "u8g2.DrawFrame": {"body": "u8g2.DrawFrame(${1:x},${2:y},${3:w},${4:h})", "description": "u8g2.DrawFrame(x,y,w,h) - \u4ecex / y\u4f4d\u7f6e\uff08\u5de6\u4e0a\u8fb9\u7f18\uff09\u5f00\u59cb\u7ed8\u5236\u4e00\u4e2a\u6846\uff08\u7a7a\u6846\uff09.\n\u4f20\u5165\u503c\uff1a\nint \u5de6\u4e0a\u8fb9\u7f18\u7684X\u4f4d\u7f6e\nint \u5de6\u4e0a\u8fb9\u7f18\u7684Y\u4f4d\u7f6e\nint \u76d2\u5b50\u7684\u5bbd\u5ea6\nint \u76d2\u5b50\u7684\u9ad8\u5ea6\n\u4f8b\u5b50\uff1a\nu8g2.DrawFrame(3,7,25,15)\n", "prefix": "u8g2.DrawFrame"}, "u8g2.DrawRBox": {"body": "u8g2.DrawRBox(${1:x},${2:y},${3:w},${4:h},${5:r})", "description": "u8g2.DrawRBox(x,y,w,h,r) - \u7ed8\u5236\u4e00\u4e2a\u4ecex / y\u4f4d\u7f6e\uff08\u5de6\u4e0a\u8fb9\u7f18\uff09\u5f00\u59cb\u5177\u6709\u5706\u5f62\u8fb9\u7f18\u7684\u586b\u5145\u6846/\u6846\u67b6.\n\u4f20\u5165\u503c\uff1a\nint \u5de6\u4e0a\u8fb9\u7f18\u7684X\u4f4d\u7f6e\nint \u5de6\u4e0a\u8fb9\u7f18\u7684Y\u4f4d\u7f6e\nint \u76d2\u5b50\u7684\u5bbd\u5ea6\nint \u76d2\u5b50\u7684\u9ad8\u5ea6\nint \u56db\u4e2a\u8fb9\u7f18\u7684\u534a\u5f84\n\u4f8b\u5b50\uff1a\nu8g2.DrawRBox(3,7,25,15)\n", "prefix": "u8g2.DrawRBox"}, "u8g2.DrawRFrame": {"body": "u8g2.DrawRFrame(${1:x},${2:y},${3:w},${4:h},${5:r})", "description": "u8g2.DrawRFrame(x,y,w,h,r) - \u7ed8\u5236\u4e00\u4e2a\u4ecex / y\u4f4d\u7f6e\uff08\u5de6\u4e0a\u8fb9\u7f18\uff09\u5f00\u59cb\u5177\u6709\u5706\u5f62\u8fb9\u7f18\u7684\u7a7a\u6846/\u6846\u67b6.\n\u4f20\u5165\u503c\uff1a\nint \u5de6\u4e0a\u8fb9\u7f18\u7684X\u4f4d\u7f6e\nint \u5de6\u4e0a\u8fb9\u7f18\u7684Y\u4f4d\u7f6e\nint \u76d2\u5b50\u7684\u5bbd\u5ea6\nint \u76d2\u5b50\u7684\u9ad8\u5ea6\nint \u56db\u4e2a\u8fb9\u7f18\u7684\u534a\u5f84\n\u4f8b\u5b50\uff1a\nu8g2.DrawRFrame(3,7,25,15)\n", "prefix": "u8g2.DrawRFrame"}, "u8g2.DrawGlyph": {"body": "u8g2.DrawGlyph(${1:x},${2:y},${3:encoding})", "description": "u8g2.DrawGlyph(x,y,encoding) - \u7ed8\u5236\u4e00\u4e2a\u56fe\u5f62\u5b57\u7b26\u3002\u5b57\u7b26\u653e\u7f6e\u5728\u6307\u5b9a\u7684\u50cf\u7d20\u4f4d\u7f6ex\u548cy.\n\u4f20\u5165\u503c\uff1a\nint \u5b57\u7b26\u5728\u663e\u793a\u5c4f\u4e0a\u7684\u4f4d\u7f6e\nint \u5b57\u7b26\u5728\u663e\u793a\u5c4f\u4e0a\u7684\u4f4d\u7f6e\nint \u5b57\u7b26\u7684Unicode\u503c\n\u4f8b\u5b50\uff1a\nu8g2.SetFont(u8g2_font_unifont_t_symbols)\nu8g2.DrawGlyph(5, 20, 0x2603)\t-- dec 9731/hex 2603 Snowman\n", "prefix": "u8g2.DrawGlyph"}, "u8g2.DrawTriangle": {"body": "u8g2.DrawTriangle(${1:x0},${2:y0},${3:x1},${4:y1},${5:x2},${6:y2})", "description": "u8g2.DrawTriangle(x0,y0,x1,y1,x2,y2) - \u7ed8\u5236\u4e00\u4e2a\u4e09\u89d2\u5f62\uff08\u5b9e\u5fc3\u591a\u8fb9\u5f62\uff09.\n\u4f20\u5165\u503c\uff1a\nint \u70b90X\u4f4d\u7f6e\nint \u70b90Y\u4f4d\u7f6e\nint \u70b91X\u4f4d\u7f6e\nint \u70b91Y\u4f4d\u7f6e\nint \u70b92X\u4f4d\u7f6e\nint \u70b92Y\u4f4d\u7f6e\n\u4f8b\u5b50\uff1a\nu8g2.DrawTriangle(20,5, 27,50, 5,32)\n", "prefix": "u8g2.DrawTriangle"}, "u8g2.SetBitmapMode": {"body": "u8g2.SetBitmapMode(${1:mode})", "description": "u8g2.SetBitmapMode(mode) - \u5b9a\u4e49\u4f4d\u56fe\u51fd\u6570\u662f\u5426\u5c06\u5199\u5165\u80cc\u666f\u8272\n\u4f20\u5165\u503c\uff1a\nint mode\u5b57\u4f53\u6a21\u5f0f\uff0c\u542f\u7528\uff081\uff09\u6216\u7981\u7528\uff080\uff09\u900f\u660e\u6a21\u5f0f\n\u4f8b\u5b50\uff1a\nu8g2.SetBitmapMode(1)\n", "prefix": "u8g2.SetBitmapMode"}, "u8g2.DrawXBM": {"body": "u8g2.DrawXBM(${1:x},${2:y},${3:w},${4:h},${5:data})", "description": "u8g2.DrawXBM(x, y, w, h, data) - \u7ed8\u5236\u4f4d\u56fe\n\u4f20\u5165\u503c\uff1a\nint X\u5750\u6807\nint y\u5750\u6807\nint \u4f4d\u56fe\u5bbd\nint \u4f4d\u56fe\u9ad8\nint \u4f4d\u56fe\u6570\u636e,\u6bcf\u4e00\u4f4d\u4ee3\u8868\u4e00\u4e2a\u50cf\u7d20\n\u4f8b\u5b50\uff1a\n-- \u53d6\u6a21\u4f7f\u7528PCtoLCD2002\u8f6f\u4ef6\u5373\u53ef\n-- \u5728(0,0)\u4e3a\u5de6\u4e0a\u89d2,\u7ed8\u5236 16x16 \"\u4eca\" \u7684\u4f4d\u56fe\nu8g2.DrawXBM(0, 0, 16,16, string.char(\n 0x80,0x00,0x80,0x00,0x40,0x01,0x20,0x02,0x10,0x04,0x48,0x08,0x84,0x10,0x83,0x60,\n 0x00,0x00,0xF8,0x0F,0x00,0x08,0x00,0x04,0x00,0x04,0x00,0x02,0x00,0x01,0x80,0x00\n))\n", "prefix": "u8g2.DrawXBM"}, "u8g2.DrawDrcode": {"body": "u8g2.DrawDrcode(${1:x},${2:y},${3:str},${4:size})", "description": "u8g2.DrawDrcode(x, y, str, size) - \u7f13\u51b2\u533a\u7ed8\u5236QRCode\n\u4f20\u5165\u503c\uff1a\nint x\u5750\u6807\nint y\u5750\u6807\nstring \u4e8c\u7ef4\u7801\u7684\u5185\u5bb9\nint \u663e\u793a\u5927\u5c0f (\u6ce8\u610f:\u4e8c\u7ef4\u7801\u751f\u6210\u5927\u5c0f\u4e0e\u8981\u663e\u793a\u5185\u5bb9\u548c\u7ea0\u9519\u7b49\u7ea7\u6709\u5173,\u751f\u6210\u7248\u672c\u4e3a1-40(\u5bf9\u5e94 21x21 - 177x177)\u7684\u4e0d\u5b9a\u5927\u5c0f,\u5982\u679c\u548c\u8bbe\u7f6e\u5927\u5c0f\u4e0d\u540c\u4f1a\u81ea\u52a8\u5728\u6307\u5b9a\u7684\u533a\u57df\u4e2d\u95f4\u663e\u793a\u4e8c\u7ef4\u7801,\u5982\u4e8c\u7ef4\u7801\u672a\u663e\u793a\u8bf7\u67e5\u770b\u65e5\u5fd7\u63d0\u793a)\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n", "prefix": "u8g2.DrawDrcode"}, "u8g2.SetContrast": {"body": "u8g2.SetContrast(${1:contrast})", "description": "u8g2.SetContrast(contrast) - \u8c03\u6574\u5c4f\u5e55\u5bf9\u6bd4\u5ea6\n\u4f20\u5165\u503c\uff1a\nint \u5bf9\u6bd4\u5ea6\uff08\u53d6\u503c\u8303\u56f4\u4e0eIC\u6709\u5173\uff0c\u5982st7567\u4e3a0-63\uff09\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n", "prefix": "u8g2.SetContrast"}, "u8g2.drawGtfontGb2312": {"body": "u8g2.drawGtfontGb2312(${1:str},${2:size},${3:x},${4:y})", "description": "u8g2.drawGtfontGb2312(str,size,x,y) - \u4f7f\u7528gtfont\u663e\u793agb2312\u5b57\u7b26\u4e32\n\u4f20\u5165\u503c\uff1a\nstring str \u663e\u793a\u5b57\u7b26\u4e32\nint size \u5b57\u4f53\u5927\u5c0f (\u652f\u630116-192\u53f7\u5927\u5c0f\u5b57\u4f53)\nint x \u6a2a\u5750\u6807\nint y \u7ad6\u5750\u6807\n\u4f8b\u5b50\uff1a\nu8g2.drawGtfontGb2312(\"\u554a\u554a\u554a\",32,0,0)\n", "prefix": "u8g2.drawGtfontGb2312"}, "u8g2.drawGtfontUtf8": {"body": "u8g2.drawGtfontUtf8(${1:str},${2:size},${3:x},${4:y})", "description": "u8g2.drawGtfontUtf8(str,size,x,y) - \u4f7f\u7528gtfont\u663e\u793aUTF8\u5b57\u7b26\u4e32\n\u4f20\u5165\u503c\uff1a\nstring str \u663e\u793a\u5b57\u7b26\u4e32\nint size \u5b57\u4f53\u5927\u5c0f (\u652f\u630116-192\u53f7\u5927\u5c0f\u5b57\u4f53)\nint x \u6a2a\u5750\u6807\nint y \u7ad6\u5750\u6807\n\u4f8b\u5b50\uff1a\nu8g2.drawGtfontUtf8(\"\u554a\u554a\u554a\",32,0,0)\n", "prefix": "u8g2.drawGtfontUtf8"}, "u8g2.CopyBuffer": {"body": "u8g2.CopyBuffer(${1:buff})", "description": "u8g2.CopyBuffer(buff) - \u83b7\u53d6\u5e95\u5c42\u56fe\u50cf\u7f13\u51b2\u533a\n\u4f20\u5165\u503c\uff1a\nuserdata zbuff\u5b9e\u4f8b,\u7a7a\u95f4\u8981\u5927\u4e8e\u7b49\u4e8e\u5e95\u5c42buff\u7684\u5927\u5c0f\n\u8fd4\u56de\u503c\uff1a\nint \u6210\u529f\u8fd4\u56debuff\u5927\u5c0f,\u5426\u5219\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\n-- \u672c\u51fd\u6570\u5728u8g2\u521d\u59cb\u5316\u4e4b\u540e\u624d\u80fd\u8c03\u7528\n\n-- \u83b7\u53d6\u5927\u5c0f\nlocal sz = u8g2.CopyBuffer()\n\n-- \u62f7\u8d1d\u5e95\u5c42buff\nlocal buff = zbuff.create(sz)\nu8g2.CopyBuffer(buff)\n\n", "prefix": "u8g2.CopyBuffer"}, "u8g2.SetPowerSave": {"body": "u8g2.SetPowerSave(${1:is_enable})", "description": "u8g2.SetPowerSave(is_enable) - \u8bbe\u7f6e\u7701\u7535\u6a21\u5f0f\n\u4f20\u5165\u503c\uff1a\nboolean \u542f\u7528\u4e0e\u5426. true \u542f\u7528, false\u7981\u7528\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n-- \u672cAPI\u4e8e2023.11.02\u65b0\u589e\n-- \u5f00\u542f\u7701\u7535\nu8g2.SetPowerSave(true)\n-- \u5173\u95ed\u7701\u7535\nu8g2.SetPowerSave(false)\n", "prefix": "u8g2.SetPowerSave"}, "uart.setup": {"body": "uart.setup(${1:id},${2:baud_rate},${3:data_bits},${4:stop_bits},${5:partiy},${6:bit_order},${7:buff_size},${8:rs485_gpio},${9:rs485_level},${10:rs485_delay})", "description": "uart.setup(id, baud_rate, data_bits, stop_bits, partiy, bit_order, buff_size, rs485_gpio, rs485_level, rs485_delay) - \u914d\u7f6e\u4e32\u53e3\u53c2\u6570\n\u4f20\u5165\u503c\uff1a\nint \u4e32\u53e3id, uart0\u51990, uart1\u51991, \u5982\u6b64\u7c7b\u63a8, \u6700\u5927\u503c\u53d6\u51b3\u4e8e\u8bbe\u5907\nint \u6ce2\u7279\u7387, \u9ed8\u8ba4115200\uff0c\u53ef\u9009\u62e9\u6ce2\u7279\u7387\u8868:{2000000,921600,460800,230400,115200,57600,38400,19200,9600,4800,2400}\nint \u6570\u636e\u4f4d\uff0c\u9ed8\u8ba4\u4e3a8, \u53ef\u9009 7/8\nint \u505c\u6b62\u4f4d\uff0c\u9ed8\u8ba4\u4e3a1, \u6839\u636e\u5b9e\u9645\u60c5\u51b5\uff0c\u53ef\u4ee5\u67090.5/1/1.5/2\u7b49\nint \u6821\u9a8c\u4f4d\uff0c\u53ef\u9009 uart.None/uart.Even/uart.Odd\nint \u5927\u5c0f\u7aef\uff0c\u9ed8\u8ba4\u5c0f\u7aef uart.LSB, \u53ef\u9009 uart.MSB\nint \u7f13\u51b2\u533a\u5927\u5c0f\uff0c\u9ed8\u8ba4\u503c1024\nint 485\u6a21\u5f0f\u4e0b\u7684\u8f6c\u6362GPIO, \u9ed8\u8ba4\u503c0xffffffff\nint 485\u6a21\u5f0f\u4e0b\u7684rx\u65b9\u5411GPIO\u7684\u7535\u5e73, \u9ed8\u8ba4\u503c0\nint 485\u6a21\u5f0f\u4e0btx\u5411rx\u8f6c\u6362\u7684\u5ef6\u8fdf\u65f6\u95f4\uff0c\u9ed8\u8ba4\u503c12bit\u7684\u65f6\u95f4\uff0c\u5355\u4f4dus\n\u8fd4\u56de\u503c\uff1a\nint \u6210\u529f\u8fd4\u56de0,\u5931\u8d25\u8fd4\u56de\u5176\u4ed6\u503c\n\u4f8b\u5b50\uff1a\n-- \u6700\u5e38\u7528115200 8N1\nuart.setup(1, 115200, 8, 1, uart.NONE)\n-- \u53ef\u4ee5\u7b80\u5199\u4e3a uart.setup(1)\n\n-- 485\u81ea\u52a8\u5207\u6362, \u9009\u53d6GPIO10\u4f5c\u4e3a\u6536\u53d1\u8f6c\u6362\u811a\nuart.setup(1, 115200, 8, 1, uart.NONE, uart.LSB, 1024, 10, 0, 100)\n", "prefix": "uart.setup"}, "uart.write": {"body": "uart.write(${1:id},${2:data})", "description": "uart.write(id, data) - \u5199\u4e32\u53e3\n\u4f20\u5165\u503c\uff1a\nint \u4e32\u53e3id, uart0\u51990, uart1\u51991\nstring/zbuff \u5f85\u5199\u5165\u7684\u6570\u636e\uff0c\u5982\u679c\u662fzbuff\u4f1a\u4ece\u6307\u9488\u8d77\u59cb\u4f4d\u7f6e\u5f00\u59cb\u8bfb\nint \u53ef\u9009\uff0c\u8981\u53d1\u9001\u7684\u6570\u636e\u957f\u5ea6\uff0c\u9ed8\u8ba4\u5168\u53d1\n\u8fd4\u56de\u503c\uff1a\nint \u6210\u529f\u7684\u6570\u636e\u957f\u5ea6\n\u4f8b\u5b50\uff1a\n-- \u5199\u5165\u53ef\u89c1\u5b57\u7b26\u4e32\nuart.write(1, \"rdy\\r\\n\")\n-- \u5199\u5165\u5341\u516d\u8fdb\u5236\u7684\u6570\u636e\u4e32\nuart.write(1, string.char(0x55,0xAA,0x4B,0x03,0x86))\n", "prefix": "uart.write"}, "uart.read": {"body": "uart.read(${1:id},${2:len})", "description": "uart.read(id, len) - \u8bfb\u4e32\u53e3\n\u4f20\u5165\u503c\uff1a\nint \u4e32\u53e3id, uart0\u51990, uart1\u51991\nint \u8bfb\u53d6\u957f\u5ea6\nfile/zbuff \u53ef\u9009\uff1a\u6587\u4ef6\u53e5\u67c4\u6216zbuff\u5bf9\u8c61\n\u8fd4\u56de\u503c\uff1a\nstring \u8bfb\u53d6\u5230\u7684\u6570\u636e / \u4f20\u5165zbuff\u65f6\uff0c\u8fd4\u56de\u8bfb\u5230\u7684\u957f\u5ea6\uff0c\u5e76\u628azbuff\u6307\u9488\u540e\u79fb\n\u4f8b\u5b50\uff1a\nuart.read(1, 16)\n", "prefix": "uart.read"}, "uart.close": {"body": "uart.close(${1:id})", "description": "uart.close(id) - \u5173\u95ed\u4e32\u53e3\n\u4f20\u5165\u503c\uff1a\nint \u4e32\u53e3id, uart0\u51990, uart1\u51991\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\nuart.close(1)\n", "prefix": "uart.close"}, "uart.on": {"body": "uart.on(${1:id},${2:event},${3:func})", "description": "uart.on(id, event, func) - \u6ce8\u518c\u4e32\u53e3\u4e8b\u4ef6\u56de\u8c03\n\u4f20\u5165\u503c\uff1a\nint \u4e32\u53e3id, uart0\u51990, uart1\u51991\nstring \u4e8b\u4ef6\u540d\u79f0\nfunction \u56de\u8c03\u65b9\u6cd5\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\nuart.on(1, \"receive\", function(id, len)\n local data = uart.read(id, len)\n log.info(\"uart\", id, len, data)\nend)\n", "prefix": "uart.on"}, "uart.wait485": {"body": "uart.wait485(${1:id})", "description": "uart.wait485(id) - \u7b49\u5f85485\u6a21\u5f0f\u4e0bTX\u5b8c\u6210\uff0cmcu\u4e0d\u652f\u6301\u4e32\u53e3\u53d1\u9001\u79fb\u4f4d\u5bc4\u5b58\u5668\u7a7a\u6216\u8005\u7c7b\u4f3c\u4e2d\u65ad\u65f6\u624d\u9700\u8981\uff0c\u5728sent\u4e8b\u4ef6\u56de\u8c03\u540e\u4f7f\u7528\n\u4f20\u5165\u503c\uff1a\nint \u4e32\u53e3id, uart0\u51990, uart1\u51991\n\u8fd4\u56de\u503c\uff1a\nint \u7b49\u5f85\u4e86\u591a\u5c11\u6b21\u5faa\u73af\u624d\u7b49\u5230tx\u5b8c\u6210\uff0c\u7528\u4e8e\u7c97\u52a3\u7684\u89c2\u5bdfdelay\u65f6\u95f4\u662f\u5426\u8db3\u591f\uff0c\u8fd4\u56de\u4e0d\u4e3a0\u8bf4\u660e\u8fd8\u9700\u8981\u653e\u5927delay\n", "prefix": "uart.wait485"}, "uart.exist": {"body": "uart.exist(${1:id})", "description": "uart.exist(id) - \u68c0\u67e5\u4e32\u53e3\u53f7\u662f\u5426\u5b58\u5728\n\u4f20\u5165\u503c\uff1a\nint \u4e32\u53e3id, uart0\u51990, uart1\u51991, \u5982\u6b64\u7c7b\u63a8\n\u8fd4\u56de\u503c\uff1a\nbool \u5b58\u5728\u8fd4\u56detrue\n", "prefix": "uart.exist"}, "uart.rx": {"body": "uart.rx(${1:id},${2:buff})", "description": "uart.rx(id, buff) - buff\u5f62\u5f0f\u8bfb\u4e32\u53e3\uff0c\u4e00\u6b21\u8bfb\u51fa\u5168\u90e8\u6570\u636e\u5b58\u5165buff\u4e2d\uff0c\u5982\u679cbuff\u7a7a\u95f4\u4e0d\u591f\u4f1a\u81ea\u52a8\u6269\u5c55\uff0c\u76ee\u524dair105,air780e\u652f\u6301\u8fd9\u4e2a\u64cd\u4f5c\n\u4f20\u5165\u503c\uff1a\nint \u4e32\u53e3id, uart0\u51990, uart1\u51991\nzbuff zbuff\u5bf9\u8c61\n\u8fd4\u56de\u503c\uff1a\nint \u8fd4\u56de\u8bfb\u5230\u7684\u957f\u5ea6\uff0c\u5e76\u628azbuff\u6307\u9488\u540e\u79fb\n\u4f8b\u5b50\uff1a\nuart.rx(1, buff)\n", "prefix": "uart.rx"}, "uart.rxSize": {"body": "uart.rxSize(${1:id})", "description": "uart.rxSize(id) - \u8bfb\u4e32\u53e3Rx\u7f13\u5b58\u4e2d\u5269\u4f59\u6570\u636e\u91cf\uff0c\u76ee\u524dair105,air780e\u652f\u6301\u8fd9\u4e2a\u64cd\u4f5c\n\u4f20\u5165\u503c\uff1a\nint \u4e32\u53e3id, uart0\u51990, uart1\u51991\n\u8fd4\u56de\u503c\uff1a\nint \u8fd4\u56de\u8bfb\u5230\u7684\u957f\u5ea6\n\u4f8b\u5b50\uff1a\nlocal size = uart.rxSize(1)\n", "prefix": "uart.rxSize"}, "uart.rxClear": {"body": "uart.rxClear(${1:id})", "description": "uart.rxClear(id) - \u6e05\u9664\u4e32\u53e3Rx\u7f13\u5b58\u4e2d\u5269\u4f59\u6570\u636e\u91cf\uff0c\u76ee\u524dair105,air780e\u652f\u6301\u8fd9\u4e2a\u64cd\u4f5c\n\u4f20\u5165\u503c\uff1a\nint \u4e32\u53e3id, uart0\u51990, uart1\u51991\n\u4f8b\u5b50\uff1a\nuart.rxClear(1)\n", "prefix": "uart.rxClear"}, "uart.tx": {"body": "uart.tx(${1:id},${2:buff},${3:start},${4:len})", "description": "uart.tx(id, buff, start, len) - buff\u5f62\u5f0f\u5199\u4e32\u53e3,\u7b49\u540c\u4e8ec\u8bed\u8a00uart_tx(uart_id, &buff[start], len);\n\u4f20\u5165\u503c\uff1a\nint \u4e32\u53e3id, uart0\u51990, uart1\u51991\nzbuff \u5f85\u5199\u5165\u7684\u6570\u636e\uff0c\u5982\u679c\u662fzbuff\u4f1a\u4ece\u6307\u9488\u8d77\u59cb\u4f4d\u7f6e\u5f00\u59cb\u8bfb\nint \u53ef\u9009\uff0c\u8981\u53d1\u9001\u7684\u6570\u636e\u8d77\u59cb\u4f4d\u7f6e\uff0c\u9ed8\u8ba4\u4e3a0\nint \u53ef\u9009\uff0c\u8981\u53d1\u9001\u7684\u6570\u636e\u957f\u5ea6\uff0c\u9ed8\u8ba4\u4e3azbuff\u5185\u6709\u6548\u6570\u636e\uff0c\u6700\u5927\u503c\u4e0d\u8d85\u8fc7zbuff\u7684\u6700\u5927\u7a7a\u95f4\n\u8fd4\u56de\u503c\uff1a\nint \u6210\u529f\u7684\u6570\u636e\u957f\u5ea6\n\u4f8b\u5b50\uff1a\nuart.tx(1, buf)\n", "prefix": "uart.tx"}, "uart.createSoft": {"body": "uart.createSoft(${1:tx_pin},${2:tx_hwtimer_id},${3:rx_pin},${4:rx_hwtimer_id},${5:adjust_period})", "description": "uart.createSoft(tx_pin, tx_hwtimer_id, rx_pin, rx_hwtimer_id, adjust_period) - \u8bbe\u7f6e\u8f6f\u4ef6uart\u7684\u786c\u4ef6\u914d\u7f6e\uff0c\u53ea\u6709\u652f\u6301\u786c\u4ef6\u5b9a\u65f6\u5668\u7684SOC\u624d\u80fd\u4f7f\u7528\uff0c\u76ee\u524d\u53ea\u80fd\u8bbe\u7f6e\u4e00\u4e2a\uff0c\u6ce2\u7279\u7387\u6839\u636e\u5e73\u53f0\u7684\u8f6f\u786c\u4ef6\u914d\u7f6e\u6709\u4e0d\u540c\u7684\u6781\u9650\uff0c\u5efa\u8bae9600\uff0c\u63a5\u6536\u7f13\u5b58\u4e0d\u8d85\u8fc765535\uff0c\u4e0d\u652f\u6301MSB\uff0c\u652f\u6301485\u81ea\u52a8\u63a7\u5236\u3002\u540e\u7eed\u4ecd\u8981setup\u64cd\u4f5c\n\u4f20\u5165\u503c\uff1a\nint \u53d1\u9001\u5f15\u811a\u7f16\u53f7\nint \u53d1\u9001\u7528\u7684\u786c\u4ef6\u5b9a\u65f6\u5668ID\nint \u63a5\u6536\u5f15\u811a\u7f16\u53f7\nint \u63a5\u6536\u7528\u7684\u786c\u4ef6\u5b9a\u65f6\u5668ID\nint \u53d1\u9001\u65f6\u5e8f\u8c03\u6574\uff0c\u5355\u4f4d\u662f\u5b9a\u65f6\u5668\u65f6\u949f\u5468\u671f\uff0c\u9ed8\u8ba4\u662f0\uff0c\u9700\u8981\u6839\u636e\u793a\u6ce2\u5668\u6216\u8005\u903b\u8f91\u5206\u6790\u4eea\u8fdb\u884c\u5fae\u8c03\nint \u63a5\u6536\u65f6\u5e8f\u8c03\u6574\uff0c\u5355\u4f4d\u662f\u5b9a\u65f6\u5668\u65f6\u949f\u5468\u671f\uff0c\u9ed8\u8ba4\u662f0\uff0c\u9700\u8981\u6839\u636e\u793a\u6ce2\u5668\u6216\u8005\u903b\u8f91\u5206\u6790\u4eea\u8fdb\u884c\u5fae\u8c03\n\u8fd4\u56de\u503c\uff1a\nint \u8f6f\u4ef6uart\u7684id\uff0c\u5982\u679c\u5931\u8d25\u5219\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\n-- \u521d\u59cb\u5316\u8f6f\u4ef6uart\nlocal uart_id = uart.createSoft(21, 0, 1, 2) --air780e\u5efa\u8bae\u7528\u5b9a\u65f6\u56680\u548c2\uff0ctx_pin\u6700\u597d\u7528AGPIO\uff0c\u9632\u6b62\u4f11\u7720\u65f6\u8bef\u89e6\u53d1\u5bf9\u7aefRX\n", "prefix": "uart.createSoft"}, "uart.list": {"body": "uart.list(${1:max})", "description": "uart.list(max) - \u83b7\u53d6\u53ef\u7528\u4e32\u53e3\u53f7\u5217\u8868\uff0c\u5f53\u524d\u4ec5\u9650win32\n\u4f20\u5165\u503c\uff1a\nint \u53ef\u9009\uff0c\u9ed8\u8ba4256\uff0c\u6700\u591a\u83b7\u53d6\u591a\u5c11\u4e2a\u4e32\u53e3\n\u8fd4\u56de\u503c\uff1a\ntable \u83b7\u53d6\u5230\u7684\u53ef\u7528\u4e32\u53e3\u53f7\u5217\u8868\n", "prefix": "uart.list"}, "ufont.get": {"body": "ufont.get(${1:name})", "description": "ufont.get(name) - \u83b7\u53d6\u5b57\u4f53\n\u4f20\u5165\u503c\uff1a\nstring \u5b57\u4f53\u540d\u79f0, \u4f8b\u5982\n\u8fd4\u56de\u503c\uff1a\nuserdata \u82e5\u5b57\u4f53\u5b58\u5728,\u8fd4\u56de\u5b57\u4f53\u6307\u9488, \u5426\u5219\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\n-- TODO\n", "prefix": "ufont.get"}, "ufont.list": {"body": "ufont.list()", "description": "ufont.list() - \u8fd4\u56de\u56fa\u4ef6\u652f\u6301\u7684\u5b57\u4f53\u5217\u8868\n\u8fd4\u56de\u503c\uff1a\ntable \u5b57\u4f53\u5217\u8868\n\u4f8b\u5b50\uff1a\n-- API\u65b0\u589e\u4e8e2022-08-05\nlog.info(\"fonts\", \"u8g2\", json.encode(ufont.list()))\n", "prefix": "ufont.list"}, "usbapp.set_id": {"body": "usbapp.set_id(${1:id},${2:vid},${3:pid})", "description": "usbapp.set_id(id, vid, pid) - USB \u8bbe\u7f6eVID\u548cPID\n\u4f20\u5165\u503c\uff1a\nint \u8bbe\u5907id,\u9ed8\u8ba4\u4e3a0\nint vid \u5c0f\u7aef\u683c\u5f0f\nint pid \u5c0f\u7aef\u683c\u5f0f\n\u4f8b\u5b50\uff1a\nusbapp.set_id(0, 0x1234, 0x5678)\n", "prefix": "usbapp.set_id"}, "usbapp.hid_mode": {"body": "usbapp.hid_mode(${1:id},${2:mode},${3:buff_size})", "description": "usbapp.hid_mode(id, mode, buff_size) - USB HID\u8bbe\u5907\u6a21\u5f0f\n\u4f20\u5165\u503c\uff1a\nint \u8bbe\u5907id,\u9ed8\u8ba4\u4e3a0\nint mode\uff0c\u76ee\u524d0\u662f\u952e\u76d8\uff0c1\u662f\u81ea\u5b9a\u4e49\nint buff_size\uff0c\u53ea\u80fd\u662f8,16,32,64\uff0c\u5982\u679c\u662f\u952e\u76d8\u6a21\u5f0f\u6216\u8005\u586b\u4e86\u5176\u4ed6\u503c\uff0c\u81ea\u52a8\u4e3a8\n\u4f8b\u5b50\uff1a\nusbapp.hid_mode(0, 0) -- usb hid\u952e\u76d8\u6a21\u5f0f\nusbapp.hid_mode(0, 1) -- usb hid\u81ea\u5b9a\u4e49\u6a21\u5f0f\uff0c\u7528\u4e8e\u514d\u9a71USB\u4ea4\u4e92\n", "prefix": "usbapp.hid_mode"}, "usbapp.start": {"body": "usbapp.start(${1:id})", "description": "usbapp.start(id) - \u542f\u52a8USB\u8bbe\u5907\n\u4f20\u5165\u503c\uff1a\nint \u8bbe\u5907id,\u9ed8\u8ba4\u4e3a0\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- \u542f\u52a8USB\nusbapp.start(0)\n", "prefix": "usbapp.start"}, "usbapp.stop": {"body": "usbapp.stop(${1:id})", "description": "usbapp.stop(id) - \u5173\u95edUSB\u8bbe\u5907\n\u4f20\u5165\u503c\uff1a\nint \u8bbe\u5907id,\u9ed8\u8ba4\u4e3a0\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- \u5173\u95edUSB\nusbapp.stop(0)\n", "prefix": "usbapp.stop"}, "usbapp.vhid_upload": {"body": "usbapp.vhid_upload(${1:id},${2:data})", "description": "usbapp.vhid_upload(id, data) - USB HID\u8bbe\u5907\u4e0a\u4f20\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nint \u8bbe\u5907id,\u9ed8\u8ba4\u4e3a0\nstring \u6570\u636e. \u6ce8\u610f, HID\u7684\u53ef\u7528\u5b57\u7b26\u662f\u6709\u9650\u5236\u7684, \u57fa\u672c\u4e0a\u53ea\u6709\u53ef\u89c1\u5b57\u7b26\u662f\u652f\u6301\u7684, \u4e0d\u652f\u6301\u7684\u5b57\u7b26\u4f1a\u66ff\u6362\u4e3a\u7a7a\u683c.\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- HID\u4e0a\u4f20\u6570\u636e\nusbapp.vhid_upload(0, \"1234\") -- usb hid\u4f1a\u6a21\u62df\u6572\u51fa1234\n", "prefix": "usbapp.vhid_upload"}, "usbapp.hid_tx": {"body": "usbapp.hid_tx(${1:id},${2:data},${3:start},${4:len})", "description": "usbapp.hid_tx(id, data, start, len) - USB HID\u8bbe\u5907\u4e0a\u4f20\u7528\u6237\u81ea\u5b9a\u4e49\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nint \u8bbe\u5907id,\u9ed8\u8ba4\u4e3a0\nstring or zbuff \u6ce8\u610f\u6570\u636e\u91cf\u4e0d\u8db3\u65f6\u4f1a\u81ea\u52a8\u586b\u51450\nint \u53ef\u9009\uff0cdata\u4e3azbuff\u624d\u6709\u6548\uff0c\u8981\u53d1\u9001\u7684\u6570\u636e\u8d77\u59cb\u4f4d\u7f6e\uff0c\u9ed8\u8ba4\u4e3a0\nint \u53ef\u9009\uff0cdata\u4e3azbuff\u624d\u6709\u6548\uff0c\u8981\u53d1\u9001\u7684\u6570\u636e\u957f\u5ea6\uff0c\u9ed8\u8ba4\u4e3azbuff\u5185\u6709\u6548\u6570\u636e\uff0c\u6700\u5927\u503c\u4e0d\u8d85\u8fc7zbuff\u7684\u6700\u5927\u7a7a\u95f4\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- HID\u4e0a\u4f20\u6570\u636e\nusbapp.hid_tx(0, \"1234\") -- usb hid\u4e0a\u4f200x31 0x32 0x33 0x34 + N\u4e2a0\n", "prefix": "usbapp.hid_tx"}, "usbapp.hid_rx": {"body": "usbapp.hid_rx(${1:id},${2:buff})", "description": "usbapp.hid_rx(id, buff) - buff\u5f62\u5f0f\u8bfb\u63a5\u6536\u5230\u7684\u6570\u636e\uff0c\u4e00\u6b21\u8bfb\u51fa\u5168\u90e8\u6570\u636e\u5b58\u5165buff\u4e2d\uff0c\u5982\u679cbuff\u7a7a\u95f4\u4e0d\u591f\u4f1a\u81ea\u52a8\u6269\u5c55\uff0c\u76ee\u524d\u53ea\u6709air105\u652f\u6301\u8fd9\u4e2a\u64cd\u4f5c\n\u4f20\u5165\u503c\uff1a\nint \u8bbe\u5907id,\u9ed8\u8ba4\u4e3a0\nzbuff zbuff\u5bf9\u8c61\n\u8fd4\u56de\u503c\uff1a\nint \u8fd4\u56de\u8bfb\u5230\u7684\u957f\u5ea6\uff0c\u5e76\u628azbuff\u6307\u9488\u540e\u79fb\n\u4f8b\u5b50\uff1a\nusbapp.hid_rx(0, buff)\n", "prefix": "usbapp.hid_rx"}, "usbapp.vhid_cancel_upload": {"body": "usbapp.vhid_cancel_upload(${1:id})", "description": "usbapp.vhid_cancel_upload(id) - USB HID\u8bbe\u5907\u53d6\u6d88\u4e0a\u4f20\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nint \u8bbe\u5907id,\u9ed8\u8ba4\u4e3a0\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\n-- \u53d6\u6d88\u4e0a\u4f20\u6570\u636e,\u901a\u5e38\u4e0d\u9700\u8981\nusbapp.vhid_cancel_upload(0)\n", "prefix": "usbapp.vhid_cancel_upload"}, "usbapp.udisk_attach_sdhc": {"body": "usbapp.udisk_attach_sdhc(${1:id})", "description": "usbapp.udisk_attach_sdhc(id) - USB U\u76d8\u8bbe\u5907\u6302\u8f7dSDHC\uff0cTF\u5361\n\u4f20\u5165\u503c\uff1a\nint \u8bbe\u5907id,\u9ed8\u8ba4\u4e3a0\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\nusbapp.udisk_attach_sdhc(0)\n", "prefix": "usbapp.udisk_attach_sdhc"}, "usbapp.udisk_detach_sdhc": {"body": "usbapp.udisk_detach_sdhc(${1:id})", "description": "usbapp.udisk_detach_sdhc(id) - USB U\u76d8\u8bbe\u5907\u53bb\u9664\u6302\u8f7dSDHC\uff0cTF\u5361\n\u4f20\u5165\u503c\uff1a\nint \u8bbe\u5907id,\u9ed8\u8ba4\u4e3a0\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\nusbapp.udisk_detach_sdhc(0)\n", "prefix": "usbapp.udisk_detach_sdhc"}, "w5500.init": {"body": "w5500.init(${1:spiid},${2:speed},${3:cs_pin},${4:irq_pin},${5:rst_pin},${6:link_pin})", "description": "w5500.init(spiid, speed, cs_pin, irq_pin, rst_pin, link_pin) - \u521d\u59cb\u5316w5500\n\u4f20\u5165\u503c\uff1a\nint spi\u901a\u9053\u53f7, \u4f8b\u5982 0, 1, 5, \u6309\u8bbe\u5907\u5b9e\u9645\u60c5\u51b5\u9009\nint spi\u901f\u5ea6, \u53ef\u4ee5\u8bbe\u7f6e\u5230\u5bf9\u5e94SPI\u7684\u6700\u9ad8\u901f\u5ea6\nint cs pin, \u7247\u9009\u811a, \u5bf9\u5e94W5500\u7684SCS\nint irq pin, \u4e2d\u65ad\u811a, \u5bf9\u5e94W5500\u7684INT\nint reset pin, \u590d\u4f4d\u811a, \u5bf9\u5e94W5500\u7684RST\nint link \u72b6\u6001 pin\uff0c\u53ef\u4ee5\u7559\u7a7a\u4e0d\u4f7f\u7528\uff0c\u9ed8\u8ba4\u4e0d\u4f7f\u7528\n\u4f8b\u5b50\uff1a\nw5500.init(spi.SPI_0, 24000000, pin.PB13, pin.PC08, pin.PC09)\n", "prefix": "w5500.init"}, "w5500.config": {"body": "w5500.config(${1:ip},${2:submask},${3:gateway},${4:mac},${5:RTR},${6:RCR},${7:speed})", "description": "w5500.config(ip, submask, gateway, mac, RTR, RCR, speed) - w5500\u914d\u7f6e\u7f51\u7edc\u4fe1\u606f\n\u4f20\u5165\u503c\uff1a\nstring \u9759\u6001ip\u5730\u5740\uff0c\u5982\u679c\u9700\u8981\u7528DHCP\u83b7\u53d6\uff0c\u8bf7\u5199nil\nstring \u5b50\u7f51\u63a9\u7801\uff0c\u5982\u679c\u4f7f\u7528\u52a8\u6001ip\uff0c\u5219\u5ffd\u7565\nstring \u7f51\u5173\uff0c\u5982\u679c\u4f7f\u7528\u52a8\u6001ip\uff0c\u5219\u5ffd\u7565\nstring MAC\uff0c\u5199nil\u5219\u901a\u8fc7MCU\u552f\u4e00\u7801\u81ea\u52a8\u751f\u6210\uff0c\u5982\u679c\u8981\u5199\uff0c\u957f\u5ea6\u5fc5\u987b\u662f6byte\nint \u91cd\u8bd5\u95f4\u9694\u65f6\u95f4\uff0c\u9ed8\u8ba42000\uff0c\u5355\u4f4d100us\uff0c\u4e0d\u61c2\u7684\u4e0d\u8981\u6539\nint \u6700\u5927\u91cd\u8bd5\u6b21\u6570\uff0c\u9ed8\u8ba48\uff0c\u4e0d\u61c2\u7684\u4e0d\u8981\u6539\nint \u901f\u5ea6\u7c7b\u578b\uff0c\u76ee\u524d\u53ea\u67090\u786c\u4ef6\u914d\u7f6e\uff0c1\u81ea\u9002\u5e94\uff0c\u9ed8\u8ba4\u4e3a0\n\u4f8b\u5b50\uff1a\nw5500.config(\"192.168.1.2\", \"255.255.255.0\", \"192.168.1.1\", string.fromHex(\"102a3b4c5d6e\"))\n", "prefix": "w5500.config"}, "w5500.bind": {"body": "w5500.bind(${1:id})", "description": "w5500.bind(id) - \u5c06w5500\u6ce8\u518c\u8fdb\u901a\u7528\u7f51\u7edc\u63a5\u53e3\n\u4f20\u5165\u503c\uff1a\nint \u901a\u7528\u7f51\u7edc\u901a\u9053\u53f7\n\u4f8b\u5b50\uff1a\n-- \u82e5\u4f7f\u7528\u7684\u7248\u672c\u4e0d\u5e26socket\u5e93, \u6539\u6210 network.ETH0\nw5500.bind(socket.ETH0)\n", "prefix": "w5500.bind"}, "w5500.getMac": {"body": "w5500.getMac()", "description": "w5500.getMac() - \u83b7\u53d6w5500\u5f53\u524d\u7684MAC\uff0c\u5fc5\u987b\u5728init\u4e4b\u540e\u7528\uff0c\u5982\u679cconfig\u4e2d\u8bbe\u7f6e\u4e86\u81ea\u5df1\u7684MAC\uff0c\u9700\u8981\u5ef6\u8fdf\u4e00\u70b9\u65f6\u95f4\u518d\u8bfb\n\u8fd4\u56de\u503c\uff1a\nstring \u5f53\u524d\u7684MAC\n\u4f8b\u5b50\uff1a\nlocal mac = w5500.getMac()\nlog.info(\"w5500 mac\", mac:toHex())\n", "prefix": "w5500.getMac"}, "wdt.init": {"body": "wdt.init(${1:timeout})", "description": "wdt.init(timeout) - \u521d\u59cb\u5316watchdog\u5e76\u9a6c\u4e0a\u542f\u7528.\u5927\u90e8\u5206\u8bbe\u5907\u7684watchdog\u4e00\u65e6\u542f\u7528\u5c31\u65e0\u6cd5\u5173\u95ed.\n\u4f20\u5165\u503c\uff1a\nint \u8d85\u65f6\u65f6\u957f,\u5355\u4f4d\u4e3a\u6beb\u79d2\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse(\u4f8b\u5982\u5e95\u5c42\u4e0d\u652f\u6301)\n\u4f8b\u5b50\uff1a\nwdt.init(9000)\nsys.timerLoopStart(wdt.feed, 3000)\n", "prefix": "wdt.init"}, "wdt.setTimeout": {"body": "wdt.setTimeout(${1:timeout})", "description": "wdt.setTimeout(timeout) - \u90e8\u5206\u8bbe\u5907\u652f\u6301\u91cd\u65b0\u8bbe\u7f6ewatchdog\u8d85\u65f6\u65f6\u957f\n\u4f20\u5165\u503c\uff1a\nint \u8d85\u65f6\u65f6\u957f,\u5355\u4f4d\u4e3a\u6beb\u79d2\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse(\u4f8b\u5982\u5e95\u5c42\u4e0d\u652f\u6301)\n\u4f8b\u5b50\uff1a\nwdt.init(10000)\nsys.timerLoopStart(wdt.feed, 3000)\nsys.wait(5000)\nsys.setTimeout(5000)\n", "prefix": "wdt.setTimeout"}, "wdt.feed": {"body": "wdt.feed()", "description": "wdt.feed() - \u5582\u72d7,\u4f7f\u5f97\u8d85\u65f6\u8ba1\u65f6\u590d\u4f4d,\u91cd\u65b0\u8ba1\u65f6\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse(\u4f8b\u5982\u5e95\u5c42\u4e0d\u652f\u6301)\n\u4f8b\u5b50\uff1a\nwdt.init(10000)\n-- \u5b9a\u65f6\u5582\u72d7,\u6216\u8005\u6839\u636e\u4e1a\u52a1\u6309\u9700\u5582\u72d7\nsys.timerLoopStart(wdt.feed, 3000)\n", "prefix": "wdt.feed"}, "wdt.close": {"body": "wdt.close()", "description": "wdt.close() - \u5173\u95edwatchdog,\u901a\u5e38\u4e0d\u88ab\u652f\u6301\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse(\u4f8b\u5982\u5e95\u5c42\u4e0d\u652f\u6301)\n\u4f8b\u5b50\uff1a\nwdt.init(10000)\nsys.wait(9000)\nwdt.close()\n", "prefix": "wdt.close"}, "wsc:debug": {"body": "wsc:debug(${1:onoff})", "description": "wsc:debug(onoff) - \u914d\u7f6e\u662f\u5426\u6253\u5f00debug\u4fe1\u606f\n\u4f20\u5165\u503c\uff1a\nboolean \u662f\u5426\u6253\u5f00debug\u5f00\u5173\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n", "prefix": "wsc:debug"}, "websocket.create": {"body": "websocket.create(${1:adapter},${2:url})", "description": "websocket.create(adapter, url) - websocket\u5ba2\u6237\u7aef\u521b\u5efa\n\u4f20\u5165\u503c\uff1a\nint \u9002\u914d\u5668\u5e8f\u53f7, \u53ea\u80fd\u662fsocket.ETH0, socket.STA, socket.AP,\u5982\u679c\u4e0d\u586b,\u4f1a\u9009\u62e9\u5e73\u53f0\u81ea\u5e26\u7684\u65b9\u5f0f,\u7136\u540e\u662f\u6700\u540e\u4e00\u4e2a\u6ce8\u518c\u7684\u9002\u914d\u5668\nstring \u8fde\u63a5\u5b57\u7b26\u4e32,\u53c2\u8003usage\n\u8fd4\u56de\u503c\uff1a\nuserdata \u82e5\u6210\u529f\u4f1a\u8fd4\u56dewebsocket\u5ba2\u6237\u7aef\u5b9e\u4f8b,\u5426\u5219\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\n-- \u666e\u901aTCP\u94fe\u63a5\nwsc = websocket.create(nil,\"ws://air32.cn/abc\")\n-- \u52a0\u5bc6TCP\u94fe\u63a5\nwsc = websocket.create(nil,\"wss://air32.cn/abc\")\n", "prefix": "websocket.create"}, "wsc:on": {"body": "wsc:on(${1:cb})", "description": "wsc:on(cb) - \u6ce8\u518cwebsocket\u56de\u8c03\n\u4f20\u5165\u503c\uff1a\nfunction cb websocket\u56de\u8c03,\u53c2\u6570\u5305\u62ecwebsocket_client, event, data, payload\n\u8fd4\u56de\u503c\uff1a\nnil \u65e0\u8fd4\u56de\u503c\n\u4f8b\u5b50\uff1a\nwsc:on(function(websocket_client, event, data, payload)\n\t-- \u6253\u5370\u5404\u79cd\u4e8b\u4ef6\n\tlog.info(\"websocket\", \"event\", event, data, payload)\nend)\n--[[\nevent\u7684\u503c\u6709:\n\tconack \u8fde\u63a5\u670d\u52a1\u5668\u6210\u529f,\u5df2\u7ecf\u6536\u5230websocket\u534f\u8bae\u5934\u90e8\u4fe1\u606f,\u901a\u4fe1\u5df2\u5efa\u7acb\n\trecv \u6536\u5230\u670d\u52a1\u5668\u4e0b\u53d1\u7684\u4fe1\u606f, data, payload \u4e0d\u4e3anil\n\tsent send\u51fd\u6570\u53d1\u9001\u7684\u6d88\u606f,\u670d\u52a1\u5668\u5728TCP\u534f\u8bae\u5c42\u5df2\u786e\u8ba4\u6536\u5230\n\tdisconnect \u670d\u52a1\u5668\u8fde\u63a5\u5df2\u65ad\u5f00\n\n\u5176\u4e2d sent/disconnect \u4e8b\u4ef6\u5728 2023.04.01 \u65b0\u589e\n]]\n", "prefix": "wsc:on"}, "wsc:connect": {"body": "wsc:connect()", "description": "wsc:connect() - \u8fde\u63a5\u670d\u52a1\u5668\n\u8fd4\u56de\u503c\uff1a\nboolean \u53d1\u8d77\u6210\u529f\u8fd4\u56detrue, \u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- \u5f00\u59cb\u5efa\u7acb\u8fde\u63a5\nwsc:connect()\n-- \u672c\u51fd\u6570\u4ec5\u4ee3\u8868\u53d1\u8d77\u6210\u529f, \u540e\u7eed\u4ecd\u9700\u6839\u636eready\u51fd\u6570\u5224\u65adwebsocket\u662f\u5426\u8fde\u63a5\u6b63\u5e38\n", "prefix": "wsc:connect"}, "wsc:autoreconn": {"body": "wsc:autoreconn(${1:reconnect},${2:reconnect_time})", "description": "wsc:autoreconn(reconnect, reconnect_time) - \u81ea\u52a8\u91cd\u8fde\n\u4f20\u5165\u503c\uff1a\nbool \u662f\u5426\u81ea\u52a8\u91cd\u8fde\nint \u81ea\u52a8\u91cd\u8fde\u5468\u671f \u5355\u4f4dms \u9ed8\u8ba43000ms\n\u4f8b\u5b50\uff1a\nwsc:autoreconn(true)\n", "prefix": "wsc:autoreconn"}, "wsc:send": {"body": "wsc:send(${1:data},${2:fin},${3:opt})", "description": "wsc:send(data, fin, opt) - \u53d1\u5e03\u6d88\u606f\n\u4f20\u5165\u503c\uff1a\nstring \u5f85\u53d1\u9001\u7684\u6570\u636e,\u5fc5\u586b\nint \u662f\u5426\u4e3a\u6700\u540e\u4e00\u5e27,\u9ed8\u8ba41,\u5373\u9a6c\u4e0a\u8bbe\u7f6e\u4e3a\u6700\u540e\u4e00\u5e27, \u4e5f\u5c31\u662f\u5355\u5e27\u53d1\u9001\nint \u64cd\u4f5c\u7801, \u9ed8\u8ba4\u4e3a\u5b57\u7b26\u4e32\u5e270, \u53ef\u90091\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u4e3afalse\u6216\u8005nil\n\u4f8b\u5b50\uff1a\n-- \u7b80\u5355\u53d1\u9001\u6570\u636e\nwsc:send(\"123\")\n-- \u5206\u6bb5\u53d1\u9001\u6570\u636e, \u6700\u540e\u8981\u75281(\u5373FIN\u5e27\u7ed3\u675f)\nwsc:send(\"123\", 0)\nwsc:send(\"456\", 0)\nwsc:send(\"789\", 1)\n", "prefix": "wsc:send"}, "wsc:close": {"body": "wsc:close()", "description": "wsc:close() - websocket\u5ba2\u6237\u7aef\u5173\u95ed(\u5173\u95ed\u540e\u8d44\u6e90\u91ca\u653e\u65e0\u6cd5\u518d\u4f7f\u7528)\n\u4f8b\u5b50\uff1a\nwsc:close()\n", "prefix": "wsc:close"}, "wsc:ready": {"body": "wsc:ready()", "description": "wsc:ready() - websocket\u5ba2\u6237\u7aef\u662f\u5426\u5c31\u7eea\n\u8fd4\u56de\u503c\uff1a\nbool \u5ba2\u6237\u7aef\u662f\u5426\u5c31\u7eea\n\u4f8b\u5b50\uff1a\nlocal stat = wsc:ready()\n", "prefix": "wsc:ready"}, "wsc:headers": {"body": "wsc:headers(${1:headers})", "description": "wsc:headers(headers) - \u8bbe\u7f6e\u989d\u5916\u7684headers\n\u4f20\u5165\u503c\uff1a\ntable/string \u53ef\u4ee5\u662ftable,\u4e5f\u53ef\u4ee5\u662f\u5b57\u7b26\u4e32\n\u8fd4\u56de\u503c\uff1a\nbool \u5ba2\u6237\u7aef\u662f\u5426\u5c31\u7eea\n\u4f8b\u5b50\uff1a\n-- table\u5f62\u5f0f\nwsc:headers({\n\tAuth=\"Basic ABCDEFGG\"\n})\n-- \u5b57\u7b26\u4e32\u5f62\u5f0f\nwsc:headers(\"Auth: Basic ABCDERG\\r\\n\")\n", "prefix": "wsc:headers"}, "wlan.init": {"body": "wlan.init()", "description": "wlan.init() - \u521d\u59cb\u5316\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n", "prefix": "wlan.init"}, "wlan.setMode": {"body": "wlan.setMode(${1:mode})", "description": "wlan.setMode(mode) - \u8bbe\u7f6ewifi\u6a21\u5f0f\n\u4f20\u5165\u503c\uff1a\nint wifi\u6a21\u5f0f\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- \u8bbe\u7f6e\u4e3aAP\u6a21\u5f0f, \u5e7f\u64adssid, \u63a5\u6536wifi\u5ba2\u6237\u7aef\u7684\u94fe\u63a5\nwlan.setMode(wlan.AP)\n\n-- \u8bbe\u7f6e\u4e3aSTATION\u6a21\u5f0f, \u4e5f\u662f\u521d\u59cb\u5316\u540e\u7684\u9ed8\u8ba4\u6a21\u5f0f\nwlan.setMode(wlan.STATION)\n\n-- \u6df7\u5408\u6a21\u5f0f, \u505aAP\u53c8\u505aSTATION\nwlan.setMode(wlan.APSTA)\n", "prefix": "wlan.setMode"}, "wlan.ready": {"body": "wlan.ready()", "description": "wlan.ready() - \u4f5c\u4e3aSTATION\u65f6,\u662f\u5426\u5df2\u7ecf\u8fde\u63a5\u4e0aAP,\u4e14\u83b7\u53d6IP\u6210\u529f\n\u8fd4\u56de\u503c\uff1a\nbool \u5df2\u7ecf\u8fde\u63a5\u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n", "prefix": "wlan.ready"}, "wlan.connect": {"body": "wlan.connect(${1:ssid},${2:password},${3:auto_reconnect})", "description": "wlan.connect(ssid, password, auto_reconnect) - \u4f5c\u4e3aSTATION\u65f6,\u8fde\u63a5\u5230\u6307\u5b9aAP\n\u4f20\u5165\u503c\uff1a\nstring AP\u7684ssid\nstring AP\u7684password,\u53ef\u9009\nint 0\u5173\u95ed\u81ea\u52a8\u91cd\u8fde,1\u5f00\u542f\u81ea\u52a8\u91cd\u8fde.\u5f53\u524d\u5f3a\u5236\u5f00\u542f\u81ea\u52a8\u91cd\u8fde\n\u8fd4\u56de\u503c\uff1a\nbool \u53d1\u8d77\u8fde\u63a5\u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse.\u6ce8\u610f,\u4e0d\u4ee3\u8868\u8fde\u63a5AP\u6210\u529f!!\n\u4f8b\u5b50\uff1a\n\n-- \u666e\u901a\u6a21\u5f0f,\u5e26\u5bc6\u7801\nwlan.connect(\"myap\", \"12345678\")\n-- \u666e\u901a\u6a21\u5f0f,\u4e0d\u5e26\u5bc6\u7801\nwlan.connect(\"myap\")\n-- \u7279\u6b8a\u6a21\u5f0f, \u91cd\u7528\u4e4b\u524d\u7684ssid\u548c\u5bc6\u7801,\u672c\u6b21\u76f4\u63a5\u8fde\u63a5\n-- \u6ce8\u610f, \u524d\u63d0\u662f\u672c\u6b21\u4e0a\u7535\u540e\u5df2\u7ecf\u4f20\u8fc7ssid\u548c\u6216password,\u5426\u5219\u5fc5\u5931\u8d25\nwlan.connect()\n", "prefix": "wlan.connect"}, "wlan.disconnect": {"body": "wlan.disconnect()", "description": "wlan.disconnect() - \u4f5c\u4e3aSTATION\u65f6,\u65ad\u5f00AP\n", "prefix": "wlan.disconnect"}, "wlan.scan": {"body": "wlan.scan()", "description": "wlan.scan() - \u626b\u63cfwifi\u9891\u6bb5\n\u4f8b\u5b50\uff1a\n-- \u6ce8\u610f, wlan.scan()\u662f\u5f02\u6b65API,\u542f\u52a8\u626b\u63cf\u540e\u4f1a\u9a6c\u4e0a\u8fd4\u56de\n\n-- wifi\u626b\u63cf\u6210\u529f\u540e, \u4f1a\u6709WLAN_SCAN_DONE\u6d88\u606f, \u8bfb\u53d6\u5373\u53ef\nsys.subscribe(\"WLAN_SCAN_DONE\", function ()\n local results = wlan.scanResult()\n log.info(\"scan\", \"results\", #results)\n for k,v in pairs(results) do\n log.info(\"scan\", v[\"ssid\"], v[\"rssi\"], (v[\"bssid\"]:toHex()))\n end\nend)\n\n-- \u4e0b\u9762\u6f14\u793a\u7684\u662f\u521d\u59cb\u5316wifi\u540e\u5b9a\u65f6\u626b\u63cf,\u8bf7\u6309\u5b9e\u9645\u4e1a\u52a1\u9700\u6c42\u4fee\u6539\nsys.taskInit(function()\n sys.wait(1000)\n wlan.init()\n while 1 do\n wlan.scan()\n sys.wait(15000)\n end\nend)\n", "prefix": "wlan.scan"}, "wlan.scanResult": {"body": "wlan.scanResult()", "description": "wlan.scanResult() - \u83b7\u53d6wifi\u626b\u63cf\u7ed3\u679c\n\u8fd4\u56de\u503c\uff1a\ntable \u626b\u63cf\u7ed3\u679c\n\u4f8b\u5b50\uff1a\n-- \u7528\u6cd5\u8bf7\u67e5\u9605 wlan.scan() \u51fd\u6570\n", "prefix": "wlan.scanResult"}, "wlan.smartconfig": {"body": "wlan.smartconfig(${1:mode})", "description": "wlan.smartconfig(mode) - \u914d\u7f51\n\u4f20\u5165\u503c\uff1a\nint \u914d\u7f51\u6a21\u5f0f, \u9ed8\u8ba4\u4e3aesptouch, \u82e5\u4f200\u5219\u4e3b\u52a8\u505c\u6b62\u914d\u7f51\n\u8fd4\u56de\u503c\uff1a\nbool \u542f\u52a8\u6210\u529f\u6216\u505c\u6b62\u6210\u529f, \u8fd4\u56detrue, \u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\nwlan.smartconfig()\nlocal ret, ssid, passwd = sys.waitUntil(\"SC_RESULT\", 180*1000) -- \u6700\u591a\u7b493\u5206\u949f\nlog.info(\"sc\", ret, ssid, passwd)\n-- \u8be6\u7ec6\u7528\u6cd5\u8bf7\u67e5\u770bdemo\n", "prefix": "wlan.smartconfig"}, "wlan.getMac": {"body": "wlan.getMac(${1:tp},${2:hexstr})", "description": "wlan.getMac(tp, hexstr) - \u83b7\u53d6mac\n\u4f20\u5165\u503c\uff1a\nint \u8bbe\u7f6e\u4f55\u79cdmac\u5730\u5740,\u5bf9ESP32\u7cfb\u5217\u6765\u8bf4,\u53ea\u80fd\u8bbe\u7f6eSTA\u7684\u5730\u5740,\u53730,\u9ed8\u8ba4\u503c\u4e5f\u662f0\nbool \u662f\u5426\u8f6cHEX\u5b57\u7b26, \u9ed8\u8ba4\u662ftrue,\u5373\u8f93\u51fahex\u5b57\u7b26\u4e32\n\u8fd4\u56de\u503c\uff1a\nstring MAC\u5730\u5740,\u5341\u516d\u8fdb\u5236\u5b57\u7b26\u4e32\u5f62\u5f0f \"AABBCCDDEEFF\" \u6216\u539f\u59cb\u6570\u636e\n", "prefix": "wlan.getMac"}, "wlan.setMac": {"body": "wlan.setMac(${1:tp},${2:mac})", "description": "wlan.setMac(tp, mac) - \u8bbe\u7f6emac\n\u4f20\u5165\u503c\uff1a\nint \u8bbe\u7f6e\u4f55\u79cdmac\u5730\u5740,\u5bf9ESP32\u7cfb\u5217\u6765\u8bf4,\u53ea\u80fd\u8bbe\u7f6eSTA\u7684\u5730\u5740,\u53730\nstring \u5f85\u8bbe\u7f6e\u7684MAC\u5730\u5740,\u957f\u5ea66\u5b57\u8282\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- \u8bbe\u7f6eMAC\u5730\u5740, 2023-03-01\u4e4b\u540e\u7f16\u8bd1\u7684\u56fa\u4ef6\u53ef\u7528\nlocal mac = string.fromHex(\"F01122334455\")\nwlan.setMac(0, mac)\n\n-- \u90e8\u5206\u6a21\u5757\u652f\u6301\u6062\u590d\u9ed8\u8ba4MAC, \u4f8b\u5982esp32\u7cfb\u5217\n-- \u57282023-11-01 \u4e4b\u540e\u7f16\u8bd1\u7684\u56fa\u4ef6\u53ef\u7528\nlocal mac = string.fromHex(\"000000000000\")\nwlan.setMac(0, mac)\n", "prefix": "wlan.setMac"}, "wlan.getIP": {"body": "wlan.getIP()", "description": "wlan.getIP() - \u83b7\u53d6ip,\u4ec5STATION\u6216APSTA\u6a21\u5f0f\u4e0b\u6709\u610f\u4e49\n\u8fd4\u56de\u503c\uff1a\nstring ip\u5730\u5740,\u5f53\u524d\u4ec5\u8fd4\u56deipv4\u5730\u5740,\u4f8b\u5982 \"192.168.1.25\"\n", "prefix": "wlan.getIP"}, "wlan.createAP": {"body": "wlan.createAP(${1:ssid},${2:passwd},${3:gateway},${4:netmask},${5:channel})", "description": "wlan.createAP(ssid, passwd, gateway, netmask, channel) - \u542f\u52a8AP\n\u4f20\u5165\u503c\uff1a\nstring AP\u7684SSID,\u5fc5\u586b\nstring AP\u7684\u5bc6\u7801,\u53ef\u9009\nstring AP\u7684\u7f51\u5173\u5730\u5740, \u9ed8\u8ba4192.168.4.1\nstring AP\u7684\u7f51\u5173\u63a9\u7801, \u9ed8\u8ba4255.255.255.0\nint AP\u5efa\u7acb\u7684\u901a\u9053, \u9ed8\u8ba46\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u521b\u5efa\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- \u6ce8\u610f, \u8c03\u7528\u672cAP\u65f6,\u82e5wifi\u6a21\u5f0f\u4e3aSTATION,\u4f1a\u81ea\u52a8\u5207\u6362\u6210 APSTA\nwlan.createAP(\"uiot\", \"12345678\")\n-- \u8bbe\u7f6e\u7f51\u5173IP,\u63a9\u7801, \u901a\u9053, 2023.7.13 \u65b0\u589e, BSP\u672a\u5fc5\u652f\u6301\n-- wlan.createAP(\"uiot\", \"12345678\", \"192.168.4.1\", \"255.255.255.0\", 6)\n", "prefix": "wlan.createAP"}, "wlan.stopAP": {"body": "wlan.stopAP()", "description": "wlan.stopAP() - \u5173\u95edAP\u529f\u80fd\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u521b\u5efa\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\nwlan.stopAP()\n", "prefix": "wlan.stopAP"}, "wlan.getInfo": {"body": "wlan.getInfo()", "description": "wlan.getInfo() - \u83b7\u53d6\u4fe1\u606f,\u5982AP\u7684bssid,\u4fe1\u53f7\u5f3a\u5ea6\n\u8fd4\u56de\u503c\uff1a\ntable \u8be6\u60c5,\u952e\u503c\u5bf9\u5f62\u5f0f\n\u4f8b\u5b50\uff1a\n\nlog.info(\"wlan\", \"info\", json.encode(wlan.getInfo()))\n--[[\n\u5178\u578b\u8f93\u51fa\n{\n \"bssid\" : \"xxxxxx\",\n \"rssi\" : -89,\n \"gw\" : \"192.168.1.1\"\n}\n]]\n", "prefix": "wlan.getInfo"}, "wlan.powerSave": {"body": "wlan.powerSave(${1:mode})", "description": "wlan.powerSave(mode) - \u8bfb\u53d6\u6216\u8bbe\u7f6e\u7701\u7535\u6a21\u5f0f\n\u4f20\u5165\u503c\uff1a\nint \u7701\u7535\u6a21\u5f0f,\u53ef\u9009, \u4f20\u5165\u5c31\u662f\u8bbe\u7f6e, \u4f8b\u5982wlan.PS_NONE\n\u8fd4\u56de\u503c\uff1a\nint \u5f53\u524d\u7701\u7535\u6a21\u5f0f/\u8bbe\u7f6e\u540e\u7684\u7701\u7535\u6a21\u5f0f\n\u4f8b\u5b50\uff1a\n-- \u8bf7\u67e5\u9605\u5e38\u91cf\u8868 PS_NONE/PS_MIN_MODEM/PS_MAX_MODEM\nlog.info(\"wlan\", \"PS\", wlan.powerSave(wlan.PS_NONE))\n-- \u672cAPI\u4e8e 2023.03.31 \u65b0\u589e\n", "prefix": "wlan.powerSave"}, "wlan.hostname": {"body": "wlan.hostname(${1:new_name})", "description": "wlan.hostname(new_name) - \u8bfb\u53d6\u6216\u8bbe\u7f6eHostname\n\u4f20\u5165\u503c\uff1a\nstring \u65b0\u7684hostname,\u53ef\u9009, \u4f20\u5165\u5c31\u662f\u8bbe\u7f6e\n\u8fd4\u56de\u503c\uff1a\nstring \u5f53\u524d\u7684hostname\u6216\u8005\u8bbe\u7f6e\u540e\u7684hostname\n\u4f8b\u5b50\uff1a\n-- \u672cAPI\u4e8e 2023.07.23 \u65b0\u589e\n-- \u672c\u51fd\u6570\u5e94\u8be5\u5728wlan.init\u4e4b\u524d\u8bbe\u7f6e\u597d, \u6700\u665a\u5e94\u65e9\u4e8ewlan.connect\n-- hostname\u7684\u9ed8\u8ba4\u503c\u662f \"LUATOS_\" + \u8bbe\u5907\u7684MAC\u503c\n-- \u4f8b\u5982: LUATOS_0022EECC2399\n\nwlan.hostname(\"\u6211\u7684wifi\u7269\u8054\u7f51\u8bbe\u5907\")\n", "prefix": "wlan.hostname"}, "wlan.staIp": {"body": "wlan.staIp(${1:dhcp_enable},${2:ip},${3:netmask},${4:gateway})", "description": "wlan.staIp(dhcp_enable, ip, netmask, gateway) - \u8bbe\u7f6eStation\u6a21\u5f0f\u4e0b\u7684IP\u83b7\u53d6\u6a21\u5f0f\n\u4f20\u5165\u503c\uff1a\nbool \u662f\u5426\u542f\u7528DHCP,\u9ed8\u8ba4\u662ftrue\nstring \u672c\u673aIP\u5730\u5740,\u4f8b\u5982192.168.2.200, \u7981\u7528DHCP\u65f6\u5fc5\u586b\nstring \u672c\u673aIP\u63a9\u7801,\u4f8b\u5982255.255.255.0, \u7981\u7528DHCP\u65f6\u5fc5\u586b\nstring \u672c\u673aIP\u7f51\u5173,\u4f8b\u5982192.168.2.1, \u7981\u7528DHCP\u65f6\u5fc5\u586b\n\u8fd4\u56de\u503c\uff1a\nbool \u6210\u529f\u8fd4\u56detrue,\u5426\u5219\u8fd4\u56defalse\n\u4f8b\u5b50\uff1a\n-- \u672cAPI\u4e8e 2023.10.06 \u65b0\u589e\n-- \u672c\u51fd\u6570\u9700\u8981\u5728wlan.init\u4e4b\u540e\u624d\u5141\u8bb8\u8c03\u7528\n\n-- \u542f\u7528DHCP, \u9ed8\u8ba4\u4e5f\u662f\u542f\u7528DHCP,\u8fd9\u91cc\u662f\u6f14\u793aAPI\u4f7f\u7528\nwlan.staIp(true)\n-- \u7981\u7528DHCP,\u81ea\u884c\u8bbe\u7f6eIP/\u63a9\u7801/\u7f51\u5173\nwlan.staIp(false, \"192.168.2.200\", \"255.255.255.0\", \"192.168.2.1\")\n", "prefix": "wlan.staIp"}, "ymodem.create": {"body": "ymodem.create(${1:dir_path},${2:file_path})", "description": "ymodem.create(dir_path,file_path) - \u521b\u5efa\u4e00\u4e2aymodem\u5904\u7406\u53e5\u67c4\n\u4f20\u5165\u503c\uff1a\nstring \u4fdd\u5b58\u7684\u6587\u4ef6\u5939\u8def\u5f84\uff0c\u9ed8\u8ba4\u662f\"/\"\nstring \u5f3a\u5236\u4fdd\u5b58\u7684\u7edd\u5bf9\u6587\u4ef6\u8def\u5f84\uff0c\u9ed8\u8ba4\u662f\u7a7a\uff0c\u5982\u679c\u8bbe\u7f6e\u4e86\uff0c\u5c31\u4f1a\u76f4\u63a5\u4fdd\u5b58\u5728\u8be5\u6587\u4ef6\u4e2d\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529ftrue, \u5931\u8d25false\n\u4f8b\u5b50\uff1a\nlocal handler = ymodem.create(\"/\")\n", "prefix": "ymodem.create"}, "ymodem.receive": {"body": "ymodem.receive(${1:handler},${2:data})", "description": "ymodem.receive(handler, data) - ymodem\u63a5\u6536\u6587\u4ef6\u6570\u636e\u5e76\u4fdd\u5b58\n\u4f20\u5165\u503c\uff1a\nuserdata ymodem\u5904\u7406\u53e5\u67c4\nzbuff/string \u8f93\u5165\u7684\u6570\u636e\n\u8fd4\u56de\u503c\uff1a\nboolean \u6210\u529ftrue\uff0c\u5931\u8d25false\nint ack\u503c\uff0c\u9700\u8981\u901a\u8fc7\u4e32\u53e3/\u7f51\u7edc\u7b49\u9014\u5f84\u8fd4\u56de\u53d1\u9001\u65b9\nint flag\u503c\uff0c\u9700\u8981\u901a\u8fc7\u4e32\u53e3/\u7f51\u7edc\u7b49\u9014\u5f84\u8fd4\u56de\u53d1\u9001\u65b9\uff0c\u5982\u679c\u6709ack\u503c\u5219\u4e0d\u53d1\u9001flag\nboolean, \u4e00\u4e2a\u6587\u4ef6\u63a5\u6536\u5b8c\u6210true\uff0c\u4f20\u8f93\u4e2dfalse\nboolean, \u6574\u4e2a\u4f20\u8f93\u5b8c\u6210true \u5426\u5219false\n\u4f8b\u5b50\uff1a\n-- \u6ce8\u610f, \u6570\u636e\u6765\u6e90\u4e0d\u9650, \u901a\u5e38\u662fuart.read\u5f97\u5230data\nno_error,ack,flag,file_done,all_done = ymodem.receive(handler, data)\n", "prefix": "ymodem.receive"}, "ymodem.reset": {"body": "ymodem.reset(${1:handler})", "description": "ymodem.reset(handler) - \u91cd\u7f6eymodem\u5904\u7406\u8fc7\u7a0b\n\u4f20\u5165\u503c\uff1a\nuserdata ymodem\u5904\u7406\u53e5\u67c4\n\u4f8b\u5b50\uff1a\n-- \u6062\u590d\u5230\u521d\u59cb\u72b6\u6001\uff0c\u4e00\u822c\u7528\u4e8e\u63a5\u6536\u51fa\u9519\u540e\u91cd\u7f6e\uff0c\u4ece\u800c\u8fdb\u884c\u4e0b\u4e00\u6b21\u63a5\u6536\nymodem.reset(handler)\n", "prefix": "ymodem.reset"}, "ymodem.release": {"body": "ymodem.release(${1:handler})", "description": "ymodem.release(handler) - \u91ca\u653eymodem\u5904\u7406\u53e5\u67c4\n\u4f20\u5165\u503c\uff1a\nuserdata handler\n\u4f8b\u5b50\uff1a\nymodem.release(handler)\n", "prefix": "ymodem.release"}, "zbuff.create": {"body": "zbuff.create(${1:{width},${2:height},${3:bit}},${4:data})", "description": "zbuff.create({width,height,bit},data) - \u521b\u5efaframebuff\u7528\u7684zbuff\n\u4f20\u5165\u503c\uff1a\ntable \u5bbd\u5ea6\u3001\u9ad8\u5ea6\u3001\u8272\u4f4d\u6df1\u5ea6\nint \u53ef\u9009\u53c2\u6570\uff0c\u586b\u5145\u6570\u636e\n\u8fd4\u56de\u503c\uff1a\nobject zbuff\u5bf9\u8c61\uff0c\u5982\u679c\u521b\u5efa\u5931\u8d25\u4f1a\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\n-- \u521b\u5efazbuff\nlocal buff = zbuff.create({128,160,16})--\u521b\u5efa\u4e00\u4e2a128*160\u7684framebuff\nlocal buff = zbuff.create({128,160,16},0xf800)--\u521b\u5efa\u4e00\u4e2a128*160\u7684framebuff\uff0c\u521d\u59cb\u72b6\u6001\u7ea2\u8272\n", "prefix": "zbuff.create"}, "buff:write": {"body": "buff:write(${1:para},${2:...})", "description": "buff:write(para,...) - zbuff\u5199\u6570\u636e\uff08\u4ece\u5f53\u524d\u6307\u9488\u4f4d\u7f6e\u5f00\u59cb\uff1b\u6267\u884c\u540e\u6307\u9488\u4f1a\u5411\u540e\u79fb\u52a8\uff09\n\u4f20\u5165\u503c\uff1a\nany \u5199\u5165buff\u7684\u6570\u636e\uff0cstring\u65f6\u4e3a\u4e00\u4e2a\u53c2\u6570\uff0cnumber\u65f6\u53ef\u4e3a\u591a\u4e2a\u53c2\u6570\n\u8fd4\u56de\u503c\uff1a\nnumber \u6570\u636e\u6210\u529f\u5199\u5165\u7684\u957f\u5ea6\n\u4f8b\u5b50\uff1a\n-- \u7c7bfile\u7684\u8bfb\u5199\u64cd\u4f5c\nlocal len = buff:write(\"123\") -- \u5199\u5165\u6570\u636e, \u6307\u9488\u76f8\u5e94\u5730\u5f80\u540e\u79fb\u52a8\uff0c\u8fd4\u56de\u5199\u5165\u7684\u6570\u636e\u957f\u5ea6\nlocal len = buff:write(0x1a,0x30,0x31,0x32,0x00,0x01) -- \u6309\u6570\u503c\u5199\u5165\u591a\u4e2a\u5b57\u8282\u6570\u636e\n", "prefix": "buff:write"}, "buff:read": {"body": "buff:read(${1:length})", "description": "buff:read(length) - zbuff\u8bfb\u6570\u636e\uff08\u4ece\u5f53\u524d\u6307\u9488\u4f4d\u7f6e\u5f00\u59cb\uff1b\u6267\u884c\u540e\u6307\u9488\u4f1a\u5411\u540e\u79fb\u52a8\uff09\n\u4f20\u5165\u503c\uff1a\nint \u8bfb\u53d6buff\u4e2d\u7684\u5b57\u8282\u6570\n\u8fd4\u56de\u503c\uff1a\nstring \u8bfb\u53d6\u7ed3\u679c\n\u4f8b\u5b50\uff1a\n-- \u7c7bfile\u7684\u8bfb\u5199\u64cd\u4f5c\nlocal str = buff:read(3)\n", "prefix": "buff:read"}, "buff:clear": {"body": "buff:clear(${1:num})", "description": "buff:clear(num) - zbuff\u6e05\u7a7a\u6570\u636e\uff08\u4e0e\u5f53\u524d\u6307\u9488\u4f4d\u7f6e\u65e0\u5173\uff1b\u6267\u884c\u540e\u6307\u9488\u4f4d\u7f6e\u4e0d\u53d8\uff09\n\u4f20\u5165\u503c\uff1a\nint \u53ef\u9009\uff0c\u9ed8\u8ba4\u4e3a0\u3002\u8981\u8bbe\u7f6e\u4e3a\u7684\u503c\uff0c\u4e0d\u4f1a\u6539\u53d8buff\u6307\u9488\u4f4d\u7f6e\n\u4f8b\u5b50\uff1a\n-- \u5168\u90e8\u521d\u59cb\u5316\u4e3a0\nbuff:clear(0)\n", "prefix": "buff:clear"}, "buff:seek": {"body": "buff:seek(${1:base},${2:offset})", "description": "buff:seek(base,offset) - zbuff\u8bbe\u7f6e\u5149\u6807\u4f4d\u7f6e\uff08\u53ef\u80fd\u4e0e\u5f53\u524d\u6307\u9488\u4f4d\u7f6e\u6709\u5173\uff1b\u6267\u884c\u540e\u6307\u9488\u4f1a\u88ab\u8bbe\u7f6e\u5230\u6307\u5b9a\u4f4d\u7f6e\uff09\n\u4f20\u5165\u503c\uff1a\nint \u504f\u79fb\u957f\u5ea6\nint where, \u57fa\u70b9\uff0c\u9ed8\u8ba4zbuff.SEEK_SET\u3002zbuff.SEEK_SET: \u57fa\u70b9\u4e3a 0 \uff08\u6587\u4ef6\u5f00\u5934\uff09\uff0czbuff.SEEK_CUR: \u57fa\u70b9\u4e3a\u5f53\u524d\u4f4d\u7f6e\uff0czbuff.SEEK_END: \u57fa\u70b9\u4e3a\u6587\u4ef6\u5c3e\n\u8fd4\u56de\u503c\uff1a\nint \u8bbe\u7f6e\u5149\u6807\u540e\u4ecebuff\u5f00\u5934\u8ba1\u7b97\u8d77\u7684\u5149\u6807\u7684\u4f4d\u7f6e\n\u4f8b\u5b50\uff1a\nbuff:seek(0) -- \u628a\u5149\u6807\u8bbe\u7f6e\u5230\u6307\u5b9a\u4f4d\u7f6e\nbuff:seek(5,zbuff.SEEK_CUR)\nbuff:seek(-3,zbuff.SEEK_END)\n", "prefix": "buff:seek"}, "buff:pack": {"body": "buff:pack(${1:format},${2:val1},${3:val2},${4:...})", "description": "buff:pack(format,val1, val2,...) - \u5c06\u4e00\u7cfb\u5217\u6570\u636e\u6309\u7167\u683c\u5f0f\u5b57\u7b26\u8f6c\u5316\uff0c\u5e76\u5199\u5165\uff08\u4ece\u5f53\u524d\u6307\u9488\u4f4d\u7f6e\u5f00\u59cb\uff1b\u6267\u884c\u540e\u6307\u9488\u4f1a\u5411\u540e\u79fb\u52a8\uff09\n\u4f20\u5165\u503c\uff1a\nstring \u540e\u9762\u6570\u636e\u7684\u683c\u5f0f\uff08\u7b26\u53f7\u542b\u4e49\u89c1\u4e0b\u9762\u7684\u4f8b\u5b50\uff09\nval \u4f20\u5165\u7684\u6570\u636e\uff0c\u53ef\u4ee5\u4e3a\u591a\u4e2a\u6570\u636e\n\u8fd4\u56de\u503c\uff1a\nint \u6210\u529f\u5199\u5165\u7684\u6570\u636e\u957f\u5ea6\n\u4f8b\u5b50\uff1a\nbuff:pack(\">IIHA\", 0x1234, 0x4567, 0x12,\"abcdefg\") -- \u6309\u683c\u5f0f\u5199\u5165\u51e0\u4e2a\u6570\u636e\n-- A string\n-- f float\n-- d double\n-- n Lua number\n-- c char\n-- b byte / unsignen char\n-- h short\n-- H unsigned short\n-- i int\n-- I unsigned int\n-- l long\n-- L unsigned long\n-- < \u5c0f\u7aef\n-- > \u5927\u7aef\n-- = \u9ed8\u8ba4\u5927\u5c0f\u7aef\n", "prefix": "buff:pack"}, "buff:unpack": {"body": "buff:unpack(${1:format})", "description": "buff:unpack(format) - \u5c06\u4e00\u7cfb\u5217\u6570\u636e\u6309\u7167\u683c\u5f0f\u5b57\u7b26\u8bfb\u53d6\u51fa\u6765\uff08\u4ece\u5f53\u524d\u6307\u9488\u4f4d\u7f6e\u5f00\u59cb\uff1b\u6267\u884c\u540e\u6307\u9488\u4f1a\u5411\u540e\u79fb\u52a8\uff09\n\u4f20\u5165\u503c\uff1a\nstring \u6570\u636e\u7684\u683c\u5f0f\uff08\u7b26\u53f7\u542b\u4e49\u89c1\u4e0a\u9762pack\u63a5\u53e3\u7684\u4f8b\u5b50\uff09\n\u8fd4\u56de\u503c\uff1a\nint \u6210\u529f\u8bfb\u53d6\u7684\u6570\u636e\u5b57\u8282\u957f\u5ea6\nany \u6309\u683c\u5f0f\u8bfb\u51fa\u6765\u7684\u6570\u636e\n\u4f8b\u5b50\uff1a\nlocal cnt,a,b,c,s = buff:unpack(\">IIHA10\") -- \u6309\u683c\u5f0f\u8bfb\u53d6\u51e0\u4e2a\u6570\u636e\n--\u5982\u679c\u5168\u90e8\u6210\u529f\u8bfb\u53d6\uff0ccnt\u5c31\u662f4+4+2+10=20\n", "prefix": "buff:unpack"}, "buff:read\u7c7b\u578b": {"body": "buff:read\u7c7b\u578b()", "description": "buff:read\u7c7b\u578b() - \u8bfb\u53d6\u4e00\u4e2a\u6307\u5b9a\u7c7b\u578b\u7684\u6570\u636e\uff08\u4ece\u5f53\u524d\u6307\u9488\u4f4d\u7f6e\u5f00\u59cb\uff1b\u6267\u884c\u540e\u6307\u9488\u4f1a\u5411\u540e\u79fb\u52a8\uff09\n\u4f20\u5165\u503c\uff1a\n\u6ce8\u91ca \u8bfb\u53d6\u7c7b\u578b\u53ef\u4e3a\uff1aI8\u3001U8\u3001I16\u3001U16\u3001I32\u3001U32\u3001I64\u3001U64\u3001F32\u3001F64\n\u8fd4\u56de\u503c\uff1a\nnumber \u8bfb\u53d6\u7684\u6570\u636e\uff0c\u5982\u679c\u8d8a\u754c\u5219\u4e3anil\n\u4f8b\u5b50\uff1a\nlocal data = buff:readI8()\nlocal data = buff:readU32()\n", "prefix": "buff:read\u7c7b\u578b"}, "buff:write\u7c7b\u578b": {"body": "buff:write\u7c7b\u578b()", "description": "buff:write\u7c7b\u578b() - \u5199\u5165\u4e00\u4e2a\u6307\u5b9a\u7c7b\u578b\u7684\u6570\u636e\uff08\u4ece\u5f53\u524d\u6307\u9488\u4f4d\u7f6e\u5f00\u59cb\uff1b\u6267\u884c\u540e\u6307\u9488\u4f1a\u5411\u540e\u79fb\u52a8\uff09\n\u4f20\u5165\u503c\uff1a\nnumber \u5f85\u5199\u5165\u7684\u6570\u636e\n\u6ce8\u91ca \u5199\u5165\u7c7b\u578b\u53ef\u4e3a\uff1aI8\u3001U8\u3001I16\u3001U16\u3001I32\u3001U32\u3001I64\u3001U64\u3001F32\u3001F64\n\u8fd4\u56de\u503c\uff1a\nnumber \u6210\u529f\u5199\u5165\u7684\u957f\u5ea6\n\u4f8b\u5b50\uff1a\nlocal len = buff:writeI8(10)\nlocal len = buff:writeU32(1024)\n", "prefix": "buff:write\u7c7b\u578b"}, "buff:toStr": {"body": "buff:toStr(${1:offset},${2:length})", "description": "buff:toStr(offset,length) - \u6309\u8d77\u59cb\u4f4d\u7f6e\u548c\u957f\u5ea6\u53d6\u51fa\u6570\u636e\uff08\u4e0e\u5f53\u524d\u6307\u9488\u4f4d\u7f6e\u65e0\u5173\uff1b\u6267\u884c\u540e\u6307\u9488\u4f4d\u7f6e\u4e0d\u53d8\uff09\n\u4f20\u5165\u503c\uff1a\nint \u6570\u636e\u7684\u8d77\u59cb\u4f4d\u7f6e\uff08\u8d77\u59cb\u4f4d\u7f6e\u4e3a0\uff09,\u9ed8\u8ba4\u503c\u4e5f\u662f0\nint \u6570\u636e\u7684\u957f\u5ea6,\u9ed8\u8ba4\u662f\u5168\u90e8\u6570\u636e\n\u8fd4\u56de\u503c\uff1a\nstring \u8bfb\u51fa\u6765\u7684\u6570\u636e\n\u4f8b\u5b50\uff1a\nlocal s = buff:toStr(0,5)--\u8bfb\u53d6\u5f00\u5934\u7684\u4e94\u4e2a\u5b57\u8282\u6570\u636e\nlocal s = buff:toStr() -- \u53d6\u51fa\u6574\u4e2azbuff\u7684\u6570\u636e\nlocal s = buff:toStr(0, buff:used()) -- \u53d6\u51fa\u5df2\u4f7f\u7528\u7684\u90e8\u5206, \u4e0ebuff:query()\u4e00\u6837\n", "prefix": "buff:toStr"}, "buff:len": {"body": "buff:len()", "description": "buff:len() - \u83b7\u53d6zbuff\u5bf9\u8c61\u7684\u957f\u5ea6\uff08\u4e0e\u5f53\u524d\u6307\u9488\u4f4d\u7f6e\u65e0\u5173\uff1b\u6267\u884c\u540e\u6307\u9488\u4f4d\u7f6e\u4e0d\u53d8\uff09\n\u8fd4\u56de\u503c\uff1a\nint zbuff\u5bf9\u8c61\u7684\u957f\u5ea6\n\u4f8b\u5b50\uff1a\nlen = buff:len()\nlen = #buff\n", "prefix": "buff:len"}, "buff:setFrameBuffer": {"body": "buff:setFrameBuffer(${1:width},${2:height},${3:bit},${4:color})", "description": "buff:setFrameBuffer(width,height,bit,color) - \u8bbe\u7f6ebuff\u5bf9\u8c61\u7684FrameBuffer\u5c5e\u6027\uff08\u4e0e\u5f53\u524d\u6307\u9488\u4f4d\u7f6e\u65e0\u5173\uff1b\u6267\u884c\u540e\u6307\u9488\u4f4d\u7f6e\u4e0d\u53d8\uff09\n\u4f20\u5165\u503c\uff1a\nint FrameBuffer\u7684\u5bbd\u5ea6\nint FrameBuffer\u7684\u9ad8\u5ea6\nint FrameBuffer\u7684\u8272\u4f4d\u6df1\u5ea6\nint FrameBuffer\u7684\u521d\u59cb\u989c\u8272\n\u8fd4\u56de\u503c\uff1a\nbool \u8bbe\u7f6e\u6210\u529f\u4f1a\u8fd4\u56detrue\n\u4f8b\u5b50\uff1a\nresult = buff:setFrameBuffer(320,240,16,0xffff)\n", "prefix": "buff:setFrameBuffer"}, "buff:pixel": {"body": "buff:pixel(${1:x},${2:y},${3:color})", "description": "buff:pixel(x,y,color) - \u8bbe\u7f6e\u6216\u83b7\u53d6FrameBuffer\u67d0\u4e2a\u50cf\u7d20\u70b9\u7684\u989c\u8272\uff08\u4e0e\u5f53\u524d\u6307\u9488\u4f4d\u7f6e\u65e0\u5173\uff1b\u6267\u884c\u540e\u6307\u9488\u4f4d\u7f6e\u4e0d\u53d8\uff09\n\u4f20\u5165\u503c\uff1a\nint \u4e0e\u6700\u5de6\u8fb9\u7684\u8ddd\u79bb\uff0c\u8303\u56f4\u662f0~\u5bbd\u5ea6-1\nint \u4e0e\u6700\u4e0a\u8fb9\u7684\u8ddd\u79bb\uff0c\u8303\u56f4\u662f0~\u9ad8\u5ea6-1\nint \u989c\u8272\uff0c\u5982\u679c\u7559\u7a7a\u5219\u8868\u793a\u83b7\u53d6\u8be5\u4f4d\u7f6e\u7684\u989c\u8272\n\u8fd4\u56de\u503c\uff1a\nany \u8bbe\u7f6e\u989c\u8272\u65f6\uff0c\u8bbe\u7f6e\u6210\u529f\u4f1a\u8fd4\u56detrue\uff1b\u8bfb\u53d6\u989c\u8272\u65f6\uff0c\u8fd4\u56de\u989c\u8272\u7684\u503c\uff0c\u8bfb\u53d6\u5931\u8d25\u8fd4\u56denil\n\u4f8b\u5b50\uff1a\nrerult = buff:pixel(0,3,0)\ncolor = buff:pixel(0,3)\n", "prefix": "buff:pixel"}, "buff:drawLine": {"body": "buff:drawLine(${1:x1},${2:y1},${3:x2},${4:y2},${5:color})", "description": "buff:drawLine(x1,y1,x2,y2,color) - \u753b\u4e00\u6761\u7ebf\uff08\u4e0e\u5f53\u524d\u6307\u9488\u4f4d\u7f6e\u65e0\u5173\uff1b\u6267\u884c\u540e\u6307\u9488\u4f4d\u7f6e\u4e0d\u53d8\uff09\n\u4f20\u5165\u503c\uff1a\nint \u8d77\u59cb\u5750\u6807\u70b9\u4e0e\u6700\u5de6\u8fb9\u7684\u8ddd\u79bb\uff0c\u8303\u56f4\u662f0~\u5bbd\u5ea6-1\nint \u8d77\u59cb\u5750\u6807\u70b9\u4e0e\u6700\u4e0a\u8fb9\u7684\u8ddd\u79bb\uff0c\u8303\u56f4\u662f0~\u9ad8\u5ea6-1\nint \u7ed3\u675f\u5750\u6807\u70b9\u4e0e\u6700\u5de6\u8fb9\u7684\u8ddd\u79bb\uff0c\u8303\u56f4\u662f0~\u5bbd\u5ea6-1\nint \u7ed3\u675f\u5750\u6807\u70b9\u4e0e\u6700\u4e0a\u8fb9\u7684\u8ddd\u79bb\uff0c\u8303\u56f4\u662f0~\u9ad8\u5ea6-1\nint \u53ef\u9009\uff0c\u989c\u8272\uff0c\u9ed8\u8ba4\u4e3a0\n\u8fd4\u56de\u503c\uff1a\nbool \u753b\u6210\u529f\u4f1a\u8fd4\u56detrue\n\u4f8b\u5b50\uff1a\nrerult = buff:drawLine(0,0,2,3,0xffff)\n", "prefix": "buff:drawLine"}, "buff:drawRect": {"body": "buff:drawRect(${1:x1},${2:y1},${3:x2},${4:y2},${5:color},${6:fill})", "description": "buff:drawRect(x1,y1,x2,y2,color,fill) - \u753b\u4e00\u4e2a\u77e9\u5f62\uff08\u4e0e\u5f53\u524d\u6307\u9488\u4f4d\u7f6e\u65e0\u5173\uff1b\u6267\u884c\u540e\u6307\u9488\u4f4d\u7f6e\u4e0d\u53d8\uff09\n\u4f20\u5165\u503c\uff1a\nint \u8d77\u59cb\u5750\u6807\u70b9\u4e0e\u6700\u5de6\u8fb9\u7684\u8ddd\u79bb\uff0c\u8303\u56f4\u662f0~\u5bbd\u5ea6-1\nint \u8d77\u59cb\u5750\u6807\u70b9\u4e0e\u6700\u4e0a\u8fb9\u7684\u8ddd\u79bb\uff0c\u8303\u56f4\u662f0~\u9ad8\u5ea6-1\nint \u7ed3\u675f\u5750\u6807\u70b9\u4e0e\u6700\u5de6\u8fb9\u7684\u8ddd\u79bb\uff0c\u8303\u56f4\u662f0~\u5bbd\u5ea6-1\nint \u7ed3\u675f\u5750\u6807\u70b9\u4e0e\u6700\u4e0a\u8fb9\u7684\u8ddd\u79bb\uff0c\u8303\u56f4\u662f0~\u9ad8\u5ea6-1\nint \u53ef\u9009\uff0c\u989c\u8272\uff0c\u9ed8\u8ba4\u4e3a0\nbool \u53ef\u9009\uff0c\u662f\u5426\u5728\u5185\u90e8\u586b\u5145\uff0c\u9ed8\u8ba4nil\n\u8fd4\u56de\u503c\uff1a\nbool \u753b\u6210\u529f\u4f1a\u8fd4\u56detrue\n\u4f8b\u5b50\uff1a\nrerult = buff:drawRect(0,0,2,3,0xffff)\n", "prefix": "buff:drawRect"}, "buff:drawCircle": {"body": "buff:drawCircle(${1:x},${2:y},${3:r},${4:color},${5:fill})", "description": "buff:drawCircle(x,y,r,color,fill) - \u753b\u4e00\u4e2a\u5706\u5f62\uff08\u4e0e\u5f53\u524d\u6307\u9488\u4f4d\u7f6e\u65e0\u5173\uff1b\u6267\u884c\u540e\u6307\u9488\u4f4d\u7f6e\u4e0d\u53d8\uff09\n\u4f20\u5165\u503c\uff1a\nint **\u5706\u5fc3**\u4e0e\u6700\u5de6\u8fb9\u7684\u8ddd\u79bb\uff0c\u8303\u56f4\u662f0~\u5bbd\u5ea6-1\nint **\u5706\u5fc3**\u4e0e\u6700\u4e0a\u8fb9\u7684\u8ddd\u79bb\uff0c\u8303\u56f4\u662f0~\u9ad8\u5ea6-1\nint \u5706\u7684\u534a\u5f84\nint \u53ef\u9009\uff0c\u5706\u7684\u989c\u8272\uff0c\u9ed8\u8ba4\u4e3a0\nbool \u53ef\u9009\uff0c\u662f\u5426\u5728\u5185\u90e8\u586b\u5145\uff0c\u9ed8\u8ba4nil\n\u8fd4\u56de\u503c\uff1a\nbool \u753b\u6210\u529f\u4f1a\u8fd4\u56detrue\n\u4f8b\u5b50\uff1a\nrerult = buff:drawCircle(15,5,3,0xC)\nrerult = buff:drawCircle(15,5,3,0xC,true)\n", "prefix": "buff:drawCircle"}, "buff[n": {"body": "buff[n]", "description": "buff[n] - \u4ee5\u4e0b\u6807\u5f62\u5f0f\u8fdb\u884c\u6570\u636e\u8bfb\u5199\uff08\u4e0e\u5f53\u524d\u6307\u9488\u4f4d\u7f6e\u65e0\u5173\uff1b\u6267\u884c\u540e\u6307\u9488\u4f4d\u7f6e\u4e0d\u53d8\uff09\n\u4f20\u5165\u503c\uff1a\nint \u7b2c\u51e0\u4e2a\u6570\u636e\uff0c\u4ee50\u5f00\u59cb\u7684\u4e0b\u6807\uff08C\u6807\u51c6\uff09\n\u8fd4\u56de\u503c\uff1a\nnumber \u8be5\u4f4d\u7f6e\u7684\u6570\u636e\n\u4f8b\u5b50\uff1a\nbuff[0] = 0xc8\nlocal data = buff[0]\n", "prefix": "buff[n"}, "buff:resize": {"body": "buff:resize(${1:n})", "description": "buff:resize(n) - \u8c03\u6574zbuff\u5b9e\u9645\u5206\u914d\u7a7a\u95f4\u7684\u5927\u5c0f\uff0c\u7c7b\u4f3c\u4e8erealloc\u7684\u6548\u679c\uff0cnew = realloc(old, n)\uff0c\u53ef\u4ee5\u6269\u5927\u6216\u8005\u7f29\u5c0f\uff08\u5982\u679c\u7f29\u5c0f\u540elen\u5c0f\u4e8e\u4e86used\uff0c\u90a3\u4e48used=\u65b0len\uff09\n\u4f20\u5165\u503c\uff1a\nint \u65b0\u7a7a\u95f4\u5927\u5c0f\n\u4f8b\u5b50\uff1a\nbuff:resize(20)\n", "prefix": "buff:resize"}, "buff:copy": {"body": "buff:copy(${1:start},${2:para},${3:...})", "description": "buff:copy(start, para,...) - zbuff\u52a8\u6001\u5199\u6570\u636e\uff0c\u7c7b\u4f3c\u4e8ememcpy\u6548\u679c\uff0c\u5f53\u539f\u6709\u7a7a\u95f4\u4e0d\u8db3\u65f6\u52a8\u6001\u6269\u5927\u7a7a\u95f4\n\u4f20\u5165\u503c\uff1a\nint \u5199\u5165buff\u7684\u8d77\u59cb\u4f4d\u7f6e\uff0c\u5982\u679c\u4e0d\u4e3a\u6570\u5b57\uff0c\u5219\u4e3abuff\u7684used\uff0c\u5982\u679c\u5c0f\u4e8e0\uff0c\u5219\u4eceused\u5f80\u524d\u6570\uff0c-1 = used - 1\nany \u5199\u5165buff\u7684\u6570\u636e\uff0cstring\u6216zbuff\u8005\u65f6\u4e3a\u4e00\u4e2a\u53c2\u6570\uff0cnumber\u65f6\u53ef\u4e3a\u591a\u4e2a\u53c2\u6570\n\u8fd4\u56de\u503c\uff1a\nnumber \u6570\u636e\u6210\u529f\u5199\u5165\u7684\u957f\u5ea6\n\u4f8b\u5b50\uff1a\nlocal len = buff:copy(nil, \"123\") -- \u7c7b\u4f3c\u4e8ememcpy(&buff[used], \"123\", 3) used+= 3 \u4ecebuff\u5f00\u59cb\u5199\u5165\u6570\u636e,\u6307\u9488\u76f8\u5e94\u5730\u5f80\u540e\u79fb\u52a8\nlocal len = buff:copy(0, \"123\") -- \u7c7b\u4f3c\u4e8ememcpy(&buff[0], \"123\", 3) if (used < 3) used = 3 \u4ece\u4f4d\u7f6e0\u5199\u5165\u6570\u636e,\u6307\u9488\u6709\u53ef\u80fd\u4f1a\u79fb\u52a8\nlocal len = buff:copy(2, 0x1a,0x30,0x31,0x32,0x00,0x01) -- \u7c7b\u4f3c\u4e8ememcpy(&buff[2], [0x1a,0x30,0x31,0x32,0x00,0x01], 6) if (used < (2+6)) used = (2+6)\u4ece\u4f4d\u7f6e2\u5f00\u59cb\uff0c\u6309\u6570\u503c\u5199\u5165\u591a\u4e2a\u5b57\u8282\u6570\u636e\nlocal len = buff:copy(9, buff2) -- \u7c7b\u4f3c\u4e8ememcpy(&buff[9], &buff2[0], buff2\u7684used) if (used < (9+buff2\u7684used)) used = (9+buff2\u7684used) \u4ece\u4f4d\u7f6e9\u5f00\u59cb\uff0c\u5408\u5e76\u5165buff2\u91cc0~used\u7684\u5185\u5bb9\nlocal len = buff:copy(5, buff2, 10, 1024) -- \u7c7b\u4f3c\u4e8ememcpy(&buff[5], &buff2[10], 1024) if (used < (5+1024)) used = (5+1024)\n", "prefix": "buff:copy"}, "buff:used": {"body": "buff:used()", "description": "buff:used() - \u83b7\u53d6zbuff\u91cc\u6700\u540e\u4e00\u4e2a\u6570\u636e\u4f4d\u7f6e\u6307\u9488\u5230\u9996\u5730\u5740\u7684\u504f\u79fb\u91cf\uff0c\u6765\u8868\u793azbuff\u5185\u5df2\u6709\u6709\u6548\u6570\u636e\u91cf\u5927\u5c0f\uff0c\u6ce8\u610f\u8fd9\u4e2a\u4e0d\u540c\u4e8e\u5206\u914d\u7684\u7a7a\u95f4\u5927\u5c0f\uff0c\u7531\u4e8eseek()\u4f1a\u6539\u53d8\u6700\u540e\u4e00\u4e2a\u6570\u636e\u4f4d\u7f6e\u6307\u9488\uff0c\u56e0\u6b64\u4e5f\u4f1a\u5f71\u54cd\u5230used()\u8fd4\u56de\u503c\u3002\n\u8fd4\u56de\u503c\uff1a\nint \u6709\u6548\u6570\u636e\u91cf\u5927\u5c0f\n\u4f8b\u5b50\uff1a\nbuff:used()\n", "prefix": "buff:used"}, "buff:del": {"body": "buff:del(${1:offset},${2:length})", "description": "buff:del(offset,length) - \u5220\u9664zbuff 0~used\u8303\u56f4\u5185\u7684\u4e00\u6bb5\u6570\u636e\uff0c\u6ce8\u610f\u53ea\u662f\u6539\u53d8\u4e86used\u7684\u503c\uff0c\u5e76\u4e0d\u662f\u771f\u7684\u5728ram\u91cc\u53bb\u6e05\u9664\u6389\u6570\u636e\n\u4f20\u5165\u503c\uff1a\nint \u8d77\u59cb\u4f4d\u7f6estart, \u9ed8\u8ba40\uff0c\u5982\u679c<0\u5219\u4eceused\u5f80\u524d\u6570\uff0c\u6bd4\u5982 -1 \u90a3\u4e48start= used - 1\nint \u957f\u5ea6del_len\uff0c\u9ed8\u8ba4\u4e3aused\uff0c\u5982\u679cstart + del_len\u6570\u503c\u5927\u4e8eused\uff0c\u4f1a\u5f3a\u5236\u8c03\u6574del_len = used - start\n\u4f8b\u5b50\uff1a\nbuff:del(1,4)\t--\u4ece\u4f4d\u7f6e1\u5f00\u59cb\u5220\u96644\u4e2a\u5b57\u8282\u6570\u636e\nbuff:del(-1,4)\t--\u4ece\u4f4d\u7f6eused-1\u5f00\u59cb\u5220\u96644\u4e2a\u5b57\u8282\u6570\u636e\uff0c\u4f46\u662f\u8fd9\u80af\u5b9a\u4f1a\u8d85\u8fc7used\uff0c\u6240\u4ee5del_len\u4f1a\u8c03\u6574\u4e3a1\uff0c\u5b9e\u9645\u4e0a\u5c31\u662f\u5220\u6389\u4e86\u6700\u540e\u4e00\u4e2a\u5b57\u8282\n", "prefix": "buff:del"}, "buff:query": {"body": "buff:query(${1:offset},${2:length},${3:isbigend},${4:issigned},${5:isfloat})", "description": "buff:query(offset,length,isbigend,issigned,isfloat) - \u6309\u8d77\u59cb\u4f4d\u7f6e\u548c\u957f\u5ea60~used\u8303\u56f4\u5185\u53d6\u51fa\u6570\u636e\uff0c\u5982\u679c\u662f1,2,4,8\u5b57\u8282\uff0c\u6839\u636e\u540e\u7eed\u53c2\u6570\u8f6c\u6362\u6210\u6d6e\u70b9\u6216\u8005\u6574\u5f62\n\u4f20\u5165\u503c\uff1a\nint \u6570\u636e\u7684\u8d77\u59cb\u4f4d\u7f6e\uff08\u8d77\u59cb\u4f4d\u7f6e\u4e3a0\uff09\nint \u6570\u636e\u7684\u957f\u5ea6\nboolean \u662f\u5426\u662f\u5927\u7aef\u683c\u5f0f\uff0c\u5982\u679c\u4e3anil\uff0c\u5219\u4e0d\u4f1a\u8f6c\u6362\uff0c\u76f4\u63a5\u5b57\u8282\u6d41\u8f93\u51fa\nboolean \u662f\u5426\u662f\u6709\u7b26\u53f7\u7684\uff0c\u9ed8\u8ba4\u4e3afalse\nboolean \u662f\u5426\u662f\u6d6e\u70b9\u578b\uff0c\u9ed8\u8ba4\u4e3afalse\n\u8fd4\u56de\u503c\uff1a\nstring \u8bfb\u51fa\u6765\u7684\u6570\u636e\n\u4f8b\u5b50\uff1a\nlocal s = buff:query(0,5)--\u8bfb\u53d6\u5f00\u5934\u7684\u4e94\u4e2a\u5b57\u8282\u6570\u636e\n", "prefix": "buff:query"}, "buff:set": {"body": "buff:set(${1:start},${2:num},${3:len})", "description": "buff:set(start, num, len) - zbuff\u7684\u7c7b\u4f3c\u4e8ememset\u64cd\u4f5c\uff0c\u7c7b\u4f3c\u4e8ememset(&buff[start], num, len)\uff0c\u5f53\u7136\u6709ram\u8d8a\u754c\u4fdd\u62a4\uff0c\u4f1a\u5bf9len\u6709\u4e00\u5b9a\u7684\u9650\u5236\n\u4f20\u5165\u503c\uff1a\nint \u53ef\u9009\uff0c\u5f00\u59cb\u4f4d\u7f6e\uff0c\u9ed8\u8ba4\u4e3a0,\nint \u53ef\u9009\uff0c\u9ed8\u8ba4\u4e3a0\u3002\u8981\u8bbe\u7f6e\u4e3a\u7684\u503c\nint \u53ef\u9009\uff0c\u957f\u5ea6\uff0c\u9ed8\u8ba4\u4e3a\u5168\u90e8\u7a7a\u95f4\uff0c\u5982\u679c\u8d85\u51fa\u8303\u56f4\u4e86\uff0c\u4f1a\u81ea\u52a8\u622a\u65ad\n\u4f8b\u5b50\uff1a\n-- \u5168\u90e8\u521d\u59cb\u5316\u4e3a0\nbuff:set() --\u7b49\u540c\u4e8e memset(buff, 0, sizeof(buff))\nbuff:set(8) --\u7b49\u540c\u4e8e memset(&buff[8], 0, sizeof(buff) - 8)\nbuff:set(0, 0x55) --\u7b49\u540c\u4e8e memset(buff, 0x55, sizeof(buff))\nbuff:set(4, 0xaa, 12) --\u7b49\u7528\u4e8e memset(&buff[4], 0xaa, 12)\n", "prefix": "buff:set"}, "buff:isEqual": {"body": "buff:isEqual(${1:start},${2:buff2},${3:start2},${4:len})", "description": "buff:isEqual(start, buff2, start2, len) - zbuff\u7684\u7c7b\u4f3c\u4e8ememcmp\u64cd\u4f5c\uff0c\u7c7b\u4f3c\u4e8ememcmp(&buff[start], &buff2[start2], len)\n\u4f20\u5165\u503c\uff1a\nint \u53ef\u9009\uff0c\u5f00\u59cb\u4f4d\u7f6e\uff0c\u9ed8\u8ba4\u4e3a0,\nzbuff \u6bd4\u8f83\u7684\u5bf9\u8c61\nint \u53ef\u9009\uff0c\u6bd4\u8f83\u7684\u5bf9\u8c61\u7684\u5f00\u59cb\u4f4d\u7f6e\uff0c\u9ed8\u8ba4\u4e3a0\nint \u6bd4\u8f83\u957f\u5ea6\n\u8fd4\u56de\u503c\uff1a\nboolean true\u76f8\u7b49\uff0cfalse\u4e0d\u76f8\u7b49\nint \u76f8\u7b49\u8fd4\u56de0\uff0c\u4e0d\u76f8\u7b49\u8fd4\u56de\u7b2c\u4e00\u4e2a\u4e0d\u76f8\u7b49\u4f4d\u7f6e\u7684\u5e8f\u53f7\n\u4f8b\u5b50\uff1a\nlocal result, offset = buff:isEqual(1, buff2, 2, 10) --\u7b49\u540c\u4e8ememcmp(&buff[1], &buff2[2], 10)\n", "prefix": "buff:isEqual"}, "zlib.c": {"body": "zlib.c(${1:input_file},${2:output_file})", "description": "zlib.c(input_file,output_file) - zlib\u538b\u7f29(\u9700\u8981\u5927\u7ea6270k\u5185\u5b58\uff0c\u5927\u90e8\u5206mcu\u4e0d\u652f\u6301)\n\u4f20\u5165\u503c\uff1a\nstring input_file \u8f93\u5165\u6587\u4ef6\nstring output_file \u8f93\u51fa\u6587\u4ef6\n\u8fd4\u56de\u503c\uff1a\nbool \u6b63\u5e38\u8fd4\u56de ture \u5931\u8d25\u8fd4\u56de false\n\u4f8b\u5b50\uff1a\nzlib.c(\"/sd/1.txt\",\"/sd/zlib\")\n", "prefix": "zlib.c"}, "zlib.d": {"body": "zlib.d(${1:input_file},${2:output_file})", "description": "zlib.d(input_file,output_file) - zlib\u89e3\u538b\u7f29(\u9700\u8981\u5927\u7ea618k\u5185\u5b58\uff0c\u5927\u90e8\u5206mcu\u90fd\u652f\u6301)\n\u4f20\u5165\u503c\uff1a\nstring input_file \u8f93\u5165\u6587\u4ef6\nstring output_file \u8f93\u51fa\u6587\u4ef6\n\u8fd4\u56de\u503c\uff1a\nbool \u6b63\u5e38\u8fd4\u56de ture \u5931\u8d25\u8fd4\u56de false\n\u4f8b\u5b50\uff1a\nzlib.d(\"/sd/zlib\",\"/sd/1.txt\")\n", "prefix": "zlib.d"}} \ No newline at end of file diff --git a/translated-docs/api/wlan.md b/translated-docs/api/wlan.md index 3c4695e13..29566b0bb 100644 --- a/translated-docs/api/wlan.md +++ b/translated-docs/api/wlan.md @@ -110,7 +110,7 @@ None --- -## wlan.connect(ssid, password) +## wlan.connect(ssid, password, auto_reconnect) @@ -122,6 +122,7 @@ As a STATION, connect to the specified AP |-|-| |string|AP of ssid| |string|AP password of, optional| +|int|0 Turn off automatic reconnect, 1 turn on automatic reconnect. Auto reconnect is currently forced on| **Return Value** diff --git a/translation-data/api/wlan.txt b/translation-data/api/wlan.txt index 7d0037c9d..f81812cbe 100644 --- a/translation-data/api/wlan.txt +++ b/translation-data/api/wlan.txt @@ -1,190 +1,192 @@ -本函数需要在wlan.init之后才允许调用 -This function needs to be called after wlan.init. -本函数应该在wlan.init之前设置好, 最晚应早于 -This function should be set before wlan.init, at the latest before -本机IP地址,例如192.168.2.200, 禁用DHCP时必填 -Local IP address, such as 192.168.2.200, required when DHCP is disabled -本机IP网关,例如192.168.2.1, 禁用DHCP时必填 -Native IP gateway, such as 192.168.2.1, required when DHCP is disabled -本机IP掩码,例如255.255.255.0, 禁用DHCP时必填 -Native IP mask, for example 255.255.255.0, required when DHCP is disabled -本库有专属demo,[点此链接查看wlan的demo例子 -This library has its own demo,[click this link to view the demo example of wlan -本页文档由[这个文件](https://gitee.com/openLuat/LuatOS/tree/master/luat/../components/wlan/luat_lib_wlan.c)自动生成。如有错误,请提交issue或帮忙修改后pr,谢谢 -This page document is automatically generated by [this file](https://gitee.com/openLuat/LuatOS/tree/master/luat/../components/wlan/luat_lib_wlan.c). If there is any error, please submit issue or help modify pr, thank you -本API于 2023.03.31 新增 -This API was added on March 31, 2023.03.31 -本API于 2023.07.23 新增 -This API was added on July 23, 2023.0. -本API于 2023.10.06 新增 -This API was added on October 06, 2023. -部分模块支持恢复默认MAC, 例如esp32系列 -Some modules support restoring the default MAC, such as the esp32 series -参数 -Parameters -操作 -Operation -常量 -Constant -常量|类型|解释 -constant | type | explanation -成功创建返回true,否则返回 -Returns true for successful creation, otherwise -成功返回true,否则返回 -Returns true on success, otherwise -初始化 -Initialization -传入值类型|解释 -Incoming Value Type | Explanation -待设置的MAC地址,长度6字节 -MAC address to be set, length 6 bytes -当前的hostname或者设置后的 -Current hostname or after setting -当前省电模式/设置后的省电模式 -Current power saving mode/power saving mode after setting -地址,当前仅返回ipv4地址,例如 -Address. Currently, only ipv4 addresses are returned. For example -地址,十六进制字符串形式 "AABBCCDDEEFF" 或原始数据 -Address, hexadecimal string form "AABBCCDDEEFF" or raw data -的 -of -的密码,可选 -Password for, optional -的默认值是 "LUATOS_" + 设备的MAC值 -The default value is the MAC value of the "LUATOS_" device -的网关地址, 默认 -The gateway address of the, default -的网关掩码, 默认 -Gateway mask of, default -的password,可选 -password of, optional -的SSID,必填 -SSID of, required -典型输出 -Typical output -读取或设置 -Read or set -读取或设置省电模式 -Read or set power saving mode -对于仅支持wifiscan的模块, 仅 init/scan/scanResult 函数是可用的 -For modules that only support wifiscan, only the init/scan/scanResult functions are available -发起连接成功返回true,否则返回false.注意,不代表连接AP成功 -Returns true if the connection is initiated, otherwise false. Note that the connection to the AP is not successful -返回值 -Return Value -返回值类型|解释 -return value type | explanation -关闭AP功能 -Turn off the AP function -混合模式, 做AP又做 -Mixed mode, do AP and do again -获取 -Get -获取信息,如AP的bssid,信号强度 -Get information such as bssid of AP, signal strength -获取ip,仅STATION或APSTA模式下有意义 -obtain ip address, meaningful only in STATION or APSTA mode -获取wifi扫描结果 -Get wifi scan results -建立的通道, 默认 -established channel, default -禁用DHCP,自行设置IP/掩码/网关 -Disable DHCP, set IP/Mask/Gateway by yourself -例如 -For example -例如: Air780E/Air600E/Air780EG等仅支持 -For example, Air780E/Air600E/Air780EG only support -例子 -Examples -模式 -Mode -配网 -distribution network -配网,|微信常用 -Distribution network, | WeChat commonly used -配网,|V2, 未测试 -Distribution network, | V2, not tested -配网模式, 默认为esptouch, 若传0则主动停止配网 -Distribution network mode, which defaults to esptouch. If 0 is passed, the distribution network will be stopped actively. -普通模式,不带密码 -Normal mode, without password -普通模式,带密码 -Normal mode with password -启动 -Start -启动成功或停止成功, 返回true, 否则返回 -Start success or stop success, returns true, otherwise returns -启用DHCP, 默认也是启用DHCP,这里是演示API使用 -Enable DHCP, the default is also enabled DHCP, here is the demo API use -请查阅常量表 -Please refer to the Constant Table -扫描成功后, 会有WLAN_SCAN_DONE消息, 读取即可 -After the scan is successful, there will be a WLAN_SCAN_DONE message, read -扫描结果 -Scan Results -扫描wifi频段 -scan wifi band -设置 -Setup -设置何种mac地址,对ESP32系列来说,只能设置STA的地址,即 -What mac address to set, for ESP32 series, only STA address can be set, namely -设置何种mac地址,对ESP32系列来说,只能设置STA的地址,即0,默认值也是 -What mac address to set, for ESP32 series, only STA address can be set, I .e. 0, and the default value is also -设置网关IP,掩码, 通道, 2023.7.13 新增, BSP未必支持 -Set gateway IP, mask, channel, 2023.7.13 new, BSP may not support -设置为AP模式, 广播ssid, 接收wifi客户端的链接 -Set to AP mode, broadcast ssid, receive wifi client link -设置为STATION模式, 也是初始化后的默认模式 -Set to STATION mode, which is also the default mode after initialization -设置MAC地址, 2023-03-01之后编译的固件可用 -Set MAC address, firmware compiled after 2023-03-01 is available -设置Station模式下的IP获取模式 -Set IP acquisition mode in Station mode -设置wifi模式 -Set wifi mode -省电模式,可选, 传入就是设置, 例如 -Power saving mode, optional, incoming is the setting, for example -示例 -Example -是否启用DHCP,默认是 -Whether to enable DHCP, the default is -是否转HEX字符, 默认是true,即输出hex字符串 -Whether to convert the HEX character, the default is true, that is, the output hex string. -特殊模式, 重用之前的ssid和密码,本次直接连接 -Special mode, reuse the previous ssid and password, this direct connection -提醒 -Reminder -我的wifi物联网设备 -My wifi IoT device -无 -None -下面演示的是初始化wifi后定时扫描,请按实际业务需求修改 -The following demonstration is a regular scan after initializing wifi, which can be modified according to actual business requirements. -详情,键值对形式 -Details, key-value pair form -详细用法请查看 -Please see the detailed usage -新的hostname,可选, 传入就是设置 -New hostname, optional, incoming is setting -已经连接成功返回true,否则返回 -The connection has been successfully returned true, otherwise it returns -已适配 -Adapted -用法请查阅 wlan.scan() 函数 -Please refer to wlan.scan() function for usage -在2023-11-01 之后编译的固件可用 -Firmware compiled after 2023-11-01 is available -注意, 调用本AP时,若wifi模式为STATION,会自动切换成 -Note that when calling this AP, if the wifi mode is STATION, it will automatically switch -注意, 前提是本次上电后已经传过ssid和或password,否则必失败 -Note that the premise is that ssid and or password have been transmitted after this power-on, otherwise it will fail. -注意, wlan.scan()是异步API,启动扫描后会马上返回 -Note that wlan.scan() is an asynchronous API and will return immediately after starting the scan. -最多等3分钟 -Wait up to 3 minutes. -作为STATION时,断开 -When STATION, disconnect -作为STATION时,连接到指定 -As a STATION, connect to the specified -作为STATION时,是否已经连接上AP,且获取IP成功 -When acting as a STATION, whether the AP has been connected and the IP has been obtained successfully \ No newline at end of file +下面演示的是初始化wifi后定时扫描,请按实际业务需求修改 +The following demonstration is a regular scan after initializing wifi, which can be modified according to actual business requirements. +传入值类型|解释 +Incoming Value Type | Explanation +作为STATION时,断开 +When STATION, disconnect +作为STATION时,是否已经连接上AP,且获取IP成功 +When acting as a STATION, whether the AP has been connected and the IP has been obtained successfully +作为STATION时,连接到指定 +As a STATION, connect to the specified +例如 +For example +例如: Air780E/Air600E/Air780EG等仅支持 +For example, Air780E/Air600E/Air780EG only support +例子 +Examples +关闭AP功能 +Turn off the AP function +关闭自动重连,1开启自动重连.当前强制开启自动重连 +Turn off automatic reconnect, 1 turn on automatic reconnect. Auto reconnect is currently forced on +典型输出 +Typical output +最多等3分钟 +Wait up to 3 minutes. +初始化 +Initialization +参数 +Parameters +发起连接成功返回true,否则返回false.注意,不代表连接AP成功 +Returns true if the connection is initiated, otherwise false. Note that the connection to the AP is not successful +启动 +Start +启动成功或停止成功, 返回true, 否则返回 +Start success or stop success, returns true, otherwise returns +启用DHCP, 默认也是启用DHCP,这里是演示API使用 +Enable DHCP, the default is also enabled DHCP, here is the demo API use +在2023-11-01 之后编译的固件可用 +Firmware compiled after 2023-11-01 is available +地址,十六进制字符串形式 "AABBCCDDEEFF" 或原始数据 +Address, hexadecimal string form "AABBCCDDEEFF" or raw data +地址,当前仅返回ipv4地址,例如 +Address. Currently, only ipv4 addresses are returned. For example +对于仅支持wifiscan的模块, 仅 init/scan/scanResult 函数是可用的 +For modules that only support wifiscan, only the init/scan/scanResult functions are available +已经连接成功返回true,否则返回 +The connection has been successfully returned true, otherwise it returns +已适配 +Adapted +常量 +Constant +常量|类型|解释 +constant | type | explanation +建立的通道, 默认 +established channel, default +当前的hostname或者设置后的 +Current hostname or after setting +当前省电模式/设置后的省电模式 +Current power saving mode/power saving mode after setting +待设置的MAC地址,长度6字节 +MAC address to be set, length 6 bytes +成功创建返回true,否则返回 +Returns true for successful creation, otherwise +成功返回true,否则返回 +Returns true on success, otherwise +我的wifi物联网设备 +My wifi IoT device +扫描wifi频段 +scan wifi band +扫描成功后, 会有WLAN_SCAN_DONE消息, 读取即可 +After the scan is successful, there will be a WLAN_SCAN_DONE message, read +扫描结果 +Scan Results +提醒 +Reminder +操作 +Operation +新的hostname,可选, 传入就是设置 +New hostname, optional, incoming is setting +无 +None +是否启用DHCP,默认是 +Whether to enable DHCP, the default is +是否转HEX字符, 默认是true,即输出hex字符串 +Whether to convert the HEX character, the default is true, that is, the output hex string. +普通模式,不带密码 +Normal mode, without password +普通模式,带密码 +Normal mode with password +本API于 2023.03.31 新增 +This API was added on March 31, 2023.03.31 +本API于 2023.07.23 新增 +This API was added on July 23, 2023.0. +本API于 2023.10.06 新增 +This API was added on October 06, 2023. +本函数应该在wlan.init之前设置好, 最晚应早于 +This function should be set before wlan.init, at the latest before +本函数需要在wlan.init之后才允许调用 +This function needs to be called after wlan.init. +本库有专属demo,[点此链接查看wlan的demo例子 +This library has its own demo,[click this link to view the demo example of wlan +本机IP地址,例如192.168.2.200, 禁用DHCP时必填 +Local IP address, such as 192.168.2.200, required when DHCP is disabled +本机IP掩码,例如255.255.255.0, 禁用DHCP时必填 +Native IP mask, for example 255.255.255.0, required when DHCP is disabled +本机IP网关,例如192.168.2.1, 禁用DHCP时必填 +Native IP gateway, such as 192.168.2.1, required when DHCP is disabled +本页文档由[这个文件](https://gitee.com/openLuat/LuatOS/tree/master/luat/../components/wlan/luat_lib_wlan.c)自动生成。如有错误,请提交issue或帮忙修改后pr,谢谢 +This page document is automatically generated by [this file](https://gitee.com/openLuat/LuatOS/tree/master/luat/../components/wlan/luat_lib_wlan.c). If there is any error, please submit issue or help modify pr, thank you +模式 +Mode +注意, wlan.scan()是异步API,启动扫描后会马上返回 +Note that wlan.scan() is an asynchronous API and will return immediately after starting the scan. +注意, 前提是本次上电后已经传过ssid和或password,否则必失败 +Note that the premise is that ssid and or password have been transmitted after this power-on, otherwise it will fail. +注意, 调用本AP时,若wifi模式为STATION,会自动切换成 +Note that when calling this AP, if the wifi mode is STATION, it will automatically switch +混合模式, 做AP又做 +Mixed mode, do AP and do again +特殊模式, 重用之前的ssid和密码,本次直接连接 +Special mode, reuse the previous ssid and password, this direct connection +用法请查阅 wlan.scan() 函数 +Please refer to wlan.scan() function for usage +的 +of +的password,可选 +password of, optional +的SSID,必填 +SSID of, required +的密码,可选 +Password for, optional +的网关地址, 默认 +The gateway address of the, default +的网关掩码, 默认 +Gateway mask of, default +的默认值是 "LUATOS_" + 设备的MAC值 +The default value is the MAC value of the "LUATOS_" device +省电模式,可选, 传入就是设置, 例如 +Power saving mode, optional, incoming is the setting, for example +示例 +Example +禁用DHCP,自行设置IP/掩码/网关 +Disable DHCP, set IP/Mask/Gateway by yourself +获取 +Get +获取ip,仅STATION或APSTA模式下有意义 +obtain ip address, meaningful only in STATION or APSTA mode +获取wifi扫描结果 +Get wifi scan results +获取信息,如AP的bssid,信号强度 +Get information such as bssid of AP, signal strength +设置 +Setup +设置MAC地址, 2023-03-01之后编译的固件可用 +Set MAC address, firmware compiled after 2023-03-01 is available +设置Station模式下的IP获取模式 +Set IP acquisition mode in Station mode +设置wifi模式 +Set wifi mode +设置为AP模式, 广播ssid, 接收wifi客户端的链接 +Set to AP mode, broadcast ssid, receive wifi client link +设置为STATION模式, 也是初始化后的默认模式 +Set to STATION mode, which is also the default mode after initialization +设置何种mac地址,对ESP32系列来说,只能设置STA的地址,即 +What mac address to set, for ESP32 series, only STA address can be set, namely +设置何种mac地址,对ESP32系列来说,只能设置STA的地址,即0,默认值也是 +What mac address to set, for ESP32 series, only STA address can be set, I .e. 0, and the default value is also +设置网关IP,掩码, 通道, 2023.7.13 新增, BSP未必支持 +Set gateway IP, mask, channel, 2023.7.13 new, BSP may not support +详情,键值对形式 +Details, key-value pair form +详细用法请查看 +Please see the detailed usage +请查阅常量表 +Please refer to the Constant Table +读取或设置 +Read or set +读取或设置省电模式 +Read or set power saving mode +返回值 +Return Value +返回值类型|解释 +return value type | explanation +部分模块支持恢复默认MAC, 例如esp32系列 +Some modules support restoring the default MAC, such as the esp32 series +配网 +distribution network +配网,|V2, 未测试 +Distribution network, | V2, not tested +配网,|微信常用 +Distribution network, | WeChat commonly used +配网模式, 默认为esptouch, 若传0则主动停止配网 +Distribution network mode, which defaults to esptouch. If 0 is passed, the distribution network will be stopped actively. \ No newline at end of file