Hallo Leute Hab im Moment ein Verständigungsproblem. In meiner Doku steht folgende Definition: Wert 0: ... Wert 1: ... Wert 2: ... Wert 3: ... Wert 4: ... Wert 5: 0xnn Firmware version, MSB Wert 6: 0xnn Firmware version Wert 7: 0xnn Firmware version Wert 8: 0xnn Firmware version, LSB The firmware version is represented in four bytes (VAL5 … VAL8, hex encoded): Example: 0x01 0x02 0x00 0x14 = V1.2.0.20 Ich habe in meinem Empfangsbuffer (Wert0-8)einzelne "unsigned char" Werte, die ich zu einer Version zusammensetzen muss. Kann mir nun jemand erklären, wie sie eine Versionsangabe 1.2.0.10 übertragen werden. 0x14 = 20d kann ich ja noch nachvollziehen. Ich nehme nicht an, dass nur die Werte 0x00-0x09 = 0-9 0x10-0x20 = 16-32 0x21-0x30 = 33-48 usw. ... zur Verfügung stehen werden. Bin für jeden Tip sehr dankbar!
Hi >Kann mir nun jemand erklären, wie sie eine Versionsangabe 1.2.0.10 >übertragen werden. 0x14 = 20d kann ich ja noch nachvollziehen. Wie wäre es mit '0x01 0x02 0x00 0x0A'? MfG Spess
Andreas Häusler schrieb: > Kann mir nun jemand erklären, wie sie eine Versionsangabe 1.2.0.10 > übertragen werden. 0x01 0x02 0x00 0x0a
Hexzahlen sind zur Basis 16. Also: 0 = 0x00 1 = 0x01 ... 9 = 0x09 10 = 0x0A 11 = 0x0B 12 = 0x0C 13 = 0x0D 14 = 0x0E 15 = 0x0F Eine 0x10 entspricht einer dezimalen 16. Wenn du aber eine dezimale 10 in Hex ausdrücken willst, dann ist es 0x0A. Alles klar?
Hallo Leute Herzlichen Dank für Euren Beitrag, aber das bringt mich so nicht weiter. Wie gesagt, so wie ich das verstanden habe, habe ich ja nur 1Byte zur Verfügung welches als Hex- Wert zu interpretieren ist. Wenn mir also jemand erklären kann, wie die folgende Versionsangabe übertragen wird: 1.2.0.10 der folgende Ansatz funktioniert ja gemäss Example: 0x01 0x02 0x00 0x14 = V1.2.0.20 nicht: 1 = 0x01 2 = 0x02 0 = 0x00 10 = (eigentlich 0x0A) wenn aber 0x10 daher kommt, beträgt die Wertigkeit 16 und eben nicht 10
Andreas Häusler schrieb: > 10 = (eigentlich 0x0A) wenn aber 0x10 daher kommt, > beträgt die Wertigkeit 16 und eben nicht 10 10 = 0x0A (1Byte) 16 = 0x10 (1Byte) Wo ist das Problem?
OK So wie ich das verstanden habe, schicken sie mir über die Schnittstelle den dezimalen Wert 14, den ich als 20 interpretieren muss. Wenn sie den Wert 20 schicken würden, macht die Aussage hex encoded für mich ja keinen Sinn. (Aber wie heisst es doch so schön, nichts ist unmöglich, Tojota) Wert 5: 0xnn Firmware version, MSB Wert 6: 0xnn Firmware version Wert 7: 0xnn Firmware version Wert 8: 0xnn Firmware version, LSB The firmware version is represented in four bytes (VAL5 … VAL8, hex encoded): Example: 0x01 0x02 0x00 0x14 = V1.2.0.20 Was senden sie mir denn für einen Wert, wenn ich in der Version den Wert 12 anzeigen muss?
Hi >Was senden sie mir denn für einen Wert, wenn ich in der Version den >Wert 12 anzeigen muss? 0x0C.
Andreas Häusler schrieb: > So wie ich das verstanden habe, schicken sie mir über die Schnittstelle > den dezimalen Wert 14, den ich als 20 interpretieren muss.# ^^^^^^^^^ Ja was jetzt, bekommst Du 14 oder 0x14 (=20)? > Wenn sie den Wert 20 schicken würden, macht die Aussage hex encoded > für mich ja keinen Sinn. 0x20 = 32 , warum macht das keinen Sinn? > Was senden sie mir denn für einen Wert, wenn ich in der Version den > Wert 12 anzeigen muss? 12 = 0x0C Was ist denn jetzt eigentlich Dein Problem?
@Andreas Häusler
Schreib nicht so viel, sondern setz Dich doch erst einmal mit dem
Zahlensystem auseinander.
>den dezimalen Wert 14, den ich als 20 interpretieren muss.
Die 14 ist hier kein dezimaler Wert. Steht doch schon in der Doku: "hex
encoded"
Andreas Häusler schrieb: > Wie gesagt, so wie ich das verstanden habe, habe ich ja nur 1Byte zur > Verfügung welches als Hex- Wert zu interpretieren ist. Nö, als dezimal natürlich.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.