Как открыть USB-порт и получить данные о нем с помощью библиотеки Asio? - PullRequest
1 голос
/ 20 февраля 2012

У меня есть устройство, которое связывается с другим приложением (не написанным мной), и я хочу получить его значение с помощью своего приложения.Поиск в Google Я нашел библиотеку ansio, установил ее и нашел этот учебник для начала работы.

вопрос: как мне получить имя устройства для установки в имени порта?используя lsusb, я получаю:

Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 002: ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode)
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 004: ID 0ac8:305b Z-Star Microelectronics Corp. ZC0305 Webcam
Bus 001 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

Я хочу работать с устройством веб-камеры:

Bus 001 Device 004: ID 0ac8:305b Z-Star Microelectronics Corp. ZC0305 Webcam

, тогда я написал:

try {
    SimpleSerial serial("/dev/ttyUSB4",115200); // get SimpleSerial class on link above
    cout<<serial.readLine()<<endl;
    return 0;

} catch(boost::system::system_error& e)
{
    cout<<"Error: "<<e.what()<<endl;
    return 1;
}

, но этоan: Error: open: No such file or directory как это исправить?заранее спасибо.

Ответы [ 2 ]

1 голос
/ 13 августа 2012

Введите ls /dev/tty* в оболочке и выберите один из полученных портов. К сожалению, нельзя сказать наверняка, какой из них будет правильным. В противном случае вы можете попытаться извлечь правильный порт, обработав вывод dmesg.

0 голосов
/ 19 мая 2019

Обычно, когда устройство подключено к USB-порту, оно записывает сообщение в кольцевой буфер ядра. Этот журнал часто даст вам информацию, которую вы ищете. Чтобы найти его,

  1. Подключите ваше устройство
  2. запустите dmesg или dmesg | tail -20, чтобы увидеть последние 20 строк буфера.

Вывод команды dmesg должен выглядеть примерно так.

.
.
.
[ 1562.334350] usb 2-1: USB disconnect, device number 2
[ 1566.526225] usb 1-1: new full-speed USB device number 7 using xhci_hcd
[ 1566.652880] usb 1-1: New USB device found, idVendor=067b, idProduct=2303, bcdDevice= 4.00
[ 1566.652885] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 1566.652888] usb 1-1: Product: USB-Serial Controller D
[ 1566.652891] usb 1-1: Manufacturer: Prolific Technology Inc. 
[ 1566.655451] pl2303 1-1:1.0: pl2303 converter detected
[ 1566.656634] usb 1-1: pl2303 converter now attached to ttyUSB1

Примечания:

  • В последней строке указывается соответствующий номер устройства ttyUSB. Это зависит от водителя. Многие USB-устройства не доступны через /dev/ttyUSB#.
...