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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? jbwait.c

?? 電話PSTN線路上FSK處理軟件。。。。。。。。。
?? C
?? 第 1 頁 / 共 4 頁
字號:
	        }
        }
	} // End while(TRUE)
}
// End function: Wait()


void CheckDTMF(void)
{
	byte i;
	if(pReadNumber<3)
		return;
	if((aNumBuf[0]==0x0a)||(aNumBuf[0]>12)){
		for(i=0;i<pReadNumber+1;i++)
			aNumBuf[i]=aNumBuf[i+1];
		pReadNumber--;
	}	
	i=aNumBuf[pReadNumber];
	if((i==0x0a)||(i>12)){
		aNumBuf[pReadNumber]=0x0c;
		pReadNumber--;
	}	
}	
/*********************************************************
*
*
*		說	明:開鎖等待狀態(tài)
*
*
*
*********************************************************/

void UnLockWait(void)
{
    byte bDispStatus;
    uint iTalkRecord;
    uint iTalkLocation;
    uint iTalkPointer;
    bool fFirstKey=1;
    
	if((!fUnlockStat)||fEndLockEnable){
		bStatusWord=S_NEWLOCKWAIT;
		return;
	}	
    AutoReadPara(67);									//取話單指針 
    iTalkPointer=iParaWord;
    iTalkLocation=iTalkPointer;
    iTalkRecord=iSubTimes;
	cbFangDao=200;										//關(guān)閉防盜聯(lián)絡(luò)音
    cbRingTimes=0;
    cbRingPulseNum=0;
    pReadNumber=0;
    pWriteNumber=0;
	bDialType=0;
	Close(POWER_ON);
    if(!fDelaySecond){
    	bDispStatus=5;									//顯示話單狀態(tài)
    	fMustReport=1;
    }	
    else{
    	DispClr();
    	DispSymbol(LARGE_PHONE);
	    bDispStatus=0;
	}    
    while(TRUE){
        IDLE;
        CheckFDD();
        PowerAlarm();
		if(JudgeAutoOffHook())
			return;
		if(JudgeOffHook())
			return;
        if(fLocked){
        	fDelaySecond=1;
            bStatusWord=S_NEWLOCKWAIT;    
            return;
        }
        switch(bDispStatus){
        	case 0:							
		        DispCharge(iSubTimes,3);		//此函數(shù)沒有送顯示,其后須緊顯示函數(shù)
        		DispSymbol(LARGE_PHONE);
        		DispCharge(lSubTariff,2);
		        DispCharge(lSubTariff,0);
		        bDispStatus=6;
        		break;
        	
        	case 1:
	            DispSymbol(LARGE_UNPHONE);
                GetTalkRecord(iTalkPointer);	
                DispTalk(iTalkPointer);
                bDispStatus=4;
        		break;
        		
        	case 4:								//話單顯示狀態(tài)
        	case 5:								//話畢,話單顯示狀態(tài)
        		break;
        		
        	case 6:
        		if(fMustReport){
		            if(ReportBills())			//檢查是否要匯報話單
   				    	return;
   				}    	
        		break;
        	
        	default:
        		break;	
        }
		if(fDateUpdate){
			fDateUpdate=0;
			WriteDayTotal();					//若更新日分項合計
		}
        if(fDelaySecond&&((bDispStatus==4)||(bDispStatus==5))){
            bDispStatus=0;
            DispClr();
        }
		if(!fFirstKey){
			if(bKeyBuf==0xf0)
				fFirstKey=1;
			continue;	
		}		
		if(fKey){
			fKey=0;
        	if(bDispStatus==5){		   		  	//話畢顯示話單時,按任意鍵退出
                bDispStatus=0;					  
                DispClr();
                fFirstKey=0;
			    continue;
			}        
			switch(bKeyBuf){
				case K1:
				    if(bDispStatus==4){
				        PrintTalkRecord();
                    	fFirstKey=0;
                    }	
				    break;

				case K2:								//向前查話單
       				if(cbKey>199)
       					cbKey=150;	
                  	if(iSubTimes==0){
                   		Speaker(20);
                   		break;
                   	}	
					if(iTalkRecord!=0){
						iTalkRecord--;
		            	if((iTalkPointer--)==0)
		            		iTalkPointer=iTalkLength;	//更新查詢指針
    		        }
    		        else
		                Speaker(15);    
                  	cbDelaySecond=6;
   	               	fDelaySecond=0;
       	            bDispStatus=1;
   			        break;    
    
	       		case K3:								//向后查話單
       				if(cbKey>199)
       					cbKey=150;	
                  	if(iSubTimes==0){
                   		Speaker(20);
                   		break;
                   	}	
      	       		if(iTalkRecord<iSubTimes){
	       				iTalkRecord++;
			            if(iTalkPointer==iTalkLength)	//向后查詢話單
			                iTalkPointer=0;
		    	        else
		        	    	iTalkPointer++;    
    	            }    	
	   				if(iTalkRecord==iSubTimes)
	   				    iTalkRecord--;
		            if(iTalkPointer>=iTalkLocation){
		                iTalkPointer=iTalkLocation;
		                if(iTalkPointer==0)
		                	iTalkPointer=iTalkLength;
		                iTalkPointer--;
		                Speaker(15);    
    		        }
                    cbDelaySecond=6;
                    fDelaySecond=0;
                    bDispStatus=1;    
				    break;

				case K4:				//關(guān)鎖,進入鎖機狀態(tài)
					if(cbKey>30)
						break;
					if(bDispStatus==6)
			    		fLocked=~fLocked;
				    else if(bDispStatus==4){
				    	DispClr();
				    	bDispStatus=0;
				    }	
				    break;

				default:
				    break;
			}
	    }		
    }    
}    

