def METHOD_NAME(self):
    bin_buffer = [chr(0xff)] * 256
    bin_buffer[0] = chr(self.VERSION)
    bin_buffer[1] = chr(self.FLAG)
    bin_buffer[2] = chr(self.HW_VER)
    bin_buffer[3] = chr(self.TYPE)
    temp_t = "%08x" % self.typedevtype
    typedevtype_t = self.hex_to_str(temp_t)
    total_len = len(self.typename) + len(self.typesn) + \
        len(self.typehwinfo) + len(typedevtype_t) + 8
    bin_buffer[4] = chr(total_len >> 8)
    bin_buffer[5] = chr(total_len & 0x00FF)
    index_start = 6
    bin_buffer[index_start] = chr(self._FAN_TLV_TYPE_NAME)
    bin_buffer[index_start + 1] = chr(len(self.typename))
    bin_buffer[index_start + 2: index_start + 2 +
               len(self.typename)] = self.strtoarr(self.typename)
    index_start = index_start + 2 + len(self.typename)
    bin_buffer[index_start] = chr(self._FAN_TLV_TYPE_SN)
    bin_buffer[index_start + 1] = chr(len(self.typesn))
    bin_buffer[index_start + 2:index_start + 2 +
               len(self.typesn)] = self.strtoarr(self.typesn)
    index_start = index_start + 2 + len(self.typesn)
    bin_buffer[index_start] = chr(self._FAN_TLV_TYPE_HW_INFO)
    bin_buffer[index_start + 1] = chr(len(self.typehwinfo))
    bin_buffer[index_start + 2:index_start + 2 +
               len(self.typehwinfo)] = self.strtoarr(self.typehwinfo)
    index_start = index_start + 2 + len(self.typehwinfo)
    bin_buffer[index_start] = chr(self._FAN_TLV_TYPE_DEV_TYPE)
    bin_buffer[index_start + 1] = chr(len(typedevtype_t))
    bin_buffer[index_start + 2:index_start + 2 +
               len(typedevtype_t)] = self.strtoarr(typedevtype_t)
    index_start = index_start + 2 + len(typedevtype_t)
    crcs = fan_tlv.fancrc(''.join(bin_buffer[0:index_start]))
    bin_buffer[index_start] = chr(crcs >> 8)
    bin_buffer[index_start + 1] = chr(crcs & 0x00ff)
    # printvalue(bin_buffer)
    return bin_buffer