diff options
| author | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2022-08-11 15:20:25 +0200 |
|---|---|---|
| committer | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2022-08-26 14:24:17 +0200 |
| commit | ba5fdf167b79444f210884aa01f484b5283ec67a (patch) | |
| tree | 1b0196aaad9ff3eded3f5ed71cc5baee14cc9657 /examples/bluetooth/heartrate_game/connectionhandler.py | |
| parent | 6c8034b8c195818a8dbd31214b158a82a87c34ae (diff) | |
Add the Bluetooth heart rate examples
Task-number: PYSIDE-841
Pick-to: 6.3
Change-Id: If24127be2ab78b3542777fdf691227d51e628373
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
Diffstat (limited to 'examples/bluetooth/heartrate_game/connectionhandler.py')
| -rw-r--r-- | examples/bluetooth/heartrate_game/connectionhandler.py | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/examples/bluetooth/heartrate_game/connectionhandler.py b/examples/bluetooth/heartrate_game/connectionhandler.py new file mode 100644 index 000000000..5bd7bfbb2 --- /dev/null +++ b/examples/bluetooth/heartrate_game/connectionhandler.py @@ -0,0 +1,51 @@ +# Copyright (C) 2022 The Qt Company Ltd. +# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause + +import sys + +from PySide6.QtBluetooth import QBluetoothLocalDevice +from PySide6.QtQml import QmlElement +from PySide6.QtCore import QObject, Property, Signal, Slot + +from heartrate_global import simulator + +# To be used on the @QmlElement decorator +# (QML_IMPORT_MINOR_VERSION is optional) +QML_IMPORT_NAME = "Shared" +QML_IMPORT_MAJOR_VERSION = 1 + + +@QmlElement +class ConnectionHandler(QObject): + + deviceChanged = Signal() + + def __init__(self, parent=None): + super().__init__(parent) + self.m_localDevice = QBluetoothLocalDevice() + self.m_localDevice.hostModeStateChanged.connect(self.hostModeChanged) + + @Property(bool, notify=deviceChanged) + def alive(self): + if sys.platform == "darwin": + return True + if simulator: + return True + return (self.m_localDevice.isValid() + and self.m_localDevice.hostMode() != QBluetoothLocalDevice.HostPoweredOff) + + @Property(bool, constant=True) + def requiresAddressType(self): + return sys.platform == "linux" # QT_CONFIG(bluez)? + + @Property(str, notify=deviceChanged) + def name(self): + return self.m_localDevice.name() + + @Property(str, notify=deviceChanged) + def address(self): + return self.m_localDevice.address().toString() + + @Slot(QBluetoothLocalDevice.HostMode) + def hostModeChanged(self, mode): + self.deviceChanged.emit() |
