CQRlog の adif 操作

adif はテキストファイルであるから grep, sed, awk でカンタンに操作できると信じていた。
しかし CQRlog の出力する adif は QSO データが 20220103 や PJ07 Y で改行されたりで非常にキチャナイのは確かで qrz.com デスクが貶すのもわからなくはない。

然もタグが全て大文字であることもキチャナイ原因の一つだ。 昔 html4.01 のころも大文字を使うのが多かったが、html5 になって小文字になったのでソース見てもキレイだ。
それでときには「整形して」出力することもある。

  • まず <EOR> で改行し、途中は改行しない
  • 一行毎に空白行を置く
  • タグの前にスペースを置く
  • 行頭のスペースを削除

ってことにしようと思う。 空白行はよけいかも。

cat ~/A.adi | awk '{gsub(/<EOR>/,"<EOR>\n",$0);printf "%s",$0}' | sed -e 's/^\(.*\)$/\1\n/g' | sed -e 's/</ </g' | sed -e 's/^[   ]*//' > ~/B.adi 

awk は教えを請うた。

QSL プリント

Win の Turbo Hamlog などと違って CQRlog には QSL プリントのモデルはない。
ラベル・プリント用の csv で gLabels を用いてプリントすることになる。
モチロン、ビューロー用の六枠出力がないので、LibreOffice Calc でそれらを設けなければならない。

しかし Calc ではレポートの +00 も単に 0 となってしまい、マチガイではないにしても不満が残る。
これも dB という単位を付ければ解決できた。 しかしコンマをセットにしなければ 2022-01dB-06dB といった滑稽な出力が起きたりする。

# csv add dB
cat qsl1201-1231.csv | sed -e 's/\(,[+\-][0-5][0-9]\)/\1dB/g' > qsl1201-1231dB.csv 

私はバンドでなく周波数を出力しているが、そこで困ったのが 7.0430 のとき Calc は 7.043 にしてしまう。csv がクォーテーション出力しないから。(尤もクォーテーション出力するとキチャナイ表示にはなるが)
それで考えたのが単位を付ければ数字はそのままになることだった。

# csv add MHz
cat qsl1201-JAdB.csv | sed -e 's/\(FT8\,7\.0[0-9][0-9][0-9]\)/\1MHz/g' > qsl1201-JAdBMHz.csv
# [0-9]{3} NOT work 

やっと CAT 導入

2012 購入の IC-7700M これは旧態の RS-232C 端子はあるものの、現代の USB サウンドを内蔵していないのでインターフェイスは市販の SignaLink USB を使用。
このインターフェイスも CAT 機能はないので昨春探していた。
ちょうど JA4BUA 桑原さんの ICT-18 がヒットして \3,500 で申し込む。

まずは CQRlog の設定。
手入力だとコールサイン・バンド・モードに転記ミスを起こしやすい。
rigctld は /usr/bin/rigctld-jtdx とし、リグデフォルトの 9600 Baupt で設定した。

JTDX の方も CAT 接続にして CAT テストも PTT テストもクリアした。
やがて、時折 CAT が切れることがあったが、そのまま OK OK と二回押せば復帰できた。

そこまでは Ubuntu Focal (20.04) で Hirsute (21.04) も使えてた。
しかし Hirsute 終盤のアップデートから JTDX とリグとの CAT が不可能になった。
とはいえど CQRlog は JTDX からデータを移入しているので、15 分も 20 分もコールバックにかかったりすると、ログは最初のコール時刻になってしまい、あとで手入力で修正。
ICT-18 のランプは高速点滅で異常だということがわかる。

先月ふとしたときに CQRlog で Run rigctld when program starts のチェックを外してみたらどうだろうと思った。
成功だった。 JTDX からエラーもなく、突如 CAT 断線することもなく Ubuntu Impish (21.10) でスムーズに働いている。