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

📄 svisupdisp.cpp

📁 七号信令解码器
💻 CPP
📖 第 1 页 / 共 5 页
字号:
		 if(*recbuf==0x11)//exist BCIN
		 {dataleggel=0xff;procISUPBaseOption(13);}
//No.16-18 field:OBCIN,3bytes,Option,P83
		 if(*recbuf==0x29)//exist OBCIN
		 {dataleggel=0xff;procISUPBaseOption(16);}
//No.19-21 field:CREF
		if(*recbuf==0x01)//exist CREF
		 {dataleggel=0xff;
//No.19 field:CREF para name,8bits
		  bytedisp(19)
//No.22 field:CREFLI,8bits
		  bytedisp(20)
//No.21 field:Call Id,24bits
		  proc3byte(21)
//No.22 field:point code ,24bits
		  proc3byte(22)
		 }//exist CREF
//No.23-25 field:UUIN,P98
		if(*recbuf==0x2a)//exist UUIN
		 {dataleggel=0xff;
//No.23 field:UUIN para name,8bits
		  bytedisp(23)
//No.24 field:UUINLI,8bits
		  bytedisp(24)
//No.25 field:UUINLI,8bits
		  bytedisp(25)
		 }//exist UUIN
//No.26-28 field:USRIN,P89
		if(*recbuf==0x20)//exist USRIN
		{dataleggel=0xff;procISUPBaseOption(26);}
//No.29-36 field:CONNO,P58,被连结的号码
		if(*recbuf==0x21)//exist CONNO
		 {dataleggel=0xff;
//No.29 field:CONNO para name,8bits
		  bytedisp(29)
//No.30-36 field:CONNO li and CONNO content
		  procISUPCONNOdisp(30);
		 }//exist CONNO
//No.37-39 field:ACCTR,P37,接入转送
		if(*recbuf==0x03)//exist ACCTR
		{dataleggel=0xff;procISUPBaseOption(37);}
//No.40-42 field ATRINFO:3bytes,P36,Option
		 if(*recbuf==0x2e)//exist ATRINFO,接入转交信息
		 {dataleggel=0xff;
		  bytedisp(40)  //ATRINFO name,1byte
		  bytedisp(41)  //ATRINFO li,1byte
		  bytedisp(42)  //ATRINFO content,1byte
		 }//exist ATRINFO
//No.43-45 field:CINFOI,3bytes,P66,may repeat
		while(*recbuf==0x2c)//exist CINFOI,通用通知表示语
		 {dataleggel=0xff;
		  bytedisp(43)
		  bytedisp(44)
		  bytedisp(45)
		 }//WHILE
//No.46-48 field:PCINFO,P86,参数兼容性信息
		 if(*recbuf==0x39)//exist PCINFO
		 {dataleggel=0xff;procISUPBaseOption(46);}
//No.49-51 field CHINFO:3bytes,P36,Option
		 if(*recbuf==0x2d)//exist CHINFO,呼叫历史信息
		 {dataleggel=0xff;procISUPBaseOption(49);}
//No.52-61 field:GN,P67,通用号码
		while(*recbuf==0xc0)//exist GN
		 {dataleggel=0xff;
//No.52 field:GN para name,8bits
		  bytedisp(52)
//No.53-61 field:GNLI and GN content,8bits
		  procISUPGNdisp(53);
		 }//exist GN
//No.62-64 field TRMED:3bytes,P98,Option
		 if(*recbuf==0x35)//exist TRMED,所用的传输媒介
		 {dataleggel=0xff;
		  bytedisp(62)
		  bytedisp(63)
		  bytedisp(64)
		 }//exist TRMED
//No.65-71 field:NSPER,P82
		if(*recbuf==0x2f)//exist NSPER
		 {dataleggel=0xff;
//No.65 field:NSPER para name,8bits
		  bytedisp(65)
//No.66-71 field:NSPERLI and NSPER content
		  procISUPNSPERdisp(66);
		 }//exist NSPER
