daten von sd-card über serial verschicken

hi …

ich hab auf einem openlog mehrere mb daten liegen, log-dateien von einem sensor
die würde gern über serial zu einem rechner schicken
dabei hab ich das problem das ein einfaches serial.read in einen buffer nicht reicht,
weil der buffer ja immer wegen speichermangel überläuft :wink:

ich hab das aktuell so versucht, aber da kommt nur bytemüll raus ;(

in der datei auf der sd-card steht sowas

3:0,-31,-18,-255,
3:1,-31,-16,-255,
3:2,-32,-17,-256,
3:3,-31,-17,-257,
3:4,-31,-18,-255,
3:5,-29,-18,-255,
3:6,-31,-18,-256,
3:7,-31,-18,-257,
3:8,-31,-18,-255,
3:9,-31,-17,-255,

und raus kommt sowas

3:0,-31,-1
ÿ8,-255,3
ÿ:1,-31,-16
ÿ,-255,3:
ÿ2,-32,-17,
ÿ-256,3:3
ÿ,-31,-17,-
ÿ257,3:4,
ÿ-31,-18,-2
ÿ55,3:5,-
ÿ29,-18,-25
ÿ5,3:6,-3
ÿ1,-18,-256
ÿ,3:7,-31
ÿ,-18,-257,
ÿ3:8,-31,
ÿ-18,-255,
ÿ3:9,-31,-
ÿ17,-255,
ÿ3:10,-31,-
ÿ18,-256,
ÿ3:11,-31,-

kann mir jemand auf die sprünge helfen ???

void sendFile() {
    String s = "";
    String ss = "";
    String a = "size ";
        a += fileName;
        a += "\r";
    Logger.print(a);
    while ( Logger.available() != 0 ) {
        byte iB = Logger.read();
        if ( iB == '>' ) break;
        s += iB;
    }
    int sC = s.toInt() + 1;
    
    s = "";
    for(int i=0;i<=sC;i+=10) {
        String c = "read ";
        c += fileName;
        c += " ";
        c += i;
        c += " 10\r";
        Logger.print(c);
        while(1) {
            if(Logger.available())
                if(Logger.read() == '\r') break;
        }
        while ( Logger.available() >= 0 ) {
            sleep(1);
            byte inByte = Logger.read();
            if ( inByte == '>' ) break;
            if ( inByte != '\r' && inByte != '\n' ) {
                ss += (char)inByte;
            }
        }
        Serial1.print(ss);
        Serial1.print("\n");
        ss = "";
        c = "";
    }
    Serial1.print("\n");
}

Du hast offensichtlich den ersten fetten Eintrag im Forum nicht gelesen, der klarstellt, dass Du immer die wichtigsten Informationen posten sollst, damit wir Dir helfen können. Dazu gehört, dass jede Bibliothek, die nicht mit der IDE mitgeliefert wird, per Link referenziert wird. Ebenfalls steht dort, dass Du den ganzen Sketch posten sollst und nicht nur Auszüge. Links auf die verwendete Hardware gehören auch dazu, bei Original-Arduino-Hardware genügt die Namensnennung.

Die Ausgabe, die Du gepostet hast, kommt mit ziemlich grosser Sicherheit nicht von der geposteten Code-Stelle. Auch daran siehst Du, dass Du den ganzen Sketch posten sollst.

Hallo, mit Deinem Code kann ich nicht viel anfangen…

"weil der buffer ja immer wegen speichermangel überläuft"

Ist es nicht so, das dieser "buffer" genau definiert werden muss? Du kannst ja nicht einfach einen Haufen Daten über die "Serielle" jagen. Das sollte man eigentlich wissen. Ich hoffe es hilft Dir: http://www.jeremyblum.com/2011/04/05/tutorial-11-for-arduino-sd-cards-and-datalogging/ Gruß und Spaß Andreas

hat sich erledigt

es sind timing-probleme wenn man serial und softserial gleichzeitig verwendet …