[openrtm-users 01211] Re: rtc_handle for OpenrtM-aist-1.0.0
Geoffrey Biggs
geoffrey.biggs @ aist.go.jp
2010年 5月 17日 (月) 20:31:34 JST
末廣様
産総研のジェフです。
rtc_handleを1.0にあわせることをお疲れさまです。確かに0.4.2から詳しいとこ
ろはよく変わりました。
1)rtctreeの場合、APIの中にポート名からコンポーネント名を消します。参照
はこのファイルの214行目です。
http://github.com/gbiggs/rtctree/blob/3395f0f6c0bd21329bf11ee20c85d5fb8b50fba2/rtctree/ports.py
例えば、rtcshellはポートを使う時、rtcshellのコードはより綺麗になります。
2)接続されてないポートにデータを書けないようです。そのために、rtcshell
でdummy connectionを作ってデータを書きます。参照はこのファイルの79行目
です。
http://github.com/gbiggs/rtcshell/blob/6ee7c982edc3e82282f5dee48ba6c87a4d7cab74/rtcshell/rtinject.py
こうなった理由はポートとトランスポートをもっと分かれたようにするためにだ
と思います。
ところで、rtcshellをshellだけじゃなくて、Pythonからも呼べます。例えば、
shellの場合:
$ rtinject ConsoleOut0.rtc:in 'RTC.TimedLong(RTC.Time(0, 0), 5)'
Pythonの場合:
rtcshell.rtinject.main(argv=['ConsoleOut0.rtc:in',
'RTC.TimedLong(RTC.Time(0, 0), 5)'])
3)この問題について思ったことはないんですが、rtctreeの場合、できます。
ちょっと複雑ですけど。コネクションから取りたい場合はrtctreeがAPIの中でコ
ネクションのポートを探して、コネクションのオブジェクトに入れます。ポート
の場合は既にCORBAオブジェクトがあるので、そのCORBAオブジェクトから取れます。
以上、よろしくお願いいたします。
On 17/05/10 19:47, ts wrote:
> 皆様,
>
> 末廣@電通大です.
> OpenRTM-aist-Python-1.0.0がリリースされたので,
> rtcやrtc_handleの0.4.2からの移植を始めました.
>
> rtcについては個人的に愛用していたread側のOnWriteコールバックが
> なくなったことを除けば,大きな変更なしに移れそうだという感触です.
>
> rtc_handleの方は少し困った状況になっています.
> 皆様のお知恵を拝借できればと思って状況を説明します.
> 松坂さん,栗原さんに作成して頂いたものをベースにしたとりあえずのものは
> <http://www.taka.is.uec.ac.jp/~suehiro/rtm1.0.0/>に置いてあります.
>
> コンポーネントのactivate/deactivate/reset,
> コンポーネント同士の接続/切り離し,
> コンポーネントのconfigurationサービスの利用
> などは使えることを確認しています.
>
> 困っている点は,
> (1)ポート名に,コンポーネント名がくっついてくる.
> 0.4.2では,ポート名はポート名だけだったのですが,
> 1.0.0ではなぜか,コンポーネント名.ポート名の形式になっています.
> 一見親切なのですが,コンポーネントを取り替えても動くプログラムを
> 作ろうとすると,かえって処理が複雑になってしまいます.
> これはもとに戻す予定はないのでしょうか.
> (2)'dataport.corba_cdr.inport_ref'にwriteしてもデータが送られない?
> ちゃんとconnectしたrtcからはデータが届いているのですが,
> rtc_handleからwriteしてもだめに見えます.
> PORT_OKはかえってくるのですが使い方が違うのでしょうか?
> (3)'dataport.corba_cdr.outport_ref'がない.
> outportの側はobject referenceすら取得できません.
>
> これらについて何かご存知でしたら教えて頂けると助かります.
> まだサービスポートについては調べていませんが,
> どうなるか少し心配しています.
>
> ポートへのアクセスを全面的に設計し直す必要があるのでしょうか.
>
> 以上,よろしくお願いします.
openrtm-users メーリングリストの案内