Соотношение традиционных оси джойстика окна с HID
Вопрос
Я немного запутался в описании топоров джойстика, и я надеюсь, что у кого -то есть ссылка или документ, который может помочь очистить мою путаницу.
Я не парень из Windows, поэтому попытка переносить какой -то традиционный код GamePort Windows меня немного запутался.
Мы все знаем об общих первых трех топорах:
Икс
У
Z.
Насколько я понимаю, в интерфейсе в стиле GamePort три других оси:
р
U
V.
Однако, глядя в мои iohidusagetables (OS X), я вижу:
kHIDUsage_GD_X = 0x30, /* Dynamic Value */
kHIDUsage_GD_Y = 0x31, /* Dynamic Value */
kHIDUsage_GD_Z = 0x32, /* Dynamic Value */
kHIDUsage_GD_Rx = 0x33, /* Dynamic Value */
kHIDUsage_GD_Ry = 0x34, /* Dynamic Value */
kHIDUsage_GD_Rz = 0x35, /* Dynamic Value */
kHIDUsage_GD_Vx = 0x40, /* Dynamic Value */
kHIDUsage_GD_Vy = 0x41, /* Dynamic Value */
kHIDUsage_GD_Vz = 0x42, /* Dynamic Value */
kHIDUsage_GD_Vbrx = 0x43, /* Dynamic Value */
kHIDUsage_GD_Vbry = 0x44, /* Dynamic Value */
kHIDUsage_GD_Vbrz = 0x45, /* Dynamic Value */
kHIDUsage_GD_Vno = 0x46, /* Dynamic Value */
Это немного смущено из -за трех оси R (хотя это не кажется необычным) и отсутствия оси U.
Два вопроса:
1) Может ли кто -нибудь подтвердить, какую ось будет традиционной оси U? Я видел, как один документ описывает его как «ось для педалей руля», заставив меня поверить, что это будет Ry.
2) Может ли кто -нибудь более подробно описать типичные использование оси V и VBR? Я понимаю, что описания - «вектор» и «относительный вектор» соответственно, но мне сложно визуализировать, что это означает с точки зрения физического устройства.
Все указатели просветления и документации приветствуются.
Решение
Здесь есть 2 разных конвенции с неприятно схожим именованием:
- Положение, (r) отация и/или (v) элацирование для каждой из оси x, y, z
- (R), (u), (v) Оси
Это может быть так, что оси R, U, V отображают непосредственно на 3 из спрятанных слотов, какие бы они ни были. Или это может быть тот случай, когда водители делают что -то еще, в зависимости от того, какой именно кусок оборудования это.
Лично я бы не стал тратить слишком много времени, беспокоясь о том, что означает каждая ось «или их можно напрямую». Каждый джойстик имеет разные физические контроллеры, которые будут нанесены на карту водителями произвольным образом. Таким образом, за пределами x и y трудно предвидеть, какие оси будут использоваться для каждой функции. И даже если вы можете угадать исходное намерение, вполне вероятно, что пользователь может захотеть переопределить по умолчанию. Таким образом, вероятно, лучше реализовать картирование оси с помощью файла настроек, который можно настроить на основе для каждого и каждого пользователя.