Guten Morgen,
kann mir hier bitte jemand helfen. Ich habe am AVR-NET-IO ein Feuchtigkeitssensor am digitalen Eingang. Abfragen kann ich diesen Port und ich bekomme ein "port 0: 0x80" oder "port 0: 0x81" zurück je nach Zustand am Bit 0 (PA0).
Wie bekomme ich das jetzt in die Postproc der classdef Datei so verpackt, dass ich am Ende eine 1 oder 0 zurück bekomme, bzw ein Voll oder Leer? Die Kontrolle sollte aber nur auf das niederwertigste Bit erfolgen da ich bei Verwendung der anderen Eingänge natürlich auch komplett andere Hex Rückgaben erhalte.
/Daniel
Da ja leider keine Reaktionen kamen, habe ich das dank albundy118 mittlerweile hinbekommen, schaut dann so aus:
params IOPort IOPin
get status cmd {"io get pin %IOPort"}
get status postproc {\
my @@fullport = split(/ /,trim($_));\
my @@hexport = split(/x/,$fullport[2]);\
my $binport = sprintf( "%%b", hex( $hexport[1] ) );\
my $binlength = length($binport);\
while ($binlength < 8){\
$binport = "0".$binport;\
$binlength = length($binport);\
}\
my @@pinarray = split('',$binport);\
my %%hash = (\
1 => '7',\
2 => '6',\
3 => '5',\
4 => '4',\
5 => '3',\
6 => '2',\
7 => '1',\
8 => '0',\
);\
my $pinvalue = $pinarray[$hash{%IOPin}];\
$pinvalue;\
}
Gruß
Daniel