Как эмулировать USB-устройства?
Остальная часть моей команды сделает для моего приложения простой нестандартный USB-микрофон, но пока они не закончат его, мне придется эмулировать его для целей интеграционного тестирования.
Есть ли риск в физическом шлейфе?Да, естьБудет ли работать физическая петля?Только с USB- мостом- Есть ли способ создать логическую петлю? ( MSDN что-то об этом)
- Есть какое-нибудь универсальное программное обеспечение USB эмулятора?
Если есть много вариантов, я бы предпочел работать с решениями.NET/Matlab/Python.
2 ответа
Изменить: доказательство концепции здесь
Я настоятельно рекомендую этот проект, USB IP. Это способ подключения USB-устройств по сети. Есть клиент Windows.
Это означает, что вы устанавливаете клиент на свой компьютер с Windows. Затем это устройство ожидает соединения с USB-устройством, подключенным к компьютеру с Linux, с сервером:
Что вы сейчас делаете, это либо создаете поддельный драйвер устройства для Linux, который выглядит как подключенный к физическому USB-устройству, но на самом деле это просто логика, притворяющаяся вашим USB-устройством. Есть учебники по написанию USB-драйверов для Linux. Или вы создаете свой собственный драйвер заглушки для диспетчера управления устройствами (см. Рисунок выше). Этот драйвер-заглушка может работать в Windows или Linux, это не имеет значения. Он может даже работать на той же машине Windows, которая является клиентом USB.
Упомянутое в самом вопросе устройство USB Loopback DSF было бы тем же решением, что и драйвер-заглушка для Диспетчер управления устройствами, но полностью исключило Linux.
Вы можете написать виртуальное USB-устройство, используя QEMU. Вы можете скопировать уже существующее устройство, например, dev-serial.c, найденный в этом хранилище QEMU, и изменить его для своих нужд.
После того, как вы напишите и скомпилируете свое USB-устройство, вы можете просто подключить его к вашей виртуальной машине, используя интерфейс командной строки QEMU.