[openrtm-users 00279] 動的な入出力ポートの変化について

Takashi Kojima tkjim48 @ gmail.com
2007年 11月 25日 (日) 23:47:07 JST


中央大学の小島と申します。先日はご教授ありがとうございました。

現在、接続数が増加したときに、接続させるポート数を
増やしていけるようなサーバのような形態をとるモジュールを
作成するために、試行錯誤をしています。

Outportや、Inportを静的に変化させるには、C++の記述の仕方と同様に
ヘッダファイル内のpublic,protectedなどの部分において
TimedLong test;
InPort <TimedLong> testOut;
とし、コンストラクタ内で、
testOut("test",test)
と付け加え、
registerOutPort("test",testOut);
と、することによって実現することはできました。

しかし、管理を簡単化するために配列等をつかって管理をしたいと思い行ってみたところ配列として宣言すると、初期化がうまくいきません。

実現したいコードの簡単な例としては、下記のようになります。

-----module.h-----

protected:
  TimedLong m_in[2];
  InPort<TimedLong> m_inIn[2];

----module.cpp------

modele()
  : ...
   m_inIn[0]("in0",m_in[0]),
   m_inIn[1]("in1",m_in[1]),
{
   registerInPort("in0",m_inIn[0]);
   registerInPort("in1",m_inIn[1]);
}

エラーには、
expected '{' before '[' token
expected unqualified-id before '[' token

 と出ており配列による初期化時に、コンパイル時に解釈ができない用に思えます。

どのようにしたらエラーを回避可能かどうか、ご教授お願いいたします。

また、将来的には、動的にポート数を変更したいので
(vector型などを使い、自由に増やせるようにしたいと考えています)
こちらについても、何か方法などがございましたらお教え願います。

<----------------------------------------------------->
  中央大学大学院 理工学研究科
  電気電子情報通信工学専攻
  博士課程前期1年 國井研究室

  小島 隆史 [Takashi Kojima]

  ADRESS: 	〒112-8551 東京都文京区春日1-13-27
  TEL : 	 03-3817-1866(研究室)
  FAX : 	 03-3817-1847(学科準備室)
  E-Mail: 	takashi @ hmsl.elect.chuo-u.ac.jp
<----------------------------------------------------->



openrtm-users メーリングリストの案内