Hi,
ich hab einen Datensatz in Form von
$GPGGA,214621.000,5024.6579,N,00720.1466,E,1,08,1. 1,209.5,M,47.8,M,,\n
Diesen habe ich jetzt mit strtok_r geteilt. Das hat auch eine zeitlang sehr gut funktioniert.
Nur jetzt funktionert es nach einem Reset des µC nur einmal. Mir werden alle Teile des Datensatzes korrekt angezeigt.
Beim zweiten Senden des strings bekomme ich folgendes zurück:
Data Nr 0: $GPGGA,214621.000,50,47.8,<LF>
Data Nr 1: ,47.8,<LF>
strtok_r macht also irgendwie nicht das, was ich möchte. Wie gesagt, vorher hat es ohne Probleme funktioniert. Dann hab ich ein wenig rumgespielt (allerdings nicht an dem Teil mit strtok_r, nur dahinter) und wieder alles rückgängig gemacht und jetzt funktioniert es nichtmehr. Im Anhang die .c Datei.
Weiß jemand warum die Auswertung nicht richtig funktioniert?
Mein zweites anliegen ist, das ich bestimmte Datensätze (z.B. data[1], data[2], data[3]) wieder inklusive "," zusammensetzen möchte. Daher die Aufteilung mit strtok_r, damit ich überflüssiges direkt aussortieren kann.
Das alles muss im endeffekt in einem char pointer gespeichert sein. Kennt wer hierfür eine Lösung?
Danke schonmal im vorraus!
Edit: Ok, ich hab jetzt incoming[] auf 255 erhöht, jetzt geht es wieder. Das komische ist, das mir angezeigt wird das ich 130 Zeichen empfange?!
Wenn ich jetzt ein wenig rumspiele mit dem Datensatz, sprich ein paar Zeichen lösche, kommt eine Zeit lang immernoch 130, dann auf einmal 126.
Die Aufteilung des Datensatzes am "," funktioniert aber trotzdem problemlos.
Da ich den Anzeigefehler ausschließe, da es zu fehlern kommt wenn ich incoming[] unter die empfangen zeichen setze (overflow), gehe ich davon aus das der Fehler irgendwo anders liegen muss...
Lesezeichen