Browse Source

modularisation du source de la documentation, LaTeX p0w4

tth 1 year ago
parent
commit
c0f3e128aa
3 changed files with 117 additions and 58 deletions
  1. 39
    0
      doc/automate.tex
  2. 20
    58
      doc/dd2-monitoring.tex
  3. 58
    0
      doc/serial.tex

+ 39
- 0
doc/automate.tex View File

@@ -0,0 +1,39 @@
1
+\section{Automate} \index{automate} \label{automate}
2
+
3
+L'automate qui contrôle les fonctions vitales des petites
4
+\textit{Pyrocystis Fusiformis} est basé sur un Arduino Mega\index{mega},
5
+qui a été choisi pour sa profusion d'entrées sorties\index{io}.
6
+Il va remplir plusieurs fonctions mises au point les unes et les autres.
7
+
8
+Dans un premier temps, le logiciel sera développé avec l'\textsl{IDE}
9
+standard de l'Arduiono, malgré ses limitations.
10
+Il existe des solutions alternatives à base de \texttt{makefile}, que
11
+nous découvrirons un jour, si le besoin s'en fait sentir.
12
+
13
+% -------------------------------------------------------------------
14
+\subsection{Dialogue}
15
+
16
+% -------------------------------------------------------------------
17
+\subsection{Température} \index{temperature}
18
+
19
+% -------------------------------------------------------------------
20
+\subsection{Voyants}
21
+
22
+Il faut \textbf{toujours} intégrer dans un projet une gestion avancée
23
+des \textsc{LED}\index{LED} qui clignotent avec entrain.
24
+
25
+% -------------------------------------------------------------------
26
+\subsection{Chauffage} \index{chauffage}
27
+
28
+
29
+% -------------------------------------------------------------------
30
+\subsection{Refroidissement}.
31
+
32
+% -------------------------------------------------------------------
33
+
34
+
35
+
36
+
37
+
38
+
39
+

+ 20
- 58
doc/dd2-monitoring.tex View File

@@ -14,7 +14,7 @@
14 14
 \usepackage[verbose]{layout}
15 15
 
16 16
 \makeindex
17
-\setlength{\parskip}{0.21cm plus 0.21cm}
17
+% \setlength{\parskip}{0.16cm plus 0.16cm}
18 18
 
19 19
 % -------------------------------------------------------------------
20 20
 \title{DD2 Monitoring}
@@ -47,11 +47,11 @@ Les valeurs à mesurer étant de diverses natures, nous aurons l'occasion
47 47
 de découvrir plein de capteurs différents : température, humidité,
48 48
 \texttt{pH}, transparence, lumière, vibrations\dots
49 49
 
50
-\setlength{\parskip}{0.05cm plus 0.05cm}
50
+% \setlength{\parskip}{0.01cm plus 0.01cm}
51 51
 \tableofcontents
52
-\setlength{\parskip}{0.16cm plus 0.16cm}
52
+% \setlength{\parskip}{0.16cm plus 0.16cm}
53 53
 
54
-\vspace{5cm}
54
+\vspace{4cm}
55 55
 
56 56
 Bonne lecture.
57 57
 
@@ -61,8 +61,6 @@ Bonne lecture.
61 61
 \pagebreak
62 62
 \section{Présentation générale}
63 63
 
64
-
65
-
66 64
 \subsection{Capteurs} \index{capteurs}
67 65
 
68 66
 Actuellement nous disposons d'un capteur température et
@@ -75,6 +73,7 @@ l'influence humaine n'étant pas à négliger en cas d'afflux du public..
75 73
 Par la suite, nous pourrons récupérer
76 74
 (par liaison série, cf page \pageref{serial})
77 75
 des données diverses en provenance de l'automate de contrôle de l'enceinte.
76
+Cet automate\index{automate} est décrit page \pageref{automate}.
78 77
 
79 78
 Le premier capteur de température sélectionné est le \textsc{LM35}\index{LM35}
80 79
 qui fournit en sortie une tension linéairement proportionnle à
@@ -116,6 +115,12 @@ C'est expliqué à la page \pageref{eyecandy}\index{curses}.
116 115
 
117 116
 % -------------------------------------------------------------------
