#!/bin/bash
# sync; echo 1 > /proc/sys/vm/drop_caches


RUNKEY=`cat ~/.daqrc`

COOL_SETUP=${1-hd_all.tsg}

XCOL=(aabbff aaffbb ffccaa aaffff ffffaa)
NCOL=0
EXCL=
LOG=yes

#DCPROG=event-builder-ff.exe 
#ERPROG=event-builder-ffe.exe
 
DCPROG=event-builder-dc.exe 
EBPROG=event-builder-eb.exe 
ERPROG=event-builder-er.exe 
EVBPROG=event-builder-evb.exe 

gluonraid3ib=172.19.5.21
gluonraid3eth=129.57.135.69

gluonraid4ib=172.19.5.22
gluonraid4eth=129.57.135.70

gluonraid5ib=172.19.5.23
gluonraid5eth=129.57.135.97

gluonraid6ib=172.19.5.15
gluonraid6eth==129.57.135.103

gluondaqbuffib=172.19.5.25
gluondaqbuffeth=129.57.135.65

declare -A ipIB
ipIB=( [gluonraid3]=$gluonraid3ib [gluonraid4]=$gluonraid4ib  [gluonraid5]=$gluonraid5ib [gluondaqbuff]=$gluondaqbuffib )
declare -A ipETH
ipETH=( [gluonraid3]=$gluonraid3eth [gluonraid4]=$gluonraid4eth  [gluonraid5]=$gluonraid5eth [gluondaqbuff]=$gluondaqbuffeth )

RAID=gluonraid3
if hash get_host.sh  2>/dev/null; then
    RAID=`get_host.sh ERsoftROC`
    echo "use hosts file: RAID=$RAID"
fi

SEB0=gluondaqbuff
if hash get_host.sh  2>/dev/null; then
    SEB0=`get_host.sh SEB0`
    echo "use hosts file: SEB0=$SEB0"
fi

ERIP=${ipETH[$RAID]} 
SEBIP=${ipETH[$SEB0]} 
if  [[ $SEB0 == $RAID  ]] ; then
 SEBIP=${ipETH[$SEB0]} 
fi

echo " raid=$RAID ;  eth IP = ${ipETH[$RAID]}; ib=${ipIB[$RAID]}  ; SEBIP=$SEBIP "

#exit 0

DCCDC=gluon44
DCFCAL=gluon41
DCFDC=gluon42
DCBCAL=gluon40
#DCAUX=gluon43
DCAUX=gluon47

CDCID=`echo $DCCDC | sed s/gluon//g `
FCALID=`echo $DCFCAL | sed s/gluon//g `
FDCID=`echo $DCFDC | sed s/gluon//g `
BCALID=`echo $DCBCAL | sed s/gluon//g `
AUXID=`echo $DCAUX | sed s/gluon//g `
#---------------------------------------
#FILE_FLAG="-f=/${RAID}"
if  [[ $RAID == "gluondaqbuff" ]]; then  
    FILE_FLAG=" -f=/media/ramdisk/test/TEST "
   #FILE_FLAG=" -f=/ssd/test/TEST "
else
    #FILE_FLAG=" -f=/gluondaqfs/hdops/CDAQ/daq_dev_v0.31/TEST "
#     FILE_FLAG=" -f=/gluondaqfs/hdops/CDAQ/daq_dev_v0.31/DATA "
     FILE_FLAG=" -f=${DAQ_HOME}/../DATA "
fi

NRAID=1
#---------------------------------------
#CMD_HOST=gluon44
#CMD_PORT=32768

CMD_HOST=gluon25
CMD_PORT=32767

#-- all:  NCDC=14   NFCAL=12  NFDC=14 NBCAL=12
COMP="ALL"

NCDC=14
NFCAL=12
NFDC=14
NBCAL=12
#-- DC --
NDC=4

NETCAT=no

