[openrtm-users 01051] Re: Configulationパラメータの設定

kurihara shinji shinji.kurihara @ aist.go.jp
2009年 12月 24日 (木) 12:00:50 JST


NECシステムテクノロジー 石田様

お世話になっております。
産総研 栗原です。

コンフィグレーションパラメタを、予め用意したconfファイルで初期化
する方法としましては、onActivate()メソッド内にて下記のように一行
追加する事でも実現可能です。

 RTC::ReturnCode_t ConfigSample::onActivated(RTC::UniqueId ec_id)
 {
   m_configsets.update("mode0");
   return RTC::RTC_OK;
 }

上記は、ConfigSampleの例です。
このようにする事では、configsample.confに記述されているmode0の
コンフィグレーションセットが使用されます。

update()の引数にはコンフィグレーションセット名を指定します。


以上、宜しくお願い致します。



On Tue, 22 Dec 2009 19:48:36 +0900
"Masakazu Ishida" <ishida-mxb @ necst.nec.co.jp> wrote:

> NECシステムテクノロジーの石田です。
> 
> コンフィグレーションにおける初期値を与える作法について
> ご教授ください。C++版を利用しております。
> 
> RTMパッケージに提示されていますサンプルソースでは
> examples/ConfigSample/ConfigSample.cppにおいて、例えば
> 
> static const char* configsample_spec[]=
>     "conf.default.int_param0", "0",
> 
> ここでparam0に着目しますと、onInitialize()にて
> bindParameter("int_param0", m_int_param0, "0");
> と初期値0(ゼロ)でbindしています。
> 
> confファイルを用意して初期値を与えようとすると、
> うまく与えられません。常に0(ゼロ)になります。
> RTCLink等のツールはconfファイルを読み込んでおり
> ツールでApplyしてやればconfファイルの内容が反映されます。
> 
> そこで、ツールでApplyしなくても良いようにするやり方を調べたところ
> bindParameter("int_param0", m_int_param0, 
> m_properties["conf.default.int_param0"].c_str() );
> と初期値をプロパティから与えてやるとconfの内容が反映されます。
> この作法で初期化してやると、インスタンス別にconfファイルを分けても
> 読み込まれます。
> 
> この作法は推奨されるものでしょうか?
> 
> この方が好ましいのであればサンプルソースを改変いただけると
> うれしいです。サンプルソースを元にしてconfファイルを読まない
> コンポーネントが周囲で増殖しており苦慮しております。
> 
> ==============================================
> 石田雅一(いしだまさかず)
> NECシステムテクノロジー(株)
> 211-8666神奈川県川崎市中原区下沼部1753
> tel:044-431-7574
> ishida-mxb @ necst.nec.co.jp
> ==============================================
> 


-- 
----------
栗原 眞二 <shinji.kurihara @ aist.go.jp>

独立行政法人産業技術総合研究所
  知能システム研究部門 統合知能研究グループ
  〒305-8568
  茨城県つくば市梅園1-1-1 中央第2

  TEL: 029-861-5956



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