void GetDayAddr(byte bDayPointer)
{
	if(fWorkMode)
        iAddress=NEW_DAYTOTAL_ADDR+((uint)(bDayPointer*21))+2;
    else
    	iAddress=OLD_DAYTOTAL_ADDR+((uint)(bDayPointer*16));
    return;
}                    

bool InComingCall(void)
{
    if((cbRingPulseNum>=5)||(cbRingTimes!=0))
    	return TRUE;
    else
    	return FALSE;
}    		

/********************************************************
*
*		函數(shù):JudgeAutoOffHook(void)
*
*		說明:判斷震鈴次數(shù)是否為自動摘機震鈴次數(shù)
*			  若是自動摘機震鈴次數(shù),則返回TRUE,否則返回FALSE
*
*
*********************************************************/

bool JudgeAutoOffHook(void)
{
    while(1){
    	if(fCallIdValid){					// 來電號碼為管理系統(tǒng)的號碼 
			if((cbRingTimes>=1)&&(ciRingHigh>30)){
				fCallIdValid=0;
				break;
			}	
			return 0;
		}		
		if(bAutoOffHookTimes==0)			// 若振鈴次數(shù)為0,就不進行自動振鈴摘機 //
			return FALSE;
    	//if(cbRingTimes>=bAutoOffHookTimes)	// 若有振鈴,判斷是否自動振鈴次數(shù)到
    	if(cbRingTimes>=2)
    		break;
    	return FALSE;
    }	
    ET2=0;
    Open(MD_CS);
    if(DetectConnectTone(2))			
		bStatusWord=S_DOWNCALL;
//	Open(POWER_ON);
	return TRUE;
}

/********************************************************
*
*		函數(shù):JudgeOffHook(void)
*
*		說明:判斷手動摘機后,是否為被叫摘機,或是否進入主叫
*			  若進入被叫或通訊程序或進入主叫程序,則返回TRUE,
*												否則返回FALSE
*
*
*********************************************************/

