2013-11-23 22 views
1

模拟方向盘有可能吗?我的意思是说,像我按下左侧按钮30%的窗口?还是我需要写一些驱动程序,它将与我的应用程序进行通信?所以Windows会认为它是一个真正的设备。模拟方向盘

如果我需要驱动程序,那么我需要发送什么命令给windows来做正确的事情,也许我可以直接从我的应用程序发送它们。

我有一个使用虚拟COM端口与读卡器进行通信的小经验的书面申请,但有真实的设备:/

也许我可以用一些实际的方向盘驱动程序,在Windows中安装它,然后发送命令有些COM让Windows认为它是真正的设备?

请帮忙,或者至少指示我可以找到一些信息的地方。

+0

您可以在线获得USB或30美元或40美元的USB方向盘(带气体和制动踏板),然后查看USB HID库(参见[这里](http://stackoverflow.com/questions/280199/)) –

+0

或者约5美元,你可以得到一个旧的PlayStation控制器的USB转换器,只是假装模拟棒是方向盘... –

+0

我不想使用真实我想让我的应用程序像真正的设备一样行事,只是为了现在我不知道游戏和控制器之间的连接是什么类型,以及它们之间传递了哪些数据 –

回答

1

http://vjoystick.sourceforge.net/site/上找到解决方案。现在我已经将服务器和客户端写在手机上并开始测试,但它的工作速度很慢。我打开套接字并从手机发送3-5个字节,但服务器读取3-4个信息。样品( “X-100; X-4; X45;”)

TcpClient tcpClient = (TcpClient)client; 
NetworkStream clientStream = tcpClient.GetStream(); 

byte[] message = new byte[1000]; 
int bytesRead; 

while (ThreadsRun) { 
    bytesRead = 0; 
    try { 
     bytesRead = clientStream.Read(message, 0, 1000); 
     var stringMsg = ""; 
     for (int i = 0; i < bytesRead; i++) { 
      stringMsg += (char)message[i]; 
     } 
     queue.Enqueue(stringMsg);//conqurentqueue 
    } catch { 
     break; 
    } 
    Thread.Sleep(1); 
} 
tcpClient.Close(); 

代码是非常简单且应该是快速,从电话平为40ms发送56个字节。

这里有什么问题,还是有另一种更频繁地发送少量数据的更快方法?