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

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

?? mainfrm.cpp

?? 對(duì)Motorola的手機(jī)模塊
?? CPP
?? 第 1 頁(yè) / 共 3 頁(yè)
字號(hào):
// MainFrm.cpp : implementation of the CMainFrame class
//

#include "stdafx.h"
#include "smsinterface.h"
#include "MainFrm.h"
#include "LeftView.h"
#include "smsinterfaceView.h"
#include "SmsDelView.h"
#include "SmsEditView.h"
#include "SmsSetView.h"
#include "SimpinDlg.h"
#include <afx.h>
#include "ReadSMDlg.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CMainFrame

IMPLEMENT_DYNCREATE(CMainFrame, CFrameWnd)

BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd)
	//{{AFX_MSG_MAP(CMainFrame)
	ON_WM_CREATE()
	ON_MESSAGE(WM_COMM_RXCHAR, OnReceive)
	ON_MESSAGE(WM_ATCOMM_RECEIVED, OnGetAck)
	ON_WM_TIMER()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

static UINT indicators[] =
{
	ID_SEPARATOR,           // status line indicator
	ID_INDICATOR_CAPS,
	ID_INDICATOR_NUM,
	ID_INDICATOR_SCRL,
};

/////////////////////////////////////////////////////////////////////////////
// CMainFrame construction/destruction

CMainFrame::CMainFrame()
{
	// TODO: add member initialization code here
	RegisterWindowMessage("WM_SENDFORM");
	RegisterWindowMessage("WM_DELFORM");
	RegisterWindowMessage("WM_EDITFORM");
	RegisterWindowMessage("WM_SETFORM");
	curcommand.Empty();
	precommand.Empty();
	ch1=0x0d;
	ch2=0x0a;
	endflag=_T("OK");
	endflag.Insert(0,ch1);
	endflag.Insert(1,ch2);
	endflag.Insert(5,ch1);
	endflag.Insert(6,ch2);
	errorE=_T("+CME ERROR:");
	errorE.Insert(0,ch1);
	errorE.Insert(1,ch2);
	errorS=_T("+CMS ERROR:");
	errorS.Insert(0,ch1);
	errorS.Insert(1,ch2);	
	/////////////////////////////////////////////////////////////////////////
	CFile gfile;
	CFileException e;
	if( !gfile.Open( "e:/smsinterface/serverphone.dat", CFile::modeReadWrite, &e ) )
	{
	#ifdef _DEBUG
	     afxDump << "File could not be opened " << e.m_cause << "\n";
	#endif
	return;
	}
	else
	{
	unsigned char ch;
	int result;
	result=gfile.Read(&ch,1);
	servercenterphone.Empty();
	while(result)
	{
		if(ch!=0xff)
		{
			servercenterphone.Insert(100,ch);
			
		}
		else
			break;
		result=gfile.Read(&ch,1);
	}
	gfile.Close();
	//servercenterphone=_T("86")+servercenterphone;

	/////////////////////////////////////////////////////////////////////////
	m_chChecksum1=0;  //校驗(yàn)和置0
	m_chChecksum2=0;
	m_nRXErrorCOM1=0;   //COM1接收數(shù)據(jù)錯(cuò)誤幀數(shù)置0
	m_nRXErrorCOM2=0;   //COM2接收數(shù)據(jù)錯(cuò)誤幀數(shù)置0
	m_nRXCounterCOM1=0;   //COM1接收數(shù)據(jù)錯(cuò)誤幀數(shù)置0
	m_nRXCounterCOM2=0;   //COM2接收數(shù)據(jù)錯(cuò)誤幀數(shù)置0
	m_strRXhhCOM1.Empty();  //清空半BYTE校驗(yàn)hh存儲(chǔ)變量
	m_strRXhhCOM2.Empty();
	if (m_ComPort.InitPort(this,1,9600,'N',8,1,EV_RXFLAG | EV_RXCHAR,512))
	{
		//SetTimer(1,1000,NULL);   //設(shè)置定時(shí)器,1秒后發(fā)送數(shù)據(jù)
		//////////////////////////////////////////////////////
		m_pbnamemaxlen=0;
		m_pbphonemaxlen=0;
		m_pbdindex=0;
		m_pbsindex=0;
		m_pbtotalloc=0;
		m_pbusedloc=0;
		m_strcommand=_T("AT*P1");
		m_strcommand.Insert(6,ch1);
		SendString(m_strcommand);
		m_commandtype=AT_COMMAND_AT;
		curcommand=m_strcommand;
		m_ComPort.StartMonitoring();   //啟動(dòng)串口監(jiān)視線程
	}
	else
	{
		CString str;
		str.Format("COM%d 沒(méi)有發(fā)現(xiàn),或被其它設(shè)備占用",1);
		AfxMessageBox(str);
	}
	}
}

