Qt Serial Port/ru: Difference between revisions

From Qt Wiki
Jump to navigation Jump to search
No edit summary
 
 
(16 intermediate revisions by 4 users not shown)
Line 1: Line 1:
[[QtSerialPort|English]] | [[QtSerialPort German|Deutsch]] | '''Русский''' | [[QtSerialPort Polish|Polski]] | [[QtSerialPort Dutch|Nederlands]] | [[QtSerialPort Portuguese|Português]] | [[QtSerialPort Spanish|Español]] | [[QtSerialPort Ukrainian|Українською]] | [[QtSerialPort Persian|فارسی]] | [[QtSerialPort Arabic|عربي]] | [[QtSerialPort Korean|한국어]] | [[QtSerialPort Finnish|Suomi]] | [[Wiki-Home-Catalan|Català]] | [[Wiki-Home-Italian|Italiano]] | [[QtSerialPort Japanese|日本語]] | [[QtSerialPort French|Français]] | [[Wiki-Home-Hungarian|Magyar]] | [[QtSerialPort Kannada|ಕನ್ನಡ]] | [[QtSerialPort Hindi|हिन्दी]] | [[QtSerialPort Thai|ภาษาไทย]] | [[QtSerialPort SimplifiedChinese|简体中文]] | [[QtSerialPort Bulgarian|Български]]
{{Cleanup | reason=Auto-imported from ExpressionEngine.}}


=QtSerialPort=
[[:QtSerialPort|English]]
| [[:QtSerialPort_German|Deutsch]]
| '''Русский'''
| [[:QtSerialPort_Polish|Polski]]
| [[:QtSerialPort_Dutch|Nederlands]]
| [[:QtSerialPort_Portuguese|Português]]
| [[:QtSerialPort_Spanish|Español]]
| [[:QtSerialPort_Ukrainian|Українською]]
| [[:QtSerialPort_Persian|فارسی]]
| [[:QtSerialPort_Arabic|عربي]]
| [[:QtSerialPort_Korean|한국어]]
| [[:QtSerialPort_Finnish|Suomi]]
| [[:Wiki Home Catalan|Català]]
| [[:Wiki Home Italian|Italiano]]
| [[:QtSerialPort_Japanese|日本語]]
| [[:QtSerialPort_French|Français]]
| [[:Wiki Home Hungarian|Magyar]]
| [[:QtSerialPort_Kannada|ಕನ್ನಡ]]
| [[:QtSerialPort_Hindi|हिन्दी]]
| [[:QtSerialPort_Thai|ภาษาไทย]]
| [[:QtSerialPort_SimplifiedChinese|简体中文]]
| [[:QtSerialPort_Bulgarian|Български]]
 
 
= QtSerialPort =


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


==Новости==
== Новости ==


Заполнить
Заполнить


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


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


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


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


==История==
== История ==


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


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


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


В настоящее время <span class="caps">API</span> модуля содержит два класса '''SerialPort''' и '''SerialPortInfo'''.
В настоящее время API модуля содержит два класса '''SerialPort''' и '''SerialPortInfo'''.


===SerialPort===
=== SerialPort ===


Класс '''SerialPort''' является основным классом модуля и предоставляет набор основных методов и свойств для доступа к ресурсам последовательных портов.
Класс '''SerialPort''' является основным классом модуля и предоставляет набор основных методов и свойств для доступа к ресурсам последовательных портов.
Line 37: Line 61:
Поддерживает следующие операционные системы:
Поддерживает следующие операционные системы:


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


===SerialPortInfo===


=== SerialPortInfo ===
Класс '''SerialPortInfo''' является вспомогательным. Он позволяет получить информацию о имеющихся в системе последовательных портах.
Класс '''SerialPortInfo''' является вспомогательным. Он позволяет получить информацию о имеющихся в системе последовательных портах.


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


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


==Просмотр исходного кода==


