2
0
mirror of https://github.com/fhem/fhem-mirror.git synced 2025-03-15 04:20:56 +00:00

98_logProxy.pm: recalculate min/max values on clipping extendet range. see forum: http://forum.fhem.de/index.php/topic,49240.0.html

git-svn-id: https://svn.fhem.de/fhem/trunk@10817 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
justme-1968 2016-02-13 17:22:19 +00:00
parent d872d712df
commit 0a49f7c96a

View File

@ -532,6 +532,8 @@ logProxy_clipData($$$$;$)
my ($dp, $from, $to, $interpolate, $predict) = @_;
my $ret = "";
my $min = 999999;
my $max = -999999;
my $comment = "";
my ($dpl,$dpoff,$l) = (length($$dp), 0, "");
@ -569,10 +571,15 @@ logProxy_clipData($$$$;$)
my $value = $prev_value;
$value = logProxy_linearInterpolate( SVG_time_to_sec($prev_timestamp), $prev_value, SVG_time_to_sec($d), $v, $from ) if( $interpolate );
$min = $value if( $value < $min );
$max = $value if( $value > $max );
my @t = localtime($from);
my $timestamp = sprintf("%04d-%02d-%02d_%02d:%02d:%02d", $t[5]+1900, $t[4]+1, $t[3], $t[2], $t[1], $t[0]);
$ret .= "$timestamp $value\n";
}
$min = $v if( $v < $min );
$max = $v if( $v > $max );
$ret .= "$l\n";
@ -606,6 +613,8 @@ logProxy_clipData($$$$;$)
if( defined($next_value) ) {
my $value = $prev_value;
$value = logProxy_linearInterpolate( SVG_time_to_sec($prev_timestamp), $prev_value, SVG_time_to_sec($next_timestamp), $next_value, $to ) if( $interpolate );
$min = $value if( $value < $min );
$max = $value if( $value > $max );
my @t = localtime($to);
my $timestamp = sprintf("%04d-%02d-%02d_%02d:%02d:%02d", $t[5]+1900, $t[4]+1, $t[3], $t[2], $t[1], $t[0]);
@ -614,7 +623,7 @@ logProxy_clipData($$$$;$)
$ret .= $comment;
return $ret;
return (\$ret, $min, $max);
}
#parse plot data to array
@ -887,7 +896,7 @@ logProxy_Get($@)
# clip extended query range to plot range
if( $clip || defined($predict) ) {
$$internal_data = logProxy_clipData($internal_data,$fromsec,$tosec,$interpolate,$predict);
($internal_data,$main::data{"min1"},$main::data{"max1"}) = logProxy_clipData($internal_data,$fromsec,$tosec,$interpolate,$predict);
}
#call postprocessing function
@ -913,7 +922,7 @@ logProxy_Get($@)
$data = $d;
$comment = "#$a[$i]\n";
($internal_data,$main::data{"min1"}, $main::data{"max1"},$main::data{"currval1"}) = logProxy_array2Data($data,$comment);
($internal_data,$main::data{"min1"},$main::data{"max1"},$main::data{"currval1"}) = logProxy_array2Data($data,$comment);
}
if( $$internal_data ) {