VSOMEIP ROUTING应用和CLIENT应用之间交互的消息

#define VSOMEIP_ASSIGN_CLIENT                   0x00  // client应用请求分配client_id
#define VSOMEIP_ASSIGN_CLIENT_ACK               0x01  // routing应用返回分配的client_id
#define VSOMEIP_REGISTER_APPLICATION            0x02  // client应用注册someip应用
#define VSOMEIP_DEREGISTER_APPLICATION          0x03  // client应用取消someip应用的注册
#define VSOMEIP_APPLICATION_LOST                0x04  // 未使用(代码中没有找到使用的地方)
#define VSOMEIP_ROUTING_INFO                    0x05  // 如果当前主机内有app发布了serive,instance,则routing通知当前主机内请求了该服务实例的client app,此时消息中的commandid就是VSOMEIP_ROUTING_INFO
#define VSOMEIP_REGISTERED_ACK                  0x06  // 当前主机内有app注册了client_id,routing应用会通知主机内所有app,其中注册了这个client_id的app会回复VSOMEIP_REGISTERED_ACK消息// 具体可以看routing_manager_client中收到routing消息的地方,首先要是routing_info类型的消息,然后里面的command_entry类型未RTE_CLIENT_ADD才会触发client回复这个消息#define VSOMEIP_PING                            0x0E  // routing发送PING消息给client应用,当两个应用先后offer同一个service/instance的时候,routing会通过PING消息判断先offer的client应用是否还活着
#define VSOMEIP_PONG                            0x0F  // client应用以PONG消息回复routing应用的PING消息,告诉routing自己还活着#define VSOMEIP_OFFER_SERVICE                   0x10  // client应用发布service实例
#define VSOMEIP_STOP_OFFER_SERVICE              0x11  // client应用停止分布service实例
#define VSOMEIP_SUBSCRIBE                       0x12  // client应用订阅service实例的事件
#define VSOMEIP_UNSUBSCRIBE                     0x13  // client应用停止订阅service实例的事件
#define VSOMEIP_REQUEST_SERVICE                 0x14  // client应用请求service实例
#define VSOMEIP_RELEASE_SERVICE                 0x15  // client应用释放(停止请求)service实例
#define VSOMEIP_SUBSCRIBE_NACK                  0x16  // 1. client应用回复对其service订阅的NACK消息给routing, routing随后会将订阅NACK消息发给订阅端应用所在主机的routing应用// 2. 订阅端应用所在主机的routing应用收到订阅NACK消息,则通过uds发送VSOMEIP_SUBSCRIBE_NACK类型的消息给订阅应用
#define VSOMEIP_SUBSCRIBE_ACK                   0x17  // 1. client应用回复对其service订阅的ACK消息给routing, routing随后会将订阅ACK消息发给订阅端应用所在主机的routing应用// 2. 订阅端应用所在主机的routing应用收到订阅ACK消息,则通过uds发送VSOMEIP_SUBSCRIBE_ACK类型的消息给订阅应用
#define VSOMEIP_SEND                            0x18  // client应用发送消息的时候(REQUEST/RESPONSE),首先通过VSOMEIP_SEND类型的消息发给routing应用,由routing应用转发给其他主机上的routing应用
#define VSOMEIP_NOTIFY                          0x19  // client应用发送notification消息
#define VSOMEIP_NOTIFY_ONE                      0x1A  // client应用对某一个特定的订阅了事件的远端应用发送notification的消息#define VSOMEIP_REGISTER_EVENT                  0x1B  // 提供someip事件的client应用向routing应用注册事件
#define VSOMEIP_UNREGISTER_EVENT                0x1C  // 提供someip事件的client应用向routing应用取消事件的注册
#define VSOMEIP_ID_RESPONSE                     0x1D  // 未使用(代码中没有找到使用的地方)
#define VSOMEIP_ID_REQUEST                      0x1E  // 未使用(代码中没有找到使用的地方)
#define VSOMEIP_OFFERED_SERVICES_REQUEST        0x1F  // 当client应用通过application::get_offered_services_async接口向routing请求已经收到offer的service信息时,// client应用就会发送VSOMEIP_OFFERED_SERVICES_REQUEST类型的消息给routing应用
#define VSOMEIP_OFFERED_SERVICES_RESPONSE       0x20  // routing应用收到VSOMEIP_OFFERED_SERVICES_REQUEST类型的消息后将本地目前收到offer的所有service信息放到VSOMEIP_OFFERED_SERVICES_RESPONSE类型消息中回复给client应用
#define VSOMEIP_UNSUBSCRIBE_ACK                 0x21  // 提供event的应用从routing应用收到远端应用对该event取消订阅的请求后,将发送VSOMEIP_UNSUBSCRIBE_ACK消息给routing应用,然后再给到远端的routing和订阅该event的client应用
#define VSOMEIP_RESEND_PROVIDED_EVENTS          0x22  // routing应用发给client应用,要求其重新将event注册的消息(VSOMEIP_REGISTER_EVENT)发送一次

 每种消息的格式如下:

vSomeIP command documentation
=============================VSOMEIP_ASSIGN_CLIENT (0x00)Command            00
Version            xx xx
Client             xx xx
Size               xx xx xx xx
Name               xx ... xx        ;#xx = SizeVSOMEIP_ASSIGN_CLIENT_ACK (0x01)Command            01
Version            xx xx
Client             xx xx        
Size               02 00 00 00    
Assigned           xx xxVSOMEIP_REGISTER_APPLICATION (0x02)Command            02
Version            xx xx
Client             xx xx
Size               00 00 00 00VSOMEIP_DEREGISTER_APPLICATION (0x03)Command            03
Version            xx xx
Client             xx xx
Size               00 00 00 00VSOMEIP_APPLICATION_LOST (0x04)<unused>VSOMEIP_ROUTING_INFO (0x05)Command            05
Version            xx xx
Client             xx xx
Size               xx xx xx xx
Entries        SubCommand     xx        ; RIE_ADD_CLIENT (0x0) or RIE_DEL_CLIENT (0x1)Size           xx xx xx xxClient         xx xx[Address]      xx .. xx    ; Size - sizeof(Client) - sizeof(Port)[Port]         xxSubCommand     xx        ; RIE_ADD_SERVICE_INSTANCE (0x2) or RIE_DEL_SERVICE_INSTANCE (0x3)Size           xx xx xx xx    ; Command sizeSize           xx xx xx xx    ; Client info sizeClient         xx xx[Address]      xx .. xx    ; Client info size - sizeof(Client) - sizeof(Port)[Port]         xxSize           xx xx xx xx    ; Services sizeService    xx xxInstance   xx xxMajor      xxMinor      xx xx xx xxVSOMEIP_REGISTERED_ACK (0x06)Command            06
Version            xx xx
Client             xx xx
Size               00 00 00 00VSOMEIP_PING (0x07)Command            07
Version            xx xx
Client             00 00
Size               00 00 00 00VSOMEIP_PONG (0x08)Command            08
Version            xx xx
Client             xx xx
Size               00 00 00 00VSOMEIP_OFFER_SERVICE (0x10)Command            10
Version            xx xx
Client             xx xx
Size               09 00 00 00
Service            xx xx
Instance           xx xx
Major              xx
Minor              xx xx xx xxVSOMEIP_STOP_OFFER_SERVICE (0x11)Command            11
Version            xx xx
Client             xx xx
Size               09 00 00 00
Service            xx xx
Instance           xx xx
Major              xx
Minor              xx xx xx xxVSOMEIP_SUBSCRIBE (0x12)Command            12
Version            xx xx
Client             xx xx
Size               xx xx xx xx
Service            xx xx
Instance           xx xx
Eventgroup         xx xx
Major              xx
Event              xx xx
Pending ID         xx xx
FilterOnChange                xxOnChangeResetsInterval  xxInterval                xx xx xx xx xx xx xx xxIgnore (per entry)Key                 xx xx xx xx xx xx xx xxValue               xxVSOMEIP_UNSUBSCRIBE (0x13)
VSOMEIP_EXPIRE (0x2A)Command            13/2A
Version            xx xx
Client             xx xx
Size               0a 00 00 00
Service            xx xx
Instance           xx xx
Eventgroup         xx xx
Event              xx xx
Pending ID         xx xxVSOMEIP_REQUEST_SERVICE (0x14)Command            14
Version            xx xx
Client             xx xx
Size               xx xx xx xx
EntriesService        xx xxInstance       xx xxMajor          xxMinor          xx xx xx xxVSOMEIP_RELEASE_SERVICE (0x15)Command            15
Version            xx xx
Client             xx xx
Size               04 00 00 00
Service            xx xx
Instance           xx xxVSOMEIP_SUBSCRIBE_NACK (0x16)Command            16
Version            xx xx
Client             xx xx
Size               0c 00 00 00
Service            xx xx
Instance           xx xx
Eventgroup         xx xx
Subscriber         xx xx
Event              xx xx
ID                 xx xxVSOMEIP_SUBSCRIBE_ACK (0x17)Command            17
Version            xx xx
Client             xx xx
Size               0c 00 00 00
Service            xx xx
Instance           xx xx
Eventgroup         xx xx
Subscriber         xx xx
Event              xx xx
ID                 xx xxVSOMEIP_SEND (0x18)
VSOMEIP_NOTIFY (0x19)
VSOMEIP_NOTIFY_ONE (0x1A)Command            18|19|1a
Version            xx xx
Client             xx xx
Size               xx xx xx xx
Instance           xx xx
Reliable           xx        ; UDP (00) or TCP (01)
Status             xx        ; CRC of E2E - protected messages
Destination        xx xx     ; Client ID of the receiver
Payload            xx ... xxVSOMEIP_REGISTER_EVENT (0x1B)Command            1b
Version            xx xx
Client             xx xx
Size               xx xx xx xx    ; 10 + #eventgroups * 2
EntriesService            xx xxInstance           xx xxNotifier           xx xxType               xx    ; ET_EVENT (00), ET_SELECTIVE_EVENT(01) or ET_FIELD(02)Provided           xx    ; False (00) or True (01)Reliability        xx    ; UDP (00) or TCP (01)IsCyclic           xxNum Eventgroups    xx xxEntriesEventgroup     xx xxVSOMEIP_UNREGISTER_EVENT (0x1C)Command            1c
Version            xx xx
Client             xx xx
Size               07 00 00 00
Service            xx xx
Instance           xx xx
Notifier           xx xx
Provided           xxVSOMEIP_ID_RESPONSE (0x1D)<unused>VSOMEIP_ID_REQUEST (0x1E)<unused>VSOMEIP_OFFERED_SERVICES_REQUEST (0x1F)Command            1f
Version            xx xx
Client             xx xx
Size               01 00 00 00
OfferType          xx (00 = LOCAL, 01 = REMOTE, 02 = ALL)VSOMEIP_OFFERED_SERVICES_RESPONSE (0x20)Command            20
Version            xx xx
Client             xx xx
Size               xx xx xx xx 
OfferedServicesSubcommand     xx    (00 = ADD CLIENT, 01 = ADD SERVICE INSTANCE, 02 = DELETE SERVICE INSTANCE, 03 = DELETE CLIENT)Size           xx xx xx xxServiceInstancesService    xx xxInstance   xx xxMajor      xx xxMinor      xx xxVSOMEIP_UNSUBSCRIBE_ACK (0x21)Command            21
Version            xx xx
Client             xx xx
Size               08 00 00 00
Service            xx xx
Instance           xx xx
Eventgroup         xx xx
Id                 xx xx            VSOMEIP_RESEND_PROVIDED_EVENTS (0x22)Command            22
Version            xx xx
Client             xx xx
Size               04 00 00 00
PendingOfferId     xx xx xx xxVSOMEIP_UPDATE_SECURITY_POLICY (0x23)
VSOMEIP_UPDATE_SECURITY_POLICY_INT (0x29)Command            23/29
Version            xx xx
Client             xx xx
Size               xx xx xx xx
UpdateId           xx xx xx xx
Policy             xx ... xx        VSOMEIP_UPDATE_SECURITY_POLICY_RESPONSE (0x24)Command            24
Version            xx xx
Client             xx xx
Size               04 00 00 00
UpdateId           xx xx xx xxVSOMEIP_REMOVE_SECURITY_POLICY (0x25)Command            25
Version            xx xx
Client             xx xx
Size               0c 00 00 00
UpdateId           xx xx xx xx
Uid                xx xx xx xx
Gid                xx xx xx xxVSOMEIP_REMOVE_SECURITY_POLICY_RESPONSE    (0x26)Command            26
Version            xx xx
Client             xx xx
Size               04 00 00 00
UpdateId           xx xx xx xxVSOMEIP_UPDATE_SECURITY_CREDENTIALS (0x27)Command            27
Version            xx xx
Client             xx xx
Size               xx xx xx xx
CredentialsUid            xx xx xx xxGid            xx xx xx xxVSOMEIP_DISTRIBUTE_SECURITY_POLICIES (0x28)Command            28
Version            xx xx
Client             xx xx xx xx
Size               xx xx xx xx
PoliciesCount      xx xx xx xx
PoliciesSize           xx xx xx xxData           xx ... xxVSOMEIP_SUSPEND (0x30)Command            30
Version            xx xx
Size               xx xx xx xx

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/895237.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