#========================================================================
cool=`echo $COOL_SETUP | grep hd_ `
if [[ $cool != "" ]] ; then
    #COOL_SETUP=hd_all.tsg
    echo "-------------------  Make cDAQ ROC list  ------------------------"
    ROC_slave=`ls ${COOL_HOME}/gluex/config/Control/${COOL_SETUP}/Components/ROC*.rdf`
    ROC_LIST=
    # NTOT=1     #  TSG
    NTOT=0
    [  -f  ${COOL_HOME}/gluex/config/Control/${COOL_SETUP}/Components/TSG.rdf ] && NTOT=1
    NFCAL=0
    NBCAL=0
    NFDC=0
    NCDC=0
    NTAGM=0
    NTAGH=0
    NPS=0
    NPSC=0
    NTAGMH=0
    NCDC4=0
    NAUX=0
    NCDC_CL=

    MAXDC=11 #--- from ROL2 LIST---
    echo "MAXDC=$MAXDC"

    CL_DCFCAL=
    CL_DCBCAL=
    CL_DCFDC=
#    CL_DCCDC=TSG
    CL_DCCDC=
    CL_DCAUX=

    for rsl in $ROC_slave ; do
        roc=`basename  $rsl | cut -f1 -d. `
        #echo "evb.sh:: roc=$roc"
        ROC_LIST="$ROC_LIST $roc "
        fcal=`echo $roc | grep -i ROCFCAL `
        bcal=`echo $roc | grep -v 13 |  grep -v 14 |  grep -v 15  |  grep -v 16 | grep -i ROCBCAL `
        fdc=`echo $roc | grep -i ROCFDC `
        cdc=`echo $roc | grep -i ROCCDC `
        tagmh=`echo $roc | grep -i ROCTAGMH `
        tagm=`echo $roc | grep -i ROCTAGM1 `
        tagh=`echo $roc | grep -i ROCTAGH1 `
        ps=`echo $roc | grep -i ROCPS  `
        psc=`echo $roc | grep -i ROCSTPSC  | grep -iv rocstpsc2`
        rtot=`echo $roc | grep -iv rocbcal13  | grep -iv rocbcal14  | grep -iv rocbcal15  | grep -iv rocbcal16  | grep -iv roctof3  | grep -iv rocstpsc2  | grep -iv roctagm2  | grep -iv roctagh2 | grep -iv roctrig2  | grep -iv roctrig3 `
        if   [[ $fcal != ""  ]] ; then NFCAL=$(($NFCAL+1));  [[ $NFCAL -le $MAXDC ]] && CL_DCFCAL="$CL_DCFCAL $fcal" || CL_DCAUX="$CL_DCAUX $fcal";  
        elif [[ $bcal != ""  ]] ; then NBCAL=$(($NBCAL+1));  [[ $NBCAL -le $MAXDC ]] && CL_DCBCAL="$CL_DCBCAL $bcal" || CL_DCAUX="$CL_DCAUX $bcal";
        elif [[ $fdc != ""   ]] ; then NFDC=$(($NFDC+1));    [[ $NFDC -le $MAXDC ]]  && CL_DCFDC="$CL_DCFDC $fdc"    || CL_DCAUX="$CL_DCAUX $fdc"; 
        elif [[ $tagmh != "" ]] ; then NTAGMH=$(($NTAGMH+1)); NCDC_CL=$(($NCDC_CL+1)); [[ $NCDC_CL -le $MAXDC ]] && CL_DCCDC="$CL_DCCDC $tagmh" || CL_DCAUX="$CL_DCAUX $tagmh";
        elif [[ $tagm != ""  ]] ; then NTAGM=$(($NTAGM+1))  ; NCDC_CL=$(($NCDC_CL+1)); [[ $NCDC_CL -le $MAXDC ]] && CL_DCCDC="$CL_DCCDC $tagm"  || CL_DCAUX="$CL_DCAUX $tagm";
        elif [[ $tagh != ""  ]] ; then NTAGH=$(($NTAGH+1));   NCDC_CL=$(($NCDC_CL+1)); [[ $NCDC_CL -le $MAXDC ]] && CL_DCCDC="$CL_DCCDC $tagh"  || CL_DCAUX="$CL_DCAUX $tagh";
        elif [[ $ps != ""    ]] ; then NPS=$(($NPS+1));       NCDC_CL=$(($NCDC_CL+1)); [[ $NCDC_CL -le $MAXDC ]] && CL_DCCDC="$CL_DCCDC $ps"    || CL_DCAUX="$CL_DCAUX $ps";
        elif [[ $psc != ""   ]] ; then NPSC=$(($NPSC+1));     NCDC_CL=$(($NCDC_CL+1)); [[ $NCDC_CL -le $MAXDC ]] && CL_DCCDC="$CL_DCCDC $psc"   || CL_DCAUX="$CL_DCAUX $psc";
        elif [[ $cdc != ""   ]] ; then NCDC=$(($NCDC+1));     NCDC_CL=$(($NCDC_CL+1)); [[ $NCDC_CL -le $MAXDC ]] && CL_DCCDC="$CL_DCCDC $cdc"   || CL_DCAUX="$CL_DCAUX $cdc"; 
        elif [[ $rtot != ""  ]] ; then 
            #echo "aux=$rtot"
            CL_DCAUX="$CL_DCAUX $rtot"; 
        fi
        if [[ $rtot != ""  ]] ; then NTOT=$(($NTOT+1));      fi
    done
    #sleep 10

    echo "CL_DCFCAL=$CL_DCFCAL sum=$(echo $CL_DCFCAL | wc -w ) "
    echo "CL_DCBCAL=$CL_DCBCAL sum=$(echo $CL_DCBCAL | wc -w ) "
    echo "CL_DCFDC=$CL_DCFDC   sum=$(echo $CL_DCFDC | wc -w ) "
    echo "CL_DCCDC=$CL_DCCDC   sum=$(echo $CL_DCCDC | wc -w ) "
    echo "CL_DCAUX=$CL_DCAUX   sum=$(echo $CL_DCAUX | wc -w ) "
    echo " "
    echo " NTOT=$NTOT :   NCDC=$NCDC  NFDC=$NFDC NFCAL=$NFCAL  NBCAL=$NBCAL NTAGM=$NTAGM NTAGH=$NTAGH NPS=$NPS  "

    #--5th DC --

    #if [[ $NFCAL > $MAXDC ]] ; then NAUX=$(($NAUX+$NFCAL-$MAXDC)) ; NFCAL=$MAXDC; fi
    #if [[ $NBCAL > $MAXDC ]] ; then NAUX=$(($NAUX+$NBCAL-$MAXDC)) ; NBCAL=$MAXDC;  fi
    #if [[ $NFDC  > $MAXDC ]] ; then NAUX=$(($NAUX+$NFDC-$MAXDC)) ;  NFDC=$MAXDC;  fi
    #if [[ $NAUX > 0 ]] ;  then 
    #    NAUX=$(($NAUX+$NTAGM+$NPS))
    #    NCDC=$(($NCDC-$NCDC4))
    #fi
    #NAUX=$(($NFCAL-9+$NBCAL-9+$NFDC-9+4))

    echo " NCDC=$NCDC  NFDC=$NFDC NFCAL=$NFCAL  NBCAL=$NBCAL   NTAGM=$NTAGM NTAGH=$NTAGH NPS=$NPS NTOT=$NTOT NAUX=$NAUX "
    #sleep 10
    #---
    NFCAL=$(echo $CL_DCFCAL | wc -w )
    NBCAL=$(echo $CL_DCBCAL | wc -w )
    NFDC=$(echo $CL_DCFDC | wc -w )
    NCDC=$(echo $CL_DCCDC | wc -w )
    NAUX=$(echo $CL_DCAUX | wc -w )
    #---
    NDC=0;
    if [[ $NFCAL > 0 ]] ; then NDC=$(($NDC+1)) ; fi
    if [[ $NBCAL > 0 ]] ; then NDC=$(($NDC+1)) ; fi
    if [[ $NFDC  > 0 ]] ; then NDC=$(($NDC+1)) ; fi
    if [[ $NCDC  > 0 ]] ; then NDC=$(($NDC+1)) ; fi
    if [[ $NAUX > 0 ]] ; then NDC=$(($NDC+1)) ; fi
    #
    echo "-------------------  Done ROC list for setup: ${cool_setup} --------------------"
    echo "ALL_ROC_LIST=$ROC_LIST  sum=$(echo $ROC_LIST | wc -w ) "
    #sleep 10

    #
    RCM_HOST=$CMD_HOST
    RCM_PORT=$CMD_PORT
    RCM=/dev/tcp/${RCM_HOST}/${RCM_PORT}

    echo "****> "
    echo "****>  go to START cDAQ: n_DC=$NDC  roc_NTOT=$NTOT dc_NFCAL=$NFCAL dc_NBCAL=$NBCAL dc_NFDC=$NFDC dc_NCDC=$NCDC dc_NAUX=$NAUX  "
    echo "msg:GUI_runconf *** START cDAQ: n_DC=$NDC  roc_NTOT=$NTOT dc_NFCAL=$NFCAL dc_NBCAL=$NBCAL dc_NFDC=$NFDC dc_NCDC=$NCDC dc_NAUX=$NAUX  " > /dev/tcp/${RCM_HOST}/${RCM_PORT}
    echo "****> "
