(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
|
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):
|
def get_firmware(device):
|
||||||
assert device
|
assert device
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -199,9 +199,18 @@ class PairedDevice(object):
|
||||||
@property
|
@property
|
||||||
def serial(self):
|
def serial(self):
|
||||||
if self._serial is None:
|
if self._serial is None:
|
||||||
if self.receiver.unifying_supported:
|
serial = self.receiver.read_register(0x2B5, 0x30 + self.number - 1)
|
||||||
self._serial = _hidpp10.get_serial(self)
|
if serial:
|
||||||
|
ps = ord(serial[9:10]) & 0x0F
|
||||||
|
self._power_switch = _hidpp10.POWER_SWITCH_LOCATION[ps]
|
||||||
else:
|
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
|
self._serial = self.receiver.serial
|
||||||
return self._serial or '?'
|
return self._serial or '?'
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue