socket can 接收数据丢包问题

技术理工男 2015-08-13 07:57:30
我用socket can 接收数据,250k,每秒向下位机发送查询命令帧,下位机只有一个节点,下位机 连续发送72帧数据上来,有丢包的问题,不是每次都丢包,一个小时丢几帧,我用can分析仪发现下位机都发上来了,就是socketcan没接收对,我是这么接收的如下是程序:

static int test_can_rw(int fd, int master)
{
int ret;//,len;
struct can_frame frdup;
printf_debug("get in test_can_rw\n");
while (1) {

ret = read(fd, &frdup, sizeof(frdup));

if (ret < sizeof(frdup)) {
myerr("read failed");
printf("read cnt = %d",ret);
continue;
}
if (frdup.can_id & CAN_ERR_FLAG) { /*出错设备错误 */
handle_err_frame(&frdup);
myerr("CAN device error");
continue;
}

//处理can数据
can_data_process(&frdup);
}

return 0;
}

总觉得这个程序有问题,但不知道问题出在哪,请各位给看看
...全文
741 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

1,318

社区成员

发帖
与我相关
我的任务
社区描述
主要是开发驱动技术
社区管理员
  • 驱动程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