Formation à l'utilisation de PEGASE : Plate-forme Experte Générique pour Applications Sans-fil Embarquées



Documents pareils
PRESENTATION RESSOURCES. Christian Dupaty BTS Systèmes Numériques Lycée Fourcade Gardanne Académie d Aix Marseille

OpenMediaVault installation

Traitement de données

Network Camera. Camera. Network. Guide d installation v1.1. Installation Guide v R1.1. Anglais. Français. Espagnol. Allemand R1.

Installation et prise en main

Etape 1 : Connexion de l antenne WiFi et mise en route

Le routeur de la Freebox explications et configuration

TP1 - Prise en main de l environnement Unix.

FreeNAS Shere. Par THOREZ Nicolas

STS SE. FreeRTOS. Programmation réseau WIFI. Programmation réseau. Socket Tcp. FlyPort smart Wi-Fi module

VIDEO SURVEILLANCE SV82400 SV82500 SV82600 Type de panne cause Que faire? VIDEO SURVEILLANCE IPSV87050 VIDEO SURVEILLANCE IPSV87050 SERR1

Trois types de connexions possibles :

Mise en place des TPs Réseau en machines virtuelles. Utilisation de VmPlayer

Tutorial uclinux ARM7 Development Starter Kit. Pragmatec Produits et services dédiés aux systèmes embarqués. uclinux - Mise en oeuvre

Détection de pollution maritime avec GNU/Linux. Eric Bénard - eric@eukrea.com - 08 juillet 2010

MI03 TP. Objectifs du TP 1ère séance. 2ème séance. Construction d'un système linux embarqué complet

Le service FTP. M.BOUABID, Page 1 sur 5

Systèmes embarqués D.Rossier

Session 8: Android File System

WINDOWS NT 2000: Travaux Pratiques. -Boîtier partage d'imprimante- Michel Cabaré Janvier 2002 ver 1.0

But de cette présentation

DOCUMENTATION VISUALISATION UNIT

FORMATION PcVue. Mise en œuvre de WEBVUE. Journées de formation au logiciel de supervision PcVue 8.1. Lieu : Lycée Pablo Neruda Saint Martin d hères

>> Lisez-moi d abord... Connecter le ZyXEL Prestige 650HW/HW-I

ETI/Domo. Français. ETI-Domo Config FR

Un peu de vocabulaire

RX3041. Guide d'installation rapide

Routeur Wi-Fi N300 (N300R)

Système M-Bus NIEVEAU TERRAIN NIVEAU AUTOMATION NIVEAU GESTION. Domaines d'application

Note de première mise en service. Passerelle ipro-04n. TTPMSiPRO04N R1.0 fr

ARDUINO DOSSIER RESSOURCE POUR LA CLASSE

TIC. Tout d abord. Objectifs. L information et l ordinateur. TC IUT Montpellier

2. Activation du WIFI sur la FREEBOX et de sa fonction Routeur

Network Shutdown Module V3 Extension du Manuel Utilisateur pour architecture Virtualisée VMWare ESX Server 3, 3.5

Accès à un coupleur/contrôleur Ethernet via une liaison téléphonique

Unix/Linux I. 1 ere année DUT. Université marne la vallée

ndv access point : Utilisation

Couche application. La couche application est la plus élevée du modèle de référence.

Prise en main. Prise en main - 0

Guide d utilisation Business Livebox

Personnes ressources Tice. Académie de Rouen

Administration de Parc Informatique TP02 : Utilisation du logiciel Marionnet

1. Comment accéder à mon panneau de configuration VPS?

L3 informatique Réseaux : Configuration d une interface réseau

Surveillance de Température sans fil

KAJOUT WASSIM INTERNET INFORMATION SERVICES (IIS) 01/03/2013. Compte-rendu sur ISS KAJOUT Wassim

Activité : TP Durée : 6H00. Un PC d assemblage de marque NEC Un casque avec micro Une clé USB. Un CD de Windows XP professionnel

epowerswitch 8XM+ Fiche technique

Installation software

WGW PBX. Guide de démarrage rapide

Objet : Guide d'installation et de maintenance pour "My IC Phone 8082" connecté à un OmniPCX Office R810

Guide de l utilisateur ArpentGIS-Trajet 1.2 ArpentGIS-Expert 1.4

Projet : PcAnywhere et Le contrôle à distance.

Sommaire 1. Aperçu du Produit

"! "#$ $ $ ""! %#& """! '& ( ")! )*+

TAGREROUT Seyf Allah TMRIM

Live box et Nas Synology

epowerswitch 4M+ Fiche technique

Activité 1 : Création et Clonage d'une première machine virtuelle Linux OpenSuSE.

Si vous avez des questions ou bien si vous voulez tout simplement vous détendre, faite un tour sur le forum.

La BOX Documentation complémentaire

MANUEL D INSTALLATION

CONCEPT de MICRO-DOMOTIQUE. Système STANTOR-DOMODULOR

Contrôle d accès UTIL TP N 1 découverte

italc supervision de salle

Programmation système I Les entrées/sorties

LES ACCES ODBC AVEC LE SYSTEME SAS

LANDPARK NETWORK IP LANDPARK NETWORK IP VOUS PERMET D'INVENTORIER FACILEMENT VOS POSTES EN RÉSEAU

Département de génie électrique. ELE784 - Ordinateurs et programmation système. Laboratoire #1

Gérard Castagnoli OSU PYTHEAS 25/06/2013 VVT2013 1

Manual de l utilisateur

SYSTEME DE GESTION DES ENERGIES EWTS EMBEDDED WIRELESS TELEMETRY SYSTEM

Présentation et installation PCE-LOG V4 1-5

Tutoriel Création d une source Cydia et compilation des packages sous Linux

Cours LG : Administration de réseaux et sécurité informatique. Dans les Paramètres Système onglet Processeur, le bouton "Activer PAE/NX"

GUIDE DE L UTILISATEUR

Introduction aux Systèmes et aux Réseaux, Master 2 CCI

1 Gestionnaire de Données WORD A4 F - USB / / 6020 Alco-Connect

INSTALLATION MODULE WEB

Guide d installation Caméras PANASONIC Série BL

Administration de Parc Informatique TP07 : Installation de Linux Debian

INSTALLATION DE WINDOWS 2000 SERVER POUR BCDI3. par. G.Haberer, A.Peuch, P.Saadé

User Manual Version 3.6 Manuel de l Utilisateur Version

FACULTE DES SCIENCES ET TECHNIQUES FES SAIS MASTER SYSTEMES INTELLIGENTS ET RESEAUX MST SIR 2014 TP WIFI. Encadré par PR.

