void BtLocalDevice::deviceDiscovered(const QBluetoothDeviceInfo &info) { QString services; if (info.serviceClasses() & QBluetoothDeviceInfo::PositioningService) services += "Position|"; if (info.serviceClasses() & QBluetoothDeviceInfo::NetworkingService) services += "Network|"; if (info.serviceClasses() & QBluetoothDeviceInfo::RenderingService) services += "Rendering|"; if (info.serviceClasses() & QBluetoothDeviceInfo::CapturingService) services += "Capturing|"; if (info.serviceClasses() & QBluetoothDeviceInfo::ObjectTransferService) services += "ObjectTra|"; if (info.serviceClasses() & QBluetoothDeviceInfo::AudioService) services += "Audio|"; if (info.serviceClasses() & QBluetoothDeviceInfo::TelephonyService) services += "Telephony|"; if (info.serviceClasses() & QBluetoothDeviceInfo::InformationService) services += "Information|"; services.truncate(services.length()-1); //cut last '/' qDebug() << "Found new device: " << info.name() << info.isValid() << info.address().toString() << info.rssi() << info.majorDeviceClass() << info.minorDeviceClass() << services; }
void tst_QBluetoothDeviceDiscoveryAgent::tst_deviceDiscovery() { { QFETCH(QBluetoothDeviceDiscoveryAgent::InquiryType, inquiryType); QBluetoothDeviceDiscoveryAgent discoveryAgent; QVERIFY(discoveryAgent.error() == discoveryAgent.NoError); QVERIFY(discoveryAgent.errorString().isEmpty()); QVERIFY(!discoveryAgent.isActive()); QVERIFY(discoveryAgent.discoveredDevices().isEmpty()); QSignalSpy finishedSpy(&discoveryAgent, SIGNAL(finished())); QSignalSpy errorSpy(&discoveryAgent, SIGNAL(error(QBluetoothDeviceDiscoveryAgent::Error))); QSignalSpy discoveredSpy(&discoveryAgent, SIGNAL(deviceDiscovered(const QBluetoothDeviceInfo&))); // connect(&discoveryAgent, SIGNAL(finished()), this, SLOT(finished())); // connect(&discoveryAgent, SIGNAL(deviceDiscovered(const QBluetoothDeviceInfo&)), // this, SLOT(deviceDiscoveryDebug(const QBluetoothDeviceInfo&))); discoveryAgent.setInquiryType(inquiryType); discoveryAgent.start(); QVERIFY(discoveryAgent.isActive()); // Wait for up to MaxScanTime for the scan to finish int scanTime = MaxScanTime; while (finishedSpy.count() == 0 && scanTime > 0) { QTest::qWait(15000); scanTime -= 15000; } qDebug() << scanTime << MaxScanTime; // verify that we are finished QVERIFY(!discoveryAgent.isActive()); // stop discoveryAgent.stop(); QVERIFY(!discoveryAgent.isActive()); qDebug() << "Scan time left:" << scanTime; // Expect finished signal with no error QVERIFY(finishedSpy.count() == 1); QVERIFY(errorSpy.isEmpty()); QVERIFY(discoveryAgent.error() == discoveryAgent.NoError); QVERIFY(discoveryAgent.errorString().isEmpty()); // verify that the list is as big as the signals received. QVERIFY(discoveredSpy.count() == discoveryAgent.discoveredDevices().length()); // verify that there really was some devices in the array QVERIFY(discoveredSpy.count() > 0); // All returned QBluetoothDeviceInfo should be valid. while (!discoveredSpy.isEmpty()) { const QBluetoothDeviceInfo info = qvariant_cast<QBluetoothDeviceInfo>(discoveredSpy.takeFirst().at(0)); QVERIFY(info.isValid()); } } }
void tst_QBluetoothDeviceInfo::tst_construction() { { QBluetoothDeviceInfo deviceInfo; QVERIFY(!deviceInfo.isValid()); } { QFETCH(QBluetoothAddress, address); QFETCH(QString, name); QFETCH(quint32, classOfDevice); QFETCH(QBluetoothDeviceInfo::ServiceClasses, serviceClasses); QFETCH(QBluetoothDeviceInfo::MajorDeviceClass, majorDeviceClass); QFETCH(quint8, minorDeviceClass); QBluetoothDeviceInfo deviceInfo(address, name, classOfDevice); QVERIFY(deviceInfo.isValid()); QCOMPARE(deviceInfo.address(), address); QCOMPARE(deviceInfo.name(), name); QCOMPARE(deviceInfo.serviceClasses(), serviceClasses); QCOMPARE(deviceInfo.majorDeviceClass(), majorDeviceClass); QCOMPARE(deviceInfo.minorDeviceClass(), minorDeviceClass); QBluetoothDeviceInfo copyInfo(deviceInfo); QVERIFY(copyInfo.isValid()); QCOMPARE(copyInfo.address(), address); QCOMPARE(copyInfo.name(), name); QCOMPARE(copyInfo.serviceClasses(), serviceClasses); QCOMPARE(copyInfo.majorDeviceClass(), majorDeviceClass); QCOMPARE(copyInfo.minorDeviceClass(), minorDeviceClass); } }
void tst_QBluetoothDeviceInfo::tst_assignment() { QFETCH(QBluetoothAddress, address); QFETCH(QString, name); QFETCH(quint32, classOfDevice); QFETCH(QBluetoothDeviceInfo::ServiceClasses, serviceClasses); QFETCH(QBluetoothDeviceInfo::MajorDeviceClass, majorDeviceClass); QFETCH(quint8, minorDeviceClass); QBluetoothDeviceInfo deviceInfo(address, name, classOfDevice); QVERIFY(deviceInfo.isValid()); { QBluetoothDeviceInfo copyInfo = deviceInfo; QVERIFY(copyInfo.isValid()); QCOMPARE(copyInfo.address(), address); QCOMPARE(copyInfo.name(), name); QCOMPARE(copyInfo.serviceClasses(), serviceClasses); QCOMPARE(copyInfo.majorDeviceClass(), majorDeviceClass); QCOMPARE(copyInfo.minorDeviceClass(), minorDeviceClass); } { QBluetoothDeviceInfo copyInfo; QVERIFY(!copyInfo.isValid()); copyInfo = deviceInfo; QVERIFY(copyInfo.isValid()); QCOMPARE(copyInfo.address(), address); QCOMPARE(copyInfo.name(), name); QCOMPARE(copyInfo.serviceClasses(), serviceClasses); QCOMPARE(copyInfo.majorDeviceClass(), majorDeviceClass); QCOMPARE(copyInfo.minorDeviceClass(), minorDeviceClass); } { QBluetoothDeviceInfo copyInfo1; QBluetoothDeviceInfo copyInfo2; QVERIFY(!copyInfo1.isValid()); QVERIFY(!copyInfo2.isValid()); copyInfo1 = copyInfo2 = deviceInfo; QVERIFY(copyInfo1.isValid()); QVERIFY(copyInfo2.isValid()); QVERIFY(!(QBluetoothDeviceInfo() == copyInfo1)); QCOMPARE(copyInfo1.address(), address); QCOMPARE(copyInfo2.address(), address); QCOMPARE(copyInfo1.name(), name); QCOMPARE(copyInfo2.name(), name); QCOMPARE(copyInfo1.serviceClasses(), serviceClasses); QCOMPARE(copyInfo2.serviceClasses(), serviceClasses); QCOMPARE(copyInfo1.majorDeviceClass(), majorDeviceClass); QCOMPARE(copyInfo2.majorDeviceClass(), majorDeviceClass); QCOMPARE(copyInfo1.minorDeviceClass(), minorDeviceClass); QCOMPARE(copyInfo2.minorDeviceClass(), minorDeviceClass); } { QBluetoothDeviceInfo testDeviceInfo; QVERIFY(testDeviceInfo == QBluetoothDeviceInfo()); } }
void tst_QBluetoothDeviceInfo::tst_assignment() { QFETCH(QBluetoothAddress, address); QFETCH(QString, name); QFETCH(quint32, classOfDevice); QFETCH(QBluetoothDeviceInfo::ServiceClasses, serviceClasses); QFETCH(QBluetoothDeviceInfo::MajorDeviceClass, majorDeviceClass); QFETCH(quint8, minorDeviceClass); QFETCH(QBluetoothDeviceInfo::CoreConfiguration, coreConfiguration); QFETCH(QBluetoothUuid, deviceUuid); QBluetoothDeviceInfo deviceInfo(address, name, classOfDevice); deviceInfo.setDeviceUuid(deviceUuid); deviceInfo.setCoreConfigurations(coreConfiguration); QVERIFY(deviceInfo.isValid()); { QBluetoothDeviceInfo copyInfo = deviceInfo; QVERIFY(copyInfo.isValid()); QCOMPARE(copyInfo.address(), address); QCOMPARE(copyInfo.name(), name); QCOMPARE(copyInfo.serviceClasses(), serviceClasses); QCOMPARE(copyInfo.majorDeviceClass(), majorDeviceClass); QCOMPARE(copyInfo.minorDeviceClass(), minorDeviceClass); QCOMPARE(copyInfo.coreConfigurations(), coreConfiguration); QCOMPARE(copyInfo.deviceUuid(), deviceUuid); } { QBluetoothDeviceInfo copyInfo; QVERIFY(!copyInfo.isValid()); copyInfo = deviceInfo; QVERIFY(copyInfo.isValid()); QCOMPARE(copyInfo.address(), address); QCOMPARE(copyInfo.name(), name); QCOMPARE(copyInfo.serviceClasses(), serviceClasses); QCOMPARE(copyInfo.majorDeviceClass(), majorDeviceClass); QCOMPARE(copyInfo.minorDeviceClass(), minorDeviceClass); QCOMPARE(copyInfo.coreConfigurations(), coreConfiguration); QCOMPARE(copyInfo.deviceUuid(), deviceUuid); } { QBluetoothDeviceInfo copyInfo1; QBluetoothDeviceInfo copyInfo2; QVERIFY(!copyInfo1.isValid()); QVERIFY(!copyInfo2.isValid()); copyInfo1 = copyInfo2 = deviceInfo; QVERIFY(copyInfo1.isValid()); QVERIFY(copyInfo2.isValid()); QVERIFY(QBluetoothDeviceInfo() != copyInfo1); QCOMPARE(copyInfo1.address(), address); QCOMPARE(copyInfo2.address(), address); QCOMPARE(copyInfo1.name(), name); QCOMPARE(copyInfo2.name(), name); QCOMPARE(copyInfo1.serviceClasses(), serviceClasses); QCOMPARE(copyInfo2.serviceClasses(), serviceClasses); QCOMPARE(copyInfo1.majorDeviceClass(), majorDeviceClass); QCOMPARE(copyInfo2.majorDeviceClass(), majorDeviceClass); QCOMPARE(copyInfo1.minorDeviceClass(), minorDeviceClass); QCOMPARE(copyInfo2.minorDeviceClass(), minorDeviceClass); QCOMPARE(copyInfo1.coreConfigurations(), coreConfiguration); QCOMPARE(copyInfo2.coreConfigurations(), coreConfiguration); QCOMPARE(copyInfo1.deviceUuid(), deviceUuid); QCOMPARE(copyInfo2.deviceUuid(), deviceUuid); } { QBluetoothDeviceInfo testDeviceInfo; QVERIFY(testDeviceInfo == QBluetoothDeviceInfo()); } }
void tst_QBluetoothDeviceInfo::tst_construction() { { QBluetoothDeviceInfo deviceInfo; QVERIFY(!deviceInfo.isValid()); QVERIFY(deviceInfo.coreConfigurations() == QBluetoothDeviceInfo::UnknownCoreConfiguration); } { QFETCH(QBluetoothAddress, address); QFETCH(QString, name); QFETCH(quint32, classOfDevice); QFETCH(QBluetoothDeviceInfo::ServiceClasses, serviceClasses); QFETCH(QBluetoothDeviceInfo::MajorDeviceClass, majorDeviceClass); QFETCH(quint8, minorDeviceClass); QFETCH(QBluetoothDeviceInfo::CoreConfiguration, coreConfiguration); QFETCH(QBluetoothUuid, deviceUuid); QBluetoothDeviceInfo deviceInfo(address, name, classOfDevice); QVERIFY(deviceInfo.isValid()); QCOMPARE(deviceInfo.address(), address); QCOMPARE(deviceInfo.name(), name); QCOMPARE(deviceInfo.serviceClasses(), serviceClasses); QCOMPARE(deviceInfo.majorDeviceClass(), majorDeviceClass); QCOMPARE(deviceInfo.minorDeviceClass(), minorDeviceClass); QCOMPARE(deviceInfo.coreConfigurations(), QBluetoothDeviceInfo::UnknownCoreConfiguration); deviceInfo.setCoreConfigurations(coreConfiguration); QCOMPARE(deviceInfo.coreConfigurations(), coreConfiguration); deviceInfo.setDeviceUuid(deviceUuid); QCOMPARE(deviceInfo.deviceUuid(), deviceUuid); QBluetoothDeviceInfo copyInfo(deviceInfo); QVERIFY(copyInfo.isValid()); QCOMPARE(copyInfo.address(), address); QCOMPARE(copyInfo.name(), name); QCOMPARE(copyInfo.serviceClasses(), serviceClasses); QCOMPARE(copyInfo.majorDeviceClass(), majorDeviceClass); QCOMPARE(copyInfo.minorDeviceClass(), minorDeviceClass); QCOMPARE(copyInfo.coreConfigurations(), coreConfiguration); QCOMPARE(copyInfo.deviceUuid(), deviceUuid); } { // Test construction from the device unique UUID, without an address. QFETCH(QString, name); QFETCH(quint32, classOfDevice); QFETCH(QBluetoothDeviceInfo::ServiceClasses, serviceClasses); QFETCH(QBluetoothDeviceInfo::MajorDeviceClass, majorDeviceClass); QFETCH(quint8, minorDeviceClass); QFETCH(QBluetoothDeviceInfo::CoreConfiguration, coreConfiguration); QFETCH(QBluetoothUuid, deviceUuid); QBluetoothDeviceInfo deviceInfo(deviceUuid, name, classOfDevice); QVERIFY(deviceInfo.isValid()); QCOMPARE(deviceInfo.name(), name); QCOMPARE(deviceInfo.serviceClasses(), serviceClasses); QCOMPARE(deviceInfo.majorDeviceClass(), majorDeviceClass); QCOMPARE(deviceInfo.minorDeviceClass(), minorDeviceClass); QCOMPARE(deviceInfo.coreConfigurations(), QBluetoothDeviceInfo::UnknownCoreConfiguration); deviceInfo.setCoreConfigurations(coreConfiguration); QCOMPARE(deviceInfo.coreConfigurations(), coreConfiguration); QBluetoothDeviceInfo copyInfo(deviceInfo); QVERIFY(copyInfo.isValid()); QCOMPARE(copyInfo.name(), name); QCOMPARE(copyInfo.serviceClasses(), serviceClasses); QCOMPARE(copyInfo.majorDeviceClass(), majorDeviceClass); QCOMPARE(copyInfo.minorDeviceClass(), minorDeviceClass); QCOMPARE(copyInfo.coreConfigurations(), coreConfiguration); QCOMPARE(copyInfo.deviceUuid(), deviceUuid); } }