code: def get_templates(self):
          
          self.read_sizes()
          if self.fingers == 0:
              return []
          templates = []
          templatedata, size = self.read_with_buffer(const.CMD_DB_RRQ, const.FCT_FINGERTMP)
          if size < 4:
              if self.verbose: print("WRN: no user data")
              return []
          total_size = unpack('i', templatedata[0:4])[0]
          if self.verbose: print ("get template total size {}, size {} len {}".format(total_size, size, len(templatedata)))
          templatedata = templatedata[4:]
          while total_size:
              size, uid, fid, valid = unpack('HHbb',templatedata[:6])
              template = unpack("%is" % (size-6), templatedata[6:size])[0]
              finger = Finger(uid, fid, valid, template)
              if self.verbose: print(finger)
              templates.append(finger)
              templatedata = templatedata[size:]
              total_size -= size
          return templates
docs: :return: list of Finger object