mirror of
https://github.com/fhem/fhem-mirror.git
synced 2025-04-09 13:45:33 +00:00
00_ZWDongle.pm: fix ZME USB reinitialization (Forum #30257)
git-svn-id: https://svn.fhem.de/fhem/trunk@11093 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
parent
ed60ea25cd
commit
97f7940fe5
@ -148,7 +148,7 @@ ZWDongle_Set($@)
|
||||
return "Unknown argument $type, choose one of " . join(" ",@r);
|
||||
}
|
||||
|
||||
Log3 $hash, 4, "ZWDongle set $name $type ".join(" ",@a);
|
||||
Log3 $hash, 4, "ZWDongle *** set $name $type ".join(" ",@a);
|
||||
if($type eq "reopen") {
|
||||
return if(AttrVal($name, "dummy",undef) || AttrVal($name, "disable",undef));
|
||||
delete $hash->{NEXT_OPEN};
|
||||
@ -227,7 +227,7 @@ ZWDongle_Get($@)
|
||||
return "$cmd is unsupported by this controller";
|
||||
}
|
||||
|
||||
Log3 $hash, 4, "ZWDongle get $name $cmd ".join(" ",@a);
|
||||
Log3 $hash, 4, "ZWDongle *** get $name $cmd ".join(" ",@a);
|
||||
|
||||
if($cmd eq "neighborList") {
|
||||
my @b;
|
||||
@ -547,9 +547,14 @@ ZWDongle_Read($@)
|
||||
$data="";
|
||||
next;
|
||||
}
|
||||
|
||||
$hash->{nrNAck} = 0;
|
||||
Log3 $name, 4, "ZWDongle_Read $name: rcvd $msg, sending ACK";
|
||||
DevIo_SimpleWrite($hash, "06", 1); # Send ACK
|
||||
next if($msg !~ m/^(..)(..)/);
|
||||
my $ztp = ($1 eq "00" ? "request" : ($1 eq "01" ? "answer" : "unknown $1"));
|
||||
my $zfi = $zw_func_id{$2} ? $zw_func_id{$2} : "unknown $2";
|
||||
Log3 $name, 4, "ZWDongle_Read $name: rcvd $msg ($ztp $zfi), sending ACK";
|
||||
DevIo_SimpleWrite($hash, "06", 1);
|
||||
|
||||
ZWDongle_shiftSendStack($hash, 1, 5, "device ack reveived")
|
||||
if($msg =~ m/^0013/);
|
||||
|
||||
@ -579,7 +584,7 @@ ZWDongle_ReadAnswer($$$)
|
||||
Log3 $hash, 4, "ZWDongle_ReadAnswer arg:$arg regexp:".($regexp ? $regexp:"");
|
||||
return ("No FD (dummy device?)", undef)
|
||||
if(!$hash || ($^O !~ /Win/ && !defined($hash->{FD})));
|
||||
my $to = ($hash->{RA_Timeout} ? $hash->{RA_Timeout} : 3);
|
||||
my $to = ($hash->{RA_Timeout} ? $hash->{RA_Timeout} : 1);
|
||||
|
||||
for(;;) {
|
||||
|
||||
@ -610,6 +615,10 @@ ZWDongle_ReadAnswer($$$)
|
||||
|
||||
if($nfound == 0){
|
||||
Log3 $hash, 5, "ZWDongle_ReadAnswer: select timeout";
|
||||
if($hash->{GotCAN}) {
|
||||
ZWDongle_ProcessSendStack($hash);
|
||||
next;
|
||||
}
|
||||
return ("Timeout reading answer for get $arg", undef);
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user