⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 function.cpp

📁 七号信令解码器
💻 CPP
📖 第 1 页 / 共 5 页
字号:

extern BYTE  ApplyChargeInfo_FieldCrit[10][4];

extern char  StartDP_Field[112][25];

extern BYTE  StartDP_FieldCrit[112][4];

extern char  SendNofity_Field[76][25];

extern BYTE  SendNofity_FieldCrit[76][4];

extern char  CueCollectInfo_Field[110][25];

extern BYTE  CueCollectInfo_FieldCrit[110][4];

extern char  ReleaseCall_Field[3][25];

extern BYTE  ReleaseCall_FieldCrit[3][4];

extern char  ReqBCSMEvent_Field[35][25];

extern BYTE  ReqBCSMEvent_FieldCrit[35][4];

extern char  ResetTimer_Field[21][25];

extern BYTE  ResetTimer_FieldCrit[21][4];

extern char  SendChargeInfo_Field[56][25];

extern BYTE  SendChargeInfo_FieldCrit[56][4];

extern char  SpecialResRep_Field[2][25];

extern BYTE  SpecialResRep_FieldCrit[2][4];



//INAP Err
extern char     CAPErrMsg[CAPERRMSG_NUM+1][24];

extern BYTE    CAPErrMT[CAPERRMSG_NUM+1];


/****************************************************************************
 *                                                                          *
 *  FUNCTION   : DrawNATCIStr(BYTE)                                             *
 *  PURPOSE  : Get One Byte Data's Str
 *
 ****************************************************************************/
int DrawNATCIStr(CMsgText& msgText,BYTE bData,int nDrawX,int nDrawY,int DltY,float PtRate,bool YOrNTxt)
{
    char  Str[70];

	strcpy(word1_TotalDataStr,"");
	if(YOrNTxt==true)
	{strcat(word1_TotalDataStr,"\r\n");
	strcat(word1_TotalDataStr,"                ");}
	nDrawY+=DltY;
	strcpy(Str,"  . . . . . . ");
	if((bData&0x03)==0) {
      strcat(Str,"00,连接中无卫星电路");
   }
   else if((bData&0x03)==1) {
      strcat(Str,"01,连接中有一段卫星电路");
   }
   else if((bData&0x03)==2) {
      strcat(Str,"10,连接中有两段卫星电路");
   }
	else {
      strcat(Str,"11,备用");
	}
    if(YOrNTxt==true)
	{strcat(word1_TotalDataStr,Str);
	strcat(word1_TotalDataStr,"\r\n");
    strcat(word1_TotalDataStr,"                ");}
	else
	msgText.AddString(nDrawX*PtRate ,nDrawY*PtRate,Str,strlen(Str));
    

	nDrawY+=DltY;
 	strcpy(Str,"  . . . . ");
  if((bData&0x0c)==0) {
      strcat(Str,"00. . ,无端到端方式可用(只有逐段转发方式可用)");
   }
   else if((bData&0x0c)==4) {
      strcat(Str,"01. . ,端到端传递方式可用");
   }
   else if((bData&0x0c)==8) {
      strcat(Str,"10. . ,SCCP方式可用");
   }
   else  {
      strcat(Str,"11. . ,传递方式和SCCP方式可用");
   }
    if(YOrNTxt==true)
	{strcat(word1_TotalDataStr,Str);
	strcat(word1_TotalDataStr,"\r\n");
    strcat(word1_TotalDataStr,"                ");}
	else
	msgText.AddString(nDrawX*PtRate ,nDrawY*PtRate,Str,strlen(Str));
    

	nDrawY+=DltY;
	strcpy(Str,"  . . . ");
	if((bData&0x10)==0) {
      strcat(Str,"0. . . . ,未包括去话半回声控制装置");
   }
   else {
      strcat(Str,"1. . . . ,包括去话半回声控制装置");
	}
    if(YOrNTxt==true)
	{strcat(word1_TotalDataStr,Str);
	strcat(word1_TotalDataStr,"\r\n");
    strcat(word1_TotalDataStr,"                ");}
	else
	msgText.AddString(nDrawX*PtRate ,nDrawY*PtRate,Str,strlen(Str));
    

	nDrawY+=DltY;
	strcpy(Str,"  XXX. . . . . ,备用");
	if(YOrNTxt==true)
	strcat(word1_TotalDataStr,Str);
	else
	msgText.AddString(nDrawX*PtRate ,nDrawY*PtRate,Str,strlen(Str));
    

  return(nDrawY);
}

