CanTpGetMaximumReceiveLength & CanTpSetMaximumReceiveLength
功能:获取或设置该节点接收数据时可接受的最大长度;如果指示较长数据块的第一帧到达,则溢出 (FC.Ovflw) 流状态流控制帧将被发送回发送器。
注意:CANoe 支持高达 16 MiB 的数据传输,大于此的数据块将被自动剪切。
connHandle:传输协议连接的句柄。
maxLength:设置该节点接收数据时的最大可接受长度。
代码示例
设置接收数据长度最大为50byte,拒绝接收长度超过50字节的数据。
CanTpSetMaximumReceiveLength( connHandle, 50);
CanTpGetWaitingMode & CanTpSetWaitingMode
功能:获取并设置连接的等待模式
1:表示等待模式处于活动状态/应激活
0:表示等待模式处于关闭状态。
说明:TP 连接可以设置为等待模式,这意味着将等待 (FC.WT) 帧发送到发送器,而不是清除发送 (FC.CTS) 流量控制帧。 发送器必须等待 FC.CTS,然后才能继续发送连续帧。
可以在收到第一帧后(即在回调中)直接更改连接的“等待”模式。 接收器可以通过停用“等待”模式让发送器继续发送数据。 这将导致接收方立即发送 FC.CTS 帧。
flag:
0:离开
1:活跃/应该被激活
CanTpSetBitRateSwitch
功能:设置 CAN FD 帧上的比特率开关值。
说明:如果给定连接上使用 CAN FD 帧,则激活或停用比特率切换标志; 如果 CAN FD 未激活连接,则不会发生任何情况。
connHandle:传输协议连接的句柄。
bitRateSwitch:
0:不设置标志
1:在CAN FD帧上设置标志
其他:保留
返回值:
Code | Short Description |
-19 | 没有这样的连接,即连接创建失败或给定的句柄未知。 |
-18 | 连接已知,但同时已关闭。 |
-17 | 该功能尚未实现。 |
-16 | CAPL 函数接收到错误的参数。 |
-15 | CAPL 函数只能从适当的回调函数中调用。 |
-14 | 无法为其所应用的寻址模式调用函数。 |
-13 | 这在回调函数中是不可能的。 |
-12 | 故障注入未激活。 |
0 | 好的,没有错误 |
代码示例
long CreateCANFDConnection( WORD txId, WORD rxId)
{
long handle;
//normal模式
handle = CanTpCreateConnection( 0);
CanTpSetTxIdentifier( handle, txId);
CanTpSetRxIdentifier( handle, rxId);
CanTpSetMaxCANFDFrameLength( handle, 24); // 使能 CAN FD
CanTpSetBitRateSwitch( handle, 1); // 使能 BRS 位
return handle;
}
CanTpSetMaxCANFDFrameLength
功能:使用给定连接上的 CAN FD 帧激活或停用。 如果处于活动状态,将创建尽可能长的 CAN FD 帧(最小 8 字节)。
connHandle:传输协议连接的句柄。
maxCANFDFrameLength:
0:激活CAN 2.0,停用 CAN FD
8、12、16、20、24、32、48、64:激活 CAN FD 并指示 TP 层在必要时应使用达到此长度的 CAN FD 帧。 帧的其余部分用默认为 0xCC 的填充字节填充。
其他:保留
返回值:
Code | Short Description |
-19 | 没有这样的连接,即连接创建失败或给定的句柄未知。 |
-18 | 连接已知,但同时已关闭。 |
-17 | 该功能尚未实现。 |
-16 | CAPL 函数接收到错误的参数。 |
-15 | CAPL 函数只能从适当的回调函数中调用。 |
-14 | 无法为其所应用的寻址模式调用函数。 |
-13 | 这在回调函数中是不可能的。 |
-12 | 故障注入未激活。 |
0 | 好的,没有错误 |
代码示例
参考CanTpSetBitRateSwitch示例
CanTpSetWaitFrameTransmissionMax
功能:设置 WFTmax,即连接在必须中止接收之前可以发送的 FC.WT 帧的数量。
说明:参数WFTmax指示接收器在必须中止接收之前可以连续发送的FC.WT帧的数量。 一旦流量控制帧超时到期,发送器将中止传输。
connHandle:传输协议连接的句柄。
WFTmax:设置FC.WT 帧的数量
代码示例
当接收到第一帧时,连接被设置为等待模式。 3秒后离开等待状态,即发射器可以继续发送数据。 请注意,连接可以发送的 FC.WT 流量控制帧的数量设置为 5,以确保接收不会过早中止。
CanTp_FirstFrameInd( long handle, dword count)
{
gWaitingHandle = handle;
CanTpSetWaitingMode( handle, 1);
CanTpSetWaitFrameTransmissionMax( handle, 5);
setTimer( tClearWaiting, 3000);
}
on timer tClearWaiting
{
if( gWaitingHandle > 0
&& CanTpGetWaitingMode(gWaitingHandle) == 1)
{
CanTpSetWaitingMode(gWaitingHandle, 0);
}
}