- renommé le script start_job.lua en boot.lua, script qui est lancé par init.lua juste après le boot - créé le script repair.lua qui démarre le wifi en mode AP et lance le serveur telnet afin de pouvoir se connecter au moment du poweron si on a un problème de boucle au boot - mon script dsleep.lua fonctionne bien maintenant - amélioré le script wifi_info.lua, il indique le nom de l'AP ainsi que le password - teste à chaque 'dofile' si le fichier existe avant de la lancer, ne plante donc plus si le script n'existe pas, grosse amélioration
44 lines
1.1 KiB
Lua
44 lines
1.1 KiB
Lua
-- a simple telnet server
|
|
print("\ntelnet_srv.lua zf181119.0005 \n")
|
|
|
|
-- restart server if needed
|
|
if telnet_srv ~= nil then
|
|
telnet_srv:close()
|
|
end
|
|
telnet_srv = net.createServer(net.TCP, 180)
|
|
|
|
telnet_srv:listen(23, function(socket)
|
|
local fifo = {}
|
|
local fifo_drained = true
|
|
|
|
local function sender(c)
|
|
if #fifo > 0 then
|
|
c:send(table.remove(fifo, 1))
|
|
else
|
|
fifo_drained = true
|
|
end
|
|
end
|
|
|
|
local function s_output(str)
|
|
table.insert(fifo, str)
|
|
if socket ~= nil and fifo_drained then
|
|
fifo_drained = false
|
|
sender(socket)
|
|
end
|
|
end
|
|
|
|
node.output(s_output, 0) -- re-direct output to function s_ouput.
|
|
|
|
socket:on("receive", function(c, l)
|
|
node.input(l) -- works like pcall(loadstring(l)) but support multiple separate line
|
|
end)
|
|
socket:on("disconnection", function(c)
|
|
node.output(nil) -- un-regist the redirect output function, output goes to serial
|
|
end)
|
|
socket:on("sent", sender)
|
|
|
|
print("Welcome to NodeMCU world.")
|
|
end)
|
|
|
|
print("Telnet server running...\nUsage: telnet -rN ip\n")
|