Some cleanup based on review comments
Cleaned up the draw loop and changed some comments.
This commit is contained in:
parent
73583fc318
commit
6092219f5e
|
@ -1,7 +1,7 @@
|
||||||
------------------------------------------------------------------------------
|
------------------------------------------------------------------------------
|
||||||
-- u8glib example which shows how to implement the draw loop without causing
|
-- u8glib example which shows how to implement the draw loop without causing
|
||||||
-- timeout issues with the WiFi stack. This is done by drawing one page at
|
-- timeout issues with the WiFi stack. This is done by drawing one page at
|
||||||
-- a time, allowing the ESP SDK to do it's house keeping between the page
|
-- a time, allowing the ESP SDK to do its house keeping between the page
|
||||||
-- draws.
|
-- draws.
|
||||||
--
|
--
|
||||||
-- This example assumes you have an SSD1306 display connected to pins 4 and 5
|
-- This example assumes you have an SSD1306 display connected to pins 4 and 5
|
||||||
|
@ -9,10 +9,9 @@
|
||||||
-- Please edit the init_display function to match your setup.
|
-- Please edit the init_display function to match your setup.
|
||||||
--
|
--
|
||||||
-- Example:
|
-- Example:
|
||||||
-- dofile("u8g_displayloop.lua")
|
-- dofile("u8g_drawloop.lua")
|
||||||
------------------------------------------------------------------------------
|
------------------------------------------------------------------------------
|
||||||
|
|
||||||
local updateDrawFunc
|
|
||||||
local disp
|
local disp
|
||||||
local font
|
local font
|
||||||
|
|
||||||
|
@ -32,17 +31,16 @@ local function setLargeFont()
|
||||||
disp:setFontPosTop()
|
disp:setFontPosTop()
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Draws one page and schedules the next page, if there is one
|
|
||||||
local function drawPages()
|
|
||||||
updateDrawFunc()
|
|
||||||
if (disp:nextPage() == true) then
|
|
||||||
node.task.post(drawPages)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
-- Start the draw loop with the draw implementation in the provided function callback
|
-- Start the draw loop with the draw implementation in the provided function callback
|
||||||
function updateDisplay(func)
|
function updateDisplay(func)
|
||||||
updateDrawFunc = func
|
-- Draws one page and schedules the next page, if there is one
|
||||||
|
local function drawPages()
|
||||||
|
func()
|
||||||
|
if (disp:nextPage() == true) then
|
||||||
|
node.task.post(drawPages)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
-- Restart the draw loop and start drawing pages
|
||||||
disp:firstPage()
|
disp:firstPage()
|
||||||
node.task.post(drawPages)
|
node.task.post(drawPages)
|
||||||
end
|
end
|
||||||
|
@ -58,18 +56,18 @@ function drawWorld()
|
||||||
end
|
end
|
||||||
|
|
||||||
local drawDemo = { drawHello, drawWorld }
|
local drawDemo = { drawHello, drawWorld }
|
||||||
local drawIndex = 1
|
|
||||||
|
|
||||||
function demoLoop()
|
function demoLoop()
|
||||||
-- Start the draw loop with one of the demo functions
|
-- Start the draw loop with one of the demo functions
|
||||||
updateDisplay(drawDemo[drawIndex])
|
local f = table.remove(drawDemo,1)
|
||||||
drawIndex = drawIndex + 1
|
updateDisplay(f)
|
||||||
if drawDemo[drawIndex] == nil then
|
table.insert(drawDemo,f)
|
||||||
drawIndex = 1
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Initialise the display and start the demo loop
|
-- Initialise the display
|
||||||
init_display()
|
init_display()
|
||||||
|
|
||||||
|
-- Draw demo page immediately and then schedule an update every 5 seconds.
|
||||||
|
-- To test your own drawXYZ function, disable the next two lines and call updateDisplay(drawXYZ) instead.
|
||||||
demoLoop()
|
demoLoop()
|
||||||
tmr.alarm(4, 5000, 1, demoLoop)
|
tmr.alarm(4, 5000, 1, demoLoop)
|
||||||
|
|
Loading…
Reference in New Issue