提问人:wronex 提问时间:11/17/2023 更新时间:11/17/2023 访问量:44
容错 USB HID 通信
Fault tolerant USB HID communication
问:
有没有办法通过 HID 发送容错 USB 通信,其中标准 Windows 驱动程序在检测到错误时不会引发BROKEN_PIPE?
根据我的经验,Windows 中的通用 HID 驱动程序很容易在出现 HID 批量传输问题的第一个迹象时投降。它设置了BROKEN_PIPE标志。然后,除非使用管理权限重新加载驱动程序,否则所有将来的通信都是不可能的。我认为中断传输也是如此。
问题不在于向协议添加校验和和数据包计数器。问题在于弄清楚如何说服 Windows 驱动程序永不投降,在遇到不利条件时尽最大努力传递数据包(或丢弃它们)。
避免管理权限和避免编写特殊驱动程序至关重要。
我们可以将数据打包到控制传输中吗?这些是否也容易导致管道破裂?USB 的 UDP 等效项是什么?
我尝试通过 HID 发送批量传输,但这些传输会导致BROKEN_PIPE。我也尝试过发送中断传输,但这些似乎也会导致BROKEN_PIPE。我希望存在类似 UDP 的模式,其中 HID 驱动程序会丢弃明显不好但连接保持打开状态的数据包。在这里,沟通是尽最大努力的,任何通过的数据都被允许通过,而不会放弃。
答: 暂无答案
上一个:Win32:检查窗口是否最小化
下一个:不理解 C++ 窗口中的字符
评论