Skip to content

Commit 7435c56

Browse files
committed
Add serialTimeoutGNSS setting to debug menu
1 parent 9a03468 commit 7435c56

File tree

5 files changed

+26
-2
lines changed

5 files changed

+26
-2
lines changed

Firmware/RTK_Surveyor/Begin.ino

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -271,7 +271,7 @@ void beginUART2()
271271
void pinUART2Task( void *pvParameters )
272272
{
273273
serialGNSS.setRxBufferSize(SERIAL_SIZE_RX);
274-
serialGNSS.setTimeout(0);
274+
serialGNSS.setTimeout(settings.serialTimeoutGNSS);
275275
serialGNSS.begin(settings.dataPortBaud); //UART2 on pins 16/17 for SPP. The ZED-F9P will be configured to output NMEA over its UART1 at the same rate.
276276

277277
uart2pinned = true;

Firmware/RTK_Surveyor/Form.ino

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -397,6 +397,7 @@ void createSettingsString(char* settingsCSV)
397397
stringRecord(settingsCSV, "externalPulsePolarity", settings.externalPulsePolarity);
398398
stringRecord(settingsCSV, "enableExternalHardwareEventLogging", settings.enableExternalHardwareEventLogging);
399399
stringRecord(settingsCSV, "profileName", settings.profileName);
400+
stringRecord(settingsCSV, "serialTimeoutGNSS", settings.serialTimeoutGNSS);
400401

401402
strcat(settingsCSV, "\0");
402403
Serial.printf("settingsCSV len: %d\n\r", strlen(settingsCSV));
@@ -511,6 +512,8 @@ void updateSettingWithValue(const char *settingName, const char* settingValueStr
511512
strcpy(settings.ntripClient_wifiPW, settingValueStr);
512513
else if (strcmp(settingName, "ntripClient_TransmitGGA") == 0)
513514
settings.ntripClient_TransmitGGA = settingValueBool;
515+
else if (strcmp(settingName, "serialTimeoutGNSS") == 0)
516+
settings.serialTimeoutGNSS = settingValue;
514517

515518
//Unused variables - read to avoid errors
516519
else if (strcmp(settingName, "measurementRateSec") == 0) {}

Firmware/RTK_Surveyor/NVM.ino

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -217,7 +217,7 @@ void recordProfileNumber(uint8_t profileNumber, bool markForUpdate)
217217
return;
218218
}
219219
fileProfileNumber.write(profileNumber);
220-
fileProfileNumber.write(markForUpdate); //If true, ZED will be config'd next POR
220+
fileProfileNumber.write(markForUpdate); //If true, ZED will be config'd next POR
221221
fileProfileNumber.close();
222222
}
223223

@@ -357,6 +357,7 @@ void recordSystemSettingsToFile()
357357
settingsFile.println("ntripClient_wifiSSID=" + (String)settings.ntripClient_wifiSSID);
358358
settingsFile.println("ntripClient_wifiPW=" + (String)settings.ntripClient_wifiPW);
359359
settingsFile.println("ntripClient_TransmitGGA=" + (String)settings.ntripClient_TransmitGGA);
360+
settingsFile.println("serialTimeoutGNSS=" + (String)settings.serialTimeoutGNSS);
360361

361362
//Record constellation settings
362363
for (int x = 0 ; x < MAX_CONSTELLATIONS ; x++)
@@ -786,6 +787,8 @@ bool parseLine(char* str) {
786787
strcpy(settings.ntripClient_wifiPW, settingValue);
787788
else if (strcmp(settingName, "ntripClient_TransmitGGA") == 0)
788789
settings.ntripClient_TransmitGGA = d;
790+
else if (strcmp(settingName, "serialTimeoutGNSS") == 0)
791+
settings.serialTimeoutGNSS = d;
789792

790793
//Check for bulk settings (constellations and message rates)
791794
//Must be last on else list

Firmware/RTK_Surveyor/menuSystem.ino

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -172,6 +172,9 @@ void menuDebug()
172172
if (settings.enableResetDisplay == true) Serial.println(F("Enabled"));
173173
else Serial.println(F("Disabled"));
174174

175+
Serial.print(F("9) GNSS Serial Timeout: "));
176+
Serial.println(settings.serialTimeoutGNSS);
177+
175178
Serial.println(F("e) Erase LittleFS"));
176179

177180
Serial.println(F("r) Force system reset"));
@@ -249,6 +252,19 @@ void menuDebug()
249252
recordSystemSettings(); //Record to NVM
250253
}
251254
}
255+
else if (incoming == '9')
256+
{
257+
Serial.print(F("Enter GNSS Serial Timeout in milliseconds (0 to 1000): "));
258+
uint16_t serialTimeoutGNSS = getNumber(menuTimeout); //Timeout after x seconds
259+
if (serialTimeoutGNSS < 0 || serialTimeoutGNSS > 1000) //Arbitrary 1s limit
260+
{
261+
Serial.println(F("Error: Timeout is out of range"));
262+
}
263+
else
264+
{
265+
settings.serialTimeoutGNSS = serialTimeoutGNSS; //Recorded to NVM and file at main menu exit
266+
}
267+
}
252268
else if (incoming == 'e')
253269
{
254270
Serial.println("Erasing LittleFS and resetting");

Firmware/RTK_Surveyor/settings.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -341,6 +341,8 @@ typedef struct struct_settings {
341341
char ntripClient_wifiPW[50] = "parachutes";
342342
bool ntripClient_TransmitGGA = true;
343343

344+
int16_t serialTimeoutGNSS = 1; //In ms - used during SerialGNSS.begin. Number of ms to pass of no data before hardware serial reports data available.
345+
344346
} Settings;
345347
Settings settings;
346348

0 commit comments

Comments
 (0)