public AxisCallibrationViewModel(AccelerometerGamePadDevice device, AxisViewModel axis) { m_nextCommand = new RelayCommand(Next, CanNext); m_okCommand = new RelayCommand(Ok, CanOk); m_cancelCommand = new RelayCommand(Cancel); m_device = device; m_axis = axis; m_device.SelectAxis(m_axis.Type); m_timer = new Timer(TimerUpdateTime); m_timer.AutoReset = true; m_timer.Elapsed += m_timer_Elapsed; m_timer.Start(); }
private void CheckConnection(object e) { if (!AccelerometerGamePadDevice.IsDeviceConnected()) { OnErrorOccurred(); return; } m_device = AccelerometerGamePadDevice.OpenDevice(); IsConnected = true; try { SelectedProfile = m_profiles.FirstOrDefault(x => x.Id == m_device.GetSelectedProfile().Profile); } catch { OnErrorOccurred(); return; } }
public static AccelerometerGamePadDevice OpenDevice() { AccelerometerGamePadDevice result = null; //HidDevice device = HidDevices.Enumerate(MyVid, MyPid).FirstOrDefault(); //if (device == null) throw new DeviceNotFoundException(string.Format("AccelerometerGamePad with VID=0x{0} PID=0x{1} not found", MyVid.ToString("X"), MyPid.ToString("X"))); //result = new AccelerometerGamePadDevice { m_device = device }; //result.m_ioHandle = OpenDeviceIo(result.m_device.DevicePath); IntPtr device = FindDevice(); if (device == NativeMethods.InvalidHandleValue) { throw new DeviceNotFoundException("Error occurred while opening IO for AccelerometerGamePad"); } result = new AccelerometerGamePadDevice() { m_ioHandle = device }; return(result); }