#!/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
}