当前位置: 首页 > news >正文

自适应平台AUTOSAR(Adaptive Platform AUTOSAR)平台设计(6)——通信管理

参考:
https://zhuanlan.zhihu.com/p/336833453

1.概述

通信管理负责分布式实时嵌入式环境中应用程序之间的所有通信。

背后的概念是从实际机制中抽象出来,以查找和连接通信伙伴,以便应用程序软件的实现者可以专注于其应用程序的特定目的。

2.面向服务的通信

服务的概念是指提供给应用程序的功能超出了基本操作软件已经提供的功能。通信管理软件提供了为机器内通信以及机器间通信提供或使用此类服务的机制。

服务包含以下各项的组合

· Events

· Methods

· Fields

可以在设计时,启动时或运行时建立通信伙伴之间的通信路径。该机制的重要组成部分是服务注册中心,它充当中介实例,并且也是通信管理软件的一部分。

在这里插入图片描述

提供服务的每个应用程序都在服务注册表中注册这些服务。要使用服务,Costumer应用程序需要通过查询服务注册表来找到请求的服务,此过程称为服务发现。

3.语言绑定和网络绑定

通信管理提供了标准化的手段,将定义的服务呈现给应用程序实现者(上层,语言绑定)以及网络上服务数据的相应表示(下层,网络绑定)。这确保了源代码的可移植性以及跨平台的不同实现的已编译服务的兼容性。

语言绑定定义如何通过使用目标编程语言的便捷功能将服务的Method,Event和Field转换为可直接访问的标识符。性能和类型安全性(就目标语言所支持的程度而言)是主要目标。因此,语言绑定通常由由Service Interface定义提供的源代码生成器实现。

在这里插入图片描述

网络绑定定义了如何将已配置服务的实际数据序列化并绑定到特定网络。可以基于通信管理配置(AUTOSAR元模型的接口定义),通过解释生成的服务特定配方或直接生成序列化代码本身来实现。当前,通信管理支持SOME / IP,DDS,IPC(进程间通信或任何其他自定义绑定)和Signal PDU(基于信号的网络绑定)。

本地服务注册表也是网络绑定的一部分。

注意:语言绑定和网络绑定之间的接口被视为Communication Management软件内部的专用接口。因此,定义此接口的规范目前不在范围内。但是,鼓励平台供应商为其软件独立定义这样的接口,以允许轻松实现除C ++之外的其他语言绑定以及其平台实现内的其他网络绑定。

4.C ++语言绑定生成的代理和骨架

C ++语言绑定的上层接口提供了AUTOSAR元模型的接口描述中定义的服务的面向对象的映射。

作为Communication Management软件开发工具一部分的生成器生成C ++类,这些类包含每个相应服务的Field,Event和Method的类型安全表示。

在服务实现方面,这些生成的类称为Service Provider Skeletons。在Client,它们称为Service Requester Proxies。

对于服务Methods,服务Requester Proxy提供了同步(阻止调用者直到服务器返回结果)和异步调用(被调用函数立即返回)的机制。当Server的返回值通过Core Type ara :: core :: future的特殊功能可用时,调用者可以并行启动其他活动并接收结果。参见后面的文章《AP AUTOSAR平台设计(17)——Core Types》。

可以配置平台实现,以便当相应的Server尚不可用时,生成器创建模型类,以便于Client功能的轻松开发。相同的机制也可以用于对Client进行单元测试。

Client可以直接使用proxy类,而C ++绑定的 Service Provider Skeleton 只是抽象基类。服务实现应从生成的基类派生并实现各自的功能。

ara :: com的接口还可以为安全相关的E2E受保护的通信提供Proxy和Skeleton 。这些接口的设计可确保无论E2E保护是打开还是关闭,都可以确保与应用程序的兼容性。

5.静态和动态配置

通信路径的配置可以在设计时,启动时或运行时进行,因此被认为是静态或动态的:

完全静态配置:

由于Server知道所有Client,而Client也知道Server,因此根本不需要发现Service。

没有通过应用程序代码发现:

Client知道Server,但是Server不知道Client。事件订阅是应用程序中唯一的动态通信模式。

在应用程序中发现全面服务:

在配置时,尚无通信路径。用于服务发现的API允许应用程序代码在运行时选择服务实例。

6.服务Contract Versioning

在SOA环境中, Client和Server的provider通过Service Interface和behavior连接在一起。

在开发服务期间,Service Interface或behavior可能会随时间而改变。 因此,已引入服务Contract Versioning以区分服务的不同版本。 AUTOSAR自适应平台支持Contract 的Versioning设计,以用于服务的设计和部署阶段。

此外,Client的Service discovery可以配置为支持版本向后兼容。这意味着,如果Client Service与Client 的required service版本向后兼容,则它们可以连接到不同版本的ProvidedService版本。

7.原始数据流接口

除了面向服务的通信外,通信管理还提供了一个独立的API,用于处理朝向外部ECU(例如,ECU)的原始二进制数据流。 ADAS系统中的传感器。 该API是静态的,并为Client实现建立通信通道,破坏通信通道以及在通信通道上读取和写入原始数据(字节流)的功能。

原始数据流通道可以由集成商通过应用包含例如以下内容的部署信息来配置。网络端点信息和所选协议。 当前,TCP / IP套接字将用作传输层,但将来可以添加其他替代方案。 Raw Data Stream接口在名称空间ara :: com :: raw中可用。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

飞塔防火墙MIB-OID列表

找了很久,终于找到了官方的文档,包含了很多东西,贴个目录吧,获取资源请见最底部链接。 介绍: FortiGate是全新的下一代防火墙,在整个硬件架构和系统上面都有新的设计,在性能和功能上面都有了很大提升,具有性能高、接口丰富、功能齐全、安全路由交换一体化、性价比高等…...

CSS 透明,文字不透明处理

1.opacity:会使其所有子元素都透明 我们通常是使用 opacity来做背景的透明化处理,该属性被所有浏览器支持,可以大胆使用,透明度从0.0(完全透明)到1.0(完全不透明),但该方法会使其所有子元素都透明,此时若只…...

记录一个docker容器内网络与主机不通的问题(桥接网络不通)

https://blog.csdn.net/weixin_33102135/article/details/111946436 测试docker已经部署上的流程: 进入容器内部执行,脚本。执行成功。 外网telnet连接显示连接不到端口。 在其他机器上部署该docker服务,docker-compse方式,可…...

Hudi 系列(二)- 编译 hudi

编译 hudi 如果是第一次编译 hudi 会花很长时间,maven 本地仓库为空的情况下,我花了40分钟(视网络环境)。编译步骤如下: 下载 releace 源代码,https://hudi.apache.org/releases,现在的最新版本…...

vsftpd2.3.4著名笑脸漏洞复现实战

1.vsftpd手工利用 攻击机kali:192.168.182.133 靶机metasploit:192.168.182.128 先ping一下靶机看看靶机是否存活 接着使用nmap对靶机进行信息收集 这里可以看到版本是vsftpd2.3.4 漏洞是存在的 直接ftp连接靶机 用户名:user:) 密码随意…...

赶紧收藏!javasocket聊天室和私聊

前言 这些算法,都是小编一点一点看的大佬们的方法,自己积累的. 如果有什么描述的不对的地方还望大佬赐教 多交流才能进步,加油,冲冲冲!!! RPC概述 RPC(Remote Procedure Call)即远程过程调用&a…...

<form>标签

HTML-表单 1. 在HTML标签中,<form>标签用来定义表单&#xff0c;来实现用户信息的收集和传递。 <form action"url地址" method"提交的方式" name"表单的名称"></form> 比较get和post&#xff1a; 2. 表单能够包含 input 元…...

.NET 6程序部署到Docker

使用Docker部署应用程序 首先确保已经安装Docker 桌面软件&#xff0c;如下图&#xff1a; 然后&#xff0c;把需要部署到Docker上面的项目&#xff0c;咱们先添加Docker的支持&#xff0c;启动项目右键 -> 添加 -> Docker支持&#xff0c;选择 Linux 然后会自动生成Doc…...

HTML5详解 (前端)

什么是HTML 超文本标记语言 Hyper Text Markup Language W3C 万维网联盟 标准包括&#xff1a; 结构化标准语言&#xff08;HTML、XML&#xff09;表现标准语言&#xff08;CSS&#xff09;和行为标准&#xff08;DOM、ECMAScript&#xff09; 新建project HTML 删除SRC文件…...

我们究竟还要学习哪些Android知识?赶紧收藏!

前言 今年是转折的一年&#xff0c;很多学android开发的小伙伴失业了&#xff0c;虽找到了一份工作&#xff0c;但高不成低不就&#xff0c;下半年金九银十有想法更换一份工作&#xff0c;很多需要大厂面试经验和大厂面试真题的小伙伴&#xff0c;想提前准备刷下题。接下来分享…...

VR垃圾分类_VR环保科普_VR垃圾分类综合解决方案

随着人类生活质量水平的提高&#xff0c;人类生存的环境在不可逆转的变化&#xff0c;自然保护和生态安全越来越引人注目。全球气候变暖、自然灾害频繁&#xff0c;使得保护生态环境迫在眉睫。聚象科技VR环保模拟系统&#xff0c;使体验者“进入”生态环境&#xff0c;身临其境…...

python的matplotlib的常用绘图函数模版

import matplotlib.pyplot as plt # from mpl_toolkits.mplot3d import Axes3D import matplotlib as mpl import numpy as np import pandas as pd import time plt.rcParams[font.sans-serif][simhei]#用于正常显示中文标签 plt.rcParams[axes.unicode_minus]False#用于正常显…...

写给互联网大厂员工的真心话,面试必问

越来越多的人在提“移动端的下半场”、“Android 开发的焦虑”之类的&#xff0c;也有人在喊“技术天天在变&#xff0c;学也学不完”&#xff0c;“昨天 Kotlin 今天 Flutter”。其实我却认为&#xff0c;如果你技术达到了一定程度&#xff0c;你无需太过在意这些。 移动端真…...

Python 模块导入 import ...\from... import...

代码越来越多的时候&#xff0c;我们将代码写到一个.py 文件里&#xff0c;随着代码的增加&#xff0c;代码的维护越来越困难。如果将代码按照不同的功能拆分放到不同的.py文件中&#xff0c;每个.py文件就是一个模块。 不同模块中的变量名可以相同&#xff0c;他们不会受影响…...

盘点golang中的开发神器

本文已收录 https://github.com/lkxiaolou/lkxiaolou 欢迎star。 在Java中&#xff0c;我们用Junit做单元测试&#xff0c;用JMH做性能基准测试&#xff08;benchmark&#xff09;&#xff0c;用async-profiler剖析cpu性能&#xff0c;用jstack、jmap、arthas等来排查问题。 作…...

监控系统实践第12天:5天上手Laravel8.5之路由篇(1/5)

监控系统实践第12天&#xff1a;5天上手Laravel8.5之路由篇&#xff08;1/5&#xff09;前言安装与配置Laravel基础功能&#xff1a;路由(Route)路由是什么&#xff1f;设置路由的请求方式定义路由的路径定义路由的内容闭包中定义内容控制器中定义内容视图中定义内容其它内容的…...

学习响应式BootStrap来写融职教育网站,Bootsrtap第三天nav布局

nav导航布局 <!DOCTYPE html> <html lang"zh_CN"> <head><meta charset"UTF-8"><title>融职教育</title><!-- 移动设备优先--><meta name"viewport" content"widthdevice-width, initial…...

前端常见跨域解决方案(全)

文章目录什么是跨域&#xff1f;什么是同源策略&#xff1f;同源策略限制以下几种行为常见跨域场景跨域解决方案一、 通过jsonp跨域二、 document.domain iframe跨域三、 location.hash iframe跨域四、 window.name iframe跨域五、 postMessage跨域六、 跨域资源共享&#x…...

因为一个字符校对问题,我的大厂面试挂了

