This shows you the differences between two versions of the page.
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:52] fachet |
sdk:gps-udp-client-gnsstogps [2019/11/28 11:26] 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 position fix from more than one constellation (eg. GPS + GLONASS) | ||
+ | "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; | ||
} | } |