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

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

?? radioview.cpp

?? VC&Matlab混合編程實現(xiàn)無線電導(dǎo)航指示器
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
/*
This project was created using the Top Studio AppWizard
Radio Navigation Simulator
Project: RADIO
Author : GPS Center
Date : 星期二, 三月 21, 2006
*/

// RADIOView.cpp : implementation of the CRADIOView class
//

#include "stdafx.h"
#include "RADIO.h"

#include "RADIODoc.h"
#include "RADIOView.h"
#include "TrajFileAccess.h"
#include "air.h"

#include "MainFrm.h"
#include "APPStatic.h"

#include "DialogAxisLimit.h"
#include "BeaconManage.h"


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

/////////////////////////////////////////////////////////////////////////////
// CRADIOView

IMPLEMENT_DYNCREATE(CRADIOView, CScrollView)

BEGIN_MESSAGE_MAP(CRADIOView, CScrollView)
	//{{AFX_MSG_MAP(CRADIOView)
	ON_WM_CREATE()
	ON_WM_TIMER()
	ON_COMMAND(ID_START, OnStart)
	ON_UPDATE_COMMAND_UI(ID_START, OnUpdateStart)
	ON_COMMAND(ID_STOP, OnStop)
	ON_UPDATE_COMMAND_UI(ID_STOP, OnUpdateStop)
	ON_COMMAND(ID_CHOOSECOLOR, OnChoosecolor)
	ON_WM_DRAWITEM()
	ON_WM_DESTROY()
	ON_UPDATE_COMMAND_UI(ID_ROTATE3D, OnUpdateRotate3d)
	ON_COMMAND(ID_ZOOM, OnZoom)
	ON_UPDATE_COMMAND_UI(ID_ZOOM, OnUpdateZoom)
	ON_COMMAND(ID_ROTATE2D, OnRotate2d)
	ON_UPDATE_COMMAND_UI(ID_ROTATE2D, OnUpdateRotate2d)
	ON_COMMAND(ID_AXISCOLOR, OnAxiscolor)
	ON_UPDATE_COMMAND_UI(ID_AXISCOLOR, OnUpdateAxiscolor)
	ON_UPDATE_COMMAND_UI(ID_AXISTYPE, OnUpdateAxistype)
	ON_COMMAND(ID_AXISAUTO, OnAxisauto)
	ON_COMMAND(ID_AXISEQUAL, OnAxisequal)
	ON_COMMAND(ID_AXISMANUAL, OnAxismanual)
	ON_COMMAND(ID_AXISNORMAL, OnAxisnormal)
	ON_COMMAND(ID_AXISON, OnAxison)
	ON_COMMAND(ID_AXISSQUARE, OnAxissquare)
	ON_COMMAND(ID_AXISTIGHT, OnAxistight)
	ON_COMMAND(ID_BOXON, OnBoxon)
	ON_COMMAND(ID_FIGURECOLOR, OnFigurecolor)
	ON_COMMAND(ID_XYZCOLOR, OnXyzcolor)
	ON_COMMAND(ID_AXISBACKCOLOR, OnAxisbackcolor)
	ON_COMMAND(ID_TRAJLINECOLOR, OnTrajlinecolor)
	ON_COMMAND(ID_GRID, OnGrid)
	ON_COMMAND(ID_AXISLIMIT, OnAxislimit)
	ON_COMMAND(ID_VIEW3D, OnView3d)
	ON_UPDATE_COMMAND_UI(ID_VIEW3D, OnUpdateView3d)
	ON_COMMAND(ID_TRACEPLANE, OnTraceplane)
	ON_UPDATE_COMMAND_UI(ID_TRACEPLANE, OnUpdateTraceplane)
	ON_COMMAND(ID_SETBEACON, OnSetbeacon)
	ON_COMMAND(ID_INITSTATE, OnInitstate)
	ON_UPDATE_COMMAND_UI(ID_INITSTATE, OnUpdateInitstate)
	ON_COMMAND(ID_ROTATE3D, OnRotate3d)
	ON_UPDATE_COMMAND_UI(ID_FILESETTING, OnUpdateFilesetting)
	ON_UPDATE_COMMAND_UI(ID_SETBEACON, OnUpdateSetbeacon)
	//}}AFX_MSG_MAP
	// Standard printing commands
	ON_COMMAND(ID_FILE_PRINT, CScrollView::OnFilePrint)
	ON_COMMAND(ID_FILE_PRINT_DIRECT, CScrollView::OnFilePrint)
	ON_COMMAND(ID_FILE_PRINT_PREVIEW, CScrollView::OnFilePrintPreview)
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CRADIOView construction/destruction

