trim the codename to the declared length (fixes #90)

This commit is contained in:
Daniel Pavel 2013-07-18 16:23:34 +02:00
parent 444169d84b
commit 4074fb7750
1 changed files with 6 additions and 2 deletions

View File

@ -116,7 +116,9 @@ class PairedDevice(object):
# do not support this call. # do not support this call.
codename = self.receiver.read_register(_R.receiver_info, 0x40 + self.number - 1) codename = self.receiver.read_register(_R.receiver_info, 0x40 + self.number - 1)
if codename: if codename:
self._codename = codename[2:].rstrip(b'\x00').decode('utf-8') codename_length = ord(codename[1:2])
codename = codename[2:2 + codename_length]
self._codename = codename.decode('ascii')
self.descriptor = _DESCRIPTORS.get(self._codename) self.descriptor = _DESCRIPTORS.get(self._codename)
if self.descriptor: if self.descriptor:
@ -149,7 +151,9 @@ class PairedDevice(object):
if self._codename is None: if self._codename is None:
codename = self.receiver.read_register(_R.receiver_info, 0x40 + self.number - 1) codename = self.receiver.read_register(_R.receiver_info, 0x40 + self.number - 1)
if codename: if codename:
self._codename = codename[2:].rstrip(b'\x00').decode('utf-8') codename_length = ord(codename[1:2])
codename = codename[2:2 + codename_length]
self._codename = codename.decode('ascii')
# if _log.isEnabledFor(_DEBUG): # if _log.isEnabledFor(_DEBUG):
# _log.debug("device %d codename %s", self.number, self._codename) # _log.debug("device %d codename %s", self.number, self._codename)
else: else: