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

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

?? gsmmodem.cpp

?? 使用gsm收發(fā)短信的方式傳遞文件
?? CPP
?? 第 1 頁(yè) / 共 5 頁(yè)
字號(hào):
  // GsmModem.cpp: implementation of the CGsmModem class.
//
//////////////////////////////////////////////////////////////////////

#include "..\stdafx.h"
#include "GsmModem.h"
//#include "configFile.h"
#include "Sms.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
#define M_GSMTYPE	2	//1為TC35	2為MC45
#ifdef _DEBUG
#undef M_GSMTYPE
#define M_GSMTYPE	1
#endif
#if(M_GSMTYPE==2)
extern "C"  void  gprs_on();
extern "C"  void  mic_on(BOOL nIsOn);
#endif
extern char g_strPhoneNum[32];
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////
//構(gòu)造函數(shù)
//////////////////////////////////////////////////////////////////////
CGsmModem::CGsmModem()
{
	//設(shè)串口為無(wú)效值
	m_hComm=INVALID_HANDLE_VALUE;
	//為解析到的短消息分配空間及初始化
	m_pShortMsgInfo=new SHORTMSGINFO;
	m_pShortMsgInfo->nMsgType=0;
	m_pShortMsgInfo->nMsgLen=0;
	m_pShortMsgInfo->pSrcPhoneNum[0]=0;
	m_pShortMsgInfo->pTime[0]=0;
	m_pShortMsgInfo->MsgData[0]=0;
	m_pShortMsgInfo->nRecInfo=0;
	//GSM關(guān)閉
	m_bIsGsmOn=0;
	m_bIsSendOver=1;
	m_nTransNum=1;

	m_nMsgCount = 0;

	//初始化變量
	for (int i = 0; i < M_MAXMSGNUMBER;i++)
	{
		m_SaveMsg[i].nCount = -1;
		m_SaveMsg[i].nFlag = -1;

		for(int j = 0;j < 10; j++)
		{
			m_SaveMsg[i].bAccess[j] = FALSE;
			m_SaveMsg[i].nLength[j] = 0;
			m_SaveMsg[i].msg[j]=NULL;
		}
		
	}
}
///////////////////////////////////////////////////////////////
//析構(gòu)函數(shù)
///////////////////////////////////////////////////////////////
CGsmModem::~CGsmModem()
{
	delete m_pShortMsgInfo;
	ClosePort();
}
//////////////////////////////////////////////////////////////////////////////////
//功能:初始化串口
//history			name			data			remark
//					wanfangjie		2003.03.05		create
//					wanfangjie		2003.04.04		添加錯(cuò)誤處理
//參數(shù)說(shuō)明:int iPort 串口的端口號(hào)(1~2)
//返回值:1 創(chuàng)建成功	0 創(chuàng)建失敗
//////////////////////////////////////////////////////////////////////////////////
int CGsmModem::InitPort(int iPort)
{
	COMMTIMEOUTS		sCommTimeouts;
	DCB					sDcb;
	char aTempPool[64];
	//如果串口開(kāi)打,關(guān)閉該串口
	if(m_hComm!=INVALID_HANDLE_VALUE)
	{
		CloseHandle(m_hComm);
		m_hComm=INVALID_HANDLE_VALUE;
	}
	//創(chuàng)建串口,獲取串口句柄
	m_hComm = CreateFile(_T("COM1:"),	
					     GENERIC_READ | GENERIC_WRITE,	// read/write types
					     0,								// comm devices must be opened with exclusive access
					     NULL,							// no security attributes
					     OPEN_EXISTING,					// comm devices must use OPEN_EXISTING
					     0,								// sync I/O
					     NULL);							// template must be 0 for comm devices
	
	if (m_hComm == INVALID_HANDLE_VALUE)
	{
		strcpy(aTempPool,"為GSM創(chuàng)建串口錯(cuò)");
		return 0;
	}
	//設(shè)串口讀寫緩沖區(qū)
	SetupComm(m_hComm,1024,1024);	

	// 設(shè)置時(shí)間超時(shí)值
	// readfile function using "MAXDWORD" can return fleetly.
	sCommTimeouts.ReadIntervalTimeout = MAXDWORD;
	sCommTimeouts.ReadTotalTimeoutMultiplier = 10;
	sCommTimeouts.ReadTotalTimeoutConstant = 1000;
	sCommTimeouts.WriteTotalTimeoutMultiplier = 10;
	sCommTimeouts.WriteTotalTimeoutConstant = 1000;
	
	//設(shè)置時(shí)間超時(shí)
	if(SetCommTimeouts(m_hComm, &sCommTimeouts)==NULL)
	{
		strcpy(aTempPool,"為GSM設(shè)置時(shí)間超時(shí)錯(cuò)");
		return 0;
	}
	//串口配置
	GetCommState(m_hComm, &sDcb);
	//set dcb structure
	sDcb.fRtsControl = RTS_CONTROL_ENABLE;		// set RTS bit high!
	sDcb.DCBlength = sizeof( DCB ) ;
	sDcb.BaudRate = 9600;   
	sDcb.ByteSize = 8;
	sDcb.fParity = 0;
	//在同步方式下,停止位必須為0
	sDcb.StopBits = 0;
	if(!SetCommState(m_hComm, &sDcb))
	{
		strcpy(aTempPool,"為GSM設(shè)置串口配置錯(cuò)");
		return 0;	
	}
	// 清除串口
	PurgeComm(m_hComm, PURGE_RXCLEAR | PURGE_TXCLEAR | PURGE_RXABORT | PURGE_TXABORT);
	return 1;
}
///////////////////////////////////////////////////////////////////////
//功能:清串口緩沖區(qū)
//history			name			data			remark
//					wanfangjie		2002.09.23		create
//參數(shù)說(shuō)明	int itype	0 清讀緩沖區(qū)
//						1 清寫緩沖區(qū)
//						2 清讀寫緩沖區(qū)
///////////////////////////////////////////////////////////////////////
void CGsmModem::ClearCommBuf(int iType)
{
	switch(iType)
	{
	case 0:
		PurgeComm(m_hComm,PURGE_RXCLEAR);
		break;
	case 1:
		PurgeComm(m_hComm,PURGE_TXCLEAR);
		break;
	case 2:
		PurgeComm(m_hComm,PURGE_TXCLEAR|PURGE_RXCLEAR);
		break;
	default:
		PurgeComm(m_hComm,PURGE_TXABORT|PURGE_RXABORT|PURGE_TXCLEAR|PURGE_RXCLEAR);
	}
}
///////////////////////////////////////////////////////////////////////
//功能:寫串口
//history			name			data			remark
//					wanfangjie		2002.09.18		create
//返回值:1 成功	0 失敗
///////////////////////////////////////////////////////////////////////
int CGsmModem::WriteDataToPort(const char *pWritePool, long nWriteLen)
{
	BOOL nReturn=0;
	DWORD nRealLen=0;
	if (m_hComm == INVALID_HANDLE_VALUE)
	{
		return 0;
	}
	////清除寫緩沖區(qū)
	ClearCommBuf(1);
	nReturn=WriteFile(m_hComm,pWritePool,nWriteLen,&nRealLen,NULL);
	return nReturn;
}
///////////////////////////////////////////////////////////////////////
//功能:讀串口
//history			name			data			remark
//					wanfangjie		2002.09.18		create
//參數(shù)說(shuō)明:char *pReadPool	返回串口中的內(nèi)容
//			long nReadLen	要讀的長(zhǎng)度
//			BOOL bIsClearBuf	是否清除讀的緩存
//返回值:非0實(shí)際讀的長(zhǎng)度	0 失敗
///////////////////////////////////////////////////////////////////////
int CGsmModem::ReadDataFromPort(char *pReadPool, long nReadLen,BOOL bIsClearBuf)
{
	BOOL nReturn=0;
	DWORD nRealLen=0;
	if (m_hComm == INVALID_HANDLE_VALUE)
	{
		return 0;
	}
	nReturn=ReadFile(m_hComm,pReadPool,nReadLen,&nRealLen,NULL);
	//讀成功
	if(nRealLen)
	{
		pReadPool[nRealLen]=0;
	}
	if(bIsClearBuf)
	{
		ClearCommBuf(0);//清除讀緩沖區(qū)
	}
	return nRealLen;
}
///////////////////////////////////////////////////////////////////////
//功能:等待串口的事件
//history		name			data			remark
//				wanfangjie		2002.09.20		create
//				wanfangjie		2002.10.10		把返回值由布爾類型改為整型
//參數(shù)說(shuō)明	iEventType	0表示不需要等待事件,立即判斷事件是否出現(xiàn)
//						1表示等待事件,直到事件的出現(xiàn)	
//返回值:非0 表示事件出現(xiàn)	0 事件沒(méi)出現(xiàn)
///////////////////////////////////////////////////////////////////////
int CGsmModem::GetCommEvent(int iEventType)
{
	int bResult=0;
	COMSTAT comStat;
	DWORD dEvtMask;
	DWORD dwError=0;
	if (m_hComm == INVALID_HANDLE_VALUE)
	{
		return 0;
	}
	switch(iEventType)
	{
	case 0:
		ClearCommError(m_hComm, &dwError, &comStat);
		if(comStat.cbInQue!=0)
		{
			bResult=comStat.cbInQue;
		}
		break;
	case 1:
		//設(shè)置的事件為接受緩沖區(qū)出現(xiàn)字符
		SetCommMask(m_hComm,EV_RXCHAR);
		bResult =WaitCommEvent (m_hComm, &dEvtMask, 0);
		break;
	default:
		break;
	}
	return bResult;
}
//////////////////////////////////////////////////////////////////////////////////////
//功能:初始化GSM
//history		name			data			remark
//				wanfangjie		2002.09.20		create
//				wanfangjie		2003.04.04		添加錯(cuò)誤處理及信號(hào)的強(qiáng)弱
//返回值:0,初始化失敗,1初始化成功
///////////////////////////////////////////////////////////////////////
int CGsmModem::InitGsm()
{
	int nBufLen;
	m_bIsGsmOn=0;
	//打開(kāi)GSM
#if(M_GSMTYPE==2)
//	gprs_on();
#endif
	//判斷串口是否打開(kāi)
	if(m_hComm==INVALID_HANDLE_VALUE)
	{
		//調(diào)用打開(kāi)串口函數(shù)
		int n = InitPort(1);
		if(n==0)
		{
			int iii = 0;//AfxMessageBox(_T("初始化串口錯(cuò)"));
		}
	}
	//測(cè)試模塊是否正確與連接
	ClearCommBuf(0);
	SendATCmd("AT\r");
	nBufLen=GetCommEvent(0);
	if(nBufLen>0)
	{
		ReadDataFromPort(m_pReadPool,nBufLen,1);
		if((m_pReadPool[0]==M_ERROR)&&strstr(m_pReadPool,"OK")==NULL)
		{
//			AfxMessageBox(_T("通訊模塊壞"));
			return 0;
		}
	}
	else
	{
//		AfxMessageBox(_T("通訊模塊未開(kāi)機(jī)"));
		return 0;
	}
	//掛機(jī)
	SendATCmd("ATH\r");
	//取消命令回顯
	SendATCmd("ATE0\r");
	//設(shè)置結(jié)果碼的顯示方式為字符形式
	SendATCmd("ATV1\r");
	SendATCmd("AT^SNFS=1\r");

	ClearCommBuf(0);
	//設(shè)置短信格式(pdu),文本方式
	SendATCmd("AT+CMGF=0\r");

	nBufLen=GetCommEvent(0);
	if(nBufLen>0)
	{
		ReadDataFromPort(m_pReadPool,nBufLen,1);
	}
	//新短信提示
	SendATCmd("AT+CNMI=1,1,0,0,1\r");
	ClearCommBuf(0);
	int x = M_GSMTYPE;
#if(M_GSMTYPE==2)
	SendATCmd("AT^SNFS=2\r");
	SendATCmd("AT^SAIC=2,2,3\r");
	DelayTimer(300);
#endif
#ifndef _SIEMENS
	SendATCmd("AT*E2EAMS=9,2\r");
	SendATCmd("AT*E2EAMS=10,2\r");
	SendATCmd("AT*E2EAMS=255\r");
	SendATCmd("AT*ECAM=1\r");
	SendATCmd("AT+cpms=\"me\",\"me\",\"me\"\r");
	SendATCmd("AT+cnmi=3,1\r");
	SendATCmd("AT&W\r");
#endif
	//刪除所有短消息
	DeleteAllMsg();
	//GSM已打開(kāi)
	m_bIsGsmOn=1;
	return 1;
}
////////////////////////////////////////////////////////////////////////////
//功能:把數(shù)據(jù)組織成短消息的格式
//history		name		data		remark
//				wanfangjie	2003.03.20	創(chuàng)建
//				wanfangjie	2003.04.03	從VC下移植到VCE
//				wanfangjie	2003.04.14	添加邊界條件處理
//				wanfangjie	2003.05.08	添加處理發(fā)送中英短消息的情況
//				wanfangjie	2003.09.04	更改函數(shù)名,把SendMsg改為OrganizeMsg
//				wanfangjie	2003.09.17	添加參數(shù) int nIsUnicode
//參數(shù)說(shuō)明	char *pData 發(fā)送的數(shù)據(jù)
//			char *pPhoneNum 電話號(hào)碼
//			int nDataLen 數(shù)據(jù)的長(zhǎng)度 小于140
//			int nMsgType 消息類型	0x00	文本短消息
//									0x08	UCS2格式
//									0x15	數(shù)據(jù)格式
//			int nIsUnicode	是否為UNICODE代碼
//返回值:	1發(fā)送成功
//			0發(fā)送失敗
/////////////////////////////////////////////////////////////////////////////
int CGsmModem::OrganizeMsg(char *pData, const char *pPhoneNum,int nDataLen, int nMsgType,int nIsUnicode)
{
	char pAtCmd[64];
	int nShortMsgLen=0;
	int nPduLen=0;
	int iPoolLen=0;
	char aTempPool[64];
	char aPhoneNum[32];
	unsigned char ucDataLen=0;
	char *pTempPool;
	unsigned short *pUnicode;
	char cPhoneLen=0;
	
	strcpy(aPhoneNum,pPhoneNum);
	if(nDataLen>140)
	{
		nDataLen=140;
	}
	ucDataLen=(unsigned char)nDataLen;
	//判斷GSM是否打開(kāi)
	//IsGsmOn();
	if(m_bIsGsmOn==0)
	{
		if(InitGsm()==0)
		{
			return 0;
		}
	}

	//判斷信號(hào)的質(zhì)量
	if(GsmSignalQuality()<3)
	{
		strcpy(aTempPool,"信號(hào)質(zhì)量差");
//		AfxMessageBox(_T("信號(hào)不好,發(fā)送失敗"));
		return 0;
	}
	//開(kāi)空間
	pTempPool=new char[1024];
	if(pTempPool==NULL)
	{	strcpy(aTempPool,"內(nèi)存錯(cuò)在SendMsg內(nèi)");
		return 0;
	}

	pUnicode=new unsigned short[1024];
	if(pUnicode==NULL)
	{
		delete []pTempPool;
		strcpy(aTempPool,"內(nèi)存錯(cuò)在SendMsg內(nèi)");
		return 0;
	}

	//服務(wù)中心號(hào)碼從SIM卡中讀出
	strcpy(m_pWritePool,"00");
	//FO PDU第一字節(jié),典型值為04H為接受,11H為發(fā)送
	strcat(m_pWritePool,"11");
	//MR(消息參考號(hào)碼),一般設(shè)為00
	strcat(m_pWritePool,"00");
	//目標(biāo)地址
	//國(guó)內(nèi)號(hào)碼,取電話號(hào)碼的長(zhǎng)度
	cPhoneLen=(char)strlen(aPhoneNum);
	//變?yōu)殡p字節(jié)
	m_cGSMProtocol.ByteToTwoCharacter(&cPhoneLen, pTempPool,1);
	strcat(m_pWritePool,pTempPool);
	//81國(guó)內(nèi)碼,91為國(guó)際碼,若設(shè)為國(guó)際碼,號(hào)碼位數(shù)為0D多86
	strcat(m_pWritePool,"81");
	//把電話號(hào)碼轉(zhuǎn)化為PDU格式
	m_cGSMProtocol.PhoneNumToPduNum(aPhoneNum,pTempPool,strlen(aPhoneNum));
	strcat(m_pWritePool,pTempPool);
	//PID協(xié)議標(biāo)志
	strcat(m_pWritePool,"00");
	
	switch(nMsgType)
	{
	case 0x08://中文短消息
		strcat(m_pWritePool,"08");
		//在VC下把ANSI轉(zhuǎn)化為UNICODE
		if(nIsUnicode)
		{
			memcpy((char*)pUnicode,pData,nDataLen);
		}
		else
		{	
//			MultiByteToWideChar(CP_ACP,MB_PRECOMPOSED,pData,-1, pUnicode,140);
//			nDataLen=wcslen(pUnicode)*2;
			int nLen = MultiByteToWideChar(936,MB_PRECOMPOSED,pData,nDataLen, pUnicode,140);
			nDataLen = nLen*2;
			if(nDataLen>140)
			{
				nDataLen=140;
			}
			ucDataLen=(unsigned char)nDataLen;
		}
		m_cGSMProtocol.InterchangeByteInWord((char*)pUnicode, pData,nDataLen);
		break;
	case 0x15://數(shù)據(jù)
		strcat(m_pWritePool,"15");
		break;
	default://數(shù)據(jù)處理
		strcat(m_pWritePool,"15");
		break;
	}
	//有效時(shí)間
	strcat(m_pWritePool,"a7");
	//消息長(zhǎng)度為轉(zhuǎn)化為字符
	m_cGSMProtocol.ByteToTwoCharacter((char*)&ucDataLen,pTempPool,sizeof(unsigned char));
	strcat(m_pWritePool,pTempPool);
	//數(shù)據(jù)轉(zhuǎn)化為字符
	m_cGSMProtocol.ByteToTwoCharacter(pData, pTempPool,ucDataLen);
	strcat(m_pWritePool,pTempPool);
	
	//計(jì)算數(shù)據(jù)包的長(zhǎng)度
	nShortMsgLen=strlen(m_pWritePool);
	nPduLen=nShortMsgLen/2-1;
	//短消息結(jié)束標(biāo)志Ctrl+Z
	m_pWritePool[nShortMsgLen++]=0x1a;
	//把nPduLen轉(zhuǎn)化為字符串
	m_cGSMProtocol.ThirdDigitNumToCharacter(nPduLen,pTempPool);

	//發(fā)送短消息的命令
	strcpy(pAtCmd,"AT+CMGS=");
	strcat(pAtCmd,pTempPool);
	strcat(pAtCmd,"\r");
	SendATCmd(pAtCmd);
	iPoolLen=GetCommEvent(0);
	if(iPoolLen>0)
	{

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99精品久久免费看蜜臀剧情介绍| 亚洲成人免费电影| 国产成人精品一区二| 久久久久国产精品麻豆| 国产精品一区二区男女羞羞无遮挡| 精品少妇一区二区三区视频免付费| 美女爽到高潮91| 欧美精品一区二区三区久久久| 国产精品亚洲成人| 中文字幕在线一区| 91久久精品网| 日本一区中文字幕| 国产区在线观看成人精品| av在线一区二区三区| 亚洲一区二区欧美激情| 日韩欧美自拍偷拍| 成人黄色在线看| 亚洲国产视频一区| 亚洲精品在线一区二区| 国产成人精品免费看| 亚洲欧美激情在线| 欧美一级片免费看| 粉嫩av一区二区三区粉嫩| 亚洲综合在线第一页| 日韩一区二区三区免费看 | 欧美伊人久久大香线蕉综合69 | 日本 国产 欧美色综合| 26uuu国产电影一区二区| 99精品在线免费| 午夜精品久久久久久久久久| 精品国产精品网麻豆系列| 97se亚洲国产综合在线| 秋霞电影网一区二区| 中文字幕欧美一区| 91精品国产综合久久精品性色| 国产成人免费9x9x人网站视频| 亚洲香肠在线观看| 久久久久久久久伊人| 欧美日韩综合在线| 成人精品电影在线观看| 日韩福利电影在线观看| 亚洲视频在线一区| 久久精品视频免费观看| 欧美日韩国产一二三| 9人人澡人人爽人人精品| 秋霞影院一区二区| 一区二区三区日韩在线观看| 免费日本视频一区| 亚洲你懂的在线视频| 久久亚洲春色中文字幕久久久| 欧美专区在线观看一区| 国产成人精品网址| 老司机精品视频一区二区三区| 亚洲欧美成aⅴ人在线观看| 久久亚洲免费视频| 日韩三级伦理片妻子的秘密按摩| 91影视在线播放| 国产一区二区三区久久悠悠色av| 图片区小说区区亚洲影院| 亚洲三级小视频| 国产精品日韩精品欧美在线| 精品国一区二区三区| 欧美高清性hdvideosex| 欧美性极品少妇| 色先锋资源久久综合| 丁香天五香天堂综合| 国产在线精品不卡| 久久福利资源站| 日韩成人一区二区三区在线观看| 亚洲一区二区三区四区五区中文| 亚洲视频一二三区| 国产精品久久久久三级| 久久久久久黄色| 国产欧美精品在线观看| 久久久久久久精| 国产欧美日韩在线视频| 国产清纯美女被跳蛋高潮一区二区久久w| 欧美一级久久久| 欧美mv和日韩mv国产网站| 日韩精品一区二区三区老鸭窝| 91精品国产一区二区人妖| 欧美久久一区二区| 538在线一区二区精品国产| 欧美久久久久免费| 日韩午夜av一区| 精品久久人人做人人爽| 欧美α欧美αv大片| 精品999在线播放| 久久先锋资源网| 久久精品亚洲麻豆av一区二区| 国产日韩视频一区二区三区| 国产亚洲欧美日韩日本| 亚洲欧美在线另类| 亚洲五月六月丁香激情| 日韩福利电影在线观看| 狠狠色狠狠色综合日日91app| 国产一区二区精品久久99| 成人天堂资源www在线| 91亚洲精品久久久蜜桃网站| 在线视频国产一区| 5月丁香婷婷综合| 精品成人在线观看| 国产精品不卡在线| 亚洲高清视频在线| 精品一区二区三区欧美| 91在线精品秘密一区二区| 欧美性高清videossexo| 欧美一区二区三级| 欧美激情中文字幕一区二区| 亚洲人成伊人成综合网小说| 亚洲成av人在线观看| 精品亚洲porn| 91视频你懂的| 欧美一区二区日韩一区二区| 国产精品视频麻豆| 日日夜夜精品视频免费| 福利一区福利二区| 欧美伊人久久大香线蕉综合69| 精品日韩欧美一区二区| 亚洲免费成人av| 国产在线麻豆精品观看| 在线视频一区二区三区| 久久久久久久久蜜桃| 亚洲一区二区三区不卡国产欧美| 精品夜夜嗨av一区二区三区| 91影院在线免费观看| 精品国产免费一区二区三区四区| 亚洲视频在线观看一区| 精彩视频一区二区三区| 中文字幕一区在线观看视频| 天堂在线亚洲视频| 成人一区二区三区在线观看| 538在线一区二区精品国产| 1区2区3区欧美| 极品销魂美女一区二区三区| 色又黄又爽网站www久久| 久久精品视频网| 麻豆精品国产91久久久久久| 色老汉一区二区三区| 国产亚洲欧美在线| 美女任你摸久久| 欧美日韩美女一区二区| 中文字幕一区二区三中文字幕| 久久精品国产99国产精品| 欧美综合久久久| 自拍偷在线精品自拍偷无码专区| 国产一区二区三区av电影| 欧美一级电影网站| 亚洲福利视频导航| 色久优优欧美色久优优| 中文字幕欧美激情| 国产精品一区免费视频| 欧美电视剧在线看免费| 日本视频在线一区| 欧美日韩综合在线免费观看| 一区二区三区在线视频免费观看| 福利电影一区二区| 亚洲国产精品激情在线观看| 国产精品综合av一区二区国产馆| 欧美一区二区三区四区视频| 天堂一区二区在线免费观看| 欧美午夜电影一区| 亚洲宅男天堂在线观看无病毒| 一本一道波多野结衣一区二区| 国产精品三级久久久久三级| 丁香啪啪综合成人亚洲小说| 国产欧美日韩在线| 成人中文字幕合集| 中文字幕精品在线不卡| 成人蜜臀av电影| 1000精品久久久久久久久| av电影天堂一区二区在线| 亚洲欧洲无码一区二区三区| 99re热这里只有精品视频| 亚洲精品视频在线观看免费| 91蜜桃网址入口| 亚洲宅男天堂在线观看无病毒| 欧美三级午夜理伦三级中视频| 亚洲国产精品久久艾草纯爱| 欧美日韩情趣电影| 美女网站视频久久| 久久久久久亚洲综合| 成人免费观看男女羞羞视频| 亚洲人成精品久久久久| 欧美在线观看视频一区二区| 视频一区二区中文字幕| 日韩精品综合一本久道在线视频| 理论电影国产精品| 国产精品天天看| 欧美性生活影院| 美女视频一区在线观看| 国产日韩欧美麻豆| 一本色道久久综合亚洲91| 亚洲电影在线播放| 日韩欧美亚洲另类制服综合在线| 国产激情偷乱视频一区二区三区 | 欧美性大战xxxxx久久久| 丝袜诱惑制服诱惑色一区在线观看 | 亚洲第四色夜色| 日韩丝袜美女视频|