Vector - CAPL - 诊断模块函数(连接管理)

news2024/11/13 9:45:20

CanTpCreateConnection - 创建TP连接

功能:使用给定的地址模式(add人Mode)创建新连接,可用于诊断数据的收发。

说明:无法更改已有连接的寻址模式;如果确实有需要,可以关闭当前连接后再创建一个新连接来使用。

addrMode:(对应的是各种诊断的寻址模式,我们根据自己需要选择对应的模式即可)

        0:Normal

        1:Extended (based)

        2:NormalFixed

        3:Mixed

        4:Mixed /11 bit)

        5:Extended (free)

返回值:

        ≤ 0:

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

        > 0:可在其他 CanTp... 函数调用中使用的连接句柄。

代码示例

        创建并配置正常模式连接;我们当前市面上百分之九十以上的项目都是使用的常规的CAN&CANFD诊断通信,因此基本都是选择这种模式来创建连接。

//定义一个句柄,后续的都需要使用,我们一般使用全局变量,方便后面的调用
long handle; 
//创建一个常规寻址模式的链接,并返回句柄handle 
handle = CanTpCreateConnection(0);
//设置诊断请求ID
CanTpSetTxIdentifier(handle, 0x100);
//设置诊断应答ID
CanTpSetRxIdentifier(handle, 0x101);

CanTpCloseConnection - 关闭已经创建的连接

功能:关闭现有使用的连接。后续该链接将无法再次被使用,并且指示此连接将失败的 CAPL 函数调用。

代码示例

        关闭数据库连接以确保CAPL程序完全控制该节点中的TP。

long dbHandle;
//获取当前存在的连接
dbHandle = CanTpGetDBConnection();
if( dbHandle > 0)//表示当前连接有效
  CanTpCloseConnection( dbHandle);

CanTpGetAddressingMode - 获取当前寻址模式

功能:返回给定连接的寻址模式。

注意:由于无法更改现有连接的寻址模式,因此该函数通常用于确定数据库连接的模式,因为所有其他连接都是由 CAPL 程序创建的。

返回值:与CanTpCreateConnection的返回值一致

代码示例

检索数据库连接的寻址模式。

long mode;
mode = CanTpGetAddressingMode(CanTpGetDBConnection());
if( mode < 0)
  write( "There is no database connection!");
else
  write( "Database connection uses mode %d", mode);

CanTpGetDBConnection - 获取当前连接功能:此函数返回通过分配给该模拟节点的数据库节点配置的连接句柄。

说明:用于定义节点的 TP 连接的 CANdb 属性针对工具链进行了标准化,并且通常由 OEM 在通信矩阵中指定。调用此函数时,OSEKTL API 将被停用(独立于返回值)。 可以通过调用适当的 OSEKTL 函数来重新激活它。

返回值:参考CanTpCreateConnection

代码示例

获取数据库连接并在其上发送一些数据。

long dbHandle;
BYTE data[100];
dbHandle = CanTpGetDBConnection();
if( dbHandle > 0)
  CanTpSendData( dbHandle, data, elcount(data));

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

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

相关文章

首批获得金融级行业云平台认证,天翼云深耕行业云

云计算下半场看什么&#xff1f; 无疑是金融、政务、制造等传统政企用户的上云与用云。随着数字经济发展和产业数字化的提速&#xff0c;上云已是政企用户推动其数字化转型不断深入的重要抓手&#xff0c;成为不可阻挡的趋势。 与互联网用户相比&#xff0c;政企用户上云极为…

Qt5.13引入QtWebApp的模块后报错: error C2440: “reinterpret_cast”: 无法从“int”转换为“quintptr”

1、开发环境 Win10-64 qt5.13 msvc2015-64bit-release 2、报错 新建一个demo工程。 引入QtWebApp的httpserver、logging、templateengine三个模块后。 直接运行&#xff0c;&#xff0c;此时报错如下&#xff1a; E:\Qt5.13.1\install\5.13.1\msvc2015_64\include\QtCore…

在腾讯云服务器OpenCLoudOS系统中安装redis(有图详解)

创建安装目录&#xff1a; mkdir -p /app/soft/redis 2. 下载安装包 进入安装目录 cd /app/soft/redis/ 下载安装包 wget https://download.redis.io/releases/redis-7.0.1.tar.gz 解压&#xff1a; tar -zxvf redis-7.0.1.tar.gz 安装gcc yum install gcc-c 进入re…

JSON:让数据传输更优雅

在东南亚海滩的阳光下&#xff0c;时而有一些贝壳、手工艺品等迷人的商品吸引着你。然而&#xff0c;语言的障碍有时会成为购买商品的阻碍。不得不用手比划以及尝试各种办法来进行交流。幸运的是&#xff0c;人们找到原始沟通的技巧&#xff0c;让彼此都能接受的信息交流方式&a…

ES6 - 对象新增的一些常用方法

文章目录 1&#xff0c;Object.is()2&#xff0c;Object.asign()3&#xff0c;Object.getOwnPropertyDescriptors()4&#xff0c;Object.setPrototypeOf()和getPrototypeOf()5&#xff0c;Object.keys()、values() 和 entries()6&#xff0c;Object.fromEntries()7&#xff0c;…

高效构建 vivo 企业级网络流量分析系统

作者&#xff1a;vivo 互联网服务器团队- Ming Yujia 随着网络规模的快速发展&#xff0c;网络状况的良好与否已经直接关系到了企业的日常收益&#xff0c;故障中的每一秒都会导致大量的用户流失与经济亏损。因此&#xff0c;如何快速发现网络问题与定位异常流量已经成为大型企…