/****************************************************************************
 *                                                                          *
 *  FUNCTION   : DrawFOCINStr(BYTE)                                             *
 *  PURPOSE  : Get One Byte Data's Str
 *
 ****************************************************************************/
int DrawFOCINStr(CMsgText& msgText,WORD bData,int nDrawX,int nDrawY,int DltY,float PtRate,bool YOrNTxt)
{
    char  Str[70];

    strcpy(word1_TotalDataStr,"");
	if(YOrNTxt==true)
	{strcat(word1_TotalDataStr,"\r\n");
    strcat(word1_TotalDataStr,"                ");}
	nDrawY+=DltY;
	strcpy(Str,"  . . . . . . . . . . . . . . . ");
	if((bData&0x0001)==0) {
      strcat(Str,"0,呼叫按国内呼叫处理");
   }
   else {
      strcat(Str,"1,呼叫按国际呼叫处理");
	}
    if(YOrNTxt==true)
	{strcat(word1_TotalDataStr,Str);
	strcat(word1_TotalDataStr,"\r\n");
    strcat(word1_TotalDataStr,"                ");}
	else
	msgText.AddString(nDrawX*PtRate ,nDrawY*PtRate,Str,strlen(Str));
    

	nDrawY+=DltY;
 	strcpy(Str,"  . . . . . . . . . . . . . ");
  if((bData&0x0006)==0) {
      strcat(Str,"00. ,无端到端方式可用(只有逐段转发方式可用)");
   }
   else if((bData&0x0006)==2) {
      strcat(Str,"01. ,端到端传递方式可用");
   }
   else if((bData&0x0006)==4) {
      strcat(Str,"10. ,SCCP方式可用");
   }
   else  {
      strcat(Str,"11. ,传递方式和SCCP方式可用");
   }
    if(YOrNTxt==true)
	{strcat(word1_TotalDataStr,Str);
	strcat(word1_TotalDataStr,"\r\n");
    strcat(word1_TotalDataStr,"                ");}
	else
	msgText.AddString(nDrawX*PtRate ,nDrawY*PtRate,Str,strlen(Str));
    

	nDrawY+=DltY;
	strcpy(Str,"  . . . . . . . . . . . . ");
	if((bData&0x0008)==0) {
      strcat(Str,"0. . . ,未遇到互通(所有方向都是N0. 7信号)");
   }
   else {
      strcat(Str,"1. . . ,遇到互通");
	}
    if(YOrNTxt==true)
	{strcat(word1_TotalDataStr,Str);
	strcat(word1_TotalDataStr,"\r\n");
    strcat(word1_TotalDataStr,"                ");}
	else
	msgText.AddString(nDrawX*PtRate ,nDrawY*PtRate,Str,strlen(Str));
    

	nDrawY+=DltY;
	strcpy(Str,"  . . . . . . . . . . . ");
   if((bData&0x0010)==0) {
      strcat(Str,"0. . . . ,无端到端信息可用");
   }
   else {
      strcat(Str,"1. . . . ,端到端信息可用");
   }
	if(YOrNTxt==true)
	{strcat(word1_TotalDataStr,Str);
	strcat(word1_TotalDataStr,"\r\n");
    strcat(word1_TotalDataStr,"                ");}
	else
	msgText.AddString(nDrawX*PtRate ,nDrawY*PtRate,Str,strlen(Str));
    

	nDrawY+=DltY;
	strcpy(Str,"  . . . . . . . . . . ");
   if((bData&0x0020)==0) {
      strcat(Str,"0. . . . . ,不是所有方向都使用ISDN用户部分");
   }
   else {
      strcat(Str,"1. . . . . ,所有方向都使用ISDN用户部分");
   }
	if(YOrNTxt==true)
	{strcat(word1_TotalDataStr,Str);
	strcat(word1_TotalDataStr,"\r\n");
    strcat(word1_TotalDataStr,"                ");}
	else
	msgText.AddString(nDrawX*PtRate ,nDrawY*PtRate,Str,strlen(Str));
    

	nDrawY+=DltY;
	strcpy(Str,"  . . . . . . . . ");
   if((bData&0x00c0)==0) {
      strcat(Str,"00. . . . . . ,所有方向都优选ISDN用户部分");
   }
   else if((bData&0x00c0)==0x0040) {
      strcat(Str,"01. . . . . . ,不是所有方向都需要ISDN用户部分");
   }
   else if((bData&0x00c0)==0x0080) {
      strcat(Str,"10. . . . . . ,所有方向都需要ISDN用户部分");
   }
   else {
      strcat(Str,"11. . . . . . ,备用");
   }
	if(YOrNTxt==true)
	{strcat(word1_TotalDataStr,Str);
	strcat(word1_TotalDataStr,"\r\n");
    strcat(word1_TotalDataStr,"                ");}
	else
	msgText.AddString(nDrawX*PtRate ,nDrawY*PtRate,Str,strlen(Str));
    

	nDrawY+=DltY;
	strcpy(Str,"  . . . . . . . ");
   if((bData&0x0100)==0) {
      strcat(Str,"0. . . . . . . . ,始发接入非ISDN");
   }
   else {
      strcat(Str,"1. . . . . . . . ,始发接入ISDN");
   }
	if(YOrNTxt==true)
	{strcat(word1_TotalDataStr,Str);
	strcat(word1_TotalDataStr,"\r\n");
    strcat(word1_TotalDataStr,"                ");}
	else
	msgText.AddString(nDrawX*PtRate ,nDrawY*PtRate,Str,strlen(Str));
    

	nDrawY+=DltY;
	strcpy(Str,"  . . . . . ");
   if((bData&0x0400)==0) {
      strcat(Str,"00. . . . . . . . . ,无SCCP方式指示");
   }
   else if((bData&0x0400)==0x0200) {
      strcat(Str,"01. . . . . . . . . ,无连接方式可用");
   }
   else if((bData&0x0400)==0x0400) {
      strcat(Str,"10. . . . . . . . . ,面向连接方式可用");
   }
   else {
      strcat(Str,"11. . . . . . . . . ,无连接和面向连接方式可用");
   }
	if(YOrNTxt==true)
	{strcat(word1_TotalDataStr,Str);
	strcat(word1_TotalDataStr,"\r\n");
    strcat(word1_TotalDataStr,"                ");}
	else
	msgText.AddString(nDrawX*PtRate ,nDrawY*PtRate,Str,strlen(Str));
    

	nDrawY+=DltY;
	strcpy(Str,"  . . . . X. . . . . . . . . . . ,备用");
	if(YOrNTxt==true)
	{strcat(word1_TotalDataStr,Str);
	strcat(word1_TotalDataStr,"\r\n");
    strcat(word1_TotalDataStr,"                ");}
	else
	msgText.AddString(nDrawX*PtRate ,nDrawY*PtRate,Str,strlen(Str));
    

	nDrawY+=DltY;
	strcpy(Str,"  XXXX. . . . . . . . . . . . ,备用");
	if(YOrNTxt==true)
	strcat(word1_TotalDataStr,Str);
	else
	msgText.AddString(nDrawX*PtRate ,nDrawY*PtRate,Str,strlen(Str));
    
	
	return(nDrawY);
}

/****************************************************************************
 *                                                                          *
 *  FUNCTION   : DrawOFCINStr(BYTE)                                             *
 *  PURPOSE  : Get One Byte Data's Str
 *
 ****************************************************************************/
int DrawOFCINStr(CMsgText& msgText,BYTE bData,int nDrawX,int nDrawY,int DltY,float PtRate,bool YOrNTxt)
{
    char  Str[70];

    strcpy(word1_TotalDataStr,"");
	if(YOrNTxt==true)
	{strcat(word1_TotalDataStr,"\r\n");
    strcat(word1_TotalDataStr,"                ");}
	nDrawY+=DltY;
	strcpy(Str,"  . . . . . . ");
	if((bData&0x03)==0) {
      strcat(Str,"00,非闭合用户群(CUG)呼叫");
   }
   else if((bData&0x03)==1) {
      strcat(Str,"01,备用");
   }
   else if((bData&0x03)==2) {
      strcat(Str,"10,闭合用户群呼叫,允许出接口");
   }
	else {
      strcat(Str,"11,闭合用户群呼叫,不允许出接口");
	}
    if(YOrNTxt==true)
	{strcat(word1_TotalDataStr,Str);
	strcat(word1_TotalDataStr,"\r\n");
    strcat(word1_TotalDataStr,"                ");}
	else
	msgText.AddString(nDrawX*PtRate ,nDrawY*PtRate,Str,strlen(Str));
    

	nDrawY+=DltY;
	strcpy(Str,"  . . . . . ");
	if((bData&0x04)==0) {
      strcat(Str,"0. .,将不发送附加信息");
   }
   else {
      strcat(Str,"1. . ,将在简单分段中发送附加信息");
	}
    if(YOrNTxt==true)
	{strcat(word1_TotalDataStr,Str);
	strcat(word1_TotalDataStr,"\r\n");
    strcat(word1_TotalDataStr,"                ");}
	else
	msgText.AddString(nDrawX*PtRate ,nDrawY*PtRate,Str,strlen(Str));
    

	nDrawY+=DltY;
	strcpy(Str,"  . XXX. . . . ,备用");
	if(YOrNTxt==true)
	{strcat(word1_TotalDataStr,Str);
	strcat(word1_TotalDataStr,"\r\n");
    strcat(word1_TotalDataStr,"                ");}
	else
	msgText.AddString(nDrawX*PtRate ,nDrawY*PtRate,Str,strlen(Str));
    

	nDrawY+=DltY;
	strcpy(Str,"");
	if((bData&0x80)==0) {
      strcat(Str,"  0. . . . . . . ,未请求被连接线识别");
   }
   else {
      strcat(Str,"  1. . . . . . . ,请求被连接线识别");
	}
    if(YOrNTxt==true)
	strcat(word1_TotalDataStr,Str);
	else
	msgText.AddString(nDrawX*PtRate ,nDrawY*PtRate,Str,strlen(Str));
    

  return(nDrawY);
}

/****************************************************************************
 *                                                                          *
 *  FUNCTION   : DrawFOCINStr(BYTE)                                             *
 *  PURPOSE  : Get One Byte Data's Str
 *
 ****************************************************************************/
int DrawREDINStr(CMsgText& msgText,WORD bData,int nDrawX,int nDrawY,int DltY,float PtRate,bool YOrNTxt)
{
    char  Str[70],Str1[30];

    strcpy(word1_TotalDataStr,"");
	if(YOrNTxt==true)
	{strcat(word1_TotalDataStr,"\r\n");
    strcat(word1_TotalDataStr,"                ");}
	nDrawY+=DltY;
	strcpy(Str,"  . . . . . . . . . . . . . ");
	if((bData&0x0007)==0) {
      strcat(Str,"000,无改发");
   }
   else if((bData&0x0007)==1) {
      strcat(Str,"001,呼叫重新选路");
	}
   else if((bData&0x0007)==2) {
      strcat(Str,"010,呼叫重新选路,所有的改发信息提供限制");
	}
   else if((bData&0x0007)==3) {
      strcat(Str,"011,呼叫变更");
	}
   else if((bData&0x0007)==4) {
      strcat(Str,"100,呼叫变更,所有的改发信息提供限制");
	}
   else if((bData&0x0007)==5) {
      strcat(Str,"101,呼叫重新选路,改发号码提供限制");
	}
   else if((bData&0x0007)==6) {
      strcat(Str,"110,呼叫变更,改发号码提供限制");
	}
   else {
      strcat(Str,"111,备用");
	}
    if(YOrNTxt==true)
	{strcat(word1_TotalDataStr,Str);
	strcat(word1_TotalDataStr,"\r\n");
    strcat(word1_TotalDataStr,"                ");}
	else
	msgText.AddString(nDrawX*PtRate ,nDrawY*PtRate,Str,strlen(Str));
    

	nDrawY+=DltY;
	strcpy(Str,"  . . . . . . . . . . . . X. . . ,备用");
	if(YOrNTxt==true)
	{strcat(word1_TotalDataStr,Str);
	strcat(word1_TotalDataStr,"\r\n");
    strcat(word1_TotalDataStr,"                ");}
	else
	msgText.AddString(nDrawX*PtRate ,nDrawY*PtRate,Str,strlen(Str));
    
	
	nDrawY+=DltY;
 	strcpy(Str,"  . . . . . . . . ");
  if((bData&0x00f0)==0) {
      strcat(Str,"0000. . . . ,原改发原因未知/不可用");
   }
   else if((bData&0x00f0)==0x10) {
      strcat(Str,"0001. . . . ,原改发原因为用户忙");
   }
   else if((bData&0x00f0)==0x20) {
      strcat(Str,"0010. . . . ,原改发原因为无应答");
   }
   else if((bData&0x00f0)==0x30) {
      strcat(Str,"0011. . . . ,原改发原因为无条件");
   }
   else {
      strcat(Str,"0100. . . . -  . . . . . . . . 1111. . . . ,备用");
   }
    if(YOrNTxt==true)
	{strcat(word1_TotalDataStr,Str);
	strcat(word1_TotalDataStr,"\r\n");
    strcat(word1_TotalDataStr,"                ");}
	else
	msgText.AddString(nDrawX*PtRate ,nDrawY*PtRate,Str,strlen(Str));

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -