[openrtm-users 00608] データポートで送受信できるデータの上限サイズについて

3 個の投稿 / 0 new
最終投稿
root
オフライン
Last seen: 17時間 56分 前
登録日: 2009-06-23 14:31
[openrtm-users 00608] データポートで送受信できるデータの上限サイズについて

榎本です.

データポートで送受信できるデータの上限サイズを伺いたいと思います.

データポートを使い,TimedOctetSeqに大きいサイズの構造体(2.8MByte)をmemcpyし,送受信しようとしたところ,上手く送ることが出来ませんでした.
しかしながら,単純に構造体のサイズを小さく変えてみた(1.3MByte)ところ,送受信することができました.

データポートを介した通信では,データを一度バッファに格納してから通信していると伺っておりますので,このサイズを超えてしまう為に通信ができなくなってしまうのでは,とは思っておりますが,このような理解でよろしいでしょうか?

もし,このような理解でよろしければ,データポートの上限サイズについて,
TimedOctetSeqならば何Byte,TimedDoubleSeqなら何個の配列,というような指標を頂けたら幸いかと思います.

未定義
root
オフライン
Last seen: 17時間 56分 前
登録日: 2009-06-23 14:31
[openrtm-users 00609] データポートで送受信できるデータの上限サイズについて

榎本 様

産総研 栗原です。

まず、omniORBでは、giop(General Inter-ORB Protocol)で扱える
サイズはデフォルトで"2097152B(2MB)"となっております。
今回の問題では、2.8MByteのデータ通信で上手くいかなかったとの
事ですので、omniORBのgiopで扱えるサイズを越えている事が原因
ではないかと考えられます。

この最大サイズを変更するためには、下記の2つの方法があります。

1. rtc.confにて最大サイズを指定する。

# file: rtc.conf
corba.nameservers: localhost
naming.formats: %n.rtc
corba.args: -ORBgiopMaxMsgSize 3145728 # この行を追加
# Maxサイズを3Mに指定

2. 環境変数にて指定する場合
export ORBgiopMaxMsgSize=3145728

※ giopMaxMsgSizeを指定する場合、server,client共(対になるコンポーネン
ト)に設定する必要があります。

(omniORB configuration and API)
http://omniorb.sourceforge.net/omni41/omniORB/omniORB004.html

以上、宣しくお願い致します。

On Wed, 17 Sep 2008 17:22:51 +0900
"yosuke enomoto" wrote:

> 榎本です.
>
> データポートで送受信できるデータの上限サイズを伺いたいと思います.
>
> データポートを使い,TimedOctetSeqに大きいサイズの構造体(2.8MByte)をmemcpyし,送受信しようとしたところ,上手く送ることが出来ませんでした.
> しかしながら,単純に構造体のサイズを小さく変えてみた(1.3MByte)ところ,送受信することができました.
>
> データポートを介した通信では,データを一度バッファに格納してから通信していると伺っておりますので,このサイズを超えてしまう為に通信ができなくなってしまうのでは,とは思っておりますが,このような理解でよろしいでしょうか?
>
> もし,このような理解でよろしければ,データポートの上限サイズについて,
> TimedOctetSeqならば何Byte,TimedDoubleSeqなら何個の配列,というような指標を頂けたら幸いかと思います.
>

root
オフライン
Last seen: 17時間 56分 前
登録日: 2009-06-23 14:31
[openrtm-users 00610] データポートで送受信できるデータの上限サイズについて

産総研 栗原 様

榎本です.

了解致しました.
返答頂き,ありがとう御座います.

2008/09/17 18:34 kurihara shinji :
> 榎本 様
>
> 産総研 栗原です。
>
>
> まず、omniORBでは、giop(General Inter-ORB Protocol)で扱える
> サイズはデフォルトで"2097152B(2MB)"となっております。
> 今回の問題では、2.8MByteのデータ通信で上手くいかなかったとの
> 事ですので、omniORBのgiopで扱えるサイズを越えている事が原因
> ではないかと考えられます。
>
>
> この最大サイズを変更するためには、下記の2つの方法があります。
>
> 1. rtc.confにて最大サイズを指定する。
>
> # file: rtc.conf
> corba.nameservers: localhost
> naming.formats: %n.rtc
> corba.args: -ORBgiopMaxMsgSize 3145728 # この行を追加
> # Maxサイズを3Mに指定
>
> 2. 環境変数にて指定する場合
> export ORBgiopMaxMsgSize=3145728
>
>
> ※ giopMaxMsgSizeを指定する場合、server,client共(対になるコンポーネン
> ト)に設定する必要があります。
>
>
> (omniORB configuration and API)
> http://omniorb.sourceforge.net/omni41/omniORB/omniORB004.html
>
>
> 以上、宣しくお願い致します。
>
>
>
> On Wed, 17 Sep 2008 17:22:51 +0900
> "yosuke enomoto" wrote:
>
>> 榎本です.
>>
>> データポートで送受信できるデータの上限サイズを伺いたいと思います.
>>
>> データポートを使い,TimedOctetSeqに大きいサイズの構造体(2.8MByte)をmemcpyし,送受信しようとしたところ,上手く送ることが出来ませんでした.
>> しかしながら,単純に構造体のサイズを小さく変えてみた(1.3MByte)ところ,送受信することができました.
>>
>> データポートを介した通信では,データを一度バッファに格納してから通信していると伺っておりますので,このサイズを超えてしまう為に通信ができなくなってしまうのでは,とは思っておりますが,このような理解でよろしいでしょうか?
>>
>> もし,このような理解でよろしければ,データポートの上限サイズについて,
>> TimedOctetSeqならば何Byte,TimedDoubleSeqなら何個の配列,というような指標を頂けたら幸いかと思います.
>>
>
>
> --
> ----------
> 栗原 眞二
> shinji.kurihara@aist.go.jp
> kurihara@imagination.co.jp
>

Log in or register to post comments

ダウンロード

最新バージョン : 2.1.0-RELESE

統計

Webサイト統計
ユーザ数:3399
プロジェクト統計
RTコンポーネント309
RTミドルウエア35
ツール25
文書・仕様書2

OpenRTM@Github

OpenRTM-aist GitHubサイト

ROS

Robot Operating System

Choreonoid

モーションエディタ/シミュレータ

DAQ-Middleware

ネットワーク分散環境でデータ収集用ソフトウェアを容易に構築するためのソフトウェア・フレームワーク

産総研が提供するRTC集

東京オープンソースロボティクス協会