rtshell

イントロダクション

rtshellは、ネームサーバー上に登録されているRTコンポーネントをシェルから管理できるツールです。 コンポーネントをactivate/deactivate/resetしたり、ポートの接続を行うことができます。 RTシステムの管理もできます。

このツールは、リソースの少ないシステム、GUIの利用ができない環境(特にコンポーネントを管理する他のPCとネットワークでつながっていない環境など)や、RTSystemEditorの利用ができない環境、スクリプトでRT Systemを構築する場合などで有効です。コマンドラインの利用に精通している人にも便利なツールです。

必要条件

  • rtctreeが必要です。
  • rtsprofileが必要です。
  • Python 2.7が必要です。
  • rtprint、rtinjectおよびrtlogはOpenRTM-Python-1.0.0以上が必要です。
  • omniORB-py 4.x以上が必要です。
  • ソースからのインストールの場合は、ドキュメントをコンパイルするためにSphinxが必要です。

インストール

インストール方法についてはrtshellのインストールのページを参照してください。

リポジトリ

最新版のソースはgithubのリポジトリにあります(URL:http://github.com/gbiggs/rtshell)。 [Download ZIP]をクリックしてダウンロードできます。下記のように"git clone"コマンドを使うこともできます。(gitが前もってインストールされている必要があります)。

  $ git clone git://github.com/OpenRTM/rtshell.git

ドキュメント

ドキュメントはLinuxではmanページとして提供し、/usr/local/share/manにインストールされます。Windowsの場合はHTMLにて提供し、<pythonディレクトリ>\Lib\site-packages\rtshell\data\doc\htmlの下のen、jaディレクトリの下に英語版、日本語版がそれぞれコピーされます。また本Webサイト上にも掲載しています。

rtshellコマンド・リファレンス

概要

コマンドの多くは、ネームサーバーで動作しているコンポーネントとマネージャーをファイルシステムのように扱えるようにしてあります。ディレクトリに入ったり、コンポーネントをcatのようにで読んだり、アクティブさせたり、ポートを接続できます。ほかのコマンドはRTシステムを管理するためのRTSProfileファイルに関連して使用されます。

コマンド

コマンド名 概要
rtact RTコンポーネントをアクティブにします。
rtcat RTコンポーネントのメタデータを表示します。
rtcheck 起動中のRTシステムを読み込んだRTSProfileデータと比べます。
rtcomp コンポジットコンポーネントを作ります。
rtcon ポートを接続します。
rtconf コンポーネントのコンフィグレーションを照会/設定します。
rtcryo 起動中のRTシステムのRTSProfileデータをファイルかstdoutに出力します。
rtcwd 現在の作業ディレクトリを変更します。
rtdeact コンポーネントを非アクティブにします。
rtdel ネームサーバーからオブジェクトを消去します。
rtdis ポートの接続を切ります。
rtdoc RTコンポーネントのドキュメンテーションを表示します。
rtexit RTコンポーネントを停止します。
rtfind 起動中のRTコンポーネントやマネージャなどを探します。
rtinject ポートにデータを送ります。
rtlog ポートが送るデータをログに保存して再生します。
rtls 現在の作業ディレクトリ上のオブジェクトをリストします。
rtmgr マネジャーでRTコンポーネントを管理します。
rtprint ポートが送るデータをターミナルに表示します。
rtpwd 現在の作業ディレクトリを表示します。
rtreset RTコンポーネントをリセットします。
rtresurrect RTSProfileデータを用いてRTシステムの接続を復元します。
rtstart RTSProfilleデータを用いてRTシステムを起動します。
rtstodot 起動中のRTシステムをグラフで表示します。
rtstop RTSProfielデータを用いてRTシステムを停止します。
rtteardown RTSProfileデータを用いてRTシステムを削除する。

RTCツリー

すべてのコマンドはRTCツリー上で起動します。RTCツリーとは、ネームサーバー上のコンテキスト、コンポーネント、マネージャなどをファイルシステムに見立てて扱うことができる仕組みです。通常のファイルシステムと同じように扱うことができます。

ネームサーバーはルートディレクトリ"/"直下のサブディレクトリとして扱われます。その下にはファイルやサブディレクトリが存在します。サブディレクトリはネームサーバー上のネーミングコンテクストに対応します。ファイルはコンポーネントとマネージャーに対応します。

ツリーを構築するためのネームサーバーを与える方法は2通りあります。一つはrtshellコマンドに渡したネームサーバーへの相対パスです。これは現在の作業ディレクトリからの相対パスです。また絶対パス指定して場合はルート直下のディレクトリがネームサーバーがあるホスト名(IPアドレスの場合もあり)です。

もう一つはRTCTREE_NAMESERVERS環境変数です。ネームサーバーのホストアドレスをセミコロンで区切り、リストを渡すこともできます。複数のネームサーバーがあるホストを指定した場合はそれぞれのホストがルート直下に見えるようになります。

シェルコンプリーション

Bashシェルを使う方はrtshell付属のコンプリーションスクリプトによってrtshellのコマンド入力の補完ができるようになり使いやすくできます。スクリプトは/usr/local/lib/pythonX.Y/dist-packages/rtshellにインストールされます。以下のコマンドでロードしてください:

 $ source /usr/local/lib/pythonX.Y/dist-packages/rtshell/bash_completion

また上記の行を~/.bashrcというファイルに追加すればターミナル起動時に自動的にロードされます。

コンプリーション(補完)の例:

 $ rtcwd /localhost/[TAB]
 $ rtcwd /localhost/ubuntu.host_cxt/

 $ rtcwd /localhost/ubuntu.host_cxt/[TAB][TAB]
 /localhost/ubuntu.host_cxt/ConfigSample0.rtc
 /localhost/ubuntu.host_cxt/ConsoleIn0.rtc
 /localhost/ubuntu.host_cxt/ConsoleOut0.rtc
 /localhost/ubuntu.host_cxt/manager.mgr/

 $ rtcwd localhost/ubuntu.host_cxt/[ENTER]

 $ rtconf ConfigSample0.rtc set [TAB]
 double_param0  int_param0     str_param0     vector_param0  
 double_param1  int_param1     str_param1

 $ rtcon ConsoleIn0.rtc:[TAB]
 $ rtcon ConsoleIn0.rtc:out

システムの要件

  • rtshellはrtctreeが必要です。インストールされていない場合はコマンドは起動しません。
  • RTSProfileデータを使うコマンドはrtsprofileが必要です。インストールされていない場合はこのコマンドは起動しません。
  • rtshellはPython 3.7/3.6/2.7が必要です。
  • rtinject 、rtlog及びrtprintはOpenRTM-pythonが必要です。

パス

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に出力されます。

rtact

書式

 rtact [OPTION ...] PATH [PATH...]

概要

Inactive状態のRTコンポーネントをactive化ます。

オプション

 -e EC_ID、--exec_context=EC_ID
       状態を変更したいExecution contextのID。ディフォルトは0。
 --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に出力されます。

  • すべてのowned ECとparticipanting EC上のConsoleOut0.rtcをactive化する。
     $ rtact /localhost/local.host_cxt/ConsoleOut0.rtc
  • すべてのowned ECとparticipanting EC上のConsoleOut0.rtcとConsoleIn0.rtcをactive化する。
     $ rtact ConsoleOut0.rtc ConsoleIn0.rtc
  • Motor0.rtcをIDが2のEC上でのみactive化する。
     $ rtact -e 2 /localhost/local.host_cxt/Motor0.rtc

rtcat

書式

 rtcat [OPTION ...] PATH

概要

POSIX(Linuxなど)のcatコマンドと同じです。RTコンポーネント、ポート及びマネージャのメタデータを読んでターミナルに表示します。

オプション(OPTION)

 -l       詳しい情報を示します。複数指定するともっと詳しい情報が表示されます。
 --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に出力されます。

  • Motor0.rtcの簡単な情報を示します。
     $ rtcat /localhost/local.host_cxt/Motor0.rtc
  • ポートとExecution Contextを含めてMotor0.rtcの詳しい情報を表示 します。
     $ rtcat /localhost/local.host_cxt/Motor0.rtc -l
  • ポートの接続を含めてMortor0.rtcの詳しい情報を表示します。
     $ rtcat /localhost/local.host_cxt/Motor0.rtc -ll
  • Mortor0.rtcのinポートのみの情報を表示します。
     $ rtcat /localhost/local.host_cxt/Motor0.rtc:in -l
  • manager.mgrというマネージャーの簡単な情報を表示します。
     $ rtcat /localhost/local.host_cxt/manager.mgr

rtcheck

書式

 rtcheck [OPTION ...] RTSPROFIE_FILE

概要

実行中のRTシステムのRTSProfileとファイルRTSPROFILE_FILEとの間に矛盾がないかをチェックします。正しくない状態にあるコンポーネントや間違った接続などのようなエラーを報告します。

デフォルトはRTSProfileファイルをXML形式として取扱います。YAML形式を使う場合は--yaml(-y)オプションを指定してください。

オプション(OPTION)

 --dry-run   何がなされるかを表示し、実際の実行はしません。
 -s STATE、--state=STATE
        全コンポーネントの期待する状態を指定します。デフォルトはActiveです。
 -x、--xml   XMLフォーマットを使います。
 -y、--yaml   YAMLフォーマットを使います。
 --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というポートを意味します。

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

 <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に出力されます。

  • sys.rtsysというRTSProfileファイルをチェックし、システムはエラーがない状態で起動中で、すべてのコンポーネントはactive状態かどうかを確認します。
     $ rtcheck sys.rtsys
  • 全コンポーネントはinactiveの状態にある以外は上記と同じです。
     $ rtcheck sys.rtsys -s Inactive
  • システムチェックのために何をするかを表示します。
     $ rtcheck sys.rtsys --dry-run

rtcomp

書式

rtcomp [OPTION...] MANAGER

概要

実行している複数のコンポーネントを、同じマネージャ上に一つのコンポジット・コンポーネントとして構成し、選択されたポートを外部にエクスポートします。Execution contextも選択することが可能です。ポートがエクスポートされているコンポーネントは自動的に構成に含まれます。

オプション

 -c COMPONENT_NAME、--comp=COMPONENT_NAME
       コンポジットコンポーネントに含むコンポーネントを指定します。このオプションは複数個の指定が可能です。
 -n NAME、--name=NAME
       コンポジットコンポーネントのインスタンス名(生成されるコンポネントの名前)を指定する。[デフォルト:CompositeRTC]
 -o OPTIONS、--options=OPTIONS
       コンポーネントを作る時の追加オプション。「&」で始めてください。
 -p PORTS、--port=PORTS
       エクスポート(外部公開)するポートを指定する。ポートがエクスポートされているコンポーネントは自動的にコンポジットコンポーネントに含まれます(-cと同じ)。
 -t TYPE、--type=TYPE
       Execution contextのタイプを指定します。[デフォルト:PeriodicECSharedComposite]
 --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に出力されます。

  • Controller0.rtcのinポートとMotor0.rtcのoutポートをエクスポートしてMotor0.rtcとController0.rtcによってコンポジットコンポーネントを作ります。コンポジットコンポーネントのインスタンス名はMotorUnitです。
     $ rtcomp /localhost/manager.mgr -c /localhost/Motor0.rtc -p /localhost/Controller0.rtc:in -p /localhost/Motor0.rtc:out -n MotorUnit

rtcon

書式

 rtcon [OPTION ...] PATH PATH [PATH]

概要

二つ以上のデータポートやサービスポートを接続します。

オプション

 -i ID、--id=ID
        接続(コネクター)IDを指定します。
 -n NAME、--name=NAME
        接続名を指定します。
 -p PROPERTY=PROPERTY_VALUE、--property PROPERTY=PROPERTY_VALUE
        接続のプロパティーを指定します。
 --version   プログラムのバージョン番号を表示します。
 -h、--help  ヘルプを表示します。
 -v、--verbose より詳細な情報を出力します。 

データポートの場合に有効なプロパティーを以下に示します:

 dataport.data_type
 dataport.dataflow_type
 dataport.interface_type
 dateport.subscription_type

サービスポートの場合に有効なプロパティーを以下に示します:

 port.port_type

OpenRTMのバージョンによっては、ほかのプロパティーも有効な場合があります。

パス

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に出力されます。

  • デフォルトプロパティーを使ってConsoleIn0.rtcのoutポートをConsoleOut0.rtcのinポートに接続します。
     $ rtcon /localhost/ConsoleIn0.rtc:out /localhost/ConsoleOut0.rtc:in
  • Pull型のコネクションによってMotor0.rtcのoutポートをSensor0.rtcのinポートに接続します。
     $ rtcon Motor0.rtc:out Sensor0.rtc:in --property dataport.dataflow_type=pull
  • Motor0.rtcのoutポートをSensor0.rtcのinポートに接続します。コネクション名はmotor_dataでIDはcon1です。
     $ rtcon Motor0.rtc:out Sensor0.rtc:in -i con1 -n motor_data
  • デフォルトプロパティーを使ってConsoleIn0.rtcのoutポートをConsoleOut0.rtcのinポートとConsoleOut1.rtcのinポートに接続します
     $ rtcon ConsoleIn0.rtc:out ConsoleOut0.rtc:in ConsoleOut1.rtc:in

rtconf

書式

 rtconf PATH [OPTION...] [list|set|get|act] [ARGS]

概要

コンフィグレーションパラメータとコンフィギュレーションセットを表示、設定します。list|set|get|actは、指定されていない場合はlistが指定されているものとします。

list
list コマンドはコンフィグレーションセットとパラメータを表示します。隠しコンフィグレーションセット(__で始まるセット名のコンフィギュレーションセット)は表示しません。
set PARAMETER_NAME VALUE
コンフィグレーションパラメータの値を設定します。パラメータ名と新しい値を指定してください。--set (-s)オプションが指定されていない場合、現在のアクティブなコンフィギュレーションセットのパラメータが設定されます。
get PARAMETER_NAME
パラメータの値を表示します。パラメータ名を指定してください。--set (-s)オプションが指定されていない場合、現在のアクティブなコンフィギュレーションセット内のパラメータの値を表示します。
act
--set=SET_NAME (-s SET_NAME)で指定したコンフィギュレーションセットをアクティブにします。

オプション(OPTION)

 -a、--all   隠しコンフィギュレーションセットを無視しない。隠しコンフィギュレーションセットを編集したい方はこのオプションを指定してください。
 -l       詳しい情報を表示します。
 -s <set name>、--set=SET_NAME
       コンフィギュレーションセットを選択する。指定されていない場合、現在アクティブになっているセットを使います。
 --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に出力されます。

  • ConfigSample0.rtcのコンフィギュレーションセットを表示します。
     $ rtconf /localhost/ConfigSample0.rtc list
     +default*
     +mode0
     +mode1
  • ConfigSample0.rtcのコンフィギュレーションセットとパラメータを表示します。
     $ rtconf /localhost/ConfigSample0.rtc -l list
      -default*
      double_param0  0.99
      double_param1  -0.99
    ...
  • 隠しコンフィギュレーションセットを含めてConfigSample0.rtc のセットを表示します。
     $ rtconf /localhost/ConfigSample0.rtc -a list
     +__constraints__
     +__widget__
     +default*
     +mode0
     +mode1
  • ConfigSample0.rtcのdefaultセットのパラメータを表示します。
     $ rtconf /localhost/ConfigSample0.rtc -l -s default list
     -__constraints__
      double_param0  0<=x<=100
      double_param1
      ...
  • 現在アクティブなコンフィギュレーションセットのint_param0パラメータの値を42に設定します。
     $ rtconf /localhost/ConfigSample0.rtc set int_param0 42
  • mode0というコンフィギュレーションセットのint_param0を42に設定します。
     $ rtconf /localhost/ConfigSample0.rtc -s mode0 set int_param0 42
  • 現在アクティブなコンフィギュレーションセットのint_param0パラメータの値を表示します。
     $ rtconf /localhost/ConfigSample0.rtc get int_param0
     0
  • mode0というコンフィギュレーションセットのint_param0パラメータの値を表示します。
     $ rtconf /localhost/ConfigSample0.rtc -s mode0 get int_param0
     12345
  • コンフィギュレーションセットをmode1というコンフィギュレーションセットにします。
     $ rtconf /localhost/ConfigSample0.rtc act mode1
  • コンフィギュレーションセットを_ _widget_ _というセットにします。
     $ rtconf /localhost/ConfigSample0.rtc -a act __widget__

rtcryo

書式

rtcryo [OPTION...] [NAME_SERVER]

概要

実行中のRTシステムのRTSProfileを保存します。コンポーネント間の接続とコンポーネントの現在のコンフィグレーションパラメータを保存します。接続されていないコンポーネントは保存しません。

ファイル名を指定しない場合、RTSProfileをstdoutに出力します。デフォルトはXMLで保存します。

オプション

 -a ABSTRACT、--abstract=ABSTRACT
       RTシステムの概要を設定します。
 -n SYSNAME、--system-name=SYSNAME
       RTシステムの名前を設定します。
 -o OUTPUT_FILE、--output=OUTPUT_FILE
       出力ファイル名。指定しない場合はstdoutに出力します。
 -v VERSION、--system-version=VERSION
       RTシステムのバージョン設定します。
 -e VENDOR、--vendor=VENDOR
       RTシステムのベンダー名を設定します。
 -x、--xml   XML形式で出力します。
 -y、--yaml   YAML形式で出力します。
 --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に出力されます。

  • すべて管理できるネームサーバー上のすべての接続されているコンポーネントの一つのRTシステムとしてRTSProfileをstdoutに出します。
     $ rtcryo
  • 全ての管理できるネームサーバー上のすべての接続されているコンポーネントを一つのRTシステムとしてRTSProfileをsys.rtsysというファイルに保存します。
     $ rtcryo -o sys.rtsys
  • localhostというホストのネームサーバーのすべての接続されているコンポーネントを一つのRTシステムとしてRTSProfileをstdoutに出します。
     $ rtcryo localhost
  • RTシステムの名前をmysystem、バージョンを1.0としてRTSProfile出力します。
     $ rtcryo -n 'mysystem' -v 1.0

rtcwd

書式

 rtcwd [PATH]

概要

RTCツリーの中の現在のワーキングディレクトリを変更します。

パス

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に出力されます。

  • ルートディレクトリに移動します。
     $ rtcwd
  • ルートディレクトリに移動します。
     $ rtcwd /
  • /localhost/local.host_cxtというディレクトリに移動します。
     $ rtcwd /localhost/local.host_cxt
  • 親ディレクトリに移動します。
     $ rtcwd ..
  • 親の親ディレクトリに移動します。
     $ rtcwd ../..

rtdeact

書式

 rtdeact [OPTION ...] PATH [PATH ...]

概要

Active状態のRTコンポーネントを非アクティブ化します。

オプション

 -e EC_ID, --exec_context=EC_ID
       非アクティブ化するRTCのExecution contextのID。デフォルトは0。
 --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に出力されます。

  • すべてEC上でConsoleOut0.rtcを非アクティブ化する。
     $ rtdeact /localhost/local.host_cxt/ConsoleOut0.rtc
  • すべてのEC上でConsoleOut0.rtcとConsoleIn0.rtcを非アクティブ化する。
     $ rtdeact ConsoleOut0.rtc ConsoleIn0.rtc
  • Motor0.rtcをIDが"2"のEC上でのみで非アクティブ化する。
     $ rtdeact -e 2 /localhost/local.host_cxt/Motor0.rtc

rtdel

書式

 rtdel [OPTIONS ...] PATH

概要

ネームサーバーから登録済みオブジェクトを消します。このコマンドでオブジェク ト自身を終了させることはできません。オブジェクトが他のところに登録されてい ない場合、そのオブジェクトに接続できない状態になるので注意してくだ さい。コンテキストやマネージャを消す時、他のオブジェクトも消す可能性が あるので注意してください。

このコマンドはゾンビを消すのに便利です。一つのコマンドですべてのゾン ビを消すことが可能です。

オプション(OPTION)

 -z、--zombies ゾンビのみを消します。
 --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に出力されます。

  • localhostネームサーバーからMotor0.rtcを消します。コンポーネントは終了しません。
     $ rtdel /localhost/Motor0.rtc
  • localhostネームサーバーからMotor0.rtcというゾンビを消します。Motor0.rtcはゾンビではない場合は消しません。
     $ rtdel -z /localhost/Motor0.rtc
  • localhostネームサーバーからlocal.host_cxtというコンテキストを消します。そのコンテキスト下のコンポーネントやマネージャはすべて消されます。
     $ rtdel /localhost/local.host_cxt
  • すべてのネームサーバーからすべてのゾンビを消します。
     $ rtdel -z

rtdis

書式

rtdis [OPTION ...] PATH PATH [PATH]

概要

ポートの間の接続を切ります。一つのポートへの全ての接続を切ることも、コンポーネントの全ての接続を切ることもできます。

オプション(OPTION)

 -i ID、--id=ID 接続(コネクター)ID。
 --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に出力されます。

  • ConsoleIn0.rtcのoutポートとConsoleOut0.rtcのinポート間の全て接続を切ります。
     $ rtdis /localhost/ConsoleIn0.rtc:out /localhost/ConsoleOut0.rtc:in
  • ConsoleIn0.rtcのoutポートに接続されている全ての接続を切ります。
     $ rtdis /localhost/ConsoleIn0.rtc:out
  • ConsoleIn0.rtcの全てのポートから全ての接続を切ります。
     $ rtdis /localhost/ConsoleIn0.rtc
  • ConsoleIn0.rtcのoutポートからcon1というIDを持つ接続のみを切ります。
     $ rtdis -i con1 /localhost/ConsoleIn0.rtc:out
  • ConsoleIn0.rtcのポートのうちcon1というIDの接続のみを切ります。
     $ rtdis -i con1 /localhost/ConsoleIn0.rtc

rtdoc

書式

 rtdoc [OPTION ...] PATH

注意

本セクションでは本Webサイトのシステムの都合上連続するアンダースコアがうまく記述できないところがあるため、そこでは"_ _"と間に空白をいれた形で表記しますが、これは"__"を意味しますので、置き換えてお読みください。

概要

RTコンポーネントの埋め込みドキュメンテーションを表示します。

あるRTコンポーネントはドキュメントを埋込むことができ、隠しコンフィグレーションセットとして実装されています。このコマンドでその埋め込みドキュメンテーションを複数のフォーマットで表示できます。対応フォーマットはreStructuredText、HTML、LaTex(PDF化を考慮して)です。

オプション

 -f FORMAT、--format=FORMAT
       フォーマットを選択します。rst、htmlおよびlatexから選択してください。
 -g、--graph  コンポーネントのグラフを表示させます。
 --version   プログラムのバージョン番号を表示して終了する
 -h、--help   ヘルプを表示して終了する
 -v、--verbose より詳細な情報を出力する

RTコンポーネントのドキュメンテーション

このコマンドによって取り扱われる埋め込みドキュメントは、_ _doc_ _コンフィギュレーションセットに記述します。このセット内のパラメータ(隠しでないもの)はセクションとして追加されます。

一般的なセクションは:

intro
コンポーネントの紹介。その動作目的などの概要を記載します。(Title: Introduction.)
reqs
コンポーネントを使用するための、事前にインストールされていなければいけないソフトウエアのような事前準備が必要yな事項を記載します。(Title: Pre-requisites.)
install
コンポーネントのインストール方法を記載します。(Title: Installation.)
usage
コンポーネントを起動したり使用したりする方法を記載します。 (Title: Usage.)
misc
コンポーネントを使用するにあたって知っておいたほうがよい他の重要な情報を記載します。(Title: Miscellaneous.)
changelog
コンポーネントの変更履歴を記載します。(Title: Changelog.)

また、コンポーネントがポートやコンフィギュレーションを持っていれば、そのデフォルトのコンフィギュレーションセットの中にportセクションとconfigセクションが自動的に作られます。_ _doc_ _セット内の他のセクションはすべてこの埋め込みドキュメントとして追加されます。

また、以下の3つのパラメータを追加の情報としてドキュメントの先頭部分に追加できます。

_ _license_ _
GPLやBSDなどのライセンス情報
_ _contact_ _
作者のemailアドレスなどの連絡先情報
_ _url_ _
コンポーネントに関するホームページのURL

パラメータはコンポーネントソース内にもコンポーネント起動時に読込まれるコンフィギュレーション・ファイル内で記述できます。ソース内に埋め込まれたドキュメントは、使用法や連絡先の短い情報以外は、コンポーネントのバイナリ・データ・サイズを消費するためコンフィギュレーション・ファイルに記載する方法を推奨します。

ソースコード内では例えば以下のように記述します:

 'conf.__doc__.__license__', 'LGPL',
 'conf.__doc__.__contact__', 'a@example.com',
 'conf.__doc__.__url__', 'http://www.openrtm.org',
 'conf.__doc__.intro', 'This is the introduction.',
 'conf.__doc__.reqs', 'This component requires nothing.',
 'conf.__doc__.install', 'Type "make install"',
 'conf.__doc__.usage', 'Run comp_standalone.',
 'conf.__doc__.misc', 'Extra information.',
 'conf.__doc__.changelog', 'No changes.',
 'conf.__doc__.Another', 'A non-standard section.',

デフォルトではセクションは以下の順番でインクルードされます。

 intro, reqs, usage, ports, config, misc, changelog, [other sections]

この順番は_ _doc_ _セット内の_ _order_ _パラメータで変更でき、ドキュメントのセクション中の各パラメータの名をコンマで分離したリストで指定し、例えば以下のようににします:

 'conf.__doc__.__order__', 'intro,ports,config,reqs,Another'

そこで指定されなかったセクションは、指定されたセクションの後になり、それぞれの順番は定義されません。

ポートへのドキュメントはポートのプロパティーの記述を追加し、例えば以下のようにします:

 self._inport.addProperty('description', 'This port receives stuff.')

コンフィグレーション・パラメータのドキュメントは、_ _description_ _セットでパラメータを設定し、例えば以下のようにします:,

 'conf.default.param', '0',
 'conf.__description__.param', 'A test parameter.',

パス

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に出力されます。

  • ConsoleOut0.rtcのドキュメンテーションを標準出力に表示します。
     $ rtdoc /localhost/ConsoleOut0.rtc
  • ConsoleOut0.rtcのドキュメンテーションをdoc.htmlというファイルに保存します。
     $ rtdoc /localhost/ConsoleOut0.rtc > doc.html
  • ConsoleOut0.rtcのドキュメンテーションをreStructuredTextフォーマットで表示します。
     $ rtdoc /localhost/ConsoleOut0.rtc -f rst
  • ConsoleOut0.rtcのドキュメンテーションをrubberツールによってPDF形式で保存します。
     $ rtdoc /localhost/ConsoleOut0.rtc -f latex > doc.tex && rubber -d doc.tex

rtexit

書式

rtexit [OPTION ...] PATH

概要

実行中のRTコンポーネントを終了させます。コンポーネントは、関連するCallbackやリソースの開放などのシャットダウン処理をして終了します。

オプション(OPTION)

 --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 に出力されます。

  • ConsoleOut0.rtcコンポーネントを終了します。
     $ rtexit /localhost/ConsoleOut0.rtc

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

rtinject

書式

rtinject [OPTIONS ...] PATH:PORT [PATH:PORT ...]

概要

値を一つ以上のポートに送ります。デフォルトは一回のみ送ります。複数回や定期的に送ることもできます。

目的のポートにデフォルトの接続を作ります。

オプション(OPTION)

 -c CONST、--const=CONST
       Pythonフォーマットでデータを指定します。POSIX系では「'」でデータ記述文字列を囲みます。
       Windowsでは「”」でデータ記述文字列を囲みます。このオプションが指定されなかった場合は、
       標準入力からデータをデータ記述文字列と見立てて動作します。データ記述文字列中の{time}の
       表記は現在の時刻を意味するものとして取扱われます。
 -m MODULES、--mod=MODULES
       Importするythonモジュールを指定します。値の必要なモジュールが自動的にロード
       されていない場合、このオプションで指定してください。モジュールとそのモジュー
       ルの__POAのモジュールもImportされます。
 -n NUMBER、--number=NUMBER
       データを何回送るかを指定します。-1を設定した場合、強制停止なされるまで送り続けます。
 -p PATHS、--path=PATHS
       モジュールのサーチパス。PythonのPYTHONPATH変数に追加されます。
 -r RATE、--rate=RATE
       頻度を指定します。単位は(回/sec)です。
 -t TIMEOUT、--timeout=TIMEOUT
       タイムアウト時間(コマンドの実行を停止するまでの時間)を秒単位で指定します。このオプ
       ションは --number と一緒に使用で来ません。
 --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に出力されます。

  • stdinからの値をConsoleOut0.rtcのinポートに送ります。
     $ rtinject /localhost/ConsoleOut0.rtc:in
  • 42と現在の時刻をタイムスタンプとconsoleout0.rtcのinポートに送ります。「’」使ってpython形式のデータ指定を囲みます。(Windowsでは「"」を使ってください。)
     $ rtinject /localhost/ConsoleOut0.rtc:in -c 'RTC.TimedLong({time}, 42)'
  • 42をタイムスタンプ1秒としてConsoleOut0.rtcのinポートに送ります。
     $ rtinject /localhost/ConsoleOut0.rtc:in -c 'RTC.TimedLong(RTC.Time(1, 0), 42)'
  • stdinからの値を五回ConsoleOut0.rtcのinポートに送ります。
     $ rtinject /localhost/ConsoleOut0.rtc:in -n 5
  • 42を現在の時刻を元にconsoleout0.rtcのinポートに5回送ります。
     $ rtinject /localhost/ConsoleOut0.rtc:in -n 5 -c 'RTC.TimedLong({time}, 42)'
  • 42と現在の時刻を元に10回/secの頻度でconsoleout0.rtcのinポートに秒間送ります。
     $ rtinject /localhost/ConsoleOut0.rtc:in -t 5 -r 10 -c 'RTC.TimedLong({time}, 42)'
  • MyData.MyVal(84)をMyComp0.rtcのinポートに送ります。クラスはPythonのサーチパス(PYTHONPATH)に存在するモジュールに指定されています。そのモジュールはOMG IDLファイルからジェネレートされました。
     $ rtinject /localhost/MyComp0.rtc:in -c 'MyData.MyVal(84)'
  • MyData.MyVal(84)をMyComp0.rtcのinポートに送ります。クラスはPythonのサーチパス(PYTHONPATH)に存在しないモジュールに指定されています。モジュールのパスは-pで指定されます。
     $ rtinject /localhost/MyComp0.rtc:in -p /usr/local/mods -c 'MyData.MyVal(84)'
  • MyData.MyVal(84)をMyComp0.rtcのinポートに送ります。クラスはPythonのサーチパス(PYTHONPATH)に存在するmymodというモジュールを指定します。
     $ rtinject /localhost/MyComp0.rtc:in -p /usr/local/mods -m mymod -c 'MyData.MyVal(84)'

rtlog

書式

rtlog [OPTION ...] PATH:PORT [PATH:PORT ...]

概要

コンポーネントがデータポートで送るデータをログファイルに保存したり、ログファイルに記録したデータをコンポーネントに送ったり(再生)します。複数のポートでも記録が可能です。ログされたコンポーネントの出力データを再現するためにログファイルを再生しコンポーネントに送ることもできます。

ログの複数データストリームから再生されたストリームを選択できます。例えばログに複数のレーザセンサーからのデータが保存されてる場合、その中から特定の1つのみのレーザセンサー・データを再生できます。再生はログの始まりだけではなくて途中から途中までをという形や、再生レートを変えたりできます。また出力されたデータのタイムスタンプを編集できます。

デフォルトはログの保存です。コマンドで指定したポートはすべてOutPortである必要があります。再生モードの場合は、ポートはすべてInPortの必要があり、また、ログされたデータの型にポートが受付可能な型は一致している必要があります。

ログで記録されるそれぞれのポートは一つのデータストリームを作ります。再生時、このデータストリームはそれぞれ複数のInPortに送ることができます。データストリームは名前で区別されます。名前はコマンドラインで指定できますが、指定されなかった場合は、デフォルトの名前が自動的に使われます。

ログツールから目的のポートまでの接続はデフォルトのプロパティーで作られます。

オプション

 -a、--absolute-times
       ログデータからのタイムスタンプは記録されたままの値を送るようにします。
       指定しない場合、タイムスタンプは現在の時刻でオフセットされます。
 -d、--display-info
       ログの情報を表示して終了します。
 -e END、--end=END
       記録や再生を止めるタイムスタンプまたはインデクスを指定します。再生の
       場合は記録されているログ中の先頭と最後のデータの間の数値を指定してく
       ださい。-1を指定した場合は強制終了されるまで記録するか、ログの最後ま
       で再生します。インデクスで指定したい場合は--indexも指定してください。
 -f FILENAME、--filename=FILENAME
       ログファイルの名前を指定します。指定しない場合、現在の時刻をファイル名
       とします。再生の時は必須です。
 --path=PATHS    
       モジュールのサーチパスを指定します。PythonのPYTHONPATH変数に追加されます。
 -i、--index
       --startオプションや--endオプションで指定する値をタイムスタンプではなく
       インデクスとして扱うようにします。
 -l LOGGER、--logger=LOGGER
       ログ種類を選択します。デフォルトはSimplePickle(simpkl)です。テキストログ
       (text)を使うこともできます。テキストログは再生できません。
 -m MODULES、--mod=MODULES
       ImportするPythonモジュールを指定します。データを取扱うために必要な
       モジュールが自動的にロードされていない場合、このオプションで指定してくだ
       さい。モジュールとそのモジュールの__POAのモジュールもImportします。
 -n、--ignore-times
       (再生のみ)ログに記録されたタイムスタンプを無視して一定の周期でログデータ
       を再生します。周期を変える場合、--exec-rateを使ってください。
 -p、--play 再生モードにします。
 -r RATE、--rate=RATE
       (再生のみ)再生速度の倍数を指定します。
 -s START、--start=START
       (再生のみ)再生を始めるタイムスタンプまたはインデクスを指定します。ログの
       最初と最後のデータの間にすることは必須です。インデクスで指定する場合、
       --indexも指定してください。
 -t TIMEOUT、--timeout=TIMEOU
       記録または再生のタイムアウト時間を指定します。このオプションを使う場合、
       --startと--endを使うことはできません。
 -x EXEC_RATE、--exec-rate=EXEC_RATE
       コンポーネントの実行レートを指定します。単位はヘルツです。
 --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に出力されます。

  • ConsoleIn0.rtcコンポーネントのoutポートからのデータをファイルlog.rtlogに記録します。データストリームはnumbersという名前がつけられます。
     $ rtlog -f log.rtlog /localhost/ConsoleIn0.rtc:out.numbers
  • ログファイルlog.rtlogからnumbersというデータストリームを再生しConsoleOut0.rtc:inポートへ送ります。
     $ rtlog -f log.rtlog -p /localhost/ConsoleOut0.rtc:in.numbers
  • ログの情報を表示します。ログの開始時間、終了時間、データストリームなどが含まれています。
     $ rtlog -f log.rtlog -d
  • コンピューターの時計が”1292489690”になるまで記録し、終了します。
     $ rtlog -f log.rtlog -e 1292489690 /localhost/ConsoleIn0.rtc:out.numbers
  • 10個のデータを記録して終了します。
     $ rtlog -f log.rtlog -e 10 -i /localhost/ConsoleIn0.rtc:out.numbers
  • 10秒間記録して終了します。
     $ rtlog -f log.rtlog -t 10 /localhost/ConsoleIn0.rtc:out.numbers
  • "1292489690"のタイムスタンプから再生を始めます。
     $ rtlog -f log.rtlog -p -s 1292489690 /localhost/ConsoleOut0.rtc:in.numbers
  • 先頭のデータから”1292489700”のタイムスタンプまで再生します。
     $ rtlog -f log.rtlog -p -e 1292489700 /localhost/ConsoleOut0.rtc:in.numbers
  • "1292489690"のタイムスタンプから"1292489700"のタイムスタンプまで再生します.(大体10秒のデータ。)
     $ rtlog -f log.rtlog -p -s 1292489690 -e 1292489700 /localhost/ConsoleOut0.rtc:in.numbers
  • 5番目のデータから再生を始めます。
     $ rtlog -f log.rtlog -p -s 5 -i /localhost/ConsoleOut0.rtc:in.numbers
  • 最初のデータから10番目のデータまで再生します。
     $ rtlog -f log.rtlog -p -e 10 /localhost/ConsoleOut0.rtc:in.numbers
  • 5番目のデータから10番目のデータまで再生します。
     $ rtlog -f log.rtlog -p -s 5 -e 10 /localhost/ConsoleOut0.rtc:in.numbers
  • 先頭から10秒間のデータを再生します。
     $ rtlog -f log.rtlog -p -t 10 /localhost/ConsoleOut0.rtc:in.numbers
  • ログを5倍速で再生します。
     $ rtlog -f log.rtlog -p -r 5 /localhost/ConsoleOut0.rtc:in.numbers
  • ログを0.2倍速で再生します。
     $ rtlog -f log.rtlog -p -r 0.2 /localhost/ConsoleOut0.rtc:in.numbers
  • 1秒に1個づつ再生して、最終的に5個のデータを再生します。
     $ rtlog -f log.rtlog -p -n 5 -x 1 /localhost/ConsoleOut0.rtc:in.numbers
  • 一つのファイルに三つのデータストリームを記録します。ストリームの名前はsensorとctrlとmotorです。
     $ rtlog -f log.rtlog /localhost/Sensor0.rtc:out.sensor /localhost/Controller0.rtc:out.ctrl /localhost/Motor0.rtc:out.motor
  • 一つのログから二つのデータストリームを再生し、それぞれ別々のポートへ送ります。
     $ rtlog -f log.rtlog -p /localhost/Sensor0.rtc:in.motor /localhost/Motor0.rtc:in.ctrl
  • 一つのログから二つのデータストリームを再生し同じポートへ送ります。
     $ rtlog -f log.rtlog -p /localhost/Controller0.rtc:in.sensor /localhost/Controller0.rtc:in.motor
  • ログから一つのデータストリームを再生し複数のポートへ送ります。
     $ rtlog -f log.rtlog -p /localhost/Sensor0.rtc:in.motor /localhost/Controller0.rtc:in.motor

rtls

書式

rtls [OPTION ...] [PATH]

概要

RTCツリーのディレクトリにあるオブジェクトをリストします。デフォルトは現在のワーキングディレクトリをリストします。

ロング形式の表示では、以下の項目も表示します。

 ステート
 ポートの数/接続されたポートの数
 インポートの数/接続されたインポートの数
 アウトポートの数/接続されたアウトポートの数
 サービスポートの数/接続されたサービスポートの数
 名前

オプション(OPTION)

 -l   詳細な情報を表示します
 -R、--recurse
       サブツリーの情報も表示します。
 --version プログラムのバージョン番号を表示します
 -h、--help    ヘルプを表示します
 -v、--verbose    より詳細な情報を出力します

-lオプションで表示されるフィールドの意味

  • lオプションを使用した場合、例えば、以下のように表示されます:
     C:\>rtls -l /localhost/OPENRTM-AIS57CA.host_cxt
     Active    0/0  0/0  0/0  0/0  ConfigSample0.rtc
     Inactive  1/0  0/0  1/0  0/0  ConsoleIn0.rtc
     Inactive  1/0  1/0  0/0  0/0  ConsoleOut0.rtc

ここで、表示される各行は

 STATE  AP/APC IP/IPC OP/OPC  SP/SPC NAME

となり、それぞれは以下の意味を持ちます:
STATE
Active、Inactive、Errorのどれかのコンポーネントの状態が表示されます。
APN/APC
ポートの総数/接続しているポートの数
IP/IPC
入力ポートの総数/接続している入力ポートの数
OP/OPC
出力ポートの総数/接続している出力ポートの数
SP/SPC
サービスポートの総数/接続しているサービスポートの数
NAME
ノードの名前(RTC名など)

パス

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に出力されます。

  • 現在のワーキングディレクトリにあるオブジェクトを表示します。
     $ rtls
  • RTCツリーのルートディレクトリをリストします。このコマンドはネームサーバーを表示します。
     $ rtls /
  • localhostネームサーバーに登録されているオブジェクトをリストします。
     $ rtls /localhost
  • localhostネームサーバーに登録されたすべてのオブジェクトをリストします。
     $ rtls -R /localhost
  • localhostネームサーバーの登録されたオブジェクトの詳細な情報をリストします。コンポーネントのステートなどを見ることが可能です。
     $ rtls -l /localhost
  • localhostネームサーバーに登録されたすべてのオブジェクトの詳細な情報をリストします。
     $ rtls -lR /localhost
  • 1秒ごとに現在のワーキングディレクトリのコンポーネントの状態を表示します。(POSIX環境のみ)
     $ watch -n 1 rtls -l

rtmgr

書式

rtmgr [OPTION ...] PATH

概要

共有ライブラリ(共有モジュール)やコンポーネントを追加/削除してマネジャーの制御をします。マネジャーにロードされた共有ライブラリ(モジュール)からコンポーネントをインスタンス化します。

マネジャーのコンフィグレーションはrtconfを使用して設定してください。マネジャーの情報はrtcatによって表示できます。

複数のコマンドが実行された場合、コマンドラインに入力した順番で実行されます。

オプション(OPTION)

 -c MOD_NAME、-create=MOD_NAME
        ロードされたモジュールからコンポーネントのインスタンスを作る。プロパティ―をモジュール名
        に追加することが可能です。プロパティ―は先頭に"?”をつけて指定します。
 -d INSTANCE_NAME、--delete=INSTANCE_NAME
        コンポーネントのインスタンスを終了して消去します。
 -l MOD_PATH、--load=MOD_PATH
        マネジャーにモジュールをロードする。初期化関数はモジュールパスの後に":"で分けて指定します。
 -u MOD_PATH_U、--unload=MOD_PATH_U
        マネジャーからモジュールを削除します。
 --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 に出します。

 $ rtmgr /localhost/manager.mgr -l /usr/local/lib/mycomp.so:mycomp_init
マネジャーに mycomp.so というモジュールをロードします。

 $ rtmgr /localhost/manager.mgr -c mycomp
mycomp というモジュールからコンポーネントのインスタンスを作ります。

 $ rtmgr /localhost/manager.mgr -d MyComp0
マネジャーに実行中の MyComp0 というコンポーネントを終了して消します。

 $ rtmgr /localhost/manager.mgr -u /usr/local/lib/mycomp.so
マネジャーから mycomp.so というモジュールを消します。

 $ rtmgr /localhost/manager.mgr -l /usr/local/lib/mycomp.so:mycomp_init  -c mycomp
マネジャーに mycomp.so というモジュールをロードしてそしてコンポーネン トのインスタンスを作ります。

rtprint

書式

rtprint [OPTION ...] PATH:PORT [PATH:PORT ...]

概要

アウトポートが送るデータを標準出力に表示します。

デフォルトでは、強制停止するまで受け取った値を表示します。受け取るデータ個数を指定することや、受け取りに行く頻度、また受け取りを止めるまでの時間間を指定することができです。個数を指定したが、その時点で、その個数分のデータが準備できてない場合は準備できるまで待ち、その個数分の回数表示をします。

Pythonのネイティブな機能では表示できないデータを表示するためにはフォーマッタ関数を使う必要があります。ユーザーがこの関数を定義することは可能です。フォーマッタ関数の入力引数は一つ (表示するべきデータ)で、例えば下記のように定義します。

 def rawpy(data):
     return data.__repr__()

ポートまでの接続はそのポートのデフォルト設定と互換性のある設定でなされれま す。

オプション(OPTION)

 -m MODULES、--mod=MODULES
        Importする必要があるPython モジュールを指定します。接続するポートのデータを表示するために必要とされている
        モジュー ルがロードされていない場合、このオプションで指定してください。 モジュールとそのモジュールの __POA
        のモジュールもimportします。
 -n NUMBER、--number=NUMBER
        読込む回数。
 -p PATHS、--path=PATHS
        モジュールのサーチパス。PythonのPYTHONPATH変数に追加されます。
 -r RATE、--rate=RATE
        読みだし頻度(回/sec)。
 -t TIMEOUT、--timeout=TIMEOUT
        読み込み停止するまでの時間。このオプションを使う場合、--numberを使うことはできません。
 --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に出力されます。

  • ConsoleIn0.rtcのout ポートから出力データを表示します。
     $ rtprint /localhost/ConsoleIn0.rtc:out
  • ConsoleIn0.rtcのout ポートから5個のデータを表示します。
     $ rtprint /localhost/ConsoleIn0.rtc:out -n 5
  • ConsoleIn0.rtcのout ポートからのデータを5秒間表示します。
     $ rtprint /localhost/ConsoleIn0.rtc:out -t 5
  • ConsoleIn0.rtcのout ポートからのデータを5秒間、1秒で10回の頻度で読み、表示しま す。
     $ rtprint /localhost/ConsoleIn0.rtc:out -t 5 -r 10
  • ConsoleIn0.rtcのout ポートからの出力データをprintersモジュールのmy_formatter関数に送って結果を表示します。
     $ rtprint /localhost/ConsoleIn0.rtc:out#printers.my_formatter

rtpwd

書式

rtpwd

概要

現在の作業ディレクトリを表示します。

パス

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

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

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

環境変数

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に出力されます。

rtreset

書式

rtreset [OPTION ...] PATH [PATH ...]

概要

エラーステートにあるRTコンポーネントをリセットします。

オプション(OPTION)

 -e EC_INDEX、--exec_context=EC_INDEX
        このexecution contextの中のみでリセットする。ディフォルトは0。
 --version   プログラムのバージョン番号を表示して終了する
 -h、-help   ヘルプを表示して終了する
 -v、--verbose 冗長な情報を出力する [デフォルト: False]

パス

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に出力されます。

  • ConsoleOut0.rtcのすべてのEC上でリセットにする。
     $ rtreset /localhost/local.host_cxt/ConsoleOut0.rtc
  • ConsoleOut0.rtcとConsoleIn0.rtcのすべてのEC上でリセットにする。
     $ rtreset ConsoleOut0.rtc ConsoleIn0.rtc
     System Message: WARNING/2 (rest/ja/rtreset.txt, line 44); backlink
     Inline literal start-string without end-string.
  • Motor0.rtcをIDが"2"のEC上でのみリセットする。
     $ rtreset -e 2 /localhost/local.host_cxt/Motor0.rtc

rtresurrect

書式

rtresurrect [OPTION ...] [RTSPROFILE_FILE]

概要

RTSProfileファイルをロードし、実行中のコンポーネントを使ってRTシステム を復元します。コンポーネントの間の接続とコンポーネントのコンフィグレーションパラメータはRTSProfileファイルに記述されたものが反映されます。 RTSProfileファイルに"required"とマークされておらず実行中ではないコンポーネントは無視されます。

ファイル名を指定しない場合、RTSProfile形式のデータをstdinから読込みます。

オプション(OPTION)

 --dry-run   復元するために何をするかを表示して終了する(実際には復元しない)
 -x, --xml   XMLフォーマットを使う
 -y, --yaml  YAMLフォーマットを使う
 --version   プログラムのバージョン番号を表示して終了する
 -h, --help  ヘルプを表示して終了する
 -v, --verbose 冗長な情報を出力する [デフォルト: False]

返り値

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

デバッグ情報とエラーはstderrに出力されます。

  • sys.rtsysというファイルを用いRTシステムを復元します。
     $ rtresurrect sys.rtsys
  • sys.rtsys というファイルを用いて復元処理をする場合に何がなされるかを表示します。(実際の復元処理は行われません。)
     $ rtresurrect sys.rtsys --dry-run

rtstart

書式

rtstart [OPTION ...] [RTSPROFILE_FILE]

概要

指定されたRTSProfileファイルの情報を元にすべてのコンポーネントをアクティブ化することによりRTシステムを起動します。コンポーネントはRTSProfileファイル内で指定された順番でアクティブ化されます。RTSProfileに”required"とマークされていないコンポ―ネントは無視されます。

ファイル名を指定されなかった場合、RTSProfile形式の情報でstdinから読込みます。

オプション(OPTION)

 --dry-run   実行する内容を表示する(実際には起動は行われない)
 -x、--xml   XMLフォーマットを使う
 -y、--yaml  YAMLフォーマットを使う
 --version   プログラムのバージョン番号を表示して終了する
 -h、--help  ヘルプを表示して終了する
 -v、--verbose より詳細な情報を出力します

ステート変更の実行シーケンス

RTSProfileファイルでは、RTシステムのコンポーネントの開始/停止の順番を指定するこが可能です。コンポーネント間で依存関係がある場合(例えば、あるコンポーネントの開始前に、別のコンポーネントの実行を開始する必要がある場合など)に、その順番を指定することが可能です。

rtstartとrtstopはこの情報を利用します。実際のところrtstartはActivationブロックに含まれている情報を利用し、rtstopはDeactivationブロックに記述されている情報を利用します。ここに記載された情報を元にしたコンポーネントのアクティブ化/非アクティブ化処理は全ての処理が完了するかエラーが発生するまで、継続します。

オプション--dry-runが指定された場合、このオプションが指定されなかった場足にどのような処理がなされるかを表示します。実際の処理はなされません。出力は以下のようになります。

 {1} Activate /localhost/ConfigSample0.rtc in execution context 0 (Required) 
 {2} [Order 1] Activate /localhost/Motor0.rtc in execution context 0 (Required)
 {4} [Order 3/Wait 5000ms] Activate /localhost/Controller0.rtc in execution context 0 (Required)
 {3} [Order 2/Sync to Motor0, Order 5/Sync to Controller0] Activate /localhost/Sensor0.rtc in execution context 0 (Required)
 {5} [Order 4/After ConfigSample0's action] Activate /localhost/ConsoleIn0.rtc in execution context 0 (Required)

各ラインの初めの括弧の中の数字は*アクションID*です。これらは実行の時にも表 示され、これによりアクションの簡単な識別が可能です。 その後に続く角括弧で囲まれた部分はその後に続くアクションを実行するにあたって必要な条件が示されていてその中で使われる特定の単語は以下のような意味を持っています:

Order
順番を管理します。RTSProfileのconditionのrts:sequence値で設定可能です。他の前条件がない場合、アクションはこの順番によってなされます。
Wait
指定された時間が経過した後にアクションが実行されます。
Sync
指定されたコンポーネントがターゲット状態になるまで待ち、その後指定のアクションが実行されます。
After
Syncと似てます。違いは、アクションが指定の別のコンポーネント上で行われるまで待つということです。言いかえれば、そのアクションは、指定の別コンポーネントが目標状態に達する前でも、そのコンポーネントでアクションが行われれば実行されます。

行のその後の部分はアクションの説明です。

返り値

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

デバッグ情報とエラーはstderrに出力されます。

  • sys.rtsysというファイルの情報を元にRTシステムを起動します。
     $ rtstart sys.rtsys
  • sys.rtsysというファイルの情報を元にRTシステムを起動するためにどのような処理がなされるかをを表示します。(実際の起動は行われません。)
     $ rtstart sys.rtsys --dry-run

rtstodot

書式

rtstodot [OPTION ...] [RTSPROFILE_FILE]

概要

GraphvizのdotフォーマットでRTシステムをグラフとして表示します。 ファイルが指定されていない場合RTSProfile形式で情報をstdinから読みます。

オプション(OPTION)

 -x、--xml   XMLフォーマットを使います
 -y、--yaml  YAMLフォーマットを使います
 --version   プログラムのバージョン番号を表示します
 -h、--help  ヘルプを表示します
 -v、--verbose より詳細な情報を出力します

返り値

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

デバッグ情報とエラーはstderrに出力されます。

  • sys.rtsysファイルを元にRTシステムを表示します。
     $ rtstodot sys.rtsys | dot -T xlib
  • sys.rtsysファイルを元にRTシステムを表示してEncapsulated PostScriptフォーマットでsys.epsファイルに保存します。
     $ rtstodot sys.rtsys | dot -T eps > sys.eps
  • 現在実行中のRTシステムを表示します。
     $ rtcryo | rtstodot | dot -T xlib

rtstop

書式H

rtstop [OPTIONS ...] [RTSPORFILE_FILE]

概要

RTSProfile形式のファイルを読み込み、その情報を用いて現在実行中のRTシステムのすべてのコンポーネントを非アクティブ化することによってRTシステムを停止します。コンポーネントはRTSProfileファイルで指定された順番で非アクティブ化が起こなわれます。RTSProfileファイル中で”required"とマークされていないコンポーネントで実行中でないものは無視されます。

ファイルが指定されてない場合、RTSProfile情報をstdinから読みます。

オプション

 --dry-run  処理の内容を表示します(実際の処理ー非アクティブ化は行われません)。
 -x、--xml   XMLフォーマットを使います。
 -y、--yaml  YAMLフォーマットを使います。
 --version   プログラムのバージョン番号を表示します。
 -h、--help  ヘルプを表示します。
 -v、--verbose より詳細な情報を出力します。

ステート変更の実行シーケンス

RTSProfileファイルでは、RTシステムのコンポーネントの開始/停止の順番を指定するこが可能です。コンポーネント間で依存関係がある場合(例えば、あるコンポーネントの開始前に、別のコンポーネントの実行を開始する必要がある場合など)に、その順番を指定することが可能です。

rtstartとrtstopはこの情報を利用します。実際のところrtstartはActivationブロックに含まれている情報を利用し、rtstopはDeactivationブロックに記述されている情報を利用します。ここに記載された情報を元にしたコンポーネントのアクティブ化/非アクティブ化処理は、全ての処理が完了するか、エラーが発生するまで継続します。

オプション--dry-runが指定された場合、このオプションが指定されなかった場足にどのような処理がなされるかを表示できます。実際の処理はなされません。出力の例を以下に示します。

 {1} Activate /localhost/ConfigSample0.rtc in execution context 0 (Required) 
 {2} [Order 1] Activate /localhost/Motor0.rtc in execution context 0 (Required)
 {4} [Order 3/Wait 5000ms] Activate /localhost/Controller0.rtc in execution context 0 (Required)
 {3} [Order 2/Sync to Motor0, Order 5/Sync to Controller0] Activate /localhost/Sensor0.rtc in execution context 0 (Required)
 {5} [Order 4/After ConfigSample0's action] Activate /localhost/ConsoleIn0.rtc in execution context 0 (Required)

各ラインの初めの括弧の中の数字は*アクションID*です。これらは実行の時にも表 示され、これによりアクションの簡単な識別が可能になります。 その後に続く角括弧で囲まれた部分はその後に続くアクションを実行するにあたって必要な条件が示されていてその中で使われる特定の単語は以下のような意味を持っています:

Order
順番を管理します。RTSProfileのconditionのrts:sequence値で設定可能です。他の前条件がない場合、アクションはこの順番によってなされます。
Wait
指定された時間が経過した後にアクションが実行されます。
Sync
指定されたコンポーネントがターゲット状態になるまで待ち、その後指定のアクションが実行されます。
After
Syncと似てます。違いは、アクションが指定の別コンポーネント上行われるまで待つということです。言いかえれば、そのアクションは、指定の別コンポーネントが目標状態に達する前でも、そのコンポーネントでアクションが行われれば実行されます。

行のその後の部分はアクションの説明です。

返り値

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

デバッグ情報とエラーはstderrに出力されます。

$ rtstop sys.rtsys sys.rtsysというファイルの情報を元にRTシステムを停止します。

$ rtstop sys.rtsys --dry-run sys.rtsysというファイルの情報を元にRTシステムの停止処理をする場合、どのような処理がなされるかを表示します。(実際には停止処理は行われません。)

rtteardown

書式

 rtteardown [OPTION ...] [RTSPROFILE_FILE]

概要

RTSProfileファイルに記述された接続情報を用いて、動作中のRTシステムの接続を削除します。

ファイル名を指定しなかった場合、RTSProfile情報をstdinから読みこみます。

オプション

 --dry-run   実行する内容を表示します(実際には削除は行われません)。
 -x、--xml   XMLフォーマットを使います。
 -y、--yaml   YAMLフォーマットを使います。
 --version   プログラムのバージョン番号を表示します。
 -h、--help  ヘルプを表示します。
 -v、--verbose より詳細な情報を出力します。

返り値

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

デバッグ情報とエラーはstderrに出力されます。

  • sys.rtsysファイルの情報を用いて現在実行中のRTシステムの接続を削除します。
     $ rtteardown sys.rtsys
  • sys.rtsysファイルの情報を用いて現在実行中のRTシステムの接続を削除する場合、どのようなことがなされるかを表示します。(実際には、削除は行われません。)
     $ rtteardown sys.rtsys --dry-run

rtctreeモジュール

rtctree は Python で RTコンポーネントの管理をするためのライブラリです。

概要

rtctree は簡単な API で RTコンポーネントの管理をするための Python用のライブラリです。開発者は CORBA の API を知らなくとも、他のプログラムから、RTコンポーネントのシステムを管理することができます。 コンポーネントを activate したり deactivate したり、コンポーネント間の接続を行うことが可能です。

このソフトウエアは NEDO (独立行政法人 新エネルギー・産業技術総合開発機構) の次世代ロボット知能化技術開発プロジェクトの支援により、独立行政法人産業技術総合研究所によって開発されています。

必要条件

  • ominorb-py 及び omniidl と omniidl用の Python モジュールが必要となります。
  • Python 2.5 以下では存在しない機能を使うので、Python 2.6 以上が必要となります。
  • Ubuntu 9.04 を使っていたら、手動で Python 2.6 をインストールすることが必要となります。そのため、Ubuntu 9.04 以上をおすすめします。

インストール

インストールはいくつかの方法が利用可能です。

  • リポジトリ(参照:以下のリポジトリ)またはソースアーカイブからダウンロード後、適当なディレクトリーで解凍し、インストールする:
    1. ソースを展開する。
       $ cd /home/blurgle/src/
       $ tar -xvzf rtctree-2.0.0.tar.gz
    2. setup.pyを実行する。
       $ python setup.py install
    3. 必要に応じて、環境変数を設定します。これはデフォルトで設定されていますが、設定されていない場合は自分で設定する必要があります。Windows上では、Python の site-packages ディレクトリーが PYTHONPATH 環境変数に、Python スクリプトのディレクトリが PATH 環境変数に設定されていることを確認してください。通常、これらは C:\Python26\Lib\site-packages\C:\Python26\Scripts\ です(PythonがC:\Python26\にインストールされた場合)。
  • Windows ではインストーラーの使用を推奨します。setup.py を利用すれば結果より容易に設定することができます。ただし、環境によってはさらに環境変数の設定が必要な場合があります。

環境変数

以下の環境変数が使われます。

RTCTREE_ORB_ARGS ORB作成時に与えるセミコロンで区切られた引数のリスト。設定することは必要となりません。
RTCTREE_NAMESERVERS セミコロンで区切った RTC ツリーのためのネームサーバーのアドレスのリスト。この変数に書いたサーバーはツリーに追加します。設定することは必要となりません。

普通の場合、RTCTREE_ORB_ARGS を設定することは必要となりません。RTCTREE_NAMESERVERS を設定したら、rtctree を使うときにもっと便利となります。例えば、Bash シェルでしたら:

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

RTC ツリー

ライブラリの主要部分は RTC ツリーです。

 import rtctree.tree
 tree = rtctree.tree.RTCTree()
これはネーミングコンテキスト、コンポーネントおよびマネージャを取得するためにネームサーバ〜を検索して作成したファイルシステムのようなツリーです。通常のファイルシステムを扱う場合とまったく同じように扱うことができます。ツリーはすべての既知のネームサーバーに登録されたネーミングコンテキスト、マネージャ、およびコンポーネントをツリー構造で表します。

 \  
 |-+localhost
 | |-+naming_context
 | | |--ConsoleIn0.rtc
 | | |--ConsoleOut0.rtc
 | |
 | |--another_naming_context
 | |--Sensor0.rtc
 |
 |-+192.168.0.5
   |--Motor0.rtc
   |--Controller0.rtc

ツリー内の各ディレクトリーは、通常のネーミングコンテキストまたはネームサーバーのルートコンテキストです。ネームサーバーのルートコンテキストは NameServer クラスで示します。また、ネーミングコンテクストは 'Directory クラスで示し、マネージャは Manager'' クラスで示します。

ネームサーバーは、ルートディレクトリーからのディレクトリーとして扱われます。その下はファイルとサブディレクトリーです。サブディレクトリーはルートコンテクストの下のネーミングコンテクスト及びマネージャを示します。

ファイルはコンポーネントとマネージャです。コンポーネントは Componentクラスで示します。

コンポーネントオブジェクトが表しているコンポーネントに関するさまざまな情報を格納します。コンポーネントを activate や deactivate したり、コンポーネントのポートを管理したり、ポートを接続したり、構成設定を設定したりができます。

マネージャで新しいコンポーネントインスタンスを作ったり、コンポーネントを消したりことができます。

ツリー内のすべてのノードにも、それらが表すオブジェクトには、CORBA オブジェクトの参照を格納します。このオブジェクトにアクセスすることで、IDL のメソッドを呼び出すことができます。もし現在 rtctree で実現不可能な機能があったとしても、この CORBA オブジェクトを利用し IDL メソッドを直接的に呼び出すことができます。

ツリーの構築

ツリーのファクトリ関数の引数(create_tree())は、ツリーを構築するための解析対象となるネームサーバーを指定します。詳しくは当該関数のドキュメンテーションに参照してください。一般的に、ネームサーバーのアドレスのリストまたはパスのリストを渡してツリーを構築することができます。環境変数 RTCTREE_NAMESERVERS もチェックされます。

パス

ツリー内のノードはパスで指定されます。パスはストリングのリストです。一つ右のレベルは、左のものより1レベル深くなります。絶対パスは、ツリーオブジェクトを指定するために必要となります。もしパスがノード以下に存在する場合、ノードからの相対パス指定も可能です。

これらのパス文字列は、ファイルシステムパス指定と似ています。ツリーのルートは/で示します(Windowsの場合は\)。最初のレベルはネームサーバーのアドレスです。その下のレベルはコンポーネント、マネージャ及びネーミングコンテクスト(ディレクトリーとしてしめす)です。parse_pathと言う関数は文字列のパスを RTC ツリー用のパスに変更します。

例えば、以下のパス:

 /localhost/naming_context/ConsoleIn0.rtc
localhost上で起動しているネームサーバーのnaming_contextの下に登録された ConsoleIn0.rtc と言うコンポーネントを示します。ツリーからそのコンポーネントのオブジェクトを取得したい時、パスを parse_path で Python のリストに変更する必要があります。
 ['/', 'localhost', 'naming_context', 'ConsoleIn0.rtc']

ヘルパー関数

以下は RTCTree クラス及びさまざまなノードクラスのためのヘルパー関数です。以下はすべての API を示しているわけではありません。Doxygen で記述されたAPIのドキュメンテーションを参照してください。例は rtcshell のソースを参照してください。

RTCTree.has_path ツリーのパスがあるかどうかをチェックします。コンポーネントの存在をチェックするには、この関数を使うと便利です。
RTCTree.get_node ツリーからノードを取得します。コンポーネント、ディレクトリなどを取得するためにこの関数を使ってください。
RTCTree.is_component パスはコンポーネントを指しているかどうかを調べます。ノードクラスはis_componentという同じ機能のプロパティーを持っています。is_directoryis_manager及びis_nameserverという関数およびプロパティーもあります。
RTCTree.iterate() ツリーのすべてのノードに同じ関数を実行します。すべての結果はリストとして返されます。例はrtcshellのrtlsを参照してください。
Node.children ノードのすべての子ノード。例:ディレクトリーの下のコンポーネントのリストを取得するために利用することができます。
Node.full_path ツリーのルートからこのノードまでのパス。
Node.name ノードの名前。例:ディレクトリの名前。
Node.parent_name ノードの親の名前。
Node.root このノードのツリーのルートノード。返されたオブジェクトでツリーのほとんどすべての機能ができます。
Component.activate_in_ec() コンポーネントをactivateします。通常は ec_index は 0 で構いません。
Component.deactivate_in_ec() コンポーネントをdeactivateします。
Component.reset_in_ec() コンポーネントをresetします。
Component.state_in_ec() あるexecution contextでコンポーネントのステートを得ます。
Component.alive コンポーネントがaliveかどうかをチェックします。
Component.owned_ecs コンポーネントが持っているexecution contextのリストです。
Component.participating_ecs コンポーネントが使っているexecution contextのリストです。
Component.state コンポーネントのステートです。
Component.state_string 文字列にしたコンポーネントのステートです。
Component.disconnect_all() コンポーネントのすべてのポートのすべての接続を切断します。
Component.get_port_by_name() コンポーネントのポートを名前で探す。
Component.ports コンポーネントのポートのリストです。入力ポート、出力ポート、及びサービスポートのリストが含まれ、かつ現在接続状態のポートのリストも取得できます。
Component.object コンポーネントのCORBAのLightweightRTObjectオブジェクトです。
Component.activate_conf_set コンフィグレーションセットをactivateします。
Component.set_conf_set_value コンフィグレーションセットの変数を設定します。
Component.active_conf_set 現在のactiveコンフィグレーションセットです。
Component.active_conf_set_name 現在のactiveコンフィグレーションセットの名前です。
Component.conf_sets コンフィグレーションセットのリストです。
Port.connect() このポートを別のポートに接続します。
Port.disconnect_all() このポートのすべての接続を切断します。
Port.get_connection_by_dest() このポートの接続を他のポートで探します。
Port.get_connection_by_name() このポートの接続を名前で探します。
Port.connections このポートの接続リストです。
Port.is_connected このポートは接続の状態かどうかをチェックします。
Port.name ポートの名前です。
Port.object このポートのCORBAのPortServiceオブジェクトです。
Port.name ポートのオーナー(通常はComponentオブジェクト)です。
Port.porttype ポートの種類(DataInPortDataOutPort及びCorbaPort)。
Connection.disconnect() この接続を切断します。
Connection.ports この接続のソースや目的ポートのリストです。
ConfigurationSet.has_param() このセットに変数があるかどうかをチェックします。
ConfigurationSet.set_param() このセットの変数を設定します。
ExecutionContext.activate_component() このexecution contextでコンポーネントをactivateします。
ExecutionContext.deactivate_component() このexecution contextでコンポーネントをdeactivateします。
ExecutionContext.reset_component() このexecution contextでコンポーネントをresetします。
ExecutionContext.get_component_state() このexecution contextの中のコンポーネントのステートをとります。
ExecutionContext.running このexecution contextは起動しているかどうかをチェックします。
Manager.create_component() 新しいコンポーネントインスタンスを作ります。
Manager.delete_component() コンポーネントインスタンスを削除します。
dict_to_nvlist() PythonのdictをCORBAのnamevalueリストに変更します。
nvlist_to_dict() CORBAのnamevalueリストをPythonのdictに変更します。

APIのスタイル

rtctreeはPythonの標準スタイルに従います。PEP8に参照してください。

最も重要な点は、プライベートな内部API関数はアンダースコア(「_」)で始まることです。アンダースコアで始まる関数はクラス外から証すべきではありません。もし使用した場合には、未定義の振る舞いを引き起こす可能性があります。アンダースコアで始まらず、docstringがある関数だけを使ってください。

リポジトリ

最新版のソースはgithubでGitのリポジトリにあります。「Download source」をクリックしてダウンロードをすることができます。「git clone」を使うこともできます。パッチを送りたがったら、この方法がおすすめします。

 $ git clone git://github.com/gbiggs/rtctree.git

より詳細なドキュメンテーションとサンプル

より詳細なドキュメンテーションはDoxygenで記述されたドキュメンテーションを参照してください。

サンプルはrtshellのソースを参照してください。これらはRTSystemEditorで実現可能なことをrtctreeで行う方法のほぼ全てを示しています。

Changelog

3.0

  • 例外を警告にしました。
  • ゾンビの扱いを改善しました。
  • ゾンビ検出マネージャ。
  • コンポジットコンポーネントの情報を得るAPIを追加しました。
  • ポートからIDによってコネクションを得るAPIを追加しました。
  • ORBを渡すAPIを追加しました。
  • パスフォーマッタを追加しました。
  • 例外を読みやすく表示するようにしました。
  • パフォーマンスの向上
  • 解析するパスを制限する機能を追加しました。
  • ゾンビノードを追加しました。
  • コンポーネントを終了するAPIを追加しました。
  • create_rtctree()関数を削除しました。RTCTree()を使ってください。
  • remove_node()APIを追加しました。
  • node.full_path をリストに変更し、node.full_path_str を追加しました。

2.0

  • 実行コンテキストに関してより多くの情報を解析するようにしました。
  • ORBオブジェクトを外部から与えられるようにしました。
  • reparse_connections()関数をpublicにしました。
  • ノードで使用されているORBを取得するための新しいAPIを追加しました。
  • コンテキストから名前をアンバインドするための新しいAPIを追加しました。
  • より多くのCORBAオブジェクトへのアクセスを可能にしました。
  • ゾンビの認識効率が向上しました。
  • 未知なCORBAオブジェクトの扱い方を修正しました。
  • オーナーが未知なポートの扱い方を修正しました。
  • rtctreeオブジェクトをスレッドセーフにするためのロックを追加しました。
  • ツリーのオブジェクトを再ロードするためのAPIを追加しました。
  • 適切なinheritence取り扱いのためにinit関数を修正しました。
  • 特定のECの中のコンポーネントの状態を得るための新しいAPIを追加しました。
  • 特定のECの中のコンポーネントの状態を更新するための新しいAPIを追加しました。

rtsprofileモジュール

rtsprofile は Python で RTSProfile 仕様を利用するためのライブラリです。

概要

rtsprofile は RTシステムプロファイル(RTSProfile)の仕様のインタフェースライブラリです。 この仕様は完全な RTシステムを記述し、システムを復元することや管理することができます。XML も YAML を利用可能です。

このソフトウエアは NEDO (独立行政法人 新エネルギー・産業技術総合開発機構) の次世代ロボット知能化技術開発プロジェクトの支援により、独立行政法人産業技術総合研究所によって開発されています。

必要条件

  • Python 2.5 以下では存在しない機能を使うので、Python 2.6 以上が必要となります。
  • Ubuntu 9.04 を使っていたら、手動で Python 2.6 をインストールする必要があります。Ubuntu 9.04 以上をおすすめします。

インストール

インストールはいくつかの方法が利用可能です。

  • リポジトリ(参照:以下のリポジトリ)またはソースアーカイブからダウンロード後、適当なディレクトリーで解凍し、インストールする:
    1. ソースを展開する。
       $ cd /home/blurgle/src/
       $ tar -xvzf rtsprofile-2.0.0-tar.gz
    2. setup.pyを実行する。
       $ python setup.py install
    3. 必要に応じて、環境変数を設定します。これはデフォルトで設定されていますが、設定されていない場合は自分で設定する必要があります。 Windows上では、Python の site-packages ディレクトリーが PYTHONPATH 環境変数に、Python スクリプトのディレクトリーが PATH 環境変数に設定されていることを確認してください。 通常、これらは C:\Python26\Lib\site-packages\C:\Python26\Scripts\ です(PythonがC:\Python26\にインストールされた場合)。
  • Windows ではインストーラーの使用を推奨します。setup.py を利用すれば結果より容易に設定することができます。ただし、環境によってはさらに環境変数の設定が必要な場合があります。

使い方

ライブラリは RtsProfle のクラスを提供します。このクラスのインスタンスを作った後、RTSProfile のファイルを渡すことで完全な RTシステムプロファイルが作られます。 もしくは、手動で既存の RTシステムの RTシステムプロファイルを作成し、ファイル名を渡し、そのファイルに RTSProfile を保存します。

クラスの情報は Python の property でアクセスします。メソッドではありません。

API の詳細は Doxygen で構成されたドキュメンテーションを参照してください。

テストの実行

ソースにサンプルファイルとテストのスクリプトが含めています。以下のようなコマンドで実行が可能です。

 $ python test/test.py ./test/rtsystem.xml
 $ python test/test.py ./test/rtsystem.yaml

PYTHONPATH の値によって、テストはインストールされた rtsprofile を使う可能性はあります。

API naming conventions

rtsprofile は Python の標準スタイルに従います。PEP8に参照してください。

最も重要な点は、プライベートな内部 API 関数はアンダースコア(「_」)で始まることです。アンダースコアで始まる関数はクラス外から証すべきではありません。 もし使用した場合には、未定義の振る舞いを引き起こす可能性があります。アンダースコアで始まらず、docstring がある関数だけを使ってください。

より詳細なドキュメンテーションとサンプル

より詳細なドキュメンテーションは Doxygen で記述されたドキュメンテーションを参照してください。

サンプルはrtshellのソースを参照してください。

リポジトリ

最新版のソースはgithubでGitのリポジトリにあります。「Download source」をクリックしてダウンロードをすることができます。 「git clone」を使うこともできます。パッチを送るなら、この方法がおすすめします。

 $ git clone git://github.com/gbiggs/rtsprofile.git

Changelog

2.0

  • Message Sending の情報の解析を修正しました。
  • PrecedingCondition のタイムアウトのデータ型を整数にしました。
  • YAML フォーマットを使えるようにしました。
  • テストを追加しました。
  • Preceding Conditions のデフォルトを"SYNC"に変更しました。
  • バグフィクス