Bluetooth Low Energy Heart Rate Game
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 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.
The example introduces the following Qt classes:
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 Heart Rate server example for that purpose. If no such device can be found, the example uses a demo mode which creates and displays random values.
The goal of the game is to increase the measured heart rate as much as possible.
The 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.
Running the Example
To run the example from Qt Creator, open the Welcome mode and select the example from Examples. For more information, visit Building and Running an Example.
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.
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.
Once the monitoring process is canceled, a small graph presents a summary of the received values.
Files:
- heartrate-game/bluetoothbaseclass.cpp
- heartrate-game/bluetoothbaseclass.h
- heartrate-game/connectionhandler.cpp
- heartrate-game/connectionhandler.h
- heartrate-game/devicefinder.cpp
- heartrate-game/devicefinder.h
- heartrate-game/devicehandler.cpp
- heartrate-game/devicehandler.h
- heartrate-game/deviceinfo.cpp
- heartrate-game/deviceinfo.h
- heartrate-game/heartrate-game.pro
- heartrate-game/heartrate-global.h
- heartrate-game/images.qrc
- heartrate-game/main.cpp
- heartrate-game/qml.qrc
- heartrate-game/qml/App.qml
- heartrate-game/qml/BluetoothAlarmDialog.qml
- heartrate-game/qml/BottomLine.qml
- heartrate-game/qml/Connect.qml
- heartrate-game/qml/GameButton.qml
- heartrate-game/qml/GamePage.qml
- heartrate-game/qml/GameSettings.qml
- heartrate-game/qml/Measure.qml
- heartrate-game/qml/SplashScreen.qml
- heartrate-game/qml/Stats.qml
- heartrate-game/qml/StatsLabel.qml
- heartrate-game/qml/TitleBar.qml
- heartrate-game/qml/main.qml
- heartrate-game/qml/qmldir
Images:
© 2021 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.