Vector - CAPL - 诊断模块函数(设置和获取)

news2024/11/25 15:31:39

 

目录

CanTpGetRxIdentifier

CanTpGetTxIdentifier

CanTpSetRxIdentifier

CanTpSetTxIdentifier

代码示例

CanTpGetPadding & CanTpSetPadding

代码示例

CanTpGetAcceptOtherMode & CanTpSetAcceptOtherMode

代码示例


        对于使用OSEK.dll文件调用发送诊断数据和接收诊断数据,对于诊断发送ID和接收ID的设置是为重中之重,如果没有这个设置,我们将无法对我们的诊断数据进行发送和接收的检查,因此我们需要对其进行设置;如果对于大型的脚本框架来说,在脚本的不同的位置,我们可能还需要对于诊断ID进行获取和校验,因此这类函数也是必要的。下面我们就来介绍下这4个函数:发送ID的设置、接收ID的设置、发送ID的获取、接收ID的获取。

CanTpGetRxIdentifier

功能:获取连接用于接收 (Rx) 协议数据的消息的 CAN ID。

CanTpGetTxIdentifier

功能:获取连接用于发送 (Tx) 协议数据的消息的 CAN ID。

CanTpSetRxIdentifier

功能:设置连接用于接收 (Rx) 协议数据的消息的 CAN ID。

CanTpSetTxIdentifier

功能:设置连接用于发送 (Tx) 协议数据的消息的 CAN ID。

代码示例

long handle;
handle = CanTpCreateConnection(0);
if( handle <= 0)
  return; // error
CanTpSetRxIdentifier( handle, 0x80000000 | 0xABCDEF);
CanTpSetTxIdentifier( handle, 0x80000000 | 0x987654);

CanTpGetPadding & CanTpSetPadding

功能:获取和设置 CAN 消息填充的状态,并指定填充字节(如果使用);CanTpGetPadding 返回 connHandle 引用的 TP 连接设置的 paddingValue。 即,默认值或先前使用 Set 函数设置的值(或者可能是错误值)。

paddingValue值设置:

        -1:不要将 CAN 消息填充到 8 个数据字节,即 CAN 消息的 DLC 将有所不同。
        0 - 255:给定的字节值用于将 CAN 消息填充为 8 个数据字节。
        256:CAN 消息以 DLC 8 发送,但字节未初始化,即字节的内容是任意的并且取决于先前发送的消息。
        其他:保留

connHandle:传输协议的句柄

返回值:

        0:设置成功

        -1:设置失败

代码示例

创建的TP连接的填充值设置为0xAA。

long handle;
//正常链接模式
handle = CanTpCreateConnection( 0); 
CanTpSetTxIdentifier(handle, 0x100);
CanTpSetRxIdentifier(handle, 0x101);
// 将填充字节值设置为 0xAA
CanTpSetPadding(handle, 0xAA); 

CanTpGetAcceptOtherMode & CanTpSetAcceptOtherMode

功能:获取或设置有关 CAN 2.0 或 FD 帧的连接行为:激活后,CAN 2.0 连接将接受 CAN FD 帧,甚至可能继续发送 CAN FD 帧。 CAN FD 连接将接收 CAN 2.0 帧,甚至可能继续发送 CAN 2.0 帧。

注意:此函数可能会导致 TP 层出现非标准行为,因此必须谨慎使用!

connHandle:传输协议连接的句柄。

acceptType:

        0:忽略 CAN FD (CAN 2.0) 连接上的 CAN 2.0 (CAN FD) 帧(默认)
        1:在CAN FD(CAN 2.0)连接上接受CAN 2.0(CAN FD)帧,但继续发送CAN FD(CAN 2.0)
        2:在CAN FD(CAN 2.0)连接上接收CAN 2.0(CAN FD)帧,并通过发送CAN 2.0(CAN FD)帧来适应其余的数据传输

返回值:

CodeShort Description
-19没有这样的连接,即连接创建失败或给定的句柄未知。
-18连接已知,但同时已关闭。
-17该功能尚未实现。
-16CAPL 函数接收到错误的参数。
-15CAPL 函数只能从适当的回调函数中调用。
-14无法为其所应用的寻址模式调用函数。
-13这在回调函数中是不可能的。
-12故障注入未激活。
0好的,没有错误

代码示例

