Jc/md/lp-01/06Applications1 Émulateur. jc/md/lp-01/06Applications2 Objectif du chapitre...

Post on 03-Apr-2015

104 views 0 download

Tags:

Transcript of Jc/md/lp-01/06Applications1 Émulateur. jc/md/lp-01/06Applications2 Objectif du chapitre...

jc/md/lp-01/06 Applications 1

Applications

Émulateur

jc/md/lp-01/06 Applications 2

Objectif du chapitre

• Génération d’applications– WCE Console Application– WCE Application

• Téléchargement des applications• Test des applications

jc/md/lp-01/06 Applications 3

Génération d’une application

• Le but n’est pas de faire un système nu, mais bien d’exécuter une ou plusieurs applications supportées par un noyau installé dans la cible

• Platform Builder dispose des outils pour créer des applications, avec plusieurs stratégies possibles

• Il faut ensuite transférer dans la cible le noyau et les applications préparés puis déclencher leur exécution

jc/md/lp-01/06 Applications 4

Génération application méthode #1

• Préparation d’un noyau et d’une application .exe ou d’une dll comme on le ferait avec un système de développement classique

• Association du noyau et des applications par Build Platform et dans une image par Make Image

• Téléchargement (Download) dans la cible• Déclenchement dans la cible par la commande

Exécuter, habituelle sous Windows ou à partir de Platform Builder par Run Program

jc/md/lp-01/06 Applications 5

Génération (build) : méthode #1

Application Noyau

Noyau & Application

Image

Mémoire

Build

Téléchargement

jc/md/lp-01/06 Applications 6

Génération application méthode #2

• Construction d’un noyau par Build Platform• Préparation d’un exécutable .exe ou d’une dll

sous l’outil de développement • Association du noyau et des applications dans

une image par Make Image• Téléchargement (Download) dans la cible• Déclenchement depuis la cible par la commande

« Exécuter » habituelle sous Windows ou à partir de Platform Builder par Run Program

jc/md/lp-01/06 Applications 7

Génération (build) : méthode #2

Applicationou driver

Noyau

Noyau & Application

Image

Mémoire

Make Image

Téléchargement

Applicationou driver Noyau

Build.exe .dll

BuildPlatform

jc/md/lp-01/06 Applications 8

Génération application méthode #3

• Construction d’un noyau par Build Platform• Préparation d’un exécutable .exe ou d’une dll

comme on le ferait avec un système de développement classique

• Téléchargement du noyau dans la cible• Téléchargement dans la cible de l’application

par la commande Run Program

jc/md/lp-01/06 Applications 9

Génération (build) : méthode #3

Application Noyau

Image noyau

Mémoire

Run Program

Téléchargement

Application Noyau

Build.exe

BuildPlatform

Applicationcible

jc/md/lp-01/06 Applications 10

Applications

• Création de 2 applications– WCE Console Application– WCE Application

• Ces applications ne seront pas incluses dans le noyau, mais seront téléchargées indépendamment du noyau

• Ces applications feront uniquement de l’impression de texte

jc/md/lp-01/06 Applications 11

Ouverture d’une plate-forme disponible

• Plate-forme disponible par opposition à création d’une plate-forme

• Par la page d’accueil, au centre– Choix d’une plate-forme proposée– Bouton « Open Workspace » puis sélection

• Par l’entrée « File » du menu principal– Sous-menu « Open Workspace »– Sous-menu « Recent Workspaces »

• Double click sur un nom de fichier avec un suffixe .pwb

jc/md/lp-01/06 Applications 12

Ouverture plate-forme proposée

jc/md/lp-01/06 Applications 13

Bouton « Open Workspace »

jc/md/lp-01/06 Applications 14

Projet CONSOLE_APP

• Appel de l’assistant• Renseignement des options• Choix du nom du projet• Choix des options de génération• Écriture du code source dans le fichier préparé• Génération de l’application• Téléchargement dans la cible• Exécution de l’application• Fin de l’exécution

jc/md/lp-01/06 Applications 15

File→New Project or File

jc/md/lp-01/06 Applications 16

Choix : WCE Console Application

Renseigner ce champ

jc/md/lp-01/06 Applications 17

Choix : A simple Windows CE…

jc/md/lp-01/06 Applications 18

Application CONSOLE_APP

Ouverture par double click

jc/md/lp-01/06 Applications 19

Fichier initial CONSOLE_APP.cpp

jc/md/lp-01/06 Applications 20

Platform→Settings

jc/md/lp-01/06 Applications 21

Build, but exclude from image

jc/md/lp-01/06 Applications 22

Programme CONSOLE_APP.cpp

#include "stdafx.h"#include <stdio.h>

