libusb linux 异步传输,使用libusb异步批量传输,设备停止接收,如果我们空闲
我正在写一个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异步批量传输,设备停止接收,如果我们空闲相关推荐
- linux usb 批量传输文件,一种Linux系统下提升usb批量传输速度的方法及系统与流程...
本发明涉及通信传输技术领域,具体地说是一种linux系统下提升usb批量传输速度的方法及系统. 背景技术: linux系统访问usb设备有两种方式:编写内核驱动模块ko和在用户空间编写程序,通过内核提 ...
- linux qt libusb,Ubuntu15下Qt+libusb开发
Ubuntu15下Qt5+libusb-1.0开发 下载和安装libusb-1.0 在Ubuntu15中可以从软件仓库安装libusb,当前的libusb版本为1.0.可以使用如下命令安装libusb ...
- linux下交叉编译libusb的方法及编译一个使用了libusb库的test程序的方法
linux交叉编译libusb的方法 下载libusb 下载网址:libusb - Browse Files at SourceForge.net 交叉编译libusb 将下载好的libusb压缩包解 ...
- PHP 命令行模式实战之cli+mysql 模拟队列批量发送邮件(在Linux环境下PHP 异步执行脚本发送事件通知消息实际案例)...
源码地址:https://github.com/Tinywan/PHP_Experience 测试环境配置: 环境:Windows 7系统 .PHP7.0.Apache服务器 PHP框架:ThinkP ...
- 《Linux那些事儿之我是USB》我是U盘(37)迷雾重重的批量传输(六)
usb_stor_bulk_transfer_sglist()函数有一定的"蛊惑性",我们前面说过,之所以采用sglist,就是为了提高传输效率.我们更知道,sg的目的就是让一堆不 ...
- 《Linux那些事儿之我是USB》我是U盘(34)迷雾重重的批量传输(三)
在usb_stor_Bulk_transport()中,这个函数中调用的第一个最重要的函数,那就是usb_stor_bulk_transfer_buf().仍然是来自drivers/usb/stroa ...
- 《Linux那些事儿之我是USB》我是U盘(33)迷雾重重的批量传输(二)
其实故事已经讲了很久,但如果你觉得到这里你已经把故事都看明白了,那么你错了.不仅仅是错了.不信,我们就继续看,先看512行,us->transport(),这个函数指针同样是在storage_p ...
- UART(Universal Asynchronous Receiver/Transmitter,异步收发传输器)
转自 http://baike.baidu.com/link?url=8hQCnHbH_IWvPK1Tp3RHqFgD9YtAzj-JDFQFaqbhY136q9EvODCZe8aQXW_u-gcJn ...
- libusb系列-002-Windows下libusb源码编译
libusb系列-002-Windows下libusb源码编译 文章目录 libusb系列-002-Windows下libusb源码编译 摘要 Windows下编译libusb库 下载源码 进入msv ...
最新文章
- oracel 服务详细介绍
- 相比薪酬,学习效率提升才是创业公司最有价值的报酬
- python整形浮点型运算规则
- 铁矿怎么来_铁矿期货今日创出新高908.5点 为何老有人错过行情
- gsoap的几个常用设置选项
- centos 搭建Jenkins
- c#访问各数据库的providerName各驱动
- pandas 删除行
- vs2008+sp1
- 这个坑,坑死职场年轻人
- dfuse Search 是所有 EOSIO 开发者的必备工具
- Eclipse 远程开发插件 RSE 及远程登录
- 用案例说话,教你如何写出有吸引力的开发信以及主题
- python操作Excel设置打印标题时碰到的一个小问题
- 超融合架构与容器超融合
- JAVA 垃圾回收
- 谷歌拼音输入法PinyinIME源码修改----随着Setting中中英文的切换对应改变软键盘中英文输入且字符变换
- mysql漏洞如何打补丁_“永恒之黑”针对win10和服务器漏洞分析
- 离散数学·代数结构【正规子群、商群、群的同态和同构、环与域、格、布尔代数】
- cmu的计算机专业项目有哪些,CMU的ECE「卡内基梅隆大学电气与计算机工程系」