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

48
jc/md/lp-01/06 Applications 1 Applications Émulateur

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

Page 1: Jc/md/lp-01/06Applications1 Émulateur. jc/md/lp-01/06Applications2 Objectif du chapitre Génération dapplications –WCE Console Application –WCE Application.

jc/md/lp-01/06 Applications 1

Applications

Émulateur

Page 2: Jc/md/lp-01/06Applications1 Émulateur. jc/md/lp-01/06Applications2 Objectif du chapitre Génération dapplications –WCE Console Application –WCE Application.

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

Page 3: Jc/md/lp-01/06Applications1 Émulateur. jc/md/lp-01/06Applications2 Objectif du chapitre Génération dapplications –WCE Console Application –WCE Application.

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

Page 4: Jc/md/lp-01/06Applications1 Émulateur. jc/md/lp-01/06Applications2 Objectif du chapitre Génération dapplications –WCE Console Application –WCE Application.

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

Page 5: Jc/md/lp-01/06Applications1 Émulateur. jc/md/lp-01/06Applications2 Objectif du chapitre Génération dapplications –WCE Console Application –WCE Application.

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

Page 6: Jc/md/lp-01/06Applications1 Émulateur. jc/md/lp-01/06Applications2 Objectif du chapitre Génération dapplications –WCE Console Application –WCE Application.

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

Page 7: Jc/md/lp-01/06Applications1 Émulateur. jc/md/lp-01/06Applications2 Objectif du chapitre Génération dapplications –WCE Console Application –WCE Application.

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

Page 8: Jc/md/lp-01/06Applications1 Émulateur. jc/md/lp-01/06Applications2 Objectif du chapitre Génération dapplications –WCE Console Application –WCE Application.

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

Page 9: Jc/md/lp-01/06Applications1 Émulateur. jc/md/lp-01/06Applications2 Objectif du chapitre Génération dapplications –WCE Console Application –WCE Application.

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

Page 10: Jc/md/lp-01/06Applications1 Émulateur. jc/md/lp-01/06Applications2 Objectif du chapitre Génération dapplications –WCE Console Application –WCE Application.

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

Page 11: Jc/md/lp-01/06Applications1 Émulateur. jc/md/lp-01/06Applications2 Objectif du chapitre Génération dapplications –WCE Console Application –WCE Application.

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

Page 12: Jc/md/lp-01/06Applications1 Émulateur. jc/md/lp-01/06Applications2 Objectif du chapitre Génération dapplications –WCE Console Application –WCE Application.

jc/md/lp-01/06 Applications 12

Ouverture plate-forme proposée

Page 13: Jc/md/lp-01/06Applications1 Émulateur. jc/md/lp-01/06Applications2 Objectif du chapitre Génération dapplications –WCE Console Application –WCE Application.

jc/md/lp-01/06 Applications 13

Bouton « Open Workspace »

Page 14: Jc/md/lp-01/06Applications1 Émulateur. jc/md/lp-01/06Applications2 Objectif du chapitre Génération dapplications –WCE Console Application –WCE Application.

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

Page 15: Jc/md/lp-01/06Applications1 Émulateur. jc/md/lp-01/06Applications2 Objectif du chapitre Génération dapplications –WCE Console Application –WCE Application.

jc/md/lp-01/06 Applications 15

File→New Project or File

Page 16: Jc/md/lp-01/06Applications1 Émulateur. jc/md/lp-01/06Applications2 Objectif du chapitre Génération dapplications –WCE Console Application –WCE Application.

jc/md/lp-01/06 Applications 16

Choix : WCE Console Application

Renseigner ce champ

Page 17: Jc/md/lp-01/06Applications1 Émulateur. jc/md/lp-01/06Applications2 Objectif du chapitre Génération dapplications –WCE Console Application –WCE Application.

jc/md/lp-01/06 Applications 17

Choix : A simple Windows CE…

Page 18: Jc/md/lp-01/06Applications1 Émulateur. jc/md/lp-01/06Applications2 Objectif du chapitre Génération dapplications –WCE Console Application –WCE Application.

jc/md/lp-01/06 Applications 18

Application CONSOLE_APP

Ouverture par double click

Page 19: Jc/md/lp-01/06Applications1 Émulateur. jc/md/lp-01/06Applications2 Objectif du chapitre Génération dapplications –WCE Console Application –WCE Application.

jc/md/lp-01/06 Applications 19

Fichier initial CONSOLE_APP.cpp

Page 20: Jc/md/lp-01/06Applications1 Émulateur. jc/md/lp-01/06Applications2 Objectif du chapitre Génération dapplications –WCE Console Application –WCE Application.

jc/md/lp-01/06 Applications 20

Platform→Settings

Page 21: Jc/md/lp-01/06Applications1 Émulateur. jc/md/lp-01/06Applications2 Objectif du chapitre Génération dapplications –WCE Console Application –WCE Application.

jc/md/lp-01/06 Applications 21

Build, but exclude from image

Page 22: Jc/md/lp-01/06Applications1 Émulateur. jc/md/lp-01/06Applications2 Objectif du chapitre Génération dapplications –WCE Console Application –WCE Application.

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;

}

Page 23: Jc/md/lp-01/06Applications1 Émulateur. jc/md/lp-01/06Applications2 Objectif du chapitre Génération dapplications –WCE Console Application –WCE Application.

jc/md/lp-01/06 Applications 23

Génération de l’application

Page 24: Jc/md/lp-01/06Applications1 Émulateur. jc/md/lp-01/06Applications2 Objectif du chapitre Génération dapplications –WCE Console Application –WCE 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

Page 25: Jc/md/lp-01/06Applications1 Émulateur. jc/md/lp-01/06Applications2 Objectif du chapitre Génération dapplications –WCE Console Application –WCE Application.

