Skip to content

Commit df40a24

Browse files
authored
Merge pull request #125 from dhalbert/adv-entry-handling
Handle entry properly for subclasses of Advertisement
2 parents 2f79150 + 3151af6 commit df40a24

File tree

2 files changed

+17
-6
lines changed

2 files changed

+17
-6
lines changed

adafruit_ble/advertising/__init__.py

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -238,19 +238,20 @@ class Advertisement:
238238

239239
def __init__(self, *, entry=None):
240240
"""Create an empty advertising packet or one from a ScanEntry."""
241-
self.data_dict = {}
242-
self.address = None
243-
self._rssi = None
244-
self.connectable = False
245-
self.mutable = True
246-
self.scan_response = False
247241
if entry:
248242
self.data_dict = decode_data(entry.advertisement_bytes)
249243
self.address = entry.address
250244
self._rssi = entry.rssi # pylint: disable=protected-access
251245
self.connectable = entry.connectable
252246
self.scan_response = entry.scan_response
253247
self.mutable = False
248+
else:
249+
self.data_dict = {}
250+
self.address = None
251+
self._rssi = None
252+
self.connectable = False
253+
self.mutable = True
254+
self.scan_response = False
254255

255256
@property
256257
def rssi(self):

adafruit_ble/advertising/standard.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -161,6 +161,11 @@ class ProvideServicesAdvertisement(Advertisement):
161161

162162
def __init__(self, *services, entry=None):
163163
super().__init__(entry=entry)
164+
if entry:
165+
if services:
166+
raise ValueError("Supply services or entry, not both")
167+
# Attributes are supplied by entry.
168+
return
164169
if services:
165170
self.services.extend(services)
166171
self.connectable = True
@@ -186,6 +191,11 @@ class SolicitServicesAdvertisement(Advertisement):
186191

187192
def __init__(self, *services, entry=None):
188193
super().__init__(entry=entry)
194+
if entry:
195+
if services:
196+
raise ValueError("Supply services or entry, not both")
197+
# Attributes are supplied by entry.
198+
return
189199
self.solicited_services.extend(services)
190200
self.connectable = True
191201
self.flags.general_discovery = True

0 commit comments

Comments
 (0)