各 Data Distribution Service for Real-Time Systems (DDS) アプリケーションはデータを共有するので、アプリケーション用の共有データを定義する必要があります。さらに DDS アプリケーション用にキー属性を設定する必要があります。この属性は、topicStruct をそのタイプとして宣言するトピックに複数のデータが含まれる場合があることを示します。キー属性は、異なるインスタンスを区別します。
このレッスンでは、topicStruct 要素を定義してから、キー属性を追加します。
topicStruct は、トピック内の単一のインスタンスを定義するフィールドのグループ、すなわち構造体です。その topicStruct にキーがある条件では、トピックは複数のインスタンスから構成される場合があります。キーは、topicStruct 内の単一のフィールド (属性) にするか、複数のフィールドの組み合わせにすることができます。標準トピックを作成する場合、トピック・タイプの名前を追加する必要があります。このチュートリアルの目的では、タイプは構造体です。
- 以下の手順で topicStruct を定義します。
- レッスン 2 で作成した TopicDiagram ダイアグラムの場合、topicStruct 要素を作成します。そのためには描画ツールバーの topicStruct アイコン
をクリックしてから、ダイアグラムの描画域をクリックします。
- topicStruct 要素の「フィーチャー」ウィンドウを開きます。
「一般」タブで、以下のように情報を入力します。
- 要素を MyTopicStruct と命名します。
- 「種類」フィールドで、「構造体」を選択します。
- 「属性」タブで、「<新規>」をクリックして、以下のそれぞれの属性を追加します。可能な場合、「タイプ」フィールドから対応するタイプを選択します。
- myBooleanAttribute。boolean 型
この属性の場合、以下の手順でタイプを手動で設定する必要があります。
- 「フィーチャー・ダイアログの起動」アイコン
をクリックして、属性の「フィーチャー」ウィンドウを開きます。
- 「既存のタイプの使用」チェック・ボックスを選択解除します。
- 「C++ の宣言」フィールドで、boolean と入力して、「OK」をクリックします。
- myLongAttribute。long 型
- myStringAttribute。string 型
このタイプを設定するには、myBooleanAttribute の場合と同じ方法を使用します。
- myDoubleAttribute。double 型
- myLongSequenceAttribute。long 型で、多重度が * に設定。多重度を設定するには、この属性の「フィーチャー」ウィンドウを開き、「多重度」 フィールドで、* を選択してから、「OK」をクリックします。
「属性」タブは、下図のようになっています。
- topicStruct の「フィーチャー」ウィンドウを閉じます。
- 以下の手順でキー属性を追加します。
注: キーは複数の属性の組み合わせとすることができますが、このチュートリアルではキー属性を 1 つだけ使用します。
- ブラウザーで、MyTopicStruct topicStruct を右クリックして、とクリックします。
- キー属性の「フィーチャー」ウィンドウを開きます。「一般」タブで、以下のように情報を入力します。
- 属性を myKeyAttribute と命名します。
- 型を long に設定して、「OK」をクリックします。
ブラウザーでは、MyTopicStruct は、下図のようになっています。