From 748d5a02d706c7b51f3c65a978750c155bea331a Mon Sep 17 00:00:00 2001 From: rudolfkoenig Date: Wed, 11 Jul 2012 14:48:00 +0000 Subject: [PATCH] Only parse complete messages git-svn-id: https://fhem.svn.sourceforge.net/svnroot/fhem/trunk/fhem@1720 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- FHEM/16_CUL_RFR.pm | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/FHEM/16_CUL_RFR.pm b/FHEM/16_CUL_RFR.pm index c4b632c5b..e52eba002 100755 --- a/FHEM/16_CUL_RFR.pm +++ b/FHEM/16_CUL_RFR.pm @@ -87,16 +87,18 @@ CUL_RFR_Parse($$) my $name = $hash->{NAME}; return "" if(IsIgnored($name)); - if($smsg =~ m/^T/) { $hash->{NR_TMSG}++ } - elsif($smsg =~ m/^F/) { $hash->{NR_FMSG}++ } - elsif($smsg =~ m/^E/) { $hash->{NR_EMSG}++ } - elsif($smsg =~ m/^K/) { $hash->{NR_KMSG}++ } - else { $hash->{NR_RMSG}++ } - $hash->{Clients} = $iohash->{Clients}; $hash->{MatchList} = $iohash->{MatchList}; - foreach my $m (split(";", $smsg)) { + + my @m = split(";", $smsg, -1); # process only messages terminated with ; + for(my $i = 0; $i < $#m; $i++) { + my $m = $m[$i]; CUL_Parse($hash, $iohash, $hash->{NAME}, $m, "X21"); + if($m =~ m/^T/) { $hash->{NR_TMSG}++ } + elsif($m =~ m/^F/) { $hash->{NR_FMSG}++ } + elsif($m =~ m/^E/) { $hash->{NR_EMSG}++ } + elsif($m =~ m/^K/) { $hash->{NR_KMSG}++ } + else { $hash->{NR_RMSG}++ } } return ""; }