From 6a605be73b9829696dd52c398467ecb124be8a9d Mon Sep 17 00:00:00 2001 From: mikeller Date: Sun, 13 May 2018 01:56:36 +1200 Subject: [PATCH] Enabled bidirectional communication with NMEA GPS for all targets. --- src/main/io/gps.c | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/src/main/io/gps.c b/src/main/io/gps.c index 93011459f..db02428c5 100644 --- a/src/main/io/gps.c +++ b/src/main/io/gps.c @@ -279,10 +279,10 @@ void gpsInit(void) } portMode_e mode = MODE_RXTX; - // only RX is needed for NMEA-style GPS -#if !defined(COLIBRI_RACE) || !defined(LUX_RACE) - if (gpsConfig()->provider == GPS_NMEA) +#if defined(GPS_NMEA_TX_ONLY) + if (gpsConfig()->provider == GPS_NMEA) { mode &= ~MODE_TX; + } #endif // no callback - buffer will be consumed in gpsUpdate() @@ -299,15 +299,16 @@ void gpsInit(void) #ifdef USE_GPS_NMEA void gpsInitNmea(void) { -#if defined(COLIBRI_RACE) || defined(LUX_RACE) +#if !defined(GPS_NMEA_TX_ONLY) uint32_t now; #endif switch (gpsData.state) { case GPS_INITIALIZING: -#if defined(COLIBRI_RACE) || defined(LUX_RACE) +#if !defined(GPS_NMEA_TX_ONLY) now = millis(); - if (now - gpsData.state_ts < 1000) + if (now - gpsData.state_ts < 1000) { return; + } gpsData.state_ts = now; if (gpsData.state_position < 1) { serialSetBaudRate(gpsPort, 4800); @@ -323,10 +324,11 @@ void gpsInitNmea(void) break; #endif case GPS_CHANGE_BAUD: -#if defined(COLIBRI_RACE) || defined(LUX_RACE) +#if !defined(GPS_NMEA_TX_ONLY) now = millis(); - if (now - gpsData.state_ts < 1000) + if (now - gpsData.state_ts < 1000) { return; + } gpsData.state_ts = now; if (gpsData.state_position < 1) { serialSetBaudRate(gpsPort, baudRates[gpsInitData[gpsData.baudrateIndex].baudrateIndex]); @@ -334,14 +336,13 @@ void gpsInitNmea(void) } else if (gpsData.state_position < 2) { serialPrint(gpsPort, "$PSRF103,00,6,00,0*23\r\n"); gpsData.state_position++; - } else { + } else #else - serialSetBaudRate(gpsPort, baudRates[gpsInitData[gpsData.baudrateIndex].baudrateIndex]); -#endif - gpsSetState(GPS_RECEIVING_DATA); -#if defined(COLIBRI_RACE) || defined(LUX_RACE) + { + serialSetBaudRate(gpsPort, baudRates[gpsInitData[gpsData.baudrateIndex].baudrateIndex]); } #endif + gpsSetState(GPS_RECEIVING_DATA); break; } }