blob: 891ffc694fa7dfef994559bd92b3e66899ddb677 (
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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
|
// Copyright (C) 2017 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only
/*!
\example heartrate-game
\title Bluetooth Low Energy Heart Rate Game
\examplecategory {Connectivity}
\meta tags {bluetooth, ble, quick}
\brief A game demonstrating the interaction with a Bluetooth Low Energy Heart Rate
device/service.
The Bluetooth Low Energy Heart Rate Game shows how to develop a Bluetooth Low Energy
application using the \l{QtBluetooth}{Qt Bluetooth API}. The application covers the scanning for
Bluetooth Low Energy devices, connecting to a Heart Rate service on the device, writing
characteristics and descriptors, and receiving updates from the device once the heart rate
has changed.
\image heartgame-start.webp
The example introduces the following Qt classes:
\list
\li \l QLowEnergyController
\li \l QLowEnergyService
\li \l QLowEnergyCharacteristic
\li \l QLowEnergyDescriptor
\endlist
A Bluetooth Low Energy device with a Heart Rate
service is required for this application to work. An alternative might be a programmable
Bluetooth Low Energy device which might simulate the service. You can also use the
\l {heartrate-server} {Heart Rate server} example for that purpose.
If no such device is available, a demo mode is available which creates and displays
random values. This demo mode is enabled by passing \c{--simulator} on the
command line.
The goal of the game is to increase the measured heart rate as much as possible.
A detailed explanation of the APIs used in this example is given in the
\l {Using Qt Bluetooth Low Energy API} section of the \l{Qt Bluetooth} module
documentation.
The \l {lowenergyscanner}{Bluetooth Low Energy Scanner} example might be more suitable
if a heart rate device is not available. The scanner example works with any type of Bluetooth
Low Energy peripheral device.
\include examples-run.qdocinc
\section1 Checking Bluetooth Permissions
Before the application can start using Bluetooth, we have to check that
appropriate permissions were granted:
\snippet heartrate-game/devicefinder.cpp permissions
\section1 Visual Tour
The application searches for all Bluetooth Low Energy peripheral devices in the vicinity.
It is assumed that the remote devices advertise their presence. The found devices are
presented in a list. Note that all found Bluetooth Low Energy devices are listed even
if they do not offer a Heart Rate service.
\image heartgame-search.webp
After the user has selected a target device, the example connects to its Heart Rate service
if one is available. It automatically enables notification updates for the Heart Rate value
and presents the current value on the screen.
\image heartgame-running.webp
Once the monitoring process is finished, a small summary of the received
values is presented.
\image heartgame-result.webp
*/
|