На узких дисплеях не отображать максимальное-минимальное значение на графиках, втиски...
authorRoman Bazalevsky <rvb@rvb.name>
Wed, 22 Jan 2020 03:51:26 +0000 (06:51 +0300)
committerRoman Bazalevsky <rvb@rvb.name>
Wed, 22 Jan 2020 03:51:26 +0000 (06:51 +0300)
bin/weather-lcd

index 17436efbc5ae64c4da910b104b5bf6f349e6cbef..9ecadfa0ee3f37e191d82ad288250322807118d7 100755 (executable)
@@ -155,11 +155,13 @@ function setup_pages(conn)
         write_command(conn,"screen_add "..pageid)
         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,"screen_add "..pageid)
         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_add "..pageid.." "..pageid..".max string")
-        write_command(conn,"widget_add "..pageid.." "..pageid..".min string")
-        for k = 3,height-1 do
-          write_command(conn,"widget_add "..pageid.." "..pageid..".place"..trim(tostring(k)).." string")
-        end
+        if height>2 then
+          write_command(conn,"widget_add "..pageid.." "..pageid..".max string")
+          write_command(conn,"widget_add "..pageid.." "..pageid..".min string")
+          for k = 3,height-1 do
+            write_command(conn,"widget_add "..pageid.." "..pageid..".place"..trim(tostring(k)).." string")
+          end
+        end  
         write_command(conn,"widget_set "..pageid.." "..pageid..".title \"".. pagetitle.."\"")
       end
     end
         write_command(conn,"widget_set "..pageid.." "..pageid..".title \"".. pagetitle.."\"")
       end
     end
@@ -196,6 +198,7 @@ function process_graphs()
       local vals = {}
       local maxval = -99999999
       local minval =  99999999
       local vals = {}
       local maxval = -99999999
       local minval =  99999999
+      local len
       for k=width,1,-1 do
         if row then
           val = row["val"] * def["scale"]
       for k=width,1,-1 do
         if row then
           val = row["val"] * def["scale"]
@@ -208,15 +211,19 @@ function process_graphs()
         if val and (val < minval) then minval = val; end
       end          
       minval = math.floor(minval)
         if val and (val < minval) then minval = val; end
       end          
       minval = math.floor(minval)
-      local minvalstr = trim(tostring(minval))
       maxval = math.ceil(maxval)
       maxval = math.ceil(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-1).."\"")
-      end
-      write_command(conn,"widget_set "..pageid.." "..pageid..".min "..trim(tostring(width-string.len(minvalstr)+1)).." "..height.." "..minvalstr)
+      if height>2 then
+        local minvalstr = trim(tostring(minval))
+        local maxvalstr = trim(tostring(maxval))
+        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)
+        write_command(conn,"widget_set "..pageid.." "..pageid..".min "..trim(tostring(width-string.len(minvalstr)+1)).." "..height.." "..minvalstr)
+        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-1).."\"")
+        end
+      else
+        len = 0
+      end    
       local m = width
       for k=1,width do
         write_command(conn,"widget_del "..pageid.." "..pageid..".bar"..trim(tostring(k)))
       local m = width
       for k=1,width do
         write_command(conn,"widget_del "..pageid.." "..pageid..".bar"..trim(tostring(k)))