CRADIOView::CRADIOView()
{
	m_nCurSheet=APPStatic::nFirstSheet;
	m_rectSheetOffset=CRect(2,8,2,2);//left,top,right,bottom
	m_bSimuStarted=FALSE;
	m_bIsRotating3D=FALSE;
	m_bIsZooming=FALSE;
	m_bIsMatlabFigureShowing=APPStatic::nFirstSheet==1?TRUE:FALSE;
	m_colorLineTrajColor=RGB(0,0,255);
	m_bTracePlane=TRUE;
	m_bInitState=FALSE;
	m_mwhBeacon=empty();

}

CRADIOView::~CRADIOView()
{
delete(m_pBeaconSimu);
}

BOOL CRADIOView::PreCreateWindow(CREATESTRUCT& cs)
{
	// TODO: Modify the Window class or styles here by modifying
	//  the CREATESTRUCT cs
	static LPCSTR className = NULL;
	
	if (className==NULL) {
		if (!CScrollView::PreCreateWindow(cs))
			return FALSE;
		
		WNDCLASS wndcls;
		::GetClassInfo(AfxGetInstanceHandle(), cs.lpszClass, &wndcls);
		wndcls.lpszClassName = MY_CLASSNAME;
		wndcls.hbrBackground = (HBRUSH) (COLOR_BTNFACE+1);
		VERIFY(AfxRegisterClass(&wndcls));
		className=MY_CLASSNAME;
	}
	cs.lpszClass = className;
	return TRUE;
}

/////////////////////////////////////////////////////////////////////////////
// CRADIOView drawing

void CRADIOView::OnDraw(CDC* pDC)
{
	CRADIODoc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);
	// TODO: add draw code for native data here

}

/////////////////////////////////////////////////////////////////////////////
// CRADIOView printing

BOOL CRADIOView::OnPreparePrinting(CPrintInfo* pInfo)
{
	// default preparation
	return DoPreparePrinting(pInfo);
}

void CRADIOView::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
	// TODO: add extra initialization before printing
}

void CRADIOView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
	// TODO: add cleanup after printing
}

/////////////////////////////////////////////////////////////////////////////
// CRADIOView diagnostics

#ifdef _DEBUG
void CRADIOView::AssertValid() const
{
	CScrollView::AssertValid();
}

void CRADIOView::Dump(CDumpContext& dc) const
{
	CScrollView::Dump(dc);
}

CRADIODoc* CRADIOView::GetDocument() // non-debug version is inline
{
	ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CRADIODoc)));
	return (CRADIODoc*)m_pDocument;
}
#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// CRADIOView message handlers

