DD2-monitor/serial/funcs.c

63 lines
1.2 KiB
C
Raw Normal View History

#include <stdio.h>
2019-01-05 16:15:48 +01:00
#include <string.h>
#include "serial.h"
extern int verbosity;
/* ---------------------------------------------------------------- */
int parseXvalue(char *line, char cflag)
{
int value, foo;
int vrd[4];
value=0;
2018-12-31 17:19:52 +01:00
if ( cflag != *line ) {
2018-12-29 17:45:31 +01:00
if (verbosity) {
2019-01-05 16:15:48 +01:00
fprintf(stderr, "%s : line[0] 0x%x bad\n",
2018-12-29 17:45:31 +01:00
__func__, *line);
}
return -777;
}
foo = sscanf(line+1, "%d %d %d %d", vrd, vrd+1, vrd+2, vrd+3);
2018-12-31 17:19:52 +01:00
#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];
}
return value;
}
/* ---------------------------------------------------------------- */
2019-01-05 11:47:51 +01:00
int parse4values(char *line, char cflag, float array[4])
{
2019-01-05 16:15:48 +01:00
float ftmp[4];
int foo;
2019-01-05 11:47:51 +01:00
2019-01-05 16:15:48 +01:00
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));
2019-01-05 11:47:51 +01:00
2019-01-05 16:15:48 +01:00
return 4;
2019-01-05 11:47:51 +01:00
}
/* ---------------------------------------------------------------- */