Visual Basic Forum

Visual Basic Forum
für VB6 und VB.NET Programmierer
 
RegistrierenRegistrieren  LoginLogin

Neues Thema eröffnen   Neue Antwort erstellen    Visual Basic Forum Foren-Übersicht -> [VB6] Fragen - Antworten
Autor
Nachricht
haiflosse
Newbie
Newbie

Anmeldedatum: 23.03.2010
Beiträge: 15

nmea Daten berechnen
Verfasst am: 28.06.2010, 20:51

Ich habe es geschafft aus zwei Längengraden und Breitengraden eine Distanz und die Zeit zu berechnen.
Wenn ich aber das gesamte nmea File berechne komme ich auf unrealistische Werte.
Die nmea Datei befindest sich unter http://haiflosse.lima-city.de/nmea.txt.
Mein VB Code für die Berechnung der Distanz und Zeit sieht wie folgt aus:



Code:
Open datei For Input As #2
    Do While Not EOF(2)
        Line Input #2, Data
       
        'prüfen ob beginn erreicht ist
        If Left(Data, 8) = "$Version" Then
            i = 1
        End If
       
       
        If Left(Data, 6) = "$GPRMC" Then
           i = i + 1
           datum2 = datum1
           uhrzeit2 = uhrzeit1
           breite2 = breite1
           laenge2 = laenge1
           
           datum1 = MakeStringToDate(wert(9, Data))
           uhrzeit1 = MakeStringTotime(wert(1, Data))
           breite1 = wert(3, Data)
           laenge1 = wert(5, Data)
           
           'Prüfen ob bereits nächstes Datum ist
           If datum2 <> datum1 Then y = y + 1
           
       If breite1 > 0 Then breite1 = Left(breite1, 2) + CDbl(Mid(breite1, 3, 2) & "," & Mid(breite1, 5)) / 60
            If laenge1 > 0 Then laenge1 = Left(laenge1, 2) + CDbl(Mid(laenge1, 3, 2) & "," & Mid(laenge1, 5)) / 60
           
           If i > 2 And (breite1 <> breite2 Or laenge1 <> laenge2) Then

            kilometer(y) = kilometer(y) + distanz(breite2, laenge2, breite1, laenge1)
           
            zeit(y) = zeit(y) + DateDiff("s", uhrzeit2, uhrzeit1)
            datum(y) = datum1
           
           End If
   
           
        End If
       
    Loop
    Close #2
    tage = y + 1
    x = 0
    Do While x < tage
        Debug.Print kilometer(x)
        Debug.Print CDate(zeit(x) / 86400) 'stunden
        Debug.Print datum(x)
        Debug.Print "-------------"
        x = x + 1
   
    Loop



Mit meinem Code komme ich auf folgendes Ergebnis:


41,831044 (Kilometer)
00:09:30 (Zeit)
18.06.2010 (Datum)

Laut der Software GPSonic (http://www.nsonic.de) bekomme ich folgendes Ergebnis:
7,98 km
00:10:57 (Zeit)

Hoffe da kann mir jemand weiterhelfen, was ich da falsch mache, bzw. wo da der Fehler liegen könnte.

Vielen Dank für jede Antwort
_________________
 
Neues Thema eröffnen   Neue Antwort erstellen    Visual Basic Forum Foren-Übersicht -> [VB6] Fragen - Antworten

Tags: nmea, berechnung

 
 Verwandte Themen   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge [suche] Tuturials winsock & daten senden 868 09.06.2011, 12:19
Keine neuen Beiträge [Video] *.dll & *.ocx Installer 2431 06.03.2008, 20:19
Keine neuen Beiträge ListView speichern & laden 1242 05.08.2008, 12:32
Keine neuen Beiträge Registry & Co Fragen 1101 03.05.2007, 09:57
Keine neuen Beiträge Listbox speichern & laden 2047 22.03.2007, 20:25
 



[ Time: 0.1259s ][ Queries: 81 (0.0211s) ][ GZIP on - Debug on ]