📄 ss7tranpar1.cpp
字号:
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_Calling_party_number(CString str)
{
long lpar;
long ltemp,tt;
long i;
long ladroande;
CString str1;
CString stroutput;
CString strtemp;
CListBox *pCtrl = (CListBox *)GetDlgItem( IDC_LIST1 ) ;
stroutput=str;
stroutput+=":Calling party number";
pCtrl->AddString(stroutput);
str1=str.Left(2);
str.Delete(0,3);
lpar=strchangehex(str1);
stroutput=strbithead;
stroutput+="byte 1:";
stroutput+=str1;
pCtrl->AddString(stroutput);
stroutput=strbithead;
stroutput+="bit GFEDCBA :Nature of address indicator";
pCtrl->AddString(stroutput);
tt=0x40;
stroutput=strtranhead;
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;
}
if ((lpar&0x7F)==0)
stroutput+="__spare";
else if ((lpar&0x7F)==1)
stroutput+="__subscriber number";
else if ((lpar&0x7F)==2)
stroutput+="__unknown";
else if ((lpar&0x7F)==3)
stroutput+="__national (significant) number";
else if ((lpar&0x7F)==4)
stroutput+="__international number";
else if (((lpar&0x7F)>=5) && ((lpar&0x7F)<=0x6F))
stroutput+="__spare";
else if (((lpar&0x7F)>=0x70) && ((lpar&0x7F)<=0x7E))
stroutput+="__reserved for national use";
else if ((lpar&0x7F)==0x7F)
stroutput+="__spare";
else
stroutput+="__spare";
pCtrl->AddString(stroutput);
stroutput=strbithead;
stroutput+="bit F :Odd/even indicator";
pCtrl->AddString(stroutput);
stroutput=strtranhead;
if ((lpar&0x80)==0x80)
{
stroutput+="1__odd number of address signals";
ladroande=1;
}
else
{
stroutput+="0__even number of address signals";
ladroande=0;
}
pCtrl->AddString(stroutput);
str1=str.Left(2);
str.Delete(0,3);
lpar=strchangehex(str1);
stroutput=strbithead;
stroutput+="byte 2:";
stroutput+=str1;
pCtrl->AddString(stroutput);
stroutput=strbithead;
stroutput+="bit BA :Screening indicator";
pCtrl->AddString(stroutput);
tt=0x2;
stroutput=strtranhead;
for(i=0;i<2;i++)
{
ltemp=(lpar&tt)>>(1-i);
switch (ltemp&1)
{
if (i==0)
case 0:
stroutput+="0";
break;
case 1:
stroutput+="1";
break;
default:
break;
}
tt>>=1;
}
switch (lpar&0x3)
{
case 0:
case 2:
stroutput+="__spare";
break;
case 1:
stroutput+="__user provided, verified and passed";
break;
case 3:
stroutput+="__network provided";
break;
default:
break;
}
pCtrl->AddString(stroutput);
lpar>>=2;
stroutput=strbithead;
stroutput+="bit DC :Address presentation restricted (Pres. Restric.) indicator";
pCtrl->AddString(stroutput);
tt=0x2;
stroutput=strtranhead;
for(i=0;i<2;i++)
{
ltemp=(lpar&tt)>>(1-i);
switch (ltemp&1)
{
case 0:
stroutput+="0";
break;
case 1:
stroutput+="1";
break;
default:
break;
}
tt>>=1;
}
switch (lpar&0x3)
{
case 0:
stroutput+="__presentation allowed";
break;
case 1:
stroutput+="__presentation restricted";
break;
case 2:
stroutput+="__address not available";
break;
case 3:
stroutput+="__spare";
break;
default:
break;
}
pCtrl->AddString(stroutput);
lpar>>=2;
stroutput=strbithead;
stroutput+="bit GHE :Numbering plan Ind.";
pCtrl->AddString(stroutput);
tt=0x4;
stroutput=strtranhead;
for(i=0;i<3;i++)
{
ltemp=(lpar&tt)>>(2-i);
switch (ltemp&1)
{
case 0:
stroutput+="0";
break;
case 1:
stroutput+="1";
break;
default:
break;
}
tt>>=1;
}
switch (lpar&0x7)
{
case 0:
case 2:
case 7:
stroutput+="__spare";
break;
case 1:
stroutput+="__ISDN (Telephony) numbering plan (Recommendation E.164)";
break;
stroutput+="__spare";
break;
case 3:
stroutput+="__Data numbering plan (Recommendation X.121)";
break;
case 4:
stroutput+="__Telex numbering plan (Recommendation F.69)";
break;
case 5:
stroutput+="__reserved for national use";
break;
}
pCtrl->AddString(stroutput);
stroutput=strbithead;
stroutput+="bit F :Calling party number incomplete indicator (NI)";
pCtrl->AddString(stroutput);
stroutput=strtranhead;
if ((lpar&0x8)==0)
{
stroutput+="0__complete";
}
else
stroutput+="1__incomplete";
pCtrl->AddString(stroutput);
long j;
stroutput=strbithead;
stroutput+="byte 3-byte end:";
stroutput+=str;
stroutput+="__address signal";
pCtrl->AddString(stroutput);
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_Calling_party_category(CString str)
{
long lpar;
long ltemp,tt;
long i;
CString str1;
CString strtemp;
CString stroutput;
CListBox *pCtrl = (CListBox *)GetDlgItem( IDC_LIST1 ) ;
stroutput=str;
stroutput+=":Calling party's category";
pCtrl->AddString(stroutput);
str1=str.Left(2);
str.Delete(0,2);
lpar=strchangehex(str1);
stroutput=strbithead;
stroutput+="bit HGFEDCBA :Calling party's category";
pCtrl->AddString(stroutput);
stroutput=strtranhead;
tt=0x80;
for(i=0;i<8;i++)
{
ltemp=(lpar&tt);
ltemp>>=(8-i-1);
switch (ltemp&1)
{
case 0:
stroutput+="0";
break;
case 1:
stroutput+="1";
break;
default:
break;
}
tt>>=1;
}
if (lpar==0)
stroutput+="__calling party's category unknown at this time";
else if (lpar==1)
stroutput+="__operator, language French";
else if (lpar==2)
stroutput+="__operator, language English";
else if (lpar==3)
stroutput+="__operator, language German";
else if (lpar==4)
stroutput+="__operator, language Russian";
else if (lpar==5)
stroutput+="__operator, language Spanish";
else if (lpar>=6 && lpar<=8)
stroutput+="__available to A dministrations for selecting a particular language by mutual agreement";
else if (lpar==9)
stroutput+="__reserved (see Recommendation Q.104) (Note)";
else if (lpar==10)
stroutput+="__ordinary calling subscriber";
else if (lpar==11)
stroutput+="__calling subscriber with priority";
else if (lpar==12)
stroutput+="__data call (voice band data)";
else if (lpar==13)
stroutput+="__test call";
else if (lpar==14)
stroutput+="__spare";
else if (lpar==15)
stroutput+="__payphone";
else if (lpar>=16 && lpar<=223)
stroutput+="__spare";
else if (lpar>=224 && lpar<=254)
stroutput+="__reserved for national use";
else
stroutput+="__spare";
pCtrl->AddString(stroutput);
}
void CSs7tranDlg::tranpar_Cause_indicators(CString str)
{
long lpar;
long ltemp,tt;
long i;
CString str1;
CString strtemp;
CString stroutput;
CListBox *pCtrl = (CListBox *)GetDlgItem( IDC_LIST1 ) ;
//reserve
stroutput=str;
stroutput+=":Cause indicators";
pCtrl->AddString(stroutput);
str1=str.Left(2);
str.Delete(0,3);
lpar=strchangehex(str1);
stroutput=strbithead;
stroutput+="bit DCBA :Location";
pCtrl->AddString(stroutput);
tt=0x8;
stroutput=strtranhead;
for(i=0;i<4;i++)
{
ltemp=(lpar&tt)>>(3-i);
switch (ltemp&1)
{
if (i==0)
case 0:
stroutput+="0";
break;
case 1:
stroutput+="1";
break;
default:
break;
}
tt>>=1;
}
switch (lpar&0x0F)
{
case 0:
stroutput+="__U";
break;
case 1:
stroutput+="__LPN";
break;
case 2:
stroutput+="__LN";
break;
case 3:
stroutput+="__TN";
break;
case 4:
stroutput+="__RLN";
break;
case 5:
stroutput+="__RPN";
break;
case 7:
stroutput+="__INTL";
break;
case 0x0a:
stroutput+="__BI";
break;
default:
break;
}
pCtrl->AddString(stroutput);
lpar>>=4;
stroutput=strbithead;
stroutput+="bit E :Spare";
pCtrl->AddString(stroutput);
tt=0x1;
stroutput=strtranhead;
for(i=0;i<1;i++)
{
ltemp=(lpar&tt);
switch (ltemp&1)
{
case 0:
stroutput+="0";
break;
case 1:
stroutput+="1";
break;
default:
break;
}
tt>>=1;
}
pCtrl->AddString(stroutput);
lpar>>=1;
stroutput=strbithead;
stroutput+="bit GF :Coding standard";
pCtrl->AddString(stroutput);
tt=0x2;
stroutput=strtranhead;
for(i=0;i<2;i++)
{
ltemp=(lpar&tt)>>(1-i);
switch (ltemp&1)
{
case 0:
stroutput+="0";
break;
case 1:
stroutput+="1";
break;
default:
break;
}
tt>>=1;
}
switch (lpar&0x3)
{
case 0:
stroutput+="__CCITT";
break;
case 1:
stroutput+="__ISO/IEC";
break;
case 2:
stroutput+="__NATIONAL";
break;
case 3:
stroutput+="__OTHERS";
break;
default:
break;
}
pCtrl->AddString(stroutput);
lpar>>=2;
stroutput=strbithead;
stroutput+="bit H :Ext";
pCtrl->AddString(stroutput);
tt=0x1;
stroutput=strtranhead;
for(i=0;i<1;i++)
{
ltemp=(lpar&tt);
switch (ltemp&1)
{
case 0:
stroutput+="0";
break;
case 1:
stroutput+="1";
break;
default:
break;
}
tt>>=1;
}
switch (lpar&0x1)
{
case 0:
stroutput+="__Extension";
break;
case 1:
stroutput+="__End";
break;
}
pCtrl->AddString(stroutput);
str1=str.Left(2);
str.Delete(0,2);
lpar=strchangehex(str1);
stroutput=strbithead;
stroutput+="bit ONMLKJI :Cause value";
pCtrl->AddString(stroutput);
tt=0x40;
stroutput=strtranhead;
for(i=0;i<7;i++)
{
ltemp=(lpar&tt)>>(6-i);
switch (ltemp&1)
{
if (i==0)
case 0:
stroutput+="0";
break;
case 1:
stroutput+="1";
break;
default:
break;
}
tt>>=1;
}
pCtrl->AddString(stroutput);
lpar>>=7;
stroutput=strbithead;
stroutput+="bit P :Ext";
pCtrl->AddString(stroutput);
tt=0x1;
stroutput=strtranhead;
for(i=0;i<1;i++)
{
ltemp=(lpar&tt);
switch (ltemp&1)
{
case 0:
stroutput+="0";
break;
case 1:
stroutput+="1";
break;
default:
break;
}
tt>>=1;
}
switch (lpar&0x1)
{
case 0:
stroutput+="__Extension";
break;
case 1:
stroutput+="__End";
break;
}
pCtrl->AddString(stroutput);
}
void CSs7tranDlg::tranpar_Circuit_group_supervision_message_type_indicator(CString str)
{
long lpar;
long ltemp,tt;
long i;
CString str1;
CString strtemp;
CString stroutput;
CListBox *pCtrl = (CListBox *)GetDlgItem( IDC_LIST1 ) ;
stroutput=str;
stroutput+=":Circuit group supervision message type indicator";
pCtrl->AddString(stroutput);
str1=str.Left(2);
str.Delete(0,2);
lpar=strchangehex(str1);
stroutput=strbithead;
stroutput="bit BA :Type indicator";
pCtrl->AddString(stroutput);
tt=2;
stroutput=strtranhead;
for(i=0;i<2;i++)
{
ltemp=(lpar&tt)>>(1-i);
switch (ltemp&1)
{
case 0:
stroutput+="0";
break;
case 1:
stroutput+="1";
break;
default:
break;
}
tt>>=1;
}
if ((lpar&3)==0)
stroutput+="__maintenance oriented";
else if((lpar&3)==1)
stroutput+="__hardware failure oriented";
else if((lpar&3)==2)
stroutput+="__reserved for national use (used in 1984 version)";
else if((lpar&3)==3)
stroutput+="__spare";
pCtrl->AddString(stroutput);
lpar>>=2;
stroutput=strbithead;
stroutput+="bit HGFEDC :Spare";
pCtrl->AddString(stroutput);
tt=0x40;
stroutput=strtranhead;
for(i=0;i<6;i++)
{
ltemp=(lpar&tt)>>(5-i);
switch (ltemp&1)
{
case 0:
stroutput+="0";
break;
case 1:
stroutput+="1";
break;
default:
break;
}
tt>>=1;
}
stroutput+="__spare";
pCtrl->AddString(stroutput);
}
void CSs7tranDlg::tranpar_Circuit_state_indicator(CString str)
{
long lpar;
long ltemp,tt;
long i;
CString str1;
CString strtemp;
CString stroutput;
CListBox *pCtrl = (CListBox *)GetDlgItem( IDC_LIST1 ) ;
stroutput=str;
stroutput+=":Circuit state indicator ";
pCtrl->AddString(stroutput);
str1=str.Left(2);
str.Delete(0,2);
lpar=strchangehex(str1);
ltemp=(lpar&0xc)>>2;
if (ltemp==0)
{
stroutput=strbithead;
stroutput+="bit BA :Maintenance blocking state";
pCtrl->AddString(stroutput);
tt=2;
stroutput=strtranhead;
for(i=0;i<2;i++)
{
ltemp=(lpar&tt)>>(1-i);
switch (ltemp&1)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -