Russian Qt Forum
Ноябрь 22, 2024, 21:57 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: 1 ... 5 6 [7] 8 9 ... 88   Вниз
  Печать  
Автор Тема: Создаю библиотеку для работы с последовательными портами. [УШЕЛ ИЗ ПРОЕКТА].  (Прочитано 785055 раз)
yesrus
Гость
« Ответ #90 : Сентябрь 16, 2009, 14:42 »

Понял, спасибо !
Записан
Barmaglodd
Гость
« Ответ #91 : Октябрь 01, 2009, 10:22 »

Работаю с устройством, которое подключается по USB и создаёт виртуальный COM-порт. Обрабатываю сообщения появления нового и удаления устройства, ловлю WM_DEVICECHANGE. При отключении устройства вызываю close, получаю падение программы, т.к. цикл обработки сообщений qt пытается обратиться к разрушенному экземпляру класса QWinEventNotifier. Если close не вызывать, падения нет, но при повторном подключении в устройство не посылаются данные, если снова переподключить, то посылка работает нормально, т.е. срабатывает стабильно на второе переподключение. Проблему обошёл, вызывая в обработчике WM_DEVICECHANGE таймер с нулевым интервалом, и на его timeout уже вызываю close, т.е. позволив отработать qt-шному обработчику сообщений от винды.
Записан
yesrus
Гость
« Ответ #92 : Октябрь 10, 2009, 11:50 »

up теме.
Подскажите пожалуйста-эта реализация умеет работать с RTS\CTS ? Если да - не могли бы Вы написать как это делать, нашел в функциях setRTS, но вот как смотреть за состоянием CTS - не понятно.
Записан
kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2812


Просмотр профиля
« Ответ #93 : Октябрь 14, 2009, 07:32 »

Цитировать
Подскажите пожалуйста-эта реализация умеет работать с RTS\CTS ?
Насчет установки/снятия RTS -  см. в сторону: bool setRts(bool set);
Насчет контроля CTS - см. в сторону: ulong lineStatus();

Если имеется ввиду аппаратный контроль RTS/CTS , DTR/DSR - то в текущей версии библиотеки он отключен, т.е. эти состояния не контролируются и можно обмениваться данными, имея всего 3 провода: GROUND, Tx, Rx.  В будущем планирую добавить методы включения/отключения аппаратного контроля этих линий (для применения например в обмене данными с модемом).

А пока что библиотека "заточена" на обмен данными с минимальным использованием проводов -  только по трем проводам! Улыбающийся
(для связи с промышленными устройствами по RS-232/485)  

ЗЫ: времени щас нету Грустный
« Последнее редактирование: Март 12, 2010, 13:23 от kuzulis » Записан

ArchLinux x86_64 / Win10 64 bit
yesrus
Гость
« Ответ #94 : Октябрь 14, 2009, 10:08 »

Отключены имеется ввиду вообще не работают ? т.е. если я сделаю запрос linestatus оно не покажет, что CTS в положении 1 (т.е. линия свободна) ?
Очень нужен этот функционал =( Если можно, реализуй пожалуйста работу rts\cts первым приоритетом  Обеспокоенный
Записан
kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2812


Просмотр профиля
« Ответ #95 : Октябрь 14, 2009, 11:25 »

Цитировать
Отключены имеется ввиду вообще не работают ?
Не не не... Должны работать! Просто аппаратно не контролируется алгоритм "рукопожатия" или как там его.. Т.е. модемы работать в данном случае не должны! (Вроде)

Цитировать
т.е. если я сделаю запрос linestatus оно не покажет, что CTS в положении 1 (т.е. линия свободна) ?
Должен показать

Цитировать
Если можно, реализуй пожалуйста работу rts\cts первым приоритетом
Эмм... вроде работать методы должны! Проверь сам! Я не проверял. Улыбающийся

Записан

ArchLinux x86_64 / Win10 64 bit
akorud
Гость
« Ответ #96 : Декабрь 10, 2009, 18:25 »

Вышеуказанная проблема с чтением в ОС Windows вроде побеждена! Для этого пришлось делать хитрый финт (лишние телодвижения с бубном Улыбающийся )

Теперь при чтении вплоть до 4096 байт ниего не теряется! Проверено мною! Больше не проверял!
А можно спросить какие именно? Т.к. такая же проблема наблюдается с QextSerialPort а передельть на QSerialDevice нет возможности Грустный
Записан
kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2812


Просмотр профиля
« Ответ #97 : Декабрь 10, 2009, 20:06 »

Ох.. много чего.. так и не упомнить... Посмотрите исходники

Изначально библиотека разрабатывалась под Qt4.1.1, а т.к. в более поздних версиях Qt4 были значительные изменения (в частности классе QIODevice) поэтому были различия в работе.

Насчет QextSerialPort не знаю что там и как... А вот в QSerialDevice я поправил кое-что в SVN и теперь можно читать и более 4096 байт Улыбающийся
« Последнее редактирование: Февраль 25, 2010, 15:48 от kuzulis » Записан

ArchLinux x86_64 / Win10 64 bit
juvf
Программист
*****
Offline Offline

Сообщений: 570


Просмотр профиля
« Ответ #98 : Январь 19, 2010, 11:22 »

скачал QSerialDevice_v0.1.0.zip. Собираю как доктор прописал. make дает ошибку
Код:
In file included from nativeserialengine_win.cpp:24:
/usr/local/Trolltech/Qt4.6-static/include/QtCore/qt_windows.h:63:21: error: windows.h: Нет такого файла или каталога
nativeserialengine_win.cpp: In constructor ‘NativeSerialEnginePrivate::NativeSerialEnginePrivate()’:
nativeserialengine_win.cpp:42: error: class ‘NativeSerialEnginePrivate’ does not have any field named ‘hd’
....

пробовал src.pro и project.pro. Из кансоли и из KDevelop-a - результат один "error: windows.h: Нет такого файла или каталога". Собирай под Debian lenny, Qt4.6. Это как-то лечится?
Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #99 : Январь 19, 2010, 11:38 »

чё-то с DEFINE криво видимо, windows.h на линухе не нужен
Записан

Юра.
juvf
Программист
*****
Offline Offline

Сообщений: 570


Просмотр профиля
« Ответ #100 : Январь 19, 2010, 12:04 »

Цитировать
чё-то с DEFINE криво видимо, windows.h на линухе не нужен
заново распаковал zip, заново создал проект - собрался )).

