To index
What is GSN? Protocol Sample Code Problems Amateur Radio Links

サンプルコード
EasySoapによるコード


 <EasySoapコード>


九州大学ではEasySoap++-0.4を用いてアンテナ方向制御、無線機の周波数制御などを行うアプリケーションを作成した。アプリケーションの開発環境はWindows2000とVisual C++ 6.0である。





□ □ 解 説 □ □


1.サーバプログラム

 1行目では九州大学の地上局機器(Kyushu University Ground Station: KUGS)を制御するためのファイル(sfc_kugsおよびsfc_kugs.h)をインクルードしている。

 次に、サーバにアクセスするためのポート、ユーザID、パスワード、名前空間を定義する。名前空間はクライアント・サーバ間で整合を取る必要がある。ここではGSNとしている。次にアンテナ方向制御などを行うメソッドおよびパラメータの定義を行う。これらのメソッドおよびパラメータ名はGSN参加大学の間で協議が行われ決定済みであるので、ここでもその名前に従っている。SOAP.hはEasySoapを使用するためにインクルードする。また、SOAPHTTPServer.hはEasySoapをサーバ側で使用するときに必要となるのでインクルードする。次にサーバ側で用意するメソッドをまとめて管理するGSNHandlerクラスを作成する。GSNHandlerはSOAPDispatchHandlerクラスを継承する。<>内には作成するクラス名すなわちGSNHandlerを記述する。DispatchMethodによりクライアントから呼び出されるメソッド名とGSNHandlerが持つメソッド名をリンクする。その後九州大学の地上局機器の初期化を行う。GetTargetのコードは機械的に記述する。

 次にUserCertification、SetAzimuthなどのメソッドを記述する。これらのメソッドの引数は必ずサンプルコードのように記述しなければならない。最後にmain関数内でサーバの起動を行う。


2. クライアントプログラム

 九州大学ではクライアントプログラムにsfc_utilという独自に開発した機能を使っている。sfc_utilのInitFileを使ってテキストエディタからアンテナ方向などの各種設定を読み込んでいる。sfc_utilおよびInitFileはEasySoapを使う際に必要となるものではない。

 クライアントプログラムの1行目ではsfc_utilとsfc_util.hをインクルードしている。
次にEasySoapを使うためにSOAP.hをインクルードしている。また、名前空間をGSNに設定している。main関数内ではまず、スタートメッセージを表示し、ID、およびパスワードの確認を行う。try内ではInitFileを使ってendpointにサーバ名とポートを入れる。その後、SOAPProxyによってサーバへのアクセス準備を行う。SOAPMethodによってメソッドを準備し、AddParameterによって値を渡し、メソッドを実行する。また戻り値はSOAPResponseを使って受け取る。





(C)2003 Ground Station Network