diff options
-rw-r--r-- | src/location/qlocationutils.cpp | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/location/qlocationutils.cpp b/src/location/qlocationutils.cpp index 04801d80..d4766058 100644 --- a/src/location/qlocationutils.cpp +++ b/src/location/qlocationutils.cpp @@ -294,9 +294,10 @@ bool QLocationUtils::hasValidNmeaChecksum(const char *data, int size) return ::strncmp(calc, &data[asteriskIndex+1], 2) == 0; */ - QString s; - s.sprintf("%02x", result); - return (s.toLatin1() == QByteArray(&data[asteriskIndex + 1], 2)); + QByteArray checkSumBytes(&data[asteriskIndex + 1], 2); + bool ok = false; + int checksum = checkSumBytes.toInt(&ok,16); + return ok && checksum == result; } bool QLocationUtils::getNmeaTime(const QByteArray &bytes, QTime *time) |