TP 4 & 5 : Administration Windows 2003 Server

Commandes Linux. Gestion des fichiers et des répertoires. Gestion des droits. Gestion des imprimantes. Formation Use-IT

GenIP 30i : Passerelle intelligente dédiée aux applications industrielles les plus critiques

Routeur client. PC accueil Postes IP

Programmation C. Apprendre à développer des programmes simples dans le langage C

NOTICE DE EOBD-Facile Pour Android

Messages d'erreurs. Redémarrez votre PC en cliquant sur Démarrer, en sélectionnant ensuite Arrêter puis en cochant Redémarrer

Installer et configurer un réseau local Ethernet commuté. Généralités 1 Utilisation d un Switch administrable D-Link DES-3226

Contrôleur de communications réseau. Guide de configuration rapide DN

Administration UNIX. Le réseau

Retrospect 7.7 Addendum au Guide d'utilisation

Besoin d aide? Stk Ref. Macareux - 07/2015

ETAP Safety Manager Systèmes centraux de contrôle et de gestion

JaZUp manuel de l'utilisateur v2.4

Transcription:

Formation PEGASE : La plate-forme wireless du LCPC Formation à l'utilisation de PEGASE : Plate-forme Experte Générique pour Applications Sans-fil Embarquées Vincent Le Cam ( Mathieu Le Pen William Martin Laurent Lemarchand ) Ingénieur de recherche, enseignement et expertise Responsable de la Cellule Électronique et Informatique Industrielle (CEII) Département MACS (Mesure Auscultation Calcul Scientifique) IFSTTAR Version V3.0 Novembre 2011 Tous droits réservés 1

Formation PEGASE sur 3 jours - Sommaire : Journée 1 Contexte / Découverte / Prise en main 1. Rappels des objectifs de la formation (10 mn) 2. Présentation et cours généraux (½ j) - Électronique sans-fil et OA - Contexte de PEGASE (Cours de V. Le Cam) - Les systèmes GNU/ Linux (Cours de Ph. Le Gal) - Le noyau Linux et les pilotes de périphériques / drivers (Cours de Ph. Le Gal) - Langage C : un tutoriel et quelques grands rappels 3. Mise en route et découverte de PEGASE (½ j) - Appropriation des principales fonctions et caractéristiques physiques et logicielles 2

Formation PEGASE sur 3 jours - Sommaire : Journée 2 Découverte et modification des exemples Mes premières applications sur PEGASE 4 - Exécution et modification des programmes d'exemple fournis dans le kit PEGASE (½ j) Présentation du contenu de la librairie PEGASE Focus sur le fonctionnement évènementiel : mécanisme des Callbacks Mise en œuvre et modification des programmes d'exemple 5 - Développement d'applications orientées métier (1,5j) Application 1 : «Envoi TCP/IP/WiFi de données d'un capteur (Accéléro MEMS3D) vers un Superviseur en Labview» Application 2 : «Sensor GPS : envoi d'alarme SMS/GSM sur détection de déplacement GPS. Serveur TCP/WiFi». Mise en oeuvre d'un automate d'état Application 3 : «Mise en œuvre des fonctions DSP: FFT, min/max/mean, etc.» 3

Formation PEGASE sur 3 jours - Sommaire : Journée 3 Développement d'applications sur PEGASE Etude de vos use-case 5 - Développement d'applications orientées métier (1,5j) Application 4 : «Mise en oeuvre du watchdog sur PEGASE» Application 5 : «Utilisation de la librairie XML sur PEGASE» Application 6 : «utiliser la carte fille 8 voies d'entrées analogiques : GBF en entrée + FFT + envoi TCP vers un serveur Labview» Application 7 : «Customiser le serveur web intégré sur PEGASE» Application 8 : «PEGASE et l'énergie : autonomie, CSolarManager, etc.» Application 9 : «Développer en C++ sur PEGASE» 6 Debugage d'applications : gdb, cross-debugage, manip,... 7 Étude de vos use-case (1h)... 4

PARTIE 1 PARTIE 1 : «Rappels des objectifs de la formation» 5

1 - Rappel des objectifs de la formation : Objectifs: Présenter le concept PEGASE en détail Rendre utilisateur capable d'installer et d'utiliser la plateforme PEGASE en qqs heures dans son labo A tout le moins : le savoir nécessaire pour comprendre et maintenir une application sur PEGASE Transfert de connaissance IFSTTAR<=> RST, Ecoles, Universités, entreprises... Un avoir faire plus général que le simple cadre PEGASE : développement en C en Linux l'embarqué. Connaissances applicables pour de nombreux autres systèmes Pour un public averti : Sensible à (ou aime) l'électronique, l'info. Indus., embarqué... Connaît (ou pourrait) le minimum vital du linux : ls, man, gcc... Connaît (ou devra) savoir développer en C standard...voire en C++ 6

PARTIE 2 PARTIE 2 : «Présentation et cours général» 7

2 - Présentation et cours général 1) Présentation générale de : - «Électronique sans-fil et ouvrages d'art» 1h (cours V. Le Cam) 2) Présentation générale de : - «Les systèmes GNU/ Linux» 3/4h (cours de Ph. Le Gal) 3) Présentation générale de : - «Le noyau Linux et les pilotes de périphériques» 1/2h (cours de Ph. Le Gal) 4) Le Langage C : (1/2h) (Mathieu Le Pen) - THE tutoriel de référence : "Le Langage C" / Richie et Kernighan - Quelques grands rappels sur le langage C 8

2 - Présentation et cours général Il existe de très nombreux tutoriels sur le langage C sur internet! Pages de Man : > man Sous Google Exemple : http://www.siteduzero.com/tutoriel-3-14189apprenez-a-programmer-en-c.html 9

2 - Présentation et cours général C-Rappel : if/else 10

2 - Présentation et cours général C-Rappel : do-while 11

2 - Présentation et cours général C-Rappel : for 12

2 - Présentation et cours général C-Rappel : printf 13

2 - Présentation et cours général C-Rappel : open/close/read/write 14

3 - Mise en route et découverte de PEGASE PARTIE 3 : «Mise en route de PEGASE» 15

3 - Mise en route et découverte de PEGASE Préambule : Tout au long de la formation (et après dans votre labo), toujours se référer au Guide Mise en Oeuvre de PEGASE Version V1.F : 16

3 - Mise en route et découverte de PEGASE En suivant le «Guide de Mise en Oeuvre de PEGASE V1.F» (G.U. = Guide Utilisateur) \ chapitre 3 «Démarrage rapide» : Connecter PEGASE à une source 8/24 V Relier PEGASE à votre PC par un cordon RS232 / USB Configurer un outil de gestion des ports com sur PC : minicom -s configurer à: 115200 bauds 8N1 Lancer: minicom Faire vérifier le câblage par le formateur Mettre sous tension Observer la séquence de boot de PEGASE 17

