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

📄 ss7tranpar5.cpp

📁 VC6.0环境下的ss7isup部分的信令解释程序
💻 CPP
字号:
#include "stdafx.h"
#include "ss7tran.h"
#include "ss7tranDlg.h"
#include "isup_def.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

extern char strchangehex(CString str1);


void CSs7tranDlg:: tranpar_Service_activation(CString str)
{
}

void CSs7tranDlg:: tranpar_Signalling_point_code(CString str)
{

	CString str1;
	CString strtemp;
	CString stroutput;
	CListBox *pCtrl = (CListBox *)GetDlgItem( IDC_LIST1 ) ; 	

	stroutput=str;
	stroutput+=":Signalling point code";
	pCtrl->AddString(stroutput);

	/*
	for(i=0;i<2;i++)
	{
		str1=str.Left(1);
		str.Delete(0,1);
		lpar=strchangehex(str1);
		lpar*=256;
	}

	stroutput="   byte2-1 :Point code";
	pCtrl->AddString(stroutput);
	tt=0x2000;
	for(i=0;i<14;i++)
	{
		ltemp=(lpar&tt)>>(14-i);
		switch (ltemp&1)
		{
			if (i==0)
				stroutput+="     ";
			case 0:
				stroutput+="0";
			break;
			case 1:
				stroutput+="1";
			break;
			default:
			break;
		}
		tt>>=1;
	}
	strtemp.Format("%d",lpar);
	stroutput+="__";
	stroutput+=strtemp;
	pCtrl->AddString(stroutput);
	*/
}

void CSs7tranDlg:: tranpar_Subsequent_number(CString str)
{
	long lpar;
	long ltemp,tt;
	long i;
	long j;
	long ladroande;
	CString str1;
	CString strtemp;
	CString stroutput;
	CListBox *pCtrl = (CListBox *)GetDlgItem( IDC_LIST1 ) ; 	

	ladroande=0;
	stroutput=str;
	stroutput+=":Subsequent number";
	pCtrl->AddString(stroutput);

	str1=str.Left(2);
	str.Delete(0,2);
	lpar=strchangehex(str1);
	stroutput=strbithead;
	stroutput="   bit GFEDCBA :Spare";
	pCtrl->AddString(stroutput);
	stroutput=strtranhead;
	tt=0x40;
	for(i=0;i<7;i++)
	{
		ltemp=(lpar&tt)>>(6-i);
		switch (ltemp&1)
		{
			case 0:
				stroutput+="0";
			break;
			case 1:
				stroutput+="1";
			break;
			default:
			break;
		}
		tt>>=1;
	}
	pCtrl->AddString(stroutput);
	
	stroutput=strbithead;
	stroutput="bit F :Odd/even indicator";
	pCtrl->AddString(stroutput);
	stroutput=strtranhead;
	if ((lpar&0x80)==0)
	{
		stroutput+="0__even number of address signals";
	}
	else
	{
		stroutput+="1__odd number of address signals";
		ladroande=1;
	}
	long addressnum;
	addressnum=0;
	for(j=0;j<100;j++)
	{
		str1=str.Left(2);
		str.Delete(0,2);
		if (str.Find(",")!=-1)
			str.Delete(0,1);
		else
		{
				j=110;
		}
		lpar=strchangehex(str1);
		stroutput=strtranhead;
		strtemp.Format("address signal%d:",addressnum++);
		stroutput+=strtemp;
		//pCtrl->AddString(stroutput);
		tt=0x8;
		stroutput+=" ";
		for(i=0;i<4;i++)
		{
			ltemp=(lpar&tt)>>(3-i);
			switch (ltemp&1)
			{
				case 0:
					stroutput+="0";
				break;
				case 1:
					stroutput+="1";
				break;
				default:
				break;
			}
			tt>>=1;
		}

		strtemp.Format("%d",lpar&0x0F);
		stroutput+="__";
		stroutput+=strtemp;
		pCtrl->AddString(stroutput);



		lpar>>=4;
		stroutput=strtranhead;
		strtemp.Format("address signal%d:",addressnum++);
		stroutput+=strtemp;
		//pCtrl->AddString(stroutput);
		tt=0x8;
		stroutput+=" ";
		for(i=0;i<4;i++)
		{
			ltemp=(lpar&tt)>>(3-i);
			switch (ltemp&1)
			{
				case 0:
					stroutput+="0";
				break;
				case 1:
					stroutput+="1";
				break;
				default:
				break;
			}
			tt>>=1;
		}
		lpar&=0x0F;
		strtemp.Format("%d",lpar);
		stroutput+="__";
		stroutput+=strtemp;
		if ((j==110) && (ladroande==1))
		{
			stroutput+="(filled code)";
		}
		pCtrl->AddString(stroutput);
	}
}

