From 3d62e67128bd7f0904dcce727ea4bbf2ec6330b2 Mon Sep 17 00:00:00 2001 From: jrmales Date: Thu, 21 Dec 2023 13:32:09 -0700 Subject: [PATCH] updated dmdispbridge script --- scripts/dmdispbridge | 296 ++++++++++++++++++++++++++++++++++++++----- 1 file changed, 265 insertions(+), 31 deletions(-) diff --git a/scripts/dmdispbridge b/scripts/dmdispbridge index 4960a0b17..c95bfe152 100644 --- a/scripts/dmdispbridge +++ b/scripts/dmdispbridge @@ -2,7 +2,7 @@ set -eo pipefail ####################################################### -# dmdispbridge: create a TCP bridge for a dmdisp +# dmdispTCP: create a shmimTCP connection for a dmdisp # # ####################################################### @@ -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] " +echo " $0 [-h] " echo "" echo "" echo " $(tput bold)INPUT:$(tput sgr0)" -echo " : the dm number, XX in dmXXdispYY" -echo " : ip address of the machine controlling the dm" -echo " : the starting port number, for dmXXdisp00" +echo " : 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 "------------------------------------------------------------------------" } @@ -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