摘要&#xff1a;字符集是一套符号和编码。校对规则是在字符集内用于比较字符的一套规则。 本文分享自华为云社区《一个字符校对规则引发的血案》&#xff0c;原文作者&#xff1a;DRS技术快客 。 问题现场 我们先看一个建表语句 CREATE TABLE collate_test ( val1 char(32…...

AndroidUtilCode 最强大的工具类

一、前言&#xff1a; AndroidUtilCode 是一个强大易用的安卓工具类库&#xff0c;它合理地封装了安卓开发中常用的函数&#xff0c;具有完善的 Demo 和单元测试&#xff0c;利用其封装好的 APIs 可以大大提高开发效率&#xff0c;如今它主要包括两部分模块&#xff0c;其一是…...

GitHub学习之GitHub相关的几个网站

1.https://github.community/ GitHub社区&#xff0c;在里面可以跟根底的大神进行讨论 2.https://docs.github.com/ GitHub相关文档&#xff0c;小白必看&#xff0c;我看了大概3天&#xff0c;从头到尾耐心看一篇&#xff0c;操作一遍&#xff0c;可以少踩很多坑 3.h…...

Study_microblog笔记Part 1--Jinja2的应用

模板有助于实现页面展现和业务逻辑之间的分离。 在Flask中作用Jinja2模板&#xff0c;模板被编写为单独的文件&#xff0c;存储在应用程序包内的templates文件夹中。 &#xff11;、在app下创建一个存储模板的目录templates,创建第一个模板文件&#xff0c;这个文件写在app/tem…...

vsftpd2.3.4著名笑脸漏洞复现实战

1.vsftpd手工利用 攻击机kali&#xff1a;192.168.182.133 靶机metasploit&#xff1a;192.168.182.128 先ping一下靶机看看靶机是否存活 接着使用nmap对靶机进行信息收集 这里可以看到版本是vsftpd2.3.4 漏洞是存在的 直接ftp连接靶机 用户名&#xff1a;user:) 密码随意…...

Twitter教程:如何下载Twitter数据副本?

Twitterrific Mac破解版是一款非常现代化优秀的桌面Twitter客户端,这款软件不仅看起来惊人,它的表现也是非常棒的,本文给大家的带来了如何下载Twitter数据副本的教程。 教程如下 在 iPhone 或 iPad 上打开“Twitter”。&#xff08;您也可以使用 Twitter.com 网站&#xff09…...

记录一个docker容器内网络与主机不通的问题(桥接网络不通)

https://blog.csdn.net/weixin_33102135/article/details/111946436 测试docker已经部署上的流程&#xff1a; 进入容器内部执行&#xff0c;脚本。执行成功。 外网telnet连接显示连接不到端口。 在其他机器上部署该docker服务&#xff0c;docker-compse方式&#xff0c;可…...

Java面试list 和 set 区别

List和Set的区别 List:&#xff1a;有序&#xff0c;按对象进入的的序保存对象&#xff0c;可可允许多个Null元素对象&#xff0c;可以使用lterator迭取出所有元素。在逐一便历&#xff0c;也可以使用get(int index)获取指定下标的元素 Set&#xff1a;无序&#xff0c;不可重复…...

CSS 透明,文字不透明处理

1.opacity&#xff1a;会使其所有子元素都透明 我们通常是使用 opacity来做背景的透明化处理&#xff0c;该属性被所有浏览器支持&#xff0c;可以大胆使用&#xff0c;透明度从0.0(完全透明)到1.0(完全不透明)&#xff0c;但该方法会使其所有子元素都透明&#xff0c;此时若只…...

我去!CSDN还有这宝贝——CSDN浏览器插件深度评测

我去&#xff01;CSDN还可以这么玩——CSDN浏览器插件评测前言一、CSDN浏览器插件下载安装二、玩转新标签页2.1 新标签页界面亮瞎了2.2 不喜欢新标签那个壁纸&#xff0c;随时换三、玩转网站商店四、永久去广告功能评测4.1 五年了&#xff0c;你知道这五年我怎么过得吗五、万能…...

飞塔防火墙MIB-OID列表

找了很久,终于找到了官方的文档,包含了很多东西,贴个目录吧,获取资源请见最底部链接。 介绍: FortiGate是全新的下一代防火墙,在整个硬件架构和系统上面都有新的设计,在性能和功能上面都有了很大提升,具有性能高、接口丰富、功能齐全、安全路由交换一体化、性价比高等…...

IntentService源码分析指南

转载链接&#xff1a;https://www.jianshu.com/p/8a3c44a9173a...

c 语言中fgetc函数,C 库函数 - fgetc()

描述C 库函数 int fgetc(FILE *stream) 从指定的流 stream 获取下一个字符(一个无符号字符)&#xff0c;并把位置标识符往前移动。声明下面是 fgetc() 函数的声明。int fgetc(FILE *stream)参数stream -- 这是指向 FILE 对象的指针&#xff0c;该 FILE 对象标识了要在上面执行操…...

c语言fgetc函数作用,C语言中fgetc函数的使用方法

该函数包含在C语言中的stdio.h头文件中&#xff0c;主要功能是从流中读取一个字符&#xff0c;并增加文件指针的位置。函数原型&#xff1a;int fgetc(FILE *fp);函数功能&#xff1a;从流中读取字符&#xff0c;即从fp所指定的文件中取得下一个字符。这里需要注意&#xff0c;…...

fgetc函数

