#include "bin_oper.h" #include "crc.h" static unsigned long g_crc = 263; void set_crc(const char *p_crc_binary) { g_crc = bin2udec(p_crc_binary); return; } unsigned long crc(const char *p_data) { int j = 0, i = 8; unsigned long data, checked = 0; while(i == 8) { for(i = 0; i < 8 && p_data[i + j*8]; ++i); if(!i) break; data = bin2udec_range(p_data, j*8, i) + (checked << i); checked = data%g_crc; ++j; } return(checked); }