//No.72-74 field: REOPER,P92
		 if(*recbuf==0x32)//exist REOPER
		 {dataleggel=0xff;procISUPBaseOption(72);}
//No.75-81 field REDNO ,P91,P42
		 if(*recbuf==0x0c)//exist REDNO
		 {dataleggel=0xff;
//No.75 field:REDNO para name,8bits
			bytedisp(75)
//No.76-81 field:REDNO li and REDNO content
			procISUPCLDPC(76);
		 }//exist REDNO
//No.82-84 field:SACT,P93
		 if(*recbuf==0x33)//exist SACT
		 {dataleggel=0xff;procISUPBaseOption(82);}
//No.85-87 field ECINFO:3bytes,P60,Option
		 if(*recbuf==0x37)//exist ECINFO
		 {dataleggel=0xff;
		  bytedisp(85)  //ECINFO name,1byte
		  bytedisp(86)  //ECINFO li,1byte
		  bytedisp(87)  //ECINFO content,1byte
		 }//exist ECINFO
//No.88-90 field:REDNLIT,3bytes,P92
		if(*recbuf==0x36)//exist REDNLIT
		 {dataleggel=0xff;
		  bytedisp(88)  //REDNLIT name,1byte
		  bytedisp(89)  //REDNLIT li,1byte
		  bytedisp(90)  //REDNLIT,1byte
		 }//exist REDNLIT
		}//option over
		 break;

//table 33/6,P111
		case 0x0C:/*REL*/
//No.12 field:ptr1
		 bytedisp(12)
//No.13 field:ptr2
		 code=*recbuf;
		 bytedisp(13)
//No.15-18 field:CAUSELI and CAUSE content,P49,V
		 procISUPCAUSE(14);

		 if (code==0) break;
		 dataleggel=0xff;
		 while(*recbuf!=0&&dataleggel==0xff)//option over
		 {dataleggel=0;
//No.19-21 field:REDIN ,P90
		 if(*recbuf==0x13)//exist REDIN
		 {dataleggel=0xff;procISUPBaseOption(19);}
//No.22-28 field REDNO ,P91,P42
		 if(*recbuf==0x0c)//exist REDNO
		 {dataleggel=0xff;
//No.22 field:REDNO para name,8bits
			bytedisp(22)
//No.23-28 field:REDNO li and REDNO content
			procISUPCLDPC(23);
		 }//exist REDNO
//No.29-31 field:ACCTR,P37
		if(*recbuf==0x03)//exist ACCTR
		{dataleggel=0xff;procISUPBaseOption(29);}
//No.32-34 field:PC,5bytes,P94
		if(*recbuf==0x1e)//exist PC
		 {dataleggel=0xff;
		  bytedisp(32)   //PC name,1byte
		  bytedisp(33)   //PC name,1byte
		  proc3byte(34)  //pc content,3bytes
		 }//exist PC
//No.35-37 field:USRIN,P89
		if(*recbuf==0x20)//exist USRIN
		{dataleggel=0xff;procISUPBaseOption(35);}
//No.38-40 field:ACL,P37
		if(*recbuf==0x27)//exist ACL
		 {dataleggel=0xff;
		  bytedisp(38)   //ACL name,1byte
		  LI=*recbuf;    //get real LI
		  bytedisp(39)   //ACL LI,1byte
		  bytedisp(40)   //ACL,1byte
		  if(LI>=2) recbuf+=LI-1;
		 }//exist ACL
//No.41-47 field:NSPER,P82
		if(*recbuf==0x2f)//exist NSPER
		 {dataleggel=0xff;
//No.41 field:NSPER para name,8bits
		  bytedisp(41)
//No.42-47 field:NSPER
		  procISUPNSPERdisp(42);
		 }//exist NSPER
//No.48-50 field ATRINFO:3bytes,P36,Option
		 if(*recbuf==0x2e)//exist ATRINFO
		 {dataleggel=0xff;
		  bytedisp(48)  //ATRINFO name,1byte
		  bytedisp(49)  //ATRINFO li,1byte
		  bytedisp(50)  //ATRINFO content,1byte
		 }//exist ATRINFO
//No.51-53 field:PCINFO,P86
		 if(*recbuf==0x39)//exist PCINFO
		 {dataleggel=0xff;procISUPBaseOption(51);}
//No.54-56 field:REDNLIT,3bytes,P92
		if(*recbuf==0x40)//exist REDNLIT
		 {dataleggel=0xff;
		  bytedisp(54)  //REDNLIT name,1byte
		  bytedisp(55)  //REDNLIT li,1byte
		  bytedisp(56)  //REDNLIT,1byte
		 }//exist REDNLIT
//No.57-59 field:UUIN,3bytes,P99
		if(*recbuf==0x2a)//exist UUIN
		 {dataleggel=0xff;
		  bytedisp(57)  //UUIN name,1byte
		  bytedisp(58)  //UUIN li,1byte
		  bytedisp(59)  //UUIN,1byte
		 }//exist UUIN
		 }//option over

		 break;

