vSomeIP相关配置选项介绍

vSomeIP相关配置选项介绍首先介绍两个比较重要的环境变量 VSOMEIP APPLICATION NAME 指定 application name 用来在后面对 json 配置文件的 client id 的查找 跟 application binary s name 无

欢迎大家来到IT世界,在知识的湖畔探索吧!

vSomeIP相关配置选项介绍



欢迎大家来到IT世界,在知识的湖畔探索吧!

首先介绍两个比较重要的环境变量:

  • VSOMEIP_APPLICATION_NAME – 指定application name用来在后面对json配置文件的client id的查找,跟application binary’s name无关,可以看到这里service的id – 0x4444也和他自己的service id无关
  • VSOMEIP_CONFIGURATION_FILE – 告诉application默认的配置文件,否则就会去读/etc/vsomeip.json
vSomeIP相关配置选项介绍

vSomeIP相关配置选项介绍

相关port需要配置,不然就是发现端口起不来

  • unicast – 关于你自己机器的IP Address
  • applications – 你可以通过create_application(name)一个固定的client ID而不是让他进行自动配置。同时给Client ID配置固定的ID是有必要的,如果在你的network中每个client ID都一样,他们都会被auto configuration设置为1,这种情况下communication不会work
  • servicegroups – Service可以被放进组里,一个service group可以有一个特定service provider的一系列services以及他的connect information,当然,你也可以定义多个service groups来接收来自不同的service providers的services
    • name – service group的名字
    • unicast – service provider的ip address(local如果service provider是local host否则就是远端service provider的ip address)
    • delays – 关于服务发现的延迟针对每个service instance
      • initial – 从Initial Wait Phase开始进入,当前phase就是service注册成功等待client的service discovery
        • minimum – 指定客户端服务发现的最小时间
        • maximum – 最大时间
      • repetition-base – 当Initial delay结束,Service进入Repetition Phase,他会通过Service Provider的SD来通过多播进行重复发送
      • repetition-max – 在repetition phase的最大提供数量
      • cyclic-offer – 通过repetitions之后,Main Phase会最终进入,在这个状态下,关于Service Provider的Service Discovery开始进入service offer循环周期
      • cyclic-request – 告知对应的循环请求delay
  • services
    • service – service的ID
    • instance – service instance id
    • reliable – 指定跟服务的通信是可靠的,用TCP进行通信
      • port – TCP的端口号
      • enable-magic-cookies – 指定是否magic cookies启用
    • unreliable – 走UDP的unreliable
      • port
    • multicast – 可以通过多播来进行提供给一组特定的clients
      • address – 多播地址
      • port – 多播端口
    • events – 事件
      • event – event的id
        • is_field – 指定这个event是否是field type.filed type指拥有getter,setter,notification event.notifier发送对应的event消息来报告当前field的内容
        • is_reliable – 如果为true表示用tcp通信,否则用udp
      • eventgroupds – events可以被组合进一个event group.对于客户端来说,你需要订阅事件组,然后在组中接收合适的events.同时一个event也可以进不同的事件组
        • eventgroup – event group的id
        • events – 对应event ids
        • is_multicast – 通知是否这些event要按照多播进行发送,true / false
        • multicast – 如果是用多播发送,对应的多播地址
    • routing – 做routing对应的application
    • service-discovery – 对应SD的设置
      • enable – 告诉是否SD被开启
      • multicast – 多播地址
      • port – SD的端口
      • protocol – 用来发送SD的协议,可以用tcp也可以用udp

  • Method ID并没有出现在vsomeip.json中,但是他出现在CommonAPI的fdepl中,通过查看vsomeip创建service的例子,我们也可以看到,有对应的传入点,但在协议的包头可以看到有他们的格式也就是说实际会携带对应的MethodID放到包头
  • 通过这张图我们可以看到在包头中并不存在我们在配置文件中看到的”Instance ID”,因为很可能会出现同样的一个service interface会存在多个instance.但因为在包头没有instance的id,我们可以借助下面的transport protocol来做到这个效果,就是通过 instance <-> port number.也就是说针对interface的不同的instance不能在一个网络中使用相同的Port.
  • 如果不是Service默认不需要在配置文件中维护任何信息,比如你是一个Interface的Client,你不需要在配置文件中写任何信息,即配置文件中的配置信息只需要写Service,并且是你自己能提供的最后一句特别难理解,也就是说不是你提供的Service,你也不需要写在你的配置文件中,因为真正的服务器Service会在OfferService阶段,通过组播,把对应的port放在payload里,你通过组播的概念直接拿到对应的payload直到端口号,也就建立了你client和service的通信
vSomeIP相关配置选项介绍

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/127915.html

(0)
上一篇 9分钟前
下一篇 2024年 12月 6日 上午10:23

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们YX

mu99908888

在线咨询: 微信交谈

邮件:itzsgw@126.com

工作时间:时刻准备着!

关注微信