haraisao / RtORB

Light-weight CORBA implementation with C-Language.
Other
2 stars 1 forks source link

OpenRTM-aist-C(RtORB)でのrtc.confファイル指定について #7

Open moritaritsuko opened 9 years ago

moritaritsuko commented 9 years ago

RTコンポーネントを起動時、「rtc.conf」以外のファイルを指定すると、「exec_cxt.periodic.rate」が設定されません。

RTコンポーネントを起動時、各RTコンポーネントごとに異なるconfファイルを使用するため、 下記のように、confファイル(「rtc.conf」以外の名前)を指定したところ、RT System Editorで確認すると、 「exec_cxt.periodic.rate」の値がデフォルトの「1000.0」となっていました。  ・$./SampleIN0Comp ./rtc0.conf  (exec_cxt.periodic.rate:20.0)  ・$./SampleIN3Comp ./rtc3.conf  (exec_cxt.periodic.rate:10.0)

「rtc.conf」ファイルを指定して起動すると、「exec_cxt.periodic.rate」の値は、ファイルに記述した値と なっていました。  ・$./SampleIN0Comp ./rtc.conf  (exec_cxt.periodic.rate:20.0)

★rtc.confファイル以外のconfファイルの指定はできないのでしょうか。

moritaritsuko commented 9 years ago

ソースを見たところ、「RTC_Manager_configure()」(lib/rtm/Manager.c)で、 「Properties_load()」に渡すconfファイルが、「./rtc.conf」固定となっているためだと思われますが、 確認をお願いします。

 const char conf_file_name[] = "./rtc.conf";    (省略)  res = Properties_load(res, (char *)conf_file_name);

haraisao commented 9 years ago

こちらでもソースコードを確認しましたが、現在の実装では、ご指摘通りです。 rtc.confに関しては、RTC_Manager_configure関数の中でオプション処理を使いすれば、よいようになっています。

moritaritsuko commented 9 years ago

申し訳ありませんが、具体的なソース変更方法をご教示頂けないでしょうか。  「RTC_Manager_configure()」(Manager.c)で、コメントアウトされている下記処理を復活させる?    res = Properties_setDefaults(res, argv, argc);

moritaritsuko commented 9 years ago

OpenRTM-aistでは、rtc.confファイルの指定は、コマンドライン引数ではなく、 下記のように、rtc.confファイル内に記述する方法がありますが、こちらには対応されているのでしょうか。   <rtc.conf>   example.SampleIN0.config_file: SampleIN0.conf

haraisao commented 9 years ago

rtc.conf内のConfigurationファイルの設定に関しては、対応状況は見てみないとわかりません。 引数で単に変更させるには、通常のプログラムのようにargvを見てあげればよいと思います。 ただし、正式には、すべてのオプションを見て、OpenRTMに関連しているところとCORBAに関連しているところを分離なければいけませんので、対応には少し時間がかかると思います。

moritaritsuko commented 9 years ago

回答ありがとうございます。

引数で単に変更させるには、通常のプログラムのようにargvを見てあげればよいと思います。 ただし、正式には、すべてのオプションを見て、OpenRTMに関連しているところとCORBAに関連しているところを分離なければいけませんので、対応には少し時間がかかると思います。

現時点では、暫定対策として、教示頂いた通り、下記の対応をしておくことにします。  「RTC_Manager_configure()」(Manager.c)で、引数の「argv[1]」をconfファイルとして使用して  読み込み処理を行う。   res = Properties_load(res, (char *)argv[1]);