Index: bncgetthread.cpp =================================================================== --- bncgetthread.cpp (revision 8910) +++ bncgetthread.cpp (working copy) @@ -722,6 +722,9 @@ _query->startRequest(_mountPoint, _manualNMEAString); _lastManualNMEA = QDateTime::currentDateTime(); } else if (_serialNMEA == AUTO_NMEA) { + // Reset here as GGA might fail at restart + _ggatime.restart(); + _validgga = false; if (_serialPort) { int nb = _serialPort->bytesAvailable(); if (nb > 0) { @@ -985,7 +988,18 @@ int i2 = data.indexOf("*", i1); if (i2 != -1 && data.size() > i2 + 1) { QByteArray gga = data.mid(i1, i2 - i1 + 3); - _query->sendNMEA(gga); + // 1 Min interval if valid GGA with lon/lat + if (!_validgga || _ggatime.elapsed() > 1000 * 60* 1) { + _ggatime.restart(); + // Simple lengthcheck for lon/lat + if (std::string(gga.data()).size() > 49) { + _validgga = true; + _query->sendNMEA(gga); + } + else { + _validgga = false; + } + } } } } Index: bncgetthread.h =================================================================== --- bncgetthread.h (revision 8910) +++ bncgetthread.h (working copy) @@ -143,6 +143,8 @@ QList* _nmeaSockets; QMap _nmeaPortsMap; QTcpServer* _nmeaServer; + QTime _ggatime; + bool _validgga; }; #endif