《智能网联汽车用数据分发服务(DDS)测试方法》_第1页
《智能网联汽车用数据分发服务(DDS)测试方法》_第2页
《智能网联汽车用数据分发服务(DDS)测试方法》_第3页
《智能网联汽车用数据分发服务(DDS)测试方法》_第4页
《智能网联汽车用数据分发服务(DDS)测试方法》_第5页
已阅读5页,还剩80页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

ICS32.020

CCST40

团体标准

T/CSAEXX–xxxx

智能网联汽车用数据分发服务(DDS)

测试方法

Testmethodsofdatadistributionservice(DDS)forintelligentvehicles

(征求意见稿)

在提交反馈意见时,请将您知道的该标准所涉必要专利信息连同支持性文件一并附上。

XXXX-XX-XX发布XXXX-XX-XX实施

中国汽车工程学会发布

T/CSAEXX–xxxx

智能网联汽车用数据分发服务(DDS)测试方法

1范围

本文件规定了对采用了DDS中间件的设备或系统的测试方法,主要针对DDS在智能汽车领域的应

用。其它工业领域可参考使用。

本文件适用于对采用了DDS中间件的车载电子控制单元与相关系统的测试。

2规范性引用文件

下列文件中的内容通过文中的规范性引用而构成本文件必不可少的条款。其中,注日期的引用文件,

仅该日期对应的版本适用于本文件;不注日期的引用文件,其最新版本(包括所有的修改单)适用于本

文件。

OMG数据分发服务v1.4(DataDistributionService(DDS)Version1.4)

OMG数据分发服务线路互操作性线路协议规范——实时发布订阅协议v2.5(TheReal-time

Publish-SubscribeProtocolDDSInteroperabilityWireProtocol(DDSI-RTPS)Specification

Version2.5)

OMG数据分发服务——安全v1.1(DDSSecurityVersion1.1)

OMG数据分发服务——可扩展动态话题类型v1.3(ExtensibleandDynamicTopicTypesfor

DDSVersion1.3)

3术语和定义

下列术语和定义适用于本文件。

3.1

数据分发服务DDS

OMG制定发布的以数据为中心的用于分布式实时通信系统的软件中间件技术规范。

3.2

发布者Publisher

DDS标准中定义的发送数据的对象。

[来源:OMG数据分发服务v1.4]

3.3

订阅者Subscriber

DDS标准中定义的接收数据的对象。

[来源:OMG数据分发服务v1.4]

1

T/CSAEXX–xxxx

3.4

实时发布订阅协议Real-timePublish-Subscribe

DDS的标准之一,定义了互操作性线路协议,全称OMG数据分发服务线路互操作性线路协议规范—

—实时发布订阅协议,简称RTPS协议。

3.5

节点Entity

RTPS协议中定义的基本功能单元。

3.6

参与者Participant

RTPS协议中定义的属于同一个域(Domain)的节点。

3.7

端点Endpoint

RTPS协议中定义的发送数据或接收数据的节点。

3.8

写入者Writer

RTPS协议中定义的发送数据的端点。

3.9

读取者Reader

RTPS协议中定义的接收数据的端点。

3.10

RTPS消息RTPSMessage

RTPS协议中定义的可以在端点之间传送的信息报文。

3.11

RTPS消息头部RTPSHeader

每个RTPS消息包含一个头部。

3.12

RTPS子消息RTPSSubmessage

每个RTPS消息包含若干子消息。

3.13

子消息头部SubmessageHeader

每个子消息包含一个头部。

2

T/CSAEXX–xxxx

3.14

子消息元素SubmessageElements

组成子消息内容的部分,一个子消息的内容可包含零至若干个子消息元素。

3.15

被测设备DUT

作为被测试对象的物理设备。

3.16

链路伙伴LinkPartner

实现了DDS功能,在测试中与被测设备建立数据传输链路,配合测试仪表进行测试的物理设备。

4缩略语

下列缩略语适用于本文件。

API应用编程接口ApplicationProgrammingInterface

DDS数据分发服务DataDistributionService

DCPS以数据为中心的发布订阅DataCentricPublish-Subscribe

DUT被测设备DeviceUnderTest

ECU电子控制单元ElectronicControlUnit

LP链路伙伴LinkPartner

OMG对象管理组ObjectManagementGroup

QoS服务质量QualityofService

RTPS实时发布订阅Real-timePublish-Subscribe