118 117
 % ===================================================================
118
+% nouveau 2019-02-22
119
+
120
+\input{automate}
121
+
122
+% ===================================================================
123
+
119 124
 \section{Outils}
120 125
 
121 126
 \subsection{Simulations}
@@ -191,7 +196,8 @@ si on lui demande gentiment.
191 196
 
192 197
 \subsection{Affichage}\index{affichage}
193 198
 
194
-Un exemple d'affichage avec Gnuplot\index{gnuplot} d'un fichier
199
+Pour commencer presque simple, un exemple d'affichage avec
200
+Gnuplot\index{gnuplot} d'un fichier plat
195 201
 de température (décrit page \pageref{foo.dat}) :
196 202
 
197 203
 \begin{verbatim}
@@ -215,6 +221,9 @@ __EOC__
215 221
 
216 222
 \end{verbatim}
217 223
 
224
+Prochainement, dès que le premier prototype matériel fournira des
225
+données, une tentative de visualisation animée sera faite avec 
226
+POVray\index{POV}.
218 227
 
219 228
 
220 229
 % ===================================================================
@@ -243,6 +252,7 @@ eyecandy_banner         s       hacked by tTh
243 252
 
244 253
 Certains de ces paramètres pourront être surchargé par des options
245 254
 de la ligne de commande\index{cli} ou des variables d'environnement.
255
+
246 256
 % ===================================================================
247 257
 
248 258
 \section{Flatfile} \label{flatfile}
@@ -254,7 +264,7 @@ numériques peuvent suffire à beaucoup de \textsl{usecases} de la
254 264
 vie courante.
255 265
 
256 266
 Voici un exemple, un format\label{foo.dat} d'enregistrement de
257
-température facilement  exploitable avec Gnuplot :
267
+température facilement  exploitable avec Awk ou Gnuplot :
258 268
 
259 269
 \begin{verbatim}
260 270
 tth@phytotron:~/DD2-monitor/doc$ tail -3 ../serial/foo.dat
@@ -263,9 +273,6 @@ tth@phytotron:~/DD2-monitor/doc$ tail -3 ../serial/foo.dat
263 273
 1550673836 20.215054 20.107527 20.215054 20.215054
264 274
 \end{verbatim}
265 275
 
266
-Prochainement, dès que le premier prototype matériel fournira des
267
-données, une tentative de visualisation animée sera faite avec 
268
-POVray\index{POV}.
269 276
 
270 277
 % -------------------------------------------------------------------
271 278
 \section{RRDB} \label{rrdb}
@@ -353,7 +360,7 @@ Au programme : écriture d'un injecteur en Perl\index{Perl}, en suivant
353 360
 plus ou moins l'exemple de rrdb..
354 361
 
355 362
 Ceci dit, en Debian stable, on n'a que la version 1.0, qui ne 
356
-correspond plus trop à l'actualité. Et la \textit{current} est
363
+correspond plus trop à l'actualité. Et la \textit{current} semble
357 364
 trop fatiguante à compiler pour ce soir, ni même pour ce week-end.
358 365
 
359 366
 % -------------------------------------------------------------------
@@ -376,52 +383,7 @@ NodeJs\index{nodejs} peut-il lire du Sqlite ?
376 383
 
377 384
 % -------------------------------------------------------------------
378 385
 