CMainFrame::~CMainFrame()
{
	CFile gfile;
	CFileException e;
	if( !gfile.Open( "e:/smsinterface/serverphone.dat", CFile::modeCreate|CFile::modeWrite, &e ) )
	{
	#ifdef _DEBUG
	     afxDump << "File could not be opened " << e.m_cause << "\n";
	#endif
	return;
	}
	else
	{
	unsigned char ch;
	int result;
	CString scp;
	ch=0xff;
	scp=servercenterphone;
	scp.Insert(100,ch);
	gfile.Write(scp,scp.GetLength());
	gfile.Close();
	m_ComPort.StopMonitoring();
	}
}

int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
	if (CFrameWnd::OnCreate(lpCreateStruct) == -1)
		return -1;

	if (!m_wndStatusBar.Create(this) ||
		!m_wndStatusBar.SetIndicators(indicators,
		  sizeof(indicators)/sizeof(UINT)))
	{
		TRACE0("Failed to create status bar\n");
		return -1;      // fail to create
	}

	return 0;
}

BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT /*lpcs*/,
	CCreateContext* pContext)
{
	// create splitter window
	if (!m_wndSplitter.CreateStatic(this, 1, 2))
		return FALSE;

	if (!m_wndSplitter.CreateView(0, 0, RUNTIME_CLASS(CLeftView), CSize(100, 100), pContext) ||
		!m_wndSplitter.CreateView(0, 1, RUNTIME_CLASS(CSmsinterfaceView), CSize(100, 100), pContext))
	{
		
		m_wndSplitter.DestroyWindow();
		return FALSE;
	}
	m_pContext=pContext;
	m_currentwindow=SENDFORM;
	return TRUE;
}

BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
	if( !CFrameWnd::PreCreateWindow(cs) )
		return FALSE;
	// TODO: Modify the Window class or styles here by modifying
	//  the CREATESTRUCT cs

	return TRUE;
}

/////////////////////////////////////////////////////////////////////////////
// CMainFrame diagnostics

#ifdef _DEBUG
void CMainFrame::AssertValid() const
{
	CFrameWnd::AssertValid();
}

void CMainFrame::Dump(CDumpContext& dc) const
{
	CFrameWnd::Dump(dc);
}

#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// CMainFrame message handlers


