SW/ControlSW/Archive/Dirigent/1119VersionEtBt/Et.sh

#!/bin/bash
SUBDIR=Infrastructure
ThisDev=`hostname`

source Commons.sh

function Init()
{
    CommonInit
    LogIt "$DOWNTO ${FUNCNAME[0]}"
    echo "0" > $SHM/OscRespondStream
    echo "Charging">$SHM/Status
    LogIt "$UPFROM ${FUNCNAME[0]}"
}

function Arming()
{
    LogIt "$DOWNTO ${FUNCNAME[0]}"
    echo ":TRIGger:SWEep SINGle"|$oscilosc_w1
	sleep 0.2;echo ":SINGle"|$oscilosc_w1
    LogIt "$UPFROM ${FUNCNAME[0]}"
}

function Final()
{
    LogIt "$PASSING ${FUNCNAME[0]}"
}

function Prepare()
{
    LogIt "$DOWNTO ${FUNCNAME[0]}"
    if [ "$ThisDev" = "Bt" ];then RequestVoltage=$1;fi
    if [ "$ThisDev" = "Et" ];then RequestVoltage=$2;fi
    if [ $RequestVoltage -gt 0 ]; then 
        echo "Charging">$SHM/Status
        StartOscAcquiring &
        LogIt "Requested value $RequestVoltage V"
        echo $RequestVoltage|$SHMstring/RequestVoltage $NULL
        ShCt_DIS;sleep 1;PS_ENG
        MeasuredValue=0
        while [ $MeasuredValue -lt $RequestVoltage ]; do
            MeasuredValue=$(OscValue)
            LogIt "Charging Capacitor `ssh PwSp cat $SHM/Charging 2>/dev/null` $MeasuredValue/ $RequestVoltage V" 
            sleep 1
        done
        LogIt "Final voltage before plasma: $(OscValue) V"
        killall tail;killall netcat
        echo "Charged">$SHM/Status
        PS_DIS
    else
        echo "Charged">$SHM/Status
    fi
	LogIt "$UPFROM ${FUNCNAME[0]}"
    
}	

function StartOscAcquiring()
{
    LogIt "$DOWNTO ${FUNCNAME[0]}"
    if [ "$ThisDev" = "Bt" ];then OSCChannel=1;fi
    if [ "$ThisDev" = "Et" ];then OSCChannel=1;fi
    echo ":TRIGger:SWEep AUTO;RUN"|$oscilosc_w1
    touch $SHM/OscRequestStream
    tail -f $SHM/OscRequestStream|$oscilosc_stream >> $SHM/OscRespondStream &
    while [ `cat $SHM/Status` != "Finished" ]; do 
        echo ":MEAS:ITEM? VAVG, CHANNEL$OSCChannel">> $SHM/OscRequestStream 
        sleep 1
    done
    LogIt "$UPFROM ${FUNCNAME[0]}"
}    


function ForceTrigger()
{
    LogIt "$DOWNTO ${FUNCNAME[0]}"
    echo ":TFORce"|$oscilosc_w1
    LogIt "$UPFROM ${FUNCNAME[0]}"
}


function KillOscAcquiring()
{
    killall netcat # we'll do it better in future, mozna poslat ^C do streamu ...

}

function PostDisch()
{
    LogIt "$DOWNTO ${FUNCNAME[0]}"
	sleep 1;ShCt_ENG
	GetScreenShot
	echo ":TRIGger:SWEep AUTO;RUN"|$oscilosc_w1
	sleep 0.2
	MeasuredValue=
	LogIt "Final voltage @PostDisch: `echo ":MEAS:ITEM? VAVG, CHANNEL1"|$oscilosc_w1|xargs printf '%4.0f\n'` V"
    echo "Finished">$SHM/Status
	LogIt "$UPFROM ${FUNCNAME[0]}"
    
}

function Emergency()
{
    LogIt "$DOWNTO ${FUNCNAME[0]}"
    $SHMtouch/Emergency
	PS_DIS;sleep 1;ShCt_ENG
	KillOscAcquiring
	LogIt "$UPFROM ${FUNCNAME[0]}"
    
}	

	

function ShCt_DIS ()
{
	LogIt "Short circuit OFF"
	RelayON 18
}	

function ShCt_ENG ()
{
	LogIt "Short circuit ON"
	RelayOFF 18
}

function PS_ENG ()
{
	LogIt "Connect HV Power sup. to $ThisDev"
	RelayON 17
}	

function PS_DIS ()
{
	LogIt "Disconnect HV Power sup. from $ThisDev"
	RelayOFF 17
}

function HVlightON ()
{
	RelayON 12
}	

function HVlightOFF ()
{
	RelayOFF 12
}