Heinz: Elexol Ether I/O 24 Modul

Beitrag lesen

Moin!

Als Ergebnis erhält man dann:
'%\x02\x01\x8e\xc0\xa8\x00\n\x00\x11\xd8j\x9eR\x80;'

Meine Frage ist nun, wie dieser String genau codiert ist.

steht doch ausführlich oben drüber.
1 Byte Response Identifier   0x25 = '%'
3 Byte IO24 Serial           0x02, 0x01, 0x8E = 00000010, 00000001, 10001110 binär
4 Byte Sender IP             192.168.0.10
6 Byte Sender MAC            00 11 D8 6A 9E 52
2 Byte Sender Port           15232 (0x3B80) oder 32827 (0x803B)

Bei der Portnummer ist nicht ganz klar, ob LSB zuerst übertragen wird (Intel-Format) oder das MSB (Motorola). Deswegen sind da zwei Interpretationen möglich.

Danke für die genaue Aufdröselung. Was mir aber nicht ganz klar ist, ist folgendes:

Warum wird der Linefeed (\n) z.B. nicht als \x0A kodiert sondern steht hier als Escape-Sequenz? Das gleiche ist auch bei % oder dem Strichpunkt für mich nicht ganz erklärlich ...
Und was bedeutet das \xd8j bzw. das \x9eR? Das sind doch keine gültigen Hexadezimalzahlen, oder?

Mfg, Heinz