//table 38/6
		case 0x0D:/*SUS*/
		case 0x0E:/*RES*/
//No.12 field:S/RIN ,1byte,P95
		 bytedisp(12)
//No.13 field:ptr1
		 bytedisp(13)
//No.14-17 field:CREF
		if(*recbuf==0x01)//exist CREF
		 {
//No.14 field:CREF para name,8bits
		  bytedisp(14)
//No.15 field:CREFLI,8bits
		  bytedisp(15)
//No.16 field:Call Id,24bits
		  proc3byte(16)
//No.17 field:point code ,24bits
		  proc3byte(17)
		 }//exist CREF

		 break;

//table 34/6
		case 0x10:/*RLC*/
//No.12 field:ptr1
		 bytedisp(12)
		 if(*recbuf==0x12)
		  {
//No.13 field:CAUSE para name
			bytedisp(13)
//No.14-17 field:CAUSELI and CAUSE content,P49,V
			procISUPCAUSE(14);
		  }
		 break;

//table 39/6
		case 0x11:/*CCR*/
		case 0x12:/*RSC*/
		case 0x13:/*BLO*/
		case 0x14:/*UBL*/
		case 0x15:/*BLA*/
		case 0x16:/*UBA*/
		case 0x24:/*LPA*/
		case 0x2e:/*UCIC*/
		case 0x30:/*OLM*/
		 break;

//table 41/6
		case 0x17:/*GRS*/
		case 0x2A:/*CQM*/
//No.12 field:ptr1
		 bytedisp(12)
//No.13 field:RG&STLI,V
		 bytedisp(13)
//No.14 field:RG&STLI,1byte
		 bytedisp(14)
		 break;

//table 40/6
		case 0x18:/*CGB*/
		case 0x19:/*CGU*/
		case 0x1A:/*CGBA*/
		case 0x1B:/*CGUA*/
//No.12 field:CGSM,1byte,P54,F
		 bytedisp(12)
//No.13 field:ptr1,1byte
		 bytedisp(13)
//No.14-16 field:RG&ST,V
		 procISUPRangeStatusdisp(14);
		 break;

		case 0x1C:/*CMR*/
		case 0x1D:/*CMC*/
		case 0x1E:/*CMRJ*/
//No.12 field:CMDIN,1byte,F
		 bytedisp(12)
//No.13 field:ptr
		 bytedisp(13)
//No.14-17 field:CREF
		if(*recbuf==0x01)//exist CREF
		 {
//No.14 field:CREF para name,8bits
		  bytedisp(14)
//No.15 field:CREFLI,8bits
		  bytedisp(15)
//No.16 field:Call Id,24bits
		  proc3byte(16)
//No.17 field:point code ,24bits
		  proc3byte(17)
		 }//exist CREF
