Сохранение вывода Arduino в текстовый файл в режиме добавления

Я использовал приведенный ниже код для сохранения выходных данных Arduino Uno в текстовый файл.

Проблема в том, что всякий раз, когда я запускаю код, старые данные в текстовом файле удаляются.

Я не хочу, чтобы старые данные были удалены, что я должен изменить?

import processing.serial.*;
Serial mySerial;
PrintWriter output;
void setup() {
   mySerial = new Serial( this, Serial.list()[0], 9600 );
   output = createWriter( "data.txt" );
}
void draw() {
    if (mySerial.available() > 0 ) {
         String value = mySerial.readString();
         if ( value != null ) {
              output.println( value );
         }
    }
}

void keyPressed() {
    output.flush();  // Writes the remaining data to the file
    output.close();  // Finishes the file
    exit();  // Stops the program
}

, 👍4

Обсуждение

[См. этот ОТВЕТ SO](http://stackoverflow.com/a/17013103/2065121) для примера., @Roger Rowland

Я думаю, что проблема в том, что ваше имя файла всегда одно и то же, так как одно и то же имя файла с одним и тем же расширением не может быть сохранено. Чтобы решить эту проблему, вы можете добавить переменную перед именем файла, которая увеличивается каждый раз, так что ваше имя файла меняется каждый раз, и вы можете сохранить эту переменную в EEPROM для дальнейшего использования., @dharmik


2 ответа


-2

Загрузите данные конфигурации из файла SPIFF, верните 0, если ОК

  • Функция SPIFFS open нуждается в пути и режиме:
  • режим "р", "ж", "э", "р+", "ш+", "а+" (текстовый файл) или "RB", "ВБ", "АВ", "РБ+", "ВБ+", "АВ+" (двоичный)
  • где r = read, w = write, `a = append
    • значит файл открыт для обновления (чтения и записи)
  • b означает файловую ОС, открытую для двоичных операций
  • Возвращает 0, если OK еще:
  • -1 = Нет файловой системы SPIFFS
  • -2 = Файл не существует
  • -3 = Файл слишком короткий
  • -4 = Контрольная сумма не сравнивается
,

Это, вероятно, было вам непонятно, но они спрашивают об этом на стороне хоста, используя [Обработку](https://processing.org/), который выглядит как код Arduino (по уважительным причинам), но на самом деле не является кодом Arduino., @timemage


1

Существует несколько способов добавления к текстовому файлу.

  1. Вы можете либо прочитать весь файл во временной переменной, либо добавить к нему новые данные, а затем записать их в файл.

  2. вместо этого вы можете реализовать его с помощью PrintWriter как уже упоминалось здесь: https://processing.org/discourse/beta/num_1267767630.html

Дайте мне знать, если это сработает.

,