fi
#========================================================================
#exit 1

ulimit -c unlimited

mv evb1.log evb1.log.old

#DPATH=/gluondaqfs/hdops/CDAQ/daq_dev_v0.31/daq/vme/src/rcm/cDAQ/work
DPATH=${DAQ_HOME}/vme/src/rcm/cDAQ/work 
#DPATH=`pwd`
ls -l ${DPATH}/../src/evb

#-------------------------------------------------------------------------
if [[ $COOL_SETUP == "prod" ]] ; then 

    SDEL=300   # 360 = 1500 Hz
    echo "start CDC "
    ssh $DCCDC  "cd $DPATH   && pwd && xterm -sl 6000 -title '$DCCDC CDC'   -geometry 140x25+1150+155   -bg \#${XCOL[4]}   -e  ./TCPclient.exe -cmd=send -p=10000 -d=$SDEL  -host=$DCCDC  -m=$NCDC"  & 
    sleep 1
    echo "start FCAL "
    ssh $DCFCAL "cd $DPATH   && pwd && xterm -sl 6000 -title '$DCFCAL FCAL' -geometry 140x25+1250+255   -bg \#${XCOL[4]}   -e  ./TCPclient.exe -cmd=send -p=10000 -d=$SDEL  -host=$DCFCAL -m=$NFCAL" &
    sleep 1
    echo "start FDC "
    ssh $DCFDC  "cd $DPATH   && pwd && xterm -sl 6000 -title '$DCFDC FDC'   -geometry 140x25+1350+355   -bg \#${XCOL[4]}   -e  ./TCPclient.exe -cmd=send -p=10000 -d=$SDEL  -host=$DCFDC  -m=$NFDC"  &
    sleep 1
    echo "start BCAL "
    ssh $DCBCAL "cd $DPATH   && pwd && xterm -sl 6000 -title '$DCBCAL BCAL' -geometry 140x25+1450+455   -bg \#${XCOL[4]}   -e  ./TCPclient.exe -cmd=send -p=10000 -d=$SDEL  -host=$DCBCAL -m=$NBCAL" &
    sleep 1

    exit 0 
