#include #include #include "serial.h" extern int verbosity; /* ---------------------------------------------------------------- */ /* * compute the integer mean value of a four values * tagged lines. */ int parseXvalue(char *line, char cflag) { int value, foo; int vrd[4]; value=0; if ( cflag != *line ) { if (verbosity) { fprintf(stderr, "%s : line[0] 0x%x bad\n", __func__, *line); } return -777; } foo = sscanf(line+1, "%d %d %d %d", vrd, vrd+1, vrd+2, vrd+3); #if DEBUG_LEVEL fprintf(stderr, "%s : sscanf -> %d\n", __func__, foo); #endif if (4 != foo) { return -666; } for (foo=0; foo<4; foo++) { value += vrd[foo]; } value /= 4; return value; } /* ---------------------------------------------------------------- */ /* * this fonction is specific to the LM35 thermo-sensor * connected to a ADC pin of an Arduino Mega * * WARNING ! * this function _must_ be modofied if you change the * Vref of the Analog to Digital converter on the * Arduino ! * */ int values2temperature(float array[4]) { int foo; for (foo=0; foo<4; foo++) { array[foo] *= (1.1 / 1023.0 * 100.0); } return 0; } /* ---------------------------------------------------------------- */ int parse4values(char *line, char cflag, float array[4]) { float ftmp[4]; int foo; if ( cflag != *line ) { if (verbosity) { fprintf(stderr, "%s : line[0] 0x%x bad\n", __func__, *line); } return -777; } foo = sscanf(line+1, "%f %f %f %f", ftmp, ftmp+1, ftmp+2, ftmp+3); if (4 != foo) { fprintf(stderr, "%s : sscanf -> %d\n", __func__, foo); return -666; } // fprintf(stderr, "\tV %f\n", ftmp[0]); memcpy(array, ftmp, 4*sizeof(float)); return 4; } /* ---------------------------------------------------------------- */