@@ -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}
0 commit comments