void CSs7tranDlg:: tranpar_SuspendORResume_indicators(CString str)
{
	long lpar;
	long ltemp,tt;
	long i;
	CString str1;
	CString strtemp;
	CString stroutput;
	CListBox *pCtrl = (CListBox *)GetDlgItem( IDC_LIST1 ) ; 	

	stroutput=str;
	stroutput+=":Suspend/resume indicator";
	pCtrl->AddString(stroutput);

	str1=str.Left(2);
	str.Delete(0,2);
	lpar=strchangehex(str1);

	stroutput=strbithead;
	stroutput+="bit A :Suspend/resume indicator";
	pCtrl->AddString(stroutput);
	stroutput=strtranhead;
	if ((lpar&1)==0)
	{
		stroutput+="0__ISDN subscriber initiated";
	}
	else
		stroutput+="1__network initiated";
	pCtrl->AddString(stroutput);
	lpar>>=1;

	stroutput=strbithead;
	stroutput+="bit HGFEDCB :Spare";
	pCtrl->AddString(stroutput);
	stroutput=strtranhead;
	tt=0x40;
	for(i=0;i<7;i++)
	{
		ltemp=(lpar&tt)>>(6-i);
		switch (ltemp&1)
		{
			case 0:
				stroutput+="0";
			break;
			case 1:
				stroutput+="1";
			break;
			default:
			break;
		}
		tt>>=1;
	}
	pCtrl->AddString(stroutput);

}




void CSs7tranDlg:: tranpar_Transit_network_selection(CString str)
{
}

void CSs7tranDlg:: tranpar_Transmission_medium_requirement(CString str)
{
	long lpar;
	long ltemp,tt;
	long i;
	CString str1;
	CString strtemp;
	CString stroutput;
	CListBox *pCtrl = (CListBox *)GetDlgItem( IDC_LIST1 ) ; 	

	stroutput=str;
	stroutput+=":Transmission medium requirement";
	pCtrl->AddString(stroutput);

	str1=str.Left(2);
	str.Delete(0,2);
	lpar=strchangehex(str1);

	stroutput=strbithead;
	stroutput+="bit HGFEDCBA:Transmission medium requirement";
	pCtrl->AddString(stroutput);
	stroutput=strtranhead;
	tt=0x80;
	for(i=0;i<8;i++)
	{
		ltemp=(lpar&tt)>>(7-i);
		switch (ltemp&1)
		{
			case 0:
				stroutput+="0";
			break;
			case 1:
				stroutput+="1";
			break;
			default:
			break;
		}
		tt>>=1;
	}
	if (lpar==0)
		stroutput+="__speech";
	else if (lpar==1)
		stroutput+="__spare";
	else if (lpar==2)
		stroutput+="__64 kbit/s unrestricted";
	else if (lpar==3)
		stroutput+="__3.1 kHz audio";
	else if (lpar==4)
		stroutput+="__reserved for alternate speech (service 2)/64 kbit/s unrestricted (service 1) ";
	else if (lpar==5)
		stroutput+="__reserved for alternate 64 kbit/s unrestricted (service 1)/speech (service 2) ";
	else if (lpar==6)
		stroutput+="__64 kbit/s preferred";
	else if (lpar==7)
		stroutput+="__2 × 64 kbit/s unrestricted";
	else if (lpar==8)
		stroutput+="__384 kbit/s unrestricted";
	else if (lpar==9)
		stroutput+="__1536 kbit/s unrestricted";
	else if (lpar==10)
		stroutput+="__1920 kbit/s unrestricted";
	else
		stroutput+="__spare";
	pCtrl->AddString(stroutput);

}

