通过 USB 将数据从 Android 设备流式传输到 PC
Streaming data from an Android device to a PC via USB
我需要将一组数字(6 个浮点数)从 android 设备传输到通过 USB 数据线连接的 PC。我发现的所有解决方案都建议使用 WiFi 连接。但是,我发现由此造成的延迟是不可接受的。因此,我决定聘请某人来集成组件,从而实现直接通信。然而,在那之前,我想尝试各种设备,看看哪些设备有效,"Integrate" 两个设备的最快方法是允许它们共享 (US)Bus。但是,这是我零经验的一个领域。
你是创建一个套接字并将连接视为网络连接,还是有另一种更好的方法来实现我想要的?我已经看到一些关于为此目的制作设备驱动程序的讨论,我不想让我的 OS 再次崩溃 500 次。我很难相信 android 设备没有某种我可以利用的驱动程序。
android 代码是用 Java 写的,但可以根据人们的建议进行更改。 mys 系统的主要部分位于 PC 上,是用 C++ 编写的。
我需要流的延迟尽可能低,因为整个系统需要尽可能实时。设备上的数据采集和 PC 上的模拟渲染之间的限制为 15 毫秒。
TL/DR:我需要将数据从 android 设备上的程序流式传输到 PC,并尽可能减少延迟;即单向通信。只要我可以流式传输字节,我就可以设计协议并在接收端转换字节。我的全局上限是 15 毫秒,我需要流式传输不断更新的 6 个浮点数。实现此目标的最佳方法是什么?
预先感谢您的帮助。
原始 USB 可能不是可行的方法。 USB 是一种面向设备的规范,不能用于一般的跨线发送任意字节的方式。
如果 Wi-Fi 确实太慢,您可以尝试购买一个 Android 兼容的 USB 以太网适配器,并通过有线网络连接将设备连接到计算机,这可能会减少延迟。 Android 可识别多种类型的适配器,您可以像其他网络一样通过网络连接进行通信。
我们最终使用了 ADB brigde,对于我们的目的来说它似乎足够稳定和快速。我们所要做的就是打开一个套接字并与 TCP 连接。由于某种原因,当我们尝试使用 UDP 连接时它失败了,但我认为这可能是由于我们的疏忽造成的。
我需要将一组数字(6 个浮点数)从 android 设备传输到通过 USB 数据线连接的 PC。我发现的所有解决方案都建议使用 WiFi 连接。但是,我发现由此造成的延迟是不可接受的。因此,我决定聘请某人来集成组件,从而实现直接通信。然而,在那之前,我想尝试各种设备,看看哪些设备有效,"Integrate" 两个设备的最快方法是允许它们共享 (US)Bus。但是,这是我零经验的一个领域。
你是创建一个套接字并将连接视为网络连接,还是有另一种更好的方法来实现我想要的?我已经看到一些关于为此目的制作设备驱动程序的讨论,我不想让我的 OS 再次崩溃 500 次。我很难相信 android 设备没有某种我可以利用的驱动程序。
android 代码是用 Java 写的,但可以根据人们的建议进行更改。 mys 系统的主要部分位于 PC 上,是用 C++ 编写的。
我需要流的延迟尽可能低,因为整个系统需要尽可能实时。设备上的数据采集和 PC 上的模拟渲染之间的限制为 15 毫秒。
TL/DR:我需要将数据从 android 设备上的程序流式传输到 PC,并尽可能减少延迟;即单向通信。只要我可以流式传输字节,我就可以设计协议并在接收端转换字节。我的全局上限是 15 毫秒,我需要流式传输不断更新的 6 个浮点数。实现此目标的最佳方法是什么?
预先感谢您的帮助。
原始 USB 可能不是可行的方法。 USB 是一种面向设备的规范,不能用于一般的跨线发送任意字节的方式。
如果 Wi-Fi 确实太慢,您可以尝试购买一个 Android 兼容的 USB 以太网适配器,并通过有线网络连接将设备连接到计算机,这可能会减少延迟。 Android 可识别多种类型的适配器,您可以像其他网络一样通过网络连接进行通信。
我们最终使用了 ADB brigde,对于我们的目的来说它似乎足够稳定和快速。我们所要做的就是打开一个套接字并与 TCP 连接。由于某种原因,当我们尝试使用 UDP 连接时它失败了,但我认为这可能是由于我们的疏忽造成的。