@@ -229,6 +229,8 @@ bool GNSS_LG290P::configureOnce()
229229
230230 // We do not set Rover or fix rate here because fix rate only applies in rover mode.
231231
232+ response &= exitConfigMode (); // We must exit config before we save otherwise we will save with NMEA/RTCM off
233+
232234 if (response)
233235 {
234236 online.gnss = true ; // If we failed before, mark as online now
@@ -244,8 +246,6 @@ bool GNSS_LG290P::configureOnce()
244246 else
245247 online.gnss = false ; // Take it offline
246248
247- exitConfigMode ();
248-
249249 return (response);
250250}
251251
@@ -298,6 +298,8 @@ bool GNSS_LG290P::configureRover()
298298 if (settings.debugGnss && response == false )
299299 systemPrintln (" Rover: Enable NMEA failed" );
300300
301+ response &= exitConfigMode (); // We must exit config before we save otherwise we will save with NMEA/RTCM off
302+
301303 if (response == false )
302304 {
303305 systemPrintln (" LG290P Rover failed to configure" );
@@ -314,8 +316,6 @@ bool GNSS_LG290P::configureRover()
314316 systemPrintln (" LG290P Rover configured" );
315317 }
316318
317- exitConfigMode ();
318-
319319 return (response);
320320}
321321
@@ -385,6 +385,8 @@ bool GNSS_LG290P::configureBase()
385385 if (settings.debugGnss && response == false )
386386 systemPrintln (" Base: Enable NMEA failed" );
387387
388+ response &= exitConfigMode (); // We must exit config before we save otherwise we will save with NMEA/RTCM off
389+
388390 if (response == false )
389391 {
390392 systemPrintln (" LG290P Base failed to configure" );
@@ -397,12 +399,12 @@ bool GNSS_LG290P::configureBase()
397399 if (settingsWereSaved)
398400 settings.updateGNSSSettings = false ;
399401
402+ softwareReset ();
403+
400404 if (settings.debugGnss )
401405 systemPrintln (" LG290P Base configured" );
402406 }
403407
404- exitConfigMode ();
405-
406408 return (response);
407409}
408410
0 commit comments