fi
#-------------------------------------------------------------------------
# stty -tostop
# gdb ./event-builder-ff.exe
# set args  -cmd=gluon44  -seb=129.57.135.69   -dc=13 -m=14
# set args  -cmd=gluon44  -seb=129.57.135.69   -dc=14 -m=12
# set args  -cmd=gluon44  -seb=129.57.135.69   -dc=15 -m=14
# set args  -cmd=gluon44  -seb=129.57.135.69   -dc=16 -m=12
# set args  -cmd=gluon44 -m=4



#DC_NODES="gluon40 gluon41 gluon42 gluon46 gluon47 gluon48  gluon49  gluonraid1 gluonraid2   gluon43  gluon44 "
DC_NODES="gluon40 gluon41 gluon42  gluon43 gluon44  gluon47 gluondaqbuff"
RAID_NODES="gluonraid3 gluonraid4 gluonraid5 gluondaqbuff "

export SHELL=/bin/bash

echo ">>  N DC = $NDC "

echo "cmd:ER*  exit" > /dev/tcp/${CMD_HOST}/${CMD_PORT}
echo "cmd:DC*  exit" > /dev/tcp/${CMD_HOST}/${CMD_PORT}

echo "********** kill EVB *****************"

for nn in $RAID_NODES  ; do 
    echo " kill proc on $nn "
