Skip to content

Commit 806bf6c

Browse files
authored
Merge pull request #7703 from ford-jones/clear-rangetest-results
Range-test: Clean on reboot
2 parents a2d8645 + 7eb0109 commit 806bf6c

File tree

2 files changed

+46
-2
lines changed

2 files changed

+46
-2
lines changed

src/modules/RangeTestModule.cpp

Lines changed: 41 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,19 +41,24 @@ int32_t RangeTestModule::runOnce()
4141
// moduleConfig.range_test.enabled = 1;
4242
// moduleConfig.range_test.sender = 30;
4343
// moduleConfig.range_test.save = 1;
44+
// moduleConfig.range_test.clear_on_reboot = 1;
4445

4546
// Fixed position is useful when testing indoors.
4647
// config.position.fixed_position = 1;
4748

4849
uint32_t senderHeartbeat = moduleConfig.range_test.sender * 1000;
49-
5050
if (moduleConfig.range_test.enabled) {
5151

5252
if (firstTime) {
5353
rangeTestModuleRadio = new RangeTestModuleRadio();
5454

5555
firstTime = 0;
5656

57+
if (moduleConfig.range_test.clear_on_reboot) {
58+
// User wants to delete previous range test(s)
59+
LOG_INFO("Range Test Module - Clearing out previous test file");
60+
rangeTestModuleRadio->removeFile();
61+
}
5762
if (moduleConfig.range_test.sender) {
5863
LOG_INFO("Init Range Test Module -- Sender");
5964
started = millis(); // make a note of when we started
@@ -141,7 +146,6 @@ ProcessMessage RangeTestModuleRadio::handleReceived(const meshtastic_MeshPacket
141146
*/
142147

143148
if (!isFromUs(&mp)) {
144-
145149
if (moduleConfig.range_test.save) {
146150
appendFile(mp);
147151
}
@@ -295,7 +299,42 @@ bool RangeTestModuleRadio::appendFile(const meshtastic_MeshPacket &mp)
295299
fileToAppend.printf("\"%s\"\n", p.payload.bytes);
296300
fileToAppend.flush();
297301
fileToAppend.close();
302+
303+
return 1;
304+
305+
#else
306+
LOG_ERROR("Failed to store range test results - feature only available for ESP32");
307+
308+
return 0;
298309
#endif
310+
}
311+
312+
bool RangeTestModuleRadio::removeFile()
313+
{
314+
#ifdef ARCH_ESP32
315+
if (!FSBegin()) {
316+
LOG_DEBUG("An Error has occurred while mounting the filesystem");
317+
return 0;
318+
}
319+
320+
if (!FSCom.exists("/static/rangetest.csv")) {
321+
LOG_DEBUG("No range tests found.");
322+
return 0;
323+
}
324+
325+
LOG_INFO("Deleting previous range test.");
326+
bool result = FSCom.remove("/static/rangetest.csv");
327+
328+
if (!result) {
329+
LOG_ERROR("Failed to delete range test.");
330+
return 0;
331+
}
332+
LOG_INFO("Range test removed.");
299333

300334
return 1;
335+
#else
336+
LOG_ERROR("Failed to remove range test results - feature only available for ESP32");
337+
338+
return 0;
339+
#endif
301340
}

src/modules/RangeTestModule.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,11 @@ class RangeTestModuleRadio : public SinglePortModule
4444
*/
4545
bool appendFile(const meshtastic_MeshPacket &mp);
4646

47+
/**
48+
* Cleanup range test data from filesystem
49+
*/
50+
bool removeFile();
51+
4752
protected:
4853
/** Called to handle a particular incoming message
4954

0 commit comments

Comments
 (0)