基于官方arc-stable-9c57d86f66be,AUTOSAR版本3.1.5
 
ArcCore中Communication Service中各层都有许多ID的配置,如Can driver中有CanObjectId,
CanIf中有CANIF_ID,CanTp中又有CANTP_ID,其他的PDUR_ID, COM_ID等等,纷繁复杂。
 
先来看看各层的配置:
Can Driver:
 
CanIf:
CanTp:
CanTp中最为明显,各种ID齐上场,眼花缭乱,很难理清楚各个ID之间的关系。这些ID又被当做参数传递给上层或者下层,或者被当做数组索引号来索引数组,配置时很难一一对应起来。
有没有什么办法简化呢?
 
Communication各层次交互图如下:
 
跟踪代码可以发现,除了Can driver之外,其他各层之间的API,都是用PduId为参数指代要操作的PDU。虽然这些PduId在每一层都有自己的对应关系,但在各层之间指代的是同一个PDU类型,如COM -> PDUR -> CANTP -> CANIF -> CAN DRV,每一层有自己的ID,但是指代其实是同一个Pdu类型。
 
所以可以打通各层的PduId,统一使用,各层的配置数组索引号根据统一的PduId编号进行映射,在内部使用该映射即可。
CanIf: PduId_to_CanIfPduConfig_Index_Map;
CanTp: PduId_to_CanTpNSdu_Index_Map;
PduR: PduId_to_RoutingPath_Index_Map;
这些里面的PduId都是统一定义的,各层对应到各自的配置索引号,以供使用。
如:
 
 
CanId & PduId
另外一个需要注意的是,要区分Can Id和 PduId。
CanId: 实际发送接收时使用的ID;编号为某PduId的Pdu最终通过Can发送时使用的CanId。
PduId: Pdu类型的编号,用以指代一个Pdu类型。

ArcCore重构-打通Can各层ID配置的更多相关文章

  1. ArcCore重构-目标文件结构化

    基于官方arc-stable-9c57d86f66be,AUTOSAR版本3.1.5   基本问题 3. 编译系统中所有代码文件通过搜索路径(VPATH)中搜索,存在名称污染问题,需加入路径信息:   ...

  2. u3d 模型ID配置

    换模型为什么要改代码 0.0 你没有逻辑ID->模型的配置么. 做2个配置.. 分别是角色的ID对应模型路径. 然后是里面的动画名对应真实动画名. 比如 ID=1 path = "xx ...

  3. ArcCore重构-生成%_offset.h文件

    基于官方arc-stable-9c57d86f66be,AUTOSAR版本3.1.5 基本问题   ArcCore中,需要生成asm_offset.h和arch_offset.h这两个头文件,定义着代 ...

  4. ArcCore重构-头文件引用问题的初步解决

    基于官方arc-stable-9c57d86f66be,AUTOSAR版本3.1.5   基本问题 1. 头文件引用混乱,所有头文件通过从搜索路径(-I)中引用,存在名称污染问题,需加入路径信息:   ...

  5. 使用Cloudrea Manager在CDH集群中添加kafka服务节点,更改borker.id配置后无法启动

    需要保证meta.properties文件中的broker.id和cloudrea manager的web页面上kafka配置的broker.id一致,最好让server.properties中的br ...

  6. .NET CORE 下 MariaDB DBfirst 生成model层 并配置连接参数

    1.首先新建一个类库,然后通过NuGet安装下面三个包 2.然后在程序包管理器控制台中运行以下代码(ps:记得默认项目选择刚才新建的项目,同时设置为启动项) server 是服务器地址 databas ...

  7. 全面!总结BQ系列阻抗跟踪电量计化学Chemical ID配置和Golden学习方法

    BQ系列阻抗跟踪电量计SOC最高能达到1%,功能强大,应用起来也比较复杂.不仅要配置好参数,匹配好化学ID,并且进行好Golden学习和相关测试.本文就讲述ID匹配,Golden学习和测试的终极方法流 ...

  8. 自增build ID配置

    本文转载出自:http://blog.sina.com.cn/s/blog_13ec67adc0102wimg.html   Build在plist文件中的key是“CFBundleVersion”, ...

  9. ArcCore重构-Platform_Types.h实现辨析

    AUTOSAR定义了一系列PlatformTypes,如uint8/uint16/uint32等等基本类型. It contains all platform dependent types and ...

随机推荐

  1. 2249: Altruistic Amphibians 01背包

    Description A set of frogs have accidentally fallen to the bottom of a large pit. Their only means o ...

  2. JAVA设计模式之桥接模式(bridge)

    桥接模式: 分离抽象与具体实现,让他们可以独自发展,防止类爆炸 场景: 过年走亲戚是我们中国人传统的习俗,走亲戚那就少不了要买东西(苹果,牛奶等等),这些具体的东西就是具体的类 蒙牛牛奶,有机苹果,有 ...

  3. 基于情感词典的python情感分析

    近期老师给我们安排了一个大作业,要求根据情感词典对微博语料进行情感分析.于是在网上狂找资料,看相关书籍,终于搞出了这个任务.现在做做笔记,总结一下本次的任务,同时也给遇到有同样需求的人,提供一点帮助. ...

  4. STM32 Bootloader基于ymodem传输协议串口IAP升级详解

    硬件:stm32f103cbt6 软件:STM32F10x_StdPeriph_Lib_V3.5.0 文章目录 1 预备知识 2 Bootloader 2.1 启动流程 2.2 校验跳转地址是否有效 ...

  5. Git使用教程之从远程库克隆项目(四)

    我们接下来在本地新建一个文件夹,把刚刚github上创建的项目克隆下来,操作步骤如下: 1.克隆项目: 找到github上面的SSH地址,如图: 开始克隆: $ git clone git@githu ...

  6. Linux vim 常用命令(不定时update)

    1.退出 先esc  再:q 2.保存退出 先Esc 再:wq 3.强制退出 先Esc 再:q! 4.寻找关键字 先 shift+ 再/keyword 5.查看行数 set nu 6.跳到指定行(例如 ...

  7. js中的小案例(一)

    效果图: html代码: <div id="date"> <p> <span id="prev">上一月</span& ...

  8. 浅谈JQuery

    一.什么是JQuery? JQuery是第三方开发的执行DOM操作的极简化的函数库. 执行DOM操作:JQuery还是在执行DOM操作 1.学习JQuery还是在学习DOM 2.五件事:增删改查 事件 ...

  9. Django模板之认证机制(csrf_token)

    csrf认证机制: django中对POST请求,csrf会进行认证处理,csrf认证机制是防御跨站伪造功能,在没有任何处理的前提下,POST请求会报错. csrf认证中间件是在process_vie ...

  10. ES[7.6.x]学习笔记(九)搜索

    搜索是ES最最核心的内容,没有之一.前面章节的内容,索引.动态映射.分词器等都是铺垫,最重要的就是最后点击搜索这一下.下面我们就看看点击搜索这一下的背后,都做了哪些事情. 分数(score) ES的搜 ...