Visual BasicとEcholink


JF7ELG(木幡)さんをはじめとしてEcholink用ソフトを提供されている方がいらっしゃいます。
かねてより、どうすればそのようなソフトが作成できるのか いつか自分でもトライしてみたいと思っていました。
条件が整ってきたので、いよいよトライです。

VisualBasicを使えばよいらしいということでまず調査です。

こんな本がありました。ドイツ語なので購入は見送りました。
書名はEchoLink fuer Funkamateure. Weltweite Kontakte mit PC, Funkgeraet und Internet
翻訳サイトで英語に直すとEcholink for radio amateurs. World-wide contacts with PC, radio equipment and internet

キーワードでblog等が検索できるようです。
http://www.netkeyword.net/wEcholink/

●国内サイトでサンプルコードをさがすと
***** Nagoya VoIP Radio Club (JI2ZYJ-L) ****  
http://netdxer.exblog.jp/4655924

JJ1ZXO 東村山アマチュア無線クラブ

東村山Echolinkのページ
http://jj1zxo.minidns.net/jj1zxo/page14.html

●国外だと
The EchoLink Community Message Boards
http://www.echolinker.com/forums/index.php
     http://www.echolinker.com/forums/showthread.php?t=489&goto=nextnewest

N2ADのページ
http://www.hfremote.us/
     Windowsのhelp形式で作成されたAPIの説明書 http://www.hfremote.us/files/API.zip


それでは、プログラムを作ってみましょう。

*仕様*

Echolinkから設定値を読み出します。
@コールサイン
Aシングル or シスオペ モード

「Reset」ボタンを押すとEcholinkソフトと4つのサーバーを再接続をする。

「Exit」ボタンでプログラムを終了。


GUIはこんな具合にしましょう。フォームエディタを使ってGUIを作ります。
(私は形から入るのは、得意です。 ^^;)



東村山アマチュア無線クラブさんのコードを元にちょっと応用です。

Private宣言が2行あります。これでEcholinkのクラスを使うよと宣言します。

Private Sub CExit_Click()でExitボタンの処理を書いています。

Private Sub Form_Load()でフォームを開いたときの処理を書きます。
Setというのは、クラスを実際に使う前にそのためのメモリを確保するおまじないのようです。
クラスが2つなので、Setも2行です。
 Echolinkで取得したコールサインEcho2.CallsignをTCallsign1.Textに代入します。
 同様にモードも取得しますが、モードが数字で送られてくるのでCase文で文字に変換します。

Private Sub Form_Unloadはフォームが閉じたときの処理です。
Setで確保したメモリを解放します。

Private Sub Reset_Click()はResetボタンを押したときの処理です。
Echolinkソフトに対してResetコマンドを発行します。




EcholinkのAPIと上記のコードを接続するには、このおまじないが必要です。
ソフトに詳しい方には常識なんでしょうけど・・・
初歩の本には書いてなかったです。



EchoLink Object Library ver 1.8のチェックBOXにチェックします。




そうすると表示-->オブジェクトブラウザでライブラリが見えるようになります。



Echolinkという文字が見えるようになりました。



http://www.hfremote.us/files/API.zipの中に書いてあるクラスは見えるようになりました。
感動です!




さあ、これで動作させてみましょう。 Echolinkで設定したコールサインとモードが読み出されました。



これでResetボタンを押すとEcholinkとサーバーが再接続されました。



Exitボタンを押すとプログラムが終了します。

何となく雰囲気がわかってきました。とりあえず今日はここまでです。


Sunday, October 01, 2006 6:48:26 PM