1

我正在尝试让一个 Android USB 主机程序连接到一个实际上是 USB 串行转换器的从站。从设备当前设置为在没有可用数据时返回 NAK,我正在轮询从设备以查看是否有任何 IN 数据,方法是使用 IN 端点上的 queue() 和 requestWait() 作为 onAnimationUpdate 侦听器的一部分. 然而,系统卡在 requestWait() 中 - 大概是等到它得到对排队请求的明确答复。
我会认为 NAK 将被视为从站已对请求做出反应并且返回空结果或类似结果的指示。但是,我找不到有关此的详细文档。谁能指出我正确的方向以寻求建议?

4

1 回答 1

1

我已经解决了这个问题 - 但不是很令人满意。似乎 Android requestWait() 函数无法识别对 IN 的 NAK 响应,因为它指示“没有可用数据”(我原以为它会返回 null,因为正确的结果是什么),而只是坐下来等待直到有一些数据可用 - 锁定系统。我通过从我的设备返回一个“NULL”消息来“解决”这个问题,该消息由一个 1 字节的回复组成,ASCII NAK 作为单字节。这有效,因为我使用 ASCII 进行消息编码。

于 2013-04-06T20:11:37.927 回答