- 追加された行はこの色です。
- 削除された行はこの色です。
***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
+Menu Code((2017-10-16更新))
#!/bin/bash
str1=""
MEM1="none"
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 "メモリー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 | head -1`
MEM1="$URCL"
URCL0=`echo "$URCL" | cut -c7-14`
/home/pi/bin/ucl31.sh "$URCL0" &
str1=""
clear
fi
#sleep 2
echo "Current Set.: $URCL0 $FREQ $DUP"
echo ""
wget -q -N http://192.168.50.19/data2.txt
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 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" ;;
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秒更新) "93"を入力して"CQCQCQ" ⇨ "REF047CL"にセットされた画面
&ref(menu02.JPG,,43%); &ref(IMG_2650.JPG,,30%); ⇨ &ref(IMG_2654.JPG,,30%);
メニュー画面(毎8秒更新)
&ref(menu03.JPG,,43%); &ref(IMG_2650.JPG,,30%); ⇨ &ref(IMG_2654.JPG,,30%);
"93"を入力して"CQCQCQ" ⇨ "REF047CL"にセットされた様子
もちろんメニューの各コールサインを1つ入力しても、そのコールがセットされる。
メニューのリストは8秒毎に更新((JARL管理サーバーの「テーブル書き換え要求」一覧を参考にしている→http://log.d-star.info/usr/TrustAccessLog.html))される。
#clear
#comment
#navi(日記)