jvm 线程监控调试

文章目录 前言一、使用JDK工具转储线程文件(如jstack)1. 找到Java进程的PID:2. 使用jstack生成线程转储文件:3.验证生成的线程转储文件:二、分析文件1.使用在线工具进行分析上传thread-dump文件,等待解析完成2.查看分析结果总结前言 提示:使用jdk自带工具转储线程监控文…

从零开始认识大语言模型(LLM)

“AI小美好——聚焦科技、商业、职场。前沿资讯&#xff0c;实用干货&#xff0c;邂逅更美好的自己&#xff01;” 在当今数字化时代&#xff0c;语言不仅是人类交流的工具&#xff0c;更是信息传递的核心。随着人工智能技术的飞速发展&#xff0c;大语言模型逐渐走进了我们的…

安装OpenJDK21(linux、macos)

文章目录 安装OpenJDK21java21linux下安装配置mac下安装 安装OpenJDK21 java21 封神&#xff01;Java 21正式发布了&#xff0c;迎来了史诗级新特性&#xff0c;堪称版本最强&#xff01;&#xff01;&#xff01; 视频链接&#xff1a;https://www.bilibili.com/video/BV1E8…

idea插件开发,如何获取idea设置的系统语言

手打不易&#xff0c;如果转摘&#xff0c;请注明出处&#xff01; 注明原文&#xff1a;https://zhangxiaofan.blog.csdn.net/article/details/145578160 版本要求 大于 2024.3 错误用法 网上有的说使用&#xff1a;UIUtil com.intellij.util.ui.UIUtil 代码示例&#xf…

