Der Martin: Elexol Ether I/O 24 Modul

Beitrag lesen

Hallo,

1 Byte Response Identifier
3 Byte IO24 Serial
4 Byte Sender IP
6 Byte Sender MAC
2 Byte Sender Port

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.

Man kann ihn wohl mit dem struct-Modul zerlegen, doch wie genau mache ich das? Und was macht das struct Modul in diesem Falle eigentlich genau?

Ich kenne Python nicht, und das struct-Modul noch weniger. Aber eigentlich brauchst du doch nur auf die einzelnen Bytes des Strings zuzugreifen.

So long,
 Martin

--
Ist die Katze gesund,
freut sich der Hund.