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

📄 dspbssmapfunc.cpp

📁 七号信令解码器
💻 CPP
📖 第 1 页 / 共 5 页
字号:
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 + -