firmware: expose GPS NMEA diagnostics
This commit is contained in:
@@ -6,6 +6,9 @@ namespace { TinyGPSPlus parser; }
|
||||
void initGps(HardwareSerial& serial) { serial.begin(GPS_BAUD, SERIAL_8N1, GPS_RX_PIN, GPS_TX_PIN); }
|
||||
void updateGps(HardwareSerial& serial, GpsState& s) {
|
||||
while (serial.available()) { s.lastByteMs = millis(); parser.encode(serial.read()); }
|
||||
s.charactersProcessed = parser.charsProcessed();
|
||||
s.sentencesPassed = parser.passedChecksum();
|
||||
s.sentencesFailed = parser.failedChecksum();
|
||||
s.online = s.lastByteMs && millis() - s.lastByteMs <= SENSOR_STALE_MS;
|
||||
s.fix = parser.location.isValid() && parser.location.age() <= SENSOR_STALE_MS;
|
||||
s.satellites = parser.satellites.isValid() ? parser.satellites.value() : 0;
|
||||
@@ -16,4 +19,3 @@ void updateGps(HardwareSerial& serial, GpsState& s) {
|
||||
if (parser.date.isValid()) { s.year = parser.date.year(); s.month = parser.date.month(); s.day = parser.date.day(); }
|
||||
if (parser.time.isValid()) { s.hour = parser.time.hour(); s.minute = parser.time.minute(); s.second = parser.time.second(); }
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user