Télécharger - PEGASE Instrumentation

Transcription

Télécharger - PEGASE Instrumentation
Polytech - Electronique et Technologies Numériques TP3
Développement d'une application experte sur
Linux embarqué utilisant GPS, GSM et WiFi
William MARTIN . Vincent LE CAM.
Septembre 2012
Contact:
www.ifsttar.fr
[email protected]
[email protected]
i
1
Introduction - Objectif général du TP (15mn)
1
1 Introduction - Objectif général du TP (15mn)
Le but de ce TP est de valider vos acquis en Linux embarqué par la réalisation
d'une application complète tout en suivant une démarche d'ingénierie de type "cycle
en V". Outre cet aspect de démarche, l'objectif consiste également à vous initier avec
un ensemble de technologies wireless standardisées et très en vogue dans le domaine de
l'embarqué : WiFi, GSM, GPS.
Figure 1 Phases d'un cycle en V typique
Pour ce TP il vous est demandé de respecter les grandes étapes du cycle en V, c'est
à dire de consacrer du temps à l'analyse amont du cahier des charges qui vous
est proposé. La phase de réalisation (voir ci-dessous) se déroulera en plusieurs étapes à
valider successivement an d'avancer par itérations opérationnelles.
Ressources matérielles pour le TP:
1. la carte PEGASE
2. sa carte lle de debug
3. le répéteur GPS pour recevoir le signal GPS dans la salle de TP
4. un modem GSM Erco & Gener
Ressources documentaires pour le TP:
1. Guide de mise en oeuvre de PEGASE Version 1.F
2. Internet
3. La documentation du modem GSM Erco & Gener
Polytech - ETN - TP3
4
Etape de conception (20mn)
2
2 Cahier des charges / Analyse de l'expression du besoin (10mn)
Ce matin votre employeur vous délivre le
cahier des charges suivant:
Nous avons besoin d'utiliser PEGASE comme capteur de déplacement pour détecter les
mouvements de terrain. Pour ce faire, vous développerez une application qui utilise le
récepteur GPS natif à la carte PEGASE. Une fois lancée, si l'application détecte un
déplacement supérieur à un seuil préxé alors un SMS d'alerte est envoyé à un numéro
de téléphone portable préxé. Toutes les opérations internes à l'application sont tracées
dans un chier de log. Pour des questions de maintenance, lorsqu'un opérateur passe dans
la zone WiFi de la carte PEGASE il peut se connecter simplement en telnet à un service
TCP disponible à tout moment. Une fois connecté, s'il envoie une commande précise, le
contenu du chier de log lui est renvoyé.
Note pour le TP:
Il vous est demandé de créer un patch pour simuler un déplacement
du capteur: la détection d'un front montant sur le bouton poussoir S1 (BPS1) déclenchera
aussi donc une détection de déplacement (équivalant à un dépassement de seuil).
3 Etape de spécications fonctionnelles (40mn)
L'étape de spécication sert à décrire le "quoi" de votre application. Lisez et relisez
bien le cahier des charges qui vous a été coné. En vous inspirant des travaux réalisés
précédemment lors des TP1 et 2 (cf. les corrigés) rééchissez bien à ce que vous devez
réaliser.
sur un schéma, représentez les diérentes entités interragissantes dont les utilisateurs
spéciez les liens entre ces entités : nature ? bidirectionnels ? débit ?
identiez les 2 fonctions principales du systèmes qui doivent fonctionner parallèlement
spéciez par des "machines à états nis": le comportement précis des 2 fonctions.
Rappel : sur la base du TP2 utiliser les interruptions (appel de callbacks) pour les
transitions des automates
4 Etape de conception (20mn)
4.1
Introduction / rappel
L'étape de conception sert à décrire le "comment" de votre application : comment
allez vous implémenter (i.e. donner corps) aux fonctions que vous avez spéciées à l'étape précédente. Ici nous fusionnons les notions de conception générale et détaillée pour
simplier.
Pour vous, l'étape de conception est grandement simpliée car le support de développement s'appuie sur une carte PEGASE:
la solution matérielle est prête à 90% : existence de la carte mère intégrant le
processeur blackn, la mémoire, le module GPS Copernicus, etc
Polytech - ETN - TP3
5
Etape de réalisation (1h30)
3
la solution logicielle (1): vous partez du noyau Linux opérationnel qui ore toute
l'abstraction nécessaire pour driver les ports physiques de la carte
la solution logicielle (2): vous réutiliserez des classes C-Objet de la bibliothèque PEGASE; celles-ci encapsulent nativement un grand nombre de fonctions (open/close,
read/write, callback, ...)
4.2
Conception
Dans le cas présent seule la partie logicielle reste donc à concevoir. Observer bien
la liste des classes de la bibliothèque PEGASE et compléter le diagramme de classes cidessous en vous posant les questions : de quelles classes (ports physiques ou logiques) avezvous besoin ? combien d'objets de chaque classe devez vous instancier ? (quels services de
chaque classe devrons-nous utiliser ?)
La liste des classes disponibles dans la bibliothèque PEGASE se trouvent dans les
répertoires: uClinux-dist/lib/pegase/include pour les chiers d'entêtes {.h} et uClinuxdist/lib/pegase/src pour les chiers sources {.c}. Pour une classe donnée, observez en
premier lieu les méthodes et arguments dans le chier d'entête, puis la fonction d'instanciation dans le chier source.
Figure 2 Diagramme de classe de l'application
PAUSE CAFE (10 mn)
5 Etape de réalisation (1h30)
Développez votre application de façon séquentielle et validez à chaque étape que votre
programme compile et fonctionne correctement sur la carte PEGASE. Pour observer le
fonctionnement de votre application, vous vous connecterez à PEGASE via une session
Polytech - ETN - TP3
6
Etape test d'intégration
4
SSH ou telnet (mais plus avec la console). Faites valider régulièrement l'avancement de
vos développements par les encadrants.
Avant de développer, jeter un coup d'oeil aux :
1. annexe 1 (indispensable)
2. annexe 2 (indispensable)
3. annexe 3 (pour information)
1. Partez du chier -squelette de solution- proposé "SensorGPS.c" contenant la fonction main() et complétez le programme uniquement là où il est spécié TODO. Le
plus important consiste à implémenter les automates dénis en étape de
conception c'est à dire, surtout, compléter les fonctions de callbacks (ie d'interruption).
2. Pensez à enrichir le chier de log du programme pour toutes les grandes étapes et
évènements de son exécution (état des automates, timeout, trame GPS...)
3. Pensez à simuler le déplacement physique du capteur par appui sur le bouton BPS1
4. Mettez en oeuvre le serveur TCP/IP. Faites en sorte que cet objet démarre une
écoute le port paramétré Z, vériez que vous pouvez vous connecter à ce serveur
depuis le PC grâce à une session telnet depuis un autre PC ou un iPhone...
#...
# telnet @IPCartePEGASE:portEcouteServeurTCPIP
#...
5. Faites en sorte que sur réception d'une commande précise comme "salut", le serveur
vous renvoie le chier de log.
6 Etape test d'intégration
Proposez un plan de test d'intégration comprenant entre autres les cas dégradés qu'il
faut prendre en compte comme:
Bon comportement du programme si perte du GPS et donc passage de 4 à moins
de satelittes (débranchez l'antenne GPS de PEGASE)
Saisissez un numéro de téléphone absurde pour l'envoi de SMS
Réception, sur le serveur TCPIP, d'une commande inconnue
etc.
Polytech - ETN - TP3
6
Etape test d'intégration
5
Annexe 1: Utilisation du port natif ttyBF0
En reprenant les acquis du TP1 vous devrez générer et booter la carte PEGASE sur
un noyau Linux qui libère la console par défaut qui, jusqu'à présent, utilise le port série
ttyBF0. En eet, pour ce TP, ce port va être dévolu à la communication avec le modem
GSM.
1. rebootez la carte PEGASE. Interrompre le bootloader Uboot (appui touche clavier)
2. modiez les paramètres de boot args pour passer la console à console=null exactement comme suit:
# set bootargs root=/dev/mtdblock0 rw console=null
(à la place de: set bootargs root=/dev/mtdblock0 rw console=ttyBF0,115200)
# save
# reset
Polytech - ETN - TP3
6
Etape test d'intégration
6
Annexe 2: Pilotage du modem GSM
PEGASE>
GSM>
PEGASE>
GSM>
...
GSM>
AT+CMGS="0666666666"<CR>
>
Mon texte a envoyer<CTRL+Z>
retour1<CR>
OK
Après la réception du caractère CTRL+Z, le modem GSM peut envoyer plusieurs chaines
avant de nalement envoyer la chaine "OK".
Polytech - ETN - TP3
6
Etape test d'intégration
7
Annexe 3: Geomatique
Figure 3 Illustration des coordonnées Géographique
Les hypotheses suivantes seront faite:
1. Le trajet est deni par l'arc FD
2. La terre est une sphère
3. Les arcs de cercle FD, DE et EF seront assimilés à des segments
Fin du TP3.
Polytech - ETN - TP3

Documents pareils