《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 通信與網(wǎng)絡(luò) > 設(shè)計應(yīng)用 > GPS船舶試航數(shù)據(jù)提取與存儲系統(tǒng)的開發(fā)
GPS船舶試航數(shù)據(jù)提取與存儲系統(tǒng)的開發(fā)
來源:微型機與應(yīng)用2013年第23期
徐涴砯,陳 光,高孟茹
(東華大學(xué) 信息科學(xué)與技術(shù)學(xué)院,上海 201620)
摘要: 為了提高船舶試航測試系統(tǒng)定位數(shù)據(jù)的精確性與可靠性,同時適應(yīng)現(xiàn)代試航測試系統(tǒng)的整體性能要求,開發(fā)了一種基于GPS的船舶試航數(shù)據(jù)提取與存儲系統(tǒng)。建立了總體架構(gòu),提出了基于多線程的GPS串口通信和SQL數(shù)據(jù)存儲的數(shù)據(jù)處理改進技術(shù),開發(fā)了軟件系統(tǒng)。通過測試,證明新技術(shù)在提高試航定位數(shù)據(jù)性能方面效果顯著,同時精度符合實際需求。
Abstract:
Key words :

摘  要: 為了提高船舶試航測試系統(tǒng)定位數(shù)據(jù)的精確性與可靠性,同時適應(yīng)現(xiàn)代試航測試系統(tǒng)的整體性能要求,開發(fā)了一種基于GPS的船舶試航數(shù)據(jù)提取與存儲系統(tǒng)。建立了總體架構(gòu),提出了基于多線程的GPS串口通信和SQL數(shù)據(jù)存儲的數(shù)據(jù)處理改進技術(shù),開發(fā)了軟件系統(tǒng)。通過測試,證明新技術(shù)在提高試航定位數(shù)據(jù)性能方面效果顯著,同時精度符合實際需求。
關(guān)鍵詞: 全球定位系統(tǒng);串口通信;多線程;微軟基礎(chǔ)類編程;應(yīng)用程序編程接口

 船舶試航是新船出廠前的一個重要測試過程,其目的在于測試船舶的航行性能,并對船舶設(shè)計方的設(shè)計做出評價,同時這些船舶實際航行的測試資料,可以為設(shè)計方設(shè)計新船舶時提供參考。
 船舶試航大部分采用GPS獲取船舶的定位數(shù)據(jù),由計程儀、羅經(jīng)等相關(guān)設(shè)備記錄參數(shù),然后通過計算和繪制航跡曲線獲得船舶性能。傳統(tǒng)試航作業(yè)中,一般通過手工和計算機輔助設(shè)備獲得數(shù)據(jù),人工干預(yù)度高,難以有效獲得精確度高的數(shù)據(jù),已無法滿足現(xiàn)代試航系統(tǒng)的數(shù)據(jù)性能要求。
 目前船廠所用的船舶試航系統(tǒng)軟件大多工作在DOS界面上,存在穩(wěn)定性差、數(shù)據(jù)安全性弱、移植性差以及人機交互不夠友好等問題。為克服DOS系統(tǒng)帶來的不便,2001年華南理工大學(xué)開發(fā)了一套基于VB開發(fā)的GPS船舶測試系統(tǒng),整個系統(tǒng)雖然結(jié)構(gòu)較為清晰,但由于VB本身特點,對數(shù)據(jù)處理性能以及系統(tǒng)穩(wěn)定性有著一定的局限性。2006年,上海海事大學(xué)發(fā)表了一篇題為《基于GPS的船舶航行試驗系統(tǒng)研究》的論文,在VC++平臺上,應(yīng)用GPS技術(shù)、計算機處理技術(shù)設(shè)計了一套完整的試航測試系統(tǒng),增強了系統(tǒng)穩(wěn)定性,但仍然存在數(shù)據(jù)接收和不能進行同步處理的問題。
 為改善已有試航數(shù)據(jù)系統(tǒng)功能,有效提高數(shù)據(jù)穩(wěn)定性與可靠性,本文在VC++平臺上,通過多線程技術(shù)以及數(shù)據(jù)提取方式的優(yōu)化,提出一個新的GPS船舶試航數(shù)據(jù)處理系統(tǒng)。系統(tǒng)的主要優(yōu)勢在于實時有效地接收處理GPS定位數(shù)據(jù),提高數(shù)據(jù)精度,并結(jié)合SQL數(shù)據(jù)庫技術(shù)安全存儲。
