[openrtm-users 02759] rtc_handleの改訂版です.

ts suehiro @ is.uec.ac.jp
2013年 2月 25日 (月) 12:34:21 JST


皆様,

末廣@電通大です.
私のところでもHiroNXを使い始めました.
そのときTimedJointDataの取り扱いでトラブルがあったので
rtc_handleを改訂しました.改訂版は,
<http://www.taka.is.uec.ac.jp/~suehiro/rtm1.0.0/>に
置いてあります.概要は,

・2013/02/25: RTC.TimedJointData などのデータ生成に引数が
  2つではないデータ型に対するPipeの生成ができるようになりました。  
    *rtc_handle_20130225.pyを持っていってrtc_handle.pyにrenameして
     使って下さい。
    *omniORBpyの内部のデータ型情報を使ってdeepにダミーデータを
     生成しています。
    *属性名やリストなどの構造は再現されます。最後の基本データ部には
     ダミーでデータコードが入ります。   
    *今のところは、まだ、RTC.xxxxのデータ型にしか対応していません。
     ユーザ定義データ型への一般対応は今後の課題です。

ということになります.

以下,少し解説です.

deep_dummy_dataに,omniORBpyの内部の型データ,
たとえばRTC._d_TimedDoubleSeqを引数にあたえると
ダミーデータが出来ます.
(RTC._tc_TimedDoubleSeq._dも同じもの)

たとえば,内部の型データは以下のようになっています.

>>> RTC._d_TimedDoubleSeq
(15, <class RTC.TimedDoubleSeq at 0x03D5DCF0>,
'IDL:RTC/TimedDoubleSeq:1.0', 'TimedDoubleSeq', 'tm',
(15, <class RTC.Time at 0x03D5D960>, 'IDL:RTC/Time:1.0',
'Time', 'sec', 5, 'nsec', 5), 'data', (19, 7, 0))

これでダミーデータを作るのは以下のようにします.

>>> deep_dummy_data(RTC._d_TimedDoubleSeq)
RTC.TimedDoubleSeq(tm=RTC.Time(sec=5, nsec=5), data=[7])

ここで,5や7の数字が基本データ型を表しています(たぶん).
5がlong, 7がdoubleなどを意味しています.

shallow_dummy_data(与える引数は,tcそのもの)でも問題ない
とおもうのですが(*),少し凝ってみました.
実は,まだ解釈できないデータ型もあるので(14とか),
必要があれば教えて下さい.

* いずれにしても読むときは相手が正しいデータを送ってくるし,
 書くときはどこかで正しいデータを作る必要があります.


-- 
Takashi Suehiro, Professor, Intelligent Systems Lab,
Graduate School of Information Systems,
the University of Electro-Communications
Tel: +81-424-43-5655 Fax: +81-424-43-5682
E-mail: suehiro @ is.uec.ac.jp
1-5-1 Chofugaoka, Chofu, Tokyo 1828585, Japan


More information about the openrtm-users mailing list