我正在用C#/ Mono编写要在ARM计算机上运行的程序。它需要能够将Xbox控制器的状态插入系统。我尝试了许多各种库(例如XInputDotNet),但是它们都有各种问题(例如尝试使用不兼容的本机C ++ DLL)。

如何读取ARM机器上Xbox控制器的状态?

附言尽管存在类似的问题,但这不是重复的。在ARM上,针对先前问题的所有解决方案均因某种原因而失败。

最佳答案

要更直接地谈论您的任务-您需要与USB设备接口。通常,这意味着打开USB驱动程序的句柄,为您提供了一条管道,您可以通过该管道将数据读取和写入USB设备。 libusb是在Linux用户空间应用程序中执行此操作的好方法。

鉴于您将在C#上的mono上执行此操作,因此需要对libusb进行pinvokes。如果您还不熟悉pinvokes,我建议您尝试一些小技巧,因为它们很快就会变得很复杂。特别是,请阅读有关SafeHandles的信息。

您至少可以使用一个现有项目来基于-xboxdrv,这是一个基于libusb构建的用户级C ++应用程序,它可以读写控制器的数据并将其显示为标准操纵杆,以便任何支持操纵杆的程序都可以使用它。

关于c# - 在ARM Linux上从Mono访问Xbox Controller ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24686699/

10-11 03:25