From: Martin Mares Date: Sat, 7 Jan 2012 23:21:35 +0000 (+0100) Subject: Corrections for my sensors X-Git-Tag: v1.2~16 X-Git-Url: http://mj.ucw.cz/gitweb/?a=commitdiff_plain;h=7279af655a27d680b867c41ca647a7ab9789e67e;p=arexx.git Corrections for my sensors --- diff --git a/arexxd.c b/arexxd.c index c93ec57..554d45a 100644 --- a/arexxd.c +++ b/arexxd.c @@ -1,7 +1,7 @@ /* * Linux Interfece for Arexx Data Loggers * - * (c) 2011 Martin Mares + * (c) 2011-2012 Martin Mares */ #include @@ -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)