Merge pull request #7703 from ford-jones/clear-rangetest-results

Range-test: Clean on reboot
This commit is contained in:
Ben Meadors 2025-09-27 08:08:31 -05:00 committed by GitHub
commit 806bf6ce2c
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 47 additions and 3 deletions

View File

@ -41,12 +41,12 @@ int32_t RangeTestModule::runOnce()
// moduleConfig.range_test.enabled = 1; // moduleConfig.range_test.enabled = 1;
// moduleConfig.range_test.sender = 30; // moduleConfig.range_test.sender = 30;
// moduleConfig.range_test.save = 1; // moduleConfig.range_test.save = 1;
// moduleConfig.range_test.clear_on_reboot = 1;
// Fixed position is useful when testing indoors. // Fixed position is useful when testing indoors.
// config.position.fixed_position = 1; // config.position.fixed_position = 1;
uint32_t senderHeartbeat = moduleConfig.range_test.sender * 1000; uint32_t senderHeartbeat = moduleConfig.range_test.sender * 1000;
if (moduleConfig.range_test.enabled) { if (moduleConfig.range_test.enabled) {
if (firstTime) { if (firstTime) {
@ -54,6 +54,11 @@ int32_t RangeTestModule::runOnce()
firstTime = 0; firstTime = 0;
if (moduleConfig.range_test.clear_on_reboot) {
// User wants to delete previous range test(s)
LOG_INFO("Range Test Module - Clearing out previous test file");
rangeTestModuleRadio->removeFile();
}
if (moduleConfig.range_test.sender) { if (moduleConfig.range_test.sender) {
LOG_INFO("Init Range Test Module -- Sender"); LOG_INFO("Init Range Test Module -- Sender");
started = millis(); // make a note of when we started started = millis(); // make a note of when we started
@ -141,7 +146,6 @@ ProcessMessage RangeTestModuleRadio::handleReceived(const meshtastic_MeshPacket
*/ */
if (!isFromUs(&mp)) { if (!isFromUs(&mp)) {
if (moduleConfig.range_test.save) { if (moduleConfig.range_test.save) {
appendFile(mp); appendFile(mp);
} }
@ -295,7 +299,42 @@ bool RangeTestModuleRadio::appendFile(const meshtastic_MeshPacket &mp)
fileToAppend.printf("\"%s\"\n", p.payload.bytes); fileToAppend.printf("\"%s\"\n", p.payload.bytes);
fileToAppend.flush(); fileToAppend.flush();
fileToAppend.close(); fileToAppend.close();
#endif
return 1; return 1;
#else
LOG_ERROR("Failed to store range test results - feature only available for ESP32");
return 0;
#endif
}
bool RangeTestModuleRadio::removeFile()
{
#ifdef ARCH_ESP32
if (!FSBegin()) {
LOG_DEBUG("An Error has occurred while mounting the filesystem");
return 0;
}
if (!FSCom.exists("/static/rangetest.csv")) {
LOG_DEBUG("No range tests found.");
return 0;
}
LOG_INFO("Deleting previous range test.");
bool result = FSCom.remove("/static/rangetest.csv");
if (!result) {
LOG_ERROR("Failed to delete range test.");
return 0;
}
LOG_INFO("Range test removed.");
return 1;
#else
LOG_ERROR("Failed to remove range test results - feature only available for ESP32");
return 0;
#endif
} }

View File

@ -44,6 +44,11 @@ class RangeTestModuleRadio : public SinglePortModule
*/ */
bool appendFile(const meshtastic_MeshPacket &mp); bool appendFile(const meshtastic_MeshPacket &mp);
/**
* Cleanup range test data from filesystem
*/
bool removeFile();
protected: protected:
/** Called to handle a particular incoming message /** Called to handle a particular incoming message