Ich versuche mich gerade ein wenig In Perl und möchte aus einem Reading (also gefüllte Variable) einzelne Bit zustände auslesen.
Ein ausgelesenes Reading zerlege ich mit einem unpack B16 da ich hier einzelne bits über diverse Statis bekomme.
Beispiel:
Die Variable mal gefüllt:
$a=0b1000000000011011;
jetzt möchte ich einzelne Bits haben:
$Running = printf(substr($a,15,1));
und hier z.b. die 2 vorletzten Bits die nächsten
$ChrStatus = sprintf("%2b",substr($a,12,2));
aber.... das dumme ist, das ich eigentlich in der Variable $a genaugenommen keine bits habe sondern 32795 als wert, und beim sprintf ich das nicht bitweise habe.
auch als array funktioniert das so nicht:
@array = split(//,$a,);
Soweit ich das sehe gibt es bei Perl ja nicht die fixe formatierung von Variablen, aber ich kann sie so auch irgendwie nicht zerlegen.
Irgendwie hab ich hier einen denkfehler oder es geht einfach so nicht.
Zitat von: laserrichi am 13 Juli 2021, 13:03:32
über diverse Statis bekomme.
Da rollen sich mir beim Lesen die Zehennägel auf.....
Aber vielleicht hilft das hier weiter:
https://forum.fhem.de/index.php?topic=65048.0 (https://forum.fhem.de/index.php?topic=65048.0)
mal die Nägel schneiden ;-) ja... ich weis..... Status Stati .... Mehrzahl gemeint
Die Lösung ist das maskieren wie in dem andern Thread am Ende als Beispiel enthalten ist.
Sorry, ich kann nicht anders. Die Mehrzahl von Status ist Status!
ZitatDie Mehrzahl von Status ist Status!
Und ich dachte, das sind die Statussis ^^