preparation de la lecture du fichier de conf
This commit is contained in:
parent
2f2bfa641a
commit
abdfc44cbe
@ -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 > $@
|
||||
|
21
core/config.h
Normal file
21
core/config.h
Normal file
@ -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);
|
||||
|
||||
/* ---------------------------------------------------------------- */
|
10
core/dd2-monitor.conf
Normal file
10
core/dd2-monitor.conf
Normal file
@ -0,0 +1,10 @@
|
||||
|
||||
|
||||
|
||||
input_device s /def/ttyACM0
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
61
core/parseconf.c
Normal file
61
core/parseconf.c
Normal file
@ -0,0 +1,61 @@
|
||||
/*
|
||||
* parseconf
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
||||
#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;
|
||||
}
|
||||
/* ---------------------------------------------------------------- */
|
16
core/t.c
16
core/t.c
@ -7,20 +7,28 @@
|
||||
#include <getopt.h>
|
||||
|
||||
#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;
|
||||
}
|
||||
|
@ -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}
|
||||
|
||||
|
||||
% -------------------------------------------------------------------
|
||||
|
Loading…
Reference in New Issue
Block a user