void tst_QBluetoothLocalDevice::tst_pairDevice() { QFETCH(QBluetoothAddress, deviceAddress); QFETCH(QBluetoothLocalDevice::Pairing, pairingExpected); QBluetoothLocalDevice localDevice; //powerOn if not already localDevice.powerOn(); QSignalSpy pairingSpy(&localDevice, SIGNAL(pairingFinished(const QBluetoothAddress &,QBluetoothLocalDevice::Pairing)) ); // there should be no signals yet QVERIFY(pairingSpy.isEmpty()); localDevice.requestPairing(deviceAddress, pairingExpected); // async, wait for it WAIT_FOR_CONDITION(pairingSpy.count(),1); QVERIFY(pairingSpy.count() > 0); // test the actual signal values. QList<QVariant> arguments = pairingSpy.takeFirst(); QBluetoothAddress address = qvariant_cast<QBluetoothAddress>(arguments.at(0)); QBluetoothLocalDevice::Pairing pairingResult = qvariant_cast<QBluetoothLocalDevice::Pairing>(arguments.at(1)); QCOMPARE(deviceAddress, address); QCOMPARE(pairingExpected, pairingResult); QCOMPARE(pairingExpected, localDevice.pairingStatus(deviceAddress)); }
void tst_QBluetoothTransferRequest::initTestCase() { // start Bluetooth if not started QBluetoothLocalDevice *device = new QBluetoothLocalDevice(); device->powerOn(); delete device; }
MdBluetoothCom::MdBluetoothCom(QObject *parent, QString mdServiceName) : MdAbstractCom(parent), sDiscoveryAgent (0), socket (0), sdNeeded(Yes), mdServiceName(mdServiceName) { QBluetoothLocalDevice localDevice; // Check if Bluetooth is available on this device if (localDevice.isValid()) { // Turn Bluetooth on localDevice.powerOn(); // Read local device name localDeviceName = localDevice.name(); qDebug() << "local bluetooth device name: " << localDeviceName; // Make it visible to others //localDevice.setHostMode(QBluetoothLocalDevice::HostDiscoverable); // Get connected devices remotes = localDevice.connectedDevices(); startServiceDiscovery(); } else { qDebug() << "bluetooth not available!"; emit showStatusMessage( "Bluetooth: not available!" ); } }
void tst_QBluetoothLocalDevice::tst_pairDevice() { QFETCH(QBluetoothAddress, deviceAddress); QFETCH(QBluetoothLocalDevice::Pairing, pairingExpected); if (!QBluetoothLocalDevice::allDevices().count()) QSKIP("Skipping test due to missing Bluetooth device"); qDebug() << "tst_pairDevice(): address=" << deviceAddress.toString() << "pairingModeExpected=" << static_cast<int>(pairingExpected); QBluetoothLocalDevice localDevice; //powerOn if not already localDevice.powerOn(); QSignalSpy pairingSpy(&localDevice, SIGNAL(pairingFinished(const QBluetoothAddress &,QBluetoothLocalDevice::Pairing)) ); // there should be no signals yet QVERIFY(pairingSpy.isValid()); QVERIFY(pairingSpy.isEmpty()); QVERIFY(localDevice.isValid()); localDevice.requestPairing(deviceAddress, pairingExpected); // async, wait for it QTRY_VERIFY(pairingSpy.count() > 0); // test the actual signal values. QList<QVariant> arguments = pairingSpy.takeFirst(); QBluetoothAddress address = qvariant_cast<QBluetoothAddress>(arguments.at(0)); QBluetoothLocalDevice::Pairing pairingResult = qvariant_cast<QBluetoothLocalDevice::Pairing>(arguments.at(1)); QCOMPARE(deviceAddress, address); QCOMPARE(pairingExpected, pairingResult); QCOMPARE(pairingExpected, localDevice.pairingStatus(deviceAddress)); }
void tst_QBluetoothLocalDevice::tst_hostModes() { QFETCH(QBluetoothLocalDevice::HostMode, hostModeExpected); QBluetoothLocalDevice localDevice; QSignalSpy hostModeSpy(&localDevice, SIGNAL(hostModeStateChanged(QBluetoothLocalDevice::HostMode))); // there should be no changes yet QVERIFY(hostModeSpy.isEmpty()); QTest::qWait(1000); localDevice.setHostMode(hostModeExpected); // wait for the device to switch bluetooth mode. QTest::qWait(1000); if (hostModeExpected != localDevice.hostMode()) { WAIT_FOR_CONDITION(hostModeSpy.count(),1); QVERIFY(hostModeSpy.count() > 0); } // test the actual signal values. QList<QVariant> arguments = hostModeSpy.takeFirst(); QBluetoothLocalDevice::HostMode hostMode = qvariant_cast<QBluetoothLocalDevice::HostMode>(arguments.at(0)); QCOMPARE(hostModeExpected, hostMode); // test actual QCOMPARE(hostModeExpected, localDevice.hostMode()); }
void tst_QBluetoothLocalDevice::tst_powerOff() { if (!QBluetoothLocalDevice::allDevices().count()) QSKIP("Skipping test due to missing Bluetooth device"); { QBluetoothLocalDevice *device = new QBluetoothLocalDevice(); device->powerOn(); delete device; // wait for the device to switch bluetooth mode. QTest::qWait(1000); } QBluetoothLocalDevice localDevice; QSignalSpy hostModeSpy(&localDevice, SIGNAL(hostModeStateChanged(QBluetoothLocalDevice::HostMode))); // there should be no changes yet QVERIFY(hostModeSpy.isValid()); QVERIFY(hostModeSpy.isEmpty()); localDevice.setHostMode(QBluetoothLocalDevice::HostPoweredOff); // async, wait for it QTRY_VERIFY(hostModeSpy.count() > 0); // we should not be powered off QVERIFY(localDevice.hostMode() == QBluetoothLocalDevice::HostPoweredOff); }
ServiceDiscoveryDialog::ServiceDiscoveryDialog(const QString &name, const QBluetoothAddress &address, QWidget *parent) : QDialog(parent), ui(new Ui_ServiceDiscovery) { ui->setupUi(this); //Using default Bluetooth adapter QBluetoothLocalDevice localDevice; QBluetoothAddress adapterAddress = localDevice.address(); /* * In case of multiple Bluetooth adapters it is possible to * set which adapter will be used by providing MAC Address. * Example code: * * QBluetoothAddress adapterAddress("XX:XX:XX:XX:XX:XX"); * discoveryAgent = new QBluetoothServiceDiscoveryAgent(adapterAddress); */ discoveryAgent = new QBluetoothServiceDiscoveryAgent(adapterAddress); discoveryAgent->setRemoteAddress(address); setWindowTitle(name); connect(discoveryAgent, SIGNAL(serviceDiscovered(QBluetoothServiceInfo)), this, SLOT(addService(QBluetoothServiceInfo))); connect(discoveryAgent, SIGNAL(finished()), ui->status, SLOT(hide())); discoveryAgent->start(); }
void tst_QBluetoothLocalDevice::tst_pairingStatus() { QFETCH(QBluetoothAddress, deviceAddress); QFETCH(QBluetoothLocalDevice::Pairing, pairingExpected); QBluetoothLocalDevice localDevice; QCOMPARE(pairingExpected, localDevice.pairingStatus(deviceAddress)); }
void tst_QBluetoothLocalDevice::tst_name() { if (!QBluetoothLocalDevice::allDevices().count()) QSKIP("Skipping test due to missing Bluetooth device"); QBluetoothLocalDevice localDevice; QVERIFY(!localDevice.name().isEmpty()); }
void Handover::sendBluetoothService() { QBluetoothLocalDevice localDevice; const QString data = localDevice.address().toString() + QLatin1Char(' ') + QString::number(m_localServerPort); m_remote->write(data.toUtf8()); }
void tst_QBluetoothDeviceInfo::initTestCase() { qRegisterMetaType<QBluetoothDeviceInfo::ServiceClasses>("QBluetoothDeviceInfo::ServiceClasses"); qRegisterMetaType<QBluetoothDeviceInfo::MajorDeviceClass>("QBluetoothDeviceInfo::MajorDeviceClass"); // start Bluetooth if not started QBluetoothLocalDevice *device = new QBluetoothLocalDevice(); device->powerOn(); delete device; }
void tst_QBluetoothLocalDevice::tst_construction() { QBluetoothLocalDevice localDevice; QVERIFY(localDevice.isValid()); QBluetoothLocalDevice anotherDevice = new QBluetoothLocalDevice(QBluetoothAddress(000000000000)); QVERIFY(anotherDevice.isValid()); QVERIFY(anotherDevice.address().toUInt64() != 0); }
void tst_QBluetoothServiceInfo::initTestCase() { qRegisterMetaType<QBluetoothUuid::ProtocolUuid>("QBluetoothUuid::ProtocolUuid"); qRegisterMetaType<QUuid>("QUuid"); qRegisterMetaType<QBluetoothServiceInfo::Protocol>("QBluetoothServiceInfo::Protocol"); // start Bluetooth if not started QBluetoothLocalDevice *device = new QBluetoothLocalDevice(); device->powerOn(); delete device; }
tst_QBluetoothLocalDevice::tst_QBluetoothLocalDevice() { // start with host powered off QBluetoothLocalDevice *device = new QBluetoothLocalDevice(); device->setHostMode(QBluetoothLocalDevice::HostPoweredOff); delete device; // wait for the device to switch bluetooth mode. QTest::qWait(1000); }
void tst_QBluetoothLocalDevice::tst_pairingStatus() { QFETCH(QBluetoothAddress, deviceAddress); QFETCH(QBluetoothLocalDevice::Pairing, pairingExpected); qDebug() << "tst_pairingStatus(): address=" << deviceAddress.toString() << "pairingModeExpected=" << static_cast<int>(pairingExpected); QBluetoothLocalDevice localDevice; QCOMPARE(pairingExpected, localDevice.pairingStatus(deviceAddress)); }
void tst_QBluetoothLocalDevice::tst_isValid() { QBluetoothLocalDevice localDevice; QVERIFY(localDevice.isValid()); /* //TODO the above should really be the following once QBluetoothLocalDevice has been fixed if (!QBluetoothLocalDevice::allDevices().count()) QVERIFY(!localDevice.isValid()); else QVERIFY(localDevice.isValid()); */ }
void tst_QBluetoothLocalDevice::tst_construction() { if (!QBluetoothLocalDevice::allDevices().count()) QSKIP("Skipping test due to missing Bluetooth device"); QBluetoothLocalDevice localDevice; QVERIFY(localDevice.isValid()); QBluetoothLocalDevice anotherDevice(QBluetoothAddress(000000000000)); QVERIFY(anotherDevice.isValid()); QVERIFY(anotherDevice.address().toUInt64() != 0); }
/*! \internal */ void QBluetoothHeadsetService::newConnection() { qLog(Bluetooth) << "QBluetoothHeadsetService::New client has connected."; // New client has connected QBluetoothRfcommSocket *socket = static_cast<QBluetoothRfcommSocket *>(m_data->m_server->nextPendingConnection()); qLog(Bluetooth) << "Socket is:" << socket->socketDescriptor(); if (m_data->m_client && (m_data->m_connectInProgress || (m_data->m_client->state() == QBluetoothRfcommSocket::ConnectedState))) { qLog(Bluetooth) << "Already connected, closing client socket."; socket->close(); delete socket; return; } hookupSocket(socket); m_data->m_interface->setValue("IsConnected", true); qLog(Bluetooth) << "Starting Bluetooth session for Headset"; if (!m_data->m_session) { qLog(Bluetooth) << "Lazy initializing the QCommDeviceSession object"; QBluetoothLocalDevice local; m_data->m_session = new QCommDeviceSession(local.deviceName().toLatin1()); QObject::connect(m_data->m_session, SIGNAL(sessionOpen()), this, SLOT(sessionOpen())); QObject::connect(m_data->m_session, SIGNAL(sessionFailed()), this, SLOT(sessionFailed())); } m_data->m_session->startSession(); qLog(Bluetooth) << "The socket remoteAddress is:" << socket->remoteAddress().toString(); m_data->m_interface->setValue("RemotePeer", QVariant::fromValue(socket->remoteAddress())); emit newConnection(socket->remoteAddress()); qLog(Bluetooth) << "The socket has bytesAvailable:" << socket->bytesAvailable(); if (socket->bytesAvailable()) { readyRead(); } }
void Handover::readBluetoothService() { QByteArray rawData = m_client->readAll(); QString data = QString::fromUtf8(rawData.constData(), rawData.size()); QStringList split = data.split(QLatin1Char(' ')); QBluetoothAddress address = QBluetoothAddress(split.at(0)); quint16 port = split.at(1).toUInt(); QBluetoothLocalDevice localDevice; QBluetoothAddress localAddress = localDevice.address(); if (localAddress < address) { m_address = address; m_serverPort = port; emit bluetoothServiceChanged(); } }
void tst_QBluetoothLocalDevice::tst_powerOn() { { QBluetoothLocalDevice localDevice; QSignalSpy hostModeSpy(&localDevice, SIGNAL(hostModeStateChanged(QBluetoothLocalDevice::HostMode))); // there should be no changes yet QVERIFY(hostModeSpy.isEmpty()); localDevice.powerOn(); // async, wait for it WAIT_FOR_CONDITION(hostModeSpy.count(),1); QVERIFY(hostModeSpy.count() > 0); QBluetoothLocalDevice::HostMode hostMode= localDevice.hostMode(); // we should not be powered off QVERIFY(hostMode == QBluetoothLocalDevice::HostConnectable || hostMode == QBluetoothLocalDevice::HostDiscoverable); } }
void tst_QBluetoothLocalDevice::tst_powerOn() { QBluetoothLocalDevice localDevice; QSignalSpy hostModeSpy(&localDevice, SIGNAL(hostModeStateChanged(QBluetoothLocalDevice::HostMode))); // there should be no changes yet QVERIFY(hostModeSpy.isValid()); QVERIFY(hostModeSpy.isEmpty()); if (!QBluetoothLocalDevice::allDevices().count()) QSKIP("Skipping test due to missing Bluetooth device"); localDevice.powerOn(); // async, wait for it QTRY_VERIFY(hostModeSpy.count() > 0); QBluetoothLocalDevice::HostMode hostMode= localDevice.hostMode(); // we should not be powered off QVERIFY(hostMode == QBluetoothLocalDevice::HostConnectable || hostMode == QBluetoothLocalDevice::HostDiscoverable); }
/*! \internal */ void QBluetoothSerialPortService::initiateModemEmulator() { while ( !d->pendingConnections.isEmpty() ) { QBluetoothRfcommSerialPort* port = d->pendingConnections.takeFirst(); // Send a message to the modem emulator to add the serial port. QtopiaServiceRequest req( "ModemEmulator", "addSerialPort(QString)" ); req << port->device(); req.send(); d->runningConnections.append( port ); if (d->runningConnections.size() == 1) { if (!d->m_session) { QBluetoothLocalDevice local; d->m_session = new QCommDeviceSession(local.deviceName().toLatin1(), this); } d->m_session->startSession(); } } }
void MyClass::localDevice() { //! [turningon] QBluetoothLocalDevice localDevice; QString localDeviceName; // Check if Bluetooth is available on this device if (localDevice.isValid()) { // Turn Bluetooth on localDevice.powerOn(); // Read local device name localDeviceName = localDevice.name(); // Make it visible to others localDevice.setHostMode(QBluetoothLocalDevice::HostDiscoverable); // Get connected devices QList<QBluetoothAddress> remotes; remotes = localDevice.connectedDevices(); } //! [turningon] }
void tst_QBluetoothLocalDevice::tst_powerOff() { { QBluetoothLocalDevice *device = new QBluetoothLocalDevice(); device->powerOn(); delete device; // wait for the device to switch bluetooth mode. QTest::qWait(1000); } QBluetoothLocalDevice localDevice; QSignalSpy hostModeSpy(&localDevice, SIGNAL(hostModeStateChanged(QBluetoothLocalDevice::HostMode))); // there should be no changes yet QVERIFY(hostModeSpy.isEmpty()); localDevice.setHostMode(QBluetoothLocalDevice::HostPoweredOff); // async, wait for it WAIT_FOR_CONDITION(hostModeSpy.count(),1); QVERIFY(hostModeSpy.count() > 0); // we should not be powered off QVERIFY(localDevice.hostMode() == QBluetoothLocalDevice::HostPoweredOff); }
/*! This method is the concrete implementation of the QBluetoothAudioGateway interface method of the same name. It is called from the QBluetoothHandsfreeAudioGatewayServer class, which acts as a forwarding agent. The address and channel to connect to are given by \a addr and \a rfcomm_channel respectively. \sa QBluetoothHeadsetAudioGatewayServer */ void QBluetoothHeadsetService::connect(const QBluetoothAddress &addr, int rfcomm_channel) { // If the service is stop, deny connect requests if (!m_data->m_server->isListening()) { emit connectResult(false, tr("Service not available.")); return; } // If we're still connecting or disconnecting, return if (m_data->m_connectInProgress || m_data->m_disconnectInProgress) { emit connectResult(false, tr("Connection in progress.")); return; } // If we're connected, return, caller should call disconnect first if (m_data->m_client && (m_data->m_client->state() == QBluetoothRfcommSocket::ConnectedState)) { emit connectResult(false, tr("Already connected.")); return; } m_data->m_connectInProgress = true; m_data->m_numRings = 0; m_data->m_addr = addr; m_data->m_channel = rfcomm_channel; qLog(Bluetooth) << "Starting session for headset."; if (!m_data->m_session) { qLog(Bluetooth) << "Lazy initializing the QCommDeviceSession object"; QBluetoothLocalDevice local; m_data->m_session = new QCommDeviceSession(local.deviceName().toLatin1()); QObject::connect(m_data->m_session, SIGNAL(sessionOpen()), this, SLOT(sessionOpen())); QObject::connect(m_data->m_session, SIGNAL(sessionFailed()), this, SLOT(sessionFailed())); } m_data->m_session->startSession(); }
void tst_QBluetoothDeviceDiscoveryAgent::initTestCase() { qRegisterMetaType<QBluetoothDeviceInfo>("QBluetoothDeviceInfo"); qRegisterMetaType<QBluetoothDeviceDiscoveryAgent::InquiryType>("QBluetoothDeviceDiscoveryAgent::InquiryType"); // turn on BT in case it is not on QBluetoothLocalDevice *device = new QBluetoothLocalDevice(); if (device->hostMode() == QBluetoothLocalDevice::HostPoweredOff) { QSignalSpy hostModeSpy(device, SIGNAL(hostModeStateChanged(QBluetoothLocalDevice::HostMode))); QVERIFY(hostModeSpy.isEmpty()); device->powerOn(); int connectTime = 5000; // ms while (hostModeSpy.count() < 1 && connectTime > 0) { QTest::qWait(500); connectTime -= 500; } QVERIFY(hostModeSpy.count() > 0); } QBluetoothLocalDevice::HostMode hostMode= device->hostMode(); QVERIFY(hostMode == QBluetoothLocalDevice::HostConnectable || hostMode == QBluetoothLocalDevice::HostDiscoverable || hostMode == QBluetoothLocalDevice::HostDiscoverableLimitedInquiry); delete device; }
void tst_QBluetoothLocalDevice::tst_address() { QBluetoothLocalDevice localDevice; QVERIFY(!localDevice.address().toString().isEmpty()); }
void tst_QBluetoothLocalDevice::tst_name() { QBluetoothLocalDevice localDevice; QVERIFY(!localDevice.name().isEmpty()); }
QBluetoothAddress QBluetoothSocketPrivate::localAddress() const { QBluetoothLocalDevice ld; return ld.address(); }
void tst_QBluetoothLocalDevice::tst_isValid() { QBluetoothLocalDevice localDevice; QVERIFY(localDevice.isValid()); }