//No.18-20 field:USRIN,P89
		if(*recbuf==0x20)//exist USRIN
		 procISUPBaseOption(18);

		 break;

//table 42/6
		case 0x1F:/*FAR*/
		case 0x20:/*FAA*/
//No.12 field:FACIN,1byte,P62,F
		 bytedisp(12)
//No.13 field:ptr
		 code=*recbuf;
		 bytedisp(13)

		 if (code==0) break;
		 dataleggel=0xff;
		 while(*recbuf!=0&&dataleggel==0xff)//option over
		 {dataleggel=0;
//No.14-16 field:UUIN,P98
		if(*recbuf==0x2a)//exist UUIN
		 {dataleggel=0xff;
//No.14 field:UUIN para name,8bits
		  bytedisp(14)
//No.15 field:UUINLI,8bits
		  bytedisp(15)
//No.16 field:UUINLI,8bits
		  bytedisp(16)
		 }//exist UUIN
//No.17-20 field:CREF
		if(*recbuf==0x01)//exist CREF
		 {dataleggel=0xff;
//No.17 field:CREF para name,8bits
		  bytedisp(17)
//No.18 field:CREFLI,8bits
		  bytedisp(18)
//No.19 field:Call Id,24bits
		  proc3byte(19)
//No.20 field:point code ,24bits
		  proc3byte(20)
		 }//exist CREF
//No.21-26 field:CR ,P58
		if(*recbuf==0x0d)//exist CR
		 {dataleggel=0xff;
//No.21 field:CR para name,8bits
		  bytedisp(21)
//No.22 field:CRLI,8bits
		  *dispbuf++=22;
		  *dispbuf++=1;
		  LI=*dispbuf++=*recbuf++;
		  *dispbuf++=8;
		  *dispbuf++=LI;
		  *dispbuf++=0xcc;
		  displen+=6;
//No.23-26 field:CR
//		  procISUPCRdisp(LI,23);
		 }//exist CR
//No.27-29 field:PCINFO,P86
		 if(*recbuf==0x39)//exist PCINFO
		 {dataleggel=0xff;procISUPBaseOption(27);}
		 }//option over

		 break;

//table 29/6
		case 0x21:/*FRJ*/
//No.12 field:FACIN,1byte,P62,F
		 bytedisp(12)
//No.13 field:ptr
		 bytedisp(13)
//No.14 field:ptr
		 bytedisp(14)
//No.15-19 field:CAUSELI and CAUSE content,V
		 procISUPCAUSE(15);
//No.20-22 field:UUIN,P98
		if(*recbuf==0x2a)//exist UUIN
		 {
//No.20 field:UUIN para name,8bits
		  bytedisp(20)
//No.21 field:UUINLI,8bits
		  bytedisp(21)
//No.22 field:UUINLI,8bits
		  bytedisp(22)
		 }//exist UUIN
		 break;

		case 0x27:/*DRS*/
		 break;

//table 43/6
		case 0x28:/*PAM*/
		 break;

//table 25/6
		case 0x29:/*GRA*/
//No.12 field:ptr1
		 bytedisp(12)
//No.13-15 field:RG&ST,V
		 procISUPRangeStatusdisp(13);
		 break;

//table 24/6
		case 0x2B:/*CQR*/
//No.12 field:ptr1
		 bytedisp(12)
//No.13 field:ptr2
		 bytedisp(13)
//No.14-15 field:RG&ST,V
//No.14 field:RG&STLI,V
		 bytedisp(14)
//No.15 field:RG&ST(only Range,1byte),V
		 bytedisp(15)
//No.16-17 field:CSI,V,P55
//No.16 field:CSI LI,V
		 LI=*recbuf;
		 bytedisp(16)
//No.17 field:CSI content,V
		 *dispbuf++=17;
		 *dispbuf++=LI;
		 for (i=0;i<LI;i++) *dispbuf++=*(recbuf+i);
		 *dispbuf++=LI*8;
		 for (i=0;i<LI;i++) *dispbuf++=*recbuf++;
		 *dispbuf++=0xcc;
		 displen+=LI*2+4;
		 break;

