return function (connection, req, args) dofile('httpserver-header.lc')(connection, 200, 'html') local w, h, dataWidth, offset = 10, 6, 36, 0 -- timer id(0-6), interval in ms local tmrId, tmrMs = 4, 200 if req.method == 'POST' then local rd = req.getRequestData() if (rd['data'] ~= nil) then file.open('led-text.dat', 'w+') file.write(rd['data']) file.close() end end collectgarbage() tmr.alarm(tmrId, tmrMs, tmr.ALARM_SEMI, function() if offset < dataWidth then local data = '' file.open('led-text.dat', 'r') local row = 0 while row < h do file.seek("set", (row * dataWidth + offset) * 3) local size = w if (offset + w > dataWidth) then size = dataWidth - offset end data = data .. file.read(size * 3) if size < w then data = data .. string.char(0):rep((w - size) * 3) end row = row + 1 end file.close() ws2812.write(data) offset = offset + 1 tmr.start(tmrId) else ws2812.write(string.char(0):rep(w*h*3)) tmr.unregister(tmrId) end end) end