我有一个设备与另一个应用程序(不是我写的)通信,我希望使用我的应用程序获得它的价值。谷歌搜索我找到了ansio库,我安装了它并找到了this入门教程。
问题:如何在端口名称中设置设备名称?
使用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;
}
但它给出了:Error: open: No such file or directory
怎么解决这个问题?提前谢谢。
答案 0 :(得分:1)
在shell中键入ls /dev/tty*
,然后选择一个生成的端口。不幸的是,不能确定哪一个是正确的。否则,您可以通过处理dmesg
的输出来尝试提取正确的端口。
答案 1 :(得分:0)
通常,当设备连接到USB端口时,它会在内核环形缓冲区中记录一条消息。该日志将经常为您提供所需的信息。要找到它,
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
注意: