2
0
mirror of https://github.com/fhem/fhem-mirror.git synced 2025-04-07 19:04:20 +00:00

factor out sub FRM_poll

git-svn-id: https://svn.fhem.de/fhem/trunk@2591 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
ntruchsess 2013-01-28 23:01:42 +00:00
parent 5dfde9ffab
commit bc543cf378

View File

@ -183,12 +183,7 @@ sub FRM_DoInit($) {
$device->system_reset();
$device->firmware_version_query();
for (my $i=0;$i<50;$i++) {
my ($rout, $rin) = ('', '');
vec($rin, $hash->{FD}, 1) = 1;
my $nfound = select($rout=$rin, undef, undef, 0.1);
my $mfound = vec($rout, $hash->{FD}, 1);
if($mfound) {
$device->poll();
if (FRM_poll($hash)) {
if ($device->{metadata}{firmware} && $device->{metadata}{firmware_version}){
$device->{protocol}->{protocol_version} = $device->{metadata}{firmware_version};
$main::defs{$name}{firmware} = $device->{metadata}{firmware};
@ -196,12 +191,7 @@ sub FRM_DoInit($) {
$device->analog_mapping_query();
$device->capability_query();
for (my $j=0;$j<100;$j++) {
my ($rout, $rin) = ('', '');
vec($rin, $hash->{FD}, 1) = 1;
my $nfound = select($rout=$rin, undef, undef, 0.1);
my $mfound = vec($rout, $hash->{FD}, 1);
if ($mfound) {
$device->poll();
if (FRM_poll($hash)) {
if (($device->{metadata}{analog_mappings}) and ($device->{metadata}{capabilities})) {
my $inputpins = $device->{metadata}{input_pins};
$main::defs{$name}{input_pins} = join(",", sort{$a<=>$b}(@$inputpins));
@ -347,6 +337,19 @@ sub FRM_string_observer
main::readingsSingleUpdate($hash,"error",$string,1);
}
sub FRM_poll
{
my ($hash) = @_;
my ($rout, $rin) = ('', '');
vec($rin, $hash->{FD}, 1) = 1;
my $nfound = select($rout=$rin, undef, undef, 0.1);
my $mfound = vec($rout, $hash->{FD}, 1);
if($mfound) {
$hash->{FirmataDevice}->poll();
}
return $mfound;
}
1;
=pod