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

    線(xiàn)程安全的.NET平臺(tái)串口通信程序設(shè)計(jì)研究

    2012-10-13 02:38:42
    關(guān)鍵詞:處理程序輔助線(xiàn)微控制器

    彭 偉

    (武漢城市職業(yè)學(xué)院電子信息工程學(xué)院,湖北武漢430064)

    RS-232串行端口通信技術(shù)大量應(yīng)用于工業(yè)控制系統(tǒng),Microsoft在其.NET Framework加入了串行端口類(lèi)Serial Port,以支持 Windo ws軟件界面與外部設(shè)備之間的串口通信,實(shí)現(xiàn)數(shù)據(jù)采集及管理控制.然而,當(dāng).NET程序開(kāi)發(fā)人員在串口組件數(shù)據(jù)接收事件處理程序中將讀取的數(shù)據(jù)直接顯示到可視化UI組件時(shí),系統(tǒng)卻拋出線(xiàn)程異常,提示當(dāng)前線(xiàn)程與可視化組件不在同一線(xiàn)程上運(yùn)行.通過(guò)查閱MSDN技術(shù)手冊(cè)可知,.NET串口通信組件與可視化顯示組件雖然處于同一窗體,但串口數(shù)據(jù)接收事件卻是在輔助線(xiàn)程上引發(fā),它并非與窗體中其他可視化組件同處于主線(xiàn)程[1].

    本文將分析研究.NET Framewor k所提供的Serial Port、delegate、Thread及 Background Worker類(lèi)相關(guān)技術(shù),研究解決.NET開(kāi)發(fā)環(huán)境下串口通信程序中的線(xiàn)程安全問(wèn)題,并與以PIC微控制器為核心的8通道A/D轉(zhuǎn)換模塊之間進(jìn)行串口數(shù)據(jù)通信與圖文顯示測(cè)試.

    1 .NET串行端口類(lèi)相關(guān)技術(shù)

    1.1 串行端口類(lèi)簡(jiǎn)介

    .NET的System.IO.Ports命名空間包含用于控制串行端口的類(lèi),最重要的類(lèi)Serial Port為同步和事件驅(qū)動(dòng)I/O提供框架,提供對(duì)串口針腳和中斷狀態(tài)的訪(fǎng)問(wèn)以及對(duì)串行驅(qū)動(dòng)程序?qū)傩缘脑L(fǎng)問(wèn).

    1.2 串行端口類(lèi)數(shù)據(jù)接收事件處理

    ,由于其處理程序在輔助線(xiàn)程上引發(fā),故而在事件處理程序中無(wú)法直接訪(fǎng)問(wèn)UI組件.為刷新窗體中相關(guān)組件的數(shù)據(jù)顯示,根據(jù) MSDN技術(shù)手冊(cè)可知,在Data Recived事件的輔助線(xiàn)程內(nèi)必須用Invoke激發(fā)委托來(lái)訪(fǎng)問(wèn)UI組件,它將會(huì)在恰當(dāng)?shù)木€(xiàn)程上執(zhí)行這些操作,實(shí)現(xiàn)線(xiàn)程安全調(diào)用.

    2 .NET的委托類(lèi)型

    2.1 委托類(lèi)型簡(jiǎn)介

    .NET Fra mewor k定義了稱(chēng)為委托(delegate)的特殊的類(lèi)型,該類(lèi)型提供函數(shù)指針的功能,是具有相同函數(shù)屬性(簽名)的抽象,是一種類(lèi)型安全的方法引用,它可以看成是一個(gè)類(lèi)型安全的C函數(shù)指針,但與C函數(shù)指針不同的是,.NET的委托是面向?qū)ο蠛皖?lèi)型安全的,通用語(yǔ)言運(yùn)行時(shí)(CLR)會(huì)確保一個(gè)委托指向一個(gè)有效的方法[2-3].

    委托可用于封裝對(duì)“命名”或“匿名”方法的引用,使用委托有三個(gè)步驟,即:聲明、實(shí)例化和激發(fā).委托類(lèi)型聲明的格式為:

    修飾符 關(guān)鍵字delegate返回類(lèi)型 委托類(lèi)型名稱(chēng)(參數(shù)列表);

    委托類(lèi)型構(gòu)造函數(shù)的參數(shù)必須是對(duì)方法(“命名”或“匿名”方法)或lambda表達(dá)式的引用.

    2.2 用數(shù)據(jù)接收事件與委托實(shí)現(xiàn)線(xiàn)程安全訪(fǎng)問(wèn)

    基于Serial Port類(lèi)數(shù)據(jù)接收事件處理程序,借助委托實(shí)現(xiàn)UI組件訪(fǎng)問(wèn),可有如下委托類(lèi)型聲明:public delegate void ShowCall Back(string s);

    假設(shè)主線(xiàn)程中刷新顯示的命名方法為:private void Set Text(string s){

    /*訪(fǎng)問(wèn)UI刷新組件顯示的代碼寫(xiě)在這里*/}

    通過(guò)委托訪(fǎng)問(wèn)Set Text,需要先實(shí)例化委托[4]:Show Call Back d= new Show Call Back(Set Text);

    當(dāng)Data Received事件在輔助線(xiàn)程上引發(fā)以后,其事件處理程序通過(guò)委托實(shí)例d即可在輔助線(xiàn)程中訪(fǎng)問(wèn)主線(xiàn)程中的Set Text方法.

    .NET并不保證對(duì)接收到的每個(gè)字節(jié)引發(fā)Data Received事件,在該事件發(fā)生時(shí),可根據(jù)Bytes To-Read屬性確定緩沖區(qū)中尚未讀取的數(shù)據(jù)字節(jié)數(shù),通過(guò)循環(huán)讀取數(shù)據(jù)直到Bytes To Read返回0,如此即可讀取緩沖內(nèi)的所有數(shù)據(jù).

    對(duì)于所選擇的以PIC微控制器為核心的A/D轉(zhuǎn)換模塊所發(fā)送的8通道A/D值,本文約定通過(guò)串口讀取的數(shù)據(jù)為形如“xxx xxx xxx xxx xxx xxx xxx xxx\r\n”的字符串,它以“\r\n”為結(jié)束標(biāo)識(shí).Data Received事件處理程序通過(guò)串口讀取8通道A/D轉(zhuǎn)換數(shù)據(jù)時(shí)有:String s=serial Port1.Read-Line();調(diào)用Read Line時(shí)要注意設(shè)置串口組件的New Line屬性.讀取數(shù)據(jù)字符串s以后,即可同步或異步激發(fā)委托實(shí)例d訪(fǎng)問(wèn)Set Text.以同步方法Invoke為例,有:

    this.Invoke(d,s);

    省略變量s的定義,可以寫(xiě)成:

    this.Invoke(d,new object[]{serial Port1.Read Line()});

    更為簡(jiǎn)潔的寫(xiě)法是:

    this.Invoke(new Show Call Back(Set Text),new object[]{serial Port1.Read Line()});

    圖1所示的在輔助線(xiàn)程中通過(guò)委托訪(fǎng)問(wèn)UI的示意圖描繪了上述委托定義及在輔助線(xiàn)程內(nèi)實(shí)例化委托,并通過(guò)Invoke/BeginInvoke激發(fā)對(duì)命名方法Set Text調(diào)用的整個(gè)過(guò)程.

    如果省略委托聲明,還可以使用預(yù)定義委托Event Handler調(diào)用主線(xiàn)程中的方法,參照?qǐng)D1,有this.Invoke(new Event Handler(UIShow));其中UIShow可定義為

    private void UIShow(object sender,Event Args e){

    /*讀取串口數(shù)據(jù),訪(fǎng)問(wèn)UI刷新數(shù)據(jù)顯示*/}

    圖1 在輔助線(xiàn)程中通過(guò)委托訪(fǎng)問(wèn)UI組件

    如果要求輔助線(xiàn)程提供事件數(shù)據(jù)而不是在UIShow方法內(nèi)部讀取待顯示串口數(shù)據(jù),可選擇使用Event Handler<TEvent Ar gs>泛型委托.

    .NET還為UI組件提供了一個(gè)特殊的屬性:Contr ol.Invoke Required,它既可以在主線(xiàn)程也可以在輔助線(xiàn)程內(nèi)訪(fǎng)問(wèn),根據(jù)該屬性值可知調(diào)用方在對(duì)控件進(jìn)行方法調(diào)用時(shí)是否必須使用Invoke方法,因?yàn)檎{(diào)用方可能位于創(chuàng)建控件所在的線(xiàn)程以外的線(xiàn)程中.借助這一屬性,可以按圖2所示流程設(shè)計(jì)主線(xiàn)程與輔助線(xiàn)程共用的訪(fǎng)問(wèn)UI刷新顯示的方法.當(dāng)輔助線(xiàn)程調(diào)用該方法時(shí),代碼執(zhí)行形如“遞歸調(diào)用”,當(dāng)然它與遞歸是毫無(wú)關(guān)系的.

    圖2 主/輔線(xiàn)程共用的UI訪(fǎng)問(wèn)方法設(shè)計(jì)

    2.3 Invoke/BeginInvoke的工作原理

    Invoke與BeginInvoke方法都需要以委托對(duì)象作為參數(shù),委托類(lèi)似于回調(diào)函數(shù)的地址,因此調(diào)用者通過(guò)Invoke或BeginInvoke方法可以把需要調(diào)用的函數(shù)地址封送給UI線(xiàn)程.使用同步方法Invoke完成一個(gè)委托方法的封送類(lèi)似于使用Windows API的Send Message函數(shù)給界面線(xiàn)程發(fā)送消息,消息將進(jìn)入消息隊(duì)列(Message Queue)并等待處理.作為一個(gè)異步方法,BeginInvoke則類(lèi)似于使用Post-Message函數(shù)進(jìn)行通信,封送完畢后將不等待委托方法執(zhí)行結(jié)束即返回,調(diào)用者線(xiàn)程不會(huì)被阻塞.不過(guò)調(diào)用者也可以使用EndInvoke方法或者其它類(lèi)似Wait Handle的機(jī)制等待異步操作完成.

    通過(guò)Reflector.exe反編譯軟件可知,在內(nèi)部實(shí)現(xiàn)時(shí),Invoke和BeginInvoke都使用了 Windows API的Post Message函數(shù),其中前者的同步阻塞通過(guò)Wait For Wait Handle方法完成.此外,它們還引用通過(guò)循環(huán)向上回溯查找頂級(jí)父控件的Find Marshaling Control方法;使消息進(jìn)入消息隊(duì)列的Enqueue方法、定義一個(gè)新的視窗消息的API Register Window Message,以便通過(guò) Send Message或Post Message發(fā)送(這里僅使用了后者);獲取與指定窗口關(guān)聯(lián)的進(jìn)程和線(xiàn)程標(biāo)識(shí)符的API Get Window Thread ProcessId及獲取當(dāng)前線(xiàn)程唯一線(xiàn)程標(biāo)識(shí)符的Get Current ThreadId.圖3描繪二者通過(guò)Windows的消息系統(tǒng)實(shí)現(xiàn)線(xiàn)程安全的UI訪(fǎng)問(wèn)過(guò)程.

    圖3 通過(guò)消息系統(tǒng)實(shí)現(xiàn)線(xiàn)程安全的UI訪(fǎng)問(wèn)

    3 .NET的Thread類(lèi)

    3.1 Thread類(lèi)簡(jiǎn)介

    .NET的System.Threading命名空間提供進(jìn)行多線(xiàn)程編程的類(lèi)和接口,命名空間中的Thread類(lèi)可創(chuàng)建并控制線(xiàn)程[6],線(xiàn)程執(zhí)行的代碼通過(guò)Thread Start委托或Parameterized Thread Start(帶參數(shù)的Thread Start)委托指定,使用后者可以向線(xiàn)程過(guò)程傳遞數(shù)據(jù).顯然,借助Thread類(lèi)可以不使用串口組件的內(nèi)置Data Received事件,直接通過(guò)線(xiàn)程類(lèi)與委托實(shí)現(xiàn)同樣的功能.

    3.2 用Thread類(lèi)及委托實(shí)現(xiàn)線(xiàn)程安全訪(fǎng)問(wèn)

    仍使用此前設(shè)計(jì)的顯示委托,下面給出Para meterized Thread Start委托及線(xiàn)程類(lèi)Thread實(shí)現(xiàn)線(xiàn)程安全訪(fǎng)問(wèn)的代碼.以串口數(shù)據(jù)接收與UI訪(fǎng)問(wèn)刷新顯示為例,其中Recv Data方法將在form加載時(shí)調(diào)用,有:

    異步接收及顯示數(shù)據(jù)的命名方法如下:

    由于“匿名”方法也可以實(shí)例化委托,使用匿名方法時(shí)無(wú)須創(chuàng)建獨(dú)立的方法,可減少實(shí)例化委托所需的系統(tǒng)開(kāi)銷(xiāo).例如:

    對(duì)于函數(shù)Recv Data,可進(jìn)一步作如下改寫(xiě):

    4 .NET的Background worker類(lèi)

    4.1 Backgr ound worker類(lèi)簡(jiǎn)介

    System.Component Model命名空間提供用于實(shí)現(xiàn)組件和控件運(yùn)行時(shí)及設(shè)計(jì)時(shí)行為的類(lèi),其中的Background Worker類(lèi)用于在單獨(dú)的線(xiàn)程上執(zhí)行操作.圖4給出了該類(lèi)的Do_Wor k事件處理流程.

    圖4 Background Worker類(lèi)事件處理流程

    主線(xiàn)程通過(guò)Run worker Async引發(fā)Backgr ound worker對(duì)象在輔助線(xiàn)程上處理Do_Wor k事件以后,在輔助線(xiàn)程中,通過(guò)Report Progress方法可以將數(shù)據(jù)消息封送給主線(xiàn)程中的Progress-Changed事件處理程序;當(dāng)完成所有事務(wù)處理時(shí),也會(huì)將消息發(fā)給主線(xiàn)程,激發(fā)Run Worker completed事件處理程序.輔助線(xiàn)程上引發(fā)的Do_Wor k事件處理程序內(nèi)有兩條路徑可以實(shí)現(xiàn)對(duì)主線(xiàn)程中UI組件的安全訪(fǎng)問(wèn).

    4.2 使用Background worker實(shí)現(xiàn)線(xiàn)程安全訪(fǎng)問(wèn)

    仍以串口數(shù)據(jù)接收及主窗體UI訪(fǎng)問(wèn)為例,主窗體加載時(shí),首先啟動(dòng)后臺(tái)工作者:

    Run worker Async使后臺(tái)工作者開(kāi)啟輔助線(xiàn)程執(zhí)行Do_Work,系統(tǒng)退出時(shí)注意在formClosing事件中停止backgr ound worker1對(duì)象的后臺(tái)工作:

    當(dāng)后臺(tái)工作者對(duì)象發(fā)生“進(jìn)度變化”事件時(shí),由事件處理流程圖可知事件處理程序?qū)⒃谥骶€(xiàn)程上執(zhí)行,故而可以直接訪(fǎng)問(wèn)UI組件:

    要持續(xù)讀取串口數(shù)據(jù)并直接訪(fǎng)問(wèn)UI,輔助線(xiàn)程需不斷通過(guò)報(bào)告進(jìn)度方法(Report Progress)觸發(fā)“進(jìn)度變化”事件.下面的代碼中,輔助線(xiàn)程上執(zhí)行的

    Do_Wor k事件處理程序?qū)⒚扛?0 ms執(zhí)行一次“進(jìn)度報(bào)告”:

    5 PIC微控制器A/D轉(zhuǎn)換及串口通信設(shè)計(jì)

    5.1 8通道A/D轉(zhuǎn)換及串口數(shù)據(jù)傳輸電路

    為測(cè)試C#程序?qū)Υ跀?shù)據(jù)的接收及顯示效果,圖5給出了所選擇的以PIC18F452微控制器為核心的通信測(cè)試模塊,其中8個(gè)10位精度的A/D轉(zhuǎn)換通道(AN0~AN7)分別連接了不同類(lèi)型的模擬信號(hào),圖中同時(shí)給出了虛擬仿真串口組件(COMPI M)及物理串口(MAX232)[5-6].

    基于HI-TECH PICC18編譯器設(shè)計(jì)的C程序?qū)⒀h(huán)執(zhí)行8通道A/D轉(zhuǎn)換,并將結(jié)果轉(zhuǎn)換為約定的字符串格式,通過(guò)串口發(fā)送給上位主機(jī)程序接收并刷新圖文顯示.

    圖5 8通道A/D轉(zhuǎn)換及串口數(shù)據(jù)傳輸電路

    5.2 PIC微控制器串口配置及數(shù)據(jù)傳輸設(shè)計(jì)

    HI-TECH PICC18提供了 USART專(zhuān)用庫(kù)函數(shù),例如:Open USART用于按指定配置(例如波特率設(shè)置等)打開(kāi)指定串口;puts USART與gets USART分別用于發(fā)送與接收字符串.假設(shè)上位機(jī)控制PIC微控制器A/D啟停的語(yǔ)句為:

    PIC微控制器可使用相應(yīng)函數(shù)讀取主機(jī)C#程序發(fā)送的控制命令,選擇其當(dāng)前工作狀態(tài);對(duì)于已轉(zhuǎn)換后的當(dāng)前8通道A/D數(shù)據(jù),則可通過(guò)相應(yīng)函數(shù)向上位主機(jī)發(fā)送[7-8].

    5.3 A/D通道數(shù)據(jù)采集函數(shù)設(shè)計(jì)

    函數(shù)ADC_Convert()將對(duì)PIC18F452的AN0~AN7通道分別進(jìn)行 A/D轉(zhuǎn)換.由于 HI-TECH PICC18提供了A/D轉(zhuǎn)換專(zhuān)用庫(kù)函數(shù),ADC_Convert()的具體實(shí)現(xiàn)將大為簡(jiǎn)化:

    執(zhí)行PIC微控制器8通道A/D轉(zhuǎn)換的函數(shù):

    由于PIC18F452的A/D模塊為10位精度,最大值為0B0000001111111111(即0x03FF),故保存一個(gè)通道的轉(zhuǎn)換結(jié)果最多只需要3位十六進(jìn)制數(shù)(即xxx).PIC微控制器主程序?qū)⒀h(huán)執(zhí)行A/D轉(zhuǎn)換,并將ADC_Buff中的8組數(shù)據(jù)轉(zhuǎn)換為形如:“xxx xxx xxx xxx xxx xxx xxxx xxx\r\n”的字符串,再通過(guò)puts USART庫(kù)函數(shù)輸出.

    6 主機(jī)接收及圖文刷新顯示程序設(shè)計(jì)

    實(shí)現(xiàn)線(xiàn)程安全的串口數(shù)據(jù)接收及UI訪(fǎng)問(wèn)可以有多種方法,以下選擇通過(guò)Data Received事件及委托實(shí)現(xiàn).下面的C#程序?qū)⒃赨I組件中實(shí)現(xiàn)8通道轉(zhuǎn)換結(jié)果對(duì)應(yīng)的電壓值的圖文顯示:

    輔助線(xiàn)程上執(zhí)行的串口組件數(shù)據(jù)接收事件Data Received的處理程序內(nèi)簡(jiǎn)化編寫(xiě)的唯一語(yǔ)句為:this.Invoke(new Show Call Back (Show_ADC),new object[]{serial Port1.Read Line()});8通道模擬電壓數(shù)據(jù)在基于C#.NET設(shè)計(jì)的上位機(jī)UI中的圖文刷新顯示效果見(jiàn)圖6.

    圖6 C#程序接收并刷新8通道數(shù)據(jù)顯示

    7 結(jié)束語(yǔ)

    通過(guò)對(duì) Serial Port及 delegate、Thread、Background worker類(lèi)相關(guān)技術(shù)的研究,給出了.NET開(kāi)發(fā)環(huán)境下線(xiàn)程安全的串口通信程序,并通過(guò)了與PIC18F452微控制器8通道A/D轉(zhuǎn)換及串口通信模塊的數(shù)據(jù)傳輸與圖文刷新顯示測(cè)試,驗(yàn)證了本文提出的程序設(shè)計(jì)方法的正確性與可靠性,為.NET平臺(tái)的串口通信管理控制與數(shù)據(jù)傳輸程序設(shè)計(jì)提供了參考.

    [1]Microsoft Cor poration.Serial Port類(lèi)[EB/OL].[2012-01-03]http://msdn.microsoft.co m/zh-cn/library.

    [2]蔡昭權(quán).C#和C++數(shù)據(jù)傳遞的研究與實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用與軟件,2009(3):145-147.

    [3]曹 文.C#程序設(shè)計(jì)語(yǔ)言中的委托和事件 [J].現(xiàn)代計(jì)算機(jī),2008(2):72-75,81.

    [4]韓志強(qiáng).對(duì)C#委托內(nèi)部機(jī)制的探析 [J].赤峰學(xué)院學(xué)報(bào)(自然科學(xué)版),2010(10):37-38.

    [5]謝振華.PLC與上位機(jī)串口通訊的實(shí)現(xiàn)及應(yīng)用 [J].儀器儀表用戶(hù),2011(6):59-61.

    [6]楊旭東,蔡敬坤,李 娟.一種通用串口線(xiàn)程在C++Builder中的實(shí)現(xiàn) [J].計(jì)算機(jī)測(cè)量與控制,2011(7):1 687-1 689.

    [7]徐蕾璐,俞子榮.C#.NET環(huán)境下基于Serial Port實(shí)現(xiàn)SR23與PC機(jī)的通信 [J].計(jì)算機(jī)與現(xiàn)代化,2011(5):107-108.

    [8]熊才高.基于PIC單片機(jī)低功耗數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)[J].湖北工業(yè)大學(xué)學(xué)報(bào),2008(2):20-22.

    猜你喜歡
    處理程序輔助線(xiàn)微控制器
    怎樣添輔助線(xiàn)證全等
    高速公路工程變更與計(jì)量支付處理程序的優(yōu)化方法
    兩種重要的輔助線(xiàn)
    淺談?shì)o助線(xiàn)在數(shù)控切割中的應(yīng)用
    物聯(lián)網(wǎng)技術(shù)在微控制器實(shí)驗(yàn)教學(xué)中的應(yīng)用
    電子制作(2017年14期)2017-12-18 07:07:58
    基于C++的數(shù)控加工通用后處理程序的開(kāi)發(fā)應(yīng)用研究
    企業(yè)危機(jī)公關(guān)管理問(wèn)題分析
    Atmel針對(duì)新一代物聯(lián)網(wǎng)應(yīng)用發(fā)布全新32位微控制器
    最新STM32設(shè)計(jì)工具增加對(duì)混合信號(hào)微控制器的支持
    Have Fun with Math
    国产免费福利视频在线观看| 级片在线观看| 国产精品熟女久久久久浪| 嫩草影院新地址| 欧美精品国产亚洲| 国产一区二区在线av高清观看| 成人特级av手机在线观看| 精品久久久久久久久av| 岛国毛片在线播放| 久久久久久久午夜电影| 国产成人91sexporn| 美女大奶头视频| 日韩中字成人| 欧美不卡视频在线免费观看| 成人一区二区视频在线观看| 欧美97在线视频| av在线亚洲专区| 久久鲁丝午夜福利片| 国产色婷婷99| 国产大屁股一区二区在线视频| 你懂的网址亚洲精品在线观看 | 国产精品嫩草影院av在线观看| av女优亚洲男人天堂| 国产视频内射| 天堂影院成人在线观看| 亚洲av中文字字幕乱码综合| 亚洲国产日韩欧美精品在线观看| 色网站视频免费| 男女啪啪激烈高潮av片| av免费观看日本| 国产精品无大码| 亚洲精品亚洲一区二区| 22中文网久久字幕| 神马国产精品三级电影在线观看| 国产高潮美女av| 成人亚洲欧美一区二区av| 亚洲欧美精品自产自拍| 国产精品国产三级专区第一集| 日本免费在线观看一区| 国产精品久久久久久久电影| 麻豆久久精品国产亚洲av| 亚洲欧美精品自产自拍| 成年女人看的毛片在线观看| 少妇人妻精品综合一区二区| 免费不卡的大黄色大毛片视频在线观看 | 偷拍熟女少妇极品色| av免费在线看不卡| 亚洲av.av天堂| av又黄又爽大尺度在线免费看 | 国产成人aa在线观看| 亚洲精品国产av成人精品| 秋霞在线观看毛片| 国产在线一区二区三区精 | 国产av码专区亚洲av| 日韩一本色道免费dvd| 日韩欧美精品v在线| 自拍偷自拍亚洲精品老妇| 国产一区二区三区av在线| 久久婷婷人人爽人人干人人爱| 国产成人91sexporn| 日本wwww免费看| 免费不卡的大黄色大毛片视频在线观看 | av国产免费在线观看| 亚洲va在线va天堂va国产| 天美传媒精品一区二区| 高清av免费在线| 免费看美女性在线毛片视频| 久久国内精品自在自线图片| 亚洲av免费高清在线观看| 国产美女午夜福利| 91精品国产九色| 啦啦啦韩国在线观看视频| 看片在线看免费视频| 嘟嘟电影网在线观看| 日本色播在线视频| 午夜爱爱视频在线播放| 男人舔女人下体高潮全视频| 亚洲乱码一区二区免费版| 国产极品天堂在线| 天堂中文最新版在线下载 | 免费大片18禁| 亚洲精品色激情综合| 人人妻人人看人人澡| 干丝袜人妻中文字幕| 非洲黑人性xxxx精品又粗又长| 成人国产麻豆网| 国产一区二区在线观看日韩| 色噜噜av男人的天堂激情| 国产精品爽爽va在线观看网站| 免费观看的影片在线观看| av线在线观看网站| 少妇熟女aⅴ在线视频| 国产极品天堂在线| 五月玫瑰六月丁香| 99国产精品一区二区蜜桃av| 99热全是精品| 丝袜喷水一区| 国内精品一区二区在线观看| 欧美激情国产日韩精品一区| 麻豆成人av视频| 亚洲三级黄色毛片| 免费人成在线观看视频色| 成人午夜精彩视频在线观看| 国产色爽女视频免费观看| 级片在线观看| 国产欧美日韩精品一区二区| 国产精品99久久久久久久久| 伦精品一区二区三区| 在线观看av片永久免费下载| 亚洲成人精品中文字幕电影| 亚洲欧美精品专区久久| www.色视频.com| 中文字幕熟女人妻在线| АⅤ资源中文在线天堂| ponron亚洲| 国产69精品久久久久777片| 国产精品久久久久久久久免| 欧美极品一区二区三区四区| 国产一区有黄有色的免费视频 | 久久久久久国产a免费观看| 久久久久久久午夜电影| 日本一二三区视频观看| 中文字幕免费在线视频6| 成人欧美大片| 老女人水多毛片| 久久久久免费精品人妻一区二区| 我的老师免费观看完整版| 欧美bdsm另类| 国产精品国产三级专区第一集| 国产精品国产三级国产av玫瑰| 男人舔奶头视频| 亚洲国产高清在线一区二区三| 一区二区三区高清视频在线| 黄片wwwwww| 五月玫瑰六月丁香| 一级二级三级毛片免费看| 午夜亚洲福利在线播放| 99在线人妻在线中文字幕| 成人特级av手机在线观看| 欧美性猛交黑人性爽| 一级二级三级毛片免费看| 校园人妻丝袜中文字幕| 久久久久九九精品影院| 日韩 亚洲 欧美在线| 1024手机看黄色片| 男的添女的下面高潮视频| 精品国产一区二区三区久久久樱花 | 国产黄a三级三级三级人| 少妇丰满av| 蜜桃亚洲精品一区二区三区| 国产精品麻豆人妻色哟哟久久 | 免费黄色在线免费观看| 非洲黑人性xxxx精品又粗又长| 在线免费十八禁| 久久精品夜色国产| 又爽又黄无遮挡网站| 亚洲久久久久久中文字幕| 国产成人a区在线观看| kizo精华| 三级毛片av免费| 99热网站在线观看| 亚洲av成人av| 日本av手机在线免费观看| 美女内射精品一级片tv| 日韩 亚洲 欧美在线| 免费黄网站久久成人精品| 午夜免费男女啪啪视频观看| 亚洲经典国产精华液单| 成人亚洲欧美一区二区av| 欧美另类亚洲清纯唯美| 高清av免费在线| 欧美一区二区亚洲| 久久6这里有精品| 日韩亚洲欧美综合| 99热6这里只有精品| 久久精品国产鲁丝片午夜精品| 亚洲成av人片在线播放无| 久久精品久久久久久久性| 精品久久久久久久久av| 日日干狠狠操夜夜爽| 女人被狂操c到高潮| 欧美人与善性xxx| 22中文网久久字幕| 只有这里有精品99| 麻豆国产97在线/欧美| 日日干狠狠操夜夜爽| 久久久色成人| 国产综合懂色| 老司机影院毛片| 26uuu在线亚洲综合色| 99久久中文字幕三级久久日本| 日韩欧美三级三区| 欧美日本视频| 亚洲丝袜综合中文字幕| 欧美最新免费一区二区三区| 国产一区二区在线观看日韩| 一级毛片电影观看 | 99热全是精品| 99在线视频只有这里精品首页| 亚洲精品,欧美精品| 中文精品一卡2卡3卡4更新| 亚洲av熟女| 国产精品嫩草影院av在线观看| 一卡2卡三卡四卡精品乱码亚洲| 日日摸夜夜添夜夜添av毛片| 美女脱内裤让男人舔精品视频| 亚洲乱码一区二区免费版| 亚洲国产色片| 视频中文字幕在线观看| 大话2 男鬼变身卡| 国产毛片a区久久久久| 永久免费av网站大全| 久久久成人免费电影| 丰满乱子伦码专区| 美女内射精品一级片tv| 国产69精品久久久久777片| 欧美一级a爱片免费观看看| 伊人久久精品亚洲午夜| 一区二区三区免费毛片| av在线播放精品| 一个人观看的视频www高清免费观看| 欧美成人一区二区免费高清观看| 午夜激情福利司机影院| 国产淫语在线视频| 精品不卡国产一区二区三区| 欧美日韩精品成人综合77777| 日本wwww免费看| 国内精品一区二区在线观看| 久久久亚洲精品成人影院| 久久久久久伊人网av| av在线播放精品| 色视频www国产| 天堂av国产一区二区熟女人妻| 亚洲av二区三区四区| 你懂的网址亚洲精品在线观看 | 日韩欧美在线乱码| 久久鲁丝午夜福利片| 一级黄色大片毛片| 成人三级黄色视频| 国产成人免费观看mmmm| 天天躁日日操中文字幕| 国产v大片淫在线免费观看| 99热精品在线国产| av免费观看日本| 人人妻人人看人人澡| 国产午夜精品论理片| 免费观看在线日韩| 97人妻精品一区二区三区麻豆| 亚洲伊人久久精品综合 | 真实男女啪啪啪动态图| 可以在线观看毛片的网站| 22中文网久久字幕| 九九热线精品视视频播放| 干丝袜人妻中文字幕| 国产伦在线观看视频一区| www日本黄色视频网| 卡戴珊不雅视频在线播放| 91精品国产九色| 国产一区有黄有色的免费视频 | 久久精品久久精品一区二区三区| 日本一二三区视频观看| 国产91av在线免费观看| 国产激情偷乱视频一区二区| 国产女主播在线喷水免费视频网站 | 一个人看的www免费观看视频| 欧美bdsm另类| 欧美zozozo另类| 99热全是精品| 高清视频免费观看一区二区 | 夜夜看夜夜爽夜夜摸| 22中文网久久字幕| 国产私拍福利视频在线观看| 国产精品1区2区在线观看.| 亚洲精华国产精华液的使用体验| 久久久久国产网址| 成人毛片60女人毛片免费| 青青草视频在线视频观看| 老女人水多毛片| 亚洲精品亚洲一区二区| 99久久无色码亚洲精品果冻| 亚洲在线观看片| 波多野结衣高清无吗| 搡老妇女老女人老熟妇| 丝袜喷水一区| 国产极品精品免费视频能看的| 国产精品日韩av在线免费观看| 蜜桃亚洲精品一区二区三区| 欧美激情久久久久久爽电影| 91aial.com中文字幕在线观看| 日韩欧美三级三区| 男插女下体视频免费在线播放| 久久久a久久爽久久v久久| 人妻制服诱惑在线中文字幕| 人妻夜夜爽99麻豆av| 高清日韩中文字幕在线| 性插视频无遮挡在线免费观看| 亚洲图色成人| 色综合色国产| 99久久精品热视频| 亚洲av一区综合| 亚洲久久久久久中文字幕| 夫妻性生交免费视频一级片| videossex国产| 丝袜喷水一区| 亚洲av中文av极速乱| 亚洲av一区综合| 国产在视频线在精品| 91久久精品电影网| 免费看美女性在线毛片视频| 亚洲图色成人| 午夜福利高清视频| 免费看美女性在线毛片视频| 欧美另类亚洲清纯唯美| 夜夜看夜夜爽夜夜摸| 久久精品综合一区二区三区| 极品教师在线视频| 熟女电影av网| 欧美性猛交黑人性爽| 国产中年淑女户外野战色| 亚洲欧美日韩东京热| 亚洲欧美成人综合另类久久久 | 欧美性猛交黑人性爽| 久久精品国产99精品国产亚洲性色| 欧美三级亚洲精品| 床上黄色一级片| 嘟嘟电影网在线观看| 国产午夜福利久久久久久| 久久久久久大精品| 亚洲欧美精品综合久久99| 午夜福利在线观看免费完整高清在| 国产高清视频在线观看网站| 成人性生交大片免费视频hd| 国产精品1区2区在线观看.| АⅤ资源中文在线天堂| 成人鲁丝片一二三区免费| 熟女电影av网| 一级毛片久久久久久久久女| 久久久久久久国产电影| 国内精品美女久久久久久| 亚洲最大成人av| 亚洲av免费高清在线观看| 色哟哟·www| 亚洲欧美中文字幕日韩二区| 亚洲成av人片在线播放无| 亚洲自拍偷在线| 卡戴珊不雅视频在线播放| 久久人人爽人人爽人人片va| 久久精品久久久久久噜噜老黄 | 国产成人aa在线观看| 国产乱人偷精品视频| 老司机影院毛片| 亚洲一级一片aⅴ在线观看| 少妇猛男粗大的猛烈进出视频 | 亚洲欧美成人综合另类久久久 | 搞女人的毛片| 国产黄片美女视频| 成人鲁丝片一二三区免费| 国产午夜精品论理片| 国产三级在线视频| 少妇裸体淫交视频免费看高清| 亚洲av不卡在线观看| 色网站视频免费| 亚洲国产欧美人成| 中文字幕制服av| 老司机影院毛片| 高清av免费在线| 非洲黑人性xxxx精品又粗又长| 成人一区二区视频在线观看| 日本黄大片高清| 亚洲国产欧美在线一区| 亚洲国产最新在线播放| 美女被艹到高潮喷水动态| 26uuu在线亚洲综合色| 最后的刺客免费高清国语| 亚洲在线自拍视频| 黄片无遮挡物在线观看| 少妇猛男粗大的猛烈进出视频 | 我的女老师完整版在线观看| 国产麻豆成人av免费视频| 99久久九九国产精品国产免费| 有码 亚洲区| 一卡2卡三卡四卡精品乱码亚洲| 我的老师免费观看完整版| 国产高清有码在线观看视频| 联通29元200g的流量卡| 婷婷色综合大香蕉| 99久国产av精品国产电影| 国产精品99久久久久久久久| 国产成年人精品一区二区| 国产精品久久久久久久久免| 1000部很黄的大片| 亚洲欧美日韩卡通动漫| 国产伦精品一区二区三区四那| av播播在线观看一区| 国产成人a∨麻豆精品| 精品人妻一区二区三区麻豆| 久久鲁丝午夜福利片| 真实男女啪啪啪动态图| 国产女主播在线喷水免费视频网站 | 联通29元200g的流量卡| 国产一区二区三区av在线| 麻豆成人午夜福利视频| 久久久久久久久久成人| 高清日韩中文字幕在线| 51国产日韩欧美| 国产毛片a区久久久久| 草草在线视频免费看| 禁无遮挡网站| 亚洲国产日韩欧美精品在线观看| www.色视频.com| 久久精品国产99精品国产亚洲性色| 九九在线视频观看精品| 18禁在线播放成人免费| 亚洲三级黄色毛片| 亚洲av男天堂| 国产视频内射| 国产一级毛片七仙女欲春2| 少妇猛男粗大的猛烈进出视频 | 亚洲aⅴ乱码一区二区在线播放| 精品久久久久久久人妻蜜臀av| 色综合亚洲欧美另类图片| 久热久热在线精品观看| 久久久亚洲精品成人影院| 国产在视频线精品| 两性午夜刺激爽爽歪歪视频在线观看| 伊人久久精品亚洲午夜| 欧美日韩综合久久久久久| 我要搜黄色片| 欧美成人午夜免费资源| 欧美成人精品欧美一级黄| 精品久久久久久久人妻蜜臀av| 美女大奶头视频| 国产亚洲精品久久久com| 亚洲精品一区蜜桃| 欧美日韩在线观看h| 成人鲁丝片一二三区免费| 久久热精品热| 2021少妇久久久久久久久久久| 你懂的网址亚洲精品在线观看 | 精品国内亚洲2022精品成人| 免费av毛片视频| 99久国产av精品| 汤姆久久久久久久影院中文字幕 | 久久精品综合一区二区三区| 久久久a久久爽久久v久久| 亚洲国产精品专区欧美| 国产单亲对白刺激| 我的老师免费观看完整版| 一区二区三区免费毛片| 嘟嘟电影网在线观看| 亚洲av日韩在线播放| 能在线免费看毛片的网站| 免费无遮挡裸体视频| 搡老妇女老女人老熟妇| 亚洲成av人片在线播放无| 少妇的逼好多水| 国产精品麻豆人妻色哟哟久久 | 精品午夜福利在线看| 国产精品永久免费网站| 日韩大片免费观看网站 | 日韩欧美三级三区| 国产成人a区在线观看| 丰满乱子伦码专区| 亚洲欧美日韩东京热| 最后的刺客免费高清国语| 亚洲成人av在线免费| 国产高清国产精品国产三级 | 日本午夜av视频| 国产成人一区二区在线| 国产国拍精品亚洲av在线观看| 亚洲不卡免费看| 欧美高清成人免费视频www| 久久99精品国语久久久| 亚洲欧美日韩高清专用| 亚洲最大成人中文| 日日干狠狠操夜夜爽| 免费av观看视频| 97超视频在线观看视频| 午夜精品国产一区二区电影 | 久久热精品热| 一区二区三区免费毛片| 内射极品少妇av片p| 国产一区二区在线av高清观看| 最近最新中文字幕大全电影3| 久久久亚洲精品成人影院| 一区二区三区乱码不卡18| 亚洲国产成人一精品久久久| 国产女主播在线喷水免费视频网站 | 99久久九九国产精品国产免费| 亚洲国产欧美在线一区| 亚洲国产精品国产精品| 亚洲精品,欧美精品| 日韩一区二区三区影片| 亚洲精品亚洲一区二区| 春色校园在线视频观看| 波野结衣二区三区在线| 乱人视频在线观看| 赤兔流量卡办理| 国产成人免费观看mmmm| 亚洲国产精品久久男人天堂| 日本与韩国留学比较| 精品无人区乱码1区二区| 午夜福利在线观看免费完整高清在| 18禁裸乳无遮挡免费网站照片| www.av在线官网国产| 午夜亚洲福利在线播放| 少妇的逼水好多| 国产一区亚洲一区在线观看| 免费黄网站久久成人精品| 亚洲精品久久久久久婷婷小说 | 国产精品国产三级国产av玫瑰| 在线免费观看的www视频| 99在线视频只有这里精品首页| 日本熟妇午夜| 亚洲国产欧洲综合997久久,| 国产精品伦人一区二区| 中文欧美无线码| 国产麻豆成人av免费视频| 亚洲电影在线观看av| 我要搜黄色片| kizo精华| 一本—道久久a久久精品蜜桃钙片 精品乱码久久久久久99久播 | 色播亚洲综合网| 精品酒店卫生间| 超碰av人人做人人爽久久| 91狼人影院| 一边亲一边摸免费视频| 久久精品熟女亚洲av麻豆精品 | 国产探花极品一区二区| 偷拍熟女少妇极品色| 成人午夜精彩视频在线观看| 欧美一区二区国产精品久久精品| 成人综合一区亚洲| 国产精品国产三级国产av玫瑰| 亚洲国产精品国产精品| 亚洲欧美成人综合另类久久久 | 精品不卡国产一区二区三区| 天美传媒精品一区二区| 久久久久国产网址| 五月玫瑰六月丁香| 免费看光身美女| 日韩亚洲欧美综合| 边亲边吃奶的免费视频| 国产精品久久久久久久久免| 99在线人妻在线中文字幕| 欧美高清成人免费视频www| 丰满少妇做爰视频| 只有这里有精品99| 一卡2卡三卡四卡精品乱码亚洲| 精品久久久久久久久av| 久久久久久久久久久免费av| 亚洲欧美清纯卡通| 精品人妻视频免费看| 丝袜喷水一区| 国产精品爽爽va在线观看网站| 精品不卡国产一区二区三区| 午夜福利视频1000在线观看| 哪个播放器可以免费观看大片| 亚洲在线自拍视频| 国产亚洲最大av| 亚洲成色77777| 亚洲人与动物交配视频| 国产大屁股一区二区在线视频| 欧美性猛交╳xxx乱大交人| 你懂的网址亚洲精品在线观看 | 你懂的网址亚洲精品在线观看 | 久久欧美精品欧美久久欧美| 在线播放国产精品三级| 久久综合国产亚洲精品| 日本熟妇午夜| 精品人妻熟女av久视频| 久久国产乱子免费精品| 国产在视频线在精品| 一级毛片久久久久久久久女| av在线蜜桃| 建设人人有责人人尽责人人享有的 | 哪个播放器可以免费观看大片| 久久久精品大字幕| av在线播放精品| 日本黄大片高清| 午夜精品国产一区二区电影 | 国产极品精品免费视频能看的| 2021少妇久久久久久久久久久| av免费观看日本| a级一级毛片免费在线观看| 校园人妻丝袜中文字幕| 国产精品1区2区在线观看.| 成人性生交大片免费视频hd| 黄色日韩在线| 麻豆成人午夜福利视频| 久久久成人免费电影| 欧美+日韩+精品| 国产淫片久久久久久久久| 久久精品久久久久久噜噜老黄 | 床上黄色一级片| 久久久久久久久久久免费av| 欧美zozozo另类| 免费观看在线日韩| 少妇人妻精品综合一区二区| www.色视频.com| 赤兔流量卡办理| 亚洲在久久综合| 成人性生交大片免费视频hd| 国产成人91sexporn| 亚洲在久久综合| 亚洲欧美一区二区三区国产| 最近最新中文字幕免费大全7| 亚洲国产精品合色在线| 少妇熟女欧美另类| 国产男人的电影天堂91| 人人妻人人澡人人爽人人夜夜 | 中文字幕亚洲精品专区| 久久久久久久午夜电影| 精品熟女少妇av免费看| 欧美高清性xxxxhd video|