客户端和服务器的vsomeip配置文件

问题描述

当客户端和服务器使用单独的 JSON 配置文件时,我无法在服务器和客户端之间建立通信 我的要求是使用 vsomeip 框架传输 SOME/IP 数据。我正在同一系统上传输数据。 但是,当对发送器和接收器使用相同的 JSON 文件时,我能够传输数据。 下面是使用的 JSON 文件

{
    "unicast" : "160.48.199.102","logging" :
    { 
        "level" : "trace","console" : "true","file" : { "enable" : "false","path" : "/tmp/vsomeip.log" },"dlt" : "false"
    },"applications" : 
    [
        {
            "name" : "master_tx","id" : "0x1277"
        },{    
            "name" : "master_rx","id" : "0x1344"
        }
    ],"services" :
    [
        {
            "service" : "0x3556","instance" : "0x0001","reliable" : { "port" : "30490","magic-cookies" : "false" },"events" : 
            [
                {
                    "event" : "0x8001","is_field" : "true","is_reliable" : "false"
                }
            ]
        }
    ]
    "max-payload-size" : "5000","max-payload-size-unreliable" : "5000","routing" : "master_tx","service-discovery" :
    {
        "enable" : "true","port" : "30490","protocol" : "_udp_","initial_delay_min" : "100","initial_delay_max" : "200","repetitions_base_delay" : "200","repetitions_max" : "15","ttl" : "100","cyclic_offer_delay" : "2000","request_response_delay" : "1500"
    }
}

但是,当发送器和接收器使用不同的 JSON 文件时,我无法建立任何连接。以下是使用的 JSON 文件

server.json

{
    "unicast" : "192.168.0.178","id" : "0x1277"
        }
    ],"is_reliable" : "false"
                }
            ],"eventgroups" :
            [
                {
                    "eventgroup" : "0x001","events" : [ "0x8001" ]
                }
            ]
        }
    ],"max-payload-size" : "5000","request_response_delay" : "1500"
    }
}

client.json

{
    "unicast" : "192.168.0.178","network" : "vsomeip-rx","dlt" : "true"
    },"applications" : 
    [
        {    
            "name" : "master_rx","clients" :
    [
        {
            "service" : "0x3556","unreliable" : [ "30490" ]
        }
    ],"routing" : "master_rx","request_response_delay" : "1500"
    }
}

如果 JSON 文件有问题或者我遗漏了其他东西,有人可以帮助我吗。

解决方法

server.json

  1. 端口 30490 被定义为可靠的,而它被用作服务发现端口(这是不可靠的)。使用其他的,例如 30500。
  2. 我不确定是否允许使用 "_udp_" 值 - "udp" 肯定是。

client.json

  1. “clients”标签指定用于连接特定服务的端口。在这种情况下,再次仅使用一个端口 30490,该端口已为服务发现定义。此外,在客户端中它被指定为不可靠的,而在服务器中它是可靠的。 除了文档中指定的: vsomeip 将占用列表的第一个空闲端口。如果找不到空闲端口,连接将失败。 尝试使用其他端口或删除“clients”标签进行测试。

  2. 我不确定是否允许使用 "_udp_" 值 - "udp" 肯定是。