1.游戏手柄被PC识别为JoyStick设备。可以方便的在c#中捕获按键信息。
2. 利用这些摇杆/按键信息,修改机器人程序数据,即可控制机器人运动。
3. 可以借助SharpDX 动态链接库,方便的捕获Joystick设备数据。
using SharpDX.DirectInput;
private Joystick myJoystick = null;
var dirInput = new SharpDX.DirectInput.DirectInput();
var typeJoystick = SharpDX.DirectInput.DeviceType.Joystick;
var typeGamepad = SharpDX.DirectInput.DeviceType.Gamepad;
var allDevices = dirInput.GetDevices();
bool isGetJoystick = false;
foreach (var item in allDevices)
{
if (typeJoystick == item.Type || typeGamepad == item.Type)
{
myJoystick = new SharpDX.DirectInput.Joystick(dirInput,item.InstanceGuid);
myJoystick.Acquire();
4. 可以利用多线程,实时获取当前JoyStick的各button及摇杆数据。
var joys = myJoystick.GetCurrentState();
string info = joys.Buttons[0].ToString() + ",";
info +=joys.Buttons[1].ToString() + ",";
info +=joys.Buttons[2].ToString() + ",";
info +=joys.Buttons[3].ToString();
info += "X=" + joys.X.ToString() + " ,Y=" + joys.Y.ToString();
5. 将以上获得的数据,通过PCSDK方式,实时修改机器人控制器中的数据,即可控制机器人运动。