(hopefully) better serial read-out for devices

This commit is contained in:
Daniel Pavel 2013-07-01 18:40:03 +02:00
parent 94464a40b8
commit 5ebc2634ae
2 changed files with 11 additions and 18 deletions

View File

@ -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

View File

@ -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 '?'