IR-Send Update in CUL_IR

git-svn-id: https://svn.fhem.de/fhem/trunk/fhem@1077 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
odroegehorn 2011-10-16 13:32:35 +00:00
parent 4ed481653d
commit 8ed0ec6d7e

View File

@ -14,13 +14,14 @@ sub CUL_IR_Define($$);
sub CUL_IR_Undef($$); sub CUL_IR_Undef($$);
sub CUL_IR_Initialize($); sub CUL_IR_Initialize($);
sub CUL_IR_Parse($$); sub CUL_IR_Parse($$);
#sub CUL_IR_SendCmd($$$$); sub CUL_IR_SendCmd($$);
sub CUL_IR_Set($@); sub CUL_IR_Set($@);
sub CUL_IR_Attr(@); sub CUL_IR_Attr(@);
my %sets = ( my %sets = (
"irLearnForSec" => "" "irLearnForSec" => "",
"irSend" => ""
); );
@ -231,42 +232,69 @@ CUL_IR_Set($@)
InternalTimer(gettimeofday()+$arg, "CUL_IR_RemoveIRLearn", $hash, 1); InternalTimer(gettimeofday()+$arg, "CUL_IR_RemoveIRLearn", $hash, 1);
} }
if($type eq "irSend") { ####################################
return "Usage: set $name irSend <IR-Code | ButtonName>"
if(!$arg || $arg !~ m/^\w+$/);
CUL_IR_SendCmd ($hash, $arg);
}
return $ret; return $ret;
} }
################################### ###################################
#sub sub
#CUL_IR_SendCmd($$$$) CUL_IR_SendCmd($$)
#{ {
# my ($hash, $cmd, $sleep, $waitforack) = @_; my ($hash, $arg) = @_;
# my $io = $hash->{IODev}; my $l4 = GetLogLevel($hash->{NAME},4);
# my $l4 = GetLogLevel($hash->{NAME},4); my $found = 0;
# my $ir;
# select(undef, undef, undef, 0.1*$sleep) if($sleep); my $cmd;
# my $bcmd;
# $cmd =~ m/^(..)(.*)$/;
# my ($mn, $cmd2) = ($1, $2);
#
# if($mn eq "++") {
# $mn = $io->{HM_CMDNR} ? ($io->{HM_CMDNR} +1) : 1;
# $mn = 0 if($mn > 255);
# } else { if ($arg =~ m/^Button.*/) { #Argument is a ButtonName
# $mn = hex($mn); # Search for single Button(s)
foreach my $name (keys %{ $attr{$hash->{NAME}} }) {
if ($name eq $arg) {
($ir, $bcmd) = split("[ \t]", $attr{$hash->{NAME}}{$name}, 2);
$found++;
}
}
if (!$found) {
Log 2, "$hash->{NAME}->irSend: No Button found with name $arg, please define/learn a new one";
return "$hash->{NAME}: Unknown button name $arg";
}
$cmd = sprintf("Is%s", substr($ir, 1));
} else {
if (length ($arg) == 12) {
if ($arg =~ m/^[0-9A-F]+$/) {
$cmd = sprintf("Is%s", $arg);
} else {
Log 2, "$hash->{NAME}->irSend: Wrong IR-Code";
return "$hash->{NAME}: Wrong IR-Code";
}
} elsif (length ($arg) == 13) {
if (substr($arg, 0, 1) eq "I") {
if (substr($arg, 1) =~ m/^[0-9A-F]+$/) {
$cmd = sprintf("Is%s", substr($arg, 1));
} else {
Log 2, "$hash->{NAME}->irSend: Wrong IR-Code";
return "$hash->{NAME}: Wrong IR-Code";
}
} else {
Log 2, "$hash->{NAME}->irSend: Wrong IR-Code";
return "$hash->{NAME}: Wrong IR-Code";
}
} else {
Log 2, "$hash->{NAME}->irSend: Wrong IR-Code";
return "$hash->{NAME}: Wrong IR-Code";
}
# } }
Log $l4, "$hash->{NAME} SEND $cmd";
# $io->{HM_CMDNR} = $mn; IOWrite($hash, "", $cmd);
# $cmd = sprintf("As%02X%02x%s", length($cmd2)/2+1, $mn, $cmd2); }
# Log $l4, "CUL_IR SEND $cmd";
# IOWrite($hash, "", $cmd);
# if($waitforack) {
# $hash->{ackWaiting} = $cmd;
# $hash->{ackCmdSent} = 1;
# InternalTimer(gettimeofday()+0.4, "CUL_IR_Resend", $hash, 0);
# }
#}
sub sub
CUL_IR_Attr(@) CUL_IR_Attr(@)