Projet de L2 (S45) -- 2013-2014

L’objectif complet du projet est de réaliser des montages électroniques qui supportent des capteurs (température, lumière, …). Ces montages envoient des messages toutes les secondes sur une liaison USB.

Les différents capteurs :

  • température : TEMP en °C (précision 1/10) pusis en valeur numérique sur 10 bits (0 à 1023)
  • voltmètre : VOLT, précision 10mV,
  • distance : DIST, en m précision 1mm)
  • luminosité : photorésistance LDR en %, valeur entière 0 à 100

Les messages ont la forme suivante (code du capteur, mesure en floattant, unité, mesure entière). Chaque mesure est envoyée sous la forme d’une ligne de caractères terminée par un <CR><LF>, les informations sont séparées par des ',’.

Exemple:

TEMP,25.02,C,457 
VOLT,1.23,V,381 
DIST,0.102,M,500
LDR,50,P,51

Dans un premier temps vous aller réaliser la partie informatique sous la forme d’un programme qui * analyse les messages (sous la forme d’une fichier texte dans un premier temps) * représente les informations en mémoire * produit un rendu des mesures sous diverses formes (HTML, SVG)

Ecrire un programme en langage C qui devra s’exécuter de la façon suivante :

./analyse 10 xhtml resultat.html

il prend trois paramètres : le nombre de mesures passées en paramètre, le format de sortie et le fichier qui contiendra le résultat.

Le programme sera écrit de façon très structurée et utilisera un makefile et la compilation séparée.

Ecrire une fonction qui analyse et extrait les quatre champs et le numéro de ligne.

Déclarer une structure de données pour chaque type de mesure et un tableau ou une liste chaînée pour chacune qui enregistrera les mesures.

Ecrire les fonctions qui vous semblent utiles : recherche de la mesure minimale, maximale, de la moyenne, …

Ecrire les fonctions qui permettent d’afficher les mesures sous la forme de listes et tableaux xhtml.

Ecrire une fonction globale qui crée une document XHTML complet à partir des fonctions précédentes.

Les supports de XHTML.

Mettez en forme le document précédent en utilisant CSS. En particulier, les valeurs minimales et maximales seront mises en valeur.

Les supports de CSS.

En utilisant, la même logique produisez étudiez le langage SVG (La norme : http://www.w3.org/Graphics/SVG/, un tutoriel : http://svground.fr/) et produisez une image qui représente les mesures sous la forme d’un histogramme (numéro de mesure/valeur), de la même façon les valeurs minimales et maximales seront représentées ainsi que la moyenne sous la forme d’un trait horizontal.

une astuce : “dessiner” un modèle d’histogramme avec un logiciel de dessin vectoriel (par exemple inkscape), exporter en SVG et s’en servir comme base.