Hallo,
ich habe ein kleines Problem.
Ich möchte von einem PC mehrere Bytes an einen AVR verschicken, auf
welchem der uip-Stack läuft. Die Schaltung und der uip-Stack
funktioniert fehlerfrei, denn eine Test-HTML-Seite kann ich abrufen.
Um Bytes zu verschicken, verwende ich auf der Desktopseite folgenden
Code.
1 | QByteArray data;
|
2 | data.clear();
|
3 | data[0] = 2;
|
4 | data[1] = 4;
|
5 | data[2] = 50;
|
6 | socket->write(data);
|
Wenn ich mir diese Daten mit Wireshark ansehe, so werden 3 Byte
verschickt. In Wireshark sind die Bytes hex-codiert, aber ich nehme an,
dass es damit zusammenhängt, wie Wireshark die Daten darstellt und nicht
mit der Formatierung im Netzwerkfram zutun hat.
Auf Seiten des Mikrocontrollers wird folgender Code verwenet.
1 | void IncommingPwmData()
|
2 | {
|
3 | if (uip_newdata())
|
4 | {
|
5 | uint8_t* networkBuffer = uip_appdata;
|
6 | byteA = networkBuffer[0];
|
7 | byteB = networkBuffer[1];
|
8 | byteC = networkBuffer[2];
|
9 | }
|
10 | }
|
Der Code hinter dem "if(uip_newdata)" wird auch erreicht. Das habe ich
geprüft, in dem ich dann meine Test-HTML-Seite manipuliert habe. Nur
leider erhalte ich für die drei Bytes andere Werte, als ich abgeschickt
habe.
Hat jemand eine Ahnung, wo das Problem liegen könnte? Ich bin gerade
ziemlich hilflos.
Viele Grüße,
Peter