danke Moppi,
es geht weiter...
ich hab mir von AZ-delivery (die deutschen erklärungen tun richtig gut ) zwei sketches angepasst:
das schreiben der geänderten slider-variablem (und nur einmal schreiben)
Code:
#include <SPI.h>
#include <FS.h> // Nutze die SPIFFS library
int FileSize;
String sliderValue_power = "200";
String sliderValue_power_alt;
File myfile; // erstelle eine SPIFFS Handling Variable
void setup()
{
Serial.begin(115200);
SPI.begin();
bool Result = InitalizeFileSystem();
if (!(SPIFFS.exists ("/power_config.csv") )) //Prüfe ob Datei power_config.csv schon exisiert.
{
myfile = SPIFFS.open("/power_config.csv", "w"); //Öffne die Datei power_config.csv im Root Verzeichnis zum schreiben (w – write)
if (!myfile)
{
Serial.println("Fehler beim schreiben der Datei");
}
Result = myfile.println("sliderValue_power");
Result = myfile.println(sliderValue_power);
myfile.close();
}
else
{
SPIFFS.remove("/power_config.csv"); //Lösche Datei
Serial.println("Datei power_config.csv war schon vorhanden, sie wurde gelöscht.");
}
}
void loop()
{
myfile = SPIFFS.open("/power_config.csv", "r"); //Öffne die Datei usage_log.csv im Root Verzeichnis zum lesen (r - read)
while (myfile.position() < myfile.size()) // lese Dateiinhalt Zeile für Zeile bis um Ende der Datei
{
String content = myfile.readStringUntil('\n');
Serial.println(content);
}
FileSize = myfile.size();
myfile.close();
Serial.print("Dateigroesse in Bytes:"); // gebe die aktuelle Dateigröße in Bytes aus
Serial.println(FileSize); // gebe die aktuelle Dateigröße in Bytes aus
delay (5000);
yield(); // interne ESP8266 Funktionen aufrufen
if (sliderValue_power != sliderValue_power_alt) //die config_power soll nur einmal bei sich änderndem "sliderValue_power" geändert werden
{
myfile = SPIFFS.open("/power_config.csv", "a"); // Öffne Datei um Daten anzuhängen ! (a - append)
myfile.println("sliderValue_power");
myfile.println(sliderValue_power);
myfile.close();
sliderValue_power_alt = sliderValue_power;
}
}
und das zeilenweise auslesen (weiss noch nicht wie ich eine bestimmte zeile auslese )
Code:
#include "FS.h" // Hier binden wir die benötigte Bibliothek ein
void readLines(File f)
{
String data;
unsigned int zeilenZaehler = 0;
Serial.println("Inhalt der geöffneten Datei:");
while (f.available()) {
data = f.readStringUntil('\n'); // lesen bis Zeilenumbruch...
Serial.print("Zeile ");
Serial.print(zeilenZaehler);
Serial.print(": ");
Serial.println(data); // ... und wieder ausgegeben
zeilenZaehler++;
}
}
void setup()
{
Serial.begin(115200);
SPIFFS.begin(); // Filesystem mounten
File f = SPIFFS.open( "/power_config.csv", "r"); // Datei zum Lesen öffnen
if (!f)
{
Serial.println("file open failed!");
}
else
{
readLines(f); // Funktion fuer das Zeilenweise Auslesen
f.close(); // Datei schliessen
}
SPIFFS.end(); // Filesystem unmounten
}
void loop()
{
}
Lesezeichen