Skip to content

Commit 9bb5056

Browse files
committed
Adjust GSV to 1Hz when fix rate is >1Hz.
1 parent ddb6a3c commit 9bb5056

File tree

3 files changed

+25
-3
lines changed

3 files changed

+25
-3
lines changed

Firmware/RTK_Surveyor/RTK_Surveyor.ino

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -236,7 +236,7 @@ char platformPrefix[55] = "Surveyor"; //Sets the prefix for broadcast names
236236

237237
HardwareSerial serialGNSS(2); //TX on 17, RX on 16
238238

239-
#define SERIAL_SIZE_RX (1024 * 6) //Should match buffer size in BluetoothSerial.cpp. Reduced from 16384 to make room for WiFi/NTRIP server capabilities
239+
#define SERIAL_SIZE_RX (1024 * 6) //Must be large enough to handle incoming ZED UART traffic. See F9PSerialReadTask().
240240
TaskHandle_t F9PSerialReadTaskHandle = NULL; //Store handles so that we can kill them if user goes into WiFi NTRIP Server mode
241241
const uint8_t F9PSerialReadTaskPriority = 1; //3 being the highest, and 0 being the lowest
242242

Firmware/RTK_Surveyor/menuGNSS.ino

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -327,6 +327,18 @@ void setMeasurementRates(float secondsBetweenSolutions)
327327
{
328328
settings.measurementRate = measRate;
329329
settings.navigationRate = navRate;
330+
331+
//If enabled, adjust GSV NMEA to be reported at 1Hz to avoid swamping SPP connection
332+
if (settings.ubxMessages[8].msgRate > 0)
333+
{
334+
float measurementFrequency = (1000.0 / settings.measurementRate) / settings.navigationRate;
335+
if (measurementFrequency < 1.0) measurementFrequency = 1.0;
336+
337+
Serial.printf("Adjusting GSV setting to %f\n\r", measurementFrequency);
338+
339+
setMessageRateByName("UBX_NMEA_GSV", measurementFrequency); //Update GSV setting in file
340+
configureMessageRate(COM_PORT_UART1, settings.ubxMessages[8]); //Update rate on module
341+
}
330342
}
331343
else
332344
{

Firmware/RTK_Surveyor/menuMessages.ino

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,12 @@ void menuMessages()
137137
setMessageRateByName("UBX_NMEA_GGA", 1);
138138
setMessageRateByName("UBX_NMEA_GSA", 1);
139139
setMessageRateByName("UBX_NMEA_GST", 1);
140-
setMessageRateByName("UBX_NMEA_GSV", 4); //One update per 4 fixes to avoid swamping SPP connection
140+
141+
//We want GSV NMEA to be reported at 1Hz to avoid swamping SPP connection
142+
float measurementFrequency = (1000.0 / settings.measurementRate) / settings.navigationRate;
143+
if(measurementFrequency < 1.0) measurementFrequency = 1.0;
144+
setMessageRateByName("UBX_NMEA_GSV", measurementFrequency); //One report per second
145+
141146
setMessageRateByName("UBX_NMEA_RMC", 1);
142147
Serial.println("Reset to Surveying Defaults (NMEAx5)");
143148
}
@@ -147,7 +152,12 @@ void menuMessages()
147152
setMessageRateByName("UBX_NMEA_GGA", 1);
148153
setMessageRateByName("UBX_NMEA_GSA", 1);
149154
setMessageRateByName("UBX_NMEA_GST", 1);
150-
setMessageRateByName("UBX_NMEA_GSV", 4); //One update per 4 fixes to avoid swamping SPP connection
155+
156+
//We want GSV NMEA to be reported at 1Hz to avoid swamping SPP connection
157+
float measurementFrequency = (1000.0 / settings.measurementRate) / settings.navigationRate;
158+
if(measurementFrequency < 1.0) measurementFrequency = 1.0;
159+
setMessageRateByName("UBX_NMEA_GSV", measurementFrequency); //One report per second
160+
151161
setMessageRateByName("UBX_NMEA_RMC", 1);
152162

153163
setMessageRateByName("UBX_RXM_RAWX", 1);

0 commit comments

Comments
 (0)