Qt Serial Port/ru

From Qt Wiki
Jump to navigation Jump to search

English
| Deutsch
| Русский
| Polski
| Nederlands
| Português
| Español
| Українською
| فارسی
| عربي
| 한국어
| Suomi
| Català
| Italiano
| 日本語
| Français
| Magyar
| ಕನ್ನಡ
| हिन्दी
| ภาษาไทย
| 简体中文
| Български

[toc align_right="yes" depth="3"]

QtSerialPort

Примечание: Эта страница в стадии разработки, требует пересмотра.

Новости

Заполнить

26.02.2013 - Проект перемещен из песочницы в основную ветвь Qt5!

Краткое описание

Модуль QtSerialPort - это дополнение к библиотеке Qt5, которое предоставляет единый интерфейс для работы как аппаратными, так и с виртуальными последовательными портами.

Примечание: Также добавлена поддержка и библиотеки Qt4.

Последовательный интерфейс благодаря своей простоте и надежности до сих пор популярен в промышленности, при разработке встраиваемых устройств, робототехнике и т.п.

Использование модуля QtSerialPort позволяет разработчикам значительно сократить время на реализацию Qt-приложений, требующих доступ к последовательным интерфейсам.

История

Модуль QtSerialPort берет свое начало из библиотеки "QSerialDevice":http://gitorious.org/qserialdevice/qserialdevice/trees/2.0 (ветка 2.0), которая недавно была перемещена в репозиторий на https://codereview.qt.io/

Это было сделано в надежде на более открытую и свободную разработку, а также на помощь сообщества, которое заинтересовано в развитии данного модуля.

Функциональность

В настоящее время API модуля содержит два класса SerialPort и SerialPortInfo.

SerialPort

Класс SerialPort является основным классом модуля и предоставляет набор основных методов и свойств для доступа к ресурсам последовательных портов.

Поддерживает следующие операционные системы:

{background:#009900}. |. Операционная система |. Поддержка |. Примечание
|
|Windows NT/2K/XP/Vista/7
|ДА
|Полная поддержка
|
|Windows CE
|ДА
|Тестировалось только на 5 и 6 платформах в эмуляторе
|
|Gnu/Linux
|ДА
|Полная поддержка
|
|MacOSX
|ДА
|Полная поддержка
|
|Другие Unix
|ДА
|Все POSIX совместимые
|
|Symbian[1]
|ДА
|Частично, тестировалось только в эмуляторе (*)
|



h3. SerialPortInfo
Класс SerialPortInfo является вспомогательным. Он позволяет получить информацию о имеющихся в системе последовательных портах.
Поддерживает следующие операционные системы:
{background:#009900}. |. Операционная система |. Поддержка |. Примечание
|
|Windows NT/2K/XP/Vista/7
|ДА
|Полная поддержка (с использованием SetupAPI)
|
|Windows CE
|ДА
|Тестировалось только на 5 и 6 платформах в эмуляторе
|
|Gnu/Linux
|ДА
|Полная поддержка (с использованием libudev или простой перебор в /dev)
|
|MacOSX
|ДА
|Полная поддержка
|
|Другие Unix
|ДА
|Все POSIX совместимые (только простой перебор в /dev)
|
|Symbian[2]
|ДА
|Частично, тестировалось только в эмуляторе ('
)
|



h2. Просмотр исходного кода
Недавно запущено публичное зеркало репозитория проекта на "Gitorious":https://qt.gitorious.org/qt/qtserialport
Теперь каждый желающий может свободно и оперативно через WEB браузер просмотреть последние изменения в исходном коде проекта.
h2. Получение исходного кода
h3. Для пользователей
Для получения текущего снимка исходного кода репозитория в виде архива достаточно из WEB браузера перейти по "этой":http://qt.gitorious.org/qt/qtserialport/archive-tarball/stable ссылке, загрузка начнется автоматически.
Для желающих использовать Git можно выполнить следующую команду:


git clone git://gitorious.org/qt/qtserialport.git<code>
<br />h3. Для разработчиков
<br />Получить исходный код и внести свой вклад в разработку могут только зарегистрированные в Gerrit разработчики, используя Git (&quot;настройка Gerrit&amp;quot;:http://wiki.qt.io/Setting_up_Gerrit).
<br />Получить исходный код можно так:
<br />

git clone ssh://&lt;username&gt;codereview.qt.io:29418/qt/qtserialport.git


где username - логин зарегистрированного в Gerrit пользователя
h2. Сборка и установка
Примечание: При сборке лучше использовать "теневую сборку&quot;, когда для результатов сборки используется отдельная директория. Это позволяет оставить директорию с исходными кодами в нетронутом виде, не засоренную продуктами сборки.


Перед сборкой необходимо:
установить Perl[3]
* убедиться что корректно настроены переменные окружения:
'
правильно указаны пути к установленной Qt4/Qt5
'
правильно указаны пути к используемым компиляторам
'
правильно указаны пути к Perl[4]
* предварительно создать директорию для сборки которая находится на том же уровне, что и директория с исходными кодами

<br />/<br />|- /serialport-src<br />|- /serialport-build<br />

Ниже приведены рекомендуемые процедуры сборки библиотеки для Qt4/Qt5.

<br />cd serialport-build<br />qmake ../serialport-src/qtserialport.pro<br />make [или 'nmake' для MSVC компилятора, или 'mingw32-make' для MinGW компилятора]<br />make install [или 'nmake install' для MSVC компилятора, или 'mingw32-make install' для MinGW компилятора]<br />

Примечание: В *nix системах для установки возможно потребуются права суперпользователя:

<br />sudo make install<br />

Использование

При использовании библиотеки необходимо ее подключить в *.pro файл пользовательского проекта, это действие для Qt4 и Qt5 немного отличается:

Qt4

<br />CONFIG ''= serialport<br />


h3. Qt5


<br />QT''= serialport<br />

Подключение заголовочных файлов от QtSerialPort в пользовательский проект для Qt4 и Qt5 одинаковое:

<br /><br />#include &lt;QtSerialPort/QSerialPort&amp;gt;<br />#include &lt;QtSerialPort/QSerialPortInfo&amp;gt;<br /><br />

Простой пример

Ниже представлен простейший пример реализации main.cpp:

<br />#include &lt;QtCore/QCoreApplication&amp;gt;<br />#include &lt;QtCore/QDebug&amp;gt;

#include &lt;QtSerialPort/QSerialPort&amp;gt;<br />#include &lt;QtSerialPort/QSerialPortInfo&amp;gt;

QT_USE_NAMESPACE

int main(int argc, char *argv[])<br />{<br /> QCoreApplication a(argc, argv);

// Example use SerialPortInfo<br /> foreach (const SerialPortInfo &amp;info, SerialPortInfo::availablePorts()) {<br /> qDebug() &lt;&lt; &quot;Name : &quot; &lt;&lt; info.portName();<br /> qDebug() &lt;&lt; &quot;Description : &quot; &lt;&lt; info.description();<br /> qDebug() &lt;&lt; &quot;Manufacturer: &quot; &lt;&lt; info.manufacturer();

// Example use SerialPort<br /> SerialPort serial;<br /> serial.setPort(info);<br /> if (serial.open(QIODevice::ReadWrite))<br /> serial.close();<br /> }

return a.exec&amp;amp;#40;&amp;#41;;<br />}<br />

Генерация документации

Нет необходимости в сборке документации, потому что текущий снимок документации находится "тут&quot;:http://doc-snapshot.qt.io/qt5-stable/qtserialport/qtserialport-index.html.

Для желающих принять участие в разработке

Вся разработка ведется через "Gerrit&quot;:http://wiki.qt.io/Setting_up_Gerrit, поэтому желающие включиться в процесс разработки должны иметь там учетную запись.

Подробнее о процессе регистрации и разработки можно прочитать "здесь&quot;:http://wiki.qt.io/Code_Reviews

Возможные проблемы

Заполнить

Отслеживание ошибок

  1. Для OS Symbian разработка модуля приостановлена в связи с отсутствием разработчиков, а также с тем фактом, что Nokia отказалась от этой платформы и не будет включать ее поддержку в Qt5._
  2. Для OS Symbian разработка модуля приостановлена в связи с отсутствием разработчиков, а также с тем фактом, что Nokia отказалась от этой платформы и не будет включать ее поддержку в Qt5._
  3. Perl необходим только в случае использования Qt5, подробнее см. "тут&quot;:http://wiki.qt.io/Building_Qt_5_from_Git. При использовании Qt4 просто пропустите этот пункт.
  4. Perl необходим только в случае использования Qt5, подробнее см. "тут&quot;:http://wiki.qt.io/Building_Qt_5_from_Git. При использовании Qt4 просто пропустите этот пункт.