Files
BR_YKC/4G/源代码/lib/scanCode.lua
2026-05-21 13:24:05 +08:00

39 lines
1.3 KiB
Lua
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
--- 模块功能:扫码.
-- 支持二维码、条形码扫描
-- @module scanCode
-- @author openLuat
-- @license MIT
-- @copyright openLuat
-- @release 2018.9.19
require"sys"
module(..., package.seeall)
local sCbFnc
--- 设置扫码请求
-- @function cbFnc 扫码返回或者超时未返回的回调函数,回调函数的调用形式为:
-- cbFnc(result,type,str)
-- resulttrue或者falsetrue表示扫码成功false表示超时失败
-- typestring或者nil类型result为true时表示扫码类型result为false时为nil支持QR-Code和CODE-128
-- strstring或者nil类型result为true时表示扫码结果的字符串result为false时为nil
-- @number[opt=10000] timeout 设置请求后等待扫码结果返回的超时时间单位毫秒默认为10秒
-- @usage
-- scanCode.request(cbFnc)
-- scanCode.request(cbFnc,5000)
function request(cbFnc,timeout)
sCbFnc = cbFnc
sys.timerStart(sCbFnc,timeout or 10000,false)
end
local function zbarMsg(msg)
--log.info("scanCode.zbarMsg",msg.result,sys.timerIsActive(sCbFnc,false))
if msg.result and sys.timerIsActive(sCbFnc,false) then
sys.timerStop(sCbFnc,false)
sCbFnc(true,msg.type,msg.data)
end
end
--注册core上报的rtos.MSG_ZBAR消息的处理函数
rtos.on(rtos.MSG_ZBAR,zbarMsg)