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; 
        } 
	} 
}