1 系統(tǒng)組成
 GPS船舶試航數(shù)據(jù)提取與存儲系統(tǒng)是GPS船舶試航系統(tǒng)的數(shù)據(jù)接收、處理、存儲部分,主要由兩大部分組成,如圖1所示。其中,GPS串口通信部分主要是對GPS接收機中接收到的船舶的衛(wèi)星定位數(shù)據(jù)進行提取處理;數(shù)據(jù)庫存儲部分將提取處理后的有用數(shù)據(jù)按照一定的格式存儲入數(shù)據(jù)庫以供后期使用。

2 GPS串口通信
 GPS接收機通過串口與PC機相連,將GPS定位數(shù)據(jù)傳輸?shù)絇C機,作為整個系統(tǒng)的數(shù)據(jù)源。由于本系統(tǒng)工作在現(xiàn)場,需要滿足實時穩(wěn)定的通信需求,并保證接收到的GPS數(shù)據(jù)的有效性與完整性。為此,本文采用基于多線程的串口通信技術(shù),能做到在接收定位數(shù)據(jù)的同時,對其進行提取處理。
2.1 串口通信編程
 GPS串口通信的開發(fā)模式通常有Windows API、串口通信組件MSComm及第三方串口通信類。
 其中,MSComm控件雖然編程簡單,但是由于進行了大量封裝,其編程的靈活性、穩(wěn)定性、可控性較差;第三方串口通信類是個介于WinAPI與MScomm控件之間的方式,有一定的封裝性,但相對靈活可控,唯一的缺陷在于移植性要遜于API函數(shù)。新船試航系統(tǒng)需要一個能滿足較高精度,工作在現(xiàn)場,并且可以根據(jù)需要適應(yīng)各種設(shè)備的數(shù)據(jù)提取與存儲系統(tǒng)。同時API函數(shù)法作為與計算機底層設(shè)備聯(lián)系最為緊密的一種實現(xiàn)方法,與MSComm控件和第三方通信類相比,應(yīng)用于多線程系統(tǒng)時有更好的穩(wěn)定性。因而API函數(shù)法能更好滿足試航系統(tǒng)需求,故本文采用API函數(shù)法來實現(xiàn)串口通信。
2.2 多線程編程
 Windows多線程編程可以使用兩種方法:直接使用Win32 API或MFC線程技術(shù)。其中MFC編程較為簡便,更方便實現(xiàn)界面線程。在MFC線程技術(shù)中,線程分為用戶界面線程和工作者線程。用戶界面線程有自己的消息隊列和消息循環(huán)來處理界面消息,用來與用戶進行交互;工作者線程沒有消息循環(huán),一般用來完成后臺工作。
 結(jié)合實際需要以及編程的難易程度,本文選擇MFC線程技術(shù)實現(xiàn)多線程。
2.3 多線程串口通信的實現(xiàn)
 串口通信部分分為數(shù)據(jù)處理與數(shù)據(jù)接收兩大部分。數(shù)據(jù)處理主線程CDataFlow,用于對接收到的數(shù)據(jù)提取處理;數(shù)據(jù)接收工作線程CThreadCom,用于監(jiān)視串口狀態(tài)以及對GPS數(shù)據(jù)的接收。其中用WaitCommEvent函數(shù)對串口進行監(jiān)視,一旦有數(shù)據(jù)到達,即可讀取進緩存區(qū),從而增加了數(shù)據(jù)的實時性。數(shù)據(jù)接收與數(shù)據(jù)處理兩個線程的流程如圖2所示。

 從圖中可以看到,接收到的數(shù)據(jù)將從緩沖區(qū)中讀出并存儲在緩存數(shù)據(jù)文件中,這樣既可以不必考慮數(shù)據(jù)處理速度對于數(shù)據(jù)接收所造成的影響,也不會造成丟失數(shù)據(jù)幀,在數(shù)據(jù)實時接收的同時,保證了數(shù)據(jù)接收的完整性。下面分別說明數(shù)據(jù)處理主線程與數(shù)據(jù)接收線程的具體實現(xiàn)。
 (1)GPS數(shù)據(jù)格式
 在說明如何實現(xiàn)數(shù)據(jù)接收之前,本文先討論一下GPS接收機的數(shù)據(jù)接收格式。GPS數(shù)據(jù)遵循NMEA0183協(xié)議,該協(xié)議主要用來傳輸GPS定位信息,衛(wèi)星信息、經(jīng)緯度信息、速度、時間等信息,輸出標準ASCII碼形式的數(shù)據(jù)信息,協(xié)議包括GPGGA、GPGSA、GPRMC、GPGLL等多種數(shù)據(jù)格式,數(shù)據(jù)格式都以“$”開頭,到*表示校驗碼開始,hh表示語句校驗碼,本文需要提取GPGGA與GPRMC中的信息。
 (2)數(shù)據(jù)接收
 針對實時接收數(shù)據(jù)的要求,本文使用WaitCommEvent()對串口數(shù)據(jù)進行接收。在API函數(shù)中,WaitCommEvent()、WaitForMultipleObject()和GetOverlappedResult()等函數(shù)均可以檢測到串口是否有數(shù)據(jù)。其中waitforMultipleobjects()作用為等待多個被監(jiān)測內(nèi)核對象的結(jié)果,getoverlappedresult()為返回最后重疊操作結(jié)果。相比之下,waitcommevent()是一個特指的通信設(shè)備等待一個事件發(fā)生,并監(jiān)控與該設(shè)備句柄相關(guān)聯(lián)的一系列事件。用該函數(shù)接收數(shù)據(jù)時,一旦數(shù)據(jù)到達串口,系統(tǒng)將會馬上檢測到,并做好接收的準備,其關(guān)鍵實現(xiàn)代碼如下:
 While(m_hcom!=INVALID_HANDLE_VALUE)
 {dwEvent=0
 WaitCommEvent(m_hCom,&dwEvent,Null);
 //檢查串口事件
 If((dwEvent&EV_RXCHAR)==EV_RXCHAR)
 //如果發(fā)現(xiàn)有串口數(shù)據(jù)接收事件,接收數(shù)據(jù)
 {do//循環(huán)接收串口數(shù)據(jù)
 {if(nLength=ReceiveData((LPSTR)rBuf,
 MAX_COM_IN_LENGTH))//
 {if(dwEVENT&~EV_RXCHAR)
 //如果串口數(shù)據(jù)中有字符接收事件,
 //則將事件傳送CDataFlow進行處理
 {if(m_pWndData)
 {m_pWndData->SendMessage(m_dwMsgToData,dwEvent,0);}}}
 If(nLength)//接收到數(shù)據(jù)傳給CDataFlow處理
 {if(m_pWndData)
 {m_pWndData->SengMessage(m_dwMsgToData,(DWORD)rBuf,nLength);}}
 }while(nLength>0);}sleep(1);}sleep(1);}
 (3)GPS數(shù)據(jù)處理
 作為串口通信的主線程,數(shù)據(jù)處理主要功能是在緩存區(qū)中將GPGGA與GPRMC數(shù)據(jù)取出,通過數(shù)據(jù)提取函數(shù)DealFlow提取數(shù)據(jù)包,進行校驗處理后,發(fā)送消息給解碼函數(shù)OnDecodeMsg進行協(xié)議解析:先將有用NMEA數(shù)據(jù)提取,分割成數(shù)組,隨后對數(shù)組進行操作,得到需要的數(shù)據(jù)信息。這種先檢驗后分割再提取的處理方法有助于提高數(shù)據(jù)質(zhì)量。流程圖如圖2所示,下面以GPGGA解碼為例,給出關(guān)鍵代碼與說明:
for(itemCount=1;itemCount<total;itemCount++)
{iLen=0//設(shè)置每項從數(shù)據(jù)的第一個字符開始處理
CString*item=m_dataArray.GetAt(itemCount);//
Switch(itemCount)//
{case1:itemLen=2;
CGPSPublic::ConverToInt((int&)pack-
>GPS_NMEA_GPGGA.body.time.hour,
item->Mid(iLen,itemLen));//
CGPSPublic::ConverToInt((int&)pack->
GPS_NMEA_GPGGA.body.time.minute,
item->Mid(iLen,itemLen));//
CGPSPublic::ConverToInt((int&)pack->
GPS_NMEA_GPGGA.body.time.second,
item->Mid(iLen,itemLen));//break;
case2:CGPSPublic::ConverToLatitudeHavePoint(
(double&)pack->GPS_NMEA_GPGGA.body.latitude.lati
tude,*item);//break;
case3:itemLen=1;
CGPSPublic::ConverToChar((char&)pack->
GPS_NMEA_GPGGA.bady.latitudetype,
*item->Mid(iLen,itemLen),itemLen);break;
……
 值得一提的是,在數(shù)據(jù)提取與校驗實現(xiàn)算法中,對字符串操作的函數(shù)必不可少,本文主要通過使用以下幾個主要函數(shù)對字符串操作:
 (1)Find()函數(shù)
 該函數(shù)用于查找指定目標第一次出現(xiàn)在字符串中位置,如果不存在即返回值-1。Find函數(shù)在數(shù)據(jù)截取算法中主要用于查找回車符,以及NMEA-0183協(xié)議中的逗號,返回的位置參數(shù)對后面Delete函數(shù)的應(yīng)用起到重要的作用。
 (2)Delete()函數(shù)
 該函數(shù)用于刪除字符串中無用的內(nèi)容,Delete()函數(shù)包括2個基本參數(shù),即起始位置和終點位置,函數(shù)將刪除之間的內(nèi)容。
 (3)Compare()函數(shù)
 該函數(shù)用于比較字符串與目標字符串之間區(qū)別,可以有效地在包含大量信息的字符串中篩選出有用信息。如果字符串與目標字符串相同,則返回值為0,不相同則返回值不為0。
3 數(shù)據(jù)庫存儲

 


 船舶試航定位信息數(shù)據(jù)庫作為后臺數(shù)據(jù)庫,不僅要提供一種可靠的數(shù)據(jù)存儲,作為定位數(shù)據(jù)信息的容器,同時還需有效地管理其中數(shù)據(jù)信息,并提供高效的數(shù)據(jù)訪問和恢復(fù)機制。下面將通過數(shù)據(jù)表的設(shè)計與ODBC數(shù)據(jù)庫互聯(lián)兩個部分來說明如何實現(xiàn)高效可靠的數(shù)據(jù)存儲。
 (1)SQL Server數(shù)據(jù)庫配置與數(shù)據(jù)表設(shè)計
 在安裝和完成SQL Server本地配置之后,需要新建一個數(shù)據(jù)庫,并添加一張表用于儲存數(shù)據(jù)。本系統(tǒng)需要儲存的參數(shù)是經(jīng)度、緯度、速率、航向這4個數(shù)據(jù),因此在數(shù)據(jù)庫的列設(shè)置中,需要添加這4個名稱,并且設(shè)置字符類型。由于速率和航向在位移很小時,不會顯示數(shù)據(jù),為了避免之后編譯中出錯,應(yīng)允許數(shù)據(jù)為NULL值。由于GPS接收機接收到的經(jīng)緯度坐標最大長度不超過10位,因而字符類型設(shè)置為nchar(10)。
 (2)ODBC數(shù)據(jù)庫互聯(lián)
 開放數(shù)據(jù)庫互聯(lián)是微軟公司開放服務(wù)結(jié)構(gòu)中有關(guān)數(shù)據(jù)庫的一個組成部分,它建立了一組規(guī)范,并提供了一組對數(shù)據(jù)庫訪問的標準API。這些API利用SQL來完成其大部分任務(wù)。ODBC本身也提供了對SQL語言的支持,用戶可以直接將SQL語句送給ODBC。
 定位信息數(shù)據(jù)庫需要完成的主要任務(wù)是:數(shù)據(jù)動態(tài)存儲、數(shù)據(jù)表操作和數(shù)據(jù)調(diào)用,其中用到的VC++中MFC基類庫定義了3個數(shù)據(jù)庫類,CDatabase(數(shù)據(jù)庫類):對象提供數(shù)據(jù)源連接、CRecordSet(記錄集類):對象提供數(shù)據(jù)源動態(tài)行集方式的記錄集以及CRecordView(可視記錄集類):對象以控制的形式顯示數(shù)據(jù)庫記錄。
 在VS2010中關(guān)聯(lián)數(shù)據(jù)庫需要添加MFCODBC使用者這個類,在設(shè)置完成類MFCODBC使用者之后,程序會自動添加兩個文件,分別是Table_1.h和Table_1.cpp(Table_1是數(shù)據(jù)庫中設(shè)置的表的名稱),并生成一個CTable_1的類,通過這個類,可以定義數(shù)據(jù)庫指針,即:Ctable_1 m_pSet。在VC++中,通過這個指針可以實現(xiàn)對數(shù)據(jù)庫的數(shù)據(jù)添加、刪除、查找等功能,也可以通過“.”運算代碼進行定位和賦值。在添加新記錄后,需要使用Updata()函數(shù)將緩存中保存的數(shù)據(jù)寫入數(shù)據(jù)庫中,從而完成數(shù)據(jù)庫的儲存。同樣,數(shù)據(jù)讀取功能也可以通過對指針的操作完成。圖3為數(shù)據(jù)存入情況。

 本文在VC++6.0環(huán)境下,結(jié)合SQL Server技術(shù),對GPS定位數(shù)據(jù)進行接收與提取,并存入數(shù)據(jù)庫中,以供GPS船舶試航作為基礎(chǔ)數(shù)據(jù)。其中,串口通信部分不僅利用了多線程技術(shù),將數(shù)據(jù)接收與數(shù)據(jù)處理分開,有效地提高了數(shù)據(jù)的處理能力;同時在數(shù)據(jù)處理時,還通過對數(shù)據(jù)包進行預(yù)處理,剔除接收中可能產(chǎn)生的掉幀數(shù)據(jù),繼而將NMEA語句分割,存入數(shù)組,并對數(shù)組進行相應(yīng)解碼,實現(xiàn)了在提高效率的同時減少出錯的幾率。最后將解析后的數(shù)據(jù)自動存入數(shù)據(jù)庫,供GPS船舶試航系統(tǒng)作為基礎(chǔ)數(shù)據(jù)。
作為GPS新船舶試航系統(tǒng)的數(shù)據(jù)源,本系統(tǒng)已通過測試,其精度符合船廠要求,操作界面友好,現(xiàn)場運行效果良好。
參考文獻
[1] 徐志京,許開宇,胡文燁.基于GPS的船舶航行試驗系統(tǒng)研究[C].大連:中國航海學(xué)會通信導(dǎo)航專業(yè)委員會2006年學(xué)術(shù)年會論文集,大連海事大學(xué)出版社,2006.
[2] 李莉.GPS接收機串口通信的MSComm和API實現(xiàn)[J].中國新通信,2010(6):81-84.
[3] 陳凱,鄧明,張啟升,等.Windows CE下多線程串口通信[J].微計算機信息,2007,23(10-2).
[4] 劉書智.Visual C++串口通信與工程應(yīng)用實踐[M].北京:中國鐵道出版社,2011.
[5] 劉夏.基于VB的GPS定位算法與軟件實現(xiàn)[J].計算機與數(shù)字工程,2013(2):208-211.
[6] 劉巖,汪劍云,吳北平,等.基于VB.NET的GPs接收機串口通信的實現(xiàn)[J].地理空間信息,2012,10(2):47-49.
[7] 李冰,曾連蓀.GPS定位信息提取及應(yīng)用[J].電子設(shè)計工程,2012,20(12):72-74.
[8] 沈振漢,黃華燦.PC機與GPS接收機的通訊程序設(shè)計與實現(xiàn)[J].華僑大學(xué)學(xué)報(自然科學(xué)版),2011.32(1):118-120.
[9] 王靖,紀元法,孫希延,等.高動態(tài)GPS信號模擬器中串口通信的實現(xiàn)[J].桂林電子科技大學(xué)學(xué)報,2010,30(1):30-32.
[10] 陽世榮.基于Keil與VSPD軟件仿真的串口通信調(diào)試技術(shù)[J].艦船電子工程,2010,30(1):30-32.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
中日韩高清电影网| 亚洲黄色大片| 亚洲国产99精品国自产| 国产夜色精品一区二区av| 国产精品久久国产三级国电话系列| 欧美成人在线网站| 久久综合中文字幕| 久久久免费精品| 久久久国产午夜精品| 欧美影院精品一区| 欧美一级片一区| 香蕉av777xxx色综合一区| 亚洲自拍都市欧美小说| 国产精品99久久久久久久久 | 久久成人av少妇免费| 先锋影音国产一区| 久久精彩免费视频| 久久久久九九视频| 久热精品视频在线观看| 欧美sm视频| 欧美精品成人在线| 欧美日韩视频专区在线播放 | 久久aⅴ乱码一区二区三区| 亚洲尤物在线视频观看| 午夜精品亚洲一区二区三区嫩草| 亚洲欧美日韩国产一区二区| 性色av一区二区怡红| 久久激情婷婷| 亚洲精选一区| 亚洲深夜福利网站| 午夜影院日韩| 久久久xxx| 欧美成人免费一级人片100| 欧美激情在线免费观看| 欧美日韩在线观看视频| 国产精品久久二区| 国产综合视频在线观看| 亚洲激情精品| 亚洲一级二级在线| 久久国产一区二区| 999亚洲国产精| 午夜精品美女久久久久av福利| 欧美一区二区三区另类| 麻豆精品传媒视频| 欧美日韩国产精品| 国产精品自在在线| 在线精品观看| 一本久久综合| 欧美在线观看日本一区| 一本久久青青| 久久se精品一区二区| 麻豆精品网站| 国产精品成av人在线视午夜片| 国产精品一区在线观看你懂的| 黄色成人免费观看| 一本久道久久久| 亚洲电影免费观看高清完整版在线观看 | 欧美在线黄色| 欧美电影免费观看网站| 国产精品毛片| 久久亚洲精品一区| 99精品国产福利在线观看免费| 亚洲欧美日韩国产精品 | 国模叶桐国产精品一区| 亚洲毛片在线观看| 欧美一区1区三区3区公司| 亚洲剧情一区二区| 久久国产直播| 欧美日韩1080p| 国产手机视频一区二区| 亚洲狼人综合| 亚洲成色777777女色窝| 亚洲影院色在线观看免费| 另类酷文…触手系列精品集v1小说| 欧美午夜电影在线| 亚洲成在人线av| 香蕉成人久久| 亚洲综合视频网| 欧美大秀在线观看| 国产女精品视频网站免费| 亚洲精品免费在线| 久久精品亚洲热| 亚洲欧美偷拍卡通变态| 欧美精品系列| 一区在线影院| 亚洲一区自拍| 一区二区黄色| 欧美粗暴jizz性欧美20| 国产日韩欧美日韩大片| 一区二区三区精品| 日韩视频在线免费观看| 久久婷婷麻豆| 国产午夜精品久久久久久久| 一区二区三区www| 日韩天堂av| 欧美v日韩v国产v| 国产又爽又黄的激情精品视频| 野花国产精品入口| 日韩天天综合| 欧美激情在线免费观看| 在线视频国内自拍亚洲视频| 久久成人18免费观看| 久久电影一区| 国产欧美一区二区精品性 | 亚洲午夜久久久| 亚洲视频一起| 欧美日韩国产黄| 亚洲人成网站在线观看播放| 亚洲电影中文字幕| 久久久精品国产一区二区三区| 国产精品天美传媒入口| 欧美日韩精品福利| 国产精品国产自产拍高清av王其| 亚洲精品一区二区在线| 亚洲欧洲精品一区二区三区波多野1战4| 久久不射网站| 国产亚洲精久久久久久| 午夜精品999| 久久国产一区二区三区| 国产喷白浆一区二区三区| 亚洲一区在线观看视频| 性欧美大战久久久久久久免费观看 | 亚洲精品女av网站| 亚洲免费观看视频| 欧美日韩国产经典色站一区二区三区| 亚洲国产天堂久久综合| 亚洲人成高清| 欧美xart系列高清| 亚洲国产精品一区二区三区| 91久久精品日日躁夜夜躁欧美 | 亚洲日本va午夜在线电影| 欧美xart系列在线观看| 亚洲国产网站| 在线视频欧美一区| 欧美系列精品| 亚洲一区欧美二区| 欧美中文字幕在线视频| 国产亚洲欧美日韩精品| 亚洲电影在线观看| 欧美精品www在线观看| 日韩一区二区免费高清| 亚洲一区欧美激情| 国产精品一区二区在线观看网站| 香蕉精品999视频一区二区| 久久九九久久九九| 在线国产欧美| 在线一区二区视频| 国产精品免费区二区三区观看| 亚洲免费影视| 久久这里只有精品视频首页| 亚洲国产一区在线| 亚洲午夜av电影| 国产日产欧美一区| 亚洲激情欧美激情| 国产精品v欧美精品v日本精品动漫| 亚洲免费影视第一页| 老司机成人网| 日韩亚洲欧美中文三级| 亚洲欧美综合v| 狠狠入ady亚洲精品经典电影| 亚洲精品1234| 欧美性理论片在线观看片免费| 性欧美1819sex性高清| 欧美成人性网| 午夜精品在线观看| 日韩视频一区| 久久精品1区| 亚洲三级性片| 久久成人亚洲| 亚洲国产精品一区二区www| 亚洲综合色网站| 永久免费视频成人| 亚洲一区二区三区精品在线| 国产一区二区剧情av在线| 99在线精品观看| 国产欧美亚洲一区| 99这里只有精品| 国产日韩一区二区三区在线| 99精品免费视频| 国产日韩精品视频一区| 一本久道综合久久精品| 国产午夜一区二区三区| 夜夜狂射影院欧美极品| 国产日韩欧美在线| 亚洲校园激情| 亚洲国产成人久久| 欧美一区二区国产| 99国产麻豆精品| 麻豆成人综合网| 亚洲女同同性videoxma| 欧美日本亚洲| 久久精品噜噜噜成人av农村| 国产精品久久久久一区二区三区共| 亚洲国产99精品国自产| 欧美午夜视频| 亚洲老板91色精品久久| 狠狠综合久久av一区二区老牛| 亚洲一区二区三区中文字幕| 亚洲国产电影| 久久久亚洲国产美女国产盗摄|