commonapi+vsomeip tips
1.序列化方面
定长数组的最大最小没有必要写,默认的就可以满足,最大和最小一样大有可能反序列化失败。
array utf8_0_20_ArrayTyp {
SomeIpArrayMaxLength = 21
SomeIpArrayMinLength = 0
SomeIpArrayLengthWidth = 4
}
array utf8_0_128_ArrayType {
SomeIpArrayMaxLength = 129
SomeIpArrayMinLength = 0
SomeIpArrayLengthWidth = 4
}
序列化不需要字节对齐填充,utf前一版的格式是[长度1byte + bom3byte]
2.TTL方面
subscribe entry里面的TTL代表这次订阅在服务端存活的时间是TTL秒,时间到后服务端自动取消订阅。
客户端为什么会重复订阅呢?原来是服务端周期offer service,在客户端的sd模块的on_message里面处理:收到offersvice后创建resubscribe.
所以客户端的TTL时间要大于服务端的cyclic_offer_delay时间

3.reboot方面
订阅发布过程中,服务端重启导致客户端reboot.后面不能收到event事件.
解决办法:在发现vsomeip服务可用的函数里面调用订阅函数。

浙公网安备 33010602011771号