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

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

?? mainfrm.cpp

?? 對Motorola的手機模塊
?? CPP
?? 第 1 頁 / 共 3 頁
字號:
// 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;  //校驗和置0
	m_chChecksum2=0;
	m_nRXErrorCOM1=0;   //COM1接收數據錯誤幀數置0
	m_nRXErrorCOM2=0;   //COM2接收數據錯誤幀數置0
	m_nRXCounterCOM1=0;   //COM1接收數據錯誤幀數置0
	m_nRXCounterCOM2=0;   //COM2接收數據錯誤幀數置0
	m_strRXhhCOM1.Empty();  //清空半BYTE校驗hh存儲變量
	m_strRXhhCOM2.Empty();
	if (m_ComPort.InitPort(this,1,9600,'N',8,1,EV_RXFLAG | EV_RXCHAR,512))
	{
		//SetTimer(1,1000,NULL);   //設置定時器,1秒后發送數據
		//////////////////////////////////////////////////////
		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();   //啟動串口監視線程
	}
	else
	{
		CString str;
		str.Format("COM%d 沒有發現,或被其它設備占用",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
		{
			//初始化失敗,報告連接錯誤或重試
			//
			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卡密碼正確,可以進行下一步操作
			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)
			{
				//設置PDU模式成功,可發送短消息
				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)
			{
				//可以發送短消息了
			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

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲精品国产成人久久av盗摄 | 香蕉成人啪国产精品视频综合网| 色婷婷国产精品久久包臀| 亚洲成人激情自拍| www久久精品| 91丨九色porny丨蝌蚪| 午夜精品福利视频网站| 精品99久久久久久| 色哟哟国产精品免费观看| 蜜臀精品一区二区三区在线观看 | 91精品欧美久久久久久动漫| 国产suv一区二区三区88区| 亚洲一区二区三区视频在线播放| 久久综合色综合88| 在线观看亚洲a| 国产成人av影院| 91精品办公室少妇高潮对白| 国产呦萝稀缺另类资源| 亚洲成在线观看| 国产精品美女久久久久av爽李琼| 欧美高清精品3d| 99久久精品免费看国产免费软件| 麻豆久久久久久| 天天操天天色综合| 亚洲丝袜另类动漫二区| 久久精子c满五个校花| 欧美一区二区在线播放| 色94色欧美sute亚洲线路一久| 国产激情一区二区三区四区| 99国产精品久| 成人的网站免费观看| 国产成+人+日韩+欧美+亚洲| 精品一区二区影视| 日韩专区在线视频| 亚洲第一激情av| 亚洲大片在线观看| 视频一区欧美精品| 日韩综合一区二区| 日韩av在线免费观看不卡| 亚洲成人福利片| 五月开心婷婷久久| 免费观看在线综合| 另类小说色综合网站| 日本va欧美va精品| 麻豆一区二区三| 国产一区二区精品久久91| 国产精品99久久久| 成人精品在线视频观看| 91丝袜呻吟高潮美腿白嫩在线观看| 色综合天天视频在线观看| 欧美午夜精品久久久久久孕妇| 欧美男人的天堂一二区| 精品粉嫩aⅴ一区二区三区四区| 久久精品一区四区| 17c精品麻豆一区二区免费| 亚洲欧美日韩小说| 亚洲mv在线观看| 国产一区在线精品| 成人黄色av电影| 欧美日韩专区在线| 日韩精品一区二区三区视频在线观看 | www.av亚洲| 欧美卡1卡2卡| 久久先锋资源网| 懂色av中文一区二区三区| av欧美精品.com| 欧美男女性生活在线直播观看| 日韩精品一区二区三区三区免费| 日本一区二区三区四区在线视频 | 91精品国产色综合久久不卡电影| 欧美美女一区二区在线观看| 久久五月婷婷丁香社区| 一区二区在线观看不卡| 日日骚欧美日韩| 不卡av在线免费观看| 欧美久久高跟鞋激| 九色综合狠狠综合久久| 欧美成人国产一区二区| 国产精品欧美精品| 免费欧美日韩国产三级电影| av午夜一区麻豆| 色中色一区二区| 欧美成人性战久久| 麻豆精品国产传媒mv男同| 91精品国产综合久久久久久久| 日韩av一级片| 久久久www成人免费无遮挡大片| 国产成人鲁色资源国产91色综| 亚洲精品在线电影| 国产a区久久久| 国产精品免费视频观看| 97精品超碰一区二区三区| 亚洲婷婷国产精品电影人久久| 欧美日韩在线精品一区二区三区激情 | 91成人国产精品| 免费观看成人av| 久久看人人爽人人| av在线免费不卡| 午夜精品久久久久久久久久久| 日韩视频在线永久播放| 大尺度一区二区| 亚洲第一久久影院| 久久精品在线免费观看| 在线视频一区二区免费| 久久精品二区亚洲w码| 最新不卡av在线| 日韩一区二区三区四区| 国产成人超碰人人澡人人澡| 一区二区三区欧美视频| 欧美成人高清电影在线| 94-欧美-setu| 午夜精品久久久久久不卡8050| 久久久久久久久97黄色工厂| 在线观看成人免费视频| 国产成人午夜电影网| 亚洲精品视频免费看| 久久网站热最新地址| 欧美三级蜜桃2在线观看| 国产一区二区免费看| 三级久久三级久久久| 综合久久一区二区三区| 精品国产乱码久久| 在线观看91视频| 成人激情动漫在线观看| 久久国内精品自在自线400部| 亚洲精品乱码久久久久久日本蜜臀| 欧美本精品男人aⅴ天堂| 欧美日韩中文另类| 91丨九色丨尤物| 成人免费视频视频| 国产精品自产自拍| 精油按摩中文字幕久久| 日韩和欧美的一区| 色爱区综合激月婷婷| 99久久精品免费精品国产| 国产成人免费av在线| 国产精品一级黄| 激情综合色播五月| 美女网站色91| 日韩av网站在线观看| 午夜精品福利在线| 亚洲国产一区在线观看| 亚洲一区二区三区四区中文字幕| 亚洲蜜桃精久久久久久久| 中文字幕一区二区三区精华液| 国产区在线观看成人精品| 日韩欧美一区在线| 欧美一级片在线观看| 精品国产一区二区亚洲人成毛片 | 中文字幕亚洲一区二区va在线| 国产精品网友自拍| 国产精品天美传媒| 亚洲品质自拍视频| 一区二区三区在线视频观看 | 国产三级精品在线| 国产精品久久免费看| 国产精品久久久久久久午夜片| 亚洲女人的天堂| 一区二区激情视频| 欧美丝袜丝nylons| 91精品国产综合久久久久 | 91丨porny丨首页| 欧美羞羞免费网站| 欧美一三区三区四区免费在线看| 欧美精品一区二区蜜臀亚洲| 欧美激情一二三区| 亚洲午夜视频在线观看| 日本亚洲一区二区| 盗摄精品av一区二区三区| 欧美性xxxxx极品少妇| 欧美精品一区二区三区久久久| 亚洲天天做日日做天天谢日日欢| 三级欧美在线一区| 国产jizzjizz一区二区| 欧美日韩一二三区| 久久网站最新地址| 亚洲一区在线视频| 国产美女在线精品| 欧美日韩中文字幕一区二区| 日本一区二区三区四区 | 欧美—级在线免费片| 视频一区免费在线观看| 国产不卡视频在线观看| 欧美日本在线播放| 中日韩免费视频中文字幕| 日韩成人免费看| 91在线观看成人| 久久久99精品久久| 免费一级欧美片在线观看| jlzzjlzz欧美大全| 日韩视频在线永久播放| 自拍av一区二区三区| 国产一区激情在线| 欧美人xxxx| 亚洲国产精品一区二区久久| 成人黄色av电影| 亚洲国产精品精华液2区45| 久久精品72免费观看| 欧美日韩一级片在线观看| 一区二区三区鲁丝不卡|