int CRADIOView::OnCreate(LPCREATESTRUCT lpCreateStruct) 
{
	if (CScrollView::OnCreate(lpCreateStruct) == -1)
		return -1;
    //TABSHEET的ImageList
	m_imageListTabSheets.Create(124,20,ILC_COLOR16,2,1);
	CBitmap bitmap1;bitmap1.LoadBitmap(IDB_BITMAPSHEET1);
	CBitmap bitmap2;bitmap2.LoadBitmap(IDB_BITMAPSHEET2);
	m_imageListTabSheets.Add(&bitmap1,RGB(0,0,0));
    m_imageListTabSheets.Add(&bitmap2,RGB(0,0,0));
    //創(chuàng)建TABSHEET
	m_tabSheet.Create(WS_CHILD|WS_VISIBLE|TCS_OWNERDRAWFIXED|TCS_FIXEDWIDTH|TCS_FOCUSNEVER ,CRect(0,0,0,0),this,IDS_SHEET);//TCS_OWNERDRAWFIXED指示Tab由父窗口畫,WM_DRAWITEM
	m_tabSheet.SetItemSize(CSize(130,24));
	m_tabSheet.AddPage("",&m_dlgSheet1,IDD_SHEET1);
	m_tabSheet.AddPage("",&m_dlgSheet2,IDD_SHEET2);
	SetCurSheetRect(m_nCurSheet);
	m_tabSheet.MoveWindow(&m_rectCurSheet,TRUE);
	m_tabSheet.Show();	
	m_tabSheet.SetCurSel(m_nCurSheet);	
	//取得幾個表盤
	m_pAirAttitude=(CAir*)m_dlgSheet1.GetDlgItem(IDC_AIRATTITUDE);
	m_pAirAlt=(CAir*)m_dlgSheet1.GetDlgItem(IDC_AIRALT);
	m_pAirSpeed=(CAir*)m_dlgSheet1.GetDlgItem(IDC_AIRSPEED);
	m_pAirRms=(CAir*)m_dlgSheet1.GetDlgItem(IDC_AIRRMS);
	//初始化matlab窗口,這時千萬不能讓其可見,用了定時器讓它可見。
	GenAxis();
	CWnd * pWndMatlabFrame=m_dlgSheet2.GetDlgItem(IDC_MATLABFRAME);
	DockMatlabFigure(m_mwhFigure,pWndMatlabFrame);
	mlfHGWaitForFiguresToDie();
	//生成Plane
	mwArray ver=transpose(vertcat(horzcat(-.6,.4,-.5,-.6,-.6,.4),
								  horzcat(0,0,0,0,0,0),
								  horzcat(0,0,.1,.25,0,.03)));
	mwArray p1,p2,p3;
	p1=patch("visible","off","vertices",ver,"faces",horzcat(1,2,6,3,4,5),"edgecolor",horzcat(.3,0,1),
		"facecolor",horzcat(1,1,0),"linewidth",2,"parent",m_mwhAxis);
	
	mwArray x2=horzcat(-.2,-.1,0,-.1,-.2,-.2)+mwArray(.1);
	mwArray y2=horzcat(-.5,-.5,0,.5,.5,-.5);
	mwArray z2=horzcat(-.005,-.005,-.005,-.005,-.005,-.005);
	p2=patch("visible","off","xdata",x2,"ydata",y2,"zdata",z2,"parent",m_mwhAxis,"linewidth",1,"edgecolor",
		horzcat(.3,0,1),"facecolor",horzcat(1,.1,.1));
	p3=patch("visible","off","xdata",(x2-1.1)/2,"ydata",y2/2,"parent",m_mwhAxis,"linewidth",1,"edgecolor",horzcat(0.3,0,1),"facecolor",horzcat(1,0,0));
	m_traj3dShow.m_plane.SetParent(m_mwhAxis);
	m_traj3dShow.m_plane.AddPatchElement(p1);
	m_traj3dShow.m_plane.AddPatchElement(p2);
    m_traj3dShow.m_plane.AddPatchElement(p3);

  	//預(yù)讀beacon.cfg
    CString strName=_T("beacon.cfg");
	CFileException fileExcep;
	CFile fileBeaconConfig;
	fileBeaconConfig.Open(strName, CFile::modeRead,&fileExcep );
	if(fileExcep.m_cause!=CFileException::none)	
	{  //fileExcep.ReportError();
	    return 1;
	}
	TRY{
	CArchive ar( &fileBeaconConfig, CArchive::load);
	m_beaconManage.Serialize(ar);
	}
	CATCH(CException,e){
		//e->ReportError();
		return 1;
	}
 	END_CATCH
	//-------------------------
	return 0;
}


void CRADIOView::OnInitialUpdate() 
{
	CScrollView::OnInitialUpdate();	
	
	CSize &size=GetDocument()->arraySheetSizes[m_nCurSheet];
    //設(shè)置滾動范圍
	SetScrollSizes(MM_TEXT, size);
		//初始化信標仿真對象
	m_pBeaconSimu=new CBeaconSimu(&m_beaconManage);
    //搞掉GMS的彈出對話框
	//放在構(gòu)造或precreatewindow里都不行,窗口還沒創(chuàng)建,GMS還沒出現(xiàn)怎么搞呢。	
	SetTimer(ID_TIMER_KILLGMS,5,NULL);


}

void CRADIOView::OnUpdate(CView* pSender, LPARAM lHint, CObject* pHint) 
{
	// TODO: Add your specialized code here and/or call the base class
}

CRect CRADIOView::Size2Rect(const CSize& size)
{
	return CRect(0,0,size.cx,size.cy);
}


