Skip to content

Commit a8a93ff

Browse files
committed
Add ability to turn on task highwater mark reporting via debug menu.
1 parent b5f3d10 commit a8a93ff

File tree

6 files changed

+36
-30
lines changed

6 files changed

+36
-30
lines changed

Firmware/RTK_Surveyor/NVM.ino

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -132,6 +132,7 @@ void recordSystemSettingsToFile()
132132
settingsFile.println("navigationRate=" + (String)settings.navigationRate);
133133
settingsFile.println("enableI2Cdebug=" + (String)settings.enableI2Cdebug);
134134
settingsFile.println("enableHeapReport=" + (String)settings.enableHeapReport);
135+
settingsFile.println("enableTaskReports=" + (String)settings.enableTaskReports);
135136
settingsFile.println("dataPortChannel=" + (String)settings.dataPortChannel);
136137
settingsFile.println("spiFrequency=" + (String)settings.spiFrequency);
137138
settingsFile.println("sppRxQueueSize=" + (String)settings.sppRxQueueSize);
@@ -374,6 +375,8 @@ bool parseLine(char* str) {
374375
settings.enableI2Cdebug = d;
375376
else if (strcmp(settingName, "enableHeapReport") == 0)
376377
settings.enableHeapReport = d;
378+
else if (strcmp(settingName, "enableTaskReports") == 0)
379+
settings.enableTaskReports = d;
377380
else if (strcmp(settingName, "dataPortChannel") == 0)
378381
settings.dataPortChannel = (muxConnectionType_e)d;
379382
else if (strcmp(settingName, "spiFrequency") == 0)

Firmware/RTK_Surveyor/RTK_Surveyor.ino

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -335,7 +335,7 @@ void setup()
335335
beginAccelerometer();
336336

337337
beginSystemState(); //Determine initial system state
338-
338+
339339
Serial.flush(); //Complete any previous prints
340340

341341
danceLEDs(); //Turn on LEDs like a car dashboard

Firmware/RTK_Surveyor/System.ino

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -654,7 +654,7 @@ void reportHeap()
654654
if (millis() - lastHeapReport > 1000)
655655
{
656656
lastHeapReport = millis();
657-
Serial.printf("freeHeap: %d\n\r", ESP.getFreeHeap());
657+
Serial.printf("FreeHeap: %d\n\r", ESP.getFreeHeap());
658658
}
659659
}
660660
}

Firmware/RTK_Surveyor/Tasks.ino

Lines changed: 17 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -8,23 +8,23 @@ void F9PSerialWriteTask(void *e)
88
while (true)
99
{
1010
//Receive RTCM corrections or UBX config messages over bluetooth and pass along to ZED
11-
if (SerialBT.available())
11+
while (SerialBT.available())
1212
{
13-
while (SerialBT.available())
13+
taskYIELD();
14+
if (inTestMode == false)
1415
{
15-
taskYIELD();
16-
if (inTestMode == false)
17-
{
18-
//Pass bytes to GNSS receiver
19-
auto s = SerialBT.readBytes(wBuffer, SERIAL_SIZE_RX);
20-
serialGNSS.write(wBuffer, s);
21-
}
22-
else
23-
{
24-
char incoming = SerialBT.read();
25-
Serial.printf("I heard: %c\n", incoming);
26-
incomingBTTest = incoming; //Displayed during system test
27-
}
16+
//Pass bytes to GNSS receiver
17+
auto s = SerialBT.readBytes(wBuffer, SERIAL_SIZE_RX);
18+
serialGNSS.write(wBuffer, s);
19+
20+
if (settings.enableTaskReports == true)
21+
Serial.printf("SerialWriteTask High watermark: %d\n\r", uxTaskGetStackHighWaterMark(NULL));
22+
}
23+
else
24+
{
25+
char incoming = SerialBT.read();
26+
Serial.printf("I heard: %c\n", incoming);
27+
incomingBTTest = incoming; //Displayed during system test
2828
}
2929
}
3030

@@ -54,14 +54,8 @@ void F9PSerialReadTask(void *e)
5454
SerialBT.write(rBuffer, s);
5555
}
5656

