📄 alm_q.c
字号:
/****************************************/
/* 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 + -