/dev/ttyACM0 mon amour
This commit is contained in:
parent
73348c2339
commit
c7053d9c30
@ -1,5 +1,20 @@
|
|||||||
# Round Robin Database
|
# Round Robin Database
|
||||||
|
|
||||||
Un grand classique du genre. Délicat à comprendre au début.
|
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 ?
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -27,6 +27,10 @@ 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
|
domaine de la magie noire. Mais quand même, coincer sur un `read` qui
|
||||||
ne bloque pas, c'est un peu ironique.
|
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.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
16
serial/t.c
16
serial/t.c
@ -21,7 +21,7 @@ uart = open(dev, O_RDONLY | O_NOCTTY);
|
|||||||
if (uart < 0)
|
if (uart < 0)
|
||||||
{
|
{
|
||||||
perror("unable to open uart");
|
perror("unable to open uart");
|
||||||
return -1;
|
exit(1);
|
||||||
}
|
}
|
||||||
return uart;
|
return uart;
|
||||||
}
|
}
|
||||||
@ -33,24 +33,22 @@ int serial_in, foo;
|
|||||||
unsigned char byte;
|
unsigned char byte;
|
||||||
|
|
||||||
if (2 != argc) {
|
if (2 != argc) {
|
||||||
fprintf(stderr, "device name ?\n");
|
fprintf(stderr, "give me a device name, please.\n");
|
||||||
return 2;
|
return 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
serial_in = openserial(argv[1]);
|
serial_in = openserial(argv[1]);
|
||||||
fprintf(stderr, "prepare uart -> %d\n", serial_in);
|
fprintf(stderr, "openserial -> %d\n", serial_in);
|
||||||
|
|
||||||
if (serial_in < 0) {
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
for (;;) {
|
for (;;) {
|
||||||
foo = read(serial_in, &byte, 1);
|
foo = read(serial_in, &byte, 1);
|
||||||
if (1 != foo) {
|
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 {
|
else {
|
||||||
printf("%9ld %02x/%d\n", time(NULL), byte, byte);
|
printf("%9ld $%02x ", time(NULL), byte);
|
||||||
|
if (isprint(byte)) putchar(byte);
|
||||||
|
puts("");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user