Reduce memory requirements a bit and fix weird issue in node_info.lua
example
This commit is contained in:
parent
b4a2d02431
commit
8a195cb798
BIN
http/Thumbs.db
Normal file
BIN
http/Thumbs.db
Normal file
Binary file not shown.
@ -4,14 +4,16 @@ local function sendHeader(connection)
|
||||
end
|
||||
|
||||
local function sendAttr(connection, attr, val)
|
||||
connection:send("<li><b>".. attr .. ":</b> " .. val .. "<br></li>\n")
|
||||
if val then
|
||||
connection:send("<li><b>".. attr .. ":</b> " .. val .. "<br></li>\n")
|
||||
end
|
||||
end
|
||||
|
||||
return function (connection, req, args)
|
||||
collectgarbage()
|
||||
sendHeader(connection)
|
||||
connection:send('<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><title>A Lua script sample</title></head><body><h1>Node info</h1><ul>')
|
||||
majorVer, minorVer, devVer, chipid, flashid, flashsize, flashmode, flashspeed = node.info();
|
||||
local majorVer, minorVer, devVer, chipid, flashid, flashsize, flashmode, flashspeed = node.info();
|
||||
sendAttr(connection, "NodeMCU version" , majorVer.."."..minorVer.."."..devVer)
|
||||
sendAttr(connection, "chipid" , chipid)
|
||||
sendAttr(connection, "flashid" , flashid)
|
||||
|
||||
29
http/node_info.lua~
Normal file
29
http/node_info.lua~
Normal file
@ -0,0 +1,29 @@
|
||||
local function sendHeader(connection)
|
||||
connection:send("HTTP/1.0 200 OK\r\nContent-Type: text/html\r\nCache-Control: private, no-store\r\n\r\n")
|
||||
|
||||
end
|
||||
|
||||
local function sendAttr(connection, attr, val)
|
||||
if val then
|
||||
connection:send("<li><b>".. attr .. ":</b> " .. val .. "<br></li>\n")
|
||||
end
|
||||
end
|
||||
|
||||
return function (connection, req, args)
|
||||
collectgarbage()
|
||||
sendHeader(connection)
|
||||
connection:send('<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><title>A Lua script sample</title></head><body><h1>Node info</h1><ul>')
|
||||
local majorVer, minorVer, devVer, chipid, flashid, flashsize, flashmode, flashspeed = node.info();
|
||||
--local x = (majorVer..".")..(minorVer..".")..devVer
|
||||
sendAttr(connection, "NodeMCU version" , majorVer.."."..minorVer.."."..devVer)
|
||||
sendAttr(connection, "chipid" , chipid)
|
||||
sendAttr(connection, "flashid" , flashid)
|
||||
sendAttr(connection, "flashsize" , flashsize)
|
||||
sendAttr(connection, "flashmode" , flashmode)
|
||||
sendAttr(connection, "flashspeed" , flashspeed)
|
||||
sendAttr(connection, "node.heap()" , node.heap())
|
||||
sendAttr(connection, 'Memory in use (KB)' , collectgarbage("count"))
|
||||
sendAttr(connection, 'IP address' , wifi.sta.getip())
|
||||
sendAttr(connection, 'MAC address' , wifi.sta.getmac())
|
||||
connection:send('</ul></body></html>')
|
||||
end
|
||||
@ -20,21 +20,34 @@ return function (port)
|
||||
local bufferedConnection = {}
|
||||
connectionThread = coroutine.create(function(fileServeFunction, connection, req, args)
|
||||
fileServeFunction(connection, req, args)
|
||||
connection:flush()
|
||||
if not connection:flush() then
|
||||
connection:close()
|
||||
connectionThread = nil
|
||||
end
|
||||
end)
|
||||
function bufferedConnection:flush()
|
||||
connection:send(table.concat(self.data, ""))
|
||||
self.data = {}
|
||||
self.size = 0
|
||||
if self.size > 0 then
|
||||
connection:send(table.concat(self.data, ""))
|
||||
self.data = {}
|
||||
self.size = 0
|
||||
return true
|
||||
end
|
||||
return false
|
||||
end
|
||||
function bufferedConnection:send(payload)
|
||||
local l = payload:len()
|
||||
if l + self.size > 1400 then
|
||||
self:flush()
|
||||
coroutine.yield()
|
||||
if l + self.size > 1000 then
|
||||
if self:flush() then
|
||||
coroutine.yield()
|
||||
end
|
||||
end
|
||||
if l > 800 then
|
||||
connection:send(payload)
|
||||
coroutine.yield()
|
||||
else
|
||||
table.insert(self.data, payload)
|
||||
self.size = self.size + l
|
||||
end
|
||||
table.insert(self.data, payload)
|
||||
self.size = self.size + l
|
||||
end
|
||||
bufferedConnection.size = 0
|
||||
bufferedConnection.data = {}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user