831_AUTOSAR_TPS_DiagnosticExtractTemplate9_访问权限、对话、安全等级2以及AUTOSAR支持的服务1

本文主要是介绍831_AUTOSAR_TPS_DiagnosticExtractTemplate9_访问权限、对话、安全等级2以及AUTOSAR支持的服务1,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

       全部学习汇总:GitHub - GreyZhang/hack_autosar: learning autosar documents, aha, very hard!

       继续学习AUTOSAR,看一下官方文档。

       5.3.2 访问权限的优先级

       访问权限本身的定义可以在不同的层次上进行。 因此,有必要定义如何解释这些不同级别上访问权限的存在。

       支持的访问权限定义场景

       访问权限的定义可能有以下场景:

       • 访问权限是在 DiagnosticServiceClass 级别上定义的。

       在这种情况下,预期的语义是此配置绑定到从 DiagnosticServiceClass 派生的所有 DiagnosticServiceInstance。

       DiagnosticServiceInstance.accessPermission 的配置被视为错误并应相应报告。

       如果 DiagnosticServiceClass.accessPermissionValidity 设置为值 accessPermissionServiceClass,则此方案适用。

       • 访问权限是在单个DiagnosticServiceInstance 级别定义的。 在这种情况下,预期的语义是 DiagnosticServiceClass 不应对适用的访问权限的定义做出任何假设。

       DiagnosticServiceClass.accessPermission 的配置被视为错误并应相应报告。

     如果 DiagnosticServiceClass.accessPermissionValidity 设置为值 accessPermissionServiceInstance,则此方案适用。

       • 明确允许定义DiagnosticServiceClass.accessPermission 和DiagnosticServiceInstance.accessPermission。

       在这种情况下,预期的语义是,如果 DiagnosticServiceClass.accessPermission 存在,则不需要各个 DiagnosticServiceInstance 定义 DiagnosticServiceInstance.accessPermission,但如果它们这样做,则 DiagnosticServiceInstance.accessPermission 的优先级高于 DiagnosticServiceClass.accessPermission 的定义。

       这基本上归结为通过在 DiagnosticServiceInstance 级别上的设置来覆盖在 DiagnosticServiceClass 级别上进行的访问权限设置的能力。

       同时,这个场景节省了一些文件占用空间,因为(考虑到 DiagnosticServiceClass.accessPermission 的存在)没有必要定义单独的 DiagnosticServiceInstance.accessPermission,除非有专门的需求。

       如果 DiagnosticServiceClass.accessPermissionValidity 设置为值 accessPermissionInstanceOverridesClass,则此方案适用。

       小结:这部分是彻头彻尾的工具设计的要求了。

       [TPS_DEXT_01061] 定义的场景需要建模支持,以允许用户精确表达模型在访问权限方面的预期语义。为此,可以使用属性 DiagnosticServiceClass.accessPermissionValidity。

     该元类提供了如何在 DiagnosticServiceInstance 和 DiagnosticServiceClass 之间解析 accessPermission 的设置。

       不完整模型中存在 DiagnosticServiceClass.accessPermissionValidity

       如果属性 DiagnosticServiceClass.accessPermissionValidity 不存在,则应假定配置不完整。

       请注意,[TPS_DEXT_01062] 中描述的模型状态仍然是允许的,因为可能只有在模型生命周期的后期才能决定属性的值。

       完整模型中存在 DiagnosticServiceClass.accessPermissionValidity

       当模型的生命周期接近模型被认为是完整的点时,属性 DiagnosticServiceClass.accessPermissionValidity 应该存在,以便能够正确地找出预期的模型语义。

       属性 DiagnosticServiceInstance.accessPermission 的存在

       关于属性DiagnosticServiceInstance.accessPermission 的存在,以下规则适用:

       • 如果属性DiagnosticServiceInstance.accessPermission 或DiagnosticServiceClass.accessPermission 都不存在,则假定配置不完整,因为未定义访问权限。

       • 如果属性DiagnosticServiceInstance.accessPermission 或DiagnosticServiceClass.accessPermission 存在但没有进一步引用DiagnosticSession 或DiagnosticSecurityLevel,则这意味着可以在任何诊断会话或安全级别中执行受影响的诊断服务。 换句话说,没有任何限制。

       5.4 AUTOSAR 支持的诊断服务

       以下小节描述了 ISO 14229-1 [15] 中定义的相关诊断服务集合的建模。 这意味着 AUTOSAR DiagnosticExtract 的定义不明确支持 [15] 定义的诊断服务的总集合。

       本文档中编译的一些诊断服务定义了所谓的子功能,需要识别这些子功能以完全指定相应诊断服务的性质。

       小结:这是所支持的所有的服务,从这里面看,BootLoader所需要的相关的服务的确是支持的。之前,在接触ETAS的软件的时候最初可能有一个错误的认识,最初我以为AUTOSAR的UDS服务对于BootLoader的支持可能并不完善,现在看起来应该问题不大。

       通过属性 DiagnosticServiceInstance.category 指定子功能

       在诊断服务根据 ISO 142291 [15] 定义子功能的所有情况下,DiagnosticServiceInstance 的适用子类的属性类别的值可用于将适用的子功能指定为文本标记。

       定义约束以阐明给定子功能的属性类别的标准化值的存在。 这意味着给定的 DiagnosticServiceInstance 子类的实例一次只有一个子函数。

       诊断服务的类别属性的可能值

       AUTOSAR 声称有权对给定诊断服务的属性类别的可能值进行标准化。

       如果适用,AUTOSAR 允许使用非标准化值的属性类别值。

       然而,在这种情况下,属性类别的专有值应以公司特定的名称片段作为前缀,以避免在扩展 AUTOSAR 标准本身声明的可能值列表时或时可能发生的冲突。

       给出的例子信息比较容易提取,看起来是针对硬件复位做出的一个要求。

       5.4.1 DataByIdentifier

       本章描述了诊断服务ReadDataByIdentifier(0x22)和WriteDataByIdentifier(0x2E)的建模。

       此诊断服务的目的是使诊断仪能够从 AUTOSAR 诊断堆栈中请求数据记录的值。 数据记录由正式建模的 DiagnosticDataIdentifier 标识。

       此诊断服务的建模包括两个元类 DiagnosticReadDataByIdentifier 和 DiagnosticWriteDataByIdentifier。 这些元类都需要指定 DiagnosticDataIdentifiers 集以及适用的 DiagnosticAccessPermissions 集。

       由于这些属性在 DiagnosticReadDataByIdentifier 和 DiagnosticWriteDataByIdentifier 的实例之间共享,因此创建了一个名为 DiagnosticDataByIdentifier 的抽象基类,它提供对 DiagnosticDataIdentifier 和 DiagnosticAccessPermission 的实际引用。

       存在 DiagnosticDataByIdentifier.dataIdentifier

       在角色 DiagnosticDataByIdentifier.dataIdentifier 中的引用存在之前,给定的 DiagnosticDataByIdentifier 的配置被认为是不完整的。

       [TPS_DEXT_01054] 的含义是在配置工作流的中间步骤中可能缺少引用。 但是在从 DiagnosticExtract 生成 ECU 配置的时间点,需要参考才能理解给定 DiagnosticDataByIdentifier 的模型。

       在运行时读取多个 DID 的能力是通过属性 DiagnosticReadDataByIdentifier.maxDidToRead 控制的,因此(在配置时)将属性 dataIdentifier 的多样性限制为 1 就足够了。

       表格表示“按标识符读取数据”诊断服务的一个实例。

       这表示“按标识符写入数据”诊断服务的一个实例。

       此元类包含“按标识符写入数据”诊断服务的所有实例共享的属性。

       这表示所有通过标识符访问数据的诊断服务的抽象基类。

       DiagnosticDataByIdentifier 的建模表示 DiagnosticExtract 中诊断服务的具体实例。 但是,存在在 DiagnosticReadDataByIdentifier 的所有实例之间共享的属性。

       为此,引入了专用服务类 DiagnosticReadDataByIdentifierClass。

       该元类包含“按标识符读取数据”诊断服务的所有实例共享的属性。

       需要注意,可以从不同的 DiagnosticServiceInstances 创建对具体 DiagnosticDataIdentifier 的引用。

       DiagnosticServiceSwMapping 与数据 ID 的一致性

       对于每个引用一个 DiagnosticValueNeeds 和一个 DiagnosticDataByIdentifier 的 DiagnosticServiceSwMapping,DiagnosticValueNeeds.didNumber 的值应被忽略,而应采用 DiagnosticDataByIdentifier.dataIdentifier.id 的值。

       这部分主要讲解了诊断访问权限优先级的问题以及AUTOSAR支持的诊断服务,针对读写DID进行了较为详细的描述。

