You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
89 lines
2.3 KiB
89 lines
2.3 KiB
Is_AutoClose = true; |
|
LightArr = {[1]=false,[2]=false,[3]=false,[4]=false} |
|
--Init GPIO params |
|
function InitGPIO() |
|
gpio.mode(0,gpio.OUTPUT); |
|
gpio.mode(1,gpio.OUTPUT); |
|
gpio.mode(2,gpio.OUTPUT); |
|
gpio.mode(3,gpio.OUTPUT); |
|
gpio.mode(4,gpio.OUTPUT); |
|
gpio.write(0,gpio.LOW); |
|
gpio.write(1,gpio.LOW); |
|
gpio.write(2,gpio.LOW); |
|
gpio.write(3,gpio.LOW); |
|
gpio.write(4,gpio.LOW); |
|
end |
|
--Push gpio to high |
|
function GPIOOn(gpioId) |
|
if gpioId>=0 and gpioId<=4 then |
|
gpio.write(gpioId,gpio.HIGH); |
|
LightArr[gpioId] = true; |
|
PageLight(LightArr); |
|
if Is_AutoClose then |
|
AutoClose(gpioId); |
|
end |
|
end |
|
if gpioId == 99 then |
|
gpio.write(0,gpio.HIGH); |
|
gpio.write(1,gpio.HIGH); |
|
gpio.write(2,gpio.HIGH); |
|
gpio.write(3,gpio.HIGH); |
|
gpio.write(4,gpio.HIGH); |
|
LightArr = {[1]=true,[2]=true,[3]=true,[4]=true} |
|
PageLight(LightArr); |
|
if Is_AutoClose then |
|
AutoCloseAll(); |
|
end |
|
end |
|
if gpioId == 10 then |
|
Is_AutoClose = true; |
|
PageLight(LightArr); |
|
end |
|
end |
|
--Push gpio to low |
|
function GPIOOff(gpioId) |
|
if gpioId>=0 and gpioId<=4 then |
|
gpio.write(gpioId,gpio.LOW); |
|
LightArr[gpioId] = false; |
|
PageLight(LightArr); |
|
end |
|
if gpioId == 99 then |
|
gpio.write(0,gpio.LOW); |
|
gpio.write(1,gpio.LOW); |
|
gpio.write(2,gpio.LOW); |
|
gpio.write(3,gpio.LOW); |
|
gpio.write(4,gpio.LOW); |
|
LightArr = {[1]=false,[2]=false,[3]=false,[4]=false} |
|
PageLight(LightArr); |
|
end |
|
if gpioId == 10 then |
|
Is_AutoClose = false; |
|
PageLight(LightArr); |
|
end |
|
end |
|
|
|
function AutoClose(gpioId) |
|
local mytimer = tmr.create() |
|
mytimer:register(1000, tmr.ALARM_SINGLE, function() |
|
gpio.write(gpioId,gpio.LOW); |
|
LightArr[gpioId] = false; |
|
PageLight(LightArr); |
|
end) |
|
mytimer:start() |
|
end |
|
|
|
function AutoCloseAll() |
|
local mytimer = tmr.create() |
|
mytimer:register(1000, tmr.ALARM_SINGLE, function() |
|
gpio.write(0,gpio.LOW); |
|
gpio.write(1,gpio.LOW); |
|
gpio.write(2,gpio.LOW); |
|
gpio.write(3,gpio.LOW); |
|
gpio.write(4,gpio.LOW); |
|
LightArr = {[1]=false,[2]=false,[3]=false,[4]=false} |
|
PageLight(LightArr); |
|
end) |
|
mytimer:start() |
|
end |
|
InitGPIO(); |
|
print("gpio1-5 init over,turn all gpio to output,low")
|
|
|