use SetExtensions

git-svn-id: https://fhem.svn.sourceforge.net/svnroot/fhem/trunk/fhem@2605 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
ntruchsess
2013-01-30 14:31:49 +00:00
parent 07569ad34c
commit 88f2fa14a6
2 changed files with 11 additions and 6 deletions

View File

@@ -5,6 +5,7 @@ use strict;
use warnings; use warnings;
use Device::Firmata; use Device::Firmata;
use Device::Firmata::Constants qw/ :all /; use Device::Firmata::Constants qw/ :all /;
use SetExtensions;
##################################### #####################################
sub sub
@@ -39,21 +40,25 @@ sub
FRM_OUT_Set($@) FRM_OUT_Set($@)
{ {
my ($hash, @a) = @_; my ($hash, @a) = @_;
my $name = $hash->{NAME};
shift @a;
my $cmd = $a[0];
my $value; my $value;
if ($a[1] eq "on") { if ($cmd eq "on") {
$value=PIN_HIGH; $value=PIN_HIGH;
} elsif ($a[1] eq "off") { } elsif ($cmd eq "off") {
$value=PIN_LOW; $value=PIN_LOW;
} else { } else {
return "illegal value '".$a[1]."', allowed are 'on' and 'off'"; my $list = "on off";
return SetExtensions($hash, $list, $name, @a);
} }
my $iodev = $hash->{IODev}; my $iodev = $hash->{IODev};
if (defined $iodev and defined $iodev->{FirmataDevice} and defined $iodev->{FD}) { if (defined $iodev and defined $iodev->{FirmataDevice} and defined $iodev->{FD}) {
$iodev->{FirmataDevice}->digital_write($hash->{PIN},$value); $iodev->{FirmataDevice}->digital_write($hash->{PIN},$value);
main::readingsSingleUpdate($hash,"state",$a[1], 1); main::readingsSingleUpdate($hash,"state",$a[1], 1);
} else { } else {
return $hash->{NAME}." no IODev assigned" if (!defined $iodev); return $name." no IODev assigned" if (!defined $iodev);
return $hash->{NAME}.", ".$iodev->{NAME}." is not connected"; return $name.", ".$iodev->{NAME}." is not connected";
} }
return undef; return undef;
} }

View File

@@ -23,7 +23,7 @@ SetExtensions($$@)
); );
my $hasOn = ($list =~ m/\bon\b/); my $hasOn = ($list =~ m/\bon\b/);
my $hasOff = ($list =~ m/\bon\b/); my $hasOff = ($list =~ m/\boff\b/);
if(!$hasOn || !$hasOff) { if(!$hasOn || !$hasOff) {
my $em = AttrVal($name, "eventMap", undef); my $em = AttrVal($name, "eventMap", undef);
if($em) { if($em) {