Spec-Zone.ru › Qt

Qt Bluetooth

API Bluetooth предоставляет подключение между устройствами, поддерживающими Bluetooth.

В настоящее время API поддерживается на следующих платформах:

Функция API Android iOS Linux (BlueZ 5.x) macOS Qt для Windows
Классический Bluetooth x x x x
Bluetooth LE Центральный x x x x x
Bluetooth LE Периферийный x x x x
Объявление и сканирование Bluetooth LE

Qt 5.14 добавляет родной порт Win32, поддерживающий классический Bluetooth на Windows 7 или новее, и Bluetooth LE на Windows 8 или новее. Он должен быть включён во время сборки с помощью параметра конфигурации -native-win32-bluetooth. По умолчанию используется бэкенд UWP, если этот параметр не задан, и целевая платформа Win32 поддерживает необходимые API UWP (минимальное требование — Windows 10 версия 1507, с несколько улучшенной службой обнаружения с Windows 10 версия 1607).

Обзор

Bluetooth — беспроводная технология короткого радиуса действия (менее 100 метров). Она имеет относительно высокую скорость передачи данных 2,1 Мбит/с, что делает её идеальной для передачи данных между устройствами. Подключение Bluetooth основано на базовом управлении устройствами, таком как сканирование устройств, получение информации о них и обмен данными между ними.

Qt Bluetooth поддерживает разработку Bluetooth Low Energy для использования в сценариях клиент/центральный роль. Более подробная информация доступна в разделе Обзор Bluetooth Low Energy.

Использование модуля

Использование модуля Qt требует линковки против библиотеки модуля, либо напрямую, либо через другие зависимости. Несколько инструментов сборки имеют специальную поддержку этого, включая CMake и qmake.

Сборка с помощью CMake

Используйте команду find_package() для поиска необходимых компонентов модуля в пакете Qt6.

find_package(Qt6 COMPONENTS Bluetooth REQUIRED)
target_link_libraries(mytarget PRIVATE Qt6::Bluetooth)

См. также обзор Сборка с помощью CMake.

Сборка с помощью qmake

Добавьте bluetooth к переменной QT.

QT += bluetooth

Связанная информация

Сборка Qt Bluetooth

Несмотря на то, что модуль может быть собран для всех платформ Qt, он не портирован на все из них. Для платформ, не поддерживаемых, используется имитирующий или фиктивный бэкенд, который автоматически выбирается, если платформа не поддерживается. Фиктивный бэкенд сообщает соответствующие сообщения об ошибках и значения, что позволяет разработчику Qt Bluetooth обнаружить во время выполнения, что текущая платформа не поддерживается. Фиктивный бэкенд также выбирается в Linux, если заголовки разработки BlueZ не найдены во время сборки или Qt был собран без поддержки Qt D-Bus.

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

Особенности macOS

API Bluetooth на macOS требует определённого типа диспетчера событий, что в Qt приводит к зависимости от QGuiApplication. Однако, вы можете установить переменную среды QT_EVENT_DISPATCHER_CORE_FOUNDATION=1 для обхода этой проблемы.

Приложения, не использующие Classic Bluetooth, найдут подмножество QtBluetooth, так как CoreBluetooth (Bluetooth LE) не требует ни QApplication, ни QGuiApplication.

Руководства

  • Обзор Classic Bluetooth
  • Обзор Bluetooth Low Energy

Справочник

  • Классы C++

Категории регистрации

Модуль QtBluetooth экспортирует следующие категории регистрации:

Категория регистрации Описание
qt.bluetooth Включает регистрацию кода кросс-платформенного пути в QtBluetooth
qt.bluetooth.android Включает регистрацию реализации Android
qt.bluetooth.bluez Включает регистрацию реализации BLuez/Linux
qt.bluetooth.ios Включает регистрацию реализации iOS
qt.bluetooth.osx Включает регистрацию реализации macOS
qt.bluetooth.windows Включает регистрацию реализации Qt для Windows

Категории регистрации могут быть использованы для включения дополнительного предупреждения и отладки вывода для QtBluetooth. Более подробная информация о регистрации содержится в QLoggingCategory. Быстрый способ включить всю регистрацию QtBluetooth — добавить следующую строку в функцию main().

QLoggingCategory::setFilterRules(QStringLiteral("qt.bluetooth* = true"));

Примеры

  • QML
    • QML Bluetooth PingPong
    • Игра с частотой пульса Bluetooth Low Energy
    • Сервер частоты пульса Bluetooth Low Energy
    • Сканер Bluetooth Low Energy
  • C++
    • Чат Bluetooth
    • Сканер Bluetooth

Эволюция модуля

Изменения в Qt Bluetooth перечисляет важные изменения в API модуля и функциональности, которые были внесены для серии Qt 6.

Лицензии и ссылки на авторов

Qt Bluetooth доступен по коммерческим лицензиям от The Qt Company. Кроме того, он доступен по GNU Lesser General Public License, версии 3 или GNU General Public License, версии 2. См. Qt Licensing для получения дополнительной информации.

В Linux Qt Bluetooth использует отдельное исполняемое приложение, sdpscanner, для интеграции с официальным стеком протокола Bluetooth Linux BlueZ. BlueZ доступен по GNU General Public License, версии 2.

BlueZ

Только GNU General Public License v2.0 (Это не обязывает пользовательский код к использованию GPL. Для получения дополнительной информации см. подробности.)

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.2/qtbluetooth-index.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API