还是那句老话:书非借而不能读也!本文件继续参考其他文章。
【Multiple Service-Instances多个服务实例】
同一服务的多个服务实例通过不同的Instance ID来识别。应支持多个服务实例驻留在不同的ECU上,以及一个或多个服务的多个服务实例驻留在一个ECU上。
虽然不同的服务应能够共享所使用的传输层协议的相同端口号,但是在一个ECU上的同一服务的多个服务实例应在每个服务实例的不同端口上进行侦听。
虽然 Instance ID用于服务发现,但它们不包含在SOME / IP header中。
可以通过 Service ID与套接字的组合(即IP地址,传输协议(UDP / TCP)和端口号)来识别服务实例。建议实例对UDP和TCP使用相同的端口号。如果服务实例使用UDP端口x,则只有该服务实例而不是同一服务的另一个实例应该使用TCP端口x作为其服务。
【Request/Response Communication】
SomeIp常用的通信模式之一是请求/响应模式。 客户端发送请求消息,服务器端应答。
【对于客户端】
1、构建Payload,
2、设置客户端所要调用Method的Message ID,
3、设置长度域,
4、根据需要把Request ID设置为一个独立的ID号,
5、设置Protocol Version和Interface Version,
6、设置Message Type t为Request,
7、设置Return Code为0x00,
【对于服务器端】
基于客户端的基础上构建头部,并构建相应的Payload.
1、设置新长度为: 8字节 + 新Payload大小
2、设置Message Type为Response或者Error