Skip to content

Commit 09ddcbc

Browse files
authored
Merge pull request #556 from sparkfun/pcUpdates
pcUpdates
2 parents 871dce6 + f1a4deb commit 09ddcbc

File tree

5 files changed

+52
-25
lines changed

5 files changed

+52
-25
lines changed

Firmware/RTK_Everywhere/GNSS_Mosaic.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -229,7 +229,7 @@ const mosaicSignalConstellation mosaicSignalConstellations[] = {
229229
{"SBAS","SBAS"},
230230
{"BEIDOU","BeiDou"},
231231
{"QZSS","QZSS"},
232-
{"NAVIC","NAVIC"},
232+
{"NAVIC","NavIC"},
233233
};
234234

235235
#define MAX_MOSAIC_CONSTELLATIONS (sizeof(mosaicSignalConstellations) / sizeof(mosaicSignalConstellation))

Firmware/RTK_Everywhere/GNSS_Mosaic.ino

Lines changed: 34 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -135,9 +135,10 @@ void menuLogMosaic()
135135
{
136136
GNSS_MOSAIC *mosaic = (GNSS_MOSAIC *)gnss;
137137

138-
mosaic->configureLogging(); // This will enable / disable RINEX logging
139-
mosaic->enableNMEA(); // Enable NMEA messages - this will enable/disable the DSK1 streams
140-
setLoggingType(); // Update Standard, PPP, or custom for icon selection
138+
mosaic->configureLogging(); // This will enable / disable RINEX logging
139+
mosaic->enableNMEA(); // Enable NMEA messages - this will enable/disable the DSK1 streams
140+
mosaic->saveConfiguration(); // Save the configuration
141+
setLoggingType(); // Update Standard, PPP, or custom for icon selection
141142
}
142143

143144
clearBuffer(); // Empty buffer of any newline chars
@@ -419,6 +420,10 @@ bool GNSS_MOSAIC::configureBase()
419420

420421
response &= setElevation(settings.minElev);
421422

423+
response &= setMinCnoRadio(settings.minCNO);
424+
425+
response &= setConstellations();
426+
422427
response &= enableRTCMBase();
423428

424429
response &= enableNMEA();
@@ -583,12 +588,6 @@ bool GNSS_MOSAIC::configureOnce()
583588
setting = String("sso,Stream" + String(MOSAIC_SBF_STATUS_STREAM) + ",COM1,ChannelStatus+DiskStatus,sec2\n\r");
584589
response &= sendWithResponse(setting, "SBFOutput");
585590

586-
response &= setElevation(settings.minElev);
587-
588-
response &= setMinCnoRadio(settings.minCNO);
589-
590-
response &= setConstellations();
591-
592591
// Mark L5 as healthy
593592
response &= sendWithResponse("shm,Tracking,off\n\r", "HealthMask");
594593
response &= sendWithResponse("shm,PVT,off\n\r", "HealthMask");
@@ -668,6 +667,10 @@ bool GNSS_MOSAIC::configureRover()
668667

669668
response &= setElevation(settings.minElev); // Set by menuGNSS which calls gnss->setElevation
670669

670+
response &= setMinCnoRadio(settings.minCNO);
671+
672+
response &= setConstellations();
673+
671674
response &= enableRTCMRover();
672675

673676
response &= enableNMEA();
@@ -1014,8 +1017,15 @@ bool GNSS_MOSAIC::enableRTCMTest()
10141017
//----------------------------------------
10151018
void GNSS_MOSAIC::factoryReset()
10161019
{
1017-
sendWithResponse("eccf,RxDefault,Boot\n\r", "CopyConfigFile");
1018-
sendWithResponse("eccf,RxDefault,Current\n\r", "CopyConfigFile");
1020+
unsigned long start = millis();
1021+
bool result = sendWithResponse("eccf,RxDefault,Boot\n\r", "CopyConfigFile", 5000);
1022+
if (settings.debugGnss)
1023+
systemPrintf("factoryReset: sendWithResponse eccf,RxDefault,Boot returned %s after %d ms\r\n", result ? "true" : "false", millis() - start);
1024+
1025+
start = millis();
1026+
result = sendWithResponse("eccf,RxDefault,Current\n\r", "CopyConfigFile", 5000);
1027+
if (settings.debugGnss)
1028+
systemPrintf("factoryReset: sendWithResponse eccf,RxDefault,Current returned %s after %d ms\r\n", result ? "true" : "false", millis() - start);
10191029
}
10201030

