由于 "实时系统数据分发服务" (DDS) 应用程序共享数据,因此必须为应用程序定义共享数据。 将具有多个实例的数据结构应该具有一个或多个键属性。 键属性可区分不同实例。 在本课程中,您定义 topicStruct 元素,然后添加键属性。
关于本任务
topicStruct 是一组字段或结构,用于定义主题中的单个实例。 在其 topicStruct 具有键的情况下,主题可以由多个实例组成。 键可以是 topicStruct 中的一个字段或属性,也可以是多个字段的组合。 创建标准主题时,必须添加主题类型的名称。 对于本教程,类型为 struct。注: 类型为 topicStruct 的元素应该在此上下文中使用,而不是类型为 idlType 的元素,因为当您设置主题的类型时, Rhapsody® 仅允许您从模型中定义的 topicStruct 元素中进行选择。
程序
- 定义 topicStruct:
- 对于在课程 2 中创建的 TopicDiagram 图,创建 topicStruct 元素: 单击绘图工具栏上的 topicStruct 图标
,然后单击图的绘图区域
- 打开 topicStruct 元素的 "特征" 窗口。 在 常规 选项卡上,将元素命名为
MyTopicStruct
- 在 属性 选项卡上,单击 <New> 以添加以下每个属性。 如果可能,请从 类型 字段中选择相应的类型。
- myBooleanAttribute,类型为 boolean
对于此属性,必须手动设置类型:
- 通过单击 "调用特征对话框" 图标
打开属性的 "特征" 窗口
- 清除 使用现有类型 复选框
- 在 C++ 声明 字段中,输入 boolean,然后单击 确定
- myLongAttribute,类型为 long
- myStringAttribute,类型为 string。 要设置类型,请使用与用于 myBooleanAttribute的方法相同的方法。
- myDoubleAttribute,类型为 double
- myLongSequenceAttribute,类型为 long 且多重性设置为 *。 要设置多重性,请打开此属性的 "特征" 窗口; 在 多重性 字段中,选择 *; 然后单击 确定
- 关闭 topicStruct的 "特征" 窗口。
- 添加键属性:
注: 虽然键可以是多个属性的组合,但本教程仅使用一个键属性。
- 在浏览器中,右键单击 MyTopicStruct topicStruct ,然后单击 。
- 打开键属性的 "特征" 窗口。 在 常规 选项卡上,输入以下信息:
- 将属性命名为 myKeyAttribute
- 从构造型列表中,选择 key 构造型。
- 将类型设置为 Int32,然后单击 确定
在浏览器中,
MyTopicStruct 类似于下图。