Lecture nmea sur pda

Soyez le premier à donner votre avis sur cette source.

Vue 12 957 fois - Téléchargée 1 026 fois

Description

Bonjour,
Voila un petit programme fait entre mes heures de repos au boulot sous VB 2005 pour lire les trames NMEA d'un GPS sur un PDA. Le port série utilisé est le COM6 (il est très facile de le changer, je regarderais plus tard pour gérer la configuration du port série). Il ne lit que 3 types de trame (GPGGA, GPVTG et GPRMC qui sont les principales utilisées en général).
Soyez indulgent c'est le premier code que je pose sur le site et c'est un des premiers que j'ai developpé.
Il tourne sur windows CE 5.0.
Merci de me laisser des commentaires (constructifs) si vous avez des remarques.

Source / Exemple :


Public Class Form1
    Dim end_trame As Boolean
    Dim trame(100) As Byte
    Dim i, j As Byte
    Dim no_trame1, no_trame2, no_trame3 As Byte

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        If Button1.Text = "COM OFF" Then
            Button1.Text = "COM ON"
            SerialPort1.Open()
            Timer1.Enabled = True
        Else
            Button1.Text = "COM OFF"
            SerialPort1.Close()
            Timer1.Enabled = False
        End If
    End Sub

    Private Sub Timer1_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        If end_trame = True Then
            end_trame = False
            If CheckBox1.Checked = True Then
                no_trame1 = 1
                If trame(4) = 71 Then
                    If trame(5) = 65 Then
                        While trame(j) <> 10
                            j = j + 1
                            TextBox1.Text = TextBox1.Text & Chr(trame(j))
                        End While
                        j = 0
                    End If
                End If
            Else
                no_trame1 = 0
            End If
            If CheckBox2.Checked = True Then
                no_trame2 = 1
                If trame(4) = 77 Then
                    If trame(5) = 67 Then
                        While trame(j) <> 10
                            j = j + 1
                            TextBox1.Text = TextBox1.Text & Chr(trame(j))
                        End While
                        j = 0
                    End If
                End If
            Else
                no_trame2 = 0
            End If
            If CheckBox3.Checked = True Then
                no_trame3 = 1
                If trame(4) = 84 Then
                    If trame(5) = 71 Then
                        While trame(j) <> 10
                            j = j + 1
                            TextBox1.Text = TextBox1.Text & Chr(trame(j))
                        End While
                        j = 0
                    End If
                End If
            Else
                no_trame3 = 0
            End If
            If (no_trame1 = 0 & no_trame2 = 0 & no_trame3 = 0) Then
                TextBox1.Text = "PAS DE TRAME SELECTIONNEE" & Chr(13) & Chr(10)
            End If
        End If
    End Sub

    Private Sub SerialPort1_DataReceived(ByVal sender As System.Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived
        trame(i) = SerialPort1.ReadByte
        If trame(i) = 10 Then
            end_trame = True
            i = 0
        Else
            i = i + 1
        End If
    End Sub

    Private Sub Form1_Load_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        SerialPort1.Close()
    End Sub
End Class

Codes Sources

A voir également

Ajouter un commentaire Commentaires
lhoua94
Messages postés
13
Date d'inscription
mardi 17 avril 2007
Statut
Membre
Dernière intervention
2 mai 2007

25 avril 2007 à 09:49
bonjour je voulais savoir comment créer un fichier .MSI ou .CAB pour l'installé sur un PDA?

voila mon code c'est juste une petite application :


Public Class Form1

PrivateSub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Label.Text = TXT_texte.Text



EndSub
<MTAThread()> _

Public

SharedSub Main()

' Run a standard application message loop on the current thread.
Application.Run(

New Form1())

EndSub
End Class

Merci d'avance
lhoua94
Messages postés
13
Date d'inscription
mardi 17 avril 2007
Statut
Membre
Dernière intervention
2 mai 2007

25 avril 2007 à 09:47
bonjour je voulais savoir comment créer un fichier .MSI ou .CAB pour l'installé sur un PDA?

voila mon code c'est juste une petite application :


Public Class Form1

PrivateSub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Label.Text = TXT_texte.Text



EndSub
<MTAThread()> _

Public

SharedSub Main()

' Run a standard application message loop on the current thread.
Application.Run(

New Form1())

EndSub
End Class

Merci d'avance
Bobdesbois
Messages postés
11
Date d'inscription
mercredi 4 juin 2003
Statut
Membre
Dernière intervention
10 octobre 2008

20 mars 2007 à 09:07
Bonjour Doudoup,
Avant tout j'utilise visual basic de l'edition visual studio 2005 alors je ne sais pas comment ca marche avec d'autres editions. Alors il faut un objet qui ce trouve dans composants de l'appareil qui s'appelle SerialPort (lorsque tu es en mode creation ou concepteur de vue). Une fois cet objet ajouté il te faut choisir le port com qui correspond a celui que ton PDA utilise pour le GPS.
Voila si ce n'est pas tres clair n'hesite pas a relaisser un message.
Doudoup
Messages postés
3
Date d'inscription
vendredi 16 mars 2007
Statut
Membre
Dernière intervention
19 mars 2007

19 mars 2007 à 15:39
Bonjour,
j'ai à lire éelemnt des trames GPS et j'essaye d'utiliser ton programme qui me va très bien. Par contre je ne suis pas un champion de VB et je ne vois pas où et comment on déclare serialport1. Qu'est ce que c'est comme type d'objet ? Y a-t-il une référence d'objet à utiliser ?
Quand je l'utilise j'ai une erreur de compilation "objet requis"
Si tu peux m'aider. Merci beaucoup.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.