📄 m2palmq.c
字号:
/****************************************/
/* Copyright (c) 2004, 通信工程学院戴佳 */
/* All rights reserved. */
/* 作 者:戴佳 */
/****************************************/
#include <other.h>
void AlmInd(struct instruction AlmValue);
void PolFill(struct instruction PolValue);
void M2PAlmQ()
{
uchar TMP;
struct instruction AlmVal;
struct instruction PolVal;
WDI=1;
WDI=0;
if (f[7]==1)
{
if ((M2_019&0x80)==0x80) //TPORT8 Mask
{
TMP=(T2_0D2)&0x01;
if ((FgTLOS[7]!=1)&&(TMP==0x01)) //T8LOS
{
FgTLOS[7]=1;
AlmVal.head=0x08;
AlmVal.oper_obj=15;
AlmVal.ObjVal[0]=7;
AlmVal.ObjVal[1]=0xFF;
AlmInd(AlmVal);
M2_0E0=M2_0E0|0x10; //TnAIS=1,send AIS in transmit data stream
}
if ((FgTLOC[7]!=1)&&((M2_0D5&0x02)==0x02)) //T8LOC
{
FgTLOC[7]=1;
AlmVal.head=0x08;
AlmVal.oper_obj=1;
AlmVal.ObjVal[0]=23;
AlmVal.ObjVal[1]=0xFF;
AlmInd(AlmVal);
}
}
if ((M2_017&0x80)==0x80) //RPT8A Mask
{
if ((FgAAIS[7]!=1)&&((M2_0C1&0x80)==0x80)) //A8AIS
{
FgAAIS[7]=1;
PolVal.head=0x08;
PolVal.oper_obj=2;
PolVal.ObjVal[0]=23;
PolVal.ObjVal[1]=0xFF;
PolFill(PolVal);
}
if ((FgTDAIS[7]!=1)&&((M2_0D5&0x01)==0x01)) //T8DAIS
{
FgTDAIS[7]=1;
PolVal.head=0x08;
PolVal.oper_obj=2;
PolVal.ObjVal[0]=55;
PolVal.ObjVal[1]=0xFF;
PolFill(PolVal);
}
if ((FgANDF[7]!=1)&&((M2_0C1&0x10)==0x10)) //A8NDF NEW POINTER INDICATION
{
FgANDF[7]=1;
PolVal.head=0x08;
PolVal.oper_obj=6;
PolVal.ObjVal[0]=7;
PolVal.ObjVal[1]=0xFF;
PolFill(PolVal);
}
if ((FgARDI[7]!=1)&&((M2_0C1&0x08)==0x08)) //A8RDI
{
FgARDI[7]=1;
PolVal.head=0x08;
PolVal.oper_obj=7;
PolVal.ObjVal[0]=7;
PolVal.ObjVal[1]=0xFF;
PolFill(PolVal);
}
if ((FgAUNEQ[7]!=1)&&((M2_0C1&0x02)==0x02)) //A8UNEQ
{
FgAUNEQ[7]=1;
PolVal.head=0x08;
PolVal.oper_obj=9;
PolVal.ObjVal[0]=7;
PolVal.ObjVal[1]=0xFF;
PolFill(PolVal);
}
if ((FgASLER[7]!=1)&&((M2_0C1&0x01)==0x01)) //A8SLER
{
FgASLER[7]=1;
AlmVal.head=0x08;
AlmVal.oper_obj=10;
AlmVal.ObjVal[0]=7;
AlmVal.ObjVal[1]=0xFF;
AlmInd(AlmVal);
}
if ((FgAJ2TIM[7]!=1)&&((M2_0DF&0x04)==0x04)) //A8J2TIM
{
FgAJ2TIM[7]=1;
AlmVal.head=0x08;
AlmVal.oper_obj=12;
AlmVal.ObjVal[0]=7;
AlmVal.ObjVal[1]=0xFF;
AlmInd(AlmVal);
}
}
}
if (f[6]==1)
{
if ((M2_019&0x40)==0x40) //TPORT7 Mask
{
TMP=(T2_092)&0x01;
if ((FgTLOS[6]!=1)&&(TMP==0x01)) //T7LOS
{
FgTLOS[6]=1;
AlmVal.head=0x08;
AlmVal.oper_obj=15;
AlmVal.ObjVal[0]=6;
AlmVal.ObjVal[1]=0xFF;
AlmInd(AlmVal);
M2_0B0=M2_0B0|0x10; //TnAIS=1,send AIS in transmit data stream
}
if ((FgTLOC[6]!=1)&&((M2_0A5&0x02)==0x02)) //T7LOC
{
FgTLOC[6]=1;
AlmVal.head=0x08;
AlmVal.oper_obj=1;
AlmVal.ObjVal[0]=22;
AlmVal.ObjVal[1]=0xFF;
AlmInd(AlmVal);
}
}
if ((M2_017&0x20)==0x20) //RPT7A Mask
{
if ((FgAAIS[6]!=1)&&((M2_091&0x80)==0x80)) //A7AIS
{
FgAAIS[6]=1;
PolVal.head=0x08;
PolVal.oper_obj=2;
PolVal.ObjVal[0]=22;
PolVal.ObjVal[1]=0xFF;
PolFill(PolVal);
}
if ((FgTDAIS[6]!=1)&&((M2_0A5&0x01)==0x01)) //T7DAIS
{
FgTDAIS[6]=1;
PolVal.head=0x08;
PolVal.oper_obj=2;
PolVal.ObjVal[0]=54;
PolVal.ObjVal[1]=0xFF;
PolFill(PolVal);
}
if ((FgANDF[6]!=1)&&((M2_091&0x10)==0x10)) //A7NDF NEW POINTER INDICATION
{
FgANDF[6]=1;
PolVal.head=0x08;
PolVal.oper_obj=6;
PolVal.ObjVal[0]=6;
PolVal.ObjVal[1]=0xFF;
PolFill(PolVal);
}
if ((FgARDI[6]!=1)&&((M2_091&0x08)==0x08)) //A7RDI
{
FgARDI[6]=1;
PolVal.head=0x08;
PolVal.oper_obj=7;
PolVal.ObjVal[0]=6;
PolVal.ObjVal[1]=0xFF;
PolFill(PolVal);
}
if ((FgAUNEQ[6]!=1)&&((M2_091&0x02)==0x02)) //A7UNEQ
{
FgAUNEQ[6]=1;
PolVal.head=0x08;
PolVal.oper_obj=9;
PolVal.ObjVal[0]=6;
PolVal.ObjVal[1]=0xFF;
PolFill(PolVal);
}
if ((FgASLER[6]!=1)&&((M2_091&0x01)==0x01)) //A7SLER
{
FgASLER[6]=1;
AlmVal.head=0x08;
AlmVal.oper_obj=10;
AlmVal.ObjVal[0]=6;
AlmVal.ObjVal[1]=0xFF;
AlmInd(AlmVal);
}
if ((FgAJ2TIM[6]!=1)&&((M2_0AF&0x04)==0x04)) //A7J2TIM
{
FgAJ2TIM[6]=1;
AlmVal.head=0x08;
AlmVal.oper_obj=12;
AlmVal.ObjVal[0]=6;
AlmVal.ObjVal[1]=0xFF;
AlmInd(AlmVal);
}
}
}
if (f[5]==1)
{
if ((M2_019&0x20)==0x20) //TPORT6 Mask
{
TMP=(T2_052)&0x01;
if ((FgTLOS[5]!=1)&&(TMP==0x01)) //T6LOS
{
FgTLOS[5]=1;
AlmVal.head=0x08;
AlmVal.oper_obj=15;
AlmVal.ObjVal[0]=5;
AlmVal.ObjVal[1]=0xFF;
AlmInd(AlmVal);
M2_080=M2_080|0x10; //TnAIS=1,send AIS in transmit data stream
}
if ((FgTLOC[5]!=1)&&((M2_075&0x02)==0x02)) //T6LOC
{
FgTLOC[5]=1;
AlmVal.head=0x08;
AlmVal.oper_obj=1;
AlmVal.ObjVal[0]=21;
AlmVal.ObjVal[1]=0xFF;
AlmInd(AlmVal);
}
}
if ((M2_017&0x08)==0x08) //RPT6A Mask
{
if ((FgAAIS[5]!=1)&&((M2_061&0x80)==0x80)) //A6AIS
{
FgAAIS[5]=1;
PolVal.head=0x08;
PolVal.oper_obj=2;
PolVal.ObjVal[0]=21;
PolVal.ObjVal[1]=0xFF;
PolFill(PolVal);
}
if ((FgTDAIS[5]!=1)&&((M2_075&0x01)==0x01)) //T6DAIS
{
FgTDAIS[5]=1;
PolVal.head=0x08;
PolVal.oper_obj=2;
PolVal.ObjVal[0]=53;
PolVal.ObjVal[1]=0xFF;
PolFill(PolVal);
}
if ((FgANDF[5]!=1)&&((M2_061&0x10)==0x10)) //A6NDF NEW POINTER INDICATION
{
FgANDF[5]=1;
PolVal.head=0x08;
PolVal.oper_obj=6;
PolVal.ObjVal[0]=5;
PolVal.ObjVal[1]=0xFF;
PolFill(PolVal);
}
if ((FgARDI[5]!=1)&&((M2_061&0x08)==0x08)) //A6RDI
{
FgARDI[5]=1;
PolVal.head=0x08;
PolVal.oper_obj=7;
PolVal.ObjVal[0]=5;
PolVal.ObjVal[1]=0xFF;
PolFill(PolVal);
}
if ((FgAUNEQ[5]!=1)&&((M2_061&0x02)==0x02)) //A6UNEQ
{
FgAUNEQ[5]=1;
PolVal.head=0x08;
PolVal.oper_obj=9;
PolVal.ObjVal[0]=5;
PolVal.ObjVal[1]=0xFF;
PolFill(PolVal);
}
if ((FgASLER[5]!=1)&&((M2_061&0x01)==0x01)) //A6SLER
{
FgASLER[5]=1;
AlmVal.head=0x08;
AlmVal.oper_obj=10;
AlmVal.ObjVal[0]=5;
AlmVal.ObjVal[1]=0xFF;
AlmInd(AlmVal);
}
if ((FgAJ2TIM[5]!=1)&&((M2_07F&0x04)==0x04)) //A6J2TIM
{
FgAJ2TIM[5]=1;
AlmVal.head=0x08;
AlmVal.oper_obj=12;
AlmVal.ObjVal[0]=5;
AlmVal.ObjVal[1]=0xFF;
AlmInd(AlmVal);
}
}
}
if (f[4]==1)
{
if ((M2_019&0x10)==0x10) //TPORT5 Mask
{
TMP=(T2_012)&0x01;
if ((FgTLOS[4]!=1)&&(TMP==0x01)) //T5LOS
{
FgTLOS[4]=1;
AlmVal.head=0x08;
AlmVal.oper_obj=15;
AlmVal.ObjVal[0]=4;
AlmVal.ObjVal[1]=0xFF;
AlmInd(AlmVal);
M2_050=M2_050|0x10; //TnAIS=1,send AIS in transmit data stream
}
if ((FgTLOC[4]!=1)&&((M2_045&0x02)==0x02)) //T5LOC
{
FgTLOC[4]=1;
AlmVal.head=0x08;
AlmVal.oper_obj=1;
AlmVal.ObjVal[0]=20;
AlmVal.ObjVal[1]=0xFF;
AlmInd(AlmVal);
}
}
if ((M2_017&0x02)==0x02) //RPT5A Mask
{
if ((FgAAIS[4]!=1)&&((M2_031&0x80)==0x80)) //A5AIS
{
FgAAIS[4]=1;
PolVal.head=0x08;
PolVal.oper_obj=2;
PolVal.ObjVal[0]=20;
PolVal.ObjVal[1]=0xFF;
PolFill(PolVal);
}
if ((FgTDAIS[4]!=1)&&((M2_045&0x01)==0x01)) //T5DAIS
{
FgTDAIS[4]=1;
PolVal.head=0x08;
PolVal.oper_obj=2;
PolVal.ObjVal[0]=52;
PolVal.ObjVal[1]=0xFF;
PolFill(PolVal);
}
if ((FgANDF[4]!=1)&&((M2_031&0x10)==0x10)) //A5NDF NEW POINTER INDICATION
{
FgANDF[4]=1;
PolVal.head=0x08;
PolVal.oper_obj=6;
PolVal.ObjVal[0]=4;
PolVal.ObjVal[1]=0xFF;
PolFill(PolVal);
}
if ((FgARDI[4]!=1)&&((M2_031&0x08)==0x08)) //A5RDI
{
FgARDI[4]=1;
PolVal.head=0x08;
PolVal.oper_obj=7;
PolVal.ObjVal[0]=4;
PolVal.ObjVal[1]=0xFF;
PolFill(PolVal);
}
if ((FgAUNEQ[4]!=1)&&((M2_031&0x02)==0x02)) //A5UNEQ
{
FgAUNEQ[4]=1;
PolVal.head=0x08;
PolVal.oper_obj=9;
PolVal.ObjVal[0]=4;
PolVal.ObjVal[1]=0xFF;
PolFill(PolVal);
}
if ((FgASLER[4]!=1)&&((M2_031&0x01)==0x01)) //A5SLER
{
FgASLER[4]=1;
AlmVal.head=0x08;
AlmVal.oper_obj=10;
AlmVal.ObjVal[0]=4;
AlmVal.ObjVal[1]=0xFF;
AlmInd(AlmVal);
}
if ((FgAJ2TIM[4]!=1)&&((M2_04F&0x04)==0x04)) //A5J2TIM
{
FgAJ2TIM[4]=1;
AlmVal.head=0x08;
AlmVal.oper_obj=12;
AlmVal.ObjVal[0]=4;
AlmVal.ObjVal[1]=0xFF;
AlmInd(AlmVal);
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -