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

📄 dspdetailmap.cpp

📁 七号信令解码器
💻 CPP
📖 第 1 页 / 共 5 页
字号:
extern char  CueCollectInfo_Field[110][25];

extern BYTE  CueCollectInfo_FieldCrit[110][4];

extern char  ReleaseCall_Field[3][25];

extern BYTE  ReleaseCall_FieldCrit[3][4];

extern char  ReqBCSMEvent_Field[35][25];

extern BYTE  ReqBCSMEvent_FieldCrit[35][4];

extern char  ResetTimer_Field[21][25];

extern BYTE  ResetTimer_FieldCrit[21][4];

extern char  SendChargeInfo_Field[56][25];

extern BYTE  SendChargeInfo_FieldCrit[56][4];

extern char  SpecialResRep_Field[2][25];

extern BYTE  SpecialResRep_FieldCrit[2][4];



//INAP Err
extern char     CAPErrMsg[CAPERRMSG_NUM+1][24];

extern BYTE    CAPErrMT[CAPERRMSG_NUM+1];


int DrawMapVeiw(CMsgText& msgText,WORD I,WORD Len2,WORD Len3,int nDrawX,int nDrawY,int DltY, float PtRate,bool YOrNTxt)
{       //zxw 2000-08-18 增加消息原码显示控制
	char  Str[250],Str1[100],Str2[270];
	BYTE  K,J,Num,bData,ShowType;
	int   DeltaXL,DeltaXS,DeltaX;
	BOOL  bEnd;
    
	strcpy(detailmap_TotalDataStr,"");
	DeltaXL=120;
	DeltaX=130;
	DeltaXS=40;
	switch(MapKind) {
		case 1:         //UPDATELOC
			if(MsgFKind<24) {
				switch(MsgFKind+1) {
				default:
					strcpy(Str,UPDATELOC_Field[MsgFKind]);
					nDrawX+=DeltaXL;
					if(YOrNTxt==true)
					strcat(detailmap_TotalDataStr,Str);
					else
					msgText.AddString(nDrawX*PtRate ,nDrawY*PtRate,Str,strlen(Str));
					

					ShowType=UPDATELOC_FieldCrit[MsgFKind][3];
					 if(Len3<MAX_LEN_OF_DETAILSHOW)
					 {
						 strcpy(Str2,"");
						 for(J=0;J<Len3;++J) {
							 bData=BUFDISPLAY[I];
							 I++;
							 Num=8;
							 if(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);
						 }
						if(ShowType==1)
							sprintf(Str,": %sb",Str2);
						else {
							if(ShowType==2)
								sprintf(Str,": %sh",Str2);
							else  sprintf(Str,": %s",Str2);
						}
						strcat(Str,"   ");
						GetMapFieldStr(bData);
						strcat(Str,DataStr);
						nDrawX+=DeltaX;
						if(YOrNTxt==true)
						{strcat(detailmap_TotalDataStr,Str);
						strcat(detailmap_TotalDataStr,"\r\n");}
						else
						msgText.AddString(nDrawX*PtRate ,nDrawY*PtRate,Str,strlen(Str));
						
						nDrawY+=DltY;
					 }
					 else
					 {
						ShowType=2;		//HEX
						 for(K=0;K<Len3/15;++K) {
							 strcpy(Str2,"");
							 for(J=0;J<15;++J) {
								 bData=BUFDISPLAY[I];
								 I++;
								 Num=8;
								 bEnd=GetDataStr(bData,Num,ShowType);  //2 is show type
								 strcat(Str2,DataStr);
								 strcat(Str2," ");
							 }
							nDrawX+=DeltaX;
							strcpy(Str,Str2);
							if(YOrNTxt==true)
							{strcat(detailmap_TotalDataStr,Str);
							strcat(detailmap_TotalDataStr,"\r\n");}
							else
							msgText.AddString(nDrawX*PtRate ,nDrawY*PtRate,Str,strlen(Str));
							
							nDrawY+=DltY;
							nDrawX-=DeltaX;
						 }
						 strcpy(Str2,"");
						 for(J=0;J<Len3%15;++J) {
							 bData=BUFDISPLAY[I];
							 I++;
							 Num=8;
							 bEnd=GetDataStr(bData,Num,ShowType);  //2 is show type
							 strcat(Str2,DataStr);
							 strcat(Str2," ");
						 }
							strcpy(Str,Str2);
							strcat(Str," ");
							GetMapFieldStr(bData);
							strcat(Str,DataStr);
							nDrawX+=DeltaX;
							if(YOrNTxt==true)
							{strcat(detailmap_TotalDataStr,Str);
							strcat(detailmap_TotalDataStr,"\r\n");}
							else
							msgText.AddString(nDrawX*PtRate ,nDrawY*PtRate,Str,strlen(Str));
							
							nDrawY+=DltY;
					 }
					break;
				case 8://RoamAddrin
				case 12://MSC_Addrin
				case 16://VLR_Addrin
				case 23://HLR_Addrin
					ShowType=UPDATELOC_FieldCrit[MsgFKind][3];
					strcpy(Str2,"");
					for(J=0;J<Len3;++J) {
						bData=BUFDISPLAY[I];
						I++;
						Num=8;
						if(J==(Len2/8))
							Num=Len2%8;
						bEnd=GetDataStr(bData,Num,ShowType);
						strcat(Str2,DataStr);
					}
					strcpy(Str,UPDATELOC_Field[MsgFKind]);
					nDrawX+=DeltaXL;
					if(YOrNTxt==true)
					strcat(detailmap_TotalDataStr,Str);
					else
					msgText.AddString(nDrawX*PtRate ,nDrawY*PtRate,Str,strlen(Str));
					
					sprintf(Str,": %sb  ",Str2);
					strcat(Str," 号码地址性质表示语");
					nDrawX+=DeltaX;
					if(YOrNTxt==true)
					strcat(detailmap_TotalDataStr,Str);
					else
					msgText.AddString(nDrawX*PtRate ,nDrawY*PtRate,Str,strlen(Str));
					
					nDrawY=DrawMAPADDRINStr(msgText,bData,nDrawX,nDrawY,DltY,PtRate,YOrNTxt);
					if(YOrNTxt==true)
					{strcat(detailmap_TotalDataStr,word1_TotalDataStr);
						strcat(detailmap_TotalDataStr,"\r\n");}
					nDrawY+=DltY;
					break;
				}
			}
			break;
		case 2:         //CANCELLOC
			if(MsgFKind<8) {
					strcpy(Str,CANCELLOC_Field[MsgFKind]);
					nDrawX+=DeltaXL;
					if(YOrNTxt==true)
					strcat(detailmap_TotalDataStr,Str);
					else
					msgText.AddString(nDrawX*PtRate ,nDrawY*PtRate,Str,strlen(Str));
					
					ShowType=CANCELLOC_FieldCrit[MsgFKind][3];
					 if(Len3<MAX_LEN_OF_DETAILSHOW)
					 {
						 strcpy(Str2,"");
						 for(J=0;J<Len3;++J) {
							 bData=BUFDISPLAY[I];
							 I++;
							 Num=8;
							 if(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);
						 }
						if(ShowType==1)
							sprintf(Str,": %sb",Str2);
						else {
							if(ShowType==2)
								sprintf(Str,": %sh",Str2);
							else  sprintf(Str,": %s",Str2);
						}
						strcat(Str,"   ");
						GetMapFieldStr(bData);
						strcat(Str,DataStr);
						nDrawX+=DeltaX;
						if(YOrNTxt==true)
						{strcat(detailmap_TotalDataStr,Str);
						strcat(detailmap_TotalDataStr,"\r\n");}
						else
						msgText.AddString(nDrawX*PtRate ,nDrawY*PtRate,Str,strlen(Str));
						
						nDrawY+=DltY;
					 }
					 else
					 {
						ShowType=2;		//HEX
						 for(K=0;K<Len3/15;++K) {
							 strcpy(Str2,"");
							 for(J=0;J<15;++J) {
								 bData=BUFDISPLAY[I];
								 I++;
								 Num=8;
								 bEnd=GetDataStr(bData,Num,ShowType);  //2 is show type
								 strcat(Str2,DataStr);
								 strcat(Str2," ");
							 }
							nDrawX+=DeltaX;
							strcpy(Str,Str2);
							if(YOrNTxt==true)
							{strcat(detailmap_TotalDataStr,Str);
							strcat(detailmap_TotalDataStr,"\r\n");}
							else
							msgText.AddString(nDrawX*PtRate ,nDrawY*PtRate,Str,strlen(Str));
							
							nDrawY+=DltY;
							nDrawX-=DeltaX;
						 }
						 strcpy(Str2,"");
						 for(J=0;J<Len3%15;++J) {
							 bData=BUFDISPLAY[I];
							 I++;
							 Num=8;
							 bEnd=GetDataStr(bData,Num,ShowType);  //2 is show type
							 strcat(Str2,DataStr);
							 strcat(Str2," ");
						 }
							strcpy(Str,Str2);
							strcat(Str," ");
							GetMapFieldStr(bData);
							strcat(Str,DataStr);
							nDrawX+=DeltaX;
							if(YOrNTxt==true)
							{strcat(detailmap_TotalDataStr,Str);
							strcat(detailmap_TotalDataStr,"\r\n");}
							else
							msgText.AddString(nDrawX*PtRate ,nDrawY*PtRate,Str,strlen(Str));
							nDrawY+=DltY;
							
					 }
			}
			break;
		case 3:         //PROVROAMNUM
			if(MsgFKind<34) {
				switch(MsgFKind+1) {
				default:
					strcpy(Str,PROVROAMNUM_Field[MsgFKind]);
					nDrawX+=DeltaXL;
					if(YOrNTxt==true)
					strcat(detailmap_TotalDataStr,Str);
					else
					msgText.AddString(nDrawX*PtRate ,nDrawY*PtRate,Str,strlen(Str));
					
					ShowType=PROVROAMNUM_FieldCrit[MsgFKind][3];
					 if(Len3<MAX_LEN_OF_DETAILSHOW)
					 {
						 strcpy(Str2,"");
						 for(J=0;J<Len3;++J) {
							 bData=BUFDISPLAY[I];
							 I++;
							 Num=8;
							 if(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);
						 }
						if(ShowType==1)
							sprintf(Str,": %sb",Str2);
						else {
							if(ShowType==2)
								sprintf(Str,": %sh",Str2);
							else  sprintf(Str,": %s",Str2);
						}
						strcat(Str,"   ");
						GetMapFieldStr(bData);
						strcat(Str,DataStr);
						nDrawX+=DeltaX;
						if(YOrNTxt==true)
						{strcat(detailmap_TotalDataStr,Str);
						strcat(detailmap_TotalDataStr,"\r\n");}
						else
						msgText.AddString(nDrawX*PtRate ,nDrawY*PtRate,Str,strlen(Str));
						nDrawY+=DltY;
						
					 }
					 else
					 {
						ShowType=2;		//HEX
						 for(K=0;K<Len3/15;++K) {
							 strcpy(Str2,"");
							 for(J=0;J<15;++J) {
								 bData=BUFDISPLAY[I];
								 I++;
								 Num=8;
								 bEnd=GetDataStr(bData,Num,ShowType);  //2 is show type
								 strcat(Str2,DataStr);
								 strcat(Str2," ");
							 }
							nDrawX+=DeltaX;
							strcpy(Str,Str2);
							if(YOrNTxt==true)
							{strcat(detailmap_TotalDataStr,Str);
							strcat(detailmap_TotalDataStr,"\r\n");}
							else
							msgText.AddString(nDrawX*PtRate ,nDrawY*PtRate,Str,strlen(Str));
							nDrawY+=DltY;
							nDrawX-=DeltaX;
							
						 }
						 strcpy(Str2,"");
						 for(J=0;J<Len3%15;++J) {
							 bData=BUFDISPLAY[I];
							 I++;
							 Num=8;
							 bEnd=GetDataStr(bData,Num,ShowType);  //2 is show type
							 strcat(Str2,DataStr);
							 strcat(Str2," ");
						 }
							strcpy(Str,Str2);
							strcat(Str," ");
							GetMapFieldStr(bData);
							strcat(Str,DataStr);
							nDrawX+=DeltaX;
							if(YOrNTxt==true)
							{strcat(detailmap_TotalDataStr,Str);
							strcat(detailmap_TotalDataStr,"\r\n");}
							else
							msgText.AddString(nDrawX*PtRate ,nDrawY*PtRate,Str,strlen(Str));
							nDrawY+=DltY;
							
					 }
					break;
				case 8://MSC_Addrin
				case 12://MsisdnAddrin
				case 16://LastRoamAddrin
				case 33://RoamAddrin
					ShowType=PROVROAMNUM_FieldCrit[MsgFKind][3];
					strcpy(Str2,"");
					for(J=0;J<Len3;++J) {
						bData=BUFDISPLAY[I];
						I++;
						Num=8;
						if(J==(Len2/8))
							Num=Len2%8;
						bEnd=GetDataStr(bData,Num,ShowType);
						strcat(Str2,DataStr);
					}
					strcpy(Str,PROVROAMNUM_Field[MsgFKind]);
					nDrawX+=DeltaXL;
					if(YOrNTxt==true)
					strcat(detailmap_TotalDataStr,Str);
					else
					msgText.AddString(nDrawX*PtRate ,nDrawY*PtRate,Str,strlen(Str));
					
					sprintf(Str,": %sb  ",Str2);
					strcat(Str," 号码地址性质表示语");
					nDrawX+=DeltaX;
					if(YOrNTxt==true)
					strcat(detailmap_TotalDataStr,Str);
					else
					msgText.AddString(nDrawX*PtRate ,nDrawY*PtRate,Str,strlen(Str));
					
					nDrawY=DrawMAPADDRINStr(msgText,bData,nDrawX,nDrawY,DltY,PtRate,YOrNTxt);
					if(YOrNTxt==true)
					{strcat(detailmap_TotalDataStr,word1_TotalDataStr);
						strcat(detailmap_TotalDataStr,"\r\n");}
					nDrawY+=DltY;
					break;
				}
			}
			break;	
		case 4:         //INSSUBDATA
			if(MsgFKind<114) {
				switch(MsgFKind+1) {
				default:
					strcpy(Str,INSSUBDATA_Field[MsgFKind]);
					nDrawX+=DeltaXL;
					if(YOrNTxt==true)
					strcat(detailmap_TotalDataStr,Str);
					else
					msgText.AddString(nDrawX*PtRate ,nDrawY*PtRate,Str,strlen(Str));
					 
					ShowType=INSSUBDATA_FieldCrit[MsgFKind][3];
					 if(Len3<MAX_LEN_OF_DETAILSHOW)
					 {
						 strcpy(Str2,"");
						 for(J=0;J<Len3;++J) {
							 bData=BUFDISPLAY[I];
							 I++;
							 Num=8;
							 if(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);
						 }
						if(ShowType==1)
							sprintf(Str,": %sb",Str2);
						else {
							if(ShowType==2)
								sprintf(Str,": %sh",Str2);
							else  sprintf(Str,": %s",Str2);
						}
						strcat(Str,"   ");
						GetMapFieldStr(bData);
						strcat(Str,DataStr);
						nDrawX+=DeltaX;
						if(YOrNTxt==true)
						{strcat(detailmap_TotalDataStr,Str);
						strcat(detailmap_TotalDataStr,"\r\n");}
						else
						msgText.AddString(nDrawX*PtRate ,nDrawY*PtRate,Str,strlen(Str));
						nDrawY+=DltY;
						
					 }
					 else
					 {
						ShowType=2;		//HEX
						 for(K=0;K<Len3/15;++K) {
							 strcpy(Str2,"");
							 for(J=0;J<15;++J) {
								 bData=BUFDISPLAY[I];
								 I++;
								 Num=8;
								 bEnd=GetDataStr(bData,Num,ShowType);  //2 is show type
								 strcat(Str2,DataStr);
								 strcat(Str2," ");
							 }
							nDrawX+=DeltaX;
							strcpy(Str,Str2);
							if(YOrNTxt==true)
							{strcat(detailmap_TotalDataStr,Str);
							strcat(detailmap_TotalDataStr,"\r\n");}
							else
							msgText.AddString(nDrawX*PtRate ,nDrawY*PtRate,Str,strlen(Str));
							nDrawY+=DltY;
							nDrawX-=DeltaX;
							
						 }

⌨️ 快捷键说明

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