IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Mobile .NET Discussion :

récupérer les coordonnées GPS du PDA


Sujet :

Windows Mobile .NET

  1. #1
    Membre actif

    Inscrit en
    Décembre 2005
    Messages
    260
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 260
    Points : 208
    Points
    208
    Par défaut récupérer les coordonnées GPS du PDA
    bonjour
    j'ai un pda avec gps intégré.et comment je peux récupérer les coordonnées GPS dans un programme c# merci

  2. #2
    Membre du Club
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2003
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 41
    Points : 55
    Points
    55
    Par défaut
    Bonjour zerocoolyoussef,

    Tu peux ouvrir un port ("COM4:" par exemple) et simplement lire le contenu comme ceci à intervalle régulier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Try
      sData = oSerialPort.ReadExisting
    Catch ex As Exception
      sData = Nothing
    End Try
    Désolé, mon exemple est en VB.Net mais il est facile à convertir.

    Tu peux aussi utiliser les events pour lire le port si tu préfères (en fait ca va dépendre pourquoi c'est faire et dans quelles conditions ton programme va fonctionner).

    @+ CkurcK.

  3. #3
    Membre actif

    Inscrit en
    Décembre 2005
    Messages
    260
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 260
    Points : 208
    Points
    208
    Par défaut
    merci ckurck pour ta réponse.
    Mais tu peux me détailler le code avec plus d'explication(ouverture de port,classes utilisés.....)
    merci

  4. #4
    Membre du Club
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2003
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 41
    Points : 55
    Points
    55
    Par défaut
    Alors pour les classes utilisées :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Imports System.IO.Ports
    Pour l'instanciation de l'objet port :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim oSerialPort As New System.IO.Ports.SerialPort
    Pour l'ouverture du port :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    If Not oSerialPort.IsOpen Then
      Try
        oSerialPort.Open()
      Catch ex As Exception
      End Try
    End If
    Et bien sur pour la fermeture :

    EDIT :
    J'oubliai, pour instantier ton port et le paramètrer en même temps :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     oSerialPort = New System.IO.Ports.SerialPort(sPortName, iBaudRate)
    Ou bien entendu sPortName est le nom de ton port ("COM0:", "COM4:", etc...) et iBaudRate la valeur en Bauds de la transmision (4800,9600,115200, etc...).

  5. #5
    Membre actif

    Inscrit en
    Décembre 2005
    Messages
    260
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 260
    Points : 208
    Points
    208
    Par défaut
    merci pour ta patience.Je vais abuser un petit peu
    je suis débutant dans le devellopment mobile. . est ce que juste le faite d'ouvrir un port me permettra de collecter les coordonnées GPS ou quoi?

  6. #6
    Membre du Club
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2003
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 41
    Points : 55
    Points
    55
    Par défaut
    Pas de problèmes ...
    Je sais comme c'est pénible de ne pas savoir pourquoi ça ne marche pas alors que tout devrai marcher !

    En fait cela va dépendre de ton appareil ...

    Avec ton Pocket PC avec antenne intégré il te faudra faire une pause plus ou moins importante avant de lire sur le GPS, sinon celui-ci n'aura pas le temps de se caller sur les satellites. L'idéal dans ton cas est donc d'ouvrir le port GPS dès que tu sais que tu va en avoir besoin (au lancement du programme éventuellement) et de le fermer lorsque tu es sur de ne plus en avoir besoin. Sinon si tu ouvres et fermes le port à chaque fois, tu n'auras que des trames invalides ! Ce problème ne se pose pas si tu utilises une antenne déportée (filaire ou Bluetooth) ni même si tu utilises un port virtuel.
    Mais qu'est ce qu'un port virtuel ? Haha ! C'est spécial
    Un port virtuel est comme son nom l'indique un faux port qui reprend les données du vrai port ...

    Je sais, ca peu paraitre stupide, mais en fait c'est génial !
    Tu sais que tu ne peux ouvrir un port matériel qu'une seul fois (enfin tu peux l'ouvrir et le fermer tant que tu veux, mais par une seule application en même temps). Donc le port virtuel ouvre le port GPS une seule fois et t'ouvre un ou plusieurs ports sur lesquels sont dupliquées les données afin que tu puisses venir lire avec autant de programme que tu veux .
    Je sais que ça peu paraitre magique, mais ce n'est que de l'informatique

    A présent tu vas donc pouvoir déterminer si oui ou non tu veux utiliser un port virtuel ... sous Windows Mobile 6, il y a un port virtuel (un seul) qui est crée automatiquement et qui semble fonctionné plutôt pas bien (un seul programme à la fois, donc pas d'utilité ...). Sous WM5, il n'y en a pas (enfin pas dans le WM de base, certains constructeurs ont intégré leurs propre port virtuel).
    Personnellement dans les deux cas j'utilise un soft externe, tu as le choix entre Port Splitter http://www.gpsmeter.com/index.php?page=downloads et GPS Gate http://franson.com/gpsgate/ . Il y en a peut être d'autre ...
    Port Splitter à l'avantage d'être gratuit mais GPS Gate n'est pas très cher et est beaucoup plus poussé (avec notamment la possibilité de recréé le port après un reset).

    Voilà, je crois avoir fait le tour, mais n'hésites pas à me dire si il y a encore quelque chose qui n'est pas clair dans mes explications.

    @+ CkurcK

  7. #7
    Membre du Club
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2003
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 41
    Points : 55
    Points
    55
    Par défaut Le forum retire les espaces du code ... et c'est pénible !
    Ah oui ! J'oubliai !!!

    Pour être complet voici comment tu peux utiliser directement les évenements du port GPS (mais attention, du port réel car les ports virtuels ne génèrent pas d'evenements).

    Tu déclares ton port avec le paramètre WithEvents
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim WithEvents oSerialPort As New System.IO.Ports.SerialPort(sPortName, iBaudRate)
    Ce qui te permet dans Visual Studio d'avoir accès à l'évenement DataReceived que tu remplis avec ta tentative de lecture :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub oSerialPort_DataReceived(ByVal sender As Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles oSerialPort.DataReceived
    Dim sData As String = Nothing
    Try
      sData = CType(sender, SerialPort).ReadLine
    Catch ex As Exception
      sData = Nothing
    EndTry
    ' Ici continu ton code avec ce que tu souhaites faire ...
    End Sub
    Voilà, avec ces informations tu as de quoi nous faire une belle appli GPS

  8. #8
    Membre actif

    Inscrit en
    Décembre 2005
    Messages
    260
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 260
    Points : 208
    Points
    208
    Par défaut
    merci pour tes explication
    svp c'est quoi le nom du port GPS et iBaudRate je dit ca pour connaitre la valeur des paramètre à mettre pour instancier serialPort
    Dim WithEvents oSerialPort As New System.IO.Ports.SerialPort(sPortName, iBaudRate)

  9. #9
    Membre actif

    Inscrit en
    Décembre 2005
    Messages
    260
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 260
    Points : 208
    Points
    208
    Par défaut
    oui d'accord je crois que selon ma configuration systeme j'ai le port GPS associé à com4 et 9600 ibaud je vous tient au courant

  10. #10
    Membre du Club
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2003
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 41
    Points : 55
    Points
    55
    Par défaut
    Super !

    N'oublis pas de cliquer sur le bouton si tu estimes que tout est bon !

    @+ CkurcK

  11. #11
    Membre actif
    Inscrit en
    Juillet 2007
    Messages
    357
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 357
    Points : 280
    Points
    280
    Par défaut
    salut,

    J ai realise une appli qui utilise le gps et la methode ci dessous ne fonctionnait pas dans mon cas.

    Il semble que tu soi obliger d utiliser un wrapper vers gpsapi.dll.

    Microsoft fourni un exemple complet dans les code-exemple ci dessous :

    http://www.microsoft.com/mspress/companion/9780735623583/

    Regarde dans le repertoire chapitre14/gps.

    Bonne chance

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Récupérer les coordonnées gps
    Par amset2014 dans le forum Langage
    Réponses: 0
    Dernier message: 25/02/2015, 14h05
  2. récupérer les coordonnées GPS d'un PDA
    Par ibrahimCA dans le forum Windows Mobile
    Réponses: 2
    Dernier message: 26/03/2013, 10h52
  3. Comment récupérer les coordonnées sur le bureau d'une form ?
    Par fma2112 dans le forum API, COM et SDKs
    Réponses: 2
    Dernier message: 22/02/2006, 23h43
  4. récupérer les coordonnées d'un rectangle
    Par robocop2776 dans le forum MFC
    Réponses: 3
    Dernier message: 01/11/2005, 19h31
  5. [GRAPHIQUE] Récupérer les coordonnées d'un point
    Par freud dans le forum Composants VCL
    Réponses: 6
    Dernier message: 29/09/2005, 12h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo