diff --git a/serial/essai.sh b/serial/essai.sh new file mode 100755 index 0000000..3056834 --- /dev/null +++ b/serial/essai.sh @@ -0,0 +1,10 @@ +#!/bin/bash + +DEVICE="/dev/ttyACM0" + +for p in {0..15} +do + echo pass $p + ./t ${DEVICE} | tee -a foo.dat + sleep 8 +done diff --git a/serial/funcs.c b/serial/funcs.c index 9dfe358..99c6ae1 100644 --- a/serial/funcs.c +++ b/serial/funcs.c @@ -34,3 +34,10 @@ for (foo=0; foo<4; foo++) { return value; } /* ---------------------------------------------------------------- */ +int parse4values(char *line, char cflag, float array[4]) +{ + + +return -777; +} +/* ---------------------------------------------------------------- */ diff --git a/serial/serial.h b/serial/serial.h index 294d3c4..6b28d65 100644 --- a/serial/serial.h +++ b/serial/serial.h @@ -17,5 +17,6 @@ int getline_to(int fd, char *where, int szm, int to_ms); /* auxiliary and test functions */ int parseXvalue(char *asciidatas, char id); +int parse4values(char *line, char cflag, float array[4]); diff --git a/serial/t.c b/serial/t.c index 03f67bb..27cb32f 100644 --- a/serial/t.c +++ b/serial/t.c @@ -12,38 +12,76 @@ #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]; + +for (count=0; count %d\n", count, foo); + fprintf(stderr, "%s\n", ligne); + } + foo = parseXvalue(ligne, 'X'); + // + if (foo >= 0) { + temps = time(NULL); + printf("%ld %d\n", temps, foo); + fflush(stdout); + } + else { + fprintf(stderr, "%s: parse -> %d\n", __func__, foo); + } + } +return 0; +} /* ---------------------------------------------------------------- */ int main (int argc, char *argv[]) { -int serial_in, foo, count; -char ligne[200]; +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; + } -if (2 != argc) { - fprintf(stderr, "give me a device name, please.\n"); - return 2; } -serial_in = prepare_UART(argv[1], 9600); +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); -for (count=0; count<100000; count++) { - foo = getline_to(serial_in, ligne, 100, 0); - fprintf(stderr, "getline #%d -> %d\n", count, foo); - fprintf(stderr, "%s\n", ligne); - foo = parseXvalue(ligne, 'X'); - // fprintf(stderr, "parse -> %d\n", foo); - if (foo>= 0) { - printf("%d %d\n", count, foo); - fflush(stdout); - } - } +(void)loop(serial_in, nbre); return 0; }