bool JudgeOffHook(void)
{
	if(fLockContinue)
		pWriteNumber=pReadNumber=0;
	if(!OffHook())						//若沒有摘機則返回
		return FALSE;
	if(fStartFangDao)					//是否發(fā)防盜聯(lián)絡(luò)音
		cbFangDao=0;
	
	if(InComingCall()){					//是否有震鈴
		ET2=0;			
		Open(MD_CS);	
		if(((bAutoOffHookTimes!=0)||((!fFinishFSK)&&(!fFinishDTMF))||fCallIdValid)
		   &&(DetectConnectTone(1))){
	        bStatusWord=S_DOWNCALL;
	        return TRUE;
	    }   
		bStatusWord=S_NEWSLAVECALL;
		ciiDelaySecond=1;				//不并模擬負載
		fiiDelaySecond=0;		    
	    Open(POWER_ON);    
		return TRUE;
	}
	if(fLocked){						// 若鎖機,則不能進入主叫程序
		if((InBuf&0x04)||(pReadNumber<pWriteNumber)){
		    pReadNumber=pWriteNumber=0;    
		    if((!fPluseFD)&&((bDialType&0xf0)!=0));		// 脈沖防盜打無效
		    else
	          	fLockRequest=1;
	    	bDialType=0;
        }   	
        cbFangDao=200;
        return FALSE;
	}	
	if(bOffHookDelay!=0){
		if(fDetectDialTone)
			cbDelay5MS=10;
		else	
	    	cbDelay5MS=bOffHookDelay;					// 延時防盜撥號     
    	fDelay5MS=0;
        while(!fDelay5MS){
            IDLE;
            if(OnHook())
            	return FALSE;
			if((InBuf&0x04)==0x04){	//(pReadNumber<pWriteNumber)||||(cbPulseNum>0)
				if(!fLockContinue)
					fLockRequest=1;	
				pReadNumber=0;
				pWriteNumber=0;
				//cbPulseNum=0;
				cbFangDao=200;
            	return FALSE;
            }   
        }	
    }    
   	if(fWorkMode)
   		bStatusWord=S_NEWMASTERCALL;
   	else
   		bStatusWord=S_OLDMASTERCALL;
    return TRUE;	
}

void CheckFDD(void)
{
	byte bTimeCount;
	////
	if(InComingCall())
		return;
	if(OffHook()){										// 存在摘機有效時長
		ciDelaySecond=0;
		fiDelaySecond=0;
		fDaoDa=0;
	}
	else if(fFDD)										// 要檢測并機防盜打
		fDaoDa=1;
	else
		fDaoDa=0;
	if(ciDaoDa!=360)
		return;
	
	//存在并線盜打
	MD_CLK=0;
	WriteModem(CR1,0x04);
	WriteModem(CR0,0x1a);
	WriteModem(TR,0x19); 			
	bTimeCount=90;
	if(++bTimes==3)
		bTimes=0;
	while((bTimeCount--)!=0){							// 持續(xù)發(fā)DTMF
		IDLE;
		if((bTimes==0)&&(bTimeCount==40)){
			Page(6);
   			XBYTE[RTC_CONTROLA]=0x27;            
   			XBYTE[RTC_CONTROLB]=0x1a;  
   			Page(5);          
		}	
	}
	Page(6);
  	XBYTE[RTC_CONTROLB]=0x12;
	XBYTE[RTC_CONTROLA]=0x26;            
   	Page(5);
	WriteModem(CR0,0x00);
	ResetModem();
	if(!fLockContinue)
		fLockRequest=1;	
}

/**********************************************************
*
*
*		說	明:匯報話單判斷
*
*
***********************************************************/

