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

📄 alm_q.c

📁 SDH光端机支路单元盘开发程序
💻 C
📖 第 1 页 / 共 3 页
字号:
/****************************************/
/* Copyright (c) 2004, 通信工程学院戴佳 */
/* All rights reserved.                 */
/* 作    者:戴佳                       */
/****************************************/

#include <other.h>

void PolFill(struct instruction PolValue);
void AlmInd(struct instruction AlmValue);
void M1PAlmQ();
void M2PAlmQ();
void M3PAlmQ();
void M4PAlmQ();

void Alm_query()
{ 
  struct instruction AlmVal;
  struct instruction PolVal;
  uchar TMP;    
  uchar tmp_f1=0;
  uchar tmp_f2=0;
  uchar tmp_f3=0;
  uchar tmp_f4=0;

  tmp_f1=f[0]+f[1]+f[2]+f[3];       //Mapper 1
  tmp_f2=f[4]+f[5]+f[6]+f[7];       //Mapper 2
  tmp_f3=f[8]+f[9]+f[10]+f[11];     //Mapper 3
  tmp_f4=f[12]+f[13]+f[14]+f[15];   //Mapper 4
  if ((FgADLOC==0)&&((((M1_023&0x80)==0x80)&&(tmp_f1!=0))||(((M2_023&0x80)==0x80)&&(tmp_f2!=0))
    ||(((M3_023&0x80)==0x80)&&(tmp_f3!=0))||(((M4_023&0x80)==0x80)&&(tmp_f4!=0)))) //ADLOC
  {

      FgADLOC=1;
      AlmVal.head=0x08;
      AlmVal.oper_obj=1;
      AlmVal.ObjVal[0]=0;
      AlmVal.ObjVal[1]=0xFF;
      AlmInd(AlmVal);
  }
  else if (FgADLOC==1)
  {
    if  (
        (((M1_023&0x80)!=0x80)||(tmp_f1==0))
        &&(((M2_023&0x80)!=0x80)||(tmp_f2==0))
        &&(((M3_023&0x80)!=0x80)||(tmp_f3==0))
        &&(((M4_023&0x80)!=0x80)||(tmp_f4==0))
        )
    {
      FgADLOC=0;
      AlmVal.head=0x08;
      AlmVal.oper_obj=1;
      AlmVal.ObjVal[0]=0;
      AlmVal.ObjVal[1]=0;
      AlmInd(AlmVal);
    }
  }
  if ((FgAALOC==0)&&((((M1_023&0x40)==0x40)&&(tmp_f1!=0))||(((M2_023&0x40)==0x40)&&(tmp_f2!=0))
    ||(((M3_023&0x40)==0x40)&&(tmp_f3!=0))||(((M4_023&0x40)==0x40)&&(tmp_f4!=0)))) //AALOC
  {
      FgAALOC=1;
      AlmVal.head=0x08;
      AlmVal.oper_obj=1;
      AlmVal.ObjVal[0]=1;
      AlmVal.ObjVal[1]=0xFF;
      AlmInd(AlmVal);
  }
  else if (FgAALOC==1)
  {
    if  (
        (((M1_023&0x40)!=0x40)||(tmp_f1==0))
        &&(((M2_023&0x40)!=0x40)||(tmp_f2==0))
        &&(((M3_023&0x40)!=0x40)||(tmp_f3==0))
        &&(((M4_023&0x40)!=0x40)||(tmp_f4==0))
        )
    {
      FgAALOC=0;
      AlmVal.head=0x08;
      AlmVal.oper_obj=1;
      AlmVal.ObjVal[0]=1;
      AlmVal.ObjVal[1]=0;
      AlmInd(AlmVal);
    }
  }

  if ((FgAUAIS==0)&&((((M1_023&0x01)==0x01)&&(tmp_f1!=0))||(((M2_023&0x01)==0x01)&&(tmp_f2!=0))
    ||(((M3_023&0x01)==0x01)&&(tmp_f3!=0))||(((M4_023&0x01)==0x01)&&(tmp_f4!=0)))) //A1UAISI
  {
        FgAUAIS=1;
        PolVal.head=0x08;
        PolVal.oper_obj=2;
        PolVal.ObjVal[0]=0;
        PolVal.ObjVal[1]=0xFF;
        PolFill(PolVal);
  }
  else if (FgAUAIS==1)
  {
     if (
        (((M1_023&0x01)!=0x01)||(tmp_f1==0))
        &&(((M2_023&0x01)!=0x01)||(tmp_f2==0))
        &&(((M3_023&0x01)!=0x01)||(tmp_f3==0))
        &&(((M4_023&0x01)!=0x01)||(tmp_f4==0))
        )
      {
        FgAUAIS=0;
        PolVal.head=0x08;
        PolVal.oper_obj=2;
        PolVal.ObjVal[0]=0;
        PolVal.ObjVal[1]=0;
        PolFill(PolVal);
      }
  }
  if ((FgADH4E=0)&&((((M1_025&0x01)==0x01)&&(tmp_f1!=0))||(((M2_025&0x01)==0x01)&&(tmp_f2!=0))
    ||(((M3_025&0x01)==0x01)&&(tmp_f3!=0))||(((M4_025&0x01)==0x01)&&(tmp_f4!=0)))) //A1DH4E  latched
  {
      FgADH4E=1;
      AlmVal.head=0x08;
      AlmVal.oper_obj=3;
      AlmVal.ObjVal[0]=0;
      AlmVal.ObjVal[1]=0xFF;
      AlmInd(AlmVal);
  }
  else if (FgADH4E==1)
  {
    if (
        (((M1_025&0x01)!=0x01)||(tmp_f1==0))
        &&(((M2_025&0x01)!=0x01)||(tmp_f2==0))
        &&(((M3_025&0x01)!=0x01)||(tmp_f3==0))
        &&(((M4_025&0x01)!=0x01)||(tmp_f4==0))
       )
    {
      FgADH4E=0;
      AlmVal.head=0x08;
      AlmVal.oper_obj=3;
      AlmVal.ObjVal[0]=0;
      AlmVal.ObjVal[1]=0;
      AlmInd(AlmVal);
    }
  }
  WDI=1;
  WDI=0;
  M1PAlmQ();
  M2PAlmQ();
  WDI=1;
  WDI=0;
  M3PAlmQ();
  M4PAlmQ();
  WDI=1;
  WDI=0;

    if (FgTLOS[0]==1)
    {
      TMP=T1_012&0x01;
      if ((f[0]==0)||(TMP==0x00))  //T1LOS
      {
        FgTLOS[0]=0;
        AlmVal.head=0x08;
        AlmVal.oper_obj=15;
        AlmVal.ObjVal[0]=0;
        AlmVal.ObjVal[1]=0;
        AlmInd(AlmVal);
        M1_050=M1_050&0xEF;  //TnAIS=0,cancel send AIS in transmit data stream
      }
    }
    if (FgTLOC[0]==1)
    {
      if (((M1_045&0x02)!=0x02)||(f[0]==0))  //T1LOC
      {
        FgTLOC[0]=0;
        AlmVal.head=0x08;
        AlmVal.oper_obj=1;
        AlmVal.ObjVal[0]=16;
        AlmVal.ObjVal[1]=0;
        AlmInd(AlmVal);
      }
    }
    if (FgAAIS[0]==1)
    {
      if (((M1_031&0x80)!=0x80)||(f[0]==0))  //A1AIS
      {
        FgAAIS[0]=0;
        PolVal.head=0x08;
        PolVal.oper_obj=2;
        PolVal.ObjVal[0]=16;
        PolVal.ObjVal[1]=0;
        PolFill(PolVal);
      }
    }
    if (FgTDAIS[0]==1)
    {
      if (((M1_045&0x01)!=0x01)||(f[0]==0))  //T1DAIS
      {
        FgTDAIS[0]=0;
        PolVal.head=0x08;
        PolVal.oper_obj=2;
        PolVal.ObjVal[0]=48;
        PolVal.ObjVal[1]=0;
        PolFill(PolVal);
      }
    }

    if (FgANDF[0]==1)
    {
      if (((M1_031&0x10)!=0x10)||(f[0]==0))  //A1NDF   NEW POINTER IND
      {
        FgANDF[0]=0;
        PolVal.head=0x08;
        PolVal.oper_obj=6;
        PolVal.ObjVal[0]=0;
        PolVal.ObjVal[1]=0;
        PolFill(PolVal);
      }
    }
    if (FgARDI[0]==1)
    {
      if (((M1_031&0x08)!=0x08)||(f[0]==0)) //A1RDI
      {
        FgARDI[0]=0;
        PolVal.head=0x08;
        PolVal.oper_obj=7;
        PolVal.ObjVal[0]=0;
        PolVal.ObjVal[1]=0;
        PolFill(PolVal);
      }
    }
    
    if (FgAUNEQ[0]==1)
    {
      if (((M1_031&0x02)!=0x02)||(f[0]==0)) //A1UNEQ
      {
        FgAUNEQ[0]=0;
        PolVal.head=0x08;
        PolVal.oper_obj=9;
        PolVal.ObjVal[0]=0;
        PolVal.ObjVal[1]=0;
        PolFill(PolVal);
      }
    }
    if (FgASLER[0]==1)
    {
      if (((M1_031&0x01)!=0x01)||(f[0]==0)) //A1SLER
      {
        FgASLER[0]=0;
        AlmVal.head=0x08;
        AlmVal.oper_obj=10;
        AlmVal.ObjVal[0]=0;
        AlmVal.ObjVal[1]=0;
        AlmInd(AlmVal);
      }
    }
    if (FgAJ2TIM[0]==1)
    {
      if (((M1_04F&0x04)!=0x04)||(f[0]==0)) //A1J2TIM
      {
        FgAJ2TIM[0]=0;
        AlmVal.head=0x08;
        AlmVal.oper_obj=12;
        AlmVal.ObjVal[0]=0;
        AlmVal.ObjVal[1]=0;
        AlmInd(AlmVal);
      }
    }
   
    if (FgTLOS[1]==1)
    {
      TMP=T1_052&0x01;
      if ((f[1]==0)||(TMP==0x00))  //T2LOS
      {
        FgTLOS[1]=0;
        AlmVal.head=0x08;
        AlmVal.oper_obj=15;
        AlmVal.ObjVal[0]=1;
        AlmVal.ObjVal[1]=0;
        AlmInd(AlmVal);
        M1_080=M1_080&0xEF;  //TnAIS=0,cancel send AIS in transmit data stream
      }
    }
    if (FgTLOC[1]==1)
    {
      if (((M1_075&0x02)!=0x02)||(f[1]==0))  //T2LOC
      {
        FgTLOC[1]=0;
        AlmVal.head=0x08;
        AlmVal.oper_obj=1;
        AlmVal.ObjVal[0]=17;
        AlmVal.ObjVal[1]=0;
        AlmInd(AlmVal);
      }
    }
    if (FgAAIS[1]==1)
    {
      if (((M1_061&0x80)!=0x80)||(f[1]==0))  //A2AIS
      {
        FgAAIS[1]=0;
        PolVal.head=0x08;
        PolVal.oper_obj=2;
        PolVal.ObjVal[0]=17;
        PolVal.ObjVal[1]=0;
        PolFill(PolVal);
      }
    }
    if (FgTDAIS[1]==1)
    {
      if (((M1_075&0x01)!=0x01)||(f[1]==0))  //T2DAIS
      {
        FgTDAIS[1]=0;
        PolVal.head=0x08;
        PolVal.oper_obj=2;
        PolVal.ObjVal[0]=49;
        PolVal.ObjVal[1]=0;
        PolFill(PolVal);
      }
    }
  
    if (FgANDF[1]==1)
    {
      if (((M1_061&0x10)!=0x10)||(f[1]==0))  //A2NDF
      {
        FgANDF[1]=0;
        PolVal.head=0x08;
        PolVal.oper_obj=6;
        PolVal.ObjVal[0]=1;
        PolVal.ObjVal[1]=0;
        PolFill(PolVal);
      }
    }
    if (FgARDI[1]==1)
    {
      if (((M1_061&0x08)!=0x08)||(f[1]==0)) //A2RDI
      {
        FgARDI[1]=0;
        PolVal.head=0x08;
        PolVal.oper_obj=7;
        PolVal.ObjVal[0]=1;
        PolVal.ObjVal[1]=0;
        PolFill(PolVal);
      }
    }
    
    if (FgAUNEQ[1]==1)
    {
      if (((M1_061&0x02)!=0x02)||(f[1]==0)) //A2UNEQ
      {
        FgAUNEQ[1]=0;
        PolVal.head=0x08;
        PolVal.oper_obj=9;
        PolVal.ObjVal[0]=1;
        PolVal.ObjVal[1]=0;
        PolFill(PolVal);
      }
    }
    if (FgASLER[1]==1)
    {
      if (((M1_061&0x01)!=0x01)||(f[1]==0)) //A2SLER
      {
        FgASLER[1]=0;
        AlmVal.head=0x08;
        AlmVal.oper_obj=10;
        AlmVal.ObjVal[0]=1;
        AlmVal.ObjVal[1]=0;
        AlmInd(AlmVal);
      }
    }
    if (FgAJ2TIM[1]==1)
    {
      if (((M1_07F&0x04)!=0x04)||(f[1]==0)) //A2J2TIM
      {
        FgAJ2TIM[1]=0;
        AlmVal.head=0x08;
        AlmVal.oper_obj=12;
        AlmVal.ObjVal[0]=1;
        AlmVal.ObjVal[1]=0;
        AlmInd(AlmVal);
      }
    }
    
    if (FgTLOS[2]==1)
    {
      TMP=T1_092&0x01;
      if ((f[2]==0)||(TMP==0x00))  //T3LOS
      {
        FgTLOS[2]=0;
        AlmVal.head=0x08;
        AlmVal.oper_obj=15;
        AlmVal.ObjVal[0]=2;
        AlmVal.ObjVal[1]=0;
        AlmInd(AlmVal);
        M1_0B0=M1_0B0&0xEF;  //TnAIS=0,cancel send AIS in transmit data stream
      }
    }
    if (FgTLOC[2]==1)
    {
      if (((M1_0A5&0x02)!=0x02)||(f[2]==0))  //T3LOC
      {
        FgTLOC[2]=0;
        AlmVal.head=0x08;
        AlmVal.oper_obj=1;
        AlmVal.ObjVal[0]=18;
        AlmVal.ObjVal[1]=0;
        AlmInd(AlmVal);
      }
    }
    if (FgAAIS[2]==1)
    {
      if (((M1_091&0x80)!=0x80)||(f[2]==0))  //A3AIS
      {
        FgAAIS[2]=0;
        PolVal.head=0x08;
        PolVal.oper_obj=2;
        PolVal.ObjVal[0]=18;
        PolVal.ObjVal[1]=0;
        PolFill(PolVal);
      }
    }
    if (FgTDAIS[2]==1)
    {
      if (((M1_0A5&0x01)!=0x01)||(f[2]==0))  //T3DAIS
      {
        FgTDAIS[2]=0;
        PolVal.head=0x08;
        PolVal.oper_obj=2;
        PolVal.ObjVal[0]=50;
        PolVal.ObjVal[1]=0;
        PolFill(PolVal);
      }
    }
  
    if (FgANDF[2]==1)
    {
      if (((M1_091&0x10)!=0x10)||(f[2]==0))  //A3NDF
      {
        FgANDF[2]=0;
        PolVal.head=0x08;
        PolVal.oper_obj=6;
        PolVal.ObjVal[0]=2;
        PolVal.ObjVal[1]=0;
        PolFill(PolVal);
      }
    }
    if (FgARDI[2]==1)
    {
      if (((M1_091&0x08)!=0x08)||(f[2]==0)) //A3RDI
      {
        FgARDI[2]=0;
        PolVal.head=0x08;
        PolVal.oper_obj=7;
        PolVal.ObjVal[0]=2;
        PolVal.ObjVal[1]=0;
        PolFill(PolVal);
      }
    }
   
    if (FgAUNEQ[2]==1)
    {
      if (((M1_091&0x02)!=0x02)||(f[2]==0)) //A3UNEQ
      {
        FgAUNEQ[2]=0;
        PolVal.head=0x08;
        PolVal.oper_obj=9;
        PolVal.ObjVal[0]=2;
        PolVal.ObjVal[1]=0;
        PolFill(PolVal);
      }
    }
    if (FgASLER[2]==1)
    {
      if (((M1_091&0x01)!=0x01)||(f[2]==0)) //A3SLER
      {
        FgASLER[2]=0;
        AlmVal.head=0x08;
        AlmVal.oper_obj=10;
        AlmVal.ObjVal[0]=2;
        AlmVal.ObjVal[1]=0;
        AlmInd(AlmVal);
      }
    }
    if (FgAJ2TIM[2]==1)
    {
      if (((M1_0AF&0x04)!=0x04)||(f[2]==0)) //A3J2TIM
      {
        FgAJ2TIM[2]=0;
        AlmVal.head=0x08;
        AlmVal.oper_obj=12;
        AlmVal.ObjVal[0]=2;
        AlmVal.ObjVal[1]=0;
        AlmInd(AlmVal);
      }
    }
    
    if (FgTLOS[3]==1)
    {
      TMP=T1_0D2&0x01;
      if ((f[3]==0)||(TMP==0x00))  //T4LOS
      {
        FgTLOS[3]=0;
        AlmVal.head=0x08;
        AlmVal.oper_obj=15;
        AlmVal.ObjVal[0]=3;
        AlmVal.ObjVal[1]=0;
        AlmInd(AlmVal);
        M1_0E0=M1_0E0&0xEF;  //TnAIS=0,cancel send AIS in transmit data stream
      }
    }
    if (FgTLOC[3]==1)
    {
      if (((M1_0D5&0x02)!=0x02)||(f[3]==0))  //T4LOC
      {
        FgTLOC[3]=0;
        AlmVal.head=0x08;
        AlmVal.oper_obj=1;
        AlmVal.ObjVal[0]=19;
        AlmVal.ObjVal[1]=0;
        AlmInd(AlmVal);
      }
    }
    if (FgAAIS[3]==1)
    {
      if (((M1_0C1&0x80)!=0x80)||(f[3]==0))  //A4AIS
      {
        FgAAIS[3]=0;
        PolVal.head=0x08;
        PolVal.oper_obj=2;
        PolVal.ObjVal[0]=19;
        PolVal.ObjVal[1]=0;
        PolFill(PolVal);
      }
    }
    if (FgTDAIS[3]==1)
    {
      if (((M1_0D5&0x01)!=0x01)||(f[3]==0))  //T4DAIS
      {
        FgTDAIS[3]=0;
        PolVal.head=0x08;
        PolVal.oper_obj=2;
        PolVal.ObjVal[0]=51;
        PolVal.ObjVal[1]=0;
        PolFill(PolVal);
      }
    }
   
    if (FgANDF[3]==1)
    {
      if (((M1_0C1&0x10)!=0x10)||(f[3]==0))  //A4NDF
      {
        FgANDF[3]=0;
        PolVal.head=0x08;
        PolVal.oper_obj=6;
        PolVal.ObjVal[0]=3;
        PolVal.ObjVal[1]=0;
        PolFill(PolVal);
      }
    }
    if (FgARDI[3]==1)
    {
      if (((M1_0C1&0x08)!=0x08)||(f[3]==0)) //A4RDI
      {
        FgARDI[3]=0;
        PolVal.head=0x08;
        PolVal.oper_obj=7;
        PolVal.ObjVal[0]=3;
        PolVal.ObjVal[1]=0;
        PolFill(PolVal);
      }
    }
    
    if (FgAUNEQ[3]==1)
    {
      if (((M1_0C1&0x02)!=0x02)||(f[3]==0)) //A4UNEQ
      {
        FgAUNEQ[3]=0;
        PolVal.head=0x08;
        PolVal.oper_obj=9;
        PolVal.ObjVal[0]=3;
        PolVal.ObjVal[1]=0;
        PolFill(PolVal);
      }
    }
    if (FgASLER[3]==1)
    {
      if (((M1_0C1&0x01)!=0x01)||(f[3]==0)) //A4SLER
      {
        FgASLER[3]=0;
        AlmVal.head=0x08;
        AlmVal.oper_obj=10;
        AlmVal.ObjVal[0]=3;
        AlmVal.ObjVal[1]=0;
        AlmInd(AlmVal);
      }
    }
    if (FgAJ2TIM[3]==1)
    {
      if (((M1_0DF&0x04)!=0x04)||(f[3]==0)) //A4J2TIM
      {
        FgAJ2TIM[3]=0;
        AlmVal.head=0x08;
        AlmVal.oper_obj=12;
        AlmVal.ObjVal[0]=3;
        AlmVal.ObjVal[1]=0;
        AlmInd(AlmVal);
      }
    }
    
    if (FgTLOS[4]==1)
    {
      TMP=T2_012&0x01;
      if ((f[4]==0)||(TMP==0x00))  //T5LOS
      {
        FgTLOS[4]=0;
        AlmVal.head=0x08;
        AlmVal.oper_obj=15;
        AlmVal.ObjVal[0]=4;
        AlmVal.ObjVal[1]=0;
        AlmInd(AlmVal);
        M2_050=M2_050&0xEF;  //TnAIS=0,cancel send AIS in transmit data stream
      }
    }
    if (FgTLOC[4]==1)
    {
      if (((M2_045&0x02)!=0x02)||(f[4]==0))  //T5LOC
      {
        FgTLOC[4]=0;
        AlmVal.head=0x08;
        AlmVal.oper_obj=1;
        AlmVal.ObjVal[0]=20;
        AlmVal.ObjVal[1]=0;
        AlmInd(AlmVal);
      }
    }
    if (FgAAIS[4]==1)
    {
      if (((M2_031&0x80)!=0x80)||(f[4]==0))  //A5AIS
      {
        FgAAIS[4]=0;
        PolVal.head=0x08;
        PolVal.oper_obj=2;
        PolVal.ObjVal[0]=20;
        PolVal.ObjVal[1]=0;
        PolFill(PolVal);
      }
    }
    if (FgTDAIS[4]==1)
    {
      if (((M2_045&0x01)!=0x01)||(f[4]==0))  //T5DAIS
      {
        FgTDAIS[4]=0;
        PolVal.head=0x08;
        PolVal.oper_obj=2;
        PolVal.ObjVal[0]=52;
        PolVal.ObjVal[1]=0;
        PolFill(PolVal);
      }
    }
  
    if (FgANDF[4]==1)

⌨️ 快捷键说明

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