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
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
Bonjour zerocoolyoussef,
Tu peux ouvrir un port ("COM4:" par exemple) et simplement lire le contenu comme ceci à intervalle régulier :
Désolé, mon exemple est en VB.Net mais il est facile à convertir.
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
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.
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
Alors pour les classes utilisées :
Pour l'instanciation de l'objet port :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Imports System.IO.Ports
Pour l'ouverture du port :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Dim oSerialPort As New System.IO.Ports.SerialPort
Et bien sur pour la fermeture :
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
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 oSerialPort.Close()
EDIT :
J'oubliai, pour instantier ton port et le paramètrer en même temps :
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...).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 oSerialPort = New System.IO.Ports.SerialPort(sPortName, iBaudRate)
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?
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
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
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 Dim WithEvents oSerialPort As New System.IO.Ports.SerialPort(sPortName, iBaudRate)
Voilà, avec ces informations tu as de quoi nous faire une belle appli GPS
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![]()
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)
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
Super !
N'oublis pas de cliquer sur le boutonsi tu estimes que tout est bon !
@+ CkurcK![]()
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
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager