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

📄 gprsproc.cpp

📁 湖北水文黄石试点集中器代码
💻 CPP
📖 第 1 页 / 共 2 页
字号:
	 	   DCportnum[1]=0;	
	 if( ReadIni.GetField( FileName, "[Info]", "DCportnum2", 0, DCportnum[2]) )
	 	   DCportnum[2]=0;	 
	 if( ReadIni.GetField( FileName, "[Info]", "DCportnum3", 0, DCportnum[3]) )
	 	   DCportnum[3]=0;
	 if( ReadIni.GetField( FileName, "[Info]", "TalkTime", 0, TalkTime) )
	 	   TalkTime=11000;	 	//10 minute 
   if( ReadIni.GetField( FileName, "[Info]", "PassWord", 0, PasswordBuff ) )
      strcpy( PasswordBuff, "123456" ); 	 	     	 	      	      
	 /////////////////////////////////////////
	 	   
	 if( ReadIni.GetField( FileName, "[DTUAddr]", "DTUAddress0", 0, DTUAddress[0] ) )
       DTUAddress[0]=0x01;
   if( ReadIni.GetField( FileName, "[DTUAddr]", "DTUAddress1", 0, DTUAddress[1] ) )
       DTUAddress[1]=0x00;

   if( ReadIni.GetField( FileName, "[Rainfall]", "RfDWU", 0, DataWakeUp[0] ) )
       DataWakeUp[0]= 0; 	 
   if( ReadIni.GetField( FileName, "[Rainfall]", "RfTWU", 0, TimingWakeUp[0] ) )
       TimingWakeUp[0]= 8;
   if( ReadIni.GetField( FileName, "[Rainfall]", "RfIvTWU", 0, IvtimeWakeUp[0] ) )
      IvtimeWakeUp[0] = 15;
   if( ReadIni.GetField( FileName, "[Rainfall]", "RfNumofThr", 0, Num_of_thr[0] ) )
      Num_of_thr[0] = 2;
   if( ReadIni.GetField( FileName, "[Rainfall]", "RfIvtime", 0, Ivtime[0] ) )
      Ivtime[0] = 5;
      
   if( ReadIni.GetField( FileName, "[Rainfall]", "RfThrWU0thr_unit", 0, ThrWakeUp[0][0].thr_unit ) )
      ThrWakeUp[0][0].thr_unit = 5;
   if( ReadIni.GetField( FileName, "[Rainfall]", "RfThrWU0thr_value", 0, ThrWakeUp[0][0].thr_value ) )
      ThrWakeUp[0][0].thr_value = 50;
      
   if( ReadIni.GetField( FileName, "[Rainfall]", "RfThrWU1thr_unit", 0, ThrWakeUp[0][1].thr_unit ) )
      ThrWakeUp[0][1].thr_unit = 10;
   if( ReadIni.GetField( FileName, "[Rainfall]", "RfThrWU1thr_value", 0, ThrWakeUp[0][1].thr_value ) )
      ThrWakeUp[0][1].thr_value = 100;
      
   if( ReadIni.GetField( FileName, "[Rainfall]", "RfThrWU2thr_unit", 0, ThrWakeUp[0][2].thr_unit ) )
      ThrWakeUp[0][2].thr_unit = 15;
   if( ReadIni.GetField( FileName, "[Rainfall]", "RfThrWU2thr_value", 0, ThrWakeUp[0][2].thr_value ) )
      ThrWakeUp[0][2].thr_value = 150;
      
   if( ReadIni.GetField( FileName, "[Rainfall]", "RfThrWU3thr_unit", 0, ThrWakeUp[0][3].thr_unit ) )
      ThrWakeUp[0][3].thr_unit = 30;
   if( ReadIni.GetField( FileName, "[Rainfall]", "RfThrWU3thr_value", 0, ThrWakeUp[0][3].thr_value ) )
      ThrWakeUp[0][3].thr_value = 300;  
          
   if( ReadIni.GetField( FileName, "[Rainfall]", "RfThrWU4thr_unit", 0, ThrWakeUp[0][4].thr_unit ) )
      ThrWakeUp[0][4].thr_unit = 60;
   if( ReadIni.GetField( FileName, "[Rainfall]", "RfThrWU4thr_value", 0, ThrWakeUp[0][4].thr_value ) )
      ThrWakeUp[0][4].thr_value = 600;    
        
   if( ReadIni.GetField( FileName, "[Rainfall]", "RfThrWU5thr_unit", 0, ThrWakeUp[0][5].thr_unit ) )
      ThrWakeUp[0][5].thr_unit = 120;
   if( ReadIni.GetField( FileName, "[Rainfall]", "RfThrWU5thr_value", 0, ThrWakeUp[0][5].thr_value ) )
      ThrWakeUp[0][5].thr_value = 1200; 

   if( ReadIni.GetField( FileName, "[Rainfall]", "RfThrWU6thr_unit", 0, ThrWakeUp[0][6].thr_unit ) )
      ThrWakeUp[0][6].thr_unit = 180;
   if( ReadIni.GetField( FileName, "[Rainfall]", "RfThrWU6thr_value", 0, ThrWakeUp[0][6].thr_value ) )
      ThrWakeUp[0][6].thr_value = 1800; 
      

   if( ReadIni.GetField( FileName, "[WaterLevel]", "InitWaterLevel", 0, InitWaterLevel ) )	 
	     strcpy( InitWaterLevel, "1000" );
	 if( ReadIni.GetField( FileName, "[WaterLevel]", "WLDWU", 0, DataWakeUp[1] ) )
       DataWakeUp[1]= 0;       if( ReadIni.GetField( FileName, "[WaterLevel]", "WLTWU", 0, TimingWakeUp[1] ) )
       TimingWakeUp[1]= 8;
   if( ReadIni.GetField( FileName, "[WaterLevel]", "WLIvTWU", 0, IvtimeWakeUp[1] ) )
      IvtimeWakeUp[1] = 15;
   if( ReadIni.GetField( FileName, "[WaterLevel]", "WLNumofThr", 0, Num_of_thr[1] ) )
      Num_of_thr[1] = 2;
   if( ReadIni.GetField( FileName, "[WaterLevel]", "WLIvtime", 0, Ivtime[1] ) )
      Ivtime[1] = 5;
      
   if( ReadIni.GetField( FileName, "[WaterLevel]", "WLThrWU0thr_unit", 0, ThrWakeUp[1][0].thr_unit ) )
      ThrWakeUp[1][0].thr_unit = 0;
   if( ReadIni.GetField( FileName, "[WaterLevel]", "WLThrWU0thr_value", 0, ThrWakeUp[1][0].thr_value ) )
      ThrWakeUp[1][0].thr_value = 100;

   if( ReadIni.GetField( FileName, "[WaterLevel]", "WLThrWU1thr_unit", 0, ThrWakeUp[1][1].thr_unit ) )
      ThrWakeUp[1][1].thr_unit = 0;
   if( ReadIni.GetField( FileName, "[WaterLevel]", "WLThrWU1thr_value", 0, ThrWakeUp[1][1].thr_value ) )
      ThrWakeUp[1][1].thr_value = 150;        

   if( ReadIni.GetField( FileName, "[WaterLevel]", "WLThrWU2thr_unit", 0, ThrWakeUp[1][2].thr_unit ) )
      ThrWakeUp[1][2].thr_unit = 0;
   if( ReadIni.GetField( FileName, "[WaterLevel]", "WLThrWU2thr_value", 0, ThrWakeUp[1][2].thr_value ) )
      ThrWakeUp[1][2].thr_value = 200;   

   if( ReadIni.GetField( FileName, "[WaterLevel]", "WLThrWU3thr_unit", 0, ThrWakeUp[1][3].thr_unit ) )
      ThrWakeUp[1][3].thr_unit = 0;
   if( ReadIni.GetField( FileName, "[WaterLevel]", "WLThrWU3thr_value", 0, ThrWakeUp[1][3].thr_value ) )
      ThrWakeUp[1][3].thr_value = 250;  

   if( ReadIni.GetField( FileName, "[WaterLevel]", "WLThrWU4thr_unit", 0, ThrWakeUp[1][4].thr_unit ) )
      ThrWakeUp[1][4].thr_unit = 0;
   if( ReadIni.GetField( FileName, "[WaterLevel]", "WLThrWU4thr_value", 0, ThrWakeUp[1][4].thr_value ) )
      ThrWakeUp[1][4].thr_value = 300;
   
   if( ReadIni.GetField( FileName, "[WaterLevel]", "WLThrWU5thr_unit", 0, ThrWakeUp[1][5].thr_unit ) )
      ThrWakeUp[1][5].thr_unit = 0;
   if( ReadIni.GetField( FileName, "[WaterLevel]", "WLThrWU5thr_value", 0, ThrWakeUp[1][5].thr_value ) )
      ThrWakeUp[1][5].thr_value = 350; 
   
   if( ReadIni.GetField( FileName, "[WaterLevel]", "WLThrWU6thr_unit", 0, ThrWakeUp[1][6].thr_unit ) )
      ThrWakeUp[1][6].thr_unit = 40;
   if( ReadIni.GetField( FileName, "[WaterLevel]", "WLThrWU6thr_value", 0, ThrWakeUp[1][6].thr_value ) )
      ThrWakeUp[1][6].thr_value = 400;     
                
   return 0;
   
}