void CSs7tranDlg:: tranpar_Transmission_medium_requirement_prime(CString str)
{
	long lpar;
	long ltemp,tt;
	long i;
	CString str1;
	CString strtemp;

	CString stroutput;
	CListBox *pCtrl = (CListBox *)GetDlgItem( IDC_LIST1 ) ; 	

	stroutput=str;
	stroutput+=":Transmission medium requirement";
	pCtrl->AddString(stroutput);

	str1=str.Left(2);
	str.Delete(0,2);
	lpar=strchangehex(str1);

	stroutput=strbithead;
	stroutput+="bit HGFEDCBA:Transmission medium requirement";
	pCtrl->AddString(stroutput);
	stroutput=strtranhead;
	tt=0x80;
	for(i=0;i<8;i++)
	{
		ltemp=(lpar&tt)>>(7-i);
		switch (ltemp&1)
		{
			case 0:
				stroutput+="0";
			break;
			case 1:
				stroutput+="1";
			break;
			default:
			break;
		}
		tt>>=1;
	}
	if (lpar==0)
		stroutput+="__speech";
	else if (lpar==1)
		stroutput+="__spare";
	else if (lpar==2)
		stroutput+="__64 kbit/s unrestricted";
	else if (lpar==3)
		stroutput+="__3.1 kHz audio";
	else if (lpar==4)
		stroutput+="__reserved for alternate speech (service 2)/64 kbit/s unrestricted (service 1) ";
	else if (lpar==5)
		stroutput+="__reserved for alternate 64 kbit/s unrestricted (service 1)/speech (service 2) ";
	else if (lpar==6)
		stroutput+="__reserved for 64 kbit/s preferred";
	else if (lpar==7)
		stroutput+="__reserved for 2 × 64 kbit/s unrestricted";
	else if (lpar==8)
		stroutput+="__reserved for 384 kbit/s unrestricted";
	else if (lpar==9)
		stroutput+="__reserved for 1536 kbit/s unrestricted";
	else if (lpar==10)
		stroutput+="__reserved for 1920 kbit/s unrestricted";
	else
		stroutput+="__spare";
	pCtrl->AddString(stroutput);


}

void CSs7tranDlg:: tranpar_Transmission_medium_used(CString str)
{
	long lpar;
	long ltemp,tt;
	long i;
	CString str1;
	CString strtemp;

	CString stroutput;
	CListBox *pCtrl = (CListBox *)GetDlgItem( IDC_LIST1 ) ; 	

	stroutput=str;
	stroutput+=":Transmission medium requirement";
	pCtrl->AddString(stroutput);

	str1=str.Left(2);
	str.Delete(0,2);
	lpar=strchangehex(str1);

	stroutput=strbithead;
	stroutput+="bit H-A:Transmission medium requirement";
	pCtrl->AddString(stroutput);
	stroutput=strtranhead;
	tt=0x80;
	for(i=0;i<8;i++)
	{
		ltemp=(lpar&tt)>>(7-i);
		switch (ltemp&1)
		{
			case 0:
				stroutput+="0";
			break;
			case 1:
				stroutput+="1";
			break;
			default:
			break;
		}
		tt>>=1;
	}
	if (lpar==0)
		stroutput+="__speech";
	else if (lpar==1)
		stroutput+="__spare";
	else if (lpar==2)
		stroutput+="__64 kbit/s unrestricted";
	else if (lpar==3)
		stroutput+="__3.1 kHz audio";
	else if (lpar==4)
		stroutput+="__reserved for alternate speech (service 2)/64 kbit/s unrestricted (service 1) ";
	else if (lpar==5)
		stroutput+="__reserved for alternate 64 kbit/s unrestricted (service 1)/speech (service 2) ";
	else if (lpar==6)
		stroutput+="__reserved for 64 kbit/s preferred";
	else if (lpar==7)
		stroutput+="__reserved for 2 × 64 kbit/s unrestricted";
	else if (lpar==8)
		stroutput+="__reserved for 384 kbit/s unrestricted";
	else if (lpar==9)
		stroutput+="__reserved for 1536 kbit/s unrestricted";
	else if (lpar==10)
		stroutput+="__reserved for 1920 kbit/s unrestricted";
	else
		stroutput+="__spare";
	pCtrl->AddString(stroutput);
}

void CSs7tranDlg:: tranpar_User_service_information(CString str)
{
}

void CSs7tranDlg:: tranpar_User_service_information_prime(CString str)
{
}

void CSs7tranDlg:: tranpar_User_teleservice_information(CString str)
{
}

