Hallo
versuche für meinen Windsensor die Windgeschwindigkeit(in m/s) als Windstärke (Beaufort) auszugeben.
Dafür habe ich die Funktion sub GetBeaufort($) in die 99_myUtils.pm eingefügt.
sub GetBeaufort($) {
my ($Speed) = @_;
my $ret=99;
if ($Speed < 0.5) {
$ret=0;
} elsif ($Speed >= 0.51 or $Speed < 2.06){
$ret=1;
} elsif ($Speed >= 2.06 or $Speed < 3.6){
$ret=2;
} elsif ($Speed >= 3.6 or $Speed < 5.66){
$ret=3;
} elsif ($Speed >= 5.66 or $Speed < 8.23){
$ret=4;
} elsif ($Speed >= 8.23 or $Speed < 11.23){
$ret=5;
} elsif ($Speed >= 11.23 or $Speed < 14.4){
$ret=6;
} elsif ($Speed >= 14.4 or $Speed < 17.49){
$ret=7;
} elsif ($Speed >= 17.49 or $Speed < 21.09){
$ret=8;
} elsif ($Speed >= 21.09 or $Speed < 24.69){
$ret=9;
} elsif ($Speed >= 24.69 or $Speed < 28.81){
$ret=10;
} elsif ($Speed >= 28.81 or $Speed < 32.92){
$ret=11;
} else {
$ret=12;
}
return $ret;
}
Leider funktioniert es nicht so wie ich es erwarte. Es soll, je nach Windgeschwindigkeit, die Windstärke zurückgegeben werden. Unter 0.5 Windgeschwindigkeit wird "0" richtig zurückgegeben. Über 0.5 wird "1" zurückgegeben. Egal wie hoch der Wert über 0.5 m/s Windgeschwindigkeit ist es wird immer "1" zurückgegeben.
Was mache ich falsch?
Auf die schnelle geschaut.
Mach mal aus Deinen or ein and
Jo, das wars. Danke :)