(hopefully) better serial read-out for devices
This commit is contained in:
parent
94464a40b8
commit
5ebc2634ae
|
@ -183,22 +183,6 @@ def parse_battery_reply_07(level, battery_status):
|
|||
return charge, status
|
||||
|
||||
|
||||
def get_serial(device):
|
||||
assert device
|
||||
|
||||
if device.kind is None:
|
||||
dev_id = 0x03
|
||||
receiver = device
|
||||
else:
|
||||
dev_id = 0x30 + device.number - 1
|
||||
receiver = device.receiver
|
||||
assert receiver.unifying_supported
|
||||
|
||||
serial = read_register(receiver, 0x2B5, dev_id)
|
||||
if serial is not None:
|
||||
return _strhex(serial[1:5])
|
||||
|
||||
|
||||
def get_firmware(device):
|
||||
assert device
|
||||
|
||||
|
|
|
@ -199,9 +199,18 @@ class PairedDevice(object):
|
|||
@property
|
||||
def serial(self):
|
||||
if self._serial is None:
|
||||
if self.receiver.unifying_supported:
|
||||
self._serial = _hidpp10.get_serial(self)
|
||||
serial = self.receiver.read_register(0x2B5, 0x30 + self.number - 1)
|
||||
if serial:
|
||||
ps = ord(serial[9:10]) & 0x0F
|
||||
self._power_switch = _hidpp10.POWER_SWITCH_LOCATION[ps]
|
||||
else:
|
||||
# some Nano receivers?
|
||||
serial = self.receiver.read_register(0x2D5)
|
||||
|
||||
if serial:
|
||||
self._serial = _strhex(serial[1:5])
|
||||
else:
|
||||
# fallback...
|
||||
self._serial = self.receiver.serial
|
||||
return self._serial or '?'
|
||||
|
||||
|
|
Loading…
Reference in New Issue