重新认识AUTOSAR Interface

news2024/12/24 0:20:07

核心:

  • S/R interface: data element
  • C/S interface: operation (with arguement)
  • M/S interface: mode group (macro) 

其实 data element,operation,mode group 才是核心,他们可以看作是用户自定义的变量类型。当定义了对应的interface以后,他们才实例化【为全局变量】,各个module可以通过该interface去 读/写 这些个data element,operation,mode group

Mode switch interface:

mode switch interface的架构:

  • mode switch interface

    • mode group
      • mode_1
      • mode_2

【这里的mode_1/ mode_2 可以看作是enum(就很像是state machine),但之后仍需声明对应的implementation data type】 

 

mode switch interface的创建流程:

1 新建mode group,并声明下面有哪几种mode

在desired arxml 文件中右键创建mode group

2 创建mode switch interface,并把该mode group绑定在该interface下面

在desired arxml 文件中右键打开data dictronary 界面,创建mode switch interface,可以看到会实例化一个modegroup_hao 类型的(全局变量)ModeDeclarationGroupPrototype_Hao

至此: 任何module都可以通过声明一个port,通过该mode switch interface来对该ModeDeclarationGroupPrototype_Hao 赋值为mode_1 / mode_2,或者读取当前ModeDeclarationGroupPrototype_Hao 的值是 mode_1 / mode_2

3 DataType Mapping 里面 声明该 mode group 下面的mode 是什么implementation data type

Client server interface:

Client server interface的架构:

  • Client server interface
    • operation_1
    • operation_2

【这里的operation可以看作是一个macro/flag,所以之后不需要声明implementation data type】

Client server interface的创建流程:

1 直接创建Client server interface,并申明下面有几个operation即可

至此: 任何module都可以通过声明一个port,通过该client server interface设定指定runnable由该operation【event】触发运行,或者触发产生该operation【event】

Sender receiver interface:

Sender receiver interface的架构:

  • Sender receiver interface
    • data element_1
    • data element_2

【这里的data element_1/ data element_2 是靠ADT定义的全局变量,所以之后需声明对应的implementation data type】 

Sender receiver interface的创建流程:

1 创建需要使用的application data type

直接创建application data type即可(需要创建compuMethod吗)

2 创建Sender receiver interface,并声明data element

上一步的application data type在这里用上了,而且产生了实例化的DataElements_VariableDataPrototype_0 和 DataElements_VariableDataPrototype_1

至此: 任何module都可以通过声明一个port,通过该 sender receiver interface对 DataElements_VariableDataPrototype_0 /DataElements_VariableDataPrototype_1 进行读写

3 DataType Mapping 里面 声明application data type 对应什么implementation data type

举例:

当BswM想读取 DCM的 EcuReset 的mode,然后传递/通知给SWC的时候,具体流程是:

1 当DCM模块里面配置了相应的0x11 EcuReset service之后,就会在DCM_BSWMD.arxml文件内自动生成对应mode group数据类型,并且在DCM_Cfg_SWCD.arxml生成相应的mode switch interface,以及实例化的ModeGroupPrototype_DcmEcuReset,以及相应的Pport

而且DCM的mainfunction里面会去对ModeGroupPrototype_DcmEcuReset进行赋值

【也就是说,DCM模块自己在通过ModeSwitchPoint不断的更新ModeGroupPrototype_DcmEcuReset这个全局变量,别的模块想得知该消息的话,通过该port去查询即可】

 

2 因为DCM在DCM_Cfg_SWCD.arxml已经生成了相应的mode switch interface,所以BswM直接查询该实例化的ModeGroupPrototype_DcmEcuReset的值即可

 

3 SWC是最终的接收端,于是SWC需要自己定义所需的mode group,然后定义相应的mode switch interface。然后BswM先创建一个与该mode switch interface下面mode group所对应的port,然后在action list 里面去对该mode switch interface赋值即可

【从上面的截图可以看出来,BswM对所有的(BSW和SWC)mode group prototype都有直接读取的权力(会自动生成相应的port和interface,user不用管),唯一要做的就是要告诉BswM输出的action 是 switch port 还是 request port】


 

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

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

相关文章

柯桥实用口语学习,韩语口头禅系列短句-恋爱篇

사랑해.我爱你。 너한테 미치겠어.我为你疯狂。 난 니거야.我是你的。 넌 내거야.你是我的。 너 잘 생겼어.你很帅。 네가 뽀뽀/키스 해도 돼? 我可以吻你吗?

基于虚拟阻抗的下垂控制——孤岛双机并联Simulink仿真

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

[Spring] Spring5——事务简介

目录 一、事务概述 1、什么是事务 2、事务的四个特性(ACID) 二、搭建事务操作环境 1、dao、service 两层结构 2、示例 3、模拟异常(事务场景引入) 三、Spring 事务管理 1、事务管理介绍 2、声明式事务管理——注解方式 …

c++ 学习 之 继承的基本语法

继承可以减少重复的代码 语法&#xff1a; class 子类 : 继承方式 父类子类 也称为 派生类 父类 也称为 基类 class BasePage { public:void header(){cout << "首页&#xff0c;公开课&#xff0c;登录&#xff0c;注册。。。&#xff08;公共头部&#xff09…

C/C++——内存管理

1.为什么存在动态内存分配 灵活性 静态内存分配是在编译时确定的&#xff0c;程序执行过程中无法改变所分配的内存大小&#xff1b;动态内存分配可以根本程序的运行环境来动态分配和释放空间&#xff0c;提供了更大的灵活性 动态数据结构 有些数据结构的大小和结构在编译时…

input输入多行文本:删除“首先 其次 此外 总的来说”