Linux | 系统调用

文章目录 Linux | 系统调用open 系统调用功能头文件和函数原型参数解释返回值示例代码 其他常用系统调用read 系统调用write 系统调用close 系统调用lseek 系统调用stat 系统调用 Linux | 系统调用 前言&#xff1a;在Linux系统中&#xff0c;系统调用是用户空间程序与内核进行…

郭羽冲IOI2024参赛总结

非常荣幸能代表中国参加第 36 36 36 届国际信息学奥林匹克竞赛&#xff08; I O I 2024 IOI2024 IOI2024&#xff09;。感谢 C C F CCF CCF 为我们提供竞赛的平台&#xff0c;感谢随行的老师们一路上为我们提供的帮助与支持。 在每场比赛的前一个晚上&#xff0c;领队、副领…

基于Java的自助多张图片合成拼接实战

目录 前言 一、图片合成需求描述 二、图片合成设计与实现 1、编程语言 2、基础数据准备 3、图片合成流程 4、图片合成实现 三、总结 前言 在当今数字化时代&#xff0c;图像处理技术在各个领域都发挥着至关重要的作用。从社交媒体到电子商务&#xff0c;从在线教育到虚拟…

计算机网络结课设计:通过思科Cisco进行中小型校园网搭建

上学期计算机网络课程的结课设计是使用思科模拟器搭建一个中小型校园网&#xff0c;当时花了几天时间查阅相关博客总算是做出来了&#xff0c;在验收后一直没管&#xff0c;在寒假想起来了简单分享一下&#xff0c;希望可以给有需求的小伙伴一些帮助 目录 一、设计要求 二、…

在npm上传属于自己的包

最近在整理代码&#xff0c;上传到npm方便使用&#xff0c;所以学习了如何在npm发布一个包&#xff0c;整理写成一篇文章和大家一起交流。 1、注册npm账号 npm | Home 2、确保是登录状态 &#xff08;在包目录下&#xff0c;终端执行 npm login) 按enter键自动打开页面&…

