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 |
|||
(15 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
[[:QtSerialPort|English]] | {{Cleanup | reason=Auto-imported from ExpressionEngine.}} | ||
[[: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 = | = QtSerialPort = | ||
Line 25: | Line 47: | ||
== История == | == История == | ||
Модуль '''QtSerialPort''' берет свое начало из библиотеки | Модуль '''QtSerialPort''' берет свое начало из библиотеки [http://gitorious.org/qserialdevice/qserialdevice/trees/2.0 QSerialDevice] (ветка 2.0), которая недавно была перемещена в репозиторий на https://codereview.qt.io/ | ||
Это было сделано в надежде на более открытую и свободную разработку, а также на помощь сообщества, которое заинтересовано в развитии данного модуля. | Это было сделано в надежде на более открытую и свободную разработку, а также на помощь сообщества, которое заинтересовано в развитии данного модуля. | ||
Line 39: | Line 61: | ||
Поддерживает следующие операционные системы: | Поддерживает следующие операционные системы: | ||
{background:#009900}. |''. Операционная система |''. Поддержка |''. Примечание | {background:#009900}. |''. Операционная система |''. Поддержка |''. Примечание | ||
</ref> | | | ||
|Windows NT/2K/XP/Vista/7 | |||
|ДА | |||
|Полная поддержка | |||
| | |||
|Windows CE | |||
|ДА | |||
|Тестировалось только на 5 и 6 платформах в эмуляторе | |||
| | |||
|Gnu/Linux | |||
|ДА | |||
|Полная поддержка | |||
| | |||
|MacOSX | |||
|ДА | |||
|Полная поддержка | |||
| | |||
|Другие Unix | |||
|ДА | |||
|Все POSIX совместимые | |||
| | |||
|Symbian<ref>Для OS Symbian разработка модуля приостановлена в связи с отсутствием разработчиков, а также с тем фактом, что Nokia отказалась от этой платформы и не будет включать ее поддержку в Qt5._ | |||
</ref> | |||
|ДА | |||
|Частично, тестировалось только в эмуляторе (*) | |||
| | |||
=== SerialPortInfo === | |||
Класс '''SerialPortInfo''' является вспомогательным. Он позволяет получить информацию о имеющихся в системе последовательных портах. | |||
Поддерживает следующие операционные системы: | |||
{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] | |||
Теперь каждый желающий может свободно и оперативно через WEB браузер просмотреть последние изменения в исходном коде проекта. | |||
== Получение исходного кода == | |||
=== Для пользователей === | |||
Для получения текущего снимка исходного кода репозитория в виде архива достаточно из WEB браузера перейти по [http://qt.gitorious.org/qt/qtserialport/archive-tarball/stable этой] ссылке, загрузка начнется автоматически. | |||
Для желающих использовать Git можно выполнить следующую команду: | |||
<code lang="bash">git clone git://code.qt.io/qt/qtserialport.git</code> | |||
=== Для разработчиков === | |||
Получить исходный код и внести свой вклад в разработку могут только зарегистрированные в Gerrit разработчики, используя Git ([http://wiki.qt.io/Setting_up_Gerrit настройка 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> | |||
</ref> | |||
</ref> | |||
Ниже приведены рекомендуемые процедуры сборки библиотеки для Qt4/Qt5. | Ниже приведены рекомендуемые процедуры сборки библиотеки для Qt4/Qt5. | ||
<code> | <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> | |||
'''''Примечание:''' В *nix системах для установки возможно потребуются права суперпользователя:'' | '''''Примечание:''' В *nix системах для установки возможно потребуются права суперпользователя:'' | ||
<code lang="bash"> | |||
sudo make install | |||
</code> | |||
Если вы используете компилятор MSVC, то для сборки нужно выполнить команды: | |||
<code lang="bash"> | |||
nmake | |||
nmake install | |||
</code> | |||
== Использование == | == Использование == | ||
Line 81: | Line 197: | ||
=== Qt4 === | === Qt4 === | ||
<code>< | <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''' в пользовательский проект для | Подключение заголовочных файлов от '''QtSerialPort''' в пользовательский проект для VS : | ||
<code> | |||
… | |||
#include <QtSerialPort/QSerialPort> | |||
#include <QtSerialPort/QSerialPortInfo> | |||
… | |||
</code> | |||
=== Простой пример === | === Простой пример === | ||
Ниже представлен простейший пример реализации ''main.cpp'': | Ниже представлен простейший пример реализации ''main.cpp'': | ||
<code> | |||
#include <QCoreApplication> | |||
#include <QDebug> | |||
#include | #include <QSerialPort> | ||
#include <QSerialPortInfo> | |||
QT_USE_NAMESPACE | QT_USE_NAMESPACE | ||
int main(int argc, char *argv[]) | int main(int argc, char *argv[]) | ||
{ | |||
QCoreApplication a(argc, argv); | |||
// Example use SerialPortInfo | // Example use SerialPortInfo | ||
foreach (const SerialPortInfo &info, SerialPortInfo::availablePorts()) { | |||
qDebug() << "Name : " << info.portName(); | |||
qDebug() << "Description : " << info.description(); | |||
qDebug() << "Manufacturer: " << info.manufacturer(); | |||
// Example use SerialPort | // Example use SerialPort | ||
SerialPort serial; | |||
serial.setPort(info); | |||
if (serial.open(QIODevice::ReadWrite)) | |||
serial.close(); | |||
} | |||
return a.exec | return a.exec(); | ||
} | |||
</code> | |||
== Генерация документации == | == Генерация документации == | ||
Нет необходимости в сборке документации, потому что текущий снимок документации находится | Нет необходимости в сборке документации, потому что текущий снимок документации находится [http://doc-snapshot.qt.io/qt5-stable/qtserialport/qtserialport-index.html тут]. | ||
== Для желающих принять участие в разработке == | == Для желающих принять участие в разработке == | ||
Вся разработка ведется через | Вся разработка ведется через [http://wiki.qt.io/Setting_up_Gerrit Gerrit], поэтому желающие включиться в процесс разработки должны иметь там учетную запись. | ||
Подробнее о процессе регистрации и разработки можно прочитать | Подробнее о процессе регистрации и разработки можно прочитать [http://wiki.qt.io/Code_Reviews здесь] | ||
== Возможные проблемы == | == Возможные проблемы == |
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, поэтому желающие включиться в процесс разработки должны иметь там учетную запись.
Подробнее о процессе регистрации и разработки можно прочитать здесь
Возможные проблемы
Заполнить
Отслеживание ошибок
- ↑ Для OS Symbian разработка модуля приостановлена в связи с отсутствием разработчиков, а также с тем фактом, что Nokia отказалась от этой платформы и не будет включать ее поддержку в Qt5._
- ↑ Для OS Symbian разработка модуля приостановлена в связи с отсутствием разработчиков, а также с тем фактом, что Nokia отказалась от этой платформы и не будет включать ее поддержку в Qt5._
- ↑ Perl необходим только в случае использования Qt5, подробнее см. тут. При использовании Qt4 просто пропустите этот пункт.
- ↑ Perl необходим только в случае использования Qt5, подробнее см. тут. При использовании Qt4 просто пропустите этот пункт.