jc/md/lp-01/06 Applications 25

Chargement du noyau

Page 26: Jc/md/lp-01/06Applications1 Émulateur. jc/md/lp-01/06Applications2 Objectif du chapitre Génération dapplications –WCE Console Application –WCE Application.

jc/md/lp-01/06 Applications 26

Fenêtre cible en attente

Page 27: Jc/md/lp-01/06Applications1 Émulateur. jc/md/lp-01/06Applications2 Objectif du chapitre Génération dapplications –WCE Console Application –WCE Application.

jc/md/lp-01/06 Applications 27

Commande de chargement

Page 28: Jc/md/lp-01/06Applications1 Émulateur. jc/md/lp-01/06Applications2 Objectif du chapitre Génération dapplications –WCE Console Application –WCE Application.

jc/md/lp-01/06 Applications 28

Sélection du programme

Page 29: Jc/md/lp-01/06Applications1 Émulateur. jc/md/lp-01/06Applications2 Objectif du chapitre Génération dapplications –WCE Console Application –WCE Application.

jc/md/lp-01/06 Applications 29

Exécution après « Entrée »

Page 30: Jc/md/lp-01/06Applications1 Émulateur. jc/md/lp-01/06Applications2 Objectif du chapitre Génération dapplications –WCE Console Application –WCE Application.

jc/md/lp-01/06 Applications 30

Fermeture de la cible par l’icône

Page 31: Jc/md/lp-01/06Applications1 Émulateur. jc/md/lp-01/06Applications2 Objectif du chapitre Génération dapplications –WCE Console Application –WCE Application.

jc/md/lp-01/06 Applications 31

Déconnexion de l’émulateur

Page 32: Jc/md/lp-01/06Applications1 Émulateur. jc/md/lp-01/06Applications2 Objectif du chapitre Génération dapplications –WCE Console Application –WCE Application.

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

Page 33: Jc/md/lp-01/06Applications1 Émulateur. jc/md/lp-01/06Applications2 Objectif du chapitre Génération dapplications –WCE Console Application –WCE Application.

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

Page 34: Jc/md/lp-01/06Applications1 Émulateur. jc/md/lp-01/06Applications2 Objectif du chapitre Génération dapplications –WCE Console Application –WCE Application.

jc/md/lp-01/06 Applications 34

Création d’une WCE Application

Page 35: Jc/md/lp-01/06Applications1 Émulateur. jc/md/lp-01/06Applications2 Objectif du chapitre Génération dapplications –WCE Console Application –WCE Application.

jc/md/lp-01/06 Applications 35

A simple Windows CE application

Page 36: Jc/md/lp-01/06Applications1 Émulateur. jc/md/lp-01/06Applications2 Objectif du chapitre Génération dapplications –WCE Console Application –WCE Application.

jc/md/lp-01/06 Applications 36

Code proposé

Page 37: Jc/md/lp-01/06Applications1 Émulateur. jc/md/lp-01/06Applications2 Objectif du chapitre Génération dapplications –WCE Console Application –WCE Application.

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

Page 38: Jc/md/lp-01/06Applications1 Émulateur. jc/md/lp-01/06Applications2 Objectif du chapitre Génération dapplications –WCE Console Application –WCE Application.

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
Page 39: Jc/md/lp-01/06Applications1 Émulateur. jc/md/lp-01/06Applications2 Objectif du chapitre Génération dapplications –WCE Console Application –WCE Application.

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;

}

Page 40: Jc/md/lp-01/06Applications1 Émulateur. jc/md/lp-01/06Applications2 Objectif du chapitre Génération dapplications –WCE Console Application –WCE Application.

jc/md/lp-01/06 Applications 40

Option de génération de la cible

Page 41: Jc/md/lp-01/06Applications1 Émulateur. jc/md/lp-01/06Applications2 Objectif du chapitre Génération dapplications –WCE Console Application –WCE Application.

jc/md/lp-01/06 Applications 41

Génération de WCE_APP.exe

Page 42: Jc/md/lp-01/06Applications1 Émulateur. jc/md/lp-01/06Applications2 Objectif du chapitre Génération dapplications –WCE Console Application –WCE Application.

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

Page 43: Jc/md/lp-01/06Applications1 Émulateur. jc/md/lp-01/06Applications2 Objectif du chapitre Génération dapplications –WCE Console Application –WCE Application.

jc/md/lp-01/06 Applications 43

Première fenêtre observée

Page 44: Jc/md/lp-01/06Applications1 Émulateur. jc/md/lp-01/06Applications2 Objectif du chapitre Génération dapplications –WCE Console Application –WCE Application.

jc/md/lp-01/06 Applications 44

Seconde fenêtre observée

Page 45: Jc/md/lp-01/06Applications1 Émulateur. jc/md/lp-01/06Applications2 Objectif du chapitre Génération dapplications –WCE Console Application –WCE Application.

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 

Page 46: Jc/md/lp-01/06Applications1 Émulateur. jc/md/lp-01/06Applications2 Objectif du chapitre Génération dapplications –WCE Console Application –WCE Application.

jc/md/lp-01/06 Applications 46

Fermeture fenêtre par l’icône

Page 47: Jc/md/lp-01/06Applications1 Émulateur. jc/md/lp-01/06Applications2 Objectif du chapitre Génération dapplications –WCE Console Application –WCE Application.

jc/md/lp-01/06 Applications 47

Déconnexion de session par l’icône

Page 48: Jc/md/lp-01/06Applications1 Émulateur. jc/md/lp-01/06Applications2 Objectif du chapitre Génération dapplications –WCE Console Application –WCE Application.

jc/md/lp-01/06 Applications 48

Conclusion

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