]> mj.ucw.cz Git - arexx.git/commitdiff
Corrections for my sensors
authorMartin Mares <mj@ucw.cz>
Sat, 7 Jan 2012 23:21:35 +0000 (00:21 +0100)
committerMartin Mares <mj@ucw.cz>
Sat, 7 Jan 2012 23:21:35 +0000 (00:21 +0100)
arexxd.c

index c93ec57cd14e2d1cc8a3b8e6e5008c5a9662392e..554d45aa7fd3d7961afcf9b47c4cc5901d53d08f 100644 (file)
--- a/arexxd.c
+++ b/arexxd.c
@@ -1,7 +1,7 @@
 /*
  *     Linux Interfece for Arexx Data Loggers
  *
- *     (c) 2011 Martin Mares <mj@ucw.cz>
+ *     (c) 2011-2012 Martin Mares <mj@ucw.cz>
  */
 
 #include <stdio.h>
@@ -158,18 +158,38 @@ static void rrd_point(time_t t, int id, double val, char *unit)
 
 static int data_point_counter;
 
+static double correct_point(int id, double val)
+{
+       /*
+        *  Manually calculated corrections for my sensors.
+        *  Replace with your formulae.
+        */
+       switch (id) {
+               case 10415:
+                       return val - 0.93;
+               case 19246:
+                       return val + 0.49;
+               case 12133:
+                       return val + 0.44;
+               default:
+                       return val;
+       }
+}
+
 static void cooked_point(time_t t, int id, double val, char *unit, int q)
 {
+       double val2 = correct_point(id, val);
+
        if (debug_raw_data) {
                struct tm tm;
                localtime_r(&t, &tm);
                char tbuf[64];
                strftime(tbuf, sizeof(tbuf), "%Y-%m-%d %H:%M:%S", &tm);
-               printf("== %s id=%d val=%.3f unit=%s q=%d\n", tbuf, id, val, unit, q);
+               printf("== %s id=%d val=%.3f val2=%.3f unit=%s q=%d\n", tbuf, id, val, val2, unit, q);
        }
 
        data_point_counter++;
-       rrd_point(t, id, val, unit);
+       rrd_point(t, id, val2, unit);
 }
 
 static void raw_point(int t, int id, int raw, int q)