Webmaster & fondateur de CodePPC La référence francophone du développement WM. En ligne depuis...

32
Développer une application multimédia communicante pour Windows Mobile Sibué Stéphane Microsoft MVP / Fondateur de CodePP [email protected] www.codeppc.com

Transcript of Webmaster & fondateur de CodePPC La référence francophone du développement WM. En ligne depuis...

Page 1: Webmaster & fondateur de CodePPC La référence francophone du développement WM. En ligne depuis juin 2001. Des articles, des sources, des outils, des forums.

Développer une application multimédia communicante pour Windows MobileSibué Stéphane Microsoft MVP / Fondateur de [email protected]

Page 2: Webmaster & fondateur de CodePPC La référence francophone du développement WM. En ligne depuis juin 2001. Des articles, des sources, des outils, des forums.

Stéphane SibuéWebmaster & fondateur de CodePPCLa référence francophone du développement WM.En ligne depuis juin 2001.Des articles, des sources, des outils, des forums.Plus de 3000 visiteurs par jour (développeurs)www.codeppc.com

Auteur du Guide du Codeur Mobilité (Micro Application)Développement d’applications mobiles avec Visual Studio et le CF

Microsoft MVP depuis 2003Visual Developer - Device Application Developmenthttp://mvp.support.microsoft.com/

Page 3: Webmaster & fondateur de CodePPC La référence francophone du développement WM. En ligne depuis juin 2001. Des articles, des sources, des outils, des forums.

GeoAPNPermet de prendre des photos en utilisant l’APN intégré d’un Pocket PC sous Windows Mobile.

Chaque photo est géo localisée en utilisant la connexion avec un GPS.

Technologies utilisées :

• Compact Framework + SDK WM5 Pocket PC• Utilisation du contrôle liaison série pour la réception GPS• Prise de photos avec l’APN intégré• Capture de boutons matériels• Gestion de la mise en veille• Sérialisation XML

Page 4: Webmaster & fondateur de CodePPC La référence francophone du développement WM. En ligne depuis juin 2001. Des articles, des sources, des outils, des forums.

GeoPhotos

Permet de placer les photos géo localisées, prises avec GeoAPN sur une carte Virtual Earth.

Technologies utilisées:

•Sérialisation XML•Utilisation du WebBrowser•Communication entre l’application et le script du WebBrowser•Utilisation des services de Virtual Earth

Page 5: Webmaster & fondateur de CodePPC La référence francophone du développement WM. En ligne depuis juin 2001. Des articles, des sources, des outils, des forums.

Agenda

•Utilisation de l’APN intégré•Communication avec un GPS•Gestion de la mise en veille•Sérialisation XML•Capture de boutons matériels•Démo de GeoAPN

•Virtual Earth•Interactions entre .NET et JavaScript•Démo de GeoPhotos

Page 6: Webmaster & fondateur de CodePPC La référence francophone du développement WM. En ligne depuis juin 2001. Des articles, des sources, des outils, des forums.

Utilisation de l’APN intégréCette fonctionnalité est intéressante car : •La qualité des APN intégrés est grandissante,

•Depuis WM 5, l’APN intégré est géré par le système d’exploitation,

•Les SDK WM 5 et 6 proposent une classe permettant une utilisation simple de l’APN intégré:

Assembly : Microsoft.WindowsMobile.Forms.dllEspace de noms : Microsoft.WindowsMobile.FormsClasse : CameraCaptureDialog

Cette classe s’utilise comme une boîte de dialogue standard.

Lien utile : http://www.codeppc.com/dotnetcf2/albumphotos/index.htm

Page 7: Webmaster & fondateur de CodePPC La référence francophone du développement WM. En ligne depuis juin 2001. Des articles, des sources, des outils, des forums.

Agenda

•Utilisation de l’APN intégré•Communication avec un GPS•Gestion de la mise en veille•Sérialisation XML•Capture de boutons matériels•Démo de GeoAPN

•Virtual Earth•Interactions entre .NET et JavaScript•Démo de GeoPhotos

Page 8: Webmaster & fondateur de CodePPC La référence francophone du développement WM. En ligne depuis juin 2001. Des articles, des sources, des outils, des forums.

Communication avec un GPSGPS = Global Positioning Sytem

C’est un système de localisation terrestre.

La liaison entre le récepteur GPS et le Pocket PC peut être : • Filaire• Via Bluetooth• Via le port SDIO• Via le port Compact Flash• 100 % Interne

