code: def message_checksum(msg):
      '''calculate a 8-bit checksum of the key fields of a message, so we
         can detect incompatible XML changes'''
      from .mavcrc import x25crc
      crc = x25crc()
      crc.accumulate_str(msg.name + ' ')
      # in order to allow for extensions the crc does not include
      # any field extensions
      crc_end = msg.base_fields()
      for i in range(crc_end):
          f = msg.ordered_fields[i]
          crc.accumulate_str(f.type + ' ')
          crc.accumulate_str(f.name + ' ')
          if f.array_length:
              crc.accumulate([f.array_length])
      return (crc.crc&0xFF) ^ (crc.crc>>8f message_checksum(msg):
      '''calculate a 8-bit checksum of the key fields of a message, so we
         can detect incompatible XML changes'''
      from .mavcrc import x25crc
      crc = x25crc()
      crc.accumulate_str(msg.name + ' ')
      # in order to allow for extensions the crc does not include
      # any field extensions
      crc_end = msg.base_fields()
      for i in range(crc_end):
          f = msg.ordered_fields[i]
          crc.accumulate_str(f.type + ' ')
          crc.accumulate_str(f.name + ' ')
          if f.array_length:
              crc.accumulate([f.array_length])
      return (crc.crc&0xFF) ^ (crc.crc>>8)
docs: calculate a 8-bit checksum of the key fields of a message, so we
         can detect incompatible XML changes