10211031
//----------------------------------------
@@ -1650,6 +1660,8 @@ void GNSS_MOSAIC::menuConstellations()
16501660
// Apply current settings to module
16511661
setConstellations();
16521662

1663+
saveConfiguration(); // Save the updated constellations
1664+
16531665
clearBuffer(); // Empty buffer of any newline chars
16541666
}
16551667

@@ -1935,7 +1947,11 @@ uint16_t GNSS_MOSAIC::rtcmRead(uint8_t *rtcmBuffer, int rtcmBytesToRead)
19351947
//----------------------------------------
19361948
bool GNSS_MOSAIC::saveConfiguration()
19371949
{
1938-
return sendWithResponse("eccf,Current,Boot\n\r", "CopyConfigFile");
1950+
unsigned long start = millis();
1951+
bool result = sendWithResponse("eccf,Current,Boot\n\r", "CopyConfigFile", 5000);
1952+
if (settings.debugGnss)
1953+
systemPrintf("saveConfiguration: sendWithResponse returned %s after %d ms\r\n", result ? "true" : "false", millis() - start);
1954+
return result;
19391955
}
19401956

19411957
//----------------------------------------
@@ -2846,12 +2862,12 @@ void processUart1SBF(SEMP_PARSE_STATE *parse, uint16_t type)
28462862
{
28472863
GNSS_MOSAIC *mosaic = (GNSS_MOSAIC *)gnss;
28482864

2849-
if (((settings.debugGnss == true) || PERIODIC_DISPLAY(PD_GNSS_DATA_RX)) && !inMainMenu)
2850-
{
2851-
// Don't call PERIODIC_CLEAR(PD_GNSS_DATA_RX); here. Let processUart1Message do it via rtkParse
2852-
systemPrintf("Processing SBF Block %d (%d bytes) from mosaic-X5\r\n", sempSbfGetBlockNumber(parse),
2853-
parse->length);
2854-
}
2865+
// if (((settings.debugGnss == true) || PERIODIC_DISPLAY(PD_GNSS_DATA_RX)) && !inMainMenu)
2866+
// {
2867+
// // Don't call PERIODIC_CLEAR(PD_GNSS_DATA_RX); here. Let processUart1Message do it via rtkParse
2868+
// systemPrintf("Processing SBF Block %d (%d bytes) from mosaic-X5\r\n", sempSbfGetBlockNumber(parse),
2869+
// parse->length);
2870+
// }
28552871

28562872
// If this is PVTGeodetic, extract some data
28572873
if (sempSbfGetBlockNumber(parse) == 4007)

Firmware/RTK_Everywhere/NVM.ino

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,11 +60,20 @@ void loadSettings()
6060

6161
// Temp store any variables from LFS that should override SD
6262
int resetCount = settings.resetCount;
63+
bool gnssConfiguredOnce = settings.gnssConfiguredOnce;
64+
bool gnssConfiguredRover = settings.gnssConfiguredRover;
65+
bool gnssConfiguredBase = settings.gnssConfiguredBase;
6366

6467
loadSystemSettingsFromFileSD(settingsFileName);
6568

6669
settings.resetCount = resetCount; // resetCount from LFS should override SD
6770

71+
// Trust gnssConfigured from LittleFS over SD.
72+
// LittleFS may have been erased, SD could be stale.
73+
settings.gnssConfiguredOnce = gnssConfiguredOnce;
74+
settings.gnssConfiguredRover = gnssConfiguredRover;
75+
settings.gnssConfiguredBase = gnssConfiguredBase;
76+
6877
// Change empty profile name to 'Profile1' etc
6978
if (strlen(settings.profileName) == 0)
7079
{

Firmware/RTK_Everywhere/menuPP.ino

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -916,6 +916,8 @@ void updateLBand()
916916

917917
result &= mosaic->configureLBand(true, LBandFreq); // Start L-Band
918918

919+
result &= mosaic->saveConfiguration(); // Save the updated configuration. Probably redundant?
920+
919921
if (result == false)
920922
{
921923
systemPrintln("mosaic-X5 L-Band failed to configure");

Firmware/RTK_Everywhere/settings.h

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1293,12 +1293,12 @@ const RTK_Settings_Entry rtkSettingsEntries[] =
12931293

12941294
#ifdef COMPILE_MOSAICX5
12951295
{ 1, 1, 1, 0, 0, 1, 0, 0, 0, tMosaicConst, MAX_MOSAIC_CONSTELLATIONS, & settings.mosaicConstellations, "constellation_", },
1296-
{ 0, 1, 1, 0, 0, 1, 0, 0, 0, tMosaicMSNmea, MAX_MOSAIC_NMEA_MSG, & settings.mosaicMessageStreamNMEA, "messageStreamNMEA_", },
1297-
{ 0, 1, 1, 0, 0, 1, 0, 0, 0, tMosaicSINmea, MOSAIC_NUM_NMEA_STREAMS, & settings.mosaicStreamIntervalsNMEA, "streamIntervalNMEA_", },
1298-
{ 0, 1, 1, 0, 0, 1, 0, 0, 0, tMosaicMIRvRT, MAX_MOSAIC_RTCM_V3_INTERVAL_GROUPS, & settings.mosaicMessageIntervalsRTCMv3Rover, "messageIntervalRTCMRover_", },
1299-
{ 0, 1, 1, 0, 0, 1, 0, 0, 0, tMosaicMIBaRT, MAX_MOSAIC_RTCM_V3_INTERVAL_GROUPS, & settings.mosaicMessageIntervalsRTCMv3Base, "messageIntervalRTCMBase_", },
1300-
{ 0, 1, 1, 0, 0, 1, 0, 0, 0, tMosaicMERvRT, MAX_MOSAIC_RTCM_V3_MSG, & settings.mosaicMessageEnabledRTCMv3Rover, "messageEnabledRTCMRover_", },
1301-
{ 0, 1, 1, 0, 0, 1, 0, 0, 0, tMosaicMEBaRT, MAX_MOSAIC_RTCM_V3_MSG, & settings.mosaicMessageEnabledRTCMv3Base, "messageEnabledRTCMBase_", },
1296+
{ 1, 1, 1, 0, 0, 1, 0, 0, 0, tMosaicMSNmea, MAX_MOSAIC_NMEA_MSG, & settings.mosaicMessageStreamNMEA, "messageStreamNMEA_", },
1297+
{ 1, 1, 1, 0, 0, 1, 0, 0, 0, tMosaicSINmea, MOSAIC_NUM_NMEA_STREAMS, & settings.mosaicStreamIntervalsNMEA, "streamIntervalNMEA_", },
1298+
{ 1, 1, 1, 0, 0, 1, 0, 0, 0, tMosaicMIRvRT, MAX_MOSAIC_RTCM_V3_INTERVAL_GROUPS, & settings.mosaicMessageIntervalsRTCMv3Rover, "messageIntervalRTCMRover_", },
1299+
{ 1, 1, 1, 0, 0, 1, 0, 0, 0, tMosaicMIBaRT, MAX_MOSAIC_RTCM_V3_INTERVAL_GROUPS, & settings.mosaicMessageIntervalsRTCMv3Base, "messageIntervalRTCMBase_", },
1300+
{ 1, 1, 1, 0, 0, 1, 0, 0, 0, tMosaicMERvRT, MAX_MOSAIC_RTCM_V3_MSG, & settings.mosaicMessageEnabledRTCMv3Rover, "messageEnabledRTCMRover_", },
1301+
{ 1, 1, 1, 0, 0, 1, 0, 0, 0, tMosaicMEBaRT, MAX_MOSAIC_RTCM_V3_MSG, & settings.mosaicMessageEnabledRTCMv3Base, "messageEnabledRTCMBase_", },
13021302
{ 1, 1, 0, 0, 0, 1, 0, 0, 0, _bool, 0, & settings.enableLoggingRINEX, "enableLoggingRINEX", },
13031303
{ 1, 1, 0, 0, 0, 1, 0, 0, 0, _uint8_t, 0, & settings.RINEXFileDuration, "RINEXFileDuration", },
13041304
{ 1, 1, 0, 0, 0, 1, 0, 0, 0, _uint8_t, 0, & settings.RINEXObsInterval, "RINEXObsInterval", },

0 commit comments

Comments
 (0)