[openrtm-users 01473] add(In|Out)Port operate abnormally when called from constructor function in python version

2 個の投稿 / 0 new
最終投稿
root
オフライン
Last seen: 22分 58秒 前
登録日: 2009-06-23 14:31
[openrtm-users 01473] add(In|Out)Port operate abnormally when called from constructor function in python version

OpenRTM-aist開発者の皆様

産総研の松坂です。

Python版で遭遇した不具合についてレポートします。

ポートの登録を行う際に、onInitialize関数の中でadd(In|Out)Port関数を呼び出しますが、これを間違って__init__の中で
やってしまうと、ポートの登録がおかしくなります。

おそらく__init__が呼ばれる時点では、インスタンス名が確定していないからだと思いますが、例えばConsole0.rtcにoutという
ポートを登録しようと思うと、本来の「Console0.rtc.out」ではなく「.out」となってしまうようです。

対処が難しいようであれば、「__init__の時点ではadd(In|Out)Port関数を呼ばないこと」と決めてしまっても良いと思うのですが、
その場合でも、間違って呼び出された場合は、インスタンス名がセットされていない旨のエラーメッセージを出して欲しく思います。

よろしくお願いします。

未定義
root
オフライン
Last seen: 22分 58秒 前
登録日: 2009-06-23 14:31
[openrtm-users 01475] add(In|Out)Port operate abnormally when c

松坂様

安藤です

1.0からは、松坂さんがご推察の理由により、ポート関係の初期化関数や
登録関数はonInitialize()で呼ぶように変更いたしました。
エラーメッセージ関しては検討したいと思います。
よろしくお願いいたします。

2010年11月10日16:36 Yosuke Matsusaka :
> OpenRTM-aist開発者の皆様
>
> 産総研の松坂です。
>
> Python版で遭遇した不具合についてレポートします。
>
> ポートの登録を行う際に、onInitialize関数の中でadd(In|Out)Port関数を呼び出しますが、これを間違って__init__の中で
> やってしまうと、ポートの登録がおかしくなります。
>
> おそらく__init__が呼ばれる時点では、インスタンス名が確定していないからだと思いますが、例えばConsole0.rtcにoutという
> ポートを登録しようと思うと、本来の「Console0.rtc.out」ではなく「.out」となってしまうようです。
>
> 対処が難しいようであれば、「__init__の時点ではadd(In|Out)Port関数を呼ばないこと」と決めてしまっても良いと思うのですが、
> その場合でも、間違って呼び出された場合は、インスタンス名がセットされていない旨のエラーメッセージを出して欲しく思います。
>
> よろしくお願いします。

コメントを投稿するにはログインまたはユーザー登録を行ってください

ダウンロード

最新バージョン : 2.0.1-RELESE

統計

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

Choreonoid

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

OpenHRP3

動力学シミュレータ

OpenRTP

統合開発プラットフォーム

産総研RTC集

産総研が提供するRTC集

TORK

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

DAQ-Middleware

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