使用SOME/IP-SD宣布非SOME/IP协议的协议。
除了SOME/IP之外,车辆内部还使用其他通信协议,例如用于网络管理、诊断或闪存更新。这些通信协议可能需要传递服务实例或具有事件组。
对于非SOME/IP协议,应使用特殊的服务ID,并使用配置选项添加更多信息:
-
服务ID应设置为0xFFFE(保留)
-
实例ID应按照SOME/IP服务和事件组的描述进行使用
-
必须添加配置选项,并且该配置选项应至少包含一个键为"otherserv"的条目,其可配置的非空值由系统部门确定。
SOME/IP服务不应在配置选项中使用"otherserv"字符串。
对于FindService/OfferService/RequestService,当宣布非SOME/IP服务实例时,应使用"otherserv"字符串。
有效的"otherserv"字符串示例:"otherserv=internaldiag"。
无效的"otherserv"字符串示例:"otherserv"。
无效的"otherserv"字符串示例:"otherserv="。
以下是用于非SOME/IP-SD的SOME/IP-SD示例PDU:
Service Discovery Protocol (SDP) Header:
---------------------------------------
Version: 2
Message Type: Request (0x01)
Return Code: 0 (No error)
Payload Length: XX
Interface Version: 1
Service Discovery Protocol (SDP) Payload:
----------------------------------------
Service ID: 0xFFFE (Reserved)
Instance ID: XX XX XX XX (Instance ID for the non-SOME/IP service)
Configuration Option:
Key: otherserv
Value: internaldiag
上述示例演示了一个用于非SOME/IP-SD的SOME/IP-SD PDU。该PDU包含了SDP头部和负载部分。
在SDP头部中,版本号设置为2,消息类型为请求类型,返回码为0(无错误),负载长度为XX(根据实际负载大小填写),接口版本为1。
在SDP负载部分中,服务ID设置为0xFFFE(保留),实例ID根据非SOME/IP服务的实际实例ID进行设置。
配置选项部分包含一个键值对,键为"otherserv",值为"internaldiag"。这是一个有效的"otherserv"示例,表示该服务的其他信息为"internaldiag"。
请注意,示例中的XX和实际值可能会根据具体情况而有所不同。您需要根据您的需求和协议规范来填充和配置相关字段和数值。