my $blk = $img->colorResolve(0, 0, 0);
for my $y (42..236) {
- my $i = 2.0 * ($y - 236.0) / (42.0 - 237.0);
+ my $i = 3.0 * ($y - 236.0) / (42.0 - 237.0);
my $clr = get_color($i);
- $img->filledRectangle(32,$y,53,$y+1,$clr);
+ $img->filledRectangle(12,$y,33,$y+1,$clr);
}
-my $q = $dbh->prepare('select switch,port,bytes_in,bytes_out,placement,switchtype from switches natural join placements natural join get_current_datarate() where switchtype in (\'es3024\')');
+$img->stringFT($blk, "/usr/share/fonts/truetype/msttcorefonts/Arial.ttf", 10, 0, 40, 47 + (236-42)*0.0/3.0, "1 Gbit/sec");
+$img->stringFT($blk, "/usr/share/fonts/truetype/msttcorefonts/Arial.ttf", 10, 0, 40, 47 + (236-42)*1.0/3.0, "100 Mbit/sec");
+$img->stringFT($blk, "/usr/share/fonts/truetype/msttcorefonts/Arial.ttf", 10, 0, 40, 47 + (236-42)*2.0/3.0, "10 Mbit/sec");
+$img->stringFT($blk, "/usr/share/fonts/truetype/msttcorefonts/Arial.ttf", 10, 0, 40, 47 + (236-42)*3.0/3.0, "1 Mbit/sec");
+$img->stringFT($blk, "/usr/share/fonts/truetype/msttcorefonts/Arial.ttf", 10, 0, 1000, 620, "NMS (C) 2005-2007 Tech:Server");
+
+my $q = $dbh->prepare('select switch,port,bytes_in,bytes_out,placement,switchtype from switches natural join placements natural join get_datar
+ate() where switchtype in (\'es3024\')');
$q->execute();
while (my $ref = $q->fetchrow_hashref()) {
my $intensity = 0.0;
my $traffic = 4.0 * $ref->{'bytes_in'} + $ref->{'bytes_out'}; # average and convert to bits (should be about the same in practice)
- my $max = 20_000_000.0; # 100mbit
- my $min = 100_000.0; # 100kbit
+ my $max = 1_000_000_000.0; # 1Gbit
+ my $min = 1_000_000.0; # 1Mbit
if ($traffic >= $min) {
- $intensity = 2.0 * (log($traffic / $min) / log(10)) / (log($max / $min) / log(10));
- $intensity = 2.0 if ($intensity > 2.0);
+ $intensity = log($traffic / $min) / log(10);
+ $intensity = 3.0 if ($intensity > 3.0);
}
$clr = get_color($intensity);
} else {
sub get_color {
my $intensity = shift;
my $gamma = 1.0/1.90;
- if ($intensity > 1.0) {
+ if ($intensity > 2.0) {
+ return $img->colorResolve(255.0, 255.0 * (($intensity - 2.0) ** $gamma), 255.0 * (($intensity - 2.0) ** $gamma));
+ } elsif ($intensity > 1.0) {
return $img->colorResolve(255.0, 255.0 * ((2.0 - $intensity) ** $gamma), 0);
} else {
return $img->colorResolve(255.0 * ($intensity ** $gamma), 255, 0);