Интерпретировать байты, полученные с USB-устройства в .NET - PullRequest
1 голос
/ 01 ноября 2011

Я успешно получаю байты с устройства USB с помощью библиотеки HID USB .net.Вот пример моего кода:

        Dim ptr As IntPtr = USB.USB_Read()
        Dim buff As Byte() = New Byte(USB.USB_ReadLength() - 1) {}

        Marshal.Copy(ptr, buff, 0, buff.Length)
        textBox_Read.Text = BitConverter.ToString(buff)

А вот пример полученных данных:

00-01-00-F0-00-00-00-80
00-00-00-F0-00-00-00-80

Или с другим контроллером USB:

00-6D-6A-A8-72-B2-70-7B-7E-00-80-01-00-00-00
00-6D-6A-A8-72-B2-70-7B-7E-00-80-01-00-00-00
00-6D-6A-A8-72-B2-70-7B-7E-00-80-00-00-00-00
00-6D-6A-A8-72-B2-70-7B-7E-00-80-00-00-00-00

Мой вопрос: как я могу узнать, какая кнопка нажата?Значение: я просто хочу, чтобы моя программа сохраняла нажатую кнопку и выполняла действие при нажатии.

Как я могу интерпретировать эти данные?

С уважением, Алексис.

1 Ответ

0 голосов
/ 01 ноября 2011

Информация о том, как их интерпретировать, возможно, проприетарна.

Если вы нацелены только на это одно устройство, вы можете просто попробовать разные кнопки и искать шаблоны в байтах.

Другой вариант - оставить интерпретацию байтов и портов USB для драйверов и получить данные из Windows и DirectX, например Получение данных с джойстика с помощью C # .NET

...