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

📄 function.cpp

📁 七号信令解码器
💻 CPP
📖 第 1 页 / 共 5 页
字号:
	strcat(word1_TotalDataStr,"\r\n");
    strcat(word1_TotalDataStr,"                ");}
	else
	msgText.AddString(nDrawX*PtRate ,nDrawY*PtRate,Str,strlen(Str));
    

	nDrawY+=DltY;
	strcpy(Str,"  . . ");
	if((bData&0x30)==0) {
      strcat(Str,"00. . . . ,去话半回声控制装置请求无信息");
   }
   else if((bData&0x30)==16) {
      strcat(Str,"01. . . . ,去话半回声控制装置激活请求");
   }
   else if((bData&0x30)==32) {
      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&0xc0)==0) {
      strcat(Str,"00. . . . . . ,来话半回声控制装置请求无信息");
   }
   else if((bData&0xc0)==0x40) {
      strcat(Str,"01. . . . . . ,来话半回声控制装置激活请求");
   }
   else if((bData&0xc0)==0x80) {
      strcat(Str,"10. . . . . . ,来话半回声控制装置去活请求");
   }
	else {
      strcat(Str,"11. . . . . . ,备用");
	}
    if(YOrNTxt==true)
	strcat(word1_TotalDataStr,Str);
	else
	msgText.AddString(nDrawX*PtRate ,nDrawY*PtRate,Str,strlen(Str));
    

  return(nDrawY);
}

/****************************************************************************
 *                                                                          *
 *  FUNCTION   : DrawCMINFOStr(BYTE)                                             *
 *  PURPOSE  : Get One Byte Data's Str
 *
 ****************************************************************************/
int DrawCMINFOStr(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&0x07)==0) {
      strcat(Str,"000,预定任选不知道");
   }
   else if((bData&0x07)==1) {
      strcat(Str,"001,提供不允许预定任选");
   }
   else if((bData&0x07)==2) {
      strcat(Str,"010,提供允许预定任选,带有改发号码");
   }
   else if((bData&0x07)==3) {
      strcat(Str,"011,提供允许预定任选,不带有改发号码");
   }
	else {
      strcat(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&0x78)==0) {
      strcat(Str,"0000. . . ,该发原因不知道");
   }
   else if((bData&0x78)==0x08) {
      strcat(Str,"0001. . . ,该发原因为用户忙");
   }
   else if((bData&0x78)==0x10) {
      strcat(Str,"0010. . . ,该发原因为无应答");
   }
   else if((bData&0x78)==0x18) {
      strcat(Str,"0011. . . ,该发原因为无条件");
   }
   else if((bData&0x78)==0x20) {
      strcat(Str,"0100. . . ,该发原因为在提示期间转向");
   }
   else if((bData&0x78)==0x28) {
      strcat(Str,"0101. . . ,该发原因为转向立即响应");
   }
   else if((bData&0x78)==0x30) {
      strcat(Str,"0110. . . ,该发原因为移动用户不可到达");
   }
	else {
      strcat(Str,"XXXX. . . ,备用");
	}
    if(YOrNTxt==true)
	strcat(word1_TotalDataStr,Str);
	else
	msgText.AddString(nDrawX*PtRate ,nDrawY*PtRate,Str,strlen(Str));
    

  return(nDrawY);
}

/****************************************************************************
 *                                                                          *
 *  FUNCTION   : DrawREDNLITStr(BYTE)                                             *
 *  PURPOSE  : Get One Byte Data's Str
 *
 ****************************************************************************/
int DrawREDNLITStr(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&0x07)==1) {
      strcat(Str,"01,提供限制");
   }
   else if((bData&0x07)==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," XXXXXX. . 备用");
    if(YOrNTxt==true)
	strcat(word1_TotalDataStr,Str);
	else
	msgText.AddString(nDrawX*PtRate ,nDrawY*PtRate,Str,strlen(Str));
    

  return(nDrawY);
}

/****************************************************************************
 *                                                                          *
 *  FUNCTION   : DrawEVINStr(BYTE)                                             *
 *  PURPOSE  : Get One Byte Data's Str
 *
 ****************************************************************************/
int DrawEVINStr(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&0x7f)==1) {
      strcat(Str,"0000001,去话半回声控制装置响应:提示");
   }
   else if((bData&0x7f)==2) {
      strcat(Str,"0000010,去话半回声控制装置响应:进展");
   }
   else if((bData&0x7f)==3) {
      strcat(Str,"0000011,去话半回声控制装置响应:带内信息或适当的码型现在可用");
   }
   else if((bData&0x7f)==4) {
      strcat(Str,"0000100,去话半回声控制装置响应:遇忙呼叫前向转移");
   }
   else if((bData&0x7f)==5) {
      strcat(Str,"0000101,去话半回声控制装置响应:无应答呼叫前向转移");
   }
   else if((bData&0x7f)==6) {
      strcat(Str,"0000101,去话半回声控制装置响应:无条件呼叫前向转移");
   }
	else {
      strcat(Str,"XXXXXXX,备用");
	}
    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&0x78)==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   : DrawMCIDREQIStr(BYTE)                                             *
 *  PURPOSE  : Get One Byte Data's Str
 *
 ****************************************************************************/
