Exemplo n.º 1
0
        public static UInt16 GetPacketCrc(MavLinkPacket p)
        {
            UInt16 crc = X25CrcSeed;

            crc = X25CrcAccumulate(p.PayLoadLength, crc);
            crc = X25CrcAccumulate(p.InCompatFlags, crc);
            crc = X25CrcAccumulate(p.CompatFlats, crc);
            crc = X25CrcAccumulate(p.PacketSequenceNumber, crc);
            crc = X25CrcAccumulate(p.SystemId, crc);
            crc = X25CrcAccumulate(p.ComponentId, crc);
            uint id = p.MessageId;

            crc = X25CrcAccumulate((byte)(id & 0xFF), crc);
            crc = X25CrcAccumulate((byte)(id >> 8 & 0xFF), crc);
            crc = X25CrcAccumulate((byte)(id >> 16 & 0xFF), crc);
            //crc = X25CrcAccumulate((byte)(id >> 24 & 0xFF), crc);

            for (int i = 0; i < p.Payload.Length; ++i)
            {
                crc = X25CrcAccumulate(p.Payload[i], crc);
            }

            crc = X25CrcAccumulate(UasSummary.GetCrcExtraForId(p.MessageId), crc);

            return(crc);
        }
Exemplo n.º 2
0
        public static UInt16 GetPacketCrc(MavLinkPacket p)
        {
            UInt16 crc = X25CrcSeed;

            crc = X25CrcAccumulate(p.PayLoadLength, crc);
            crc = X25CrcAccumulate(p.PacketSequenceNumber, crc);
            crc = X25CrcAccumulate(p.SystemId, crc);
            crc = X25CrcAccumulate(p.ComponentId, crc);
            crc = X25CrcAccumulate(p.MessageId, crc);

            for (int i = 0; i < p.Payload.Length; ++i)
            {
                crc = X25CrcAccumulate(p.Payload[i], crc);
            }

            crc = X25CrcAccumulate(UasSummary.GetCrcExtraForId(p.MessageId), crc);

            return(crc);
        }