物联网(IoT)详解

物联网&#xff08;IoT&#xff09;详解 1. IoT定义简介2. IoT工作原理3. IoT关键技术4. 物联网与互联网区别5. IoT使用场景6. 开源物联网平台7. 参考资料 1. IoT定义简介 首先第一个问题&#xff0c;什么是物联网&#xff08;IoT&#xff09;? 物联网&#xff08;英文&#…

【人工智能】解码语言之谜:使用Python构建神经机器翻译系统

《Python OpenCV从菜鸟到高手》带你进入图像处理与计算机视觉的大门! 解锁Python编程的无限可能:《奇妙的Python》带你漫游代码世界 神经机器翻译(NMT)是近年来机器翻译领域的一项重大突破。它利用深度学习模型,特别是循环神经网络(RNN)和Transformer网络,以端到端的…

idea项目列表不出现,展示loading

2025年02月08 11:23:36 星期六 发生在webstorm中&#xff0c;跟其他idea类似 原因是将 ignore 插件升级到 4.5.5 版本 https://github.com/JetBrains/idea-gitignore/pull/933 解决方案&#xff1a;将ignore版本将为 4.5.4 我是将 4.5.5 降低为 4.5.4 正常显示文件夹了。

DeepSeek本地部署详细指南

DeepSeek本地部署详细指南 随着人工智能技术的飞速发展&#xff0c;本地部署大模型的需求也日益增加。DeepSeek作为一款开源且性能强大的大语言模型&#xff0c;提供了灵活的本地部署方案&#xff0c;让用户能够在本地环境中高效运行模型&#xff0c;同时保护数据隐私。以下是…

算法随笔_46: 最长公共前缀

上一篇:算法随笔_45: 车队-CSDN博客 题目描述如下: 编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀&#xff0c;返回空字符串 ""。 示例 1&#xff1a; 输入&#xff1a;strs ["flower","flow","flight"] 输…

learn torch 01

pytorch学习 在安装完conda时&#xff0c;需要在windows上修改pip配置路径具体操作如下 文件管理器文件路径地址栏敲:%APPDATA%回车&#xff0c;快速进入C:\Users\电脑用户\AppData\Roaming文件夹中 新建pip文件夹并在文件夹中新建pip.ini配置文件 需要在pip.ini配置文件内容&a…

【Vue】在Vue3中使用Echarts的示例 两种方法

文章目录 方法一template渲染部分js部分方法一实现效果 方法二template部分js or ts部分方法二实现效果 贴个地址~ Apache ECharts官网地址 Apache ECharts示例地址 官网有的时候示例显示不出来&#xff0c;属于正常现象&#xff0c;多进几次就行 开始使用前&#xff0c;记得先…

分布式锁的实现 和 底层原理 以及都有什么问题?

目录 分布式锁的实现方式及底层原理 1. 基于数据库实现分布式锁 实现方式 底层原理 存在的问题 2. 基于 Redis 实现分布式锁 实现方式 底层原理 存在的问题 3. 基于 ZooKeeper 实现分布式锁 实现方式 底层原理 存在的问题 总结 分布式锁的实现方式及底层原理 1.…

13.10 统一配置管理中心:TranslationChain 架构的简洁配置管理方案

统一配置管理中心:TranslationChain 架构的简洁配置管理方案 1. 集中式配置文件设计 config/settings.yaml: # 多环境配置开关 env: production # development|test|production# 模型管理中心 models:openai:class: langchain_openai.ChatOpenAIparams

Ollama 简单 好用 好玩

简介 Ollama https://github.com/ollama/ollama/ 是一个基于 Go 语言 的 本地大语言模型运行框架&#xff0c;专注于本地化运行大型语言模型&#xff08;LLM&#xff09;的开源工具。 类 Docker 产品&#xff08;支持 list,pull,push,run 等命令&#xff09;&#xff0c;更好玩…

储能系统-系统架构

已更新系列文章包括104、61850、modbus 、单片机等&#xff0c;欢迎关注 IEC61850实现方案和测试-1-CSDN博客 快速了解104协议-CSDN博客 104调试工具2_104协议调试工具-CSDN博客 1 电池储能系统&#xff08;BESS&#xff09; 架构 电池储能系统主要包括、电池、pcs、本地控制…