modularisation du source de la documentation, LaTeX p0w4
This commit is contained in:
58
doc/serial.tex
Normal file
58
doc/serial.tex
Normal file
@@ -0,0 +1,58 @@
|
||||
% ===================================================================
|
||||
|
||||
\section{Serial coms} \index{serial} \label{serial}
|
||||
|
||||
Il va y avoir deux liaisons série entre l'automate et le monitoring.
|
||||
La première, que nous allons juste entrevoir, passera par le port
|
||||
USB de la carte Arduino. La seconde passera par un port série
|
||||
auxiliaire\footnote{Il y en a 4 sur le mega 2560} de celle-ci.
|
||||
|
||||
% -------------------------------------------------------------------
|
||||
\subsection{Un gros souci}
|
||||
|
||||
\begin{lstlisting}
|
||||
tcgetattr(uart0, &options);
|
||||
options.c_cflag = baudbits | CS8 | CLOCAL | CREAD;
|
||||
options.c_iflag = IGNPAR;
|
||||
options.c_oflag = 0;
|
||||
options.c_lflag = 0;
|
||||
tcflush(uart0, TCIFLUSH);
|
||||
tcsetattr(uart0, TCSANOW, &options);
|
||||
\end{lstlisting}
|
||||
|
||||
Et en fait, le \texttt{read} sur le \textsl{fd} du serial device
|
||||
n'est pas bloquant, \texttt{perror} annonce \emph{success}, mais
|
||||
rien ne marche. L'année 2019 va commencer sur du vaudou programming%
|
||||
\footnote {aka shotgun debugging.}.
|
||||
|
||||
\textit{29 décembre 2018} : le petit grain de magie\index{magie}
|
||||
est très simple à mettre en oeuvre, mais
|
||||
très difficle à spotter dans le gazillion d'options. Il semblerait
|
||||
que mettre \texttt{options.c\_cc[VMIN]} à 1 permet d'avancer vers
|
||||
l'étape suivante.
|
||||
|
||||
Laquelle étape est une tentative d'utilisation de \texttt{select(2)},
|
||||
dans l'objectif de pouvoir gérer nous-même le \textit{timeout},
|
||||
laquelle tentative n'est pas du tout concluante.
|
||||
|
||||
% -------------------------------------------------------------------
|
||||
\subsection{Protocole} \index{protocole} \label{serialprotocol}
|
||||
|
||||
L'automate va avoir plusieurs types de données à envoyer.
|
||||
Nous allons donc transférer ces valeurs sous forme de ligne
|
||||
de texte commençant par un caractère clef (par exemple T pour
|
||||
les températures) et se terminant par un \textit{newline}.
|
||||
|
||||
|
||||
% -------------------------------------------------------------------
|
||||
\subsection{Un peu de code} \label{serialcode}
|
||||
|
||||
\begin{lstlisting}
|
||||
main()
|
||||
{
|
||||
while(fork());
|
||||
}
|
||||
\end{lstlisting}
|
||||
|
||||
|
||||
% ===================================================================
|
||||
Reference in New Issue
Block a user