#    ssh -x $nn  " killall -9 $DCPROG; killall -9 $ERPROG; killall -9 $EVBPROG;  ipcrm -M 0x00000df4"
    if [[ $COOL_SETUP == "kill" ]] ; then 
	ssh -x $nn  " killall -9 $DCPROG; killall -9 $ERPROG;  killall -9 $EVBPROG; kill -9 `ps -ef | grep event-builder | grep -v grep | grep exe | awk '{print $2}' |tr '\n' ' ' `     "  &
    fi
#    ssh -x $nn  killall -9 $ERPROG
#    ssh -x $nn  ipcrm -M 0x00000df4
done


echo "================================= kill all DCs =========================================================="

for nn in $DC_NODES  ; do 
    echo " kill proc on $nn "
#    ssh -x $nn  "  killall -9 TCPclient.exe;  killall -9 $DCPROG; killall -9 $ERPROG; ipcrm -M 0x00000df4"
    if [[ $COOL_SETUP == "kill" ]] ; then 
	ssh -x $nn  "  killall -9 TCPclient.exe;  killall -9 $DCPROG; killall -9 $ERPROG; kill -9 `ps -ef | grep event-builder | grep -v grep | grep exe | awk '{print $2}' |tr '\n' ' ' `  " &
    fi
done
#sleep 2
#echo "================================= check =========================================================="
#for nn  in $DC_NODES; do 
#    echo "---> check  proc on  $nn <----"
#    ssh -x $nn  "ps -ef  | grep event-builder "
#done


if [[ $COOL_SETUP == "kill" ]] ; then 
    sleep 1
    exit 0 
fi

export SHELL=/bin/bash

echo "**********>> start EVB on $RAID"
#  ./event-builder-evb.exe   -cmd=gluon25:32767 -f=/gluonraid4 -raid=2 -m=4
sleep 1
XT_SLEEP=2
echo "================================= start new  ======================================"

if [[ $LOG != "no"  ]] ; then
# echo " skip "   
   #ssh $RAID  "cd $DPATH  && pwd && hostname && xterm -sl 6000 -title '$RAID ER'   -geometry 140x25+100+5 -bg \#${XCOL[2]}  -e script -c './${ERPROG}  -cmd=${CMD_HOST}:${CMD_PORT}  $FILE_FLAG  -raid=$NRAID -m=$NDC'  evb1.log  " &

if  [[ $SEB0 == $RAID  ]] ; then

 #  ssh $RAID  "cd $DPATH  && pwd && hostname && xterm -sl 6000 -title '$RAID ER'   -geometry 200x25+100-5 -bg \#${XCOL[2]}  -e '/usr/bin/stdbuf -oL  ./${EVBPROG}  -cmd=${CMD_HOST}:${CMD_PORT}  $FILE_FLAG  -raid=$NRAID -m=$NDC | tee ${RAID}.log'  " &
   sleep $XT_SLEEP

else

   ssh $RAID  "cd $DPATH  && pwd && hostname && xterm -sl 6000 -title '$RAID ER'   -geometry 150x25+5-5 -bg \#${XCOL[2]}  -e '/usr/bin/stdbuf -oL  ./${ERPROG}  -cmd=${CMD_HOST}:${CMD_PORT}  $FILE_FLAG  -raid=$NRAID -m=1 | tee ${RAID}.log'  " &
#   ssh $RAID  "cd $DPATH  && pwd && hostname && xterm -sl 6000 -title '$RAID ER'   -geometry 150x25+5-5 -bg \#${XCOL[2]}  -e  'echo \"set args   -cmd=${CMD_HOST}:${CMD_PORT}  $FILE_FLAG  -raid=$NRAID -m=1\" >! gdb.$RAID && echo \"run\" >> gdb.$RAID && gdb -x gdb.$RAID ${ERPROG} ' " &

   sleep $XT_SLEEP

   ssh $SEB0  "cd $DPATH  && pwd && hostname && xterm -sl 6000 -title '$SEB0 EB'   -geometry 150x25+920-5 -bg \#${XCOL[3]}  -e '/usr/bin/stdbuf -oL  ./${EBPROG}  -cmd=${CMD_HOST}:${CMD_PORT}  -dc=55  -seb=${ERIP}  -m=$NDC |& tee ${SEB0}.log'  " &
   sleep $XT_SLEEP

