2012-03-09 24 views
4

Javaアプリケーション用のプラグインを作成しようとしています。プラグインは、新しいイベントが認識されたことをJavaアプリケーションに伝えることができます(Observer Design Pattern、Polling ... thats not point)。問題は、イベントがMicrosoft Kinectコントローラからの追跡されたジェスチャであることです(私はC++とMicrosoft Kinect SDKを使用しているので使用しています)。つまり、JavaアプリケーションとKinectアプリケーションとの間で通信する必要があります。 私は、Javaアプリケーションがインターフェイス(「C++ヘッダファイル」、「dll」など)を「含んでいる」アダプタデザインパターンのようなものを考えました。最初はJNIを考えましたが、両方のアプリケーション側で使用されるDLLを作成する必要があります。私が考えたもう一つのことは、UDPのようなプロトコル(またはもっと軽いもの?)を使ってジェスチャーデータを提供することでした。私が聞いた最後のことは、COM +アセンブリを書くことでした...しかし、正直なところ、COM +についての私の知識は、ほんの少しです。JavaアプリケーションとC++アプリケーション間の通信

JAVA APPLICATION << ----- ??? ----- >> KINECT APPLICATION 

答えて

3

私は、共有メモリ構造または他の利用ソケットを使用のいずれかをお勧めなどhereherehereなどいくつかの例を発見しました。

私は、あなたのアプリケーションがそれほど強く結合されていないので、あなたのプログラムがソケットを介して通信できるようになると思うので、IP、ポート、コマンドのセットを公開するだけです。

thisによれば、KinectにはC++サーバを作成することは可能ですが、Kinect関連のプロジェクトでは一度も経験したことがないので、それ以外のことは言えません。

+0

もちろん...ソケットです!私はそれについて詳しく調べるつもりです。タイ! – seveves

+0

魅力的な作品です!私はUDPを使用することに決めました...);)...ありがとう! – seveves

+0

@SeveFriede:UDPの方が早いにもかかわらず、パッケージの配送を保証していないことに注意してください。これは、遠く離れた場所でアプリケーションを通信させたい場合には問題になるかもしれません; – npinti

4

GoogleのProtocol Buffersをご覧ください。

JNIを考慮しているためです。 私はあなたがこのIBM tutorialを参照することを提案したいと思います。

JNIを使​​用すると、Javaアプリケーションはc/C++メソッドを呼び出すことができます。

また、C++からjavaを呼び出す場合は questionもご覧ください。

関連する問題