serial : a small test main()
This commit is contained in:
parent
933365b883
commit
cda7b7f45e
@ -92,6 +92,9 @@ ne demande qu'à grandir.
|
||||
|
||||
\subsection{Analyses}
|
||||
|
||||
% -------------------------------------------------------------------
|
||||
|
||||
\section{influxdb} \label{influxdb}
|
||||
|
||||
|
||||
|
||||
|
@ -14,7 +14,11 @@ purpose-built platform that InfluxData provides._
|
||||
|
||||
# On essaye ?
|
||||
|
||||
Ok, c'est parti. On va écrire un injecteur en Perl.
|
||||
Ok, c'est parti. On va écrire un injecteur en Perl. Puis enchainer sur
|
||||
une visualisation dynamique des données en lancer de rayon.
|
||||
Projet ambitieux ? Non, la suite sera bien pire.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -3,3 +3,6 @@
|
||||
use strict;
|
||||
|
||||
print "injecteur v 0\n";
|
||||
|
||||
0;
|
||||
|
||||
|
@ -1,9 +1,9 @@
|
||||
|
||||
|
||||
OPT = -Wall -DDEBUG_LEVEL=1
|
||||
|
||||
serial.o: serial.c serial.h Makefile
|
||||
gcc -Wall -c $<
|
||||
gcc ${OPT} -c $<
|
||||
|
||||
t: t.c serial.o Makefile
|
||||
gcc -Wall $< serial.o -o $@
|
||||
gcc ${OPT} $< serial.o -o $@
|
||||
|
||||
|
@ -1,6 +1,7 @@
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <sys/select.h>
|
||||
#include <unistd.h> //Used for UART
|
||||
#include <fcntl.h> //Used for UART
|
||||
#include <termios.h> //Used for UART
|
||||
@ -84,7 +85,7 @@ if (uart0== -1)
|
||||
|
||||
baudbits = baudrate2const(baudrate);
|
||||
#if DEBUG_LEVEL
|
||||
fprintf(stderr, "%d -> %x\n", baudrate, baudbits);
|
||||
fprintf(stderr, "%d -> 0x%04x\n", baudrate, baudbits);
|
||||
#endif
|
||||
tcgetattr(uart0, &options);
|
||||
options.c_cflag = baudbits | CS8 | CLOCAL | CREAD; //<Set baud rate
|
||||
@ -98,7 +99,7 @@ return uart0;
|
||||
}
|
||||
/* -------------------------------------------------------------------- */
|
||||
/*
|
||||
* maybe we have to check for timeout ?
|
||||
* this function have NO timeout !
|
||||
*/
|
||||
int getbyte(int fd)
|
||||
{
|
||||
@ -115,3 +116,24 @@ return (int)byte;
|
||||
}
|
||||
|
||||
/* -------------------------------------------------------------------- */
|
||||
/* timeout is in milliseconds */
|
||||
int getbyte_to (int fd, int to_ms)
|
||||
{
|
||||
unsigned char byte;
|
||||
struct timeval timeout;
|
||||
|
||||
timeout.tv_sec = to_ms / 1000;
|
||||
timeout.tv_usec = (to_ms % 1000) * 1000;
|
||||
|
||||
#if DEBUG_LEVEL
|
||||
fprintf(stderr, "timeout %6d is %4ld %6ld\n", to_ms,
|
||||
timeout.tv_sec, timeout.tv_usec);
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
return -3;
|
||||
}
|
||||
/* -------------------------------------------------------------------- */
|
||||
|
@ -1,8 +1,15 @@
|
||||
/*
|
||||
* serial.h
|
||||
* --------
|
||||
*
|
||||
*/
|
||||
|
||||
int prepare_UART(char *port, int bauds);
|
||||
|
||||
int getbyte(int fd);
|
||||
|
||||
|
||||
/* timeout is exprimed in milliseconds. */
|
||||
int getbyte_to (int fd, int to_ms);
|
||||
|
||||
|
||||
|
12
serial/t.c
12
serial/t.c
@ -7,14 +7,20 @@
|
||||
int main (int argc, char *argv[])
|
||||
{
|
||||
int serial_in;
|
||||
int byte, foo;
|
||||
int byte, foo, to;
|
||||
|
||||
serial_in = prepare_UART("/dev/ttyS0", 9600);
|
||||
fprintf(stderr, "prepare uart -> %d\n", serial_in);
|
||||
|
||||
for (foo=0; foo<20; foo++) {
|
||||
byte = getbyte(serial_in);
|
||||
printf("%6d %02x\n", foo, byte);
|
||||
to = (foo+1) * 666;
|
||||
byte = getbyte_to(serial_in, to);
|
||||
if (byte < 0) {
|
||||
fprintf(stderr, "get byte : err is %d\n", byte);
|
||||
}
|
||||
else {
|
||||
printf("%6d %6d %02x\n", foo, to, byte);
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
Loading…
Reference in New Issue
Block a user