![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
chu |
![]()
Сообщение
#1
|
Студент ![]() Группа: Новичок Сообщений: 14 Регистрация: 13.11.2011 Пользователь №: 2997 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Использую QExtSerialPort для работы с СОМ портом. СОМ порт создается при подключении устройства МОХА (USB-RS конвертор).
Пытаюсь записать массив чаров в порт:
функция write возвращает -1, хотя должна возвращать длину записанных данных. возвращает "Неизвестную ошибку".И что самое интересное, сам массив в порт передается. В чем может быть проблема? |
|
|
![]() |
Litkevich Yuriy |
![]()
Сообщение
#2
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
Копать с помощью отладчика, не исключено, что это драйвер виртуального порта так себя ведёт
|
|
|
chu |
![]()
Сообщение
#3
|
Студент ![]() Группа: Новичок Сообщений: 14 Регистрация: 13.11.2011 Пользователь №: 2997 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Отладчик не хочет залазить внутрь функции write
![]() Сегодня определил, что при смене QueryMode с EventDriven на Polling записанные байты считаются нормально и запись проходит успешно, но возникла проблема чтения с порта (сигнал readyRead не срабатывает). Еще забыл упамянуть: функция lastError() возвращали код ошибки 14. Где можно найти описание этой ошибки? |
|
|
kuzulis |
![]()
Сообщение
#4
|
Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 393 Регистрация: 29.6.2009 Пользователь №: 862 Спасибо сказали: 36 раз(а) Репутация: ![]() ![]() ![]() |
Цитата Использую QExtSerialPort для работы с СОМ портом. Зря, лучше использовать QtSerialPort. Цитата Еще забыл упамянуть: функция lastError() возвращали код ошибки 14. Где можно найти описание этой ошибки? http://www.ioplex.com/~miallen/errcmp.html Сообщение отредактировал kuzulis - 19.2.2013, 10:26 |
|
|
chu |
![]()
Сообщение
#5
|
Студент ![]() Группа: Новичок Сообщений: 14 Регистрация: 13.11.2011 Пользователь №: 2997 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Зря, лучше использовать QtSerialPort. Не нашел как установить сей модуль на Windows XP. Не подскажешь как? Спасибо, полезно, хотя там и нет описания ошибок для Windows, думаю оно не отличается от того что прописано ошибке 14 на остальных системах ... 14 - Bad address. Что бы это могло значить? Адрес порта (СОМ2) виден в системе и команда open срабатывает успешно. |
|
|
kuzulis |
![]()
Сообщение
#6
|
Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 393 Регистрация: 29.6.2009 Пользователь №: 862 Спасибо сказали: 36 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
chu |
![]()
Сообщение
#7
|
Студент ![]() Группа: Новичок Сообщений: 14 Регистрация: 13.11.2011 Пользователь №: 2997 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Там же в вики все написано как сделал как там написано : 1) qmake 2) mingw32-make 3) mingw32-make install все прошло без ошибок. создаю проект. в файле проекта добавляю CONFIG += serialport, но вот строчки
компилятор подчеркивает, не находит этих файлов |
|
|
kuzulis |
![]()
Сообщение
#8
|
Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 393 Регистрация: 29.6.2009 Пользователь №: 862 Спасибо сказали: 36 раз(а) Репутация: ![]() ![]() ![]() |
Блин, ну ты ж примеры посмотри, Вики не успевает обновляться.
Попробуй:
|
|
|
chu |
![]()
Сообщение
#9
|
Студент ![]() Группа: Новичок Сообщений: 14 Регистрация: 13.11.2011 Пользователь №: 2997 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
kuzulis, спасибо! Буду пробовать с QtSerialPort
|
|
|
chu |
![]()
Сообщение
#10
|
Студент ![]() Группа: Новичок Сообщений: 14 Регистрация: 13.11.2011 Пользователь №: 2997 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
И сразу проблема.
При сборке ошибка Цитата cannot find -lQtSerialPort
|
|
|
kuzulis |
![]()
Сообщение
#11
|
Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 393 Регистрация: 29.6.2009 Пользователь №: 862 Спасибо сказали: 36 раз(а) Репутация: ![]() ![]() ![]() |
И сразу проблема. При сборке ошибка Цитата cannot find -lQtSerialPort Скорее всего ты скомпилил и установил только отладочную версию библиотеки, а текущий проект компилиш в релизе. Поэтому он и не находит QtSerialPort, потому что его нету (есть только QtSerialPortd). Собирай свой проект в дебаге или скомпиль и доустанови релизную версию QtSerialPort до кучи. |
|
|
chu |
![]()
Сообщение
#12
|
Студент ![]() Группа: Новичок Сообщений: 14 Регистрация: 13.11.2011 Пользователь №: 2997 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
kuzulis, еще раз огромное спасибо! Ты оказался прав, в отладочной версии все работает.
Подскажешь как релизную версию QtSerialPort скомпилировать? |
|
|
kuzulis |
![]()
Сообщение
#13
|
Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 393 Регистрация: 29.6.2009 Пользователь №: 862 Спасибо сказали: 36 раз(а) Репутация: ![]() ![]() ![]() |
kuzulis, еще раз огромное спасибо! Ты оказался прав, в отладочной версии все работает. Подскажешь как релизную версию QtSerialPort скомпилировать? Лучше установить оба таргета сразу. Но сначала удали всё что ты установил ранее (почисти всё что касается QtSerialPort: дллки, заголовки, и т.п из директории с установленной Qt) иначе могут быть конфликты при сборке. Потом открой файлик src/serialport/serialport.pro и добавь туда: Цитата win32|mac:CONFIG += debug_and_release build_all Пересобери и установи как обычно. Должны установиться обе релизный и дебажный таргеты. |
|
|
Litkevich Yuriy |
![]()
Сообщение
#14
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
по-моему можно просто
mingw32-make release mingw32-make install |
|
|
chu |
![]()
Сообщение
#15
|
Студент ![]() Группа: Новичок Сообщений: 14 Регистрация: 13.11.2011 Пользователь №: 2997 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
kuzulis, в очередной раз спасибо! Установил оба таргета.
Litkevich Yuriy, тоже спасибо. До твоего метода не дошел, сработал первый, предложенный b]kuzulis[/b]. |
|
|
kuzulis |
![]()
Сообщение
#16
|
Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 393 Регистрация: 29.6.2009 Пользователь №: 862 Спасибо сказали: 36 раз(а) Репутация: ![]() ![]() ![]() |
по-моему можно просто mingw32-make release mingw32-make install Можно то можно, если ты еще ничего не устанавливал. Но там какая-то хрень происходит при сборке из-за того, что в /features уже установлен файл *.prf от дебажной сборки QtSerialPort. И из-за этого ты не скомпилиш релиз, будет матюгаться. Поэтому проще все почистить и собрать сразу все. По крайней мере так было раньше, может сйчас оно чудесным образом исправилось - не знаю. ![]() |
|
|
chu |
![]()
Сообщение
#17
|
Студент ![]() Группа: Новичок Сообщений: 14 Регистрация: 13.11.2011 Пользователь №: 2997 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Не знайте, какая максимальная BaudRate поддерживается QtSerialPort?
|
|
|
kuzulis |
![]()
Сообщение
#18
|
Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 393 Регистрация: 29.6.2009 Пользователь №: 862 Спасибо сказали: 36 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
![]() ![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 5.5.2025, 0:10 |