mirror of
https://github.com/fhem/fhem-mirror.git
synced 2025-03-03 16:56:54 +00:00
00_CUL.pm: multi-iodev timer changes for HM from Martin.
git-svn-id: https://svn.fhem.de/fhem/trunk@4530 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
parent
d121b048e5
commit
50951b74ff
@ -105,8 +105,8 @@ CUL_Initialize($)
|
|||||||
$hash->{AttrList}= "do_not_notify:1,0 dummy:1,0 " .
|
$hash->{AttrList}= "do_not_notify:1,0 dummy:1,0 " .
|
||||||
"showtime:1,0 model:CUL,CUN,CUR " .
|
"showtime:1,0 model:CUL,CUN,CUR " .
|
||||||
"sendpool addvaltrigger rfmode:SlowRF,HomeMatic,MAX ".
|
"sendpool addvaltrigger rfmode:SlowRF,HomeMatic,MAX ".
|
||||||
"hmId ".
|
"hmId ".
|
||||||
"hmProtocolEvents:0_off,1_dump,2_dumpFull,3_dumpTrigger";
|
"hmProtocolEvents:0_off,1_dump,2_dumpFull,3_dumpTrigger ";
|
||||||
|
|
||||||
$hash->{ShutdownFn} = "CUL_Shutdown";
|
$hash->{ShutdownFn} = "CUL_Shutdown";
|
||||||
|
|
||||||
@ -680,17 +680,17 @@ sub
|
|||||||
CUL_XmitDlyHM($$$)
|
CUL_XmitDlyHM($$$)
|
||||||
{
|
{
|
||||||
my ($hash,$fn,$now) = @_;
|
my ($hash,$fn,$now) = @_;
|
||||||
|
|
||||||
my $id = (length($fn)>19)?substr($fn,16,6):"";#get HMID destination
|
my $id = (length($fn)>19)?substr($fn,16,6):"";#get HMID destination
|
||||||
if($id &&
|
if($id &&
|
||||||
$hash->{helper} &&
|
$modules{CUL_HM}{defptr}{$id} &&
|
||||||
$hash->{helper}{$id} &&
|
$modules{CUL_HM}{defptr}{$id}{helper}{io} &&
|
||||||
$hash->{helper}{$id}{nextSend}) {
|
$modules{CUL_HM}{defptr}{$id}{helper}{io}{nextSend}) {
|
||||||
my $dDly = $hash->{helper}{$id}{nextSend} - $now;
|
my $dDly = $modules{CUL_HM}{defptr}{$id}{helper}{io}{nextSend} - $now;
|
||||||
if ($dDly > 0.01){# wait less then 10 ms will not work
|
if ($dDly > 0.01){# wait less then 10 ms will not work
|
||||||
$dDly = 0.1 if($dDly > 0.1);
|
$dDly = 0.1 if($dDly > 0.1);
|
||||||
Log3 $hash->{NAME}, 5, "CUL $id dly:".int($dDly*1000)."ms";
|
Log3 $hash->{NAME}, 5, "CUL $id dly:".int($dDly*1000)."ms";
|
||||||
InternalTimer($now+$dDly,"CUL_XmitDlyHMTo", "$hash->{NAME}:$id", 1);
|
select(undef, undef, undef, $dDly);
|
||||||
return 1;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
shift(@{$hash->{helper}{$id}{QUEUE}});
|
shift(@{$hash->{helper}{$id}{QUEUE}});
|
||||||
@ -954,8 +954,11 @@ CUL_Parse($$$$$)
|
|||||||
} elsif($fn eq "I" && $len >= 12) { # IR-CUL/CUN/CUNO
|
} elsif($fn eq "I" && $len >= 12) { # IR-CUL/CUN/CUNO
|
||||||
;
|
;
|
||||||
} elsif($fn eq "A" && $len >= 20) { # AskSin/BidCos/HomeMatic
|
} elsif($fn eq "A" && $len >= 20) { # AskSin/BidCos/HomeMatic
|
||||||
my $srcId = substr($dmsg,9,6);
|
my $src = substr($dmsg,9,6);
|
||||||
$hash->{helper}{$srcId}{nextSend} = gettimeofday() + 0.100;
|
if($modules{CUL_HM}{defptr}{$src}){
|
||||||
|
$modules{CUL_HM}{defptr}{$src}{helper}{io}{nextSend} =
|
||||||
|
gettimeofday() + 0.100;
|
||||||
|
}
|
||||||
$dmsg .= "::$rssi:$name" if(defined($rssi));
|
$dmsg .= "::$rssi:$name" if(defined($rssi));
|
||||||
|
|
||||||
} elsif($fn eq "Z" && $len >= 21) { # Moritz/Max
|
} elsif($fn eq "Z" && $len >= 21) { # Moritz/Max
|
||||||
|
Loading…
x
Reference in New Issue
Block a user