/*******************************************功能&#xff1a;从指定的文件流中读取一个字节 *参数&#xff1a;* stream FILE *&#xff08;流指针&#xff09;*返回值&#xff1a; * 成功返回读到的字符* 失败返回errno* 文件结束返回EOF**************************…...

matlab fgetc,fgetc函数的作用是什么

计算机cpu上标明的2.4g是指什么计算机cpu上标明的2.4g是指cpu的时钟频率。时钟频率又称为时钟频率速度&#xff0c;是指同步电路中时钟的基础频率&#xff0c;以“若干次周期每秒”来度量。它是评定cpu性能的重要指标&#xff0c;一般来说&#xff0c;主频数值越大越好。fgetc函…...

php fgetc,PHP 文件读取 fread、fgets、fgetc、file_get_contents 与 file 函数

fread()、fgets()、fgetc()、file_get_contents() 与 file() 函数用于从文件中读取内容。fread() 函数用于读取文件(可安全用于二进制文件)。语法&#xff1a;string fread( int handle, int length )fread() 从文件指针 handle 读取最多 length 个字节。当遇到下列任何一种情况…...

fgetc php,php fgetc函数怎么用

php fgetc函数用于从文件指针中读取一个字符&#xff0c;其语法是fgetc(file)&#xff0c;参数file必需&#xff0c;规定要检查的文件。php fgetc函数怎么用&#xff1f;定义和用法fgetc() 函数从文件指针中读取一个字符。语法fgetc(file)参数file必需。规定要检查的文件。说明…...

fgetc

fgetcint fgetc(FILE * stream); 1. Get character from stream Returns the character currently pointed by the internal file position indicator of the specified stream. The internal file position indicator is then advanced to the next character....

C语言中fgetc()、fgets()之间的区别

在学习文件那一快关于读写文件中的字符让我折腾了一阵子&#xff0c;总是把这几个函数混淆&#xff0c;今天有时间就整理下&#xff0c;并分享下个人的心得&#xff0c;希望对大家有帮助。 1.fgetc() 和 fgets() 之间的区别 fgetc 是 file get char 的缩写&#xff0c;意思是…...

C语言fgetc和fputc函数用法讲解

在C语言中&#xff0c;读写文件比较灵活&#xff0c;既可以每次读写一个字符&#xff0c;也可以读写一个字符串&#xff0c;甚至是任意字节的数据&#xff08;数据块&#xff09;。本节介绍以字符形式读写文件。 以字符形式读写文件时&#xff0c;每次可以从文件中读取一个字符…...

c语言fgetc函数_C语言中的fgetc()函数与示例

c语言fgetc函数C中的fgetc()函数 (fgetc() function in C) Prototype: 原型&#xff1a; int fgetc(FILE *filename);Parameters: 参数&#xff1a; FILE *filenameReturn type: int 返回类型&#xff1a; int Use of function: 使用功能&#xff1a; In the file handling…...

线性代数及其应用(英文第四版)下载

线性代数及其应用&#xff08;英文第四版&#xff09; PDF原文下载地址&#xff1a;https://anandinstitute.org/pdf/linearapplication.pdf...

Mac中搜狗输入法在各应用中默认中英文状态

使用Mac&#xff0c;而且也使用搜狗输入法的同学&#xff0c;有福了&#xff0c;分享下在其中提高效率的小窍门。 如下是搜狗输入法的设置界面&#xff0c; 1、在高级的选项中。 2、我们在自动切换到英文状态的前面点击勾选状态。 3、点击App清单。 出现了下图&#xff0c;我…...

APP上架各大应用市场对比

因公司上架APP&#xff0c;在上架APP中发现了各种不同的问题&#xff0c;拿出来跟大家分享 1. 苹果appstore&#xff1a;每年拿钱养着&#xff0c;上架审核很严格&#xff0c;不需要软著&#xff0c;回复全程英文&#xff0c;真的会有人去测&#xff0c;因时差问题&#xff0c…...

线性代数及其应用(原书第5版)

作者:[美] 戴维 C.雷&#xff08;David C.Lay&#xff09;&#xff0c;史蒂文 R.雷&#xff08;Steven R.Lay&#xff09; 著&#xff0c;刘深泉 译 出版社:机械工业出版社 品牌:机械工业出版社 出版时间:2018-07-01 线性代数及其应用&#xff08;原书第5版&#xff09;...

计算机网络笔记5 传输层

文章目录前言一、运输层概述二、运输层的端口与复用、分用的概念三、UDP协议 和 TCP协议 对比用户数据报协议 UDP&#x1f4a6;&#xff08;User Datagram Protocol&#xff09;传输控制协议 TCP&#x1f4a6;&#xff08;Transmission Control Protocol&#xff09;四、TCP协议…...

栈的实际应用

概述 1)栈的英文为(stack) 2)栈是一个先入后出的有序列表 3)栈是限制线性表中元素的插入和删除只能在线性表的同一端进行的一种特殊线性表,允许插入和删除的一端,为变化的一段,称为栈顶(TOP),另一端为固定的一段,称为栈底(BOTTOM) 4)根据栈的定义可知,最先放入栈中元素在栈底,…...

离散数学及其应用(英文版 第7版)及答案

离散数学及其应用&#xff08;英文版 第7版&#xff09;及答案百度网盘链接&#xff1a;Discrete Mathematics and Its Applications 7th.提取码&#xff1a;reb1...

outlook计算机应用操作题,《计算机应用基础》Internet应用题型专项练习

1、(说明&#xff1a;考生单击窗口下方的“打开[Internet应用]应用程序”启动IE)某网站的网址是&#xff1a;http://gr.xidian.edu.cn/index.do&#xff0c;打开此主页&#xff0c;并将该页面的内容以仅HTML格式保存到考生文件夹下&#xff0c;并命名为“西电研究生网站.htm”。…...

华为应用市场业务介绍

华为应用市场业务介绍 前言&#xff1a;华为应用市场是华为公司的移动应用分发平台&#xff0c;它为用户提供应用的推荐、搜索、安装、管理、分享移动应用的服务&#xff0c;帮助开发者在华为应用市场高效提升商业价值。 目录华为应用市场业务介绍一、应用创建并管理1.准备工作…...

单体架构(Monolith)与微服务架构(MicroService)

Monolith(单体应用)架构 通常情况下&#xff0c;服务由多个模块所组成&#xff0c;各模块会根据自身所提供的功能不同具有一个明确的边界&#xff0c;在编译时&#xff0c;这些模块将被打包成为一个个jar包&#xff0c;并最终合并在一起形成一个war包(最终部署的时候只有一份wa…...