SPDP简单参与者发现协议SimpleParticipantDiscoveryProtocol

SEDP简单端点发现协议SimpleEndpointDiscoveryProtocol

3

T/CSAEXX–xxxx

5RTPS协议一致性测试

RTPS协议一致性测试过程中需要配置的参数见附录C。

5.1RTPS消息格式测试

5.1.1RTPS消息头部格式

5.1.1.1测试目标

验证RTPS消息头部字段的格式。

5.1.1.2测试概要

验证RTPS消息头部各字段的格式是否符合标准要求。

5.1.1.3适用条件

所有支持DDS协议的设备。

5.1.1.4前置条件

参见附录B前置条件1。

5.1.1.5测试环境

参见附录A测试环境1。

5.1.1.6测试步骤

1)DUT创建一个RTPSWriter,测试仪表创建与DUT相同Topic的RTPSReader;

2)设置测试仪表开始捕捉DUT发送的消息;

3)启动DUT和测试仪表,待其建立连接;

4)测试仪表从收到的消息序列中提取RTPS消息头部包含的字段:protocol,version,

vendorId,guidPrefix。

5.1.1.7通过条件

步骤4):

protocol=<protocol>

version=<version>

vendorId=<vendorId>

guidPrefix=<guidPrefix>

5.1.2RTPS子消息格式–HeaderExtension子消息

5.1.2.1测试目标

验证HeaderExtension类型子消息格式。

5.1.2.2测试概要

验证DUT发送的HeaderExtension类型子消息的格式是否正确。

5.1.2.3适用条件

DUT支持RTPSv2.5及以上版本的设备。

4

T/CSAEXX–xxxx

5.1.2.4前置条件

参见附录B前置条件1。

5.1.2.5测试环境

参见附录A测试环境1。

5.1.2.6测试步骤

1)DUT创建一个RTPSWriter,测试仪表创建与DUT相同Topic的RTPSReader;

2)设置测试仪表开始捕捉DUT发送的消息;

3)启动DUT和测试仪表,待其建立连接;

4)DUT发送包含HeaderExtension子消息的RTPS消息;

5)测试仪表从收到的消息序列中提取HeaderExtension子消息;

6)从HeaderExtension子消息中提取子消息头部;

7)从HeaderExtension子消息中提取子消息内容。

5.1.2.7通过条件

步骤5):成功提取HeaderExtension子消息;

步骤6):子消息头部

submessageId=0x00;

flags:

ParamatersFlag=<ParamatersFlag>

ChecksumFlag_C1=<ChecksumFlag_C1>

ChecksumFlag_C2=<ChecksumFlag_C2>

Wextension8Flag=<Wextension8Flag>

UExtension4Flag=<UExtension4Flag>

TimestampFlag=<TimestampFlag>

LengthFlag=<LengthFlag>

EndiannessFlag=<EndiannessFlag>

submessageLength=<submessageLength>

步骤7):子消息内容

messageLength=<messageLength>,(仅当LengthFlag=1)

rtpsSendTimestamp=<rtpsSendTimestamp>,(仅当TimestampFlag=1)

uExtension4=<uExtension4>,(仅当UExtension4Flag=1)

wExtension8=<wExtension8>,(仅当Wextension8Flag=1)

messageChecksum=<messageChecksum>,(仅当<ChecksumFlag_C1,ChecksumFlag_C2>!=00)

parameters=<parameters>,(仅当ParamatersFlag!=0)

5.1.3RTPS子消息格式–AckNack子消息

5.1.3.1测试目标

验证AckNack类型子消息格式。

5.1.3.2测试概要

验证DUT发送的AckNack类型子消息的格式是否正确。

5

T/CSAEXX–xxxx

5.1.3.3适用条件

所有支持DDS协议的设备。

5.1.3.4前置条件

参见附录B前置条件1。

5.1.3.5测试环境

参见附录A测试环境1。

5.1.3.6测试步骤

1)DUT创建一个RTPSWriter,测试仪表创建与DUT相同Topic的RTPSReader;

2)设置测试仪表开始捕捉DUT发送的消息;

3)启动DUT和测试仪表,待其建立连接;

4)测试仪表从收到的消息序列中提取AckNack子消息;

5)从AckNack子消息中提取子消息头部;

6)从AckNack子消息中提取子消息内容。

5.1.3.7通过条件

步骤4):成功提取AckNack子消息;

步骤5):子消息头部

submessageId=0x06;

flags:

