decimal in Hex und Hex in Hex little endian

Begonnen von CoolTux, 20 Januar 2018, 08:58:58

Vorheriges Thema - Nächstes Thema

CoolTux

Die PIN wird dabei hexadezimal kodiert und umgekehrt übertragen (little endian). Beispiel: die PIN 123456 ist hexadezimal 0x1e240. Als little endian (umgekehrte Übertragung) und mit Nullen auf 4 Byte aufgefüllt ergibt sich: 0x40e20100.


$dec = 123456;
$hex = sprintf('%2x',$dec);
$hex 1e240



Aber wie komme ich nun zu meinem little endian aufgefüllt auf 4 Byte länge 40e20100.
Die 4 Byte bekomme ich hin, aber das little endian leider nicht.


Kann mir bitte jemand einen Anstoß geben?
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

justme1968

zum beispiel so:use strict;
use warnings;
           
my $pin = 123456;
           
my ($hex) = unpack( 'V', pack( 'N', $pin ) );
           
$hex = sprintf('%2x',$hex);
print "$hex\n";


also erst endian drehen und dann hex draus machen.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

CoolTux

Also auf die Idee wäre ich jetzt nicht gekommen, weil da ja stand aus dem Hex ein LittleBigPlanet Endian machen. Oh man, vielen Dank Andre, ich schaue es mir heute Abend mal an. Hab ich Mal wieder zu verquer gedacht.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

rudolfkoenig

andre hat die Loesung geliefert, der Anstoss waere "perldoc -f pack"

CoolTux

Vielen Dank ihr beide, habe es getestet und läuft.
Die pack unpack Lösung hatte ich auch gefunden, hab nur den Fehler gemacht die Reihenfolge anders zu machen.


Nun kann ich auch eine Pin an den BT Thermostaten senden.


Grüße und Euch ein entspanntes Wochenende.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net