diff --git a/lib/logitech_receiver/hidpp10.py b/lib/logitech_receiver/hidpp10.py index 5b845792..4f203a44 100644 --- a/lib/logitech_receiver/hidpp10.py +++ b/lib/logitech_receiver/hidpp10.py @@ -154,6 +154,7 @@ INFO_SUBREGISTERS = _NamedInts( extended_pairing_information=0x30, # 0x3N, by connected device device_name=0x40, # 0x4N, by connected device bolt_pairing_information=0x50, # 0x5N, by connected device + bolt_device_name=0x60, # 0x6N01, by connected device, ) # Flags taken from https://drive.google.com/file/d/0BxbRzx7vEV7eNDBheWY0UHM5dEU/view?usp=sharing diff --git a/lib/logitech_receiver/receiver.py b/lib/logitech_receiver/receiver.py index 963a4f81..30cc400b 100644 --- a/lib/logitech_receiver/receiver.py +++ b/lib/logitech_receiver/receiver.py @@ -143,11 +143,14 @@ class Receiver: def device_codename(self, n): if self.receiver_kind == 'bolt': + codename = self.read_register(_R.receiver_info, _IR.bolt_device_name + n, 0x01) + if codename: + codename = codename[3:3 + min(14, ord(codename[2:3]))] + return codename.decode('ascii') return codename = self.read_register(_R.receiver_info, _IR.device_name + n - 1) if codename: - codename_length = ord(codename[1:2]) - codename = codename[2:2 + codename_length] + codename = codename[2:2 + ord(codename[1:2])] return codename.decode('ascii') def device_pairing_information(self, n):