Как эмулировать USB-устройства?
Остальная часть моей команды сделает для моего приложения простой нестандартный USB-микрофон, но пока они не закончат его, мне придется подражать ему, для целей интеграционного тестирования.
-
Есть ли какой-либо риск в физической петле? Да, есть
-
Будет ли работать физическая петля? Только с USB мост
- Есть ли способ создать логическую петлю? (MSDN что-то об этом)
- Существует ли какое-либо программное обеспечение эмулятора USB общего назначения?
Если есть много доступных вариантов, я бы лучше работал над решениями .NET/Matlab/Python.
Ответы
Ответ 1
Изменить: Доказательство концепции здесь
Я настоятельно рекомендую этот проект, IP-адрес USB. Это способ подключения USB-устройств по сети. Существует клиент Windows.
Это означает, что вы устанавливаете клиент на свой компьютер с Windows.
Это устройство затем ожидает поговорить с USB-устройством, подключенным к компьютеру Linux, сервер:
![diagram over how a USB IP client connects to a USB IP server]()
Что вы теперь делаете, либо создает поддельный драйвер устройства для Linux, который выглядит как подключенный к физическому USB-устройству, но на самом деле это просто логика, притворяющаяся вашим USB-устройством. Есть учебные пособия для написания драйверов USB для Linux. Или, вы создаете свой собственный драйвер-заглушку для диспетчера устройств управления (см. рисунок выше). Этот драйвер-заглушка может работать в Windows или Linux, это не имеет значения. Он может работать даже на той же машине Windows, которая является USB-клиентом.
DSF USB Loopback Device, упомянутый в самом вопросе, будет тем же самым решением, что и драйвер-заглушка для диспетчера устройств, но полностью исключает Linux.
Ответ 2
Вы можете написать виртуальное устройство USB с помощью QEMU.
Вы можете дублировать уже существующее устройство, например dev-serial.c, найденное в этом репозитории QEMU и изменив его для ваших нужд.
После того, как вы напишете и скомпилируете USB-устройство, вы можете просто присоединить его к своей виртуальной машине с помощью интерфейса командной строки QEMU.
Ответ 3
Если вы хотите эмулировать клавиатуру или мышь, вам не нужно проверять концепцию или виртуальное USB-устройство.
Вы можете просто установить pyautogui
на python
Для Python 2:
pip install pyautogui
Для Python 3:
pip3 install pyautogui
И используйте это так:
import pyautogui
pyautogui.typewrite("hello from pyautogui")