⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tcpip_chuli_task.c

📁 c8051f020实现4个 产UART 口
💻 C
📖 第 1 页 / 共 2 页
字号:

									 Reply_TCPIP_SET_OK(18);
							}
							


					break;
					 case 19:  //19	报警延时时间设置
                                               	Para_all_True.BaoJing_Delay_Time=GPRS_RX_Buff[2]; 	    
							Para_all_True.Change_Flag=1  ;   // 

							 Reply_TCPIP_SET_OK(19);

					break;
					 case 20: //20	录音
						

					break;
					 case 21: //21	放音
                                        
 
					break;
					 case 22:  //22	恢复出厂设置
					          //Para_all_True.A5A5=0;
						    //Para_all_True.Change_Flag=1;
						    FLASH_INIT(0) ;

                                              Reply_TCPIP_SET_OK(22);
					break;
					case 23:   //23	警情查询
					        MPPo1=(uchar *)&struct_JingQing_JiLu_True[0].bak[0];											   
						    MPPo2=(uchar *)&struct_JingQing_JiLu_True[100].bak[0];
							for(ii=0;ii<90;ii++)  {    //移动首10条到100后面,方便打包
							             Mbufrem=*MPPo1++;
								      *MPPo2++=Mbufrem ;

							}  
								
                                                 num=GPRS_RX_Buff[2]; 
					 	       if(num>10||GPRS_RX_Buff[3]>struct_JingQing_JiLu_True[0].bak[0]||struct_JingQing_JiLu_True[0].bak[0]==0||GPRS_RX_Buff[3]==0) {		//最多一次取10 条,否则返回错	
							   	        Reply_JTX_0x24_Set_False();
									 break;
							}
							ii=0;
							while(ii<100) {   
								 if(struct_JingQing_JiLu_True[ii].bak[1]==GPRS_RX_Buff[3]) {
							                  startn=ii;
										break;	  
								 }
								 ii++;
							}
							ii=GPRS_RX_Buff[3]+num-1;
							if(ii>struct_JingQing_JiLu_True[0].bak[0]) {

                                                         num=struct_JingQing_JiLu_True[0].bak[0]-GPRS_RX_Buff[3]+1;
							}
							DaBao_TCPIP_And_Send(23, &struct_JingQing_JiLu_True[startn].bak[0],9*num);

					break;
					 case 24:  //24	清除所有警情命令
					                   //清除所有报警 记录
									    
			                     	    Clr_BaoJingJiLu_All() ;
							 
                                                     Reply_TCPIP_SET_OK(24);
					break;
				       case 25: //25	IP地址查询   +APN + ID
				                     DaBao_TCPIP_And_Send(25, &Para_all_True.IP[0],22);


					break;
					 case 26: //26	报警电话查询
					             //回复的数据不包括序号
					              num=GPRS_RX_Buff[2]; 	
							if(num>0&&num<=5) {	   //12345
								Len=Para_all_True.Phone_1To6[num-1][0]+1;
	                                                 DaBao_TCPIP_And_Send(26, &Para_all_True.Phone_1To6[num-1][0],Len);
							 }
							else {
                                                             Reply_TCPIP_Set_False(26);
							}
					break;
					 case 27: //27	其它参数查询
                                                      DaBao_TCPIP_And_Send(27, &Para_all_True.BuFang_Delay_Time,11);

					break;
					case 28: //28	密码查询
                                                    DaBao_TCPIP_And_Send(28, &Para_all_True.Mima[0],6);
							

					break;
					 case 29: //29	设APN
                                                    MoveByte(&Para_all_True.My_Apn[0], &GPRS_RX_Buff[2],10); 	    
							   Para_all_True.Change_Flag=1  ;   // 

							    Reply_TCPIP_SET_OK(29);

					break;
					case 30: //30	查询APN
					
                                                    DaBao_TCPIP_And_Send(30, &Para_all_True.My_Apn[0],10);
													
					break;
					case 31:  //31	警号鸣响时长设定
					
                                                    Para_all_True.Spk_cnt_Time=GPRS_RX_Buff[2]; 	    
							   Para_all_True.Change_Flag=1  ;   // 

							   Reply_TCPIP_SET_OK(31);


					break;
					case 32:  //32	警号鸣响时长查询
					 
                                                   DaBao_TCPIP_And_Send(32, &Para_all_True.Spk_cnt_Time, 1);

					break;
					case 33: //  set ID
                                                   MoveByte(&Para_all_True.ID[0], &GPRS_RX_Buff[2],6); 	    
							   Para_all_True.Change_Flag=1  ;   // 

							    Reply_TCPIP_SET_OK(33);
					break;
					case 34: //   cha ID
                                                    DaBao_TCPIP_And_Send(34, &Para_all_True.ID[0],6);
					break;
					
					 case 35:	// 35	清除无线防区对码内容
					       	
	                                          	  
                                                 MoveByte(DiZh_Tx_Buff, DuiMa_Clear_Command, 8);
						       Xin_DiZh_RX_B=0;
							FA_DiZhen_Buff();
							 os_wait2(K_TMO,200);	
							 if(Xin_DiZh_RX_B&&DiZh_Rx_Buff[0]==0x01&&DiZh_Rx_Buff[2]==0x03)  {
							 	           //如果收到确认
							 	           Xin_DiZh_RX_B=0;
									     Reply_TCPIP_SET_OK(35);
									     Sound_DiDi();
							 }
							 else  {
                                                                    Reply_TCPIP_Set_False(35);
							  }
							  
	                                          
					break;
					 case 36: //  36	系统自检
					          En_zijian_B=1;
							  
						   ii=0;
						   while(En_zijian_B)  {    // 2.5 秒
						   	      os_wait2(K_TMO,5);	
						   	      if(ii++>250)   {
                                                                break;
																
								}
						  }
						  DaBao_TCPIP_And_Send(36, &Para_all_True.DiZhenYi_status[0],5);  
						   
				      break;
					
					
					case 55:    //	55	查询屏的当前时间
                                                    Xin_Time_in_B=1;  //读到新时间 标志

					break;
					default:


					break;
               	}
}



/**********************************************************************
**函数原型:   void Atttand_TonCen()  
**入口参数:    
**出口参数:   无
**返 回 值:   1: 符合要求  0: 不符骸要求
**说    明:  处理同辰来的设查命令
************************************************************************/
uchar TCPIP_IS_CS_OK()  {
         uchar i,sum,j;
		 uint itt;


          if(GPRS_RX_Buff[0]!=0xee||GPRS_RX_Buff[1]!=0xee )	 {
                        return(0);
	   }	 
	   for(itt=2;itt<GPRS_RX_Buff_MAX;itt++)  {	  
		           GPRS_RX_Buff[itt-2]= GPRS_RX_Buff[itt];
	   }  
	   //以上去掉oxee oxee
	   
          i=GPRS_RX_Buff[1];
          i=i+2;
		  
          sum=0;
       
          for(j=0;j<i;j++)
          {
                        sum=sum+GPRS_RX_Buff[j];                  //  求代数和
          }
          if(sum==GPRS_RX_Buff[i]&&GPRS_RX_Buff[i+1]==0xab)  //校验和等且最后的字节为0XAB
                         return(1);
	  else  	    return(0);

  }



/**********************************************************************
**函数原型:   uint  Reply_TCPIP_QueRen() 
**入口参数:   485的功能码uchar fun
**出口参数:   无
**返 回 值:   无
**说    明:  对甲天行的手柄的确认程序
*************************************************************************/
void  Reply_TCPIP_QueRen()  {

          /*      while(KEY_TX_is_over_Start_cnt_B||KEY_TX_Len!=0)  os_wait2(K_TMO, 3); //等待帧间隔
          
              GPRS_TX_Buff[0]=0x24;
	       GPRS_TX_Buff[1]=0x0d;

		GPRS_TX_Buff[2]= 2;
		GPRS_TX_Buff[3]=0x2b;		
              			  
               GPRS_TX_Buff[4]=0x0A;
			  
	      FA_TCPIP_Buff() ;
		*/	
		uchar rr=0;
		//while(KEY_TX_is_over_Start_cnt_B||KEY_TX_Len!=0)  os_wait2(K_TMO, 3); //等待帧间隔 
              DaBao_TCPIP_And_Send(0x2,&rr, 0);
            

}



