NATOC SDKの応用(ネットワークアプリケーション)


 NATOC SDKでは、NATOC SDKを使ったネットワークを使ったプログラムが提供されています。
 このプログラムはTCP/IPを使ったクライアントサーバ型のプログラムでNATOCを最大10台のクライアントプログラムから遠隔操作する事ができます。

 NATOCのライブ画像は、サーバから直接クライアントにUDP配信されるためリアルタイムで動画が再生されます。
 NATOCは鉄道模型の制御モードまたはシミュレーションモードのどちらでも構いませんが、シミュレーションモードの時は画像配信は行われません。  またカメラの画像サイズは320×240となっていますのでNATOCのカメラの設定をこのサイズにしてください。  なおNATOCで鉄道模型を制御するにはI/Oコントローラが必要です。


 サーバーとクライアントを立ち上げるとサーバークライアント間でセッションがはられます。  このセッションを通じてクライアントからはコントローラーの操作によるNATOC制御コマンドがサーバーからは本体のコントローラーの状態が送受信されます。
 サーバーとクライアントはどちらを先に立ち上げても構いませんが、サーバーを立ち上げる前には必ずNATOC本体を立ち上げておいてください。
 サーバはNATOC制御コマンドを受け取るとNATOC SDKの機能でNATOC本体にコマンドを送ります。  またサーバはNATOC SDKの機能で本体のコントローラの状態を逐次モニタして変化があったらクライアントにコマンドを送りクライアントのコントローラーの状態を本体のコントローラーにあわせます。

 カメラからの画像はなるべくネットワークに負荷をかけないように背景と列車の画像を分けて送りクライアントでこれを合成します。  背景は変化する頻度が少ないので10秒に1回の割合で2つに分けて送信します。列車は毎秒10コマの割合で送信します。
 画像はクライアント間のセッションとは別にブロードキャストで送信します。また通信量を減らすためにJPEG圧縮を行いサーバとクライアントでそれぞれ圧縮解凍を行います。

 列車画像はNATOCの列車位置の検出機能を使ってその部分だけ配信します。位置検出の誤差により実際の列車位置以外が検出された場合は配信された画像に列車が残ったり消えたりする事があります。
 配信する画像はサーバの画像表示部に表示されている画像がキャプチャーされて配信されます。この部分に他のウィンドウが重なった場合は上のウィンドウの画像が配信されてしまいます。

 クライアントプログラムは10台まで接続可能でそれぞれのコントローラーで操作できます。  あるクライアントで列車を動かした場合、別のクライアントで停止させる事ができます。  コントローラーの状態はサーバーが管理しているので各クライアントのコントローラーは同期がとられて同じ動きになります。


・ブロック図



・パラメータの設定

 ネットワークの環境に合わせてIPアドレス等のネットワークの設定が必要です。  またビディオ画像を配信するタイミング等も変更する事ができます。



 サーバーは以下のパラメータを設定する事ができます。

 ・コマンド受信ポート クライアントとのコネクション接続のポート番号で他のプログラムでこの番号を使っている場合は変更する必要があります。それ以外は変更する必要はありません。
 ・画像送信ポート 画像データをブロードキャストするポート番号で他のプログラムでこの番号を使っている場合は変更する必要があります。それ以外は変更する必要はありません。
 ・サブネットアドレス 画像データをブロードキャストするアドレスを指定します。上の例ではIPアドレスが192.168.1.xxx(xxxは0〜255)のクライアントがこの画像データを受信できます。ローカルホスト(サーバとクライアントが同じPC)で使う場合は変更する必要はありません。

 ・フレームレート 列車の画像を1秒間に何回配信するかを指定します。通常のビディオのフレームレートと同じ単位です(通常のビディオは30FPS)。この値を大きくすると通信量が増えます。
 ・背景更新間隔 背景の画像を何秒毎に配信するかを指定します。背景は上半分と下半分を交互(列車が動いているときは、列車がいない方)に送信します。この値を小さくすると通信量が増えます。
 ・JPEG圧縮 画像を通信する際のJPEGの圧縮率をパーセンテージで指定します。100に近いほど画像の品質は上がりますが、通信量が増えます。




 クライアントは以下のパラメータを設定する事ができます。

 ・コマンド送信ポート サーバとのコネクション接続のポート番号でサーバーのコマンド受信ポートを変更した場合はそれに合わせる必要があります。
 ・画像受信ポート ブロードキャストされた画像データを受信するポート番号でサーバーの画像送信ポートを変更した場合はそれに合わせる必要があります。
 ・サーバアドレス サーバのIPアドレスを指定します。ローカルホスト(サーバとクライアントが同じPC)で使う場合は変更する必要はありません。


・クライアントの環境

 クライアントプログラムはNATOCやNATOC SDKを直接使わないのでクライアントプログラムを動かすPCにはNATOCまたはNATOC SDKをインストールする必要はありません。
 以下のプログラムとデータだけ別のPCの任意の同一ディレクトリに移せば実行する事ができます。

 ・NATOCClient.exe クライアントプログラム
 ・NATOCClient.ini クライアント設定ファイル
 ・control コントローラ画像フォルダー、このフォルダーごと別のPCに移す。


・インターネットでの実行

 本プログラムはネットワークの通信にTCP/IPを使っていますのでインターネット環境でもクライアントサーバの環境を作ることができます。  しかし通常のインターネット環境ではハッキングを防止するためにファイアウォール等の設定がされています。  本プログラムのようなコネクションをはるにはファイアウォール等を設定を解除する必要があります。
 本プログラムの設定機能はIPアドレス以外の設定はできないようになっていますのでURL等で設定する場合は、それぞれの設定ファイルを直接テキストエディタ等で変更してください。
 また画像配信は通信量を抑える工夫をしていますが高速通信ができないインターネット環境では、画像がリアルタイムで届かない場合があります。
 なお弊社ではインターネット環境での動作確認は行っておりません。  インターネット環境での本プログラムでのご使用に対してはサポート対象外とさせていただきます。  インターネット環境で本プログラムを使う場合は、自己責任において行ってください。


目次に戻る