code: def _get_formatted_error(self, error):
          
  
          def bits(n):
              """TODO: document"""
              while n:
                  b = n & (~n+1)
                  yield b
                  n ^= b
  
          stsReturn = self.m_objPCANBasic.GetErrorText(error, 0)
          if stsReturn[0] != PCAN_ERROR_OK:
              strings = []
  
              for b in bits(error):
                  stsReturn = self.m_objPCANBasic.GetErrorText(b, 0)
                  if stsReturn[0] != PCAN_ERROR_OK:
                      text = "An error occurred. Error-code's text ({0:X}h) couldn't be retrieved".format(error)
                  else:
                      text = stsReturn[1].decode('utf-8', errors='replace')
  
                  strings.append(text)
  
              complete_text = '\n'.join(strings)
          else:
              complete_text = stsReturn[1].decode('utf-8', errors='replace')
  
          return complete_text
docs: Gets the text using the GetErrorText API function.
          If the function call succeeds, the translated error is returned. If it fails,
          a text describing the current error is returned. Multiple errors may
          be present in which case their individual messages are included in the
          return string, one line per error.