【问题标题】:Streaming data from an Android device to a PC via USB通过 USB 将数据从 Android 设备流式传输到 PC
【发布时间】:2015-06-16 12:48:22
【问题描述】:

我需要将一组数字(6 个浮点数)从 android 设备传输到 PC,并通过 USB 电缆连接到 PC。我发现的所有解决方案都建议使用 WiFi 连接。但是,我发现由此引起的延迟是不可接受的。因此,我决定聘请某人来集成组件,从而实现直接沟通。然而,在那之前,我想尝试各种设备,看看什么是有效的,“集成”两个设备的最快方法是允许它们共享一个(美国)总线。然而,这是我零经验的一个领域。

您是创建一个套接字并将连接视为网络连接,还是有另一种更好的方法来实现我想要的?我已经看到一些关于为此目的制作设备驱动程序的讨论,我不想让我的操作系统再次崩溃 500 次。我很难相信 android 设备没有我可以利用的某种驱动程序。

android 代码是用 Java 编写的,但可以根据人们的建议进行更改。 mys 系统的主要部分位于 PC 上,并且是用 C++ 编写的。

我需要流的延迟尽可能低,因为整个系统需要尽可能实时。设备上的数据采集和 PC 上的模拟渲染之间的限制是 15 毫秒。

TL/DR:我需要以尽可能少的延迟将数据从 android 设备上的程序流式传输到 PC;即单向通信。只要我可以流式传输字节,我就可以设计协议并在接收端转换字节。我的全局上限是 15 毫秒,我需要流式传输不断更新的 6 个浮点数。实现这一目标的最佳方法是什么?

提前感谢您的帮助。

【问题讨论】:

标签: android c++ stream usb driver


【解决方案1】:

原始 USB 可能不是要走的路。 USB 是一种面向设备的规范,不能用于一般的 send-arbitrary-bytes-a-wire 方式。

如果 Wi-Fi 确实太慢,您可以尝试购买兼容 Android 的 USB 以太网适配器,并通过有线网络连接将设备连接到计算机,这可能会减少延迟。 Android 可以识别这些适配器的多种类型,并且您通过网络连接进行通信的方式与其他网络相同。

【讨论】:

  • 经过大量测试后,我们设法使 ADB 桥能够可靠且响应迅速地工作。至少暂时我们会这样做。
【解决方案2】:

我们最终使用了 ADB 旅,它似乎对于我们的目的来说足够稳定和快速。我们所要做的就是打开一个套接字并与 TCP 连接。由于某种原因,当我们尝试连接 UDP 时它会失败,但我认为这可能是由于我们的忽略。

【讨论】:

    猜你喜欢
    • 2011-04-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多