亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? jbmcall.c

?? 電話PSTN線路上FSK處理軟件。。。。。。。。。
?? C
?? 第 1 頁 / 共 4 頁
字號:
	        case 1:
    	    	iAddress=NEW_DDD_TARIFF_ADDR;
        	    break;

	        case 2:
    	    	iAddress=NEW_IDD_TARIFF_ADDR;
        	    break;
    	}
	    ReadBytes(1,2);
    	iParaWord+=iAddress;							// 區號表的長度
	    if(iParaWord>0xa000)
    		iParaWord=0;
	   	Page(1);
    	while(1){
	    	if(XBYTE[iAddress]!=0xc0){					// 若費率表首標志不為0xc0,返回
    			fDefaultTari=1;
    			break;
	    	}
    		iAddress++;
        	aClass[0]=XBYTE[iAddress++];
	        aClass[1]=XBYTE[iAddress++];                // 取出費率的級數表
    	    bNum=0;   									// 取出的區號位數計數
        	for(i=0;i<8;i++,iAddress++){         		// Get Out the Rest Number
	 			bTemp=XBYTE[iAddress]>>4;
    	        if(bTemp>=0x0c)						    // 若查到區號則跳出 00-12-8 13:46
        	        break;
        	    /*
	            if(bTemp>0x0c){
    	            fDefaultTari=1;
        	        break;
	            }
	            */
    	        aTemp[2*i]=bTemp;
        	    bNum++;
            	bTemp=XBYTE[iAddress]&0x0f;
            	if(bTemp==0x0c){
                	iAddress++;
                	break;
	            }
    	        if(bTemp>0x0c){
        	        fDefaultTari=1;
            	    break;
	            }
    	        aTemp[2*i+1]=bTemp;
        	    bNum++;
	        }
    	    if(fDefaultTari)
        	    break;
        	if(fDial){
        		if(pReadNumber>=bIDL){
        			if(memcmp(&aTemp,&aNumBuf[bIDL],(pReadNumber-bIDL))==0){
        				fDial=0;
        				fCheckCall=0;
        			}	
        		}
        	}	
	       	if(memcmp(&aTemp,&aNumBuf[bIDL],bNum)==0x00){
	       		//
			    if(!fNo2Tariff)
    	    		bClass=aClass[0];
    			else
        			bClass=aClass[1];
	       		if(bClass!=0xff)						// 忽略級數
	       			break;
	       	}
        	    
    	   	if(iAddress>iParaWord){
       			fDefaultTari=1;
       			break;
	       	}
    	}
	    if(fDefaultTari){
    	    aClass[0]=3;                        		// 缺省費率自動查詢
			aClass[1]=3;
		}
		Page(5);
		//bMClass=aClass[0];							// 存儲級數表到緩沖區
		//bSClass=aClass[1];
    //}
    //else{
    	//aClass[0]=bMClass;
    	//aClass[1]=bSClass;
    //}
    switch(bIDL){
        case 0:
        	iAddress=NEW_LOCAL_CLASS_ADDR;
            break;

        case 1:
        	iAddress=NEW_DDD_CLASS_ADDR;
            break;

        case 2:
        	iAddress=NEW_IDD_CLASS_ADDR;
            break;
    }
    Page(1);
    if(!fNo2Tariff)
        bClass=aClass[0];
    else{
        bClass=aClass[1];
        bParaByte=XBYTE[iAddress];
	   	iAddress+=(uint)(bParaByte*16)+1;
	}
	Page(5);
	if(bClass<2)
		return;
	iAddress+=(uint)((bClass-2)*16)+1;
	ReadBytes(1,2);
	iF0Tariff=iParaWord;
	ReadBytes(1,2);
	iT0Time=iParaWord;
	// 2001-08-30 09:51 davy
	if(fCheckCall&&(bClass==3)){		// 缺省費率設置為禁撥電話 
		if((iF0Tariff==0xffff)&&(iT0Time==0xffff)){
			bClass=0;
			return;
		}								// dw 2001-08-30 10:51
	}	
	//	

	ReadBytes(1,2);
	iF1Tariff=iParaWord;
	ReadBytes(1,2);
	iT1Time=iParaWord;
	ReadBytes(1,2);
	iF2Tariff=iParaWord;
	ReadBytes(1,2);
	iT2Time=iParaWord;
	ReadBytes(1,2);
	if((iParaWord&0x8000)!=0)
		f3Plus1=0;
	else
		f3Plus1=1;
	iF3Tariff=iParaWord&0x7fff;
	ReadBytes(1,1);
	aTemp[0]=bParaByte;
	ReadBytes(1,1);
	aTemp[1]=bParaByte;
    if((aTemp[0]!=0)&&fHoliday)
    	bDayPartCode=aTemp[0];					// 是節假日,按節假日日分時段方案表
    else
    	bDayPartCode=aTemp[1];					// 不用管是否為節假日
}


bool DetectDialTone(void)
{
	byte cbToneCount=0;
	byte bTemp;
	if(!fDetectDialTone)
		return TRUE;
	
	Open(MLD);
	Delay5MS(3);
	Close(RLY);
	MD_CLK=0;									// 打開運放電源
	WriteModem(CR1,0x04);
	WriteModem(CR0,0x19);

	cbDelay5MS=160;
	fDelay5MS=0;
	while(!fDelay5MS){
		IDLE;
		IDLE;
		if(pReadNumber<pWriteNumber)
			break;
		bTemp=ReadModem(DR);
		if((bTemp&0x02)!=0)
			cbToneCount++;
		else
			cbToneCount=0;
		if(cbToneCount==40){
			ResetModem();
			Open(RLY);							// 釋放繼電器
			Delay5MS(3);
			Close(MLD);							// 釋放模擬負載
			return TRUE;
		}
	}
	ResetModem();
	Close(MLD);
	fLockRequest=1;
	IDLE;
	IDLE;
	pReadNumber=0;
	pWriteNumber=0;
	while(fLockContinue)
		IDLE;
	Delay5MS(5);
	return TRUE;
}

void NewGetDiscount(void)
{
	byte i;
	byte bNum;
	byte aTemp[2];
	byte bHour,bMinute;
	byte bDiscountPart,bWeek;
	memset(aParaBuf,100,4);
	WaitRTC();
	Page(6);
	bWeek=(XBYTE[0xc006]&0x0f)-1;
	if(bWeek==0)
		bWeek=7;						//范圍為1-7
	bHour=XBYTE[0xc004];
	bMinute=XBYTE[0xc002];
	Page(5);
	if(bDayPartCode>32)
		return;
	iAddress=NEW_DISCOUNT_ADDR;
	ReadBytes(1,2);
	iParaWord+=NEW_DISCOUNT_ADDR;
	if(iParaWord>NEW_IDD_CLASS_ADDR)
		return;
	Page(1);
	//查找日分時段方案代碼
	while(TRUE){
		i=XBYTE[iAddress];				//日分時段代碼 
		if(i==bDayPartCode)
			break;
		if(i>32){						//找不到折扣方案,則不打折
			Page(5);
			return;
		}
		iAddress+=XBYTE[iAddress+1];	//找下一個日分時段代碼
		if(iAddress>iParaWord){
			Page(5);
			return;
		}
	}
	iAddress+=2;						//指向起始星期
	//查找當前時間使用何種分時段方案
	while(TRUE){
		if(iAddress>iParaWord){
			Page(5);
			return;
		}
		aTemp[0]=XBYTE[iAddress];
		aTemp[1]=XBYTE[iAddress+1];
		if((aTemp[0]>0)&&(aTemp[1]<8)){
			if((bWeek<aTemp[0])||(bWeek>aTemp[1])){
				iAddress+=(XBYTE[iAddress+2]*3)+3;
				continue;
			}
			break;
		}
		if(aTemp[0]==0x0f)				//此方案為節假日使用,不用檢查星期
			break;
		Page(5);
		return;
	}
	iAddress+=2;
	//查找日分時段方案的折扣率方案
	bNum=XBYTE[iAddress++];
	iAddress+=(uint)(bNum*3);							//倒著判斷
	bDiscountPart=0xff;
	for(i=0;i<bNum;i++){
		iAddress-=3;
		aTemp[0]=XBYTE[iAddress];
		aTemp[1]=XBYTE[iAddress+1];
		if((bHour>aTemp[0])||
		  ((bHour==aTemp[0])&&(bMinute>=aTemp[1]))){
			bDiscountPart=XBYTE[iAddress+2];
			break;
		}
	}
	if(bDiscountPart==0xff){								// add 0301
		Page(5);
		return;
	}	
	//節假日表首址
	iAddress=iParaWord;
	ReadBytes(1,1);
	bNum=bParaByte;
	if(bNum>32)
		return;
	iAddress+=(uint)(bParaByte*8);
	//折扣率方案表首地址
	ReadBytes(1,1);
	bNum=bParaByte;
	if((bNum>32)||(bDiscountPart>bNum))		//折扣率代碼超過了折扣率數量
		return;
	for(i=0;i<bNum;i++){
		Page(1);
		if(XBYTE[iAddress]==bDiscountPart)
			break;
		iAddress+=5;
	}
	Page(5);
	if(i==bNum)
		return;								//查完了整個折扣率表,仍沒有找到相應的折扣率代碼
	iAddress++;
	ReadBytes(1,4);					//取出折扣率save in aParaBuf[]中
}


