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

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

?? jbdcomm.c

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

/***********************************************************
 *
 *	函數名:	DynamicPassword()
 *	功	能:	接收動態密碼.
 *
 **********************************************************/
bool DlpDynamicPassword(void)
{
	bPaBuf=0x00;
	bNeBuf=0x10;
	iPaNeNum=0;
	if(!DlpRxData(0x2000))
		return FALSE;
	DlpTxCmd(OK);	
	return TRUE;	
}
// End function: DlpDynamicPassQWord() 

/******************************************************
 *
 *	函數名:DlpQueryVersion()
 *	功	能:發送應用程序版本號.
 *
 ******************************************************/
bool DlpQueryVersion(void)
{
	DlpTxCmd(QUERY_VERSION);
	if(!DlpRxCmd())
		return FALSE;
	if(bRecSBUF!=OK){
		bErrorCode=0x05;
		return FALSE;
	}
	bPaBuf=VERSION_PA;				// 0x00
	bNeBuf=VERSION_NE;				// 0x0a
	if(!DlpTxPaNe())
		return FALSE;
	DlpReadData(1,PARA_50,10);		// 數據在aDataBuf[]中.
	if(!DlpTxData())
		return FALSE;	
	DlpTxCmd(EQ);					// 尋問管理機下一命令
	if(!DlpRxCmd())
		return FALSE;
	if(bRecSBUF==END){
		bErrorCode=ERR_34;
		return FALSE;
	}
	if(bRecSBUF!=DOWNLOAD_PROGRAM){
		bErrorCode=ERR_05;
		return FALSE;
	}
	return TRUE;
}
// End function: DlpQueryVersion()

/******************************************************
 *
 *	函數名:DlpSendTelNum()
 *	功	能:發送計費器本機電話號碼.
 *
 ******************************************************/
bool DlpSendTelNum(bool fSelect)
{
	byte i,bCheckSum;
	if(!fWorkMode){
		DlpReadData(1,PARA_210,4);
		for(i=0;i<4;i++)
			aParaBuf[i]=aDataBuf[i];
		for(i=0;i<4;i++){
			aDataBuf[2*i]=aParaBuf[i]>>4;
			aDataBuf[2*i+1]=aParaBuf[i]&0x0f;
		}	
	}
	else
		DlpReadData(1,PARA_02,8);
	for(i=0,bCheckSum=0;i<8;i++){
		if(!DlpTxByte(aDataBuf[i]))
			return FALSE;
		bCheckSum+=aDataBuf[i];
	}	
	if(fSelect){
		DlpTxByte(~bCheckSum);
		return TRUE;	
	}	
	else{
		DlpTxByte(bCheckSum);
		if(!DlpRxCmd())
			return FALSE;
		if(bRecSBUF!=OK){
			bErrorCode=ERR_05;
			return FALSE;
		}	
		return TRUE;	
	}	
}
// End function: DlpSendTelNum()

/***********************************************************
 *
 *
 *		函數名:DlpResetModem()
 *		功	能:初始化CML644A芯片
 *
 *
 ***********************************************************/
void DlpResetModem(void)
{
	DlpPage(7);
	XBYTE[0x8001]=0x04;
	DlpPage(5);
	MD_CLK=1;
}

/*************************************************************
 *
 *	函數名:DlpModemRead()
 *	功	能:從CML644A中由bAddr指定的寄存器中讀出字節返回
 *
 *************************************************************/
byte DlpModemRead(byte bAddr)
{
	byte i;
	DlpPage(7);
	i=XBYTE[0x8000+bAddr];
	DlpPage(5);
	return i;
}
// End function: DlpModemRead()
 
/***********************************************************
 *
 *	函數名:DlpWriteModem()
 *	功	能:將ToWrite寫入CML644A芯片TargetAddr寄存器
 *
 ***********************************************************/
void DlpWriteModem(byte tAddr,byte ToWrite)
{
	DlpPage(7);
	XBYTE[0x8000+tAddr]=ToWrite;
	DlpPage(5);
}
// End function: DlpWriteModem()

//
// 下為MODEM或UART的接收與發送函數:
//

