Johannes hat geschrieben:Edit: Deine PrintAck()-Funktion scheint ueberhaupt nur die ersten 7 Zeichen der Antwort zu lesen und auszugeben.
Gut, ich hab jetzt mal die Schleifendurchläufe auf 51 hochgestellt, das reicht um alles auszulesen.
Dieses Script-Schnipsel kommt glaub ich von Andy damals noch.
Es sieht jetzt komplett aus, aber er liest die ganzen Leerdaten mit ein
Code: Alles auswählen
-> Server connecting...
connected
-> Server:
00 00 00 00 01 00 00 00 00 00 01 00 04 00 00 00 01 00 02 00 04 00 00 00 02 00 02 00 0A 00 00 00 03 00 46 61 68 72 70 75 6C 74 05 00 00 00 04 00 32 2E 30 FF FF FF FF FF FF FF FF
(HELLO)
<- Server:
00 00 00 00 FFFF FFFF FFFF FFFF FFFF FFFF FFFF 01 00 00 00 00 00 02 00 0A 00 00 00 01 00 20 33 2E 31 2E 30 2E 30 03 00 00 00 02 00 30 03 00 00 00 03 00 00 FFFF FFFF FFFF FFFF
(ACK_HELLO)
-> Server:
00 00 00 00 02 00 00 00 00 00 03 00 00 00 00 00 0A 00 04 00 00 00 01 00 01 00 FF FF FF FF FF FF FF FF FF FF FF FF
(NEEDED_DATA)
<- Server:
FFFF FFFF FFFF FFFF 00 00 00 00 FFFF FFFF FFFF 02 00 00 00 00 00 04 00 03 00 00 00 01 00 00 FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF
(ACK_NEEDED_DATA)
Das ganze war ja auch damals nur für eine optische Kontrolle am Terminal als Ausgabe gedacht.
Hat jemand hier ne Ahnung wie man das besser schreiben könnte um nicht den ganzen Leerdatenmüll mit auszulesen bzw. solange Daten kommen die zur Antwort gehören?
Code: Alles auswählen
void PrintACK()
{
char buffer[16];
for(int i=0; i<51; i++)
{
char c = client.read();
sprintf(buffer, "%02X ", c);
Serial.print(buffer);
}
}