ui: handle re-pairing receivers correctly when pairing
This commit is contained in:
parent
e89b50cdf2
commit
dc2a1adf26
|
@ -490,8 +490,15 @@ class Receiver(object):
|
|||
del self._devices[key]
|
||||
return
|
||||
|
||||
action = 0x03
|
||||
reply = self.write_register(_R.receiver_pairing, action, key)
|
||||
if self.re_pairs:
|
||||
# invalidate the device, but these receivers don't unpair per se
|
||||
dev.online = False
|
||||
dev.wpid = None
|
||||
if key in self._devices:
|
||||
del self._devices[key]
|
||||
_log.warn("%s removed device %s", self, dev)
|
||||
else:
|
||||
reply = self.write_register(_R.receiver_pairing, 0x03, key)
|
||||
if reply:
|
||||
# invalidate the device
|
||||
dev.online = False
|
||||
|
|
|
@ -61,8 +61,7 @@ def run(receivers, args, find_receiver, _ignore):
|
|||
if n.devnumber not in known_devices:
|
||||
receiver.status.new_device = receiver[n.devnumber]
|
||||
elif receiver.re_pairs:
|
||||
# unfortunately this breaks encapsulation but the nice way tries to unpair
|
||||
del receiver._devices[n.devnumber] # get rid of information on device re-paired away
|
||||
del receiver[n.devnumber] # get rid of information on device re-paired away
|
||||
receiver.status.new_device = receiver[n.devnumber]
|
||||
|
||||
timeout = 20 # seconds
|
||||
|
|
|
@ -198,8 +198,17 @@ class ReceiverListener(_listener.EventsListener):
|
|||
if n.sub_id == 0x40 and not already_known:
|
||||
return # disconnecting something that is not known - nothing to do
|
||||
|
||||
if n.sub_id == 0x41 and not already_known:
|
||||
if n.sub_id == 0x41:
|
||||
if not already_known:
|
||||
dev = self.receiver.register_new_device(n.devnumber, n)
|
||||
elif self.receiver.status.lock_open and self.receiver.re_pairs:
|
||||
dev = self.receiver[n.devnumber]
|
||||
del self.receiver[n.devnumber] # get rid of information on device re-paired away
|
||||
self._status_changed(dev) # signal that this device has changed
|
||||
dev = self.receiver.register_new_device(n.devnumber, n)
|
||||
self.receiver.status.new_device = self.receiver[n.devnumber]
|
||||
else:
|
||||
dev = self.receiver[n.devnumber]
|
||||
else:
|
||||
dev = self.receiver[n.devnumber]
|
||||
|
||||
|
|
Loading…
Reference in New Issue