LRESULT CMainFrame::DefWindowProc(UINT message, WPARAM wParam, LPARAM lParam) 
{
	// TODO: Add your specialized code here and/or call the base class
	if((message==WM_SENDFORM)&&(wParam!=1))
	{
		m_wndSplitter.DeleteView(0, 1);
		m_wndSplitter.CreateView(0, 1, 
		RUNTIME_CLASS(CSmsinterfaceView), 
		CSize(0, 0), 
		NULL);
		m_wndSplitter.RecalcLayout();
		/*
		m_currentwindow=SENDFORM;
		m_strcommand.Empty();
		m_strcommand=_T("AT+CPBS=");
		m_strcommand.Insert(20,'"');
		m_strcommand+=_T("SM");
		m_strcommand.Insert(30,'"');
		m_strcommand.Insert(30,ch1);
		m_commandtype=AT_COMMAND_ATCPBS;
		SendString(m_strcommand);
		precommand=curcommand;
		curcommand=m_strcommand;*/
		m_wndSplitter.SetActivePane(0,1,NULL);
		(this->GetActiveView())->PostMessage(WM_GETPHONEBOOKLIST,0,0);
			
	}
	if((message==WM_DELFORM)&&(wParam!=2))
	{
		m_wndSplitter.DeleteView(0, 1);
		m_wndSplitter.CreateView(0, 1, 
		RUNTIME_CLASS(CSmsDelView), 
		CSize(0, 0), 
		NULL);
		m_wndSplitter.RecalcLayout();
		m_currentwindow=DELFORM;
		m_strcommand.Empty();
		m_strcommand=_T("AT+CMGL");
		m_strcommand.Insert(30,ch1);
		m_commandtype=AT_COMMAND_ATCMGLTOTOAL;
		SendString(m_strcommand);
		precommand=curcommand;
		curcommand=m_strcommand;
		m_isfirstlist=1;
	}
	if((message==WM_EDITFORM)&&(wParam!=3))
	{
		m_wndSplitter.DeleteView(0, 1);
		m_wndSplitter.CreateView(0, 1, 
		RUNTIME_CLASS(CSmsEditView), 
		CSize(0, 0), 
		NULL);
		m_wndSplitter.RecalcLayout();
		m_currentwindow=EDITFORM;
		/*
		m_strcommand.Empty();
		m_strcommand=_T("AT+CPBS=");
		m_strcommand.Insert(20,'"');
		m_strcommand+=_T("SM");
		m_strcommand.Insert(30,'"');
		m_strcommand.Insert(30,ch1);
		m_commandtype=AT_COMMAND_ATCPBS;
		SendString(m_strcommand);
		precommand=curcommand;
		curcommand=m_strcommand;*/
		m_wndSplitter.SetActivePane(0,1,NULL);
		(this->GetActiveView())->PostMessage(WM_GETPHONEBOOKLIST,0,0);
	}
	if((message==WM_SETFORM)&&(wParam!=4))
	{
		m_wndSplitter.DeleteView(0, 1);
		m_wndSplitter.CreateView(0, 1, 
		RUNTIME_CLASS(CSmsSetView), 
		CSize(0, 0), 
		NULL);
		m_wndSplitter.RecalcLayout();
		m_currentwindow=SETFORM;
		int len,i;
		len=servercenterphone.GetLength();
		i=0;
		while(i<len)
		{
			serverphone[i]=servercenterphone.GetAt(i);
			i++;
		}
		serverphone[i]=0xff;
		m_wndSplitter.SetActivePane(0,1,NULL);
		this->GetActiveView()->PostMessage(WM_SENDSERVERPHONE,(WPARAM)i,(LPARAM)&serverphone);
	}

	if(message==WM_REQUEST_SMSTEXTSAVE)
	{
		m_strcommand.Empty();
		m_strcommand=_T("");
	}
	if(message==WM_REQUEST_SMSSENDTEXT)
	{
		GetSendOrderData((char*)wParam,(CStringArray *)lParam);
		m_sendsmnum=0;
		m_strcommand.Empty();
		m_strcommand=_T("AT+CMGF=0");
		m_strcommand.Insert(30,ch1);
		m_commandtype=AT_COMMAND_ATCMGF;
		pduexmode=PDUSENDMODE;
		SendString(m_strcommand);
		//m_ComPort.RestartMonitoring();
	}
	if(message==WM_REQUEST_SMSTEXTSAVE)
	{
		GetSendOrderData((char*)wParam,(CStringArray *)lParam);
		m_strcommand.Empty();
		m_strcommand=_T("AT+CMGF=0");
		m_strcommand.Insert(30,ch1);
		m_commandtype=AT_COMMAND_ATCMGF;
		pduexmode=PDUSAVEMODE;
		SendString(m_strcommand);
		//m_ComPort.RestartMonitoring();
	}
	if(message==WM_REQUEST_SMSTEXT)
	{
		cursmindex=(int)wParam;
		m_strcommand.Empty();
		m_strcommand=_T("AT+CMGR=");
		CString smindex;
		GetSubStr(smallindex,(cursmindex-1)*3,(cursmindex-1)*3+2,smindex);
		m_strcommand+=smindex;
		m_strcommand.Insert(30,ch1);
		m_commandtype=AT_COMMAND_ATCMGR;
		SendString(m_strcommand);
		precommand=curcommand;
		curcommand=m_strcommand;
	}
	if(message==WM_REQUEST_SMSDEL)
	{
		cursmindex=(int)wParam;
		m_strcommand.Empty();
		m_strcommand=_T("AT+CMGD=");
		CString smindex;
		GetSubStr(smallindex,(cursmindex-1)*3,(cursmindex-1)*3+2,smindex);
		m_strcommand+=smindex;
		m_strcommand.Insert(30,ch1);
		m_commandtype=AT_COMMAND_ATCMGD;
		SendString(m_strcommand);
		precommand=curcommand;
		curcommand=m_strcommand;
	}/*
	if(message==WM_REQUEST_PHONEBOOKWRITE)
	{
		int optype;
		optype=(int)wParam;
		if((optype==EDITENTRY)||(optype==ADDENTRY))
		{
			m_pbcpbw=(struct cpbw *)lParam;
			m_strcommand.Empty();
			m_strcommand=_T("AT+CPBW=");
			if(optype==EDITENTRY)
				m_strcommand+=m_pbcpbw->indexstr;
			m_strcommand+=_T(",");
			char yinhao;
			yinhao='"';
			m_strcommand.Insert(100,yinhao);
			m_strcommand+=m_pbcpbw->phonestr;
			m_strcommand.Insert(100,yinhao);
			m_strcommand+=_T(",129,");
			m_strcommand.Insert(100,yinhao);
			CString nameunistr;
			AnsiToUni(m_pbcpbw->namestr,nameunistr);
			
			char chff=0xff;
			nameunistr.Insert(50,chff);
			nameunistr.Insert(50,chff);
			m_strcommand+=nameunistr;
			m_strcommand.Insert(100,yinhao);
			m_strcommand.Insert(100,ch1);
			m_commandtype=AT_COMMAND_ATCPBW;
			SendString(m_strcommand);
			precommand=curcommand;
			curcommand=m_strcommand;
		}
	}*/
	if(message==WM_REQUEST_GETSERVERPHONE)
	{
		GetServerPhone((int)wParam,(char *)lParam);
	}
	return CFrameWnd::DefWindowProc(message, wParam, lParam);
}

