[openrtm-staff:1541] RTCBが生成するjavaのRTCのデータポートの変数について
片見剛人
t-katami @ aist.go.jp
2018年 2月 19日 (月) 16:54:59 JST
グローバルアシスト 坂本 様
お世話になっております。
片見です。
大阪電通大の升谷様か
データポートの変数名に関する問い合わせがあり、
対応しております。
「m_名前_val.data」と「m_名前.v.data」のどちらを
使ってよいかわからず、混乱しているようです。
「m_名前.v.data」を使うように
回答しようと思いますが、
問題ないでしょうか?
また、RTCBの生成でも
「m_名前_val」をなくすことも
考えております。
何か不都合が発生するようであれば、
ご指摘をお願います。
例えば、TimedLong型のInPortの場合、
RTCBでは変数は以下のように
宣言されます。
protected TimedLong m_名前_val;
protected DataRef<TimedLong> m_名前;
protected InPort<TimedLong> m_ポート名;
コンストラクタには、
m_名前_val = new TimedLong(new RTC.Time(0,0),0);
m_名前 = new DataRef<TimedLong>(m_名前_val);
m_名前In = new InPort<TimedLong>("名前", m_名前);
と記述されます。
ここで、「m_名前_val」と「m_名前」があり
混乱してるのだと思います。
また、サンプルコンポーネントのSimpleIOでは
InPortの場合(ConsoleOutImpl)、
「m_名前.v.data」からデータを読み取り、
OutPortの場合(ConsoleInImpl)、
「m_名前_val.data」にデータを設定して出力しており
これも混乱の原因になっているのではと思います。
コンストラクタの部分を以下のようにすると
「m_名前」だけで行けると思うのですが
いかがでしょうか?
m_名前 = new DataRef<TimedLong>(new TimedLong(new RTC.Time(0,0),0));
m_名前In = new InPort<TimedLong>("名前", m_名前);
どうぞ
よろしくお願いいたします。
More information about the openrtm-staff
mailing list