fixed possible dangling weakrefs on start-up
This commit is contained in:
parent
3fe9caf0e6
commit
116ba72f37
|
@ -74,7 +74,7 @@ class ReceiverListener(_listener.EventsListener):
|
||||||
self.receiver.enable_notifications(False)
|
self.receiver.enable_notifications(False)
|
||||||
self.receiver.close()
|
self.receiver.close()
|
||||||
self.receiver = None
|
self.receiver = None
|
||||||
self._status_changed(None, alert=_status.ALERT.LOW)
|
self._status_changed(None, _status.ALERT.LOW)
|
||||||
|
|
||||||
def tick(self, timestamp):
|
def tick(self, timestamp):
|
||||||
if _log.isEnabledFor(_DEBUG):
|
if _log.isEnabledFor(_DEBUG):
|
||||||
|
@ -137,7 +137,7 @@ class ReceiverListener(_listener.EventsListener):
|
||||||
_log.warn("received event %s for invalid device %d", event, event.devnumber)
|
_log.warn("received event %s for invalid device %d", event, event.devnumber)
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return '<ReceiverListener(%s,%d)>' % (self.receiver.path, self.receiver.status)
|
return '<ReceiverListener(%s,%s)>' % (self.receiver.path, self.receiver.handle)
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def open(self, status_changed_callback=None):
|
def open(self, status_changed_callback=None):
|
||||||
|
|
|
@ -87,7 +87,7 @@ def _print_receiver(receiver, short=True):
|
||||||
else:
|
else:
|
||||||
print (" All notifications disabled.")
|
print (" All notifications disabled.")
|
||||||
|
|
||||||
print (" Reported %d paired device(s)." % len(receiver))
|
print (" Reported %d paired device(s)." % receiver.count())
|
||||||
activity = receiver.request(0x83B3)
|
activity = receiver.request(0x83B3)
|
||||||
if activity:
|
if activity:
|
||||||
activity = [(d, ord(activity[d - 1:d])) for d in range(1, receiver.max_devices)]
|
activity = [(d, ord(activity[d - 1:d])) for d in range(1, receiver.max_devices)]
|
||||||
|
|
|
@ -61,7 +61,7 @@ def _icon_with_battery(s):
|
||||||
return _PIXMAPS[name]
|
return _PIXMAPS[name]
|
||||||
|
|
||||||
def update(icon, receiver, device=None):
|
def update(icon, receiver, device=None):
|
||||||
# print ("icon update", receiver, receiver.status, len(receiver._devices), device)
|
# print ("icon update", receiver, receiver.status, len(receiver), device)
|
||||||
battery_status = None
|
battery_status = None
|
||||||
|
|
||||||
if device:
|
if device:
|
||||||
|
|
|
@ -16,7 +16,7 @@ def print_receiver(receiver):
|
||||||
else:
|
else:
|
||||||
print (" All notifications disabled.")
|
print (" All notifications disabled.")
|
||||||
|
|
||||||
print (" Reported %d paired device(s)." % len(receiver))
|
print (" Reported %d paired device(s)." % receiver.count())
|
||||||
activity = receiver.request(0x83B3)
|
activity = receiver.request(0x83B3)
|
||||||
if activity:
|
if activity:
|
||||||
activity = [(d, ord(activity[d - 1:d])) for d in range(1, receiver.max_devices)]
|
activity = [(d, ord(activity[d - 1:d])) for d in range(1, receiver.max_devices)]
|
||||||
|
|
|
@ -236,6 +236,10 @@ class Receiver(object):
|
||||||
return True
|
return True
|
||||||
_log.warn("failed to %s the receiver lock", 'close' if lock_closed else 'open')
|
_log.warn("failed to %s the receiver lock", 'close' if lock_closed else 'open')
|
||||||
|
|
||||||
|
def count(self):
|
||||||
|
count = self.request(0x8102)
|
||||||
|
return 0 if count is None else ord(count[1:2])
|
||||||
|
|
||||||
def request(self, request_id, *params):
|
def request(self, request_id, *params):
|
||||||
if self.handle:
|
if self.handle:
|
||||||
return _base.request(self.handle, 0xFF, request_id, *params)
|
return _base.request(self.handle, 0xFF, request_id, *params)
|
||||||
|
@ -278,8 +282,7 @@ class Receiver(object):
|
||||||
raise IndexError(key)
|
raise IndexError(key)
|
||||||
|
|
||||||
def __len__(self):
|
def __len__(self):
|
||||||
count = self.request(0x8102)
|
return reduce(lambda partial, item: partial if item is None else partial + 1, self._devices.values(), 0)
|
||||||
return 0 if count is None else ord(count[1:2])
|
|
||||||
|
|
||||||
def __contains__(self, dev):
|
def __contains__(self, dev):
|
||||||
if type(dev) == int:
|
if type(dev) == int:
|
||||||
|
|
|
@ -49,7 +49,7 @@ class ReceiverStatus(dict):
|
||||||
self[ERROR] = None
|
self[ERROR] = None
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
count = len([1 for d in self._receiver if d is not None])
|
count = len(self._receiver)
|
||||||
return ('No devices found.' if count == 0 else
|
return ('No devices found.' if count == 0 else
|
||||||
'1 device found.' if count == 1 else
|
'1 device found.' if count == 1 else
|
||||||
'%d devices found.' % count)
|
'%d devices found.' % count)
|
||||||
|
|
Loading…
Reference in New Issue