Vector - CAPL - 数据库和CAPL_01

news2024/12/23 8:49:37

目录

获取CAN总线报文信息

静态访问报文信息

动态访问报文信息

静态访问数据库信息 

DBLookup(Access Message & Signal)

1、报文类型信息

2、类型信息

3、节点信息


获取CAN总线报文信息

        我们在做CAN网络管理或者通信的测试的过程中,第一步我们需要获取的就是通过CAPL获取CAN总线的报文及其相关信息,然后与我们预期的信息比较,另外一种就是通过CAPL获取dbc的信息与CAN总线信息对比,保证通信一致性,因此这两块都是相对比较重要的内容,我就重点介绍一下。

CAN 和 LIN 报文帧特定属性:

      >  ID
      >  DLC
      >  Transmitter
      >   Attributes defined the database of these objects.
这里的信息访问可以是静态的或动态的。

ObjectMessage, LIN MessageFlexRay Frame
AttributeIDDLCTransmitterAttributesfrFrame Attributes*
Static****
Dynamic**11*

1:只能通过 DBLookup 进行动态访问。
*:FR_SlotID、FR_Cycle、类型、FR_PayloadLength、FR_Flags、FR_HeaderCRC、FR_Segment、FR_Status、DIR、模拟。

静态访问报文信息

        静态访问是对已知对象的访问。 因此,可以直接或通过使用局部变量来完成访问;这里也是我们使用非常多的一种访问方式,比如常见的报文ID、周期、DLC等信息

variables
{
  message EngineData msg;
}

void Get_CAN_Msg_ID()
{
  int myID;
//  表达方式1,直接访问消息ID
  myID = EngineData.ID;
//  表达方式2,间接访问消息ID
  myID = msg.ID;
}

动态访问报文信息

        动态访问是在不知道对象名称的情况下访问属性。 这对于使用通配符选择器的事件过程来说很常见,例如 在消息*上。

on message *
{
    //使用关键字this,通过on message直接访问总线上的报文ID
    myID = this.ID;
}

//动态访问 CAN 消息的 DLC

on message *
{
  int currentDLC;
  currentDLC = this.DLC;
}

//动态访问总线上特定报文
void foo( message * msg)
{
    if (msg.id == 0x100)
    {
       write("CAN总线上出现报文0x100");
    }
}

静态访问数据库信息 

对数据库属性的直接静态访问

variables
{
  message EngineData msg;
}

void foo ()
{
    int cycleTime;
    cycleTime = EngineData.GenMsgCycleTime;
}

void foo( int id)
{
    if (id == msg.id)
    {
       // do something
    }
}

DBLookup(Access Message & Signal)

        DBLookup函数可以访问的信息主要有报文类型、信号信息、节点信息;

1、报文类型信息

SelectorDescriptionReturn TypeMessage Type
NameMessage namechar []message, pg, linFrame, frFrame
DLCThe size of the data field in bytes defined by the DLClongmessage, linFrame, frFrame
TransmitterSend nodes of the message; empty string if the number of send nodes is zero or more than onechar []message, linFrame, frFrame
AttributeNameName of a self-defined database attributechar [] for string attribute, otherwise floatmessage, linFrame/2、

2、类型信息

SelectorDescriptionReturn TypeSignalsService Signals
bitstartStart bit of the signals in the messagedword
bitcountNumber of bits in the signaldword
offsetOffset for conversion raw value -> physical valuefloat
factorFactor for conversion raw value -> physical valuefloat
unitUnit of the signalchar []
minimumMinimum of the signalfloat, 0, if not defined
maximumMaximum of the signalfloat, signal size * physical value (factor) + offset
dbtypeSignal definition from the databasedbSig *
AttributeNameName of self-defined database attributechar [] for string attribute, otherwise float
DefaultValueDefault value of the signal,int64
FlexRay specific
NotValidLowerLimitNot valid value of the signalint64
Note: This selector is only available in FIBEX databases.
NotValidUpperLimitNot valid value of the signalint64
Note: This selector is only available in FIBEX databases.
signalgroupName of the assigned signal group;char []
empty string if the signal belongs to no group.
txpduName of the send node; with multiple senders a sender list will be returned.char []
Note: This selector is only supported for FlexRay PDUs.
frameIDID of the frame that contains the signal.dword
Note: This selector is not supported for PDUs.

