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服务可用的函数里面调用订阅函数。

 
posted @ 2022-04-26 11:45  water_bear  阅读(1482)  评论(2)    收藏  举报