Go Down

Topic: SD TXT Dateien einlesen (Read 1 time) previous topic - next topic

rz259

Wenn du keine weiteren Infos hast, dann wird dir hier auch keiner helfen können. Was stimmt denn genau nicht? Ich sehe im Serial Output erst mal keinen Fehler.

Rudi


jurs


mal mit 5 Räumen auf dem UNO Board getestet. Die Raumnamen und Temp. liest er sauber aus nur bei den Sensoradressen (egal ob als Hex oder Dez.) gibst probleme ... siehe Serial Output:


Deine Probleme kann ich nicht nachvollziehen. Der von mir gepostete Code liest Raumnamen, Float-Temperaturen und Sensoradressen exakt nach Deinem vorgegebenen Muster (String, Fliesskommazahl, Ganzzahl) aus, und zwar bei der Ganzzahl egal ob sie als Hex oder Dez Zahl angegeben wurde.

Vom Beispielprogramm ausgegeben werden die Adressen allerdings jeweils als Dezimalzahl, auch wenn sie in der Datei als Hex angegeben wurden. Wenn Du die Zahl sowohl in Hex als auch Dez Notation ausgeben möchtest, nimm beispielsweise:
Code: [Select]

    Serial.print("Hex: ");Serial.println(zimmerLong[i],HEX);
    Serial.print("Dez: ");Serial.println(zimmerLong[i]);


Einzige Klippe ist das Dateiende: Mein Code funktioniert für das letzte Feld in der letzten Zeile der Datei (also die Sensoradresse des letzten Raumes) nur dann, wenn die Zeile mit einem Linefeed-Steuerzeichen abgeschlossen ist. Mein Code funktioniert für die letzte Sensoradresse nicht, wenn die letzte Zeile mit Raumangaben ohne Linefeed-Steuerzeichen endet.

Also entweder beendest Du die Datei so, dass am Ende der letzten Zeile noch mindestens ein Trennzeichen oder ein Linefeed-Steuerzeichen folgt. Oder Du schreibst den Code so um, dass das letzte Feld in der letzten Zeile auch ohne Trennzeichen (Komma, Semikolon, Linefeed-Steuerzeichen) ausgewertet wird, einfach nur wenn die Datei nach der letzten Zeile ohne Zeilenende-Steuerzeichen zuende ist.

Wenn Du sowohl mit der Dateierstellung Probleme hast, hinter die letzte Zeile ein Linefeed-Steuerzeichen ans Ende der Datei zu bekommen, als auch mit dem Umschreiben des Codes Probleme hast, kannst Du auch einfach ein normales Trennzeichen ans Zeilenende setzen, wenigstens in der letzten Zeile der Datei, z.B. in der Form
kinderzimmer;22.59;0x4711;


Lan-Police

Hallo Jurs,

vielen Dank für deine Mühe, das mit dem Trennzeichen war genau der Fehler. Ich werde das ganze mal die nächsten Tage auf dem Mega Board testen und nochmal Rückmeldung geben.

Nochmals Danke !  ;)

Gruß
Jens

Go Up