eSEAT: rtcmdコマンドの使い方
rtcmdコマンドは、eSEATに付属のOpenRTM-aistのRTCのコネクションの生成、アクティベート、デアクティベートや各ポートの情報取得などの基本的なオペレーションを行うためのユーティリティソフトです。
rtshellのように高機能ではないのですが、最低限のオペレーションを実行することができます。
なお、rtcmdでコマンドの補完機能を使うには、readlineモジュールが必要です。Windowsで使うときは、PyReadlineを PyPIでインストールしてください。(setup_py2.pyに必要モジュールになっています)
rtcmdの起動
setup_py2.pyでインストールすれば、/usr/local/bin (Windowsでは、<PythonのHome>\Scripts)にインストールされます。
起動は、下記の通りです。
# rtcmd
Welcome to RtCmd
=>
ただし、NameServerが起動済みでないとエラーになります。Linuxの場合には、通常、OSの起動時にNameServerも起動していますが、Ubuntu18.04では不具合があるそうです。また、Windowsでも自動起動していませんので、手動で起動する必要があります。
rtcmdでできること
rtcmdでは、RTCの簡単な操作を行うことができます。<tab>キーでコマンドの補完機能も使えますので、プロンプトが表示されたら<tab>を押下すればコマンドの一覧が表示されます。
補完機能は、Windowsでは正しく動作しない場合があります。ヒストリー機能は正常に動作しています。
主なコマンドは以下の通りです。
- list
- localhostのNameServerにアクセスして、RTCの一覧を取得し、表示します。'-l'オプションで詳細表示(ポートやコネクションの同時表示)になります。また、アクティベートしているRTCには、末尾に '*'が付加されます。NameServerに名前があってRTCが落ちている場合(皆さんは、Zonbeと呼んでいますが)は、'[]'で囲まれています。
- get_ports <RTC名>
- 指定されたRTCのポートの一覧とプロパティのが表示されます。
- get_state <RTC名>
- 指定されたRTCの状態(Activate or Deactivate)が表示されます。
- get_connectors <RTC名>:<ポート名>
- 現在接続中のコネクションの一覧が表示されます。
- get_connection <RTC1>:<Port> <RTC2>:<Port>
- 指定した2つのポート間のコネクションを表示します。
- connect <RTC1>:<Port> <RTC2>:<Port>
- 指定した2つのポート間のコネクションを生成します。
- disconnect <RTC1>:<Port> <RTC2>:<Port>
- 指定した2つのポート間のコネクションを切断します。
- activate <RTC1>[ <RTC2> <RTC3> ...]
- 指定されたRTC群の状態をActivateにします。
- deactivate <RTC1>[ <RTC2> <RTC3>...]
- 指定されたRTC群の状態をDeactivateにします。
- terminate<RTC1>[ <RTC2> <RTC3> ...]
- 指定されたRTC群の状態を終了させます。
- unbind <Name>
- Nameで指定された名前をNameServerから除去します。
- bye
- rtcmdを終了します。