Skip to content

Commit

Permalink
updated dmdispbridge script
Browse files Browse the repository at this point in the history
  • Loading branch information
jaredmales committed Dec 21, 2023
1 parent 219c99f commit 3d62e67
Showing 1 changed file with 265 additions and 31 deletions.
296 changes: 265 additions & 31 deletions scripts/dmdispbridge
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
set -eo pipefail

#######################################################
# dmdispbridge: create a TCP bridge for a dmdisp
# dmdispTCP: create a shmimTCP connection for a dmdisp
#
#
#######################################################
Expand All @@ -12,23 +12,21 @@ pname=`echo "$0" | sed "s/\.\///g"`

function printHELP {
echo "------------------------------------------------------------------------"
echo "$(tput bold) $pname : create dmdisp bridge $(tput sgr0)"
echo "$(tput bold) $pname : create a shmimTCP connection for a dmdisp channel $(tput sgr0)"
echo "------------------------------------------------------------------------"
echo " Create a dmdisp bridge"
echo " Create a shmimTCP dmdisp bridge"
echo " "
echo " $(tput bold)USAGE:$(tput sgr0)"
echo " $0 [-h] <dmnum> <ip>"
echo " $0 [-h] <dmchan>"
echo ""
echo ""
echo " $(tput bold)INPUT:$(tput sgr0)"
echo " <dmnum> : the dm number, XX in dmXXdispYY"
echo " <name> : ip address of the machine controlling the dm"
echo " <start-port> : the starting port number, for dmXXdisp00"
echo " <dmchan> : the dm channel shmim name, dm01disp05"
echo ""
echo " This should be run on the machine that will send the commands"
echo ""
echo " $(tput bold)EXAMPLE:$(tput sgr0)"
echo " $0 01 192.168.2.2 8800 #will create bridge for dm01disp "
echo " $0 dm01disp05 50 50 192.168.2.2 8805 #will create for dm01disp "
echo ""
echo "------------------------------------------------------------------------"
}
Expand Down Expand Up @@ -58,37 +56,273 @@ while getopts :hckp: FLAG; do
done


ip=$2
dmdisp=$1
me=$(hostname)
role=$MAGAOX_ROLE

for i in {0..11}
do
if (($i < 10 ))
then
chnum="0$i"
else
chnum="$i"
fi
ip="0"
port=0
Nx=0
Ny=0
if [ "$role" = "ICC" ]
then

ip="192.168.2.2"

let "port=($3 + $i)"
case $dmdisp in
#dmwoofer
"dm00disp00")
port=8780
Nx=11
Ny=11
;;
"dm00disp01")
port=8781
Nx=11
Ny=11
;;
"dm00disp02")
port=8782
Nx=11
Ny=11
;;
"dm00disp03")
port=8783
Nx=11
Ny=11
;;
"dm00disp04")
port=8784
Nx=11
Ny=11
;;
"dm00disp05")
port=8785
Nx=11
Ny=11
;;
"dm00disp06")
port=8786
Nx=11
Ny=11
;;
"dm00disp07")
port=8787
Nx=11
Ny=11
;;
"dm00disp08")
port=8788
Nx=11
Ny=11
;;
"dm00disp09")
port=8789
Nx=11
Ny=11
;;
"dm00disp10")
port=8790
Nx=11
Ny=11
;;
"dm00disp11")
port=8791
Nx=11
Ny=11
;;
#dmtweeter
"dm01disp00")
port=8800
Nx=50
Ny=50
;;
"dm01disp01")
port=8801
Nx=50
Ny=50
;;
"dm01disp02")
port=8802
Nx=50
Ny=50
;;
"dm01disp03")
port=8803
Nx=50
Ny=50
;;
"dm01disp04")
port=8804
Nx=50
Ny=50
;;
"dm01disp05")
port=8805
Nx=50
Ny=50
;;
"dm01disp06")
port=8806
Nx=50
Ny=50
;;
"dm01disp07")
port=8807
Nx=50
Ny=50
;;
"dm01disp08")
port=8808
Nx=50
Ny=50
;;
"dm01disp09")
port=8809
Nx=50
Ny=50
;;
"dm01disp10")
port=8810
Nx=50
Ny=50
;;
"dm01disp11")
port=8811
Nx=50
Ny=50
;;
esac
elif [ "$role" = "RTC" ]
then

ip="192.168.2.3"

echo $port
case $dmdisp in
#dmncpc
"dm01disp00")
port=8820
Nx=34
Ny=34
;;
"dm01disp01")
port=8821
Nx=34
Ny=34
;;
"dm01disp02")
port=8822
Nx=34
Ny=34
;;
"dm01disp03")
port=8823
Nx=34
Ny=34
;;
"dm01disp04")
port=8824
Nx=34
Ny=34
;;
"dm01disp05")
port=8825
Nx=34
Ny=34
;;
"dm01disp06")
port=8826
Nx=34
Ny=34
;;
"dm01disp07")
port=8827
Nx=34
Ny=34
;;
"dm01disp08")
port=8828
Nx=34
Ny=34
;;
"dm01disp09")
port=8829
Nx=34
Ny=34
;;
"dm01disp10")
port=8830
Nx=34
Ny=34
;;
"dm01disp11")
port=8831
Nx=34
Ny=34
;;
esac
else
echo ""
echo "This can only be run on ICC or RTC."
echo ""
printHELP
exit
fi

com="cd shmimTCP && tmux new-session -d -s sTCPrc-"$me"-dm"$1"disp"$chnum" && tmux send-keys -t sTCPrc-"$me"-dm"$1"disp"$chnum" \"bash ./shmimTCPreceive.bash "$port"\" C-m"
if [ $ip = "0" ]
then
echo ""
echo "Did not find an ip. This can only be run on ICC or RTC."
echo ""
printHELP
exit
fi

echo $com
if [ $port = 0 ]
then
echo ""
echo "Did not find a port. Is dm channel valid?"
echo ""
printHELP
exit
fi

#Create tmux and start listening on RTC
ssh -t rtc $com
if [ $Nx = 0 or $Ny = 0 ]
then
echo ""
echo "Did not find a DM size. Is dm channel valid?"
echo ""
printHELP
exit
fi

#create shmim locally
creaimshm "dm"$1"disp"$chnum 50 50
#It seems to take two separate ssh sessions to do this successfully, but maybe not
com1="tmux new -d -s sTCPrc-"$me"-"$dmdisp

com2="tmux send -t sTCPrc-"$me"-"$dmdisp" C-c C-m \"shmimTCPreceive "$port"\" C-m"

#Create tmux on RTC
echo $com1
ssh -t rtc $com1 || true #this lets us ignore a duplicate session

#Start listening on RTC
echo $com2
ssh -t rtc $com2


#create shmim locally

dmnamearg="s>tf32>"$dmdisp

cacao << EOF
mk2Dim "$dmnamearg" $Nx $Ny
quit
EOF

#start transmitting
echo "starting shmimTCPtransmit: " $dmdisp $ip $port

shmimTCPtransmit $dmdisp $ip $port

#start transmitting
#echo "starting detached session"
#tmux new -d -s "sTCPtx-"$me"-dm"$1"disp"$chnum
echo "starting shmimTCPtransmit: " "dm"$1"disp"$chnum $ip $port

shmimTCPtransmit "dm"$1"disp"$chnum $ip $port
done

0 comments on commit 3d62e67

Please sign in to comment.