Skip to content

Commit 3655448

Browse files
authored
Merge pull request #66 from lesamouraipourpre/rmc
Update RMC parsing to handle the extra parameter in NMEA 4.1
2 parents d9a0793 + ccc0e46 commit 3655448

File tree

2 files changed

+7
-4
lines changed

2 files changed

+7
-4
lines changed

adafruit_gps.py

+6-3
Original file line numberDiff line numberDiff line change
@@ -44,8 +44,9 @@
4444
_GSV11 = 6
4545
_GSV15 = 7
4646
_GSV19 = 8
47+
_RMC_4_1 = 9
4748
_ST_MIN = _GLL
48-
_ST_MAX = _GSV19
49+
_ST_MAX = _RMC_4_1
4950

5051
_SENTENCE_PARAMS = (
5152
# 0 - _GLL
@@ -66,6 +67,8 @@
6667
"iiiiiiIiiiIiiiI",
6768
# 8 - _GSV19
6869
"iiiiiiIiiiIiiiIiiiI",
70+
# 9 - _RMC_4_1
71+
"fcdcdcffiDCCC",
6972
)
7073

7174

@@ -439,9 +442,9 @@ def _parse_gll(self, data):
439442
def _parse_rmc(self, data):
440443
# RMC - Recommended Minimum Navigation Information
441444

442-
if data is None or len(data) != 12:
445+
if data is None or len(data) not in (12, 13):
443446
return False # Unexpected number of params.
444-
data = _parse_data(_RMC, data)
447+
data = _parse_data({12: _RMC, 13: _RMC_4_1}[len(data)], data)
445448
if data is None:
446449
return False # Params didn't parse
447450

examples/gps_simpletest.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -96,4 +96,4 @@
9696
if gps.horizontal_dilution is not None:
9797
print("Horizontal dilution: {}".format(gps.horizontal_dilution))
9898
if gps.height_geoid is not None:
99-
print("Height geo ID: {} meters".format(gps.height_geoid))
99+
print("Height geoid: {} meters".format(gps.height_geoid))

0 commit comments

Comments
 (0)