def METHOD_NAME(self, pkt):
    '''parse SIYI packet'''
    if len(pkt) < 10:
        return
    (h1,h2,rack,plen,seq,cmd) = struct.unpack("<BBBHHB", pkt[:8])
    data = pkt[8:-2]
    crc, = struct.unpack("<H", pkt[-2:])
    crc2 = crc16_from_bytes(pkt[:-2])
    if crc != crc2:
        return
    if cmd == ACQUIRE_FIRMWARE_VERSION:
        (patch,minor,major) = struct.unpack("<BBB", data[:3])
        print("SIYI CAM %u.%u.%u" % (major, minor, patch))
        (patch,minor,major) = struct.unpack("<BBB", data[3:6])
        print("SIYI Gimbal %u.%u.%u" % (major, minor, patch))
        self.have_version = True
    elif cmd == ACQUIRE_GIMBAL_ATTITUDE:
        (z,y,x) = struct.unpack("<hhh", data[:6])
        self.console.set_status('SIYI', 'SIYI %.1f %.1f %.1f' % (x*0.1, y*0.1, mp_util.wrap_180(-z*0.1)), row=6)