void CMainFrame::GetServerPhone(int nSize, char serverno[])
{
	int i=0;
	servercenterphone.Empty();
	while(i<nSize)
	{
		servercenterphone.Insert(nSize+1,serverno[i]);
		i++;
	}
	
}

void CMainFrame::SendString(CString str)
{
	m_ComPort.WriteToPort((LPCTSTR)str);
}

void CMainFrame::OnReceive(WPARAM ch, LPARAM port)
{
	CString tempstr;
	static int errorflag=0;
	m_strRXDataCOM2 += (char)ch;
	switch(ch)
	{
	case 0x0D:
		if(m_strRXDataCOM2==curcommand)
			m_strRXDataCOM2=_T("");
		break;
	case 0x1a:
		m_strRXDataCOM2=_T("");
		break;
	case 0x0A:
		if(errorflag)
		{
			//m_ComPort.StopMonitoring();
			errorflag=0;
			m_recstring=m_strRXDataCOM2;
			m_strRXDataCOM2=_T("");
			this->PostMessage(WM_ATCOMM_RECEIVED,m_commandtype,1);
			break;
		}
		else
			if(m_strRXDataCOM2.Right(6)==endflag)
			{
				//m_ComPort.StopMonitoring();
				errorflag=0;
				m_recstring=m_strRXDataCOM2;
				m_strRXDataCOM2=_T("");
				this->PostMessage(WM_ATCOMM_RECEIVED,m_commandtype,0);
				break;
			}
			else if((m_commandtype==AT_COMMAND_ATTESTPIN)
					&&(m_strRXDataCOM2.GetLength()>3))
				{
					//m_ComPort.StopMonitoring();
					errorflag=0;
					m_recstring=m_strRXDataCOM2;
					m_strRXDataCOM2=_T("");
					this->PostMessage(WM_ATCOMM_RECEIVED,m_commandtype,0);
					break;
				}
				else if(m_commandtype==AT_COMMAND_RECSMS)
				{
						//m_ComPort.StopMonitoring();
						m_recstring=m_strRXDataCOM2;
						m_strRXDataCOM2=_T("");
						this->PostMessage(WM_ATCOMM_RECEIVED,m_commandtype,0);
				}
				break;
	case ':':
		if(m_strRXDataCOM2.Right(13)==errorE)
			errorflag=1;
		else
			if(m_strRXDataCOM2.Right(13)==errorS)
				errorflag=2;
			else
			{
				CString recsm;
				recsm.Insert(1,ch1);
				recsm.Insert(2,ch2);
				recsm+=_T("+CMTI:");
				
				if(m_strRXDataCOM2.Right(8)==recsm)
					m_commandtype=AT_COMMAND_RECSMS;
			}
		break;
	case ' ':
		tempstr.Insert(1,ch1);
		tempstr.Insert(2,ch2);
		tempstr.Insert(3,'>');
		tempstr.Insert(4,' ');
		if(m_strRXDataCOM2==tempstr)
		{
			errorflag=0;
			//m_ComPort.StopMonitoring();
			m_recstring=m_strRXDataCOM2;
			m_strRXDataCOM2=_T("");
			this->PostMessage(WM_ATCOMM_RECEIVED,m_commandtype,0);
		}
		break;
	default:
		break;
	}

}

