[CP_AUTOSAR]_系统服务_DEM模块(二)功能规范介绍

news2024/9/22 1:14:53

目录

  • 1、DEM 功能规范描述
    • 1.1、Startup behavior
    • 1.2、Monitor re-initialization

  在前面 《[CP_AUTOSAR]_系统服务_DEM模块(一)》文中,简要介绍了 DEM 模块的功能、与其它模块之间的功能交互,本文将接着介绍 DEM 模块的功能规范。
  参考文档《AUTOSAR_SWS_DiagnosticEventManager》

1、DEM 功能规范描述

  SWCs 和 BSW 模块中诊断监视器监测到的诊断故障都交由 DEM 模块处理和存储,而SWCs 和 BSW 模块可以通过 DEM 模块提供的接口函数来获取存储的故障信息。

1.1、Startup behavior

  [SWS_Dem_00169] DEM 模块应该区分 pre-initialization 和 full-initialized 工作模式。
  [SWS_Dem_00180] Dem_PreInit 函数会初始化 DEM 模块的内部状态,这些内部状态对于处理诊断事件和重置防抖动计数器是必要的,SWCs 和 BSW 模块使用 Dem_SetEventStatus 和 Dem_ResetEventDebounceStatus 函数去汇报。
           在ECU启动阶段中,NvM 模块初始化之前,函数 Dem_PreInit 由 EcuM 模块调用。 BSW 模块使用 Dem_SetEventStatus 函数去汇报相关的诊断事件。
           在ECU启动阶段中,NvM 模块完成存储 NVRAM 数据之后,函数 Dem_Init 被调用。 SWCs 模块包含故障监视器,在之后被初始化。使用 Dem_SetEventStatus 函数去汇报相关的诊断事件。

1.2、Monitor re-initialization

  应用程序中的故障监测器主要初始化由 Rte_Start 完成,监视器的特定事件部分的初始化可以由Dem触发。
  [SWS_Dem_00003] DEM 模块提供接口 InitMonitorForEvent 去触发诊断监视器的初始化。函数形参 InitMonitorReason 触发初始化的原因。
  [SWS_Dem_00679] 函数 Dem_RestartOperationCycle 被调用,应该重新初始化所有相关事件的诊断监测器,通过调用各自的回调函数 InitMonitorForEvent ,并将形参 InitMonitorReason 设置为 DEM_INIT_MONITOR_RESTART。
  [SWS_Dem_00680] API Dem_ClearDTC 会触发相关事件的回调函数 InitMonitorForEvent ,如果需要清除诊断故障,形参 InitMonitorReason 设置为 DEM_INIT_MONITOR_CLEAR 。
  [SWS_Dem_00681] 如果一个诊断事件的使能条件改变了,API Dem_SetEnableCondition 应该触发相关诊断事件的回调函数 InitMonitorForEvent ,并将形参 InitMonitorReason 设置为 DEM_INIT_MONITOR_REENABLED。
  [SWS_Dem_00682] 如果 0x85(ControlDTCSetting,控制诊断故障代码设置服务) 被重新使能,API Dem_EnableDTCSetting 应该触发相关诊断事件的回调函数 InitMonitorForEvent ,并将形参 InitMonitorReason 设置为 DEM_INIT_MONITOR_REENABLED。
  [SWS_Dem_01113] 如果诊断事件的存储条件改变了,API API Dem_SetStorageCondition 应该触发相关诊断事件的回调函数 InitMonitorForEvent ,并将形参 InitMonitorReason 设置为 DEM_INIT_MONITOR_REENABLED。如果诊断事件汇报为 FAILED 或者 PASSED,而存储条件被失能,那么回调函数只是被回调。下面展示两条使用案例:
  Use case1:在诊断事件监测器在运行过程中,$85服务触发或者是清除故障触发后,只要是诊断前置条件满足,那么监视器应该从头开始运行,并在运行结束时评估事件的状态,如passed 或者 failed。
在这里插入图片描述
  Use case2:柴油机 ECU 在运行4小时后重启,那么监视器应该从头开始运行,并在运行结束时评估事件的状态,如passed 或者 failed。
在这里插入图片描述
  任何功能模块(主要与监视器相关)可以由 DEM 模块来触发初始化。
  [SWS_Dem_01046] 如果同时触发 InitMonitorForEvent 函数的情况发生,那么 InitMforE 应该被只调用一次。形参 InitMonitorReason 设置为哪种参数根据参数优先级来定:最高优先级,DEM_INIT_MONITOR_CLEAR;低优先级,DEM_INIT_MONITOR_RESTART, DEM_INIT_MONITOR_REENABLED。

   更多内容可参考 CP_AUTOSAR_总目录,点击跳转

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

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

相关文章

Web前端:Vue开发环境搭建

一、搭建开发环境: 1.nodejs安装: 下载地址: https://nodejs.org/dist/v20.13.1/node-v20.13.1-x64.msi 查看版本号: node -v 2.安装nrm(用于指定国内镜像源,加速依赖包下载速度): 安装nrm&#xff…

程序员的魔法石!

本文由 ChatMoney团队出品 AI自己写代码,这只是传说?还是摸鱼新指南? AI出现之前,从来都是老板或产品经理提需求,程序员熬夜加班吭哧吭哧写代码或者是从Github,Stackoverflow上controlc,control…

为面试准备的一些内容

开发中使用了什么技术? mvvm、compose、livedata、单例模式、工厂模式、弱引用、线程池、Handler。 对于项目一开始我们打算使用aosp原生的管控方式,如UsageStatManager获取每个app的使用时长,和使用PackageManager的setPackagesSuspended方…

【数据结构入门 】栈

目录 前言 一、栈的概念及结构 二、栈的实现 1. 栈的声明 2.初始化栈 3. 栈的销毁 4.判断是否为空栈 5.入栈(只能插入栈顶元素) 6. 出栈(只能从栈顶删除) 7.栈的大小 8.获取栈顶元素 总结 前言 在计算机科学中&#xf…

黑马Java零基础视频教程精华部分_10_面向对象进阶(2)

系列文章目录 文章目录 系列文章目录一、多态1、什么是多态?2、多态的表现形式3、多态的前提4、多态的好处5、多态调用成员的特点6、多态的优势和弊端7、引用数据类型的类型转换 二、包1、什么是包?2、包名的规则3、使用其他类的规则 三、final 最终的&a…

文件包含漏洞Tomato靶机渗透_详解

一、导入靶机 将下载好的靶机拖入到VMware中,填写靶机机名称(随便起一个)和路径 虚拟机设置里修改网络状态为NAT模式 二、信息收集 1、主机发现 用御剑扫描工具扫描虚拟机的NAT网段,发现靶机的IP是192.168.204.141 2、端口扫描 用御剑端口扫描扫描全…

完全免费的 TTS 文字转语音来了!

作者:老余捞鱼 原创不易,转载请标明出处及原作者。 完全免费的 TTS 文字转语音来了! 再也不用被国内外各种语音合成割韭菜了。 试了下,确实是不限次数,不限语种,完全免费.输出视频如下: 效果就…

springboot干部考核系统-计算机毕业设计源码74229

摘要 随着我国社会经济的快速发展,对干部队伍的素质要求越来越高,如何科学、公正、准确地评价干部的工作绩效,激励干部发挥出更大的工作潜能,成为了当务之急。近年来,计算机技术和网络技术的飞速发展,为干部…

Minetest大师:1.0.21版本发布

下载Minetest大师v1.0.21 1、简介 Minetest大师,一款致力于Minetest的游戏盒子 可加Q群-:123117246,了解或获取最新版本 2、增加了大量的基础功能 资源中心与ContentDB同步,增加资源搜索、安装功能 增加在线服务器列表&#…

Python 爬虫入门(五):使用 lxml 解析网页

