- commencé à bosser sur les websocket, ce n'est pas en yaka :-(
- essayé d'installer webide sur NodeMCU, il y a justement un exemple de websocker server, je n'arrive pas encore à comprendre comment cela marche - donc il y a encore pas mal de taf
This commit is contained in:
115
Websocket/nodemcu-webide/bin/initz.lua
Executable file
115
Websocket/nodemcu-webide/bin/initz.lua
Executable file
@@ -0,0 +1,115 @@
|
||||
-- init adc
|
||||
--if adc.force_init_mode(adc.INIT_VDD33) then
|
||||
-- node.restart()
|
||||
--end
|
||||
|
||||
-- init and clear ws2812
|
||||
--ws2812.init()
|
||||
--ws2812.write(string.char(0):rep(3096))
|
||||
|
||||
-- init config
|
||||
dofile('config.lua')
|
||||
|
||||
-- init WiFi
|
||||
-- Tell the chip to connect to the access point
|
||||
wifi.setmode(conf.wifi.mode)
|
||||
print('set (mode='..wifi.getmode()..')')
|
||||
|
||||
if (conf.wifi.mode == wifi.SOFTAP) or (conf.wifi.mode == wifi.STATIONAP) then
|
||||
print('AP MAC: ', wifi.ap.getmac())
|
||||
wifi.ap.config(conf.wifi.ap)
|
||||
wifi.ap.setip(conf.wifi.apip)
|
||||
end
|
||||
if (conf.wifi.mode == wifi.STATION) or (conf.wifi.mode == wifi.STATIONAP) then
|
||||
print('Client MAC: ', wifi.sta.getmac())
|
||||
wifi.sta.sethostname(conf.hostname)
|
||||
wifi.sta.config(conf.wifi.stassid, conf.wifi.stapwd, 1)
|
||||
end
|
||||
collectgarbage()
|
||||
|
||||
-- show system info
|
||||
print('chip: ',node.chipid())
|
||||
print('heap: ',node.heap())
|
||||
|
||||
-- Compile server code and remove original .lua files.
|
||||
-- This only happens the first time afer the .lua files are uploaded.
|
||||
local compileAndRemoveIfNeeded = function(f)
|
||||
if file.open(f) then
|
||||
file.close()
|
||||
print('Compiling:', f)
|
||||
node.compile(f)
|
||||
file.remove(f)
|
||||
collectgarbage()
|
||||
end
|
||||
end
|
||||
|
||||
local serverFiles = {
|
||||
'httpserver.lua',
|
||||
'httpserver-basicauth.lua',
|
||||
'httpserver-connection.lua',
|
||||
'httpserver-error.lua',
|
||||
'httpserver-header.lua',
|
||||
'httpserver-request.lua',
|
||||
'httpserver-static.lua',
|
||||
'httpserver-websocket.lua',
|
||||
'file-api.lua'
|
||||
}
|
||||
for i, f in ipairs(serverFiles) do compileAndRemoveIfNeeded(f) end
|
||||
|
||||
compileAndRemoveIfNeeded = nil
|
||||
serverFiles = nil
|
||||
i = nil
|
||||
f = nil
|
||||
collectgarbage()
|
||||
|
||||
-- pre-compile other lua files
|
||||
local l, f, s
|
||||
l = file.list();
|
||||
for f, s in pairs(l) do
|
||||
if ((string.sub(f, -4) == '.lua') and (f ~= 'config.lua') and (f ~= 'init.lua')) then
|
||||
print('Pre-compiling:', f)
|
||||
node.compile(f)
|
||||
collectgarbage()
|
||||
end
|
||||
end
|
||||
l = nil
|
||||
f = nil
|
||||
s = nil
|
||||
collectgarbage()
|
||||
|
||||
-- check and show STATION mode obtained IP
|
||||
if (wifi.getmode() == wifi.STATION) or (wifi.getmode() == wifi.STATIONAP) then
|
||||
local joinCounter = 0
|
||||
local joinMaxAttempts = 5
|
||||
tmr.alarm(0, 3000, 1, function()
|
||||
local ip = wifi.sta.getip()
|
||||
if ip == nil and joinCounter < joinMaxAttempts then
|
||||
print('Connecting to WiFi Access Point ...')
|
||||
joinCounter = joinCounter + 1
|
||||
else
|
||||
if joinCounter == joinMaxAttempts then
|
||||
print('Failed to connect to WiFi Access Point.')
|
||||
print('Fall back to SOFTAP.')
|
||||
wifi.setmode(wifi.SOFTAP)
|
||||
wifi.ap.config(conf.wifi.ap)
|
||||
wifi.ap.setip(conf.wifi.apip)
|
||||
else
|
||||
print('IP: ',ip)
|
||||
mdns.register(conf.hostname, { description="NodeMCU WebIDE", service="http", port=80, location='In your ESP board' })
|
||||
sntp.sync('pool.ntp.org')
|
||||
end
|
||||
tmr.stop(0)
|
||||
joinCounter = nil
|
||||
joinMaxAttempts = nil
|
||||
collectgarbage()
|
||||
end
|
||||
end)
|
||||
end
|
||||
|
||||
-- start the nodemcu-httpserver in port 80
|
||||
if (not not wifi.sta.getip()) or (not not wifi.ap.getip()) then
|
||||
dofile("httpserver.lc")(80)
|
||||
collectgarbage()
|
||||
end
|
||||
|
||||
--dofile('led-stick.lc')()
|
||||
Reference in New Issue
Block a user