FinalFlag=<FinalFlag>

EndiannessFlag=<EndiannessFlag>

submessageLength=<submessageLength>

步骤6):子消息内容

readerId=<readerId>

writerId=<writerId>

readerSNState=<readerSNState>

count=<count>

5.1.4RTPS子消息格式–Data子消息

5.1.4.1测试目标

验证Data类型子消息格式。

5.1.4.2测试概要

验证DUT发送的Data类型子消息的格式是否正确。

5.1.4.3适用条件

所有支持DDS协议的设备。

5.1.4.4前置条件

参见附录B前置条件1。

6

T/CSAEXX–xxxx

5.1.4.5测试环境

参见附录A测试环境1。

5.1.4.6测试步骤

1)DUT创建一个RTPSWriter,测试仪表创建与DUT相同Topic的RTPSReader;

2)设置测试仪表开始捕捉DUT发送的消息;

3)启动DUT和测试仪表,待其建立连接;

4)DUT发送包含Data子消息的RTPS消息;

5)测试仪表从收到的消息序列中提取Data子消息;

6)从Data子消息中提取子消息头部;

7)从Data子消息中提取子消息内容。

5.1.4.7通过条件

步骤5):成功提取Data子消息;

步骤6):子消息头部

submessageId=0x15;

flags:

NonStandardPayloadFlag=<NonStandardPayloadFlag>

KeyFlag=<KeyFlag>

DataFlag=<DataFlag>

InlineQosFlag=<InlineQosFlag>

EndiannessFlag=<EndiannessFlag>

submessageLength=<submessageLength>

步骤7):子消息内容

extraFlags=0x0000;

octetsToInlineQos=<octetsToInlineQos>

readerId=<readerId>

writerId=<writerId>

writerSN=<writerSN>

inlineQos=<inlineQos>,(仅当InlineQosFlag=1)

serializedPayload=<serializedPayload>,(仅当KeyFlag=1或DataFlag=1)

5.1.5RTPS子消息格式–DataFrag子消息

5.1.5.1测试目标

验证DataFrag类型子消息格式。

5.1.5.2测试概要

验证DUT发送的DataFrag类型子消息的格式是否正确。

5.1.5.3适用条件

所有支持DDS协议的设备。

7

T/CSAEXX–xxxx

5.1.5.4前置条件

参见附录B前置条件1。

5.1.5.5测试环境

参见附录A测试环境1。

5.1.5.6测试步骤

1)DUT创建一个RTPSWriter,测试仪表创建与DUT相同Topic的RTPSReader;

2)设置测试仪表开始捕捉DUT发送的消息;

3)启动DUT和测试仪表,待其建立连接;

4)DUT发送包含DataFrag子消息的RTPS消息;

5)测试仪表从收到的消息序列中提取DataFrag子消息;

6)从DataFrag子消息中提取子消息头部;

7)从DataFrag子消息中提取子消息内容。

5.1.5.7通过条件

步骤5):成功提取DataFrag子消息;

步骤6):子消息头部

submessageId=0x16;

flags:

NonStandardPayloadFlag=<NonStandardPayloadFlag>

KeyFlag=<KeyFlag>

InlineQosFlag=<InlineQosFlag>

EndiannessFlag=<EndiannessFlag>

submessageLength=<submessageLength>

步骤7):子消息内容

extraFlags=0x0000;

octetsToInlineQos=<octetsToInlineQos>

readerId=<readerId>

writerId=<writerId>

writerSN=<writerSN>

fragmentStartingNum=<fragmentStartingNum>

fragmentsInSubmessage=<fragmentsInSubmessage>

fragmentSize=<fragmentSize>

dataSize=<dataSize>

inlineQos=<inlineQos>

serializedPayload=<serializedPayload>,(仅当InlineQosFlag=1)

5.1.6RTPS子消息格式–Gap子消息

5.1.6.1测试目标

验证Gap类型子消息格式。

8

T/CSAEXX–xxxx

5.1.6.2测试概要

验证DUT发送的Gap类型子消息的格式是否正确。

5.1.6.3适用条件

所有支持DDS协议的设备。

5.1.6.4前置条件

参见附录B前置条件1。

5.1.6.5测试环境

参见附录A测试环境1。

5.1.6.6测试步骤

1)DUT创建一个RTPSWriter,设置测试仪表开始捕捉消息;

2)DUT用如下QoS策略创建DataWriter:

reliability.kind=RELIABLE

