システムエディタ(ポート間の接続 編)

データポート間、サービスポート間の接続について説明します。

データポート間接続

データポートの接続で、「InPort」と「OutPort」を接続します。これらの間をドラッグ&ドロップでつなぐと以下のダイアログが表示されます。なお、初期表示時には「Buffer」の設定項目は隠れています。

fig57DataConnectDialog.png
データポートのコネクタプロファイルダイアログ


ダイアログの項目と条件は以下のとおりです。

データポート接続のダイアログ項目と必要条件

ダイアログ項目名 ConnectorProfile 必要条件
Name name 特になし
Data Type <<properties>>
dataport.data_type
このコネクタで接続されているデータポート間で送受信するデータ型を指定します。
それぞれのポートで互いに送受信可能なデータ型から選択します。ただし、Any を含む場合は相手ポートのどのような値も許容します。
Instance Type <<properties>>
dataport.interface_type
RTシステム設計者が想定する、もしくは RTC が動作する RTミドルウェア上でサポートされているインターフェース種別を指定します。
それぞれのポートで互いにサポートしているインターフェース種別から選択します。ただし、Any を含む場合は相手ポートのどのようなインターフェースも許容します。
Dataflow Type <<properties>>
dataport.dataflow_type
RTシステム設計者が想定する、もしくは RTC が動作する RTミドルウェア上でサポートされているデータフロー型を指定します。
それぞれのポートで互いにサポートしているデータフロー型から選択します。ただし、Any を含む場合は相手ポートのどのようなデータフローも許容します。
Subscription Type <<properties>>
dataport.subscription_type
[Dataflow Typeの値がPushの時に必要な条件]
RTシステム設計者が想定する、もしくはRTCが動作するRTミドルウェア上でサポートされているサブスクリプション種別を指定します。
それぞれのポートで互いにサポートしているサブスクリプション種別から選択します。ただし、Anyを含む場合は相手のどのようなサブスクリプション種別も許容します。
Push Rate(Hz) <<properties>>
dataport.push_interval
[Dataflow Typeの値が”Push”でかつSubscription Typeが”Periodic”の時に必要な条件]
サブスクリプション種別が「Periodic」な場合にデータの送信周期を指定します。送信周期は正数値(小数可)で指定します。
Push Policy <<properties>>
dataport.publisher.push_policy
データ送信ポリシー。[Dataflow Typeの値が”Push”でかつSubscription Typeが”Periodic”の時に必要な条件]all、fifo、skip、new から選択します。
all:バッファ内のデータを一括送信
fifo:バッファ内のデータをFIFOで1個ずつ送信
skip:バッファ内のデータを間引いて送信
new:バッファ内のデータの最新値を送信(古い値は捨てられます。)
Skip Count <<properties>>
dataport.publisher.skip_count
送信データスキップ数。[Push Policy の値が”skip”の時に必要な条件]バッファ内のデータがこの設定値で間引されて送信されます。
詳細 チェックボックスをチェックすると、入出力ポートのバッファの詳細設定項目が表示されます。
ダイアログの初期表示時は隠れています。

Buffer length
(OutPort/InPort)
<<properties>>
buffer.length
バッファの長さ

Buffer full policy
(OutPort/InPort)
<<properties>>
buffer.write.full_policy
バッファへのデータ書き込み時に、バッファフルだった場合の挙動。overwrite、do_nothing、block から選択します。
overwrite:データを上書きします。
do_nothing:何もしません。
block:ブロックします。
block を指定した場合、次の timeout 値を指定すれば、指定時間後書き込み不可能であればタイムアウトします。 デフォルトは overwrite (上書き)です。

Buffer write timeout
(OutPort/InPort)
<<properties>>
buffer.write.timeout
バッファへのデータ書き込み時に、タイムアウトアウトイベントを発生させるまでの時間(単位:秒)
デフォルトは 1.0 [sec]です。0.0を設定した場合はタイムアウトしません。

Buffer empty policy
(OutPort/InPort)
<<properties>>
buffer.read.empty_policy
バッファからのデータ読み出し時に、バッファが空だった場合の挙動。readblock、do_nothing、block から選択します。
readblock:最後の要素を再読み出します。
do_nothing:何もしません。
block:ブロックします。
block を指定した場合、次の timeout 値を指定すれば、指定時間後読み出し不可能であればタイムアウトします。 デフォルトは readbackです。