void CRADIOView::OnTimer(UINT nIDEvent) 
{
	//ID_TIMER_RADIOFILE的變量
	BYTE byteCheck;
	//----------------------------
	switch(nIDEvent){
	case ID_TIMER_KILLGMS://搞掉GMS注冊窗口
		HWND hwndGMS;
		hwndGMS=::FindWindow(TEXT("#32770"),TEXT("About Aircraft Instruments Control"));
		if (hwndGMS){				
			::SendMessage(hwndGMS,WM_COMMAND,1,0);//相當于按了OK
			KillTimer(ID_TIMER_KILLGMS);
			GetDocument()->UpdateAllViews(NULL);
		}
		//使matlab窗口可見;
		MakeMatlabFiguresVisible();

        break;
	case ID_TIMER_SIMU://仿真定時
       	APPStatic::app_dSimuTime+=APPStatic::app_lTimeEllapse/1000.0;
		if(m_fileAccess.RefreshCurrentPackageByTime(APPStatic::app_dSimuTime)==FALSE){
			OnStop();
			return;
		}
		RefreshMeters();
		((CMainFrame*)(AfxGetApp()->m_pMainWnd))->m_wndTimeToolBar.SetPaintInfo(APPStatic::Time2String(APPStatic::app_dSimuTime));
        ((CMainFrame*)(AfxGetApp()->m_pMainWnd))->m_wndTimeToolBar.Paint();
		m_traj3dShow.RefreshTraj();
		break;
	case ID_TIMER_DIS://Radio量測定時
        m_pBeaconSimu->RefreshMeasure();
		m_beaconManage.DrawBeacon(m_mwhAxis);
		break;
	case ID_TIMER_RADIOFILE:
		m_dRadioFileTime+=1.0/(GetDocument()->m_dRadioFreq);//?
		if(m_beaconManage.IsBeaconAvailable()){
			byteCheck=1;
			(*m_pBeaconSimu->m_pArRadio)<<APPStatic::app_dSimuTime<<byteCheck<<m_beaconManage.m_iAvailableBCIndex<<
				m_pBeaconSimu->m_dDisMeasure<<m_pBeaconSimu->m_dAzMeasure;
		}
		else{
            byteCheck=0;
			(*m_pBeaconSimu->m_pArRadio)<<m_dRadioFileTime<<byteCheck;
		}
		
	default:;
	}
	CScrollView::OnTimer(nIDEvent);
}


void CRADIOView::RefreshCurSheet(int nSheet)

{	m_nCurSheet=nSheet;
	
	SetCurSheetRect(nSheet);
	m_tabSheet.MoveWindow(&m_rectCurSheet,TRUE);
	m_tabSheet.RefreshShow();//不調(diào)用則子窗口不能被刷新。
	RefreshScroll(nSheet);
}

void CRADIOView::SetCurSheetRect(int nSheet)
{CSize size=GetDocument()->arraySheetSizes[nSheet];
CRect rect=Size2Rect(size);
m_rectCurSheet=CRect(rect.left+m_rectSheetOffset.left,rect.top+m_rectSheetOffset.top,rect.right-m_rectSheetOffset.right,rect.bottom-m_rectSheetOffset.bottom);

}

void CRADIOView::RefreshScroll(int nSheet)
{CSize size=GetDocument()->arraySheetSizes[nSheet];
SetScrollSizes(MM_TEXT,size);
}

