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

📄 function.cpp

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

	nDrawY+=DltY;
 	strcpy(Str,"  . . . . .");
  if((bData&0x0700)==0) {
      strcat(Str,"000");
   }
   else if((bData&0x0700)==0x0100) {
      strcat(Str,"001");
   }
   else if((bData&0x0700)==0x0200) {
      strcat(Str,"010");
   }
   else if((bData&0x0700)==0x0300) {
      strcat(Str,"011");
   }
   else if((bData&0x0700)==0x0400) {
      strcat(Str,"100");
   }
   else if((bData&0x0700)==0x0500) {
      strcat(Str,"101");
   }
   else if((bData&0x0700)==0x0600) {
      strcat(Str,"110");
   }
   else {
      strcat(Str,"111");
   }
	sprintf(Str1,"%d",HIBYTE(bData&0x0700));
	strcat(Str,". . . . . . . ,改发计数器,呼叫经过改发的次数为");
	strcat(Str,Str1);
    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&0x0800)==0) {
      strcat(Str,"0");
   }
   else {
      strcat(Str,"1");
	}
	strcat(Str,". . . . . . . ,备用");
    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&0xf000)==0) {
      strcat(Str,"0000. . . . . . . . . . . . ,改发原因未知/不可用");
   }
   else if((bData&0xf000)==0x1000) {
      strcat(Str,"0001. . . . . . . . . . . . ,改发原因为用户忙");
   }
   else if((bData&0xf000)==0x2000) {
      strcat(Str,"0010. . . . . . . . . . . . ,改发原因为无应答");
   }
   else if((bData&0xf000)==0x3000) {
      strcat(Str,"0011. . . . . . . . . . . . ,改发原因为无条件");
   }
   else if((bData&0xf000)==0x4000) {
      strcat(Str,"0100. . . . . . . . . . . . ,改发原因为在提示期间改向");
   }
   else if((bData&0xf000)==0x5000) {
      strcat(Str,"0101. . . . . . . . . . . . ,改发原因为该向立即响应");
   }
   else if((bData&0xf000)==0x6000) {
      strcat(Str,"0110. . . . . . . . . . . . ,改发原因为移动用户不可达");
   }
   else {
      strcat(Str,"0111. . . . . . . . . . . . - 1111. . . . . . . . . . . . ,备用");
   }
    if(YOrNTxt==true)
	strcat(word1_TotalDataStr,Str);
	else
	msgText.AddString(nDrawX*PtRate ,nDrawY*PtRate,Str,strlen(Str));
    

  return(nDrawY);
}

/****************************************************************************
 *                                                                          *
 *  FUNCTION   : DrawUUINStr(BYTE)                                             *
 *  PURPOSE  : Get One Byte Data's Str
 *
 ****************************************************************************/
int DrawUUINStr(CMsgText& msgText,BYTE bData,int nDrawX,int nDrawY,int DltY,float PtRate,bool YOrNTxt)
{
    char  Str[70];
	 BOOL  bReq;
    
	strcpy(word1_TotalDataStr,"");
	 if(YOrNTxt==true)
	{strcat(word1_TotalDataStr,"\r\n");
    strcat(word1_TotalDataStr,"                ");}
	nDrawY+=DltY;
	strcpy(Str,"  . . . . . . . ");
	if((bData&0x01)==0) {
		bReq=TRUE;
      strcat(Str,"0,请求类型");
   }
   else {
		bReq=FALSE;
      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&0x06)==0) {
		if(bReq)
			strcat(Str,"00 .,业务1无信息");
		else strcat(Str,"00 .,业务1无信息");
   }
	else if((bData&0x06)==2) {
		if(bReq)
			strcat(Str,"01 .,业务1备用");
		else strcat(Str,"01 .,业务1不提供");
   }
	else if((bData&0x06)==4) {
		if(bReq)
			strcat(Str,"10 .,业务1请求,非必须");
		else strcat(Str,"10 .,业务1提供");
   }
   else {
		if(bReq)
			strcat(Str,"11 .,业务1请求,必须");
		else strcat(Str,"11 .,业务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&0x18)==0) {
		if(bReq)
			strcat(Str,"00 . . . ,业务2无信息");
		else strcat(Str,"00 . . . ,业务2无信息");
   }
	else if((bData&0x18)==0x08) {
		if(bReq)
			strcat(Str,"01 . . . ,业务2备用");
		else strcat(Str,"01 . . . ,业务2不提供");
   }
	else if((bData&0x18)==0x10) {
		if(bReq)
			strcat(Str,"10 . . . ,业务2请求,非必须");
		else strcat(Str,"10 . . . ,业务2提供");
   }
   else {
		if(bReq)
			strcat(Str,"11 . . . ,业务2请求,必须");
		else strcat(Str,"11 . . . ,业务2备用");
	}
    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&0x60)==0) {
		if(bReq)
			strcat(Str,"00 . . . . . ,业务3无信息");
		else strcat(Str,"00 . . . . . ,业务3无信息");
   }
	else if((bData&0x60)==0x20) {
		if(bReq)
			strcat(Str,"01 . . . . . ,业务3备用");
		else strcat(Str,"01 . . . . . ,业务3不提供");
   }
	else if((bData&0x60)==0x40) {
		if(bReq)
			strcat(Str,"10 . . . . . ,业务3请求,非必须");
		else strcat(Str,"10 . . . . . ,业务3提供");
   }
   else {
		if(bReq)
			strcat(Str,"11 . . . . . ,业务3请求,必须");
		else strcat(Str,"11 . . . . . ,业务3备用");
	}
    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);
	else
	msgText.AddString(nDrawX*PtRate ,nDrawY*PtRate,Str,strlen(Str));
   

  return(nDrawY);
}

/****************************************************************************
 *                                                                          *
 *  FUNCTION   : DrawIRQINStr(BYTE)                                             *
 *  PURPOSE  : Get One Byte Data's Str
 *
 ****************************************************************************/
int DrawIRQINStr(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&0x0002)==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,"  . . . . . . . . . . . . . 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&0x0008)==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&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,"  . . . . . . . . . XX. . . . . ,备用");
	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&0x0080)==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,"  XXXXXXXX. . . . . . . . ,备用");
	if(YOrNTxt==true)
	strcat(word1_TotalDataStr,Str);
	else
	msgText.AddString(nDrawX*PtRate ,nDrawY*PtRate,Str,strlen(Str));
    

  return(nDrawY);
}

/****************************************************************************
 *                                                                          *
 *  FUNCTION   : DrawINFINStr(BYTE)                                             *
 *  PURPOSE  : Get One Byte Data's Str
 *
 ****************************************************************************/
int DrawINFINStr(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&0x0003)==0) {
      strcat(Str,"00,未包括主叫用户地址");
   }
	else if((bData&0x0003)==1) {
      strcat(Str,"01,主叫用户地址不可用");
   }
	else if((bData&0x0003)==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&0x0004)==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,"  . . . . . . . . . . . XX. . . ,备用");
	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. . . . . ,不包括主叫用户类别");
   }
   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&0x0040)==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&0x0080)==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,"  XXXXXXXX. . . . . . . . ,备用");
	if(YOrNTxt==true)
	strcat(word1_TotalDataStr,Str);
	else
	msgText.AddString(nDrawX*PtRate ,nDrawY*PtRate,Str,strlen(Str));
    

  return(nDrawY);

⌨️ 快捷键说明

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