データポート間、サービスポート間の接続について説明します。
データポートの接続で、「InPort」と「OutPort」を接続します。これらの間をドラッグ&ドロップでつなぐと以下のダイアログが表示されます。なお、初期表示時には「Buffer」の設定項目は隠れています。
ダイアログの項目と条件は以下のとおりです。
②~⑤までの項目について、RT System Editor は指定可能な値を、それぞれのポートの値リストから文字列のマッチングを行って作成します。 双方のポートに対して ANY しか指定されていないような場合には、入力可能な値を判断することができません。 このため、双方のポートに ANY が含まれている場合に、RT System Editor は任意の文字列を入力できるようにしています。任意の文字列が入力可能な項目には、「任意入力可」と表示されます。
サービスポート間の接続では、「ServicePort」と「ServicePort」を接続します。これらの間をドラッグ&ドロップでつなぐと以下のダイアログが表示されます。
サービスポートの場合、必須となる接続の条件はありません。しかし、 ServicePort 間での PortInterfaceProfile が完全にマッチング(※1)しない場合、接続ダイアログにて警告を表示します。
モーションエディタ/シミュレータ
動力学シミュレータ
統合開発プラットフォーム
産総研が提供するRTC集
東京オープンソースロボティクス協会
ネットワーク分散環境でデータ収集用ソフトウェアを容易に構築するためのソフトウェア・フレームワーク
データポート間、サービスポート間の接続について説明します。
データポート間接続
データポートの接続で、「InPort」と「OutPort」を接続します。これらの間をドラッグ&ドロップでつなぐと以下のダイアログが表示されます。なお、初期表示時には「Buffer」の設定項目は隠れています。
ダイアログの項目と条件は以下のとおりです。
dataport.data_type
それぞれのポートで互いに送受信可能なデータ型から選択します。ただし、Any を含む場合は相手ポートのどのような値も許容します。
dataport.interface_type
それぞれのポートで互いにサポートしているインターフェース種別から選択します。ただし、Any を含む場合は相手ポートのどのようなインターフェースも許容します。
dataport.dataflow_type
それぞれのポートで互いにサポートしているデータフロー型から選択します。ただし、Any を含む場合は相手ポートのどのようなデータフローも許容します。
dataport.subscription_type
RTシステム設計者が想定する、もしくはRTCが動作するRTミドルウェア上でサポートされているサブスクリプション種別を指定します。
それぞれのポートで互いにサポートしているサブスクリプション種別から選択します。ただし、Anyを含む場合は相手のどのようなサブスクリプション種別も許容します。
dataport.push_interval
サブスクリプション種別が「Periodic」な場合にデータの送信周期を指定します。送信周期は正数値(小数可)で指定します。
dataport.publisher.push_policy
all:バッファ内のデータを一括送信
fifo:バッファ内のデータをFIFOで1個ずつ送信
skip:バッファ内のデータを間引いて送信
new:バッファ内のデータの最新値を送信(古い値は捨てられます。)
dataport.publisher.skip_count
ダイアログの初期表示時は隠れています。
⑮
(OutPort/InPort)
buffer.length
⑯
(OutPort/InPort)
buffer.write.full_policy
overwrite:データを上書きします。
do_nothing:何もしません。
block:ブロックします。
block を指定した場合、次の timeout 値を指定すれば、指定時間後書き込み不可能であればタイムアウトします。 デフォルトは overwrite (上書き)です。
⑰
(OutPort/InPort)
buffer.write.timeout
デフォルトは 1.0 [sec]です。0.0を設定した場合はタイムアウトしません。
⑱
(OutPort/InPort)
buffer.read.empty_policy
readblock:最後の要素を再読み出します。
do_nothing:何もしません。
block:ブロックします。
block を指定した場合、次の timeout 値を指定すれば、指定時間後読み出し不可能であればタイムアウトします。 デフォルトは readbackです。
⑲
(OutPort/InPort)
buffer.read.timeout
デフォルトは 1.0 [sec]です。0.0 を設定した場合はタイムアウトしません。
㉑
Name
[追加] ボタンで項目の追加、[削除] ボタンで項目の削除が可能です。
入力された項目は NVList の形式で ConnectorProfileのProperties に設定されます。
同一 Key の Property は設定する事はできません。
②~⑤までの項目について、RT System Editor は指定可能な値を、それぞれのポートの値リストから文字列のマッチングを行って作成します。 双方のポートに対して ANY しか指定されていないような場合には、入力可能な値を判断することができません。 このため、双方のポートに ANY が含まれている場合に、RT System Editor は任意の文字列を入力できるようにしています。任意の文字列が入力可能な項目には、「任意入力可」と表示されます。
サービスポート間接続
サービスポート間の接続では、「ServicePort」と「ServicePort」を接続します。これらの間をドラッグ&ドロップでつなぐと以下のダイアログが表示されます。
ダイアログの項目と条件は以下のとおりです。
ダイアログの初期表示時は隠れています。
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はインターフェースのインスタンス名
Consumer の ID をキーとして設定
⑧
Name
[追加] ボタンで項目の追加、[削除] ボタンで項目の削除が可能です。
入力された項目は NVList の形式で ConnectorProfile の Properties に設定されます。
同一 Key の Property は設定する事はできません。
サービスポートの場合、必須となる接続の条件はありません。しかし、 ServicePort 間での PortInterfaceProfile が完全にマッチング(※1)しない場合、接続ダイアログにて警告を表示します。
※1 ここでいう完全なマッチングとは、PortInterfaceProfile の「type」が同じで、「polarity」がお互いに PROVIDED と REQUIred になっていること。 また余りなく(PortInterfaceProfile はそれぞれのポートに複数存在する)すべての PortInterfaceProfile がマッチングすることを指しています。