Слияние кода завершено, страница обновится автоматически
--[[
模块名称:shkmng
模块功能:震动传感器中断处理
模块最后修改时间:2017.08.25
]]
module(...,package.seeall)
local function print(...)
_G.print("[--zbb--shkmng",...)
end
local tick = 0
--[[
函数名:timerfnc
功能 :1S中定时回调函数
参数 :无
返回值:无
]]
local function timerfnc()
tick = tick+1
end
local tshkapp =
{
["GPSMOD_OPN_GPS"] = {flg={},idx=0,cnt=_G.GPSMOD_OPN_GPS_VALIDSHK_CNT,freq=_G.GPSMOD_OPN_GPS_VALIDSHK_FREQ},
["LONGPSMOD"] = {flg={},idx=0,cnt=_G.LONGPSMOD_VALIDSHK_CNT,freq=_G.LONGPSMOD_VALIDSHK_FREQ},
["SHKCNT"] = {flg={},idx=0,cnt=_G.SHKCNT_VALIDSHK_CNT,freq=_G.SHKCNT_VALIDSHK_FREQ},
}
local function reset(name)
local i
for i=1,tshkapp[name].cnt do
tshkapp[name].flg[i] = 0
end
tshkapp[name].idx = 0
end
local function shkprint(name,suffix)
local str,i = ""
for i=1,tshkapp[name].cnt do
str = str..","..tshkapp[name].flg[i]
end
print("shkprint fnc",name..suffix,str)
end
--[[
函数名:fnc
功能 :根据震动条件判断是否满足正当要求,然后抛出相应消息
参数 :无
返回值:无
]]
local function fnc()
local k,v
for k,v in pairs(tshkapp) do
shkprint(k,"1")
--print("fnc",k,v.idx,v.cnt,tick,v.flg[v.idx],v.freq)
if v.idx==0 then
v.flg[1] = tick
v.idx = 1
elseif v.idx<v.cnt then
dt = (tick-v.flg[v.idx])
if (dt>v.freq) and (dt<(v.freq*2)) then
v.idx = v.idx+1
if v.idx==v.cnt then
v.idx = 1
v.flg[v.cnt-1] = tick
sys.publish(k.."_VALIDSHK_IND")
print(k.."_VALIDSHK_IND")
else
v.flg[v.idx] = tick
end
elseif dt>=(v.freq*2) then
reset(k)
end
elseif v.cnt == 1 then
sys.publish(k.."_VALIDSHK_IND")
print(k.."_VALIDSHK_IND CNT1")
end
shkprint(k,"2")
end
end
local function shkind()
print("shkind fnc-----------")
fnc()
return true
end
local function init()
local k,v
for k,v in pairs(tshkapp) do
reset(k)
end
end
init()
--注册消息的处理函数
sys.subscribe("DEV_SHK_IND",shkind)
sys.timerLoopStart(timerfnc,1000)
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )