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

📄 per_q.c

📁 SDH光端机支路单元盘开发,都是作者工程实践的经验总结,具有很高的工程指导价值和现实推广前景
💻 C
字号:
/****************************************/
/* Copyright (c) 2004, 通信工程学院戴佳 */
/* All rights reserved.                 */
/* 作    者:戴佳                       */
/****************************************/


//性能查询
#include <other.h>
void PolFill(struct instruction AlmValue);
void Perf_query()
{
   //struct instruction AlmVal;
   struct instruction PolVal;
   uchar i,j;
   uchar xdata tmp[16];
   uchar xdata tmp2[16];
   if (f40ms==1)
   {
     f40ms=0;
     for (i=0;i<16;i++)
     {
       switch (i)
       {
         case 0: tmp[i]=M1_033;tmp2[i]=M1_034;break;
         case 1: tmp[i]=M1_063;tmp2[i]=M1_064;break;
         case 2: tmp[i]=M1_093;tmp2[i]=M1_094;break;
         case 3: tmp[i]=M1_0C3;tmp2[i]=M1_0C4;break;
         case 4: tmp[i]=M2_033;tmp2[i]=M2_034;break;
         case 5: tmp[i]=M2_063;tmp2[i]=M2_064;break;
         case 6: tmp[i]=M2_093;tmp2[i]=M2_094;break;
         case 7: tmp[i]=M2_0C3;tmp2[i]=M2_0C4;break;
         case 8: tmp[i]=M3_033;tmp2[i]=M3_034;break;
         case 9: tmp[i]=M3_063;tmp2[i]=M3_064;break;
         case 10: tmp[i]=M3_093;tmp2[i]=M3_094;break;
         case 11: tmp[i]=M3_0C3;tmp2[i]=M3_0C4;break;
         case 12: tmp[i]=M4_033;tmp2[i]=M4_034;break;
         case 13: tmp[i]=M4_063;tmp2[i]=M4_064;break;
         case 14: tmp[i]=M4_093;tmp2[i]=M4_094;break;
         case 15: tmp[i]=M4_0C3;tmp2[i]=M4_0C4;break;
       }
       CounterBIP[i]=CounterBIP[i]+tmp[i];     
     }
   }
   if (f1s==0x01)
   {
     f1s=0;
     for (i=0;i<16;i++)
     {      
       if (f[i]==1)
       {
       if ((CounterBIP[i]>0)&&(CounterBIP[i]<SESNUM))
       {
         CounterES[i]++;
         if ((CounterES[i]>=ESThre[i])&&(ESAlm[i]==0)&&(FgPEREn[i]==1))
         {
           ESAlm[i]=1;
           PolVal.head=0x08;
           PolVal.oper_obj=16;
           PolVal.ObjVal[0]=i;
           PolFill(PolVal);
         }
         if (USFlag[i]==0)
           k[i]=0;
         else if (m!=0)
           m[i]--;
         else
         {
           USFlag[i]=0;
           CounterUS[i]=CounterUS[i]-10;
          // l=0;
         }

       }
       else if (CounterBIP[i]>=SESNUM)
       {
         CounterES[i]++;
         CounterSES[i]++;
         if ((CounterSES[i]>=SESThre[i])&&(SESAlm[i]==0)&&(FgPEREn[i]==1))
         {
           SESAlm[i]=1;
           PolVal.head=0x08;
           PolVal.oper_obj=17;
           PolVal.ObjVal[0]=i;
           PolFill(PolVal);
         }
         if (k[i]!=10)
          k[i]++;
         else
         {
           if (USFlag[i]==0)
           {
             USFlag[i]=1;
             CounterUS[i]=CounterUS[i]+11;
           }
           else
             CounterUS[i]++;
           if ((CounterUS[i]>=USThre[i])&&(USAlm[i]==0)&&(FgPEREn[i]==1))
           {
             USAlm[i]=1;
             PolVal.head=0x08;
             PolVal.oper_obj=18;
             PolVal.ObjVal[0]=i;
             PolFill(PolVal);
           }
           m[i]=10;
         }
       }
       }
       CounterBIP[i]=0;      
     }
     if (f15min==1)
     {
       f15min=0;
       for (i=0;i<7;i++)
       {
         for (j=0;j<16;j++)
         {
           switch (i)
           {
              case 0:
                if (CounterES[j]-CounterUS[j]>255)
                {
                  *(AddrDPR+PERQ_ST_ADDR_L+(PERQ_ST_ADDR_H<<8)+((i*16+j)<<3)+2)=(CounterES[j]-CounterUS[j])>>8;
                  *(AddrDPR+PERQ_ST_ADDR_L+(PERQ_ST_ADDR_H<<8)+((i*16+j)<<3)+3)=(CounterES[j]-CounterUS[j])&0x00FF;
                }
                else
                {
                  *(AddrDPR+PERQ_ST_ADDR_L+(PERQ_ST_ADDR_H<<8)+((i*16+j)<<3)+2)=0;
                  *(AddrDPR+PERQ_ST_ADDR_L+(PERQ_ST_ADDR_H<<8)+((i*16+j)<<3)+3)=CounterES[j]-CounterUS[j];
                }
                break;
              case 1:
                if (CounterSES[j]-CounterUS[j]>255)
                {
                  *(AddrDPR+PERQ_ST_ADDR_L+(PERQ_ST_ADDR_H<<8)+((i*16+j)<<3)+2)=(CounterSES[j]-CounterUS[j])>>8;
                  *(AddrDPR+PERQ_ST_ADDR_L+(PERQ_ST_ADDR_H<<8)+((i*16+j)<<3)+3)=(CounterSES[j]-CounterUS[j])&0x00FF;
                }
                else
                {
                  *(AddrDPR+PERQ_ST_ADDR_L+(PERQ_ST_ADDR_H<<8)+((i*16+j)<<3)+2)=0;
                  *(AddrDPR+PERQ_ST_ADDR_L+(PERQ_ST_ADDR_H<<8)+((i*16+j)<<3)+3)=CounterSES[j]-CounterUS[j];
                }
                break;
              case 2:
                if (CounterUS[j]>255)
                {
                  *(AddrDPR+PERQ_ST_ADDR_L+(PERQ_ST_ADDR_H<<8)+((i*16+j)<<3)+2)=CounterUS[j]>>8;
                  *(AddrDPR+PERQ_ST_ADDR_L+(PERQ_ST_ADDR_H<<8)+((i*16+j)<<3)+3)=CounterUS[j]&0x00FF;
                }
                else
                {
                  *(AddrDPR+PERQ_ST_ADDR_L+(PERQ_ST_ADDR_H<<8)+((i*16+j)<<3)+2)=0;
                  *(AddrDPR+PERQ_ST_ADDR_L+(PERQ_ST_ADDR_H<<8)+((i*16+j)<<3)+3)=CounterUS[j];
                }
                break;
              case 3:
                break;
              case 4:
                break;
              case 5:
                break;
              case 6:
                break;
           }
         }
       }
       PolVal.head=0x10;
       PolFill(PolVal);
       for (i=0;i<16;i++)
       {
         CounterES[i]=0;
         CounterSES[i]=0;
         CounterUS[i]=0;
         ESAlm[i]=0;
         SESAlm[i]=0;
         USAlm[i]=0;
       }
     }
   }
}

⌨️ 快捷键说明

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