Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revision Both sides next revision
sdk:gps-udp-client-gnsstogps [2019/07/09 13:49]
fachet
sdk:gps-udp-client-gnsstogps [2019/11/28 11:10]
fachet
Line 1: Line 1:
 +====== Background ======
 +GPS was the first Global Navigation Satellite System (GNSS) and the termt GPS is often used as a synonym for GNSS.
 +
 +Because of this older software only check for NMEA 0183 sentences starting with <​nowiki>"​$GP"</​nowiki>​ (= GPS only) instead of looking for the different GNSS systems (e.g. <​nowiki>"​$GPRMC..."</​nowiki>​). ​
 +Unfortunately with newer GNSS receiver often multiple GNSS systems are used and therefore <​nowiki>"​$GN"</​nowiki>​ is used (<​nowiki>"​$GNRMC..."</​nowiki>​).
 +It would be better to us instead of <​nowiki>"​$GPRMC"</​nowiki>​ either <​nowiki>"​$G.RMC"</​nowiki>​ ("​."​ = anychar) for using GPS, Galileo and/or GLONASS (GNSS) or even <​nowiki>"​$..RMC"</​nowiki>​ which means any source.
 +
 +<​nowiki>"​$"</​nowiki>​ = Start 
 +"​XX"​ = Source device (https://​de.wikipedia.org/​wiki/​NMEA_0183#​Ger%C3%A4te-IDs)
 + BD = Beidu
 + GA = Galileo
 + GL = GLONASS
 + GP = GPS
 + GN = GNSS(multiple sources e.g. GPS "​GP",​ Galileo "​GA"​ and Glonass "​GL"​)  ​
 +"​YYY"​ = Record
 + RMC = Recommended Minimum Sentence C 
 + GGA = Global Positioning System Fix Data
 + GNS = GNSS fixed data
 + GLL = Geographic Position - Latitude/​Longitude
 +
 ====== SDK Script gps-udp-client-GNSStoGPS.are ====== ====== SDK Script gps-udp-client-GNSStoGPS.are ======
 <code c gps-udp-client-gnsstogps.are>​ <code c gps-udp-client-gnsstogps.are>​
Line 70: Line 90:
  chars = explode(s);  chars = explode(s);
         for (i = 1; i < pos; i++) { /* skip $ and *XX */          for (i = 1; i < pos; i++) { /* skip $ and *XX */ 
-     ​printf("​ %s ", chars[i]);​ +     c = ord(chars[i]);​
-            ​c = ord(chars[i]);​+
             cs ^= c;             cs ^= c;
         }         }
Line 144: Line 163:
  a_arr = explode(data);​  a_arr = explode(data);​
  a_arr[2] = "​P";​  a_arr[2] = "​P";​
- data = implode(a_arr);​+ data = checksum(implode(a_arr));
  }  }
  /* skip all messages different from GPGGA   /* skip all messages different from GPGGA