www.mikrocontroller.net

Forum: PC-Programmierung GPS Prüfsumme berechnen ?!


Autor: hhbk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Servus,

ich habe mal eine Frage kann es leider nirgends finden.

Wie genau berechnet man die GPS Prüfsumme ?
Ich weiss das sie als XOR vom $ bis zum * berechnet wird, aber nicht
genau wie...

ich muss in ANSI C ne funktion schreiben die die Prüsummer berechnet,
sprich mir fehlt nur das was hinterm * steht das muss ich berechnen
weiss nur nicht wie :-(

kann mir das einer mal mit beispiel erklären, oder gibts das irgendwo
schon beschrieben ? wäre super danke

Autor: T.Stütz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also eine kurze Suche im Inet per Google
ergibt also folgende genauere definition der Checksumme:

<The optional checksum field consists of a "*" and two hex digits
 representing the exclusive OR of all characters between, but not
 including, the "$" and "*".>

kurz danach hab ich den folgenden Sourcecode gefunden

' Calculates the checksum for a sentence
Public Function GetChecksum(ByVal sentence As String) As String

  ' Loop through all chars to get a checksum
  Dim Character As Char
  Dim Checksum As Integer

  For Each Character In sentence
   Select Case Character
    Case "$"c
     ' Ignore the dollar sign
    Case "*"c
     ' Stop processing before the asterisk
     Exit For
    Case Else
     ' Is this the first value for the checksum?
     If Checksum = 0 Then
      ' Yes. Set the checksum to the value
      Checksum = Convert.ToByte(Character)
     Else
      ' No. XOR the checksum with this character's value
      Checksum = Checksum Xor Convert.ToByte(Character)
     End If
   End Select
  Next
  ' Return the checksum formatted as a two-character hexadecimal
  Return Checksum.ToString("X2")
 End Function

siehe auch:

http://www.codeguru.com/vb/gen/vb_system/win32/art...

Hilft dir das ?

Gruss

Beitrag #2325848 wurde von einem Moderator gelöscht.
Beitrag #2325893 wurde von einem Moderator gelöscht.
Beitrag #2325907 wurde vom Autor gelöscht.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.