bool ReportBills(void)
{
	uint iReportNum;
	if((bReportWord==1)||(bReportWord==3));
	else
		return FALSE;
	AutoReadPara(69);
	if(fWorkMode){
		AutoReadPara(6);
		if((bParaByte<1)||(bParaByte>100))
			return FALSE;
		iReportNum=(uint)(bParaByte*5);	
		if(iParaWord<iReportNum)
			return FALSE;
		bCallReason=NEW_REPORT_BILLS;
	}	
	else{
		AutoReadPara(209);
		if((bParaByte<1)||(bParaByte>200))
			return FALSE;
		iReportNum=bParaByte;
		if(iParaWord<iReportNum)
			return FALSE;
		bCallReason=OLD_REPORT_BILLS;
	}	
	if((bFailTimes>=3)&&(bFailTimes<30)){		//若未成功呼叫次數(shù)大于3次,則不再上呼
		AutoReadPara(69);
		bParaByte=(byte)(iParaWord%10);
		if(bParaByte!=0)
			return FALSE;
		bFailTimes=0;	
	}		
	bStatusWord=S_UPCALL;
	return TRUE;
}    
	
/***********************************************************************
*
*
*       Function Name:  GetTalkRecord(uint)
*       Function:       Get out the Talk record from talk store area.
*						
*
*
***********************************************************************/
void GetTalkRecord(uint iTalkPointer)
{   
    byte i=0;
    byte bTemp;
	byte j;
    byte aTemp[3];
    memset(&aNumBuf,0x0c,16);
	j=0;
    if(fWorkMode){
	    iAddress=NEW_BILLS_ADDR+(iTalkPointer*NEW_BILL_LEN);
    	Page(1);
    	for(j=0;j<8;j++){
    		bTemp=XBYTE[iAddress++];
    		if(i>15)
    			continue;
    		aNumBuf[i++]=bTemp>>4;					// 從FLASH中取數(shù)據(jù)
    		if(i>15)
    			continue;
    		aNumBuf[i++]=bTemp&0x0f;				// 從FLASH中取數(shù)據(jù)
    	}
    	aTemp[0]=XBYTE[iAddress++];	
    	aTemp[1]=XBYTE[iAddress++];	
    	aTemp[2]=XBYTE[iAddress++];	
    	aTemp[1]=(aTemp[1]>>4)*10+(aTemp[1]&0x0f);	//將BCD轉(zhuǎn)換為BIN
    	aTemp[2]=(aTemp[2]>>4)*10+(aTemp[2]&0x0f);
    	iTotalTime=(uint)(aTemp[0]*3600)
    			  +(uint)(aTemp[1]*60)
    			  +aTemp[2];						//通話時長
    	ReadBytes(1,3);
    	lTotalTariff=lParaLWord;					//通話話費
    	iAddress+=9;
    	ReadBytes(1,6);
    	memcpy(&aCallTime[1],&aParaBuf,6);			//通話起始時間
    	aCallTime[0]=0x20;
    }		
    else{
    	iAddress=OLD_BILLS_ADDR+(iTalkPointer*15);  
    	Page(1);
    	if((XBYTE[iAddress]&0xf0)==0x10)
        	aNumBuf[i++]=0;
    	else if((XBYTE[iAddress]&0xf0)==0x20){
        	aNumBuf[i++]=0;
        	aNumBuf[i++]=0;        
    	}
    	aNumBuf[i++]=XBYTE[iAddress++]&0x0f;        
    	for(j=0;j<6;j++){							//取出電話號碼
    		bTemp=XBYTE[iAddress++];
    		if(i>15)
    			continue;
        	aNumBuf[i++]=bTemp>>4; 
    		if(i>15)
    			continue;
        	aNumBuf[i++]=bTemp&0x0f;    
    	}
	    //Get out the Talk time.
    	aTemp[1]=XBYTE[iAddress++];            
    	aTemp[2]=XBYTE[iAddress++]; 
    	iTotalTime=(aTemp[2]>>2)&0x3f;
    	iTotalTime+=(aTemp[1]<<6)&0xc0;
    	iTotalTime+=(uint)((aTemp[1]>>2)*256);
    	aTemp[1]=XBYTE[iAddress++];            
    	aTemp[0]=XBYTE[iAddress++];            
		lTotalTariff=((ulint)aTemp[0])+((ulint)(aTemp[1]*256))
                +((ulint)((aTemp[2]&0x03)*65536));				//話費
    	for(i=2;i<6;i++)
    		aCallTime[i]=XBYTE[iAddress++];            			//通話起始時間
    	WaitRTC();	
		Page(6);
    	aCallTime[SECOND]=aUserRTCBuf[SECOND];
    	if(aCallTime[MONTH]<=aUserRTCBuf[MONTH]){				//添入打印年份
    		aCallTime[YEARH]=aUserRTCBuf[YEARH];
    		aCallTime[YEARL]=aUserRTCBuf[YEARL];
    	}	
    	else{
    		i=aUserRTCBuf[YEARL]-1;
    		if(i==0xff)
    			i=0x99;
    		else if((i&0x0f)==0x0f)	
    			i-=6;
    		aCallTime[YEARL]=i;
    		if(i>0x99)
    			aCallTime[YEARH]=0x19;
	    	else
    			aCallTime[YEARH]=0x20;	
    	}		
    }	
    Page(5);
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
秋霞午夜av一区二区三区| 成人性生交大片免费看在线播放| 一区二区成人在线| 亚洲免费观看高清完整版在线| 国产精品你懂的在线欣赏| 国产精品久久久一区麻豆最新章节| 久久久久久久一区| 国产亚洲欧美色| 中文字幕精品—区二区四季| 国产精品不卡在线| 成人欧美一区二区三区小说| 亚洲日穴在线视频| 亚洲欧美日韩国产中文在线| 一二三四区精品视频| 亚洲国产美国国产综合一区二区| 午夜国产不卡在线观看视频| 日本中文在线一区| 激情综合色综合久久综合| 国产一区二区三区蝌蚪| 91精品久久久久久久99蜜桃| 欧美天堂一区二区三区| 色成年激情久久综合| 色婷婷综合在线| 日本福利一区二区| 欧美日韩免费高清一区色橹橹| 国产乱码精品一品二品| 日本人妖一区二区| 亚洲 欧美综合在线网络| 亚洲小说欧美激情另类| 亚洲成人激情自拍| 亚洲成a人v欧美综合天堂下载| 天天操天天综合网| 日本伊人精品一区二区三区观看方式| 午夜精品久久久久影视| 欧美aaa在线| 国产一区二区三区香蕉 | **欧美大码日韩| 久久久久久黄色| 国产女同性恋一区二区| 久久天天做天天爱综合色| 欧美成人aa大片| 欧美一区二区三区不卡| 精品久久久久久综合日本欧美| 精品国产乱码91久久久久久网站| 国产三级三级三级精品8ⅰ区| 中文字幕一区二区三区在线不卡| 亚洲激情男女视频| 国产精品久久午夜| 午夜激情一区二区| 日本美女视频一区二区| 免费成人深夜小野草| 成人免费毛片片v| 成av人片一区二区| 欧美色图第一页| 欧美xxxx老人做受| 中文字幕一区二区三区四区| 亚洲精品成人悠悠色影视| 欧美亚洲国产一区在线观看网站| 欧美福利视频一区| 国产亚洲精品精华液| 亚洲综合色视频| 久久99久久精品欧美| 色综合久久九月婷婷色综合| 欧美一卡二卡三卡| 中文字幕一区二区三区在线播放| 亚洲成a人片综合在线| 国产精品一区免费视频| 欧美视频日韩视频| 国产午夜精品一区二区三区嫩草 | 在线亚洲高清视频| 欧美一区二区观看视频| 国产精品久久久久影院| 免费观看一级特黄欧美大片| 粉嫩aⅴ一区二区三区四区| 欧美日产国产精品| 国产精品视频一二三区| 日韩国产高清在线| 91首页免费视频| 精品美女被调教视频大全网站| 日韩毛片视频在线看| 久久99精品国产.久久久久| 91官网在线观看| 欧美极品aⅴ影院| 日韩精品1区2区3区| 一本到三区不卡视频| 久久久久久久久久看片| 亚洲成av人片www| 99国内精品久久| 7777精品伊人久久久大香线蕉经典版下载| 国产麻豆91精品| 欧美群妇大交群的观看方式| 中文字幕一区二区三| 韩国精品在线观看| 777奇米四色成人影色区| 国产日产欧产精品推荐色| 亚洲成人7777| 97久久超碰精品国产| 国产精品无遮挡| 国产精品综合av一区二区国产馆| 欧美女孩性生活视频| 一区二区三区成人| av电影天堂一区二区在线| 久久这里只有精品视频网| 日韩激情一二三区| 欧美日韩一区视频| 一区二区三区色| 99久久精品国产毛片| 国产清纯白嫩初高生在线观看91| 日本va欧美va精品| 欧美日韩国产电影| 亚洲成精国产精品女| 在线观看91精品国产入口| 亚洲欧美日韩一区| 99久久婷婷国产精品综合| 中文子幕无线码一区tr| 国产成人精品三级| 久久伊99综合婷婷久久伊| 日韩国产欧美视频| 欧美军同video69gay| 色天使色偷偷av一区二区| 成人免费小视频| 成人午夜激情在线| 中文字幕亚洲电影| 91丨九色丨国产丨porny| 综合激情成人伊人| 色综合久久天天综合网| 亚洲理论在线观看| 欧美日韩一区二区电影| 亚洲成人av福利| 91精品久久久久久久99蜜桃| 日本不卡高清视频| 日韩你懂的在线观看| 国模冰冰炮一区二区| 久久久久免费观看| 成人一级片网址| 亚洲欧美电影一区二区| 成人免费毛片aaaaa**| 国产精品久久久一区麻豆最新章节| 成人综合日日夜夜| 国产精品人成在线观看免费| 99re热这里只有精品免费视频| 一区二区视频在线| 欧美日韩另类一区| 久久成人羞羞网站| 国产婷婷一区二区| 91香蕉视频黄| 亚洲v中文字幕| 精品少妇一区二区三区免费观看| 国产麻豆午夜三级精品| 国产精品色噜噜| 欧美中文一区二区三区| 青娱乐精品视频| 久久精品亚洲乱码伦伦中文| eeuss鲁片一区二区三区| 亚洲无人区一区| 精品对白一区国产伦| 成人高清免费观看| 亚洲一区二区三区四区不卡| 日韩一级黄色大片| 成人影视亚洲图片在线| 亚洲欧美激情一区二区| 精品剧情v国产在线观看在线| 成人免费视频视频| 亚洲成av人片一区二区三区| 精品久久久三级丝袜| 91蜜桃传媒精品久久久一区二区| 五月婷婷久久综合| 国产视频视频一区| 欧美最新大片在线看 | 色综合久久综合| 蜜桃视频免费观看一区| 国产精品成人午夜| 日韩欧美在线影院| 成人h版在线观看| 首页综合国产亚洲丝袜| 中文字幕国产一区二区| 在线不卡a资源高清| www.亚洲人| 极品少妇xxxx精品少妇| 亚洲午夜视频在线| 欧美国产精品久久| 日韩一区二区三区精品视频| 99久久婷婷国产综合精品| 蜜臀av一区二区在线免费观看 | 精品va天堂亚洲国产| 欧美亚洲精品一区| 99视频有精品| 国产一区欧美日韩| 亚洲高清不卡在线| 1000精品久久久久久久久| 亚洲欧美偷拍三级| 久久综合九色综合欧美就去吻| 在线视频亚洲一区| 精品一区二区在线观看| 午夜av一区二区三区| 日韩一区在线看| 日本一区二区免费在线观看视频| 欧美精品色一区二区三区| 93久久精品日日躁夜夜躁欧美| 国产精品 欧美精品|