Cal_Crc(&Rx1_Data_Buffer[i+1],5);//计算CRC Temp2=Rx1_Data_Buffer[i+6];
Temp2=(Temp2<<8)+Rx1_Data_Buffer[i+7]; if(CRC==Temp2)//若CRC相等,则为心跳信号。 {
P2OUT&=~0X02;//接收心跳时:灯亮。 Beat_Rcv_Fail=0;//心跳接收失败次数 Heart_Beat_Interval=600; Beat_Rcved_Flag=1; Beat_Test_Start=0;
Minute2_Interval=12000;//2分钟通信间隔检测。 Minute2_Interval_Flag=0; Second=0; Minute=0;
if(Rx1_Data_Buffer[i+3]!=Heart_Beat_Time) {
if(Rx1_Data_Buffer[i+3]==255) return;
Heart_Beat_Time=Rx1_Data_Buffer[i+3]; Temp_iArray[0]=Heart_Beat_Time;
Wr_Data(Beat_Addr,1,Temp_iArray);//保存数据为16进制 Feed_WatchDog();
Wr_Data(Beat_Addr+100,1,Temp_iArray);
Rd_Data(0,91,Temp_iArray);//读取数据,重新计算CRC,然后保存。 for(j=0;j<=90;j++)
{
Temp_cArray[j]=Temp_iArray[j]; }
Feed_WatchDog();
Cal_Crc(&Temp_cArray[1],88);
Temp_iArray[1]=CRC&0x00FF; //CRC低位 Temp_iArray[0]=(CRC>>8)&0x00FF; //CRC高位
Wr_Data(89,2,Temp_iArray); //读取数据,重新计算CRC,然后保存。
Feed_WatchDog();
Wr_Data(189,2,Temp_iArray); } return; } }
//检测浙江GPRS心跳信号
if((Rx1_Data_Buffer[i]==0x68)&&(Rx1_Data_Buffer[i+7]==0x68)&&(Rx1_Data_Buffer[i+8]== {
P2OUT&=~0X02;//接收心跳时:灯亮。
Beat_Rcv_Fail=0;//心跳接收失败次数 Heart_Beat_Interval=600; Beat_Rcved_Flag=1; Beat_Test_Start=0;
Minute2_Interval=12000;//2分钟通信间隔检测。 Minute2_Interval_Flag=0; Second=0; Minute=0; Heart_Flag=0; }
//检测浙江正常登陆
if((Rx1_Data_Buffer[i]==0x68)&&(Rx1_Data_Buffer[i+7]==0x68)&&(Rx1_Data_Buffer[i+8]== {
P2OUT&=~0X02;//接收心跳时:灯亮。 Beat_Rcv_Fail=0;//心跳接收失败次数 Heart_Beat_Interval=600; Beat_Rcved_Flag=1; Beat_Test_Start=0;
Minute2_Interval=12000;//2分钟通信间隔检测。 Minute2_Interval_Flag=0; Second=0; Minute=0;
Load_Master_Flag=1;//登陆主站成功 }
//******以下为短信设置处理程序******。
if((Rx1_Data_Buffer[i]=='0')&&(Rx1_Data_Buffer[i+1]=='8')&&(Rx1_Data_Buffer[i+2]=='9' {
Feed_WatchDog(); for(j=0;j<=11;j++) {
// Center_SIM[j]=Rx1_Data_Buffer[26+i+j];//将发送手机号码的提取。
Temp_Sim[j]=Rx1_Data_Buffer[26+i+j]; }
Asci_To_Hex(&Rx1_Data_Buffer[i],Rx1_Pointer-i+1);//CHANGED 11.5 +1将收到的短信 _NOP();
if((Temp_cArray[29]==0x2F)&&(Temp_cArray[31]==90)&&(Temp_cArray[34]==0xFD))//判断 { //通过主站设置的命令处理
Cal_Crc(&Temp_cArray[1],88);//计算CRC Temp2=Temp_cArray[89];//比较CRC Temp2=Temp2<<8;
Temp2=Temp2+Temp_cArray[90];
if(CRC==Temp2)//若CRC相等,则为设置命令 { //检验密码
if((Temp_cArray[57]==PassWord[0])&&(Temp_cArray[58]==PassWord[1])&&( goto Pass0;
if((Temp_cArray[57]=='H')&&(Temp_cArray[58]=='O')&&(Temp_cArray[59]== {//超级密码
Pass0:;
for(i=0;i<=90;i++) {
Temp_iArray[i]=Temp_cArray[i+29]; }
Wr_Data(Estart_Addr,91,&Temp_iArray[29]);//将设置数据写到EEPROM _NOP();
Wr_Data(Estart2_Addr,91,&Temp_iArray[29]);//将数据备份。100~190 SMS_Mode=1;
Echo_SMS_Master(7);//返回短信正确设置命令。 SMS_Mode=0xff; } return; } }
if(Temp_cArray[20]==0X00)//短信是7bit编码 { //通过手机设置的命令处理。 SMS_Mode=0;
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库GPRS-GSM程序(5)在线全文阅读。
相关推荐: