Browse Source

add auto close and change staus

master
DESKTOP-B25GA9E\W35 1 year ago
parent
commit
edf2653340
  1. 3
      .vscode/settings.json
  2. 64
      GPIO.lua
  3. 0
      SaveData/eus_params.lua
  4. 8
      UDPService.lua

3
.vscode/settings.json vendored

@ -6,6 +6,7 @@ @@ -6,6 +6,7 @@
"i2c",
"gpio",
"enduser_setup",
"file"
"file",
"tmr"
]
}

64
GPIO.lua

@ -1,3 +1,5 @@ @@ -1,3 +1,5 @@
Is_AutoClose = true;
LightArr = {[1]=false,[2]=false,[3]=false,[4]=false}
--Init GPIO params
function InitGPIO()
gpio.mode(0,gpio.OUTPUT);
@ -14,14 +16,72 @@ end @@ -14,14 +16,72 @@ end
--Push gpio to high
function GPIOOn(gpioId)
if gpioId>=0 and gpioId<=4 then
gpio.write(gpioId,gpio.HIGH)
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;
end
end
--Push gpio to low
function GPIOOff(gpioId)
if gpioId>=0 and gpioId<=4 then
gpio.write(gpioId,gpio.LOW)
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;
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")

0
eus_params.lua → SaveData/eus_params.lua

8
UDPService.lua

@ -1,8 +1,4 @@ @@ -1,8 +1,4 @@
-- UDPSocket = nil;
-- UDPIP = nil;
-- UDPPort = nil;
require("GPIO");
LightArr = {[1]=false,[2]=false,[3]=false,[4]=false}
function StartUDPService()
if UDPSocket == nil then
UDPSocket = net.createUDPSocket();
@ -28,14 +24,10 @@ function UDPService(s, data, port, ip) @@ -28,14 +24,10 @@ function UDPService(s, data, port, ip)
print(tonumber(commandSet[2]).."-"..commandSet[3])
if commandSet[3]=="On" and tonumber(commandSet[2])~=nil then
GPIOOn(tonumber(commandSet[2]));
LightArr[tonumber(commandSet[2])] = true;
s:send(port, ip, "Light "..commandSet[2].." "..commandSet[3]);
PageLight(LightArr);
elseif commandSet[3]=="Off" and tonumber(commandSet[2])~=nil then
GPIOOff(tonumber(commandSet[2]));
LightArr[tonumber(commandSet[2])] = false;
s:send(port, ip, "Light "..commandSet[2].." "..commandSet[3]);
PageLight(LightArr);
else
s:send(port, ip, "CommandFaild");
end

Loading…
Cancel
Save