Cygwinからリグ情報

FT-991&WSJT-XでなんとかJT65・JT9のオペレートに少し慣れてきたところで、またつまらぬ脇道に向かうことに。こういう時は昔から何かに煮詰まっている状況なので・・・

リグコントロールソフトは既に有償無償そろい、GUIな画面での操作が可能ですが、根がひねてるので、ターミナルからタイプ打ちで操作したり、リグからの情報をテキストファイルに落としてごにょごにょするという、シェル芸を画策してみたくなったのです。

本来はLinux環境でやるべきなんでしょうが、極めてMS系の占有率がお高い世界のようなので、妥協案としてインストール済みのCygwin環境下でお試しすることにしました。

Cygwinのインストールやら構築の課程は話すも辛い魑魅魍魎との戦いだったのでここは激略。FT-991 CATの操作はrubyスクリプトで試したいので、関連のパッケージを追加。

リグを接続したときのシリアル情報は窓側コンパネから「デバイスドライバ」で調べることができます。自環境ではドライバを組み込んだ結果、Standard Portが「COM3」CATコントロールを受け持つEnhanced Portは「COM4」で認識されていました。

2016-09-07cygwin1

Cygwinのターミナルから「/dev」以下をのぞくと「ttyS2」「ttyS3」が出現。窓上でのCOM番号表記とは一つずれているようで、この場合Enhanced Portは「ttyS3」と推測。

テスト用スクリプト内でシリアルポート番号をこれに合わせ、BAUDRATEはFT-991側の設定値、ノンパリティとストップビット2もお約束どおりということに。

CATオペ関係のドキュメントからコマンドを厳選(?)。

急ごしらえでこんなリストにしてみました。


#!/usr/bin/ruby
# coding: utf-8
# 991serialtest.rb
# FT-991 CAT Test
#
require 'rubygems'
require 'serialport'

# シリアルポート通信設定
$s_port = '/dev/ttyS3'
$s_rate = 9600
$s_databit = 8
$s_stopbit = 2
$s_parity = 0
$s_delimiter = ";"
#$s_delimiter = "\n"

# シリアルポートを開く
sp = SerialPort.new($s_port, $s_rate, $s_databit, $s_stopbit, $s_parity)
sp.read_timeout=100 # 受信時のタイムアウト(ミリ秒単位)

# シリアルポート送信
# sp.write "BU0" # Band Up
sp.write "FA" # VFO-A Freq Read
# sp.write "ID" # Rig ID Read
# sp.write "MS" # Meter mode Read
# sp.write "MS1" # Meter mode ALC Set
sp.write "#{$s_delimiter}"

# シリアルポート受信
line = sp.gets("#{$s_delimiter}")

# あとは受信内容の出力
puts line

# シリアルポートを閉じる
sp.close

「# シリアルポート送信」行のコメントを手作業で変えて、スクリプトを動かしてみました。

2016-09-07cygwin2

コマンドを投げかけるとなんとか返答はしてくれます。

こうしてPCからコマンド入れて操作してると、パケット通信時代のTNCと変わらない(進歩していない)?。

コメントを残す

メールアドレスが公開されることはありません。