rtprint

ポートからのデータをターミナルに表示する

Author: Geoffrey Biggs and contributors
Date: 2010-10-24
Copyright: EPL-1.0
Version: 3.0
Manual section:1
Manual group:User commands

書式

rtprint [options] <path1>:<port1> [<path2>:<port2>...]

概要

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

デフォルトは最初の値のみを表示します。複数の値を表示すことや定期的に表 示することも可能です。一回の実行ループで一つだけのポートにデータがあっ た場合、一定の回数プリントする目的のためのプリントとしてカウントされま す。

Pythonは表示できないデータを表示するためにフォーマッタ関数を使うことが 必要です。ユーザもこの関数を提供することは可能です。フォーマッタ関数は 一つの変数(表示するべきデータ)をもらいます:

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

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

オプション

-m MODULES, --mod=MODULES
 Import する必要がある Python モジュール。値が必要としているモジュー ルが自動的にロードされていない場合、このオプションで指定してください。 モジュールとそのモジュールの __POA のモジュールも import します。
-n MAX, --number=MAX
 読み込む回数の制限。
-p PATHS, --path=PATHS
 モジュールのサーチパス。Pythonの PYTHONPATH 変数に追加する。
-r RATE, --rate=RATE
 実行レート。
-t TIMEOUT, --timeout=TIMEOUT
 読み込む時間の制限。このオプションを使う場合、 --number を使うことは できません。
--version プログラムのバージョン番号を表示して終了する
-h, --help ヘルプを表示して終了する
-v, --verbose 冗長な情報を出力する [デフォルト: False]

パス

rtshellパス でRTCツリーのオブジェクトを示します。パスは オブジェクトのアドレスです。ネームサーバとネームコンテクストは ダイレクトリで、マネージャとRTコンポーネントはファイルです。POSIXの cat 等のコマンドと同じように、コマンドに渡したパスはrtshellの ワーキングディレクトリに追加されます。rtshellの現在のワーキングディレクトリは RTCSH_CWD という環境変数に保存されて、 rtcwd というコマンドで 変更することができます。

利用できるパスはコマンド実行時のネームサーバによって変わります。 RTCSH_NAMESERVERS という環境変数の値に記録されたネームサーバとパスに 指定された ネームサーバを組み合わせて提供します。

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

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

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

path:port.name#formatter

例:

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

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

「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シェルの場合、以下のコマンド は localhost192.168.0.1:65346 および example.com にあるネーム サーバをいつもrtshellで利用できるようにします。

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

返り値

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

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

$ rtprint /localhost/ConsoleIn0.rtc:out

ConsoleIn0.rtcout ポートから最初の値を表示します。

$ rtprint /localhost/ConsoleIn0.rtc:out -n 5

ConsoleIn0.rtcout ポートから最初の5個の値を表示します。

$ rtprint /localhost/ConsoleIn0.rtc:out -t 5

ConsoleIn0.rtcout ポートからの値を5秒間表示します。

$ rtprint /localhost/ConsoleIn0.rtc:out -t 5 -r 10

ConsoleIn0.rtcout ポートからの値を5秒間、1秒で10回表示しま す。

$ rtprint /localhost/ConsoleIn0.rtc:out#printers.my_formatter

ConsoleIn0.rtcout ポートの最初の値を printers モジュールの my_formatter 関数に送って結果を表示します。

--mod--path の例はrtinject(1)を参照してください。

参照

rtcat (1), rtinject (1), rtlog (1)