Lecture nmea sur pda

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

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.