【SOMEIP】【R24-11】【需求翻译】[RS_SOMEIP_00005]-[RS_SOMEIP_00007]
目录
- [RS_SOMEIP_00005]
- [PRS_SOMEIP_00183]
- [RS_SOMEIP_00006]
- [PRS_SOMEIP_00171]
- [PRS_SOMEIP_00382]
- [PRS_SOMEIP_00924]
- [RS_SOMEIP_00007]
- [PRS_SOMEIP_00920]
- [PRS_SOMEIP_00921]
- [PRS_SOMEIP_00922]
- [PRS_SOMEIP_00923]
- [PRS_SOMEIP_00927]
- [PRS_SOMEIP_00928]
[RS_SOMEIP_00005]
SOMEIP协议应支持不同策略下的“事件通知”
[PRS_SOMEIP_00183]
“事件通知”的策略包括
- 变更时通知(on change)
- 变更且变更幅度超过某一阈值时通知(on epsilon change)
- 周期性通知(on cyclic)
[RS_SOMEIP_00006]
SOMEIP 协议需要支持异步的单向通信
[PRS_SOMEIP_00171]
“Fire & Forget”消息将不会返回任何ERROR。业务级别的ERROR将有应用软件自行处理。
[PRS_SOMEIP_00382]
如果采用UDP协议,SOMEIP负载范围为[0:1400]。超过1400字节的负责应采用TCP协议或分段发送。
[PRS_SOMEIP_00924]
对于“Fire & Forget”消息,“客户端”需要如下设置SOMEIP消息
- 拼装负载
- 将报文头的“Message ID”设置成想要调用的方法ID
- 将报文头的“Length”设置成报文头“Length”字段之后的所有字节长度
- 将报文头的“Request ID”设置成“客户端”侧唯一的ID
- 按照 [PRS_SOMEIP_00052]设置报文头的“Protocol Version”
- 按照接口定义设置报文头的“Interface Version”
- 将报文头的“Message Type”设置成“REQUEST_NO_RETURN 0x01”
- 将报文头的“Return Code”设置成“0x0”
[RS_SOMEIP_00007]
SOMEIP协议应该支持双向的同步RPC通信
[PRS_SOMEIP_00920]
对于双向通信客户端需要如下设置SOMEIP消息
- 拼装负载
- 将报文头的“Message ID”设置成想要调用的方法ID
- 将报文头的“Length”设置成报文头“Length”字段之后的所有字节长度
- 将报文头的“Request ID”设置成“客户端”侧唯一的ID
- 按照 [PRS_SOMEIP_00052]设置报文头的“Protocol Version”
- 按照接口定义设置报文头的“Interface Version”
- 将报文头的“Message Type”设置成“REQUEST 0x00”
- 将报文头的“Return Code”设置成“0x0”
[PRS_SOMEIP_00921]
拼装请求报文时,请求的input或inout参数序列化顺序应该与mothed声明时的顺序一致。
[PRS_SOMEIP_00922]
服务端应按以下要求设置回复报文的报文头
- 拼装负载
- 将请求的Message ID 复制给回复报文
- 将报文头的“Length”设置成8 + 负载长度
- 将请求的Request ID 复制给回复报文
- 将报文头的“Message Type”设置成“RESPONSE 0x80” 或 “ERROR 0x81”
- 按照 [PRS_SOMEIP_00191]设置“Return Code”
[PRS_SOMEIP_00923]
拼装回复报文时,请求的output或inout参数序列化顺序应该与mothed声明时的顺序一致。
[PRS_SOMEIP_00927]
服务端不应该在客户端没有发送请求的时候主动发送回复消息
[PRS_SOMEIP_00928]
当客户端没有完成请求报文发送前,应该忽略服务端发来的对应的回复消息