bool JudgeCallStation(void)
{
	byte i,j;
	byte aTemp[16];
	iAddress=NEW_CALLSTATION_ADDR;		//尋呼臺參數表首址
	ReadBytes(1,1);
	if(bParaByte>32)
		return 0;
	for(i=0;i<bParaByte;i++){
		//取出call臺號碼
		ReadBytes(1,8);
		for(j=0;j<8;j++){
			aTemp[2*j]=aParaBuf[j]>>4;
			aTemp[2*j+1]=aParaBuf[j]&0x0f;
		}
		if(aTemp[0]==0x0f)
			return 0;
		//判斷所撥號碼是否為Call臺號碼
		for(j=0;j<16;j++){
			if(aTemp[j]==0x0f)
				return 1;
			if(aTemp[j]!=aNumBuf[j])
				break;
		}
		//比較下一個Call臺號碼
		iAddress+=8;
	}
	return 0;
}

/*************************************************************
*
*       Function Name:  CallStation
*       Function:       call臺號碼分析
*       OutPut:         若所撥號碼為call號碼,返回 1,
*                       若所撥號碼不為call號碼,返回 0
*
*
*
**************************************************************/

void CallStation(void)
{
	byte i,j;
	byte aTemp[16];
	bool fCallCode=0;
	if((!fWorkMode)||(bStationFDLength==0)
	    ||(pWriteNumber<bStationFDLength))
		return;
	iAddress=NEW_CALLSTATION_ADDR;		//尋呼臺參數表首址
	ReadBytes(1,1);
	if(bParaByte>32)
		return;
	for(i=0;i<bParaByte;i++){
		//取出call臺號碼
		ReadBytes(1,8);
		for(j=0;j<8;j++){
			aTemp[2*j]=aParaBuf[j]>>4;
			aTemp[2*j+1]=aParaBuf[j]&0x0f;
		}
		if(aTemp[0]==0x0f)
			return;
		//判斷所撥號碼是否為call臺號碼
		for(j=0;j<16;j++){
			if(aTemp[j]==0x0f){
				fCallCode=1;
				break;
			}
			if(aTemp[j]!=aNumBuf[j])
				break;
		}
		if(fCallCode)
			break;
		//比較下一個call臺號碼
		iAddress+=8;
	}
	//為call臺號碼,則發取消碼
	if(fCallCode){
		ReadBytes(1,8);
		for(j=0;j<8;j++){
			aTemp[2*j]=aParaBuf[j]>>4;
			aTemp[2*j+1]=aParaBuf[j]&0x0f;
		}
		Close(RLY);
		Open(POWER_ON);
		//發送取消碼
		MD_CLK=0;
		Open(POWER_ON);
		WriteModem(CR1,0x00);
		WriteModem(CR0,0x1a);
		//延時后發取消碼
		if(iCancelCodeDelay>4000)
			iCancelCodeDelay=4000;
		if(iCancelCodeDelay==0)
			cbDelaySecond=1;
		else
			cbDelaySecond=(byte)(iCancelCodeDelay/200);
		j=(byte)(iCancelCodeDelay%200);
		if(j!=0)
			cbDelaySecond++;
		cbDelaySecond++;
		fDelaySecond=0;
		while(!fDelaySecond){
			for(j=0;j<16;j++){
				if(aTemp[j]==0x0f)
					break;
				if(aTemp[j]==0)
					aTemp[j]=0x0a;
				WriteModem(TR,aTemp[j]);
				WriteModem(CR0,0x1a);
				i=ReadModem(TR);
				WriteModem(TR,(i|0x10));
				Delay5MS(21);
				i=ReadModem(TR);
				WriteModem(TR,(i&0xef));
				WriteModem(CR0,0x00);
				Delay5MS(20);
			}
			Delay5MS(40);
		}
		ResetModem();
		Close(POWER_ON);
	}
}

/*************************************************************
*
*       Function Name:  DisableNumAnaly(void)
*       Function:       禁撥號碼分析
*       OutPut:         若所撥號碼為禁撥號碼,返回 1
*                       若所撥號碼為可撥號碼,返回 0
*
*
*
**************************************************************/
bool DisableNumAnaly(void)
{
    byte i,j;
    byte aTemp[8];
    iAddress=0xee00;
    for(i=0;i<8;i++){
    	ReadBytes(1,4);
        for(j=0;j<4;j++){
            aTemp[2*j]=aParaBuf[j]>>4;
            aTemp[2*j+1]=aParaBuf[j]&0x0f;
        }
        if(aTemp[0]==0x0c)
            break;
        if(memcmp(aTemp,aNumBuf,8)==0x00)
            return TRUE;
    }
    return FALSE;
}

/****************************************************************
*
*       Function Name:  GetDiscount()
*       Function:       查找當前時刻折扣率,返回之
*
*
*****************************************************************/
byte code aHMTcode[]={0,0,8,5,2,    	// HongKong Zone Code
					  0,0,8,5,3,    	// Macau Zone Code
					  0,0,8,8,6}; 		// TaiWan Zone Code

byte OldGetDiscount(void)
{
    byte i;
    byte bTemp;
    uint iTemp;
    bool fFirst=0,fDayDiscount;
	//判斷三時段設置
	AutoReadPara(51);
	if((bParaByte&0x04)!=0){ 						//三時段設置打開
		WaitRTC();
		Page(6);
		bTemp=XBYTE[0xc004];
		Page(5);
		if((bParaByte&0x10)!=0)						//新疆專用
			i=2;
		else
			i=0;
		if((bTemp>=i)&&(bTemp<(i+7))){
			switch(bIDL){
				case 1:								//國內電話三時段折扣率都為30%
					if((bParaByte&0x80)!=0){		//浙江專用,附加費固定為10
						iF1Tariff=10;
						bClass&=0xfd;				//不打折,&11111101
					}
					return(30);

				case 2:						//國際電話除港澳臺以外,三時段折扣率為60%
					fDayDiscount=1;
					for(i=0;i<3;i++){
					 	if(memcmp(&aNumBuf,&aHMTcode[5*i],5)==0x00)
							fDayDiscount=0;
					}
					if(fDayDiscount)
						return(60);
					break;

				default:							//本地電話無三時段
					break;
			}
		}
	}
    //判斷特定折扣率
    switch(bIDL){                       			//Get Out Special Discount
        case 0:
            iTemp=0xebf0;
            break;

        case 1:
            iTemp=0xebe6;
            break;

        case 2:
            iTemp=0xebdc;
            break;
    }
    fDayDiscount=0;
    fFirst=1;
	while(1){
		iAddress=iTemp;
       	ReadBytes(1,5);
	    if(fFirst&&(JudgeCC(5))){
	       	ReadBytes(1,5);							//起始 年月日均為CC的情況
	        if(JudgeCC(5)){							//起始、終止 年月日均為CC的情況
	        	aParaBuf[0]=ReadByte(iTemp+3,1);
	        	aParaBuf[1]=ReadByte(iTemp+4,1);
	        	aParaBuf[2]=ReadByte(iTemp+8,1);
	        	aParaBuf[3]=ReadByte(iTemp+9,1);
    	    	if(CheckTabSpecial())
        			fDayDiscount=1;
        		break;
	   		}
	   		fFirst=0;
	   		continue;
		}
	    if(CheckTable(5)){
	       	ReadBytes(1,5);
	        if(!CheckTable(5))
	        	fDayDiscount=1;
	    }
	    break;
	}
	if(fDayDiscount||fHoliday){						//節假日或特定折扣的情況下
	    switch(bIDL){               				//Get Out Special Discount
		    case 0:
		    	iAddress=0xebff;
		    	break;

	        case 1:
		    	iAddress=0xebfd;
		    	break;

    	    case 2:
		    	iAddress=0xebfb;
		    	break;
		}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
蜜臀久久99精品久久久久久9| 99久久精品免费看国产| 国产乱码精品一区二区三 | 亚洲黄色小说网站| 精品中文字幕一区二区| 欧美日韩久久久| 国产精品高潮久久久久无| 日本欧美韩国一区三区| 欧美天堂一区二区三区| 中文字幕在线观看一区| 国产一区日韩二区欧美三区| 欧美日韩高清不卡| 亚洲综合一二区| 不卡av免费在线观看| 国产亚洲成av人在线观看导航| 青草国产精品久久久久久| 欧美日韩一区中文字幕| 一区二区三区在线视频免费观看| 成人免费视频app| 久久综合国产精品| 国产在线视频精品一区| 精品处破学生在线二十三| 日本视频一区二区| 欧美卡1卡2卡| 蜜臀av亚洲一区中文字幕| 欧美日本韩国一区| 日韩精品视频网| 欧美一区二区观看视频| 日韩福利电影在线| 日韩欧美一区二区视频| 久久99国内精品| 精品国产免费久久| 97久久精品人人澡人人爽| 亚洲国产精品黑人久久久| 国产裸体歌舞团一区二区| 欧美成人乱码一区二区三区| 久久成人麻豆午夜电影| 久久嫩草精品久久久久| 成人av在线一区二区三区| 国产精品蜜臀在线观看| 91国产福利在线| 日韩精品福利网| 欧美r级在线观看| 国产福利91精品一区二区三区| 国产亚洲午夜高清国产拍精品| 国产激情一区二区三区| 中文字幕一区二| 欧美少妇xxx| 蜜桃久久精品一区二区| 国产午夜亚洲精品午夜鲁丝片 | 中文字幕精品一区| 色综合久久久久综合体桃花网| 亚洲欧美日韩国产综合| 91久久精品一区二区| 婷婷成人综合网| 久久综合网色—综合色88| 成人黄色av电影| 亚洲一区二区三区影院| 精品处破学生在线二十三| 99在线精品观看| 日韩av不卡在线观看| 国产亚洲欧洲997久久综合| 色婷婷综合激情| 激情综合色播五月| 一区二区在线观看视频在线观看| 欧美一区日韩一区| 成人黄色软件下载| 日本不卡视频一二三区| 国产精品久久久99| 日韩一级免费一区| 99久久伊人久久99| 麻豆国产精品官网| 亚洲视频资源在线| 欧美xxxx老人做受| 99精品视频一区二区三区| 青草av.久久免费一区| 17c精品麻豆一区二区免费| 91精品国产综合久久久久久久| 成人精品免费视频| 蜜桃视频在线观看一区| 亚洲欧美日韩国产综合| 久久久久久久国产精品影院| 欧美伦理视频网站| 99精品欧美一区| 麻豆精品在线看| 亚洲综合偷拍欧美一区色| 国产精品美女一区二区三区| 欧美一二三区在线| 91高清视频免费看| 91麻豆免费看片| 成人精品鲁一区一区二区| 久久狠狠亚洲综合| 性久久久久久久久久久久| 成人欧美一区二区三区| 欧美激情一区二区三区四区| 日韩一级高清毛片| 欧美日韩精品一二三区| 91久久一区二区| 99精品欧美一区二区三区小说 | 91精品婷婷国产综合久久竹菊| 99在线精品视频| 成人ar影院免费观看视频| 国产乱色国产精品免费视频| 青青草国产精品亚洲专区无| 亚洲国产视频a| 一区二区成人在线视频| 亚洲人成伊人成综合网小说| 中文一区二区在线观看| 日本一区二区三区电影| 久久九九99视频| 久久久久99精品一区| 国产午夜三级一区二区三| 精品国产乱码久久久久久夜甘婷婷| 91精品国产高清一区二区三区蜜臀| 精品视频一区 二区 三区| 欧美性猛交xxxx乱大交退制版| 在线一区二区视频| 欧美日韩成人高清| 欧美一区二区啪啪| 日韩精品在线看片z| 精品少妇一区二区三区在线播放| 日韩三级视频在线看| 不卡一区中文字幕| 成人av资源在线观看| 国产一区二区三区蝌蚪| 黄色日韩网站视频| 成人黄色免费短视频| heyzo一本久久综合| 日本韩国精品一区二区在线观看| 欧美日韩色一区| 欧美一区二区三区四区五区| 精品第一国产综合精品aⅴ| 国产女人aaa级久久久级| 亚洲天堂成人在线观看| 亚洲午夜在线观看视频在线| 日本欧美一区二区三区| 国产剧情一区二区| 91免费看片在线观看| 717成人午夜免费福利电影| 欧美大黄免费观看| 亚洲国产精品v| 午夜精品福利一区二区蜜股av | 91麻豆精品国产自产在线 | 樱花草国产18久久久久| 日本强好片久久久久久aaa| 国产盗摄精品一区二区三区在线| 色欲综合视频天天天| 日韩精品一区国产麻豆| 亚洲欧洲无码一区二区三区| 亚洲一区在线观看免费| 国产传媒一区在线| 欧美精品自拍偷拍| 国产精品国产三级国产有无不卡| 亚洲福利一区二区| 成人高清视频在线| 91精品欧美一区二区三区综合在 | 美女在线视频一区| 99久久精品国产观看| 日韩精品一区二区三区四区| 中文字幕一区二区三区乱码在线| 日一区二区三区| jlzzjlzz国产精品久久| 精品国产乱码久久久久久蜜臀| 亚洲美女视频在线| 国产精品一区二区x88av| 欧美三级中文字幕在线观看| 国产欧美一区视频| 免费高清视频精品| 色94色欧美sute亚洲线路一久| 久久免费视频一区| 免费成人在线网站| 欧美日韩精品三区| 亚洲精品国产a| 成人免费毛片嘿嘿连载视频| 欧美一级一区二区| 亚洲综合色在线| 99国产一区二区三精品乱码| 亚洲国产成人精品视频| 成人av电影在线观看| 国产午夜精品一区二区三区嫩草| 日韩成人av影视| 欧美精品一级二级三级| 亚洲乱码日产精品bd| av一区二区三区黑人| 国产欧美精品国产国产专区| 韩国一区二区在线观看| 欧美一区二区成人6969| 午夜久久久影院| 欧美性受极品xxxx喷水| 一区二区三区国产| 色综合天天综合网天天狠天天| 尤物视频一区二区| 成人sese在线| 中文无字幕一区二区三区| 国产盗摄一区二区| 中文字幕免费不卡在线| 不卡的av网站| 亚洲欧洲综合另类在线| 一本久久综合亚洲鲁鲁五月天| 国产精品成人一区二区三区夜夜夜|