Как информация об оси джойстика отформатирована с помощью USB-джойстика? - PullRequest
2 голосов
/ 26 марта 2010

У меня просто небольшой вопрос, но у меня было самое трудное время, чтобы найти информацию о нем.

Для приложения, для которого я программирую, будет 3-осевой джойстик, подключаемый через USB к компьютеру под управлением Windows XP, и он обрабатывается DirectX. Затем эта информация будет отправлена ​​в другое место на встроенный контроллер. Мне не нужно слишком много знать о тонкостях того, как с этим справляется DirectX, но я хочу знать, как форматируются данные для осей?

Ближайший, насколько я могу судить, в настоящее время большинство джойстиков имеют разрешение 12 бит, так что вывод данных - это 12-битный комплимент 2? И после этого он представляется в виде 16-разрядного целого числа со знаком при захвате с DirectX?

Я хотел бы знать это, чтобы знать, как я буду работать с данными на стороне встроенной платформы, например, как форматировать пакеты, отправляющие данные на встроенную сторону, а также как использовать информацию, когда она есть на встроенной стороне.

1 Ответ

2 голосов
/ 26 марта 2010

Большая проблема с драйверами заключается в том, что это означает, что устройство может предоставлять вам данные ОДНАКО. Например, ничто не мешает отправить строковое представление числа по USB (хотя я допускаю, что это маловероятно). Пока драйвер повторно интерпретирует данные в окна формы (или любую ОС), проблемы не возникает.

Лучше всего выбрать подмножество устройств и просто посмотреть, как данные поступают в сыром виде, и записать собственную абстракцию между устройством и вашей системой. Если это неизвестное устройство, вы можете «угадать», в каком формате поступают данные, и попытаться заставить его работать, но я сомневаюсь, что вы справитесь с перехватом всей системы, так как какой-то багер где-то будет делать что-то странное т.е. по-своему)

...