void CRADIOView::OnStart() 
{
	m_bSimuStarted=TRUE;
	if(!m_bInitState) OnInitstate();
	APPStatic::app_dSimuTime=0.0;//仿真時間,就是航跡的真實時間
	m_dRadioFileTime=0.0;
	if(m_fileAccess.InitializeFileAccess(GetDocument()->m_strTrajFileName.GetBuffer(0))==FALSE)
	{OnStop();
	return;}		
	RefreshMeters();
	m_traj3dShow.Init3DShow(m_fileAccess.GetCurrentPackageData().lon,m_fileAccess.GetCurrentPackageData().lat,m_fileAccess.GetCurrentPackageData().heg);
    SetTimer(ID_TIMER_SIMU,APPStatic::app_lTimeEllapse,NULL);
    ((CMainFrame*)(AfxGetApp()->m_pMainWnd))->m_wndStateToolBar.SetPaintInfo(APPStatic::strOnSimu);
    ((CMainFrame*)(AfxGetApp()->m_pMainWnd))->m_wndStateToolBar.Paint();
	//運行時不能zoom
	OnZoom();
	//量測定時
	SetTimer(ID_TIMER_DIS,(UINT)(1000.0/m_beaconManage.m_dFreq),NULL);
	//文件采樣定時
	SetTimer(ID_TIMER_RADIOFILE ,(UINT)(1000.0/(GetDocument()->m_dRadioFreq)),NULL);
	//
	//打開RAdio.dat讀
	CString strName=GetDocument()->m_strRadioFilePath+_T("\\")+GetDocument()->m_strRadioFileNameWithoutPath;
	CFileException fileExcep;
	m_pBeaconSimu->m_pFileRadio=new CFile();
	m_pBeaconSimu->m_pFileRadio->Open(strName, CFile::modeCreate|CFile::modeWrite,&fileExcep );
	if(fileExcep.m_cause!=CFileException::none)	
	{  fileExcep.ReportError();
	    return ;
 	}
	TRY{
		m_pBeaconSimu->m_pArRadio=new CArchive(m_pBeaconSimu->m_pFileRadio,CArchive::store);
	}
	CATCH(CException,e){
		e->ReportError();
		return ;
	}
 	END_CATCH
	


}

void CRADIOView::OnUpdateStart(CCmdUI* pCmdUI) 
{
	// TODO: Add your command update UI handler code here
	if(m_bSimuStarted){
		pCmdUI->Enable(FALSE);}
	else{
        pCmdUI->Enable();
	}	
}

void CRADIOView::OnStop() 
{  

	m_bSimuStarted=FALSE;
    KillTimer(ID_TIMER_SIMU);	
	KillTimer(ID_TIMER_DIS);
	KillTimer(ID_TIMER_RADIOFILE); 
    m_fileAccess.EndFileAccess();
	((CMainFrame*)(AfxGetApp()->m_pMainWnd))->m_wndStateToolBar.SetPaintInfo(APPStatic::strStopSimu);
    ((CMainFrame*)(AfxGetApp()->m_pMainWnd))->m_wndStateToolBar.Paint();
	m_beaconManage.m_bIsBeaconAvailable=FALSE;
	m_dlgSheet1.UpdateData(FALSE);
	m_dlgSheet2.UpdateData(FALSE);
	if(m_pBeaconSimu->m_pArRadio){
		m_pBeaconSimu->m_pArRadio->Close();
		delete(m_pBeaconSimu->m_pArRadio);
	}
	if(m_pBeaconSimu->m_pFileRadio){
		m_pBeaconSimu->m_pFileRadio->Close();	
		delete(m_pBeaconSimu->m_pFileRadio);
	}

	m_pBeaconSimu->m_dDisMeasure=0.0;
	m_pBeaconSimu->m_dAzMeasure=0.0;

}

void CRADIOView::OnUpdateStop(CCmdUI* pCmdUI) 
{
	// TODO: Add your command update UI handler code here
	if(m_bSimuStarted){
		pCmdUI->Enable();}
	else{
        pCmdUI->Enable(FALSE);
	}	
}

void CRADIOView::RefreshAirPointer()
{//表盤ActiveX控制對象指針是變化的,所以要Refresh!
	m_pAirAttitude=(CAir*)m_dlgSheet1.GetDlgItem(IDC_AIRATTITUDE);
	m_pAirAlt=(CAir*)m_dlgSheet1.GetDlgItem(IDC_AIRALT);
	m_pAirSpeed=(CAir*)m_dlgSheet1.GetDlgItem(IDC_AIRSPEED);
	m_pAirRms=(CAir*)m_dlgSheet1.GetDlgItem(IDC_AIRRMS);
}

