Autosar PNC网络管理配置-UserData的使用

ops/2024/9/23 18:25:57/

文章目录

    • 前言
    • Com
      • ComSignal
      • ComIPdu
    • CanNm
    • Signal Mapping
    • 总结

前言

之前配置的网络管理报文中的data都由ComM管理,后面客户新增了需求,最后两个byte需要发送Wakeup Reason,本文记录一下相关配置的修改

Com

ComSignal

之前配置的PN_TX,长度为6,也就是后面6个byte都是由ComM写(全部用作PN位)

长度需要修改为4byte,也就是32bit

RX的也要改下,如下图所示

image

image
需要新增一个user data的Signal发送,长度为2个字节,此处BitPosition为55,是Motorloa Msb表示方式,对应BIG_ENDIAN

image
本文的Signal已经配置好了,后面有空会单独出一篇新增Signal的文章

ComIPdu

将刚刚那个user data的signal关联到其对应的Pdu上,如下图所示

image
此处关联了两个ComIPduSignal

CanNm

CanNm需要将之前的mask删掉2个byte

image
PnInfoLength改为4,因为后面2个byte是user data,后面通过应用层发送所需的信号

至此,BSW的配置就完成了,可以生成BSW代码了。

Signal Mapping

在对应的SWC中新建一个P Port,数据类型和之前的User data一样

image
在system中将该Interface和ComSignal中的对应信号进行mapping

image
对ECU进行提取

image
提取完后生成RTE,会生成对应的RTE接口

#define Rte_Write_NmWakeUpSrc_uint16( data ) (Rte_Write_CD005A_PwrSplyDrvCtrl_NmWakeUpSrc_uint16(data))
...
FUNC(Std_ReturnType, RTE_CODE)
Rte_Write_XXX_NmWakeUpSrc_uint16(VAR(UInt16, AUTOMATIC) data) /* 2 */
{VAR(Std_ReturnType, AUTOMATIC) rtn = RTE_E_OK;/* The signal is isWakeUpReasonsfor */if ( ((VAR(StatusType, AUTOMATIC))E_OK) != Com_SendSignal(((VAR(Com_SignalIdType, AUTOMATIC))22), &data) ){rtn = ((VAR(Std_ReturnType, AUTOMATIC))RTE_E_COM_STOPPED);}/* Send complete */return rtn;
}

调用该接口发送需要的数据即可

总结

能配置生成的,尽量不手码,毕竟手写一堆bug~


http://www.ppmy.cn/ops/37201.html

相关文章

ReactFlow的ReactFlow实例事件传参undefined处理状态切换

1.问题 ReactFlow的ReactFlow实例有些事件我们在不同的状态下并不需要,而且有时候传参会出现其它渲染效果,比如只读状态下我们不想要拖拉拽onEdgesChange连线重连或删除的功能。 2.思路 事件名称类型默认值onEdgesChange(changes: EdgeChange[]) >…

当AI遇见现实:数智化时代的人类社会新图景

文章目录 一、数智化时代的机遇二、数智化时代的挑战三、如何适应数智化时代《图解数据智能》内容简介作者简介精彩书评目录精彩书摘强化学习什么是强化学习强化学习与监督学习的区别强化学习与无监督学习的区别 前言/序言 随着科技的日新月异,我们步入了一个前所未…

Benchmarksql压测

Benchmarksql压测 TPC-C测试的结果主要有两个指标,即流量指标(Throughput,简称tpmC)和性价比(Price/Performance,简称Price/tpmC)。 流量指标(Throughput,简称tpmC):按照TPC组织的定义,流量指标描述了系统在执行支付…

Java中ArrayList、LinkedList与Vector的区别

ArrayList ArrayList是一个可以改变大小的数组,当更多的元素加入到ArrayList中时,其大小将会动态的增长,内部的元素可以直接通过get与set方法进行访问,因为ArrayList本质上就是一个数组。 LinkedList LinkedList是一个双向链表…

15【PS作图】像素画地图绘制

绘制视角 绘制地图的时候,有的人会习惯把要绘制的 房子、车子、围栏 小物件先画好,然后安放在地图上 但这样绘制出的各种物件之间,会缺乏凝聚力 既然物品都是人构造出的,不如以人的视角去一步步丰富地图; 比如下图…

算法训练营第二十一天 | LeetCode 513 找树左下角的值、LeetCode 112 路径总和、LeetCode 106 从中序与后序遍历构造二叉树

LeetCode 513 找树左下角的值 这题要求找树最底层最左边节点的值,用单纯的迭代法、递归法都不太好处理,一般的层序遍历法也不太行。但是可以修改下层序遍历,改成每一层从右往左遍历,依次往下,这样子访问的最后一个节点…

layui的treeTable组件,多层级上传按钮失效的问题解决

现象描述: layui的treeTable 的上传按钮在一层能用,展开后其他按钮正常点击,上传按钮无效。 具体原因没有深究,大概率是展开的子菜单没有被渲染treeTable的done管理到,导致没有重绘上传按钮。 解决方案: 不使用layu的上传组件方法…

【C++】string类的模拟实现

一、经典的string类问题 上一期,我们已经对string类有了简单的了解,大家能正常使用即可。在面试中,面试官喜欢让同学们自己来模拟实现string类,主要是实现string类的构造、拷贝构造、赋值运算符重载以及析构函数。请看以下string…