int main(int argc, char *argv[], char *envp[]){

printf("Appuyez sur 'Entrée' pour continuer\n");getchar(); //attente d’un caractère quelconque

printf("Appuyez sur 'Entrée' pour terminer\n");getchar(); //attente d’un caractère quelconque return 0;

}

jc/md/lp-01/06 Applications 23

Génération de l’application

jc/md/lp-01/06 Applications 24

Exécution de l’application• Configurer la cible

Target→Configure Remote Connection• Charger le noyau

Target→Download/Initialize• Charger et lancer l’application

Target→Run Program

→CONSOLE_APP.exe

→OK• Fermer l’émulateur et la connexion

jc/md/lp-01/06 Applications 25

Chargement du noyau

jc/md/lp-01/06 Applications 26

Fenêtre cible en attente

jc/md/lp-01/06 Applications 27

Commande de chargement

jc/md/lp-01/06 Applications 28

Sélection du programme

jc/md/lp-01/06 Applications 29

Exécution après « Entrée »

jc/md/lp-01/06 Applications 30

Fermeture de la cible par l’icône

jc/md/lp-01/06 Applications 31

Déconnexion de l’émulateur

jc/md/lp-01/06 Applications 32

Fin de session d’émulation

• On arrive directement à la fenêtre de confirmation par l’icône adéquate de la barre des tâches

• Approuver la demande de confirmation• Le système est prêt pour une nouvelle émulation• Un message complémentaire pourra apparaître

dans certains cas voisins

jc/md/lp-01/06 Applications 33

Projet WCE_APP

• La démarche est la même que pour le projet CONSOLE_APP

• Appel de l’assistant, choix des options, du nom• Écriture du code• Génération• Téléchargement• Essai• Fin de la session

jc/md/lp-01/06 Applications 34

Création d’une WCE Application

jc/md/lp-01/06 Applications 35

A simple Windows CE application

jc/md/lp-01/06 Applications 36

Code proposé

jc/md/lp-01/06 Applications 37

Messages

• Pour afficher des messages en mode « WCE application » on utilise la fonction MessageBox qui crée une fenêtre et affiche un message

• On dispose du bouton « OK » pour fermer la fenêtre

• Les arguments permettent de donner un nom à la fenêtre, l’adresse du message

• La fonction retourne une valeur numérique qui caractérise la réponse de l’utilisateur

jc/md/lp-01/06 Applications 38

Fonction MessageBox

int MessageBox(  HWND hWnd,     LPCTSTR lpText,     LPCTSTR lpCaption,     UINT uType );

ParametershWnd : [in] Handle to the owner window of the message box to be created. If

this parameter is NULL, the message box has no owner window.

lpText : [in] Pointer to a null-terminated string that contains the message to be displayed.

lpCaption : [in] Pointer to a null-terminated string that contains the dialog box title. If this parameter is NULL, the default title Error is used.

uType : [in] Specifies the contents and behavior of the dialog box. This parameter can be a combination of flags from the following groups of flags, etc.

Return ValuesL’entier retourné informe sur le comportement.

michel
Nombreux ajouts et détails de mise en forme

jc/md/lp-01/06 Applications 39

WCE_APP.cpp

#include "stdafx.h"#include <windows.h>

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow){ MessageBox(NULL,_T("clicker sur 'OK' pour continuer"),

_T("WCE_app"),MB_OK| MB_ICONINFORMATION);

MessageBox(NULL,_T("clicker sur 'OK' pour terminer") , _T("WCE_app"),MB_OK|

MB_ICONINFORMATION);return 0;

}

jc/md/lp-01/06 Applications 40

Option de génération de la cible

jc/md/lp-01/06 Applications 41

Génération de WCE_APP.exe

jc/md/lp-01/06 Applications 42

Exécution de l’application• Configurer la cible

Target→Configure Remote Connection• Charger le noyau

Target→Download/Initialize• Charger et lancer l’application

Target→Run Program

→WCE_APP.exe

→OK• Fermer l’émulateur et la connexion

jc/md/lp-01/06 Applications 43

Première fenêtre observée

jc/md/lp-01/06 Applications 44

Seconde fenêtre observée

jc/md/lp-01/06 Applications 45

Fin de session

• Même résultat que dans la fin de l’exemple CONSOLE_APP, mais cette fois on utilise les icônes

• Fermeture de la fenêtre cible par l’icône standard sous Windows et acceptation de la confirmation

• Déconnexion de l’émulateur par l’icône de la barre d’outils « Target » de Platform Builder et acceptation de la confirmation 

jc/md/lp-01/06 Applications 46

Fermeture fenêtre par l’icône

jc/md/lp-01/06 Applications 47

Déconnexion de session par l’icône

jc/md/lp-01/06 Applications 48

Conclusion

• Premiers exemples de réalisations d’applications simples sous Windows CE