durability.kind=TRANSIENT_LOCAL

history.kind=KEEP_ALL

3)启动DUT,发送5个DATA子消息;

4)测试仪表用如下QoS策略创建与DUT相同Topic的DataReader;

reliability.kind=RELIABLE

durability.kind=VOLATILE

history.kind=KEEP_ALL

5)待测试仪表与DUT建立连接;

6)测试仪表从收到的消息序列中提取DUT发送的Gap子消息;

7)从Gap子消息中提取子消息头部;

8)从Gap子消息中提取子消息内容。

5.1.6.7通过条件

步骤6):成功提取Gap子消息;

步骤7):子消息头部

submessageId=0x08;

flags:

FilteredCountFlag=<FilteredCountFlag>

GroupInfoFlag=<GroupInfoFlag>

EndiannessFlag=<EndiannessFlag>

submessageLength=<submessageLength>

步骤8):子消息内容

readerId=<readerId>

writerId=<writerId>

gapStart=1

gapList:

gapList.bitmapBase=6

9

T/CSAEXX–xxxx

gapList.numBits=0

gapStartGSN=<gapStartGSN>,(仅当GroupInfoFlag=1)

gapEndGSN=<gapEndGSN>,(仅当GroupInfoFlag=1)

filteredCount=<filteredCount>,(仅当FilteredCountFlag=1)

5.1.7RTPS子消息格式–Heartbeat子消息

5.1.7.1测试目标

验证Heartbeat类型子消息格式。

5.1.7.2测试概要

验证DUT发送的Heartbeat类型子消息的格式是否正确。

5.1.7.3适用条件

所有支持DDS协议的设备。

5.1.7.4前置条件

参见附录B前置条件1。

5.1.7.5测试环境

参见附录A测试环境1。

5.1.7.6测试步骤

1)DUT创建一个RTPSWriter,测试仪表创建与DUT相同Topic的RTPSReader;

2)设置测试仪表开始捕捉DUT发送的消息;

3)启动DUT和测试仪表,待其建立连接;

4)测试仪表从收到的消息序列中提取Heartbeat子消息;

5)从Heartbeat子消息中提取子消息头部;

6)从Heartbeat子消息中提取子消息内容。

5.1.7.7通过条件

步骤4):成功提取Heartbeat子消息;

步骤5):子消息头部

submessageId=0x07;

flags:

GroupInfoFlag=<GroupInfoFlag>

LivelinessFlag=<LivelinessFlag>

FinalFlag=<FinalFlag>

EndiannessFlag=<EndiannessFlag>

submessageLength=<submessageLength>

步骤6):子消息内容

readerId=<readerId>

writerId=<writerId>

firstSN=<firstSN>

10

T/CSAEXX–xxxx

lastSN=<lastSN>

count=<count>

currentGSN=<currentGSN>,(仅当GroupInfoFlag=1)

firstGSN=<firstGSN>,(仅当GroupInfoFlag=1)

lastGSN=<lastGSN>,(仅当GroupInfoFlag=1)

writerSet=<writerSet>,(仅当GroupInfoFlag=1)

secureWriterSet=<secureWriterSet>,(仅当GroupInfoFlag=1)

5.1.8RTPS子消息格式–HeartbeatFrag子消息

5.1.8.1测试目标

验证HeartbeatFrag类型子消息格式。

5.1.8.2测试概要

验证DUT发送的HeartbeatFrag类型子消息的格式是否正确。

5.1.8.3适用条件

所有支持DDS协议的设备。

5.1.8.4前置条件

参见附录B前置条件1。

5.1.8.5测试环境

参见附录A测试环境1。

5.1.8.6测试步骤

1)DUT创建一个RTPSWriter,测试仪表创建与DUT相同Topic的RTPSReader;

2)设置测试仪表开始捕捉DUT发送的消息;

3)启动DUT和测试仪表,待其建立连接;

4)DUT发送包含HeartbeatFrag子消息的RTPS消息;

5)测试仪表从收到的消息序列中提取HeartbeatFrag子消息;

6)从HeartbeatFrag子消息中提取子消息头部;

7)从HeartbeatFrag子消息中提取子消息内容。

5.1.8.7通过条件

步骤5):成功提取HeartbeatFrag子消息;

步骤6):子消息头部

submessageId=0x13;

flags:

EndiannessFlag=<EndiannessFlag>

submessageLength=<submessageLength>

步骤7):子消息内容