void CSs7tranDlg:: tranpar_User_to_user_indicators(CString str)
{
	long lpar;
	long ltemp;
	CString stroutput;
	CString str1;
	CListBox *pCtrl = (CListBox *)GetDlgItem( IDC_LIST1 ) ; 	

	stroutput=str;
	stroutput+=":User-to-user indicators";
	pCtrl->AddString(stroutput);

	str1=str.Left(2);
	str.Delete(0,2);
	lpar=strchangehex(str1);

	stroutput=strbithead;
	stroutput+="bit A:Type";
	pCtrl->AddString(stroutput);
	stroutput=strtranhead;
	ltemp=(lpar&1);
	lpar>>=1;	
	switch (ltemp)
	{
		case 0:
			stroutput+="0__request";
		break;
		case 1:
			stroutput+="1__response";
		break;
		default:
		break;
	}
	pCtrl->AddString(stroutput);
	if (ltemp==0)
	{
		stroutput=strbithead;
		stroutput+="bit CB:Service 1";
		pCtrl->AddString(stroutput);
		stroutput=strtranhead;
		ltemp=(lpar&3);
		lpar>>=2;	
		switch (ltemp)
		{
			case 0:
				stroutput+="00__no information";
			break;
			case 1:
				stroutput+="01__spare";
			break;
			case 2:
				stroutput+="10__request, not essential";
			break;
			case 3:
				stroutput+="11__request, essential";
			break;
		}
		pCtrl->AddString(stroutput);

		stroutput=strbithead;
		stroutput+="bit ED:Service 2";
		pCtrl->AddString(stroutput);
		stroutput=strtranhead;
		ltemp=(lpar&3);
		lpar>>=2;	
		switch (ltemp)
		{
			case 0:
				stroutput+="00__no information";
			break;
			case 1:
				stroutput+="01__spare";
			break;
			case 2:
				stroutput+="10__request, not essential";
			break;
			case 3:
				stroutput+="11__request, essential";
			break;
		}
		pCtrl->AddString(stroutput);

		stroutput=strbithead;
		stroutput+="bit FG:Service 3";
		pCtrl->AddString(stroutput);
		stroutput=strtranhead;
		ltemp=(lpar&3);
		lpar>>=2;	
		switch (ltemp)
		{
			case 0:
				stroutput+="00__no information";
			break;
			case 1:
				stroutput+="01__spare";
			break;
			case 2:
				stroutput+="10__request, not essential";
			break;
			case 3:
				stroutput+="11__request, essential";
			break;
		}
		pCtrl->AddString(stroutput);

		stroutput=strbithead;
		stroutput+="bit H:Spare";
		pCtrl->AddString(stroutput);
		stroutput=strtranhead;
		ltemp=(lpar&1);
		switch (ltemp)
		{
			case 0:
				stroutput+="0";
			break;
			case 1:
				stroutput+="1";
			break;
		}
		pCtrl->AddString(stroutput);
	}
	else
	{
		stroutput=strbithead;
		stroutput+="bit CB:Service 1";
		pCtrl->AddString(stroutput);
		stroutput=strtranhead;
		ltemp=(lpar&3);
		lpar>>=2;	
		switch (ltemp)
		{
			case 0:
				stroutput+="00__no information";
			break;
			case 1:
				stroutput+="01__not provided";
			break;
			case 2:
				stroutput+="10__provided";
			break;
			case 3:
				stroutput+="11__spare";
			break;
		}
		pCtrl->AddString(stroutput);

		stroutput=strbithead;
		stroutput="bit ED:Service 2";
		pCtrl->AddString(stroutput);
		stroutput=strtranhead;
		ltemp=(lpar&3);
		lpar>>=2;	
		switch (ltemp)
		{
			case 0:
				stroutput+="00__no information";
			break;
			case 1:
				stroutput+="01__not provided";
			break;
			case 2:
				stroutput+="10__provided";
			break;
			case 3:
				stroutput+="11__spare";
			break;
		}
		pCtrl->AddString(stroutput);

		stroutput=strbithead;
		stroutput+="bit FG:Service 3";
		pCtrl->AddString(stroutput);
		stroutput=strtranhead;
		ltemp=(lpar&3);
		lpar>>=2;	
		switch (ltemp)
		{
			case 0:
				stroutput+="00__no information";
			break;
			case 1:
				stroutput+="01__not provided";
			break;
			case 2:
				stroutput+="10__provided";
			break;
			case 3:
				stroutput+="11__spare";
			break;
		}
		pCtrl->AddString(stroutput);

		stroutput=strbithead;
		stroutput+="bit H:Network discard indicator";
		pCtrl->AddString(stroutput);
		stroutput=strtranhead;
		ltemp=(lpar&1);
		switch (ltemp)
		{
			case 0:
				stroutput+="0__no information";
			break;
			case 1:
				stroutput+="1__user-to-user information discarded by the network";
			break;
		}
		pCtrl->AddString(stroutput);
	}
}

void CSs7tranDlg:: tranpar_User_to_user_information(CString str)
{
}

⌨️ 快捷键说明

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