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

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

データポート間接続

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

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

fig29ConnectDialog2_ja.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 properties "buffer.length" バッファの長さ
Buffer full policy properties "buffer.write.full_policy" バッファへのデータ書き込み時に、バッファフルだった場合の挙動。overwrite、do_nothing、blockから選択します。
overwrite:データを上書きします。
do_nothing:何もしません。
block:ブロックします。
block を指定した場合、次の timeout 値を指定すれば、指定時間後書き込み不可能であればタイムアウトします。 デフォルトは overwrite (上書き)です。
Buffer write timeout properties " buffer.write.timeout" バッファへのデータ書き込み時に、タイムアウトアウトイベントを発生させるまでの時間(単位:秒)
デフォルトは 1.0 [sec]です。0.0を設定した場合はタイムアウトしません。
Buffer empty policy properties "buffer.read.empty_policy” バッファからのデータ読み出し時に、バッファが空だった場合の挙動。readblock、do_nothing、blockから選択します。
readblock:最後の要素を再読み出します。
do_nothing:何もしません。
block:ブロックします。
block を指定した場合、次の timeout 値を指定すれば、指定時間後読み出し不可能であればタイムアウトします。 デフォルトは readbackです。
Buffer read timeout properties " buffer.read.timeout" バッファからのデータ読み出し時に、タイムアウトイベントを発生させるための時間(単位:秒)
デフォルトは 1.0 [sec]です。0.0を設定した場合はタイムアウトしません。

サービスポート間接続

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

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


fig30ServiceConnectDailog2_ja.png
サービスポートのコネクタプロファイルダイアログ(詳細)

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

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

ダイアログ項目名 ConnectorProfile 必要条件
Name Name 特になし
properties "rtc_iname"
properties "port_name"
properties "interfaces.if_iname"
インターフェース接続対象のサービスポートに複数のサービスインターフェースが定義されていた場合に有効。どのインターフェースを接続するかを指定できます。


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

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


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

ダウンロード

最新バージョン : 2.0.1-RELESE

統計

Webサイト統計
ユーザ数:2160
プロジェクト統計
RTコンポーネント307
RTミドルウエア35
ツール22
文書・仕様書2

Choreonoid

モーションエディタ/シミュレータ

OpenHRP3

動力学シミュレータ

OpenRTP

統合開発プラットフォーム

産総研RTC集

産総研が提供するRTC集

TORK

東京オープンソースロボティクス協会

DAQ-Middleware

ネットワーク分散環境でデータ収集用ソフトウェアを容易に構築するためのソフトウェア・フレームワーク