/******************************************************************
 *
 *	函數名:DlpTxByte()			
 *	功	能:往UART或MODEM發送一個字節
 *
 ******************************************************************/
bool DlpTxByte(byte bByte)
{
	SBUF=bByte;
	while(!fTxDataReady){;}
	bLastCmd=0xff;		
	fTxDataReady=0;
	return TRUE;
}	
// End function: DlpTxByte()

/******************************************************************
 *
 *	函數名:DlpTxCmd()			
 *	功	能:發送一條命令
 *
 ******************************************************************/
void DlpTxCmd(byte bCmd)
{
	DlpFlashComm();
	DlpTxByte(bCmd);
	DlpTxByte(~bCmd);
	bLastCmd=bCmd;
}
// End function: DlpTxCmd() 
 
/******************************************************************
 *
 *	函數名:DlpRxByte()			
 *	功	能:接收一個字節
 *
 ******************************************************************/
bool DlpRxByte(void)
{
    cbDelaySecond=SLAVE_TIME_OUT;
    fDelaySecond=FALSE;
	while(TRUE){
    	if(fRxDataReady){
		    fRxDataReady=FALSE;
           	return TRUE;
        }
   	    if(fDelaySecond){
   	    	bErrorCode=ERR_02;
			return FALSE;	
		}
	}	
}
// End function: DlpRxByte()
 
/***********************************************************
 *
 *		函數名:DlpRxCmd()			
 *		功	能:接收一條命令
 *
 **********************************************************/
bool DlpRxCmd(void)
{
	bool fErrOneTime=FALSE;
	byte i,aTemp[2];
	byte bSendTimes;
	for(bSendTimes=0;bSendTimes<3;bSendTimes++){	
		for(i=0;i<2;i++){
			if(!DlpRxByte()){
				if(fErrOneTime)
					return FALSE;
				fErrOneTime=TRUE;
				i=0xff;
				continue;
			}	
			if(fFirstCmd&&(i==0)&&(bRecSBUF<0x80)){
				i=0xff;
				continue;
			}	
			aTemp[i]=bRecSBUF;
		}		
		if(aTemp[0]==~aTemp[1]){
			bRecSBUF=aTemp[0];
			if((bRecSBUF==ERR_CS)&&(bLastCmd<0x99)){
				DlpTxByte(bLastCmd);
				DlpTxByte(~bLastCmd);
				continue;
			}
			bLastCmd=0xff;	
			return TRUE;
		}
		DlpTxCmd(ERR_CS);
	}
	bErrorCode=ERR_08;	
	return FALSE;
}
// End function: DlpRxCmd()

/******************************************************************
 *
 *	函數名:DlpTxPaNe()			
 *	功	能:發送包數量Pa和剩余字節Ne
 *
 ******************************************************************/
bool DlpTxPaNe(void)		
{	
	byte i;
	for(i=0;i<3;i++){
		DlpTxByte(bPaBuf);
		DlpTxByte(bNeBuf);
		DlpTxByte((byte)(bPaBuf+bNeBuf));
		if(!DlpRxCmd())
			continue;
		if(bRecSBUF==OK)
			return TRUE;
		else if(bRecSBUF!=ERR_CS)
			break;
	}			
	return FALSE;				
}
// End function: DlpTxPaNe()

/***********************************************************
 *
 *	函數名:DlpRxData()
 *	功	能:程序下載時,Pa個數據包和Ne個剩余字節接收過程,
 *			接收到的數據存入頁面4的0x2000開始處.			
 *
 **********************************************************/