/**********************************************************************
**函数原型:   uint  Reply_TCPIP_QueRen() 
**入口参数:   485的功能码uchar fun
**出口参数:   无
**返 回 值:   无
**说    明:  对甲天行的手柄的应答成功程序
**说    明:  功能码0xaf     0xb1
*************************************************************************/
void Reply_TCPIP_SET_OK(uchar Fun)  {
              uchar rr=0;
			  rr=Fun;
		// while(KEY_TX_is_over_Start_cnt_B||KEY_TX_Len!=0)  os_wait2(K_TMO, 3); //等待帧间隔 
              DaBao_TCPIP_And_Send(0x1,&rr, 1);
            
			

}


/**********************************************************************
**函数原型:   uint  Reply_TCPIP_QueRen() 
**入口参数:   485的功能码uchar fun
**出口参数:   无
**返 回 值:   无
**说    明:  对甲天行的手柄的应答失败程序
**说    明:  功能码0xaf     0xb1

*************************************************************************/
void  Reply_TCPIP_Set_False(uchar Fun)  {

               uchar rr=0;
			  rr=Fun;
		// while(KEY_TX_is_over_Start_cnt_B||KEY_TX_Len!=0)  os_wait2(K_TMO, 3); //等待帧间隔 
              DaBao_TCPIP_And_Send(0x00,&rr, 1);


}



/**********************************************************************
**函数原型:   uint  Reply_TCPIP_QueRen() 
**入口参数:   485的功能码uchar fun
**出口参数:   无
**返 回 值:   无
**说    明:  对甲天行的发关这程序
*************************************************************************/
void     FA_TCPIP_Buff()  {
             
               GPRS_TX_Len=GPRS_TX_Buff[3]+6;		
	       GPRS_TX_cnt=0;		
               
              GPRS_TX_Len--;	
			  
		 SBUF0=GPRS_TX_Buff[0];

}


/**********************************************************************
**函数原型:   void   Ying_da_ok(uchar fun)
**入口参数:   485的功能码uchar fun
**出口参数:   无
**返 回 值:   无
**说    明:  甲天行的手柄的打包程序并发送程序 
*************************************************************************/

void  DaBao_TCPIP_And_Send(uchar fun,char *Bufff,uint Lenn)  {

             uchar j;
	      uint    kk;		 
              
              GPRS_TX_Buff[0]=0xEE;
			    GPRS_TX_Buff[1]=0xEE;
	           GPRS_TX_Buff[2]=fun;
              if(Lenn>0)  {
				GPRS_TX_Buff[3]= Lenn;				
				j=0;
				for(kk=0;kk<(Lenn);kk++) {			 
		                         GPRS_TX_Buff[4+kk]=*Bufff++;
					   j+=GPRS_TX_Buff[4+kk];						 
				}       
				//j=j^GPRS_TX_Buff[0];
				//j=j^GPRS_TX_Buff[1];
				j=j+GPRS_TX_Buff[2];
				j=j+GPRS_TX_Buff[3];
				
		              GPRS_TX_Buff[4+kk]=j;
				GPRS_TX_Buff[4+kk+1]=0xab;
              }
		else {
                            GPRS_TX_Buff[3]= 0;
				GPRS_TX_Buff[4]=GPRS_TX_Buff[2]+GPRS_TX_Buff[3];				
				GPRS_TX_Buff[5]=0xab;
		}
		
		FA_TCPIP_Buff() ;

}


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -