die on error! -- Alex
[rrdtool.git] / examples / shared-demo.pl.in
index fafb4e0..f01c1ae 100755 (executable)
@@ -14,11 +14,8 @@ sub ok
     print "ok $ok_count $what\n";
 }
 
-#makes things work when run without install
-use lib qw( ../bindings/perl-shared/blib/lib ../bindings/perl-shared/blib/arch );
-
 #makes programm work AFTER install
-use lib qw( @prefix@/lib/perl ../lib/perl );
+use lib qw( @prefix@/lib/perl );
 
 use strict;
 use vars qw(@ISA $loaded);
@@ -36,8 +33,8 @@ my $RUNS  = 500;
 my $GRUNS = 4;
 my $RRD1  = "shared-demo.rrd";
 my $RRD2  = "shared-demob.rrd";
-my $GIF1  = "shared-demo1.gif";
-my $GIF2  = "shared-demo2.gif";
+my $PNG1  = "shared-demo1.png";
+my $PNG2  = "shared-demo2.png";
 my $time  = 30*int(time/30);
 my $START = $time-$RUNS*$STEP;
 
@@ -91,7 +88,7 @@ my $counter = 1e7;
 for (my $t=$START+1;
      $t<$START+$STEP*$RUNS;
      $t+=$STEP+int((rand()-0.5)*7)){
-  $counter += 2500*sin($t/2000)*$STEP;
+  $counter += int(2500*sin($t/2000)*$STEP);
   my $data = (1000+500*sin($t/1000)).":".
       (1000+900*sin($t/2330)).":".
       (2000*cos($t/1550)).":".
@@ -109,18 +106,18 @@ if ($ERROR = RRDs::error) {
   die "$0: unable to update `$RRD2': $ERROR\n";
 }
 
-print "* Creating $GRUNS graphs: $GIF1 & $GIF2\n\n";
+print "* Creating $GRUNS graphs: $PNG1 & $PNG2\n\n";
 my $now = $time;
 for (my $i=0;$i<$GRUNS;$i++) {
-  my @rrd_gifs = ($RRD1, $GIF1, $RRD2, $GIF2);
-  while (@rrd_gifs) {
-    my $RRD = shift(@rrd_gifs);
-    my $GIF = shift(@rrd_gifs);
-    my ($graphret,$xs,$ys) = RRDs::graph $GIF, "--title", 'Test GRAPH', 
+  my @rrd_pngs = ($RRD1, $PNG1, $RRD2, $PNG2);
+  while (@rrd_pngs) {
+    my $RRD = shift(@rrd_pngs);
+    my $PNG = shift(@rrd_pngs);
+    my ($graphret,$xs,$ys) = RRDs::graph $PNG, "--title", 'Test GRAPH', 
     '--base', '1024',
           "--vertical-label", 'Dummy Units', "--start", (-$RUNS*$STEP),
           "--end", $time,
-         "--interlace", "--imgformat","GIF",
+         "--interlace", "--imgformat","PNG",
           "DEF:alpha=$RRD:a:AVERAGE",
           "DEF:beta=$RRD:b:AVERAGE",
           "DEF:gamma=$RRD:c:AVERAGE",
@@ -145,9 +142,9 @@ for (my $i=0;$i<$GRUNS;$i++) {
           "VRULE:".($now-7200)."#008877:120 Minutes ago";
 
     if ($ERROR = RRDs::error) {
-      print "ERROR: $ERROR\n";
+      die "ERROR: $ERROR\n";
     } else {
-      print "GIF Size: ${xs}x${ys}\n";
+      print "Image Size: ${xs}x${ys}\n";
       print "Graph Return:\n",(join "\n", @$graphret),"\n\n";
     }
   }
@@ -157,7 +154,7 @@ for (my $i=0;$i<$GRUNS;$i++) {
 
 my ($start,$step,$names,$array) = RRDs::fetch $RRD1, "AVERAGE";
 $ERROR = RRDs::error;
-print "ERROR: $ERROR\n" if $ERROR ;
+die "ERROR: $ERROR\n" if $ERROR ;
 print "start=$start, step=$step\n";
 print "                    "; 
 map {printf("%12s",$_)} @$names ;
@@ -173,3 +170,46 @@ foreach my $line (@$array){
 
 
 
+my ($start,$end,$step,$col_cnt,$legend,$data) = 
+  RRDs::xport ("-m", 400,
+              "--start", "now-1day",
+              "--end", "now",
+              "DEF:alpha=$RRD1:a:AVERAGE",
+              "DEF:beta=$RRD1:d:AVERAGE",
+              "CDEF:calc=alpha,beta,+,2,/,100,*,102,/",
+              "XPORT:alpha:original ds",
+              "XPORT:calc:calculated values",
+              );
+
+my $ERROR = RRDs::error;
+die "$0: unable to xport: $ERROR\n" if $ERROR;
+
+print "\nrrdxport test:\n\n";
+print "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>\n\n";
+print "<xport>\n";
+print "  <meta>\n";
+print "    <start>$start</start>\n";
+print "    <step>$step</step>\n";
+print "    <end>$end</end>\n";
+print "    <rows>", $#$data + 1, "</rows>\n";
+print "    <columns>$col_cnt</columns>\n";
+print "    <legend>\n";
+foreach my $entry (@$legend) {
+    print "      <entry>$entry</entry>\n";
+}
+print "    </legend>\n";
+print "  </meta>\n";
+print "  <data>\n";
+my $row_counter = 0;
+foreach my $row (@$data) {
+    $row_counter++;
+    print "    <row id=\"$row_counter\"><t is=\"", scalar localtime($start), "\">$start</t>";
+    $start += $step;
+    foreach my $val (@$row) {
+       printf ("<v>%1.10e</v>",$val) if $val ne '';
+       print "<v>NaN</v>" if  $val eq '';
+    }
+    print "</row>\n";
+}
+print "  </data>\n";
+print "</xport>\n";