//table 23/6
		case 0x2C:/*CPG*/
//No.12 field:EVIN,1byte,P61,F
		 bytedisp(12)
//No.13 field:ptr1
		 code=*recbuf;
		 bytedisp(13)

		 if (code==0) break;
		 dataleggel=0xff;
		 while(*recbuf!=0&&dataleggel==0xff)//option over
		 {dataleggel=0;
//No.14-19 field:CAUSE,Option
		 if(*recbuf==0x12)//exist CAUSE
		  {dataleggel=0xff;
//No.14 field:CAUSE para name,8bits
			bytedisp(14)
//No.15-19 field:CAUSELI and CAUSE content
			procISUPCAUSE(15);
		  }//exist CAUSE
//No.20-23 field:CREF
		 if(*recbuf==0x01)//exist CREF
		  {dataleggel=0xff;
//No.20 field:CREF para name,8bits
			bytedisp(20)
//No.21 field:CREFLI,8bits
			bytedisp(21)
//No.22 field:Call Id,24bits
			proc3byte(22)
//No.23 field:point code ,24bits
			proc3byte(23)
		  }//exist CREF
//No.24-26 field:BCLIN,4bytes
		 if(*recbuf==0x11)//exist BCLIN
		  {dataleggel=0xff;
		   bytedisp(24)   //BCLIN name,1byte
		   bytedisp(25)   //BCLIN li,1byte
		   proc2byte(26)  //BCLIN content,2bytes
		  }//exist BCLIN
//No.27-29 field:OBCIN,3bytes
		 if(*recbuf==0x29)//exist OBCIN
		  {dataleggel=0xff;
		   bytedisp(27)   //OBCIN name,1byte
		   bytedisp(28)   //OBCIN li,1byte
		   bytedisp(29)   //OBCIN content,1bytes
		  }//exist OBCIN
//No.30-32 field:ACCTR,P37
		  if(*recbuf==0x03)//exist ACCTR
		  {dataleggel=0xff;procISUPBaseOption(30);}
//No.33-35 field:UUIN,3bytes
		  if(*recbuf==0x2A)//exist UUIN
		  {dataleggel=0xff;
		   bytedisp(33)   //UUIN name,1byte
		   bytedisp(34)   //UUIN li,1byte
		   bytedisp(35)   //UUIN content,1bytes
		  }//exist UUIN
//No.36-42 field REDNO ,P91,P42
		 if(*recbuf==0x0c)//exist REDNO
		 {dataleggel=0xff;
//No.36 field:REDNO para name,8bits
			bytedisp(36)
//No.37-42 field:REDNO li and REDNO content
			procISUPCLDPC(37);
		 }//exist REDNO
//No.43-45 field:USRIN,P89
		if(*recbuf==0x20)//exist USRIN
		{dataleggel=0xff;procISUPBaseOption(43);}
//No.46-48 field:CINFOI,3bytes,P66,may repeat
		while(*recbuf==0x2c)//exist CINFOI
		 {dataleggel=0xff;
		  bytedisp(46)
		  bytedisp(47)
		  bytedisp(48)
		 }//WHILE
//No.49-55 field:NSPER,P82
		if(*recbuf==0x2f)//exist NSPER
		 {dataleggel=0xff;
//No.49 field:NSPER para name,8bits
		  bytedisp(49)
//No.50-55 field:NSPERLI and NSPER content
		  procISUPNSPERdisp(50);
		 }//exist NSPER
//No.56-58 field: REOPER,P92
		 if(*recbuf==0x32)//exist REOPER
		 {dataleggel=0xff;procISUPBaseOption(56);}
//No.59-61 field:TRMED,3bytes
		 if(*recbuf==0x35)//exist TRMED

⌨️ 快捷键说明

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