q1e2e3q 发表于 2015-08-13 20:01

socket can 接收数据丢包问题

我用socket can接收数据,每秒向下位机发送查询命令帧,下位机只有一个节点,下位机 连续发送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;
}

总觉得这个程序有问题,但不知道问题出在哪,请各位给看看
页: [1]
查看完整版本: socket can 接收数据丢包问题