Annotation of libaitcrc/src/pelco.c, revision 1.2

1.2     ! misho       1: /*************************************************************************
        !             2: * (C) 2010 AITNET ltd - Sofia/Bulgaria - <misho@aitbg.com>
        !             3: *  by Michael Pounov <misho@openbsd-bg.org>
        !             4: *
        !             5: * $Author: misho $
        !             6: * $Id: pelco.c,v 1.1.2.1 2010/01/20 00:06:36 misho Exp $
        !             7: *
        !             8: *************************************************************************/
        !             9: #include "global.h"
        !            10: 
        !            11: 
        !            12: /*
        !            13:  * crcPelco() Calculate Pelco D/P CRC
        !            14:  * @ver = Pelco protocol version (Dd | Pp)
        !            15:  * @pkt = Packet for calculate crc
        !            16:  * return: crc for packet, if is 0 check and crc_GetErrno() == 1 
        !            17:        Pelco protocol not supported
        !            18:  */
        !            19: inline u_char crcPelco(u_char ver, u_char *pkt)
        !            20: {
        !            21:        register u_char i, crc;
        !            22: 
        !            23:        switch (ver) {
        !            24:                case 'D':
        !            25:                case 'd':
        !            26:                        for (i = 1, crc = 0; i < 6; crc += pkt[i++]);
        !            27:                        crc %= 0x100;
        !            28:                        break;
        !            29:                case 'P':
        !            30:                case 'p':
        !            31:                        for (i = 1, crc = pkt[0]; i < 7; crc ^= pkt[i++]);
        !            32:                        break;
        !            33:                default:
        !            34:                        crc = 0;
        !            35:                        crcSetErr(1, "crcAdler(): Invalid parameters!");
        !            36:        }
        !            37: 
        !            38:        return crc;
        !            39: }

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>