• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    XMLHttp對(duì)象在嵌入式Web實(shí)時(shí)系統(tǒng)中的應(yīng)用

    2011-06-22 08:19:06彭偉
    關(guān)鍵詞:調(diào)用命令嵌入式

    彭偉

    (武漢城市職業(yè)學(xué)院,武漢430064)

    彭偉(副教授),研究方向?yàn)榍度胧较到y(tǒng)開發(fā)、網(wǎng)絡(luò)技術(shù)、計(jì)算機(jī)算法。

    引 言

    傳統(tǒng)的Web應(yīng)用在交互操作過程中頻繁出現(xiàn)全頁刷新的問題無法避免,即使當(dāng)前頁面中僅有局部信息是需要?jiǎng)討B(tài)刷新顯示的。這不僅影響到界面效果,在實(shí)時(shí)監(jiān)測(cè)過程中還會(huì)明顯影響服務(wù)器的響應(yīng)速度。

    Ajax技術(shù)的出現(xiàn)為解決客戶端Web與嵌入式HTTP服務(wù)器之間的交互問題提供了重要途徑。Ajax是異步Javascript與XML的簡(jiǎn)稱,這一概念由Jesse James Garrett提出,它是一組與 Web開發(fā)相關(guān)的技術(shù),包括基于HTM L/XHTML與CSS標(biāo)準(zhǔn)的頁面表示、基于DOM的動(dòng)態(tài)顯示和交互,以及基于XM LHttpRequest與服務(wù)器之間的異步通信。所有上述技術(shù)通過Javascript綁定在一起。

    嵌入式以太網(wǎng)實(shí)時(shí)系統(tǒng)開發(fā)者可以嘗試通過Ajax的核心對(duì)象XMLHttp在“后臺(tái)”與嵌入式 HTTP服務(wù)器交互,對(duì)服務(wù)器發(fā)起遠(yuǎn)程控制,讀取服務(wù)器動(dòng)態(tài)返回的監(jiān)測(cè)信息并刷新顯示在客戶端Web界面中的特定位置,且所有操作均不會(huì)導(dǎo)致當(dāng)前Web界面被全頁刷新。

    本文以Microchip公司的TCP/IP協(xié)議棧為基礎(chǔ),討論XM LHttp對(duì)象在嵌入式Web實(shí)時(shí)系統(tǒng)中的具體應(yīng)用方法。所選用的測(cè)試電路以PIC18F452單片機(jī)與以太網(wǎng)接口芯片 RTL8019AS為核心,嵌入式HTTP服務(wù)器所有Web相關(guān)文件保存在系統(tǒng)外部EEPROM存儲(chǔ)器中。

    1 XMLHttp在客戶端Web中的應(yīng)用

    XMLHttp是Ajax技術(shù)的核心,由微軟公司在IE5.0瀏覽器中率先推出,后被命名為XMLHttpRequest。

    1.1 客戶端Javascript函數(shù)

    1.1.1 創(chuàng)建XMLHttp對(duì)象的通用函數(shù)

    客戶端與嵌入式系統(tǒng)HTTP服務(wù)器的所有交互都將基于在客戶端所創(chuàng)建的XM LHttp對(duì)象。該函數(shù)在IE中創(chuàng)建XMLHttp對(duì)象的語句為:

    在非IE中創(chuàng)建XMLHttp對(duì)象的語句為:

    創(chuàng)建XM LHttp對(duì)象后最重要的操作是設(shè)置onreadystatechange屬性(非IE中為onload),為其綁定異步回調(diào)函數(shù)。當(dāng)XMLHttp對(duì)象狀態(tài)變化時(shí),所指定的回調(diào)函數(shù)將自動(dòng)處理服務(wù)器回應(yīng)數(shù)據(jù)。

    1.1.2 客戶端發(fā)送控制命令的函數(shù)

    (1)Send_Control_CMD(URL,Html_id)

    該函數(shù)可由客戶端Web中的控制命令按鈕點(diǎn)擊事件onClick觸發(fā)調(diào)用,它調(diào)用CreateXM LHttpObj創(chuàng)建XMLHttp對(duì)象,設(shè)置回調(diào)函數(shù),然后以GET方法對(duì) HTTP服務(wù)器發(fā)起請(qǐng)求。函數(shù)的第一個(gè)參數(shù)URL可以是控制命令串,也可以是CGI、HTML及其他各種Web文件名。如果要求在客戶端Web中顯示HTTP服務(wù)器返回信息,則需要設(shè)置第二個(gè)參數(shù)Html_id。例如,在發(fā)送控制命令點(diǎn)亮系統(tǒng)中某個(gè)指示燈后,要求將服務(wù)器返回的該指示燈的當(dāng)前狀態(tài)顯示在客戶端。所設(shè)置的參數(shù)Html_id是客戶端Web頁中的某個(gè)容器的ID,返回信息將顯示到該容器中。如果不需要服務(wù)器回應(yīng)文本信息,或?qū)貞?yīng)信息不予處理,可將該參數(shù)設(shè)為空。函數(shù)具體實(shí)現(xiàn)如下:

    Send_Control_CMD在每次被調(diào)用時(shí)首先創(chuàng)建一個(gè)通用對(duì)象Obj,然后創(chuàng)建XM LHttp對(duì)象,并將其保存在自定義的Obj.xmlhttpobj屬性中,隨后調(diào)用XMLHttp對(duì)象的open方法與send方法,調(diào)用格式為:

    其中open方法的bstrMethod參數(shù)為HTTP請(qǐng)求的方法,例如所選擇的“GET”方法,bstrUrl參數(shù)為請(qǐng)求的URL地址,在本文討論的嵌入式Web實(shí)時(shí)系統(tǒng)中,它用來表示控制命令串,譬如用來啟動(dòng)外部直流電機(jī)的控制命令串“0?1=MOTOR”,varAsync參數(shù)用于指定當(dāng)前請(qǐng)求是否為異步方式,默認(rèn)為true,最后兩個(gè)參數(shù)提供帳號(hào)密碼,用于服務(wù)器驗(yàn)證。通過open方法初始化XMLHttp對(duì)象以后,要用send方法發(fā)送請(qǐng)求到HTTP服務(wù)器并等待回應(yīng)。由于XMLHttp對(duì)象被設(shè)為異步模式,send調(diào)用將不會(huì)被阻塞,XM LHttp對(duì)象的回調(diào)函數(shù)mReadyCall-Back將在HTTP服務(wù)器回應(yīng)時(shí)異步執(zhí)行。

    由于Web頁中可能有多個(gè)不同按鈕要發(fā)送不同的控制命令,為簡(jiǎn)化程序設(shè)計(jì)且便于管理對(duì)象,可將每一按鈕調(diào)用該函數(shù)創(chuàng)建的XMLHttp對(duì)象統(tǒng)一保存到全局對(duì)象數(shù)組ObjArray中。對(duì)象數(shù)組ObjArray由 Web頁中的Javascript腳本定義,即:

    (2)mReadyCallBack()

    它是Send_Control_CMD函數(shù)所創(chuàng)建的保存于對(duì)象數(shù)組ObjArray中的每個(gè)XM LHttp對(duì)象的異步回調(diào)函數(shù),通過該函數(shù)可統(tǒng)一異步處理服務(wù)器回應(yīng)數(shù)據(jù)。函數(shù)具體實(shí)現(xiàn)如下:

    當(dāng)ObjArray中的任意一個(gè)XM LHttp對(duì)象的就緒狀態(tài)變化時(shí),將觸發(fā)對(duì)mReadyCallBack函數(shù)的異步調(diào)用,該函數(shù)將通過for循環(huán)掃描對(duì)象數(shù)組ObjArray,對(duì)HTTP服務(wù)器當(dāng)前回應(yīng)的對(duì)象進(jìn)行處理。通過XMLHttp對(duì)象的responseText屬性可獲取服務(wù)器回應(yīng)信息,通過Web容器的innerHTML屬性可將回應(yīng)信息顯示到Web頁中。在處理完當(dāng)前XMLHttp對(duì)象以后,mReadyCallBack最終將用delete釋放該對(duì)象所占用的資源。如果調(diào)用Send_Control_CMD函數(shù)時(shí)第2個(gè)參數(shù)為空,則表示發(fā)出控制命令后不需要處理服務(wù)器回應(yīng)文本信息,回調(diào)函數(shù)僅僅需要釋放該對(duì)象所占用的資源。

    1.1.3實(shí)現(xiàn)客戶端實(shí)時(shí)監(jiān)測(cè)功能的函數(shù)

    (1)RealTime_Monitoring()

    該函數(shù)專門用于實(shí)時(shí)監(jiān)測(cè)動(dòng)態(tài)數(shù)據(jù),它由Web頁面加載事件onLoad觸發(fā)調(diào)用,通過所創(chuàng)建的XMLHttp對(duì)象向服務(wù)器請(qǐng)求動(dòng)態(tài)文件Status.cgi,以獲取監(jiān)測(cè)數(shù)據(jù)。

    其中xmlhttp定義為全局變量。

    (2)aReadyCallBack()

    該函數(shù)是實(shí)時(shí)監(jiān)測(cè)系統(tǒng)外設(shè)數(shù)據(jù)函數(shù)RealTime_Monitoring所創(chuàng)建的XMLHttp對(duì)象的專用回調(diào)函數(shù),它在處理HTTP服務(wù)器回應(yīng)時(shí)將返回的動(dòng)態(tài)監(jiān)測(cè)數(shù)據(jù)顯示在ID為“txtStatus”的Web容器中,譬如<span id="txtStatus">… </span>,所返回的內(nèi)容將替換其中的“…”。函數(shù)具體實(shí)現(xiàn)如下:

    回調(diào)函數(shù)aReadyCallBack與回調(diào)函數(shù)mReadyCall-Back的差別在于:它釋放已經(jīng)處理回應(yīng)的XM LHttp對(duì)象(置為null)以后,接著執(zhí)行了一項(xiàng)重要工作,即調(diào)用實(shí)時(shí)監(jiān)測(cè)函數(shù)RealTime_Monitoring()。通過創(chuàng)建新的 XMLhttp對(duì)象,將動(dòng)態(tài)請(qǐng)求與顯示刷新“接力”進(jìn)行下去,從而使實(shí)時(shí)監(jiān)測(cè)無限延續(xù)。

    顯然,通過XMLHttp對(duì)象所實(shí)現(xiàn)的實(shí)時(shí)監(jiān)測(cè),其效果遠(yuǎn)遠(yuǎn)優(yōu)于傳統(tǒng)的Web請(qǐng)求與響應(yīng)操作模式下所使用的通過在網(wǎng)頁頭部加入<meta http-equiv="refresh"content="定時(shí)長(zhǎng)度">,或者使用Javascript的setTimeout函數(shù)設(shè)置超時(shí)值,使客戶端自動(dòng)按固定時(shí)間間隔請(qǐng)求服務(wù)器刷新顯示動(dòng)態(tài)信息的方法。

    1.2 客戶端Web與嵌入式HTTP服務(wù)器的交互操作

    有了上述以XMLHttp對(duì)象為中心的函數(shù)定義,完成客戶端Web與嵌入式HTTP服務(wù)器之間的交互操作就很容易了,例如:

    ①通過Web頁按鈕啟動(dòng)電機(jī),可有<input type="button"onClick="Send_Ctrl_CMD('0 ?1=MOTOR',')"value="運(yùn)行">。按鈕事件觸發(fā)對(duì)Send_Control_CMD的調(diào)用,它通過XMLHttp對(duì)象在“后臺(tái)”發(fā)送命令串“0?1=MOTOR”,提交給嵌入式系統(tǒng)HTTP服務(wù)器處理,控制電機(jī)啟動(dòng),實(shí)現(xiàn)遠(yuǎn)程控制功能。

    ②實(shí)時(shí)監(jiān)測(cè)嵌入式系統(tǒng)外設(shè)狀態(tài),可有<body on-Load="RealTime_Monitoring();">。Web頁面加載事件onLoad觸發(fā)對(duì)RealTime_Monitoring的函數(shù)調(diào)用,它同樣也通過XMLHttp對(duì)象訪問嵌入式系統(tǒng)HTTP服務(wù)器,不同的是它所請(qǐng)求的是動(dòng)態(tài)文件Status.cgi。現(xiàn)假設(shè)所訪問的動(dòng)態(tài)文件主要內(nèi)容如下:

    嵌入式系統(tǒng)HTTP服務(wù)器程序?qū)腗PFS文件系統(tǒng)讀取該動(dòng)態(tài)文件并將其發(fā)往客戶端。在發(fā)送過程中,HTTP服務(wù)器將對(duì)所遇到的形如“%xx”的變量碼進(jìn)行解析處理。例如“%02”被定義為測(cè)試電路中AN0通道的 A/D值,“%00”“%01”被定義為兩個(gè)外接 LED的開關(guān)狀態(tài),“%10”被定義為所控制的直流電機(jī)的啟/停狀態(tài)。經(jīng)過HTTP服務(wù)器處理后的變量值將被系統(tǒng)當(dāng)前實(shí)際的外設(shè)狀態(tài)值所替換并返回到客戶端。

    由于RealTime_Monitoring函數(shù)與aReadyCallBack函數(shù)配合實(shí)現(xiàn)了XMLHttp對(duì)象的創(chuàng)建、請(qǐng)求、異步響應(yīng)、釋放,再創(chuàng)建、再請(qǐng)求、再異步響應(yīng)、再釋放等,從而借助XMLHttp對(duì)象在“后臺(tái)”實(shí)現(xiàn)了理想的實(shí)時(shí)監(jiān)測(cè)功能。由于監(jiān)測(cè)結(jié)果實(shí)時(shí)刷新顯示在Web中的特定容器位置,不會(huì)導(dǎo)致全頁刷新問題,這也為用戶操作帶來了良好體驗(yàn)。

    解決了客戶端通過XM LHttp對(duì)象在“后臺(tái)”與 HTTP服務(wù)器進(jìn)行交互、發(fā)送控制命令及異步處理回應(yīng)、實(shí)現(xiàn)實(shí)時(shí)監(jiān)測(cè)功能的問題以后,接著要解決的是HTTP服務(wù)器端如何處理客戶端XMLHttp對(duì)象所發(fā)送的控制命令,以及如何處理并返回客戶端XMLHttp對(duì)象所請(qǐng)求的動(dòng)態(tài)文件。

    2 HTTP服務(wù)器功能簡(jiǎn)介

    Microchip TCP/IP協(xié)議棧是一套服務(wù)于標(biāo)準(zhǔn)的、基于TCP/IP的應(yīng)用程序,可應(yīng)用于HTTP服務(wù)器、FTP服務(wù)器等,它遵循了TCP/IP參考模型,協(xié)議棧按照模塊化方式實(shí)現(xiàn)。Microchip整個(gè) TCP/IP協(xié)議棧的代碼全部用C語言編寫,每層的實(shí)現(xiàn)代碼駐留在一個(gè)獨(dú)立的C程序文件中,服務(wù)和應(yīng)用程序編程接口則通過頭文件或C程序文件定義,協(xié)議??墒褂肕CC18或 HI-TECH PICC 18編譯,圖1對(duì)比了TCP/IP參考模型與Microchip TCP/IP協(xié)議棧。

    圖1 TCP/ⅠP 參考模型與Microchip TCP/ⅠP協(xié)議棧對(duì)比

    為實(shí)現(xiàn)HTTP服務(wù)器功能,協(xié)議棧所提供的相關(guān)文件主要有TCP.c與 HTTP.c,它們分別處理客戶端與服務(wù)器端的連接及對(duì)HTTP請(qǐng)求的處理。在啟動(dòng)嵌入式系統(tǒng)HTTP服務(wù)器時(shí),主程序首先調(diào)用兩個(gè)初始化函數(shù):StackInit()與 HTTPInit()。前者初始化協(xié)議棧,包括MACInit()、ARPInit()、TCPInit();后者初始化 HTTP 服務(wù)器,使所有的HTTP連接處于監(jiān)聽狀態(tài),受嵌入式系統(tǒng)資源限制,實(shí)際支持的最大連接數(shù)默認(rèn)為3個(gè)。

    HTTP服務(wù)器主程序接下來的主要工作是在while(1)中循環(huán)調(diào)用HTTPServer()函數(shù),處理客戶端對(duì)HTTP服務(wù)器的請(qǐng)求并作出響應(yīng)。HTTPServer實(shí)際執(zhí)行的任務(wù)是循環(huán)掃描每個(gè) HTTP連接,并在每個(gè)連接上調(diào)用處理HTTP請(qǐng)求的函數(shù)HTTPProcess()。該函數(shù)對(duì)客戶端發(fā)送的控制命令串的處理及動(dòng)態(tài)文件的請(qǐng)求處理將分別通過回調(diào)函數(shù) HTTPExecCmd和HTTPGetVar完成,這兩個(gè)核心回調(diào)函數(shù)由主程序具體實(shí)現(xiàn)。

    3 動(dòng)態(tài)響應(yīng)XMLHttp對(duì)象請(qǐng)求的核心函數(shù)

    對(duì)于客戶端Web頁內(nèi)onClick事件與onLoad事件觸發(fā)的以下兩個(gè)調(diào)用示例,它們都基于XMLHttp對(duì)象,前者向嵌入式HTTP服務(wù)器發(fā)送控制命令,后者請(qǐng)求動(dòng)態(tài)文件:

    3.1 HTTPExecCmd函數(shù)

    HTTPExecCmd函數(shù)對(duì)客戶端發(fā)送的命令串解碼并執(zhí)行相應(yīng)的操作。函數(shù)聲明為:void HTTPExecCmd(BYTE**argv,BYTE argc)。考察客戶端函數(shù)調(diào)用所發(fā)送的控制命令串:“0?1=MOTOR”。HTTP服務(wù)器函數(shù)HTTPProcess在調(diào)用HTTPExecCMD之前已經(jīng)先通過HTTPParse函數(shù)由該命令串解析出“0” 、“1” 、“MOTOR”這三項(xiàng)內(nèi)容并賦給函數(shù)參數(shù)argv,所解析出的三項(xiàng)的具體定義由主程序設(shè)置。

    3.2 HTTPGetVar函數(shù)

    每當(dāng)HTTP服務(wù)器當(dāng)前所處理的CGI動(dòng)態(tài)文件Status.cgi中遇到變量碼“%xx”時(shí)即調(diào)用該函數(shù),處理動(dòng)態(tài)請(qǐng)求。HTTPGetVar函數(shù)聲明為:WORD HTTPGetVar(BYTE var,WORD ref,BYTE*val)。該函數(shù)的val參數(shù)是待解析處理的動(dòng)態(tài)文件內(nèi)的某個(gè)變量的標(biāo)識(shí)符,參數(shù)ref用于跟蹤返回值的狀況,參數(shù) val用于逐個(gè)返回?cái)?shù)據(jù)字節(jié)。

    以調(diào)用RealTime_Monitoring函數(shù)為例,它通過XMLHttp對(duì)象請(qǐng)求動(dòng)態(tài)文件Status.cgi,當(dāng)HTTP服務(wù)器接收到該請(qǐng)求時(shí),將從保存于EEPROM的MPFS文件系統(tǒng)讀取Status.cgi文件,然后由HTTP.c的SendFile函數(shù)向客戶端XMLHttp對(duì)象回傳所請(qǐng)求的動(dòng)態(tài)文件。在回傳過程中,所遇到的動(dòng)態(tài)文件內(nèi)的變量將由主程序所實(shí)現(xiàn)的HTTPGetVar函數(shù)逐一進(jìn)行處理。動(dòng)態(tài)文件中的各種變量同樣將由HTTP服務(wù)器主程序進(jìn)行定義。以Status.cgi文件中表示AN0通道 A/D轉(zhuǎn)換值的變量“%02”為例,由于主程序不僅循環(huán)調(diào)用HTTPServer函數(shù)響應(yīng)客戶請(qǐng)求并處理回應(yīng),在循環(huán)中還會(huì)分時(shí)處理外設(shè)操作,包括所需要執(zhí)行的AN0通道的A/D轉(zhuǎn)換操作。通常所有這些相關(guān)操作被集中放在處理I/O的函數(shù)ProccessIO()中實(shí)現(xiàn)?,F(xiàn)假定RA0引腳外接可變電阻器RV1,則AN0通道的A/D轉(zhuǎn)換具體實(shí)現(xiàn)如下:

    每一次的A/D轉(zhuǎn)換值都被刷新保存在AN0String字符串中,以便發(fā)往客戶端顯示。當(dāng) HTTP服務(wù)器的HTTPProcess函數(shù)所調(diào)用的SendFile函數(shù)當(dāng)前遇到了變量“%02”,它會(huì)將其交由HTTPGetVar函數(shù)處理。所輸入的第1個(gè)參數(shù)var為2,它由變量“%02”轉(zhuǎn)換為BYTE類型得到,用于標(biāo)識(shí)當(dāng)前變量要獲取的是AN0通道的A/D轉(zhuǎn)換值。

    現(xiàn)假設(shè)AN0String當(dāng)前獲取的 A/D值為“709”,HTTPGetVar函數(shù)可通過以下關(guān)鍵語句返回A/D值:

    其中ref初始時(shí)默認(rèn)為0。顯然,該函數(shù)將被連續(xù)調(diào)用3次,每次調(diào)用時(shí) ref遞增,直到通過*val返回最后一個(gè)字節(jié)以后,通過返回HTTP_END_OF_VAR告知Send-File函數(shù)當(dāng)前變量處理結(jié)束。對(duì)于待返回到客戶端的數(shù)據(jù)字節(jié),HTTP將通過調(diào)用TCP層提供的函數(shù)TCPPut及TCPFlush,通過指定的Socket套接字將數(shù)據(jù)字節(jié)發(fā)往客戶端,由客戶端XMLHttp對(duì)象的異步回調(diào)函數(shù)通過responseText屬性讀取并刷新顯示在 Web中的特定位置。

    結(jié) 語

    通過仿真及實(shí)物電路測(cè)試表明,使用Ajax的XMLHttp對(duì)象及Microchip TCP/IP協(xié)議棧,可以很好地解決以太網(wǎng)環(huán)境下Web操作界面與嵌入式控制系統(tǒng)的交互問題,實(shí)現(xiàn)對(duì)基于 HTTP服務(wù)器模式的嵌入式系統(tǒng)進(jìn)行遠(yuǎn)程控制及實(shí)時(shí)監(jiān)測(cè),且能夠?qū)⑺邢嚓P(guān)操作保持在穩(wěn)定的瀏覽器窗口中執(zhí)行。

    編者注:本文為期刊縮略版,全文見本刊網(wǎng)站www.mesnet.com.cn。

    [1]XM LHttpRequest[EB/OL].[2011-03].http://en.wikipedia.org/wiki/XMLHttpRequest.

    [2]Ajax(programming)[EB/OL].[2011-07].http://en.wikipedia.org/wiki/AJAX.

    [3]Microchip TCP/IP Stack[EB/OL].[2011-07].http://www.microchip.com.

    [4]王凈.AJAX技術(shù)和Web應(yīng)用[J].艦船電子工程,2009(11).

    [5]張榮光.基于XMLHT TP的桌面程序與WEB服務(wù)器間通訊的研究[J].科技信息,2010(33).

    [6]安佰秀.基于以太網(wǎng)和嵌入式Web服務(wù)器的監(jiān)控系統(tǒng)設(shè)計(jì)[J].工礦自動(dòng)化,2011(5).

    [7]郁繼宗,彭樹生.基于PIC單片機(jī)的以太網(wǎng)數(shù)據(jù)采集與控制電路設(shè)計(jì)[J].微計(jì)算機(jī)信息,2005(2).

    [8]范郁寶.基于嵌入式服務(wù)器在監(jiān)測(cè)控制中的應(yīng)用[J].自動(dòng)化儀表,2011(5).

    猜你喜歡
    調(diào)用命令嵌入式
    只聽主人的命令
    核電項(xiàng)目物項(xiàng)調(diào)用管理的應(yīng)用研究
    LabWindows/CVI下基于ActiveX技術(shù)的Excel調(diào)用
    移防命令下達(dá)后
    搭建基于Qt的嵌入式開發(fā)平臺(tái)
    嵌入式軟PLC在電鍍生產(chǎn)流程控制系統(tǒng)中的應(yīng)用
    基于系統(tǒng)調(diào)用的惡意軟件檢測(cè)技術(shù)研究
    這是人民的命令
    Altera加入嵌入式視覺聯(lián)盟
    倍福 CX8091嵌入式控制器
    美女主播在线视频| 一边摸一边抽搐一进一出视频| 欧美+亚洲+日韩+国产| 91麻豆精品激情在线观看国产 | 99国产精品免费福利视频| 交换朋友夫妻互换小说| 大码成人一级视频| av电影中文网址| 日本黄色视频三级网站网址 | 日韩人妻精品一区2区三区| 精品一区二区三区四区五区乱码| 中文字幕高清在线视频| 国产一区二区三区视频了| 久热这里只有精品99| 亚洲欧美一区二区三区黑人| 成人三级做爰电影| 两性午夜刺激爽爽歪歪视频在线观看 | 在线观看免费午夜福利视频| 丰满迷人的少妇在线观看| 九色亚洲精品在线播放| 午夜福利一区二区在线看| 99国产精品一区二区蜜桃av | 热99国产精品久久久久久7| 亚洲精品在线观看二区| 国产av精品麻豆| 亚洲国产av新网站| 国产成+人综合+亚洲专区| 大型黄色视频在线免费观看| 五月开心婷婷网| 成人黄色视频免费在线看| 国产日韩一区二区三区精品不卡| 老汉色∧v一级毛片| 欧美激情 高清一区二区三区| 男女下面插进去视频免费观看| 一本—道久久a久久精品蜜桃钙片| 99久久99久久久精品蜜桃| 自线自在国产av| 99在线人妻在线中文字幕 | 无限看片的www在线观看| 国产深夜福利视频在线观看| 香蕉丝袜av| 免费不卡黄色视频| 国产精品熟女久久久久浪| 无遮挡黄片免费观看| 亚洲精品一二三| 中亚洲国语对白在线视频| 国产男女内射视频| 777久久人妻少妇嫩草av网站| 日韩 欧美 亚洲 中文字幕| 国产有黄有色有爽视频| 99热国产这里只有精品6| 精品一区二区三区av网在线观看 | 精品国产乱码久久久久久男人| 色婷婷av一区二区三区视频| 757午夜福利合集在线观看| 美女午夜性视频免费| 午夜福利免费观看在线| 亚洲精品乱久久久久久| 热99国产精品久久久久久7| 搡老岳熟女国产| 狠狠狠狠99中文字幕| 成人国语在线视频| 老熟妇乱子伦视频在线观看| 99re在线观看精品视频| 黄频高清免费视频| 婷婷丁香在线五月| 亚洲成人免费电影在线观看| 人人妻人人爽人人添夜夜欢视频| 欧美日韩福利视频一区二区| 午夜日韩欧美国产| 97在线人人人人妻| 精品福利永久在线观看| 久久热在线av| www.自偷自拍.com| 满18在线观看网站| 老司机福利观看| 色婷婷久久久亚洲欧美| 国产男靠女视频免费网站| 亚洲九九香蕉| 亚洲精品国产一区二区精华液| 激情在线观看视频在线高清 | 久久精品91无色码中文字幕| 99精品在免费线老司机午夜| 国产日韩欧美亚洲二区| 精品福利永久在线观看| 亚洲精品久久午夜乱码| 国产日韩欧美亚洲二区| 久久精品成人免费网站| 黄色怎么调成土黄色| 欧美 日韩 精品 国产| 国产三级黄色录像| 婷婷丁香在线五月| 热re99久久精品国产66热6| 高清视频免费观看一区二区| 性少妇av在线| 精品福利观看| 精品少妇黑人巨大在线播放| 久久久国产成人免费| 国精品久久久久久国模美| 久久人人97超碰香蕉20202| 国产免费现黄频在线看| 欧美日韩亚洲国产一区二区在线观看 | 日日摸夜夜添夜夜添小说| 纯流量卡能插随身wifi吗| 91成年电影在线观看| aaaaa片日本免费| 美国免费a级毛片| 一个人免费看片子| 交换朋友夫妻互换小说| 黄色a级毛片大全视频| 欧美日韩亚洲高清精品| 国产伦人伦偷精品视频| 久久国产精品人妻蜜桃| videos熟女内射| 狠狠狠狠99中文字幕| svipshipincom国产片| 黑人巨大精品欧美一区二区mp4| 深夜精品福利| 亚洲免费av在线视频| 免费日韩欧美在线观看| 宅男免费午夜| 日本撒尿小便嘘嘘汇集6| 国产精品久久久久成人av| 国产精品香港三级国产av潘金莲| tocl精华| 99国产精品一区二区三区| 精品一品国产午夜福利视频| 在线观看免费午夜福利视频| 亚洲午夜精品一区,二区,三区| 国产免费av片在线观看野外av| 大香蕉久久成人网| 国精品久久久久久国模美| 女人高潮潮喷娇喘18禁视频| 免费看十八禁软件| 亚洲欧美一区二区三区久久| 亚洲成人国产一区在线观看| 老司机午夜十八禁免费视频| 女性被躁到高潮视频| 一进一出好大好爽视频| 欧美日韩一级在线毛片| 女性被躁到高潮视频| 91麻豆精品激情在线观看国产 | 亚洲五月婷婷丁香| 中文字幕av电影在线播放| 免费看a级黄色片| 在线看a的网站| 国产成人啪精品午夜网站| 天堂俺去俺来也www色官网| 日韩三级视频一区二区三区| 免费久久久久久久精品成人欧美视频| 女人被躁到高潮嗷嗷叫费观| 国产精品自产拍在线观看55亚洲 | 亚洲色图av天堂| 亚洲第一青青草原| 国产区一区二久久| 成人特级黄色片久久久久久久 | 丰满迷人的少妇在线观看| 亚洲 国产 在线| 日本a在线网址| 中文字幕最新亚洲高清| 丁香六月天网| 成年人黄色毛片网站| 久久精品国产综合久久久| 成年动漫av网址| 中文欧美无线码| av国产精品久久久久影院| 99国产极品粉嫩在线观看| 高清黄色对白视频在线免费看| av天堂久久9| 自线自在国产av| 69av精品久久久久久 | 欧美日韩中文字幕国产精品一区二区三区 | 国产精品 欧美亚洲| 精品少妇一区二区三区视频日本电影| 亚洲人成77777在线视频| www.精华液| 国产无遮挡羞羞视频在线观看| 黄色视频,在线免费观看| 国产激情久久老熟女| 久久婷婷成人综合色麻豆| 极品教师在线免费播放| 两个人看的免费小视频| 波多野结衣av一区二区av| 最新的欧美精品一区二区| 一区二区三区国产精品乱码| 久热这里只有精品99| 欧美日韩福利视频一区二区| a级毛片黄视频| 人妻一区二区av| 国产一区二区在线观看av| 亚洲午夜精品一区,二区,三区| 他把我摸到了高潮在线观看 | 午夜免费成人在线视频| 亚洲人成电影观看| 欧美人与性动交α欧美软件| 亚洲精品国产精品久久久不卡| 精品午夜福利视频在线观看一区 | 亚洲av欧美aⅴ国产| 精品少妇久久久久久888优播| 精品亚洲成国产av| 中文字幕人妻熟女乱码| 老司机在亚洲福利影院| 亚洲性夜色夜夜综合| 成人18禁在线播放| 国产亚洲精品第一综合不卡| 久9热在线精品视频| 亚洲自偷自拍图片 自拍| 日韩欧美三级三区| 婷婷丁香在线五月| 精品人妻1区二区| 亚洲人成电影观看| 手机成人av网站| 国产一区二区激情短视频| 亚洲avbb在线观看| 97在线人人人人妻| 亚洲人成电影免费在线| 亚洲欧美激情在线| 在线看a的网站| 亚洲精品av麻豆狂野| 亚洲国产看品久久| 久久久久久亚洲精品国产蜜桃av| 久久久久久人人人人人| 国产黄频视频在线观看| 欧美乱码精品一区二区三区| 99国产精品免费福利视频| 婷婷丁香在线五月| 亚洲 国产 在线| 1024视频免费在线观看| 久久久久网色| 性高湖久久久久久久久免费观看| 正在播放国产对白刺激| 久久狼人影院| 最新在线观看一区二区三区| 嫩草影视91久久| 午夜福利在线观看吧| 亚洲中文日韩欧美视频| 天堂动漫精品| av一本久久久久| 99国产极品粉嫩在线观看| 十八禁人妻一区二区| 高清欧美精品videossex| 亚洲精品美女久久av网站| 午夜久久久在线观看| 成人国产一区最新在线观看| 99riav亚洲国产免费| 日韩免费高清中文字幕av| 亚洲精品一二三| 亚洲精品乱久久久久久| av天堂在线播放| 两性夫妻黄色片| 久久久久久久久免费视频了| 亚洲伊人色综图| 青草久久国产| 99久久99久久久精品蜜桃| 亚洲国产毛片av蜜桃av| 国产成人一区二区三区免费视频网站| 午夜两性在线视频| 亚洲黑人精品在线| 老司机深夜福利视频在线观看| 国产午夜精品久久久久久| av一本久久久久| 无遮挡黄片免费观看| 99精品久久久久人妻精品| 侵犯人妻中文字幕一二三四区| 极品教师在线免费播放| 精品少妇内射三级| 亚洲久久久国产精品| 美女扒开内裤让男人捅视频| 亚洲第一av免费看| 首页视频小说图片口味搜索| 丝瓜视频免费看黄片| 国产色视频综合| 欧美 亚洲 国产 日韩一| 五月开心婷婷网| 9色porny在线观看| 亚洲成人国产一区在线观看| 黄色丝袜av网址大全| 国产精品久久久av美女十八| 操美女的视频在线观看| 在线亚洲精品国产二区图片欧美| 香蕉国产在线看| 97人妻天天添夜夜摸| 久久中文字幕人妻熟女| 色播在线永久视频| av有码第一页| 一级毛片精品| 亚洲熟妇熟女久久| 国产精品一区二区免费欧美| 国产精品国产av在线观看| 18禁裸乳无遮挡动漫免费视频| 国产欧美日韩一区二区三区在线| 69精品国产乱码久久久| 超碰97精品在线观看| 午夜福利在线观看吧| 国产精品熟女久久久久浪| 久久精品人人爽人人爽视色| 真人做人爱边吃奶动态| 国产三级黄色录像| 黄色毛片三级朝国网站| 亚洲精品美女久久av网站| 欧美精品av麻豆av| 在线永久观看黄色视频| 男女高潮啪啪啪动态图| 在线观看免费视频网站a站| 女人精品久久久久毛片| 大型黄色视频在线免费观看| 操出白浆在线播放| 久久久久久久国产电影| 99热国产这里只有精品6| 精品国产超薄肉色丝袜足j| 欧美精品人与动牲交sv欧美| 色婷婷久久久亚洲欧美| 满18在线观看网站| 美女国产高潮福利片在线看| 69av精品久久久久久 | 超色免费av| 欧美日韩精品网址| 最近最新免费中文字幕在线| 一二三四在线观看免费中文在| 亚洲七黄色美女视频| 一区二区三区乱码不卡18| 亚洲中文av在线| 色视频在线一区二区三区| 亚洲成人国产一区在线观看| 久久人妻av系列| 久热这里只有精品99| av网站在线播放免费| 丁香六月天网| 亚洲成国产人片在线观看| 日韩欧美国产一区二区入口| 三级毛片av免费| 老熟妇仑乱视频hdxx| 成人手机av| 精品少妇一区二区三区视频日本电影| 最新的欧美精品一区二区| 亚洲精品一卡2卡三卡4卡5卡| 狠狠狠狠99中文字幕| 夜夜骑夜夜射夜夜干| 精品久久久久久久毛片微露脸| 啦啦啦在线免费观看视频4| 日本精品一区二区三区蜜桃| 欧美大码av| 少妇被粗大的猛进出69影院| 免费av中文字幕在线| 国产av一区二区精品久久| 色综合欧美亚洲国产小说| 国产亚洲精品第一综合不卡| 国产成人欧美在线观看 | 丝袜美腿诱惑在线| 一本久久精品| 狠狠狠狠99中文字幕| 超碰成人久久| 人成视频在线观看免费观看| 亚洲精品一卡2卡三卡4卡5卡| 免费观看人在逋| 久久人人爽av亚洲精品天堂| 激情视频va一区二区三区| 久久 成人 亚洲| 97在线人人人人妻| 欧美精品一区二区大全| 国产成人av激情在线播放| 精品亚洲乱码少妇综合久久| 肉色欧美久久久久久久蜜桃| xxxhd国产人妻xxx| 精品国产一区二区三区四区第35| 日本一区二区免费在线视频| 欧美精品啪啪一区二区三区| 一区二区日韩欧美中文字幕| 后天国语完整版免费观看| 国产亚洲精品一区二区www | 男女免费视频国产| 手机成人av网站| 久久亚洲真实| 国产日韩欧美视频二区| 欧美日韩视频精品一区| 伊人久久大香线蕉亚洲五| 国产成人av教育| 嫩草影视91久久| 老司机午夜十八禁免费视频| 欧美av亚洲av综合av国产av| 人妻久久中文字幕网| 久久狼人影院| 国产高清国产精品国产三级| 国产一卡二卡三卡精品| xxxhd国产人妻xxx| 人人妻人人澡人人爽人人夜夜| 美女福利国产在线| 香蕉丝袜av| 亚洲va日本ⅴa欧美va伊人久久| 51午夜福利影视在线观看| 欧美人与性动交α欧美软件| 欧美精品人与动牲交sv欧美| 亚洲专区国产一区二区| 久久九九热精品免费| 久久婷婷成人综合色麻豆| 99精品久久久久人妻精品| 狠狠精品人妻久久久久久综合| 国产成人av教育| 午夜免费成人在线视频| 91麻豆av在线| 国产不卡一卡二| svipshipincom国产片| 蜜桃在线观看..| 国产精品一区二区免费欧美| 五月开心婷婷网| 黑人操中国人逼视频| 精品国产乱码久久久久久男人| 久久精品亚洲熟妇少妇任你| 男女边摸边吃奶| 亚洲熟女毛片儿| 如日韩欧美国产精品一区二区三区| 不卡一级毛片| 国产成人一区二区三区免费视频网站| 少妇精品久久久久久久| 欧美国产精品一级二级三级| 亚洲成av片中文字幕在线观看| 窝窝影院91人妻| 午夜福利免费观看在线| 热99国产精品久久久久久7| 亚洲av欧美aⅴ国产| 女同久久另类99精品国产91| 中文字幕人妻熟女乱码| 人人妻,人人澡人人爽秒播| 亚洲免费av在线视频| 天天影视国产精品| 中文字幕最新亚洲高清| 国产午夜精品久久久久久| 99久久99久久久精品蜜桃| 久久人妻熟女aⅴ| 老司机在亚洲福利影院| 香蕉国产在线看| 亚洲 国产 在线| 首页视频小说图片口味搜索| 国产免费av片在线观看野外av| 黄片播放在线免费| 亚洲av电影在线进入| 免费在线观看视频国产中文字幕亚洲| 母亲3免费完整高清在线观看| 在线观看66精品国产| 国产精品偷伦视频观看了| 老司机靠b影院| 久久久精品国产亚洲av高清涩受| 午夜福利欧美成人| 国产亚洲欧美精品永久| 久久亚洲精品不卡| 精品国产乱子伦一区二区三区| 成人亚洲精品一区在线观看| 欧美激情久久久久久爽电影 | 91字幕亚洲| 一本—道久久a久久精品蜜桃钙片| h视频一区二区三区| 男女高潮啪啪啪动态图| 人妻一区二区av| 久久国产亚洲av麻豆专区| 成在线人永久免费视频| a级毛片黄视频| 国产精品偷伦视频观看了| 亚洲国产成人一精品久久久| 菩萨蛮人人尽说江南好唐韦庄| 巨乳人妻的诱惑在线观看| 搡老乐熟女国产| 亚洲久久久国产精品| 99久久99久久久精品蜜桃| 国产福利在线免费观看视频| 热re99久久精品国产66热6| 国产精品秋霞免费鲁丝片| 波多野结衣av一区二区av| 多毛熟女@视频| 精品人妻熟女毛片av久久网站| 久久精品国产综合久久久| cao死你这个sao货| 黄色 视频免费看| 日本vs欧美在线观看视频| 精品一品国产午夜福利视频| 免费在线观看日本一区| 狠狠婷婷综合久久久久久88av| 亚洲专区国产一区二区| 女警被强在线播放| 久久狼人影院| 一级毛片女人18水好多| 国产伦人伦偷精品视频| 黄网站色视频无遮挡免费观看| 国产成人av教育| 99re在线观看精品视频| 日本av手机在线免费观看| 午夜福利在线免费观看网站| 国产精品1区2区在线观看. | 婷婷丁香在线五月| 国产精品二区激情视频| 一本综合久久免费| 久久精品91无色码中文字幕| 伊人久久大香线蕉亚洲五| 成人三级做爰电影| 国产欧美日韩精品亚洲av| 一本综合久久免费| 十八禁人妻一区二区| 日韩欧美国产一区二区入口| 国产精品欧美亚洲77777| 黄色视频不卡| 国产精品国产高清国产av | 国产av国产精品国产| 成人亚洲精品一区在线观看| 国产精品98久久久久久宅男小说| 99热国产这里只有精品6| 国产真人三级小视频在线观看| 国产在线精品亚洲第一网站| 欧美激情高清一区二区三区| 天堂俺去俺来也www色官网| 极品人妻少妇av视频| 80岁老熟妇乱子伦牲交| 热re99久久国产66热| 国产成人精品久久二区二区91| 超碰97精品在线观看| 成人国语在线视频| 亚洲男人天堂网一区| 王馨瑶露胸无遮挡在线观看| 视频在线观看一区二区三区| 国产在线一区二区三区精| 国产亚洲午夜精品一区二区久久| 美女高潮到喷水免费观看| 激情在线观看视频在线高清 | 精品高清国产在线一区| av超薄肉色丝袜交足视频| 三上悠亚av全集在线观看| 亚洲国产欧美在线一区| 亚洲精品美女久久av网站| www日本在线高清视频| a在线观看视频网站| 亚洲少妇的诱惑av| 精品第一国产精品| 免费女性裸体啪啪无遮挡网站| 动漫黄色视频在线观看| 可以免费在线观看a视频的电影网站| 人妻一区二区av| 高清欧美精品videossex| 国产色视频综合| 亚洲欧美色中文字幕在线| 亚洲中文字幕日韩| 99久久精品国产亚洲精品| 久久毛片免费看一区二区三区| 亚洲国产欧美网| 午夜福利在线观看吧| 乱人伦中国视频| 中文字幕最新亚洲高清| 欧美日韩亚洲综合一区二区三区_| 黄网站色视频无遮挡免费观看| 最新在线观看一区二区三区| 高清视频免费观看一区二区| 在线十欧美十亚洲十日本专区| 国产欧美日韩一区二区精品| 99re在线观看精品视频| 国产成人免费无遮挡视频| a级毛片在线看网站| www.自偷自拍.com| 国产精品一区二区在线不卡| 极品教师在线免费播放| 国产精品久久久久久精品电影小说| 日韩人妻精品一区2区三区| 麻豆乱淫一区二区| 一进一出抽搐动态| 免费黄频网站在线观看国产| 2018国产大陆天天弄谢| 精品乱码久久久久久99久播| 窝窝影院91人妻| 精品国产一区二区三区久久久樱花| 一本大道久久a久久精品| 亚洲黑人精品在线| 亚洲三区欧美一区| 亚洲一卡2卡3卡4卡5卡精品中文| 久久人人97超碰香蕉20202| 桃花免费在线播放| 亚洲第一av免费看| 国产高清videossex| 1024香蕉在线观看| xxxhd国产人妻xxx| 国产免费现黄频在线看| 色播在线永久视频| 狠狠婷婷综合久久久久久88av| 欧美日韩精品网址| 日本av免费视频播放| 自线自在国产av| 精品欧美一区二区三区在线| av视频免费观看在线观看| 一级毛片女人18水好多| 黑丝袜美女国产一区| 老熟妇乱子伦视频在线观看| 男女边摸边吃奶| 飞空精品影院首页| 亚洲成a人片在线一区二区| h视频一区二区三区| 黄色a级毛片大全视频| 天天添夜夜摸| 国产精品国产高清国产av | 免费在线观看黄色视频的| 波多野结衣av一区二区av| 成人影院久久| 国产精品一区二区在线观看99| 超碰成人久久| 亚洲精品自拍成人| 免费看a级黄色片| 国产日韩一区二区三区精品不卡| 99精国产麻豆久久婷婷| 免费在线观看影片大全网站| 夫妻午夜视频| 亚洲九九香蕉| 在线亚洲精品国产二区图片欧美| 欧美国产精品一级二级三级| 欧美激情高清一区二区三区| 国产欧美日韩一区二区三区在线| av天堂久久9| 国产成人精品无人区| 99久久人妻综合| 亚洲精品久久午夜乱码| 视频在线观看一区二区三区| 亚洲第一av免费看|