rtfind

書式

rtfind SEARCH_PATH [OPTION ...]

概要

RTCツリーのネームサーバー上でコンポーネントやマネジャーなどを探索します。条件を設定もできます。

オプション(OPTION)

 -i INAME、--iname=INAME
       小文字と大文字を区別しないで名前で探す。複数回指定可能です。
 -m MAX_DEPTH、--maxdepth=MAX_DEPTH
       探す時の深さ制限します。デフォルトはすべてのツリーを探査します。
 -n NAME、--name=NAME
       小文字と大文字を区別して名前で探します。複数個指定可能です。
 -t TYPE、--type=TYPE
       オブジェクトの種類を指定します。文字で指定してください。以下の指定ができます。
       c:コンポーネント
       d:ディレクトリ
       m:マネージャ
       n:ネームサーバー
       z:ゾンビ
 --version   プログラムのバージョン番号を表示します。
 -h、--help  ヘルプを表示します。
 -v、--verbose より詳細な情報を出力します。

パス

rtshellはパスでRTCツリーのオブジェクトを示します。ネームサーバーとネームコンテクストはディレクトリ名として指定され、マネージャとRTコンポーネントはファイル名として指定されます。コマンドに渡したパスはrtshellの現在の作業ディレクトリを元に指定されます。(相対パスの場合)。rtshellの現在の作業ディレクトリはRTCSH_CWDという環境変数に保存されて、rtcwdというコマンドで変更できます。(現時点でrtcwdコマンドはLinux環境では動作していません)

利用できるパスはコマンド実行時に参照しているネームサーバーによって変わります。ネームサーバーが実行されているホスト名はRTCTREE_NAMESERVERSという環境変数で指定できます。また、直接ルート直下のパスとして/<ホスト名>/....のような形でネームサーバーが実行されているホストを指定できます。

例えば、/localhost/comp0.rtcはlocalhostにあるネームサーバーに登録されたcomp0.rtcというRTコンポーネントを示します。/localhost/manager/comp0.rtcはlocalhostにあるネームサーバーの下のmanagerというディレクトリに登録されたcomp0.rtcというRTコンポーネントを示します。./comp0.rtcは現在の作業ディレクトリにあるcomp0.rtcというRTコンポーネントを示します。

RTコンポーネントのポートを示す場合、パスの後にコロン(「:」)で区切って指定します。例えば、/localhost/comp0.rtc:dataはcomp0.rtcというRTコンポーネントのdataというポートを意味します。

新しいポートを作れるコマンドもあり、この場合、オプションでそれらをパスに追加できます。使えるオプションは作られるポートの名前とフォーマッタです。指定方法は以下の通りです:

 <path>:<port>.<new_port_name>#<formatter>

例:

 /localhost/blurg.host_cxt/comp0.rtc:input.stuff#a_printer

新たに作られるポートの名前はstuffで、データはa_printerという関数(フォーマッター)でターミナルに表示するように指定しています。(a_printerの関数はPythonが利用可能な場所に存在する必要があります。普通はユーザーがモジュールで提供します)。作られたポートはcomp0.rtcのinputというポートに接続されます。

<new_port_name>という部分は必須ではありません。指定しない場合は"."も指定しないでください。例:

 /localhost/blurg.host_cxt/comp0.rtc:input#a_printer

<formatter>という部分は必須ではありません。書いていない場合は"."も指定しないでください。例:

 /localhost/blurg.host_cxt/comp0.rtc:input.stuff

環境変数

RTCTREE_ORB_ARGS
ORBを作る時に渡す変数です。セミコロンで区切ります。必須ではありません。
RTCTREE_NAMESERVERS
RTCツリーを作る時に参照するネームサーバーのアドレスです。アドレスをセミコロンで区切ります。リストされたアドレスはRTCツリーに追加されrtshellで参照できるようになります。ルート下のディレクトリ名としてパスで指定することもできるので必須ではありません。
RTSH_CWD
rtshellの現在のワーキングディレクトリ。rtshellが自動的に設定します。設定しないでください。

一般的な利用ではユーザーが設定する変数はRTCTREE_NAMESERVERSのみです。よく使うネームサーバーを設定しておくと便利です。例えば、Bashシェルの場合、以下のコマンドはlocalhostとポート192.168.0.1:65346およびホストexample.comにあるネームサーバーをrtshellが参照できるようにします。

 $ export RTCTREE_NAMESERVERS=localhost;192.168.0.1:65346;example.com

返り値

成功の場合はゼロを返します。失敗の場合はゼロではない値を返します。

デバグ情報とエラーは stderr に出します。

  • RTCツリーの中のすべてのコンポーネントを探します。ルートディレクトリから探し始めます。
     $ rtfind / -t c
  • 現在のワーキングディレクトリ下のすべてのコンポーネントとマネージャを探します。
     $ rtfind . -t cm
  • 現在のワーキングダイレクトリ下で名がConsoで始まるコンポーネントを探します。
     $ rtfind . -n 'Conso*' -type c
  • 現在のワーキングディレクトリ下で名前がconsoleで始まり.rtcで終わって、その間に一字のみあるコンポーネントを探します。小文字と大文字を区別しません。
     $ rtfind . -i 'console?.rtc' -type c
  • (POSIXのみ)現在のワーキングディレクトリのすべてのコンポーネントをアクティブ化します。
     $ for c in `rtfind . -type c -m 1`; do rtact ${c}; done

Download

latest Releases : 2.0.0-RELESE

2.0.0-RELESE Download page

Number of Projects

Choreonoid

Motion editor/Dynamics simulator

OpenHRP3

Dynamics simulator

OpenRTP

Integrated Development Platform

AIST RTC collection

RT-Components collection by AIST

TORK

Tokyo Opensource Robotics Association

DAQ-Middleware

Middleware for DAQ (Data Aquisition) by KEK