///////////////////////////////////add by wuhuan 2006.03.03
/*int WriteIniPara( char *FileName, char *Group, char *IPStr, int PortNum )
{
	 ReadIni.WriteField( FileName, Group, "RemoteIP",  IPStr );
      
   ReadIni.WriteField( FileName, Group, "RemotePort",  PortNum ); 
   
   return 0;      
}*/

// return = 0: data is unavailable
//        > 0: data is available, and in pDat
/*int GetDataFromCOM( int PortNum, char* pDat, int len )
{
   int i, i1;
   for( i=0; i<len; )
   {
      NB_Delay(1);
      i1 = GetInputData( PortNum );
      if( i1!=-1 )
	    {
	       pDat[i] = (char)i1;	       
	       if(GetKPState==LOCK) printf("%x", pDat[i]);	       
	       i++;	
	       if(i>8) 
	       {
	       	  if(pDat[pDat[6]+8]==0x16)  return i;	
	       }             
	    }
      else break;

   }
   return i;
}

int GetDataFromCOM( int PortNum, unsigned char* pDat, int maxlen )
{
	 static  int i;
   int  j, i1;
   int datalen;
   unsigned long    StartTick, CurrentTick;
   
   //StartTick = clock( );
   for( i=0; i<maxlen; )
   {
      i1 = GetInputData( PortNum );
      if( i1!=-1 )
	    {  
	    	 StartTick = clock( );
	    	 
	       pDat[i] = (unsigned char)i1;
   
	       i++;
	       
	       	 
	       if((i=1)&&(pDat[0]!=0x68)) 
	       {
	       	  //pDat[0]='\0';
	       	  i=0;
	       	  return 0;
	       }
	       
	       
	       
	       
	       if(GetKPState==LOCK) printf("%x", pDat[i]);	       
	       
	       	       
	       if((i>4)&&(pDat[4]!=0x68)) 
	       {  
	       	  //for(j=0; j<5; j++)
	       	   //pDat[j]='\0';
	       	  i=0;  
	       	  return 0; 
	       }	  
	                
	       if(i==7)
	       { 
	       	  datalen = (int)pDat[6];
	       	  if(datalen>(maxlen-8)) 
	       	  	{
	       	  		i=0;
	       	  		return 0;
	       	  	}	
	       return 0;
         }
         
         
	       if(i>8) 
	       {  
	       	  if(i>datalen+8) 
	       	  {
	       	     if(pDat[pDat[6]+8]==0x16)  return i;	
	       	     else 
	       	     {
	       	     	  //for(j=0; j<pDat[6]+9; j++)
	       	     	    //pDat[j]='\0';
	       	     	    return 0;
	       	     }
	       	  }
	       }            
	    }
	    
	    else
	    {  
	    	 if(i>0)
	    	 {
	          CurrentTick = clock( );
	          if( CurrentTick >= (StartTick+1)) return 0;
	       }
	       else break;
	    }        

   }
   
   return i;
}*/

