Я использую Qt 5.1, и когда мое приложение (которое работало с использованием QextSerialPort в v4.8.4) не смогло связаться, я попробовал пример в … \ 5.1.1 \ Src \ qtserialport \ examples \ serialport \ terminal. И это тоже не удается.
У меня есть простой USB-ключ, который имитирует COM-порт. Если я использую RealTerm, я могу отправлять ему AT-команды и нормально возвращаться.
Но пример терминала, который поставляется с Qt, не связывается с ним. Я посмотрел на отслеживающий API и получаю неуспешное возвращение с ошибкой «997: выполняется операция ввода-вывода с перекрытием» для WaitCommEvent и WriteFile.
Я запускаю его на Windows 7, и я скопировал exe и DLL-файлы на компьютер с Windows 8, и он тоже не смог связаться (хотя я не делал там API-слежку).
У кого-нибудь есть идеи, что попробовать? Как может немодифицированный пример приложения просто потерпеть неудачу? Я сбит с толку.
Пример терминала должен работать. Вы можете отследить проблему, сначала получив cwritersync пример работы.
Если это не работает, попробуйте сделать петлю между линиями RX и TX, которые обычно являются 2-м и 3-м контактами вашего 9-контактного последовательного порта.
Получив эту работу, вы можете пойти дальше и попытаться использовать cwriterasync пример, который является шагом ближе к тому, что использует пример терминала.
Как только это сработает, вы сможете понять, что вы сделали бы неправильно с примером терминала. Это может быть ошибка QtSerialPort, но в этом случае нам нужны все ваши данные об аппаратной среде.
Также, пожалуйста, убедитесь, что в этом случае пример терминала работает нормально, например, в Unices.
Пожалуйста, попробуйте Qt 5.2 с доступным модулем QtSerialPort (или попробуйте собрать последнюю версию QtSerialPort из git).
У меня есть простой USB-ключ …
Что такое модель ключа? VID / PID?
…Возврат с ошибкой «997: выполняется операция ввода-вывода с перекрытием.
это не ошибка.