Browse Source

preparation de la lecture du fichier de conf

tth 1 year ago
parent
commit
abdfc44cbe
6 changed files with 144 additions and 12 deletions
  1. 10
    2
      core/Makefile
  2. 21
    0
      core/config.h
  3. 10
    0
      core/dd2-monitor.conf
  4. 61
    0
      core/parseconf.c
  5. 14
    2
      core/t.c
  6. 28
    8
      doc/dd2-monitoring.tex

+ 10
- 2
core/Makefile View File

@@ -2,11 +2,19 @@
2 2
 #
3 3
 #
4 4
 
5
+OBJS = lut1024f.o parseconf.o
6
+
5 7
 lut1024f.o:	lut1024f.c lut1024.h
6 8
 	gcc -Wall -c $<
7 9
 
8
-t:	t.c lut1024f.o  lut1024.h
9
-	gcc -Wall $< lut1024f.o -o $@
10
+
11
+parseconf.o:	parseconf.c config.h
12
+	gcc -Wall -c $<
13
+
14
+
15
+
16
+t:	t.c ${OBJS}  lut1024.h config.h
17
+	gcc -Wall $< ${OBJS} -o $@
10 18
 
11 19
 foo.lut1024f:	mklut.pl Makefile
12 20
 	./mklut.pl quux > $@

+ 21
- 0
core/config.h View File

@@ -0,0 +1,21 @@
1
+/*
2
+ *		config.h
3
+ */
4
+
5
+#define		SZ_STRINGS	200
6
+
7
+typedef struct {
8
+
9
+	int	valid;
10
+	
11
+
12
+
13
+
14
+	} Configuration;
15
+
16
+/* ---------------------------------------------------------------- */
17
+
18
+int parse_config(char *fname, int flags);
19
+int show_config(char *title);
20
+
21
+/* ---------------------------------------------------------------- */

+ 10
- 0
core/dd2-monitor.conf View File

@@ -0,0 +1,10 @@
1
+
2
+
3
+
4
+input_device	s	/def/ttyACM0
5
+
6
+
7
+
8
+
9
+
10
+

+ 61
- 0
core/parseconf.c View File

@@ -0,0 +1,61 @@
1
+/*
2
+ *		parseconf
3
+ */
4
+
5
+#include  <stdio.h>
6
+#include  <string.h>
7
+
8
+#include  "config.h"
9
+
10
+extern int 			verbosity;
11
+extern Configuration		config;
12
+
13
+/* ---------------------------------------------------------------- */
14
+int parse_config(char *fname, int flags)
15
+{
16
+FILE		*fp;
17
+char		line[SZ_STRINGS+1];
18
+
19
+
20
+#if DEBUG_LEVEL
21
+fprintf(stderr, ">>> %s ( '%s' $%x )\n", fname, flags);
22
+#endif
23
+
24
+config.valid = 49;
25
+
26
+if (NULL==(fp=fopen(fname, "r"))) {
27
+	perror(fname);
28
+	return -2;
29
+	}
30
+
31
+while (fgets(line, SZ_STRINGS, fp))
32
+	{
33
+	/* massage the end of line */
34
+
35
+	/* skip comments */
36
+
37
+	/* seek for keyword */
38
+
39
+
40
+	}
41
+
42
+
43
+
44
+fclose(fp);
45
+
46
+return -1;
47
+}
48
+/* ---------------------------------------------------------------- */
49
+int show_config(char *title)
50
+{
51
+
52
+if (verbosity) {
53
+	printf("********** %s **********\n", title);
54
+	}
55
+
56
+printf("valid         %d\n", config.valid);
57
+
58
+puts("");
59
+return 0;
60
+}
61
+/* ---------------------------------------------------------------- */

+ 14
- 2
core/t.c View File

@@ -7,20 +7,28 @@
7 7
 #include  <getopt.h>
8 8
 
9 9
 #include	"lut1024.h"
10
-
10
+#include	"config.h"
11 11
 
12 12
 int verbosity;
13 13
 
14
+Configuration		config;
15
+
16
+
14 17
 /* ---------------------------------------------------------------- */
15 18
 
16 19
 int main (int argc, char *argv[])
