|  | 
G2G1移行スクリプトその後DCD検出追加module Aをuserが使用しているか否かを無線機内からデジタルSQL信号を引き出し、I/Fを介しCOMポートへ接続。statserialでDCDのON/OFFをcomポート側から検出する。これを組いれ、g2g1_grep.sh → g2g1dcd.shに更新した。
 --- g2g1dcd.sh ---
#!/bin/bash
while :
do
FLAG=`/usr/sbin/tcpdump -vv dst host xx.xx.xxx.xxx -nXs 1000 -c 1`
echo "$FLAG"
#; pkill -9 tcpdump
DISCO=`echo "$FLAG" | grep -e "disconne"`
TYPE=`echo "$FLAG" | grep -e "type" | cut -b62-67`
if test $TYPE = "odulei" ; then
  URCALL=`echo "$FLAG" | grep -e "urcall" | cut -b60-69`
fi
if test $TYPE = "module" ; then
  URCALL=`echo "$FLAG" | grep -e "urcall" | cut -b61-68`
fi
echo "$TYPE urcall=$URCALL"
if test "$DISCO" = ""; then
  if test "$URCALL" != "........" ; then
    if test $TYPE = "odulei" ; then
      MYCALL=`echo "$FLAG" | grep -e "mycall" | cut -b62-67`
      URCALL=`echo "$FLAG" | grep -e "urcall" | cut -b60-69`
      RPT1=`echo "$FLAG" | grep -e "rpt1=" | cut -b58-65`
      RPT2=`echo "$FLAG" | grep -e "pt2=" | cut -b56-63`
    fi
    if test $TYPE = "module" ; then
      MYCALL=`echo "$FLAG" | grep -e "mycall" | cut -b63-68`
      URCALL=`echo "$FLAG" | grep -e "urcall" | cut -b61-68`
      RPT1=`echo "$FLAG" | grep -e "rpt1=" | cut -b59-66`
      RPT2=`echo "$FLAG" | grep -e "pt2=" | cut -b57-64`
    fi
    DT=`date`
    nTIME=`echo "$DT" | cut -b12-16`
    nDATA="$nTIME $MYCALL $URCALL $RPT1 $RPT2"
    oDT0=`tail -1 /root/trace.log`
    oDATA1=`echo "$oDT0" | cut -b12-16`
    oDATA2=`echo "$oDT0" | cut -d " " -f 7,8,9,10`
    echo "NewDATA=$nDATA"
    echo "OldDATA=$oDATA1 $oDATA2"
    if test "$nDATA" != "$oDATA1 $oDATA2"; then
      echo "New DATA!!"
      echo $DT $MYCALL $URCALL $RPT1 $RPT2 >>trace.log
    fi
    H_UR=`echo "$URCALL" | cut -b1`
    C_RPT1=`echo "$RPT1" | cut -b1-6`
    C_RPT2=`echo "$RPT2" | cut -b1-6`
    E_RPT2=`echo "$RPT2" | cut -b8`
    RPT1_G1=`grep $C_RPT1 /root/G1_rpt.txt`
    RPT2_G1=`grep $C_RPT2 /root/G1_rpt.txt`
    if (test "$H_UR" = "J" || test "$H_UR" = "7") && test "$RPT1_G1" != "" && test "$RPT2_G1" != "" && test "$E_RPT2" = "G"; then
      echo "going to G1"; echo "going to G1..." >>trace.log
      pkill -9 tcpdump
      chkconfig --level 2 dstar_gw off
      /etc/init.d/dstar_gw stop
      /etc/init.d/dplus stop
      if [ -f /dstar/dsgwd/dsgwd2 ]; then
         mv /dstar/dsgwd/dsgwd2 /dstar/dsgwd/dsgwd
      fi
      sleep 5
      /dstar/exec-gw
######## ここから #######
      CT1=0
      CT2=0
      while test $CT1 -lt 900
      do
        sleep 10
        echo "$CT1 $CT2"
        SDCD=`statserial -n /dev/ttyS0 | grep DCD | cut -b34`
        if test "$SDCD" = "1"; then
          CT2=0
          echo "--- under QSO $STIME ---"
        fi
        if test $CT2 -ge 60; then
          echo "to bkeak"
          break
        fi
        CT1=`expr $CT1 + 10`
        CT2=`expr $CT2 + 10`
      done
######## ここまで #######
      STIME=`date`
      echo "$STIME G1 END END END. going to G2.."
      echo "$STIME G1 END END END. going to G2.." >> trace.log
      if [ -f /dstar/dsgwd/dsgwd ]; then
        mv /dstar/dsgwd/dsgwd /dstar/dsgwd/dsgwd2
      fi
      pkill -9 exec-gw-nonstop
      pkill -9 dsgwd
      /sbin/chkconfig --level 2 dstar_gw on
      /etc/init.d/dplus restart
      /etc/init.d/dstar_gw start
      echo "dsgwd starting"
      /opt/products/dstar/dstar_gw/dsgwd/gwstart.sh
      sleep 20
      echo "Linking up to REFXXX A & REFXXX B"
      echo "REFXXXmL" >/dstar/tmp/link-a
      sleep 5
      echo "REFXXXmL" >/dstar/tmp/link-b
    fi
  fi
fi
FLAG=""
done
 
 |