首先我们得看一下环境变量VSOMEIP_CONFIGURATION,根据用户手册
* `VSOMEIP_CONFIGURATION`: vsomeip uses the default configuration file `/etc/vsomeip.json` and/or the default configuration folder `/etc/vsomeip`. This can be overridden by a local configuration file `./vsomeip.json` and/or a local configuration folder `./vsomeip`. If `VSOMEIP_CONFIGURATION` is set to a valid file or directory path, this is used instead of the standard configuration (thus neither default nor local file/folder will be parsed).
复制
- vsomeip默认使用配置文件 /etc/vsomeip.json或者包含配置文件的文件夹/etc/vsomeip,如果当前目录存在 /etc/vsomeip.json或者包含配置文件的文件夹/etc/vsomeip,优先使用当前目录的配置文件,用户可通过配置VSOMEIP_CONFIGURATION环境变量覆盖当前和默认的配置文件。
我们来看一下配置文件内容,以上篇文章的配置文件为例:
{ "unicast":"192.168.4.1", "netmask":"255.255.255.0", "network":"vsomeip", "logging": { "level":"debug", "console":"true", "dlt":"true" }, "applications": [ { "name":"service1", "id":"0x1000" }, { "name":"service2", "id":"0x2000" } ], "services": [ { "service":"0x1001", "instance":"0x0001", "unicast":"192.168.4.1", "unreliable":"40001", "reliable" : { "port" : "40001", "enable-magic-cookies" : "false" }, "multicast" : { "address" : "239.0.4.1", "port" : "40001" }, "events" : [ { "event" : "0x9001", "is_field" : "true", "is_reliable" : "false" }, { "event" : "0x9002", "is_field" : "true", "is_reliable" : "false" }, { "event" : "0x9003", "is_field" : "true", "is_reliable" : "false" } ], "eventgroups" : [ { "eventgroup" : "0x0005", "events" : [ "0x9001", "0x9002", "0x9003"], "is_multicast" : "false" } ] }, { "service":"0x2001", "instance":"0x0001", "unicast":"192.168.4.1", "unreliable":"40002", "reliable" : { "port" : "40002", "enable-magic-cookies" : "false" }, "multicast" : { "address" : "239.0.4.1", "port" : "40002" }, "events" : [ { "event" : "0x9001", "is_field" : "true", "is_reliable" : "false" }, { "event" : "0x9002", "is_field" : "true", "is_reliable" : "false" }, { "event" : "0x9003", "is_field" : "true", "is_reliable" : "false" }, { "event" : "0x9004", "is_field" : "true", "is_reliable" : "false" } ], "eventgroups" : [ { "eventgroup" : "0x0006", "events" : [ "0x9001", "0x9002", "0x9003", "0x9004"], "is_multicast" : "false" }, { "eventgroup" : "0x0007", "events" : [ "0x9001" ], "is_multicast" : "false" } ] } ], "routing":"service1", "service-discovery": { "enable" : "true", "multicast" : "239.0.4.1", "port" : "30490", "protocol" : "udp", "initial_delay_min" : "100", "initial_delay_max" : "1000", "repetitions_base_delay" : "30", "repetitions_max" : "5", "ttl" : "5", "cyclic_offer_delay" : "1000" } }
复制
-
"unicast":本机的IP地址 192.168.4.1
-
"netmask":本机的掩码 255.255.255.0
-
"network":用于本机存在多个routing managers的场景,参数可以修改/dev/shm共享内存的字段以及/tmp下socket的名字,默认该参数为vsomeip, 对应共享内存为/dev/shm/vsomeip,socket命名为/tmp/vsomeip-$CLIENTID。
日志模块logging
-
"level":配置日志的级别,可选的配置有:trace,debug,info,warnning,error,fatal
-
"console":日志是否通过控制台输出,可选的配置有 true,false
-
"file":有两个参数
enable:是否创建一个log文件, 可选的值为true,false
path: 用于存放生成的日志文件的绝对路径
-
"dlt":配置是否使用Diagnostic Log and Trace(DLT),可选的值有true,false
应用模块applications:
- "name":应用的名字
- "id":应用程序的ID
服务模块services:
- "service":服务的ID
- "instance": instance ID
- "unicast": 服务实例的单播地址
- "reliable": 用于TCP服务
port:tcp endpoint的端口号
enable-magic-cookies: 是否使用magic cookies(可选 true false)
- "unreliable":用于UDP服务,UDP的端口号
- "multicast": 用于发布eventgroup
address:组播IP地址
port:组播端口号
- "events": 服务的events
event: event ID
is_field: 配置该event是否为filed类型
is_reliable:配置该event是否为tcp(true false)
- "eventgroups": 事件组
eventgroup: 事件组ID
events: 包含的event id
multicast: 是否支持组播(true false)
- "routing": 字符串(应用的名字),配置routing manager
服务发现模块service-discovery
- "enable": 配置服务发现模块是否使能(true,false)
- "multicast": 服务发现使用的组播地址
- "port": 服务发现使用的端口号
- "protocol": 服务发现使用的协议(tcp udp)
- "initial_delay_min": Minimum delay before first offer message.
- "initial_delay_max": Maximum delay before first offer message.
- "repetitions_base_delay": Base delay sending offer messages within the repetition phase.
- "repetitions_max": Maximum number of repetitions for provided services within the
repetition phase. - "ttl": Lifetime of entries for provided services as well as consumed services and eventgroups.
- "cyclic_offer_delay": Cycle of the OfferService messages in the main phase.