text: '''MAVLink X25 CRC code'''
  
  
  class x25crc(object):
      '''x25 CRC - based on checksum.h from mavlink library'''
      def __init__(self, buf=''):
          self.crc = 0xffff
          self.accumulate(buf)
  
      def accumulate(self, buf):
          '''add in some more bytes'''
          import array
          bytes = array.array('B')
          if isinstance(buf, array.array):
              bytes.extend(buf)
          else:
              bytes.fromstring(buf)
          accum = self.crc
          for b in bytes:
              tmp = b ^ (accum & 0xff)
              tmp = (tmp ^ (tmp<<4)) & 0xFF
              accum = (accum>>8) ^ (tmp<<8) ^ (tmp<<3) ^ (tmp>>4)
              accum = accum & 0xFFFF
          self.crc = accum
  
  