Page 9: Webmaster & fondateur de CodePPC La référence francophone du développement WM. En ligne depuis juin 2001. Des articles, des sources, des outils, des forums.

Communication avec un GPSLa communication s’effectue via une liaison série réelle ou virtuelle.

Protocole utilisé = NMEA (National Marine & Electronics Association)

Le GPS envoie périodiquement des informations sous la forme de trames.

Une trame = Une information typée :

$GPRMC,225446,A,4916.45,N,12311.12,W,000.5,054.7,191194,020.3,E*68

Page 10: Webmaster & fondateur de CodePPC La référence francophone du développement WM. En ligne depuis juin 2001. Des articles, des sources, des outils, des forums.

Communication avec un GPS$GPRMC,225446,A,4916.45,N,12311.12,W,000.5,054.7,191194,020.3,E*68

$GPRMC Identifiant de la trame (type)*68 Somme de contrôleLe reste Les informations de la trame

Très important !!!

Les données numériques en provenance du GPS sont toujours notées avec le point comme séparateur décimal !

Attention donc aux conversions String -> Numérique

Trame RMC :Données minimales recommandées de spécification GPS

Page 11: Webmaster & fondateur de CodePPC La référence francophone du développement WM. En ligne depuis juin 2001. Des articles, des sources, des outils, des forums.

Communication avec un GPSInformations fournies par la trame de type $GPRMC :

$GPRMC Type de trame225446 Heure du fixA Alerte (A=OK ; V=WARNING)4916.45 Latitude au format ddmm.ssN Sens de la latitude (N=Nord=Positif, S=Sud=Négatif)12311.12 Longitude au format dddmm.ssW Sens de la longitude (E=Est=Positif, W=Ouest=Négatif)000.5 Vitesse au sol en nœuds054.7 Cap vrai191194 Date du fix020.3 Déclinaison magnétiqueE Sens de la déclinaison magnétique *68 Somme de contrôle

Liens utiles sur le GPS et le NMEA :http://www.gpspassion.comhttp://ditwww.epfl.ch/SIC/SA/publications/FI98/fi-5-98/5-98-page1.html

Page 12: Webmaster & fondateur de CodePPC La référence francophone du développement WM. En ligne depuis juin 2001. Des articles, des sources, des outils, des forums.

Communication avec un GPSLe récepteur GPS utilise une liaison série pour

communiquer.

Il faut donc utiliser les fonctions de gestion des ports série pour communiquer avec un récepteur GPS.

Le Compact Framework, depuis la version 2, propose le contrôle SerialPort

Espace de noms : System.IO.PortsContrôle : SerialPort

Lien utile : http://www.codeppc.com/dotnetcf2/gps/index.htm

Page 13: Webmaster & fondateur de CodePPC La référence francophone du développement WM. En ligne depuis juin 2001. Des articles, des sources, des outils, des forums.

Agenda

•Utilisation de la caméra embarquée des Pocket PC•Communication avec un GPS•Gestion de la mise en veille•Capture de boutons matériels•Sérialisation XML•Démo de GeoAPN

•Virtual Earth•Interactions entre .NET et JavaScript•Démo de GeoPhotos

Page 14: Webmaster & fondateur de CodePPC La référence francophone du développement WM. En ligne depuis juin 2001. Des articles, des sources, des outils, des forums.

Gestion de la mise en veilleLors d’une communication série, la mise en veille peut se déclencher à tout moment.

Pour assurer une communication de qualité, il faut refuser la mise en veille automatique en appelant à intervalle régulier l’API SystemIdleTimerReset

Déclaration VB.NET :

Declare Sub SystemIdleTimerReset Lib "coredll" ()

Déclaration C# :

[DllImport("coredll.dll")]static extern void SystemIdleTimerReset();

Page 15: Webmaster & fondateur de CodePPC La référence francophone du développement WM. En ligne depuis juin 2001. Des articles, des sources, des outils, des forums.

Agenda

•Utilisation de l’APN intégré•Communication avec un GPS•Gestion de la mise en veille•Capture de boutons matériels•Sérialisation XML•Démo de GeoAPN

•Virtual Earth•Interactions entre .NET et JavaScript•Démo de GeoPhotos

Page 16: Webmaster & fondateur de CodePPC La référence francophone du développement WM. En ligne depuis juin 2001. Des articles, des sources, des outils, des forums.

Capture de boutons matérielsLes Pocket PC possèdent des boutons matériels.

