Обнаружение соединения USB-порта

Я пишу консольное приложение в C++. До сих пор мой код может обнаружить, если мое устройство (Linux) было подключено к другому устройству (обычно окна) через TCPIP. После того как я открываю Putty в своем Windows для соединения с моим устройством, которое запускает консольное приложение, мой код распознает его и автоматически отправляет данные из моего устройства (Linux) к моему компьютеру.

Я хотел бы сделать то же самое с USB. Прямо сейчас мое консольное приложение может отправить/получить данные из моего устройства Windows, НО только если я отправляю данные сначала. Я хочу, чтобы мое консольное приложение автоматически обнаружило, если оно было подключено с через шпаклевку или другое приложение, и автоматически начинает отправлять данные на мой микропроцессор. Я читал и играл с libudev путем выполнения кода, который отображается, когда USB-устройство было подключено и разъединено. Я хотел бы знать, существует ли путь к моему устройству (Linux), чтобы знать, что это было подключено к моему ПК через Шпаклевку и не событию замены в горячем режиме. и если так, есть ли пример, плавающий вокруг где-нибудь, я могу использовать.

это была бы хорошая идея использовать сокеты? Я могу использовать сокеты с USB-устройствами?

Спасибо в усовершенствованном.

Полное раскрытие, я являюсь относительно новым с Linux ОС.

0
задан 12 November 2018 в 15:02

1 ответ

Ну, существуют некоторые главные проблемы с тем, что Вы предлагаете. Нормальный USB-кабель является ведущим устройством-> ведомое устройство, что означает, что одна машина является машиной управления, и другой ведомое устройство. И машина Windows и машина Ubuntu, оба ожидал бы быть хостом, управляя операциями USB как Ведущим устройством USB. Нет ничего стандартного, которое изменило бы эти отношения (но много встроенных проектов, которые переключают ведомые хостом отношения).

ОДНАКО можно использовать Мост USB (или Передача) Кабель для передачи по USB между двумя машинами. Я нашел этого на Amazon "Windows Transfer Cable Plugable". Вы должны смочь использовать это для записи консольного приложения с обеих сторон, но потребовали бы некоторого опыта с драйверами Windows и Linux. Не тривиальный.

Я предполагаю еще одну идею, должен был бы использовать два аппаратных ключа сети USB, и подключить их друг к другу с перекрестным кабелем Ethernet и установить локальную сеть. Вы могли все еще использовать свои сетевые возможности связаться между этими двумя устройствами, но это будет обнаруживаемо, когда USB-порт будет включен.

Перекрестные кабели Ethernet и usb сетевые аппаратные ключи легко доступны, и драйверы, четко определенные (очевидно), для Windows и Ubuntu.

0
ответ дан 27 October 2019 в 04:13

Другие вопросы по тегам:

Похожие вопросы: