Возможно ли получить HANDLE с помощью QSerialPort аналогичный HANDLE получаемому с помощью CreateFile (winapi, )?

Возможно ли получить HANDLE с помощью QSerialPort аналогичный HANDLE получаемому с помощью CreateFile (winapi, windows.h)?

Есть код написанный на С++ и WinApi, в нем для обращения к устройству порт открывается с помощью:

LPTSTR port_name = TEXT("COM5");

HANDLE hCom = CreateFile((LPCWSTR)port_name,
                    GENERIC_READ | GENERIC_WRITE,
                    0,
                    NULL,
                    OPEN_EXISTING,
                    0,
                    NULL);

Код выше меняю на:

HANDLE hCom;
QSerialPort *serial;
serial = new QSerialPort();
serial->setPortName("COM5");
serial->setBaudRate(QSerialPort::Baud38400);
serial->open(QIODevice::ReadWrite);

hCom = serial->handle();

После этого изменения в коде обмен данными с устройством перестает работать. Код компилируется без ошибок, GetLastError при открытие порта возвращает 0. При записи в порт с помощью WirteFile, GetLastError начинает возвращать ошибку 997 ERROR_IO_PENDING.
  • Вопрос задан
  • 161 просмотр
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы