blob: 6a654195c286adc4ed947ff9a418d5e8e87cc779 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
|
#include <QtConnectivity/QBluetoothDeviceInfo>
#include <QtConnectivity/QBluetoothAddress>
#include "metawatchscanner.h"
QTM_USE_NAMESPACE
using namespace sowatch;
MetaWatchScanner::MetaWatchScanner(QObject *parent) :
WatchScanner(parent),
_agent(new QBluetoothServiceDiscoveryAgent(this))
{
_agent->setUuidFilter(QBluetoothUuid::SerialPort);
connect(_agent, SIGNAL(finished()), this, SIGNAL(finished()));
connect(_agent, SIGNAL(serviceDiscovered(QBluetoothServiceInfo)),
this, SLOT(handleDiscoveredService(QBluetoothServiceInfo)));
}
void MetaWatchScanner::start()
{
if (_agent->isActive()) {
_agent->stop();
}
_agent->start();
qDebug() << "started metawatch bluetooth scan";
emit started();
}
void MetaWatchScanner::handleDiscoveredService(const QBluetoothServiceInfo &info)
{
const QBluetoothDeviceInfo dev = info.device();
QString deviceName = dev.name();
if (deviceName.contains("MetaWatch", Qt::CaseInsensitive)) {
QVariantMap foundInfo;
foundInfo["address"] = dev.address().toString();
foundInfo["name"] = deviceName;
qDebug() << "metawatch bluetooth scan found:" << deviceName;
if (deviceName.contains("Digital", Qt::CaseInsensitive) ||
deviceName.contains("SW12", Qt::CaseInsensitive)) {
foundInfo["driver"] = QString("metawatch-digital");
foundInfo["next-watchlet-button"] = QString("A");
emit watchFound(foundInfo);
} else if (deviceName.contains("Analog", Qt::CaseInsensitive)) {
foundInfo["driver"] = QString("metawatch-analog");
foundInfo["next-watchlet-button"] = QString("A");
emit watchFound(foundInfo);
} else {
qWarning() << "Unknown MetaWatch device found:" << deviceName;
}
}
}
|