int CMainFrame::OnGetAck(WPARAM command, LPARAM iserror)
{
	static CString num;
	static int nnum;
	command=command;
	iserror=iserror;
	switch(command)	
	{
	case AT_COMMAND_AT:
		if(iserror==0)
		{
			m_strcommand.Empty();
			m_strcommand=_T("AT+CPIN?");
			m_strcommand.Insert(30,ch1);
			m_commandtype=AT_COMMAND_ATTESTPIN;
			SendString(m_strcommand);
			precommand=curcommand;
			curcommand=m_strcommand;
			//m_ComPort.RestartMonitoring();
			break;
		}
		else
		{
			//初始化失敗,報(bào)告連接錯(cuò)誤或重試
			//
			break;
		}
	case AT_COMMAND_ATTESTPIN:
		if(iserror==0)
		{
			CString strnopin;
			strnopin=_T("");
			strnopin.Insert(0,ch1);
			strnopin.Insert(1,ch2);
			strnopin+=_T("+CPIN: READY");
			strnopin.Insert(20,ch1);
			strnopin.Insert(20,ch2);
			if(m_recstring==strnopin)
			{
				m_strcommand.Empty();
				m_strcommand=_T("AT+CNMI=0,1,0,0,0");
				m_strcommand.Insert(m_strcommand.GetLength()+1,ch1);
				m_commandtype=AT_COMMAND_ATCNMI;
				precommand=curcommand;
				curcommand=m_strcommand;
				SendString(m_strcommand);
				//m_ComPort.RestartMonitoring();
				break;
			}
			else
			{
				CSimpinDlg *ppindlg=new CSimpinDlg;
				if(ppindlg->DoModal()==IDOK)
				{
					m_strcommand.Empty();
					m_strcommand=_T("AT+CPIN=");
					m_strcommand.Insert(30,'"');
					m_strcommand+=ppindlg->m_simpin;
					m_strcommand.Insert(50,'"');
					m_strcommand.Insert(30,ch1);
					m_commandtype=AT_COMMAND_ATPIN;
					SendString(m_strcommand);
					precommand=curcommand;
					curcommand=m_strcommand;
					//m_ComPort.RestartMonitoring();
				}
				else
				{
					//用戶不能提供SIM密碼
				}
				ppindlg->DestroyWindow();
				break;
			}
		}
		else
		{
			//SIM卡打開失敗
		}
		break;
	case AT_COMMAND_ATPIN:
		if(iserror==0)
		{
			//SIM卡密碼正確,可以進(jìn)行下一步操作
			m_strcommand.Empty();
			m_strcommand=_T("AT+CNMI=0,1,0,0,0");
			m_strcommand.Insert(m_strcommand.GetLength()+1,ch1);
			m_commandtype=AT_COMMAND_ATCNMI;
			precommand=curcommand;
			curcommand=m_strcommand;
			SendString(m_strcommand);
			break;
		}
		else
		{
			///SIM卡密碼不正確
			break;
		}
	case AT_COMMAND_ATCNMI:
		if(iserror==0)
		{
			m_wndSplitter.SetActivePane(0,1,NULL);
			(this->GetActiveView())->PostMessage(WM_GETPHONEBOOKLIST,0,0);
			/*
			m_strcommand.Empty();
			m_strcommand=_T("AT+CPBS=");
			m_strcommand.Insert(20,'"');
			m_strcommand+=_T("SM");
			m_strcommand.Insert(30,'"');
			m_strcommand.Insert(30,ch1);
			m_commandtype=AT_COMMAND_ATCPBS;
			SendString(m_strcommand);
			precommand=curcommand;
			curcommand=m_strcommand;*/
			//m_ComPort.RestartMonitoring();
			break;
		}
		else
		{
			break;
		}
	case AT_COMMAND_ATCMGF:
		if(iserror==0)
		{
			if(pduexmode=PDUSENDMODE)
			{
				//設(shè)置PDU模式成功,可發(fā)送短消息
				m_strcommand.Empty();
				m_strcommand=_T("AT+CMGS=");
				CString tempstr,unitext;
				int tsum;
				AnsiToUni(messagetext,unitext);
				tsum=unitext.GetLength()+15;
				GetSumString(tsum,tempstr);
				m_strcommand+=tempstr;
				m_strcommand.Insert(m_strcommand.GetLength()+1,ch1);
				m_commandtype=AT_COMMAND_ATCMGS;
				SendString(m_strcommand);
				precommand=curcommand;
				curcommand=m_strcommand;
				//m_ComPort.RestartMonitoring();
				break;
			}
			else if(pduexmode=PDUSAVEMODE)
			{
				//可以發(fā)送短消息了
			CString sendpdudata,centeradd,dastring,userdata;
			CString recphone;
			CString pdutext;
			CString headnum=_T("86");
			char ch;
			int i=0;
			//servercenterphone=_T("8613800270500");
			recphone=headnum+dialnumar.GetAt(i);
			//recphone=_T("8613971405741");
			sendpdudata=_T("");
			TransAdd(headnum+servercenterphone,centeradd,SERVERCENTERADD);
			sendpdudata+=centeradd;
			ch=0x11;
			sendpdudata.Insert(sendpdudata.GetLength(),ch);
			ch=0x00;
			sendpdudata.Insert(sendpdudata.GetLength(),ch);
			TransAdd(recphone,dastring,DESTINATIONADD);
			sendpdudata+=dastring;
			ch=0x00;
			sendpdudata.Insert(sendpdudata.GetLength(),ch);
			ch=0x0A;
			sendpdudata.Insert(sendpdudata.GetLength(),ch);
			ch=0x01;
			sendpdudata.Insert(sendpdudata.GetLength(),ch);
			AnsiToUni(messagetext,pdutext);
			ch=pdutext.GetLength();
			sendpdudata.Insert(sendpdudata.GetLength(),ch);
		   	CString ascpdustr;
			pdutext.Empty();
			AnsiToUni(messagetext,pdutext);
			//ascpdustr+=pdutext;
			sendpdudata+=pdutext;
			TransToAscii(sendpdudata,ascpdustr);
			
			sendpdudata=ascpdustr;
			ch=0x1a;
			sendpdudata.Insert(sendpdudata.GetLength(),ch);
			m_commandtype=AT_COMMAND_ATCMGSSEND;
			m_strcommand=sendpdudata;
			SendString(m_strcommand);
			precommand=curcommand;
			curcommand=m_strcommand;
			//m_ComPort.RestartMonitoring();
			break;
			}
		}
		else

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美一区二区美女| 激情欧美一区二区| 奇米777欧美一区二区| 激情五月婷婷综合网| 成人a免费在线看| 欧美肥妇毛茸茸| 久久精品免费在线观看| 亚洲精品老司机| 韩日欧美一区二区三区| 91在线视频免费观看| 91精品国产入口| 久久九九99视频| 亚洲第一二三四区| 国产精品一二三区在线| 欧美伊人久久大香线蕉综合69| 精品国产亚洲在线| 一二三四区精品视频| 国产在线精品一区二区夜色| 色婷婷综合久色| 国产肉丝袜一区二区| 一区二区三区在线视频免费| 久久99国产精品久久99| 色哟哟一区二区在线观看| 日韩欧美123| 亚洲精品高清在线| 国产二区国产一区在线观看| 欧美日韩国产高清一区二区| 国产三级欧美三级| 麻豆极品一区二区三区| 色94色欧美sute亚洲13| 国产丝袜欧美中文另类| 日韩成人免费在线| 色噜噜夜夜夜综合网| 久久影音资源网| 日韩中文字幕av电影| 白白色 亚洲乱淫| 欧美tk—视频vk| 午夜精品福利视频网站| 91视频com| 久久精品免费在线观看| 秋霞午夜av一区二区三区| 在线观看亚洲a| 综合婷婷亚洲小说| 成人免费视频国产在线观看| 精品国产乱码久久久久久浪潮| 亚洲高清视频在线| 91在线国产观看| 中文字幕精品—区二区四季| 精品一区二区在线免费观看| 欧美三级资源在线| 亚洲自拍偷拍综合| 91丝袜美腿高跟国产极品老师 | 丝袜亚洲精品中文字幕一区| 欧美色男人天堂| 亚洲免费三区一区二区| 成人sese在线| 国产精品麻豆久久久| 韩国成人精品a∨在线观看| 337p亚洲精品色噜噜噜| 午夜电影一区二区| 欧美综合天天夜夜久久| 一区二区三区四区中文字幕| 不卡电影一区二区三区| 国产精品白丝在线| 成人性生交大合| 日本一区二区视频在线| 国内不卡的二区三区中文字幕| 91精品国产麻豆| 蜜臀99久久精品久久久久久软件| 91麻豆精品久久久久蜜臀| 亚洲蜜臀av乱码久久精品| 色欲综合视频天天天| 一区二区三区四区亚洲| 色婷婷久久久亚洲一区二区三区| 日韩一区在线看| 日本乱人伦一区| 一区二区三区在线不卡| 色中色一区二区| 亚洲电影一区二区三区| 欧美一区中文字幕| 美女诱惑一区二区| 久久久99免费| 不卡的电影网站| 一区二区三区影院| 欧美日韩国产免费| 久久精品国产精品亚洲精品| 久久奇米777| 国产成人在线看| 亚洲欧美激情小说另类| 91高清视频免费看| 五月综合激情婷婷六月色窝| 欧美一区二区三区系列电影| 狠狠色狠狠色综合日日91app| 国产午夜精品一区二区三区四区| 成人国产在线观看| 亚洲精品国产第一综合99久久| 欧美日韩你懂得| 狠狠色丁香婷综合久久| 亚洲欧洲美洲综合色网| 欧美日韩精品欧美日韩精品一 | 欧美在线观看18| 肉肉av福利一精品导航| 久久女同性恋中文字幕| 成人av小说网| 天使萌一区二区三区免费观看| 欧美大片一区二区| 国产xxx精品视频大全| 亚洲免费三区一区二区| 欧美一区二区三区喷汁尤物| 九九视频精品免费| 国产精品不卡一区| 91精品国产91久久久久久最新毛片| 国产精品1区二区.| 亚洲老妇xxxxxx| 精品久久久久久亚洲综合网 | 亚洲一区二区高清| 欧美va在线播放| 91麻豆国产福利精品| 日本va欧美va欧美va精品| 欧美激情一二三区| 欧美群妇大交群的观看方式| 高清视频一区二区| 午夜天堂影视香蕉久久| 国产欧美一区二区在线| 欧美精品欧美精品系列| 国产91富婆露脸刺激对白| 亚洲成人激情社区| 国产精品理伦片| 日韩一区二区三区四区五区六区 | 国产精品国产精品国产专区不蜜| 欧美精品在线视频| av中文字幕一区| 另类综合日韩欧美亚洲| 亚洲乱码国产乱码精品精小说 | 日韩精品国产欧美| 国产精品理论片| 欧美变态tickle挠乳网站| 色88888久久久久久影院野外| 国产一区二区三区四区五区入口| 亚洲成人自拍一区| 国产精品国产馆在线真实露脸| 欧美一级国产精品| 在线视频观看一区| 成人小视频免费观看| 久久福利视频一区二区| 亚洲动漫第一页| 亚洲欧洲综合另类| 国产亚洲欧洲997久久综合| 欧美日韩综合在线免费观看| 97se亚洲国产综合自在线| 国产寡妇亲子伦一区二区| 奇米在线7777在线精品| 一区二区欧美视频| 亚洲三级电影网站| 欧美激情综合在线| 久久综合色天天久久综合图片| 欧美日韩国产成人在线免费| 色综合久久久久| 91在线视频免费观看| 成人a级免费电影| 国产不卡一区视频| 国产精品18久久久久久久久| 久久国产麻豆精品| 麻豆精品一区二区三区| 日韩av一区二| 日韩不卡在线观看日韩不卡视频| 一区二区高清视频在线观看| 亚洲人快播电影网| 一区二区中文字幕在线| 国产精品久久午夜夜伦鲁鲁| 日本一区二区在线不卡| 亚洲国产精品高清| 国产精品素人视频| 日本一区二区视频在线观看| 久久久综合视频| 久久久久久**毛片大全| 欧美精品一区二区久久久| 欧美成人一区二区三区在线观看 | 国产在线一区观看| 国产一区二区调教| 国内成+人亚洲+欧美+综合在线 | 欧美在线观看一区| 麻豆传媒一区二区三区| 日本成人在线一区| 午夜av区久久| 日本最新不卡在线| 免费日本视频一区| 激情都市一区二区| 国产精品亚洲第一区在线暖暖韩国 | 青青青伊人色综合久久| 日本女人一区二区三区| 美女视频黄 久久| 九一九一国产精品| 国产在线观看一区二区| 高清在线观看日韩| 91原创在线视频| 日本精品视频一区二区| 在线观看一区二区视频| 欧美日韩www| 日韩视频免费直播|