Perl Variable einzelbit Auswertung

Begonnen von laserrichi, 13 Juli 2021, 13:03:32

Vorheriges Thema - Nächstes Thema

laserrichi

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.
RaspberryPi 4 Bullseye,Homematic,Z-Wave,Rademacher Duofern,Signalduino,Fritz7590,ESPEasy,Tasmota,Robonect,Kameras,1-Wire,Modbus,Solar,Maranz,VU+,ulanzi tc001 mit awtrix light

Nobbynews

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

laserrichi

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.
RaspberryPi 4 Bullseye,Homematic,Z-Wave,Rademacher Duofern,Signalduino,Fritz7590,ESPEasy,Tasmota,Robonect,Kameras,1-Wire,Modbus,Solar,Maranz,VU+,ulanzi tc001 mit awtrix light

marvin78

Sorry, ich kann nicht anders. Die Mehrzahl von Status ist Status!

Icinger

ZitatDie Mehrzahl von Status ist Status!

Und ich dachte, das sind die Statussis ^^
Verwende deine Zeit nicht mit Erklärungen. Die Menschen hören (lesen) nur, was sie hören (lesen) wollen. (c) Paulo Coelho