#!/bin/bash

source ../../../Commons.sh

whoami="Operation/Discharge/Stabilization/Stabilization"

DAS="Oscilloscopes/RigolMSO5104-a/Stabilization"

FG="RigolDG1022Z-a"

Devices="FunctionGenerators/$FG/Stabilization $DAS"



FlukeAmpMeterON () {
ssh golem@Stabilization 'echo "import lib as lib;lib.gpio_low(16)"|python'; }
FlukeAmpMeterOFF () {
ssh golem@Stabilization 'echo "import lib as lib;lib.gpio_high(16)"|python'; }


 function GetReadyTheDischarge ()
{
mkdir Parameters
    FlukeAmpMeterON
    GeneralDiagnosticsTableUpdateAtDischargeBeginning $diag_id #@Commons.sh

    raw=`cat $SHM0/Production/Parameters/diagnostics_stabilization`
    
    raw=$(echo $raw | tr -s ',' ' ')
raw=$(echo $raw | tr -s ';' ' ')

time=()
value=()
a=0
for i in $raw
    do
      if [[ a%2 -eq 0 ]]    
      then
        time+=($i)
      else
        value+=($i)
      fi
    let "a+=1"
    done

echo Time points: ${time[@]}
echo Values: ${value[@]}


sign () { echo "$(( $1 < 0 ? -1 : 1 ))"; } #absolute value

#looks for the max value
Max=0
for m in ${value[@]} 
    do
      m=$(( $m * $(sign "$m") ))    
      if [[ $m -gt $Max ]]
      then 
         Max=$m 
      fi
    done
echo Max value: $Max

#generate sequence of points for the frequency generator
sequence=()
j=0
l=1
for ((i=${time[0]};i<=${time[-1]};i+=100))
   do
     k=${value[$l-1]}
     sequence+=$(python -c "print(round(${k}.0 / ${Max}.0,1),',')") #strange but functional
     if [[ $i -eq ${time[$l]} ]]
     then
        let "l+=1"
     fi
    let "j+=1"
   	done
c=${sequence[@]}
echo Final sequence: $c


echo ":OUTP2 OFF"|netcat -w 1 $FG 5555 #Turn off output off ch2
sleep 0.1;
echo "Waveform pars"
echo ":SOUR2:APPL:ARB 10000,$Max,0"|netcat -w 1 $FG 5555 #Arbitrary 
echo ":SOUR2:DATA VOLATILE, $c"|netcat -w 1 $FG 5555 #predefined function
echo "Burst mode"
echo ":SOUR2:BURS ON"|netcat -w 1 $FG 5555
echo ":SOUR2:BURS:MODE:TRIG;:SOUR2:BURS:TRIG:SOUR EXT;:SOUR2:BURS:NCYC 1 "|netcat -w 1 $FG 5555 #Set trigger to manual/external and number of 
sleep 0.2;
echo ":SOUR2:BURS:TDEL 0.00${time[0]}"|netcat -w 1 $FG 5555 #Set time delay (in seconds)

}


function Arming()
{

echo "And output"
echo ":OUTP2 ON"|netcat -w 1 $FG 5555 #Turn on output of 

#========Frequency generator settings===========

    
}
   
   
   function PostDischargeAnalysis
{
    echo ":OUTP2 OFF"|netcat -w 1 $FG 5555 #Turn off output off ch2

    FlukeAmpMeterOFF
    GeneralDAScommunication $DAS RawDataAcquiring
    ln -s ../../Devices/`dirname $DAS/` DAS_raw_data_dir

    Analysis

      
}      
      
function Analysis
{

    mkdir Results
    sed -i "s/shot_no\ =\ 0/shot_no\ =\ `cat ../../shot_no`/g" `basename $whoami`.ipynb
    jupyter-nbconvert  --ExecutePreprocessor.timeout=60  --to html --execute `basename $whoami`.ipynb --output analysis.html > >(tee -a jup-nb_stdout.log) 2> >(tee -a jup-nb_stderr.log >&2) #Lokalni vypocet
    convert -resize $icon_size icon-fig.png graph.png
    homepage_row
}

function homepage_row
{
local cesta=`dirname $whoami`

    echo "<tr>
    <td valign=bottom><a href=$cesta/><img src=$cesta/name.png  width='$namesize'/></a></td>
    <td valign=bottom><a href=$cesta/HorizontStab.jpg><img src=$cesta/setup.png /></a></td>
        
   
    <td valign=bottom><a href=Devices/`dirname $DAS`/ScreenShotAll.png><img src='Devices/`dirname $DAS`/ScreenShotAll.png'  width='$iconsize'/></a></td>
    <td>
    <a href=$gitlabpath/Devices/`dirname $DAS` title="Gitlab4`dirname $DAS`">$gitlabicon</a><br></br>
    <a href=Devices/`dirname $DAS` title="Data directory">$diricon</a><br></br>
    </td>
    
    <td valign=bottom><a href=$cesta/analysis.html><img src=$cesta/graph.png  width='$iconsize'/></a></td>
    <td>
    <a href=$cesta/Parameters/ title="Parameters">$parametersicon</a><br></br>
    <a href=$gitlabpath/$whoami.ipynb title="JupyterNotebook$cesta">$pythonicon</a>
    $rightarrowicon
    <a href=$cesta/analysis.html title="Analysis$cesta">$resultsicon</a><br></br>
    <a href=$gitlabpath/$cesta/ title="Gitlab4$cesta">$gitlabicon</a>
    <a href=$cesta/ title="Directory">$diricon</a>
    <a href=$dbpath/Diagnostics/$diag_id/ title="Database">$sqlicon</a>
    </td>

    </tr>" > include.html
}


function zmb
{
   echo "<h3>Stabilization</h3>
    <a href='Devices/Oscilloscopes/RigolMSO5104-a/ScreenShotAll.png'><img src='Devices/Oscilloscopes/RigolMSO5104-a/ScreenShotAll.png' width='25%'/></a>
    <a href='Devices/Oscilloscopes/RigolMSO5104-a/' title='Oscilloscope DIR'>$diricon</a>
    <a href='Operation/Discharge/Stabilization/' title='Stabilization DIR'>$diricon</a>" > include.html
 
}

#shot_no=35993;What=homepage_row;Where="Operation/Discharge/Stabilization/Stabilization.sh"; cp -r /golem/svoboda/Dirigent/`dirname $Where`/*.* /golem/database/operation/shots/$shot_no/`dirname $Where`/;cd /golem/database/operation/shots/$shot_no/`dirname $Where`;source `basename $Where` ;$What;


