diff --git a/rrdb/README.md b/rrdb/README.md index 4cf4455..74d6528 100644 --- a/rrdb/README.md +++ b/rrdb/README.md @@ -1,5 +1,20 @@ # Round Robin Database Un grand classique du genre. Délicat à comprendre au début. +Les principes sous-jacents sont assez pointus, et leur mise en oeuvre +loin d'être évidente pour les newbies. + +La lecture de la manpage `rrdtutorial` est indispensable. + +## premier exemple + + +## et après ? + + + + + + diff --git a/serial/README.md b/serial/README.md index cfe5c6a..f531775 100644 --- a/serial/README.md +++ b/serial/README.md @@ -26,6 +26,10 @@ Oui, voilà. À ce jour (20 déc. 2018), on va dire que ça ne marche pas. Il faut dire que les `serial devices` ont toujours étés un peu le domaine de la magie noire. Mais quand même, coincer sur un `read` qui ne bloque pas, c'est un peu ironique. + +Après un peu plus d'investigation, j'en arrive à conclure qu'il y a +plein de subtilités entre les diverses variantes d'Arduino. + diff --git a/serial/t.c b/serial/t.c index cd95b9e..68ef369 100644 --- a/serial/t.c +++ b/serial/t.c @@ -21,7 +21,7 @@ uart = open(dev, O_RDONLY | O_NOCTTY); if (uart < 0) { perror("unable to open uart"); - return -1; + exit(1); } return uart; } @@ -33,24 +33,22 @@ int serial_in, foo; unsigned char byte; if (2 != argc) { - fprintf(stderr, "device name ?\n"); + fprintf(stderr, "give me a device name, please.\n"); return 2; } serial_in = openserial(argv[1]); -fprintf(stderr, "prepare uart -> %d\n", serial_in); - -if (serial_in < 0) { - exit(1); - } +fprintf(stderr, "openserial -> %d\n", serial_in); for (;;) { foo = read(serial_in, &byte, 1); if (1 != foo) { - fprintf(stderr, "get byte : err is %d\n", errno); + fprintf(stderr, "get byte : got %d, err is %d\n", foo, errno); } else { - printf("%9ld %02x/%d\n", time(NULL), byte, byte); + printf("%9ld $%02x ", time(NULL), byte); + if (isprint(byte)) putchar(byte); + puts(""); } }