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 |