#!/bin/bash
RASPs="Chamber Charger Discharge"
#RASPs="Charger Discharge"
ARDs="Trigger"
PAPs=""
VIRTDevs=""
DASs="TektrMSO56Standard"
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 RASPCommand()
{
Result=`ssh golem@$1 "source $1.sh;$2"`
LogIt $2@$1: $Result
}
function DASCommand()
{
Result=`source $1.sh;$2`
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(){ "source TektrMSO56Standard.sh; $@"; }
#Analysis
function Web(){ "source Web.sh; $@"; }
function RASPsOpenSession()
{
mkdir -p $SHM
sshfs golem@Dirigent:$SHM/ $SHM/
echo OK
}
function RASPsCloseSession()
{
fusermount -u $SHM
rm -rf $SHM
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
}
# Defaults, in case it is not defined in the driver itself
function PrepareDischarge() { $LogFunctionPassing; echo OK; }
function Arming()
{
$LogFunctionGoingThrough
echo OK
}
function PostDischargeFinals()
{
$LogFunctionGoingThrough
echo OK
}
function PostDisch()
{
$LogFunctionGoingThrough
echo OK
}
function DASsOpenSession()
{
echo OK
}
function DASsCloseSession()
{
echo OK
}
source Tools.sh