Adaptive AUTOSAR——State Management(VRTE 3.0 R21-11)

news/2024/4/27 17:19:05/文章来源:https://blog.csdn.net/usstmiracle/article/details/130159099

状态管理是自适应平台服务中的一个功能集群。

在自适应平台中,状态决定了一组活动的自适应应用程序。

特定于项目的应用程序,即状态管理器,决定何时请求状态更改,从而更改当前活动的应用程序集。状态管理器是特定于项目的,因为AUTOSAR没有对何时更改状态的语义进行标准化。Adaptive Platform通过C++API提供状态更改机制来请求状态更改,序列化功能组的状态更改请求,并在执行管理中管理实际状态转换,从而支持State Manager应用程序。

状态管理功能集群是自适应平台服务的一部分,但从AUTOSAR体系结构的角度来看,它与执行管理密切相关,例如,ara::exec StateClient类支持状态更改请求,并提供已完成状态更改的通知。该类由执行管理而非状态管理提供。

作为一项服务,状态管理使用ara::com面向服务的通信提供对自适应应用程序的访问。状态管理器使用其中一个标准化服务接口提供服务;

TriggerIn_<StateGroup>, TriggerOut_<StateGroup>, or TriggerInOut_<StateGroup>.

服务接口具有用于获取当前状态(Notifier)和请求新状态(Trigger)的字段。

AUTOSAR自适应应用程序可以使用字段对系统状态变化做出反应或影响系统状态。

8.2 Responsibilities

在自适应平台中,状态管理功能集群在两个级别上支持状态更改,从而支持机器内一组活动自适应应用程序的更改:

MachineFG:机器的一般状态,例如STARTUP、RUNNING等。

AUTOSAR定义了许多预定义的MachineFG状态,并且可以根据需要定义其他状态。

功能组状态–机器中项目定义的状态,用于控制(通常是功能性的)相关应用程序实例的执行。

自适应平台内还有第三级状态;实例的执行状态。此状态由应用程序内部管理实例本身,例如使用ReportExecutionState API,因此不受状态管理功能集群的控制。允许的执行状态由AUTOSAR定义,不能扩展。

在功能组状态的每次更改时,自适应平台可以被配置为启动和/或停止一个或多个应用程序实例。当应用程序实例被分配到一个或多个功能组状态时,实例和状态之间的关联发生在执行管理配置期间。

MachineFG是函数组的一种特殊情况。在RTA-VRTE入门套件中,两个状态系统由通用API管理。对于本文档,术语“功能组状态”应理解为包括MachineFG。

当状态管理器对功能组状态更改的请求被功能组状态控制器接受并采取行动时(见图8.2),将考虑每个状态下分配的应用程序实例:

  • 分配给“旧”和“新”状态的实例仍在运行。
  • 未分配到“新”状态的实例将停止。
  • 未分配到“旧”状态的实例将启动。

请注意,不可能将实例同时分配给“旧”和“新”状态。

8.2.1 Management or Manager?

状态管理在自适应平台体系结构中被描述为一个独特的功能集群。然而,国家变化的责任实际上是分开的:

State Manager–负责决定何时更改功能组状态。

State Management-负责处理功能组状态更改,例如当状态管理器请求时以及用于提供请求这样的改变的接口。

根据职责划分,状态管理功能集群在RTA-VRTE入门套件中进行了划分。状态管理职责集成在执行管理中,例如功能组状态控制器(见图8.2),状态管理职责包含在RTA-VRTE入门套件API支持的用户应用程序中,以请求状态更改。

状态管理器应用程序决定何时更改功能组状态。存在哪些功能组和状态以及何时发生状态更改是特定于项目的,因此AUTOSAR没有对其进行标准化。

RTA-VRTE入门套件SK包括一个示例应用程序,其中包括一个简单的示例状态机。

执行管理中的状态管理功能集群的元素支持与用户的状态管理器应用程序的双向通信;