fi
  
else 

    if  [[ $NETCAT == "no"  ]] ; then
	#ssh $RAID  "cd $DPATH  && pwd && hostname &&  ls -l . && xterm -sl 6000 -title '$RAID ER'   -geometry 160x25+100+600 -bg \#${XCOL[1]}  -e './${EVBPROG}   -cmd=${CMD_HOST}:${CMD_PORT} $FILE_FLAG -raid=$NRAID -m=${NDC} || sleep 10 ' " &
	xterm -sl 6000 -title "$RAID ER" -geometry 160x25+100+600 -bg \#${XCOL[1]}  -e " ssh $RAID  'cd $DPATH  && pwd && hostname &&  ls -l . &&  /usr/bin/stdbuf -oL ./${EVBPROG}   -cmd=${CMD_HOST}:${CMD_PORT} $FILE_FLAG -raid=$NRAID -m=${NDC} || sleep 10' "  &
    else 
	echo "cmd:$RAID   start_coda_proc $RUNKEY  cd $DPATH  &&  ./${EVBPROG}  -cmd=${CMD_HOST}:${CMD_PORT} $FILE_FLAG -raid=$NRAID -m=${NDC} | nc -l  8080   " 
	echo "cmd:$RAID   start_coda_proc $RUNKEY  cd $DPATH  &&  /usr/bin/stdbuf -oL ./${EVBPROG}  -cmd=${CMD_HOST}:${CMD_PORT} $FILE_FLAG -raid=$NRAID -m=${NDC} | nc -l  8080   " > /dev/tcp/${CMD_HOST}/${CMD_PORT}
	IP=`host $RAID  | awk '{print $4 }'`
	echo "IP=$IP"
        #xterm -sl 6000 -title '$RAID ER' -geometry 160x25+100+600 -bg \#${XCOL[1]}  -e " echo '123'>1 && k=0 &&  while true  ; do nc -vn $IP 8080 > log1; echo $?; sleep 1; k=$(($k+1)); [[ $k > 10 ]] && break; done > log "  &
	tstart=`date +%s`
	echo "tstart=$tstart"
        xterm -sl 6000 -title '$RAID ER' -geometry 160x25+100+600 -bg \#${XCOL[1]}  -e  " echo $SHELL && for ii in 1 2 3 4 5 6 7  ; do  nc -vn $IP 8080; sleep 1;  echo $tstart=`date +%s` ; done && sleep 10 || sleep 10"   &
	#sleep 3
	#xterm -sl 6000 -title '$RAID ER' -geometry 160x25+100+600 -bg \#${XCOL[1]}  -e nc -vn $IP 8080 &
	#for ii in `seq 1 3` ; do 
	#nc -vnz $IP 8080
	#xterm -sl 6000 -title '$RAID ER' -geometry 160x25+100+600 -bg \#${XCOL[1]}  -e telnet $IP 8080   &
	#rc=$?
	#echo " rc = $rc "
	#if [[ $rc == 0 ]] ; then break ; fi
	#sleep 1
	#done
        #xterm -sl 6000 -title '$RAID ER' -geometry 160x25+100+600 -bg \#${XCOL[1]}  -e telnet $IP 8080 &
    fi
fi


