Logger32 External Interface


Logger32には、Logger32と通信をする目的でユーザーが独自に作る外部プログラムをサポートするためのインターフェースが用意されています。
WindowsのWindows Messageという機能を利用し、Logger32とはADIF形式のデータのやりとりをすることができます。
Sample Codeもリリースされているので、多少Visual Basicを触ったことがあれば、先ずはこれを走らせてその仕組みを理解することができます。さらにこのSample Codeに独自のコードを追加することで好みの外部プログラムを作ることができます。

CheckCallFreqPadはこのようにして作ったミニアプリです。同様のミニアプリにはN2AMG、RickがリリースしているFrequency Managerがあります。



インターフェース仕様の概要

インターフェース仕様を理解するにはVisual Basicの知識が必要です。その内容についてはLogger32のHelp(原本)にBobが解説しているので、そちらをご覧下さい。

ここではSample Codeに付属するSample.exeを起動するとどんな感じになるか、簡単に紹介するにとどめます。

@Logger32との通信が確保できたかどうかを確認します。この状況が"Connected to,,,"と表示されます。
A通信が確立されるとLogger32に接続されたRadio-1(或いはRadio-2)の周波数が表示されます。
B"<APP_Radio_Mode:2>CW"と表示されているエリアには、Sample Codeの要求に対するLogger32からの応答データ、或いはLogbook Entry Windowの内容に変化があった場合の内容、DX Spot受信時にはその内容等が、一定の約束のもとに送られてきます。
私のCheckCallでは、Logbook Entry WindowのCall欄に入力されるデータを、それが変化する毎に読んでテキストファイルと一致、不一致のチェックをするような構造になっています。
C"<Call:4>K4CY"と表示されているエリアは、Sample CodeがLogger32に送るデータが表示されています。左のSendボタンをクリックすればK4CYがLogbook Entry WindowのCall欄に書かれます。
私のFreqPadは、ここに周波数、モードを書いてLogger32に送るだけの構造になっています。

B、Cともに扱われるデータはADIF形式のみです。自分好みのプログラムはこのSample Codeに必要な表示、コマンドを実行させる仕組みを追加すれば出来上がりです。このSample Code自体はそのまま"見えない状態"にしておくのです。


DSample Codeを終了させるとLogger32にその旨伝えられ、通信路が切断されます。またLogger32を終了すればSample Codeも終了となります。

もう一つ"種明かし"です。"見えない状態"にしておいたSample Codeを"見える状態"にすると、こんな感じになります。下半分は上と全く同じ、というかそのままにしてあり。その上に必要な部品を配置して、実際のFreqPadではそれだけを"見える状態"にしただけです。但し、画面のタイトルだとか、メニューだとか、周波数表示部分をクリックしたら参照リストを表示して、どこかクリックしたら周波数、モードをADIF形式にして所定の場所に書くといったようなプログラムは追加してあります。