Jelajahi Sumber

* workaround for nRF + LittleFS glitch with seek/truncate

Scott Powell 1 tahun lalu
induk
melakukan
56b84408e4

+ 4 - 4
examples/companion_radio/main.cpp

@@ -271,8 +271,8 @@ class MyMesh : public BaseChatMesh {
 
   void saveContacts() {
 #if defined(NRF52_PLATFORM) || defined(STM32_PLATFORM)
+    _fs->remove("/contacts3");
     File file = _fs->open("/contacts3", FILE_O_WRITE);
-    if (file) { file.seek(0); file.truncate(); }
 #elif defined(RP2040_PLATFORM)
     File file = _fs->open("/contacts3", "w");
 #else
@@ -336,8 +336,8 @@ class MyMesh : public BaseChatMesh {
 
   void saveChannels() {
   #if defined(NRF52_PLATFORM) || defined(STM32_PLATFORM)
+    _fs->remove("/channels2");
     File file = _fs->open("/channels2", FILE_O_WRITE);
-    if (file) { file.seek(0); file.truncate(); }
   #elif defined(RP2040_PLATFORM)
     File file = _fs->open("/channels2", "w");
   #else
@@ -393,8 +393,8 @@ class MyMesh : public BaseChatMesh {
     sprintf(path, "/bl/%s", fname);
 
   #if defined(NRF52_PLATFORM) || defined(STM32_PLATFORM)
+    _fs->remove(path);
     File f = _fs->open(path, FILE_O_WRITE);
-    if (f) { f.seek(0); f.truncate(); }
   #elif defined(RP2040_PLATFORM)
     File f = _fs->open(path, "w");
   #else
@@ -915,8 +915,8 @@ public:
 
   void savePrefs() {
 #if defined(NRF52_PLATFORM) || defined(STM32_PLATFORM)
+    _fs->remove("/new_prefs");
     File file = _fs->open("/new_prefs", FILE_O_WRITE);
-    if (file) { file.seek(0); file.truncate(); }
 #elif defined(RP2040_PLATFORM)
     File file = _fs->open("/new_prefs", "w");
 #else

+ 2 - 2
examples/simple_secure_chat/main.cpp

@@ -127,8 +127,8 @@ class MyMesh : public BaseChatMesh, ContactVisitor {
 
   void saveContacts() {
 #if defined(NRF52_PLATFORM)
+    _fs->remove("/contacts");
     File file = _fs->open("/contacts", FILE_O_WRITE);
-    if (file) { file.seek(0); file.truncate(); }
 #elif defined(RP2040_PLATFORM)
     File file = _fs->open("/contacts", "w");
 #else
@@ -341,8 +341,8 @@ public:
 
   void savePrefs() {
 #if defined(NRF52_PLATFORM)
+    _fs->remove("/node_prefs");
     File file = _fs->open("/node_prefs", FILE_O_WRITE);
-    if (file) { file.seek(0); file.truncate(); }
 #elif defined(RP2040_PLATFORM)
     File file = _fs->open("/node_prefs", "w");
 #else

+ 1 - 1
src/helpers/CommonCLI.cpp

@@ -74,8 +74,8 @@ void CommonCLI::loadPrefsInt(FILESYSTEM* fs, const char* filename) {
 
 void CommonCLI::savePrefs(FILESYSTEM* fs) {
 #if defined(NRF52_PLATFORM) || defined(STM32_PLATFORM)
+  fs->remove("/com_prefs");
   File file = fs->open("/com_prefs", FILE_O_WRITE);
-  if (file) { file.seek(0); file.truncate(); }
 #elif defined(RP2040_PLATFORM)
   File file = fs->open("/com_prefs", "w");
 #else

+ 2 - 2
src/helpers/IdentityStore.cpp

@@ -47,8 +47,8 @@ bool IdentityStore::save(const char *name, const mesh::LocalIdentity& id) {
   sprintf(filename, "%s/%s.id", _dir, name);
 
 #if defined(NRF52_PLATFORM) || defined(STM32_PLATFORM)
+  _fs->remove(filename);
   File file = _fs->open(filename, FILE_O_WRITE);
-  if (file) { file.seek(0); file.truncate(); }
 #elif defined(RP2040_PLATFORM)
   File file = _fs->open(filename, "w");
 #else
@@ -69,8 +69,8 @@ bool IdentityStore::save(const char *name, const mesh::LocalIdentity& id, const
   sprintf(filename, "%s/%s.id", _dir, name);
 
 #if defined(NRF52_PLATFORM) || defined(STM32_PLATFORM)
+  _fs->remove(filename);
   File file = _fs->open(filename, FILE_O_WRITE);
-  if (file) { file.seek(0); file.truncate(); }
 #elif defined(RP2040_PLATFORM)
   File file = _fs->open(filename, "w");
 #else