Как записать данные на GIP -устройство (контроллер серии Xbox)?C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Как записать данные на GIP -устройство (контроллер серии Xbox)?

Сообщение Anonymous »

Я работаю над программой, которая отправила бы пакет с питанием в мой контроллер серии Xbox, чтобы выключить ее. Из этого поста я узнал, что, во -первых, мне нужно получить рукоятку интерфейса XboxGIP: < /p>

Использование интерфейса GIP начинается с получения ручки для
по пути устройства \. \ Xboxip < /p>
< /blockquote>
HANDLE hFile = CreateFileW(L"\\\\.\\XboxGIP", GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, nullptr, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, nullptr);
< /code>
Затем я прочитал контроллер с помощью Readfile и смог получать данные, которые приходят на ПК при запуске контроллера. Я получил 3 разных сообщения: < /p>

Сообщение метаданных: < /li>
< /ol>
Received 315 bytes:
7E ED 82 C6 8B DA 00 00 04 20 00 00 27 01 00 00
00 00 00 00 5E 04 12 0B 10 00 01 00 00 00 00 00
00 00 00 00 00 00 23 01 CD 00 16 00 1B 00 1C 00
26 00 2F 00 4C 00 00 00 00 00 00 00 00 00 01 05
00 17 00 00 09 01 02 03 04 06 07 0C 0D 1E 08 01
04 05 06 0A 0C 0D 1E 01 1A 00 57 69 6E 64 6F 77
73 2E 58 62 6F 78 2E 49 6E 70 75 74 2E 47 61 6D
65 70 61 64 08 56 FF 76 97 FD 9B 81 45 AD 45 B6
45 BB A5 26 D6 2C 40 2E 08 DF 07 E1 45 A5 AB A3
12 7A F1 97 B5 E7 1F F3 B8 86 73 E9 40 A9 F8 2F
21 26 3A CF B7 FE D2 DD EC 87 D3 94 42 BD 96 1A
71 2E 3D C7 7D 6B E5 F2 87 BB C3 B1 49 82 65 FF
FF F3 77 99 EE 1E 9B AD 34 AD 36 B5 4F 8A C7 17
23 4C 9F 54 6F 77 CE 34 7A E2 7D C6 45 8C A4 00
42 C0 8B D9 4A C0 C8 96 EA 16 B2 8B 44 BE 80 7E
5D EB 06 98 E2 03 17 00 20 2C 00 01 00 10 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 17 00 09
3C 00 01 00 08 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 17 00 1E 40 00 01 00 22 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00
< /code>

Hello Message: < /li>
< /ol>
Received 53 bytes:
7E ED 82 C6 8B DA 00 00 02 20 00 00 21 00 00 00
00 00 00 00 7E ED 82 C6 8B DA 00 00 5E 04 12 0B
05 00 17 00 06 00 00 00 08 04 01 00 01 00 01 00
00 00 00 00 00
< /code>

и сообщения о состоянии устройства, которые приходили каждые 500 мс или около того: < /li>
< /ol>
Received 24 bytes:
7E ED 82 C6 8B DA 00 00 03 20 00 00 04 00 00 00
00 00 00 00 8B 00 00 58

Каждое сообщение выше начинается с 7E ED 82 C6 8B DA 00 00 , что является уникальным идентификатором моего устройства. Они придерживаются документов, но я не могу понять, как отправить команду обратно в контроллер. Затем я попытался написать на устройство с помощью записи. Так должно выглядеть состояние установленного устройства. Я пробовал две вещи: < /p>

Отправить только пакет с командой: < /li>
< /ol>
powerOffCommand[0] = 0x05; // Command ID
powerOffCommand[1] = 0x20; // Flags
powerOffCommand[2] = 0x01; // Sequence number
powerOffCommand[3] = 0x01; // payload length
powerOffCommand[4] = 0x04; // payload. Power Off command.
< /code>
В этом случае я получил ошибку, говоря, что устройство не подключено, даже если я читаю данные из него. powerOffCommand[0] = 0x7E;
powerOffCommand[1] = 0xED;
powerOffCommand[2] = 0x82;
powerOffCommand[3] = 0xC6;
powerOffCommand[4] = 0x8B;
powerOffCommand[5] = 0xDA;
powerOffCommand[6] = 0x00;
powerOffCommand[7] = 0x00;

powerOffCommand[8] = 0x05; // Command ID
powerOffCommand[9] = 0x20; // Flags
powerOffCommand[10] = 0x01; // Sequence number
powerOffCommand[11] = 0x01; // payload length
powerOffCommand[12] = 0x04; // payload. Power Off command.
< /code>
В этом случае я получаю ошибку, говоря, что параметр неверен, который намекает на то, что он нашел устройство, но по какой -то причине пакет, который я отправляю, не удовлетворяет его. Изменение любого из идентификационных байтов приводит к устройству, не подключается к ошибке. Это просто домашний проект, поэтому я прошу помощи отправить команду контроллеру. Приведенный ниже код был написан с помощью CHATGPT и моих скудных знаний о программировании в C# и Javascript. Я попытался отправить разные байты, такие как 0x01, 0x02, 0x03 и некоторые другие случайные, но это ничего не изменило. Я посмотрел вверх, какие печи заблокировали устройство, но я не мог понять, как закончить dwm.exe таким образом, чтобы не сломать мой настольный графический интерфейс, а также освободить контроллер. Я не знаю, как помешать контроллеру отправить ввод в ОС для управления меню в Win10. < /Li>
Также я нашел эту таблицу, но я не могу ее расшифровать. Здесь хост отправляет команду от Power Off, но когда я делаю то же самое, он бросает. Но 0xd2 байт выглядит интересно. Я не понимаю, для чего это нужно.
Рисунок 4-16: Нижний набор устройства состояния USB Trace: Off


Подробнее здесь: https://stackoverflow.com/questions/797 ... controller
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как записать данные на GIP -устройство (контроллер серии Xbox)?
    Anonymous » » в форуме C#
    0 Ответы
    8 Просмотры
    Последнее сообщение Anonymous
  • Как записать данные на GIP -устройство (контроллер серии Xbox)?
    Anonymous » » в форуме C#
    0 Ответы
    8 Просмотры
    Последнее сообщение Anonymous
  • Как записать данные на GIP -устройство (контроллер серии Xbox)?
    Anonymous » » в форуме C#
    0 Ответы
    7 Просмотры
    Последнее сообщение Anonymous
  • Как записать данные на GIP -устройство (контроллер серии Xbox)?
    Anonymous » » в форуме C#
    0 Ответы
    7 Просмотры
    Последнее сообщение Anonymous
  • Как записать данные на GIP -устройство (контроллер серии Xbox)?
    Anonymous » » в форуме C#
    0 Ответы
    10 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C#»