Content-type: text/html X-Powered-By: PHP/4.3.10 <?
include("config.php");

//  header("Content-type: application/xhtml+xml");
  
header("content-type: image/svg+xml");
  print(
'<?xml version="1.0" standalone="no"?>'."\n");
  print(
'<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"'."\n");
  print(
'"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">'."\n");

if(
$_REQUEST[fnumber])
    
$fnumber = (int)$_REQUEST[fnumber];
if(
$_REQUEST[day])
    
$fnumber = (int)$_REQUEST[day];
if(
strlen($_REQUEST[rulers]))
    
$rulers=$_REQUEST[rulers];
if(
strlen($_REQUEST[grid]))
    
$grid=$_REQUEST[grid];
if(
strlen($_REQUEST[size]))
  
$size=$_REQUEST[size];
if(
$size==0)
{
  
$xscreen=$uxscreen;
  
$yscreen=300;
}

$viewbox="-50 -40 1560 570";
if(
$size==0)
  
$viewbox="0 0 300 300";
?>
<svg width="100%" height="100%" version="1.1" viewBox="<?echo $viewbox?>" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<defs>
<style type="text/css"><![CDATA[
.grid {
fill: #0a0a0a;
stroke: #222222;
stroke-width: 2;
opacity: 1
}
polyline {stroke-width: 1}
.snrup { stroke: <?echo $snrup?>;
fill: none}
.snrdown { stroke: <?echo $snrdown?>;
fill: none}
.snrtxt { fill: <?echo $snrtxt?>;}
.syncup { stroke: <?echo $syncup?>;
fill: none}
.syncdown { stroke: <?echo $syncdown?>;
fill: none}
.synctxt { fill: <?echo $synctxt?>;}
.tsnrup { fill: <?echo $snrup?>}
.tsnrdown { fill: <?echo $snrdown?>}
.tsyncup { fill: <?echo $syncup?>}
.tsyncdown { fill: <?echo $syncdown?>}
]]></style>
</defs>
<?
if($fnumber < 1 || $fnumber > 366)
    
$fnumber=11;
$fname = sprintf("$datapath-%03d", $fnumber);
//print("<!-- fname is $fname -->\n");

function xxx($x)
{
   global
$xscreen, $xsamples, $precision;
   return
round($x*$xscreen/$xsamples, $precision);
}
function
yyy($y)
{
   global
$yscreen, $ysamples, $precision;
   return
round($yscreen-($y*$yscreen/$ysamples), $precision);
}
?><?// Draw the grid?>
<rect class="grid" x="0" y="0" width="<?echo $xscreen?>" height="<?echo $yscreen?>"/>
<?if($grid==1)
{
    
?><path class="grid" d="<?
    
for($x=0; $x<=24; $x++)
    {
    
?>M<?print(xxx($x*60))?> <?print(yyy(0)+7)?>V<?print(yyy($ysamples));
    }
    
?>"/><?

    ?>
<path class="grid" d="<?
    
for($y=0; $y<=$ysamples; $y++)
    {
    
?>M<?print(xxx(0)-7)?> <?print(yyy($y))?>H<?print(xxx($xsamples)+7);
    }
    
?>"/><?
}
if(
$rulers==1)
{
    for(
$x=0; $x<=24; $x++)
    {
    
?><text x="<?print(xxx($x*60)-4)?>" y="<?print(yyy(0)+22)?>" ><?echo $x?></text><?
    
}
    for(
$y=0; $y<=$ysamples; $y++)
    {
    
?><text class="snrtxt" x="<?print(xxx(0)-25)?>" y="<?print(yyy($y)+3)?>"><?echo $y?></text><?
    ?>
<text class="synctxt" x="<?print(xxx($xsamples)+8)?>" y="<?print(yyy($y)+3)?>"><?print(($y*3)*($y*3))?></text><?
    
}


?><text class="snrtxt" x="<?print(xxx(0))?>" y="<?print(yyy(20)-9)?>">SNR (dB)</text>
<text class="synctxt" x="<?print(xxx(22*60))?>" y="<?print(yyy(20)-9)?>">SYNC (Kbs)</text>
<text class="tsnrdown" x="<?print(xxx(4*60))?>" y="<?print(yyy(20)-9)?>">&#8212;&#8212;SNR DOWN&#8212;&#8212;</text>
<text class="tsnrup" x="<?print(xxx(8*60))?>" y="<?print(yyy(20)-9)?>">&#8212;&#8212;SNR UP&#8212;&#8212;</text>
<text class="tsyncdown" x="<?print(xxx(12*60))?>" y="<?print(yyy(20)-9)?>">&#8212;&#8212;SYNC DOWN&#8212;&#8212;</text>
<text class="tsyncup" x="<?print(xxx(16*60))?>" y="<?print(yyy(20)-9)?>">&#8212;&#8212;SNYC UP&#8212;&#8212;</text>
<?
}

function
readDataFile()
{
    global
$thedata, $elements, $fname;
    
$fp = fopen($fname, "r");
    
$elements = 0;
    if(!
$fp)
       return;

    while(!
feof($fp))
    {
        
$buffer = fgets($fp);
        
$buffer = str_replace(", ", ",", $buffer);
        
$thedata[$elements] = $buffer;
        
$elements++;
    }
    
fclose($fp);
//    print("<!-- read $elements elements -->");
}

readDataFile();

// open output file and print downstream SNR
function graphline($line)
{
    global
$thedata, $elements;
    
$c=0;
    
$lastx = 0;
    
$oldstuff = "-1";

    while(
$c < $elements)
    {
        
$buffer = $thedata[$c];
        
$c++;
        if(!
$buffer) break;

        if(
$line == 1)
            
$stuff = strtok($buffer, ",");
        else
            
$null = strtok($buffer, ",");
        for(
$lp = 2; $lp < 7; $lp++)
        {
            if(
$lp == $line)
                
$stuff = (int)strtok(",");
            else
                
$null=strtok(",");
        }

        
$xtime=strtok(",");
        
$x=(int)strtok($xtime, ":");
        
//   print("got x as $x\n");
        
$x=$x*60 + (int)strtok(":");

        if(
$line >= 5)
            
$stuff=sqrt($stuff/1000)/3;

        if(
$stuff == $oldstuff)
            continue;

        if(
$oldstuff != "-1" && ($x-1) != $lastx)
            print(
xxx($x-1).','.yyy($oldstuff).' ');

        print(
xxx($x).','.yyy($stuff).' ');
        
$oldstuff = $stuff;
        
$lastx = $x;
    }
    if(
$lastx != $x)
        print(
xxx($x).','.yyy($stuff).' ');
}
?>

<polyline class="snrdown"
points="<?//print(xxx(0).",".yyy(0)." ");
    
graphline(1);?>"/>

<polyline class="snrup"
points="<?//print(xxx(0).",".yyy(0)." ");
    
graphline(2);?>"/>

<polyline class="syncup"
points="<?//print(xxx(0).",".yyy(0)." ");
    
graphline(5);?>"/>

<polyline class="syncdown"
points="<?//print(xxx(0).",".yyy(0)." ");
    
graphline(6);?>"/>
</svg>