Sandbox/Dirigent/PwSp.sh

#!/bin/bash
SUBDIR=Infrastructure
ThisDev=PwSp

source Commons.sh

ChargingFlag=0


function Init()
{
    CommonInit
    LogIt "$DOWNTO ${FUNCNAME[0]}"
    echo ":STOP;RUN"|$oscilosc_w1;sleep 1;echo ":STOP"|$oscilosc_w1;sleep 1

    LogIt "$UPFROM ${FUNCNAME[0]}"
}


ChargingResistors=0

function Prepare()
{
    LogIt "$DOWNTO ${FUNCNAME[0]}"
    UBtRequest=$1;UcdRequest=$2
    HVon;ChargingFlag=1;ChargResOFF
    StatusScanGo 
    SlowLine=80 # Hrana na pomale nabijeni ....
    LogIt "PIDs: $PID1, $PID2"
    while [ $ChargingFlag -eq 1 ]; do
        UBt=`tail -1 $SHMdir/U@Bt|xargs printf '%4.0f\n'`
        StatusBt=`tail -1 $SHMdir/Status@Bt`
        Ucd=`tail -1 $SHMdir/U@Et|xargs printf '%4.0f\n'`
        StatusEt=`tail -1 $SHMdir/Status@Et`
        if [ "$StatusEt" = "Charged" ] && [ "$StatusBt" = "Charged" ];then Finito;ChargingFlag=0;fi
        if [ $UBt -gt $(($UBtRequest*$SlowLine/100)) ] && [ $ChargingResistors == 0  ] && [ "$StatusBt" = "Charging" ]; then LogIt "Bt slow PowSup";ChargResON;fi
        if [ $Ucd -gt $(($UcdRequest*$SlowLine/100)) ] && [ $ChargingResistors == 0  ] && [ "$StatusEt" = "Charging" ]; then LogIt "Et slow PowSup";ChargResON;fi
        if [ "$StatusEt" = "Charged" ] && [ $ChargingResistors == 1  ] && [ $UBt -lt $(($UBtRequest*$SlowLine/100)) ]; then LogIt "Bt boost PowSup";ChargResOFF;fi
        sleep 1

    done
    HVoff
    LogIt "$UPFROM ${FUNCNAME[0]}"
}

function Finito()
{
    #for i in `seq 4`; do kill $PID$i;done  #Priste ...
    kill $PID1;kill $PID2;kill $PID3;kill $PID4
}

PID1=0;PID2=0;PID3=0;PID4=0

function StatusScanGo()
{
    ssh -T golem@Bt "tail -f "$SHM"/OscRespondStream" >> $SHMdir/U@Bt &
    PID1=$!
    ssh -T golem@Bt "tail -f "$SHM"/Status 2> /dev/null" >> $SHMdir/Status@Bt &
    PID2=$!
    ssh -T golem@Et "tail -f "$SHM"/OscRespondStream" >> $SHMdir/U@Et &
    PID3=$!
    ssh -T golem@Et "tail -f "$SHM"/Status 2> /dev/null" >> $SHMdir/Status@Et &
    PID4=$!

}


function Arming()
{
    LogIt "Arming@PowSup"
}

function PostDisch()
{
    LogIt "PostDisch@PowSup"
}


function HVon()
{
    LogIt "HV power supply on"
    echo "*B1OS3H"|telnet PowSupPap 10001 1>&- 2>&-
	HVlightON
}	

function HVoff()
{
    LogIt "HV power supply off"
    echo "*B1OS3L"|telnet PowSupPap 10001 1>&- 2>&-
	HVlightOFF
	ChargResON
}


function ChargResOFF()
{
    ChargingResistors=0
	echo "*B1OS6H"|telnet PowSupPap 10001 1>&- 2>&-;sleep 1
	echo "*B1OS7H"|telnet PowSupPap 10001 1>&- 2>&-;sleep 1
	echo "*B1OS8H"|telnet PowSupPap 10001 1>&- 2>&-;sleep 1
}	

function ChargResON()
{
    ChargingResistors=1
	echo "*B1OS6L"|telnet PowSupPap 10001 1>&- 2>&-
	echo "*B1OS7L"|telnet PowSupPap 10001 1>&- 2>&-
	echo "*B1OS8L"|telnet PowSupPap 10001 1>&- 2>&-
}

function HVlightON()
{
	Et HVlightON
}	

function HVlightOFF()
{
	Et HVlightOFF
}