|
|
|
require("GPIO");
|
|
|
|
function StartUDPService()
|
|
|
|
if UDPSocket == nil then
|
|
|
|
UDPSocket = net.createUDPSocket();
|
|
|
|
UDPSocket:listen(6000);
|
|
|
|
UDPSocket:on("receive", UDPService);
|
|
|
|
UDPPort, UDPIP = UDPSocket:getaddr();
|
|
|
|
else
|
|
|
|
UDPSocket:listen(6000);
|
|
|
|
UDPSocket:on("receive", UDPService);
|
|
|
|
UDPPort, UDPIP = UDPSocket:getaddr();
|
|
|
|
end
|
|
|
|
--print(string.format("local UDP socket address / port: %s:%d", UDPIP, UDPPort))
|
|
|
|
end
|
|
|
|
|
|
|
|
function UDPService(s, data, port, ip)
|
|
|
|
local commandSet = {};
|
|
|
|
for word in string.gmatch(data, "[^-]+") do
|
|
|
|
table.insert(commandSet,word);
|
|
|
|
end
|
|
|
|
print("get data count" .. #commandSet);
|
|
|
|
if string.match(data,"^Go") then
|
|
|
|
if #commandSet==2 then
|
|
|
|
print(tonumber(commandSet[2]))
|
|
|
|
Is_AutoClose = false;
|
|
|
|
GPIOOn(0);
|
|
|
|
GPIOOn(1);
|
|
|
|
GPIOOn(2);
|
|
|
|
s:send(port, ip, "1-1-1");
|
|
|
|
end
|
|
|
|
end
|
|
|
|
if string.match(data,"^Back") then
|
|
|
|
if #commandSet==2 then
|
|
|
|
print(tonumber(commandSet[2]))
|
|
|
|
Is_AutoClose = false;
|
|
|
|
GPIOOn(0);
|
|
|
|
GPIOOff(1);
|
|
|
|
GPIOOn(2);
|
|
|
|
s:send(port, ip, "1-0-1");
|
|
|
|
end
|
|
|
|
end
|
|
|
|
if string.match(data,"^Stop") then
|
|
|
|
Is_AutoClose = false;
|
|
|
|
GPIOOff(0);
|
|
|
|
GPIOOn(1);
|
|
|
|
GPIOOff(2);
|
|
|
|
s:send(port, ip, "0-1-0");
|
|
|
|
end
|
|
|
|
if string.match(data,"^Ready") then
|
|
|
|
Is_AutoClose = false;
|
|
|
|
GPIOOff(0);
|
|
|
|
GPIOOn(1);
|
|
|
|
GPIOOff(2);
|
|
|
|
s:send(port, ip, "0-1-1");
|
|
|
|
end
|
|
|
|
if string.match(data,"^Status") then
|
|
|
|
local result = "";
|
|
|
|
if LightArr[0] == true then
|
|
|
|
result = "1-"
|
|
|
|
else
|
|
|
|
result = "0-"
|
|
|
|
end
|
|
|
|
if LightArr[1] == true then
|
|
|
|
result = result .. "1-"
|
|
|
|
else
|
|
|
|
result = result .. "0-"
|
|
|
|
end
|
|
|
|
if LightArr[2] == true then
|
|
|
|
result = result .. "1"
|
|
|
|
else
|
|
|
|
result = result .. "0"
|
|
|
|
end
|
|
|
|
s:send(port, ip, result);
|
|
|
|
end
|
|
|
|
if string.match(data,"^Addr") then
|
|
|
|
s:send(port, ip, "Addr-"..IpCfg.ip);
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
function StopUDPService()
|
|
|
|
if UDPSocket ~= nil then
|
|
|
|
UDPSocket:close();
|
|
|
|
end
|
|
|
|
end
|
|
|
|
--StartUDPService();
|