Browse Source

working on serial protocol

tth 2 years ago
parent
commit
15c6cbd8ae
5 changed files with 25 additions and 7 deletions
  1. 2
    0
      serial/README.md
  2. 4
    4
      serial/essai.sh
  3. 12
    1
      serial/funcs.c
  4. 1
    1
      serial/serial.h
  5. 6
    1
      serial/t.c

+ 2
- 0
serial/README.md View File

@@ -28,6 +28,8 @@ ne bloque pas, c'est un peu ironique.
28 28
 
29 29
 Après un peu plus d'investigation, j'en arrive à conclure qu'il y a
30 30
 plein de subtilités entre les diverses variantes d'Arduino. Mais pas que.
31
+Je pense que les quatre ports série supplémentaires de l'Arduino Mega
32
+seront moins capricieux.
31 33
 
32 34
 
33 35
 

+ 4
- 4
serial/essai.sh View File

@@ -5,18 +5,18 @@ DATAFILE="foo.dat"
5 5
 TMPFILE="/tmp/dd2data"
6 6
 
7 7
 IMAGE="graphe.png"
8
-NB_READ=25000
8
+NB_READ=25
9 9
 
10
-./t -v -n ${NB_READ} -d ${DEVICE} | tee -a ${DATAFILE}
10
+./t -vv -n ${NB_READ} -d ${DEVICE} | tee -a ${DATAFILE}
11 11
 
12 12
 gnuplot << __EOC__
13 13
 set term png 	size 3200,512
14 14
 set output 	"${IMAGE}"
15 15
 set grid
16
-set title	"Dans le Double Dragon 2"
16
+set title	"Temperature dans le Double Dragon 2"
17 17
 set xdata 	time
18 18
 set timefmt 	"%s"
19
-set format x 	"%H:%M:%S"
19
+set format x 	"%a, %H:%M:%S"
20 20
 set yrange [ 5.0 : 30.0]
21 21
 plot	"${DATAFILE}" using 1:2 title " foo" with lines, \
22 22
 	"${DATAFILE}" using 1:3 title " bar" with lines, \

+ 12
- 1
serial/funcs.c View File

@@ -7,6 +7,10 @@
7 7
 extern int	verbosity;
8 8
 
9 9
 /* ---------------------------------------------------------------- */
10
+/*
11
+ *	compute the integer mean value of a four values
12
+ *	tagged lines.
13
+ */
10 14
 int parseXvalue(char *line, char cflag)
11 15
 {
12 16
 int	value, foo;
@@ -32,10 +36,17 @@ if (4 != foo) {
32 36
 for (foo=0; foo<4; foo++) {
33 37
 	value += vrd[foo];
34 38
 	}
39
+
40
+value /= 4;
41
+
35 42
 return value;
36 43
 }
37 44
 /* ---------------------------------------------------------------- */
38
-int values2temps(float array[4])
45
+/*
46
+ *   this fonction is specific to the LM35 thermo-sensor
47
+ *   connected to a ADC pin of an Arduino Mega
48
+ */
49
+int values2temperature(float array[4])
39 50
 {
40 51
 int	foo;
41 52
 for (foo=0; foo<4; foo++) {

+ 1
- 1
serial/serial.h View File

@@ -17,7 +17,7 @@ int getline_to(int fd, char *where, int szm, int to_ms);
17 17
 /* auxiliary and test functions */
18 18
 
19 19
 int parseXvalue(char *asciidatas, char id);
20
-int values2temps(float array[4]);
20
+int values2temperature(float array[4]);
21 21
 
22 22
 int parse4values(char *line, char cflag, float array[4]);
23 23
 

+ 6
- 1
serial/t.c View File

@@ -37,7 +37,7 @@ for (count=0; count<iters; count++) {
37 37
 	// 
38 38
 	if (foo >= 0) {
39 39
 		temps = time(NULL);
40
-		values2temps(datas);
40
+		values2temperature(datas);
41 41
 		printf("%ld %f %f %f %f\n", temps,
42 42
 				datas[0], datas[1], datas[2], datas[3]);
43 43
 		fflush(stdout);
@@ -75,6 +75,11 @@ while ((opt = getopt(argc, argv, "d:n:v")) != -1) {
75 75
 
76 76
 	}
77 77
 
78
+if (verbosity) {
79
+	fprintf(stderr, "Testing Serial Software - compiled "	\
80
+				__DATE__ " " __TIME__ "\n");
81
+	}
82
+
78 83
 serial_in = prepare_UART(device, speed);
79 84
 if (serial_in < 0) {
80 85
 	fprintf(stderr, "%s : open device : error %d on %s\n",

Loading…
Cancel
Save