void CRADIOView::RefreshMeters()
{
	//指針抖動,看起來更真實一點
	mwArray mwRnd;
    double dRnd;
	mwRnd=randn(1);
	dRnd=mwRnd.ExtractScalar(1);
	double dAltDither=3;
	double dSpeedDither=2;
	double dAttitudeDither=.2;
    //下面開始刷新表盤
	RefreshAirPointer();
	TRAJ traj=m_fileAccess.GetCurrentPackageData();	
	//Altitude
	m_pAirAlt->SetAltitude(traj.heg+dAltDither*dRnd);
	//GroundSpeed
	double dSpeed=sqrt(traj.vene*traj.vene+traj.venu*traj.venu+traj.venn*traj.venn);
	m_pAirSpeed->SetAirspeed(dSpeed+dSpeedDither*dRnd);
    //Pitch
	m_pAirAttitude->SetAHPitch(traj.pitch+dAttitudeDither*dRnd);
	//Roll
    m_pAirAttitude->SetAHRoll(-traj.roll+dAttitudeDither*dRnd);
	//Yaw(Real North Heading)
	m_pAirAttitude->SetAHHeading(traj.yaw+dAttitudeDither*dRnd);
	//Magnetic North Heading
	m_pAirRms->SetRMICompass(traj.yaw-APPStatic::app_dMagneticErrorAngle+dAttitudeDither*dRnd);
	//Beacon to Plane Bearing
    m_pAirRms->SetRMIBearing1(m_pBeaconSimu->m_dAzMeasure+1*dRnd);
    //下面開始刷新Sheet1的Static控件
	CString str;
	str.Format("%6.3lf",traj.heg);
	m_dlgSheet1.m_strAlt=str;
	str.Format("%6.3lf",traj.pitch);
	m_dlgSheet1.m_strPitch=str;
	str.Format("%6.3lf",traj.roll);
	m_dlgSheet1.m_strRoll=str;
	str.Format("%6.3lf",traj.yaw);
	m_dlgSheet1.m_strYaw=str;
	str.Format("%6.3lf",dSpeed);
	m_dlgSheet1.m_strSpeed=str;
	str.Format("%6.3lf",traj.yaw-APPStatic::app_dMagneticErrorAngle);
	m_dlgSheet1.m_strMagNorth=str;
	m_dlgSheet1.UpdateData(FALSE);
}