这篇关于831_AUTOSAR_TPS_DiagnosticExtractTemplate9_访问权限、对话、安全等级2以及AUTOSAR支持的服务1的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/532492

相关文章

Spring Security 基于表达式的权限控制

前言 spring security 3.0已经可以使用spring el表达式来控制授权,允许在表达式中使用复杂的布尔逻辑来控制访问的权限。 常见的表达式 Spring Security可用表达式对象的基类是SecurityExpressionRoot。 表达式描述hasRole([role])用户拥有制定的角色时返回true (Spring security默认会带有ROLE_前缀),去

安卓链接正常显示,ios#符被转义%23导致链接访问404

原因分析: url中含有特殊字符 中文未编码 都有可能导致URL转换失败,所以需要对url编码处理  如下: guard let allowUrl = webUrl.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed) else {return} 后面发现当url中有#号时,会被误伤转义为%23,导致链接无法访问

【区块链 + 人才服务】可信教育区块链治理系统 | FISCO BCOS应用案例

伴随着区块链技术的不断完善,其在教育信息化中的应用也在持续发展。利用区块链数据共识、不可篡改的特性, 将与教育相关的数据要素在区块链上进行存证确权,在确保数据可信的前提下,促进教育的公平、透明、开放,为教育教学质量提升赋能,实现教育数据的安全共享、高等教育体系的智慧治理。 可信教育区块链治理系统的顶层治理架构由教育部、高校、企业、学生等多方角色共同参与建设、维护,支撑教育资源共享、教学质量评估、

