From 42cd1dea2a4628eefc02c9ea4ba5f2921608a9bc Mon Sep 17 00:00:00 2001 From: rudolfkoenig <> Date: Wed, 18 May 2016 17:24:22 +0000 Subject: [PATCH] 98_SVG.pm: log-scale fixes (Forum #53487) git-svn-id: https://svn.fhem.de/fhem/trunk@11481 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/FHEM/98_SVG.pm | 37 +++++++++++++++++++------------------ fhem/www/pgm2/svg.js | 8 +++++--- 2 files changed, 24 insertions(+), 21 deletions(-) diff --git a/fhem/FHEM/98_SVG.pm b/fhem/FHEM/98_SVG.pm index d676b9574..f42753818 100755 --- a/fhem/FHEM/98_SVG.pm +++ b/fhem/FHEM/98_SVG.pm @@ -1482,6 +1482,8 @@ SVG_render($$$$$$$$$$) push @{$dxp}, $x1; push @{$dyp}, $y1; + $min = $y1 if($min > $y1); + $max = $y1 if($max < $y1); } elsif( $conf{lType}[$idx] eq "lines" ) { push @{$dxp}, undef; @@ -1688,26 +1690,24 @@ SVG_render($$$$$$$$$$) my $dh = $hmax{$a} - $hmin{$a}; my $hmul = $dh>0 ? $h/$dh : $h; - my $idx = 1; - $idx = $1 if( $a =~ m/x\d+y(\d+)/ ); + my $axis = 1; + $axis = $1 if( $a =~ m/x\d+y(\d+)/ ); - my $scale = "y".($idx)."scale"; - $scale = "yscale" if( $idx == 1 ); - my $log = ""; - $log = $conf{$scale} if( $conf{$scale} ); + my $scale = "y".($axis)."scale"; $scale = "yscale" if( $axis == 1 ); + my $log = ""; $log = $conf{$scale} if( $conf{$scale} ); # offsets my ($align,$display,$cll); - if( $idx <= $use_left_axis ) { - $off1 = $x - ($idx-1)*$axis_width-4-$th*0.3; - $off3 = $x - ($idx-1)*$axis_width-4; + if( $axis <= $use_left_axis ) { + $off1 = $x - ($axis-1)*$axis_width-4-$th*0.3; + $off3 = $x - ($axis-1)*$axis_width-4; $off4 = $off3+5; $align = " text-anchor=\"end\""; $display = ""; $cll = ""; - } elsif( $idx <= $use_left_axis+$use_right_axis ) { - $off1 = $x+4+$w+($idx-1-$use_left_axis)*$axis_width+$th*0.3; - $off3 = $x+4+$w+($idx-1-$use_left_axis)*$axis_width-5; + } elsif( $axis <= $use_left_axis+$use_right_axis ) { + $off1 = $x+4+$w+($axis-1-$use_left_axis)*$axis_width+$th*0.3; + $off3 = $x+4+$w+($axis-1-$use_left_axis)*$axis_width-5; $off4 = $off3+5; $align = ""; $display = ""; @@ -1717,8 +1717,8 @@ SVG_render($$$$$$$$$$) $off3 = $x+30; $off4 = $off3+5; $align = " text-anchor=\"end\""; - $display = " display=\"none\" id=\"hline_$idx\""; - $cll = " class=\"SVGplot l$idx\""; + $display = " display=\"none\" id=\"hline_$axis\""; + $cll = " class=\"SVGplot l$axis\""; } #-- grouping @@ -1804,14 +1804,15 @@ SVG_render($$$$$$$$$$) # Second loop over the data: draw the measured points for(my $idx=$#hdx; $idx >= 0; $idx--) { my $a = $conf{lAxis}[$idx]; - my $scale = "y".($idx+1)."scale"; - $scale = "yscale" if( $idx == 0 ); - my $log = ""; - $log = $conf{$scale} if( $conf{$scale} ); SVG_pO "" if(!defined($a)); next if(!defined($a)); + + my $axis = 1; $axis = $1 if( $a =~ m/x\d+y(\d+)/ ); + my $scale = "y".($axis)."scale"; $scale = "yscale" if( $axis == 1 ); + my $log = ""; $log = $conf{$scale} if( $conf{$scale} ); + $min = $hmin{$a}; $hmax{$a} += 1 if($min == $hmax{$a}); # Else division by 0 in the next line my $xmul; diff --git a/fhem/www/pgm2/svg.js b/fhem/www/pgm2/svg.js index 682fa2721..6215cd132 100644 --- a/fhem/www/pgm2/svg.js +++ b/fhem/www/pgm2/svg.js @@ -270,9 +270,10 @@ sv_menu(evt, embed) } else { var d = new Date((((xRaw-par.x_min)/par.t_mul)+par.x_off) * 1000), ts; if(par.t_mul < 0.0001) { // Year - ts = (d.getMonth()+1)+"."+pad0(d.getDate()); + ts =(pad0(d.getMonth()+1))+"."+pad0(d.getDate()+"."+(d.getYear()+1900)); } else if(par.t_mul < 0.001) { // Month - ts = d.getDate()+". "+pad0(d.getHours())+":"+pad0(d.getMinutes()); + ts = (pad0(d.getMonth()+1))+"."+pad0(d.getDate())+ + ". "+pad0(d.getHours())+":"+pad0(d.getMinutes()); } else { ts = pad0(d.getHours())+":"+pad0(d.getMinutes()); } @@ -291,7 +292,8 @@ sv_menu(evt, embed) var selNode = $(sel).get(0); var currval = visible?1:0; var h = parseFloat(sel.attr("y_h")); - //sel.attr("transform", "translate(0,"+h*(1-currval)+") "+ "scale(1,"+currval+")"); + //sel.attr("transform", "translate(0,"+h*(1-currval)+") " + //+ "scale(1,"+currval+")"); if( !visible && selNode.showVal )