データポート間、サービスポート間の接続について説明します。
データポートの接続で、「InPort」と「OutPort」を接続します。これらの間をドラッグ&ドロップでつなぐと以下のダイアログが表示されます。なお、初期表示時には「Buffer」の設定項目は隠れています。
ダイアログの項目と条件は以下のとおりです。
№ | ダイアログ項目名 | 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 は任意の文字列を入力できるようにしています。任意の文字列が入力可能な項目には、「任意入力可」と表示されます。
サービスポート間の接続では、「ServicePort」と「ServicePort」を接続します。これらの間をドラッグ&ドロップでつなぐと以下のダイアログが表示されます。
ダイアログの項目と条件は以下のとおりです。
№ | ダイアログ項目名 | 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)しない場合、接続ダイアログにて警告を表示します。