Généralement liés à des applications spécialisées :• Agenda• Contacts• Appareil photo intégré

Pour rendre l’expérience utilisateur meilleure, il est recommandé d’utiliser le bouton « photo » pour lancer les opérations de prise de photos depuis vos propres applications.

Page 17: Webmaster & fondateur de CodePPC La référence francophone du développement WM. En ligne depuis juin 2001. Des articles, des sources, des outils, des forums.

Capture de boutons matérielsIl faut lier le bouton à une fenêtre de l’application = Capturer

Le CF, depuis la v2, intègre un contrôle spécialisé qui permet de capturer un bouton matériel :

Assembly : Microsoft.WindowsCE.dllEspace de noms : Microsoft.WindowsCEContrôle : HardwareButton

Un événement KeyDown est généré lorsque le bouton matériel est utilisé.

Le code de touche de l’événement est celui du bouton capturé.

Page 18: Webmaster & fondateur de CodePPC La référence francophone du développement WM. En ligne depuis juin 2001. Des articles, des sources, des outils, des forums.

Agenda

•Utilisation de l’APN intégré•Communication avec un GPS•Gestion de la mise en veille•Capture de boutons matériels•Sérialisation XML•Démo de GeoAPN

•Virtual Earth•Interactions entre .NET et JavaScript•Démo de GeoPhotos

Page 19: Webmaster & fondateur de CodePPC La référence francophone du développement WM. En ligne depuis juin 2001. Des articles, des sources, des outils, des forums.

Sérialisation XMLPermet de sauvegarder et de restaurer un objet en écrivant les données qui le composent sous la forme d’un flux XML.

Existe dans le Framework .NET depuis le début.

Existe dans le Compact Framework .NET que depuis la version 2.

Espace de noms : System.Xml.Serialization

Page 20: Webmaster & fondateur de CodePPC La référence francophone du développement WM. En ligne depuis juin 2001. Des articles, des sources, des outils, des forums.

Sérialisation XMLDans GeoAPN, les informations de géo localisation de chaque photo sont stockées dans un fichier XML créé par la sérialisation d’un objet dont les propriétés publiques sont les suivantes :

•Date•Url (ex : IMAG0003.jpg)•Longitude•Latitude•Commentaire

•Lien utile : http://www.codeppc.com/dotnetcf2/serialization/index.htm

Page 21: Webmaster & fondateur de CodePPC La référence francophone du développement WM. En ligne depuis juin 2001. Des articles, des sources, des outils, des forums.

GeoAPN

Démo

Page 22: Webmaster & fondateur de CodePPC La référence francophone du développement WM. En ligne depuis juin 2001. Des articles, des sources, des outils, des forums.

Agenda

•Utilisation de l’APN intégré•Communication avec un GPS•Sérialisation XML•Capture de boutons matériels•Gestion de la mise en veille•Démo de GeoAPN

•Virtual Earth•Interactions entre .NET et JavaScript•Démo de GeoPhotos

Page 23: Webmaster & fondateur de CodePPC La référence francophone du développement WM. En ligne depuis juin 2001. Des articles, des sources, des outils, des forums.

Virtual Earth

Virtual Earth est le service de cartographie en ligne de Microsoft.

Propose une vue en 2D ou en 3D avec affichage des routes, des reliefs, etc…

http://maps.live.com/

Un SDK est disponible permettant d’utiliser les services de Virtual Earth directement dans des pages HTML en JavaScript :

http://windowslivelab.com/virtualearth/sdk/

Page 24: Webmaster & fondateur de CodePPC La référence francophone du développement WM. En ligne depuis juin 2001. Des articles, des sources, des outils, des forums.

Agenda

•Utilisation de l’APN intégré•Communication avec un GPS•Sérialisation XML•Capture de boutons matériels•Gestion de la mise en veille•Démo de GeoAPN

•Virtual Earth•Interactions entre .NET et JavaScript•Démo de GeoPhotos

Page 25: Webmaster & fondateur de CodePPC La référence francophone du développement WM. En ligne depuis juin 2001. Des articles, des sources, des outils, des forums.

Interactions .NET / JavaScriptPour utiliser les services de Virtual Earth depuis une application WinForm il faut :

• Un contrôle WebBrowser• Un script JavaScript pour utiliser Virtual Earth

Page 26: Webmaster & fondateur de CodePPC La référence francophone du développement WM. En ligne depuis juin 2001. Des articles, des sources, des outils, des forums.

Interactions .NET / JavaScriptLa liaison entre une WinForm et le script se fait grâce au contrôle WebBrowser hébergeant le script. Pour rendre cette liaison possible il faut :

1/ Rendre la WinForm visible par COM = Attributs particuliers :

System.Runtime.InteropServices.ComVisibleAttribute(True)

2/ Lier le Script et la WinForm = Référencer la WinForm

WebBrowser.ObjectForScripting = WinForm

3/ Initialiser quelques propriétés du WebBrowser :

AllowWebBrowserDrop = FalseIsWebBrowserContextMenuEnabled = FalseWebBrowserShortcutsEnabled = False

Page 27: Webmaster & fondateur de CodePPC La référence francophone du développement WM. En ligne depuis juin 2001. Des articles, des sources, des outils, des forums.

Interactions .NET / JavaScriptDepuis le script :

L’application est accessible via l’objet window.external :

function MapClick(e) { window.external.NewLoc(e.mapX ,e.mapY);}

Depuis l’application WinForm :

Il est possible d’invoquer des méthodes du script via la méthode Document.InvokeScript du WebBrowser :

WebBrowser.Document.InvokeScript("méthode", arguments())

Page 28: Webmaster & fondateur de CodePPC La référence francophone du développement WM. En ligne depuis juin 2001. Des articles, des sources, des outils, des forums.

GeoPhotos

Démo

Page 29: Webmaster & fondateur de CodePPC La référence francophone du développement WM. En ligne depuis juin 2001. Des articles, des sources, des outils, des forums.

VIGEOPROSURVEILLANCE, LOCALISATION ET SUIVI DE BIENS SENSIBLES

DREAMAP SAS Développement de solutions de géolocalisation : conception de Balises Gsm/Gps petites & autonomes, et Plateformes ASP ou embarquées.

The information contained in this document relates to prerelease software product which may be substantially modified before its first commercial release. Accordingly, the information may not accurately describe or reflect the software product when first commercially released. This document is provided for informational purposes only and Microsoft makes no warranties, express or implied, with respect to this document or the information contained in it.

www.dreamap.com

VIGEOPRO

Pour surveiller, localiser et suivre vos biens sensibles, il suffit de placer sans installation une balise VigeoPRO à proximité et de les suivre via Internet ou avec votre smarphone Gps sous WM, en affichant les positions sur Virtual Earth.

TECHNOLOGIES• MICROSOFT : .NET 2.0, SQL SERVER, VISUAL STUDIO 2008, ASP.NET; WM5.0 CF2, WM6.0, Virtual Earth• DREAMAP : VIGEODREAM (ASP, WAP, IMODE) et MOBIDREAM (EMBARQUEE)• BALISE VIGEOPRO : Gsm/Gps, autonome…

Page 30: Webmaster & fondateur de CodePPC La référence francophone du développement WM. En ligne depuis juin 2001. Des articles, des sources, des outils, des forums.

Vous avez des questions ?

Gestion de l’APN :

http://www.codeppc.com/dotnetcf2/albumphotos/index.htm

Fonctionnement du GPS et les trames NMEA :

http://www.gpspassion.comhttp://ditwww.epfl.ch/SIC/SA/publications/FI98/fi-5-98/5-98-page1.html

Utilisation d’un GPS dans un programme :

http://www.codeppc.com/dotnetcf2/gps/index.htm

Sérialisation XML :

http://www.codeppc.com/dotnetcf2/serialization/index.htm

Page 31: Webmaster & fondateur de CodePPC La référence francophone du développement WM. En ligne depuis juin 2001. Des articles, des sources, des outils, des forums.

La référence technique

pour les IT Pros :technet.microsoft.com

L’engagement Microsoft pour les

développeurs :msdn.microsoft.com

S’informer - Un portail d’informations, des événements, une newsletter bimensuelle personnalisée

Se former - Des webcasts, des articles techniques, des téléchargements, des forums pour échanger avec vos pairs

Bénéficier de services - Des cursus de formations et de certifications, des offres de support technique

Visual Studio 2008 +

Abonnement MSDN Premium

Abonnement TechNet Plus :

Versions d’éval + 2 incidents support

Page 32: Webmaster & fondateur de CodePPC La référence francophone du développement WM. En ligne depuis juin 2001. Des articles, des sources, des outils, des forums.

© 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.

The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after

the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Votre potentiel, notre passion TM