Есть ли способ отправить сигнал или любой другой способ узнать, отсоединен ли USB-кабель последовательного интерфейса, используя Qt?Отправлять сигнал при отсоединении последовательного кабеля USB
ответ
Вы можете использовать сигнал error
класса QSerialPort в надстройке QtSerialPort. Подробности см. В нашей документации.
http://qt-project.org/doc/qt-5.1/qtserialport/qserialport.html#error-prop
Вам нужно будет написать это в основном:
connect(mySerialPort, SIGNAL(error(QSerialPort::SerialPortError)), this,
SLOT(handleError(QSerialPort::SerialPortError)));
...
void MyClass::handleError(QSerialPort::SerialPortError error)
{
if (error == QSerialPort::ResourceError) {
QMessageBox::critical(this, tr("Critical Error"), serial->errorString());
closeSerialPort();
}
}
QtSerialPort можно легко установить с помощью Qt 5.1 < как пакеты распространяются. Однако мы убедились, что QtSerialPort работает с предыдущими версиями, включая Qt 4.8.X. Здесь вы можете найти инструкции для Qt 4, чтобы получить это установлено для вас:
мерзавец клон [email protected]: кварты/qtserialport.git
кд qtserialport
QMAKE
sudo make install.
Затем вам необходимо добавить следующие строки в файле проекта QMAKE, если вы решили использовать QMAKE:
Qt 5: QT += serialport
Qt 4: COMFIG += serialport
Использование QSerialPortInfo
добьетесь результата:
bool MyClass::checkPort()
{
QSerialPortInfo *portInfo = new QSerialPortInfo(ui->serialDevice->currentText());
// ui->serialDevice being a combobox of available serial ports
if (portInfo->isValid())
{
return true;
}
else
{
return false;
}
}
isValid()
является теперь устаревший. isBusy()
может использоваться вместо этого, поскольку он вернет true
, когда вы открыли порт и false
, когда порт больше не существует (и у вас все еще есть его). Это также имеет место, когда availablePorts()
продолжает возвращать несуществующий, но открытый порт, потому что вы сохраняете порт в списке, открыв его.
- 1. Почему выбор возвращается при отсоединении USB-кабеля?
- 2. Обнаружение при отсоединении сетевого кабеля
- 3. Ошибка приложения при отсоединении кабеля от Mac
- 4. tmux - отключить звуковой сигнал при подключении/отсоединении
- 5. Обнаружение при отсоединении кабеля питания (USB или зарядное устройство переменного тока) в программном обеспечении Android
- 6. Обнаружение при отсоединении устройства USB на Android
- 7. СОМ-порт исчезает при отсоединении USB
- 8. NSTimer останавливается в фоновом режиме при отсоединении кабеля питания
- 9. Печать с использованием USB-кабеля
- 10. Minicom отключен при попытке связи с использованием USB-кабеля RS232
- 11. Использование USB-кабеля для генерации случайных чисел
- 12. Pyserial код для подключения периферийного устройства к компьютеру при использовании USB-последовательного кабеля
- 13. Обнаружение при отсоединении устройства USB с устройства Android
- 14. подключение adb Wi-Fi, убитое при подключении/отсоединении нового USB
- 15. Могу ли я запустить команду оболочки adb на C# и не прерывать ее при отсоединении USB-кабеля?
- 16. Мне нужна помощь для записи/чтения в/из последовательного порта с использованием ftdi usb для последовательного кабеля
- 17. Программирование кабельного USB-кабеля/разговор с драйвером устройства USB
- 18. Android: проблема с большим объемом памяти при подключении кабеля USB
- 19. Конфигурирование кабеля RS232 на USB с VHDL
- 20. ExternalAccessory: получение данных с помощью USB-кабеля
- 21. Доступ к разъемам кабеля USB, программируя его
- 22. Обнаружение отсоединения USB-последовательного адаптера
- 23. приложение Android для отправки сигнала через штырь данных кабеля USB
- 24. настройка USB последовательного номера портов
- 25. Использование MIDI-кабеля USB для получения информации в VB.NET
- 26. Как получить статус сокета при отсоединении сетевого кабеля от сетевого адаптера
- 27. Реализация пользовательского журнала сообщений для окон: отчеты 10049 при отсоединении кабеля ntwk
- 28. Выбрать() Системный вызов зависает (не снимает обработчик сигнала при отсоединении сетевого кабеля)
- 29. Аналоговый сигнал через провода USB
- 30. Как исправить ошибку кабеля USB usb в Android с веб-камерой USB?
Наконец-то собралось решение. Я фактически закончил использование 'QSerialPortInfo' для проверки порта перед его использованием. –
Вы указали мне в правильном направлении. Мне просто нужно было что-то подтвердить, что последовательный порт был фактически подключен, прежде чем он попытался сделать что-либо с открытым портом. Я сделал что-то немного другое, что сработало для того, что я делаю. –
Что именно * * * 'ResourceError'? Я иногда вижу это в середине некоторой последовательной связи, но я все еще могу отправлять и получать некоторые данные о порте. (Мой уровень связи начинает плохо себя вести, но он не выглядит полностью сломанным - некоторые действительные пакеты все еще проходят.) –