Buffer read timeout
(OutPort/InPort)
<<properties>>
buffer.read.timeout
バッファからのデータ読み出し時に、タイムアウトイベントを発生させるための時間(単位:秒)
デフォルトは 1.0 [sec]です。0.0 を設定した場合はタイムアウトしません。

21
Name/Value <<properties>>
Name
任意のプロパティを設定
[追加] ボタンで項目の追加、[削除] ボタンで項目の削除が可能です。
入力された項目は NVList の形式で ConnectorProfileのProperties に設定されます。
同一 Key の Property は設定する事はできません。

②~⑤までの項目について、RT System Editor は指定可能な値を、それぞれのポートの値リストから文字列のマッチングを行って作成します。 双方のポートに対して ANY しか指定されていないような場合には、入力可能な値を判断することができません。 このため、双方のポートに ANY が含まれている場合に、RT System Editor は任意の文字列を入力できるようにしています。任意の文字列が入力可能な項目には、「任意入力可」と表示されます。

fig58ConnectParamAny.png
任意入力可のときの表示


サービスポート間接続

サービスポート間の接続では、「ServicePort」と「ServicePort」を接続します。これらの間をドラッグ&ドロップでつなぐと以下のダイアログが表示されます。

fig59ServiceConnectDailog.png
サービスポートのコネクタプロファイルダイアログ


ダイアログの項目と条件は以下のとおりです。

サービスポート接続のダイアログ項目と必要条件

ダイアログ項目名 ConnectorProfile 必要条件
Name Name 特になし
詳細 チェックボックスをチェックすると、Consumer/Provider の詳細設定項目が表示されます。
ダイアログの初期表示時は隠れています。
Consumer 接続するサービスポートに設定されたインターフェースの Consumer のリストから選択します。
ComboBox の選択リストには<コンポーネント名>:<インターフェース名>:<インスタンス名>の形式で表示されます。
追加された Consumer/Provider のペアは、ConsumerのIDをプロパティのキー、Provider の ID をプロパティの値として、ConnectorProfile に格納されます。
なお、Consumer/Provider の ID は以下の形式で表現します。
<rtc_name>.port.<port_name>.<if_polality>.<if_tname>.<if_iname>
- rtc_nameはコンポーネント名
- port_name はポート名
- if_polalityは Consumer は「required」、Provider は「provided」
- if_tnameはインターフェースのタイプ名
- if_inameはインターフェースのインスタンス名
Provider <<properties>>
Consumer の ID をキーとして設定
Consumerと同様、接続するサービスポートに設定されたインターフェースの Provider のリストから選択します。
Add Consumer/Provider の新規エントリを追加します。
Delete 選択中の Consumer/Provider のエントリを削除します。

Name/Value <<properties>>
Name
任意のプロパティを設定
[追加] ボタンで項目の追加、[削除] ボタンで項目の削除が可能です。
入力された項目は NVList の形式で ConnectorProfile の Properties に設定されます。
同一 Key の Property は設定する事はできません。

サービスポートの場合、必須となる接続の条件はありません。しかし、 ServicePort 間での PortInterfaceProfile が完全にマッチング(※1)しない場合、接続ダイアログにて警告を表示します。

fig60ServicePortWarningDialog.png
サービスポートの接続ダイアログの警告表示


※1 ここでいう完全なマッチングとは、PortInterfaceProfile の「type」が同じで、「polarity」がお互いに PROVIDED と REQUIred になっていること。 また余りなく(PortInterfaceProfile はそれぞれのポートに複数存在する)すべての PortInterfaceProfile がマッチングすることを指しています。

Download

latest Releases : 2.0.0-RELESE

2.0.0-RELESE Download page

Number of Projects

Choreonoid

Motion editor/Dynamics simulator

OpenHRP3

Dynamics simulator

OpenRTP

Integrated Development Platform

AIST RTC collection

RT-Components collection by AIST

TORK

Tokyo Opensource Robotics Association

DAQ-Middleware

Middleware for DAQ (Data Aquisition) by KEK