serial : a small test main()
This commit is contained in:
parent
933365b883
commit
cda7b7f45e
@ -92,6 +92,9 @@ ne demande qu'à grandir.
|
|||||||
|
|
||||||
\subsection{Analyses}
|
\subsection{Analyses}
|
||||||
|
|
||||||
|
% -------------------------------------------------------------------
|
||||||
|
|
||||||
|
\section{influxdb} \label{influxdb}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -14,7 +14,11 @@ purpose-built platform that InfluxData provides._
|
|||||||
|
|
||||||
# On essaye ?
|
# 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;
|
use strict;
|
||||||
|
|
||||||
print "injecteur v 0\n";
|
print "injecteur v 0\n";
|
||||||
|
|
||||||
|
0;
|
||||||
|
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
|
|
||||||
|
OPT = -Wall -DDEBUG_LEVEL=1
|
||||||
|
|
||||||
serial.o: serial.c serial.h Makefile
|
serial.o: serial.c serial.h Makefile
|
||||||
gcc -Wall -c $<
|
gcc ${OPT} -c $<
|
||||||
|
|
||||||
t: t.c serial.o Makefile
|
t: t.c serial.o Makefile
|
||||||
gcc -Wall $< serial.o -o $@
|
gcc ${OPT} $< serial.o -o $@
|
||||||
|
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
#include <sys/select.h>
|
||||||
#include <unistd.h> //Used for UART
|
#include <unistd.h> //Used for UART
|
||||||
#include <fcntl.h> //Used for UART
|
#include <fcntl.h> //Used for UART
|
||||||
#include <termios.h> //Used for UART
|
#include <termios.h> //Used for UART
|
||||||
@ -84,7 +85,7 @@ if (uart0== -1)
|
|||||||
|
|
||||||
baudbits = baudrate2const(baudrate);
|
baudbits = baudrate2const(baudrate);
|
||||||
#if DEBUG_LEVEL
|
#if DEBUG_LEVEL
|
||||||
fprintf(stderr, "%d -> %x\n", baudrate, baudbits);
|
fprintf(stderr, "%d -> 0x%04x\n", baudrate, baudbits);
|
||||||
#endif
|
#endif
|
||||||
tcgetattr(uart0, &options);
|
tcgetattr(uart0, &options);
|
||||||
options.c_cflag = baudbits | CS8 | CLOCAL | CREAD; //<Set baud rate
|
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)
|
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
|
* serial.h
|
||||||
|
* --------
|
||||||
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
int prepare_UART(char *port, int bauds);
|
int prepare_UART(char *port, int bauds);
|
||||||
|
|
||||||
int getbyte(int fd);
|
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 main (int argc, char *argv[])
|
||||||
{
|
{
|
||||||
int serial_in;
|
int serial_in;
|
||||||
int byte, foo;
|
int byte, foo, to;
|
||||||
|
|
||||||
serial_in = prepare_UART("/dev/ttyS0", 9600);
|
serial_in = prepare_UART("/dev/ttyS0", 9600);
|
||||||
fprintf(stderr, "prepare uart -> %d\n", serial_in);
|
fprintf(stderr, "prepare uart -> %d\n", serial_in);
|
||||||
|
|
||||||
for (foo=0; foo<20; foo++) {
|
for (foo=0; foo<20; foo++) {
|
||||||
byte = getbyte(serial_in);
|
to = (foo+1) * 666;
|
||||||
printf("%6d %02x\n", foo, byte);
|
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;
|
return 0;
|
||||||
|
Loading…
Reference in New Issue
Block a user