如何使用asio库打开usb端口并接收数据
how to open usb port and receive data of it using asio library?
我有一个设备,它与另一个应用程序(不是我写的)通信,我想使用我的应用程序获得它的价值。我在谷歌上找到了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;
}
但它给出了一个:Error: open: No such file or directory
如何解决这个问题?提前谢谢。
在shell中键入ls /dev/tty*
,然后选择生成的端口之一。不幸的是,还不能确定哪一个会是正确的。否则,您可以尝试通过处理dmesg
的输出来提取正确的端口。
通常,当设备连接到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
注:
- 最后一行告诉您适当的ttyUSB设备编号。这是特定于驱动程序的。许多USB设备无法通过/dev/ttyUSB#访问
相关文章:
- 防止主数据类型C++的隐式转换
- 用于访问容器<T>数据成员的正确 API
- 只需按一次按钮即可通过USB发送数据
- 读取USB与操作系统、C++之间传输的数据
- 读取 USB 串行数据时出现问题
- 如何使用MTP(设备不是相机)从USB设备上传和下载数据
- Arch Linux C 读取USB小鼠定位数据
- C++从外部设备读取数据 - 连接:光电USB
- 如何在Windows中从USB HID设备获取原始描述符数据
- 如何使用asio库打开usb端口并接收数据
- 将数据写入USB设备
- 如何用C++将数据写入usb HID终端
- 在Windows 7上使用C++从USB读取数据
- 使用libusb从USB闪存驱动器读取数据
- 将0和1发送到USB数据引脚
- 读取扫描器原始数据从usb
- 重定向USB数据到以太网/TCP/IP端口
- 在Ubuntu中使用c++从串口读取数据到USB
- "How To" : 侦听通过RS232传入USB的数据
- 通过 USB 将数据从安卓设备流式传输到 PC