int GetDataFromCOM( int PortNum, unsigned char* pDat, int maxlen )
{
	 static  int i=0;
	 static unsigned long    StartTick;
	 
   int  j, i1;
   int datalen;
   unsigned long    CurrentTick;
   
   
      i1 = GetInputData( PortNum );
      
      if(i1==-1 )
	    {  
	    	 if (i>0)
	    	 {	
	    	 	 CurrentTick = clock( );
	 	       if( CurrentTick > (StartTick+1)) ///////55ms越限
  	    		 i=0;   
	 	     	}
  
  
	   	return 0; 
	    } 
	     StartTick = clock( );	
	     i++;
	     pDat[i-1] = (unsigned char)i1;	
	   
	       	 
	       if((i==1)&&(pDat[0]!=0x68))    i=0;
      	       
	       if((i==5)&&(pDat[4]!=0x68))    i=0;  

	       if(i==7)
	       { 
	       	  datalen = (int)pDat[6];
	       	  if(datalen>(maxlen-8)) 
	       	  		i=0;
         }
         
         
	       if(i>8) 
	       {  
	        	datalen = (int)pDat[6];
	       	  if(i==(datalen+9)) 
	       	  {
	       	     if(pDat[i-1]!=0x16)  i=0;
                else
	       	     	{
	       	     		/*if(GetKPState==LOCK)
	       	     			{
	       	     				for (j=0;j<i;j++)
	       	     				 printf("%x", pDat[j]);
	       	     				 	
	       	     			}*/
	       	     			j=i;
	  				       
	       	     		  i=0;
	       	     	    return j;	
                }
	       	  }
	       }            
	    
   
   return 0;
}



