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

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

Страниц: 1 ... 6 7 [8] 9 10 ... 88   Вниз
  Печать  
Автор Тема: Создаю библиотеку для работы с последовательными портами. [УШЕЛ ИЗ ПРОЕКТА].  (Прочитано 787268 раз)
kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2812


Просмотр профиля
« Ответ #105 : Март 02, 2010, 16:57 »

Цитировать
Добрый день. Не могли бы вы рассказать о плюсах и мунусах вашей библиотеки по сравнению с компонентом, который выложили недавно на crossplatform?
ЗЫ Большое спасибо за вклад в общее дело  Улыбающийся
Прочитайте, если не трудно, файлики:
manpage.dox
Readme_ru

Улыбающийся

Изменений оч много (хотя понятие "оч много" относительное). Я даж и не знаю о чем расскатать то. Посмотрите сами и сравните.

Могу о минусах:

- класс AbstractSerial:
1. Тестировал только в GNU/Linux и Windows XP, поэтому могут в других ОС быть проблемы со сборкой
2. Реально имеется проблема со сборкой в Solaris , т.к. там другие ABI/API вызовы (не могу потестить т.е. нету солярки)
3. Может быть в Linux проблема с режимами Mark/Space (тут еще нужно потом поделать)
4. В *.nix до сих пор не понял как получить имя запущеноого приложения. Это имя, помимо pid и uid,  должно использоваться в LOCK файле.


- Класс SerialDeviceInfo:
1. Толком еще не определился с набором методов для вывода информации о последовательном устройстве. т.е. имею ввиду соответствия информации в Windows и Linux
2. в *.nix этот класс (а также SerialDeviceWatcher) тянет за собой UDEV, поэтому в других осях помимо GNU/Linux может ваапче не работать и не собраться

ЗЫ: в принципе пока всё Улыбающийся
« Последнее редактирование: Март 02, 2010, 17:10 от kuzulis » Записан

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

Сообщений: 3880


Просмотр профиля WWW
« Ответ #106 : Март 02, 2010, 17:05 »

он про другой инструмент речь вёл, про QPort в сравнении с твоим.

Как я понял, QPort - это просто обёртка над QextSerialPort, для засовывания его в дизайнер, в стиле всяких Борландов.
Т.е. сделать кашу из визуальных элементов - виджетов, и класса не имеющего ничего общего с графическим интересом.

Принцип ешьте мух вместе с котлетами, ведь и там, и там мясо
Записан

Юра.
kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2812


Просмотр профиля
« Ответ #107 : Март 02, 2010, 17:08 »

ааа!!!
Записан

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

Спасибо! Посмотрел внимательнее исходники QPort - действительно обертка QextSerialPort. Сделана только интеграция в дизайнер, чтоб в свойствах можно было настройки порта устанавливать. Извините за нубство, правильнее было бы спрашивать про отличия от QextSerialPort. Я так понял, что ваша библиотека позволяет дополнительно мониторить состояние СОМ-портов, получать информацию об устройствах... А что вас побудило написать свою библиотеку? Улыбающийся
Записан
kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2812


Просмотр профиля
« Ответ #109 : Март 02, 2010, 17:59 »

Цитировать
А что вас побудило написать свою библиотеку?
не мог смотреть на QextSerialPort  Смеющийся + для собственного познания (развития)

Записан

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

Сообщений: 2812


Просмотр профиля
« Ответ #110 : Март 02, 2010, 19:17 »

Итак, анонсирую релиз: 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
  • SerialDeviceWatcher
  • SerialDeviceInfo

AbstractSerial

Класс AbstractSerial - предоставляет самодостаточный набор методов и свойств для легкой и простой работы с последовательными устройствами (последовательными портами) вашего PC (или другого устройства).
Класс поддерживает следующие возможности:

  • устанавливать скорость обмена данными
  • устанавливать количество бит данных
  • устанавливать количество стоп-бит
  • устанавливать режимы контроля четности
  • устанавливать режимы контроля потока
  • устанавливать таймаут ожидания символа
  • записывать данные в последовательное устройство
  • читать данные из последовательного устройства
  • управлять такими линиями порта как: DTR, RTS
  • читать состояния таких линий порта как: CTS, DSR, DCD, RI, RTS, DTR, ST, SR
  • автоматически получать нотификацию при:
    • приеме хотя бы одного байта (символа) в входной буфер
    • записи последнего байта в выходной буфер
    • изменении состояния последовательного устройства (при ошибках и т.п.)
  • получать текущее значение количества байт в приемном буфере
  • устанавливать таймаут ожидания прихода хотя бы одного байта (символа) в входной буфер

(более подробно см. описание AbstractSerial и исходный код)

SerialDeviceWatcher

Класс SerialDeviceWatcher - является вспомогательным классом для мониторинга последовательных устройств.
Класс предоставляет следующие возможности:

  • получать список имен всех последовательных устройств, которые имеются в системе
  • автоматически получать нотификацию при добавлении/удалении какого либо последовательного устройства

(более подробно см. описание SerialDeviceWatcher и исходный код)

SerialDeviceInfo

Класс SerialDeviceInfo - также является вспомогательным классом для получения информации о последовательном устройстве.
Класс предоставляет следующие возможности:

  • получать "дружественное" имя интересуюшего нас последовательного устройства
  • получать "описание" интересуюшего нас последовательного устройства
  • получать VID и PID интересуюшего нас последовательного устройства (experimental)
  • проверять интересующее нас последовательное устройство на существование
  • проверять интересующее нас последовательное устройство на занятость (блокировку)
  • и т.д.

(более подробно см. описание SerialDeviceInfo и исходный код)

Скачать релиз можно с домашней страницы проекта: http://fireforge.net/frs/?group_id=199
Скачать последние срезы SVN: http://fireforge.net/snapshots.php?group_id=199

Записан

ArchLinux x86_64 / Win10 64 bit
OS2
Самовар
**
Offline Offline

Сообщений: 186



Просмотр профиля WWW
« Ответ #111 : Март 16, 2010, 12:26 »

Не знаю как у остальных, а у меня ругается на твою конструкцию, типа: "QString(0)" и "Qstring имя_переменной(0)".
Записан
OS2
Самовар
**
Offline Offline

Сообщений: 186



Просмотр профиля WWW
« Ответ #112 : Март 16, 2010, 12:28 »

ЗЫ: Qt 4.7.0, WinXP Pro, MSVC2008.
Записан
kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2812


Просмотр профиля
« Ответ #113 : Март 16, 2010, 12:35 »

Ругается с ошибкой или варнингом?
Если с ошибкой - то я уберу (0) и оставлю ().

Не, точнее ты убери и проверь.. если все будет "путем", то и я уберу.

ЗЫ: у мну нету MSVS и проверить не могу
Записан

ArchLinux x86_64 / Win10 64 bit
OS2
Самовар
**
Offline Offline

Сообщений: 186



Просмотр профиля WWW
« Ответ #114 : Март 16, 2010, 13:24 »

Именно с ошибками!
Я просто везьде заменил ХХХ(0), на ХХХ().
Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #115 : Март 16, 2010, 13:24 »

kuzulis, а что за инициализация строки нулём?
Записан

Юра.
kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2812


Просмотр профиля
« Ответ #116 : Март 16, 2010, 13:40 »

Типа пустой класс Улыбающийся

нужно по идее писать что-то вроде : return QString() вместо : return QString(0)

так по крайней мере (QString()) в исходниках Qt делают

До этого момента прокатывало Улыбающийся Поменяю.
Записан

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

Сообщений: 2901



Просмотр профиля WWW
« Ответ #117 : Март 16, 2010, 14:23 »

Типа пустой класс Улыбающийся


Цитировать
Distinction Between Null and Empty Strings
For historical reasons, QString distinguishes between a null string and an empty string. A null string is a string that is initialized using QString's default constructor or by passing (const char *)0 to the constructor. An empty string is any string with size 0. A null string is always empty, but an empty string isn't necessarily null

Либо приводи к (const char *) либо используй конструктор по умолчанию. НО чесно сказать я смысла конструкции (const char *)0 невижу
Записан

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #118 : Март 16, 2010, 15:14 »

>>Типа пустой класс
первый раз такой термин слышу. И еслиб не данное обсуждение, то подумал бы что речь идёт о:
Код
C++ (Qt)
class MyClass{}
Записан

Юра.
kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2812


Просмотр профиля
« Ответ #119 : Март 16, 2010, 18:14 »

фсё, исправил и закинул в SVN
Записан

ArchLinux x86_64 / Win10 64 bit
Страниц: 1 ... 6 7 [8] 9 10 ... 88   Вверх
  Печать  
 
Перейти в:  


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