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
|
end
|
||||||
|
|
||||||
local function sendAttr(connection, attr, val)
|
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
|
end
|
||||||
|
|
||||||
return function (connection, req, args)
|
return function (connection, req, args)
|
||||||
collectgarbage()
|
collectgarbage()
|
||||||
sendHeader(connection)
|
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>')
|
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, "NodeMCU version" , majorVer.."."..minorVer.."."..devVer)
|
||||||
sendAttr(connection, "chipid" , chipid)
|
sendAttr(connection, "chipid" , chipid)
|
||||||
sendAttr(connection, "flashid" , flashid)
|
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 = {}
|
local bufferedConnection = {}
|
||||||
connectionThread = coroutine.create(function(fileServeFunction, connection, req, args)
|
connectionThread = coroutine.create(function(fileServeFunction, connection, req, args)
|
||||||
fileServeFunction(connection, req, args)
|
fileServeFunction(connection, req, args)
|
||||||
connection:flush()
|
if not connection:flush() then
|
||||||
|
connection:close()
|
||||||
|
connectionThread = nil
|
||||||
|
end
|
||||||
end)
|
end)
|
||||||
function bufferedConnection:flush()
|
function bufferedConnection:flush()
|
||||||
connection:send(table.concat(self.data, ""))
|
if self.size > 0 then
|
||||||
self.data = {}
|
connection:send(table.concat(self.data, ""))
|
||||||
self.size = 0
|
self.data = {}
|
||||||
|
self.size = 0
|
||||||
|
return true
|
||||||
|
end
|
||||||
|
return false
|
||||||
end
|
end
|
||||||
function bufferedConnection:send(payload)
|
function bufferedConnection:send(payload)
|
||||||
local l = payload:len()
|
local l = payload:len()
|
||||||
if l + self.size > 1400 then
|
if l + self.size > 1000 then
|
||||||
self:flush()
|
if self:flush() then
|
||||||
coroutine.yield()
|
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
|
end
|
||||||
table.insert(self.data, payload)
|
|
||||||
self.size = self.size + l
|
|
||||||
end
|
end
|
||||||
bufferedConnection.size = 0
|
bufferedConnection.size = 0
|
||||||
bufferedConnection.data = {}
|
bufferedConnection.data = {}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user