Sandbox/Dirigent/offline/Dirigent.sh
#!/bin/bash
SUBDIR=
ThisDev=Dirig
source Commons.sh
source Tools.sh
ShotNo=`DataBaseQuerry "SELECT shot_no FROM shots_new ORDER BY timestamp DESC LIMIT 1;"`
function OpenSession()
{
#PingCheck
LogIt "$DOWNTO ${FUNCNAME[0]}"
date '+%d/%m/%y %H:%M:%S'>$SHM/DateTime;mkdir -p $SHM/Control; cp *.* $SHM/Control/
for Dev in Dirigent $INFRASTRDevs; do
rsync --copy-links -e ssh $Dev.sh Tools.sh Commons.sh golem@$Dev:
LogIt "Creating $Dev communication channel .."
mkdir -p $SHM/mnts/$Dev
sshfs golem@$Dev:/dev/shm/ /dev/shm/mnts/$Dev/
done
LogIt "$UPFROM ${FUNCNAME[0]}"
}
function Broadcast()
{
LogIt "*********`echo "$1" | tr a-z A-Z` start"
for Dev in $INFRASTRDevs;
do
echo Broadcasting $Dev
$Dev $@
done
LogIt "*********`echo "$1" | tr a-z A-Z` end"
}
function Discharge()
{
InitDischarge
LogIt "$DOWNTO ${FUNCNAME[0]}"
Broadcast Init
Broadcast Prepare $UBt $Ucd
Broadcast Arming
sleep 2;Discharge Trigger;sleep 2
Broadcast PostDisch
sleep 2
Broadcast Final
Final
LogIt "$UPFROM ${FUNCNAME[0]}"
}
function Trigger () { JustPassing; }
function Emergency ()
{
LogIt "$PASSING ${FUNCNAME[0]}"
}
function Null ()
{
LogIt "$PASSING ${FUNCNAME[0]}"
}
function DirigentLogIt()
{
echo "$@"|tee -a $SHM/GlobalLogBook
}
function KillSession()
{
killall tail
}
function InitDischarge()
{
rm -rf $SHM0;mkdir -p $SHMdir;
#PingCheck #Ping all the devices ..
LogIt "$DOWNTO ${FUNCNAME[0]}"
LogIt "Command Line: $COMMANDLINE"
LogIt "Load average: `cat /proc/loadavg`"
ShotNo=$((`echo "SELECT shot_no FROM shots_new ORDER BY timestamp DESC LIMIT 1;" |$DataB`+1))
echo $ShotNo>$SHM/ShotNo;$SHMtouch/$ShotNo;
LogIt "Let's go for shot #"$ShotNo
LogIt "$UPFROM ${FUNCNAME[0]}"
}
function Final()
{
LogIt "$DOWNTO ${FUNCNAME[0]}"
LogIt "Load average: `cat /proc/loadavg`"
}
TASK=$1
COMMANDLINE=`echo $@|sed 's/-r //g'`
PAR1=$1
PAR2=$2
PAR3=$3
PAR4=$4
while [ $# -gt 0 ]; do
if [[ $1 == *"--"* ]]; then
v="${1/--/}"
declare $v="$2"
fi
shift
done
case "$TASK" in
"")
# echo "Usage: $0 [-d|--discharge] [-v|--vacuum] [-t|--test] [-s|--shutdown]"
RETVAL=1
;;
--discharge|-d)
Discharge
;;
--vacuum|-v)
echo i
;;
--test|-t)
#Init
#Et "Init;Prepare 400 300"
#PwSpPap 3H
#PwSp UnPiRelayON 5
#Chamber RotPumpON
#Bt ShCt_DIS;Bt PS_ENG;sleep 0.3;Bt PS_DIS;Bt ShCt_ENG
#Et ShCt_DIS;Et PS_ENG;sleep 0.3;Et PS_DIS;Et ShCt_ENG
Broadcast Arming
;;
--shutdown|-s)
ShutDown
;;
--emergency|-e)
Broadcast Emergency
;;
--ping|-p)
PingCheck
;;
--command|-c)
Init
$PAR2 $PAR3 $PAR4
;;
--raw_command|-r)
$COMMANDLINE
;;
--open_session|-o)
OpenSession
;;
esac