www.pudn.com > DDS485.rar > datacheck.c
#include#include #include #include //------------------------------ *** - 判断指令数据交验和是否正确 - *** ------------------------------// bit CheckSum(void) { bit SumFg; SumFg=0; if(EleChk(InceptBuf,InceptBuf[9]+10)==InceptBuf[InceptBuf[9]+10]) { SumFg=1; } return SumFg; } //------------------------------ *** - 判断指令数据是否是单独指令 - *** ------------------------------// bit CheckAvailabilityAdd(void) { bit AddFg; unsigned char i; for(i=0;i<6;i++) { if(InceptBuf[1+i]==0xaa) { if(DataSaveSt) { AddFg=0; } else { AddFg=1; } } else { if(InceptBuf[1+i]==MeterAdd[i]) { AddFg=1; } else { AddFg=0; break; } } } return AddFg; } //------------------------------ *** - 判断指令数据是否是广播指令 - *** ------------------------------// bit CheckBroadcast(void) { bit AddFg; unsigned char i; for(i=0;i<6;i++) { if(InceptBuf[1+i]==0x99) { AddFg=1; } else { AddFg=0; break; } } return AddFg; } //------------------------------ *** - 判断指令数据控制密码是否正确 - *** ------------------------------// void SnCheck(void) { unsigned char i; IicMByteRead(0xa0,0x20,IicBuf,3); //编程密码校验 for(i=0;i<3;i++) { if(InceptBuf[13+i]==IicBuf[i]) { PrgSn=1; } else { PrgSn=0; break; } } }