SOMEIP服务定义文档格式

发布于:2025-06-18 ⋅ 阅读:(24) ⋅ 点赞:(0)

SHEET1: Ecu信息

	也就是哪些ECU上有应用进程会提供或者使用SOME/IP服务
 				col [
 					ECU: ECU名称,例如Android, Qnx,S32G, J5,SA等
 					IP: ECU用于SOME/IP通信的网卡的IP
 					MASK: 子网掩码
 					VLAN: IP所属的VlanID(10, 20...)
 					RoutingAppId: 该ECU上作为RoutingManagerd角色的SOME/IP应用的application id(这个application id配置在vsomeip.json配置中)
 				]

SHEET2: 所有SOME/IP 服务的简介

				col [
					服务名称:(例如LocationService, ModemStatus)
					服务介绍:该服务的主要用途 (例如提供卫星状态,提供经纬度信息,提供4G网络状态)
				]

SHEET3: 服务的部署信息

				col [
					服务名称:(例如LocationService, ModemStatus)
					App ID:提供该SOME/IP服务的SOME/IP应用的application id(这个application id配置在vsomeip.json配置中)
					Service ID: SOME/IP 的 Service ID,会在SOME/IP的Header和SOME/IP-SD的Service Entry中体现
					Instance ID: SOME/IP的Service的实例,同一个Service ID的Service可以有多个Instance,会在SOME/IP-SD的Service Entry中体现
					Provider ECU: 提供该SOME/IP服务的ECU
					Consumer ECU: 使用该SOME/IP服务的ECU
					ServerPort: 该SOME/IP对外通信使用的端口,一般TCP和UDP都共用这个端口,会在SOME/IP-SD的Option Entry中体现
				]

SHEET4: 服务的接口信息

	该服务中提供了哪些METHOD,EVENT和FIELD)
				col [
					服务名称:(例如LocationService, ModemStatus)
					方法/事件/属性名称:对应fdepl文件中的method/broadcast/attribute的名称
					接口类型: 对应该接口是方法还是事件还是属性(Method/Event/Field)
					Setter/Getter/Notifier: 只对属性接口有效,需要在该列中申明属性接口是否拥有setter/getter/notifier,例如(Getter & Notifier)
					方法ID:每个SOME/IP的Method/Event/Field(getter,setter,notifier)都有唯一的Method ID
					传输层类型:该接口方法走的传输层协议类型(TCP/UDP)
						入参/出参: 表示该参数是输入还是返回参数(IN/OUT)
						参数名称:对于Method类型的接口有效,一个Method接口定义可能有多行,每一行代表一个参数,和fdepl文件中定义的一样
						参数数据类型:可能是基本类型,也可能是用户自己定义结构体类型
					事件组:EventGroupID,只对属性和事件接口有效,标识属性中的Notifier或者事件Event所属的EventGroupID
					事件发送类型:	只对属性和事件接口有效,标识发送策略(定周期发送还是值变更是发送)
					事件发送周期:	只对属性和事件接口有效,设置定周期发送的频率
					参数描述:对Method接口有效,描述参数的作用
				]

SHEET5: 用户自定义数据类型

				col [
					自定义数据类型名称:
						复杂数据类型:嵌套数据类型(Enum/Struct/Union/Array/NA),用于表示当前数据成员是复杂类型还是基本类型
						数据成员名称:自定义数据类型中成员的名称
						数据成员类型:自定义数据类型中成员的数据类型(可能是基本类型,也可能是用户自定义类型)
						值定义:表示该成员的范围(例如Enum的类型需要列举出每一个值)
						成员描述:该成员的含义和作用
						成员格式: km/s,yyymmdd,....
						字符串/数组成员的最小长度:字符串的最小字节数/数组的最少成员数
						字符串/数组成员的最大长度:字符串的最小字节数/数组的最少成员数
				]

SHEET6: 服务发现配置 (Service Discovery Config)

				col [
					基本上就是vsomeip的json配置文件中Service Discovery端的配置
				]

SHEET7: 序列化配置 (Serialization)

			支持进行序列化的类型:基本类型(boolean,uint8,uint16,sint8,...float32, float64)或者复杂类型(string)
			描述:对于基本类型,标识类型的大小(8字节,16字节...),对于字符串类型,标识编码方式UTF-8/UTF-16和BOM长度

范例:

ECU信息:

ECU IP地址 子网掩码 VLANID Routing应用ID
QNX 198.168.7.22 255.255.255.0 70 3023
TDA4 198.168.7.15 255.255.255.0 70 3012

Service信息:

Service名称 Service描述
TimeService 提供系统时间

Service部署信息:

Service名称 应用ID ServiceID InstanceID 提供Service的ECU 使用Service的ECU 通信端口
TimeService 3024 0x0023 0x01 QNX TDA4 52003

Service的接口信息:

Service名称 接口名称 类型 Getter/Setter/Notifier 方法ID 传输层协议类型 参数类型 参数 参数数据类型 事件组 事件发送类型 事件发送周期
TimeService GetCurrentTime Method NA 0004 TCP - - - - - -
OUT curTime uint64 - - -
TimeService CurrentTime Field Getter&Notifier Getter = 0006 & Notifier = 8002 UDP - curTime uint64 0x01 Cyclic 5000ms
TimeService TestEvent Event - 8003 UDP - testValue TestStruct 0x02 OnChange -

数据类型:

数据类型名称 是否复杂类型 成员 成员数据类型 值范围 成员描述 字符串/数组最小大小 字符串数组最大大小
TestEvent Struct a uint8 0~16 第一个成员 - -
b String 时间yyyymmdd-hh:MM:ss 第二个成员 17 17
c TestEnum [0]:aaa
[1]:bbb
[2]:ccc
第三个成员 - -
TestEnun Enum - TestEnun TEST_1=1
TEST_2=2
TEST_3=3
测试枚举类型 - -

服务发现配置:

服务发现参数 参数值
INITIAL_DELAY_MIN
INITIAL_DELAY_MAX
REPETITION_BASE_DELAY
REPETITION_MAX
CYCLIC_OFFER_DELAY
REQUEST_RESPONSE_DELAY_MIN
REQUEST_RESPONSE_DELAY_MAX
SD_PORT
SD_MULTICAST_IP
TTL
MAJOR_VERSION
MINOR_VERSION
InterfaceVersion

网站公告

今日签到

点亮在社区的每一天
去签到