#!/bin/perl


 # celé je to jen dost provizorní!!! 

do "parameters.pl";


# Open the file for reading.
open DATA, "Iplasma_dp.csv" or die "can't open file $!";
my @data = <DATA>;
close (DATA);
system("echo 0 > Plasma;rm -f PlasmaStart PlasmaEnd PlasmaStartAdvanced PlasmaEndDelayed");

$BdFieldTrigger  =`cat /srv/www/svoboda/golem/operation/currentshot/Tbd_aktual`;
# $BdFieldTrigger  =`cat Tbd_aktual`;
$BdFieldTrigger = $BdFieldTrigger/1000+$TororoidalMagneticFieldTrigger; # [ms]	

# $CdFieldTrigger  =`cat Tcd_aktual`;
$CdFieldTrigger  =`cat /srv/www/svoboda/golem/operation/currentshot/Tcd_aktual`;
$CdFieldTrigger = $CdFieldTrigger/1000+$TororoidalMagneticFieldTrigger; # [ms]	

# #PlasmaDetect
# $PlCurrentRise=500; #[A]
# $PlCurrentIncrTime=1e-3; 
# $PlCurrentSurv=1e-3;

    

$maxI= 0;
$minI = 0;
for ($i = 1; $i < $LineCount; ++$i)  
{
    @row = split(';',$data[$i]);
    $Ipl=$row[1];
    if($maxI<$Ipl){$maxI=$Ipl;}
    if($minI>$Ipl){$minI=$Ipl;} 
}
$polar = 1;
if(-$minI>$maxI){
    $polar = -1;
    system("echo 1 > ReversedCD;");
}#reversed polarity
else 
{
    system("echo 0 > ReversedCD;");
}



for ($i = 501; $i < $LineCount-5000; ++$i)  
{
    @row = split(';',$data[$i-500]) ;
    $Ipl10=$row[1]*$polar;
    
    @row = split(';',$data[$i]); 
    $Ipl1=$row[1]*$polar;
    
    $TimeStart=$row[0]+1500*$DeltaT;
    @row = split(';',$data[$i+1500]);
    $Ipl2=$row[1]*$polar;
    
    @row = split(';',$data[$i+1750]);
    $Ipl3=$row[1]*$polar;
    
    @row = split(';',$data[$i+2000]);
    $Ipl4=$row[1]*$polar;
#     print $i;
#     print "    " ;
#     print $Ipl2 ;
#     
#     
#     print "\n"	;
    if ( $Ipl2 > ($Ipl1+$Ipl0)/2+$PlCurrentRise && $Ipl3 > $Ipl1+$PlCurrentRise && $Ipl4 > $Ipl1+$PlCurrentRise )
    {
# 	print $Ipl2 ;
# 	print "\n";
# 	print (($Ipl1+$Ipl0)/2+$PlCurrentRise) ;
# 	print "\n";
# 	print $PlCurrentRise;
	$StartRow=$i+1500;	
	system ("echo $TimeStart > PlasmaStart;echo $StartRow > PlasmaStartRow");
	$i=$LineCount	    
    };
}

for ($i = $LineCount-500; $i >  $StartRow; --$i)  
{
    @row = split(';',$data[$i+500]); $Ipl0=$row[1]*$polar;
    @row = split(';',$data[$i]);    $Ipl1=$row[1]*$polar;
    $TimeEnd=$row[0]-300*$DeltaT;
    @row = split(';',$data[$i- 500]);$Ipl2=$row[1]*$polar;
    @row = split(';',$data[$i-1000]);$Ipl3=$row[1]*$polar;
    @row = split(';',$data[$i-1500]);$Ipl4=$row[1]*$polar;
    if ( $Ipl2 > ($Ipl1+$Ipl0)/2+$PlCurrentRise && $Ipl3 > $Ipl1+$PlCurrentRise && $Ipl4 > $Ipl1+$PlCurrentRise )
    {
	$EndRow=$i-300;$dT=$TimeEnd-$TimeStart; 
	system ("echo $TimeEnd > PlasmaEnd;echo $TimeEnd*11/10 > PlasmaEndDelayed;echo $dT > PlasmaTimeLength;echo $EndRow > PlasmaEndRow;echo 1 > Plasma");
	$i=1    
    };
}


if( $BdFieldTrigger > $CdFieldTrigger){
    $StartRow = $CdFieldTrigger/$DeltaT;}
else
    {$StartRow = $BdFieldTrigger/$DeltaT;}

$start = ($StartRow)*$DeltaT-$DeltaT*100;
system ("echo $start > PlasmaStartAdvanced;")


