📄 dspdetailmap.cpp
字号:
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 + -