首先,用户应用程序可以请求状态改变并读取功能组的当前状态,其次,状态管理功能集群可以在所请求的功能组状态转换完成时通知状态管理器应用程序。

在执行管理配置期间,当功能集群附属设置为状态管理器时,状态管理器应用程序实例被标记为这样。如果定义了多个状态管理器应用程序实例,则是一个错误。

状态管理器应用程序实例应分配给所有MachineFG状态,以确保它在所有状态下都保持运行——否则,当输入未分配应用程序实例的MachineFG时,它将被执行管理终止。

8.2.2 State Machine

在经典平台中,ECU配置以ECU状态管理器和BSW模式管理器的形式包含ECU内状态管理方式的完整描述。ECU配置描述是高度通用的,能够表达许多不同的状态和启动状态之间转换的条件。然而,通用性是有代价的;配置既复杂又脆弱。

自适应平台采用了不同的方法;平台决定何时在应用程序域中启动状态更改,而不是一般但复杂的描述。因此,用户实现了状态管理器应用程序,该应用程序封装了一个状态机,该状态机决定必要条件何时到位,从而启动状态转换。然而,状态更改是如何发生的,由自适应平台本身通过状态管理提供的API进行管理。

8.2.3 Function Group Control

在RTA-VRTE入门套件中,功能组的创建和控制是执行管理的一个组成部分。

执行管理中的状态管理功能响应来自用户的状态管理器应用程序的状态更改请求。用户的State Manager应用程序包含StateClient类的一个实例,该实例定义了客户端应用程序请求状态更改和读取功能组的当前状态的接口。

用户的State Manager应用程序实例必须这样标记(第4.5.4.5节)。这在State Manager和Execution Management之间建立了链接。如果不这样做,那么状态更改请求将导致错误。

响应来自状态管理器的功能组状态更改请求,状态管理功能集群通过与执行管理中的流程控制交互启动或停止应用程序实例。一旦状态更改完成,它们将通过SetState API返回的Future通知给用户的state Manager应用程序。

 

 8.3 Application Access

AUTOSAR状态管理API由StateClient的一个实例提供。在RTA-VRTE Starter Kit中,此类是执行管理的一个组成部分,因此位于ara::exec命名空间中。

使用ISOLAR VRTE创建新的功能组和状态,请参见第4.4.3节。

然后在执行管理配置期间访问功能组/状态,例如,将进程分配给状态。然后,组和状态是执行管理基于FlatCFG数据的配置的一部分,请参见第4.10.1节。

一旦创建了函数组或函数组状态,并且该状态是基于FlatCFG数据的配置的一部分,应用程序就可以使用FunctionGroup和FunctionGroupState类的实例对其进行访问。

8.3.1 Function Group

功能组,包括预定义的MachineFG功能组,在执行管理配置期间使用ISOLAR VRTE进行配置。

实例化FunctionGroup首先需要通过调用Create函数来获得构造函数。Create函数采用单个参数,即function Group的›name›:

ara::core::Result<FunctionGroup> stm1 =FunctionGroup::Create( "name" );

Create的返回类型是Result,并且将包含函数组(可以使用Value访问)或错误。

然后使用构造函数来创建实际的FunctionGroup对象:

FunctionGroup fg1( stm1.Value().short_name );

最初使用Create创建构造函数,然后使用构造函数字符串创建FunctionGroup的两步方法确保实际的FunctionGroup对象创建不会失败。

8.3.2 Function Group State

一旦获得FunctionGroup对象,就可以使用它来创建表示函数组内状态的Function GroupState对象。与父FunctionGroup对象一样,首先使用构造函数,然后使用实际对象创建的两步方法是必要的。