void CRADIOView::OnChoosecolor() 

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲免费av在线| 国产亚洲欧洲997久久综合| 亚洲精品日产精品乱码不卡| jlzzjlzz欧美大全| 亚洲精品亚洲人成人网在线播放| 色狠狠桃花综合| 午夜视频久久久久久| 日韩亚洲电影在线| 国产激情一区二区三区| 亚洲视频一区二区在线| 欧美网站大全在线观看| 蜜臀av性久久久久蜜臀aⅴ流畅| 精品美女在线观看| 成人av综合在线| 五月婷婷综合网| 久久久久久一二三区| 色婷婷亚洲综合| 日韩av午夜在线观看| 国产三级一区二区| 色综合久久久久| 久久国产生活片100| 国产精品久久久久久妇女6080 | 欧美日韩第一区日日骚| 久久精品国产99国产| 国产精品全国免费观看高清 | 久久久精品一品道一区| 一本一本大道香蕉久在线精品| 日韩国产精品大片| 国产精品人成在线观看免费 | 午夜不卡在线视频| 久久久三级国产网站| 在线观看中文字幕不卡| 激情文学综合网| 亚洲综合图片区| 国产午夜精品久久久久久免费视 | 欧美电视剧在线看免费| 91在线免费播放| 精品伊人久久久久7777人| 亚洲六月丁香色婷婷综合久久| 精品剧情在线观看| 精品视频免费看| 9久草视频在线视频精品| 九一久久久久久| 亚洲一区二区三区自拍| 国产精品久久久久aaaa樱花| 欧美一级免费大片| 欧美在线观看视频一区二区| 国产成人8x视频一区二区| 奇米精品一区二区三区四区| 亚洲色图欧美偷拍| 国产欧美综合在线| 精品对白一区国产伦| 欧美日韩高清一区二区| 日本二三区不卡| 波多野结衣一区二区三区| 极品少妇一区二区三区精品视频| 亚洲bt欧美bt精品777| 亚洲欧洲韩国日本视频| 国产人久久人人人人爽| 精品久久久久久久人人人人传媒 | 亚洲一区二区视频在线| 亚洲天堂av老司机| 亚洲欧洲av色图| 国产日韩欧美精品一区| 2019国产精品| 久久天天做天天爱综合色| 欧美一级欧美一级在线播放| 制服丝袜成人动漫| 欧美日韩视频专区在线播放| 欧洲精品在线观看| 91久久精品一区二区三区| 成人久久视频在线观看| 国产·精品毛片| 国产99久久久国产精品| 丰满少妇久久久久久久| 成人午夜在线视频| 成人黄动漫网站免费app| 成人小视频在线观看| 成人免费视频视频| av网站一区二区三区| 99国内精品久久| 欧美优质美女网站| 欧美夫妻性生活| 日韩一区二区免费在线电影 | 久久综合给合久久狠狠狠97色69| 日韩久久久久久| 久久影院视频免费| 国产欧美一区二区精品性色| 国产精品久久网站| 一区二区三区自拍| 秋霞午夜av一区二区三区| 卡一卡二国产精品 | 成人短视频下载| 色偷偷久久人人79超碰人人澡| 在线观看91视频| 91精品国产品国语在线不卡| 精品国产乱码久久久久久图片| 国产欧美日韩精品在线| 亚洲欧美影音先锋| 视频在线在亚洲| 国产乱人伦偷精品视频不卡| www.99精品| 91精品国产一区二区人妖| 久久免费视频一区| 亚洲精品国久久99热| 日韩 欧美一区二区三区| 国产精品一线二线三线| 91网站视频在线观看| 制服丝袜亚洲网站| 中文字幕精品—区二区四季| 亚洲成人动漫精品| 国产福利一区二区三区视频在线| 99视频一区二区| 777色狠狠一区二区三区| 久久综合色婷婷| 亚洲成人av在线电影| 国产经典欧美精品| 欧美精品久久一区| 国产精品久久久一本精品| 人妖欧美一区二区| 91免费看片在线观看| 26uuu色噜噜精品一区| 一区二区在线观看免费视频播放| 老司机免费视频一区二区| 一本一道久久a久久精品| 精品国产免费人成电影在线观看四季| 中文字幕制服丝袜成人av | 国产一区二区三区不卡在线观看| 一本大道久久精品懂色aⅴ| 亚洲欧洲精品天堂一级| 国产精品综合视频| 国产一区欧美二区| 在线观看免费成人| 国产精品毛片久久久久久| 美女视频一区在线观看| 在线欧美日韩精品| 国产精品毛片久久久久久久| 久久精品国内一区二区三区| 欧美三级一区二区| 中文字幕一区二区日韩精品绯色| 精品一区二区久久| 91精品国产aⅴ一区二区| 亚洲日本电影在线| 成人性生交大片免费看中文网站| 日韩欧美亚洲另类制服综合在线| 亚洲国产综合视频在线观看| 成人av在线资源网站| 久久这里只精品最新地址| 麻豆精品在线播放| 欧美一区二区免费观在线| 亚洲一二三专区| 色欧美乱欧美15图片| 一区精品在线播放| 99热精品国产| 中文字幕亚洲成人| 成人福利电影精品一区二区在线观看 | 色悠久久久久综合欧美99| 国产精品网友自拍| 成人国产电影网| 一区精品在线播放| 一本一道久久a久久精品综合蜜臀| 国产精品少妇自拍| 99免费精品在线观看| 国产欧美一区二区精品婷婷| 国产传媒一区在线| 亚洲国产精品高清| aaa亚洲精品一二三区| 亚洲日本护士毛茸茸| 在线一区二区三区四区| 亚洲一区二区三区视频在线| 精品视频全国免费看| 肉色丝袜一区二区| 精品三级av在线| 国产成人免费视频网站| 中文字幕视频一区二区三区久| 99视频国产精品| 亚洲午夜一区二区三区| 欧美一区二区精品在线| 久久国产生活片100| 国产嫩草影院久久久久| av激情成人网| 午夜在线成人av| 日韩欧美国产高清| 风间由美一区二区av101| 亚洲丝袜另类动漫二区| 欧美日韩一级黄| 另类欧美日韩国产在线| 欧美激情中文字幕| 色8久久精品久久久久久蜜 | 一区二区三区小说| 56国语精品自产拍在线观看| 久久疯狂做爰流白浆xx| 中文av字幕一区| 欧美日韩日本视频| 精品一区二区国语对白| 亚洲免费av网站| 日韩美女天天操| 一本色道久久综合精品竹菊| 免费黄网站欧美| 日韩理论在线观看|