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 @@
"i2c", "i2c",
"gpio", "gpio",
"enduser_setup", "enduser_setup",
"file" "file",
"tmr"
] ]
} }

64
GPIO.lua

@ -1,3 +1,5 @@
Is_AutoClose = true;
LightArr = {[1]=false,[2]=false,[3]=false,[4]=false}
--Init GPIO params --Init GPIO params
function InitGPIO() function InitGPIO()
gpio.mode(0,gpio.OUTPUT); gpio.mode(0,gpio.OUTPUT);
@ -14,14 +16,72 @@ end
--Push gpio to high --Push gpio to high
function GPIOOn(gpioId) function GPIOOn(gpioId)
if gpioId>=0 and gpioId<=4 then 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
end end
--Push gpio to low --Push gpio to low
function GPIOOff(gpioId) function GPIOOff(gpioId)
if gpioId>=0 and gpioId<=4 then 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
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(); InitGPIO();
print("gpio1-5 init over,turn all gpio to output,low") 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 @@
-- UDPSocket = nil;
-- UDPIP = nil;
-- UDPPort = nil;
require("GPIO"); require("GPIO");
LightArr = {[1]=false,[2]=false,[3]=false,[4]=false}
function StartUDPService() function StartUDPService()
if UDPSocket == nil then if UDPSocket == nil then
UDPSocket = net.createUDPSocket(); UDPSocket = net.createUDPSocket();
@ -28,14 +24,10 @@ function UDPService(s, data, port, ip)
print(tonumber(commandSet[2]).."-"..commandSet[3]) print(tonumber(commandSet[2]).."-"..commandSet[3])
if commandSet[3]=="On" and tonumber(commandSet[2])~=nil then if commandSet[3]=="On" and tonumber(commandSet[2])~=nil then
GPIOOn(tonumber(commandSet[2])); GPIOOn(tonumber(commandSet[2]));
LightArr[tonumber(commandSet[2])] = true;
s:send(port, ip, "Light "..commandSet[2].." "..commandSet[3]); s:send(port, ip, "Light "..commandSet[2].." "..commandSet[3]);
PageLight(LightArr);
elseif commandSet[3]=="Off" and tonumber(commandSet[2])~=nil then elseif commandSet[3]=="Off" and tonumber(commandSet[2])~=nil then
GPIOOff(tonumber(commandSet[2])); GPIOOff(tonumber(commandSet[2]));
LightArr[tonumber(commandSet[2])] = false;
s:send(port, ip, "Light "..commandSet[2].." "..commandSet[3]); s:send(port, ip, "Light "..commandSet[2].." "..commandSet[3]);
PageLight(LightArr);
else else
s:send(port, ip, "CommandFaild"); s:send(port, ip, "CommandFaild");
end end

Loading…
Cancel
Save