#!/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