Vector代码过滤CanID

对于Basic CAN,可以接收一组CAN Messages。如果当前节点只接收指定范围的网络管理报文,比如CANID:0x400~0x43F的网络管理报文

普通人:


if((canid >= 0x400) && (0x43F <= canid))
{
    /* do something */
}

vector

代码对比


#include <iostream>
#include <time.h>

#define RUN_TIMES          100000000
#define CANIF_CANID_MASK   ((uint16_t)0x7C0)
#define CANIF_CANID_LOWER  ((uint16_t)0x400)
#define CANIF_CANID_UPPER  ((uint16_t)0x43F)

#define CANIF_CANID_CODE  0x400

static bool CanIf_FilterCANid(uint16_t _canid)
{
  bool ret = false;

  clock_t start_time1 = clock();
  for (int idx = 0; idx < RUN_TIMES; idx++)
  {
    ((CANIF_CANID_MASK & CANIF_CANID_CODE) == \
    (CANIF_CANID_MASK & _canid))?(ret = true):(0);
  }
  clock_t end_time1 = clock();

  std::cout << "Mask Method:Running time is: "        \
    << static_cast<
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

HappyGirl快乐女孩

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

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

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

打赏作者

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

抵扣说明:

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

余额充值