fix: proper fallback for datetime display if no NMEA string has been received yet
This commit is contained in:
parent
78a9dfb99a
commit
913ecf3f3f
1 changed files with 13 additions and 7 deletions
20
src/main.cpp
20
src/main.cpp
|
@ -352,13 +352,18 @@ void printLocation() {
|
|||
void printDateTime() {
|
||||
char dateTime[17];
|
||||
char speedCourse[17];
|
||||
snprintf(dateTime, 17, "%.2s.%.2s.%.2s %.2s:%.2sz",
|
||||
rmc.date, rmc.date+2, rmc.date+4,
|
||||
rmc.time, rmc.time+2);
|
||||
uint16_t kph = (strtol(rmc.speed, NULL, 10) * 463) / 250;
|
||||
uint16_t hdg = strtol(rmc.course, NULL, 10);
|
||||
snprintf(speedCourse, 17, "% 3d km/h% 6d \xdf",
|
||||
kph, hdg);
|
||||
if (rmc.date[0] != 0) {
|
||||
snprintf(dateTime, 17, "%.2s.%.2s.%.2s %.2s:%.2sz",
|
||||
rmc.date, rmc.date+2, rmc.date+4,
|
||||
rmc.time, rmc.time+2);
|
||||
uint16_t kph = (strtol(rmc.speed, NULL, 10) * 463) / 250;
|
||||
uint16_t hdg = strtol(rmc.course, NULL, 10);
|
||||
snprintf(speedCourse, 17, "% 3d km/h% 6d \xdf",
|
||||
kph, hdg);
|
||||
} else {
|
||||
snprintf(dateTime, 17, "??.??.?? ??:??z");
|
||||
snprintf(speedCourse, 17, "??? km/h ??? \xdf");
|
||||
}
|
||||
|
||||
lcd.setCursor(0, 0);
|
||||
lcd.print(dateTime);
|
||||
|
@ -682,6 +687,7 @@ void setup() {
|
|||
attachInterrupt(digitalPinToInterrupt(3), isrAbc, FALLING);
|
||||
lcd.init();
|
||||
lcd.noDisplay();
|
||||
lcd.noBacklight();
|
||||
setPressed = false;
|
||||
abcPressed = false;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue