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

📄 svisupdisp.cpp

📁 七号信令解码器
💻 CPP
📖 第 1 页 / 共 5 页
字号:
		  *dispbuf++=150;
		  *dispbuf++=1;
		  LI=*dispbuf++=*recbuf++;
		  *dispbuf++=8;
		  *dispbuf++=LI;
		  *dispbuf++=0xcc;
		  displen+=6;
//No.150 field:ADDIN:D6-D0
		  *dispbuf++=151;
		  *dispbuf++=1;
		  *dispbuf++=*recbuf;
		  *dispbuf++=7;
		  *dispbuf++=*recbuf<<1;
		  *dispbuf++=0xcc;
//No.151:Odd\Even:D7
		  *dispbuf++=152;
		  *dispbuf++=0;
		  *dispbuf++=1;
		  oddeven=*dispbuf++=(*recbuf++)&0x80;
		  *dispbuf++=0xcc;
		  displen+=11;
//No.152 field:D1-D0
		  *dispbuf++=153;
		  *dispbuf++=1;
		  *dispbuf++=*recbuf;
		  *dispbuf++=2;
		  *dispbuf++=*recbuf<<6;
		  *dispbuf++=0xcc;
//No.153 field:D3-D2
		  *dispbuf++=154;
		  *dispbuf++=0;
		  *dispbuf++=2;
		  *dispbuf++=(*recbuf&0xc)<<4;
		  *dispbuf++=0xcc;
//No.154 field:D5-D4
		  *dispbuf++=155;
		  *dispbuf++=0;
		  *dispbuf++=2;
		  *dispbuf++=(*recbuf&0x30)<<2;
		  *dispbuf++=0xcc;
//No.155 field:D7-D6
		  *dispbuf++=156;
		  *dispbuf++=0;
		  *dispbuf++=2;
		  *dispbuf++=(*recbuf++)&0xc0;
		  *dispbuf++=0xcc;
		  displen+=21;
//No.156 field:addr
		  if(LI>2)
			{LI-=2;
			 *dispbuf++=157;
			 *dispbuf++=LI;
			 for(i=0;i<LI;i++) *dispbuf++=*(recbuf+i);
			 if(oddeven==0)//even
			  {*dispbuf++=LI*8;
				for(i=0;i<LI;i++)
				 *dispbuf++=(*recbuf<<4)|(*recbuf>>4);
			  }
			 else
			  {*dispbuf++=LI*8-4;
				for(i=0;i<LI-1;i++)
				 *dispbuf++=(*recbuf<<4)|(*recbuf>>4);
				*dispbuf++=*recbuf<<4;
			  }
			 *dispbuf++=0xcc;
			 displen+=LI*2+4;
			}
		 }//exist POSNUM
		}//while
		if(slen>3) {slen-=3;procmoredatadisp(slen);}
		 break;

//table 35/6
		case 0x02:/*SAM*/
//No.12 field PTR1:8bits
		 bytedisp(12)
//No.13 field PTR2:8bits
		 bytedisp(13)
//No.14 field:SUBNOLI,8bits
		 *dispbuf++=14;
		 *dispbuf++=1;
		 LI=*dispbuf++=*recbuf++;
		 *dispbuf++=8;
		 *dispbuf++=LI;
		 *dispbuf++=0xcc;
		 displen+=6;
//No.15 field:Odd\Even:D7,P94
		 *dispbuf++=15;
		 *dispbuf++=1;
		 *dispbuf++=*recbuf;
		 *dispbuf++=1;
		 oddeven=*dispbuf++=*(recbuf++)&0x80;
		 *dispbuf++=0xcc;
		 displen+=6;
//No.16 field:addr,P94
		 if(LI>1)
		  {LI--;
			*dispbuf++=16;
			*dispbuf++=LI;
			for(i=0;i<LI;i++) *dispbuf++=*(recbuf+i);
			if(oddeven==0)//even
			  {*dispbuf++=LI*8;
				for(i=0;i<LI;i++)
				 *dispbuf++=(*recbuf<<4)|(*recbuf>>4);
			  }
			else
			  {*dispbuf++=LI*8-4;
				for(i=0;i<LI-1;i++)
				 *dispbuf++=(*recbuf<<4)|(*recbuf>>4);
				*dispbuf++=*recbuf<<4;
			  }
			*dispbuf++=0xcc;
			displen+=LI*2+4;
		  }
		 break;

//table 31/6
		case 0x03:/*INR*/
//No.12 field:IRQIN,2bytes,F
		 proc2byte(12)
//No.13 field:ptr1,8bits
		code=*recbuf;
		 bytedisp(13)

		 if (code==0) break;
		 dataleggel=0xff;
		 while(*recbuf!=0&&dataleggel==0xff)//option over
		 {dataleggel=0;
//No.14-17 field:CREF
		 if(*recbuf==0x01)//exist CREF
		  {dataleggel=0xff;
//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-24 field:NSPER,P82
		 if(*recbuf==0x2f)//exist NSPER
		  {dataleggel=0xff;
//No.18 field:NSPER para name,8bits
		   bytedisp(18)
//No.19-24 field:NSPERLI and NSPER content
		   procISUPNSPERdisp(19);
		  }//exist NSPER
//No.25-27 field:PCINFO,P86
		 if(*recbuf==0x39)//exist PCINFO
		 {dataleggel=0xff;procISUPBaseOption(25);}
		 }//option over
		 break;

//table 30/6
		case 0x04:/*INF*/
//No.12 field:INFIN,2bytes,P71,F
		 proc2byte(12)
//No.13 field:ptr1,8bits
		 code=*recbuf;
		 bytedisp(13)

		 if (code==0) break;
		 dataleggel=0xff;
		 while(*recbuf!=0&&dataleggel==0xff)//option over
		 {dataleggel=0;
//No.14-16 field:CLGPC,3byte,Option,P47
		  if(*recbuf==0x09)//exist CLGPC
		  {dataleggel=0xff;procISUPBaseOption(14);}
//No.17-25 field:CLGNO
		  if(*recbuf==0x0a)//exist CLGNO
		  {dataleggel=0xff;
//No.17 field:CLGNO para name,8bits
		   bytedisp(17)
//No.18-25 field:CLGNOLI and CLGNO content
		   procISUPCLGNOdisp(18);
		  }//exist CLGNO
//No.26-29 field:CREF
		  if(*recbuf==0x01)//exist CREF
		  {dataleggel=0xff;
//No.26 field:CREF para name,8bits
			bytedisp(26)
//No.27 field:CREFLI,8bits
			bytedisp(27)
//No.28 field:Call Id,24bits
			proc3byte(28)
//No.29 field:point code ,24bits
			proc3byte(29)
		  }//exist CREF
//No.30-35 field:CR ,P58
		  if(*recbuf==0x0d)//exist CR
		  {dataleggel=0xff;
//No.30 field:CR para name,Option,8bits
		   bytedisp(30)
//No.31 field:CRLI,8bits
		   *dispbuf++=31;
		   *dispbuf++=1;
		   LI=*dispbuf++=*recbuf++;
		   *dispbuf++=8;
		   *dispbuf++=LI;
		   *dispbuf++=0xcc;
		   displen+=6;
//No.32-35 field:CR
		   procISUPCRdisp(LI,32);
		  }//exist CR
//No.36-38 field:PCINFO,P86
		  if(*recbuf==0x39)//exist PCINFO
		  {dataleggel=0xff;procISUPBaseOption(36);}
//No.39-45 field:NSPER,P82
		  if(*recbuf==0x2f)//exist NSPER
		  {dataleggel=0xff;
//No.39 field:NSPER para name,8bits
			bytedisp(39)
//No.41-45  field:NSPERLI and NSPER content
		    procISUPNSPERdisp(40);
		  }//exist NSPER
		 }//option over
		 break;

//table 28/6
		case 0x05:/*COT*/
//No.12 field:CNTIN,8bits,P59,F
		 bytedisp(12)
		 break;

//table 21/6
		case 0x06:/*ACM*/
//No.12 field:BCLIN,2bytes,F,P38
		 proc2byte(12)
//No.13 field:ptr1,8bits
		 code=*recbuf;
		 bytedisp(13)

		 if (code==0) break;
		 dataleggel=0xff;
		 while(*recbuf!=0&&dataleggel==0xff)//option over
		 {dataleggel=0;
//No.14-16 field:OBCIN,3bytes,Option,P83
		 if(*recbuf==0x29)//exist OBCIN
		 {dataleggel=0xff;procISUPBaseOption(14);}
//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:CAUSE,Option
		 if(*recbuf==0x12)//exist CAUSE
		  {dataleggel=0xff;
//No.21 field:CAUSE para name,8bits
			bytedisp(21)
//No.22-26 field:CAUSELI and CAUSE content
			procISUPCAUSE(22);
		  }//exist CAUSE
//No.27-29 field:UUIN,P98
		if(*recbuf==0x2a)//exist UUIN
		 {dataleggel=0xff;
//No.27 field:UUIN para name,8bits
		  bytedisp(27)
//No.28 field:UUINLI,8bits
		  bytedisp(28)
//No.29 field:UUINLI,8bits
		  bytedisp(29)
		 }//exist UUIN
//No.30-32 field:USRIN,P89
		if(*recbuf==0x20)//exist USRIN
		{dataleggel=0xff;procISUPBaseOption(30);}
//No.33-35 field:ACCTR,P37
		if(*recbuf==0x03)//exist ACCTR
		{dataleggel=0xff;procISUPBaseOption(33);}
//No.36-38 field:CINFOI,3bytes,P66,may repeat
		while(*recbuf==0x2c)//exist CINFOI,通用通知表示语
		 {dataleggel=0xff;
		  bytedisp(36)
		  bytedisp(37)
		  bytedisp(38)
		 }//WHILE
//No.39-41 field TRMED:3bytes,P98,Option
		 if(*recbuf==0x35)//exist TRMED,所用的传输媒介
		 {dataleggel=0xff;
		  bytedisp(39)
		  bytedisp(40)
		  bytedisp(41)
		 }//exist TRMED
//No.42-44 field ECINFO:3bytes,P60,Option
		 if(*recbuf==0x37)//exist ECINFO,回声控制信息
		 {dataleggel=0xff;
		  bytedisp(42)  //ECINFO name,1byte
		  bytedisp(43)  //ECINFO li,1byte
		  bytedisp(44)  //ECINFO content,1byte
		 }//exist ECINFO
//No.45-47 field ATRINFO:3bytes,P36,Option
		 if(*recbuf==0x1f)//exist ATRINFO,接入转交信息
		 {dataleggel=0xff;
		  bytedisp(45)  //ATRINFO name,1byte
		  bytedisp(46)  //ATRINFO li,1byte
		  bytedisp(47)  //ATRINFO content,1byte
		 }//exist ATRINFO
//No.48-54 field REDNO ,P91,P42
		 if(*recbuf==0x0c)//exist REDNO,改发号码
		 {dataleggel=0xff;
//No.48 field:REDNO para name,8bits
			bytedisp(48)
//No.49-54 field:REDNO li and REDNO content
			procISUPCLDPC(49);
		 }//exist REDNO
//No.55-57 field:PCINFO,P86
		if(*recbuf==0x39)//exist PCINFO,参数兼容性信息
		{dataleggel=0xff;procISUPBaseOption(55);}
//No.58-60 field:CMINFO,3bytes,P40
		if(*recbuf==0x36)//exist CMINFO,呼叫变更信息
		 {dataleggel=0xff;
		  bytedisp(58)
		  bytedisp(59)
		  bytedisp(60)
		 }//exist CMINFO
//No.61-67 field:NSPER,P82
		if(*recbuf==0x2f)//exist NSPER
		 {dataleggel=0xff;
//No.61 field:NSPER para name,8bits
		  bytedisp(61)
//No.63-67 field:NSPERLI and NSPER content
		  procISUPNSPERdisp(62);
		 }//exist NSPER
//No.68-70 field: REOPER,P92
		if(*recbuf==0x32)//exist REOPER,远端操作
		{dataleggel=0xff;procISUPBaseOption(68);}
//No.71-73 field: SACT,P93
		if(*recbuf==0x33)//exist SACT,业务激活
		{dataleggel=0xff;procISUPBaseOption(71);}
//No.74-76 field:REDNLIT,3bytes,P92
		if(*recbuf==0x40)//exist REDNLIT,改发号码限制
		 {dataleggel=0xff;
		  bytedisp(74)  //REDNLIT name,1byte
		  bytedisp(75)  //REDNLIT li,1byte
		  bytedisp(76)  //REDNLIT,1byte
		 }//exist REDNLIT
		}//option over
		 break;

//table 27/6
		case 0x07:/*CON*/
//No.12 field:BCLIN,2bytes,F,P38
		 proc2byte(12)
//No.13 field:ptr1,8bits
		 code=*recbuf;
		 bytedisp(13)

		 if (code==0) break;
		 dataleggel=0xff;
		 while(*recbuf!=0&&dataleggel==0xff)//option over
		 {dataleggel=0;
//No.14-16 field:OBCIN,3bytes,Option,P83
		 if(*recbuf==0x29)//exist OBCIN,任选后向呼叫表示语
		 {dataleggel=0xff;procISUPBaseOption(14);}
//No.17-24 field:CONNO,P58
		if(*recbuf==0x21)//exist CONNO,被连结的号码
		 {dataleggel=0xff;
//No.17 field:CONNO para name,8bits
		  bytedisp(17)
//No.18-24 field:CONNO li and CONNO content
		  procISUPCONNOdisp(18);
		 }//exist CONNO
//No.25-31 field:CREF
		if(*recbuf==0x01)//exist CREF
		 {dataleggel=0xff;
//No.25 field:CREF para name,8bits
		  bytedisp(25)
//No.26 field:CREFLI,8bits
		  bytedisp(26)
//No.27 field:Call Id,24bits
		  proc3byte(27)
//No.28 field:point code ,24bits
		  proc3byte(28)
		 }//exist CREF
//No.29-31 field:UUIN,P98
		if(*recbuf==0x2a)//exist UUIN
		 {dataleggel=0xff;
//No.29 field:UUIN para name,8bits
		  bytedisp(29)
//No.30 field:UUINLI,8bits
		  bytedisp(30)
//No.31 field:UUINLI,8bits
		  bytedisp(31)
		 }//exist UUIN
//No.32-34 field:USRIN,P89
		if(*recbuf==0x20)//exist USRIN
		{dataleggel=0xff;procISUPBaseOption(32);}
//No.35-37 field:ACCTR,P37
		if(*recbuf==0x03)//exist ACCTR,接入转送
		{dataleggel=0xff;procISUPBaseOption(35);}
//No.38-44 field:NSPER,P82
		if(*recbuf==0x2f)//exist NSPER
		 {dataleggel=0xff;
//No.38 field:NSPER para name,8bits
		  bytedisp(38)
//No.40-44 field:NSPERLI and NSPER content
		  procISUPNSPERdisp(39);
		 }//exist NSPER
//No.45-47 field:CINFOI,3bytes,P66,may repeat
		while(*recbuf==0x2c)//exist CINFOI,通用通知表示语
		 {dataleggel=0xff;
		  bytedisp(45)
		  bytedisp(46)
		  bytedisp(47)
		 }//WHILE
//No.48-50 field: REOPER,P92
		if(*recbuf==0x32)//exist REOPER
		{dataleggel=0xff;procISUPBaseOption(48);}
//No.51-53 field TRMED:3bytes,P98,Option
		 if(*recbuf==0x35)//exist TRMED,所用的传输媒介
		 {dataleggel=0xff;
		  bytedisp(51)
		  bytedisp(52)
		  bytedisp(53)
		 }//exist TRMED
//No.54-56 field ECINFO:3bytes,P60,Option
		 if(*recbuf==0x37)//exist ECINFO,回声控制信息
		 {dataleggel=0xff;
		  bytedisp(54)  //ECINFO name,1byte
		  bytedisp(55)  //ECINFO li,1byte
		  bytedisp(56)  //ECINFO content,1byte
		 }//exist ECINFO
//No.57-59 field ATRINFO:3bytes,P36,Option
		 if(*recbuf==0x2e)//exist ATRINFO,接入转交信息
		 {dataleggel=0xff;
		  bytedisp(57)  //ATRINFO name,1byte
		  bytedisp(58)  //ATRINFO li,1byte
		  bytedisp(59)  //ATRINFO content,1byte
		 }//exist ATRINFO
//No.60-62 field CHINFO:3bytes,P36,Option
		 if(*recbuf==0x2d)//exist CHINFO,呼叫历史信息
		 {dataleggel=0xff;procISUPBaseOption(60);}
//No.63-65 field:PCINFO,P86
		 if(*recbuf==0x39)//exist PCINFO,参数兼容性信息
		 {dataleggel=0xff;procISUPBaseOption(63);}
//No.66-72 field REDNO ,P91,P42
		 if(*recbuf==0x0c)//exist REDNO,改发号码
		 {dataleggel=0xff;
//No.66 field:REDNO para name,8bits
		  bytedisp(66)
//No.67-72 field:REDNO li and REDNO content
		  procISUPCLDPC(67);
		 }//exist REDNO
//No.73-75 field:SACT,P93
		 if(*recbuf==0x33)//exist SACT
		 {dataleggel=0xff;procISUPBaseOption(73);}
//No.76-85 field:GN,P67
		while(*recbuf==0xc0)//exist GN,通用号码
		 {dataleggel=0xff;
//No.76 field:GN para name,8bits
		  bytedisp(76)
//No.77-85 field:GNLI and GN content,8bits
		  procISUPGNdisp(77);
		 }//exist GN
//No.86-88 field:REDNLIT,3bytes,P92
		if(*recbuf==0x40)//exist REDNLIT,改发号码限制
		 {dataleggel=0xff;
		  bytedisp(86)  //REDNLIT name,1byte
		  bytedisp(87)  //REDNLIT li,1byte
		  bytedisp(88)  //REDNLIT,1byte
		 }//exist REDNLIT
		}//option over
		 break;

//table 37/6
		case 0x08:/*FOT*/
//No.12 field:ptr1
         bytedisp(12)
//No.13-16 field:CREF
		if(*recbuf==0x01)//exist CREF
		 {
//No.13 field:CREF para name,8bits
		  bytedisp(13)
//No.14 field:CREFLI,8bits
		  bytedisp(14)
//No.15 field:Call Id,24bits
		  proc3byte(15)
//No.16 field:point code ,24bits
		  proc3byte(16)
		 }//exist CREF

		 break;

//table 22/6
		case 0x09:/*ANM*/
//No.12 field:ptr1
		 code=*recbuf;

		 if (code==0) break;
         bytedisp(12)
		 dataleggel=0xff;
		 while(*recbuf!=0&&dataleggel==0xff)//option over
		 {dataleggel=0;
//No.13-15 field:BCIN,3bytes,Option,P83

⌨️ 快捷键说明

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