/dev/ttyACM0 mon amour

This commit is contained in:
tth 2018-12-29 02:43:12 +01:00
parent 73348c2339
commit c7053d9c30
3 changed files with 26 additions and 9 deletions

View File

@ -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 ?

View File

@ -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.

View File

@ -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("");
}
}