USB HID Devices
USB HID (human interface device) class — класс устройств USB для взаимодействия с человеком. Этот класс включает в себя такие устройства как клавиатурs, мыши, игровые(джойстики, рули и т.п.) и мультимедийные контроллеры и т.п. Класс USB HID определен в нескольких документах, предоставляемых USB Implementers Forum
USB HID устройство может быть составным и включать в себя несколько разных контроллеров, в т.ч. клавиатуру, мышь.
Игровой контроллер согласно документам USB-IF может иметь практически неограниченное количество контролов в виде осей, кнопок, элементов POV а также других, однако операционная система Windows ( точней её подсистема ввода Direct Input ) накладывает следующие ограничения на игровой контроллер:
Число осей (Axis) - не более 8 . Обязательные объявляемые оси в хид-декрипторе устройства X, Y, Z, RotX, RotY,RotZ ; Две оставшиеся оси могут иметь любые именования согласно документам USB-IF, однако в Direct Input они будут именоваться как Slider1 и Slider2;
Число кнопок (Button) - не более 128 (однако некоторые игры могут обрабатывать меньше) ;
Число хаток (POV) - не более 4. В общем случае POV представляет собой ось для передачи значения углов с 36000 отсчетов (16 бит) , однако де факто в игровой индустрии элементы POV используются в низком разрешении ( 3 бита). (также не факт что все игры могут обрабатывать все 4 POV )
Хотя игры/симуляторы могут иметь собственную подсистему ввода и поддерживать устройства с гораздо большим числом контролов, чем в Direct Input, однако это практически не используется.
В связи с указанными ограничениями, особенно по количеству осей, иногда приходится использовать несколько виртуальных игровых контроллеров.
Настройки USB HID устройств находятся на панели конфигуратора Global-Common :
Включенные виртуальные устройства можно видеть в списке устройств. Если используется короткий список, то список составного устройства можно увидеть на всплывающей подсказке;
Игровые контроллеры
SN - серийный номер устройства HID. Иногда для двух одинаковых физических устройств может понадобится задать серийный номер - чтобы игры могли их различать. 0000 - устройство HID без серийного номера
#POV - задает число POV в базовом контроллере ( до 4-х хаток)
#But - задает число кнопок в базовом контроллере ( до 128)
VC - задает число дополнительных виртуальных контроллеров ( до 3-х контроллеров ). В таких контроллерах по умолчанию задается по 128 кнопок и 4 POV.
Однако если заданы следующие параметры:
#But = 64 , VC=1 - будет создан дополнительный виртуальный игровой контроллер с 64 кнопками. При этом все логические кнопки джойстика (128 макс) будут разделены между основным и виртуальным контроллерами.
#But = 32 , VC=3 - будут созданы 3 виртуальных игровых контроллера с 32 кнопками. При этом все логические кнопки джойстика (128 макс) будут разделены между всеми 4-мя контроллерами.
Такие трюки нужны, когда игра или симулятор не имеет возможности получить кнопки более определенного числа.
Hide - позволяет сделать вместо стандартного игрового устройства скрытое ( т.н. Vendor - device). Его смогут видеть и работать с ним только определенные программы.
Eco - по команде шины USB устройство переходит в глубокий сон с минимальным потреблением тока. Выключив эту опцию устройство продолжит работу с периферией как и раньше с тем же потреблением тока, однако отключится от шины USB как работающее.
FPS - выбор максимальной частоты обновления данных контроллера в системе. Обычно не требует изменения.
SD (Start Delay) - задержка переподключения контроллера в системе. Обычно не требует изменения.
Dly, mS - задержка между "нажатием" модификаторов CTRL-ALT-SHIFT-WIN и основной клавишей в комбинаторных клавишах
F13..F24 Keys - клавиатура с расширенными клавишам Fx
Mouse -
OFF - выключено
Relative - эмуляция обычной мыши, перемещения которой передаются в виде изменений координат XY
Absolute - эмуляция поинтера с абсолютными координатами
R+A - две вышеперечисленные типа поинтеров работают одновременно.
Active - режим работы
On/OFF - управляемый
Always ON - постоянно включено
Параметры управления для Relative мыши, управляемой аналоговыми осями ( POV );
Speed : чувствительность отклика
Curve - степень нелинейности отклика OFF .. 1..8
FL (Forced Limit) - мгновенное перемещение на максимум при достижении управляющей осью максимального значения
Параметры управления для ABSOLUTE Mode:
SCREEN Width/Height - значения ширины / высоты экрана в пикселях
SP1..SP7 - сетпоинты для установки курсора в определенные позиции (см. функцию Set Screen Point )
Доступные контролы для управления в системе можно посмотреть здесь