Dzianis Igaravich Leanenka Ответов: 2

Есть ли способ программно эмулировать сигналы джойстика?


Добрый день! У меня есть сложная задача, связанная с vJoy, я полагаю: реально ли создать виртуальное устройство, а затем эмулировать сигналы (API джойстика)? Я имею в виду, что у меня нет реального физического устройства, но я должен посылать сигналы программно (например, есть джойстик или геймпад xbox). Любая помощь очень ценится

Что я уже пробовал:

Я пытался исследовать VJOY SDK, но я был потерян там)

Foothill

Примерно единственный способ, который я могу придумать для эмуляции ввода в C++, - это использовать насос сообщений Windows
https://msdn.microsoft.com/en-us/library/windows/desktop/ms644927(v=против 85). aspx
с помощью SendMessage
https://msdn.microsoft.com/en-us/library/windows/desktop/ms644950(v=против 85). aspx
в отдельном приложении. Настоящая проблема заключается в том, чтобы выяснить, какие входные данные отправлять.

* правка: сообщения windows-это очень низкоуровневое программирование и не самая простая вещь в использовании.

2 Ответов

Рейтинг:
1

David 'dex' Schwartz

Если вы уже знаете или имеете доступ к полной спецификации протокола вашего джойстика, вы можете пропустить шаги 1 и 2.

1. Найдите способ правильно подключить джойстик или контроллер к одному последовательному порту, если это необходимо, получите PCI-карту.
2. Запустите программу прослушивателя, подключенную к (недавно установленной?) Последовательный порт PCI-карты и получите выход joy stick для использования в вашем эмуляторе.
3. Напишите драйвер последовательного устройства или используйте один из нескольких доступных эмуляторов (бесплатно & $). Искать faking-an-rs232-serial-port о переполнении стека.
Вот рекомендуемый бесплатный вариант:
com0com - с подписанным драйвером (старая версия)
и несвободный
ЭМУЛЯТОР ДАННЫХ COM-ПОРТА
4. Напишите программу накачки данных джойстика для подключения к одному концу вашей последовательной линии, а другой-к вашей фактической тестовой программе.
5. Тест...


Рейтинг:
0

Kornfeld Eliyahu Peter

В конце дня Windows и приложения на Windows работают вокруг очереди сообщений. Зацикливаясь на нем и обрабатывая сообщения там...
Таким образом, все, что вам нужно сделать, это отправить сообщения, связанные с джойстиком, в ваше приложение (тот, который использует джойстик) из вашего приложения (эмулятор джойстика)...
Уведомления О Джойстике (Windows)[^]