通过USB将数据从Android设备流式传输到PC

时间:2015-06-16 12:48:23

标签: android c++ stream usb driver

我需要将一组数字,6个浮点数从Android设备传输到PC,并通过USB线连接到PC。我发现的所有解决方案都建议使用WiFi连接。但是,我发现由此引起的延迟是不可接受的。因此,我决定雇用某人来整合组件,从而实现直接沟通。然而,在那之前,我想尝试各种各样的设备来看看什么有效,以及最快的方式来整合"两个设备允许他们共享(美国)Buss。然而,这是我没有经验的一个领域。

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

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

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

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

提前感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

原始USB可能不是可行的方法。 USB是面向设备的规范,不能以通用的send-arbitrary-bytes-over-wire方式使用。

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

答案 1 :(得分:0)

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