can接收id过滤linux,linux – 很大程度上被candump(SocketCAN)ID过滤功能搞糊涂了

  • Post author:
  • Post category:linux


candump的帮助下:

: (matches when & mask == can_id & mask)

现在,当掩码为0时,每个CAN ID都将匹配它.所以can_id没有实际效果,这就是所有消息都通过的原因,can id中的每个必需位都应该在掩码中设置为1.

关于复制问题,可能是因为你使用了两个过滤器,但我不确定这一点.

你想要做的是:

candump can0,00200200:1fffffff,255:7ff

示例(由OP提供):

enyquist:~$candump vcan0,255:7ff &

[1] 7339

enyquist:~$cansend vcan0 002001fe#1122

enyquist:~$cansend vcan0 002001ff#1122

enyquist:~$cansend vcan0 00200200#1122

vcan0 00200200 [2] 11 22

enyquist:~$cansend vcan0 00200201#1122

enyquist:~$cansend vcan0 00200202#1122

enyquist:~$

enyquist:~$cansend vcan0 253#1122

enyquist:~$cansend vcan0 254#1122

enyquist:~$cansend vcan0 255#1122

vcan0 255 [2] 11 22

enyquist:~$cansend vcan0 256#1122

enyquist:~$cansend vcan0 257#1122

enyquist:~$