From 6ea6c53480d7812ce5c3c44f89e6c079aa200b8a Mon Sep 17 00:00:00 2001 From: Roman Bazalevsky Date: Tue, 21 Jan 2020 16:07:54 +0300 Subject: [PATCH] =?utf8?q?=D0=94=D0=B8=D0=BD=D0=B0=D0=BC=D0=B8=D1=87=D0=B5?= =?utf8?q?=D1=81=D0=BA=D0=BE=D0=B5=20=D0=BE=D0=BF=D1=80=D0=B5=D0=B4=D0=B5?= =?utf8?q?=D0=BB=D0=B5=D0=BD=D0=B8=D0=B5=20=D1=81=D0=B2=D0=BE=D0=B1=D0=BE?= =?utf8?q?=D0=B4=D0=BD=D0=BE=D0=B3=D0=BE=20=D0=BC=D0=B5=D1=81=D1=82=D0=B0?= =?utf8?q?=20=D0=BF=D0=BE=D0=B4=20=D0=B3=D1=80=D0=B0=D1=84=D0=B8=D0=BA?= =?utf8?q?=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- bin/weather-lcd | 29 ++++++++++++++++++++--------- 1 file changed, 20 insertions(+), 9 deletions(-) diff --git a/bin/weather-lcd b/bin/weather-lcd index 49fd5e3..779bc49 100755 --- a/bin/weather-lcd +++ b/bin/weather-lcd @@ -153,15 +153,17 @@ function setup_pages(conn) pageid = def["sensor"].."."..def["param"] pagetitle = trim(def["label"])..", "..def["unit"] write_command(conn,"screen_add "..pageid) - write_command(conn,"screen_set "..pageid.." -cursor off") - write_command(conn,"screen_set "..pageid.." -name "..pagetitle.." -duration "..graph_duration) + write_command(conn,"screen_set "..pageid.." -cursor off -name "..pagetitle.." -duration "..graph_duration) write_command(conn,"widget_add "..pageid.." "..pageid..".title title") - write_command(conn,"widget_set "..pageid.." "..pageid..".title \"".. pagetitle.."\"") write_command(conn,"widget_add "..pageid.." "..pageid..".max string") write_command(conn,"widget_add "..pageid.." "..pageid..".min string") - for k=1,width-def["pos"] do + for k = 3,height-1 do + write_command(conn,"widget_add "..pageid.." "..pageid..".place"..trim(tostring(k)).." string") + end + for k=1,width do write_command(conn,"widget_add "..pageid.." "..pageid..".bar"..trim(tostring(k)).." vbar") end + write_command(conn,"widget_set "..pageid.." "..pageid..".title \"".. pagetitle.."\"") end end end @@ -197,7 +199,7 @@ function process_graphs() local vals = {} local maxval = -99999999 local minval = 99999999 - for k=width-def["pos"],1,-1 do + for k=width,1,-1 do if row then val = row["val"] row = cur:fetch ({}, "a") @@ -209,19 +211,28 @@ function process_graphs() if val and (val < minval) then minval = val; end end minval = math.floor(minval) - minvalstr = trim(tostring(minval)) + local minvalstr = trim(tostring(minval)) maxval = math.ceil(maxval) - maxvalstr = trim(tostring(maxval)) + local maxvalstr = trim(tostring(maxval)) + local len = math.max(string.len(minvalstr),string.len(maxvalstr)) write_command(conn,"widget_set "..pageid.." "..pageid..".max "..trim(tostring(width-string.len(maxvalstr)+1)).." 2 "..maxvalstr) + for k = 3,height-1 do + write_command(conn,"widget_set "..pageid.." "..pageid..".place"..trim(tostring(k)).." "..trim(tostring(width-len+1)).." "..k.." \""..string.rep("-",len).."\"") + end write_command(conn,"widget_set "..pageid.." "..pageid..".min "..trim(tostring(width-string.len(minvalstr)+1)).." "..height.." "..minvalstr) - for k = 1,width-def["pos"] do - val = vals[k] + local m = width + for k = width-len,1,-1 do + val = vals[m] if val then h = math.floor(0.5+(val-minval)/(maxval-minval)*(height-1)*charheight) else h = 0 end write_command(conn,"widget_set "..pageid.." "..pageid..".bar"..trim(tostring(k)).." "..k.." "..height.." "..h) + m = m - 1 + end + for k= m,1,-1 do + write_command(conn,"widget_set "..pageid.." "..pageid..".bar"..trim(tostring(k)).." 0 0 0") end end end -- 2.34.1