2
0
mirror of https://github.com/fhem/fhem-mirror.git synced 2025-03-13 05:06:35 +00:00

IR-Send Update in CUL_IR

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

View File

@ -14,13 +14,14 @@ sub CUL_IR_Define($$);
sub CUL_IR_Undef($$);
sub CUL_IR_Initialize($);
sub CUL_IR_Parse($$);
#sub CUL_IR_SendCmd($$$$);
sub CUL_IR_SendCmd($$);
sub CUL_IR_Set($@);
sub CUL_IR_Attr(@);
my %sets = (
"irLearnForSec" => ""
"irLearnForSec" => "",
"irSend" => ""
);
@ -231,42 +232,69 @@ CUL_IR_Set($@)
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;
}
###################################
#sub
#CUL_IR_SendCmd($$$$)
#{
# my ($hash, $cmd, $sleep, $waitforack) = @_;
# my $io = $hash->{IODev};
# my $l4 = GetLogLevel($hash->{NAME},4);
#
# select(undef, undef, undef, 0.1*$sleep) if($sleep);
#
# $cmd =~ m/^(..)(.*)$/;
# my ($mn, $cmd2) = ($1, $2);
#
# if($mn eq "++") {
# $mn = $io->{HM_CMDNR} ? ($io->{HM_CMDNR} +1) : 1;
# $mn = 0 if($mn > 255);
sub
CUL_IR_SendCmd($$)
{
my ($hash, $arg) = @_;
my $l4 = GetLogLevel($hash->{NAME},4);
my $found = 0;
my $ir;
my $cmd;
my $bcmd;
# } else {
# $mn = hex($mn);
if ($arg =~ m/^Button.*/) { #Argument is a ButtonName
# 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";
}
# }
# $io->{HM_CMDNR} = $mn;
# $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);
# }
#}
}
Log $l4, "$hash->{NAME} SEND $cmd";
IOWrite($hash, "", $cmd);
}
sub
CUL_IR_Attr(@)