我们的设备挂到一个500K的CAN总线上,总线上的其他设备比较多,我们的设置只处理id为0x106的标准帧,目前使用socketcan的如下方式设置
filter[0].can_id = 0x106;
filter[0].can_mask = CAN_SFF_MASK;
setsockopt(g_sock_can, SOL_CAN_RAW, CAN_RAW_FILTER, &filter, sizeof(filter));
但是从/sys/class/net/can0/statistics/rx_bytes上还是能看到接收到其他数据,感觉是没有过滤掉,请帮忙看看我这种需求该如何实现,多谢
qiang feng2:
意思就是在应用层如何实现hardware filter
Steven Liu1:
看一下AM3358的TRM手册,23.3.15.6 Acceptance Filtering of Received Messages章节,这个是你想要的吗?
先看下硬件功能,如果是的话,提供一下你的软件具体版本,需要看一下相关的release notes确认软件版本上是否有对此进行实现。
yongqing wang:
意思是接收到了别的can id的数据?