📄 dspdetaibssmap.cpp
字号:
extern char Net_MS_Alerting_Field[12][30];
extern BYTE Net_MS_Alerting_FieldCrit[12][4];
extern char MS_Net_Alerting_Field[10][30];
extern BYTE MS_Net_Alerting_FieldCrit[10][4];
extern char CallConfirmed_Field[14][30];
extern BYTE CallConfirmed_FieldCrit[14][4];
extern char CallProceeding_Field[15][30];
extern BYTE CallProceeding_FieldCrit[15][4];
extern char CongestionControl_Field[8][30];
extern BYTE CongestionControl_FieldCrit[8][4];
extern char Net_MS_Connect_Field[23][30];
extern BYTE Net_MS_Connect_FieldCrit[23][4];
extern char MS_Net_Connect_Field[14][30];
extern BYTE MS_Net_Connect_FieldCrit[14][4];
extern char Net_MS_Disconnect_Field[18][30];
extern BYTE Net_MS_Disconnect_FieldCrit[18][4];
extern char MS_Net_Disconnect_Field[16][30];
extern BYTE MS_Net_Disconnect_FieldCrit[16][4];
extern char EmergencySetup_Field[3][30];
extern BYTE EmergencySetup_FieldCrit[3][4];
extern char Net_MS_Facility_Field[2][30];
extern BYTE Net_MS_Facility_FieldCrit[2][4];
extern char MS_Net_Facility_Field[5][30];
extern BYTE MS_Net_Facility_FieldCrit[5][4];
extern char HoldReject_Field[6][30];
extern BYTE HoldReject_FieldCrit[6][4];
extern char Modify_Field[13][30];
extern BYTE Modify_FieldCrit[13][4];
extern char ModifyComplete_Field[13][30];
extern BYTE ModifyComplete_FieldCrit[13][4];
extern char ModifyReject_Field[18][30];
extern BYTE ModifyReject_FieldCrit[18][4];
extern char Notify_Field[1][30];
extern BYTE Notify_FieldCrit[1][4];
extern char Progress_Field[9][30];
extern BYTE Progress_FieldCrit[9][4];
extern char Net_MS_Release_Field[21][30];
extern BYTE Net_MS_Release_FieldCrit[21][4];
extern char MS_Net_Release_Field[24][30];
extern BYTE MS_Net_Release_FieldCrit[24][4];
extern char Net_MS_ReleaseComplete_Field[14][30];
extern BYTE Net_MS_ReleaseComplete_FieldCrit[14][4];
extern char MS_Net_ReleaseComplete_Field[17][30];
extern BYTE MS_Net_ReleaseComplete_FieldCrit[17][4];
extern char RetrieveReject_Field[6][30];
extern BYTE RetrieveReject_FieldCrit[6][4];
extern char Start_DTMF_Reject_Field[6][30];
extern BYTE Start_DTMF_Reject_FieldCrit[6][4];
extern char MobileTerminateSetup_Field[63][30];
extern BYTE MobileTerminateSetup_FieldCrit[63][4];
extern char MobileOriginateSetup_Field[54][30];
extern BYTE MobileOriginateSetup_FieldCrit[54][4];
extern char Start_DTMF_Field[2][30];
extern BYTE Start_DTMF_FieldCrit[2][4];
extern char Start_DTMF_Ack_Field[2][30];
extern BYTE Start_DTMF_Ack_FieldCrit[2][4];
extern char Status_Field[10][30];
extern BYTE Status_FieldCrit[10][4];
extern char UserInformation_Field[4][30];
extern BYTE UserInformation_FieldCrit[4][4];
//local function
extern BYTE TcapKind,TcapCpntKind,ScmgKind,MapKind,MapErrKind,BssMapKind,RadioResKind,MobilityKind,CallControlKind;
extern BYTE MsgSU,MsgUP,MsgKind,MsgFKind,FieldNo;
extern char DataStr[100];
/****************************************************************************
* *
* FUNCTION : GetBssMapKind() *
* PURPOSE : Get One Byte Data's Str
*
****************************************************************************/
int DrawBssMapVeiw(CMsgText& msgText,WORD I,WORD Len2,WORD Len3,WORD wCIC,int nDrawX,int nDrawY,int DltY, float PtRate,bool YOrNTxt)
{ //SCCP
char Str[250],Str1[100],Str2[270];
BYTE J,Num,bData,ShowType,ByteNum,ByteNum1;
WORD Wnum; //sccp
DWORD dwNum; //sccp
int DeltaXL,DeltaXS,DeltaX,X0,Len4,K;
BOOL bEnd;
strcpy(bssmap_TotalDataStr,"");
DeltaXL=120;
DeltaX=130;
DeltaXS=40;
switch(BssMapKind) {
case 1: //AssignRequest
if(MsgFKind<19) {
switch(MsgFKind+1) {
default:
ShowType=AssignRequest_FieldCrit[MsgFKind][3];
strcpy(Str2,"");
for(J=0;J<Len3;++J) {
bData=BUFDISPLAY[I];
I++;
Num=8;
if(Len2!=Len3 && J==(Len2/8))
Num=Len2%8;
bEnd=GetDataStr(bData,Num,ShowType); //2 is show type
if(!bEnd) {
sprintf(Str2,"?: %02Xh",bData);
I+=(Len3-1-J);
break;
}
strcat(Str2,DataStr);
}
strcpy(Str,AssignRequest_Field[MsgFKind]);
nDrawX+=DeltaXL;
if(YOrNTxt==true)
strcat(bssmap_TotalDataStr,Str);
else
msgText.AddString(nDrawX*PtRate ,nDrawY*PtRate,Str,strlen(Str));
if(ShowType==1)
sprintf(Str,": %sb",Str2);
else {
if(ShowType==2)
sprintf(Str,": %sh",Str2);
else sprintf(Str,": %s",Str2);
}
strcat(Str," ");
GetBssMapFieldStr(bData);
strcat(Str,DataStr);
nDrawX+=DeltaX;
if(YOrNTxt==true)
{strcat(bssmap_TotalDataStr,Str);
strcat(bssmap_TotalDataStr,"\r\n");}
else
msgText.AddString(nDrawX*PtRate ,nDrawY*PtRate,Str,strlen(Str));
nDrawY+=DltY;
break;
case 5:// VolCode_DataSpeedID
ShowType=AssignRequest_FieldCrit[MsgFKind][3];
strcpy(Str2,"");
for(J=0;J<Len3;++J) {
bData=BUFDISPLAY[I];
I++;
Num=8;
if(Len2!=Len3 && J==(Len2/8))
Num=Len2%8;
bEnd=GetDataStr(bData,Num,ShowType);
strcat(Str2,DataStr);
}
strcpy(Str,AssignRequest_Field[MsgFKind]);
nDrawX+=DeltaXL;
if(YOrNTxt==true)
strcat(bssmap_TotalDataStr,Str);
else
msgText.AddString(nDrawX*PtRate ,nDrawY*PtRate,Str,strlen(Str));
sprintf(Str,": %sb ",Str2);
strcat(Str," 语音编码算法/数据速率和透明指示");
nDrawX+=DeltaX;
if(YOrNTxt==true)
strcat(bssmap_TotalDataStr,Str);
else
msgText.AddString(nDrawX*PtRate ,nDrawY*PtRate,Str,strlen(Str));
nDrawY=DrawVolCode_DataSpeedIDStr(msgText,bData,nDrawX,nDrawY,DltY,PtRate,YOrNTxt);
if(YOrNTxt==true)
{strcat(bssmap_TotalDataStr,bssmapstr_TotalDataStr);
strcat(bssmap_TotalDataStr,"\r\n");}
nDrawY+=DltY;
break;
case 12:// Priority
ShowType=AssignRequest_FieldCrit[MsgFKind][3];
strcpy(Str2,"");
for(J=0;J<Len3;++J) {
bData=BUFDISPLAY[I];
I++;
Num=8;
if(Len2!=Len3 && J==(Len2/8))
Num=Len2%8;
bEnd=GetDataStr(bData,Num,ShowType);
strcat(Str2,DataStr);
}
strcpy(Str,AssignRequest_Field[MsgFKind]);
nDrawX+=DeltaXL;
if(YOrNTxt==true)
strcat(bssmap_TotalDataStr,Str);
else
msgText.AddString(nDrawX*PtRate ,nDrawY*PtRate,Str,strlen(Str));
sprintf(Str,": %sb ",Str2);
strcat(Str," 优先级");
nDrawX+=DeltaX;
if(YOrNTxt==true)
strcat(bssmap_TotalDataStr,Str);
else
msgText.AddString(nDrawX*PtRate ,nDrawY*PtRate,Str,strlen(Str));
nDrawY=DrawPriorityStr(msgText,bData,nDrawX,nDrawY,DltY,PtRate,YOrNTxt);
if(YOrNTxt==true)
{strcat(bssmap_TotalDataStr,bssmapstr_TotalDataStr);
strcat(bssmap_TotalDataStr,"\r\n");}
nDrawY+=DltY;
break;
case 14:// CIC
ShowType=AssignRequest_FieldCrit[MsgFKind][3];
strcpy(Str2,"");
if(Len3==2) {
bData=BUFDISPLAY[I];
I++;
Num=8;
bEnd=GetDataStr(bData,Num,ShowType);
strcat(Str2,DataStr);
ByteNum=BUFDISPLAY[I];
I++;
Num=8;
bEnd=GetDataStr(ByteNum,Num,ShowType);
strcat(Str2,DataStr);
strcpy(Str,AssignRequest_Field[MsgFKind]);
nDrawX+=DeltaXL;
if(YOrNTxt==true)
strcat(bssmap_TotalDataStr,Str);
else
msgText.AddString(nDrawX*PtRate ,nDrawY*PtRate,Str,strlen(Str));
if(ShowType==1)
sprintf(Str,": %sb",Str2);
else {
if(ShowType==2)
sprintf(Str,": %sh",Str2);
else sprintf(Str,": %s",Str2);
}
strcat(Str," CIC值");
nDrawX+=DeltaX;
if(YOrNTxt==true)
strcat(bssmap_TotalDataStr,Str);
else
msgText.AddString(nDrawX*PtRate ,nDrawY*PtRate,Str,strlen(Str));
Wnum=(WORD)bData;
Wnum*=256;
Wnum+=ByteNum;
nDrawY=DrawCICStr(msgText,Wnum,nDrawX,nDrawY,DltY,PtRate,YOrNTxt);
if(YOrNTxt==true)
{strcat(bssmap_TotalDataStr,bssmapstr_TotalDataStr);
strcat(bssmap_TotalDataStr,"\r\n");}
nDrawY+=DltY;
}
else I+=Len3; //error not show error skip
break;
case 19:// ClassMarkInfo2
ShowType=AssignRequest_FieldCrit[MsgFKind][3];
strcpy(Str2,"");
if(Len3>=3) { //only handle 3
bData=BUFDISPLAY[I];
I++;
Num=8;
bEnd=GetDataStr(bData,Num,ShowType);
strcat(Str2,DataStr);
ByteNum=BUFDISPLAY[I];
I++;
Num=8;
bEnd=GetDataStr(ByteNum,Num,ShowType);
strcat(Str2,DataStr);
ByteNum1=BUFDISPLAY[I];
I++;
I-=3; //restore I
Num=8;
bEnd=GetDataStr(ByteNum1,Num,ShowType);
strcat(Str2,DataStr);
strcpy(Str,AssignRequest_Field[MsgFKind]);
nDrawX+=DeltaXL;
if(YOrNTxt==true)
strcat(bssmap_TotalDataStr,Str);
else
msgText.AddString(nDrawX*PtRate ,nDrawY*PtRate,Str,strlen(Str));
if(ShowType==1)
sprintf(Str,": %sb",Str2);
else {
if(ShowType==2)
sprintf(Str,": %sh",Str2);
else sprintf(Str,": %s",Str2);
}
strcat(Str," 级别信息类型2");
nDrawX+=DeltaX;
if(YOrNTxt==true)
strcat(bssmap_TotalDataStr,Str);
else
msgText.AddString(nDrawX*PtRate ,nDrawY*PtRate,Str,strlen(Str));
dwNum=(DWORD)bData;
dwNum*=65536;
dwNum+=(DWORD)ByteNum*256;
dwNum+=ByteNum1;
nDrawY=DrawClassMarkInfo2Str(msgText,dwNum,nDrawX,nDrawY,DltY,PtRate,YOrNTxt);
if(YOrNTxt==true)
{strcat(bssmap_TotalDataStr,bssmapstr_TotalDataStr);
strcat(bssmap_TotalDataStr,"\r\n");}
nDrawY+=DltY;
}
I+=Len3; //error not show error skip
break;
}
}
break;
case 2: //AssignComplete
if(MsgFKind<15) {
ShowType=AssignComplete_FieldCrit[MsgFKind][3];
strcpy(Str2,"");
for(J=0;J<Len3;++J) {
bData=BUFDISPLAY[I];
I++;
Num=8;
if(Len2!=Len3 && J==(Len2/8))
Num=Len2%8;
bEnd=GetDataStr(bData,Num,ShowType); //2 is show type
if(!bEnd) {
sprintf(Str2,"?: %02Xh",bData);
I+=(Len3-1-J);
break;
}
strcat(Str2,DataStr);
}
strcpy(Str,AssignComplete_Field[MsgFKind]);
nDrawX+=DeltaXL;
if(YOrNTxt==true)
strcat(bssmap_TotalDataStr,Str);
else
msgText.AddString(nDrawX*PtRate ,nDrawY*PtRate,Str,strlen(Str));
if(ShowType==1)
sprintf(Str,": %sb",Str2);
else {
if(ShowType==2)
sprintf(Str,": %sh",Str2);
else sprintf(Str,": %s",Str2);
}
strcat(Str," ");
GetBssMapFieldStr(bData);
strcat(Str,DataStr);
nDrawX+=DeltaX;
if(YOrNTxt==true)
{strcat(bssmap_TotalDataStr,Str);
strcat(bssmap_TotalDataStr,"\r\n");}
else
msgText.AddString(nDrawX*PtRate ,nDrawY*PtRate,Str,strlen(Str));
nDrawY+=DltY;
break;
}
break;
case 3: //AssignFailure
if(MsgFKind<10) {
ShowType=AssignFailure_FieldCrit[MsgFKind][3];
strcpy(Str2,"");
for(J=0;J<Len3;++J) {
bData=BUFDISPLAY[I];
I++;
Num=8;
if(Len2!=Len3 && J==(Len2/8))
Num=Len2%8;
bEnd=GetDataStr(bData,Num,ShowType); //2 is show type
if(!bEnd) {
sprintf(Str2,"?: %02Xh",bData);
I+=(Len3-1-J);
break;
}
strcat(Str2,DataStr);
}
strcpy(Str,AssignFailure_Field[MsgFKind]);
nDrawX+=DeltaXL;
if(YOrNTxt==true)
strcat(bssmap_TotalDataStr,Str);
else
msgText.AddString(nDrawX*PtRate ,nDrawY*PtRate,Str,strlen(Str));
if(ShowType==1)
sprintf(Str,": %sb",Str2);
else {
if(ShowType==2)
sprintf(Str,": %sh",Str2);
else sprintf(Str,": %s",Str2);
}
strcat(Str," ");
GetBssMapFieldStr(bData);
strcat(Str,DataStr);
nDrawX+=DeltaX;
if(YOrNTxt==true)
{strcat(bssmap_TotalDataStr,Str);
strcat(bssmap_TotalDataStr,"\r\n");}
else
msgText.AddString(nDrawX*PtRate ,nDrawY*PtRate,Str,strlen(Str));
nDrawY+=DltY;
}
break;
case 4: //HandoverRequest
if(MsgFKind<43) {
switch(MsgFKind+1) {
default:
ShowType=HandoverRequest_FieldCrit[MsgFKind][3];
strcpy(Str2,"");
for(J=0;J<Len3;++J) {
bData=BUFDISPLAY[I];
I++;
Num=8;
if(Len2!=Len3 && J==(Len2/8))
Num=Len2%8;
bEnd=GetDataStr(bData,Num,ShowType); //2 is show type
if(!bEnd) {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -