202 lines
4.9 KiB
Lua
202 lines
4.9 KiB
Lua
dofile("wlancfg.lua")
|
|
dofile("timecore.lua")
|
|
dofile("wordclock.lua")
|
|
|
|
timezoneoffset=1
|
|
|
|
-- Wait to be connect to the WiFi access point.
|
|
tmr.alarm(0, 100, 1, function()
|
|
if wifi.sta.status() ~= 5 then
|
|
print("Connecting to AP...")
|
|
else
|
|
tmr.stop(0)
|
|
print('IP: ',wifi.sta.getip())
|
|
|
|
--ptbtime1.ptb.de
|
|
sntp.sync('ptbtime1.ptb.de',
|
|
function(sec,usec,server)
|
|
print('sync', sec, usec, server)
|
|
end,
|
|
function()
|
|
print('failed!')
|
|
end
|
|
)
|
|
|
|
end
|
|
end)
|
|
|
|
function generateLEDs(words)
|
|
|
|
color=string.char(0,0,50)
|
|
white=string.char(0,0,0)
|
|
buf=color
|
|
-- line 1----------------------------------------------
|
|
if (words.itis == 1) then
|
|
buf=color:rep(2) -- ES
|
|
-- K fill character
|
|
buf=buf .. white:rep(1)
|
|
buf=buf ..color:rep(3) -- IST
|
|
-- L fill character
|
|
buf=buf .. white:rep(1)
|
|
else
|
|
buf=white:rep(7)
|
|
end
|
|
if (words.fiveMin== 1) then
|
|
buf= buf .. color:rep(4) -- FUENF
|
|
else
|
|
buf= buf .. white:rep(4)
|
|
end
|
|
-- line 2-- even row (so inverted) --------------------
|
|
if (words.twenty == 1) then
|
|
buf= buf .. color:rep(7) -- ZWANZIG
|
|
else
|
|
buf= buf .. white:rep(7)
|
|
end
|
|
if (words.tenMin == 1) then
|
|
buf= buf .. color:rep(4) -- ZEHN
|
|
else
|
|
buf= buf .. white:rep(4)
|
|
end
|
|
-- line3----------------------------------------------
|
|
--TODO ggf. auch ueber viertel vor abbildbar
|
|
if (words.threequater == 1) then
|
|
buf= buf .. color:rep(11) -- Dreiviertel
|
|
elseif (words.quater == 1) then
|
|
buf= buf .. white:rep(4)
|
|
buf= buf .. color:rep(7) -- VIERTEL
|
|
else
|
|
buf= buf .. white:rep(11)
|
|
end
|
|
--line 4-------- even row (so inverted) -------------
|
|
if (words.before == 1) then
|
|
buf=buf .. white:rep(2)
|
|
buf= buf .. color:rep(3) -- VOR
|
|
else
|
|
buf= buf .. white:rep(5)
|
|
end
|
|
if (words.after == 1) then
|
|
buf= buf .. color:rep(4) -- NACH
|
|
buf= buf .. white:rep(2) -- TG
|
|
else
|
|
buf= buf .. white:rep(6)
|
|
end
|
|
------------------------------------------------
|
|
if (words.half == 1) then
|
|
buf= buf .. color:rep(4) -- HALB
|
|
buf= buf .. white:rep(1) -- X
|
|
else
|
|
buf= buf .. white:rep(5)
|
|
end
|
|
if (words.twelve == 1) then
|
|
buf= buf .. color:rep(5) -- ZWOELF
|
|
buf= buf .. white:rep(1) -- P
|
|
else
|
|
buf= buf .. white:rep(6)
|
|
end
|
|
------------even row (so inverted) ---------------------
|
|
if (words.seven == 1) then
|
|
buf= buf .. color:rep(6) -- SIEBEN
|
|
buf= buf .. white:rep(5)
|
|
elseif (words.one == 1) then
|
|
buf= buf .. white:rep(5)
|
|
buf= buf .. color:rep(4) -- EINS
|
|
buf= buf .. white:rep(2)
|
|
elseif (words.two == 1) then
|
|
buf= buf .. white:rep(7)
|
|
buf= buf .. color:rep(4) -- ZWEI
|
|
else
|
|
buf= buf .. white:rep(11)
|
|
end
|
|
------------------------------------------------
|
|
if (words.three == 1) then
|
|
buf= buf .. white:rep(1)
|
|
buf= buf .. color:rep(4) -- DREI
|
|
buf= buf .. white:rep(6)
|
|
elseif (words.five == 1) then
|
|
buf= buf .. white:rep(7)
|
|
buf= buf .. color:rep(4) -- FUENF
|
|
else
|
|
buf= buf .. white:rep(11)
|
|
end
|
|
------------even row (so inverted) ---------------------
|
|
if (words.four == 1) then
|
|
buf= buf .. color:rep(4) -- VIER
|
|
buf= buf .. white:rep(7)
|
|
elseif (words.nine == 1) then
|
|
buf= buf .. white:rep(4)
|
|
buf= buf .. color:rep(4) -- NEUN
|
|
buf= buf .. white:rep(3)
|
|
elseif (words.eleven == 1) then
|
|
buf= buf .. white:rep(8)
|
|
buf= buf .. color:rep(3) -- ELEVEN
|
|
else
|
|
buf= buf .. white:rep(11)
|
|
end
|
|
------------------------------------------------
|
|
if (words.eight == 1) then
|
|
buf= buf .. white:rep(1)
|
|
buf= buf .. color:rep(4) -- ACHT
|
|
buf= buf .. white:rep(6)
|
|
elseif (words.ten == 1) then
|
|
buf= buf .. white:rep(5)
|
|
buf= buf .. color:rep(4) -- ZEHN
|
|
buf= buf .. white:rep(2)
|
|
else
|
|
buf= buf .. white:rep(11)
|
|
end
|
|
------------even row (so inverted) ---------------------
|
|
if (words.clock == 1) then
|
|
buf= buf .. color:rep(3) -- UHR
|
|
else
|
|
buf= buf .. white:rep(3)
|
|
end
|
|
if (words.sechs == 1) then
|
|
buf= buf .. white:rep(2)
|
|
buf= buf .. color:rep(5) -- SECHS
|
|
buf= buf .. white:rep(1)
|
|
else
|
|
buf= buf .. white:rep(8)
|
|
end
|
|
|
|
if (words.min1 == 1) then
|
|
buf= buf .. color:rep(1)
|
|
else
|
|
buf= buf .. white:rep(1)
|
|
end
|
|
if (words.min2 == 1) then
|
|
buf= buf .. color:rep(1)
|
|
else
|
|
buf= buf .. white:rep(1)
|
|
end
|
|
if (words.min3 == 1) then
|
|
buf= buf .. color:rep(1)
|
|
else
|
|
buf= buf .. white:rep(1)
|
|
end
|
|
if (words.min4 == 1) then
|
|
buf= buf .. color:rep(1)
|
|
else
|
|
buf= buf .. white:rep(1)
|
|
end
|
|
return buf
|
|
end
|
|
|
|
tmr.alarm(1, 5000, 1 ,function()
|
|
sec, usec = rtctime.get()
|
|
time = getTime(sec, timezoneoffset)
|
|
print("Time : " , sec)
|
|
print("Local time : " .. time.year .. "-" .. time.month .. "-" .. time.day .. " " .. time.hour .. ":" .. time.minute .. ":" .. time.second)
|
|
|
|
words = display_timestat(time.hour, time.minute)
|
|
ledBuf = generateLEDs(words)
|
|
-- Write the buffer to the LEDs
|
|
ws2812.write(4, ledBuf)
|
|
|
|
for key,value in pairs(words) do
|
|
if (value > 0) then
|
|
print(key,value)
|
|
end
|
|
end
|
|
end)
|
|
|