bool DlpRxData(uint iNextAddr)
{		
	bool fOneTimes;
	byte i,j,bCheckSum;
	uint iAddr=iNextAddr;
	if(iPaNeNum!=0)	
		DlpTxCmd(OK);
	while(bPaBuf!=0){
		for(i=0,fOneTimes=FALSE;i<3;i++){
			for(j=0,bCheckSum=0;j<129;j++){
				if(!DlpRxByte()){
					if((j>=1)&&
					(aDataBuf[iAddr]==ERR_CS)&&(aDataBuf[iAddr+1]==~ERR_CS)){
						aDataBuf[iAddr]=0;
						aDataBuf[iAddr+1]=0;
						DlpTxCmd(bLastCmd);
						j=0xff;
						continue;
					}	
					if(fOneTimes)
						return FALSE;							
					else{
						fOneTimes=TRUE;
						j=0xff;
						continue;
					}
				}	
				if(j<128){
					bCheckSum+=bRecSBUF;
					DlpPage(4);
					XBYTE[iAddr+j]=bRecSBUF;
					DlpPage(5);
				}	
			} // End for(j...)
			if(bCheckSum!=bRecSBUF){				//若校驗和不正確,重新發送數據
				DlpTxCmd(ERR_CS);	
				continue;
			}
			iAddr+=128;
			iAddress++;
			j=(byte)(iAddress);
			if((j&0x0f)==0x0a)
				iAddress+=6;
			j=(byte)(iAddress);
			if(j==0xa0)
				iAddress+=0x60;	
			DlpDispLP();
			if((--bPaBuf!=0)||(bNeBuf!=0))
				DlpTxCmd(OK);
			break;
		} // End for(i...)
		if(i==3){
			bErrorCode=ERR_04;
			return FALSE;
		}
	}// End while(bPaBuf!=0)		
	while(bNeBuf!=0){
		for(i=0,fOneTimes=FALSE;i<3;i++){
			for(j=0,bCheckSum=0;j<bNeBuf+1;j++){
				if(!DlpRxByte()){
					if((j>=1)&&
					(aDataBuf[iAddr]==ERR_CS)&&(aDataBuf[iAddr+1]==~ERR_CS)){
						aDataBuf[iAddr]=0;
						aDataBuf[iAddr+1]=0;
						DlpTxCmd(bLastCmd);
						j=0xff;
						continue;
					}	
					if(fOneTimes)
						return FALSE;							
					else{
						fOneTimes=TRUE;
						j=0xff;
						continue;
					}
				}
				if(j<bNeBuf){
					aDataBuf[iAddr+j]=bRecSBUF;	
					bCheckSum+=bRecSBUF;
				}
			} // End for(j...)
			if(bCheckSum!=bRecSBUF){				//若校驗和不正確,重新發送數據
				DlpTxCmd(ERR_CS);	
				continue;
			}
			return TRUE;
		} // End for(i...)
		bErrorCode=ERR_04;
		return FALSE;
	} // End while(bNeBuf!=0)	
	return TRUE;
}
// End function: DlpRxData()
 
bool DlpRxPaNe(void)
{		
	byte i,aTemp[3];
	bool fFalse=FALSE;
	byte bSendTimes=3;
	for(bSendTimes=0;bSendTimes<3;bSendTimes++){	
		for(i=0;i<3;i++){
			if(!DlpRxByte()){
				if(fFalse)
					return FALSE;
				fFalse=TRUE;
				i=0xff;
				continue;
			}
			aTemp[i]=bRecSBUF;
			if((i==1)&&(aTemp[0]==ERR_CS)&&(aTemp[1]==~ERR_CS)){
				DlpTxCmd(bLastCmd);
				i=0xff;
				continue;
			}	
		}					
		if(aTemp[2]==(byte)(aTemp[0]+aTemp[1])){
			bPaBuf=aTemp[0];
			bNeBuf=aTemp[1];
			iPaNeNum=bPaBuf*128+bNeBuf;
			return TRUE;
		}
		DlpTxCmd(ERR_CS);
	}
	bErrorCode=ERR_04;
	return FALSE;
}
// End function: DlpRxPaNe()

/******************************************************************
 *
 *	函數名:DlpTxData()			
 *	功	能:發送Pa個數據包和Ne個剩余字節。
 *
 ******************************************************************/
bool DlpTxData(void)
{
	byte i,j,bCheckSum;
	uint iAddr=0;
	while(bNeBuf!=0){
		for(i=0;i<3;i++){
			for(j=0,bCheckSum=0;j<bNeBuf;j++){
				if(!DlpTxByte(aDataBuf[iAddr+j]))
					return FALSE;
				bCheckSum+=aDataBuf[iAddr+j];
			}
			DlpTxByte(bCheckSum);
			if(!DlpRxCmd())
				continue;
			if(bRecSBUF==OK)
				break;
			else if(bRecSBUF!=ERR_CS)
				break;
		}
		if((i==3)||(bRecSBUF!=OK)){
			bErrorCode=ERR_05;
			return FALSE;
		} 
		bNeBuf=0;
	}
	return TRUE;
}
// End function: DlpTxData()

void DlpWriteOut(uint iAddr,byte bData)
{
	DlpPage(6);
	XBYTE[iAddr]=bData;
	DlpPage(5);
}	
// End function: DlpWriteOut()

void DlpOpen(byte bWhich)
{
	OutBuf|=bWhich;
	DlpWriteOut(OUT_CE,OutBuf);
}	
// End function: DlpOpen()

void DlpClose(byte bWhich)
{
	OutBuf&=~bWhich;
	DlpWriteOut(OUT_CE,OutBuf);
}	
// End function: DlpClose()

void DlpFlashComm(void)
{
	fFlash=~fFlash;
	if(fFlash)
		DlpDispSymbol(LARGE_FLASH);
	else
		DlpDispSymbol(LARGE_UNFLASH);	
}
// End function: DlpFlash()

//
// End file: jbDlpComm.c
//

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
中文字幕日韩一区| 香蕉成人伊视频在线观看| www一区二区| 日韩欧美精品在线视频| 欧美区一区二区三区| 精品婷婷伊人一区三区三| 欧美在线视频不卡| 7777精品久久久大香线蕉| 91麻豆精品久久久久蜜臀| 91精品国产高清一区二区三区 | 欧美本精品男人aⅴ天堂| 日韩欧美三级在线| 精品久久久久av影院| 2021久久国产精品不只是精品| 亚洲精品在线观看视频| 久久天天做天天爱综合色| 亚洲国产激情av| 亚洲卡通欧美制服中文| 亚洲aⅴ怡春院| 久久av中文字幕片| 国精产品一区一区三区mba视频 | 国产成人av福利| 99re这里都是精品| 欧美在线观看一区二区| 日韩一区二区三区四区| 久久蜜桃香蕉精品一区二区三区| 日本一区二区高清| 一区二区三区在线免费| 日本特黄久久久高潮| 国产一区二区在线观看视频| 大胆亚洲人体视频| 欧洲激情一区二区| 精品少妇一区二区三区视频免付费 | 欧美日韩大陆在线| 久久免费视频色| 依依成人综合视频| 精品一区二区三区欧美| 成人成人成人在线视频| 欧美日韩黄色一区二区| 欧美精品一区二区蜜臀亚洲| 1024成人网| 免费精品视频在线| bt欧美亚洲午夜电影天堂| 欧美久久一区二区| 国产精品久久综合| 免费人成在线不卡| jlzzjlzz亚洲日本少妇| 日韩欧美一级二级三级| 日韩毛片一二三区| 蜜臀精品一区二区三区在线观看| 国产91精品久久久久久久网曝门| 在线成人午夜影院| 中文字幕中文字幕一区| 久久国产精品99久久久久久老狼| 成人黄色电影在线| 日韩视频免费观看高清完整版| 国产精品热久久久久夜色精品三区| 亚洲一区二区三区激情| 国产成人夜色高潮福利影视| 777亚洲妇女| 亚洲免费在线电影| 国产福利一区二区三区视频| 欧美一区二视频| 一区二区三区久久| 国产精品资源在线| 欧美成人猛片aaaaaaa| 亚洲一区二区三区三| voyeur盗摄精品| 久久亚洲精品国产精品紫薇| 视频一区免费在线观看| 色哟哟在线观看一区二区三区| 久久免费视频色| 蜜臀av性久久久久蜜臀aⅴ| 91久久线看在观草草青青| 国产亚洲欧洲一区高清在线观看| 日韩激情在线观看| 欧美中文字幕一区二区三区亚洲| 国产蜜臀av在线一区二区三区| 美女视频一区二区三区| 欧美蜜桃一区二区三区| 悠悠色在线精品| www.一区二区| 国产精品五月天| 国产寡妇亲子伦一区二区| 日韩免费视频一区二区| 日韩精品欧美精品| 欧美日韩国产乱码电影| 一区二区三区在线视频观看| av在线这里只有精品| 欧美国产日韩亚洲一区| 国产精品系列在线播放| 精品福利一二区| 久久97超碰色| 欧美xxxxxxxx| 久久www免费人成看片高清| 91麻豆精品久久久久蜜臀| 日韩国产在线一| 欧美美女喷水视频| 亚洲h动漫在线| 欧美日韩一区不卡| 午夜精品国产更新| 欧美美女一区二区在线观看| 五月婷婷综合网| 91精品国产91热久久久做人人| 爽好多水快深点欧美视频| 欧美高清视频不卡网| 日韩中文字幕亚洲一区二区va在线 | 欧美一级片在线| 免费国产亚洲视频| 久久午夜老司机| 国产ts人妖一区二区| 国产精品久久久久久久午夜片| 成人黄色小视频| 一区二区久久久久| 欧美军同video69gay| 美女视频黄久久| 国产欧美精品一区二区色综合| 成人av电影在线观看| 成人免费在线视频| 91国产成人在线| 无码av免费一区二区三区试看 | 精品久久久久久久久久久久久久久| 麻豆久久久久久久| 久久久综合精品| 成人黄色一级视频| 亚洲午夜精品在线| 日韩欧美123| 国产91精品在线观看| 一区二区三区四区视频精品免费 | 欧美怡红院视频| 日韩精品成人一区二区三区| 久久人人97超碰com| 99久久精品国产毛片| 亚洲成a人片在线观看中文| 欧美一级艳片视频免费观看| 国产69精品久久99不卡| 亚洲一区在线看| 欧美va亚洲va在线观看蝴蝶网| 国产成人啪免费观看软件| 一区二区在线观看av| 欧美一区二区二区| eeuss鲁片一区二区三区在线看| 亚洲国产精品人人做人人爽| 久久综合色一综合色88| 91香蕉视频mp4| 久久精品国产99国产精品| 国产精品视频观看| 制服丝袜亚洲精品中文字幕| 国产sm精品调教视频网站| 亚洲成人一区二区在线观看| 久久久久久久电影| 欧美日韩综合一区| 床上的激情91.| 蜜桃视频一区二区| 一区二区三区四区亚洲| 久久久久国产精品麻豆ai换脸| 色妞www精品视频| 国内精品国产三级国产a久久| 亚洲精品自拍动漫在线| 久久久夜色精品亚洲| 精品视频在线看| 成年人网站91| 蜜桃视频免费观看一区| 亚洲欧美日韩国产手机在线 | 久久久久国产精品人| 日本道在线观看一区二区| 国产精品中文字幕欧美| 丝袜美腿成人在线| 一区二区三区在线视频观看| 国产三级三级三级精品8ⅰ区| 欧美久久一二三四区| 日本精品视频一区二区三区| 国产麻豆成人传媒免费观看| 天堂精品中文字幕在线| 亚洲人成伊人成综合网小说| 久久久久高清精品| 日韩一级黄色大片| 欧美色图免费看| 91视视频在线观看入口直接观看www| 精品一区二区三区的国产在线播放| 亚洲最色的网站| 中文字幕中文乱码欧美一区二区| 精品久久久久久久久久久久久久久久久 | 欧美三级电影在线看| 99久久精品免费精品国产| 狠狠狠色丁香婷婷综合久久五月| 亚洲成人www| 亚洲一区二区三区四区在线| 亚洲激情图片qvod| 亚洲欧美激情一区二区| 国产精品午夜免费| 欧美国产亚洲另类动漫| 国产视频亚洲色图| 久久久久国产精品人| 久久伊99综合婷婷久久伊| 日韩免费视频一区| 精品少妇一区二区三区在线视频| 欧美一区二区三区人| 欧美精品成人一区二区三区四区| 色噜噜狠狠一区二区三区果冻|