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

2 posts / 0 new
Last post
root
Offline
Last seen: 2 days 4 hours ago
Joined: 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関数を呼ばないこと」と決めてしまっても良いと思うのですが、
その場合でも、間違って呼び出された場合は、インスタンス名がセットされていない旨のエラーメッセージを出して欲しく思います。

よろしくお願いします。

Undefined
root
Offline
Last seen: 2 days 4 hours ago
Joined: 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関数を呼ばないこと」と決めてしまっても良いと思うのですが、
> その場合でも、間違って呼び出された場合は、インスタンス名がセットされていない旨のエラーメッセージを出して欲しく思います。
>
> よろしくお願いします。

Log in or register to post comments

Download

latest Releases : 2.0.0-RELESE

2.0.0-RELESE Download page

Number of Projects

Choreonoid

Motion editor/Dynamics simulator

OpenHRP3

Dynamics simulator

OpenRTP

Integrated Development Platform

AIST RTC collection

RT-Components collection by AIST

TORK

Tokyo Opensource Robotics Association

DAQ-Middleware

Middleware for DAQ (Data Aquisition) by KEK