操作
バグ #4483
未完了マスターマネージャからC++のコンポーネントを起動できない。
開始日:
2018/03/16
期日:
進捗率:
100%
予定工数:
説明
RTSEからC++のコンポーネントを起動すると「FAILED to create taget RTC」が表示されてRTCが起動できない。
C++のrtcdをスレーブで起動しているが、add_slave_managerが呼び出されていない。
katami さんがほぼ7年前に更新
原因¶
c++のrtcdがマスターとして起動してしまう。¶
Java版のrtcdをスタートメニューから起動する場合、作業フォルダーは以下である。
"C:\Program Files\OpenRTM-aist\1.2.0\bin\"
このフォルダーには、c++版のrtcdをマスターとして起動するための「rtcd.bat」がある。
@call set omni_root=%OMNI_ROOT% @set PATH=%OMNI_ROOT%\bin\x86_win32\;%PATH% @%RTM_VC_VERSION%\rtcd.exe -d -f %RTM_VC_VERSION%\rtc.conf
そのため、Java版のrtcdで、「cmd /c rtcd」 と実行するとこのバッチファイルが起動して、c++版のrtcdがマスターとして起動してしまう。
C:\Program Files\OpenRTM-aist\1.2.0\bin>where rtcd C:\Program Files\OpenRTM-aist\1.2.0\bin\rtcd.bat C:\Program Files\OpenRTM-aist\1.2.0\bin\vc141\rtcd.exe
c++のrtcdが途中でシャットダウンしてしまう。¶
javaのrtcからC++のrtcdを起動するする際、パラメータのmanager.shutdown_autoをYESで起動していた。
manager.shutdown_autoは、一定時間ごとに調べ、RTCがない場合には、マネージャ およびプロセスをシャットダウンするパラメータである。YESの場合、RTCが 一つもなければ、マネージャおよびプロセスは自動的にシャットダウンされる。
操作