Top > 日記 > 2017-10-14

***ID-31をCI-Vで制御 [#y34482d8]
音声でUrCALLを入力させる前に、ID-31をCI-Vで入力させてみた。
インターフェースは以下参考((このサイトのおかげです。感謝感謝))にし、プログラムはID-31 マニュアルのCI-V制御コマンド表等を見ながら
bash shellとPython(2.7)で作成した。
参考:http://www.fbnews.jp/201708/myproject/index.html
+構成
Raspberry Pi(on VirtualBox) == Interface == ID-31(CI-V)
+Interface
&ref(IMG_2655.JPG,,40%);
+Menu Code((2017-10-16更新))
 #!/bin/bash
 
 PATH=~/bin:$PATH
 export $PATH
 
 ucl31.sh "CQCQCQ"
 URCL0="CQCQCQ"
 817.py
 FREQ="438.17 MHz"
 dup_off.py
 DUP="Dup none"
 
 while :
 do
   str1=""
   clear
   echo "Current Set.: $URCL0 $FREQ $DUP"
   echo ""
   wget -q -N http://aaa.bbb.ccc.ddd/data2.txt  #自前サーバアドレス
   head -25 data2.txt | cut -c12- | sort -u | grep -v "        " | nl -w 2 -s " - " | tee list0.txt
   cat /home/pi/bin/ref1.txt >> list0.txt
   echo "-------------------------------------------"
   cnt=0
   while :
   do
     cnt=`expr $cnt + 2`
     echo $(cat ref1.txt | head -$cnt | tail -2 | awk '{print($1,$2,$3)}')
     if [ $cnt -gt 17 ]; then
       break
     fi
   done
   echo ""
   read -t 5 -p "No. of CALL: " str1
   VAL=$((str1 + 0))
   case "$str1" in
     "17" ) 817.py
            FREQ="438.17 MHz" ;;
     "60" ) 860.py
            FREQ="438.60 MHz" ;;
    "dn" ) dup_on.py
            DUP="Dup -" ;;
    "df" ) dup_off.py
            DUP="Dup none" ;;
     "pn" ) pwon.py ;;     #電源ON
     "pf" ) pwoff.py ;;    #電源OFF
     "vl" ) voll.py 7 ;;    #ボリュームLOW
     "vm" ) voll.py a ;;    #  〃  MIDL
     "vh" ) volh.py A ;;    #  〃  HIGH
     "mt" ) voll.py 2 ;;    #  〃  MUTE
   esac
   if test $VAL -lt 100 -a $VAL -gt 0  ; then
     URCL=`grep "$str1 -" list0.txt | head -1`
     MEM1="$URCL"
     URCL0=`echo "$URCL" | cut -c7-14`
     /home/pi/bin/ucl31.sh "$URCL0" &
     str1=""
     VAL=""
   fi
 done
+ucl31.sh(UrCALL->d31.py)
 #!/bin/bash
 
 STR1=`echo $1 | cut -c1`
 echo $STR1
 if test "$STR1" = "s"; then
 # echo "Found s"
   STR2=`echo $1 | cut -c2-8`
   python2 d31.py "$STR1" "$STR2"
 else
   python2 d31.py "" "$1"
 fi
+d31.py(CI-V Control)
 #!/usr/bin/python
 
 import serial
 import sys
 import time
 
 ser = serial.Serial('/dev/ttyUSB0',
                    baudrate=19200,
                    parity = serial.PARITY_NONE,
                    timeout=1)
 
 ser.close()
 ser.open()
 ser.isOpen()
 
 pm1 = sys.argv[1]
 pm2 = sys.argv[2]
 CMDGATETO = '\xFE\xFE\x84\x00\x1F\x01'
 count = 0
 while (count < 1):
 #  time.sleep(0.1)
    RPT1 = 'JJ1YEG A'
    RPT2 = 'JJ1YEG G'
    URCL = pm2
    URCL = URCL + '        '
    if pm1 == "s":
 #    print pm1
      URCL = URCL[:7]
    else:
      URCL = URCL[:8]
 
    URCL = URCL + RPT1 + RPT2
    CEND = '\xFD'
    SLS = '\x2F'
    ser.write(CMDGATETO)
    if pm1 == "s":
      ser.write(SLS.encode())
 
    URCL = URCL.replace('_', ' ')
    URCL = URCL.upper()
    print URCL
    ser.write(URCL.encode())
 #  ser.write(RPT1.encode())
 #  ser.write(RPT2.encode())
    ser.write(CEND)
    count = count + 1
 
 ser.close()
+sample pic
 メニュー画面(毎8秒更新)
&ref(menu04.JPG,,65%);  &ref(IMG_2650.JPG,,30%); ⇨ &ref(IMG_2654.JPG,,30%);
                    "93"を入力して"CQCQCQ" ⇨ "REF047CL"にセットされた様子
 また、メニューの個人コールサインの番号を入力すると、UrCALLがそのコールがセットされる。
 また、メニューの個人コールサインの番号を入力すると、UrCALLがそのコールにセットされる。
 メニューのリストは8秒毎に更新((JARL管理サーバーの「テーブル書き換え要求」一覧を参考にしている→http://log.d-star.info/usr/TrustAccessLog.html))される。
#clear
#comment
#navi(日記)

リロード   新規 下位ページ作成 凍結解除 差分 コピー 名前変更   ホーム 一覧 検索 最終更新 バックアップ リンク元   ヘルプ   最終更新のRSS