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