3、节点信息

SelectorDescriptionReturn Type
NameName of database objectchar []
AttributeNameName of a self-defined database attributechar [] for string attribute, otherwise float

        要在指定的数据库中查找message/signal,就需要使用DBLookup(variable),通过这个函数我们去访问dbc数据库中特定报文的特定信息。通过该函数查找类型为 dbNode、dbMsg、dbPDU、dbFrFrame和dbFrPDU等数据库属性。

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

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

相关文章

LLM prompt提示构造案例

参考: https://github.com/PlexPt/awesome-chatgpt-prompts-zh 吴恩达 prompt工程应用: https://www.bilibili.com/video/BV1No4y1t7Zn prompt构造案例代码 prompt """文本分类任务:将一段用户给外卖服务的评论进行分类…

LSTM已死,Transformer永生(面试问答RNN/LSTM/Transformer)

计算机视觉面试题-Transformer相关问题总结:https://zhuanlan.zhihu.com/p/554814230 计算机视觉面试31题 CV面试考点,精准详尽解析:https://zhuanlan.zhihu.com/p/257883797 1. 循环神经网络(Recurrent Neural Networks, RNN&am…

渲染颜色透明度异常分析 Unity RenderTexture

解决 Unity Canvas 相机 RenderTarget 渲染颜色透明度异常的问题 问题 重现场景 新建一个 Canvas-RT , Canvas Render Mode 改为 Screen Space - Camera 。 为 Canvas-RT 添加一个 RawImage-Origin 对象,修改颜色透明度为 120 。 修改 Camera-RT 中的 Target Textur…

如何实现Nginx+Tomcat反向代理与负载均衡

目录 一、正向代理与反向代理 正向代理 反向代理 二、负载均衡 什么是负载均衡 代码仓库定义 分流策略 权重 least_conn(最少连接) ip_hash(负载均衡模式) fair(第三方负载均衡模式) url_hash&…

算法设计与分析 课程期末复习简记

目录 网络流 线性规划 回溯算法 分支限界 贪心算法 动态规划 分治算法 算法复杂度分析 相关概念 网络流 下面是本章需要掌握的知识 • 流量⽹络的相关概念 • 最⼤流的概念 • 最⼩割集合的概念 • Dinic有效算法的步骤 • 会⼿推⼀个流量⽹络的最⼤流 下面对此依次进行复…

基于AUTOSAR的ECU启动阶段哪些事儿

AUTOSAR实战篇:EcuM启动时序大总结 前言 小T出品,必是精品! EcuM启动时序大总结,你值得拥有! 正文 正如小T前文中《AUTOSAR基础篇之EcuM》中讲到的那样,AUTOSAR架构中将ECU的上下电过程统一由单一的模块来进行统一管理,即EcuM模块。 虽然不同硬件的初始化过程不一样,但…

Redis是什么

Redis是什么 https://blog.csdn.net/Little_Oranges/article/details/121870705 1.简介 基于字典格式的。基于内存,高性能的。键值对的方式进行存储。可以存储多种数据结构类型的数据。 2.应用场景 缓存排行榜计数器分布式会话分布式锁社交网络最新列表消息系统 …

华为OD机试真题 JavaScript 实现【查找充电设备组合】【2023Q1 100分】

目录 一、题目描述二、输入描述三、输出描述四、补充说明五、JavaScript算法源码六、效果展示1、输入2、输出3、说明一、题目描述 某个充电站,可提供n个充电设备,每个充电设备均有对应的输出功率。任意个充电设备组合的输出功率总和,均构成功率集合P的1个元素。功率集合P的…

Qt Quick系列(8)—Model-View—视图信号

🚀作者:CAccept 🎂专栏:Qt Quick 文章目录 前言代码示例源码关键知识点 总结 前言 在Qt Quick的Model-View中内置视图有很多,有Repeater、ListView、GridView…,而他们也有着自己的信号,比如…

WebDAV之派盘本地个人云+Documents

Documents是一款由Readdle开发的文档管理和编辑工具,支持PDF阅读、音频播放、图像浏览和标注、以及多种常见文档格式的编辑操作等。派盘是一款本地私有云产品,基于WebDAV、FTP、SMB等多种协议,提供文件存储、分享、同步、备份等服务&#xff…

【Squid一】Squid代理服务器应用

Squid代理服务器应用 1.Squid代理服务器1.1 正向代理的工作机制1.2 代理服务器的概念及其作用1.3 代理服务器主要作用1.4 Squid代理的类型 2.CDN2.1 CDN概述2.2 CDN优势2.3 CDN对网络的优化作用2.4 CDN访问过程2.5 CDN网络的组成要素 3.安装Squid服务3.1 使用脚本启动和关闭squ…

guest内核不响应导致磁盘卸载问题排查

用户问题 客户报障磁盘卸载不了,而且是经常出现卸载不了的情况,客户比较着急,同时PDD也是大客户。 排查过程 查看宿主机上虚拟机信息 1、用户虚拟机有14块磁盘,而且这14块都是以legacypci的方式插入虚拟机,我印象中…

MATLAB | 拉普拉斯分布/拉普拉斯噪声的生成

一、实验目标 生成拉普拉斯分布的噪声,并分析它的概率密度函数 二、解决思路 (1)拉普拉斯分布可以由指数分布生成 拉普拉斯的概率密度函数为 f ( x ; μ , λ ) 1 2 λ e − ∣ x − μ ∣ λ f(x;\mu,\lambda)\frac{1}{2 \lambda} e^{…

创建启动前端vue与后端python/flask,前后端分离,相互传递参数

创建启动vue 确保你已经安装了Node.js和npm 安装vue npm install -g vue/cli创建vue项目: vue create my-project cd my-project启动vue npm run serve如果安装vue报错:管理员权限模式打开powershell Windows PowerShell 版权所有(C&#…

windows怎么查看目标文件.o and windows - 如何使用/安装 GNU binutils (objdump)

GNU binutils-objdump工具 一、windows怎么查看目标文件.o二、安装GNU binutils (objdump)三、使用GNU binutils (objdump)参考资料 一、windows怎么查看目标文件.o 可以使用GNU binutils (objdump)进行查看编译生成的目标文件.o。 二、安装GNU binutils (objdump) 点击下载…

Apache Airflow 多个 Provider 存在漏洞

项目介绍 Airflow 是一个使用 python 语言编写的 data pipeline 调度和监控工作流的平台。 Airflow 是通过 DAG(Directed acyclic graph 有向无环图)来管理任务流程的任务调度工具, 不需要知道业务数据的具体内容,设置任务的依赖…

辅助驾驶功能开发-功能规范篇(21)-4-XP行泊一体方案功能规范

XPilot Parking 自动泊车系统 • 超级自动泊车辅助(Super AutoParking Assist)、语音控制泊车辅助(Autoparking with Speech) - 产品定义 超级自动泊车辅助是⼀个增强的自动泊车辅助系统。在超级自动泊车辅助系统中,识别车位将会变得实时可见, 并且不可泊入的⻋位也将…

zynq系列器件使用vivado配置国产内存

zynq系列器件使用vivado配置国产内存 一、镁光公司器件命名的含义二、紫光公司器件命名的含义二、国产ddr(SCB13H8G162BF-13KI)和镁光(MT41K512M8-125)ddr参数对比三、vivado参数填入 一、镁光公司器件命名的含义 以MT41K512M8-1…

代码随想录算法训练营第六天 | 哈希表系列2(两数之和--四数相加II--三数之和--四数之和)

哈希表系列2 1 两数之和本题思路代码随想录的代码力扣的示例代码 454 四数相加II本题思路代码随想录的代码力扣的示例代码 15 三数之和本题思路代码随想录的代码力扣的示例代码 18 四数之和代码随想录的代码力扣的示例代码 1 两数之和 给定一个整数数组 nums 和一个整数目标值…

DAY41——动态规划part3

整数拆分 dp[i]:分拆数字i,可以得到的最大乘积为dp[i]。 dp[i](i-j)*j或j * dp[i-j]两种可能,前者是拆成两个数的可能性,后者是拆成三个或更多的可能性 对于dp[i] j * dp[i-j] 对每个i遍历j(1->i-1) 事实上是把i拆成j和i-j两…