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

📄 function.cpp

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

/****************************************************************************
 *                                                                          *
 *  FUNCTION   : DrawBCLINStr(BYTE)                                             *
 *  PURPOSE  : Get One Byte Data's Str
 *
 ****************************************************************************/
int DrawBCLINStr(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&0x000c)==0) {
      strcat(Str,"00. . ,被叫用户状态无指示");
   }
	else if((bData&0x000c)==4) {
      strcat(Str,"01. . ,被叫用户空");
   }
	else if((bData&0x000c)==8) {
      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&0x0030)==0) {
      strcat(Str,"00. . . . ,被叫用户类别无指示");
   }
	else if((bData&0x0030)==0x10) {
      strcat(Str,"01. . . . ,被叫用户为普通用户");
   }
	else if((bData&0x0030)==0x20) {
      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&0x00c0)==0) {
      strcat(Str,"00. . . . . . ,端至端方式不可用");
   }
	else if((bData&0x00c0)==0x40) {
      strcat(Str,"01. . . . . . ,传递方式可用");
   }
	else if((bData&0x00c0)==0x80) {
      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&0x0100)==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&0x0200)==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&0x0400)==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&0x0800)==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&0x1000)==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&0x2000)==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&0xc000)==0) {
      strcat(Str,"00. . . . . . . . . . . . . . ,SCCP方式无指示");
   }
	else if((bData&0xc000)==0x4000) {
      strcat(Str,"01. . . . . . . . . . . . . . ,无连接方式可用");
   }
	else if((bData&0xc000)==0x8000) {
      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   : DrawOBCINStr(BYTE)                                             *
 *  PURPOSE  : Get One Byte Data's Str
 *
 ****************************************************************************/
int DrawOBCINStr(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,带内信息无指示");
   }
   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&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,"  . . . . .  ");
	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,"  . . . . ");
	if((bData&0x08)==0) {
      strcat(Str,"0. . . ,MLPP用户无指示");
   }
   else {
      strcat(Str,"1. . . ,MLPP用户");
   }
    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   : DrawPCINFOStr(BYTE)                                             *
 *  PURPOSE  : Get One Byte Data's Str
 *
 ****************************************************************************/
int DrawPCINFOStr(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,转接译释");
   }
   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&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,"  . . . . .  ");
	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,"  . . . . ");
	if((bData&0x08)==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&0x08)==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   : DrawECINFOStr(BYTE)                                             *
 *  PURPOSE  : Get One Byte Data's Str
 *
 ****************************************************************************/
int DrawECINFOStr(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. . ,包括来话半回声控制装置");
   }
	else {
      strcat(Str,"11. . ,备用");
	}
    if(YOrNTxt==true)
	{strcat(word1_TotalDataStr,Str);

⌨️ 快捷键说明

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