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

📄 msgtext.cpp

📁 七号信令解码器
💻 CPP
📖 第 1 页 / 共 5 页
字号:
												nDrawX+=DeltaX;
												AddString(nDrawX*PtRate ,nDrawY*PtRate,Str,strlen(Str));
												nDrawX=X0;
												nDrawY+=DltY;
											}
									}
									else I+=Len3;
									break;		
								case 39:         //PWDREGISTFAIL
									if(MsgFKind<11) {
											ShowType=AbsentCribSM_FieldCrit[MsgFKind][3];
											 strcpy(Str2,"");
											 for(J=0;J<Len3;++J) {
												 bData=BUFDISPLAY[I];
												 I++;
												if(bDrawOK) {	//in print range except 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(bDrawOK) {	//in print range except BUFDISPLAY[I];I++;
												strcpy(Str,AbsentCribSM_Field[MsgFKind]);
												nDrawX+=DeltaXL;
												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,"   ");
												GetMapErrFieldStr(bData);
												strcat(Str,DataStr);
												nDrawX+=DeltaX;
												AddString(nDrawX*PtRate ,nDrawY*PtRate,Str,strlen(Str));
												nDrawX=X0;
												nDrawY+=DltY;
											}
									}
									else I+=Len3;
									break;
                           	case 40:
	                        case 41:
                         	case 42:
                         	case 43:
                        	case 44:
                        	case 45:
                        	case 46:
									if(MsgFKind<5) {
											ShowType=ImCmpblTerminal_FieldCrit[MsgFKind][3];
											 strcpy(Str2,"");
											 for(J=0;J<Len3;++J) {
												 bData=BUFDISPLAY[I];
												 I++;
												if(bDrawOK) {	//in print range except 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(bDrawOK) {	//in print range except BUFDISPLAY[I];I++;
												strcpy(Str,ImCmpblTerminal_Field[MsgFKind]);
												nDrawX+=DeltaXL;
												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,"   ");
												GetMapErrFieldStr(bData);
												strcat(Str,DataStr);
												nDrawX+=DeltaX;
												AddString(nDrawX*PtRate ,nDrawY*PtRate,Str,strlen(Str));
												nDrawX=X0;
												nDrawY+=DltY;
											}
									}
									else I+=Len3;
									break;	
                        	case 47:
									if(MsgFKind<9) {
											ShowType=BusySub_FieldCrit[MsgFKind][3];
											 strcpy(Str2,"");
											 for(J=0;J<Len3;++J) {
												 bData=BUFDISPLAY[I];
												 I++;
												if(bDrawOK) {	//in print range except 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(bDrawOK) {	//in print range except BUFDISPLAY[I];I++;
												strcpy(Str,BusySub_Field[MsgFKind]);
												nDrawX+=DeltaXL;
												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,"   ");
												GetMapErrFieldStr(bData);
												strcat(Str,DataStr);
												nDrawX+=DeltaX;
												AddString(nDrawX*PtRate ,nDrawY*PtRate,Str,strlen(Str));
												nDrawX=X0;
												nDrawY+=DltY;
											}
									}
									else I+=Len3;
									break;	
								default:
									strcpy(Str1,"?");
									strcpy(Str,": ?");
									nDrawX+=DeltaXL;
									AddString(nDrawX*PtRate ,nDrawY*PtRate,Str,strlen(Str));
									nDrawX+=DeltaX;
									AddString(nDrawX*PtRate ,nDrawY*PtRate,Str,strlen(Str));
									nDrawX=X0;
									nDrawY+=DltY;
									break;
							}
					}				//if(bshow)
					else I+=Len3;
				}//else !=0xfe
			}
			else if(DataKind==5) {//inap msg
				if(FieldNo==0xfe) {     //len 2 byte
					Len2=BUFDISPLAY[I]; //data 16h len
					I++;
					Len2+=BUFDISPLAY[I]*256;
					I++;
					if(DetailType==0)	//overview :not main field
						bDrawOK=FALSE;
					if(bDrawOK) {
						nDrawX+=20;K=0;
						ShowType=2;
						strcpy(Str2,"");
						for(J=0;J<Len2;++J) {
							K++;
							bData=BUFDISPLAY[I];
							I++;
							Num=8;
							bEnd=GetDataStr(bData,Num,ShowType);  //No Err
							strcat(Str2," ");
							strcat(Str2,DataStr);
							if(K>=20) {
								K=0;
									sprintf(Str,"%sh",Str2);
									AddString(nDrawX*PtRate,nDrawY*PtRate,Str,strlen(Str));
								strcpy(Str2,"");
								nDrawY+=DltY;
							}
						}
						if(K!=0) {
								sprintf(Str,"%sh",Str2);
								AddString(nDrawX*PtRate,nDrawY*PtRate,Str,strlen(Str));
							strcpy(Str2,"");
							nDrawY+=DltY;
						}
						nDrawX=X0;
					}//IF
					else I+=Len2;
				}
				else {
					//no use to getmsgfkind filedno-1=msgfkind
					MsgFKind=FieldNo-1;
					if(DetailType==0)	{//overview
						bShowDetail=ShowInapField();
						if(!bShowDetail)
							bDrawOK=FALSE;
					}
					if(bDrawOK) {
								sprintf(Str,"xxh");
							AddString(nDrawX*PtRate,nDrawY*PtRate,Str,strlen(Str));
							nDrawX=X0;
					}
					//data fields	zxw 2000-08-18
					Len2=BUFDISPLAY[I];
					I++;
					if(Len2==0) {
						Len3=BUFDISPLAY[I];	//bytenum
						I++;
					}
					else {
						if((Len2%8)==0)
							Len3=Len2/8;
						else Len3=Len2/8+1;
					}
					if(bDrawOK) {
						nDrawY=DrawInapVeiw(*this,I,Len2,Len3,nDrawX,nDrawY,DltY,PtRate);
						nDrawX=X0;
					}				//if(bshow)
					I+=Len3;
				}//else !=0xfe
			}
			else if(DataKind==6) {//inap err msg
				if(FieldNo==0xfe) {     //len 2 byte
					Len2=BUFDISPLAY[I]; //data 16h len
					I++;
					Len2+=BUFDISPLAY[I]*256;
					I++;
					if(DetailType==0)	//overview :not main field
						bDrawOK=FALSE;
					if(bDrawOK) {
						nDrawX+=20;K=0;
						ShowType=2;
						strcpy(Str2,"");
						for(J=0;J<Len2;++J) {
							K++;
							bData=BUFDISPLAY[I];
							I++;
							Num=8;
							bEnd=GetDataStr(bData,Num,ShowType);  //No Err
							strcat(Str2," ");
							strcat(Str2,DataStr);
							if(K>=20) {
								K=0;
									sprintf(Str,"%sh",Str2);
									AddString(nDrawX*PtRate,nDrawY*PtRate,Str,strlen(Str));
								strcpy(Str2,"");
								nDrawY+=DltY;
							}
						}
						if(K!=0) {
								sprintf(Str,"%sh",Str2);
								AddString(nDrawX*PtRate,nDrawY*PtRate,Str,strlen(Str));
							strcpy(Str2,"");
							nDrawY+=DltY;
						}
						nDrawX=X0;
					}//IF
					else I+=Len2;
				}
				else {
					//no use to getmsgfkind filedno-1=msgfkind
					MsgFKind=FieldNo-1;
					if(bDrawOK) {
								sprintf(Str,"xxh");
							AddString(nDrawX*PtRate,nDrawY*PtRate,Str,strlen(Str));
							nDrawX=X0;
					}
					//data fields	zxw 2000-08-18
					Len2=BUFDISPLAY[I];
					I++;
					if(Len2==0) {
						Len3=BUFDISPLAY[I];	//bytenum
						I++;
					}
					else {
						if((Len2%8)==0)
							Len3=Len2/8;
						else Len3=Len2/8+1;
					}
					if(bDrawOK) {
							switch(InapErrKind) {
								case 2:         //CANCELFAIL
									if(MsgFKind<8) {
											ShowType=CANCELFAIL_FieldCrit[MsgFKind][3];
											 strcpy(Str2,"");
											 for(J=0;J<Len3;++J) {
												 bData=BUFDISPLAY[I];
												 I++;
												if(bDrawOK) {	//in print range except 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(bDrawOK) {	//in print range except BUFDISPLAY[I];I++;
												strcpy(Str,CANCELFAIL_Field[MsgFKind]);
												nDrawX+=DeltaXL;
												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,"   ");
												GetInapErrFieldStr(bData);
												strcat(Str,DataStr);
												nDrawX+=DeltaX;
												AddString(nDrawX*PtRate ,nDrawY*PtRate,Str,strlen(Str));
												nDrawX=X0;
												nDrawY+=DltY;
											}
									}
									else I+=Len3;
									break;
								case 8:         //REQINFOERR
									if(MsgFKind<3) {
											ShowType=REQINFOERR_FieldCrit[MsgFKind][3];
											 strcpy(Str2,"");
											 for(J=0;J<Len3;++J) {
												 bData=BUFDISPLAY[I];
												 I++;
												if(bDrawOK) {	//in print range except 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(bDrawOK) {	//in print range except BUFDISPLAY[I];I++;
												strcpy(Str,REQINFOERR_Field[MsgFKind]);
												nDrawX+=DeltaXL;
												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,"   ");
												GetInapErrFieldStr(bData);
												strcat(Str,DataStr);
												nDrawX+=DeltaX;
												AddString(nDrawX*PtRate ,nDrawY*PtRate,Str,strlen(Str));
												nDrawX=X0;
												nDrawY+=DltY;
											}
									}
									else I+=Len3;
									break;
								case 9:         //SYSTEMFAIL
									if(MsgFKind<3) {
											ShowType=SYSTEMFAIL_FieldCrit[MsgFKind][3];
											 strcpy(Str2,"");
											 for(J=0;J<Len3;++J) {
												 bData=BUFDISPLAY[I];
												 I++;
												if(bDrawOK) {	//in print range except 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(bDrawOK) {	//in print range except BUFDISPLAY[I];I++;
												strcpy(Str,SYSTEMFAIL_Field[MsgFKind]);
												nDrawX+=DeltaXL;
												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,"   ");
												GetInapErrFieldStr(bData);
												strcat(Str,DataStr);
												nDrawX+=DeltaX;
												AddString(nDrawX*PtRate ,nDrawY*PtRate,Str,strlen(Str));
												nDrawX=X0;
												nDrawY+=DltY;
											}
									}
									else I+=Len3;
									break;
								case 10:         //TASKREFUSE
									if(MsgFKind<3) {
											ShowType=TASKREFUSE_FieldCrit[MsgFKind][3];
											 strcpy(Str2,"");
											 for(J=0;J<Len3;++J) {
												 bData=BUFDISPLAY[I];
												 I++;
												if(bDrawOK) {	//in print range except 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(bDrawOK) {	//in print range except BUFDISPLAY[I];I++;
												strcpy(Str,TASKREFUSE_Field[MsgFKind]);
												nDrawX+=DeltaXL;
												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,"   ");
												GetInapErrFieldStr(bData);
												strcat(Str,DataStr);
												nDrawX+=DeltaX;
												AddString(nDrawX*PtRate ,nDrawY*PtRate,Str,strlen(Str));
												nDrawX=X0;
												nDrawY+=DltY;
											}
									}
									else I+=Len3;

⌨️ 快捷键说明

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