我正在写一个Linux程序(使用Qt 4.8和libusb 1.0),它将与自定义USB设备(当前正在由同事编程)进行通信。使用libusb异步批量传输,设备停止接收,如果我们空闲

第1步是让“心跳”以固定的时间间隔通过USB来回传输。 我目前正在使用异步批量传输。

对于测试,我已将“Send_Heartbeat()”放在按钮单击上。如果我点击LOT按钮并排队发送一些消息,只要我保持队列忙,消息就会继续发送,而我的USB设备会继续接收它们。

如果我停了几秒钟,然后恢复并添加更多消息到队列中,USB设备停止接收它们。

但是,我的节目的传输回调确实与0传递状态代码返回,表示成功,尽管我的USB设备无法接收他们。

我的问题:

为什么回调的传输状态表示成功,如果我的USB设备似乎已停止接受他们?

有没有人听说过这种类型的行为?

值得注意的是,如果我断开USB设备,我的回调中会返回正确的状态码,表明设备已经消失。

如果USB设备保持连接和运行,并且我“Detatch”,然后再“附加”强制重新连接,并尝试发送更多的测试心跳时,它的工作原理! USB设备再次开始接收消息。

我“Detatch”是以下呼叫:

libusb_release_interface()

libusb_reset_device()

libusb_close()

然后,我的“附加”是:

libusb_get_device_list()

libusb_get_device_descriptor()

libusb_open()

libusb_set_configuration()

libusb_claim_interface()

我的下一个步骤是缩小其中的libusb的命令是重新建立沟通。

同时,我希望有人认识到这些症状,并有一个建议。 由于这是我第一次编程USB通信,我想知道是否有一些我已经错过的基础。

谢谢!

2013-07-03

Doug

+0

难道你需要'attach_kernel_driver()'在分离来电? –

2013-07-15 11:59:02

+0

而且,你不需要在附加调用中使用'detach_kernel_driver()'吗? –

2013-07-15 11:59:47

libusb linux 异步传输,使用libusb异步批量传输,设备停止接收,如果我们空闲相关推荐

  1. linux usb 批量传输文件,一种Linux系统下提升usb批量传输速度的方法及系统与流程...

    本发明涉及通信传输技术领域,具体地说是一种linux系统下提升usb批量传输速度的方法及系统. 背景技术: linux系统访问usb设备有两种方式:编写内核驱动模块ko和在用户空间编写程序,通过内核提 ...

  2. linux qt libusb,Ubuntu15下Qt+libusb开发

    Ubuntu15下Qt5+libusb-1.0开发 下载和安装libusb-1.0 在Ubuntu15中可以从软件仓库安装libusb,当前的libusb版本为1.0.可以使用如下命令安装libusb ...

  3. linux下交叉编译libusb的方法及编译一个使用了libusb库的test程序的方法

    linux交叉编译libusb的方法 下载libusb 下载网址:libusb - Browse Files at SourceForge.net 交叉编译libusb 将下载好的libusb压缩包解 ...

  4. PHP 命令行模式实战之cli+mysql 模拟队列批量发送邮件(在Linux环境下PHP 异步执行脚本发送事件通知消息实际案例)...

    源码地址:https://github.com/Tinywan/PHP_Experience 测试环境配置: 环境:Windows 7系统 .PHP7.0.Apache服务器 PHP框架:ThinkP ...

  5. 《Linux那些事儿之我是USB》我是U盘(37)迷雾重重的批量传输(六)

    usb_stor_bulk_transfer_sglist()函数有一定的"蛊惑性",我们前面说过,之所以采用sglist,就是为了提高传输效率.我们更知道,sg的目的就是让一堆不 ...

  6. 《Linux那些事儿之我是USB》我是U盘(34)迷雾重重的批量传输(三)

    在usb_stor_Bulk_transport()中,这个函数中调用的第一个最重要的函数,那就是usb_stor_bulk_transfer_buf().仍然是来自drivers/usb/stroa ...

  7. 《Linux那些事儿之我是USB》我是U盘(33)迷雾重重的批量传输(二)

    其实故事已经讲了很久,但如果你觉得到这里你已经把故事都看明白了,那么你错了.不仅仅是错了.不信,我们就继续看,先看512行,us->transport(),这个函数指针同样是在storage_p ...

  8. UART(Universal Asynchronous Receiver/Transmitter,异步收发传输器)

    转自 http://baike.baidu.com/link?url=8hQCnHbH_IWvPK1Tp3RHqFgD9YtAzj-JDFQFaqbhY136q9EvODCZe8aQXW_u-gcJn ...

  9. libusb系列-002-Windows下libusb源码编译

    libusb系列-002-Windows下libusb源码编译 文章目录 libusb系列-002-Windows下libusb源码编译 摘要 Windows下编译libusb库 下载源码 进入msv ...

最新文章

  1. oracel 服务详细介绍
  2. 相比薪酬,学习效率提升才是创业公司最有价值的报酬
  3. python整形浮点型运算规则
  4. 铁矿怎么来_铁矿期货今日创出新高908.5点 为何老有人错过行情
  5. gsoap的几个常用设置选项
  6. centos 搭建Jenkins
  7. c#访问各数据库的providerName各驱动
  8. pandas 删除行
  9. vs2008+sp1
  10. 这个坑,坑死职场年轻人
  11. dfuse Search 是所有 EOSIO 开发者的必备工具
  12. Eclipse 远程开发插件 RSE 及远程登录
  13. 用案例说话,教你如何写出有吸引力的开发信以及主题
  14. python操作Excel设置打印标题时碰到的一个小问题
  15. 超融合架构与容器超融合
  16. JAVA 垃圾回收
  17. 谷歌拼音输入法PinyinIME源码修改----随着Setting中中英文的切换对应改变软键盘中英文输入且字符变换
  18. mysql漏洞如何打补丁_“永恒之黑”针对win10和服务器漏洞分析
  19. 离散数学·代数结构【正规子群、商群、群的同态和同构、环与域、格、布尔代数】
  20. cmu的计算机专业项目有哪些,CMU的ECE「卡内基梅隆大学电气与计算机工程系」

热门文章

  1. 利用Python实现自动换桌面壁纸
  2. 会计人必知的会计实务知识及操作流程bbs.canet
  3. 戴尔r720服务器装系统
  4. 百度产品经理校园招题目汇总
  5. 用1个拨码开关控制所有的LED灯亮灭
  6. Atmega48,168,328P等芯片的差别在哪,后缀含义
  7. 成为一名Java高级架构师到底需要学习什么?
  8. centos7 firewall-cmd查看端口是否开放及开放端口
  9. 迭代硬阈值(IHT)算法解决CS优化目标函数
  10. 国内自动驾驶公司Momenta