@@ -41,19 +41,24 @@ int32_t RangeTestModule::runOnce()
41
41
// moduleConfig.range_test.enabled = 1;
42
42
// moduleConfig.range_test.sender = 30;
43
43
// moduleConfig.range_test.save = 1;
44
+ // moduleConfig.range_test.clear_on_reboot = 1;
44
45
45
46
// Fixed position is useful when testing indoors.
46
47
// config.position.fixed_position = 1;
47
48
48
49
uint32_t senderHeartbeat = moduleConfig.range_test .sender * 1000 ;
49
-
50
50
if (moduleConfig.range_test .enabled ) {
51
51
52
52
if (firstTime) {
53
53
rangeTestModuleRadio = new RangeTestModuleRadio ();
54
54
55
55
firstTime = 0 ;
56
56
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
+ }
57
62
if (moduleConfig.range_test .sender ) {
58
63
LOG_INFO (" Init Range Test Module -- Sender" );
59
64
started = millis (); // make a note of when we started
@@ -141,7 +146,6 @@ ProcessMessage RangeTestModuleRadio::handleReceived(const meshtastic_MeshPacket
141
146
*/
142
147
143
148
if (!isFromUs (&mp)) {
144
-
145
149
if (moduleConfig.range_test .save ) {
146
150
appendFile (mp);
147
151
}
@@ -295,7 +299,42 @@ bool RangeTestModuleRadio::appendFile(const meshtastic_MeshPacket &mp)
295
299
fileToAppend.printf (" \" %s\"\n " , p.payload .bytes );
296
300
fileToAppend.flush ();
297
301
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 ;
298
309
#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." );
299
333
300
334
return 1 ;
335
+ #else
336
+ LOG_ERROR (" Failed to remove range test results - feature only available for ESP32" );
337
+
338
+ return 0 ;
339
+ #endif
301
340
}
0 commit comments