@@ -141,8 +141,65 @@ bool um980ConfigureOnce()
141141
142142 response &= um980SetConstellations ();
143143
144- // response &= um980->sendCommand("CONFIG SIGNALGROUP 2"); //Enable L1C
145- // SIGNALGROUP causes the UM980 to automatically save and reset
144+ if (um980->isConfigurationPresent (" CONFIG SIGNALGROUP 2" ) == false )
145+ {
146+ if (um980->sendCommand (" CONFIG SIGNALGROUP 2" ) == false )
147+ systemPrintln (" Signal group 2 command failed" );
148+ else
149+ {
150+ systemPrintln (" Enabling additional reception on UM980. This can take a few seconds." );
151+
152+ while (1 )
153+ {
154+ delay (1000 ); // Wait for device to reboot
155+ if (um980->isConnected () == true )
156+ break ;
157+ else
158+ systemPrintln (" UM980 rebooting" );
159+ }
160+
161+ systemPrintln (" UM980 has completed reboot." );
162+ }
163+ }
164+
165+ // Enable E6 and PPP if enabled and possible
166+ if (settings.enableGalileoHas == true )
167+ {
168+ // E6 reception requires version 11833 or greater
169+ int um980Version = String (um980->getVersion ()).toInt (); // Convert the string response to a value
170+ if (um980Version >= 11833 )
171+ {
172+ if (um980->isConfigurationPresent (" CONFIG PPP ENABLE E6-HAS" ) == false )
173+ {
174+ if (um980->sendCommand (" CONFIG PPP ENABLE E6-HAS" ) == true )
175+ systemPrintln (" E6 service enabled" );
176+ else
177+ systemPrintln (" E6 service config error" );
178+
179+ if (um980->sendCommand (" CONFIG PPP DATUM WGS84" ) == true )
180+ systemPrintln (" WGS84 Datum applied" );
181+ else
182+ systemPrintln (" WGS84 Datum error" );
183+ }
184+ }
185+ else
186+ {
187+ systemPrintf (" Current UM980 firmware: v%d. Galileo E6 reception requires 11833 or newer. Please update the "
188+ " firmware on your UM980 to allow for HAS operation.\r\n " ,
189+ um980Version);
190+ }
191+ }
192+ else
193+ {
194+ // Turn off HAS/E6
195+ if (um980->isConfigurationPresent (" CONFIG PPP ENABLE E6-HAS" ) == true )
196+ {
197+ if (um980->sendCommand (" CONFIG PPP DISABLE" ) == true )
198+ systemPrintln (" E6 service disabled" );
199+ else
200+ systemPrintln (" E6 service config error" );
201+ }
202+ }
146203
147204 if (response == true )
148205 {
@@ -1059,6 +1116,12 @@ void um980MenuConstellations()
10591116 systemPrintln ();
10601117 }
10611118
1119+ if (present.galileoHasCapable )
1120+ {
1121+ systemPrintf (" %d) Galileo E6 Corrections: %s\r\n " , MAX_UM980_CONSTELLATIONS + 1 ,
1122+ settings.enableGalileoHas ? " Enabled" : " Disabled" );
1123+ }
1124+
10621125 systemPrintln (" x) Exit" );
10631126
10641127 int incoming = getUserInputNumber (); // Returns EXIT, TIMEOUT, or long
@@ -1069,6 +1132,10 @@ void um980MenuConstellations()
10691132
10701133 settings.um980Constellations [incoming] ^= 1 ;
10711134 }
1135+ else if (incoming == MAX_CONSTELLATIONS && present.galileoHasCapable )
1136+ {
1137+ settings.enableGalileoHas ^= 1 ;
1138+ }
10721139 else if (incoming == INPUT_RESPONSE_GETNUMBER_EXIT)
10731140 break ;
10741141 else if (incoming == INPUT_RESPONSE_GETNUMBER_TIMEOUT)
0 commit comments