[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 メーリングリストの案内