long CreateCANFDConnection( WORD txId, WORD rxId)
{
  long handle;
  handle = CanTpCreateConnection( 0); // normal链接模式
  CanTpSetTxIdentifier( handle, txId);
  CanTpSetRxIdentifier( handle, rxId);
  CanTpSetMaxCANFDFrameLength( handle, 24); // 使能CANFD
  CanTpSetBitRateSwitch( handle, 1); // activate BRS
  CanTpSetAcceptOtherMode( handle, 2); // 适应peer指示的模式
  return handle;
}

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

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

相关文章

电子技术的发展

本资料仅用于学习和讨论如有侵权请反馈 1.1 第一台只能存储640M 什么是模拟信号: 2.1 把声波转化为电信号 2.2 微音器输出的某一段信号的波形 3、最简单有个蜂鸣器,再好一点有个喇叭 4、人说话的声音是个很复杂的声音 5、嵌入式实时操作系统: 6、结构到函数 6.1 学习环境…

【Java】快速入门JVM

文章目录 1. JVM简介2. 类加载简介3. 类加载的过程4. 双亲委派5. GC垃圾回收6. JVM的回收方式7. 分代回收 1. JVM简介 JVM&#xff08;Java虚拟机&#xff09;是一个名字为Java的进程,是用于执行Java程序的虚拟机。 JVM会从操作系统中申请一大块内存空间,又把这个内存空间划分…

我的会议(我的审批,会议签字附源码)

目录 前言&#xff1a; 3.我的审批&#xff1a; 3.1实现的特色功能&#xff1a; 3.2显示的效果 3.3思路&#xff1a; 3.4寻找相关的案例或者自己使用JavaScript去写一个类似的功能 3.5具体的步骤&#xff1a; 3.5.1添加静态的jsp代码&#xff08;我的审批数据的显示&…

投稿注意!APA格式超全示例详解,原本28天能录用,可能要拖延2个月

为什么同一本期刊有论文28天录用&#xff0c;有论文10个月才录用&#xff1f;结合近期征稿的这本经管类SSCI期刊&#xff0c;小编&#xff08;Unionpub学术&#xff09;整理了部分影响录用的几个因素&#xff0c;准备提交此期刊的作者可自查参考下&#xff1a; &#xff08;参…

【100天精通python】Day20:文件及目录操作_os模块和os.psth模块, 文件路径拼接,目录操作

目录 专栏导读 1 文件的目录操作 os模块的一些操作目录函数​编辑 os.path 模块的操作目录函数 2 相对路径和绝对路径 3 路径拼接 4 判断目录是否存在 5 创建目录、删除目录、遍历目录 专栏导读 专栏订阅地址&#xff1a;https://blog.csdn.net/qq_35831906/category_12…

Segment Anything Model (SAM)

论文地址&#xff1a;https://arxiv.org/pdf/2304.02643.pdf 项目地址&#xff1a;Segment Anything | Meta AI (segment-anything.com) SAM贡献&#xff1a; 1.SA任务&#xff1a;提出了提示图像分割任务&#xff0c;在给定任何图像分割提示的情况下返回一个有效的分割掩码…

JS/node:Blob、ArrayBuffer和Buffer

前端较少涉及对二进制数据的处理&#xff0c;但即便如此&#xff0c;我们偶尔总能在角落里看见它们的身影&#xff0c;今天我们就来聊一聊JS的二进制家族&#xff1a;Blob、ArrayBuffer和Buffer&#xff08;Buffer由Node.js提供&#xff09; 概述 Blob: 前端的一个专门用于支…

el-checkbox设置溢出...隐藏后,选框和文字垂直方向不居中了

解决方式设置vertical-align:middle样式属性 ::v-deep .el-checkbox__label {font-size: 18px;margin-bottom: 5px;width: 100%;overflow: hidden;white-space: nowrap;text-overflow: ellipsis;vertical-align: middle;//可以实现复选框和文字垂直方向居中}

2023.8.1号论文阅读

文章目录 MCPA: Multi-scale Cross Perceptron Attention Network for 2D Medical Image Segmentation摘要本文方法实验结果 SwinMM: Masked Multi-view with SwinTransformers for 3D Medical Image Segmentation摘要本文方法实验结果 MCPA: Multi-scale Cross Perceptron Att…

Redis 高可用:主从复制、哨兵模式、集群模式

文章目录 一、redis高可用性概述二、主从复制2.1 主从复制2.2 数据同步的方式2.2.1 全量数据同步2.2.2 增量数据同步 2.3 实现原理2.3.1 服务器 RUN ID2.3.2 复制偏移量 offset2.3.3 环形缓冲区 三、哨兵模式3.1 原理3.2 配置3.3 流程3.4 使用3.5 缺点 四、cluster集群4.1 原理…

芯片制造详解.薄膜沉积.学习笔记(六)

这里附上原视频链接&#xff0c;此文章是对于视频的归纳和整理。 如何造出芯片&#xff1a;薄膜沉积&#xff5c;芯片制造详解06 芯片制造详解.薄膜沉积.学习笔记 六 一、由薄膜引出沉积二、沉积的分类2.1 物理沉积(PVD)2.2 化学气相沉积(CVD) 三、沉积的历史3.1 V1.0 常压化学…

无涯教程-Lua - 简介

Lua是一种轻量语言&#xff0c;它的官方版本只包括一个精简的核心和最基本的库。这使得Lua体积小、启动速度快。它用ANSI C语言编写并以源代码形式开放&#xff0c;编译后仅仅一百余K&#xff0c;可以很方便的嵌入别的程序里。和许多“大而全”的语言不一样&#xff0c;网络通信…

STM32基础知识学习笔记汇总

笔记后面补充汇集到此 怎么选 初学&#xff1a;海创、杨桃杜洋、江科大、千峰进阶&#xff1a;安福莱、普中过度&#xff1a;韦东山深入&#xff1a;正点、野火其他&#xff1a;金沙滩、自化协、硬石 扩展 库函数操作相当于C&#xff0c;面向对象寄存器操作相当于C &#xff…

【HarmonyOS】键盘遮挡输入框时,实现输入框显示在键盘上方

【关键字】 harmonyOS、键盘遮挡input&#xff0c;键盘高度监听 【写在前面】 在使用API6、API7开发HarmonyOS应用时&#xff0c;常出现页面中需要输入input&#xff0c;但是若input位置在页面下方&#xff0c;在input获取焦点的时候&#xff0c;会出现软键盘挡住input情况&a…

【备战csp-j】 csp常考题型详解(2)

二.计算机网络。 1. TCP/IP 协议共有( )层协议 。 A.3 B.4 C.5 D.6 答案&#xff1a;B 解析&#xff1a; 2.Ipv4 地址是由( ) 位二进制数码表示的。 A.16 B.32 C.24 D.8 答案&#xff1a;B 解析&#xff1a;IP地址是IP协议提供的一种统一的地址格式。在目前使用的IPv…

使用Python创建快速创建剪映草稿轨道,自动生成视频

使用Python创建快速创建剪映草稿轨道&#xff0c;自动生成视频 一、实现原理 实现原理 : JianYingPro 项目文件是 json 的形式存储的&#xff0c;只需要创建draft_content.json,draft_mate_info.json 打开软件后会自动补全。 作用&#xff1a;快速生成草稿&#xff0c;可以完…

jenkins通过sshPut传输文件的时候,报错Permission denied的SftpException

一、背景 使用jenkins的ssh插件传输文件至远程机器的指定目录&#xff0c;php程序打包后&#xff0c;经过zip压缩为oms.zip zip -rq oms.zip ./ -x .git/* -x .env然后我们求md5值 md5sum oms.zip最后执行传输。 09:03:02 Executing command on ssh[116.61.10.149]: mkdir…

深度技术解析:验证码短信API的实现原理与优化策略

引言 验证码短信在现代应用中扮演着至关重要的角色&#xff0c;它是一种简单而高效的安全验证方式&#xff0c;被广泛用于各类应用和场景。验证码短信在现代应用中的起着账号安全保障、交易与支付安全保障等重要作用。 在本文中&#xff0c;本文将围绕验证码短信 API 的基本原…

消息队列中间件 MetaQ/RocketMQ

简介—— 消息队列中间件 MetaQ/RocketMQ 中间件 MetaQ 是一种基于队列模型的消息中间件&#xff0c;MetaQ 据说最早是受 Kafka 的影响开发的&#xff0c;第一版的名字 "metamorphosis"&#xff0c;是奥地利作家卡夫卡的名作——《变形记》。RocketMQ 是 MetaQ 的开…

【零基础??天速成 Java】Day1 - 初识 java

目录 前言 1. 第一个 java 程序 2. java 开发的注意事项 3. java 的注释 4. javadoc 标签 5. java 的变量 6. java 的 String 和 基本类型转换 7. java 的输入 8. java 的数组 9. java 的方法 10. java 方法的传参 写在最后&#xff1a; 前言 我的 java 基础学习…