From 968e95344c82b84ce529d8ee53212fb3b411d8f0 Mon Sep 17 00:00:00 2001 From: Rick Sellens Date: Tue, 16 Apr 2019 12:49:05 -0400 Subject: [PATCH] Revert "parse checksum to *" This reverts commit 0f867b508a8d5c4ac89c3a902275b8407c76d39a. --- Adafruit_GPS.cpp | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/Adafruit_GPS.cpp b/Adafruit_GPS.cpp index 0535d57..20a167b 100755 --- a/Adafruit_GPS.cpp +++ b/Adafruit_GPS.cpp @@ -55,14 +55,13 @@ boolean Adafruit_GPS::parse(char *nmea) { // do checksum check // first look if we even have one - char *ast = strchr(nmea,'*'); - if (ast != NULL) { - uint16_t sum = parseHex(*(ast+1)) * 16; - sum += parseHex(*(ast+2)); + if (nmea[strlen(nmea)-4] == '*') { + uint16_t sum = parseHex(nmea[strlen(nmea)-3]) * 16; + sum += parseHex(nmea[strlen(nmea)-2]); // check checksum - for (char *p = nmea+2; p < ast; p++) { - sum ^= *p; + for (uint8_t i=2; i < (strlen(nmea)-4); i++) { + sum ^= nmea[i]; } if (sum != 0) { // bad checksum :(