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

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));

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

车载网络测试

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值