int DrawMCIDREQIStr(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&0x01)==0) {
      strcat(Str,"0, MCID未请求");
   }
 	else {
      strcat(Str,"1, MCID请求");
	}
    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&0x02)==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," XXXXXX. . 备用");
    if(YOrNTxt==true)
	strcat(word1_TotalDataStr,Str);
	else
	msgText.AddString(nDrawX*PtRate ,nDrawY*PtRate,Str,strlen(Str));
    

	 return(nDrawY);
}

/****************************************************************************
 *                                                                          *
 *  FUNCTION   : DrawMCIDRESIStr(BYTE)                                             *
 *  PURPOSE  : Get One Byte Data's Str
 *
 ****************************************************************************/
int DrawMCIDRESIStr(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&0x01)==0) {
      strcat(Str,"0, MCID未包括");
   }
 	else {
      strcat(Str,"1, MCID包括");
	}
    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&0x02)==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," XXXXXX. . 备用");
    if(YOrNTxt==true)
	strcat(word1_TotalDataStr,Str);
	else
	msgText.AddString(nDrawX*PtRate ,nDrawY*PtRate,Str,strlen(Str));
    

	 return(nDrawY);
}


/****************************************************************************
 *                                                                          *
 *  FUNCTION   : GetISUPStr(BYTE)                                             *
 *  PURPOSE  : Get One Byte Data's Str
 *
 ****************************************************************************/
void GetISUPStr(BYTE  Data)
{
	BYTE Value=Data;

	strcpy(DataStr,"");
	switch(MsgKind) {
		case 1:	//IAM
			switch(MsgFKind+1) {
				case 3:////	CLGPC
					Value=Data;
					GetISUPCLGPCStr(Value);
					break;
				case 4://TRMRQ
					Value=Data;
					sprintf(DataStr,"传输媒介要求:");
					switch(Value) {
					case 0:
						strcat(DataStr," 语言");
						break;
					case 1:
						strcat(DataStr," 备用");
						break;
					case 2:
						strcat(DataStr," 64kb/s不受限");
						break;
					case 3:
						strcat(DataStr," 3. 1KHZ音频");
						break;
					case 4:
						strcat(DataStr," 语音(业务2)/64kb/s不受限(业务1)交替(备用)");
						break;
					case 5:
						strcat(DataStr," 64kb/s不受限(业务1)/语音(业务2)交替(备用)");
						break;
					case 6:
						strcat(DataStr," 64kb/s优选");
						break;
					case 7:
						strcat(DataStr," 2*64kb/s不受限");
						break;
					case 8:
						strcat(DataStr," 384kb/s不受限");
						break;
					case 10:
						strcat(DataStr," 1920kb/s不受限");
						break;
					default:
						strcat(DataStr," 备用");
						break;
					}
					break;
				case 5://Ptr2
					sprintf(DataStr," 可变项指针1");
					break;
				case 6://Ptr2
					sprintf(DataStr," 任选项指针2");
					break;
				case 7://CALNOLI
					sprintf(DataStr," 被叫用户号码长度");
					break;
				case 8://CALADDRIN
					Value=(Data>>1);
					GetISUPAddrinStr(Value);
					break;
				case 9://CALO/E
					Value=(Data>>7);
					GetISUPAddrOEStr(Value);
					break;
				case 10://CALCODE
					Value=(Data>>5);
					GetISUPAddrCodeStr(Value);
					break;
				case 11://CALINN
					Value=(Data>>7);
					GetISUPAddrINNStr(Value);
					break;
				case 12://CALADDR
					strcpy(DataStr," 被叫用户号码的地址信号");
					break;
				case 13://TNSN
					sprintf(DataStr," 转接网选择表示语");
					break;
				case 14://TNSNLI
					sprintf(DataStr," 转接网选择长度");
					break;
				case 15://TNIDPLAN
					Value=(Data>>4);
					sprintf(DataStr," 网络识别计划");
					switch(Value) {
					case 0:
						strcat(DataStr," 未知");
						break;
					case 3:
						strcat(DataStr," 公用数据网识别码");
						break;
					case 6:
						strcat(DataStr," 公用陆地移动网识别码");
						break;
					default:
						strcat(DataStr," 备用");
						break;
					}
					break;
				case 16://TNIDTYPE
					Value=(Data>>5);
					sprintf(DataStr," 网络识别类型");
					switch(Value) {
					case 0:
						strcat(DataStr," CCITT标准化识别");
						break;
					case 2:
						strcat(DataStr," 国内网识别");

⌨️ 快捷键说明

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