ID-31をCI-Vで制御

音声でUrCALLを入力させる前に、ID-31をCI-Vで入力させてみた。
インターフェースは以下参考*1にし、プログラムはID-31 マニュアルのCI-V制御コマンド表等を見ながら
bash shellとPython(2.7)で作成した。
参考:http://www.fbnews.jp/201708/myproject/index.html

  1. 構成
    Raspberry Pi(on VirtualBox) == Interface == ID-31(CI-V)
  2. Interface
    IMG_2655.JPG
  3. Menu Code
    #!/bin/bash
    str1=""
    MEM1="none"
    while :
    do
    str1=""
    clear
    echo "メモリー1: $MEM1"
    echo ""
    wget -q -N http://aaa.bbb.ccc.ddd/data2.txt #自前サーバIPaddress(左下の注2参照)
    head -25 data2.txt | cut -c12- | sort -u | grep -v "
          " | nl -w 3 -s " - " | tee list0.txt
    cat /home/pi/bin/ref1.txt >> list0.txt
    echo "-------------------------------------------"
    cat /home/pi/bin/ref1.txt
    read -t 8 -p "No. of CALL: " str1
    if test "$str1" != ""; then
      URCL=`grep "$str1 -" list0.txt`
      MEM1="$URCL"
      URCL0=`echo "$URCL" | cut -c7-14`
      /home/pi/bin/ucl31.sh "$URCL0" &
      clear
    fi
    #sleep 2
    done
  4. ucl31.sh(UrCALL->d31.py)
    #!/bin/bash
    
    STR1=`echo $1 | cut -c1`
    echo $STR1
    if test "$STR1" = "s"; then
    # echo "Hakken s"
      STR2=`echo $1 | cut -c2-8`
      python2 d31.py "$STR1" "$STR2"
    else
      python2 d31.py "" "$1"
    fi
  5. 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()
  6. sample pic
     メニュー画面(毎8秒更新)  "93"を入力して"CQCQCQ" ⇨ "REF047CL"にセットされた画面
    &ref(): File not found: "menu02.JPG" at page "日記/2017-10-14";  IMG_2650.JPGIMG_2654.JPG
     もちろんメニューの各コールサインを1つ入力しても、そのコールがセットされる。
     メニューのリストは8秒毎に更新*2される。

    URL B I U SIZE Black Maroon Green Olive Navy Purple Teal Gray Silver Red Lime Yellow Blue Fuchsia Aqua White


*1 このサイトのおかげです。感謝感謝
*2 JARL管理サーバーの「テーブル書き換え要求」一覧を参考にしている→http://log.d-star.info/usr/TrustAccessLog.html

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