readerId=<readerId>

writerId=<writerId>

11

T/CSAEXX–xxxx

writerSN=<writerSN>

lastFragmentNum=<lastFragmentNum>

count=<count>

5.1.9RTPS子消息格式–InfoDestination子消息

5.1.9.1测试目标

验证InfoDestination类型子消息格式。

5.1.9.2测试概要

验证DUT发送的InfoDestination类型子消息的格式是否正确。

5.1.9.3适用条件

所有支持DDS协议的设备。

5.1.9.4前置条件

参见附录B前置条件1。

5.1.9.5测试环境

参见附录A测试环境1。

5.1.9.6测试步骤

1)DUT创建一个RTPSWriter,测试仪表创建与DUT相同Topic的RTPSReader;

2)设置测试仪表开始捕捉DUT发送的消息;

3)启动DUT和测试仪表,待其建立连接;

4)DUT发送包含InfoDestination子消息的RTPS消息;

5)测试仪表从收到的消息序列中提取InfoDestination子消息;

6)从InfoDestination子消息中提取子消息头部;

7)从InfoDestination子消息中提取子消息内容。

5.1.9.7通过条件

步骤5):成功提取InfoDestination子消息;

步骤6):子消息头部

submessageId=0x0e;

flags:

EndiannessFlag=<EndiannessFlag>

submessageLength=<submessageLength>

步骤7):子消息内容

guidPrefix=<GUIDPREFIX>

5.1.10RTPS子消息格式–InfoReply子消息

5.1.10.1测试目标

验证InfoReply类型子消息格式。

12

T/CSAEXX–xxxx

5.1.10.2测试概要

验证DUT发送的InfoReply类型子消息的格式是否正确。

5.1.10.3适用条件

所有支持DDS协议的设备。

5.1.10.4前置条件

参见附录B前置条件1。

5.1.10.5测试环境

参见附录A测试环境1。

5.1.10.6测试步骤

1)DUT创建一个RTPSWriter,测试仪表创建与DUT相同Topic的RTPSReader;

2)设置测试仪表开始捕捉DUT发送的消息;

3)启动DUT和测试仪表,待其建立连接;

4)DUT发送包含InfoReply子消息的RTPS消息;

5)测试仪表从收到的消息序列中提取InfoReply子消息;

6)从InfoReply子消息中提取子消息头部;

7)从InfoReply子消息中提取子消息内容。

5.1.10.7通过条件

步骤5):成功提取InfoReply子消息;

步骤6):子消息头部

submessageId=0x0f;

flags:

MulticastFlag=<MulticastFlag>

EndiannessFlag=<EndiannessFlag>

submessageLength=<submessageLength>

步骤7):子消息内容

unicastLocatorList=<unicastLocatorList>

multicastLocatorList=<multicastLocatorList>,(仅当MulticastFlag=1)

5.1.11RTPS子消息格式–InfoSource子消息

5.1.11.1测试目标

验证InfoSource类型子消息格式。

5.1.11.2测试概要

验证DUT发送的InfoSource类型子消息的格式是否正确。

5.1.11.3适用条件

所有支持DDS协议的设备。

13

T/CSAEXX–xxxx

5.1.11.4前置条件

参见附录B前置条件1。

5.1.11.5测试环境

参见附录A测试环境1。

5.1.11.6测试步骤

1)DUT创建一个RTPSWriter,测试仪表创建与DUT相同Topic的RTPSReader;

2)设置测试仪表开始捕捉DUT发送的消息;

3)启动DUT和测试仪表,待其建立连接;

4)DUT发送包含InfoSource子消息的RTPS消息;

5)测试仪表从收到的消息序列中提取InfoSource子消息;

6)从InfoSource子消息中提取子消息头部;

7)从InfoSource子消息中提取子消息内容。

5.1.11.7通过条件

步骤5):成功提取InfoSource子消息;

步骤6):子消息头部

submessageId=0x0c;

flags:

EndiannessFlag=<EndiannessFlag>

submessageLength=<submessageLength>

步骤7):子消息内容

protocolVersion=<PROTOCOLVERSION>

vendorId=<VENDORID>

guidPrefix=<GUIDPREFIX>

5.1.12RTPS子消息格式–InfoTimestamp子消息

5.1.12.1测试目标

验证InfoTimestamp类型子消息格式。

5.1.12.2测试概要

验证DUT发送的InfoTimestamp类型子消息的格式是否正确。

5.1.12.3适用条件

所有支持DDS协议的设备。

5.1.12.4前置条件

参见附录B前置条件1。

5.1.12.5测试环境

参见附录A测试环境1。

14

T/CSAEXX–xxxx

5.1.12.6测试步骤

1)DUT创建一个RTPSWriter,测试仪表创建与DUT相同Topic的RTPSReader;

2)设置测试仪表开始捕捉DUT发送的消息;

3)启动DUT和测试仪表,待其建立连接;

4)DUT发送包含InfoTimestamp子消息的RTPS消息;

5)测试仪表从收到的消息序列中提取InfoTimestamp子消息;

6)从InfoTimestamp子消息中提取子消息头部;

7)从InfoTimestamp子消息中提取子消息内容。

5.1.12.7通过条件

步骤5):成功提取InfoTimestamp子消息;

步骤6):子消息头部

submessageId=0x09;

flags:

InvalidateFlag=<InvalidateFlag>

EndiannessFlag=<EndiannessFlag>

submessageLength=<submessageLength>

步骤7):子消息内容

timestamp=<timestamp>,(仅当InvalidateFlag=0)

5.1.13RTPS子消息格式–NackFrag子消息

5.1.13.1测试目标

验证NackFrag类型子消息格式。

5.1.13.2测试概要

验证DUT发送的NackFrag类型子消息的格式是否正确。

5.1.13.3适用条件

所有支持DDS协议的设备。

5.1.13.4前置条件

参见附录B前置条件1。

5.1.13.5测试环境

参见附录A测试环境1。

5.1.13.6测试步骤

1)DUT创建一个RTPSWriter,测试仪表创建与DUT相同Topic的RTPSReader;

2)设置测试仪表开始捕捉DUT发送的消息;

3)启动DUT和测试仪表,待其建立连接;

4)DUT发送包含NackFrag子消息的RTPS消息;

5)测试仪表从收到的消息序列中提取NackFrag子消息;

6)从NackFrag子消息中提取子消息头部;

15

T/CSAEXX–xxxx

7)从NackFrag子消息中提取子消息内容。

5.1.13.7通过条件

步骤5):成功提取NackFrag子消息;

步骤6):子消息头部

submessageId=0x12;

flags:

EndiannessFlag=<EndiannessFlag>

submessageLength=<submessageLength>

步骤7):子消息内容

readerId=<readerId>

writerId=<writerId>

writerSN=<writerSN>

fragmentNumberState=<fragmentNumberState>

count=<count>

5.1.14RTPS子消息格式–Pad子消息

5.1.14.1测试目标

验证Pad类型子消息格式。

5.1.14.2测试概要

验证DUT发送的Pad类型子消息的格式是否正确。

5.1.14.3适用条件

所有支持DDS协议的设备。

5.1.14.4前置条件

参见附录B前置条件1。

5.1.14.5测试环境

参见附录A测试环境1。

5.1.14.6测试步骤

1)DUT创建一个RTPSWriter,测试仪表创建与DUT相同Topic的RTPSReader;

2)设置测试仪表开始捕捉DUT发送的消息;

3)启动DUT和测试仪表,待其建立连接;

4)DUT发送包含Pad子消息的RTPS消息;

5)测试仪表从收到的消息序列中提取Pad子消息;

6)从Pad子消息中提取子消息头部;

7)从Pad子消息中提取子消息内容。

5.1.14.7通过条件

步骤5):成功提取Pad子消息;

16

T/CSAEXX–xxxx

步骤6):子消息头部

submessageId=0x01

flags:

EndiannessFlag=<EndiannessFlag>

submessageLength=<submessageLength>

5.2RTPS读写操作测试

5.2.1尽力无状态写操作–发送DATA子消息

5.2.1.1测试目标

验证DUT尽力无状态写操作发送DATA子消息的操作是否正确。

5.2.1.2测试概要

验证DUT尽力无状态写操作发送DATA子消息的过程是否符合标准中定义的状态机。

5.2.1.3适用条件

DUT支持尽力无状态写操作。

5.2.1.4前置条件

参见附录B前置条件1。

5.2.1.5测试环境

参见附录A测试环境1。

5.2.1.6测试步骤

1)DUT创建尽力无状态RTPSWriter;

2)测试仪表创建尽力无状态RTPSReader,Topic与DUT相同;

3)设置测试仪表开始捕捉DUT发送的消息;

4)启动DUT和测试仪表,待其建立连接;

5)DUT发送至少10个DATA子消息;

6)测试仪表记录并验证从DUT收到的消息序列。

5.2.1.7通过条件

步骤6):成功收到DUT发送的DATA子消息;

步骤6):测试仪表收到的DATA子消息与步骤5)DUT发送的DATA子消息的数量和内容一致。

5.2.2尽力无状态写操作–发送GAP子消息

5.2.2.1测试目标

验证DUT尽力无状态写操作发送GAP子消息的操作是否正确。

5.2.2.2测试概要

验证DUT尽力无状态写操作发送GAP子消息的过程是否符合标准中定义的状态机。

17

T/CSAEXX–xxxx

5.2.2.3适用条件

DUT支持尽力无状态写操作。

5.2.2.4前置条件

参见附录B前置条件1。

5.2.2.5测试环境

参见附录A测试环境1。

5.2.2.6测试步骤

1)DUT创建尽力无状态RTPSWriter;

2)测试仪表用DUT的Topic创建一个Content-filteredTopics,实现两个filter:

filterA:过滤掉序列号3至5的消息;

filterB:只保留序列号3至5的消息;

3)测试仪表用以上filter分别创建一个尽力无状态RTPSReader;

4)设置测试仪表开始捕捉DUT发送的消息;

5)启动测试仪表;

6)启动DUT,待其与两个RTPSReader均建立连接;

7)DUT连续发送10个DATA子消息;

8)测试仪表从收到的消息序列中提取Gap子消息。

5.2.2.7通过条件

步骤8):收到GAP子消息。

5.2.3可靠无状态写操作–发送DATA子消息

5.2.3.1测试目标

验证DUT可靠无状态写操作发送DATA子消息的操作是否正确。

5.2.3.2测试概要

验证DUT可靠无状态写操作发送DATA子消息的过程是否符合标准中定义的状态机。

5.2.3.3适用条件

DUT支持可靠无状态写操作。

5.2.3.4前置条件

参见附录B前置条件1。

5.2.3.5测试环境

参见附录A测试环境1。

5.2.3.6测试步骤

1)DUT创建可靠无状态RTPSWriter;

2)测试仪表创建可靠无状态RTPSReader,Topic与DUT相同;

3)设置测试仪表开始捕捉DUT发送的消息;

18

T/CSAEXX–xxxx

4)启动DUT和测试仪表,待其建立连接;

5)DUT发送至少10个DATA子消息;

6)测试仪表记录并验证从DUT收到的消息序列。

5.2.3.7通过条件

步骤6):收到DUT发送的HEARTBEAT子消息;

步骤6):收到DUT发送的DATA子消息;

步骤6):测试仪表收到的DATA子消息与步骤5)DUT发送的DATA子消息的数量和内容一致。

5.2.4可靠无状态写操作–发送GAP子消息

5.2.4.1测试目标

验证DUT可靠无状态写操作发送GAP子消息的操作是否正确。

5.2.4.2测试概要

验证DUT可靠无状态写操作发送GAP子消息的过程是否符合标准中定义的状态机。

5.2.4.3适用条件

DUT支持可靠无状态写操作。

5.2.4.4前置条件

参见附录B前置条件1。

5.2.4.5测试环境

参见附录A测试环境1。

5.2.4.6测试步骤

1)设置测试仪表开始捕捉消息;

2)DUT用如下QoS策略创建DataWriter:

reliability.kind=RELIABLE

durability.kind=TRANSIENT_LOCAL

history.kind=KEEP_ALL

3)启动DUT,发送5个DATA子消息;

4)测试仪表用如下QoS策略创建与DUT相同Topic的DataReader:

reliability.kind=RELIABLE

durability.kind=VOLATILE

history.kind=KEEP_ALL

5)待测试仪表与DUT建立连接;

6)测试仪表记录并验证从DUT收到的消息序列。

5.2.4.7通过条件

步骤6):测试仪表收到GAP子消息;

步骤6):GAP子消息字段值

gapStart=1

gapList:

19

T/CSAEXX–xxxx

gapList.bitmapBase=6

gapList.numBits=0

5.2.5可靠无状态写操作–HEARTBEAT子消息

5.2.5.1测试目标

验证DUT可靠无状态写操作发送HEARTBEAT子消息的操作是否正确。

5.2.5.2测试概要

验证DUT可靠无状态写操作发送HEARTBEAT子消息的过程是否符合标准中定义的状态机。

