Пример #1
0
        protected virtual void OnHIDInputReceived(object sender, EventArgs e)
        {
            var inputReportBuffer = new byte[DeviceMaximumInputReportLen];

            //Flush pending report buffer
            while (DeviceInputHandler.TryRead(inputReportBuffer, 0, out _))
            {
                //Dispatch by removing the report ID
                DispatchInterfaceZeroResponse(inputReportBuffer.Skip(1).ToArray());
            }
        }
        public void Connect()
        {
            HidDevice iface0Device;

            if ((iface0Device = Utils.GetHidDevice(2821, DevicePID, 1, 0xFF00, out DeviceReportIDToUse)) != null)
            {
                DeviceHIDStream              = iface0Device.Open();
                DeviceHIDStream.ReadTimeout  = 3000;
                DeviceInputHandler           = iface0Device.GetReportDescriptor().CreateHidDeviceInputReceiver();
                DeviceInputHandler.Received += new EventHandler(OnHIDInputReceived);
                DeviceInputHandler.Start(DeviceHIDStream);
                DeviceMaximumInputReportLen = iface0Device.GetMaxInputReportLength();
            }
        }