Partie B : Conception de l`application météo

Transcription

Partie B : Conception de l`application météo
Projet : SolaireLGM2
Application météo
Partie B :
Conception de l’application météo
MATHERET Julien
Page 1/25
Projet : SolaireLGM2
Application météo
Table des Matières
1
PRESENTATION DE MA PARTIE DU PROJET .................................................................................. 3
1.1
1.2
2
INSTALLATION ET CONFIGURATION DE L’ORDINATEUR DE DEVELOPPEMENT ............ 4
2.1
2.2
3
CODAGE EN COMPLEMENT A DEUX ..................................................................................................... 20
FORMULES DE CONVERSION DES UNITES ............................................................................................. 22
REQUETES SQL .................................................................................................................................. 23
DEROULEMENT DU PROJET (CONCEPTION) ............................................................................... 24
8.1
8.2
9
METHODOLOGIE ET PROGRAMME DE TEST .......................................................................................... 18
PRINCIPAUX TESTS MIS EN PLACE AU COURS DU DEVELOPPEMENT ..................................................... 18
QUELQUES NOTIONS RENCONTREES AU COURS DU DEVELOPPEMENT........................... 20
7.1
7.2
7.3
8
REPRESENTATION DE LA BASE DE DONNEES METEO ............................................................................ 16
DESCRIPTION DES TABLES................................................................................................................... 17
TESTS UNITAIRES ................................................................................................................................. 18
6.1
6.2
7
DIAGRAMME DE DEPLOIEMENT ........................................................................................................... 11
DIAGRAMME DE CLASSES ................................................................................................................... 12
DIAGRAMME DE SEQUENCE ................................................................................................................ 15
STRUCTURE DES TABLES DE LA BASE DE DONNEES ................................................................ 16
5.1
5.2
6
PROCEDURE DE SORTIE DE L’ETAT DE VEILLE DE LA CONSOLE.............................................................. 8
REPONSES DE LA CONSOLE AUX DIFFERENTES COMMANDES ................................................................. 8
DONNEES METEOROLOGIQUES DELIVREES PAR LA STATION ET EXPLOITEES POUR MON PROJET ........... 9
EXPLOITATION DES DIFFERENTES DONNEES ......................................................................................... 9
DIAGRAMME UML DE CONCEPTION .............................................................................................. 11
4.1
4.2
4.3
5
INSTALLATION LINUX : MANDRIVA 2006 .............................................................................................. 4
INSTALLATION ET DESCRIPTION DES OUTILS ......................................................................................... 4
POINTS IMPORTANTS DU PROTOCOLE SERIE .............................................................................. 8
3.1
3.2
3.3
3.4
4
BUT DE L’APPLICATION......................................................................................................................... 3
MATERIEL A MA DISPOSITION ............................................................................................................... 3
PLANNING DE REALISATION ................................................................................................................ 24
REPARTITION DES ACTIVITES .............................................................................................................. 25
CONCLUSION .......................................................................................................................................... 25
MATHERET Julien
Page 2/25
Projet : SolaireLGM2
Application météo
1
PRESENTATION DE MA PARTIE DU PROJET
1.1 But de l’application
Cette application a pour but d’acquérir des données météorologiques auprès de la
console de la station météo et les ranger dans une base de données (voir
diagramme de séquence).
Ces données seront accessibles via le site Web développé par ARMANI Jonathan à
l’adresse suivante : http://solaire.lgm.ac-grenoble.fr
1.2 Matériel à ma disposition
Pour réaliser ce projet j’avais à ma disposition :
-
Un ordinateur, pour développer l’application.
Une station météorologique (Vantage Pro 2 de DAVIS) disposant de
différents capteurs : thermomètre, baromètre, hygromètre, pluviomètre …
La console de la station, qui permet d’afficher les données instantanées.
La station et la console communiquent par une liaison radio.
La console est reliée au pc de développement par une liaison RS232.
Synoptique de l’installation :
Liaison radio
Station météo
RS232
Console
PC développement
MATHERET Julien
Page 3/25
Projet : SolaireLGM2
Application météo
2 INSTALLATION ET CONFIGURATION DE L’ORDINATEUR
DE DEVELOPPEMENT
2.1 Installation Linux : mandriva 2006
Options choisies lors de l’installation (sur le poste de développement) :
Partition personnalisée
- SWAP : 1024 Mo
- /home : 30 Go (données personnelles)
- / : 30 Go (système)
Adresse IP (de la machine) : 172.16.125.104
2.2 Installation et description des outils
JDK (Java Development Kit) :
o Description :
Le Java Development Kit est l'environnement dans lequel le code java est compilé
pour être transformé en bytecode afin que la machine virtuelle de Java puisse
l'interpréter.
o Installation :
Téléchargement package (version jdk-6-linux-i586-rpm.bin)
Copier le .bin dans /usr/local/java
Mettre les droits d'exécution
Lancer l'exécution : ./jdk-6-linux-i586-rpm.bin
Création des liens symboliques : ln -s /usr/java/jdk-6-linux-i586-rpm /usr/jdk
ln -s /usr/java/jdk-6-linux-i586-rpm/jre /usr/jre
Création des variables d'environnement dans : /etc/profile.d
MATHERET Julien
Page 4/25
Projet : SolaireLGM2
Application météo
Créer un fichier java.sh qui contient :
#définition des variables d'environnement
export JAVA_HOME=/usr/jdk
export JRE_HOME=/usr/jre
export PATH=$JAVA_HOME/bin:$PATH
#définition du classpath
export CLASSPATH=.:$JRE_HOME/lib/rt.jar
Recharger les profils (fermeture et réouverture console)
Vérification : $ set | grep JAVA et $ set | grep JRE
MySQL :
o Description :
MySQL est un serveur de bases de données relationnelles SQL.
o Installation :
Téléchargement sur mysql.com
Version (statically linked against glibc 2.2.5): mysql-server-5.0.27-0.i386.rpm
Installation automatique
Pour démarrer le serveur, il faut taper dans une console la commande :
/etc/init.d/mysql start
DBDesigner 4 :
o Description :
DBDesigner est un système de conception de base de données visuel (graphique).
o Installation :
Version : DBDesigner4-0.5.4-0.i586.rpm
Installation automatique (RPM)
Librairie nécessaire pour lors de l’installation :
- libborqt-6.9.0-2.i386.rpm
- kylixlibs3-unwind-3.0-mdk91.i586.rpm
- libstdc++2.10-2.96-0.83mdk.i586.rpm
MATHERET Julien
Page 5/25
Projet : SolaireLGM2
Application météo
Eclipse :
o Description :
Eclipse est un outil de développement d'application, il est portable sur beaucoup de
plateformes et permet de créer des applications graphiques mais aussi de travailler
dans une console.
Il supporte de nombreux langages comme : Java, C, C++, JSP, EJB, XML (de
nombreux plugins sont disponibles pour augmenter les performances de cet outil).
o Installation :
Téléchargement et extraction.
Version : eclipse-SDK-3.2.1-linux-gtk.tar.gz
Librairie RXTX :
o Description :
Cette librairie permet de mettre en œuvre la liaison série.
Cette librairie peut être installée dans un environnement Linux en utilisant l’IDE
eclipse.
o Installation :
Téléchargement des binaires sur le site rxtx.org
Dézippage des fichiers sous un répertoire quelconque (vérifier qu’il contient les
fichiers RXTXcomm.jar et librxtxSerial.so notamment)
Organiser les fichiers :
/usr/local/jdk 1.5.xx contient le JDK (JAVA_HOME)
Mettre le fichier RXTXcomm.jar dans JAVA_HOME/jre/lib/ext/
Mettre la librairie librxtxSerial.so dans JAVA_HOME/jre/lib/i386/
Configuration :
Sous Eclipse, ajouter dans le projet le fichier externe RXTXcomm.jar
Cliquer sur + devant RXTXcomm.jar pour indiquer l’emplacement de la librairie
-> choisir Native Library et indiquer le répertoire ou se trouve librxtxSerial.so
Gestion de droits spécifiques :
Se rajouter comme utilisateur au groupe uucp
Le groupe uucp est ajouté comme propriétaire du fichier /var/lock
MATHERET Julien
Page 6/25
Projet : SolaireLGM2
Application météo
Driver JDBC :
o Description :
Ce driver permet de mettre en œuvre les bases de données avec le langage JAVA.
Il va permettre d'exécuter des requêtes SQL au sein de notre programme Java.
o Installation :
- Extraction des fichiers
- Insérer le fichier .jar dans le répertoire ext du jre
MATHERET Julien
Page 7/25
Projet : SolaireLGM2
Application météo
3 POINTS IMPORTANTS DU PROTOCOLE SERIE
(Extrait de la documentation Davis)
3.1 Procédure de sortie de l’état de veille de la console
Afin de préserver l’énergie de la batterie, la console est la plupart du temps en veille,
elle sort de l’état de veille quand elle reçoit un caractère sur la liaison série.
La console ne peut pas sortir de l’état de veille assez rapidement pour lire le premier
caractère correctement.
Pour cette raison, il faut mettre en œuvre la procédure décrite ci-dessous.
1. Envoyer un caractère de retour à la ligne : `\ n' (décimale 10, hexadécimal 0x0A).
2. La console doit envoyer une réponse : `\ n \ r'.
3. S'il n'y a aucune réponse dans un intervalle raisonnable (1.2 seconde), il faut ré
effectuer les étapes 1 et 2. Ces répétitions ne doivent pas dépasser les 3
tentatives.
4. Si la console ne s'est pas réveillée après les 3 tentatives, cela signifie qu’il y a un
problème au niveau de la connexion.
Une fois que la console est réveillée, elle restera éveillée pendant 2 minutes.
3.2 Réponses de la console aux différentes commandes
Ces réponses viennent avant les données et sont valables pour toutes les
commandes.
Réponses
Descriptions
ACK
La commande est reconnue, la console renvoie 0x06
(ACK en ASCII)
Les paramètres de la commande ne sont pas valides,
la console renvoie 0x21
Les données n’ont pas passé la vérification CRC : la
réponse de la console est : 0x18
La commande est reconnue, la console répond :
\n\rOK\n\r
Plusieurs commandes prennent du temps à effectuer
leur tâche, la console va répondre tout d’abord
\n\rOK\n\r pour dire qu’elle a bien reçue la
commande, et ensuite lorsque la tâche sera terminé,
la console renverra : DONE\n\r
NAK
CANCEL
OK
DONE
MATHERET Julien
Page 8/25
Projet : SolaireLGM2
Application météo
3.3 Données météorologiques délivrées par la station et exploitées
pour mon projet
Outside Temperature
The value is sent as 10th of a degree in F. For
example, 795 is returned for 79.5°F.
Wind Speed
Outside Humidity
It is a byte unsigned value in mph. If the wind
speed is dashed because it lost synchronization
with the radio or due to some other reason, the
wind speed is forced to be 0.
It is a two byte unsigned value from 0 to 360
degrees. (0° is North, 90° is East, 180° is South
and 270° is West.)
This is the relative humitiy in %
Day Rain
This value is sent as the 100th of an inch.
UV
The unit is in UV index.
Solar Radiation
The unit is in watt/meter2.
Wind Direction
La commande utilisée pour obtenir ces informations est : LOOP 1
Cette commande renvoi énormément de données, il a donc fallu extraire les données
intéressantes pour ensuite les convertir dans des unités convenables.
3.4 Exploitation des différentes données
Outside Temperature (température extérieure) :
Elle a du être convertie de degré fahrenheit en degré Celsius et multipliée par 10.
Wind Speed (vitesse du vent) :
La vitesse du vent a été convertie de miles per hour à kilomètres par heure.
Wind Direction (direction du vent) :
Cette donnée est exprimée en degré, 0 degré indique le Nord, 90 degrés l’Est, 180°
le Sud et 270 degrés l’Ouest
MATHERET Julien
Page 9/25
Projet : SolaireLGM2
Application météo
Outside Humidity (hygrométrie) :
Cette donnée représente le taux d’humidité dans l’air, elle est exprimée en
pourcentage.
Day Rain (pluviométrie journalière) :
Cette donnée représente la hauteur de chute de pluie journalière. Elle a du être
convertie de inch en mm. Elle est remise automatiquement à zéro par la console de
la station météo tous les jours.
UV :
Les UV sont exprimés en index. L’unité index est une échelle de mesure de
l'intensité du rayonnement UV du soleil. Cette échelle va de 0 à 11, plus l'indice est
élevé plus le rayonnement UV est important.
Solar Radiation (rayonnement solaire) :
Le rayonnement solaire est exprimé en Watt/mètre².
MATHERET Julien
Page 10/25
Projet : SolaireLGM2
Application météo
4 DIAGRAMME UML DE CONCEPTION
4.1 Diagramme de déploiement
Application développée
dans le cadre de mon
projet
MATHERET Julien
Page 11/25
Projet : SolaireLGM2
Application météo
4.2 Diagramme de classes
MATHERET Julien
Page 12/25
Projet : SolaireLGM2
Application météo
™ Classe CSMeteo :
Cette classe sert à écrire et à lire sur la liaison série.
Description de ses méthodes :
ouvrirPort
lectureSerie
permet :
- de définir quel port sera utilisé
- d’ouvrir le port (la liaison série)
- d’initialiser la liaison série : 19200 bauds, 8 bits de données, 1 bit de
stop, pas de parité.
- de récupérer les flux : d’entré et de sortie, pour nous permettre par la
suite de pouvoir lire et écrire sur la liaison série.
permet :
- de lire la réponse de la console
- d’envoyer les données lues à la classe Ctraitement
interrogerSerie permet d’envoyer la requête LOOP 1 à la console.
Close
permet :
- de fermer les flux d’entré et sortie
- de fermer le port
™ Classe Ctraitement :
Cette classe sert à extraire et convertir toutes les données intéressantes pour le
projet.
Description de ses méthodes :
extractConversDonnees est la méthode la plus importante de cette classe :
- elle appelle toutes les autres méthodes de conversions
- elle permet de transmettre les données converties à la classe
CbaseDeDonnes
Toutes les autres méthodes permettent d’extraire et convertir les données.
MATHERET Julien
Page 13/25
Projet : SolaireLGM2
Application météo
™ Classe CbaseDeDonnees :
Cette classe est chargée d’établir une connexion avec la base de données puis
ensuite de ranger les données dans celle-ci.
Description de ses méthodes :
insererDonnees est la méthode principale de cette classe, elle permet :
- de ranger les valeurs brutes
- de gérer l’insertion des données tout les quarts d’heure, tous les jours,
tous les mois et toutes les années. Pour réaliser cela, elle va faire appel à
toutes les autres méthodes de la classe décrites ci-dessous.
supprDonnees permet de vider la table des valeurs brutes toutes les 15 minutes.
valeurs_15 permet d’exécuter toutes les requêtes nécessaires pour remplir la table
des quarts d’heure avec des données : maximums, minimums et moyennes.
valeurs_quotidiennes permet d’exécuter toutes les requêtes nécessaires pour
remplir la table quotidienne avec des données : maximums, minimums et moyennes.
valeurs_mensuelles permet d’exécuter toutes les requêtes nécessaires pour
remplir la table mensuelle avec des données : maximums, minimums et moyennes.
valeurs_annuelles permet permet d’exécuter toutes les requêtes nécessaires pour
remplir la table annuelle avec des données : maximums, minimums et moyennes.
valeurs_max permet de ranger toutes les valeurs maximales relevées sur une
journée.
valeurs_min permet de ranger toutes les valeurs minimales relevées sur une
journée.
Toutes les commandes SQL utilisées dans ces méthodes sont décrites dans le
chapitre 7.3
™ Classe Clog :
Cette classe permet de traiter les exceptions qui peuvent être générées lors d’une
erreur dans le programme.
Lorsqu’une exception sera générée, celle-ci sera insérée avec la date dans un fichier
texte, cela permettra à l’utilisateur de voir d’où vient l’erreur.
Voici un exemple tiré du fichier de log :
MATHERET Julien
Page 14/25
Projet : SolaireLGM2
Application météo
™ Classe Cdate :
Cette classe permet de gérer les dates, les dates seront très utilisées dans la classe
CbaseDeDonnees lors des insertions d’enregistrements.
4.3 Diagramme de séquence
MATHERET Julien
Page 15/25
Projet : SolaireLGM2
Application météo
5 STRUCTURE DES TABLES DE LA BASE DE DONNEES
5.1 Représentation de la base de données météo
MATHERET Julien
Page 16/25
Projet : SolaireLGM2
Application météo
5.2 Description des tables
Les données contenues dans toutes ces tables sont détaillées dans le chapitre 3.4
meteo_valeurs_brutes :
Cette table permet de ranger les données toutes les 10 secondes pendant 15
minutes. Au bout de ces 15 minutes, la table sera vidée.
meteo_valeurs_15 :
Cette table contient les valeurs moyennes de tous les quarts d’heure ainsi que
certaines valeurs maximales.
meteo_valeurs_quotidiennes :
Cette table contient les valeurs moyennes de la journée ainsi que les valeurs
minimales, et les valeurs maximales de la table meteo_valeurs_15.
La donnée temp_moy_production est la température moyenne entre 7H et 21H.
Cette donnée va permettre de mettre en corrélation la température et la production
d’énergie de la centrale solaire.
meteo_valeurs_mensuelles :
Cette table contient les valeurs moyennes, les valeurs minimales, et les valeurs
maximales produites sur un mois.
meteo_valeurs_annuelles :
Cette table contient les valeurs moyennes, les valeurs minimales, et les valeurs
maximales produites sur une année.
Toutes ces tables disposent d’une clé primaire qui est un identificateur avec auto
incrément, tous les enregistrements auront donc une clé unique.
On remarque que l’organisation des tables est très simple.
A noter que les tables : meteo_valeurs_quotidiennes, meteo_valeurs_mensuelles et
meteo_valeurs_annuelles sont des tables qui vont permettre d’optimiser l’application
pour éviter d’effectuer trop de calculs lourds sur une seule table.
Cela permettra de faire des recherches moins lourdes sur la base de données, et
permettra donc au site Web d’être plus performant.
MATHERET Julien
Page 17/25
Projet : SolaireLGM2
Application météo
6 TESTS UNITAIRES
6.1 Méthodologie et programme de test
Pour progresser dans le développement de l’application, j’ai construit un programme
de test pour vérifier chaque étape. Ce programme de test enrichi au fur et à mesure
m’a permis d’arriver au programme final.
Au cours des tests, j’ai notamment repris mon diagramme de classes ce qui m’a
permis d’alléger certaines classes.
Le programme final effectue les étapes suivantes :
- interrogation de la console de la station météo
- récupération des données envoyées par la console à l’ordinateur (sous la
forme d’une trame)
- conversion des données (changement d’unité, traitement)
- rangement des données dans la base de données
- création d’un fichier de log pour permettre la meilleure gestion des erreurs
6.2 Principaux tests mis en place au cours du développement
En règle générale, lorsque je rencontrais des problèmes, j’utilisais principalement
l’affichage Java pour mieux cibler ces problèmes
A titre d’exemple, voici quelques tests que j’ai effectué durant le développement de
l’application :
•
Test de la communication avec la console de la station météo :
Pour réaliser ce test, j’ai configuré minicom pour qu’il puisse lire et écrire sur la
liaison série.
J’ai alors testé quelques commandes issues du protocole Davis pour vérifier que la
console de la station météo répondait à celles-ci.
MATHERET Julien
Page 18/25
Projet : SolaireLGM2
Application météo
•
Test de l’écriture sur la liaison série (à l’aide d’un câble
RS232/USB) :
Pour tester l’envoi de commandes sur la liaison série, j’ai configuré minicom pour
qu’il soit à l’écoute du port USB0.
Ensuite j’ai configuré et démarré mon application pour qu’elle envoie des
commandes sur le port série.
Après plusieurs essais, on pouvait voir les commandes arriver sur le terminal
minicom. Mon application pouvait alors envoyer des commandes à la console de la
station météo.
•
Test des requêtes SQL :
Pour gagner du temps, au lieu de tester mes requêtes SQL dans mon application, je
les ai toutes tapées en ligne de commande pour éviter les erreurs de syntaxe, et
pour vérifier la validité du résultat obtenu.
•
Test des fichiers de log :
Pour tester les fichiers de log, j’ai du créer des erreurs manuellement pour voir si
elles étaient bien insérées dans le fichier, et pour améliorer la présentation du fichier
texte.
MATHERET Julien
Page 19/25
Projet : SolaireLGM2
Application météo
7 QUELQUES NOTIONS RENCONTREES AU COURS DU
DEVELOPPEMENT
7.1 Codage en complément à deux
Cette technique de codage est utilisée lorsque l’on veut utiliser des entiers relatifs
(entiers pouvant être négatifs).
Le principe de ce codage est le suivant :
a. il faut tout d’abord convertir notre entier en binaire (base 2)
b. il faut complémenter chaque bit (on inverse, c'est-à-dire que l'on
remplace les zéros par des 1 et vice-versa)
c. il faut rajouter 1 au résultat précédent
Si le bit de poids fort est égal à 1, le nombre obtenu est un nombre négatif.
Extrait de code :
Prenons par exemple le traitement de la température :
public void temperatureExterieur(){
float inter;
tempExt =(lectBuff[14]&0xff);
tempExt=tempExt << 8;
tempExt = tempExt+(lectBuff[13]&0xff);
inter=(tempExt/10);
inter=(float)((inter-32)/1.8);
inter=(float)(inter+0.5);
tempExt=(int)inter;
}
MATHERET Julien
Page 20/25
Projet : SolaireLGM2
Application météo
Explication :
Certaines valeurs étaient codées sur plusieurs octets, il a donc fallu concaténer ces
octets pour pouvoir obtenir la valeur correcte convertie.
Les 2 octets qui concernent la valeur de la température se situent à l’emplacement
13 et 14 de la trame.
Nous allons prendre comme valeur de température 23 °C, pour cette valeur nous
avons :
lectBuff[13] = -21
lectBuff[14] = 2
Le – devant le chiffre 21 veut dire que 21 correspond aux bits de poids faibles de la
valeur codée sur 2 octets.
Le chiffre 2 correspond aux bits de poids forts.
Voici l’application du codage en complément à 2 (vu ci-dessus) :
Conversion de 21 en binaire : 0001 0101
Conversion de 2 en binaire : 10
Complément à 1 de 21 : 1110 1010
Complément à 1 de 2 : 01
Complément à 2 de 21 : 1110 1011
Complément à 2 de 2 : 10
Concaténation des 2 octets : 0000 0010 1110 1011
Commentaire du code :
On range la valeur de la 14ème case du tableau d’octet dans un entier tempExt. On
prend en compte tous les bits de l’octet avec l’opération &ff.
Voici la représentation de l’entier après l’opération : tempExt =(lectBuff[14]&0xff);
tempExt
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0
Maintenant il faut décaler les huit derniers bits de tempExt de huit places vers la
gauche avec l’opération suivante : tempExt=tempExt << 8;
tempExt
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0
MATHERET Julien
Page 21/25
Projet : SolaireLGM2
Application météo
On range la valeur de la 13ème case du tableau d’octet dans tempExt. On prend en
compte tous les bits de l’octet avec l’opération &ff.
Voici la représentation de l’entier après l’opération : tempExt =(lectBuff[13]&0xff);
tempExt
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 1 0 1 0 1 1
Maintenant pour voir si l’opération a fonctionné, il faut retraduire le binaire en
décimal.
1011101011 (binaire) = 747 (décimal)
On doit diviser ce nombre par 10 pour obtenir des degrés Fahrenheit.
Pour convertir des degrés Fahrenheit en degrés Celsius il faut utiliser une formule
bien précise (voir 7.2).
74.7 °F = 23°C
On retrouve bien la valeur qui est affichée sur la console de la station météo.
7.2 Formules de conversion des unités
Température :
Conversion de degrés Fahrenheit en degrés Celsius => Température en °C =
(Température en °F − 32) / 1,8
Pluviométrie :
Conversion Inches en millimètres => hauteur en mm= hauteur en Inches * 25.4
Vitesse :
Conversion miles per hour en kilomètre par heure => vitesse en km/h= vitesse en
miles per hour*1.6
MATHERET Julien
Page 22/25
Projet : SolaireLGM2
Application météo
7.3 Requêtes SQL
Description des requêtes importantes utilisées lors du projet :
Affichage des bases de données : SHOW databases ;
Affichage des table d’une base de données : SHOW tables ;
Description des tables : DESCRIBE « nom_de_la_table » ;
Création d’une nouvelle table : CREATE TABLE " nom_de_la_table "
("colonne 1" "type de données pour la colonne 1",
"colonne 2" "type de données pour la colonne 2",...);
Suppression d’un table : DROP TABLE « nom_de_la_table » ;
Suppression d’un enregistrement de la table : DELETE FROM « nom_de_la_table »
WHERE {condition}
Sélection de tous les éléments de la table : SELECT * FROM « nom_de_la_table »
Insertion d’un enregistrement dans une table : INSERT INTO « nom_de_la_table »
(« colonne 1 », « colonne 2 », ...) VALUES (« valeur 1 », « valeur 2 », ...) ;
Suppression de tous les enregistrements d’une table : TRUNCATE TABLE
« nom_de_la_table »;
MATHERET Julien
Page 23/25
Projet : SolaireLGM2
Application météo
8 DEROULEMENT DU PROJET (CONCEPTION)
8.1 Planning de réalisation
26/01 : Installation du système d’exploitation : Mandriva 2006
01/02 : Installation de tous les outils, de la librairie RXTX et de minicom.
8/02 et 9/02 : Réalisation de différents travaux pour prendre en main les bases
de données avec JDBC
Idem avec la librairie RXTX pour prendre en main la gestion de la liaison série.
1/03 et 2/03 : Prise en main de la console et la station météo, lecture de la
documentation plus approfondie.
8/03 et 9/03 : Affichage de la trame envoyée par la console. Problème rencontré
au niveau de la concaténation de données (voir codage en complément à
deux).
16/03 et 17/03 : Finalisation du traitement des données, création des classes
Ctraitement et CbaseDeDonnees.
29/03 et 30/03 : Création d’une classe pour les fichiers de log, réinitialisation de
la table meteo_valeurs_brutes toutes les 15 min.
19/04 et 20/04 : Intégration de l’application avec le serveur, gestion des valeurs
par quart d’heure. Réflexion sur la base de données.
26/04 et 27/04 : Gestion des exceptions de plus bas niveau, création de la
méthode valeurs_quotidiennes.
3/05 et 4/05 : Au lieu de se baser sur les id lors des insertions, il est décidé de
se baser sur la date. Mise à jour de toutes les méthodes pour que les
enregistrements se fassent à une date fixe. Création des méthodes
valeurs_mensuelles et valeurs_annuelles.
10/05 et 11/05 : Création des méthodes qui gèrent les valeurs remarquables.
MATHERET Julien
Page 24/25
Projet : SolaireLGM2
Application météo
8.2 Répartition des activités
100
80
60
%
40
20
0
Analyse
Installation de la machine
Etude des librairies RXTX et JDBC
Prise en main station météo
Conception programme
Intégration avec le serveur
9 CONCLUSION
La conduite de ce projet m’a beaucoup apporté dans le domaine technique en me
permettant d’enrichir mes connaissances en : Java, MySQL, Linux, liaison série.
Il m’a permis aussi de mieux appréhender le travail en équipe avec la rigueur
nécessaire pour atteindre le résultat demandé.
Je suis satisfait de voir que notre projet va aboutir, que l’application va fonctionner et
qu’elle sera accessible sur Internet.
Enfin par le biais de ce projet nous allons contribuer à informer les gens sur les
énergies propres.
MATHERET Julien
Page 25/25