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

 

目录

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

车载网络测试

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

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

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

打赏作者

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

抵扣说明:

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

余额充值