57-
if (settings.enableHeapReport == true)
58-
{
59-
if (millis() - lastTaskHeapReport > 1000)
60-
{
61-
lastTaskHeapReport = millis();
62-
Serial.printf("Task freeHeap: %d\n\r", ESP.getFreeHeap());
63-
}
64-
}
57+
if (settings.enableTaskReports == true)
58+
Serial.printf("SerialReadTask High watermark: %d\n\r", uxTaskGetStackHighWaterMark(NULL));
6559

6660
//If user wants to log, record to SD
6761
if (online.logging == true)

Firmware/RTK_Surveyor/menuDebug.ino

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -23,14 +23,18 @@ void menuDebug()
2323
if (settings.enableHeapReport == true) Serial.println(F("Enabled"));
2424
else Serial.println(F("Disabled"));
2525

26-
Serial.print(F("3) Set SPI/SD Interface Frequency: "));
26+
Serial.print(F("3) Toggle Task Highwater Reporting: "));
27+
if (settings.enableTaskReports == true) Serial.println(F("Enabled"));
28+
else Serial.println(F("Disabled"));
29+
30+
Serial.print(F("4) Set SPI/SD Interface Frequency: "));
2731
Serial.print(settings.spiFrequency);
2832
Serial.println(" MHz");
2933

30-
Serial.print(F("4) Set SPP RX Buffer Size: "));
34+
Serial.print(F("5) Set SPP RX Buffer Size: "));
3135
Serial.println(settings.sppRxQueueSize);
3236

33-
Serial.print(F("5) Set SPP TX Buffer Size: "));
37+
Serial.print(F("6) Set SPP TX Buffer Size: "));
3438
Serial.println(settings.sppTxQueueSize);
3539

3640
Serial.println(F("x) Exit"));
@@ -51,6 +55,10 @@ void menuDebug()
5155
settings.enableHeapReport ^= 1;
5256
}
5357
else if (incoming == '3')
58+
{
59+
settings.enableTaskReports ^= 1;
60+
}
61+
else if (incoming == '4')
5462
{
5563
Serial.print(F("Enter SPI frequency in MHz (1 to 48): "));
5664
int freq = getNumber(menuTimeout); //Timeout after x seconds
@@ -63,7 +71,7 @@ void menuDebug()
6371
settings.spiFrequency = freq; //Recorded to NVM and file at main menu exit
6472
}
6573
}
66-
else if (incoming == '4')
74+
else if (incoming == '5')
6775
{
6876
Serial.print(F("Enter SPP RX Queue Size in Bytes (32 to 16384): "));
6977
uint16_t queSize = getNumber(menuTimeout); //Timeout after x seconds
@@ -76,7 +84,7 @@ void menuDebug()
7684
settings.sppRxQueueSize = queSize; //Recorded to NVM and file at main menu exit
7785
}
7886
}
79-
else if (incoming == '5')
87+
else if (incoming == '6')
8088
{
8189
Serial.print(F("Enter SPP TX Queue Size in Bytes (32 to 16384): "));
8290
uint16_t queSize = getNumber(menuTimeout); //Timeout after x seconds

Firmware/RTK_Surveyor/settings.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -276,6 +276,7 @@ struct struct_settings {
276276
ubxMsg ubxMessages; //Report rates for all known messages
277277
bool enableI2Cdebug = false; //Turn on to display GNSS library debug messages
278278
bool enableHeapReport = false; //Turn on to display free heap
279+
bool enableTaskReports = false; //Turn on to display task high water marks
279280
muxConnectionType_e dataPortChannel = MUX_UBLOX_NMEA; //Mux default to ublox UART1
280281
uint16_t spiFrequency = 8; //By default, use 8MHz SPI
281282
bool enableLogging = true; //If an SD card is present, log default sentences

0 commit comments

Comments
 (0)