input允许多行输入 233.3表示停止输入input输入多行文本文本 &#xff08;空行&#xff09; &#xff08;空行&#xff09; &#xff08;空行&#xff09; 正文 &#xff08;空行&#xff09; &#xff08;空行&#xff09; &#xff08;空行&#xff09; 正文 &#xff08;空行…

国庆节:不仅仅是庆祝,更是成长与体验

目录 国庆节&#xff1a;不仅仅是庆祝&#xff0c;更是成长与体验引言第一部分&#xff1a;旅途风景目的地选择旅行亮点与国庆的联系 技术主题完成的博文国庆与技术 第三部分&#xff1a;回家的路为什么回家艰难险阻家与国庆 结论 国庆节&#xff1a;不仅仅是庆祝&#xff0c;更…

【Spring笔记02】Spring中的IOC容器和DI依赖注入介绍

这篇文章&#xff0c;主要介绍一下Spring中的IOC容器和DI依赖注入两个概念。 目录 一、IOC控制反转 1.1、什么是IOC 1.2、两种IOC容器 &#xff08;1&#xff09;基于BeanFactory的IOC容器 &#xff08;2&#xff09;基于ApplicationContext的IOC容器 二、DI依赖注入 2.…

Vue MVVM 模型

一、什么事MVVM 模型 MVVM 是 Model-View-ViewModel 的缩写&#xff0c;它是一种软件架构风格 Model&#xff1a;模型&#xff0c; 数据对象&#xff08;data 函数&#xff09;&#xff0c;如下图 View&#xff1a;视图&#xff0c;模板页面&#xff08;用于渲染数据&#xf…

掌握Mac菜单栏,尽在Bartender 5!菜单栏图标管理软件的终极推荐!

作为Mac用户&#xff0c;菜单栏是我们每天使用电脑时最常接触的区域之一。然而&#xff0c;随着我们安装越来越多的应用程序&#xff0c;菜单栏上的图标往往变得拥挤不堪&#xff0c;给我们的工作和生活带来了不便。 幸运的是&#xff0c;有了Bartender 5这款强大的菜单栏图标…

数据结构与算法(Python)

数据结构与算法 算法基础时间复杂度空间复杂度 递归实例&#xff1a;汉诺塔问题 查找顺序查找&#xff08;线性查找&#xff09;二分查找&#xff08;折半查找&#xff09;比较 排序冒泡排序选择排序插入排序快速排序快排和冒泡的时间比较 堆排序树堆堆的向下调整 堆排序过程时…

除静电设备的工作原理及应用

除静电设备主要包括静电消除器、静电接地装置、静电消除风机等&#xff0c;它们的工作原理和应用如下&#xff1a; 静电消除器&#xff1a;静电消除器的工作原理是利用电离和电击的原理来中和电荷。它包括一个金属板和一个高压电源。当静电消除器接通电源后&#xff0c;金属板…

Redis最常见应用场景

缓存&#xff08;Cache&#xff09; Redis的第一个应用场景是Redis作为缓存对象来加速Web应用的访问。 在该场景下&#xff0c;有一些存储于数据库中的数据会被频繁访问&#xff0c;如果频繁的访问数据库&#xff0c;数据库负载会升高&#xff0c;同时由于数据库IO比较慢&…

阿里云服务器更换公网IP地址的方法流程

阿里云服务器可以更换IP地址吗&#xff1f;可以的&#xff0c;创建6小时以内的云服务器ECS可以免费更换三次公网IP地址&#xff0c;超过6小时的云服务器&#xff0c;可以将公网固定IP地址转成弹性EIP&#xff0c;然后通过换绑EIP的方式来更换IP地址。阿里云服务器网分享阿里云服…

阿里云服务器地域节点怎么选择合适?啥是可用区?

阿里云服务器地域和可用区怎么选择&#xff1f;地域是指云服务器所在物理数据中心的位置&#xff0c;地域选择就近选择&#xff0c;访客距离地域所在城市越近网络延迟越低&#xff0c;速度就越快&#xff1b;可用区是指同一个地域下&#xff0c;网络和电力相互独立的区域&#…

基于遗传算法的新能源电动汽车充电桩与路径选择(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

JavaScript系列从入门到精通系列第十六篇:JavaScript使用函数作为属性以及枚举对象中的属性

文章目录 前言 1&#xff1a;对象属性可以是函数 2&#xff1a;对象属性函数被称为方法 一&#xff1a;枚举对象中的属性 1&#xff1a;for...in 枚举对象中的属性 前言 1&#xff1a;对象属性可以是函数 对象的属性值可以是任何的数据类型&#xff0c;也可以是函数。 v…

RHEL - 订阅、注册系统和 Yum Repository

《OpenShift / RHEL / DevSecOps 汇总目录》 演示环境说明 本文需要有 redhat.com 账号以及包含 RHEL 的有效订阅。 演示环境使用了通过 minimal 方式安装的 RHEL 7.6 环境&#xff0c;RHEL 可以访问互联网。 注册和注销 RHEL 系统 在 RHEL 中执行以下命令查看当前 RHEL 版…

第P8周—YOLOv5-C3模块实现

>- **&#x1f368; 本文为[&#x1f517;365天深度学习训练营](https://mp.weixin.qq.com/s/Nb93582M_5usednAKp_Jtw) 中的学习记录博客** >- **&#x1f356; 原作者&#xff1a;[K同学啊 | 接辅导、项目定制](https://mtyjkh.blog.csdn.net/)** >- **&#x1f680;…

transformer不同的包加载模型的结构不一样

AutoModel AutoModelForTokenClassification 结论&#xff1a; AutoModel加载的模型与AutoModelForTokenClassification最后一层是不一样的&#xff0c;从这个模型来看&#xff0c;AutoModelForTokenClassification加载的结果是对的 问题&#xff1a; 为什么AutoModel和Aut…