Сохранение вывода 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
}
@Santosh Rokhade, 👍4
Обсуждение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
Существует несколько способов добавления к текстовому файлу.
Вы можете либо прочитать весь файл во временной переменной, либо добавить к нему новые данные, а затем записать их в файл.
вместо этого вы можете реализовать его с помощью PrintWriter как уже упоминалось здесь: https://processing.org/discourse/beta/num_1267767630.html
Дайте мне знать, если это сработает.
- Отправка информации (например, строки) через цифровые контакты
- Нужен простой пример визуализации акселерометра!
- Отправка mouseX и mouseY из обработки в Arduino
- Последовательное соединение между Processing и Arduino не работает
- Графические данные датчика усилия направляются через HX711?
- Отправка данных на последовательный порт с помощью IDE обработки (отладка работает, но не выполняется)
- Как найти время точки на графике на последовательном плоттере Arduino или ПО для обработки?
- Не удается отправить строку с arduino на обработку через hc05
[См. этот ОТВЕТ SO](http://stackoverflow.com/a/17013103/2065121) для примера., @Roger Rowland
Я думаю, что проблема в том, что ваше имя файла всегда одно и то же, так как одно и то же имя файла с одним и тем же расширением не может быть сохранено. Чтобы решить эту проблему, вы можете добавить переменную перед именем файла, которая увеличивается каждый раз, так что ваше имя файла меняется каждый раз, и вы можете сохранить эту переменную в EEPROM для дальнейшего использования., @dharmik