W
jakap schrieb:
Wollte mich nochmal melden.
da ist gut - Du wolltest doch eine Diskussion starten.
jakap schrieb:
In wie fern meinst du jetzt "lesbare" Werte, könnteste mir das erklären?
Über die serielle Schnittstelle kommen sogenannte Zeichen. Jedes Zeichen (auch Byte) hat einen (Zahlen-)Wert der zwischen 0 und 255 (0x00 bis 0xff) liegen kann. Was so ein Zeichen bedeutet, kann jetzt ganz unterschiedlich interpretiert werden. Wenn man annimmt, dass es sich dabei um 'lesbare Zeichen' handelt, so liegen die (meisten) Werte zwischen 32 (0x20) und 126 (0x7e). Dabei wäre eine 32 ein Leerzeichen und z.B. eine 65 der Buchstabe A. Das ganze nennt man auch ASCII-Code.
Wenn Du von Hexzahlen sprichst, so würde ich erwarten, dass z.B. zwei Byte über die Schnittstelle kommen - z.B. eine 70(0x46) für ein F und eine 48(0x30) für die Ziffer 0 - macht zusammen F0 also die (Dezimal)zahl 240.
Wenn man von Binärcode spricht, so meint man damit i.A. die selbe Art wie die Werte (in diesem Fall Integer-Werte) auch im Memory des Speichers abgelegt sind. Angenommen es liegt Big Endian vor, so bedeutet dieselbe Folge der zwei Byte 70 und 48 wie oben die Zahl 17968=256*70+48. So eine Zahl aus zwei Byte nennt man auch ein 'Word'.
Es kommt also immer auf die Interpretation bzw. die Vereinbarung zwischen Sender und Empfänger an, was die Folge von Zeichen (bzw. Byte) bedeutet.
Der Stream, den ich Dir vorgeschlagen habe, ist nur für lesbare Zeichen wirklich gut geeignet. Du kannst Dir aber auch selber einen eigenen Stream schreiben, der Binärdaten 'versteht'. Hier hatte ich schon mal so ein Beispiel für binäres Lesen vorgestellt. Voraussetzung dafür ist immer ein Streambuf, der die einzelnen Zeichen (bzw. Bytes) liefert.
Gruß
Werner