📄 dspbssmapfunc.cpp
字号:
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
*
****************************************************************************/
BYTE GetBssMapKind(BYTE data) //bssmap
{
BYTE I;
for(I=1;I<=BSSMAPMSG_NUM;++I) {
if(data==BSSMAPMT[I])
return(I);
}
return(0xff);
}
/****************************************************************************
* *
* FUNCTION : GetBssMapStr() *
* PURPOSE : Get One Byte Data's Str
*
****************************************************************************/
void GetBssMapStr(BYTE Kind)
{
switch(Kind) {
case 1://AssignRequest
strcpy(DataStr," 指配请求");
break;
case 2://AssignComplete
strcpy(DataStr," 指配完成");
break;
case 3://AssignFailure
strcpy(DataStr," 指配故障");
break;
case 4://HandoverRequest
strcpy(DataStr," 切换请求");
break;
case 5://HandoverRequired
strcpy(DataStr," 切换要求");
break;
case 6://HandoverRequestAck
strcpy(DataStr," 切换请求证实");
break;
case 7://HandoverCommand
strcpy(DataStr," 切换命令");
break;
case 8://HandoverComplete
strcpy(DataStr," 切换完成");
break;
case 9://HandoverFailure
strcpy(DataStr," 切换故障");
break;
case 10://HandoverPerformed
strcpy(DataStr," 切换执行");
break;
case 11://HandoverCandidateEnquiry
strcpy(DataStr," 切换候选者询问");
break;
case 12://HandoverCandidateRespon
strcpy(DataStr," 切换候选者响应");
break;
case 13://HandoverRequiredReject
strcpy(DataStr," 切换要求拒绝");
break;
case 14: //HandoverDetected
strcpy(DataStr," 切换检测到");
break;
case 15://ClearCommand
strcpy(DataStr," 清除命令");
break;
case 16: //ClearComplete
strcpy(DataStr," 清除完成");
break;
case 17://ClearRequest
strcpy(DataStr," 清除请求");
break;
case 18://SAPI_n_Reject
strcpy(DataStr," SAPI n 拒绝");
break;
case 19://Confusion
strcpy(DataStr," 混乱");
break;
case 20://Reset
strcpy(DataStr," 复位");
break;
case 21: //ResetAck
strcpy(DataStr," 复位证实");
break;
case 22://OverLoad
strcpy(DataStr," 过载");
break;
case 23://ResetCircuit
strcpy(DataStr," 复位电路");
break;
case 24://ResetCircuitAck
strcpy(DataStr," 复位电路证实");
break;
case 25://MSCInvokeTrace
strcpy(DataStr," MSC调用跟踪");
break;
case 26://BSSInvokeTrace
strcpy(DataStr," BSS调用跟踪");
break;
case 27://Block
strcpy(DataStr," 阻塞");
break;
case 28://BlockAcknowledge
strcpy(DataStr," 阻塞证实");
break;
case 29://Unblock
strcpy(DataStr," 解闭");
break;
case 30://UnblockAcknowledge
strcpy(DataStr," 解闭证实");
break;
case 31://CircuitPoolBlock
strcpy(DataStr," 电路群阻塞");
break;
case 32://CircuitPoolBlockAck
strcpy(DataStr," 电路群阻塞证实");
break;
case 33://CircuitPoolUnblock
strcpy(DataStr," 电路群解闭");
break;
case 34://CircuitPoolUnblockAck
strcpy(DataStr," 电路群解闭证实");
break;
case 35://UnequippedCircuit
strcpy(DataStr," 未装备电路");
break;
case 36://ResourceRequest
strcpy(DataStr," 资源请求");
break;
case 37://ResourceIndication
strcpy(DataStr," 资源指示");
break;
case 38://Paging
strcpy(DataStr," 寻呼");
break;
case 39://CipherModeCommand
strcpy(DataStr," 加密模式命令");
break;
case 40://ClassMarkUpdate
strcpy(DataStr," 级别更新");
break;
case 41://CipherModeComplete
strcpy(DataStr," 加密模式完成");
break;
case 42: //QueueIndicate
strcpy(DataStr," 排队指示");
break;
case 43://CompleteLayer3Info
strcpy(DataStr," 完全第3层消息");
break;
case 44: //ClassMarkRequest
strcpy(DataStr," 级别请求");
break;
case 45://CipherModeReject
strcpy(DataStr," 加密模式拒绝");
break;
case 46://LoadIndication
strcpy(DataStr," 负载指示");
break;
default:
strcpy(DataStr," ?");
break;
}
}
/****************************************************************************
* *
* FUNCTION : MainBssMapVeiw() *
* PURPOSE : Get One Byte Data's Str
*
****************************************************************************/
int MainBssMapVeiw(CMsgText& msgText,WORD I,WORD Len2,WORD Len3,int nDrawX,int nDrawY,int DltY, float PtRate,bool YOrNTxt)
{ //SCCP
char Str[250],Str1[100],Str2[270];
BYTE J,Num,bData,ShowType; //sccp
int DeltaX;
BOOL bEnd;
strcpy(bssmapfunc_TotalDataStr,"");
DeltaX=160;
switch(BssMapKind) {
case 1: //AssignRequest
if(MsgFKind<19) {
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(Str1,AssignRequest_Field[MsgFKind]);
if(ShowType==1)
sprintf(Str,": %sb",Str2);
else {
if(ShowType==2)
sprintf(Str,": %sh",Str2);
else sprintf(Str,": %s",Str2);
}
}
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(Str1,AssignComplete_Field[MsgFKind]);
if(ShowType==1)
sprintf(Str,": %sb",Str2);
else {
if(ShowType==2)
sprintf(Str,": %sh",Str2);
else sprintf(Str,": %s",Str2);
}
}
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(Str1,AssignFailure_Field[MsgFKind]);
if(ShowType==1)
sprintf(Str,": %sb",Str2);
else {
if(ShowType==2)
sprintf(Str,": %sh",Str2);
else sprintf(Str,": %s",Str2);
}
}
break;
case 4: //HandoverRequest
if(MsgFKind<43) {
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) {
sprintf(Str2,"?: %02Xh",bData);
I+=(Len3-1-J);
break;
}
strcat(Str2,DataStr);
}
strcpy(Str1,HandoverRequest_Field[MsgFKind]);
if(ShowType==1)
sprintf(Str,": %sb",Str2);
else {
if(ShowType==2)
sprintf(Str,": %sh",Str2);
else sprintf(Str,": %s",Str2);
}
}
break;
case 5: //HandoverRequired
if(MsgFKind<16) {
ShowType=HandoverRequired_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(Str1,HandoverRequired_Field[MsgFKind]);
if(ShowType==1)
sprintf(Str,": %sb",Str2);
else {
if(ShowType==2)
sprintf(Str,": %sh",Str2);
else sprintf(Str,": %s",Str2);
}
}
break;
case 6: //HandoverRequestAck
if(MsgFKind<9) {
ShowType=HandoverRequestAck_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(Str1,HandoverRequestAck_Field[MsgFKind]);
if(ShowType==1)
sprintf(Str,": %sb",Str2);
else {
if(ShowType==2)
sprintf(Str,": %sh",Str2);
else sprintf(Str,": %s",Str2);
}
}
break;
case 7: //HandoverCommand
if(MsgFKind<10) {
ShowType=HandoverCommand_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(Str1,HandoverCommand_Field[MsgFKind]);
if(ShowType==1)
sprintf(Str,": %sb",Str2);
else {
if(ShowType==2)
sprintf(Str,": %sh",Str2);
else sprintf(Str,": %s",Str2);
}
}
break;
case 8: //HandoverComplete
if(MsgFKind<2) {
ShowType=HandoverComplete_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(Str1,HandoverComplete_Field[MsgFKind]);
if(ShowType==1)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -