Spec-Zone.ru › Qt 5.9

Класс QBluetoothServer

Класс QBluetoothServer использует протокол RFCOMM или L2cap для связи с устройством Bluetooth. Подробнее...

Заголовок: #include <QBluetoothServer>
qmake: QT += bluetooth
С тех пор: Qt 5.2
Наследует: QObject
  • Список всех членов, включая унаследованные

Типы

перечисление Ошибка { НетОшибки, НеизвестнаяОшибка, ОшибкаОтключенияПитания, ОшибкаВводаВывода, ОшибкаУжеЗарегистрированнойУслуги, ОшибкаНеподдерживаемогоПротокола }

Открытые функции

QBluetoothServer(QBluetoothServiceInfo::Protocol serverType, QObject *parent = Q_NULLPTR)
~QBluetoothServer()
void закрыть()
Ошибка ошибка() const
bool естьОжидающиеПодключения() const
bool слушает() const
bool начинатьСлушать(const QBluetoothAddress &address = QBluetoothAddress(), quint16 port = 0)
QBluetoothServiceInfo начинатьСлушать(const QBluetoothUuid &uuid, const QString &serviceName = QString())
int максимальноеОжиданиеПодключений() const
QBluetoothSocket * следующееОжидающееПодключение()
QBluetooth::SecurityFlags флагиБезопасности() const
QBluetoothAddress адресСервера() const
quint16 портСервера() const
QBluetoothServiceInfo::Protocol типСервера() const
void установитьМаксимальноеОжиданиеПодключений(int numConnections)
void установитьФлагиБезопасности(QBluetooth::SecurityFlags security)
  • 32 открытых функций унаследованных от QObject

Сигналы

void ошибка(QBluetoothServer::Ошибка error)
void новоеПодключение()
  • 2 сигнала унаследованных от QObject

Дополнительные унаследованные члены

  • 1 свойство унаследованное от QObject
  • 1 открытый слот унаследованный от QObject
  • 11 статических открытых членов унаследованных от QObject
  • 9 защищенных функций унаследованных от QObject

Подробное описание

Класс QBluetoothServer использует протокол RFCOMM или L2cap для связи с устройством Bluetooth.

QBluetoothServer используется для реализации служб Bluetooth по RFCOMM или L2cap.

Начать прослушивание входящих подключений с помощью начинатьСлушать(). Дождитесь, пока сигнал новоеПодключение() не будет выдан, когда будет установлено новое соединение, и вызовите следующееОжидающееПодключение() для получения QBluetoothSocket для нового соединения.

Чтобы другие устройства могли найти вашу службу, создайте QBluetoothServiceInfo с соответствующими атрибутами для вашей службы и зарегистрируйте ее с помощью QBluetoothServiceInfo::registerService(). Вызовите портСервера() для получения номера канала, который используется.

Если QBluetoothServiceInfo::Protocol не поддерживается платформой, начинатьСлушать() вернет false. Например, Android и WinRT поддерживают только RFCOMM.

См. также QBluetoothServiceInfo и QBluetoothSocket.

Документация по типам членов

перечисление QBluetoothServer::Ошибка

Это перечисление описывает типы ошибок сервера Bluetooth.

Константа Значение Описание
QBluetoothServer::NoError 0 Нет ошибок.
QBluetoothServer::UnknownError 1 Произошла неизвестная ошибка.
QBluetoothServer::PoweredOffError 2 Bluetooth-адаптер выключен.
QBluetoothServer::InputOutputError 3 Произошла ошибка ввода-вывода.
QBluetoothServer::ServiceAlreadyRegisteredError 4 Служба или порт уже были зарегистрированы.
QBluetoothServer::UnsupportedProtocolError 5 Протокол Протокол не поддерживается на этой платформе.

Документация по функциям членов

QBluetoothServer::QBluetoothServer(QBluetoothServiceInfo::Протокол serverType, QObject *parent = Q_NULLPTR)

Создает сервер Bluetooth с parent и serverType.

QBluetoothServer::~QBluetoothServer()

Удаляет сервер Bluetooth.

void QBluetoothServer::закрыть()

Закрывает и сбрасывает сокет прослушивания. Любое уже установленное соединение QBluetoothSocket продолжает работать и должно быть отдельно закрыто с помощью закрыть.

Ошибка QBluetoothServer::ошибка() const

Возвращает последнюю ошибку сервера QBluetoothServer.

[signal] void QBluetoothServer::ошибка(QBluetoothServer::Ошибка error)

Этот сигнал испускается при возникновении ошибки error.

Примечание: Сигнал ошибка перегружен в этом классе. Для подключения к этому сигналу с использованием синтаксиса указателя на функцию Qt предоставляет удобную вспомогательную функцию для получения указателя на функцию, как показано в этом примере:

connect(bluetoothServer, QOverload<QBluetoothServer::Error>::of(&QBluetoothServer::error),
    [=](QBluetoothServer::Error error){ /* ... */ });

См. также ошибка() и QBluetoothServer::Ошибка.

bool QBluetoothServer::естьОжидающиеПодключения() const

Возвращает true, если ожидается подключение, в противном случае false.

bool QBluetoothServer::слушает() const

Возвращает true, если сервер прослушивает входящие соединения, в противном случае false.

bool QBluetoothServer::начинатьСлушать(const QBluetoothAddress &address = QBluetoothAddress(), quint16 port = 0)

