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:23]
fachet
Line 1: Line 1:
 +====== Background ======
 +GPS was the first Global Navigation Satellite System (GNSS) and the term GPS is often used as a synonym for GNSS.
 +
 +Older software often only checks for NMEA 0183 sentences starting with <​nowiki>"​$GP"</​nowiki>​ (= GPS only) instead of looking for  all GNSS systems.
 +
 +Newer GNSS receivers often use multiple GNSS systems and therefore <​nowiki>"​$GN"</​nowiki>​ is used (<​nowiki>"​$GNRMC..."</​nowiki>​) if it recives a combination of GPS, Galileo and GLONASS signals.
 +
 +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.
 +
 +<​code>​
 +NMEA 0183 sentence "​$XXYYY..."​ explanation:​
 +
 +"​$"​ = 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 GNSS sources)  ​
 +"​YYY"​ = Record
 + RMC = Recommended Minimum Sentence C (used in most cases)
 + GGA = Global Positioning System Fix Data
 + GNS = GNSS fixed data
 + GLL = Geographic Position - Latitude/​Longitude
 + ...
 +
 +Source: https://​de.wikipedia.org/​wiki/​NMEA_0183
 +</​code>​
 +
 ====== 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 99:
  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 172:
  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