From fa37d99c05cd58259e1d446b1de6367d2995c577 Mon Sep 17 00:00:00 2001 From: Jan Michel Date: Thu, 27 Oct 2016 21:23:05 +0200 Subject: [PATCH] Add display of Power of DiRich --- dmon/scripts/dmon_adcvolt.pl | 90 +++++++++++++++++++++++++----------- tools/HPlot.pm | 8 ++-- 2 files changed, 67 insertions(+), 31 deletions(-) diff --git a/dmon/scripts/dmon_adcvolt.pl b/dmon/scripts/dmon_adcvolt.pl index bddbeea..68f34c6 100755 --- a/dmon/scripts/dmon_adcvolt.pl +++ b/dmon/scripts/dmon_adcvolt.pl @@ -98,11 +98,35 @@ HPlot::PlotInit({ bargap => 0.4, curvewidth => 1, }); + +HPlot::PlotInit({ + name => "PowerPower", + file => Dmon::DMONDIR.'PowerPower', + curves => 4, + entries => 20, + titles => ['1.1V','1.2V','2.5V','3.3V'], + type => HPlot::TYPE_BARGRAPH, + output => HPlot::OUT_PNG, + xlabel => "Board", + ylabel => "Power (W)", + sizex => 400, + sizey => 200, + ymin => '0', +# ymax => '200<*', + countup => 1, + xscale => 1, + nokey => 0, + buffer => 0, + bargap => 0.4, + curvewidth => 1, + stacked => 1, + }); -my $str = Dmon::MakeTitle(6,13,"DiRich Power",0); - $str .= qq@
\n@; +my $str = Dmon::MakeTitle(11,9,"DiRich Power",0); + $str .= qq@\n@; $str .= qq@
\n@; $str .= qq@\n@; + $str .= qq@\n@; $str .= Dmon::MakeFooter(); Dmon::WriteFile("adcvolt",$str); @@ -181,34 +205,44 @@ while(1) { HPlot::PlotLimitEntries('PowerCurr',(scalar keys %{$ret->[4][0]})); HPlot::PlotDraw('PowerCurr'); + foreach my $m (keys %{$ret->[4][0]}) { + HPlot::PlotAdd('PowerPower',$ret->[4][0]{$m} * $ret->[3][3]{$m}/1e6,0); + HPlot::PlotAdd('PowerPower',$ret->[4][1]{$m} * $ret->[3][2]{$m}/1e6,1); + HPlot::PlotAdd('PowerPower',$ret->[4][2]{$m} * $ret->[3][1]{$m}/1e6,2); + HPlot::PlotAdd('PowerPower',$ret->[4][3]{$m} * $ret->[3][0]{$m}/1e6,3); + } + HPlot::PlotLimitEntries('PowerPower',(scalar keys %{$ret->[4][0]})); + HPlot::PlotDraw('PowerPower'); + + my @min; my @max; - $min[0] = min(values $ret->[1][0], values $ret->[2][0]); - $min[1] = min(values $ret->[1][1], values $ret->[2][1]); - $min[2] = min(values $ret->[2][2]); - $min[3] = min(values $ret->[1][2]); - $max[0] = max(values $ret->[1][0], values $ret->[2][0]); - $max[1] = max(values $ret->[1][1], values $ret->[2][1]); - $max[2] = max(values $ret->[2][2]); - $max[3] = max(values $ret->[1][2]); + $min[0] = min(values %{$ret->[1][0]}, values %{$ret->[2][0]}); + $min[1] = min(values %{$ret->[1][1]}, values %{$ret->[2][1]}); + $min[2] = min(values %{$ret->[2][2]}); + $min[3] = min(values %{$ret->[1][2]}); + $max[0] = max(values %{$ret->[1][0]}, values %{$ret->[2][0]}); + $max[1] = max(values %{$ret->[1][1]}, values %{$ret->[2][1]}); + $max[2] = max(values %{$ret->[2][2]}); + $max[3] = max(values %{$ret->[1][2]}); - $min[10] = min(values $ret->[3][0]); - $min[11] = min(values $ret->[3][1]); - $min[12] = min(values $ret->[3][2]); - $min[13] = min(values $ret->[3][3]); - $max[10] = max(values $ret->[3][0]); - $max[11] = max(values $ret->[3][1]); - $max[12] = max(values $ret->[3][2]); - $max[13] = max(values $ret->[3][3]); - - $min[20] = min(values $ret->[4][0]); - $min[21] = min(values $ret->[4][1]); - $min[22] = min(values $ret->[4][2]); - $min[23] = min(values $ret->[4][3]); - $max[20] = max(values $ret->[4][0]); - $max[21] = max(values $ret->[4][1]); - $max[22] = max(values $ret->[4][2]); - $max[23] = max(values $ret->[4][3]); + $min[10] = min(values %{$ret->[3][0]}); + $min[11] = min(values %{$ret->[3][1]}); + $min[12] = min(values %{$ret->[3][2]}); + $min[13] = min(values %{$ret->[3][3]}); + $max[10] = max(values %{$ret->[3][0]}); + $max[11] = max(values %{$ret->[3][1]}); + $max[12] = max(values %{$ret->[3][2]}); + $max[13] = max(values %{$ret->[3][3]}); + + $min[20] = min(values %{$ret->[4][0]}); + $min[21] = min(values %{$ret->[4][1]}); + $min[22] = min(values %{$ret->[4][2]}); + $min[23] = min(values %{$ret->[4][3]}); + $max[20] = max(values %{$ret->[4][0]}); + $max[21] = max(values %{$ret->[4][1]}); + $max[22] = max(values %{$ret->[4][2]}); + $max[23] = max(values %{$ret->[4][3]}); $longtext = "Voltage Rail: FPGA / Powerboard
" @@ -273,4 +307,4 @@ while(1) { sleep 2; } - \ No newline at end of file + diff --git a/tools/HPlot.pm b/tools/HPlot.pm index fd301fd..565dcff 100755 --- a/tools/HPlot.pm +++ b/tools/HPlot.pm @@ -157,10 +157,13 @@ sub PlotInit { plot_write($fh," ",0,$name); } elsif($p->{$name}->{type} == TYPE_BARGRAPH) { + my $stacked = $p->{$name}{stacked}?' rowstacked':''; + print $stacked; plot_write($fh,"set style fill solid 1.00 border -1"); plot_write($fh,"set grid noxtics ytics"); plot_write($fh,"set boxwidth ".($p->{$name}->{curvewidth}||4)." absolute"); - plot_write($fh,"set style histogram gap ".($p->{$name}->{bargap}||1)); + plot_write($fh,"set style histogram gap ".($p->{$name}->{bargap}||1).' '.$stacked); +#title offset character 0, 0, 0 if($p->{$name}->{xticks}) { plot_write("set xtics rotate by 90 offset .7,-1.7 scale .7 "); @@ -174,12 +177,11 @@ sub PlotInit { } plot_write($fh,") offset 2.5,0 scale 0"); } - plot_write($fh,"set style histogram title offset character 0, 0, 0"); plot_write($fh,"set style data histograms"); plot_write($fh,"plot ",1,$name); for(my $j=0; $j<$p->{$name}->{curves};$j++) { plot_write($fh,', ',1,$name) if $j; - plot_write($fh,"'-'",1,$name); + plot_write($fh,"'-' with histograms ",1,$name); plot_write($fh,"using 2:xticlabels(1) ",1,$name) if ($p->{$name}->{xticks}); plot_write($fh, "lt rgb \"".$p->{$name}->{colors}->[$j]."\" title \"".($p->{$name}->{titles}->[$j] || "$j")."\" ",1,$name); } -- 2.43.0