📄 m3palmq.c
字号:
/****************************************/
/* Copyright (c) 2004, 通信工程学院戴佳 */
/* All rights reserved. */
/* 作 者:戴佳 */
/****************************************/
#include <other.h>
void AlmInd(struct instruction AlmValue);
void PolFill(struct instruction PolValue);
void M3PAlmQ()
{
struct instruction AlmVal;
struct instruction PolVal;
uchar TMP;
WDI=1;
WDI=0;
if (f[11]==1)
{
if ((M3_019&0x80)==0x80) //TPORT12 Mask
{
TMP=(T3_0D2)&0x01;
if ((FgTLOS[11]!=1)&&(TMP==0x01)) //T12LOS
{
FgTLOS[11]=1;
AlmVal.head=0x08;
AlmVal.oper_obj=15;
AlmVal.ObjVal[0]=11;
AlmVal.ObjVal[1]=0xFF;
AlmInd(AlmVal);
M3_0E0=M3_0E0|0x10; //TnAIS=1,send AIS in transmit data stream
}
if ((FgTLOC[11]!=1)&&((M3_0D5&0x02)==0x02)) //T12LOC
{
FgTLOC[11]=1;
AlmVal.head=0x08;
AlmVal.oper_obj=1;
AlmVal.ObjVal[0]=27;
AlmVal.ObjVal[1]=0xFF;
AlmInd(AlmVal);
}
}
if ((M3_017&0x80)==0x80) //RPT12A Mask
{
if ((FgAAIS[11]!=1)&&((M3_0C1&0x80)==0x80)) //A12AIS
{
FgAAIS[11]=1;
PolVal.head=0x08;
PolVal.oper_obj=2;
PolVal.ObjVal[0]=27;
PolVal.ObjVal[1]=0xFF;
PolFill(PolVal);
}
if ((FgTDAIS[11]!=1)&&((M3_0D5&0x01)==0x01)) //T12DAIS
{
FgTDAIS[11]=1;
PolVal.head=0x08;
PolVal.oper_obj=2;
PolVal.ObjVal[0]=59;
PolVal.ObjVal[1]=0xFF;
PolFill(PolVal);
}
if ((FgANDF[11]!=1)&&((M3_0C1&0x10)==0x10)) //A12NDF NEW POINTER INDICATION
{
FgANDF[11]=1;
PolVal.head=0x08;
PolVal.oper_obj=6;
PolVal.ObjVal[0]=11;
PolVal.ObjVal[1]=0xFF;
PolFill(PolVal);
}
if ((FgARDI[11]!=1)&&((M3_0C1&0x08)==0x08)) //A12RDI
{
FgARDI[11]=1;
PolVal.head=0x08;
PolVal.oper_obj=7;
PolVal.ObjVal[0]=11;
PolVal.ObjVal[1]=0xFF;
PolFill(PolVal);
}
if ((FgAUNEQ[11]!=1)&&((M3_0C1&0x02)==0x02)) //A12UNEQ
{
FgAUNEQ[11]=1;
PolVal.head=0x08;
PolVal.oper_obj=9;
PolVal.ObjVal[0]=11;
PolVal.ObjVal[1]=0xFF;
PolFill(PolVal);
}
if ((FgASLER[11]!=1)&&((M3_0C1&0x01)==0x01)) //A12SLER
{
FgASLER[11]=1;
AlmVal.head=0x08;
AlmVal.oper_obj=10;
AlmVal.ObjVal[0]=11;
AlmVal.ObjVal[1]=0xFF;
AlmInd(AlmVal);
}
if ((FgAJ2TIM[11]!=1)&&((M3_0DF&0x04)==0x04)) //A12J2TIM
{
FgAJ2TIM[11]=1;
AlmVal.head=0x08;
AlmVal.oper_obj=12;
AlmVal.ObjVal[0]=11;
AlmVal.ObjVal[1]=0xFF;
AlmInd(AlmVal);
}
}
}
if (f[10]==1)
{
if ((M3_019&0x40)==0x40) //TPORT11 Mask
{
TMP=(T3_092)&0x01;
if ((FgTLOS[10]!=1)&&(TMP==0x01)) //T11LOS
{
FgTLOS[10]=1;
AlmVal.head=0x08;
AlmVal.oper_obj=15;
AlmVal.ObjVal[0]=10;
AlmVal.ObjVal[1]=0xFF;
AlmInd(AlmVal);
M3_0B0=M3_0B0|0x10; //TnAIS=1,send AIS in transmit data stream
}
if ((FgTLOC[10]!=1)&&((M3_0A5&0x02)==0x02)) //T11LOC
{
FgTLOC[10]=1;
AlmVal.head=0x08;
AlmVal.oper_obj=1;
AlmVal.ObjVal[0]=26;
AlmVal.ObjVal[1]=0xFF;
AlmInd(AlmVal);
}
}
if ((M3_017&0x20)==0x20) //RPT11 Mask
{
if ((FgAAIS[10]!=1)&&((M3_091&0x80)==0x80)) //A11AIS
{
FgAAIS[10]=1;
PolVal.head=0x08;
PolVal.oper_obj=2;
PolVal.ObjVal[0]=26;
PolVal.ObjVal[1]=0xFF;
PolFill(PolVal);
}
if ((FgTDAIS[10]!=1)&&((M3_0A5&0x01)==0x01)) //T11DAIS
{
FgTDAIS[10]=1;
PolVal.head=0x08;
PolVal.oper_obj=2;
PolVal.ObjVal[0]=58;
PolVal.ObjVal[1]=0xFF;
PolFill(PolVal);
}
if ((FgANDF[10]!=1)&&((M3_091&0x10)==0x10)) //A11NDF NEW POINTER INDICATION
{
FgANDF[10]=1;
PolVal.head=0x08;
PolVal.oper_obj=6;
PolVal.ObjVal[0]=10;
PolVal.ObjVal[1]=0xFF;
PolFill(PolVal);
}
if ((FgARDI[10]!=1)&&((M3_091&0x08)==0x08)) //A11RDI
{
FgARDI[10]=1;
PolVal.head=0x08;
PolVal.oper_obj=7;
PolVal.ObjVal[0]=10;
PolVal.ObjVal[1]=0xFF;
PolFill(PolVal);
}
if ((FgAUNEQ[10]!=1)&&((M3_091&0x02)==0x02)) //A11UNEQ
{
FgAUNEQ[10]=1;
PolVal.head=0x08;
PolVal.oper_obj=9;
PolVal.ObjVal[0]=10;
PolVal.ObjVal[1]=0xFF;
PolFill(PolVal);
}
if ((FgASLER[10]!=1)&&((M3_091&0x01)==0x01)) //A11SLER
{
FgASLER[10]=1;
AlmVal.head=0x08;
AlmVal.oper_obj=10;
AlmVal.ObjVal[0]=10;
AlmVal.ObjVal[1]=0xFF;
AlmInd(AlmVal);
}
if ((FgAJ2TIM[10]!=1)&&((M3_0AF&0x04)==0x04)) //A11J2TIM
{
FgAJ2TIM[10]=1;
AlmVal.head=0x08;
AlmVal.oper_obj=12;
AlmVal.ObjVal[0]=10;
AlmVal.ObjVal[1]=0xFF;
AlmInd(AlmVal);
}
}
}
if (f[9]==1)
{
if ((M3_019&0x20)==0x20) //TPORT10 Mask
{
TMP=(T3_052)&0x01;
if ((FgTLOS[9]!=1)&&(TMP==0x01)) //T10LOS
{
FgTLOS[9]=1;
AlmVal.head=0x08;
AlmVal.oper_obj=15;
AlmVal.ObjVal[0]=9;
AlmVal.ObjVal[1]=0xFF;
AlmInd(AlmVal);
M3_080=M3_080|0x10; //TnAIS=1,send AIS in transmit data stream
}
if ((FgTLOC[9]!=1)&&((M3_075&0x02)==0x02)) //T10LOC
{
FgTLOC[9]=1;
AlmVal.head=0x08;
AlmVal.oper_obj=1;
AlmVal.ObjVal[0]=25;
AlmVal.ObjVal[1]=0xFF;
AlmInd(AlmVal);
}
}
if ((M3_017&0x08)==0x08) //RPT10A Mask
{
if ((FgAAIS[9]!=1)&&((M3_061&0x80)==0x80)) //A10AIS
{
FgAAIS[9]=1;
PolVal.head=0x08;
PolVal.oper_obj=2;
PolVal.ObjVal[0]=25;
PolVal.ObjVal[1]=0xFF;
PolFill(PolVal);
}
if ((FgTDAIS[9]!=1)&&((M3_075&0x01)==0x01)) //T10DAIS
{
FgTDAIS[9]=1;
PolVal.head=0x08;
PolVal.oper_obj=2;
PolVal.ObjVal[0]=57;
PolVal.ObjVal[1]=0xFF;
PolFill(PolVal);
}
if ((FgANDF[9]!=1)&&((M3_061&0x10)==0x10)) //A10NDF NEW POINTER INDICATION
{
FgANDF[9]=1;
PolVal.head=0x08;
PolVal.oper_obj=6;
PolVal.ObjVal[0]=9;
PolVal.ObjVal[1]=0xFF;
PolFill(PolVal);
}
if ((FgARDI[9]!=1)&&((M3_061&0x08)==0x08)) //A10RDI
{
FgARDI[9]=1;
PolVal.head=0x08;
PolVal.oper_obj=7;
PolVal.ObjVal[0]=9;
PolVal.ObjVal[1]=0xFF;
PolFill(PolVal);
}
if ((FgAUNEQ[9]!=1)&&((M3_061&0x02)==0x02)) //A10UNEQ
{
FgAUNEQ[9]=1;
PolVal.head=0x08;
PolVal.oper_obj=9;
PolVal.ObjVal[0]=9;
PolVal.ObjVal[1]=0xFF;
PolFill(PolVal);
}
if ((FgASLER[9]!=1)&&((M3_061&0x01)==0x01)) //A10SLER
{
FgASLER[9]=1;
AlmVal.head=0x08;
AlmVal.oper_obj=10;
AlmVal.ObjVal[0]=9;
AlmVal.ObjVal[1]=0xFF;
AlmInd(AlmVal);
}
if ((FgAJ2TIM[9]!=1)&&((M3_07F&0x04)==0x04)) //A10J2TIM
{
FgAJ2TIM[9]=1;
AlmVal.head=0x08;
AlmVal.oper_obj=12;
AlmVal.ObjVal[0]=9;
AlmVal.ObjVal[1]=0xFF;
AlmInd(AlmVal);
}
}
}
if (f[8]==1)
{
if ((M3_019&0x10)==0x10) //TPORT9 Mask
{
TMP=(T3_012)&0x01;
if ((FgTLOS[8]!=1)&&(TMP==0x01)) //T9LOS
{
FgTLOS[8]=1;
AlmVal.head=0x08;
AlmVal.oper_obj=15;
AlmVal.ObjVal[0]=8;
AlmVal.ObjVal[1]=0xFF;
AlmInd(AlmVal);
M3_050=M3_050|0x10; //TnAIS=1,send AIS in transmit data stream
}
if ((FgTLOC[8]!=1)&&((M3_045&0x02)==0x02)) //T9LOC
{
FgTLOC[8]=1;
AlmVal.head=0x08;
AlmVal.oper_obj=1;
AlmVal.ObjVal[0]=24;
AlmVal.ObjVal[1]=0xFF;
AlmInd(AlmVal);
}
}
if ((M3_017&0x02)==0x02) //RPT9A Mask
{
if ((FgAAIS[8]!=1)&&((M3_031&0x80)==0x80)) //A9AIS
{
FgAAIS[8]=1;
PolVal.head=0x08;
PolVal.oper_obj=2;
PolVal.ObjVal[0]=24;
PolVal.ObjVal[1]=0xFF;
PolFill(PolVal);
}
if ((FgTDAIS[8]!=1)&&((M3_045&0x01)==0x01)) //T9DAIS
{
FgTDAIS[8]=1;
PolVal.head=0x08;
PolVal.oper_obj=2;
PolVal.ObjVal[0]=56;
PolVal.ObjVal[1]=0xFF;
PolFill(PolVal);
}
if ((FgANDF[8]!=1)&&((M3_031&0x10)==0x10)) //A9NDF NEW POINTER INDICATION
{
FgANDF[8]=1;
PolVal.head=0x08;
PolVal.oper_obj=6;
PolVal.ObjVal[0]=8;
PolVal.ObjVal[1]=0xFF;
PolFill(PolVal);
}
if ((FgARDI[8]!=1)&&((M3_031&0x08)==0x08)) //A9RDI
{
FgARDI[8]=1;
PolVal.head=0x08;
PolVal.oper_obj=7;
PolVal.ObjVal[0]=8;
PolVal.ObjVal[1]=0xFF;
PolFill(PolVal);
}
if ((FgAUNEQ[8]!=1)&&((M3_031&0x02)==0x02)) //A9UNEQ
{
FgAUNEQ[8]=1;
PolVal.head=0x08;
PolVal.oper_obj=9;
PolVal.ObjVal[0]=8;
PolVal.ObjVal[1]=0xFF;
PolFill(PolVal);
}
if ((FgASLER[8]!=1)&&((M3_031&0x01)==0x01)) //A9SLER
{
FgASLER[8]=1;
AlmVal.head=0x08;
AlmVal.oper_obj=10;
AlmVal.ObjVal[0]=8;
AlmVal.ObjVal[1]=0xFF;
AlmInd(AlmVal);
}
if ((FgAJ2TIM[8]!=1)&&((M3_04F&0x04)==0x04)) //A9J2TIM
{
FgAJ2TIM[8]=1;
AlmVal.head=0x08;
AlmVal.oper_obj=12;
AlmVal.ObjVal[0]=8;
AlmVal.ObjVal[1]=0xFF;
AlmInd(AlmVal);
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -