Développer une application multimédia communicante pour Windows MobileSibué Stéphane Microsoft MVP / Fondateur de [email protected]
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/
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
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
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
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
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
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
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
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
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
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
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
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();
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
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.
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é.
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
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
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
GeoAPN
Démo
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
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/
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
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
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
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())
GeoPhotos
Démo
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…
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
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
© 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
Top Related