Есть такой замечательный метод QStringList AbstractSerial::serialDevicesAvailable( )const, но к сожалению он не статический. А задача следующая: Пользователю нужно дать возможность выбрать компорт из доступных в системе. Т.е. до создания объекта AbstractSerial. Можно конечно с костылём это сделать, например создать объект AbstractSerial с дефаултным именем, получить список и уничтожить этот объект. А в идеале было бы не плохо иметь статический метод serialDevicesAvailable.

Ну и как-бы до кучи,,,,, если не AbstractSerial, то как можно получить список доступных компортов в системе?
Записан
kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2812


Просмотр профиля
« Ответ #101 : Январь 19, 2010, 13:14 »

Берите из SVN, т.к. в версии 0.1.0 есть корявости: http://fireforge.net/snapshots.php?group_id=199

Насчет статического метода - сделаете - и я сразу его добавлю Улыбающийся (у меня нет времени сейчас) + к тому не просто его будет сделать. см. исходники . ИМХО
« Последнее редактирование: Февраль 08, 2010, 18:17 от kuzulis » Записан

ArchLinux x86_64 / Win10 64 bit
kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2812


Просмотр профиля
« Ответ #102 : Февраль 08, 2010, 18:28 »

Итак, новшества:

1. в qserialdevice:
- подчищен код
- убрал я метод:  QStringList serialDevicesAvailable(bool friendlyName = false) const .
Теперь для получения списка портов и других вещей применять нужно класс: qserialdevicewatcher

2. добавлен класс: qserialdevicewatcher, который следит за добавлением/удалением последовательных устройств, а также возвращает их список и т.п.

3. добавлен пока что шаблон класса: qserialdeviceinfo , который будет выполнять соответствующие функции (пока не реализованы методы и т.п., займусь в ближайшее время)

скачать срез SVN тут: http://fireforge.net/snapshots.php?group_id=199

----

Кому библиотека нужна - просьба постить отзывы, пожелания и т.п. Улыбающийся
Записан

ArchLinux x86_64 / Win10 64 bit
kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2812


Просмотр профиля
« Ответ #103 : Март 02, 2010, 14:09 »

Итак, близок тот день когда выйдет версия 0.2.0.

Готовый (то что планировалось мною) на 95% срез SVN тут: http://fireforge.net/snapshots.php?group_id=199
остались "мелкие" штрихи.

Милости просим к тестированию и т.п.

PS: Зарелизить думаю сегодня после 18:00 Улыбающийся
Записан

ArchLinux x86_64 / Win10 64 bit
Amigo_sa
Гость
« Ответ #104 : Март 02, 2010, 16:45 »

Добрый день. Не могли бы вы рассказать о плюсах и мунусах вашей библиотеки по сравнению с компонентом, который выложили недавно на crossplatform?
ЗЫ Большое спасибо за вклад в общее дело  Улыбающийся
Записан
Страниц: 1 ... 5 6 [7] 8 9 ... 88   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.049 секунд. Запросов: 22.