Hekaitomix
09-07-2013, 15:06
Hello everybody. I've a problem. I've connected to the computer a joystick (PS1) to an adapter called "Konig electronic" which is connected to the pc through a usb cable. I want to control it with a c# program. I've used slimDX dll but it doesn't work. When i use a PSX simulation software the joystick works, but when i try to control it with a c# code it doesn't work. please help me.
I want to get the pressed buttons, from PS1 joystick, and display it into label2.
PS: Sorry for my bad english but i'm italian! :)
My C# project is:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using SlimDX.DirectInput;
namespace JoyStick
{
public partial class Form1 : Form
{
List<DeviceInstance> directInputList = new List<DeviceInstance>();
DirectInput directInput = new DirectInput();
SlimDX.DirectInput.Joystick gamepad;
SlimDX.DirectInput.JoystickState state;
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
directInputList.AddRange(directInput.GetDevices(De viceClass.GameController, DeviceEnumerationFlags.AttachedOnly));
gamepad = new SlimDX.DirectInput.Joystick(directInput, directInputList[0].InstanceGuid);
}
private void button1_Click(object sender, EventArgs e)
{
timer1.Start();
}
private void button2_Click(object sender, EventArgs e)
{
//gamepad.Unacquire();
timer1.Stop();
}
private void timer1_Tick(object sender, EventArgs e)
{
if (gamepad.Acquire().IsFailure)
return;
if (gamepad.Poll().IsFailure)
return;
if (SlimDX.Result.Last.IsFailure)
return;
state = gamepad.GetCurrentState();
bool[] buttons = state.GetButtons();
for (int i = 0; i < buttons.Length; i++)
if (buttons[i])
label2.Text = i.ToString();
lbl_np.Text = Convert.ToString(buttons.Length);
gamepad.Unacquire();
}
}
}
I want to get the pressed buttons, from PS1 joystick, and display it into label2.
PS: Sorry for my bad english but i'm italian! :)
My C# project is:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using SlimDX.DirectInput;
namespace JoyStick
{
public partial class Form1 : Form
{
List<DeviceInstance> directInputList = new List<DeviceInstance>();
DirectInput directInput = new DirectInput();
SlimDX.DirectInput.Joystick gamepad;
SlimDX.DirectInput.JoystickState state;
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
directInputList.AddRange(directInput.GetDevices(De viceClass.GameController, DeviceEnumerationFlags.AttachedOnly));
gamepad = new SlimDX.DirectInput.Joystick(directInput, directInputList[0].InstanceGuid);
}
private void button1_Click(object sender, EventArgs e)
{
timer1.Start();
}
private void button2_Click(object sender, EventArgs e)
{
//gamepad.Unacquire();
timer1.Stop();
}
private void timer1_Tick(object sender, EventArgs e)
{
if (gamepad.Acquire().IsFailure)
return;
if (gamepad.Poll().IsFailure)
return;
if (SlimDX.Result.Last.IsFailure)
return;
state = gamepad.GetCurrentState();
bool[] buttons = state.GetButtons();
for (int i = 0; i < buttons.Length; i++)
if (buttons[i])
label2.Text = i.ToString();
lbl_np.Text = Convert.ToString(buttons.Length);
gamepad.Unacquire();
}
}
}