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