17 20
 {
18 21
 int		foo, opt;
22
+char		*conffile = "dd2-monitor.conf";
23
+
24
+
25
+fprintf(stderr, "+\n+   DD2 MONITOR\n+\n");
19 26
 
20 27
 /* set some default values */
21 28
 verbosity	= 0;
22 29
 
23 30
 
31
+
24 32
 while ((opt = getopt(argc, argv, "v")) != -1) {
25 33
 	switch (opt) {
26 34
 		case 'v':	verbosity++;		break;
@@ -35,9 +43,13 @@ while ((opt = getopt(argc, argv, "v")) != -1) {
35 43
 	}
36 44
 
37 45
 
46
+foo = parse_config(conffile, 1);
47
+fprintf(stderr, "parse_config(%s) -> %d\n\n", conffile, foo);
48
+show_config("foo");
49
+
38 50
 foo = load_lut1024f("foo.lut1024f", NULL, 1);
39 51
 
40
-fprintf(stderr, "chargement de la lut --> %d\n", foo);
52
+fprintf(stderr, "chargement de la lut --> %d\n\n", foo);
41 53
 
42 54
 return 0;
43 55
 }

+ 28
- 8
doc/dd2-monitoring.tex View File

@@ -15,7 +15,7 @@
15 15
 \usepackage[verbose]{layout}
16 16
 
17 17
 \makeindex
18
-\setlength{\parskip}{0.25cm plus 0.25cm}
18
+\setlength{\parskip}{0.20cm plus 0.20cm}
19 19
 
20 20
 % -------------------------------------------------------------------
21 21
 \title{DD2 Monitoring}
@@ -76,6 +76,8 @@ choix, et nous allons en évaluer quelques uns :
76 76
 \texttt{gnocchi}\index{Gnocchi} (page \pageref{gnocchi})
77 77
 \texttt{sqlite}\index{sqlite} (page \pageref{sqlite})
78 78
 
79
+La représentation interne des valeurs reste à définir pour
80
+la plupart d'entre elles.
79 81
 
80 82
 \subsection{Affichage}
81 83
 
@@ -107,7 +109,8 @@ de bonne efficacité.
107 109
 
108 110
 Un premier exemple avec rrdb en page \pageref{rrdb}.
109 111
 Le second cause des premiers essais du LM35, capteur de
110
-température analogique.
112
+température analogique branché sur un Arduino et relié
113
+par un port série (page \pageref{serialcode}).
111 114
 
112 115
 \subsection{Analyses}
113 116
 
@@ -121,8 +124,9 @@ de choses étranges, comme ça :
121 124
 d'une criante justesse scientifique ;)}
122 125
 
123 126
 Ce qui donne qunad même à réfléchir. À se demander quel savoir
124
-allons-nous pouvir déduire de ces\footnote{non, c'est pas du bigdata.}
127
+allons-nous pouvoir déduire de ces\footnote{non, c'est pas du bigdata.}
125 128
 chiffres improbables.
129
+(Re-)Découvrir les lois de l'inertie thermique ?
126 130
 
127 131
 
128 132
 \subsection{Archivage} \index{archivage} \label{archivage}
@@ -138,12 +142,22 @@ ou d'un
138 142
 \textit{epicfail\footnote{En fait, c'est comme ça que la science avance}}.
139 143
 
140 144
 Nous devons donc rencontrer quelqu'un qui maitrise cette partie
141
-de la mouvance détournementale de l'espionnage.
145
+de la mouvance détournementale de l'espionnage. Yaya\index{Yaya} ?
142 146
 
143 147
 % -------------------------------------------------------------------
144 148
 
149
+\section{Configuration} \index{configuration} \label{configuration}
145 150
 
151
+Pour adapter cet outil de surveillance aux variations du monde réel,
152
+nous devons nous-même lui décrire ce monde. Une description qui se
153
+fera avec des lignes de la forme '\texttt{input\_device s /dev/ttyACM0}'
154
+qui représentent des tuples
155
+\textit{clef-type-valeur}\footnote{Laissons les canards tranquilles.}
156
+de.
146 157
 
158
+La syntaxe n'est pas encore fixée, mais un fichier exemple est
159
+disponible pour des explication plus récentes, donc plus en
160
+rapport avec la réalité du code.
147 161
 
148 162
 % -------------------------------------------------------------------
149 163
 \section{RRDB} \label{rrdb}
@@ -239,6 +253,11 @@ trop fatiguante à compiler pour ce soir, ni même pour ce week-end.
239 253
 \texttt{pip install gnocchi[postgresql,ceph,keystone]}, finalement,
240 254
 çe ne me donne pas trop envie. C'est du genre \textit{usinagaz}.
241 255
 
256
+% -------------------------------------------------------------------
257
+\section{Sqlite} \index{sqlite} \label{sqlite}
258
+
259
+\subsection{À regarder de près}
260
+
242 261
 % -------------------------------------------------------------------
243 262
 
244 263
 \section{Serial coms} \index{serial} \label{serial}
@@ -282,6 +301,10 @@ Nous allons donc transférer ces valeurs sous forme de ligne
282 301
 de texte commençant par un caractère clef (par exemple T pour
283 302
 les températures) et se terminant par un \textit{newline}.
284 303
 
304
+
305
+\subsection{Un peu de code} \label{serialcode}
306
+
307
+
285 308
 % -------------------------------------------------------------------
286 309
 
287 310
 \section{Détournements}
@@ -293,11 +316,8 @@ Les possibilités ne seront limitées que par votre manque d'imagination.
293 316
 Si vous voulez un petit exemple, imaginez des courbes de température
294 317
 qui pilotent un \texttt{uGen} de Chuck\index{chuck} ou des algues dont
295 318
 la lumière envoie du \texttt{cv/gate} en temps réel.
296
-Le tout en n'utilisant que des circuits\index{ampli op} analogiques,
297
-et peut-être quelques transistors au germanium\index{germanium}.
298
-Ça vous semble peut-être un peu mélangé, mais bon,
299
-c'est facile de comprendre l'esprit. C'est plus délicat d'imaginer.
300 319
 
320
+\subsection{Variante}
301 321
 
302 322
 
303 323
 % -------------------------------------------------------------------

Loading…
Cancel
Save