5.2.5.3适用条件

DUT支持可靠无状态写操作。

5.2.5.4前置条件

参见附录B前置条件1。

5.2.5.5测试环境

参见附录A测试环境1。

5.2.5.6测试步骤

1)DUT创建可靠无状态RTPSWriter,确认Writer.pushMode=false;

2)设置DUT的Writer.heartbeatPeriod=3秒;

3)测试仪表创建可靠RTPSReader,Topic与DUT相同;

4)设置测试仪表开始捕捉DUT发送的消息;

5)启动DUT和测试仪表,待其建立连接;

6)等待至少30秒;

7)测试仪表记录并验证从DUT发送的消息;

8)设置DUT的Writer.heartbeatPeriod=5秒;

9)设置测试仪表开始捕捉DUT发送的消息;

10)重启DUT和测试仪表,待其建立连接;

11)等待至少30秒;

12)测试仪表记录并验证从DUT发送的消息。

5.2.5.7通过条件

步骤7):测试仪表收到DUT发送的连续的HEARTBEAT子消息,发送周期3秒;

步骤7):测试仪表收到DUT发送的HEARTBEAT子消息,HEARTBEAT.FinalFlag=1(SET);

步骤12):测试仪表收到DUT发送的连续的HEARTBEAT子消息,发送周期5秒;

步骤12):测试仪表收到DUT发送的HEARTBEAT子消息,HEARTBEAT.FinalFlag=1(SET)。

5.2.6可靠无状态写操作–nackResponseDelay的值

5.2.6.1测试目标

验证DUT在可靠无状态写操作过程中nackResponseDelay的值。

20

T/CSAEXX–xxxx

5.2.6.2测试概要

验证DUT在可靠无状态写操作过程中是否按nackResponseDelay设置的时间回复DATA。

5.2.6.3适用条件

DUT支持可靠无状态写操作。

5.2.6.4前置条件

参见附录B前置条件1。

5.2.6.5测试环境

参见附录A测试环境1。

5.2.6.6测试步骤

1)DUT创建可靠无状态RTPSWriter;

2)设置DUT的nackRsponseDelay=3秒;

3)测试仪表创建可靠RTPSReader,Topic与DUT相同;

4)设置测试仪表开始捕捉DUT发送的消息;

5)启动DUT和测试仪表,待其建立连接;

6)DUT发送10个DATA子消息;

7)测试仪表发送ACKNACK消息请求重发最后1个DATA子消息,并开始计时;

8)测试仪表捕捉DATA子消息;

9)测试仪表验证收到的DATA子消息的内容;

10)测试仪表计算从步骤7)到步骤8)经过的时间t1;

11)设置DUT的nackRsponseDelay=5秒;

12)设置测试仪表开始捕捉DUT发送的消息;

13)重新启动DUT和测试仪表,待其建立连接;

14)DUT发送10个DATA子消息;

15)测试仪表发送ACKNACK消息请求重发最后1个DATA子消息,并开始计时;

16)测试仪表捕捉DATA子消息;

17)测试仪表验证收到的DATA子消息的内容;

18)测试仪表计算从步骤7)到步骤8)经过的时间t2。

5.2.6.7通过条件

步骤8):测试仪表收到1个DATA子消息;

步骤9):测试仪表收到的DATA子消息与步骤6)DUT发送的最后一个DATA子消息的内容一致;

步骤10):3秒<t1<4秒;

步骤16):测试仪表收到1个DATA子消息;

步骤17):测试仪表收到的DATA子消息与步骤14)DUT发送的最后一个DATA子消息的内容一致;

步骤18):5秒<t2<6秒。

5.2.7可靠无状态写操作–数据重发操作

5.2.7.1测试目标

验证DUT可靠无状态写操作的数据重发操作是否正确。

21

T/CSAEXX–xxxx

5.2.7.2测试概要

验证DUT在可靠无状态写操作过程中是否可以重新发送RTPSReader没有正确接收的DATA子消

息。

5.2.7.3适用条件

DUT支持可靠无状态写操作。

5.2.7.4前置条件

参见附录B前置条件1。

5.2.7.5测试环境

参见附录A测试环境1。

5.2.7.6测试步骤

1)DUT创建可靠无状态RTPSWriter;

2)测试仪表创建可靠RTPSReader,Topic与DUT相同;

3)设置测试仪表开始捕捉DUT发送的消息;

4)启动DU

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论