/**
 * \file crc.h
 */
#ifndef __MODEL_CRC_H
#define __MODEL_CRC_H

#include "stdint.h"

uint16_t Get_Crc16(uint8_t *puchMsg, uint16_t usDataLen);
uint8_t Get_Crc8(uint8_t *ptr, uint16_t len);
unsigned char CRC8(const unsigned char *dest, unsigned short int len);

uint16_t Checksum_Sum(uint8_t *buf, uint16_t len);
uint16_t tcpChecksum(uint8_t *buf, uint16_t len);

unsigned int cal_crc16(unsigned char buffer[], unsigned char len);
uint16_t cbus_crc(uint8_t pbuf[]);
unsigned int crc_fullymax(unsigned char *q, int len);

#define POWERAMP_CRC8_KEY (0x2A)
uint8_t poweramp_CRC8(uint8_t *ptr, uint8_t len, uint8_t key);
uint8_t YRSocCalcXor(uint8_t *buf, uint8_t len);

#endif




