2
0
mirror of https://github.com/fhem/fhem-mirror.git synced 2025-01-31 18:59:33 +00:00

44_TEK603: Added patch for TEK603 not prevent FHEM start if USB device is not reachable and change to use DevIo

git-svn-id: https://svn.fhem.de/fhem/trunk@22136 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
eisler 2020-06-08 10:00:58 +00:00
parent b6c57b6cc5
commit 21c22f517b

View File

@ -27,6 +27,7 @@ package main;
use strict;
use warnings;
use DevIo;
use Digest::CRC; # libdigest-crc-perl
@ -42,8 +43,6 @@ sub TEK603_reconnect($);
sub TEK603_Initialize($) {
my ($hash) = @_;
require $attr{global}{modpath} . '/FHEM/DevIo.pm';
$hash->{ReadFn} = 'TEK603_read';
$hash->{ReadyFn} = 'TEK603_ready';
$hash->{DefFn} = 'TEK603_define';
@ -139,16 +138,28 @@ sub TEK603_undef($$) {
}
sub TEK603_ready($) {
sub TEK603_ready() {
my ($hash) = @_;
my $name = $hash->{NAME};
return if (IsDisabled($name));
return DevIo_OpenDev($hash, 1, 'TEK603_doInit') if($hash->{STATE} eq 'disconnected');
# This is relevant for windows/USB only
my ($BlockingFlags, $InBytes, $OutBytes, $ErrorFlags);
my $po = $hash->{USBDev};
my ($BlockingFlags, $InBytes, $OutBytes, $ErrorFlags) = $po->status;
return ($InBytes > 0);
if ($po) {
($BlockingFlags, $InBytes, $OutBytes, $ErrorFlags) = $po->status;
return ($InBytes > 0);
}
# Someone set us up the bomb
Log3($hash->{NAME}, 1, qq[Can't read from $hash->{DeviceName}]);
# disable device
Log3($hash->{NAME}, 1, qq[Disabled device due read errors]);
CommandAttr(undef, $hash->{NAME} . ' disable 1');
return;
}
sub TEK603_read($) {