Как я могу получить доступ к игровому контроллеру через USB? - PullRequest
3 голосов
/ 29 сентября 2011

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

Одной из самых досадных проблем, вызванных ничем иным, как безрассудным плохим дизайном, является контроллер GOTO и его клавиатура.

Если кто-то из вас помнит Синклер Спектрум, вы понимаете, о чем я. Наряду с резиновыми клавишами, ключевые клавиши для направления и поворота телескопа неудобны для поиска, когда ваш глаз пытается приспособиться к виду.

Все, что нужно, - это неправильный ключ, и вы потратите еще около 30 минут на перестройку телескопа.

Обход
Мое решение - игровой контроллер, такой как ведомый, он аккуратно умещается в ваших руках и легко находит кнопки. Также нет риска сброса крепления.

Вопрос
У меня такой вопрос: как Delphi взаимодействует с игровыми контроллерами, потому что в документации нет упоминаний? Иначе как мне получить доступ к игровому порту, если он подключен через USB-ключ?

Ответы [ 2 ]

6 голосов
/ 29 сентября 2011

Работа с игровым контроллером является частью Windows API. JVCL JEDI имеет компонент управления HID (TJvHIDDeviceController), который делает то, что вы хотите.

1 голос
/ 29 сентября 2011

Приложения Delphi, работающие в линейных операционных системах «NT» (NT, 2000, XP, Vista, 7, 2003, 2008 ...), не могут напрямую обращаться к аппаратным устройствам. Только драйверы могут, потому что порты ввода / вывода, необходимые для доступа к ним, могут быть доступны только с помощью кода, работающего на правильном уровне IOPL (который равен 0 в Windows). Доступны некоторые универсальные драйверы, которые открывают любой порт ввода / вывода (таким образом создавая дыру в безопасности), который может вызвать пользовательский код. Но гораздо лучше полагаться на драйверы устройств и использовать HID API для взаимодействия с ними. Windows распознает большинство старых устройств (например, последовательный / игровой порт Wingman), в то время как более новые USB-устройства либо используют стандартные драйверы, которые поставляются с Windows, либо поставляются с собственными. Как только система распознает устройства, вы можете использовать их стандартным способом без необходимости копаться в деталях низкого уровня.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...