II 17 2009

Výpočet kontrolního součtu GPRMC zprávy

Pro výpočet kontrolního součtu standardní zprávy pro přenos GPS dat, a to NMEA - GPRMC zprávy, lze využít následující kód, který ze zprávy kontrolní součet spočítá a vrátí:

   1: /// <summary>
   2: /// Spocita kontrolni soucet GPRMC zpravy
   3: /// </summary>
   4: /// <param name="sentence">GPRMC zprava.</param>
   5: /// <returns>kontrolni soucet</returns>
   6: string getChecksum(string sentence) 
   7: {
   8:     //zjisti pocatek zpravy
   9:     int checksum = Convert.ToByte(sentence[sentence.IndexOf('$') + 1]);
  10:  
  11:     // projde postupne vsechny znaky a napocitava kontrolni soucet
  12:     for (int i = sentence.IndexOf('$') + 2 ; i < sentence.IndexOf('*') ; i++){
  13:         // soucet napocitava pomoci operace XOR
  14:         checksum ^= Convert.ToByte(sentence[i]);                
  15:     }
  16:  
  17:     // vrati napocitany kontrolni soucet nasormatovany jako 2 hexa znaky
  18:     return checksum.ToString("X2");
  19: }