def METHOD_NAME(self, label, data):
    if len(data) != 256:
        self.log(f"{label}: unexpected data length: {len(data):d}")
        chexdump(data)
        return
    crc16 = crc16USB(0, data[:254])
    pkt = SPI_HID_PKT.parse(data)
    #self.log(f"pkt.crc16:{pkt.crc16:#04x} crc16:{crc16:#04x}")
    if pkt.length == 0:
        return
    if pkt.flags == 0x80 and pkt.dev == 0x11 and pkt.length == 849 and pkt.offset == 256 and pkt.remain == 834 and crc16 == 0x1489:
        return
    if pkt.crc16 != crc16:
        self.log(f"{label}: CRC mismatch: pkt.crc16:{pkt.crc16:#04x} crc16:{crc16:#04x}")
        chexdump(data)
        return
    self.log(f"{label}: flags:{pkt.flags:#2x} dev:{pkt.dev:#2x} length:{pkt.length:4d} offset:{pkt.offset:3d} remain:{pkt.remain:3d}")
    chexdump(pkt.data[:min(246, pkt.length)])
    if self.state.dumpfile:
        dump = f"{label}: flags:{pkt.flags:#2x} dev:{pkt.dev:#2x} length:{pkt.length:4d}  {pkt.data[:min(246, pkt.length)].hex()}\n"
        self.state.dumpfile.write(dump)
        self.state.dumpfile.flush()