在Gazebo中添加悬浮模型方法 / Gazebo中模型如何不因重力下落:修改sdf、urdf模型

目录 一、问题描述&#xff1a; 二、解决方法&#xff1a; 2.1 SDF模型&#xff1a; 2.2 URDF模型&#xff1a; 2.3 测试添加模型 三、通过Python程序在Gazebo中添加模型 一、问题描述&#xff1a; 在使用ros做仿真实验时&#xff0c;有时会需要在空间中添加一个模型文件…

1——Hive数仓项目完整流程(在线教育)

目录 前言 一、项目架构 二、软件相关作用 1.大数据相关软件 2.数仓 2.1数据仓库与数据库 2.2数据仓库和数据集市 2.3维度分析 2.4指标 3.数仓建模 3.1建模理论 3.2维度建模 3.3维度建模的三种模型 3.4缓慢渐变维 总结 前言 本专栏以大数据实战“在线教育项目”为导向系…

SAP 动态编程-动态获取结构字段对象(类模式)

实施方法 GET_DYNAMIC_FIELD_OBJECT 参数 代码 DATA: lt_source TYPE TABLE OF string.DATA: lv_name TYPE sy-repid VALUE ZTEMP_GET_DYNAMIC_OBJECT,lv_form(30) TYPE c VALUE FRM_GENERATE_OBJECT,lv_message(240) TYPE c,lv_line TYPE i,lv_word(72…

JVM GC ROOT分析

GC root原理:通过对枚举GCroot对象做引用可达性分析,即从GC root对象开始,向下搜索,形成的路径称之为 引用链。如果一个对象到GC roots对象没有任何引用,没有形成引用链,那么该对象等待GC回收,换而言之,如果减少内存泄漏,也就是切断引用链,常见的GCRoot对象如下: 1、…

基于双端口RAM的乒乓操作测试

文章目录 前言一、乒乓操作简介二、双端口RAM配置三、RAM控制模块设计四、乒乓操作验证 前言 本文将介绍基于双端口RAM的乒乓操作测试&#xff0c;并探索如何在AWC_C4MB开发板上实现这一测试。双端口RAM作为一种性能出色且功能强大的存储器设计&#xff0c;为我们提供了并发访问…

PCB布线当中的地线和电源线的规划和处理

在PCB布线中&#xff0c;地线和电源线的规划和布局非常重要&#xff0c;可以影响电路的稳定性、抗干扰能力和信号质量。下面是一些常见的规划和布局建议&#xff1a; 分离地平面&#xff1a;将地线分为模拟地和数字地两个区域&#xff0c;并使用两个独立的地平面来布线。这样可…

MySql007——检索数据:排序检索数据(ORDER BY的使用)

前提&#xff1a;使用《MySql006——检索数据&#xff1a;基础select语句》中创建的products表 一、抛出问题 如果我们向获得products表中所有商品名称和价格&#xff0c;可以这些检索数据 SELECT prod_name, prod_price FROMproducts;但是发现这些价格是乱序的&#xff0c;…

【计算机视觉 | 图像分割】arxiv 计算机视觉关于图像分割的学术速递(7 月 28 日论文合集)

文章目录 一、分割|语义相关(6篇)1.1 To Adapt or Not to Adapt? Real-Time Adaptation for Semantic Segmentation1.2 Towards Deeply Unified Depth-aware Panoptic Segmentation with Bi-directional Guidance Learning1.3 Semantic Image Completion and Enhancement usin…

PTC Preo creo弹出框 重新获得许可 取消弹出框方法

问题&#xff1a;打开proe软件之后&#xff0c;在使用时&#xff0c;会有【重新获得浮动许可证】的弹出框提示 解决办法&#xff1a; 1.重新打开proe 2.配置proe参数&#xff0c;Proe打开软件&#xff0c;打开选项 Proe用好多版本&#xff0c;打开的界面都不一样&#xff0c…

一零六六、线程池、锁

线程池&#xff1a; 管理线程创建&#xff0c;销毁的一系列池子 如何创建线程池&#xff1f; ExecutorService executor Executors.newFixedThreadPool(n); 创建线程有多种方法&#xff0c;为何要用线程池&#xff1f; 减少性能开销,每次执行任务都新建线程造成cpu资源浪费…

【雕爷学编程】Arduino动手做(181)---Maixduino AI开发板11

37款传感器与执行器的提法&#xff0c;在网络上广泛流传&#xff0c;其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块&#xff0c;依照实践出真知&#xff08;一定要动手做&#xff09;的理念&#xff0c;以学习和交流为目的&am…

低代码平台的使用学习

背景 最近发现老婆每天都要捣鼓一个 excel 表格&#xff0c;并将表格发到群中&#xff0c;询问后才知道只是为了记录每天的事物变化。我想这接收方每次都要下载表格再打开看&#xff0c;太麻烦了&#xff0c;直接做个 web 表单&#xff0c;支持简单的增删改查就好了。 当我着…

Talk | ICCV‘23 华南理工大学林炜丰:视觉基础模型-尺度卷积调制遇上Transformer

本期为TechBeat人工智能社区第519期线上Talk&#xff01; 北京时间8月3日(周四)20:00&#xff0c;华南理工大学—林炜丰的Talk已准时在TechBeat人工智能社区开播&#xff01; 他与大家分享的主题是: “视觉基础模型-尺度卷积调制遇上Transformer”&#xff0c;他介绍了一种新的…