changeset 497:c2209251fa33

weather: Make things a bit more generic.
author Matti Hamalainen <ccr@tnsp.org>
date Thu, 23 Jan 2020 05:58:24 +0200
parents 0b73fd8ee4cd
children 01f226d6a992
files weather.tcl
diffstat 1 files changed, 16 insertions(+), 8 deletions(-) [+]
line wrap: on
line diff
--- a/weather.tcl	Thu Jan 23 05:56:20 2020 +0200
+++ b/weather.tcl	Thu Jan 23 05:58:24 2020 +0200
@@ -145,21 +145,27 @@
 }
 
 
-# Translate cloudiness status
-proc weather_get_cloudiness_status {uvalue} {
-  global weather_msg_cloudiness_status
+proc weather_get_raw_table_value {utable uvalue} {
+  # If the data was not got, return empty value
+  if {$uvalue == "" || $uvalue == "NaN"} {
+    return ""
+  }
 
+  return "[expr int($uvalue) + 1]/[llength $utable]"
+}
+
+
+# "Translate" a straight table index (0-N) to table value
+proc weather_get_table_value {utable uvalue} {
   # If the data was not got, return empty value
   if {$uvalue == "" || $uvalue == "NaN"} {
     return ""
   }
 
   set uvalue [expr int($uvalue)]
-
-  set ulen [llength $weather_msg_cloudiness_status]
+  set ulen [llength $utable]
   if {$uvalue >= 0 && $uvalue < $ulen} {
-    set umsg [lindex $weather_msg_cloudiness_status $uvalue]
-    return "$umsg ($uvalue/[expr $ulen - 1])"
+    return [lindex $utable $uvalue]
   } else {
     return "ERROR ($uvalue)"
   }
@@ -169,6 +175,7 @@
 #-------------------------------------------------------------------------
 # Produce one location of weather data as a string
 proc weather_get_str {udata umsg} {
+  global weather_msg_cloudiness
 
   array unset uvals
   set uvals(station) [lindex $udata 0]
@@ -182,7 +189,8 @@
   set uvals(wind_speed) [lindex $udata 8]
   set uvals(wind_direction) [weather_get_wind_direction [lindex $udata 9]]
   set uvals(wind_direction_deg) [lindex $udata 9]
-  set uvals(cloudiness) [weather_get_cloudiness_status [lindex $udata 10]]
+  set uvals(cloudiness) [weather_get_table_value $weather_msg_cloudiness [lindex $udata 10]]
+  set uvals(cloudiness_val) [weather_get_raw_table_value $weather_msg_cloudiness [lindex $udata 10]]
   set uvals(road_surface_temp) [lindex $udata 11]
   set uvals(precipitation) [lindex $udata 12]
   set uvals(visibility) [lindex $udata 13]