あんどう@産総研です
> いつも御世話になります。宇田@NECシステムテクノロジーです
>
> VC++とRTミドルウェアの連携方式についてお伺いします。
返事が遅くなり申し訳ございません。
> VC++で書かれたアプリケーションからRTミドルウェアのコンポーネント
> を利用したいのですが、この場合の実装方法としてはどのような構成が
> 考えられますでしょうか?
この利用するというのは、VC++で書かれたアプリ内部に組み込んで
利用するということでしょうか?
もしくは、分散オブジェクトとして利用するということでしょうか?
VC++で開発するアプリ内部に組み込むのであれば、
1. マネージャのインスタンスをどこかで生成
2. createComponent() でコンポーネントを生成
3. runManager()でマネージャを起動
してやれば、createComponent() の戻り値がコンポーネントへの
ポインタですので、あとは何とかなると思います。
runManager()はブロックしてしまうので、不都合があれば、
runManagerNoBlocking()で別スレッドでマネージャを起動すれば、
他にイベントループがあるようなプログラムでも、動くと思います。
VC++で作ったアプリから、リモートのコンポーネントを
操作したい場合は、単にCORBAのオブジェクトを操作要領で
コンポーネントを操作すれば可能だと思います。
この場合も、
1. マネージャのインスタンスをどこかで生成
2. マネージャのfindComponent 等のメソッドを使ってコンポーネント
へのオブジェクトリファレンスを取得してコンポーネントを操作
というやり方でやれば、素のCORBAのプログラムを書くよりは
少しは楽に出来るのではないかと思います。
> 1つの手段として、先日ご紹介頂きましたPython版OpenRTM-aist-0.2.0
> をCOMインターフェース経由で呼び出す方法があるかと思いますが、他に
> もっと良い方法がありましたらご教授をお願い致します。
>
> ┌───────────┐
> │VC++ アプリケーション │
> └─────┬─────┘
> │
> ≪COM インターフェース≫
> │
> ┌───┴───┐
> │Python 仲介部 │
> └───┬───┘
> │
> ┌─────┴─────┐
> │Python版 RTミドル環境 │
> └───────────┘
すみません。COMに関しては全然詳しくないので、あまりお力になれません。
逆にご教授願いたいくらいです。上記のような方法で連携できるのですか?
もしよろしければ、その方法をML上でご紹介いただければ助かります。
> なお上記のPython版OpenRTMですが、既にWeb上で入手可能でしょうか?
> また将来的に、VC++版のOpenRTM-aistをリリースされる予定はござい
> ますでしょうか?
研究所でのソフトウエア公開の手続きをまだとっていないので、
一般には公開しておりません。
#内緒ですが、あとで個人的にお送りいたします。(笑
手続きが終わり次第公開したいと思います。
ちなみに、現在次期バージョンの実装を行っているのですが、
研究の一環としてRTCのパフォーマンス測定・評価なども行っているので、
リリースはまだしばらくかかりそうです。
すみませんが、もうしばらくお待ちください。
いつも御世話になります。宇田@NECシステムテクノロジーです
VC++とRTミドルウェアの連携方式についてお伺いします。
VC++で書かれたアプリケーションからRTミドルウェアのコンポーネント
を利用したいのですが、この場合の実装方法としてはどのような構成が
考えられますでしょうか?
1つの手段として、先日ご紹介頂きましたPython版OpenRTM-aist-0.2.0
をCOMインターフェース経由で呼び出す方法があるかと思いますが、他に
もっと良い方法がありましたらご教授をお願い致します。
┌───────────┐
│VC++ アプリケーション │
└─────┬─────┘
│
≪COM インターフェース≫
│
┌───┴───┐
│Python 仲介部 │
└───┬───┘
│
┌─────┴─────┐
│Python版 RTミドル環境 │
└───────────┘
なお上記のPython版OpenRTMですが、既にWeb上で入手可能でしょうか?
また将来的に、VC++版のOpenRTM-aistをリリースされる予定はござい
ますでしょうか?