我有一个作为“COM8”连接到计算机的设备。我想知道它是什么时候从电脑上拔下来的,所以我用下面的代码来检测:
m_receiverCom->isWritable();
m_receiverCom->isOpen();
但是,在我拔下设备后它们仍然返回 true 。如何检测设备是否已插入?
我有一个作为“COM8”连接到计算机的设备。我想知道它是什么时候从电脑上拔下来的,所以我用下面的代码来检测:
m_receiverCom->isWritable();
m_receiverCom->isOpen();
但是,在我拔下设备后它们仍然返回 true 。如何检测设备是否已插入?
您查询的是端口,而不是设备。向将产生响应消息的设备发送某种查询消息。
虽然是旧线程,但防止人们被卡住。我刚刚遇到了这个问题,我成功地使用 qextserialport 来检测串口断开/连接使用:
QextSerialPort *serial_monitor;
serial_monitor = new QextSerialEnumerator();
serial_monitor->setUpNotifications();
connect(serial_monitor, SIGNAL(deviceRemoved(QextPortInfo)), this, SLOT(_handleUSBError(QextPortInfo)));