Author: | Geoffrey Biggs and contributors |
---|---|
Date: | 2015-08-13 |
Copyright: | LGPL3 |
Version: | 4.0 |
Manual section: | 1 |
Manual group: | User commands |
rtcon [options] <path 1> <path 2> [<path 3> ...]
二つ以上のデータポートやサービスポートを接続します。
データポートの場合に有効なプロパティは:
- dataport.data_type (ポートのデータ型) - dataport.dataflow_type (データの流れ方法) - dataport.interface_type (ポートのプロトコル) - dateport.serializer.cdr.endian
サービスポートの場合に有効なプロパティは:
- port.port_type
データポートの場合、以下のプロパティも使えます。プロパティの間に依存が ありますので、プロパティによって他のプロパティは影響がない時もあります。
プロパティ | 値 | 依存 |
---|---|---|
dataport.inport.buffer.length | <integer> | |
dataport.inport.buffer.read.timeout | <float> in seconds | |
dataport.inport.buffer.read.empty_policy | readback, do_nothing, block | |
dataport.inport.buffer.write.timeout | <float> in seconds | |
dataport.inport.buffer.write.full_policy | overwrite, do_nothing, block | |
dataport.outport.buffer.length | <integer> | |
dataport.outport.buffer.read.timeout | <float> in seconds | |
dataport.outport.buffer.read.empty_policy | readback, do_nothing, block | |
dataport.outport.buffer.write.timeout | <float> in seconds | |
dataport.outport.buffer.write.full_policy | overwrite, do_nothing, block | |
dataport.subscription_type | flush, new, periodic | dataport.dataflow_typeがpush |
dataport.publisher.push_policy | all, fifo, skip, new | dataport.subscription_typeがflushではない |
dataport.push_rate | <float> in Hz | dataport.subscription_typeがperiodic |
dataport.publisher.skip_count | <integer> | dataport.publisher.push_policyがskip |
OpenRTMのバージョンによっては、ほかのプロパティも有効な場合があります。
-i ID, --id=ID | コネクションのID |
-n NAME, --name=NAME | |
コネクションの名 | |
-p PROPERTIES, --property=PROPERTIES | |
コネクションのプロパティ |
--version | プログラムのバージョン番号を表示して終了する |
-h, --help | ヘルプを表示して終了する |
-v, --verbose | 冗長な情報を出力する [デフォルト: False] |
rtshell は パス でRTCツリーのオブジェクトを示します。パスは オブジェクトのアドレスです。ネームサーバとネームコンテクストは ダイレクトリで、マネージャとRTコンポーネントはファイルです。POSIXの cat 等のコマンドと同じように、コマンドに渡したパスはrtshellの ワーキングディレクトリに追加されます。rtshellの現在のワーキングディレクトリは RTCSH_CWD という環境変数に保存されて、 rtcwd というコマンドで 変更することができます。
利用できるパスはコマンド実行時のネームサーバによって変わります。 RTCSH_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.name#formatter
例:
/localhost/blurg.host_cxt/comp0.rtc:input.stuff#a_printer
作られるポートの名前は stuff で、データは a_printer という関数で ターミナルに表示するように指定してます。( a_printer の関数はPythonが利 用可能な場所に存在する必要があります。普通はユーザがモジュールで提供します。) 作られたポートは comp0.rtc の input というポートに接続します。
「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 に出します。
$ rtcon /localhost/ConsoleIn0.rtc:out /localhost/ConsoleOut0.rtc:in
デフォルトプロパティを使って ConsoleIn0.rtc の out ポートを ConsoleOut0.rtc の in ポートに接続します。
$ rtcon Motor0.rtc:out Sensor0.rtc:in --property dataport.dataflow_type=pull
Pull 型のコネクションによって Motor0.rtc の out ポートを Sensor0.rtc の in ポートに接続します。
$ rtcon Motor0.rtc:out Sensor0.rtc:in -i con1 -n motor_data
Motor0.rtc の out ポートを Sensor0.rtc の in ポートに接続しま す。コネクション名は motor_data でIDは con1 になります。
$ rtcon ConsoleIn0.rtc:out ConsoleOut0.rtc:in ConsoleOut1.rtc:in
デフォルトプロパティを使って ConsoleIn0.rtc の out ポートを ConsoleOut0.rtc の in ポートと ConsoleOut1.rtc の in ポートに接続します。
rtcat (1), rtdis (1)