Qt wiki will be updated on October 12th 2023 starting at 11:30 AM (EEST) and the maintenance will last around 2-3 hours. During the maintenance the site will be unavailable.
Qt Serial Port/ru: Difference between revisions
No edit summary |
No edit summary |
||
Line 1: | Line 1: | ||
[[QtSerialPort|English]] | [[ | [[:QtSerialPort|English]]<br />| [[:QtSerialPort_German|Deutsch]]<br />| '''Русский'''<br />| [[:QtSerialPort_Polish|Polski]]<br />| [[:QtSerialPort_Dutch|Nederlands]]<br />| [[:QtSerialPort_Portuguese|Português]]<br />| [[:QtSerialPort_Spanish|Español]]<br />| [[:QtSerialPort_Ukrainian|Українською]]<br />| [[:QtSerialPort_Persian|فارسی]]<br />| [[:QtSerialPort_Arabic|عربي]]<br />| [[:QtSerialPort_Korean|한국어]]<br />| [[:QtSerialPort_Finnish|Suomi]]<br />| [[:Wiki Home Catalan|Català]]<br />| [[:Wiki Home Italian|Italiano]]<br />| [[:QtSerialPort_Japanese|日本語]]<br />| [[:QtSerialPort_French|Français]]<br />| [[:Wiki Home Hungarian|Magyar]]<br />| [[:QtSerialPort_Kannada|ಕನ್ನಡ]]<br />| [[:QtSerialPort_Hindi|हिन्दी]]<br />| [[:QtSerialPort_Thai|ภาษาไทย]]<br />| [[:QtSerialPort_SimplifiedChinese|简体中文]]<br />| [[:QtSerialPort_Bulgarian|Български]] | ||
=QtSerialPort= | [toc align_right="yes&quot; depth="3&quot;] | ||
= QtSerialPort = | |||
'''''Примечание:''' Эта страница в стадии разработки, требует пересмотра.'' | '''''Примечание:''' Эта страница в стадии разработки, требует пересмотра.'' | ||
==Новости== | == Новости == | ||
Заполнить | Заполнить | ||
26.02.2013 | 26.02.2013 - Проект перемещен из песочницы в основную ветвь Qt5! | ||
==Краткое описание== | == Краткое описание == | ||
Модуль '''QtSerialPort''' | Модуль '''QtSerialPort''' - это дополнение к библиотеке Qt5, которое предоставляет единый интерфейс для работы как аппаратными, так и с виртуальными последовательными портами. | ||
'''''Примечание:''' Также добавлена поддержка и библиотеки Qt4.'' | '''''Примечание:''' Также добавлена поддержка и библиотеки Qt4.'' | ||
Line 21: | Line 23: | ||
Использование модуля '''QtSerialPort''' позволяет разработчикам значительно сократить время на реализацию Qt-приложений, требующих доступ к последовательным интерфейсам. | Использование модуля '''QtSerialPort''' позволяет разработчикам значительно сократить время на реализацию Qt-приложений, требующих доступ к последовательным интерфейсам. | ||
==История== | == История == | ||
Модуль '''QtSerialPort''' берет свое начало из библиотеки | Модуль '''QtSerialPort''' берет свое начало из библиотеки "QSerialDevice&quot;:http://gitorious.org/qserialdevice/qserialdevice/trees/2.0 (ветка 2.0), которая недавно была перемещена в репозиторий на https://codereview.qt.io/ | ||
Это было сделано в надежде на более открытую и свободную разработку, а также на помощь сообщества, которое заинтересовано в развитии данного модуля. | Это было сделано в надежде на более открытую и свободную разработку, а также на помощь сообщества, которое заинтересовано в развитии данного модуля. | ||
==Функциональность== | == Функциональность == | ||
В настоящее время | В настоящее время API модуля содержит два класса '''SerialPort''' и '''SerialPortInfo'''. | ||
===SerialPort=== | === SerialPort === | ||
Класс '''SerialPort''' является основным классом модуля и предоставляет набор основных методов и свойств для доступа к ресурсам последовательных портов. | Класс '''SerialPort''' является основным классом модуля и предоставляет набор основных методов и свойств для доступа к ресурсам последовательных портов. | ||
Line 37: | Line 39: | ||
Поддерживает следующие операционные системы: | Поддерживает следующие операционные системы: | ||
< | {background:#009900}. |''. Операционная система |''. Поддержка |''. Примечание<br />|<br />|Windows NT/2K/XP/Vista/7<br />|ДА<br />|Полная поддержка<br />|<br />|Windows CE<br />|ДА<br />|Тестировалось только на 5 и 6 платформах в эмуляторе<br />|<br />|Gnu/Linux<br />|ДА<br />|Полная поддержка<br />|<br />|MacOSX<br />|ДА<br />|Полная поддержка<br />|<br />|Другие Unix<br />|ДА<br />|Все POSIX совместимые<br />|<br />|Symbian<ref>Для OS Symbian разработка модуля приостановлена в связи с отсутствием разработчиков, а также с тем фактом, что Nokia отказалась от этой платформы и не будет включать ее поддержку в Qt5._ | ||
</ref><br />|ДА<br />|Частично, тестировалось только в эмуляторе (*)<br />| | |||
Класс '''SerialPortInfo''' является вспомогательным. Он позволяет получить информацию о имеющихся в системе последовательных портах. | <br />h3. SerialPortInfo | ||
<br />Класс '''SerialPortInfo''' является вспомогательным. Он позволяет получить информацию о имеющихся в системе последовательных портах. | |||
<br />Поддерживает следующие операционные системы: | |||
<br />{background:#009900}. |''. Операционная система |''. Поддержка |''. Примечание<br />|<br />|Windows NT/2K/XP/Vista/7<br />|ДА<br />|Полная поддержка (с использованием SetupAPI)<br />|<br />|Windows CE<br />|ДА<br />|Тестировалось только на 5 и 6 платформах в эмуляторе<br />|<br />|Gnu/Linux<br />|ДА<br />|Полная поддержка (с использованием libudev или простой перебор в /dev)<br />|<br />|MacOSX<br />|ДА<br />|Полная поддержка<br />|<br />|Другие Unix<br />|ДА<br />|Все POSIX совместимые (только простой перебор в /dev)<br />|<br />|Symbian<ref>Для OS Symbian разработка модуля приостановлена в связи с отсутствием разработчиков, а также с тем фактом, что Nokia отказалась от этой платформы и не будет включать ее поддержку в Qt5._ | |||
</ref><br />|ДА<br />|Частично, тестировалось только в эмуляторе (''')<br />| | |||
< | <br />h2. Просмотр исходного кода | ||
<br />Недавно запущено публичное зеркало репозитория проекта на "Gitorious&quot;:https://qt.gitorious.org/qt/qtserialport | |||
<br />Теперь каждый желающий может свободно и оперативно через WEB браузер просмотреть последние изменения в исходном коде проекта. | |||
<br />h2. Получение исходного кода | |||
<br />h3. Для пользователей | |||
<br />Для получения текущего снимка исходного кода репозитория в виде архива достаточно из WEB браузера перейти по "этой&quot;:http://qt.gitorious.org/qt/qtserialport/archive-tarball/stable ссылке, загрузка начнется автоматически. | |||
<br />Для желающих использовать Git можно выполнить следующую команду: | |||
<br /><code>git clone git://gitorious.org/qt/qtserialport.git<code> | |||
<br />h3. Для разработчиков | |||
<br />Получить исходный код и внести свой вклад в разработку могут только зарегистрированные в Gerrit разработчики, используя Git ("настройка Gerrit&quot;:http://wiki.qt.io/Setting_up_Gerrit). | |||
<br />Получить исходный код можно так: | |||
<br /></code>git clone ssh://&lt;username&gt;</code>codereview.qt.io:29418/qt/qtserialport.git</code> | |||
<br />где username - логин зарегистрированного в Gerrit пользователя | |||
<br />h2. Сборка и установка | |||
<br />'''''Примечание:''' При сборке лучше использовать "теневую сборку&quot;, когда для результатов сборки используется отдельная директория. Это позволяет оставить директорию с исходными кодами в нетронутом виде, не засоренную продуктами сборки.'' | |||
<br />Перед сборкой необходимо:<br />''' установить Perl<ref>Perl необходим только в случае использования Qt5, подробнее см. "тут&quot;:http://wiki.qt.io/Building_Qt_5_from_Git. При использовании Qt4 просто пропустите этот пункт. | |||
</ref><br />* убедиться что корректно настроены переменные окружения:<br />'''''' правильно указаны пути к установленной Qt4/Qt5<br />'''''' правильно указаны пути к используемым компиляторам<br />'''''' правильно указаны пути к Perl<ref>Perl необходим только в случае использования Qt5, подробнее см. "тут&quot;:http://wiki.qt.io/Building_Qt_5_from_Git. При использовании Qt4 просто пропустите этот пункт. | |||
</ref><br />* предварительно создать директорию для сборки которая находится на том же уровне, что и директория с исходными кодами<br /><code><br />/<br />|- /serialport-src<br />|- /serialport-build<br /></code> | |||
Ниже приведены рекомендуемые процедуры сборки библиотеки для Qt4/Qt5. | |||
<code><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 /></code> | |||
'''''Примечание:''' В *nix системах для установки возможно потребуются права суперпользователя:''<br /><code><br />sudo make install<br /></code> | |||
== | == Использование == | ||
При использовании библиотеки необходимо ее подключить в ''*.pro'' файл пользовательского проекта, это действие для Qt4 и Qt5 немного отличается: | |||
=== Qt4 === | |||
<code><br />CONFIG ''= serialport<br /></code> | |||
<br />h3. Qt5 | |||
<br /><code><br />QT''= serialport<br /></code> | |||
Подключение заголовочных файлов от '''QtSerialPort''' в пользовательский проект для Qt4 и Qt5 одинаковое:<br /><code><br />…<br />#include <QtSerialPort/QSerialPort&gt;<br />#include <QtSerialPort/QSerialPortInfo&gt;<br />…<br /></code> | |||
== | === Простой пример === | ||
'''' | Ниже представлен простейший пример реализации ''main.cpp'':<br /><code><br />#include <QtCore/QCoreApplication&gt;<br />#include <QtCore/QDebug&gt; | ||
#include <QtSerialPort/QSerialPort&gt;<br />#include <QtSerialPort/QSerialPortInfo&gt; | |||
QT_USE_NAMESPACE | |||
int main(int argc, char *argv[])<br />{<br /> QCoreApplication a(argc, argv); | |||
// Example use SerialPortInfo<br /> foreach (const SerialPortInfo &info, SerialPortInfo::availablePorts()) {<br /> qDebug() << "Name : " << info.portName();<br /> qDebug() << "Description : " << info.description();<br /> qDebug() << "Manufacturer: " << 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;#40;&#41;;<br />}<br /></code> | |||
==Генерация документации== | == Генерация документации == | ||
Нет необходимости в сборке документации, потому что текущий снимок документации находится | Нет необходимости в сборке документации, потому что текущий снимок документации находится "тут&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 | ||
==Возможные проблемы== | == Возможные проблемы == | ||
Заполнить | Заполнить | ||
==Отслеживание ошибок== | == Отслеживание ошибок == | ||
<references /> |
Revision as of 14:18, 23 February 2015
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 ("настройка Gerrit&quot;:http://wiki.qt.io/Setting_up_Gerrit).
<br />Получить исходный код можно так:
<br />
git clone ssh://<username>codereview.qt.io:29418/qt/qtserialport.git
где username - логин зарегистрированного в Gerrit пользователя
h2. Сборка и установка
Примечание: При сборке лучше использовать "теневую сборку", когда для результатов сборки используется отдельная директория. Это позволяет оставить директорию с исходными кодами в нетронутом виде, не засоренную продуктами сборки.
Перед сборкой необходимо:
установить 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 <QtSerialPort/QSerialPort&gt;<br />#include <QtSerialPort/QSerialPortInfo&gt;<br />…<br />
Простой пример
Ниже представлен простейший пример реализации main.cpp:
<br />#include <QtCore/QCoreApplication&gt;<br />#include <QtCore/QDebug&gt;
#include <QtSerialPort/QSerialPort&gt;<br />#include <QtSerialPort/QSerialPortInfo&gt;
QT_USE_NAMESPACE
int main(int argc, char *argv[])<br />{<br /> QCoreApplication a(argc, argv);
// Example use SerialPortInfo<br /> foreach (const SerialPortInfo &info, SerialPortInfo::availablePorts()) {<br /> qDebug() << "Name : " << info.portName();<br /> qDebug() << "Description : " << info.description();<br /> qDebug() << "Manufacturer: " << 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;#40;&#41;;<br />}<br />
Генерация документации
Нет необходимости в сборке документации, потому что текущий снимок документации находится "тут":http://doc-snapshot.qt.io/qt5-stable/qtserialport/qtserialport-index.html.
Для желающих принять участие в разработке
Вся разработка ведется через "Gerrit":http://wiki.qt.io/Setting_up_Gerrit, поэтому желающие включиться в процесс разработки должны иметь там учетную запись.
Подробнее о процессе регистрации и разработки можно прочитать "здесь":http://wiki.qt.io/Code_Reviews
Возможные проблемы
Заполнить
Отслеживание ошибок
- ↑ Для OS Symbian разработка модуля приостановлена в связи с отсутствием разработчиков, а также с тем фактом, что Nokia отказалась от этой платформы и не будет включать ее поддержку в Qt5._
- ↑ Для OS Symbian разработка модуля приостановлена в связи с отсутствием разработчиков, а также с тем фактом, что Nokia отказалась от этой платформы и не будет включать ее поддержку в Qt5._
- ↑ Perl необходим только в случае использования Qt5, подробнее см. "тут":http://wiki.qt.io/Building_Qt_5_from_Git. При использовании Qt4 просто пропустите этот пункт.
- ↑ Perl необходим только в случае использования Qt5, подробнее см. "тут":http://wiki.qt.io/Building_Qt_5_from_Git. При использовании Qt4 просто пропустите этот пункт.