【区块链 + 人才服务】区块链集成开发平台 | FISCO BCOS应用案例

随着区块链技术的快速发展,越来越多的企业开始将其应用于实际业务中。然而,区块链技术的专业性使得其集成开发成为一项挑战。针对此,广东中创智慧科技有限公司基于国产开源联盟链 FISCO BCOS 推出了区块链集成开发平台。该平台基于区块链技术,提供一套全面的区块链开发工具和开发环境,支持开发者快速开发和部署区块链应用。此外,该平台还可以提供一套全面的区块链开发教程和文档,帮助开发者快速上手区块链开发。

两个月冲刺软考——访问位与修改位的题型(淘汰哪一页);内聚的类型;关于码制的知识点;地址映射的相关内容

1.访问位与修改位的题型(淘汰哪一页) 访问位:为1时表示在内存期间被访问过,为0时表示未被访问;修改位:为1时表示该页面自从被装入内存后被修改过,为0时表示未修改过。 置换页面时,最先置换访问位和修改位为00的,其次是01(没被访问但被修改过)的,之后是10(被访问了但没被修改过),最后是11。 2.内聚的类型 功能内聚:完成一个单一功能,各个部分协同工作,缺一不可。 顺序内聚:

基于SpringBoot的宠物服务系统+uniapp小程序+LW参考示例

系列文章目录 1.基于SSM的洗衣房管理系统+原生微信小程序+LW参考示例 2.基于SpringBoot的宠物摄影网站管理系统+LW参考示例 3.基于SpringBoot+Vue的企业人事管理系统+LW参考示例 4.基于SSM的高校实验室管理系统+LW参考示例 5.基于SpringBoot的二手数码回收系统+原生微信小程序+LW参考示例 6.基于SSM的民宿预订管理系统+LW参考示例 7.基于

Golang进程权限调度包runtime

关于 runtime 包几个方法: Gosched:让当前线程让出 cpu 以让其它线程运行,它不会挂起当前线程,因此当前线程未来会继续执行GOMAXPROCS:设置最大的可同时使用的 CPU 核数Goexit:退出当前 goroutine(但是defer语句会照常执行)NumGoroutine:返回正在执行和排队的任务总数GOOS:目标操作系统NumCPU:返回当前系统的 CPU 核数量 p

Golang支持平滑升级的HTTP服务

前段时间用Golang在做一个HTTP的接口,因编译型语言的特性,修改了代码需要重新编译可执行文件,关闭正在运行的老程序,并启动新程序。对于访问量较大的面向用户的产品,关闭、重启的过程中势必会出现无法访问的情况,从而影响用户体验。 使用Golang的系统包开发HTTP服务,是无法支持平滑升级(优雅重启)的,本文将探讨如何解决该问题。 一、平滑升级(优雅重启)的一般思路 一般情况下,要实现平滑

Golang服务平滑重启

与重载配置相同的是我们也需要通过信号来通知server重启,但关键在于平滑重启,如果只是简单的重启,只需要kill掉,然后再拉起即可。平滑重启意味着server升级的时候可以不用停止业务。 我们先来看下Github上有没有相应的库解决这个问题,然后找到了如下三个库: facebookgo/grace - Graceful restart & zero downtime deploy for G

sqlite不支持中文排序,采用java排序

方式一 不支持含有重复字段进行排序 /*** sqlite不支持中文排序,改用java排序* 根据指定的对象属性字段,排序对象集合,顺序* @param list* @param field* @return*/public static List sortListByField(List<?> list,String field){List temp = new ArrayList(