int SendDataToCOM( int PortNum, char* pDat, int len )
{
   int i;
   for( i=0; i<len; i++ )
   {
       PutOutputData( PortNum, pDat[i] );
   }
   StartSend( PortNum );// 无此句则需调用相应的函数取端口上的数据;
   return 0;
}

void GPRSPowerOnCheck( )
{
   if( !GPRSPowerIsOn( ) ) //检查GPRS是否启动
     {
        DisableIGT( );
        NB_Delay( 100 );
        EnableIGT( );
        NB_Delay( 200 );
        DisableIGT( );
        NB_Delay( 2000 );
     }
}   
 
  
int ReInitUART(int ComNum,int BaudNum,int Parity )
{
	  if( TCPManager[0]->IsTimeout( )||TCPManager[1]->IsTimeout( ))   //超时以后才重新初始化串口
	  {
	  		InitUART( ComNum, BaudNum ,Parity );
        InstallISR( ComNum );	
        return 1;              
    }
    return 0;
}    

void SaveSvrAddr( )
{
	  SERVER_ID   *CurrentServer_ID; 

	  CurrentServer_ID=TCPManager[0]->GetServer_ID( );
	  
	  ReadIni.WriteField( "Config.ini", "[CONFIG1]", "RemoteIP",  CurrentServer_ID->IPStr );
	  ReadIni.WriteField( "Config.ini", "[CONFIG1]", "RemotePort",  CurrentServer_ID->Port );
    
    //clrscr( );
    
	  printf("RemoteIP1:%s\n", CurrentServer_ID->IPStr);
	  printf("RemotePort1:%d\n", CurrentServer_ID->Port);
	  
	 // NB_Delay(2000);
	  
	  CurrentServer_ID=TCPManager[1]->GetServer_ID( );
	  
	  ReadIni.WriteField( "Config.ini", "[CONFIG2]", "RemoteIP",  CurrentServer_ID->IPStr );
	  ReadIni.WriteField( "Config.ini", "[CONFIG2]", "RemotePort",  CurrentServer_ID->Port );	  
	  
	  printf("RemoteIP2:%s\n", CurrentServer_ID->IPStr);
	  printf("RemotePort2:%d\n", CurrentServer_ID->Port);	
	  	
	//  NB_Delay(2000);  
	    
}

void SaveNewPassword( )
{
	  ReadIni.WriteField( "Config.ini", "[Info]", "PassWord",  PasswordBuff );
	  printf("PassWord:%s\n", PasswordBuff );
}

void SaveNetPara( )
{
	  ReadIni.WriteField( "Config.ini", "[CONFIG1]", "HeartBeat",  HeartBeat );
	  ReadIni.WriteField( "Config.ini", "[CONFIG2]", "HeartBeat",  HeartBeat );	  
	  ReadIni.WriteField( "Config.ini", "[Info]", "TalkTime",  TalkTime );
	  printf("HeartBeat:%d\n", HeartBeat );
	  printf("TalkTime:%d\n", TalkTime );
	//  NB_Delay(2000);
}

void SaveInitWaterLevel( )
{
    ReadIni.WriteField( "Config.ini", "[WaterLevel]", "InitWaterLevel",  InitWaterLevel );
	  printf("InitWaterLevel:%s\n", InitWaterLevel );
//	  NB_Delay(2000);    
}

void SaveAllNewConfigInfo( )
{
	  SaveSvrAddr( );
	  SaveNewPassword( );
	  SaveNetPara( );
	  SaveInitWaterLevel( );
}

void CloseAllTCPConn( )
{      	     	   
	   Send_TermTCPConnInfo_to_Center(  );
	   	     
     TCPManager[0]->Close( );
     TCPManager[1]->Close( );
          
     ForcePPPLinkDown( );   
     TermPPPNet( );  
       	  	      
     TCPManager[0]->SetTimeoutCnt( 300 );    //设置多长时间后再次初始化串口  
     TCPManager[1]->SetTimeoutCnt( 300 );     
        	         	
}

⌨️ 快捷键说明

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