📄 m4palmq.c
字号:
/****************************************/
/* Copyright (c) 2004, 通信工程学院戴佳 */
/* All rights reserved. */
/* 作 者:戴佳 */
/****************************************/
#include <other.h>
void AlmInd(struct instruction AlmValue);
void PolFill(struct instruction PolValue);
void M4PAlmQ()
{
struct instruction AlmVal;
struct instruction PolVal;
uchar TMP;
WDI=1;
WDI=0;
if (f[15]==1)
{
if ((M4_019&0x80)==0x80) //TPORT16 Mask
{
TMP=(T4_0D2)&0x01;
if ((FgTLOS[15]!=1)&&(TMP==0x01)) //T16LOS
{
FgTLOS[15]=1;
AlmVal.head=0x08;
AlmVal.oper_obj=15;
AlmVal.ObjVal[0]=15;
AlmVal.ObjVal[1]=0xFF;
AlmInd(AlmVal);
M4_0E0=M4_0E0|0x10; //TnAIS=1,send AIS in transmit data stream
}
if ((FgTLOC[15]!=1)&&((M4_0D5&0x02)==0x02)) //T16LOC
{
FgTLOC[15]=1;
AlmVal.head=0x08;
AlmVal.oper_obj=1;
AlmVal.ObjVal[0]=31;
AlmVal.ObjVal[1]=0xFF;
AlmInd(AlmVal);
}
}
if ((M4_017&0x80)==0x80) //RPT16A Mask
{
if ((FgAAIS[15]!=1)&&((M4_0C1&0x80)==0x80)) //A16AIS
{
FgAAIS[15]=1;
PolVal.head=0x08;
PolVal.oper_obj=2;
PolVal.ObjVal[0]=31;
PolVal.ObjVal[1]=0xFF;
PolFill(PolVal);
}
if ((FgTDAIS[15]!=1)&&((M4_0D5&0x01)==0x01)) //T16DAIS
{
FgTDAIS[15]=1;
PolVal.head=0x08;
PolVal.oper_obj=2;
PolVal.ObjVal[0]=63;
PolVal.ObjVal[1]=0xFF;
PolFill(PolVal);
}
if ((FgANDF[15]!=1)&&((M4_0C1&0x10)==0x10)) //A16NDF NEW POINTER INDICATION
{
FgANDF[15]=1;
PolVal.head=0x08;
PolVal.oper_obj=6;
PolVal.ObjVal[0]=15;
PolVal.ObjVal[1]=0xFF;
PolFill(PolVal);
}
if ((FgARDI[15]!=1)&&((M4_0C1&0x08)==0x08)) //A16RDI
{
FgARDI[15]=1;
PolVal.head=0x08;
PolVal.oper_obj=7;
PolVal.ObjVal[0]=15;
PolVal.ObjVal[1]=0xFF;
PolFill(PolVal);
}
if ((FgAUNEQ[15]!=1)&&((M4_0C1&0x02)==0x02)) //A16UNEQ
{
FgAUNEQ[15]=1;
PolVal.head=0x08;
PolVal.oper_obj=9;
PolVal.ObjVal[0]=15;
PolVal.ObjVal[1]=0xFF;
PolFill(PolVal);
}
if ((FgASLER[15]!=1)&&((M4_0C1&0x01)==0x01)) //A16SLER
{
FgASLER[15]=1;
AlmVal.head=0x08;
AlmVal.oper_obj=10;
AlmVal.ObjVal[0]=15;
AlmVal.ObjVal[1]=0xFF;
AlmInd(AlmVal);
}
if ((FgAJ2TIM[15]!=1)&&((M4_0DF&0x04)==0x04)) //A16J2TIM
{
FgAJ2TIM[15]=1;
AlmVal.head=0x08;
AlmVal.oper_obj=12;
AlmVal.ObjVal[0]=15;
AlmVal.ObjVal[1]=0xFF;
AlmInd(AlmVal);
}
}
}
if (f[14]==1)
{
if ((M4_019&0x40)==0x40) //TPORT15 Mask
{
TMP=(T4_092)&0x01;
if ((FgTLOS[14]!=1)&&(TMP==0x01)) //T15LOS
{
FgTLOS[14]=1;
AlmVal.head=0x08;
AlmVal.oper_obj=15;
AlmVal.ObjVal[0]=14;
AlmVal.ObjVal[1]=0xFF;
AlmInd(AlmVal);
M4_0B0=M4_0B0|0x10; //TnAIS=1,send AIS in transmit data stream
}
if ((FgTLOC[14]!=1)&&((M4_0A5&0x02)==0x02)) //T15LOC
{
FgTLOC[14]=1;
AlmVal.head=0x08;
AlmVal.oper_obj=1;
AlmVal.ObjVal[0]=30;
AlmVal.ObjVal[1]=0xFF;
AlmInd(AlmVal);
}
}
if ((M4_017&0x20)==0x20) //RPT15 Mask
{
if ((FgAAIS[14]!=1)&&((M4_091&0x80)==0x80)) //A15AIS
{
FgAAIS[14]=1;
PolVal.head=0x08;
PolVal.oper_obj=2;
PolVal.ObjVal[0]=30;
PolVal.ObjVal[1]=0xFF;
PolFill(PolVal);
}
if ((FgTDAIS[14]!=1)&&((M4_0A5&0x01)==0x01)) //T15DAIS
{
FgTDAIS[14]=1;
PolVal.head=0x08;
PolVal.oper_obj=2;
PolVal.ObjVal[0]=62;
PolVal.ObjVal[1]=0xFF;
PolFill(PolVal);
}
if ((FgANDF[14]!=1)&&((M4_091&0x10)==0x10)) //A15NDF NEW POINTER INDICATION
{
FgANDF[14]=1;
PolVal.head=0x08;
PolVal.oper_obj=6;
PolVal.ObjVal[0]=14;
PolVal.ObjVal[1]=0xFF;
PolFill(PolVal);
}
if ((FgARDI[14]!=1)&&((M4_091&0x08)==0x08)) //A15RDI
{
FgARDI[14]=1;
PolVal.head=0x08;
PolVal.oper_obj=7;
PolVal.ObjVal[0]=14;
PolVal.ObjVal[1]=0xFF;
PolFill(PolVal);
}
if ((FgAUNEQ[14]!=1)&&((M4_091&0x02)==0x02)) //A15UNEQ
{
FgAUNEQ[14]=1;
PolVal.head=0x08;
PolVal.oper_obj=9;
PolVal.ObjVal[0]=14;
PolVal.ObjVal[1]=0xFF;
PolFill(PolVal);
}
if ((FgASLER[14]!=1)&&((M4_091&0x01)==0x01)) //A15SLER
{
FgASLER[14]=1;
AlmVal.head=0x08;
AlmVal.oper_obj=10;
AlmVal.ObjVal[0]=14;
AlmVal.ObjVal[1]=0xFF;
AlmInd(AlmVal);
}
if ((FgAJ2TIM[14]!=1)&&((M4_0AF&0x04)==0x04)) //A15J2TIM
{
FgAJ2TIM[14]=1;
AlmVal.head=0x08;
AlmVal.oper_obj=12;
AlmVal.ObjVal[0]=14;
AlmVal.ObjVal[1]=0xFF;
AlmInd(AlmVal);
}
}
}
if (f[13]==1)
{
if ((M4_019&0x20)==0x20) //TPORT14 Mask
{
TMP=(T4_0D2)&0x01;
if ((FgTLOS[15]!=1)&&(TMP==0x01)) //T16LOS
{
FgTLOS[15]=1;
AlmVal.head=0x08;
AlmVal.oper_obj=15;
AlmVal.ObjVal[0]=15;
AlmVal.ObjVal[1]=0xFF;
AlmInd(AlmVal);
M4_0E0=M4_0E0|0x10; //TnAIS=1,send AIS in transmit data stream
}
if ((FgTLOC[13]!=1)&&((M4_075&0x02)==0x02)) //T14LOC
{
FgTLOC[13]=1;
AlmVal.head=0x08;
AlmVal.oper_obj=1;
AlmVal.ObjVal[0]=29;
AlmVal.ObjVal[1]=0xFF;
AlmInd(AlmVal);
}
}
if ((M4_017&0x08)==0x08) //RPT14A Mask
{
if ((FgAAIS[13]!=1)&&((M4_061&0x80)==0x80)) //A14AIS
{
FgAAIS[13]=1;
PolVal.head=0x08;
PolVal.oper_obj=2;
PolVal.ObjVal[0]=29;
PolVal.ObjVal[1]=0xFF;
PolFill(PolVal);
}
if ((FgTDAIS[13]!=1)&&((M4_075&0x01)==0x01)) //T14DAIS
{
FgTDAIS[13]=1;
PolVal.head=0x08;
PolVal.oper_obj=2;
PolVal.ObjVal[0]=61;
PolVal.ObjVal[1]=0xFF;
PolFill(PolVal);
}
if ((FgANDF[13]!=1)&&((M4_061&0x10)==0x10)) //A14NDF NEW POINTER INDICATION
{
FgANDF[13]=1;
PolVal.head=0x08;
PolVal.oper_obj=6;
PolVal.ObjVal[0]=13;
PolVal.ObjVal[1]=0xFF;
PolFill(PolVal);
}
if ((FgARDI[13]!=1)&&((M4_061&0x08)==0x08)) //A14RDI
{
FgARDI[13]=1;
PolVal.head=0x08;
PolVal.oper_obj=7;
PolVal.ObjVal[0]=13;
PolVal.ObjVal[1]=0xFF;
PolFill(PolVal);
}
if ((FgAUNEQ[13]!=1)&&((M4_061&0x02)==0x02)) //A14UNEQ
{
FgAUNEQ[13]=1;
PolVal.head=0x08;
PolVal.oper_obj=9;
PolVal.ObjVal[0]=13;
PolVal.ObjVal[1]=0xFF;
PolFill(PolVal);
}
if ((FgASLER[13]!=1)&&((M4_061&0x01)==0x01)) //A14SLER
{
FgASLER[13]=1;
AlmVal.head=0x08;
AlmVal.oper_obj=10;
AlmVal.ObjVal[0]=13;
AlmVal.ObjVal[1]=0xFF;
AlmInd(AlmVal);
}
if ((FgAJ2TIM[13]!=1)&&((M4_07F&0x04)==0x04)) //A14J2TIM
{
FgAJ2TIM[13]=1;
AlmVal.head=0x08;
AlmVal.oper_obj=12;
AlmVal.ObjVal[0]=13;
AlmVal.ObjVal[1]=0xFF;
AlmInd(AlmVal);
}
}
}
if (f[12]==1)
{
if ((M4_019&0x10)==0x10) //TPORT13 Mask
{
TMP=(T4_012)&0x01;
if ((FgTLOS[12]!=1)&&(TMP==0x01)) //T12LOS
{
FgTLOS[12]=1;
AlmVal.head=0x08;
AlmVal.oper_obj=15;
AlmVal.ObjVal[0]=12;
AlmVal.ObjVal[1]=0xFF;
AlmInd(AlmVal);
M4_050=M4_050|0x10; //TnAIS=1,send AIS in transmit data stream
}
if ((FgTLOC[12]!=1)&&((M4_045&0x02)==0x02)) //T13LOC
{
FgTLOC[12]=1;
AlmVal.head=0x08;
AlmVal.oper_obj=1;
AlmVal.ObjVal[0]=28;
AlmVal.ObjVal[1]=0xFF;
AlmInd(AlmVal);
}
}
if ((M4_017&0x02)==0x02) //RPT13A Mask
{
if ((FgAAIS[12]!=1)&&((M4_031&0x80)==0x80)) //A13AIS
{
FgAAIS[12]=1;
PolVal.head=0x08;
PolVal.oper_obj=2;
PolVal.ObjVal[0]=28;
PolVal.ObjVal[1]=0xFF;
PolFill(PolVal);
}
TMP=M4_045&0x01;
if ((FgTDAIS[12]!=1)&&(TMP==0x01)) //T13DAIS
{
FgTDAIS[12]=1;
PolVal.head=0x08;
PolVal.oper_obj=2;
PolVal.ObjVal[0]=60;
PolVal.ObjVal[1]=0xFF;
PolFill(PolVal);
}
if ((FgANDF[12]!=1)&&((M4_031&0x10)==0x10)) //A13NDF NEW POINTER INDICATION
{
FgANDF[12]=1;
PolVal.head=0x08;
PolVal.oper_obj=6;
PolVal.ObjVal[0]=12;
PolVal.ObjVal[1]=0xFF;
PolFill(PolVal);
}
if ((FgARDI[12]!=1)&&((M4_031&0x08)==0x08)) //A13RDI
{
FgARDI[12]=1;
PolVal.head=0x08;
PolVal.oper_obj=7;
PolVal.ObjVal[0]=12;
PolVal.ObjVal[1]=0xFF;
PolFill(PolVal);
}
if ((FgAUNEQ[12]!=1)&&((M4_031&0x02)==0x02)) //A13UNEQ
{
FgAUNEQ[12]=1;
PolVal.head=0x08;
PolVal.oper_obj=9;
PolVal.ObjVal[0]=12;
PolVal.ObjVal[1]=0xFF;
PolFill(PolVal);
}
if ((FgASLER[12]!=1)&&((M4_031&0x01)==0x01)) //A13SLER
{
FgASLER[12]=1;
AlmVal.head=0x08;
AlmVal.oper_obj=10;
AlmVal.ObjVal[0]=12;
AlmVal.ObjVal[1]=0xFF;
AlmInd(AlmVal);
}
if ((FgAJ2TIM[12]!=1)&&((M4_04F&0x04)==0x04)) //A13J2TIM
{
FgAJ2TIM[12]=1;
AlmVal.head=0x08;
AlmVal.oper_obj=12;
AlmVal.ObjVal[0]=12;
AlmVal.ObjVal[1]=0xFF;
AlmInd(AlmVal);
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -