日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

python3 GUI用户界面总结(以串口调试为例,持续改进)

發(fā)布時(shí)間:2024/3/26 python 75 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python3 GUI用户界面总结(以串口调试为例,持续改进) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

本文主要目的是總結(jié)串口調(diào)試助手開發(fā)過程中遇到的問題和解決方法,以及總結(jié)通用資料以備后續(xù)參考,歡迎批評指正。

需要掌握的基礎(chǔ)內(nèi)容:

  • 涉及到的python庫的基本操作
  • 串口通信基礎(chǔ)
  • 進(jìn)制轉(zhuǎn)換等算法問題
  • python3基礎(chǔ)語言和方法

本文安排:

  • python庫簡介,包括tkiner、serial
  • 開發(fā)上位機(jī)過程中遇到的函數(shù)調(diào)用方式、庫方法使用方式
  • 涉及具體算法需要掌握的知識基礎(chǔ)
  • 其他可能用到的資料

內(nèi)容比較瑣碎,可根據(jù)目錄查看所需內(nèi)容。詳情查看所附鏈接。

文章目錄

        • 開發(fā)上位機(jī)用到的python庫
          • serial簡介
          • PyQt5簡介
          • tkinter簡介
          • tkinter包含的控件
            • mainloop的實(shí)質(zhì)
            • tkinter text
            • Scrollbar控件-添加滑動條
            • numpy
          • threading庫簡介
            • join
        • 開發(fā)串口調(diào)試助手
          • 串口類
          • 打包GUI程序?yàn)閑xe文件
        • 錯(cuò)誤解決
          • 讀取串口數(shù)據(jù)時(shí)崩潰、無數(shù)據(jù)、數(shù)據(jù)不全
          • 丟包
          • 串口通信之?dāng)?shù)據(jù)丟失
        • python相關(guān)
          • 為什么要加if __name __==‘__main __’:
          • 線程
            • 并發(fā)與并行
            • 線程與進(jìn)程
            • 單線程與多線程
          • 常見異常類型
          • 重命名變量方法
          • 運(yùn)算
            • 原碼補(bǔ)碼轉(zhuǎn)換
            • python指數(shù)**
          • 數(shù)值與字符串
            • python讀取字符串長度len()
            • python的數(shù)值與字符串區(qū)分
            • python二進(jìn)制-十進(jìn)制轉(zhuǎn)換
            • python字符串轉(zhuǎn)十進(jìn)制整型
            • python截取字符串
            • python 替換字符串
            • 列表插入元素append
            • python 二維列表
            • python二維列表對應(yīng)元素相加
            • encode與decode
          • 文件
            • 讀寫文件(txt、csv、excel)
            • 文件操作模式
          • python跨文件調(diào)用函數(shù)
          • datetime庫 獲取當(dāng)前時(shí)間
        • 實(shí)例鏈接
          • 計(jì)算器GUI實(shí)例
          • 串口調(diào)試助手GUI實(shí)例
          • 讀取串口數(shù)據(jù)并寫入txt文件

開發(fā)上位機(jī)用到的python庫

此處僅為庫的簡介,以及實(shí)際開發(fā)上位機(jī)過程中遇到的重要的控件。

serial簡介

serial 是串口接口庫,與串口通信相關(guān)的操作都需使用。

程序中import serial 實(shí)際安裝的是pyserial庫,關(guān)于pyserial的詳細(xì)手冊鏈接和資料,可參見: python庫之pyserial用法_CSDN博客

import serial后,工程文件夾下會有serial文件夾。
serial文件夾中的serialwin32.py可以找到庫函數(shù)的定義,如果看了上面鏈接中的函數(shù)說明仍然有疑惑,可以自行查看函數(shù)定義。

這個(gè)文件里有from serial import win32
涉及到win32的,可以到Microsoft文檔中找資料,如下圖為COMSTST結(jié)構(gòu)體的說明。

PyQt5簡介

Python上位機(jī)軟件圖形界面實(shí)戰(zhàn)(2)_Funny-CSDN博客_python適合開發(fā)上位機(jī)嗎
PyQt5是用于圖形化界面設(shè)計(jì)的,僅設(shè)計(jì)界面,功能函數(shù)還需自己編寫。對界面要求不高的上位機(jī)只需用tkinter庫即可完成界面和功能的設(shè)計(jì)。

上位機(jī)圖形界面開發(fā)設(shè)計(jì)用QT Designer就可以了。但是qt designer生成的是.ui文件,我們需要將.ui轉(zhuǎn)換為我們用的py文件。

以下僅以tkinter和serial作為開發(fā)調(diào)試串口助手GUI的核心庫,此外可能會用到time庫進(jìn)行延時(shí)操作。

tkinter簡介

Graphical User Interfaces with Tk — Python 3.8.5 documentation
Python GUI 編程(Tkinter) | 菜鳥教程

tkinter庫是Tcl / Tk的Python接口,用于制作和處理圖形用戶界面(Graphical User Interface,簡稱 GUI,又稱圖形用戶接口)

Tk / Tcl提供了與平臺無關(guān)的窗口工具箱,使用tkinter軟件包及其擴(kuò)展名tkinter.tix和tkinter.ttk模塊的Python程序員可以使用該工具箱。

tkinter包是Tcl / Tk之上的面向?qū)ο髮印R褂胻kinter,您無需編寫Tcl代碼,但您需要查閱Tk文檔,有時(shí)還需要查閱Tcl文檔。 tkinter是一組將Tk小部件實(shí)現(xiàn)為Python類的包裝器。另外,內(nèi)部模塊_tkinter提供了線程安全機(jī)制,該機(jī)制允許Python和Tcl進(jìn)行交互。

tkinter的主要優(yōu)點(diǎn)是速度快,并且通常與Python捆綁在一起。盡管其標(biāo)準(zhǔn)文檔weak,但仍然可以找到不錯(cuò)的材料,其中包括:參考資料,教程,書籍等。但是,您可能會對許多其他GUI庫感興趣,有關(guān)替代方法的更多信息,請參見“其他圖形用戶界面包”。

注意,不同版本的python調(diào)用庫的名稱不同。

#!/usr/bin/python3import tkinter # 創(chuàng)建Tk top = tkinter.Tk() # 進(jìn)入消息循環(huán) top.mainloop() #!/usr/bin/python2 # -*- coding: UTF-8 -*-import Tkinter # 創(chuàng)建Tk top = Tkinter.Tk() # 進(jìn)入消息循環(huán) top.mainloop()
tkinter包含的控件

Python GUI之tkinter窗口視窗教程大集合 - 洪衛(wèi) - 博客園
控件介紹和基本操作見鏈接。

Tkinter支持16個(gè)核心的窗口部件,這個(gè)16個(gè)核心窗口部件類簡要描述如下:

控件功能
Button一個(gè)簡單的按鈕,用來執(zhí)行一個(gè)命令或別的操作。
Canvas組織圖形。這個(gè)部件可以用來繪制圖表和圖,創(chuàng)建圖形編輯器,實(shí)現(xiàn)定制窗口部件。
Checkbutton代表一個(gè)變量,它有兩個(gè)不同的值。點(diǎn)擊這個(gè)按鈕將會在這兩個(gè)值間切換。
Entry文本輸入域。
Frame一個(gè)容器窗口部件。幀可以有邊框和背景,當(dāng)創(chuàng)建一個(gè)應(yīng)用程序或dialog(對話)版面時(shí),幀被用來組織其它的窗口部件。
Label顯示一個(gè)文本或圖象。
Listbox顯示供選方案的一個(gè)列表。listbox能夠被配置來得到radiobutton或checklist的行為。
Menu菜單條。用來實(shí)現(xiàn)下拉和彈出式菜單。
Menubutton菜單按鈕。用來實(shí)現(xiàn)下拉式菜單。
Message顯示一文本。類似label窗口部件,但是能夠自動地調(diào)整文本到給定的寬度或比率。
Radiobutton代表一個(gè)變量,它可以有多個(gè)值中的一個(gè)。點(diǎn)擊它將為這個(gè)變量設(shè)置值,并且清除與這同一變量相關(guān)的其它radiobutton。
Scale允許你通過滑塊來設(shè)置一數(shù)字值。
Scrollbar為配合使用canvas, entry, listbox, and text窗口部件的標(biāo)準(zhǔn)滾動條。
Text格式化文本顯示。允許你用不同的樣式和屬性來顯示和編輯文本。同時(shí)支持內(nèi)嵌圖象和窗口。
Toplevel一個(gè)容器窗口部件,作為一個(gè)單獨(dú)的、最上面的窗口顯示。
messageBox消息框,用于顯示你應(yīng)用程序的消息框。(Python2中為tkMessagebox)

注意在Tkinter中窗口部件類沒有分級;所有的窗口部件類在樹中都是兄弟關(guān)系。

所有這些窗口部件提供了Misc和幾何管理方法、配置管理方法和部件自己定義的另外的方法。此外,Toplevel類也提供窗口管理接口。這意味一個(gè)典型的窗口部件類提供了大約150種方法。

mainloop的實(shí)質(zhì)

mainloop()是tkinker的界面初始化完成后,開啟界面及其調(diào)度管理功能的函數(shù)。用戶只需按照庫中已有的方法編寫好所需的功能和界面,再執(zhí)行mainloop,就可以實(shí)現(xiàn)上位機(jī)的程序開發(fā)過程。

以下偽代碼說明了其實(shí)質(zhì):鏈接

def mainloop():while the main window has not been closed:if an event has occurred:run the associated event handler function

只要GUI還在屏幕上,mainloop調(diào)用就不會返回執(zhí)行代碼。

tkinter text

text:Python - Tkinter Text - Tutorialspoint

上面的鏈接中介紹了tkinter庫中的關(guān)于文本text的屬性、方法等。需要GUI顯示多行文字時(shí)使用,常見的應(yīng)用是顯示輸出數(shù)據(jù)、顯示輸入文字等。下面是關(guān)于方法的截圖,insert用于在文本中添加內(nèi)容,see用于選擇GUI上顯示的位置。

text在GUI上長這樣:

Scrollbar控件-添加滑動條

Tkinter 組件詳解(九):Scrollbar_一只沒有腳的豬的博客-CSDN博客
Scrollbar 組件通常與 Text 組件、Canvas 組件和 Listbox 組件一起使用,水平滾動條還能跟 Entry 組件配合。

text控件默認(rèn)沒有滑動條,所以當(dāng)文本內(nèi)容超出窗口大小時(shí)不能判斷內(nèi)容的多少和位置,很不方便。下面是scrollbar和text一起使用的例子。

如果只有一個(gè)滑動條,還可以綁定鼠標(biāo)滾輪和滑動條(綁定后鼠標(biāo)即使不點(diǎn)擊選中窗口,滑動滾輪也可以翻頁)

# 給text添加滑動條:# 設(shè)置滑動條,設(shè)置其位置st = tkinter.Scrollbar(self.mainwin) # 在text旁邊加# st.pack(side=tkinter.RIGHT, fill=tkinter.Y) # 在整個(gè)窗口旁邊加滑動條# textself.SendDataView = ScrolledText(self.mainwin, width=60, height=3,font=("宋體", 10)) # text實(shí)際上是一個(gè)文本編輯器self.SendDataView.place(x=230, y=35) # 顯示# 在text右邊添加滑動條self.SendDataView.focus_set() # 不知何用?st.config(command=self.SendDataView.yview)# 綁定鼠標(biāo)滾輪和滑動條# self.mainwin.bind("<MouseWheel>", self._on_mousewheel)

鏈接

numpy

Python、Numpy 教程 | NumPy 中文

threading庫簡介

手冊(全英文):threading — Thread-based parallelism — Python 3.8.5 documentation

threading:Python 3 之后的線程模塊,提供了功能豐富的多線程支持,推薦使用。

Python 主要通過兩種方式來創(chuàng)建線程:(鏈接)

  • 使用 threading 模塊中 Thread 類的構(gòu)造器創(chuàng)建線程。即直接對類 threading.Thread 進(jìn)行實(shí)例化創(chuàng)建線程,并調(diào)用實(shí)例化對象的 start() 方法啟動線程。
  • 繼承 threading 模塊中的 Thread 類創(chuàng)建線程類。即用 threading.Thread 派生出一個(gè)新的子類,將新建類實(shí)例化創(chuàng)建線程,并調(diào)用其 start() 方法啟動線程。

線程需要手動啟動才能運(yùn)行,threading 模塊提供了 start() 方法用來啟動線程。

import threadingdef t_receive():# 接收...def t_save():# 保存...# 創(chuàng)建線程 t1 = threading.Thread(target=t_receive) t2 = threading.Thread(target=t_save)# 設(shè)置t2為守護(hù)線程,即服務(wù)程序 t2.setDaemon(True)# 開啟線程 t1.start() t2.start()# 線程占用CPU直至死亡 t1.join() t2.join()

代碼鏈接

join

join() 方法的功能是在程序指定位置,優(yōu)先讓該方法的調(diào)用者使用 CPU 資源。該方法的語法格式如下:

thread1.join( [timeout] )

其中,thread1 為 thread 類或其子類的實(shí)例化對象;timeout 參數(shù)作為可選參數(shù),其功能是指定 thread 線程最多可以霸占 CPU 資源的時(shí)間(以秒為單位),如果省略,則默認(rèn)直到 thread 執(zhí)行結(jié)束(進(jìn)入死亡狀態(tài))才釋放 CPU 資源。

開發(fā)串口調(diào)試助手

背景知識(新手入門):
關(guān)于串口上位機(jī)編程你需掌握的背景知識_Robert Zhang-CSDN博客
哈嘍,上位機(jī)(上位機(jī)開發(fā)指南)_Robert Zhang_robert_cysy-CSDN博客

基本過程:

  • 完成所需功能(選擇串口、選擇波特率、發(fā)送、接收、顯示、輸出結(jié)果到文件)
  • 設(shè)計(jì)界面(文本、按鈕、選項(xiàng)框、大小、位置、顏色)
  • 連接功能函數(shù)和界面
  • 測試,解決bug
  • 封裝,打包為exe文件等等

代碼重點(diǎn)參考:
python實(shí)現(xiàn)串口通訊小程序(GUI界面)_明志的博客-CSDN博客_pycharm 開發(fā)串口

上位機(jī)開發(fā)工具對比:
原來這才是大家常用的上位機(jī)開發(fā)平臺_Robert Zhang-CSDN博客

下面只總結(jié)一些具體的方法和代碼。

串口類

定義串口處理類,后續(xù)操作可直接調(diào)用。

import serial import serial.tools.list_ports# 串口處理類 class SerialAchieve:def __init__(self, band=3000000, check="無校驗(yàn)位", data=8, stop=1):self.port = None# 獲取可用串口self.port_list = list(serial.tools.list_ports.comports())assert (len(self.port_list) != 0), "無可用串口"self.bandRate = bandself.checkbit = checkself.databit = dataself.stopbit = stop# 讀寫的數(shù)據(jù)self.read_data = Noneself.write_data = Nonepassdef show_port(self):for i in range(0, len(self.port_list)):print(self.port_list[i])def show_other(self):print("波特率:" + self.bandRate)print("校驗(yàn)位:" + self.checkbit)print("數(shù)據(jù)位:" + self.databit)print("停止位:" + self.stopbit)# 返回串口def get_port(self):return self.port_list# 打開串口def open_port(self, port):self.port = serial.Serial(port, self.bandRate, timeout=1) # timeout=None# 關(guān)閉串口def delete_port(self):if self.port != None:self.port.close()print("關(guān)閉串口完成")else:passdef Read_data(self): # self.port.read(self.port.in_waiting) 表示全部接收串口中的數(shù)據(jù)self.read_data = self.port.read(self.port.in_waiting) # 讀取數(shù)據(jù)return self.read_data.decode("utf-8")def Write_data(self, data):if self.port.isOpen() == False:print("串口打開錯(cuò)誤")else:self.port.write(data.encode("utf-8")) # 返回的是寫入的字節(jié)數(shù)# 主類 class MainSerial:def __init__(self):# 定義串口變量self.port = Noneself.band = Noneself.check = Noneself.data = Noneself.stop = Noneself.myserial = None# 創(chuàng)建串口對象self.myserial = SerialAchieve(int(self.band), self.check, self.data, self.stop)# 處理串口值self.port_list = self.myserial.get_port()port_str_list = [] # 用來存儲切割好的串口號for i in range(len(self.port_list)):# 將串口號切割出來lines = str(self.port_list[i])str_list = lines.split(" ")port_str_list.append(str_list[0])# 主函數(shù) if __name__ == '__main__':my_ser1 = MainSerial()my_ser1.show()
打包GUI程序?yàn)閑xe文件

如果要脫離python環(huán)境使用,則需要將寫好gui的python3的py文件打包成exe程序。

鏈接:

  • python3項(xiàng)目打包成exe可執(zhí)行程序 - 測試一枝花 - 博客園
  • 怎么把python代碼打包成exe文件-百度經(jīng)驗(yàn)
  • 步驟(詳細(xì)步驟見鏈接):

  • 在命令窗口安裝pyinstaller庫
  • 在命令窗口切換到打包程序目錄
    例:需要打包程序目錄為:D:\automation\autotest_tool\interface_param_change_tool
    切換指令:cd D:\automation\autotest_tool\interface_param_change_tool
  • 打包文件,pyinstaller -F xxx.py(xxx.py,打包的文件)
    例:需要打包的python程序?yàn)?#xff1a;runner.py
    指令:pyinstaller -F runner.py
  • 檢查是否成功,到打包文件目錄查看打包好的程序,并執(zhí)行
    打包成功后項(xiàng)目中新增dist文件,進(jìn)入dist文件,點(diǎn)擊運(yùn)行打包好的exe程序
  • 錯(cuò)誤解決

    讀取串口數(shù)據(jù)時(shí)崩潰、無數(shù)據(jù)、數(shù)據(jù)不全

    python-在Python3.7的環(huán)境下,每次都是執(zhí)行到serial.read()就卡住了。——CSDN問答頻道

    上位機(jī)崩潰(不斷輸出,鼠標(biāo)點(diǎn)擊后無響應(yīng))。
    可能是由于陷入死循環(huán)中,阻塞了,不能進(jìn)行其他操作。可檢查讀取串口的函數(shù),看看是不是無限循環(huán),無法退出。還可能是要讀取的數(shù)據(jù)太多了,超出緩存區(qū)大小。
    解決:增加退出條件,或建立線程(需要操作系統(tǒng)相關(guān)知識)。
    關(guān)于超出緩存的問題,可參考下面鏈接關(guān)于緩存區(qū)大小和解決思路的討論:
    串口一次最大能接收多少字節(jié)-CSDN論壇

    上位機(jī)要接收兩次才能將下位機(jī)發(fā)送數(shù)據(jù)顯示完全。

    • 緩沖區(qū)決定一次接收數(shù)據(jù)大小。
    • 一般串口硬件只有1個(gè)字節(jié)緩沖,其他都是系統(tǒng)自己的內(nèi)存做暫存緩沖的,而且一般不會很大。最好自己設(shè)置一個(gè)內(nèi)存,多少取決于你的內(nèi)存大小,中斷消息處理串口數(shù)據(jù),存到自己的緩沖區(qū),等到字節(jié)到了你需要的,再從緩沖區(qū)讀出。這樣就非常靈活了。鏈接

    接收數(shù)據(jù),但無數(shù)據(jù)顯示。
    首先排除單片機(jī)確實(shí)無數(shù)據(jù)發(fā)送的情況,再考慮是否由于沒有增加延時(shí),導(dǎo)致緩存區(qū)里沒有儲存到單片機(jī)發(fā)送的數(shù)據(jù)。
    解決:在讀取串口數(shù)據(jù)之前增加延時(shí)語句。延時(shí)可import time,使用time庫中的time.sleep(sec),參數(shù)單位為秒。

    補(bǔ)充:

    • serial.iswaiting啟動接收,并返回接收數(shù)據(jù)的長度,然后用read(n)將這指定的數(shù)據(jù)讀出來。但現(xiàn)實(shí)中的問題是兩者的中間需要加延時(shí)(根據(jù)波特率計(jì)算發(fā)送內(nèi)容所需的時(shí)間,這樣就不會出現(xiàn)延時(shí)過短讀出的不全;延時(shí)時(shí)間長了就會出現(xiàn)前后幀發(fā)出的內(nèi)容重合到一起),此外如果需要判斷什么時(shí)候串口不活動,可以再serial.iswaiting一直延時(shí)(超過幾個(gè)字符的傳送時(shí)間,軟件延時(shí)計(jì)數(shù)器累加),而在循環(huán)體外將計(jì)數(shù)器清零,在累計(jì)的幾個(gè)字符時(shí)間接受的數(shù)據(jù)長度還為0則認(rèn)為通訊結(jié)束。鏈接

    數(shù)據(jù)不全,有數(shù)據(jù)顯示,但缺少了內(nèi)容。
    可能是單片機(jī)發(fā)送的時(shí)間長,延時(shí)時(shí)間比數(shù)據(jù)發(fā)送時(shí)間短,所以緩存中內(nèi)容只有顯示的那些數(shù)據(jù)。還可能是由于接受串口數(shù)據(jù)晚了,單片機(jī)發(fā)的數(shù)據(jù)沒及時(shí)存到緩存里。還可能是由于接收及顯示期間有中斷打斷該過程,執(zhí)行完畢后經(jīng)過一段時(shí)間,等到返回原程序處時(shí)已不能實(shí)現(xiàn)實(shí)時(shí)接收和顯示的功能。
    解決:延時(shí)時(shí)間加長(延時(shí)期間不能進(jìn)行操作,為阻塞狀態(tài),不推薦),或考慮中斷返回后進(jìn)行判斷,進(jìn)一步處理,或建立多線程。

    丟包

    網(wǎng)絡(luò)丟包:
    什么是丟包,為什么會丟包 - 知乎

    數(shù)據(jù)丟包:
    下位機(jī)、PC都有能力高速發(fā)送或接受數(shù)據(jù),但過高的傳輸速率(高波特率)意味著,中間的傳輸線路一旦受到干擾更容易發(fā)生電平不能及時(shí)轉(zhuǎn)換的問題。從幫助理解的角度,可以將數(shù)據(jù)看作一位一位的0/1組成的值,傳輸本身是高低電平的轉(zhuǎn)換,高電平代表1,低電平代表0。
    數(shù)據(jù)丟包的原因:噪聲干擾、強(qiáng)磁場環(huán)境
    間接原因:波特率過高,更易出錯(cuò)
    解決:盡量在滿足應(yīng)用速度要求的前提下,低速率傳輸;采用可靠的協(xié)議;保持硬件穩(wěn)定。

    數(shù)據(jù)顯示不全與數(shù)據(jù)丟包要區(qū)分開,丟包是在傳輸途中出現(xiàn)問題,顯示不全可能是由于丟包,也可能是由于上位機(jī)程序邏輯編寫錯(cuò)誤,或者單線程且處理數(shù)據(jù)緊接在接收數(shù)據(jù)之后,導(dǎo)致處理數(shù)據(jù)時(shí)接收值未顯示,而下次顯示時(shí)緩存中已被新數(shù)據(jù)覆蓋等等。

    串口通信之?dāng)?shù)據(jù)丟失

    串口通信丟失數(shù)據(jù)結(jié)局方案——C#_紫冰寒寞的專欄-CSDN博客_serialport 字符缺失

    串口通信的一般思路是:先接收數(shù)據(jù),然后處理數(shù)據(jù),并在數(shù)據(jù)處理之后再次等待接收新的數(shù)據(jù)。但這種方法的缺點(diǎn)是,在串口高速率大信息量通信時(shí),會出現(xiàn)丟失數(shù)據(jù)的情況。

    丟失數(shù)據(jù)的原因是數(shù)據(jù)接收和數(shù)據(jù)處理再同一個(gè)線程中,如果數(shù)據(jù)處理的時(shí)間太長,則來不及接收的數(shù)據(jù)只能暫存在緩存中。因此,一旦緩存滿了,新到的數(shù)據(jù)就會沖刷掉未來得及接收的數(shù)據(jù),從而造成數(shù)據(jù)的丟失。因此,只是增加緩存的容量不能解決數(shù)據(jù)丟失的根本問題。

    解決思路:

    • 數(shù)據(jù)接收與數(shù)據(jù)處理分別放在兩個(gè)線程中進(jìn)行;
    • 數(shù)據(jù)接收線程:接收數(shù)據(jù)并將接收到的數(shù)據(jù)存入數(shù)據(jù)池中;
    • 數(shù)據(jù)處理線程:從數(shù)據(jù)池中讀取數(shù)據(jù)和處理數(shù)據(jù);

    注意:

    • 由于兩個(gè)線程可能會同時(shí)訪問數(shù)據(jù)池,因此為了使數(shù)據(jù)接收得到最快的響應(yīng),最好不選用數(shù)組結(jié)構(gòu),而是選用隊(duì)列Queue作為數(shù)據(jù)池的數(shù)據(jù)結(jié)構(gòu)。

    隊(duì)列在順序存儲方面非常有用。數(shù)據(jù)對象在隊(duì)列的一段插入,另一端移除。當(dāng)兩個(gè)線程同時(shí)訪問隊(duì)列時(shí),一個(gè)線程負(fù)責(zé)數(shù)據(jù)存入,另一個(gè)線程只負(fù)責(zé)操作數(shù)讀取,就會提高程序的運(yùn)行效率。

    為何丟失數(shù)據(jù)量的大小不確定?
    舉個(gè)例子,如果是由于單線程進(jìn)行讀取數(shù)據(jù)和處理數(shù)據(jù),那么處理數(shù)據(jù)期間就不能讀取,緩存區(qū)若溢出,則會被覆蓋。如果處理數(shù)據(jù)的操作和量是固定的,按道理會丟失定量的數(shù)據(jù),但實(shí)際上緩沖區(qū)中的數(shù)據(jù)量不一定,處理的數(shù)據(jù)量也不一定,讀取的速度也有不確定性,所以丟失的數(shù)據(jù)量也不會是恒定的。

    如果讀取足夠快,或者次數(shù)足夠少,能夠不影響數(shù)據(jù)繼續(xù)寫入緩存區(qū),那么就能讀取完整的數(shù)據(jù),數(shù)據(jù)量等于發(fā)送量。

    python相關(guān)

    為什么要加if __name __==‘__main __’:

    不寫也可以啟動,但最好加上,因?yàn)閕f __ name __ == ’ __ main __’的意思是:當(dāng).py文件被直接運(yùn)行時(shí),if __ name __ == ’ __ main __’之下的代碼塊將被運(yùn)行;當(dāng).py文件以模塊形式被導(dǎo)入時(shí),if __ name __ == ’ __ main __’之下的代碼塊不被運(yùn)行。

    一些功能由于比較復(fù)雜,往往需要多人開發(fā),一個(gè)python程序?qū)?yīng)一個(gè)功能,為便于測試,每個(gè)功能程序下都有一個(gè)主函數(shù)。在主程序中,只需import功能程序所在文件,就可以調(diào)用功能py程序的函數(shù)(關(guān)于如何跨文件調(diào)用函數(shù)見本文目錄)。為了保證功能文件中的主函數(shù)不被導(dǎo)入到主函數(shù)中,就需要注釋掉每個(gè)功能程序中的主函數(shù),這十分的麻煩。因此python提供了if __name __==‘__main __’:條件,只要編寫主函數(shù)時(shí)均在此條件下編寫,就可以保證運(yùn)行哪個(gè)程序就用哪個(gè)主函數(shù)。

    來自鏈接:https://blog.csdn.net/qq_25939803/article/details/98038106

    線程

    python多線程詳解 - luyuze95 - 博客園
    鏈接目錄:

    python多線程詳解一、線程介紹 什么是線程 為什么要使用多線程 二、線程實(shí)現(xiàn) threading模塊 自定義線程 守護(hù)線程 主線程等待子線程結(jié)束 多線程共享全局變量 互斥鎖 遞歸鎖 信號量(BoundedSemaphore類) 事件(Event類) 三、GIL(Global Interpreter Lock)全局解釋器鎖
    并發(fā)與并行

    幾乎所有的操作系統(tǒng)都支持同時(shí)運(yùn)行多個(gè)任務(wù),每個(gè)任務(wù)通常是一個(gè)程序,每一個(gè)運(yùn)行中的程序就是一個(gè)進(jìn)程,即進(jìn)程是應(yīng)用程序的執(zhí)行實(shí)例。現(xiàn)代的操作系統(tǒng)幾乎都支持多進(jìn)程并發(fā)執(zhí)行。

    • 并行指在同一時(shí)刻有多條指令在多個(gè)處理器(多核處理器)上同時(shí)執(zhí)行
    • 并發(fā)是指在同一時(shí)刻只能有一條指令執(zhí)行,但多個(gè)進(jìn)程指令被快速輪換執(zhí)行,使得在宏觀上具有多個(gè)進(jìn)程同時(shí)執(zhí)行的效果。
    線程與進(jìn)程

    首先需要強(qiáng)調(diào)的是,線程和進(jìn)程對于開發(fā)一般的上位機(jī)串口助手不是必須的,尤其是對于操作系統(tǒng)不夠了解的新手來說,使用線程需要補(bǔ)充很多基礎(chǔ)知識,較為耗時(shí)。

    對于一個(gè) CPU 而言,在某個(gè)時(shí)間點(diǎn)它只能執(zhí)行一個(gè)程序。也就是說,只能運(yùn)行一個(gè)進(jìn)程,CPU 不斷地在這些進(jìn)程之間輪換執(zhí)行。那么,為什么用戶感覺不到任何中斷呢?

    這是因?yàn)橄鄬θ说母杏X來說,CPU 的執(zhí)行速度太快了(如果啟動的程序足夠多,則用戶依然可以感覺到程序的運(yùn)行速度下降了)。所以,雖然 CPU 在多個(gè)進(jìn)程之間輪換執(zhí)行,但用戶感覺到好像有多個(gè)進(jìn)程在同時(shí)執(zhí)行。

    單線程與多線程

    Python進(jìn)程和線程(包含兩者區(qū)別)

    • 當(dāng)一個(gè)進(jìn)程里只有一個(gè)線程時(shí),叫作單線程。
    • 一個(gè)進(jìn)程里超過一個(gè)線程就叫作多線程。

    線程是進(jìn)程的組成部分,一個(gè)進(jìn)程可以擁有多個(gè)線程。在多線程中,會有一個(gè)主線程來完成整個(gè)進(jìn)程從開始到結(jié)束的全部操作,而其他的線程會在主線程的運(yùn)行過程中被創(chuàng)建或退出。

    當(dāng)進(jìn)程被初始化后,主線程就被創(chuàng)建了,對于絕大多數(shù)的應(yīng)用程序來說,通常僅要求有一個(gè)主線程,但也可以在進(jìn)程內(nèi)創(chuàng)建多個(gè)順序執(zhí)行流,這些順序執(zhí)行流就是線程。

    每個(gè)線程必須有自己的父進(jìn)程,且它可以擁有自己的堆棧、程序計(jì)數(shù)器和局部變量,但不擁有系統(tǒng)資源,因?yàn)樗透高M(jìn)程的其他線程共享該進(jìn)程所擁有的全部資源。線程可以完成一定的任務(wù),可以與其他線程共享父進(jìn)程中的共享變量及部分環(huán)境,相互之間協(xié)同完成進(jìn)程所要完成的任務(wù)。

    線程的運(yùn)行是搶占式的,也就是說,當(dāng)前運(yùn)行的線程在任何時(shí)候都可能被掛起,以便另外一個(gè)線程可以運(yùn)行。

    多線程也是并發(fā)執(zhí)行的,即同一時(shí)刻,Python 主程序只允許有一個(gè)線程執(zhí)行,這和全局解釋器鎖有關(guān)系,后續(xù)會做詳細(xì)介紹。

    一個(gè)線程可以創(chuàng)建和撤銷另一個(gè)線程,同一個(gè)進(jìn)程中的多個(gè)線程之間可以并發(fā)運(yùn)行。

    從邏輯的角度來看,多線程存在于一個(gè)應(yīng)用程序中,讓一個(gè)應(yīng)用程序可以有多個(gè)執(zhí)行部分同時(shí)執(zhí)行,但操作系統(tǒng)無須將多個(gè)線程看作多個(gè)獨(dú)立的應(yīng)用,對多線程實(shí)現(xiàn)調(diào)度和管理以及資源分配,線程的調(diào)度和管理由進(jìn)程本身負(fù)責(zé)完成。

    常見異常類型

    Python 常見異常類型 - Bactiy - 博客園
    python 異常類型_Lapland的博客-CSDN博客

    異常處理:
    python中的異常及幾種常見異常_棠牧師的博客-CSDN博客

    try: 功能,應(yīng)該做什么
    except: 若有異常,做什么

    重命名變量方法

    右鍵變量名稱-> Refactor-> Rename
    直接重命名所有同名變量。

    運(yùn)算
    原碼補(bǔ)碼轉(zhuǎn)換

    代碼:
    python——原碼轉(zhuǎn)補(bǔ)碼_cherry1307的博客-CSDN博客_python原碼轉(zhuǎn)補(bǔ)碼

    • 源碼轉(zhuǎn)補(bǔ)碼或補(bǔ)碼轉(zhuǎn)源碼都可用同一步驟實(shí)現(xiàn)
    • 何時(shí)轉(zhuǎn)換:有符號型二進(jìn)制數(shù)且符號位為1時(shí)才需要轉(zhuǎn)換
    • 轉(zhuǎn)換步驟:除最高位1外,其余位取反得到反碼,反碼加1得補(bǔ)碼或原碼。
    • 代碼:見上面的鏈接,親測可用,感謝博主
    python指數(shù)**

    例:求次方、根號、倒數(shù)

    # 2的立方 print(2**3) # 8# 9開二次方根 print(9**(1/2)) # 3.0# 2平方的倒數(shù) print(2**(-2)) # 0.25
    數(shù)值與字符串
    python讀取字符串長度len()

    len()的參數(shù)只能是字符串類型。

    例:

    print(len('0b10001')) # 7
    python的數(shù)值與字符串區(qū)分

    ‘10001’:字符串
    10001:十進(jìn)制
    ‘0b10001’:字符串
    0b10001:二進(jìn)制

    print(bin(17))顯示0b10001,沒問題。
    不過,print(0b10001)顯示的是十進(jìn)制17,而不是0b10001,有人知道這是為什么嗎?

    若有誤,歡迎指正留言。

    python二進(jìn)制-十進(jìn)制轉(zhuǎn)換

    python十進(jìn)制轉(zhuǎn)換為二進(jìn)制,八進(jìn)制_qq_37178232的博客-CSDN博客_十進(jìn)制6轉(zhuǎn)二進(jìn)制的計(jì)算過程python

    十進(jìn)制轉(zhuǎn)二進(jìn)制:
    bin()函數(shù),例子:17的二進(jìn)制數(shù)是10001,bin(17)為0b10001
    bin函數(shù)得到二進(jìn)制字符串

    def mybin(a):#自定義函數(shù)去除系統(tǒng)自帶的多余0bb=bin(a) # a為int型整數(shù)17,bin(a)為0b10001b=b.replace('0b','') # 用空字符替代0bprint(b)mybin(17) # 結(jié)果 10001

    注意:bin轉(zhuǎn)換的二進(jìn)制默認(rèn)最高位為1,高位的0會被去除,即0b類型。
    注意:replace() 不會改變原 string 的內(nèi)容,要想改變需要重新賦值給原string。

    二進(jìn)制轉(zhuǎn)十進(jìn)制:
    注意:bin()轉(zhuǎn)換的結(jié)果是字符串,不能直接用int()轉(zhuǎn)換為十進(jìn)制整型,只有去除0b才可以,因?yàn)樽帜覆荒苻D(zhuǎn)換為int。

    print(int(0b10001)) # 輸出17# b=bin(7) # print(int(b)) # ValueError: invalid literal for int() with base 10: '0b10001'

    注意:默認(rèn)在int()中轉(zhuǎn)換的是無符號原碼,若有符號位要自行去除符號位并根據(jù)情況乘以-1(符號位為1,則需將除去符號位的原碼轉(zhuǎn)化為十進(jìn)制后再乘以-1);若為補(bǔ)碼,要自行判斷是否需要轉(zhuǎn)換為原碼(正數(shù)的原碼等于補(bǔ)碼)。

    注意:要判斷二進(jìn)制位數(shù)是否有缺,尤其對于有符號位的二進(jìn)制,若缺位,容易將本來符號位為0的正數(shù)當(dāng)作符號位為1的負(fù)數(shù)處理。(字符串補(bǔ)零用str.zfill(n),將str數(shù)組總位數(shù)補(bǔ)到n位)

    啰嗦一句,位數(shù)不夠或無符號位,就可以直接轉(zhuǎn)換;有符號位且位數(shù)齊全且符號位為1,則必須注意上述提醒。

    python字符串轉(zhuǎn)十進(jìn)制整型

    Python進(jìn)制轉(zhuǎn)換和補(bǔ)零_iridescent_mian的博客-CSDN博客_python hex 補(bǔ)0
    (各種進(jìn)制轉(zhuǎn)換和類型轉(zhuǎn)換詳見鏈接)

    從文檔中讀取的數(shù)據(jù)可能是string格式,運(yùn)算時(shí)需要轉(zhuǎn)化為可以計(jì)算的數(shù)值

    注意:str字符串不能直接強(qiáng)制轉(zhuǎn)換為二進(jìn)制數(shù),要先轉(zhuǎn)換為十進(jìn)制后再轉(zhuǎn)換為二進(jìn)制。

    str = "12345" num = int(str) # 轉(zhuǎn)為整型12345# num_bin = bin(str) # TypeError: 'str' object cannot be interpreted as an integer

    非數(shù)值字符串不能轉(zhuǎn)換,會報(bào)錯(cuò)。

    python截取字符串

    python按照指定字符或者長度 截取字符串 - pager - 博客園

    截取字符串可以按照給定截取字符位置的方式截取:

    如,a為一個(gè)字符串,則
    a[0] 為字符串a(chǎn)從左往右數(shù)第1個(gè)字符
    a[:1]為字符串a(chǎn)從左往右數(shù)第1個(gè)字符
    a[1:]為字符串a(chǎn)從左往右數(shù)從第2個(gè)字符開始的所有字符
    a[-1:]為字符串a(chǎn)從右往左數(shù)第1個(gè)字符
    a[:-1]為字符串a(chǎn)從右往左數(shù)第2個(gè)字符開始的所有字符(順序不變)

    例:

    a = "Hello"print "a[1:4] 輸出結(jié)果:", a[1:4] #結(jié)果 ell print "a[:4] 輸出結(jié)果:", a[:4] #結(jié)果 Hell print "a[1:] 輸出結(jié)果:", a[1:] #結(jié)果 ello print "a[-1:] 輸出結(jié)果:", a[-1:] #結(jié)果o print "a[:-1] 輸出結(jié)果:", a[:-1] #結(jié)果Hell

    截取字符串也可以按照給定截取字符標(biāo)志的方式截取:
    即根據(jù)特定字符為界,截取特定字符之前或之后的字符串。

    例:

    a = "Hello" symbol = 'e' # 截取字符標(biāo)志# 截取e字符左半部分 a_l = a[:a.index(symbol)] # 截取e字符右半部分,包括e a_r = a[a.index(symbol):]print(a_l) #結(jié)果 H print(a_r) #結(jié)果 ello

    注:截取字符標(biāo)志也可以是’\t’等符號。

    python 替換字符串
    temp_str = 'this is a test' print(temp_str.replace('is','IS') print(temp_str) # 輸出 # thIS IS a test # this is a testtemp_str = temp_str.replace('is','IS') print(temp_str) # 輸出 # thIS IS a test

    注意:replace() 不會改變原 string 的內(nèi)容,要想改變需要重新賦值給原string。

    列表插入元素append

    python中沒有數(shù)組的數(shù)據(jù)結(jié)構(gòu),可以用列表代替。

    列表的聲明:

    # 聲明一個(gè)空列表 a = [] # 聲明一個(gè)列表 b = ['3', '4']

    插入元素:

    # 創(chuàng)建列表并增加元素 a = ['!3'] a.append('a') a.append('bc') a.append('123') print(a) # ['!3', 'a', 'bc', '123']# 將第4個(gè)元素切片(截取) a[3] = a[3][2:] print(a) # ['!3', 'a', 'bc', '3']
    python 二維列表
    # 聲明一維列表 list1 = []# 聲明二維列表list1,list1含1個(gè)列表元素 list1.append([]) list1[0].append('1') list1[0].append(2) # 聲明二維列表list1,list1含2個(gè)列表元素 list1.append([]) list1[1].append('3') list1[1].append('4') # 聲明二維列表list1,list1含3個(gè)列表元素 list1.append([]) list1[2].append('567')print(len(list1)) print(list1) print(str(list1)) print(int(list1[2][0]))# 結(jié)果: # 3 # [['1', 2], ['3', '4'], ['567']] # [['1', 2], ['3', '4'], ['567']] # 567
    python二維列表對應(yīng)元素相加

    Python之list對應(yīng)元素求和的方法_python_腳本之家
    方法1:直接用for循環(huán)相加
    方法2:用numpy模塊定義數(shù)組,數(shù)組1+數(shù)組2
    方法3:用numpy模塊定義數(shù)組,用sum()函數(shù)

    import numpy as np a = np.array([1,2,3]) b = np.array([2,3,4]) c = np.array([3,4,5])# 方法2 print(a+b+c) # a+b+c后的類型為numpy.ndarray # 輸出 # [ 6 9 12]# 方法3 print(np.sum([a,b,c], axis = 0)) # axis = 0:縱向求和 # 輸出 # [ 6 9 12]
    encode與decode

    decode的作用是將其他編碼的字符串轉(zhuǎn)換成Unicode編碼,如str1.decode(‘gb2312’),表示將gb2312編碼的字符串str1轉(zhuǎn)換成Unicode編碼。

    encode的作用是將unicode編碼轉(zhuǎn)換成其他編碼的字符串,如str2.encode(‘gb2312’),表示將Unicode編碼的字符串str2轉(zhuǎn)換成gb2312編碼。

    str1.decode(‘utf-8’):將utf-8編碼的字符串str1轉(zhuǎn)換成Unicode編碼。

    文件
    讀寫文件(txt、csv、excel)

    Python讀寫文件(csv、txt、excel) - 簡書
    讀寫均由open()實(shí)現(xiàn),結(jié)束后要close()關(guān)閉文件。

    例:讀text文件

    # 以讀的模式打開文件 f = open('C:/Users/Administrator/Desktop/output.txt', mode='r')# 讀取數(shù)據(jù),讀取方式有三種 ftext1 = f.read() # 一次性讀取完成 ftext2 = f.readlines() # 同上 ftext3 = f.readline() # 只讀取1行# 關(guān)閉 f.close()

    例:寫text文件

    # 以寫的模式打開文件 f = open('C:/Users/Administrator/Desktop/input.txt', mode='w')# 寫入數(shù)據(jù) ftext1 = f.write('hello!') # 一次性讀取完成# 關(guān)閉 f.close()

    with open :
    由于文件讀寫時(shí)都有可能產(chǎn)生IOError,一旦出錯(cuò),后面的f.close()就不會調(diào)用。所以,為了保證無論是否出錯(cuò)都能正確地關(guān)閉文件,我們可以使用try … finally來實(shí)現(xiàn),但是每次都這么寫實(shí)在太繁瑣,所以,Python引入了with語句來自動幫我們調(diào)用close()方法:

    with open('/path/to/file', 'r') as f:print(f.read())

    補(bǔ)充:Python 將數(shù)據(jù)寫入文件(txt、csv、excel)_菲宇運(yùn)維-CSDN博客

    文件操作模式


    'w’模式下,每次寫入都會覆蓋原內(nèi)容,若不想覆蓋原內(nèi)容,則用’a’模式。

    python跨文件調(diào)用函數(shù)

    python 一個(gè).py文件如何調(diào)用另一個(gè).py文件中的類和函數(shù)_winycg的博客-CSDN博客_python 引用另一個(gè)py文件
    親測可行,感謝博主

    datetime庫 獲取當(dāng)前時(shí)間

    python獲取當(dāng)前時(shí)間的用法 - 七月曉曉翁 - 博客園

    datetime.datetime.now()

    import datetime t_name = datetime.datetime.strftime(datetime.datetime.now(), '%m%d_%M:%S') print(t_name) # 0727_31:12

    實(shí)例鏈接

    計(jì)算器GUI實(shí)例

    python帶界面的計(jì)算器_qq_24624539的博客-CSDN博客_python計(jì)算器
    可供小白學(xué)習(xí)快速熟悉python開發(fā)GUI。

    串口調(diào)試助手GUI實(shí)例

    python實(shí)現(xiàn)串口通訊小程序(GUI界面)_明志的博客-CSDN博客_pycharm 開發(fā)串口
    該實(shí)例能夠滿足最基礎(chǔ)的串口調(diào)試功能,發(fā)送命令和接收命令需手動操作。還能夠?qū)崿F(xiàn)串口自動讀取連接。

    讀取串口數(shù)據(jù)并寫入txt文件

    python讀取串口數(shù)據(jù)并寫入txt文件

    總結(jié)

    以上是生活随笔為你收集整理的python3 GUI用户界面总结(以串口调试为例,持续改进)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

    超碰在线资源 | 国产精品久久婷婷六月丁香 | 国产91av视频在线观看 | 麻豆影视网站 | 精品国产精品一区二区夜夜嗨 | 欧美三人交 | 国产亚洲日 | 免费精品在线观看 | 992tv又爽又黄的免费视频 | 国产婷婷| 99视频精品在线 | 99久久99久久精品国产片 | 国产黄大片在线观看 | 三级午夜片 | 日批视频国产 | 欧美另类高潮 | 91在线视频观看 | 欧美精品乱码久久久久久按摩 | 伊人热| 人人爽久久久噜噜噜电影 | 欧美亚洲成人免费 | 91视频成人免费 | 一区二区三区四区五区在线 | 亚洲精品tv久久久久久久久久 | 在线观看爱爱视频 | 免费一级毛毛片 | 国产永久免费观看 | 伊人成人激情 | 国产精品久久一区二区三区, | 亚洲精品88欧美一区二区 | 51久久夜色精品国产麻豆 | 97视频人人澡人人爽 | 亚洲精品乱码久久久久久蜜桃91 | 黄视频色网站 | 91综合色 | 福利片免费看 | 亚洲免费精彩视频 | 高清国产午夜精品久久久久久 | 亚洲精选在线观看 | 国产成人久久77777精品 | 人人干,人人爽 | 伊人五月婷 | 日韩精品第1页 | 久久综合影视 | 中文字幕在线电影 | 亚州av成人 | 999视频在线播放 | 婷婷久久亚洲 | 96视频免费在线观看 | 中文字幕在线观看第三页 | 久久婷婷国产色一区二区三区 | 夜夜操天天干, | 欧美日韩国产一区二区三区在线观看 | 91精品秘密在线观看 | 欧美色久| 91精品1区2区 | 中文av日韩 | 国产一二区在线观看 | 91麻豆精品国产91久久久使用方法 | 9999亚洲 | 免费在线日韩 | 国产91av视频在线观看 | 激情五月六月婷婷 | 欧美另类高清 videos | 99久久精品国产一区 | 新版资源中文在线观看 | 亚洲精品麻豆视频 | 婷婷伊人网 | 97在线视频免费播放 | 国产专区日韩专区 | 欧美精品在线一区 | 欧美一二三视频 | 99免费在线观看视频 | 不卡的av电影在线观看 | 欧美日韩一区二区久久 | 九九有精品 | 五月婷婷六月综合 | 国产一区二区电影在线观看 | 欧美精品一区二区蜜臀亚洲 | 成人国产精品免费 | 亚洲伊人天堂 | 日韩在线不卡视频 | 免费看一级特黄a大片 | 九九精品久久久 | 91成人观看 | 日韩视频在线一区 | 在线a视频免费观看 | 国产99视频在线观看 | 黄在线免费看 | 夜夜操网| 午夜精品久久久久久久99 | 欧美日韩国产精品一区二区亚洲 | 97视频在线 | 麻豆视频www | 久久久久免费精品视频 | 久久美女高清视频 | 中文字幕在线观看三区 | 国精产品永久999 | 亚洲国产午夜视频 | 91成品人影院 | 国产999精品久久久影片官网 | 久久国产精品二国产精品中国洋人 | 国产永久免费 | 天天干天天操人体 | 91桃色国产在线播放 | 美女视频黄的免费的 | jizz18欧美18| 91亚洲精品在线观看 | 人人干人人超 | 日韩xxxx视频 | 免费手机黄色网址 | 中文资源在线播放 | 国产精品99在线播放 | 国产97超碰| 一本色道久久综合亚洲二区三区 | 国产伦理一区二区三区 | 日韩视频a | 亚洲国产日本 | 国产亚洲精品久久19p | 亚洲精品在线网站 | aaa日本高清在线播放免费观看 | 天天干,天天操,天天射 | 天天曰天天曰 | 韩国精品视频在线观看 | 麻豆视频免费入口 | 911国产在线观看 | www.天堂av | 中文字幕久久久精品 | 色婷婷88av视频一二三区 | 亚洲精品视频大全 | 精品人人爽 | 免费黄色a网站 | 成人在线免费小视频 | 丁香影院在线 | 久久黄色片 | 亚洲精品国偷自产在线99热 | 操操操com | 丁香六月天婷婷 | 成年人电影免费在线观看 | 日韩不卡高清视频 | 在线免费观看一区二区三区 | 激情五月婷婷丁香 | av天天草 | 精精国产xxxx视频在线播放 | 黄色三级免费观看 | 午夜18视频在线观看 | 精品在线视频播放 | 中文字幕av免费观看 | 欧美一级日韩三级 | 13日本xxxxxⅹxxx20 | 欧美日韩91| 日韩美女一级片 | 国产精品高潮呻吟久久久久 | 中文字幕视频一区 | av播放在线| 精品1区二区 | 韩国三级在线一区 | 91视频高清免费 | www黄色软件| 日韩在线观看一区二区三区 | 久久视频国产精品免费视频在线 | 国产又黄又爽又猛视频日本 | 国产美女视频免费 | 精品福利网| 久久精品99国产 | 国产亚洲视频在线免费观看 | 超碰大片 | 亚洲人成在线电影 | 久久久久久久久久久电影 | 伊在线视频 | 三级av在线免费观看 | avav99| 天天天综合网 | 亚洲午夜精品久久久久久久久 | 久久免费毛片视频 | 精品视频久久久 | www五月婷婷 | 正在播放国产一区二区 | 天堂麻豆 | 99久久精品国产一区二区三区 | 日韩免| 成人黄色毛片 | 亚洲第一久久久 | 欧美精品久久久久久久久免 | 美女视频黄在线 | 亚州av一区 | 成人在线黄色 | 国产淫a| 99久高清在线观看视频99精品热在线观看视频 | 麻豆国产露脸在线观看 | 天天射天天爱天天干 | 免费在线观看av的网站 | 欧美日韩午夜在线 | 久久在线免费观看 | 91在线欧美 | 欧美日韩二区三区 | 草免费视频 | 91精品1区 | 狠狠色网 | 国产亚洲视频在线免费观看 | 国产第一页在线播放 | 久久资源在线 | 91丨九色丨国产在线 | 91人人射| 国产精品成人aaaaa网站 | 奇米影视777四色米奇影院 | 国产精品综合在线 | 国产黄色看片 | 日日干干夜夜 | 伊人丁香| 成人免费网站视频 | 午夜精品成人一区二区三区 | 96国产精品视频 | 久久伊人色综合 | 成人免费在线网 | 337p日本欧洲亚洲大胆裸体艺术 | 黄色www| 天堂av中文字幕 | 91插插插免费视频 | 人人狠 | 欧美美女视频在线观看 | 五月天久久综合网 | 日本精品视频网站 | 国产免费不卡 | 久久精品久久国产 | 日韩av一区在线观看 | 亚洲综合激情网 | 成人在线播放免费观看 | 97碰在线视频 | 久久亚洲专区 | 国产视频一区精品 | 青青草视频精品 | 久久婷婷一区二区三区 | 日韩精品字幕 | 国产精品va最新国产精品视频 | 天天干天天天天 | 日本精品中文字幕 | 干 操 插 | 久草精品视频在线看网站免费 | 亚洲成av人影片在线观看 | 特黄特黄的视频 | 91亚洲精品国偷拍 | 成人一级片在线观看 | 精品电影一区 | 免费在线观看国产黄 | 国产精久久久久久久 | 一区二区三区四区在线 | 天天干天天草 | 国产亚洲精品久久久久久无几年桃 | 精品亚洲免费 | 又黄又爽又湿又无遮挡的在线视频 | 国产精品久久久久久久久久久久午夜 | 在线观看国产 | 亚洲精品网站在线 | 色网站中文字幕 | 欧美日韩在线免费观看视频 | av九九九| 天天精品视频 | 色婷婷狠狠五月综合天色拍 | 国产精品日韩高清 | 亚洲 中文字幕av | 国产97在线视频 | 中文字幕在线观看视频一区二区三区 | 久久综合狠狠综合 | 91视频麻豆视频 | 精品1区2区3区 | 四虎影视久久久 | 成人午夜剧场在线观看 | 美女免费网站 | 色www.| 中文av一区二区 | 久久久久久久国产精品视频 | 国产亚洲精品久 | 久草免费在线观看视频 | 欧美伦理一区二区 | 五月婷婷天堂 | 1000部18岁以下禁看视频 | 一区二区三区免费播放 | 久久人人97超碰国产公开结果 | 欧美性猛片, | 在线观看国产永久免费视频 | 久久不射影院 | 97人人澡人人添人人爽超碰 | 欧美综合久久 | 欧美伦理电影一区二区 | 激情大尺度视频 | 色午夜 | 日韩在线电影一区二区 | 91中文字幕网 | 香蕉视频导航 | 亚洲 欧洲av | 日韩欧美xx| 在线观看av黄色 | av一区在线 | 四虎国产精品永久在线国在线 | 精品国产人成亚洲区 | 日韩av成人在线观看 | 欧美在线视频二区 | 美女视频网 | 激情综合色图 | 国产99久久精品一区二区300 | 国产精品毛片久久蜜 | 国产字幕在线观看 | a天堂中文在线 | 久久综合视频网 | 白丝av免费观看 | 国产打女人屁股调教97 | 国产91在线观 | 久久久久福利视频 | 国产精品国产三级国产aⅴ9色 | 亚洲天堂网视频在线观看 | 在线国产日韩 | 色综合色综合色综合 | 久久久免费毛片 | 在线观看www视频 | 国产综合视频在线观看 | 国内久久久| 一区二区免费不卡在线 | 中文字幕在线人 | 久草免费在线视频观看 | 国产黄色片免费观看 | av在线播放网址 | 久久久久二区 | 福利电影一区二区 | 久久蜜臀一区二区三区av | 国产精品久久久久久久久久久久午夜片 | 一本一本久久a久久精品综合妖精 | 视频一区二区在线 | 亚洲国产成人精品久久 | 99久久久国产精品免费观看 | 久久久久99精品成人片三人毛片 | 国产三级香港三韩国三级 | 91av大全| 亚洲欧美国产精品18p | 欧美性色综合网站 | 四虎影视精品永久在线观看 | 国产69精品久久99的直播节目 | 色综合久久久久综合体 | 国产亚洲精品久久久久5区 成人h电影在线观看 | 久草在线免费资源站 | 欧美性色综合 | 91中文在线视频 | 国产露脸91国语对白 | 精品美女久久 | 久久男人视频 | 又粗又长又大又爽又黄少妇毛片 | 99精品视频在线观看 | 久久久国产成人 | 亚洲精品高清一区二区三区四区 | 国产视频2 | 久久久午夜精品理论片中文字幕 | 国产69精品久久久久9999apgf | 99精品视频观看 | 97超碰免费在线 | 久久久久久久久久久久电影 | 4438全国亚洲精品在线观看视频 | 久草在线在线视频 | 成人网页在线免费观看 | 日韩理论片在线观看 | 极品久久久 | 国产精品大尺度 | 国产又粗又长的视频 | 五月天综合色激情 | 欧美日韩有码 | 国产小视频你懂的在线 | 国产在线探花 | 国产精品123| 国产精品一区一区三区 | 成人在线免费观看视视频 | 久久成人黄色 | 欧美日韩国产精品一区 | 久久情侣偷拍 | 国产精品免费视频网站 | 久久色在线观看 | 国产91精品一区二区麻豆亚洲 | 国产我不卡 | 色资源网在线观看 | 久久首页 | 精品久久久久国产免费第一页 | 亚洲黄色免费在线 | 视频一区二区三区视频 | 日一日干一干 | 国色天香在线 | 综合五月 | 一区二区三区在线观看免费视频 | 奇米四色影狠狠爱7777 | 国产又粗又硬又爽的视频 | 开心婷婷色 | 国产精品白浆视频 | 日韩精品极品视频 | 国产精品18videosex性欧美 | 国产色视频网站 | 精品无人国产偷自产在线 | 成人在线小视频 | 免费观看成人网 | 国产精品视频app | 探花视频在线观看免费版 | 99热99re6国产在线播放 | 午夜123 | 欧美日韩在线精品一区二区 | 亚洲日本三级 | 91av视频导航| 伊人午夜 | 亚洲精品免费在线播放 | 91福利区一区二区三区 | 国产成人精品一区二区三区福利 | 国产午夜一级毛片 | 欧美a级在线免费观看 | 中国一区二区视频 | 99在线观看精品 | 日韩精品一区二区免费视频 | 久久午夜免费观看 | 在线成人国产 | 黄色三级免费观看 | 狠狠狠色丁香婷婷综合久久88 | 欧美一级大片在线观看 | www..com黄色片| 91国内产香蕉 | 国产精品不卡在线 | 国产美女在线精品免费观看 | 中文字幕一区二区三区四区 | 国产男女无遮挡猛进猛出在线观看 | 国产一区二区高清不卡 | 美女视频永久黄网站免费观看国产 | 日韩xxx视频 | www麻豆视频 | 成人av直播 | 日本在线中文在线 | 91人人人| 韩日色视频 | 日韩激情影院 | 免费看黄网站在线 | 日本最新高清不卡中文字幕 | 久青草视频在线观看 | 深爱激情亚洲 | 成人a视频在线观看 | 高清有码中文字幕 | 亚洲区另类春色综合小说校园片 | 伊人黄色网 | 丁香花在线观看免费完整版视频 | 国内一级片在线观看 | 日本高清免费中文字幕 | 国产婷婷一区二区 | 亚洲日本韩国一区二区 | 欧美亚洲免费在线一区 | 手机av在线网站 | 444av| 亚洲妇女av | 精品1区二区 | 美女av免费看 | 欧美电影黄色 | 久久久国产精品免费 | 夜添久久精品亚洲国产精品 | 国产小视频在线 | 国产精品一区二区62 | 精品久久久久久亚洲综合网 | 欧美 日韩 视频 | 日韩在线中文字幕视频 | 国精产品永久999 | 国产精品一区久久久久 | 国产亚洲精品v | 日韩欧美高清一区二区三区 | 综合天天 | 天天摸夜夜添 | 国产高清在线不卡 | 五月天天色 | 天天射天天干 | 97超碰国产在线 | 日韩丝袜视频 | 免费日韩在线 | 91色国产在线 | 国产精品毛片一区二区在线 | 99色亚洲 | 久久99国产精品久久 | 中文字幕在线第一页 | 欧美一二三专区 | 欧美孕交vivoestv另类 | 国产丝袜制服在线 | 久草在线网址 | zzijzzij日本成熟少妇 | 亚洲免费永久精品国产 | av大片网站| 成人在线免费小视频 | 日韩乱理 | 欧美激情另类 | a级片网站| 操操操人人人 | 天天色天天射天天干 | 久久人人97超碰国产公开结果 | 婷婷丁香六月天 | 狠狠色综合网站久久久久久久 | 91免费看片黄 | 久久久久一区二区三区四区 | 狠狠做深爱婷婷综合一区 | 亚洲视频六区 | 久久精品视频国产 | 视频在线播放国产 | 精品国产伦一区二区三区免费 | 国际精品久久久 | 国产破处在线视频 | 国产一线二线三线性视频 | 免费av观看| 久草在线久| 欧美a视频在线观看 | 人人舔人人舔 | 中文在线免费视频 | 亚洲激情 | 免费av影视| 人人舔人人舔 | 久久精品视频在线观看 | 美女啪啪图片 | 国产精品区一区 | 国产精品18久久久久久久久 | 欧美日韩国产在线一区 | 欧美精品中文在线免费观看 | 久草9视频 | 久热电影 | 国产成人一区二区精品非洲 | 国产亚洲成人网 | 婷婷色在线观看 | 色www永久免费 | 波多在线视频 | 国产区久久| 一区二区不卡视频在线观看 | 亚洲欧美日韩一区二区三区在线观看 | 欧美日韩国产在线一区 | 日日夜夜网 | 欧美色插 | 国产成人精品一二三区 | 高清在线观看av | 久久久国产精品成人免费 | 久久国产色 | 高清视频一区 | 久久久91精品国产一区二区精品 | 国产一级片久久 | 狠狠色狠狠色合久久伊人 | 999国内精品永久免费视频 | 色九九视频 | 69国产精品视频免费观看 | 不卡av在线 | 国产黄色高清 | 国产自产高清不卡 | 免费性网站 | 日韩午夜在线播放 | 99久免费精品视频在线观看 | 日韩一级电影在线 | 国产一级做a爱片久久毛片a | 狠狠色丁香婷婷综合久小说久 | 色五月色开心色婷婷色丁香 | 91成人在线免费观看 | 亚州国产视频 | 99视频国产精品 | 一区二区三区四区精品视频 | 久久久午夜电影 | 久久草在线视频国产 | 99久久国产免费,99久久国产免费大片 | 天天操天天干天天爽 | 亚洲国内精品 | 精品国产诱惑 | 6699私人影院 | 欧美了一区在线观看 | 国产精品视频地址 | 日日射天天射 | 国产福利午夜 | 在线观看中文 | 亚洲精品在线观看av | 精品免费一区二区三区 | 麻豆视频免费入口 | 婷婷在线播放 | 麻豆视频免费在线播放 | 日韩激情小视频 | 午夜aaaa| 亚洲精品免费在线观看 | 久久国产精品99精国产 | 69精品人人人人 | 欧美日韩国产综合网 | 国产精品99久久久久久武松影视 | 久久婷婷五月综合色丁香 | 2021国产在线视频 | 日韩在线免费视频 | 国内精品久久久久影院一蜜桃 | 亚洲成人软件 | 国产午夜精品福利视频 | 久久亚洲影院 | 四虎国产永久在线精品 | 日韩在线电影一区二区 | 99资源网 | 久久99操 | 国产无遮挡猛进猛出免费软件 | 亚洲国产成人在线观看 | 成年人三级网站 | 成人蜜桃网 | 日韩三级在线 | 国产黄网站在线观看 | 久久夜色精品国产欧美乱极品 | 亚洲精品国偷拍自产在线观看蜜桃 | 日韩免费在线观看 | 波多野结衣久久资源 | 四虎影视av | 国产在线视频导航 | 最新国产在线视频 | 91av蜜桃| 超碰人人草人人 | 亚洲免费观看在线视频 | 99久久精品国产一区二区三区 | 午夜av片 | 婷香五月 | 久久精品国产美女 | 国产精品手机在线播放 | 最新av在线网站 | 日韩在线观看视频一区二区三区 | www.夜夜骑.com | 午夜精品电影一区二区在线 | 日本性高潮视频 | 在线观看日韩国产 | 手机av电影在线观看 | 美女久久 | 国产不卡在线视频 | 国产在线播放不卡 | 一区二区中文字幕在线观看 | 日韩电影中文字幕 | 97人人看| 久久国产精品99久久久久久丝袜 | 久久免费国产精品1 | 久久久精品网站 | 欧美99精品 | 国产精品12345 | 国产麻豆剧传媒免费观看 | 在线电影日韩 | 91在线观看高清 | 国产精品中文字幕在线播放 | 在线看国产精品 | 免费午夜网站 | 人人爽影院 | 亚洲精品国产精品99久久 | 国产麻豆果冻传媒在线观看 | 久久精品99国产精品 | 色小说av| 欧美亚洲久久 | 精品久久久久久久久久久久久久久久 | 亚洲无人区小视频 | 99精品欧美一区二区蜜桃免费 | 婷婷六月天丁香 | 亚洲精品一区二区网址 | 免费亚洲精品视频 | 在线视频免费观看 | 国产精品夜夜夜一区二区三区尤 | 国产视频欧美视频 | 四虎免费在线观看视频 | av免费网站在线观看 | 亚洲国产免费 | 国产v视频 | 一区二区三区免费在线观看 | 夜夜躁日日躁狠狠久久av | 网站你懂的 | 亚洲欧美久久 | 久久99精品久久久久蜜臀 | 五月天天色 | 国产伦理久久精品久久久久_ | 免费看的黄色网 | 日韩成人在线一区二区 | 免费国产在线观看 | 欧美一级看片 | 五月天综合网站 | 女人魂免费观看 | 91在线看视频 | 久久在线免费观看视频 | 亚洲在线网址 | 精品国产伦一区二区三区免费 | 成人试看120秒 | 91香蕉视频 mp4 | 91亚洲欧美| 亚洲黄网址| 在线观看日韩精品视频 | 国产精品大尺度 | 成片视频在线观看 | 欧美日韩中文国产一区发布 | 亚洲精品一区二区精华 | 五月天婷婷综合 | 久久精品久久精品久久39 | 免费看一及片 | 在线播放91| 亚洲精品视频在线播放 | www.夜色321.com| 亚洲精品乱码白浆高清久久久久久 | 久久综合中文字幕 | 亚洲电影黄色 | 97成人资源站 | 欧美日韩中文在线视频 | 欧美一进一出抽搐大尺度视频 | 91九色蝌蚪视频 | 国产不卡片 | 亚洲国产精品电影 | 国产对白av | 91视频首页 | 91精品区 | 99国产精品久久久久老师 | 一区二区三区免费网站 | 99热网站| 99视频网址| 狠狠狠狠狠狠干 | 日韩在线观看你懂得 | 中文字幕网站 | 亚洲精品免费在线观看 | av在线网站免费观看 | 亚洲涩涩网站 | av夜夜操| 99在线热播精品免费99热 | 久久久久国产一区二区三区四区 | 黄色在线看网站 | 久久久免费视频播放 | 97夜夜澡人人爽人人免费 | 精品国产伦一区二区三区观看体验 | 亚洲免费公开视频 | 亚洲国产剧情av | 国产在线观看网站 | 九九九热精品免费视频观看网站 | 欧美极品xxx | www.97视频 | 日韩一区二区三区免费视频 | 久久99最新地址 | 最新国产精品拍自在线播放 | 欧美a级在线 | 日韩在线一二三区 | 欧美久久久影院 | 丁香网五月天 | 中文字幕在线观看完整版 | 91av在线电影 | 狠狠操操 | 99精品视频免费看 | 黄色在线观看网站 | 日本精品在线视频 | 91系列在线观看 | 亚洲一区二区视频在线播放 | 久久午夜网 | 国产精品大全 | 国产精品久久久av久久久 | 精品国模一区二区 | 亚洲日本精品视频 | 天天插天天狠天天透 | 日韩久久精品一区 | 免费99视频 | 精品国模一区二区 | 久久久久激情视频 | 97综合网| 日韩大片免费观看 | 国产视频手机在线 | 99在线观看 | 在线午夜电影神马影院 | 在线电影日韩 | 麻豆视频免费入口 | 日本在线观看中文字幕无线观看 | 91麻豆视频| 成年人在线观看 | 97视频在线观看成人 | 四虎影视成人永久免费观看视频 | 欧美91精品 | 欧美精品三级在线观看 | www.亚洲| 中文十次啦 | 亚洲国产影院 | 日本在线观看中文字幕无线观看 | www色综合 | 久久噜噜少妇网站 | 91丨九色丨蝌蚪丰满 | 天天操网站 | 久久久久国产精品午夜一区 | 精品国产综合区久久久久久 | 国内成人综合 | 麻豆精品视频在线 | 日韩欧美99| 日本黄色免费网站 | 99精品亚洲 | 网站在线观看你们懂的 | 亚洲综合在线观看视频 | 国产高清视频在线观看 | 五月婷婷开心 | 五月天久久久 | 国产成人精品一区二区在线 | 国产精品网站 | a级国产乱理论片在线观看 伊人宗合网 | 韩国av免费观看 | 久草综合视频 | 超碰97中文| av大片免费看 | 国产尤物一区二区三区 | 欧美日韩在线视频免费 | 天天草天天干 | 激情综合网天天干 | 久久理论电影 | 色视频网站在线 | 色a资源在线 | 日韩网站在线免费观看 | av丝袜美腿 | 国产精品激情偷乱一区二区∴ | 午夜婷婷在线播放 | www.夜夜爱| 免费视频你懂的 | 国产精品一区二区果冻传媒 | 欧美一区二区免费在线观看 | 操操综合网| 国产精品免费在线播放 | 色婷婷88av视频一二三区 | 国产视频亚洲 | 日韩有码中文字幕在线 | 欧美日韩一级久久久久久免费看 | 免费碰碰| 国产高清在线一区 | 看黄色.com | 黄色成品视频 | 波多野结衣在线视频免费观看 | 国产亚洲精品av | 99热99 | 在线观看亚洲 | 天天曰夜夜爽 | 成年人免费观看在线视频 | 日韩av快播电影网 | 国产在线播放不卡 | 免费色视频在线 | 午夜视频免费在线观看 | 天天综合区 | 婷婷六月激情 | 九九视频在线观看视频6 | 最近中文国产在线视频 | 精品国产理论 | 国产精品福利小视频 | 日韩一级电影在线观看 | 一级a性色生活片久久毛片波多野 | 国产成人久久av免费高清密臂 | 在线色资源 | 日韩视频中文 | 久草在线最新免费 | 国产九九精品视频 | 国产va饥渴难耐女保洁员在线观看 | 99se视频在线观看 | 国产中文字幕在线观看 | 成人久久免费视频 | 国产免费不卡 | www蜜桃视频 | 国产亚洲va综合人人澡精品 | 96久久精品| 五月天综合色 | 99综合电影在线视频 | 91热精品视频 | 成人aⅴ视频| 丁香综合激情 | 中文字幕在线观看免费 | 中文字幕视频在线播放 | 69av国产 | 91视频在线免费看 | a黄色大片 | 国产91粉嫩白浆在线观看 | 亚洲国产中文字幕在线观看 | 国内精品久久久久影院优 | 成人av观看| 美女视频黄网站 | 福利久久| 黄色午夜网站 | 久草在线视频看看 | 久久黄网站 | 国产直播av | 波多野结衣理论片 | av天天草| 国产高清视频在线观看 | 国产亚洲精品女人久久久久久 | 99精品在线观看 | 久久精品视频在线播放 | 视频一区视频二区在线观看 | www.香蕉| 欧美日韩一区二区免费在线观看 | 亚洲视频免费 | 一级电影免费在线观看 | 黄污视频大全 | 久草免费在线观看 | 天天综合导航 | 久久国产女人 | av免费网| 玖玖在线视频观看 | 91精品老司机久久一区啪 | 一级特黄aaa大片在线观看 | 麻豆国产精品一区二区三区 | 国产亚洲精品久 | 99精品久久精品一区二区 | 日韩最新av在线 | 国产精品免费在线播放 | 中文字幕精品一区二区三区电影 | 国产精品成人a免费观看 | 友田真希av | 久久怡红院| 欧美一级xxxx | 精品国产综合区久久久久久 | 69绿帽绿奴3pvideos | 久久婷婷综合激情 | 成人一级片视频 | 免费在线观看av网站 | 美女福利视频在线 | 免费在线播放黄色 | 中文乱码视频在线观看 | 三上悠亚一区二区在线观看 | 日本69hd| 日本公妇在线观看高清 | 亚洲综合小说电影qvod | 国产理论在线 | 成人性生交视频 | 亚洲永久av | 91麻豆精品国产91 | 午夜av在线播放 | 国产不卡av在线 | 亚洲精品动漫成人3d无尽在线 | 日韩精品一区二区在线视频 | 1区2区视频| 欧美在线不卡一区 | 国内精品福利视频 | 狠狠色噜噜狠狠 | 久久99久久99精品 | 97超碰国产精品女人人人爽 | 天天干夜夜夜 | 日本韩国欧美在线观看 | 国产精品久久久电影 | 中文字幕资源网在线观看 | 久久草草热国产精品直播 | 久久av在线 | 2018好看的中文在线观看 | 99久久999久久久精玫瑰 | 日本公妇在线观看高清 | 最新av在线播放 | 粉嫩av一区二区三区四区在线观看 | 97精产国品一二三产区在线 | 国产精品门事件 | 国产精品自拍在线 | 久久超级碰视频 | 国产欧美精品一区二区三区四区 | 少妇性aaaaaaaaa视频 | 久久爽久久爽久久av东京爽 | 在线精品亚洲 | 免费观看一级特黄欧美大片 | 一级黄色片在线免费看 | 99999精品视频 | 国产精品 9999 | 国产一级视频在线 | 香蕉久草在线 | 日韩欧美一区二区在线观看 | 亚洲每日更新 | 色婷婷综合久久久 | 日韩免费在线视频观看 | 国产69精品久久99的直播节目 | 9在线观看免费高清完整 | 麻豆久久久久久久 | 色播亚洲婷婷 | 免费av在线| 可以免费看av | 亚洲视频精选 | 在线观看视频国产 | 久久精品7| 成人在线免费观看网站 | 国产999视频 | 天天干天天操天天操 | 亚洲精品动漫成人3d无尽在线 | 中日韩欧美精彩视频 | 国产成人久久av977小说 | 亚洲欧美视频在线观看 | 婷婷丁香狠狠爱 | 免费在线一区二区 | 日日夜夜噜 | 国产精品久久在线 | 欧美成人基地 | 国产1级毛片 | 特级毛片在线 | 国产在线一区二区 | 黄色软件视频大全免费下载 | 国产成a人亚洲精v品在线观看 | 91大片成人网 | 免费日韩在线 | 九九精品久久久 | 亚洲欧美日韩国产精品一区午夜 | 青草视频在线看 | 久久伊人八月婷婷综合激情 | 天天综合久久 | 国产v视频 | 成人永久视频 | 久久综合中文字幕 | 日本女人在线观看 | 久久国产精品久久精品 | 五月花丁香婷婷 | 免费在线精品视频 | www.色婷婷.com | 国产色妞影院wwwxxx | 久久久国产精品一区二区三区 | 国产国语在线 | 91精品久久久久久久久久久久久 | 日韩中文在线观看 | 激情综合网五月 | 中文字幕乱码在线播放 | 亚洲精品国产精品国产 | 国产成人精品久久亚洲高清不卡 | 日韩在线观看你懂得 | 日韩av一区在线观看 | 国产精品午夜久久 |