Spec-Zone.ru › Qt 5.6

Класс 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)
  • 31 открытая функция унаследована от 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.

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

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

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

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

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

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

QBluetoothServer::QBluetoothServer(QBluetoothServiceInfo::Protocol serverType, QObject *parent = Q_NULLPTR)

Конструирует сервер Bluetooth с parent и serverType.

QBluetoothServer::~QBluetoothServer()

Уничтожает сервер Bluetooth.

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

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

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

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

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

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

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

connect(bluetoothServer, static_cast<void(QBluetoothServer::*)(QBluetoothServer::Error)>(&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/archives/qt-5.6/qbluetoothserver.html

Spec-Zone.ru

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