/* * Experiments with the serial input * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ #include #include #include #include #include #include //Used for UART #include //Used for UART #include #include //Used for UART #include #include "serial.h" int verbosity; /* ---------------------------------------------------------------- */ int loop(int sfd, int iters) { int count, foo; long temps; char ligne[200]; float datas[4]; for (count=0; count %d\n", count, foo); fprintf(stderr, "%s\n", ligne); } foo = parse4values(ligne, 'X', datas); // if (foo >= 0) { temps = time(NULL); printf("%ld %f %f %f %f\n", temps, datas[0], datas[1], datas[2], datas[3]); fflush(stdout); } else { fprintf(stderr, "%s: parse -> %d\n", __func__, foo); } if (verbosity) fprintf(stderr, "\n"); } return 0; } /* ---------------------------------------------------------------- */ int main (int argc, char *argv[]) { int serial_in; char *device; int nbre, speed, opt; /* set some default values */ verbosity = 0; nbre = 25; speed = 9600; device = "/dev/ttyACM0"; while ((opt = getopt(argc, argv, "d:n:v")) != -1) { switch (opt) { case 'v': verbosity++; break; case 'n': nbre = atoi(optarg); break; case 'd': device = optarg; break; default: fprintf(stderr, "%s : uh ?", argv[0]); exit(1); break; } } serial_in = prepare_UART(device, speed); if (serial_in < 0) { fprintf(stderr, "%s : open device : error %d on %s\n", argv[0], serial_in, device); exit(1); } fprintf(stderr, "going to listen on %d\n", serial_in); (void)loop(serial_in, nbre); return 0; } /* ---------------------------------------------------------------- */