// Create constructor token
auto t_on = FunctionGroupState::Create( fg1, "name" );
if ( t_on.HasValue() )
{// Valid constructor tokenFunctionGroupState sOn( t_on.Value().short_name_fg,t_on.Value().short_name_state );...

8.3.3 Process Assignment进程分配

在配置过程中,必须将每个流程(应用程序实例)分配给一个或多个功能组,以确保其由执行管理启动。

AUTOSAR状态管理需要定义功能组MachineFg。

可以在执行管理配置期间访问该组,然后将每个进程分配给AUTOSAR定义的机器状态之一,例如STARTUP。

ISOLAR VRTE的执行编辑器支持对配置的功能组状态进行进程分配。

8.3 Application Access

AUTOSAR状态管理API由StateClient的一个实例提供。在RTA-VRTE Starter Kit中,此类是执行管理的一个组成部分,因此位于ara::exec命名空间中。

使用ISOLAR VRTE创建新的功能组和状态,请参见第4.4.3节。

然后在执行管理配置期间访问功能组/状态,例如,将进程分配给状态。然后,组和状态是执行管理基于FlatCFG数据的配置的一部分,请参见第4.10.1节。

一旦创建了函数组或函数组状态,并且该状态是基于FlatCFG数据的配置的一部分,应用程序就可以使用FunctionGroup和FunctionGroupState类的实例对其进行访问。

8.3.1 Function Group

功能组,包括预定义的MachineFG功能组,在执行管理配置期间使用ISOLAR VRTE进行配置。

实例化FunctionGroup首先需要通过调用Create函数来获得构造函数。Create函数采用单个参数,即function Group的›name›:

ara::core::Result<FunctionGroup> stm1 =FunctionGroup::Create( "name" );

Create的返回类型是Result,并且将包含函数组(可以使用Value访问)或错误。

然后使用构造函数来创建实际的FunctionGroup对象:

FunctionGroup fg1( stm1.Value().short_name );

最初使用Create创建构造函数,然后使用构造函数字符串创建FunctionGroup的两步方法确保实际的FunctionGroup对象创建不会失败。

8.3.2 Function Group State

一旦获得FunctionGroup对象,就可以使用它来创建表示函数组内状态的Function GroupState对象。与父FunctionGroup对象一样,首先使用构造函数,然后使用实际对象创建的两步方法是必要的。

// Create constructor token
auto t_on = FunctionGroupState::Create( fg1, "name" );
if ( t_on.HasValue() )
{// Valid constructor tokenFunctionGroupState sOn( t_on.Value().short_name_fg,t_on.Value().short_name_state );...

8.3.3 Process Assignment进程分配

在配置过程中,必须将每个流程(应用程序实例)分配给一个或多个功能组,以确保其由执行管理启动。

AUTOSAR状态管理需要定义功能组MachineFg。

可以在执行管理配置期间访问该组,然后将每个进程分配给AUTOSAR定义的机器状态之一,例如STARTUP。

ISOLAR VRTE的执行编辑器支持对配置的功能组状态进行进程分配。

未能将流程分配给至少一个功能组(包括MachineFG)将导致执行管理部门永远无法启动应用程序。

8.4 AUTOSAR服务

AUTOSAR服务由State Manager应用程序提供,并支持自适应应用程序的标准化机制,以影响项目特定的状态机。

 

 

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

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

相关文章

基于NXP iMX8M Mini处理器测试DPDK

By Toradex秦海 1). 简介 DPDK (Data Plane Development Kit) 软件是一组用户空间库和驱动程序&#xff0c;可加速在所有主要 CPU 架构上运行的网络数据包处理工作负载&#xff0c;以便提升整个网络数据服务的QoS。其最早由 Intel 大约 2010年创建&#xff0c;后由6WIND公司发…

【CSS】元素显示与隐藏 ( display 隐藏对象 | visibility 隐藏对象 | overflow 隐藏对象 )

文章目录一、元素的显示与隐藏二、display 隐藏对象1、display 隐藏对象语法说明2、display 显示元素代码示例3、display 隐藏元素代码示例三、visibility 隐藏对象1、visibility 隐藏对象语法说明2、visibility 显示对象代码示例3、visibility 隐藏对象代码示例四、overflow 隐…

96年阿里P7晒出工资单:狠补了这个,真香...

最近一哥们跟我聊天装逼&#xff0c;说他最近从阿里跳槽了&#xff0c;我问他跳出来拿了多少&#xff1f;哥们表示很得意&#xff0c;说跳槽到新公司一个月后发了工资&#xff0c;月入5万多&#xff0c;表示很满足&#xff01;这样的高薪资着实让人羡慕&#xff0c;我猜这是税后…

MongoDB 聚合管道的集合关联($lookup)及合并($unionWith)

目前为止&#xff0c;我们已经介绍了一部分聚合管道中的管道参数&#xff1a; $match&#xff1a;文档过滤 $group&#xff1a;文档分组&#xff0c;并介绍了分组中的常用操作&#xff1a;$addToSet&#xff0c;$avg&#xff0c;$sum&#xff0c;$min&#xff0c;$max等。 $add…

可用的rtsp ,rtmp地址以及使用VLC和ffmpeg 播放视频流

可用的 rtmp地址: rtmp://ns8.indexforce.com/home/mystream 可用的 rtsp地址: rtsp://wowzaec2demo.streamlock.net/vod/mp4:BigBuckBunny_115k.mp4 可搭配VLC播放器使用&#xff0c;以及虚幻4 流媒体使用&#xff0c;实现直播效果 1.使用VLC 播放&#xff1a;https://www.vi…

某某客户的一次勒索病毒应急响应

Lockbit勒索病毒应急响应背景1、应急处理排查2、勒索病毒来源分析3、勒索病毒分析4、勒索病毒解密5、主机分析分析6、后续安全加固和改进措施结论背景 美好的周六刚开始&#xff0c;眼睛一睁&#xff0c;领导就发消息&#xff0c;说某客户中了勒索病毒&#xff0c;特别着急&am…

2023年第三届智能机器人与系统国际会议(ISoIRS 2023) | IEEE-CPS独立出版

2023年第三届智能机器人与系统国际会议(ISoIRS 2023) | IEEE-CPS独立出版 会议简介 Brief Introduction 2023年第三届智能机器人与系统国际会议(ISoIRS 2023) 会议时间&#xff1a;2023年5月26日-28日 召开地点&#xff1a;中国长沙 大会官网&#xff1a;www.isoirs.org ISoIRS…

项目打包记录提交id

某天上午正在摸鱼的小邓&#xff0c;突然被领导拉倒一个2年前项目的现场问题沟通群&#xff0c;说是现场数据无法入库&#xff0c;需要排查&#xff0c;奈何不知道版本&#xff0c;无奈的小邓值得用时间记录一个点一个点的从gitlab中查找&#xff0c;为了防止后续提供到现场的版…

基于DSP+FPGA的机载雷达伺服控制系统的硬件设计与开发(一)总体设计

2.1 功能要求及性能指标 2.1.1 功能要求 &#xff08;1&#xff09;具备方位和俯仰两轴运动的能力&#xff1b; &#xff08;2&#xff09;方位轴可实现预置、周扫和扇扫功能&#xff1b; &#xff08;3&#xff09;俯仰轴可实现预置功能。 2.1.2 性能指标 &#xff08;1&#…

江南爱窗帘十大品牌,怎么合理的搭配窗帘配色

窗帘行业圈&#xff1a;窗帘行业内部交流圈&#xff0c;窗帘从业者的交流内部圈。 当阳光照进房间的那一刻&#xff0c; 光线给空间带来了无限的可能。 窗边的帘帐既是美丽的风景 又是可爱的魔术师。 在光影变幻的时空里 让你的生活布满温馨和奇幻。 1.窗帘材质怎么选 窗帘的材…

Voting_Averaging算法预测银行客户流失率

Voting_Averaging算法预测银行客户流失率 描述 为了防止银行的客户流失&#xff0c;通过数据分析&#xff0c;识别并可视化哪些因素导致了客户流失&#xff0c;并通过建立一个预测模型&#xff0c;识别客户是否会流失&#xff0c;流失的概率有多大。以便银行的客户服务部门更…

Qt Quick - 分隔器综述

Qt Quick - 分隔器综述一、概述二、MenuSeparator 控件1. 用法&#xff1a;三、ToolSeparator 控件1. 用法一、概述 Qt Quick Controls 提供了多种分隔符&#xff0c;其实就是分割一下MenuBar和ToolBar里面的内容。 控件功能MenuSeparator将菜单中的一组项目与相邻项目分开To…

高效部署Redis Sentinel模式(哨兵模式),手把手教学

Redis Sentinel模式部署前言一、服务器部署同版本的redis1、换软件源在yum拉取包的时候启用remi源二、修改配置文件1.修改/etc/redis.conf2.配置/etc/redis/sentinel.conf三、启动redis服务1、启动服务2、连接redis3、检查redis前言 这里就不过多的解释高可用的好处了&#xf…

一文吃透Http协议

Http 协议 1. 初始 Http Http 协议 , 是应用层最为广泛使用的协议 , Http 就是浏览器和服务器之间的桥梁. Http 是基于 TCP 协议实现的 , 通常我们输入搜索框中的网址 (URL) , 浏览器就会根据这个 URL 构造出一个 Http 请求 , 发送给服务器. 服务器就会返回一个 Http 响应(包…

计组2.4——加法器的设计

计组&#xff1a;2.4算术逻辑单元异或门实现奇偶校验的原理串行加法器&&并行加法器并行加法器的优化算术逻辑单元 控制信号&#xff1a; 当M0时表示算术运算 当M1时表示逻辑运算 S0~ S3表示做什么运算&#xff0c;因此ALU可以表示16种算数运算和16种逻辑运算 Ai,Bi代表…

JVM 垃圾收集器详解

一、垃圾收集器 如果说收集算法是内存回收的方法论&#xff0c;那垃圾收集器就是内存回收的实践者。《Java虚拟机规范》中对垃圾收集器应该如何实现并没有做出任何规定&#xff0c;因此不同的厂商、不同版本的虚拟机所包含的垃圾收集器都可能会有很大差别&#xff0c;不同的虚…

Java中Cookie的属性介绍

Name和Value Name和Value是一个键值对。 Name是Cookie的名称&#xff0c;Cookie一旦创建&#xff0c;名称便不可更改&#xff0c;一般名称不区分大小写&#xff1b; Value是该名称对应的Cookie的值&#xff0c;如果值为Unicode字符&#xff0c;需要为字符编码。 如果值为二进制…

优思学院|质量大师的那些名言(一)【质量是免费的】

名言是一种短小精悍、言简意赅的语言表达方式&#xff0c;它们通常包含着深刻的哲理和智慧&#xff0c;可以为我们提供指导和启示。 优思学院会在这个《质量大师的那些名言》系列中让大家透过那些名言&#xff0c;用最简单、直接&#xff0c;和深刻的方法来学习质量和六西格玛…

商城系统开发方案分析

互联网的不断发展&#xff0c;电商行业已经成为了当前最重要的商业形式之一。商城系统的开发也因此而备受关注。商城系统的开发是针对B2C、B2B2C等多种商业模式&#xff0c;如用户熟知的SHOP、商派等一系列商城系统&#xff0c;将商品和服务进行在线销售的一个综合性平台。那么…

字节面试体验值拉满~

今天分享一位读者春招的字节二面面经&#xff0c;岗位是后端开发。 一个编程语言都没问&#xff0c;都是问网络项目mysqlredis。 问题记录 使用消息中间件降低消息持久化的压力是怎么做的&#xff0c;为什么可以降低&#xff1f; 读者答&#xff1a;在突发大量消息的情况下…