Sandbox/Dirigent/Et.sh
#!/bin/bash
SUBDIR=Infrastructure
ThisDev=`hostname`
source Commons.sh
ChargingFlag=0
function Init()
{
CommonInit
LogIt "$DOWNTO ${FUNCNAME[0]}"
echo "0" > $SHM/OscRespondStream
LogIt "$UPFROM ${FUNCNAME[0]}"
}
function Arming()
{
LogIt "$DOWNTO ${FUNCNAME[0]}"
echo ":TRIGger:SWEep SINGle"|$oscilosc
sleep 0.2;echo ":SINGle"|$oscilosc
LogIt "$UPFROM ${FUNCNAME[0]}"
}
function Prepare()
{
LogIt "$DOWNTO ${FUNCNAME[0]}"
ChargingFlag=1
StartOscAcquiring &
if [ "$ThisDev" = "Bt" ];then RequestVoltage=$1;fi
if [ "$ThisDev" = "Et" ];then RequestVoltage=$2;fi
echo "Charging">$SHM/Status
LogIt "Requested value $RequestVoltage V"
echo $RequestVoltage|$SHMstring/RequestVoltage $NULL
ShCt_DIS;sleep 1;PS_ENG
MeasuredValue=0
while [ $MeasuredValue -lt $RequestVoltage ]; do
MeasuredValue=`tail -1 $SHM/OscRespondStream|xargs printf '%4.0f\n'`
LogIt "Charging Capacitor $MeasuredValue/ $RequestVoltage V"
sleep 1
done
ChargingFlag=0
echo "Charged">$SHM/Status
PS_DIS
KillOscAcquiring
LogIt "$UPFROM ${FUNCNAME[0]}"
}
function StartOscAcquiring()
{
LogIt "$DOWNTO ${FUNCNAME[0]}"
if [ "$ThisDev" = "Bt" ];then OSCChannel=3;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 [ $ChargingFlag ]; do
echo ":MEAS:ITEM? VAVG, CHANNEL$OSCChannel">> $SHM/OscRequestStream
sleep 1
done
}
function KillOscAcquiring()
{
killall netcat # we'll do it better in future
}
function PostDisch()
{
LogIt "$DOWNTO ${FUNCNAME[0]}"
sleep 1;ShCt_ENG
GetScreenShot
LogIt "$UPFROM ${FUNCNAME[0]}"
}
function Emergency()
{
LogIt "$DOWNTO ${FUNCNAME[0]}"
$SHMtouch/Emergency
PS_DIS;sleep 1;ShCt_ENG
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
}