#pragma once


#define DIT_BUFSIZE 1024





extern unsigned short GetCRC(unsigned char *p, unsigned short n);
extern unsigned short GetCRC2(unsigned char *p, unsigned short n);
extern WORD calccrc(BYTE crcbuf, WORD crc);
extern WORD calccrc(BYTE crcbuf, WORD crc, WORD polynom);
extern WORD chkcrc(BYTE *buf, WORD len);
extern WORD chkcrc(BYTE *buf, WORD len, WORD polynom);
extern void crc_calc_sinopec(BYTE *ptr_buffer, WORD length);


extern unsigned long power(int base, int times);
extern unsigned long BCDtoDec(unsigned char *bcd, int len);
extern int DectoBCD(int Dec, unsigned char *bcd, int len);

extern bool checkEscapeCharacter(BYTE buf[DIT_BUFSIZE], int& len, BYTE ch);
extern bool transEscapeCharacter(BYTE buf[DIT_BUFSIZE], int& len, BYTE ch);

extern bool calcEscapeLength(const BYTE buf[DIT_BUFSIZE], int& len, BYTE ch);