ロボット、千葉ロッテマリーンズについていいかげんなことを書きます。
×
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
メーリングリストで問題になっている「ポートプロファイルから出力データを取得する機能」ですが、あそこで機能の内容を説明するのは適当ではないので一応解説します。
この機能があるのはC++版のみで、PythonとJavaには最新のソースコードにも実装はありません。※Javaには実装がありました。間違えてごめんなさい。
まず、この機能を知っていた人はほとんどいないと思います。
僕もこの機能についてはソースコードを読んだ以上の知識はないので、分からないことがあったら自分で調べてください。
機能の説明の前に、RTシステムエディタで何故RTCの情報、保持しているポート等が確認できるかというと、RTCを起動しているプロセスとCORBA通信をすることでコンポーネントプロファイル(ComponentProfile)を取得しているからです。
このコンポーネントプロファイルは保持しているデータポート、サービスポートのプロファイル(PortProfile)を持っているので、RTシステムエディタではここからポートの情報を取得してシステムダイアグラム上にRTCを表示できているということです。
さて「ポートプロファイルから出力データを取得する機能」ですが、これはアウトポートから出力したデータをポートプロファイルから取得できる機能です。
取得できるデータはアウトポートからデータを出力すると上書きされるので、直前に出力したデータしか取得できません。
あの問題ですが、RTシステムエディタでプロファイル取得中に、同時に出力データのポートプロファイルへの格納を行った場合にアクセス違反で落ちます。
これは画像データなど大容量のデータを通信すると問題が起きやすいというだけで、小さいデータを通信するRTCでも運が悪ければ発生します。
ちなみにですが、omniORBのデフォルトの設定では2MBがデータサイズの上限なので、640×480の画像データを送信するアウトポートが3つ以上あると、RTシステムエディタではコンポーネントプロファイルが取得できなくなるのでRTCの表示がバグります。
ただでさえRTシステムエディタとRTCの通信量が増えるので、動きが悪くなるかもしれません。
この機能の内容、利点・欠点はこんな感じです。
にほんブログ村のロボットのカテゴリから
全然人が来ない・・・
この機能があるのはC++版のみで、PythonとJavaには最新のソースコードにも実装はありません。※Javaには実装がありました。間違えてごめんなさい。
まず、この機能を知っていた人はほとんどいないと思います。
僕もこの機能についてはソースコードを読んだ以上の知識はないので、分からないことがあったら自分で調べてください。
機能の説明の前に、RTシステムエディタで何故RTCの情報、保持しているポート等が確認できるかというと、RTCを起動しているプロセスとCORBA通信をすることでコンポーネントプロファイル(ComponentProfile)を取得しているからです。
このコンポーネントプロファイルは保持しているデータポート、サービスポートのプロファイル(PortProfile)を持っているので、RTシステムエディタではここからポートの情報を取得してシステムダイアグラム上にRTCを表示できているということです。
さて「ポートプロファイルから出力データを取得する機能」ですが、これはアウトポートから出力したデータをポートプロファイルから取得できる機能です。
取得できるデータはアウトポートからデータを出力すると上書きされるので、直前に出力したデータしか取得できません。
あの問題ですが、RTシステムエディタでプロファイル取得中に、同時に出力データのポートプロファイルへの格納を行った場合にアクセス違反で落ちます。
これは画像データなど大容量のデータを通信すると問題が起きやすいというだけで、小さいデータを通信するRTCでも運が悪ければ発生します。
ちなみにですが、omniORBのデフォルトの設定では2MBがデータサイズの上限なので、640×480の画像データを送信するアウトポートが3つ以上あると、RTシステムエディタではコンポーネントプロファイルが取得できなくなるのでRTCの表示がバグります。
ただでさえRTシステムエディタとRTCの通信量が増えるので、動きが悪くなるかもしれません。
この機能の内容、利点・欠点はこんな感じです。
にほんブログ村のロボットのカテゴリから
全然人が来ない・・・
PR
この記事にコメントする