SW/ControlSW/Archive/Dirigent/1219BeforeGit/Sessions/20191213_1920/Control/Commons.sh

#!/bin/bash

RASPs="Chamber Charger Discharge"
#RASPs="Charger Discharge"

ARDs="Trigger"
PAPs=""
VIRTDevs=""

DASs="TektrMSO56Standard RigolMSO5104Charger"
Infrastructure="$RASPs $VIRTDevs"
#IntelligentDevs="$RASPs $VIRTDevs"


ALLDevs="$RASPs $DASs"
#ALLDevs="$RASPs $OSCs $DASs $PAPs"


GM="golem@golem"
sshGM="ssh $GM"
XTERM="xterm -T $Dev -e ssh golem@$Dev"
DataB="psql -qAt -U golem golem_database"
SHM="/dev/shm/golem"
SHMdir="$SHM/$ThisDev"
SHM0="/dev/shm/golem/0"
NULL="1>/dev/null"
Everything2NULL="1>/dev/null 2>/dev/null"
GWDirigentDir="/GW/SW/ControlSW/Dirigent"


#RUNinBACKGR="&> /dev/null"
RUNinBACKGR="&"

LogFunctionStart="LogIt Diving into .."
LogFunctionEnd="LogIt Ascending from .."
LogFunctionPassing="LogIt Passing by .."
LogFunctionGoingThrough="LogIt Going through .." 

#2> >(tee -a $SHM/stderr.log >&2)


function PrepareDischarge() { $LogFunctionPassing; echo OK; }


function RASPCommand()
{
    Result=`ssh golem@$1 "source $1.sh;$2"`
    LogIt $2@$1: $Result
}

function DASCommand()
{
    Result=`cd DASs;source $1.sh;$2;cd ..`
    LogIt $2@$1: $Result
}

#DIRIGENT:
function Dirigent(){ ssh golem@Dirigent "source Dirigent.sh; $@"; }
#RASPs:
function Chamber(){ ssh golem@Chamber "source Chamber.sh; $@"; }
function Charger(){ ssh golem@Charger "source Charger.sh; $@"; }
function Discharge(){ ssh golem@Discharge "source Discharge.sh; $@"; }
#DASS
function TektrMSO56Standard(){ "cd DASs;source TektrMSO56Standard.sh; $@"; }  
function RigolMSO5104Charger(){ "cd DASs;source RigolMSO5104Charger.sh; $@"; }
#Analysis
function Web(){ "source Web.sh; $@"; }



function RASPsOpenSession()
{
	mkdir -p $SHM
	sshfs golem@Dirigent:$SHM/ $SHM/
	echo OK
}	



function DASsOpenSession()
{
	echo OK
}

function RASPsCloseSession()
{
    fusermount -u $SHM
    rm -rf $SHM
	echo OK
}

function DASsCloseSession()
{
	echo OK
}

function LogIt()
{
	echo  `date '+%H:%M:%S'`\\t  ${FUNCNAME[1]} $1 >> $SHM/LocalLogBook
	printf "`date +%H:%M:%S` #`cat $SHM/ShotNo`  $ThisDev/${FUNCNAME[1]}:\t%s\n" "$1 $2 $3 $4"|tee -a $SHM/GlobalLogbook 
	printf "`date +%H:%M:%S` #`cat $SHM/ShotNo`  $ThisDev/${FUNCNAME[1]}:\t%s\n" "$1 $2 $3 $4">> $SHM0/ShotLogbook 

    #| expand -t 33
}	


function CommonInitDischarge()
{
    $LogFunctionPassing
    mkdir -p $SHM0/$SUBDIR/$ThisDev
    echo OK
}

	

function critical_error()
{
    LogIt  "Critical error: $1 ... Stopped"
    echo pack [label .error -text {Critical error: $1 ... stopped}]|wish
}	






function StartOscAcquiring()
{
# $1: Osc name
    $LogFunctionGoingThrough
    echo ":TRIGger:SWEep AUTO;RUN"|netcat -w 1 $1 5555 
    mkdir -p /dev/shm/$1/
    touch /dev/shm/$1/OscRequestStream
    tail -f /dev/shm/$1/OscRequestStream|netcat $1 5555 >> /dev/shm/$1/OscRespondStream &
    
}

function ReadOscilloscope()
{
# $1: Osc name
# $2: Channel #
    
    echo ":SYSTem:TIME?">> /dev/shm/$1/OscRequestStream;mRelax
    echo ":MEAS:ITEM? VAVG, CHANNEL$2">> /dev/shm/$1/OscRequestStream
    echo `tail -1 /dev/shm/$1/OscRespondStream|xargs printf '%4.0f\n'`
}


function OpenOscDVMAcquiring()
{
# $1: Osc name
# $2: Channel #
    $LogFunctionGoingThrough
    echo ":DVM:ENABle ON;:DVM:SOURce CHANnel$2"|netcat -w 1 $1 5555;mRelax
    echo ":STOP;:CLEAR;:TRIGger:SWEEp AUTO;RUN"|netcat -w 1 $1 5555 
    mkdir -p /dev/shm/$1/
    touch /dev/shm/$1/OscRequestStream
    tail -f /dev/shm/$1/OscRequestStream|netcat -N $1 5555 >> /dev/shm/$1/OscRespondStream &
    
}


# while [ 1 ]; do  ./Charger.sh -r ReadDVMOscilloscope HVOsc ;sleep 1;done
function ReadDVMOscilloscope()
{
# $1: Osc name
    echo ":SYSTem:TIME?">> /dev/shm/$1/OscRequestStream;mRelax
    echo ":DVM:CURRENT?">> /dev/shm/$1/OscRequestStream;mRelax
    echo `tail -1 /dev/shm/$1/OscRespondStream|xargs printf '%4.0f\n'`
}




# Defaults, in case it is not defined in the driver itself


function Arming()
{
    $LogFunctionGoingThrough
    echo OK
}

function PostDischargeFinals()
{
    $LogFunctionGoingThrough
    echo OK
}

function PostDisch()
{
    $LogFunctionGoingThrough
    echo OK
}

source Tools.sh