blob: cddffe6636196e9ccd3d6a3d339405f74039be4f (
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
|
# Copyright (C) 2022 The Qt Company Ltd.
# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
from PySide6.QtCore import QObject, Property, Signal
from PySide6.QtBluetooth import QLowEnergyService
class ServiceInfo(QObject):
service_changed = Signal()
def __init__(self, service: QLowEnergyService) -> None:
super().__init__()
self._service = service
self.service.setParent(self)
@Property(str, notify=service_changed)
def service_name(self):
if not self.service:
return ""
return self.service.service_name()
@Property(str, notify=service_changed)
def service_type(self):
if not self.service:
return ""
result = ""
if (self.service.type() & QLowEnergyService.PrimaryService):
result += "primary"
else:
result += "secondary"
if (self.service.type() & QLowEnergyService.IncludedService):
result += " included"
result = '<' + result + '>'
return result
@Property(str, notify=service_changed)
def service_uuid(self):
if not self.service:
return ""
uuid = self.service.service_uuid()
result16, success16 = uuid.toUInt16()
if success16:
return f"0x{result16:x}"
result32, sucesss32 = uuid.toUInt32()
if sucesss32:
return f"0x{result32:x}"
return uuid.toString().replace('{', '').replace('}', '')
@property
def service(self):
return self._service
@service.setter
def service(self, service):
self._service = service
|