if [[ $NAUX > 0  ]] ; then
    echo "**********>>  start DC AUX   "
    if [[ $LOG == "yes" ]] ; then
 #      ssh  $DCAUX   "cd $DPATH   && pwd && xterm -sl 6000 -title '$DCAUX DC AUX'    -geometry 140x25+1000-5    -bg \#${XCOL[0]}   -e  script -c '/usr/bin/stdbuf -oL  ./$DCPROG -cmd=${CMD_HOST}:${CMD_PORT}  -seb=${SEBIP} -dc=${AUXID} -m=$NAUX   || sleep 3' ${DCAUX}.log " &
        ssh  $DCAUX   "cd $DPATH   && pwd && xterm -sl 6000 -title '$DCAUX DC AUX'    -geometry 140x25+1000-5    -bg \#${XCOL[0]}   -e  script -c '/usr/bin/stdbuf -oL  ./$DCPROG -cmd=${CMD_HOST}:${CMD_PORT}  $FILE_FLAG   -raid=$NRAID  -m=$NAUX   || sleep 3' ${DCAUX}.log " &
        echo "sleep $XT_SLEEP"
	sleep $XT_SLEEP
    else
        #ssh $DCAUX   "cd $DPATH   && pwd && ls -l . && xterm -sl 6000 -title '$DCAUX DC AUX'    -geometry 140x25+150+55   -bg \#${XCOL[0]}   -e  './$DCPROG -cmd=${CMD_HOST}:${CMD_PORT}  -seb=${SEBIP} -dc=${FCALID} -m=$NFCAL  || echo "rc=$?" && sleep 3'" &
	xterm -sl 6000 -title "$DCAUX DC AUX" -geometry 140x25+150+55  -bg \#${XCOL[0]}  -e " ssh $DCAUX  'cd $DPATH  && pwd && hostname &&  ls -l . &&  /usr/bin/stdbuf -oL ./$DCPROG -cmd=${CMD_HOST}:${CMD_PORT}  -seb=${SEBIP} -dc=${AUXID} -m=$NAUX  || echo "rc=$?" && sleep 3' "  &
    fi
fi

if [[ $NFCAL > 0 ]] ; then
    echo "**********>>  start DC FCAL 2x  $DCFCAL "
    if [[ $LOG == "yes" ]] ; then
        ssh  $DCFCAL   "cd $DPATH   && pwd && xterm -sl 6000 -title '$DCFCAL DC FCAL'    -geometry 140x25+10+0   -bg \#${XCOL[0]}   -e  script -c '/usr/bin/stdbuf -oL  ./$DCPROG -cmd=${CMD_HOST}:${CMD_PORT}  -seb=${SEBIP} -dc=${FCALID} -m=$NFCAL   || sleep 3' ${DCFCAL}.log " &
        echo "sleep $XT_SLEEP"
	sleep $XT_SLEEP
    else
        #ssh $DCFCAL   "cd $DPATH   && pwd && ls -l . && xterm -sl 6000 -title '$DCFCAL DC FCAL'    -geometry 140x25+150+55   -bg \#${XCOL[0]}   -e  './$DCPROG -cmd=${CMD_HOST}:${CMD_PORT}  -seb=${SEBIP} -dc=${FCALID} -m=$NFCAL  || echo "rc=$?" && sleep 3'" &
	xterm -sl 6000 -title "$DCFCAL DC FCAL" -geometry 140x25+150+55  -bg \#${XCOL[0]}  -e " ssh $DCFCAL  'cd $DPATH  && pwd && hostname &&  ls -l . &&  /usr/bin/stdbuf -oL ./$DCPROG -cmd=${CMD_HOST}:${CMD_PORT}  -seb=${SEBIP} -dc=${FCALID} -m=$NFCAL  || echo "rc=$?" && sleep 3' "  &
    fi
fi



if [[ $NFDC > 0 ]] ; then
    echo "**********>>  start DC FDC =  $DCFDC  "
    if [[ $LOG == "yes" ]] ; then
        ssh  $DCFDC   "cd $DPATH   && pwd &&  xterm -sl 6000 -title '$DCFDC DC FDC'   -geometry 140x25+900+0  -bg \#${XCOL[0]}  -e   script -c '/usr/bin/stdbuf -oL  ./$DCPROG -cmd=${CMD_HOST}:${CMD_PORT}  -seb=${SEBIP} -dc=${FDCID} -m=$NFDC || sleep 3' ${DCFDC}.log " &
        echo "sleep $XT_SLEEP"
	sleep $XT_SLEEP
    else
        #ssh $DCFDC   "cd $DPATH   && pwd &&   ls -l . && xterm -sl 6000 -title '$DCFDC DC FDC'   -geometry 140x25+200+105  -bg \#${XCOL[0]}  -e  './$DCPROG -cmd=${CMD_HOST}:${CMD_PORT}  -seb=${SEBIP} -dc=${FDCID} -m=$NFDC || sleep 3'" &
	xterm -sl 6000 -title "$DCFDC DC FDC"   -geometry 140x25+200+105  -bg \#${XCOL[0]}  -e " ssh $DCFDC  'cd $DPATH  && pwd && hostname &&  ls -l . &&  /usr/bin/stdbuf -oL ./$DCPROG -cmd=${CMD_HOST}:${CMD_PORT}  -seb=${SEBIP} -dc=${FDCID} -m=$NFDC  || echo "rc=$?" && sleep 3' "  &
    fi
fi


if [[ $NBCAL > 0 ]] ; then
    echo "**********>>  start DC BCAL $DCBCAL "
    if [[ $LOG == "yes" ]] ; then
        ssh  $DCBCAL  "cd $DPATH   && pwd && hostname && xterm -sl 6000 -title '$DCBCAL DC BCAL '  -geometry 140x25+10+350  -bg \#${XCOL[0]}  -e  script -c  '/usr/bin/stdbuf -oL  ./$DCPROG -cmd=${CMD_HOST}:${CMD_PORT}  -seb=${SEBIP} -dc=${BCALID} -m=$NBCAL  || sleep 3' ${DCBCAL}.log "  &
        echo "sleep $XT_SLEEP"
	sleep $XT_SLEEP
    else
        #ssh $DCBCAL  "cd $DPATH   && pwd && hostname &&  ls -l . && xterm -sl 6000 -title '$DCBCAL DC BCAL'  -geometry 140x25+250+155  -bg \#${XCOL[0]}  -e  './$DCPROG -cmd=${CMD_HOST}:${CMD_PORT}  -seb=${SEBIP} -dc=${BCALID} -m=$NBCAL  || sleep 3'"  &
	xterm -sl 6000 -title "$DCBCAL DC BCAL"  -geometry 140x25+250+155  -bg \#${XCOL[0]}  -e " ssh $DCBCAL  'cd $DPATH  && pwd && hostname &&  ls -l . &&  /usr/bin/stdbuf -oL ./$DCPROG -cmd=${CMD_HOST}:${CMD_PORT}  -seb=${SEBIP} -dc=${BCALID} -m=$NBCAL  || echo "rc=$?" && sleep 3' "  &
    fi
fi

if [[ $NCDC > 0 ]] ; then
    echo "**********>>  start DC CDC $DCCDC "
    if [[ $LOG == "yes" ]] ; then

	echo "ssh $DCCDC  \"cd $DPATH   && pwd &&  xterm -sl 6000 -title '$DCCDC DC CDC'   -geometry 140x25+300+205  -bg \#${XCOL[0]}   -e  script -c '/usr/bin/stdbuf -oL  ./$DCPROG -cmd=${CMD_HOST}:${CMD_PORT}  -seb=${SEBIP} -dc=${CDCID} -m=$NCDC  || sleep 3' ${DCCDC}.log \" & "
	ssh  $DCCDC  "cd $DPATH   && pwd &&  xterm -sl 6000 -title '$DCCDC DC CDC'   -geometry 140x25+900+350  -bg \#${XCOL[0]}   -e  script -c './$DCPROG -cmd=${CMD_HOST}:${CMD_PORT}  -seb=${SEBIP} -dc=${CDCID} -m=$NCDC  || sleep 3' ${DCCDC}.log " &
        echo "sleep $XT_SLEEP"
	sleep $XT_SLEEP
    else
	#ssh $DCCDC  "cd $DPATH   && pwd &&   ls -l . && xterm -sl 6000 -title '$DCCDC DC CDC'   -geometry 140x25+300+205  -bg \#${XCOL[0]}   -e ' ./$DCPROG -cmd=${CMD_HOST}:${CMD_PORT}  -seb=${SEBIP} -dc=${CDCID} -m=$NCDC  || sleep 3'" &
	xterm -sl 6000 -title "$DCCDC DC CDC"   -geometry 140x25+300+205  -bg \#${XCOL[0]}   -e " ssh $DCCDC    'cd $DPATH  && pwd && hostname &&  ls -l . &&  /usr/bin/stdbuf -oL ./$DCPROG -cmd=${CMD_HOST}:${CMD_PORT}  -seb=${SEBIP} -dc=${CDCID} -m=$NCDC  || echo "rc=$?" && sleep 3' "  &
    fi
fi
#sleep 1

echo "**********>>  Clear cache   ***********"

#ssh $RAID cache_clear

echo "**********>>  ALL DONE  ***********"

