目录
canFlushTxQueue -- 刷新已定义的Tx队列
代码示例
canSetChannelAcc -- CANoe接收过滤器设置
代码示例
canSetChannelMode -- CAN控制器Tx使能/失能
代码示例
canSetChannelOutput -- Ack自应答使能/失能
代码示例
getCardTypeEx -- CAN控制器类型
canFlushTxQueue
功能:刷新已定义通道的 Tx 队列。
channel:CANoe配置的CAN通道
返回值:
0:接口不支持刷新 Tx 队列
1:刷新成功
-1:刷写错误
代码示例
on key 'f'
{
int result;
//刷新 CAN 通道 1 的 Tx 队列
result = canFlushTxQueue(1);
if(result == 1)
write("Tx queue flushed ");
else
write("Tx queue flush failed Result =%d ", result);
}
canSetChannelAcc
功能:CANoe接收过滤器,CAN 控制器控制哪些接收到的消息被发送到 CANoe。
一些控制器芯片,例如 SJA 1000,需要划分为验收掩码和验收代码。
注意:此功能只能与 Vector 驱动程序一起使用。 vcndrvms.DLL 的版本必须至少为 4.2.40。
channel:CANoe配置的CAN通道
code:接收到的报文
mask:掩码(与code做与运算过滤)
返回值:
0:成功
!=0:失败
代码示例
on key 'a'
{
/*
区分过滤器是用于标准标识符还是扩展标识符。 对于扩展标识符,设置代码的 MSB 和掩码。
描述:
不同的端口可能对一个通道有不同的过滤器。 如果 CAN 硬件无法实现过滤器,则驱动程序会虚拟化过滤。
接受 if ((id ^ code) & mask) == 0)。
*/
long channel =2;
dword code=0x10;
dword mask=0x10;
canSetChannelAcc(channel,code,mask);
write("channel mask set");
}
canSetChannelMode
功能:激活/停用 CAN 控制器的 TXRQ 和 Tx。 该函数对 Ack 位没有任何作用。
注意:此功能只能与 Vector 驱动程序一起使用。 vcndrvms.DLL 的版本必须至少为 4.2.40。
channel | CANoe配置的CAN通道 | ||||
gtx |
| ||||
gtxreq |
|
代码示例
on key 't'
{
long channel =2;
char gtx =1;
char gtxreq =1;
canSetChannelMode(channel,gtx,gtxreq);
Write("Mode set to tx=%d, txreq=%d",gtx,gtxreq);
}
canSetChannelOutput
功能:定义 CAN 控制器对总线的响应并设置 ACK 位。通道的 CAN 发送器关闭。 所以CANoe这里不产生Ack位,消息就不能再发送了。 仍然可以接收消息。
注意:此功能只能与 Vector 驱动程序一起使用。 vcndrvms.DLL 的版本必须至少为 4.2.40。
参数:
channel | CAN channel | ||||
silent |
|
返回值:
0:设置成功
!=0:设置失败
代码示例
on key 's'
{
long channel =2;
long silent =0;
canSetChannelOutput(channel,silent);
Write("silent set to %d",silent);
}
getCardTypeEx
功能:确认 CAN 控制器类型,是否需要 对 BTR / OCR 值进行编程。
can:CAN通道值
返回值:
返回值 | 产品类型 |
---|---|
-1 | Unknown or Invalid hardware type |
3 | DEMO - Demo driver |
25 | Vector PCMCIA CANcardXL |
27 | Vector USB CANcaseXL |
28 | Vector CANcaseXLLog (USB + memory) |
29 | Vector CANboardXL PCI |
30 | Vector CPCI CANboardXL Compact |
31 | Vector CANboardXL PCI express |
33 | Vector VN7600 |
34 | Vector ExpressCard CANcardXLe |
36 | Vector VN3300 |
37 | Vector VN3600 |
38 | Vector VN2610 |
40 | Vector VN8950 |
41 | Remote (IP) Device |
43 | Vector VN8910 |
46 | Vector VT6104 |
47 | Vector VN8970 |
48 | Vector VN2640 |
49 | Vector VN1610 |
50 | Vector VN1611 |
51 | Vector VN1630 |
52 | Vector VN1640 |
53 | Vector VN5610 |
54 | Vector VN7570 |
55 | Vector IP Server |
56 | Vector VT6204 |
61 | Vector VN7572 |
62 | Vector VN8972 |
63 | Vector VN7610 |
71 | Vector VN5640 |
75 | Vector VX1131 |
76 | Vector VN5610A |