diff --git a/core/Makefile b/core/Makefile index 766f682..ee4ad9d 100644 --- a/core/Makefile +++ b/core/Makefile @@ -2,11 +2,19 @@ # # +OBJS = lut1024f.o parseconf.o + lut1024f.o: lut1024f.c lut1024.h gcc -Wall -c $< -t: t.c lut1024f.o lut1024.h - gcc -Wall $< lut1024f.o -o $@ + +parseconf.o: parseconf.c config.h + gcc -Wall -c $< + + + +t: t.c ${OBJS} lut1024.h config.h + gcc -Wall $< ${OBJS} -o $@ foo.lut1024f: mklut.pl Makefile ./mklut.pl quux > $@ diff --git a/core/config.h b/core/config.h new file mode 100644 index 0000000..4c3b105 --- /dev/null +++ b/core/config.h @@ -0,0 +1,21 @@ +/* + * config.h + */ + +#define SZ_STRINGS 200 + +typedef struct { + + int valid; + + + + + } Configuration; + +/* ---------------------------------------------------------------- */ + +int parse_config(char *fname, int flags); +int show_config(char *title); + +/* ---------------------------------------------------------------- */ diff --git a/core/dd2-monitor.conf b/core/dd2-monitor.conf new file mode 100644 index 0000000..5c648c3 --- /dev/null +++ b/core/dd2-monitor.conf @@ -0,0 +1,10 @@ + + + +input_device s /def/ttyACM0 + + + + + + diff --git a/core/parseconf.c b/core/parseconf.c new file mode 100644 index 0000000..70ef497 --- /dev/null +++ b/core/parseconf.c @@ -0,0 +1,61 @@ +/* + * parseconf + */ + +#include +#include + +#include "config.h" + +extern int verbosity; +extern Configuration config; + +/* ---------------------------------------------------------------- */ +int parse_config(char *fname, int flags) +{ +FILE *fp; +char line[SZ_STRINGS+1]; + + +#if DEBUG_LEVEL +fprintf(stderr, ">>> %s ( '%s' $%x )\n", fname, flags); +#endif + +config.valid = 49; + +if (NULL==(fp=fopen(fname, "r"))) { + perror(fname); + return -2; + } + +while (fgets(line, SZ_STRINGS, fp)) + { + /* massage the end of line */ + + /* skip comments */ + + /* seek for keyword */ + + + } + + + +fclose(fp); + +return -1; +} +/* ---------------------------------------------------------------- */ +int show_config(char *title) +{ + +if (verbosity) { + printf("********** %s **********\n", title); + } + +printf("valid %d\n", config.valid); + +puts(""); +return 0; +} +/* ---------------------------------------------------------------- */ diff --git a/core/t.c b/core/t.c index df47ff2..aaf2f3c 100644 --- a/core/t.c +++ b/core/t.c @@ -7,20 +7,28 @@ #include #include "lut1024.h" - +#include "config.h" int verbosity; +Configuration config; + + /* ---------------------------------------------------------------- */ int main (int argc, char *argv[]) { int foo, opt; +char *conffile = "dd2-monitor.conf"; + + +fprintf(stderr, "+\n+ DD2 MONITOR\n+\n"); /* set some default values */ verbosity = 0; + while ((opt = getopt(argc, argv, "v")) != -1) { switch (opt) { case 'v': verbosity++; break; @@ -35,9 +43,13 @@ while ((opt = getopt(argc, argv, "v")) != -1) { } +foo = parse_config(conffile, 1); +fprintf(stderr, "parse_config(%s) -> %d\n\n", conffile, foo); +show_config("foo"); + foo = load_lut1024f("foo.lut1024f", NULL, 1); -fprintf(stderr, "chargement de la lut --> %d\n", foo); +fprintf(stderr, "chargement de la lut --> %d\n\n", foo); return 0; } diff --git a/doc/dd2-monitoring.tex b/doc/dd2-monitoring.tex index 6e8ca2e..f49918a 100644 --- a/doc/dd2-monitoring.tex +++ b/doc/dd2-monitoring.tex @@ -15,7 +15,7 @@ \usepackage[verbose]{layout} \makeindex -\setlength{\parskip}{0.25cm plus 0.25cm} +\setlength{\parskip}{0.20cm plus 0.20cm} % ------------------------------------------------------------------- \title{DD2 Monitoring} @@ -76,6 +76,8 @@ choix, et nous allons en évaluer quelques uns : \texttt{gnocchi}\index{Gnocchi} (page \pageref{gnocchi}) \texttt{sqlite}\index{sqlite} (page \pageref{sqlite}) +La représentation interne des valeurs reste à définir pour +la plupart d'entre elles. \subsection{Affichage} @@ -107,7 +109,8 @@ de bonne efficacité. Un premier exemple avec rrdb en page \pageref{rrdb}. Le second cause des premiers essais du LM35, capteur de -température analogique. +température analogique branché sur un Arduino et relié +par un port série (page \pageref{serialcode}). \subsection{Analyses} @@ -121,8 +124,9 @@ de choses étranges, comme ça : d'une criante justesse scientifique ;)} Ce qui donne qunad même à réfléchir. À se demander quel savoir -allons-nous pouvir déduire de ces\footnote{non, c'est pas du bigdata.} +allons-nous pouvoir déduire de ces\footnote{non, c'est pas du bigdata.} chiffres improbables. +(Re-)Découvrir les lois de l'inertie thermique ? \subsection{Archivage} \index{archivage} \label{archivage} @@ -138,12 +142,22 @@ ou d'un \textit{epicfail\footnote{En fait, c'est comme ça que la science avance}}. Nous devons donc rencontrer quelqu'un qui maitrise cette partie -de la mouvance détournementale de l'espionnage. +de la mouvance détournementale de l'espionnage. Yaya\index{Yaya} ? % ------------------------------------------------------------------- +\section{Configuration} \index{configuration} \label{configuration} +Pour adapter cet outil de surveillance aux variations du monde réel, +nous devons nous-même lui décrire ce monde. Une description qui se +fera avec des lignes de la forme '\texttt{input\_device s /dev/ttyACM0}' +qui représentent des tuples +\textit{clef-type-valeur}\footnote{Laissons les canards tranquilles.} +de. +La syntaxe n'est pas encore fixée, mais un fichier exemple est +disponible pour des explication plus récentes, donc plus en +rapport avec la réalité du code. % ------------------------------------------------------------------- \section{RRDB} \label{rrdb} @@ -239,6 +253,11 @@ trop fatiguante à compiler pour ce soir, ni même pour ce week-end. \texttt{pip install gnocchi[postgresql,ceph,keystone]}, finalement, çe ne me donne pas trop envie. C'est du genre \textit{usinagaz}. +% ------------------------------------------------------------------- +\section{Sqlite} \index{sqlite} \label{sqlite} + +\subsection{À regarder de près} + % ------------------------------------------------------------------- \section{Serial coms} \index{serial} \label{serial} @@ -282,6 +301,10 @@ 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} + + % ------------------------------------------------------------------- \section{Détournements} @@ -293,11 +316,8 @@ Les possibilités ne seront limitées que par votre manque d'imagination. Si vous voulez un petit exemple, imaginez des courbes de température qui pilotent un \texttt{uGen} de Chuck\index{chuck} ou des algues dont la lumière envoie du \texttt{cv/gate} en temps réel. -Le tout en n'utilisant que des circuits\index{ampli op} analogiques, -et peut-être quelques transistors au germanium\index{germanium}. -Ça vous semble peut-être un peu mélangé, mais bon, -c'est facile de comprendre l'esprit. C'est plus délicat d'imaginer. +\subsection{Variante} % -------------------------------------------------------------------