Недавно запущено публичное зеркало репозитория проекта на [https://qt.gitorious.org/qt/qtserialport Gitorious] ''[qt.gitorious.org]''


Теперь каждый желающий может свободно и оперативно через <span class="caps">WEB</span> браузер просмотреть последние изменения в исходном коде проекта.
== Просмотр исходного кода ==
Недавно запущено публичное зеркало репозитория проекта на [https://qt.gitorious.org/qt/qtserialport Gitorious]


==Получение исходного кода==
Теперь каждый желающий может свободно и оперативно через WEB браузер просмотреть последние изменения в исходном коде проекта.


===Для пользователей===
== Получение исходного кода ==
 
=== Для пользователей ===
Для получения текущего снимка исходного кода репозитория в виде архива достаточно из <span class="caps">WEB</span> браузера перейти по [http://qt.gitorious.org/qt/qtserialport/archive-tarball/stable этой] ''[qt.gitorious.org]'' ссылке, загрузка начнется автоматически.
Для получения текущего снимка исходного кода репозитория в виде архива достаточно из WEB браузера перейти по [http://qt.gitorious.org/qt/qtserialport/archive-tarball/stable этой] ссылке, загрузка начнется автоматически.


Для желающих использовать Git можно выполнить следующую команду:
Для желающих использовать Git можно выполнить следующую команду:


===Для разработчиков===
<code lang="bash">git clone git://code.qt.io/qt/qtserialport.git</code>


Получить исходный код и внести свой вклад в разработку могут только зарегистрированные в Gerrit разработчики, используя Git ([[Setting up Gerrit|настройка Gerrit]] ''[wiki.qt.io]'').
=== Для разработчиков ===
Получить исходный код и внести свой вклад в разработку могут только зарегистрированные в Gerrit разработчики, используя Git ([http://wiki.qt.io/Setting_up_Gerrit настройка Gerrit]).


Получить исходный код можно так:
Получить исходный код можно так:


где username – логин зарегистрированного в Gerrit пользователя
<code lang="bash">git clone ssh://<username>@codereview.qt.io:29418/qt/qtserialport.git</code>


==Сборка и установка==
где username - логин зарегистрированного в Gerrit пользователя
=== Выбор нужной версии библиотеки ===
Чтобы посмотреть все существующие ветки библиотеки, нужно с помощью git выполнить следующую команду в скаченном репозитории:
<code>git branch -a  </code>
Переключение в нужную ветку(например, для qt4 одна ветка) выполняется с помощью:
<code>git checkout qt4-dev</code>


'''''Примечание:''' При сборке лучше использовать “теневую сборку”, когда для результатов сборки используется отдельная директория. Это позволяет оставить директорию с исходными кодами в нетронутом виде, не засоренную продуктами сборки.''
== Сборка и установка ==
'''''Примечание:''' При сборке лучше использовать "теневую сборку", когда для результатов сборки используется отдельная директория. Это позволяет оставить директорию с исходными кодами в нетронутом виде, не засоренную продуктами сборки.''


Перед сборкой необходимо:
Перед сборкой необходимо:
''' установить Perl<ref>Perl необходим только в случае использования Qt5, подробнее см. [http://wiki.qt.io/Building_Qt_5_from_Git тут]. При использовании Qt4 просто пропустите этот пункт.
</ref>
* убедиться что корректно настроены переменные окружения:
'''''' правильно указаны пути к установленной Qt4/Qt5
'''''' правильно указаны пути к используемым компиляторам
'''''' правильно указаны пути к Perl<ref>Perl необходим только в случае использования Qt5, подробнее см. [http://wiki.qt.io/Building_Qt_5_from_Git тут]. При использовании Qt4 просто пропустите этот пункт.
</ref>
* предварительно создать директорию для сборки которая находится на том же уровне, что и директория с исходными кодами
<code>
/
|- /serialport-src
|- /serialport-build
</code>


* убедиться что корректно настроены переменные окружения:
Ниже приведены рекомендуемые процедуры сборки библиотеки для Qt4/Qt5.
** правильно указаны пути к установленной Qt4/Qt5
** правильно указаны пути к используемым компиляторам
* предварительно создать директорию для сборки которая находится на том же уровне, что и директория с исходными кодами <br />


<sup>3</sup> Perl необходим только в случае использования Qt5, подробнее см. [[Building Qt 5 from Git|тут]] ''[qt.io]''. При использовании Qt4 просто пропустите этот пункт.
<code lang="bash">
cd serialport-build
qmake ../serialport-src/qtserialport.pro
make [или 'nmake' для MSVC компилятора, или 'mingw32-make' для MinGW компилятора]
make install [или 'nmake install' для MSVC компилятора, или 'mingw32-make install' для MinGW компилятора]
</code>


Ниже приведены рекомендуемые процедуры сборки библиотеки для Qt4/Qt5.
'''''Примечание:''' В *nix системах для установки возможно потребуются права суперпользователя:''
<code lang="bash">
sudo make install
</code>


'''''Примечание:''' В *nix системах для установки возможно потребуются права суперпользователя:''<br />
Если вы используете компилятор MSVC, то для сборки нужно выполнить команды:
<code lang="bash">
nmake
nmake install
</code>


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


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


===Qt4===
=== Qt4 ===
 
<code>
CONFIG ''= serialport
</code>
 
=== Qt5 ===
<code>
QT''= serialport
</code>
 
Подключение заголовочных файлов от '''QtSerialPort''' в пользовательский проект для Qt4 и Qt5 одинаковое:
<code>
#include <QSerialPort>
#include <QSerialPortInfo>
</code>
 
=== Использование MSVS в качестве IDE ===
При использовании библиотеки qserialport, нужно прописать в конфиге проекта:
* в Configuration Properties  > C/C++ > General > Additional Include Directories  добавляем
<code>$(QTDIR)\include\QtSerialPort</code>
* в Configuration Properties  > C/C++ > Preprocessor > Preprocessor Definitions
<code>QT_SERIALPORT_LIB</code>
* в Configuration Properties  > Linker > Input > Additional Dependencies добавляем
<code>QtSerialPortd.lib</code>
 
Подключение заголовочных файлов от '''QtSerialPort''' в пользовательский проект для VS :
<code>
#include <QtSerialPort/QSerialPort>
#include <QtSerialPort/QSerialPortInfo>
</code>
 
=== Простой пример ===
 
Ниже представлен простейший пример реализации ''main.cpp'':
<code>
#include <QCoreApplication>
#include <QDebug>
 
#include <QSerialPort>
#include <QSerialPortInfo>
 
QT_USE_NAMESPACE


===Qt5===
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);


Подключение заголовочных файлов от '''QtSerialPort''' в пользовательский проект для Qt4 и Qt5 одинаковое:<br />
// Example use SerialPortInfo
foreach (const SerialPortInfo &info, SerialPortInfo::availablePorts()) {
qDebug() << "Name : " << info.portName();
qDebug() << "Description : " << info.description();
qDebug() << "Manufacturer: " << info.manufacturer();


===Простой пример===
// Example use SerialPort
SerialPort serial;
serial.setPort(info);
if (serial.open(QIODevice::ReadWrite))
serial.close();
}


Ниже представлен простейший пример реализации ''main.cpp'':<br />
return a.exec();
}
</code>


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


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


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


Вся разработка ведется через [[Setting up Gerrit|Gerrit]] ''[wiki.qt.io]'', поэтому желающие включиться в процесс разработки должны иметь там учетную запись.
Вся разработка ведется через [http://wiki.qt.io/Setting_up_Gerrit Gerrit], поэтому желающие включиться в процесс разработки должны иметь там учетную запись.


Подробнее о процессе регистрации и разработки можно прочитать [[Code Reviews|здесь]] ''[wiki.qt.io]''
Подробнее о процессе регистрации и разработки можно прочитать [http://wiki.qt.io/Code_Reviews здесь]


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


Заполнить
Заполнить


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


Используйте [https://bugreports.qt.io bugreports.qt.io] ''[bugreports.qt.io]'', проект “Qt”, компонент “Serial Port”.
<references />

Latest revision as of 10:35, 18 May 2016

This article may require cleanup to meet the Qt Wiki's quality standards. Reason: Auto-imported from ExpressionEngine.
Please improve this article if you can. Remove the {{cleanup}} tag and add this page to Updated pages list after it's clean.

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


QtSerialPort

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

Новости

Заполнить

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

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

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

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

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

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

История

Модуль QtSerialPort берет свое начало из библиотеки QSerialDevice (ветка 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] |ДА |Частично, тестировалось только в эмуляторе (*) |


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] |ДА |Частично, тестировалось только в эмуляторе () |


Просмотр исходного кода

Недавно запущено публичное зеркало репозитория проекта на Gitorious

Теперь каждый желающий может свободно и оперативно через WEB браузер просмотреть последние изменения в исходном коде проекта.

Получение исходного кода

Для пользователей

Для получения текущего снимка исходного кода репозитория в виде архива достаточно из WEB браузера перейти по этой ссылке, загрузка начнется автоматически.

Для желающих использовать Git можно выполнить следующую команду:

git clone git://code.qt.io/qt/qtserialport.git

Для разработчиков

Получить исходный код и внести свой вклад в разработку могут только зарегистрированные в Gerrit разработчики, используя Git (настройка Gerrit).

Получить исходный код можно так:

git clone ssh://<username>@codereview.qt.io:29418/qt/qtserialport.git

где username - логин зарегистрированного в Gerrit пользователя

Выбор нужной версии библиотеки

Чтобы посмотреть все существующие ветки библиотеки, нужно с помощью git выполнить следующую команду в скаченном репозитории:

git branch -a

Переключение в нужную ветку(например, для qt4 одна ветка) выполняется с помощью:

git checkout qt4-dev

Сборка и установка

Примечание: При сборке лучше использовать "теневую сборку", когда для результатов сборки используется отдельная директория. Это позволяет оставить директорию с исходными кодами в нетронутом виде, не засоренную продуктами сборки.

Перед сборкой необходимо: установить Perl[3]

  • убедиться что корректно настроены переменные окружения:

' правильно указаны пути к установленной Qt4/Qt5 ' правильно указаны пути к используемым компиляторам ' правильно указаны пути к Perl[4]

  • предварительно создать директорию для сборки которая находится на том же уровне, что и директория с исходными кодами
/
|- /serialport-src
|- /serialport-build

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

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

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

sudo make install

Если вы используете компилятор MSVC, то для сборки нужно выполнить команды:

nmake
nmake install

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

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

Qt4

CONFIG ''= serialport

Qt5

QT''= serialport

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


#include <QSerialPort>
#include <QSerialPortInfo>

Использование MSVS в качестве IDE

При использовании библиотеки qserialport, нужно прописать в конфиге проекта:

  • в Configuration Properties > C/C++ > General > Additional Include Directories добавляем
$(QTDIR)\include\QtSerialPort
  • в Configuration Properties > C/C++ > Preprocessor > Preprocessor Definitions
QT_SERIALPORT_LIB
  • в Configuration Properties > Linker > Input > Additional Dependencies добавляем
QtSerialPortd.lib

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


#include <QtSerialPort/QSerialPort>
#include <QtSerialPort/QSerialPortInfo>

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

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

#include <QCoreApplication>
#include <QDebug>

#include <QSerialPort>
#include <QSerialPortInfo>

QT_USE_NAMESPACE

int main(int argc, char *argv[])
{
 QCoreApplication a(argc, argv);

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

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

return a.exec();
}

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

Нет необходимости в сборке документации, потому что текущий снимок документации находится тут.

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

Вся разработка ведется через Gerrit, поэтому желающие включиться в процесс разработки должны иметь там учетную запись.

Подробнее о процессе регистрации и разработки можно прочитать здесь

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

Заполнить

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

  1. Для OS Symbian разработка модуля приостановлена в связи с отсутствием разработчиков, а также с тем фактом, что Nokia отказалась от этой платформы и не будет включать ее поддержку в Qt5._
  2. Для OS Symbian разработка модуля приостановлена в связи с отсутствием разработчиков, а также с тем фактом, что Nokia отказалась от этой платформы и не будет включать ее поддержку в Qt5._
  3. Perl необходим только в случае использования Qt5, подробнее см. тут. При использовании Qt4 просто пропустите этот пункт.
  4. Perl необходим только в случае использования Qt5, подробнее см. тут. При использовании Qt4 просто пропустите этот пункт.