Ich hab nochmal ein wenig nachgeforscht, und zwar folgendes:
Das Programm erwartet Daten vom Typ Cardinal (in Delphi), das entspricht einem UInt32 (also eigentlich einem 4Byte-Wert). Ich hab nochmal das komplette Delphi-Testprogramm angehängt:
Code: Alles auswählen
s := Chr($00)+Chr($01);
s := s + Chr($02);
s := s + Chr($03);
ident := 'Test';
s := s + Chr(Length(ident));
s := s + ident
// gesamte Paketlänge
card := Length(s);
PCardinal(@FArray)^:=card;
// intel-order
for a:=3 downto 0 do s:=Chr(FArray[a]) + s;
// sende s...
Ich vermute, dass bei mir die Ermittlung der Gesamtlänge schief geht. Das Protokoll ist nicht sonderlich spannend, erwartet aber vom Aufbau her:
4Byte: Packetlänge
2Byte: 00 01
1Byte: 02
1Byte: 03
beliebig: identification mit dem ersten Byte = Länge der ID
Beispielsweiße würde es so aussehen:
00 00 00 39 00 01 02 03 4Test
Allerdings ist mir nicht ganz klar, wie ich vor allem auch den ID Teil codieren soll?
in Ascii wäre 4Test ja:
34 54 65 73 74
=>
00 00 00 39 00 01 02 03 34 54 65 73 74
wobei 39 der 9 (Hex) entspricht!
Danke nochmals für eure Infos
Galdo