xgraph.pl
上传用户:rrhhcc
上传日期:2015-12-11
资源大小:54129k
文件大小:1k
源码类别:

通讯编程

开发平台:

Visual C++

  1. sub plotPreamble {
  2.     my($OUT, $title, $xlabel, $xrange, $ylabel, $yrange) = @_;
  3. #    if (defined($ENV{'DISPLAY'})) {
  4. #  writeln('set terminal x11');
  5. #    } else {
  6. #  writeln('set terminal postscript');
  7. #  writeln('set output "', $file, '.ps"');
  8. #    }
  9.     print $OUT <<EOH
  10. TitleText: $title
  11. Device: Postscript
  12. BoundBox: true
  13. Ticks: true
  14. Markers: true
  15. XUnitText: $xlabel
  16. YUnitText: $ylabel
  17. EOH
  18.     ;
  19.     print $OUT "NoLines: truen" if (defined($opt_q));
  20. }
  21. sub plot {
  22.     my($OUT, $append, $file, $ins, @vals) = @_;
  23.     if ($ins =~ /plots+(d+)s*/) {
  24. $point = shift @vals;
  25. $max = $1 - 1;
  26. foreach $i (1..$max) {
  27.     plot($OUT, $append, "skip-$i", '', $point);
  28. }
  29. plot($OUT, $append, 'skip-' . ++$max, '', $point) if ($#vals < $[);
  30.     }
  31.     print $OUT "n"$filen", @vals if ($#vals >= $[);
  32. }
  33. %linkFails = %linkRecov = ();
  34. sub plotFails {
  35.     my($OUT, $minY, $maxY, $tag, @vals) = @_;
  36.     if ($#vals >= $[) {
  37. foreach $i (@vals) {
  38.     push(@{$linkFails{$tag}}, "move $i $minYn", "draw $i $maxYn");
  39. }
  40.     }
  41. }
  42. sub plotRecov {
  43.     my($OUT, $minY, $maxY, $tag, @vals) = @_;
  44.     if ($#vals >= $[) {
  45. foreach $i (@vals) {
  46.     push(@{$linkRecov{$tag}}, "move $i $minYn", "draw $i $maxYn");
  47. }
  48.     }
  49. }
  50. sub plotPostamble {
  51.     my($OUT) = shift @_;
  52.     print $OUT "Nolines: truen";
  53.     foreach $i (keys %linkFails) {
  54. plot($OUT, 0, 'link ' . $i . ' fail', '', @{$linkFails{$i}});
  55.     }
  56.     foreach $i (keys %linkRecov) {
  57. plot($OUT, 0, 'link ' . $i . ' recovery', '', @{$linkRecov{$i}});
  58.     }
  59.     close(OUT);
  60. }
  61. 1;