379
-\section{Serial coms} \index{serial} \label{serial}
380
-
381
-Il va y avoir deux liaisons série entre l'automate et le monitoring.
382
-La première, que nous allons juste entrevoir, passera par le port
383
-USB de la carte Arduino. La seconde passera par un port série
384
-auxiliaire\footnote{Il y en a 4 sur le mega 2560} de celle-ci.
385
-
386
-\subsection{Un gros souci}
387
-
388
-\begin{lstlisting}
389
-tcgetattr(uart0, &options);
390
-options.c_cflag = baudbits | CS8 | CLOCAL | CREAD;
391
-options.c_iflag = IGNPAR;
392
-options.c_oflag = 0;
393
-options.c_lflag = 0;
394
-tcflush(uart0, TCIFLUSH);
395
-tcsetattr(uart0, TCSANOW, &options);
396
-\end{lstlisting}
397
-
398
-Et en fait, le \texttt{read} sur le \textsl{fd} du serial device
399
-n'est pas bloquant, \texttt{perror} annonce \emph{success}, mais
400
-rien ne marche. L'année 2019 va commencer sur du vaudou programming%
401
-\footnote {aka shotgun debugging.}.
402
-
403
-\textit{29 décembre 2018} : le petit grain de magie\index{magie}
404
-est très simple à mettre en oeuvre, mais
405
-très difficle à spotter dans le gazillion d'options. Il semblerait
406
-que mettre \texttt{options.c\_cc[VMIN]} à 1 permet d'avancer vers
407
-l'étape suivante.
408
-
409
-Laquelle étape est une tentative d'utilisation de \texttt{select(2)},
410
-dans l'objectif de pouvoir gérer nous-même le \textit{timeout},
411
-laquelle tentative n'est pas du tout concluante. 
412
-
413
-\subsection{Protocole}	\index{protocole} \label{serialprotocol}
414
-
415
-L'automate va avoir plusieurs types de données à envoyer.
416
-Nous allons donc transférer ces valeurs sous forme de ligne
417
-de texte commençant par un caractère clef (par exemple T pour
418
-les températures) et se terminant par un \textit{newline}.
419
-
420
-
421
-\subsection{Un peu de code} \label{serialcode}
422
-
423
-TODO\index{TODO}
424
-
386
+		\input{serial}
425 387
 
426 388
 % -------------------------------------------------------------------
427 389
 

+ 58
- 0
doc/serial.tex View File

@@ -0,0 +1,58 @@
1
+% ===================================================================
2
+
3
+\section{Serial coms} \index{serial} \label{serial}
4
+
5
+Il va y avoir deux liaisons série entre l'automate et le monitoring.
6
+La première, que nous allons juste entrevoir, passera par le port
7
+USB de la carte Arduino. La seconde passera par un port série
8
+auxiliaire\footnote{Il y en a 4 sur le mega 2560} de celle-ci.
9
+
10
+% -------------------------------------------------------------------
11
+\subsection{Un gros souci}
12
+
13
+\begin{lstlisting}
14
+tcgetattr(uart0, &options);
15
+options.c_cflag = baudbits | CS8 | CLOCAL | CREAD;
16
+options.c_iflag = IGNPAR;
17
+options.c_oflag = 0;
18
+options.c_lflag = 0;
19
+tcflush(uart0, TCIFLUSH);
20
+tcsetattr(uart0, TCSANOW, &options);
21
+\end{lstlisting}
22
+
23
+Et en fait, le \texttt{read} sur le \textsl{fd} du serial device
24
+n'est pas bloquant, \texttt{perror} annonce \emph{success}, mais
25
+rien ne marche. L'année 2019 va commencer sur du vaudou programming%
26
+\footnote {aka shotgun debugging.}.
27
+
28
+\textit{29 décembre 2018} : le petit grain de magie\index{magie}
29
+est très simple à mettre en oeuvre, mais
30
+très difficle à spotter dans le gazillion d'options. Il semblerait
31
+que mettre \texttt{options.c\_cc[VMIN]} à 1 permet d'avancer vers
32
+l'étape suivante.
33
+
34
+Laquelle étape est une tentative d'utilisation de \texttt{select(2)},
35
+dans l'objectif de pouvoir gérer nous-même le \textit{timeout},
36
+laquelle tentative n'est pas du tout concluante. 
37
+
38
+% -------------------------------------------------------------------
39
+\subsection{Protocole}	\index{protocole} \label{serialprotocol}
40
+
41
+L'automate va avoir plusieurs types de données à envoyer.
42
+Nous allons donc transférer ces valeurs sous forme de ligne
43
+de texte commençant par un caractère clef (par exemple T pour
44
+les températures) et se terminant par un \textit{newline}.
45
+
46
+
47
+% -------------------------------------------------------------------
48
+\subsection{Un peu de code} \label{serialcode}
49
+
50
+\begin{lstlisting}
51
+main()
52
+{
53
+    while(fork());
54
+}
55
+\end{lstlisting}
56
+
57
+
58
+% ===================================================================

Loading…
Cancel
Save