主题:[求助]LINUX -socket Can 连续发送数据问题

  共有45319人关注过本帖    
帅哥哟,离线,有人找我吗?
hzc
1楼 信息 | 搜索 | 邮箱


加好友 发短信 员工
  发帖心情 Post By:2014-5-21 10:45:00   [显示全部帖子]

    你好,can是可以连续发送数据帧的,循环调用write()函数发送数据的测试情况如下:

 


图片点击可在新窗口打开查看此主题相关图片如下:qq图片20140521104205.jpg
图片点击可在新窗口打开查看

 

    如果没有解决问题,可以将你的详细情况发送邮件或者直接通过电话和我们交流,谢谢。

   

 

 


 


  单帖管理 | 引用 | 回复 回到顶部
帅哥哟,离线,有人找我吗?
hzc
2楼 信息 | 搜索 | 邮箱


加好友 发短信 员工
  发帖心情 Post By:2014-5-21 11:27:00   [显示全部帖子]

    你好,把延时去掉了,这是使用的测试程序:  

    for(i=0;i<500;i++)
    {

        nbytes = write(s, &frame, sizeof(struct can_frame));
        printf( "%d sendbytes\n", i1+1 );
        i1++;
    }

    这是测试的结果:

 


图片点击可在新窗口打开查看此主题相关图片如下:qq截图20140521112352.jpg
图片点击可在新窗口打开查看

 

    在连续调用500次write()后,数据没有丢失。


  单帖管理 | 引用 | 回复 回到顶部
帅哥哟,离线,有人找我吗?
hzc
3楼 信息 | 搜索 | 邮箱


加好友 发短信 员工
  发帖心情 Post By:2014-5-21 15:11:00   [显示全部帖子]

你好,查看write()函数的返回值,有出现-1的情况,说明有数据没有发送出去,“丢掉的”数据就是没有发送出去的数据。

可以在程序中增加发送是否成功的判断:if(nbytes!=sizeof(struct can_frame)),如果发送失败就重新发送。


  单帖管理 | 引用 | 回复 回到顶部

返回首页

[求助]LINUX -socket Can 连续发送数据问题

用户名:
            验证码: 验证码,看不清楚?请点击刷新验证码
内容: