|
From: <pf...@us...> - 2012-05-06 19:15:59
|
Revision: 793
http://openautomation.svn.sourceforge.net/openautomation/?rev=793&view=rev
Author: pfry
Date: 2012-05-06 19:15:53 +0000 (Sun, 06 May 2012)
Log Message:
-----------
Modified Paths:
--------------
wiregate/plugin/generic/Logikprozessor.pl
wiregate/plugin/generic/conf.d/Logikprozessor.conf
Modified: wiregate/plugin/generic/Logikprozessor.pl
===================================================================
--- wiregate/plugin/generic/Logikprozessor.pl 2012-05-06 12:19:51 UTC (rev 792)
+++ wiregate/plugin/generic/Logikprozessor.pl 2012-05-06 19:15:53 UTC (rev 793)
@@ -328,11 +328,11 @@
next unless defined $result;
knx_write($transmit, $result);
-
- # Timer fuer nachste Aktion setzen
- set_timer();
}
+# Timer fuer nachste Aktion setzen
+set_timer();
+
return unless $retval;
return $retval;
Modified: wiregate/plugin/generic/conf.d/Logikprozessor.conf
===================================================================
--- wiregate/plugin/generic/conf.d/Logikprozessor.conf 2012-05-06 12:19:51 UTC (rev 792)
+++ wiregate/plugin/generic/conf.d/Logikprozessor.conf 2012-05-06 19:15:53 UTC (rev 793)
@@ -5,16 +5,16 @@
%logic=(
# 1. Alle Werte, die auf einer GA gesendet werden, werden mit 2 multipliziert auf einer anderen GA weitergegeben
- mal2 => { receive=>'9/5/201', transmit=>'9/5/202', translate => sub { my (undef,$input)=@_; 2*$input; }, },
+ mal2 => { receive=>'9/5/201', transmit=>'9/5/202', translate => sub { 2*$input; }, },
# das "undef" steht da einfach, weil uns der letzte Ergebniswert nicht interessiert
# 2. Die Werte auf der ersten GA werden aufsummiert, das Ergebis auf der anderen GA gesendet.
# Damit kann man bspw aus einem relativen Dimmwert einen absoluten Dimmwert machen.
- sum => { receive=>'9/5/207', transmit=>'9/5/208', translate => sub { my ($state,$input)=@_; $state+$input; }, },
+ sum => { receive=>'9/5/207', transmit=>'9/5/208', translate => sub { $state+$input; }, },
# $state enthaelt das jeweils letzte Ergebnis.
# 3. Wie oben, aber das Ergebnis limitiert auf den Bereich 0-100
- lsum => { receive=>'1/2/7', transmit=>'1/2/8', translate => sub { my ($state,$input)=@_; limit(0,$state+$input,100); }, },
+ lsum => { receive=>'1/2/7', transmit=>'1/2/8', translate => sub { limit(0,$state+$input,100); }, },
# 4. Hier eine "Treppenlichtfunktion". Auf jeden Schreibzugriff auf die receive-Adresse wird 10min spaeter eine 0 an
# die transmit-Adresse (hier gleich) geschickt. Verzoegert wird uebrigens nur das Senden, nicht das Ausfuehren der
@@ -33,7 +33,7 @@
# 6. Eine einfache UND-Logik mit zwei Eingaengen. Falls ein Telegramm auf einer der beiden receive-GAs empfangen wird,
# wird die andere Adresse noch ausgelesen, die Logik angewendet und das Ergebnis auf der transmit-GA uebermittelt
- und => { receive=>['1/2/12','1/2/13'], transmit=>'1/2/14', translate => sub { my (undef,$input)=@_; $input->[0] && $input->[1]; }, },
+ und => { receive=>['1/2/12','1/2/13'], transmit=>'1/2/14', translate => sub { $input->[0] && $input->[1]; }, },
# 7. Ein komplexerer Fall nur zur Demonstration: hier besteht der Status des Logikprozessors aus mehreren Werten.
# Es wird immer die Summe aus letztem, vorletztem und aktuellem Wert gesendet, und zwar mit 30s Verzoegerung.
@@ -41,8 +41,7 @@
transmit=>'9/5/206',
delay=>30,
state => {val1=>0, val2=>0},
- translate => sub { my ($state,$input)=@_;
- $state->{val2}=$state->{val1}; $state->{val1}=$state->{result};
+ translate => sub { $state->{val2}=$state->{val1}; $state->{val1}=$state->{result};
$state->{val2}+$state->{val1}+$input; },
},
# Wenn state ein Hash ist, wird der letzte gesendete Wert in $state->{result} gespeichert.
@@ -50,7 +49,7 @@
# 8. Schlussendlich wieder mal Werbung fuer die GA-Kurznamen. Setzt man im Skript Logikprozessor.pl $use_short_names=1
# und verwendet GA-Namen mit eindeutigem Kuerzel (=erstes Wort des Namens), so funktioniert auch das folgende:
D_SZ_Decke => { receive=>'LR_SZ_Decke_1', transmit=>'LK_SZ_Decke_1',
- translate => sub { my ($state,$input)=@_; limit(0,$state+20*$input,100); }, },
+ translate => sub { limit(0,$state+20*$input,100); }, },
# ist doch leserlicher, oder? Hier wird ein relativer Dimmwert durch Skalierung und Summierung
# in einen absoluten Wert umgewandelt
);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|