Python 爬虫入门(五):使用 lxml 解析网页 前言1. lxml 简介1.1 什么是 lxml?1.2 为什么选择 lxml?1.3 安装 lxml 2. lxml 基础2.1 解析 HTML/XML2.2 XPath 表达式2.3 使用 XPath 提取数据 3. 深入解析3.1 处理命名空间…

HarmonyOS应用开发者高级认证题目(7月新版,答案解析,持续更新)

HarmonyOS应用开发者高级认证题目(7月新版,答案&解析,持续更新) 单选 1.ArkTS支持以下哪些函数 A.Object.getOwnPropertySymbols(); B.Object.isExtensible(); C.Object.isPrototypeOf(); D.Object.keys(); 答案&#xff1…

《数据结构》(C语言版)第1章 绪论(下)

第1章 绪论 1.3 抽象数据类型的表示与实现1.4 算法与算法分析 1.3 抽象数据类型的表示与实现 数据类型 数据类型是一组性质相同的值的集合, 以及定义于这个集合上的一组运算的总称。 抽象数据类型(ADTs: Abstract Data Types) 更高层次的数据抽象。由用户定义,用…

反贿赂体系认证:企业诚信经营的护航者

在当今商业环境中,企业不仅要追求经济效益,更要坚守诚信经营的原则。反贿赂体系认证作为现代企业合规管理的重要手段,不仅提升了企业的道德形象,还为其市场竞争力注入了强劲动力。以下是反贿赂体系认证对企业的多方面益处。 首先&…

SpringBoot集成RocketMQ消息队列

RocketMQ简介 RocketMQ是阿里巴巴2016年MQ中间件,使用Java语言开发,RocketMQ 是一款开源的分布式消息系统,基于高可用分布式集群技术,提供低延时的、高可靠的消息发布与订阅服务。同时,广泛应用于多个领域&#xff0c…

AUTOSAR实战教程-最通俗的讲标定协议XCP初入门

XCP是什么 XCP是什么?我们开发过程中是不是经常用串口打印出一些变量的值供自己发现问题? XCP的作用1 跟上述串口看数据类似,只不过用一组更为严格的格式规定基于CAN/ETH/FLR进行数据的观测。 XCP作用2 比串口打印数据更强大的是,XCP可以通过变量地址对变量值进行改写!…

使用 Stripe 订阅和 Firestore 集成构建大型 Streamlit 应用程序

将创意转化为软件产品的能力是一项值得学习的技能。在这篇博客中,我将描述需要做些什么,以及如何将各个部分组合在一起以创建一款无需启动成本但具有订阅模式和 Firestore 集成的软件产品。 欢迎来到雲闪世界。 无论您是数据科学家、数据工程师还是从事其…

EasyAR_稠密空间图

EasyAR稠密空间图 1.稠密空间图 EasyAR稠密空间地图利用RGB相机图像对周围环境进行三维稠密重建,得到稠密的点云地图和网格地图。利用稠密空间地图让虚拟物体更好的融入真实环境之中,用以实现真实物体和虚拟物体正确遮挡、碰撞等AR应用。 2.在Unity中的…

深度学习入门——卷积神经网络

本章的主题是卷积神经网络(Convolutional Neural Network,CNN)。CNN被用于图像识别、语音识别等各种场合,在图像识别的比赛中,基于深度学习的方法几乎都以CNN为基础。本章将详细介绍CNN的结构,并用Python实…

从 Pandas 到 Polars 三十九:Polars 和 Matplotlib

Polars 与 matplotlib 配合得很好。 在matplotlib中,你可以直接使用polars的数据进行绘制图形,而无需把polars的dataframe转为pandas的dataframe: import polars as pl import matplotlib.pyplot as plt# 创建一个polars DataFrame df_pl …

5 道互联网大厂面试遇到的场景题

1.外卖单子只能被一个骑手接单 这是一个典型的分布式锁问题。可以采用以下几种方案: 基于Redis的分布式锁: 使用Redis的SETNX命令尝试获取锁设置合理的锁超时时间,防止死锁使用Lua脚本保证原子性操作考虑Redis集群环境下的一致性问题 基于Zookeeper的分布式锁: 创建临时顺…