让 VSOMEIP 协议栈的行为完全对齐DSOMEIP 协议栈(版本、字段、格式、编译环境),消除协议交互中的不兼容点,从而解决通信失败问题

一、问题 1:服务发布 / 订阅版本不匹配(Handover issue)

问题现象

两个 SOME/IP 协议栈通信失败,核心原因是服务发布(offer_service)、停止发布(stop_offer_service)和订阅(subscribe)时的版本号不匹配

根因分析
  1. SOME/IP 协议规定,服务的标识由「服务 ID + 实例 ID + 主版本号(Major) + 次版本号(Minor)」四元组唯一确定;
  2. 原始代码中:
    • 发布服务时未显式指定版本号,使用 VSOMEIP 默认值(修改前默认 Major=0);
    • 订阅方也未指定版本号,导致发布 / 订阅的版本号不一致;
    • 协议栈在服务发现阶段会校验版本号,不匹配则拒绝建立通信。
// Handover issue,  find_service and offer service version mismatch, need code change.
Example:
     void offer() {
         std::lock_guard<std::mutex> its_lock(notify_mutex_);
-        app_->offer_service(SAMPLE_SERVICE_ID, SAMPLE_INSTANCE_ID);
+        app_-&g
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

aFakeProgramer

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值