QSerialDevice - Библиотека для работы с COM-портами |
Здравствуйте, гость ( Вход | Регистрация )
QSerialDevice - Библиотека для работы с COM-портами |
ViGOur |
4.10.2009, 9:55
Сообщение
#21
|
Мастер Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: 40 |
Я пока отключил общую авторизацию сайта и форума, ибо глючит она.
Немного подождете и я перенесу все на новую версию сайта и все будет ок. |
|
|
rcdimon |
29.10.2009, 21:47
Сообщение
#22
|
Студент Группа: Участник Сообщений: 69 Регистрация: 27.10.2009 Пользователь №: 1183 Спасибо сказали: 1 раз(а) Репутация: 0 |
Наблюдаются проблемы при работе с виртуальными COM портами. Что очень плохо для отладки, ведь это часто с компа, где COM портов нет. Я например работаю на ноутбуке. Я создал виртуальный нуль модемный кабель, на одной стороне у меня висит гипертерминал, на другой подключается моя программа. Обмен данными по нуль-модемному кабелю контролируется еще одной софтиной. И это очень удобно для отладки. К сожалению Ваша библиотека не может открыть такой порт, хотя обычный WinAPI работает с ним без проблем, проверено. В чем может быть дело? Может надо просто какие настройки исправить или пару строчек кода? :-) Было бы замечательно
|
|
|
rcdimon |
29.10.2009, 22:19
Сообщение
#23
|
Студент Группа: Участник Сообщений: 69 Регистрация: 27.10.2009 Пользователь №: 1183 Спасибо сказали: 1 раз(а) Репутация: 0 |
Установил другую программу для создания виртуальных COM портов и все заработало ) Извиняюсь за беспокойство )
|
|
|
kuzulis |
2.3.2010, 14:19
Сообщение
#24
|
Активный участник Группа: Участник Сообщений: 393 Регистрация: 29.6.2009 Пользователь №: 862 Спасибо сказали: 36 раз(а) Репутация: 7 |
Доброго времени.
Скажите, а что нужно сделать, чтобы обновить информацию о библиотеке QSerialDevice ? т.к. скоро выйдет новая версия и я хочу, чтобы тут (в исходниках или новостях) это выло видно! |
|
|
ViGOur |
3.3.2010, 17:03
Сообщение
#25
|
Мастер Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: 40 |
1. Заходишь в тему: QSerialDevice и так как ты автор, то редактируешь ее.
2. Добавляешь на форум описание... |
|
|
kuzulis |
3.3.2010, 19:44
Сообщение
#26
|
Активный участник Группа: Участник Сообщений: 393 Регистрация: 29.6.2009 Пользователь №: 862 Спасибо сказали: 36 раз(а) Репутация: 7 |
Итак, анонсирую релиз: QSerialDevice v 0.2.0
Изменений много, писать нет смысла, поэтому предоставляю краткую вырезку аннотации: QSerialDevice - это кросс-платформенная библиотека для работы с последовательными устройствами, которая использует фрэймворк Qt4 (см. http://qt.nokia.com/). Требования: OC : Win2K/WinXP/WinVista/Win7 или любой дистрибутив GNU/Linux Qt4 : >= 4.5.0 Процессор : любой (который поддерживается Qt4) Компилятор : любой (который поддерживается Qt4) Заметки: В силу того, что Я (автор) не имею возможности протестировать библиотеку на всех возможных операционных системах, всех компиляторах, процессорах и т.п. - то возможно что библиотека в некоторых случаях не будет работать . Библиотека тестировалась только на: OC : Windows XP Pro Sp3 (win32) и GNU ArchLinux x86_64 Qt4 : от 4.5.3 до 4.6.2 Процессор : AMD Athlon 4400+ 64x2 Socket AM2 Компилятор : gcc, MinGw Теоретически (с небольшими исправлениями исходного кода) можно добиться того, чтобы библиотека работала и на других платформах. Библиотека QSerialDevice содержит следующие классы:
AbstractSerial Класс AbstractSerial - предоставляет самодостаточный набор методов и свойств для легкой и простой работы с последовательными устройствами (последовательными портами) вашего PC (или другого устройства). Класс поддерживает следующие возможности:
(более подробно см. описание AbstractSerial и исходный код) SerialDeviceWatcher Класс SerialDeviceWatcher - является вспомогательным классом для мониторинга последовательных устройств. Класс предоставляет следующие возможности:
(более подробно см. описание SerialDeviceWatcher и исходный код) SerialDeviceInfo Класс SerialDeviceInfo - также является вспомогательным классом для получения информации о последовательном устройстве. Класс предоставляет следующие возможности:
(более подробно см. описание SerialDeviceInfo и исходный код) Скачать релиз можно с домашней страницы проекта: http://fireforge.net/frs/?group_id=199 Скачать последние срезы SVN: http://fireforge.net/snapshots.php?group_id=199 Сообщение отредактировал kuzulis - 3.3.2010, 19:51 |
|
|
mezmay |
30.3.2010, 9:55
Сообщение
#27
|
Активный участник Группа: Участник Сообщений: 272 Регистрация: 13.7.2009 Из: Ростов-на-Дону Пользователь №: 904 Спасибо сказали: 16 раз(а) Репутация: 1 |
попробовал...
Сначала написал прогу по получению данных c GPSприемника по COM порту на QextSerialPort, упрощенный фрагмент: // QextSerialPort QextSerialPort *port = new QextSerialPort("COM1"); port->setBaudRate(BAUD4800); port->setFlowControl(FLOW_OFF); port->setDataBits(DATA_8); port->setStopBits(STOP_1); port->setParity(PAR_NONE); if(port->open(QIODevice::ReadOnly)) QByteArray ba = port->read(100); получает данные правильно, но иногда очень сильно тормозит на чтении потом на QSerialDevice, вроде все тоже самое: // QSerialDevice AbstractSerial *port = new AbstractSerial(); port->setDeviceName("COM1"); port->setBaudRate(AbstractSerial::BaudRate4800); port->setFlowControl(AbstractSerial::FlowControlOff); port->setDataBits(AbstractSerial::DataBits8); port->setStopBits(AbstractSerial::StopBits1); port->setParity(AbstractSerial::ParityNone); if(port->open(QIODevice::ReadOnly | QIODevice::Unbuffered)) QByteArray ba = port->read(100); - получает некорректные данные... почему? Даже если QIODevice::Unbuffered убрать
Причина редактирования: Убрал гигантскую цитату
|
|
|
Litkevich Yuriy |
30.3.2010, 10:03
Сообщение
#28
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
mezmay, не было ни какой нужды цитировать целое сообщение.
См. справку: Справка по кнопкам и тэгам форума |
|
|
kuzulis |
31.3.2010, 11:31
Сообщение
#29
|
Активный участник Группа: Участник Сообщений: 393 Регистрация: 29.6.2009 Пользователь №: 862 Спасибо сказали: 36 раз(а) Репутация: 7 |
mezmay,
Задание: прочитать внимательнее документацию QSerialDevice и посмотреть внимательнее примеры QSerialDevice и найти отличия c тем что у вас и с тем что там |
|
|
Гость_dekar_* |
3.4.2010, 19:05
Сообщение
#30
|
Гости |
Хм. тут проблемка выползла. Он как-то не особо охотно разблокирует порты при ->close();
Linux: NativeSerialEnginePrivate::nativeOpen(QIODevice::OpenMode mode) -> function: lockDevice(lockFileName) returned: false. Error! Linux: NativeSerialEnginePrivate::nativeClose() -> fd == -1. Error! После чего, конечно же, повторно не открывает, но и не работает. Руками убираю lock-файл. Есть мысль, где копать? |
|
|
Текстовая версия | Сейчас: 27.11.2024, 16:42 |