📄 101.c
字号:
nVarQualifier.NumsOfObject=1;
memcpy(&TCommCode[7],&nVarQualifier,1);
TCommCode[10]=nYKObject; //INFORMATION OBJECT ADDRESS
TCommCode[11]=0x0B;
TCommCode[12]=nYKQualifier; //YK command qualifier
nASDULen=7; //1+6
return;
}
if(nTypeIdentity==C_RP_NC_1) //substation reset
{
nVarQualifier.SQ=0;
nVarQualifier.NumsOfObject=1;
memcpy(&TCommCode[7],&nVarQualifier,1);
TCommCode[10]=0x0; //INFORMATION OBJECT ADDRESS
TCommCode[11]=0x0;
TCommCode[12]=0x1; //qualifier
nASDULen=7; //1+6
SpecialFlag.FileTxFlag=0; //05_11_5
SpecialFlag.nSGCount=0; //05_11_5
return;
}
if(nTypeIdentity==P_ME_NA_1) //parameter setting
{
nVarQualifier.SQ=0;
nVarQualifier.NumsOfObject=1;
memcpy(&TCommCode[7],&nVarQualifier,1);
TCommCode[10]=nGroup; //INFORMATION OBJECT ADDRESS
TCommCode[11]=0x0B;
i=nVarQualifier.NumsOfObject;
if(nGroup>=0x9b)
{//电度底数
nASDULen= 11;
memcpy(TCommCode+12,RCommCode+12 ,4);
}
else
{
nASDULen= 9;
memcpy(TCommCode+12,RCommCode+12 ,2);
}
return;
}
if(nTypeIdentity==P_AC_NA_1) //参数激活
{
nVarQualifier.SQ=0;
nVarQualifier.NumsOfObject=1;
memcpy(&TCommCode[7],&nVarQualifier,1);
memcpy(TCommCode+9,RCommCode+9 ,4);
nASDULen=7; //1+6
return;
}
if(nTypeIdentity==C_CS_NA_1) //时钟同步//////////////////////////////////////////////////////////
{
memcpy(&TCommCode[7],&nVarQualifier,1);
memcpy(&TCommCode[10],&RCommCode[10],9);
nASDULen=13; //1+6
return;
}
if(nTypeIdentity==F_DR_TA_1)//目录响应
{
nVarQualifier.SQ=0;
nVarQualifier.NumsOfObject=1;
memcpy(&TCommCode[7],&nVarQualifier,1);
TCommCode[10]=0XEA; //INFORMATION OBJECT ADDRESS
TCommCode[11]=0x0c;
memcpy(&TCommCode[12],&RCommCode[12],2);
if( (RCommCode[13]&0xc0 ) == 0x40)
{
TCommCode[14]=0xc0;
TCommCode[15]=0x05;
TCommCode[16]=0;
}
if( (RCommCode[13]&0xc0 ) == 0x80)
{
TCommCode[14]=0xfd;
TCommCode[15]=0;
TCommCode[16]=0;
}
if( (RCommCode[13]&0xc0 ) == 0xc0)
{
TCommCode[14]=0x82;
TCommCode[15]=0x01;
TCommCode[16]=0;
}
TCommCode[17]=0x80;//SOF
TCommCode[18]=(BYTE)(stDateTime.MillSecond); //ms
TCommCode[19]=(BYTE)(stDateTime.MillSecond>>8); //ms
memcpy(&TCommCode[20],&stDateTime.minute,5);
nASDULen=19; //1+6
return;
}
if(nTypeIdentity==F_FR_NA_1)//文件准备好确认帧
{
nVarQualifier.SQ=0;
nVarQualifier.NumsOfObject=1;
memcpy(&TCommCode[7],&nVarQualifier,1);
TCommCode[10]=0XEA; //INFORMATION OBJECT ADDRESS
TCommCode[11]=0x0c;
memcpy(&TCommCode[12],&RCommCode[12],2);
if( (RCommCode[13]&0xc0 ) == 0x40)
{
TCommCode[14]=0xc0;
TCommCode[15]=0x05;
TCommCode[16]=0;
}
if( (RCommCode[13]&0xc0 ) == 0x80)
{
TCommCode[14]=0xfd;
TCommCode[15]=0;
TCommCode[16]=0;
}
if( (RCommCode[13]&0xc0 ) == 0xc0)
{
TCommCode[14]=0x82;
TCommCode[15]=0x01;
TCommCode[16]=0;
}
TCommCode[17]=0; //FRQ
nASDULen=12;
return;
}
if(nTypeIdentity==F_SR_NA_1)//节准备好确认帧
{
nVarQualifier.SQ=0;
nVarQualifier.NumsOfObject=1;
memcpy(&TCommCode[7],&nVarQualifier,1);
TCommCode[10]=0XEA; //INFORMATION OBJECT ADDRESS
TCommCode[11]=0x0c;
memcpy(&TCommCode[12],&RCommCode[12],3);
if( (RCommCode[13]&0xc0 ) == 0x40)
{ TCommCode[15]=0xc0;
TCommCode[16]=0x05;
TCommCode[17]=0;
}
if( (RCommCode[13]&0xc0 ) == 0x80)
{
TCommCode[15]=0xfd;
TCommCode[16]=0;
TCommCode[17]=0;
}
if( (RCommCode[13]&0xc0 ) == 0xc0)
{
TCommCode[15]=0x82;
TCommCode[16]=0x01;
TCommCode[17]=0;
}
TCommCode[18]=0; //FRQ
nASDULen=13; //1+6
return;
}
if(nTypeIdentity==F_LS_NA_1)//最后段或节确认帧
{
nVarQualifier.SQ=0;
nVarQualifier.NumsOfObject=1;
memcpy(&TCommCode[7],&nVarQualifier,1);
TCommCode[10]=0XEA; //INFORMATION OBJECT ADDRESS
TCommCode[11]=0x0c;
memcpy(&TCommCode[12],&RCommCode[12],3);
TCommCode[15]=SpecialFlag.LSQ;
TCommCode[16]=SpecialFlag.CHS;
nASDULen=11; //1+6
return;
}
if(nTypeIdentity==F_SG_NA_1) //file transfer
{
nVarQualifier.SQ=0;
nVarQualifier.NumsOfObject=1;
memcpy(&TCommCode[7],&nVarQualifier,1);
TCommCode[10]=0XEA; //INFORMATION OBJECT ADDRESS
TCommCode[11]=0x0c;
if( ( (RCommCode[13]&0xC0) >>6) ==1) //1-整点数据
{
memcpy(&TCommCode[12],&RCommCode[12],3);
EncodeHistData(); //15....总长度-2
nASDULen=195; //err???
return;
}
if( ( (RCommCode[13]&0xC0) >>6) ==2) //2-统计数据
{
memcpy(&TCommCode[12],&RCommCode[12],3);
nASDULen=EncodeStaticData(); //15....总长度-2
nASDULen+=9;
return;
}
if( ( (RCommCode[13]&0xC0) >>6) ==3) //3-录波数据
{
memcpy(&TCommCode[12],&RCommCode[12],3);
nASDULen=EncodeLuboData();
nASDULen+=9;
return;
}
TCommCode[13]= RCommCode[13]; //stFileName.month; //file name
TCommCode[12]= RCommCode[12]; //stFileName.week_date;
TCommCode[14]=nGroup; //section name
if(nGroup<=23) //records of per hour
{
stFileName.hour=nGroup;
stFileName.minute=0;
ReadHisData(&TCommCode[16],&nFileDataLen,&stFileName,1,MAXLENGTH);
TCommCode[15]=nFileDataLen;
nFileDataLen=0;
nASDULen=TCommCode[15]+10;
return ;
}
if(nGroup==UA_NUM) //ua
{
ReadHisData(&TCommCode[16],(&nFileDataLen),&stFileName,21, MAXLENGTH);
TCommCode[15]=nFileDataLen;
nFileDataLen=0;
nASDULen=TCommCode[15]+10;
return ;
}
if(nGroup==UB_NUM) //ub
{
ReadHisData(&TCommCode[16],&nFileDataLen,&stFileName,22 , MAXLENGTH);
TCommCode[15]=nFileDataLen;
nFileDataLen=0;
nASDULen=TCommCode[15]+10;
return ;
}
if(nGroup==UC_NUM) //uc
{
ReadHisData(&TCommCode[16],&nFileDataLen,&stFileName,23, MAXLENGTH);
TCommCode[15]=nFileDataLen;
nFileDataLen=0;
nASDULen=TCommCode[15]+10;
return ;
}
if(nGroup==IA_NUM) //Ia
{
ReadHisData(&TCommCode[16],&nFileDataLen,&stFileName,24, MAXLENGTH);
TCommCode[15]=nFileDataLen;
nFileDataLen=0;
nASDULen=TCommCode[15]+10;
return ;
}
if(nGroup==IB_NUM) //Ib
{
ReadHisData(&TCommCode[16],&nFileDataLen,&stFileName,25, MAXLENGTH);
TCommCode[15]=nFileDataLen;
nFileDataLen=0;
nASDULen=TCommCode[15]+10;
return ;
}
if(nGroup==IC_NUM) //Ic
{
ReadHisData(&TCommCode[16],&nFileDataLen,&stFileName,26, MAXLENGTH);
TCommCode[15]=nFileDataLen;
nFileDataLen=0;
nASDULen=TCommCode[15]+10;
return ;
}
if(nGroup==I0_NUM) //I0
{
ReadHisData(&TCommCode[16],&nFileDataLen,&stFileName,27, MAXLENGTH);
TCommCode[15]=nFileDataLen;
nFileDataLen=0;
nASDULen=TCommCode[15]+10;
return ;
}
if(nGroup==P_NUM)
{
ReadHisData(&TCommCode[16],&nFileDataLen,&stFileName,28, MAXLENGTH);
TCommCode[15]=nFileDataLen;
_NOP();
nFileDataLen=0;
nASDULen=TCommCode[15]+10;
return ;
}
if(nGroup==Q_NUM)
{
ReadHisData(&TCommCode[16],&nFileDataLen,&stFileName,29, MAXLENGTH);
TCommCode[15]=nFileDataLen;
_NOP();
nFileDataLen=0;
nASDULen=TCommCode[15]+10;
return ;
}
if(nGroup==PSUM_NUM) //A R
{
ReadHisData(&TCommCode[16],&nFileDataLen,&stFileName,19, MAXLENGTH);
TCommCode[15]=nFileDataLen;
nFileDataLen=0;
nASDULen=TCommCode[15]+10;
return ;
}
if(nGroup==QSUM_NUM)
{
return ;
}
if(nGroup==TTUP_NUM) //here ,look upon the section name as the group number!
{
TCommCode[15]=40; //the length of segment
memcpy(&TCommCode[16],(BYTE*)&TTU_RunParam.UHighV,40 );
nASDULen= TCommCode[15] +10;
return;
}
if(nGroup==YCO_NUM)
{
ReadStaticsData(&TCommCode[16],&nFileDataLen,&stFileName,11, MAXLENGTH);
TCommCode[15]=nFileDataLen;
nFileDataLen=0;
nASDULen=TCommCode[15]+10;
return ;
}
if(nGroup==YCM_NUM)
{
ReadStaticsData(&TCommCode[16],&nFileDataLen,&stFileName,12, MAXLENGTH);
TCommCode[15]=nFileDataLen;
nFileDataLen=0;
nASDULen=TCommCode[15]+10;
return ;
}
if(nGroup==POW_NUM)//TTU运行状态
{
ReadStaticsData(&TCommCode[16],&nFileDataLen,&stFileName,13, MAXLENGTH);
TCommCode[15]=nFileDataLen;
nFileDataLen=0;
nASDULen=TCommCode[15]+10;
return ;
}
if(nGroup==PSHUT_NUM)
{
ReadStaticsData(&TCommCode[16],&nFileDataLen,&stFileName,14, MAXLENGTH);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -