Доброго дня!
Важная новость!26.02.2013 – Проект перемещен из песочницы в основную ветвь Qt5!
Важное замечание!:С недавнего времени ветка QSerialDevice 2.0
портирована в репозиторий на Gerrit и планируется,
что она станет аддоном для Qt5 под названием QtSerialPort.
Подробнее тут http://qt-project.org/wiki/QtSerialPort_Russian
Далее, все что написано ниже в этом первом посте относится
только к "устаревшей" библиотеке QSerialDevice, разработка
которой остановлена, т.к. все силы срочно брошены на QtSerialPort.
Так что, кому интересно узнать про QSerialDevice - можете
продолжить чтение того, что написано ниже. Вступление:Я тут решил создать библиотеку для работы с последовательными портами.
Упор делался на возможность будущей интеграции в Qt4, поэтому желательно
собирать библиотеку имея Qt4 скомпилированную из исходников (а не готовую).
Причина такой рекомендации в том, что в готовых SDK может не быть некоторых приватных заголовков, которые используются в библиотеке QSerialDevice.
На текущий момент имеются две ветки разработки:
1. Это текущая ветка 1.0 "master" с нумерацией версий от 0 до 1 (0.3, 0.4)
2. Новая ветка 2.0, разработка которой начата 18.06.2011
Содержимое QSerialDevice ветки 1.0Класс AbstractSerialСобственно, является основным классом который управляет работой последовательного порта
и предоставляет следующие функциональные возможности:
- читать/писать данные
- конфигурировать порт:
+ любой скоростью обмена (в рамках разумного)
+ любым кол-вом бит данных (5-8)
+ любым типом паритета (None, Even, Add, Mark, Space),
+ любым кол-вом стоп-бит (1, 1.5, 2)
+ любым режимом контроля потоком (Off, Hardware, Software)
- получать состояние линий порта
- работать в буферизированном и небуферизированном режиме
Т.к. класс AbstractSerial унаследован от QIODevice, то он предоставляет все методы и сигналы от QIODevice,
а также дополнительные специфические методы и сигналы.
Поддерживается в ОС: GNU/Linux, MS Windows, MacOSX и др. POSIX совместимых.
Класс SerialDeviceEnumeratorЯвляется вспомогательным классом, который предоставляет
следующие функциональные возможности:
- получать список имен всех имеющихся последовательных портов в системе
- получать определенную информацию о выбраном порте по его имени
- автоматически уведомлять о новых появившихся портах или об их исчезновении
Поддерживается в ОС: GNU/Linux, MS Windows, MacOSX (кроме уведомления).
----
PS: Разработка этой ветки приостановлена и будет оказываться только её поддержка.
Содержимое QSerialDevice ветки 2.0Эта версия является (планировалась) "как-бы" более продвинутой,
оптимизированной на быстродействие (золотая середина).
Но, главной особенностью - является структура классов, более "заточенная" к возможности
принятия в Qt.
Класс SerialPortВыполняет функции аналогичные AbstractSerial из более ранней ветки,
но более облегчен и "вылизан".
Планируется поддержка в ОС: GNU/Linux, MS Windows, MacOSX и др.
Уже реализована базовая поддержка: GNU/Linux, MS Windows, MacOSX, WinCE, Symbian.
Но необходима помощь "симбианщиков" для доделки.Класс SerialPortInfoВыполняет функции аналогичные SerialDeviceEnumerator из более ранней ветки,
но также более облегчен и "вылизан" и имеет переработанную структуру (наподобие QPrinterInfo).
Планируется поддержка в ОС: GNU/Linux, MS Windows, MacOSX и др.
Уже реализована базовая поддержка: GNU/Linux, MS Windows, MacOSX, WinCE, Symbian. ----
PS: Разработка и поддержка этой ветки идет полным ходом.
Где скачать?Текуций репозиторий с исходными кодами находится тут:
https://gitorious.org/qserialdeviceКак скачать, думаю, разберетесь.
==========
Для всех заинтересованных лиц, готовых принять участие в разработке, тестировании, генерации новых идей - милости просим на обсуждение в эту тему форума.