3 - Mise en route et découverte de PEGASE Booter et re booter la carte (bouton reset) ou taper reboot Détecter la séquence du boot loader A quoi sert-elle? Explications du formateur Voir dans le G.U. Le partitionnement de PEGASE ( 5.2). Explications Se promener sur la carte, vérifier les commandes Linux de base : cd /lcpc ls -l cat /version echo toto Etc. Avec «l'aide mémoire des commandes Unix», vérifier que vous retrouvez les grands principes d'un système Linux. 18

3 - Mise en route et découverte de PEGASE Vérifier le partitionnement de PEGASE expliqué en 5.1 du G.U. La partition mtd1 est la partition de boot (volatile) La partition mtd2 est la partition métier (pérenne) Créer un fichier dans «/» : Echo test1 > foo1 Créer un fichier dans «/lcpc» : Echo test2 > foo2 Rebooter la carte Tentez de retrouver les fichiers «foo1» et «foo2» Que s'est il passé??? Si votre application doit générer et stocker des fichiers de données, où enregistrer vos fichiers de data? Où placer votre future application «Monitoring.exe»? 19

3 - Mise en route et découverte de PEGASE /lcpc : bien se rappeler que ce n'est pas un répertoire comme les autres (pointe sur une mémoire FLASH) Contrairement à «/XXX», LCPC pointe sur la FLASH et non la RAM (mtdblock2) Il est donc pérenne (rappel) Il est propre à PEGASE (produit @ Ifsttar ) et il est créé volontairement pour y stocker des applications et des données Préparer un sous répertoire de travail de votre choix : «mkdir APPLI» «cd APPLI» «echo c parti > foo» Rebooter PEGASE Retourner dans /LCPC/APPLI Afficher foo «cat foo» Is it OK??? 20

Mise en route de PEGASE Découvrir les autres principaux répertoires de la distribution Linux sur PEGASE : /bin : explorer et retrouver tous les binaires que vous utilisez sous le Linux embarqué sur PEGASE Principales commandes Linux : ls -l, cd, ifconfig,... Les fichiers Example_XXX Comment LINUX sait que les binaires se trouvent ds ce rép.? Afficher et comprendre la valeur de la variable système : PATH En tapant la commande: echo $PATH Idem sur tout PC sous Linux Aller dans le répertoire /proc et afficher le contenu du fichier meminfo cat /proc/meminfo Contenu = informations importantes sur taille de la RAM Similairement, taper : free 21

3 - Mise en route et découverte de PEGASE /xxx : explorer rapidement les autres répertoires à la racine de «/» (autres que «/LCPC») Noter que : il s'agit des sous-répertoires classiques d'un système Linux (ici d'un uclinux adapté à PEGASE) Sur votre PC sous Linux (ex. : Ubuntu) : retrouver ~ les mêmes répertoires, ~les mêmes commandes, et même logique d'arborescence universelle des systèmes GNU/Linux (cf. le cours) Analogie : Systèmes Linux 22

3 - Mise en route et découverte de PEGASE A la racine «/» : afficher le contenu du fichier «version» «cat /version» Qu'affiche ce fichier selon vous? A quoi correspondent la date et l'heure affichées? Dans /lcpc : afficher puis compléter le contenu du fichier «autorun.sh» en suivant la question Q2 de la FAQ du GU (P.53) root:/> cat /lcpc/autorun.sh root:/> cat >> /lcpc/autorun.sh echo cette formation PEGASE est super <Entrée> ifconfig ps <Ctrl + C> root:> Rebooter Que se passe -t-il? A quoi sert ce fichier selon vous? Pour bien comprendre : afficher le contenu de «rc» : cat /etc/rc 23

3 - Mise en route et découverte de PEGASE Découvrir les autres principaux répertoires de la distribution Linux sur PEGASE Zoom sur un répertoire important : /dev /dev => «Devices» = matériels / périphériques Aller dans «/dev» et lister le contenu «ls -l» Retrouver des périphériques qui ont été présentés sur PEGASE: Les timers :... Le port SPI :... Le port I2C : null Les ports flags : sous quels noms retrouve-t-on les 48 GPIO? Les 2 ports série : ttybf0 et ttybf1 A quoi correspond le dev «console» Faire «echo salut > /dev/console» depuis un Terminal en Telnet et regarder ce qui se passe sur un Terminal avec Minicom Faire «echo bonjour > /dev/ttybf0» Que se passe-t-il? Comment l'expliquer? Qu'est ce qui est câblé «en dur» sur ttybf1? 24

3 - Mise en route et découverte de PEGASE Zoom sur un répertoire important /dev Piloter une ou plusieurs leds à la main, en 2 lignes de shell : Tout dabord décharger le driver gérant les leds: rmmod leds-lcpc Allumons une led à la main sur la carte fille de debug A partir du G.U. Annexe 2 «Schémas de la carte fille de debug», repérer le GPIO correspond à l'une des 6 leds Ex. : pg10, pg6, quels sont les 4 autres :...? Écrire un 0 (logique inversée) sur le port flag «echo 0 > /dev/pg10» Que se passe-t-il? Étendre le test Eteindre la led avec la commande : «echo 1 > /dev/pg10» 25

3 - Mise en route et découverte de PEGASE Zoom sur un répertoire important /dev Piloter une ou plusieurs leds à la main, en 2 lignes de code C : En faisant «echo 0 > /dev/pg10» : appel implicite au driver pilotant les port flag : lcpc_pflags Pour voir la liste des drivers chargés, taper : lsmod Observer les dépendances L'équivalent en langage C serait : int fd = open (''/dev/pg10'') ; write( fd, ''0'', sizeof(''0'')) ; close( fd) ; Et pour lire l'état d'un port flag char state[1] ; int fd = open (''/dev/pg10'') ; read ( fd, state, sizeof(state)) ; close( fd) ; 26

3 - Mise en route et découverte de PEGASE Sous linux, en langage C (ou autre), noter que tout passe par l'utilisation de file descriptor (int fd) Utilisation d'un périphérique dans /dev : /dev/timer6 /dev/pf8 Accès à un fichier physique (file*) Utilisation d'un pipe (communication inter-processus) Utilisation d'une socket (communications IP) /dev/spi... Utilisation, essentiellement de 5 commandes pour piloter une fd: open, close, read, write ioctl 27

3 - Mise en route et découverte de PEGASE Découvrir les autres principaux répertoires de la distribution Linux sur PEGASE Zoom sur un répertoire important : /dev /dev => «Devices» = matériels / périphériques Test rapide du port ttybf1 routé sur le module GPS de Pegase Vérifier la bonne réception des trames GPS en : Allumant le module GPS (sortie du Standbye, éteint par défaut, voir autorun.sh) echo 1 > /dev/pg0 En configurant le port série 1 à 4800 bauds stty -F /dev/ttybf1 4800 En redirigeant les trames reçues sur ce port sur la sortie standard root:/bin> cat /dev/ttybf1 $GPGGA,,4709.35974,N,00138.26703,W,7,00,,,,,,,*44 $GPVTG,,,,,,,,,M*33... 28

3 - Mise en route et découverte de PEGASE AIDE sous Linux : MAN (Manuel) «Aide-toi et Linux t'aidera» «man read» «man ls» «man...» Pour des questions de taille, le man n'est pas implémenté sur PEGASE. Utiliser le man du PC de développement (Ubuntu) 29

3 - Mise en route et découverte de PEGASE Options : commande -help (ou :?, -h...) «Aide-toi et Linux t'aidera» Systématiquement, penser à solliciter une commande avec l'option help y compris sur uclinux - PEGASE: «cp -help» «ftp -help» «ls -?»... 30

3 - Mise en route et découverte de PEGASE Découvrir l'activité linux de la carte PEGASE Taper la commande ps pour voir l'ensemble des processus qui tournent par défaut sur PEGASE Retrouver quelques processus et identifier leur rôle respectif : «boa» «inetd» «ps» Commande «netstat -a» Commande «free» pour la mémoire dispo Lancer la commande top. Quelle information a priori intéressante obtient-on? Faire CTRL+C pour l'arrêter. Lancer la commande top en parallèle de votre interface de commande (soit suivie d'un &) : «top&» Relancer ps. Identifier le numéro de processus de top Arrêter (tuer un processus) top avec la commande kill : «kill -9 numero_pid_top» 31

3 - Mise en route et découverte de PEGASE PASSER AU MONDE RESEAU (IP) DE PEGASE Objectif : DECOUVRIR et UTILISER LES CAPACITES DE PEGASE A COMMUNIQUER EN IP (WiFi) - Bénéficier de la force de l'internet Protocol (IP) - Linux et IP font très bon ménage! Rappel du positionnement de l'ip et du Wifi 32

3 - Mise en route et découverte de PEGASE Sur PEGASE (comme souvent en embarqué) : - Le Port RS232 n'est que l'interface par défaut ( «/dev/console») - C'est un lien de communication local, point à point (PC PEGASE) distances limitées (qqs m) Port RS232 Port RS232 - En TCP/IP, par des connexions Telnet, FTP, SSH... fonctionnement en réseau, communications point à multipoints, distances illimitées. On va ouvrir une session!... TCP/IP --WiFi 33

3 - Mise en route et découverte de PEGASE Etape 1 : Suivant les indications du paragraphes 5.4 «Réseau» du G.U. Éditer et vérifier le contenu du fichier de configuration «cat /lcpc/wifi.conf» Relever l'adresse IP de votre carte PEGASE : «ifconfig» Faire un test de connectivité depuis votre PC sous Ubuntu en faisant un ping «ping @IPMaCartePegase» Exemple : «ping 192.168.0.205»...ou un ping de votre carte vers votre PC...ou un ping de votre PC sur la carte du voisin... on est dans le même LAN (Local Area Network) 34

3 - Mise en route et découverte de PEGASE Etape 2 : Débrancher le cordon série reliant PEGASE au PC Ouvrir une session Telnet sur votre carte PEGASE. Typiquement: «telnet 192.168.0.xxx» Ouvrir une session SSH sur votre carte PEGASE «ssh root@192.168.0.xxx» Ouvrir une session FTPsur votre carte PEGASE «ftp 192.168.0.xxx» Fournir les paramètres du compte utilisateur (unique sous uclinux mais paramètrables : commande passwd): login = root Password = uclinux 35

3 - Mise en route et découverte de PEGASE Etape 3 : Comprendre le caractère réseau, l'abstraction de l'ouverture de session à distance La connexion se fait via le WiFi, la carte -moyennant la portée de l'access Point WiFipourrait se trouver sur le toît du bâtiment (i.e. en «haut du pont»). Fort non? Depuis la session Telnet ouverte sur votre PEGASE depuis votre PC, créer un fichier contenant votre nom «echo Martin > /lcpc/nom» En suivant le G.U. ($5.5.1) depuis la session Telnet sur votre PEGASE Ouvrir une autre session Telnet sur la PEGASE du binôme voisin. Editer le fichier «nom» de la carte voisine. Saisir la commande «reboot -d 10». Partir en courant. 36

Mise en route de PEGASE Etape 4 : se familiariser avec les commandes réseau Linux : Tester la présence dans le même sous réseau IP d'une autre machine IP : «ping 192.168.0.XXX» Connaître son adresse IP, sa configuration IP et son adresse MAC logiciellement : «ifconfig». Sur PEGASE à quoi correspondent les interfaces «lo» et «wlan0»? faites de même sur le PC... Connaître sa configuration WiFi à un instant T, vue de PEGASE : «iwconfig». Identifier et comprendre les principaux champs : ESSID - Bit rate Mode - Link Quality Access Point 37

3 - Mise en route et découverte de PEGASE Etape 4 (suite) : depuis PEGASE (et même depuis le PC sous Ubuntu) scanner les réseaux WiFi visibles depuis PEGASE à un instant T. Saisir la commande : «iwlist wlan0 scanning» Quels réseaux obtenez vous? Quelles caractéristiques peut on retrouver? 38

3 - Mise en route et découverte de PEGASE Etape 5 : suivant les indications du paragraphes 5.5 «Services réseau de PEGASE» du G.U. tester les services FTP et SSH depuis votre navigateur Nautilus => très pratique pour transférer les fichiers entre PC et PEGASE 39

3 - Mise en route et découverte de PEGASE Etape 5 : encore plus pratique pour le FTP => FireFTP, pluggin de Firefox 40

3 - Mise en route et découverte de PEGASE Avec SSH: 41

3 - Mise en route et découverte de PEGASE Etape 6 : suivant les indications du paragraphes 5.5.4 «Services réseau de PEGASE» du G.U. Passer en revue les différentes pages du serveur web embarqué de PEGASE PEGASE possède nativement un serveur web embarqué «boa». Pour y accéder : simplement saisir l'url (= adresse IP) de votre carte PEGASE dans votre navigateur Firefox (ou autre) 42