Начать прослушивание входящих подключений по адресу address на порте port. address должен быть адресом локального Bluetooth-адаптера, а port должен быть больше нуля и не заниматься другим объектом сервера Bluetooth. Рекомендуется избегать установки номера порта, чтобы система могла автоматически выбрать порт.

Возвращает true если операция выполнена успешно и сервер прослушивает входящие соединения, иначе возвращает false.

Если объект сервера уже прослушивает входящие подключения, эта функция всегда возвращает false. Перед вызовом этой функции необходимо вызвать close().

См. также isListening() и newConnection().

QBluetoothServiceInfo QBluetoothServer::listen(const QBluetoothUuid &uuid, const QString &serviceName = QString())

Функция для регистрации службы SPP с uuid и serviceName. Поскольку эта функция уже регистрирует службу, объект QBluetoothServiceInfo, который возвращается, больше нельзя изменить. Для завершения работы сервера необходимо вызвать QBluetoothServiceInfo::unregisterService() и close() для этого объекта сервера.

Возвращает зарегистрированный экземпляр QBluetoothServiceInfo, если успешно, в противном случае — недопустимый QBluetoothServiceInfo. Эта функция всегда предполагает использование адаптера Bluetooth по умолчанию.

Если объект сервера уже прослушивает входящие подключения, эта функция возвращает недопустимый QBluetoothServiceInfo.

Для сервера RFCOMM эта функция эквивалентна следующему фрагменту кода.

    QBluetoothServiceInfo serviceInfo;
    serviceInfo.setAttribute(QBluetoothServiceInfo::ServiceName, serviceName);
    QBluetoothServiceInfo::Sequence browseSequence;
    browseSequence << QVariant::fromValue(QBluetoothUuid(QBluetoothUuid::PublicBrowseGroup));
    serviceInfo.setAttribute(QBluetoothServiceInfo::BrowseGroupList,
                             browseSequence);

    QBluetoothServiceInfo::Sequence classId;
    classId << QVariant::fromValue(QBluetoothUuid(QBluetoothUuid::SerialPort));
    serviceInfo.setAttribute(QBluetoothServiceInfo::BluetoothProfileDescriptorList,
                             classId);

    //Android requires custom uuid to be set as service class
    classId.prepend(QVariant::fromValue(uuid));
    serviceInfo.setAttribute(QBluetoothServiceInfo::ServiceClassIds, classId);
    serviceInfo.setServiceUuid(uuid);

    QBluetoothServiceInfo::Sequence protocolDescriptorList;
    QBluetoothServiceInfo::Sequence protocol;
    protocol << QVariant::fromValue(QBluetoothUuid(QBluetoothUuid::L2cap));
    if (d->serverType == QBluetoothServiceInfo::L2capProtocol)
        protocol << QVariant::fromValue(serverPort());
    protocolDescriptorList.append(QVariant::fromValue(protocol));
    protocol.clear();
    protocol << QVariant::fromValue(QBluetoothUuid(QBluetoothUuid::Rfcomm))
             << QVariant::fromValue(quint8(serverPort()));
    protocolDescriptorList.append(QVariant::fromValue(protocol));
    serviceInfo.setAttribute(QBluetoothServiceInfo::ProtocolDescriptorList,
                             protocolDescriptorList);
    bool result = serviceInfo.registerService();

См. также isListening(), newConnection() и listen().

int QBluetoothServer::maxPendingConnections() const

Возвращает максимальное количество ожидающих подключений.

См. также setMaxPendingConnections().

[signal] void QBluetoothServer::newConnection()

Этот сигнал излучается при наличии нового подключения.

Обрабатывающий слот должен вызвать nextPendingConnection() для получения объекта QBluetoothSocket для отправки и получения данных по подключению.

См. также nextPendingConnection() и hasPendingConnections().

QBluetoothSocket *QBluetoothServer::nextPendingConnection()

Возвращает указатель на QBluetoothSocket для следующего ожидающего подключения. Ответственность за удаление указателя лежит на вызывающей стороне.

QBluetooth::SecurityFlags QBluetoothServer::securityFlags() const

Возвращает флаги безопасности Bluetooth.

См. также setSecurityFlags().

QBluetoothAddress QBluetoothServer::serverAddress() const

Возвращает адрес сервера.

quint16 QBluetoothServer::serverPort() const

Возвращает номер порта сервера.

QBluetoothServiceInfo::Protocol QBluetoothServer::serverType() const

Возвращает тип QBluetoothServer.

void QBluetoothServer::setMaxPendingConnections(int numConnections)

Устанавливает максимальное количество ожидающих подключений в numConnections. Если число ожидающих сокетов превышает это ограничение, новые сокеты будут отклонены.

См. также maxPendingConnections().

void QBluetoothServer::setSecurityFlags(QBluetooth::SecurityFlags security)

Устанавливает флаги безопасности Bluetooth в security. Эта функция должна быть вызвана перед вызовом listen(). Подключение Bluetooth всегда будет зашифровано при использовании устройств Bluetooth 2.1, поскольку шифрование является обязательным.

Android поддерживает только два уровня безопасности (безопасный и небезопасный). Если этот флаг установлен в QBluetooth::NoSecurity, объект сервера не будет использовать никакую аутентификацию или шифрование. Любая другая комбинация флагов безопасности вызовет безопасное подключение Bluetooth.

В macOS флаги безопасности не поддерживаются и будут игнорироваться.

См. также securityFlags().

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

Spec-Zone.ru

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