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

📄 101.c

📁 此源代码为电力系统中的RTU终端反馈!具有GPRS通讯功能!
💻 C
📖 第 1 页 / 共 4 页
字号:
     nVarQualifier.NumsOfObject=1;         
     memcpy(&TCommCode[7],&nVarQualifier,1);
     TCommCode[10]=nYKObject;                   //INFORMATION OBJECT ADDRESS
     TCommCode[11]=0x0B;
     TCommCode[12]=nYKQualifier;                //YK command qualifier   

     nASDULen=7;                                 //1+6
     return;                      
  }
  

  if(nTypeIdentity==C_RP_NC_1)                 //substation reset
  {
     nVarQualifier.SQ=0;
     nVarQualifier.NumsOfObject=1;        
     memcpy(&TCommCode[7],&nVarQualifier,1); 
     TCommCode[10]=0x0;                      //INFORMATION OBJECT ADDRESS
     TCommCode[11]=0x0;
     TCommCode[12]=0x1;                      //qualifier
     nASDULen=7;                              //1+6

	   SpecialFlag.FileTxFlag=0;  //05_11_5
       SpecialFlag.nSGCount=0;		//05_11_5
     return;
  }
  
  if(nTypeIdentity==P_ME_NA_1)                       //parameter setting
  {
       nVarQualifier.SQ=0;
       nVarQualifier.NumsOfObject=1;        
       memcpy(&TCommCode[7],&nVarQualifier,1); 
       
       TCommCode[10]=nGroup;                        //INFORMATION OBJECT ADDRESS
       TCommCode[11]=0x0B;
      
       i=nVarQualifier.NumsOfObject;     
       if(nGroup>=0x9b)
       {//电度底数
         nASDULen= 11; 
         memcpy(TCommCode+12,RCommCode+12 ,4); 
       }                   
       else  
       {  
         nASDULen= 9;
         memcpy(TCommCode+12,RCommCode+12 ,2); 
       }
       return;    
  }
  
  if(nTypeIdentity==P_AC_NA_1)                   //参数激活
  {
       nVarQualifier.SQ=0;
       nVarQualifier.NumsOfObject=1;        
       memcpy(&TCommCode[7],&nVarQualifier,1);   
       memcpy(TCommCode+9,RCommCode+9 ,4); 
       nASDULen=7;                                 //1+6
       return;       
  }
  
  if(nTypeIdentity==C_CS_NA_1)             //时钟同步//////////////////////////////////////////////////////////
  {
     memcpy(&TCommCode[7],&nVarQualifier,1); 
     memcpy(&TCommCode[10],&RCommCode[10],9); 
     nASDULen=13;                                 //1+6
     return;
  }
 
  if(nTypeIdentity==F_DR_TA_1)//目录响应
  {
      nVarQualifier.SQ=0;
      nVarQualifier.NumsOfObject=1;        
      memcpy(&TCommCode[7],&nVarQualifier,1); 
      TCommCode[10]=0XEA;                        //INFORMATION OBJECT ADDRESS
      TCommCode[11]=0x0c;
      memcpy(&TCommCode[12],&RCommCode[12],2);
      if( (RCommCode[13]&0xc0 ) == 0x40)
     { 
       TCommCode[14]=0xc0;
       TCommCode[15]=0x05;
       TCommCode[16]=0;
      }
      if( (RCommCode[13]&0xc0 ) == 0x80)
     {
      TCommCode[14]=0xfd;
      TCommCode[15]=0;
      TCommCode[16]=0;
      }
     if( (RCommCode[13]&0xc0 ) == 0xc0)
     {
      TCommCode[14]=0x82;
      TCommCode[15]=0x01;
      TCommCode[16]=0;
      }
      
      TCommCode[17]=0x80;//SOF
      TCommCode[18]=(BYTE)(stDateTime.MillSecond);   //ms
      TCommCode[19]=(BYTE)(stDateTime.MillSecond>>8);     //ms
      memcpy(&TCommCode[20],&stDateTime.minute,5);
      nASDULen=19;                                 //1+6
      return;
  } 
 
  if(nTypeIdentity==F_FR_NA_1)//文件准备好确认帧
  {
      nVarQualifier.SQ=0;
      nVarQualifier.NumsOfObject=1;        
      memcpy(&TCommCode[7],&nVarQualifier,1); 
      TCommCode[10]=0XEA;                        //INFORMATION OBJECT ADDRESS
      TCommCode[11]=0x0c;
      memcpy(&TCommCode[12],&RCommCode[12],2);
      if( (RCommCode[13]&0xc0 ) == 0x40)
     { 
       TCommCode[14]=0xc0;
       TCommCode[15]=0x05;
       TCommCode[16]=0;
      }
      if( (RCommCode[13]&0xc0 ) == 0x80)
     {
      TCommCode[14]=0xfd;
      TCommCode[15]=0;
      TCommCode[16]=0;
      }
     if( (RCommCode[13]&0xc0 ) == 0xc0)
     {
      TCommCode[14]=0x82;
      TCommCode[15]=0x01;
      TCommCode[16]=0;
      }
      TCommCode[17]=0; //FRQ
      nASDULen=12;                                
      return;
  } 

  if(nTypeIdentity==F_SR_NA_1)//节准备好确认帧
  {
      nVarQualifier.SQ=0;
      nVarQualifier.NumsOfObject=1;        
      memcpy(&TCommCode[7],&nVarQualifier,1); 
      TCommCode[10]=0XEA;                        //INFORMATION OBJECT ADDRESS
      TCommCode[11]=0x0c;
      memcpy(&TCommCode[12],&RCommCode[12],3);
     if( (RCommCode[13]&0xc0 ) == 0x40)
     { TCommCode[15]=0xc0;
       TCommCode[16]=0x05;
       TCommCode[17]=0;
      }
      if( (RCommCode[13]&0xc0 ) == 0x80)
     {
      TCommCode[15]=0xfd;
      TCommCode[16]=0;
      TCommCode[17]=0;
      }
     if( (RCommCode[13]&0xc0 ) == 0xc0)
     {
      TCommCode[15]=0x82;
      TCommCode[16]=0x01;
      TCommCode[17]=0;
      }
      TCommCode[18]=0;     //FRQ
      nASDULen=13;                                 //1+6
      return;
  }
 
 if(nTypeIdentity==F_LS_NA_1)//最后段或节确认帧
  {
      nVarQualifier.SQ=0;
      nVarQualifier.NumsOfObject=1;        
      memcpy(&TCommCode[7],&nVarQualifier,1); 
      TCommCode[10]=0XEA;                        //INFORMATION OBJECT ADDRESS
      TCommCode[11]=0x0c;
      memcpy(&TCommCode[12],&RCommCode[12],3);
      TCommCode[15]=SpecialFlag.LSQ;
      TCommCode[16]=SpecialFlag.CHS;
      nASDULen=11;                                 //1+6
      return;
  }
 
 
  if(nTypeIdentity==F_SG_NA_1)                      //file transfer 
  {
  
      nVarQualifier.SQ=0;
      nVarQualifier.NumsOfObject=1;        
      memcpy(&TCommCode[7],&nVarQualifier,1); 
      TCommCode[10]=0XEA;                        //INFORMATION OBJECT ADDRESS
      TCommCode[11]=0x0c;
      if( ( (RCommCode[13]&0xC0) >>6) ==1) //1-整点数据
      {
       memcpy(&TCommCode[12],&RCommCode[12],3);
       EncodeHistData();   //15....总长度-2
       nASDULen=195;                                 //err???
      return;
      }
      if( ( (RCommCode[13]&0xC0) >>6) ==2) //2-统计数据
      {
       memcpy(&TCommCode[12],&RCommCode[12],3);
       nASDULen=EncodeStaticData();  //15....总长度-2
       nASDULen+=9;
      return;
      }
      if( ( (RCommCode[13]&0xC0) >>6) ==3) //3-录波数据
      {
       memcpy(&TCommCode[12],&RCommCode[12],3);
       nASDULen=EncodeLuboData();  
       nASDULen+=9;
      return;
      }

      TCommCode[13]= RCommCode[13]; //stFileName.month;  //file name
      TCommCode[12]= RCommCode[12]; //stFileName.week_date;
      TCommCode[14]=nGroup;                      //section name
      
      if(nGroup<=23)                              //records of per hour
      {
        stFileName.hour=nGroup;
        stFileName.minute=0;
        ReadHisData(&TCommCode[16],&nFileDataLen,&stFileName,1,MAXLENGTH);
      
        TCommCode[15]=nFileDataLen;
        
        nFileDataLen=0;
        nASDULen=TCommCode[15]+10;
       
        return ;    
      }      
      if(nGroup==UA_NUM)                   //ua 
      {
        ReadHisData(&TCommCode[16],(&nFileDataLen),&stFileName,21, MAXLENGTH);
        TCommCode[15]=nFileDataLen;
        nFileDataLen=0; 
        nASDULen=TCommCode[15]+10;
         
         return ;    
      }
      if(nGroup==UB_NUM)                  //ub
      {
        ReadHisData(&TCommCode[16],&nFileDataLen,&stFileName,22 , MAXLENGTH);
        TCommCode[15]=nFileDataLen;
        nFileDataLen=0; 
        nASDULen=TCommCode[15]+10;
        return ;    
   
      }
      if(nGroup==UC_NUM)                //uc
      {
        ReadHisData(&TCommCode[16],&nFileDataLen,&stFileName,23, MAXLENGTH);
        TCommCode[15]=nFileDataLen;
        nFileDataLen=0; 
        nASDULen=TCommCode[15]+10;
         
        return ;    
      }
      if(nGroup==IA_NUM)              //Ia
      {
        ReadHisData(&TCommCode[16],&nFileDataLen,&stFileName,24, MAXLENGTH);
        TCommCode[15]=nFileDataLen;
        nFileDataLen=0; 
        nASDULen=TCommCode[15]+10;
         
        return ;    
      }
      if(nGroup==IB_NUM)              //Ib
      {
        ReadHisData(&TCommCode[16],&nFileDataLen,&stFileName,25, MAXLENGTH);
        TCommCode[15]=nFileDataLen;
        nFileDataLen=0; 
        nASDULen=TCommCode[15]+10;
        return ;    
      }
      if(nGroup==IC_NUM)            //Ic
      {
        ReadHisData(&TCommCode[16],&nFileDataLen,&stFileName,26, MAXLENGTH);
        TCommCode[15]=nFileDataLen;
        nFileDataLen=0; 
        nASDULen=TCommCode[15]+10;
        return ;    
      }
      if(nGroup==I0_NUM)            //I0
      {
        ReadHisData(&TCommCode[16],&nFileDataLen,&stFileName,27, MAXLENGTH);
        TCommCode[15]=nFileDataLen;
        nFileDataLen=0; 
        nASDULen=TCommCode[15]+10;
        return ;    
      }
      if(nGroup==P_NUM)
      {
        ReadHisData(&TCommCode[16],&nFileDataLen,&stFileName,28, MAXLENGTH);
        TCommCode[15]=nFileDataLen;
        _NOP();
        nFileDataLen=0; 
        nASDULen=TCommCode[15]+10;
        return ;    
      }
     if(nGroup==Q_NUM)
      {
        ReadHisData(&TCommCode[16],&nFileDataLen,&stFileName,29, MAXLENGTH);
        TCommCode[15]=nFileDataLen;
        _NOP();
        nFileDataLen=0; 
        nASDULen=TCommCode[15]+10;
        return ;    
      }
           
      if(nGroup==PSUM_NUM)                            //A R
      {
        ReadHisData(&TCommCode[16],&nFileDataLen,&stFileName,19, MAXLENGTH);
        TCommCode[15]=nFileDataLen;
        nFileDataLen=0; 
        nASDULen=TCommCode[15]+10;         
        return ;    
      }
      if(nGroup==QSUM_NUM)
      {
        return ;    
      }
      if(nGroup==TTUP_NUM)                            //here ,look upon the section name as the group number!
      {
        TCommCode[15]=40;                           //the length of segment
        memcpy(&TCommCode[16],(BYTE*)&TTU_RunParam.UHighV,40 );
        nASDULen= TCommCode[15] +10;                                
        return;
      }
      
      if(nGroup==YCO_NUM)
      {
        ReadStaticsData(&TCommCode[16],&nFileDataLen,&stFileName,11, MAXLENGTH);
        TCommCode[15]=nFileDataLen;
        nFileDataLen=0; 
        nASDULen=TCommCode[15]+10;         
        return ;    
      }
      if(nGroup==YCM_NUM)
      {
        ReadStaticsData(&TCommCode[16],&nFileDataLen,&stFileName,12, MAXLENGTH);
        TCommCode[15]=nFileDataLen;
        nFileDataLen=0; 
        nASDULen=TCommCode[15]+10;         
         
        return ;    
      }
      if(nGroup==POW_NUM)//TTU运行状态
      {
        ReadStaticsData(&TCommCode[16],&nFileDataLen,&stFileName,13, MAXLENGTH);
        TCommCode[15]=nFileDataLen;
        nFileDataLen=0; 
        nASDULen=TCommCode[15]+10;         
         
        return ;    
      }
      if(nGroup==PSHUT_NUM)
      {
        ReadStaticsData(&TCommCode[16],&nFileDataLen,&stFileName,14, MAXLENGTH);

⌨️ 快捷键说明

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