Mise en route de PEGASE Serveur Web PEGASE : page d'accueil Retrouver le contenu du fichier «version» 43

3 - Mise en route et découverte de PEGASE Serveur Web PEGASE : afficher la configuration WiFi Vérifier le ESSID du réseau WiFi Vérifier l'adresse MAC (résultats de la commande iwconfig) 44

Mise en route de PEGASE Serveur Web PEGASE : modifier la configuration WiFi Résultat de la commande «iwlist wlan0 scanning» Vérifier la cohérence avec la connexion WiFi de PEGASE Rappel est donné sur le DHCP et DHCP statique. Tester la modification de la configuration IP de votre PEGASE en imposant une adresse IP (donnée par le formateur) à la place d'une obtention par DHCP. Rebooter et tester. 45

3 - Mise en route et découverte de PEGASE Serveur Web PEGASE : page de démarrage / autorun.sh Retrouvez-vous bien votre customisation précédente : ajout à la main (cat >>autorun.sh) de commandes dans ce fichier? Formateur : description des différents commentaires et options dans ce fichier Customisez encore ce fichier et rebooter et observez le résultat 46

Mise en route de PEGASE Serveur Web PEGASE : éditer un fichier Saisir le chemin complet d'un fichier que vous avez créé précédemment pendant le TP. «/lcpc/wifi.conf» 47

3 - Mise en route et découverte de PEGASE Serveur Web PEGASE : page des processus Encapsulation de la commande «ps» Tester le kill du processus «boa» Qu'obtenez vous d'intéressant? 48

3 - Mise en route et découverte de PEGASE PEGASE et l'energie: 49

3 - Mise en route et découverte de PEGASE Scripts utiles vis à vis de l'énergie de PEGASE : Le G.U. donne le bilan détaillé de la consommation de PEGASE en 2.2 suivant l'activité des périphériques utilisés à un instant T: 3 périphériques peuvent être manipulés en ce sens (cf 5.8): Le module WiFi : ON / OFF Souvent utile de le mettre OFF lorsque la connexion permanente n'est pas nécessaire (ON par défaut) Le module GPS : ON / OFF Sauf si haut niveau de synchronisation requis et/ou localisation nécessaire pour l'application, peut être mis OFF (cas par défaut) Le processeur Blackfin 537 itself Peut être endormi pour un temps donné (plus de traitement, plus d'acquisition) pour les applications à échantillonnage lent Modification de la fréquence cœur (CCLK) pour travailler à 500 ou 250 MHz 50

3 - Mise en route et découverte de PEGASE Le module WiFi : ON / OFF Deux scripts permettent d'allumer/éteindre à tout moment le module WiFi (~100 mw) en ligne de commande ou depuis le code C d'une application métier (system (''ma commande'');) Éteindre le module WiFi (tester avec la liaison minicom) : root:~> wifi_down.sh Allumer le module WiFi (tester avec la liaison minicom) : root:~> wifi_up.sh Enchaîner plusieurs fois les commandes. Vérifier la diff de conso sur le bloc d'alim Vérifier la bonne reprise du service réseau IP/WiFi 51

3 - Mise en route et découverte de PEGASE Le module GPS : ON / OFF Le module GPS (~ 120 mw) peut être allumé / éteint directement en pilotant le GPIO : /dev/pg0 La broche de reset du module GPS «echo 1 > /dev/pg0» (allumer = défaut dans autorun.sh) «echo 0 > /dev/pg0» (éteindre) mais le mieux sera de la tester depuis du code C avec l'exemple : Example_HeureAbsolue et son mode 3 Explication du principe du GPS On/Off (ie. Mode 3 de la Classe CHeureAbsolue de la Lib PEGASE) Tester en lançant «Example_HeureAbsolue» 52

3 - Mise en route et découverte de PEGASE Le processeur Blackfin 537 : Peut être endormi pour un temps donné (plus de traitement, plus d'acquisition) pour les applications à échantillonnage lent ou rare En ligne de commande (ou depuis du code applicatif C ) avec la commande : Tester : «pegase-sleep.sh 10» Ainsi le processeur s'endort 10 secondes Modification de la fréquence cœur (CCLK) pour travailler à 500 ou 250 MHz En ligne de commande (ou depuis du code applicatif C ) avec la commande : «cpufreq-info» «cpufreq-set -f 250M» attention! 53

3 - Mise en route et découverte de PEGASE PEGASE et l'energie : Pour aller plus loin et réaliser un système autonome : Voir le 5.8 du Guide Utilisateur Il existe déjà des systèmes Pegase autonome sur PS avec solution au cas par cas (bilan énergétique). CF spécifique. Bientôt une carte fille intermédiaire (sandwich) dédiée à l'énergie et générique! Pour un kit Pegase clé en main, autonome 54

3 - Mise en route et découverte de PEGASE Customiser et reflaser son propre noyau pour PEGASE : DEMO VLC: - Modif noyau : plus de ttybf1! - Modif user space : ajout de Dungeon - Modif user space : ajout Gdb Server 55

4 - Exécution et modification des programmes d'exemple PARTIE 4 : 56

4 - Exécution et modification des programmes d'exemple Généralités sur les prgs d'exemple fournis: Les exemples servent unitairement à tester un port (RS232,SPI,...) ou un service (socket IP,...) Avec leur code source, ils permettent une prise en main rapide par le nouveau développeur Contribue au caractère générique de PEGASE Ils utilisent massivement la librairie PEGASE Disponibles sous : «.../pegase/uclinux-dist/user/pegase-test» Allons les observer rapidement ensemble A copier /coller absolument! 57

4 - Exécution et modification des programmes d'exemple Quelques mots à propos de la «libpegase» A quoi sert-elle? Fournir un ensemble de classes encapsulant l'utilisation d'un port ou d'un service. Gain de code (i.e. de temps) standardisation. Code source fourni Chaque classe permet, en général de : ouvrir, configurer, écrire, obtenir des datas, fermer... le port (device) ou le service Réutilisabilité et portabilité du code métier Que contient-elle? + de 11 classes prêtes à l'emploi (à instancier) + 3 drivers LCPC Écrites en C-objet : se rapprocher au max. de la Programmation Orientée Objet Pour chaque flux entrant : un mécanisme de callback (voir ci après) permettant d'écrire des application simples et fonctionnant sous IT. 58

4 - Exécution et modification des programmes d'exemple Réflexe à avoir : lire le.h de la classe nécessaire Tout fichier.h est commenté en détail: Sur le PC, aller dans : «.../V1F/pegase/uClinux-dist/lib/pegase/include» Ouvrir et analysons ensemble une classe type CPortSPI : CPortSPI.h 59

4 - Exécution et modification des programmes d'exemple Objectif et fonctionnement du mécanisme de callback : Comment le code C (métier) peut savoir que des données arrivent sur le port concerné (Uart, SPI, PortFlag en input,...)??? Par une utilisation judicieuse de thread (mettant en œuvre un processus parallèle de lecture bloquante du port concerné), une fonction utilisateur, passée à la classe (SetCallBack) est exécutée lorsque de la data arrive. Résultat : l'utilisateur peut développer des applications au fonctionnement évènementiel. Les principaux traitements (bufferisation, mise en fichier, FFT,...) peuvent être calés «Sur réception de données» du port (RS232, SPI...) = interruptions logicielles 60

4 - Exécution et modification des programmes d'exemple Mécanisme de callback. Exemple opérationnel en 10 lignes: Analysons et commentons ensemble l'exemple Uart dans : «.../V1F/pegase/uClinuxdist/user/pegasetest/Example_Uart.c» 61

4 - Exécution et modification des programmes d'exemple Passage en revue de la Lib PEGASE (cf Guide en $6.2): CLed assure le pilotage des Leds disponible sur les cartes filles. Cette classe permet de piloter les leds disponible dans le dossier système «/sys/class/leds/», le driver «leds_lcpc» permet de déclarer les six leds courrament utiliser sur les cartes filles. Le driver est chargé avec la commande suivante : # modprobe leds_lcpc CUart permet d ouvrir et configurer rapidement les ports séries disponibles sur la carte PEGASE d origine (ttybf0, ttybf1). Ou bien étendu par la carte fille spécifique, dans ce cas il est nécessaire de charger le driver «8250_lcpc» avec lacommande suivante : # modprobe 8250_lcpc Callback sur réception des données 62

4 - Exécution et modification des programmes d'exemple Passage en revue de la Lib PEGASE : CTimer permet de piloter les 8 timers physiques du Blackfin. Les modes de fonctionnements sont: capture, PWM et interruption périodique (Callback) de précision. CPortFlag permet de piloter les 48 ports d entrées-sorties tout ou rien du Blackfin. Les entrées peuvent être configurer comme source d interruption afin de rendre le programme événementiel. Cette classe possède deux constructeurs qui permet de configurer le GPIO suivant le mode de fonctionnement souhaité, source d interruption (Callback) ou port d entrée/sortie. CServerTcpIP met en place un serveur multi-client TCP/IP. L utilisateur peut y enregistrer une fonction de traitement des données afin de créer un protocole qui est propre a son application. 2 Callbacks possibles : connexion, réception de données CClientTcpIP permet de créer une connexion client vers un serveur TCP/IP. Cette classe permet de configurer le «keep-alive» de la connexion TCP, ainsi que la reconnexion automatique en cas de fermeture non désirer de la connexion par le serveur. 63

4 - Exécution et modification des programmes d'exemple Passage en revue de la Lib PEGASE : CGPS assure le décodage des trames NMEA issue du récepteur GPS Copernicus intégré à PEGASE. Callback possible sur réception de GGA CHeureAbsolue assure la datation à l aide de la classe CGPS et de la synchronisation à l aide du PPS du module GPS. Elle permet aussi d obtenir une estimation de l erreur du quartz et d'en tenir compte pour se synchroniser à qqs µs CPortSpi driver générique pour le port SPI. Cette classe permet une lecture DMA sur un bus SPI. Elle est typiquement utilisée pour lire les données provenant de CAN. Il est nécessaire de charger le driver «lcpc_can_spi» avec la commande suivante : # modprobe lcpc_can_spi Callback sur réception de blocks d'échantillons Exemple : carte fille du CASC 64

4 - Exécution et modification des programmes d'exemple Passage en revue de la Lib PEGASE : CMax11046 pilote le convertiseur analogique-numérique «Maxim 11046 [5]» disponible sur une carte fille d extention. Il est nécessaire de charger le driver «lcpc_max11046» avec la commande suivante : # modprobe lcpc_max11046 CSolarManager gère un panneau solaire et le chargement d une batterie. La classe implémente un algorithme de MPPT (Maximum Power Point Tracker), afin de maximiser l énergie récupérée par un panneau solaire. 65

4 - Exécution et modification des programmes d'exemple Passage en revue de la Lib PEGASE : Pour info : IFSTTAR a développé ses propres drivers pour compléter des manques dans les drivers de base que propose les distributions Linux => grande expertise requise! lcpc_pflags : gestion des GPIO / Ports Flags. Datation à la µsec lcpc_max11046 : driver spécifique pour la carte fille 8 voies (CAN 8 voies Max11046) 8250_lcpc : driver spécifique pour la carte fille ajoutant 4 ports RS232 à PEGASE bfin_mac : driver spécifique pour la carte fille Ethernet ppp_async : driver spécifique pour des connexions PPP (modem GSM) leds-lcpc : driver spécifique pour des piloter les 6 Leds des cartes filles de PEGASE lcpc_can_spi : driver piloter un CAN SPI monovoie 16 bits Et surtout : lcpc_hwtimer : utilisé par les autres drivers (comm' inter drivers) qui assure la synchro de la carte PEGASE sur le GPS / PPS calcule la dérive du quartz et prise en compte pour datation! = synchro de PEGASE à ~4 µseconde UTC!!! 66

4 - Exécution et modification des programmes d'exemple Des exemples nombreux : Unitaires pour tester spécifiquement les ports d'e/s et la carte PEGASE À code ouvert pour s'inspirer. A copier / coller pour développer votre propre application Liste ~ exhaustive des exemples fournis dans.../pegase/uclinux-dist/user/pegase-test : Example_CMax11046 Example_CPortSPI Example_Gpio Example_Gpio_Write Example_TcpIP_Server Example_Timer_Period Example_Timer_PWM Example_Uart Example_Gps Example_HeureAbsolue Example_Led Example_SolarManager Example_TcpIP_Client Example_TcpIP_Client_KeepAlive Example_TcpIP_Client_Reconnect 67

4 - Exécution et modification des programmes d'exemple Rappel : la cross compilation Transfert - Codage (C) - Compilation pour cible Pegase (- Debugage) - Exécution (- Debugage) 68

3 - Mise en route et découverte de PEGASE Cross-Debugger ses applications sur PEGASE TODO : Evoquer GDB server William M. 69

4 - Exécution et modification des programmes d'exemple A vous de jouer! Tester sur PEGASE en exécutant quelques exemples : «Example_Led» et «Example_HeureAbsolue»,... Pour développer une application : Suivre scrupuleusement le G.U. «6 Développer ses propres application». Prendre le temps de lire au moins une fois $6.4 et $6.5 70

4 - Exécution et modification des programmes d'exemple Faire son applications en 1 minute et 6 étapes (rappel du Guide) : 1) Créer un répertoire de travail : mkdir myapp 2) Copier/coller le contenu du répertoire «.../V1F/pegase/uClinux-dist/user/pegase-helloworld» 3) Ouvrir le fichier «Makefile» et y apporter 2 modifs : Saisir PEGASEINSTALLDIR par votre chemin «.../V1F/pegase/» Saisir le nom de l'exécutable à générer : EXEC par «myapp» 4) Ouvrir un terminal en lançant open-terminal.sh dans : «.../V1F/pegase/open-terminal.sh» et retourner dans le répertoire de travail 5) Coder votre appli (C). Compiler en appelant «make» 6) Copier/coller (FTP, SSH) «myapp» sur PEGASE, le rendre exécutable et le lancer : root> chmod +x myapp root>./myapp 71

4 - Exécution et modification des programmes d'exemple Exercice 1 : Modifier le programme «Example_Led.c» - Ajoutez une boucle sans-fin (do while(1)) à la fin du prog. pour qu'il ne s'arrête pas - Par extension de ce qui existe, ajoutez le clignotement 2 fois par seconde (usleep(250000);) d'une autre led dans cette boucle - NB : pour les leds un ensemble de petites macro vous simplifie la vie 72

4 - Exécution et modification des programmes d'exemple Exercice 1 : Modifier le programme «Example_Led.c» (SUITE) - Ajouter ce qu'il faut dans «/lcpc/autorun.sh» pour que votre programme se lance automatiquement au démarrage de la carte et rende la main - Attention : mettre le fichier Example_led dans /lcpc! pourquoi? 73

4 - Exécution et modification des programmes d'exemple Exercice 2 : Modifier le programme «Example_Gpio.c» - Repérer la configuration de la Callback pour le Bouton Poussoir 1 - Afficher l'état BP2 sur pooling dans la boucle principale (while 1) - Compléter le code de la callback InterruptOnBp1 pour allumer ou éteindre la Led 2 uniquement sur chaque appui du Bouton Poussoir - Bien comprendre la différence entre la configuration du BP1 (en mode interrupt : Port Flag) et celle du BP2 (en mode GPIO) - Bien comprendre que le pooling est inenvisageable : vérifier avec top - Eventuellement généraliser à BP2 => Résultat : première approche avec le fonctionnement évènementiel. On Appui sur Bouton Poussoir (Port Flag) => Allumer Led 74

4 - Exécution et modification des programmes d'exemple Exercice 3 : Modifier le programme «Example_Uart.c» - Repérer l'ouverture et la configuration du COM1 (/dev/ttybf1) = GPS - Dans le source, allumer le module GPS en écrivant sur la pinosh de Standbye en C: system("echo 1 > /dev/pg0") ; /* ou avec un objet CGPIO */ - Pourquoi la configuration de l'uart est à 4800 bauds? - Modifier la callback pour afficher le contenu de la trame reçue via un printf - Eventuellement ajouter une boucle infinie dans le main pour que le prg ne s'arrête pas => Résultat : deuxième approche avec le fonctionnement évènementiel. On Réception trame RS232 (GPS) => Affichage à l'écran 75

4 - Exécution et modification des programmes d'exemple Exercice 4 : Modifier le programme «Example_TcpIP_Client.c» - Sur une PEGASE lancer le «Example_TcpIP_Server» - Copier/coller Example_TcpIP_Client.c pour : Vous connecter au serveur ( IP : 192.168.5.100, Port : 4500) envoyer régulièrement (dans le main()) une chaine de caractère au serveur => Résultat : deuxième approche avec le fonctionnement évènementiel. On Réception trame TCP/IP => Affichage à l'écran 76

4 - Exécution et modification des programmes d'exemple Exercice 5 : Modifier le programme «Example_TcpIP_Server.c» - Regarder et comprendre le contenu de l'exemple TcpIP serveur - Customiser pour faire un prg utilisant les 2 callback : - Afficher l'arrivée nouveau client : IP et port du client connecté - Customiser la callback de réception des données en faisant allumer/éteindre la led 3 sur réception d'un mot clé «PEGASE» - Sur réception de «PEGASE» renvoyer une chaine «mot de passe ok» au client - Tester en vous connectant à votre programme sur PEGASE depuis votre PC sous Linux (ou depuis une autre PEGASE) : «telnet 192.168.0.xxx 1234» => Résultat : troisième approche avec le fonctionnement évènementiel. - On Réception données TCP/IP => Affichage à l'écran, traitement personnel - Plusieurs Callbacks dans une même classes => plusieurs évènements 77

4 - Exécution et modification des programmes d'exemple Exercice 5 : Modifier le programme «Example_TcpIP_Server.c» VLC => Zoom sur la portabilité du code source! Le même code compilé sur le PC Fonctionne aussi bien Si compatibilité matérielle => compatibilité logicielle Capitalisation! 78

4 - Exécution et modification des programmes d'exemple Exercice 6 : Modifier le programme «Example_CMax11046.c» Intervenant : Mathieu - Regarder et comprendre le contenu de l'exemple prévu pour la carte fille 8 voies Compiler l'application - Repérer le paramétrage de la callback : «OnCallback» - On y reviendra plus tard en détail lors des «applications Métier» - Allons voir ensemble l'appli CASC mulitvoie => Résultat : quatrième approche avec le fonctionnement évènementiel. On Réception données sur le port SPI => Appel de la fonction OnCallback 79

Partie 5 : Développement d'applications métier PARTIE 5 : Développement d' applications orientée métier 80

Partie 5 : Développement d'applications métier Application 1 : «Envoi TCP/IP/WiFi de données du capteur C2 d'advitam (Accéléro MEMS3D + PT100) vers un Superviseur en Labview» Intervenants : Vincent + Laurent + William Objectif : se mettre dans le bain de PEGASE Interfacer un accéléromètre 3D de type MEMS et une PT100 Mettre en œuvre une comm TCP/IP Développer une application 'complète' 81

Partie 5 : Développement d'applications métier Application 1 : «Envoi TCP/IP/WiFi de données d'un capteur (Accéléro MEMS-3D) vers un Superviseur en Labview» Travail (suite) : Compléter le squelette de fichier Lis3lv02dqTesteur.c fourni pour que l'application envoi au Superviseur Labview (fonctionnant sur un autre PC) les données d'accélération mesurée sur l'axe Z du MEMS3D. Toutes les 100 mesures de l'accélération sur Z, envoyer un paquet de 100 mesures séparées par des ',' soit le format suivant : char* buffer = 0,%d,%d, %d...valeur1, valeur2, valeur3... Faire que le programme se connecter à l'adresse/port indiqué par l'encadrant Repérer et utiliser l'objet assurant l'heure absolue CHeureAbsolue sur la carte PEGASE Envoyer au Superviseur, au même moment, une trame ASCII conteant l'heure absolue de la callback. Exemple : char* «il est %dh%dmn%ds%dµs, heure, min, sec, µsec...» 82

Partie 5 : Développement d'applications métier Application 1 : «Envoi TCP/IP/WiFi de données du capteur C2 d'advitam (Accéléro MEMS3D + PT100) vers un Superviseur en Labview» Conclusions collectives : Utilisation du client TCP/IP De la datation absolue! A qqs µs! Mise en oeuvre des CallBack Lien aisé avec le monde PC / Windows / Labview => Merci TCP/IP... 83

Partie 5 : Développement d'applications métier Application 2 : «Sensor GPS : envoi d'alarme SMS/GSM sur détection de déplacement GPS. Serveur TCP/WiFi». Mise en œuvre d'un automate d'état Objectif : plus que coder, appliquer une démarche : cycle en V (Cahier des Charges, Spécifications, Conception, Tests...) mettre en oeuvre le mécanisme de CallBack Appréhender la mise en réseau GSM de système PEGASE : envoi de SMS Utiliser le GPS comme capteur de déplacement Travail : réaliser le travail spécifié dans le doc fourni (TP3 du module ESEO-SEA3) Bien lire / comprendre le CDC Modéliser la solution par un automate d'état A partir du squelette de solution SensorGPS.c réaliser l'application Test final : envoi de SMS lors d'1 déplacement de la carte + log WiFi + 84

Partie 5 : Développement d'applications métier Application 3 : «Mise en œuvre des fonctions DSP de PEGASE : FFT, min/max/mean, etc.» Intervenant : MLP Objectif : avoir un aperçu des capacités orientées «traitement de signal» de la carte PEGASE / DSP BF537 Observer le Makefile : option «-lbfdsp» Travail : tester l'exemple puis modifier Example_DSP pour comprendre le fonctionnement de la lib DSP : modifier la fréquence de 50 à 75Hz de la FFT et vérifier le résultat. Jeter un œil sur LE livre décrivant la lib DSP => «C/C++ Compiler and Library Manual for Blackfin Processors» => «DSP RUN-TIME LIBRARY» (P.879) => Travail en matrice, complexe, statistiques... = DSP!!! 85

Partie 5 : Développement d'applications métier Application 4 : «Mise en oeuvre du watchdog sur PEGASE» Objectif: Se familiariser avec la mise en oeuvre d'un watchdog sur PEGASE = Sécurisation du fonctionnement opérationnel d'une appli. Travail : observer, vérifier et bien comprendre le fichier Example_Watchdog.c fourni dans la lib Pegase et observer le résultat sur la carte PEGASE Modifier le comportement de l'application pour, qu'en permanence, ce soit la boucle principale du programme qui reset le watchdog en permanence; ce reset est suspendu lors d'un appui sur BP1 et la carte reboot Vérifier dans tous les cas le bon redémarrage de la carte 86

Partie 5 : Développement d'applications métier Application 5 : «Utilisation de la librairie XML sur PEGASE» Intervenant : Laurent Lemarchand Objectif: se familiariser avec l'utilisation de fichiers XML sur PEGASE Travail : Observer le Makefile : importance de l'inclusion de 3 nouvelles librairies. Nota bene : les librairies XML sont inclues de base dans PEGASE V1.E Observer, comprendre le fichier XXX.c fourni Modifier le contenu du fichier XML et les faire apparaître dans le fichier principal : => Ajout de nouvelles BALISES XML root:/> Example_XML /configuration.xml LIEU... 87

Partie 5 : Développement d'applications métier Application 6 : «utiliser la carte fille 8 voies d'entrées analogiques : GBF en entrée + FFT + envoi TCP vers un serveur Labview» Intervenants : Vincent + Mathieu + William G. Objectif : utiliser et se familiariser avec la carte fille 8 voies de PEGASE. Mettre en œuvre une chaîne complète de fonctions se rapprochant d'applications de monitoring de terrain Voir le lien SIMPLE entre PEGASE et des système de type Labview Travail : à l'aide des exemples fournis et de librairie PEGASE, développer une application qui configure et démarre une acquisition à 1 khz sur 2 voies d'entrées d'analogiques de la carte fille 8 voies. Sur chaque buffer d'échantillons acquis faire la FFT, envoyer cette FFT au superviseur Labview en TCP/IP/WiFi 88

Partie 5 : Développement d'applications métier Application 7 : «Customiser le serveur web intégré sur PEGASE» Intervenant : William Martin Objectif : montrer comment et où il est possible de customiser le serveur web (boa) intégré sur PEGASE William fait une présentation au groupe de la démarche à suivre: Lieu dans la distrib : «.../pegase/uclinux-dist/user/pegase-web/» lien CGI / language C Présentation du travail réalisé pour SWN VLC : exemple du PEGASE-RTU et sa généralisation 89

Partie 5 : Développement d'applications métier Application 8 : «PEGASE et l'énergie : autonomie, CSolarManager, etc.» Objectif : comprendre comment PEGASE peut, le cas échéant, gérer une source d'énergie et un stockage Vincent fait une présentation : (cf le cours sur SmartGrid) sur les sources et les méthodes associées Sources d'énergie Méthodes d'optimisation matérielles : boost / buck-boost Logicielles : MPPT La solution retenue sur PEGASE et les travaux en cours 90

Partie 5 : Développement d'applications métier Application 9 : «Développer en C++ sur PEGASE» Intervenant : Vincent et Mathieu Objectif : comprendre que, sur la cible PEGASE, il est également possible de développe en langage C++ (et non en C objet) et donc de bénéficier de la force du C++ : encapsulation, héritage, polymorphisme, capitalisation... Vincent fait une présentation du petit exemple donné dans: pegase/uclinux-dist/user/pegase-test/cpp Ouvrir le code source et analyser 91

Partie 6 : debugage et cross debugage dynamique Cf. Cours et TP de William Martin 92

Partie 7 : Etude de VOS use-case Suggestions : Zoomer / discuter de l'appli CASC 'emblématique ' : mono et multivoies... Retenir le principe «producteur / consommateur» de data Utilisation de l'interface web qui se généralise Vers PEGASE2...... 93

Partie 7 : Etude de VOS use-case Vos USE-CASE??? 94