[openrtm-users 00792] サービスポートを使ったデータの受信について

Takuya Fukagai fukagai @ labs.fujitsu.com
2009年 5月 22日 (金) 17:05:52 JST


はじめて投稿させていただきます。
富士通研究所の深貝と申します。

大容量(12MB)の構造体をサービスポートの関数の返り値として返
すようにしたところ、コンポーネントのactivate時にエラーが
発生してしまいました。
サイズが小さな構造体を返すようにしたときは問題がなかったので、
返す構造体の大きさに制限があるのではと考えています。

データポートでは2MBの制限があり、それはrtc.confにて最大サイズを
指定することで回避できるとのことでしたが、サービスポートの場合は
rtc.confに、
corba.args: -ORBgiopMaxMsgSize 31457280
のように30MBの最大値を指定しても問題を回避できませんでした。

サービスポートで扱うことのできるデータのサイズはデータポートとは
異なるのでしょうか?

以下にバグ再現用のテストで用いたIDLファイル記します。

---ここから--
const unsigned long DATA_SIZE = 3145728;
struct Data {
	unsigned long info[DATA_SIZE];
	unsigned long size;
};
interface TestService{
	Data getData();
};
---ここまで--

環境はOpenRTM-aist-0.4.2, OSはWindows XP, コンパイラはVisual C++ 2008です。
以上、よろしくお願いいたします。

-- 
株式会社富士通研究所 自律システム研究部
深貝 卓也 <fukagai @ labs.fujitsu.com>
TEL:046-250-8218, 内線:7121-5734





openrtm-users メーリングリストの案内