📄 rcs900.c
字号:
#include "iec103.h"
#include "rcs900.h"
extern SENDDEF SendDef;
extern RCVDEF RcvDef;
extern IECDEF *pIECDEF[MaxIECNum],*pIEC;
extern char hostname[NAME_SIZE+1];
extern int Enqflag;
extern SysDef *pSysDef;
RCS_PL1_Proc(addr)
unsigned char addr;
{
alarm_msg Alarm_Msg;
audio_msg Audio;
unsigned char i,j,typeid,funtype,infno,dpi,cpu,width,num,dot,*p;
char str[128],pStr[128],file1[32];
int audio,ms,set_num;
float tmpdata;
int len,kod;
FILE *fp1;
Alarm_Msg.alarm = 1;
Alarm_Msg.log = 1;
Alarm_Msg.n = 0;
Alarm_Msg.state = 0x80;
Alarm_Msg.data1 = 0;
Alarm_Msg.data2 = 0;
Alarm_Msg.data3 = 0;
typeid = RcvDef.Buf[6];
funtype = RcvDef.Buf[10];
infno = RcvDef.Buf[11];
len = 10;
switch (typeid)
{
case M_TTM_TA:
if( RcvDef.Buf[8] != COT_SPN ) break;
Alarm_Msg.hour = RcvDef.Buf[16] & 0x3f;
Alarm_Msg.minute = RcvDef.Buf[15] & 0x3f;
Alarm_Msg.second = (RcvDef.Buf[14]*256+RcvDef.Buf[13])/1000;
Alarm_Msg.ms = ((RcvDef.Buf[14]*256+RcvDef.Buf[13])%1000)*10;
strcpy(Alarm_Msg.alarm_tag,(char *)pSysDef+(int)pIECDEF[addr]->alarmtag);
switch (funtype)
{
case 0xb2:
for( i=0;i<sizeof(RCS_B2_Event)/sizeof(EVTALM);i++ )
if( RCS_B2_Event[i].index == infno ) break;
strcpy(pStr,RCS_B2_Event[i].text);
audio = RCS_B2_Event[i].audio;
dpi = RCS_B2_Event[i].dpi;
break;
case 0xb8:
for( i=0;i<sizeof(RCS_B8_Event)/sizeof(EVTALM);i++ )
if( RCS_B8_Event[i].index == infno ) break;
strcpy(pStr,RCS_B8_Event[i].text);
audio = RCS_B8_Event[i].audio;
dpi = RCS_B8_Event[i].dpi;
break;
case 0xc2:
for( i=0;i<sizeof(RCS_C2_Event)/sizeof(EVTALM);i++ )
if( RCS_C2_Event[i].index == infno ) break;
strcpy(pStr,RCS_C2_Event[i].text);
audio = RCS_C2_Event[i].audio;
dpi = RCS_C2_Event[i].dpi;
break;
case 0xc3:
for( i=0;i<sizeof(RCS_C3_Event)/sizeof(EVTALM);i++ )
if( RCS_C3_Event[i].index == infno ) break;
strcpy(pStr,RCS_C3_Event[i].text);
audio = RCS_C3_Event[i].audio;
dpi = RCS_C3_Event[i].dpi;
break;
case 0xc4:
for( i=0;i<sizeof(RCS_C4_Event)/sizeof(EVTALM);i++ )
if( RCS_C4_Event[i].index == infno ) break;
strcpy(pStr,RCS_C4_Event[i].text);
audio = RCS_C4_Event[i].audio;
dpi = RCS_C4_Event[i].dpi;
break;
case 0xc5:
for( i=0;i<sizeof(RCS_C5_Event)/sizeof(EVTALM);i++ )
if( RCS_C5_Event[i].index == infno ) break;
strcpy(pStr,RCS_C5_Event[i].text);
audio = RCS_C5_Event[i].audio;
dpi = RCS_C5_Event[i].dpi;
break;
case 0xc6:
for( i=0;i<sizeof(RCS_C6_Event)/sizeof(EVTALM);i++ )
if( RCS_C6_Event[i].index == infno ) break;
strcpy(pStr,RCS_C6_Event[i].text);
audio = RCS_C6_Event[i].audio;
dpi = RCS_C6_Event[i].dpi;
break;
case 0xd2:
for( i=0;i<sizeof(RCS_D2_Event)/sizeof(EVTALM);i++ )
if( RCS_D2_Event[i].index == infno ) break;
strcpy(pStr,RCS_D2_Event[i].text);
audio = RCS_D2_Event[i].audio;
dpi = RCS_D2_Event[i].dpi;
break;
case 0xd3:
for( i=0;i<sizeof(RCS_D3_Event)/sizeof(EVTALM);i++ )
if( RCS_D3_Event[i].index == infno ) break;
strcpy(pStr,RCS_D3_Event[i].text);
audio = RCS_D3_Event[i].audio;
dpi = RCS_D3_Event[i].dpi;
break;
case 0xe2:
for( i=0;i<sizeof(RCS_E2_Event)/sizeof(EVTALM);i++ )
if( RCS_E2_Event[i].index == infno ) break;
strcpy(pStr,RCS_E2_Event[i].text);
audio = RCS_E2_Event[i].audio;
dpi = RCS_E2_Event[i].dpi;
break;
case 0xe3:
for( i=0;i<sizeof(RCS_E3_Event)/sizeof(EVTALM);i++ )
if( RCS_E3_Event[i].index == infno ) break;
strcpy(pStr,RCS_E3_Event[i].text);
audio = RCS_E3_Event[i].audio;
dpi = RCS_E3_Event[i].dpi;
break;
case 0xe6:
for( i=0;i<sizeof(RCS_E6_Event)/sizeof(EVTALM);i++ )
if( RCS_E6_Event[i].index == infno ) break;
strcpy(pStr,RCS_E6_Event[i].text);
audio = RCS_E6_Event[i].audio;
dpi = RCS_E6_Event[i].dpi;
break;
case 0xf2:
for( i=0;i<sizeof(RCS_F2_Event)/sizeof(EVTALM);i++ )
if( RCS_F2_Event[i].index == infno ) break;
strcpy(pStr,RCS_F2_Event[i].text);
audio = RCS_F2_Event[i].audio;
dpi = RCS_F2_Event[i].dpi;
break;
case 0xf8:
for( i=0;i<sizeof(RCS_F8_Event)/sizeof(EVTALM);i++ )
if( RCS_F8_Event[i].index == infno ) break;
strcpy(pStr,RCS_F8_Event[i].text);
audio = RCS_F8_Event[i].audio;
dpi = RCS_F8_Event[i].dpi;
break;
default:
printf("functione no define!\n");
break;
}
if( RcvDef.Buf[12]==2 ) strcpy(str,"动作");
else
if( RcvDef.Buf[12]==1 ) strcpy(str,"复归");
else strcpy(str,"无效");
sprintf(Alarm_Msg.msg,"%s%s%s(%s)",
((char *)pSysDef+(int)pIECDEF[addr]->FB.pDescript),pStr,str,hostname);
build_alarm(&Alarm_Msg,0);
if( audio !=0 ){
Audio.audio_no =audio;
audio_alarm(&Audio);
}
break;
case M_TMR_TA:
if( RcvDef.Buf[8] != COT_SPN ) break;
Alarm_Msg.hour = RcvDef.Buf[20] & 0x3f;
Alarm_Msg.minute = RcvDef.Buf[19] & 0x3f;
Alarm_Msg.second = (RcvDef.Buf[18]*256+RcvDef.Buf[17])/1000;
Alarm_Msg.ms = ((RcvDef.Buf[18]*256+RcvDef.Buf[17])%1000)*10;
strcpy(Alarm_Msg.alarm_tag,(char *)pSysDef+(int)pIECDEF[addr]->alarmtag);
switch (funtype)
{
case 0xb2:
for( i=0;i<sizeof(RCS_B2_Event)/sizeof(EVTALM);i++ )
if( RCS_B2_Event[i].index == infno ) break;
strcpy(pStr,RCS_B2_Event[i].text);
audio = RCS_B2_Event[i].audio;
dpi = RCS_B2_Event[i].dpi;
break;
case 0xb8:
for( i=0;i<sizeof(RCS_B8_Event)/sizeof(EVTALM);i++ )
if( RCS_B8_Event[i].index == infno ) break;
strcpy(pStr,RCS_B8_Event[i].text);
audio = RCS_B8_Event[i].audio;
dpi = RCS_B8_Event[i].dpi;
break;
case 0xc2:
for( i=0;i<sizeof(RCS_C2_Event)/sizeof(EVTALM);i++ )
if( RCS_C2_Event[i].index == infno ) break;
strcpy(pStr,RCS_C2_Event[i].text);
audio = RCS_C2_Event[i].audio;
dpi = RCS_C2_Event[i].dpi;
break;
case 0xc3:
for( i=0;i<sizeof(RCS_C3_Event)/sizeof(EVTALM);i++ )
if( RCS_C3_Event[i].index == infno ) break;
strcpy(pStr,RCS_C3_Event[i].text);
audio = RCS_C3_Event[i].audio;
dpi = RCS_C3_Event[i].dpi;
break;
case 0xc4:
for( i=0;i<sizeof(RCS_C4_Event)/sizeof(EVTALM);i++ )
if( RCS_C4_Event[i].index == infno ) break;
strcpy(pStr,RCS_C4_Event[i].text);
audio = RCS_C4_Event[i].audio;
dpi = RCS_C4_Event[i].dpi;
break;
case 0xc5:
for( i=0;i<sizeof(RCS_C5_Event)/sizeof(EVTALM);i++ )
if( RCS_C5_Event[i].index == infno ) break;
strcpy(pStr,RCS_C5_Event[i].text);
audio = RCS_C5_Event[i].audio;
dpi = RCS_C5_Event[i].dpi;
break;
case 0xc6:
for( i=0;i<sizeof(RCS_C6_Event)/sizeof(EVTALM);i++ )
if( RCS_C6_Event[i].index == infno ) break;
strcpy(pStr,RCS_C6_Event[i].text);
audio = RCS_C6_Event[i].audio;
dpi = RCS_C6_Event[i].dpi;
break;
case 0xd2:
for( i=0;i<sizeof(RCS_D2_Event)/sizeof(EVTALM);i++ )
if( RCS_D2_Event[i].index == infno ) break;
strcpy(pStr,RCS_D2_Event[i].text);
audio = RCS_D2_Event[i].audio;
dpi = RCS_D2_Event[i].dpi;
break;
case 0xd3:
for( i=0;i<sizeof(RCS_D3_Event)/sizeof(EVTALM);i++ )
if( RCS_D3_Event[i].index == infno ) break;
strcpy(pStr,RCS_D3_Event[i].text);
audio = RCS_D3_Event[i].audio;
dpi = RCS_D3_Event[i].dpi;
break;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -