我有一台设备可以控制通过USB发送数据的速度。我正在使用Qt进行数据的PC端处理。我常常根据计时器从设备读取数据。问题是定时器被记录为只有1毫秒的分辨率。这不会限制我读取数据到1ms的速度有多快?如果这个定时器太慢,我该如何利用USB大量带宽功能?限制USB带宽的API时间分辨率?
0
A
回答
1
这里有几点需要注意。
首先,如果您需要超过15ms的分辨率,用户模式下的定时器分辨率非常差。例如,在Windows中,如果您设置了一个定时器或睡眠时间仅为1毫秒,则实际时间将达到大约15-17毫秒。
无论如何这都会很慢,但如果您的驱动程序位于您的下方,而且速度更快,那么它可能不会成为问题。这是因为驱动程序的执行速度要快得多,可能有几个ping的未完成读取,并且只保留一个缓冲区以供您读取。但是,您的应用程序需要尽可能快地获取数据,并且计时器可能太慢,因此在您的数据可用时发送事件对象可能会更好。
二,使用WinUSB和libusb现在有更多的控制和需要用户模式来发出读取,而驱动程序只是内核模式的通过。在这种情况下,您应该创建一个线程,以便在应用程序中读取数据并将其提供给本地缓冲区。与内核模式类似,您将始终希望有一个未完成的读取,只是等待数据进入。
然后,您可以获取一个事件,通知您应用程序的业务部分从该缓冲区中获取数据。
相关问题
- 1. capCreateCaptureWindow分辨率限制
- 2. WebRTC分辨率限制
- 3. Linux的 - 限制USB设备带宽
- 4. 制作带页面分辨率的HTML
- 5. 分辨率和宽高比
- 6. RDP多显示器限制分辨率
- 7. 石墨URL API降低大时间间隔的分辨率
- 8. 下载时限制带宽
- 9. as3最好的时间分辨率?
- 10. iOS文件时间戳的分辨率
- 11. 实时/高分辨率股票API?
- 12. 什么是YouTube HTML5 API回调的时间分辨率?
- 13. 限制NSURLConnection数据速率? (带宽限制)
- 14. CSS/HTML分辨率的宽度
- 15. 分辨率与处理时间对比
- 16. GNU默认为低分辨率时间?
- 17. 添加纳秒分辨率UNIX时间
- 18. Kinect v2:空间分辨率/深度分辨率/相机校准
- 19. WaitForSingleObject的超时分辨率
- 20. 支持多种分辨率时的分辨率与尺寸
- 21. NSURLSession带宽限制
- 22. apache限制带宽
- 23. C#带宽限制带Azure
- 24. 安卓:绘制分辨率
- 25. 高分辨率,小型设备宽度
- 26. 移动分辨率和CSS长宽比
- 27. 多分辨率/分辨率C++容器
- 28. [R + zoo]:不同时间分辨率的时间序列操作
- 29. 同时支持高分辨率和低分辨率图像
- 30. 本机分辨率何时不能实际分辨率?
通过不使用基于计时器的轮询,而是每次有东西需要读取时唤醒您的应用程序的其他通知机制? – peppe