999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

Python在電氣設(shè)備智能檢測(cè)系統(tǒng)原型實(shí)現(xiàn)中的應(yīng)用

2021-12-17 00:26:39劉傳忠
電腦知識(shí)與技術(shù) 2021年33期

劉傳忠

摘要:基于人機(jī)協(xié)同的電氣設(shè)備智能檢測(cè)系統(tǒng),是一個(gè)相對(duì)比較復(fù)雜的系統(tǒng),為了能夠快速驗(yàn)證在系統(tǒng)研發(fā)中關(guān)鍵技術(shù)的可行性,采用語(yǔ)法優(yōu)雅功能強(qiáng)大的Python編程語(yǔ)言進(jìn)行了原型驗(yàn)證。探討了Python語(yǔ)言在后端接口實(shí)現(xiàn)、數(shù)據(jù)庫(kù)中的數(shù)據(jù)存取、系統(tǒng)與設(shè)備即時(shí)通信,后臺(tái)定時(shí)服務(wù)和與算法文件進(jìn)行信息交互等方面的應(yīng)用。實(shí)踐證明采用Python開(kāi)發(fā)語(yǔ)言,能夠快速地開(kāi)發(fā)原型系統(tǒng),滿(mǎn)足研發(fā)的需要。

關(guān)鍵詞:Python;后端接口;設(shè)備通信;算法文件交互;原型驗(yàn)證

中圖分類(lèi)號(hào):TP312? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A

文章編號(hào):1009-3044(2021)33-0017-03

開(kāi)放科學(xué)(資源服務(wù))標(biāo)識(shí)碼(OSID):

Application of Python in Prototype Implementation of Intelligent Detection System for Electrical Equipment

LIU Chuan-zhong1,2,3

(1.Shanghai Electrical Apparatus Research Institute (Group) Co.,Ltd., Shanghai 200063, China; 2.Shanghai Key Laboratory of Smart Grid Demand Response, Shanghai 200063, China; 3.Research and Development (Experiment) Center of Electrical Equipment for National Energy Smart Grid User Side, Shanghai 200063, China)

Abstract: The intelligent detection system of electrical equipment based on man-machine cooperation is a relatively complex system. In order to quickly verify the feasibility of key technologies in system development, the prototype verification is carried out by using Python which has elegant syntax and powerful function. This paper discusses the application of Python in the implementation of back-end interface, data access in database, instant communication between system and equipment, background scheduler service and information interaction with algorithm files. Practice has proved that using Python can quickly develop the prototype system and meet the needs of research and development.

Key words: Python; back-end interface; instant communication; interaction with algorithm files; prototype verification

1 背景

隨著IT信息、物聯(lián)網(wǎng)、云計(jì)算等技術(shù)的快速發(fā)展和中國(guó)制造2025制造強(qiáng)國(guó)戰(zhàn)略的全面推進(jìn),用戶(hù)端電氣設(shè)備的應(yīng)用與日俱增,相應(yīng)的產(chǎn)品質(zhì)量和使用安全問(wèn)題也不容忽視。目前用戶(hù)端電氣設(shè)備生產(chǎn)制造環(huán)節(jié)的檢驗(yàn)手段和工具的智能化在我國(guó)仍處于相對(duì)初級(jí)階段,不能完全滿(mǎn)足產(chǎn)業(yè)快速發(fā)展的需要。將機(jī)器學(xué)習(xí)、機(jī)器視覺(jué)、云計(jì)算、物聯(lián)網(wǎng)等技術(shù)應(yīng)用于用戶(hù)端電器設(shè)備檢測(cè)系統(tǒng),解決產(chǎn)品檢測(cè)環(huán)節(jié)生產(chǎn)效率較低、質(zhì)量無(wú)法嚴(yán)格保證的問(wèn)題勢(shì)在必行。為了快速構(gòu)建智能電氣設(shè)備檢測(cè)系統(tǒng),驗(yàn)證相關(guān)技術(shù)的可行性,本課題選用有語(yǔ)法優(yōu)雅、功能強(qiáng)大的Python作為主要編程語(yǔ)言進(jìn)行原型開(kāi)發(fā)驗(yàn)證。

2 原型系統(tǒng)

如圖1所示,電氣設(shè)備智能檢測(cè)原型系統(tǒng)由視覺(jué)檢測(cè)器、算法訓(xùn)練服務(wù)器和Web服務(wù)器(包含數(shù)據(jù)庫(kù))三部分組成。

視覺(jué)檢測(cè)器由攝像頭、觸摸屏和人機(jī)控制界面組成,一般部署于產(chǎn)品檢測(cè)生產(chǎn)線(xiàn),當(dāng)待檢測(cè)的產(chǎn)品通過(guò)檢測(cè)器攝像頭所對(duì)應(yīng)的工位時(shí),檢測(cè)器利用在訓(xùn)練服務(wù)器上訓(xùn)練好的算法對(duì)攝像頭按一定的規(guī)則所拍攝的產(chǎn)品圖片進(jìn)行智能判定。

訓(xùn)練服務(wù)器采用Ubuntu 20.04系統(tǒng),由訓(xùn)練集、算法庫(kù)、模型庫(kù)、后臺(tái)服務(wù)和接口服務(wù)組成,主要用來(lái)對(duì)算法進(jìn)行訓(xùn)練。訓(xùn)練服務(wù)器搭建Samba服務(wù)器[1],允許視覺(jué)檢測(cè)器進(jìn)行磁盤(pán)映射,進(jìn)行算法文件的獲取或照片檢測(cè)結(jié)果的上傳等。訓(xùn)練集的圖片及標(biāo)注信息由視覺(jué)檢測(cè)器定時(shí)上傳得到。算法庫(kù)由專(zhuān)門(mén)的算法工程師開(kāi)發(fā)調(diào)試后部署,可在本地直接啟動(dòng),也可以在Web頁(yè)面上操作通過(guò)接口服務(wù)進(jìn)行啟動(dòng)。模型庫(kù)存放算法訓(xùn)練成功后的模型文件,同時(shí)相關(guān)信息會(huì)被更新到MySQL數(shù)據(jù)庫(kù)中。后臺(tái)服務(wù)會(huì)定時(shí)獲取訓(xùn)練服務(wù)器的CPU和內(nèi)存使用情況,并將相關(guān)信息更新到MySQL數(shù)據(jù)庫(kù)中。接口服務(wù)提供啟動(dòng)算法訓(xùn)練的Web API接口,供Web服務(wù)器上的前端頁(yè)面進(jìn)行調(diào)用。

在原型系統(tǒng)中,Web服務(wù)器采用Windows 10專(zhuān)業(yè)版,由MySQL數(shù)據(jù)庫(kù)、MQTT代理服務(wù)器、后臺(tái)服務(wù)、Web API接口服務(wù)和前端頁(yè)面組成,主要用來(lái)提供人機(jī)交互界面對(duì)視覺(jué)檢測(cè)器、訓(xùn)練集、算法、模型等信息進(jìn)行管理。MySQL數(shù)據(jù)庫(kù)采用社區(qū)版8.0.19,主要用來(lái)存儲(chǔ)用戶(hù)角色權(quán)限信息、檢測(cè)器信息、算法信息、模型訓(xùn)練信息和系統(tǒng)參數(shù)等。MQTT代理服務(wù)器我們采用開(kāi)源消息代理軟件Mosquitto 2.0.0以服務(wù)的方式在后臺(tái)運(yùn)行,開(kāi)啟了密碼驗(yàn)證和日志功能,可在mosquitto.conf配置文件中進(jìn)行修改配置,它支持可發(fā)布/可訂閱的消息推送模式,視覺(jué)檢測(cè)器和后臺(tái)服務(wù)均可以作為客戶(hù)端發(fā)布/訂閱相關(guān)的主題進(jìn)行實(shí)時(shí)信息交互。后臺(tái)服務(wù)程序常駐內(nèi)存,通過(guò)訂閱相關(guān)的主題,實(shí)現(xiàn)對(duì)視覺(jué)檢測(cè)器狀態(tài)匯報(bào)數(shù)據(jù)的實(shí)時(shí)偵聽(tīng)并及時(shí)將狀態(tài)信息保存到數(shù)據(jù)庫(kù)供前端界面讀取顯示。人機(jī)交互功能通過(guò)前后端分離的方式進(jìn)行開(kāi)發(fā),前端頁(yè)面采用阿里開(kāi)源的基于React的前端開(kāi)發(fā)腳手架Ant Design Pro[2],后端接口采用基于微型的 Python web開(kāi)發(fā)框架Flask。

3 Python應(yīng)用

3.1 Python簡(jiǎn)介

Python 是一種易于學(xué)習(xí)使用又功能強(qiáng)大的開(kāi)源免費(fèi)跨平臺(tái)的編程語(yǔ)言,它提供了高效的高級(jí)數(shù)據(jù)結(jié)構(gòu),還支持簡(jiǎn)單有效的面向?qū)ο缶幊獭?yōu)雅的語(yǔ)法,動(dòng)態(tài)類(lèi)型,交互式的開(kāi)發(fā)環(huán)境,以及解釋型語(yǔ)言的本質(zhì),使得它成為多數(shù)平臺(tái)上寫(xiě)腳本和快速開(kāi)發(fā)應(yīng)用的理想語(yǔ)言[3],目前Python已被廣泛應(yīng)用自動(dòng)化測(cè)試與運(yùn)維、網(wǎng)絡(luò)爬蟲(chóng)、數(shù)據(jù)分析與可視化等領(lǐng)域。

Python具有自動(dòng)內(nèi)存管理,支持多種基本數(shù)據(jù)類(lèi)型和數(shù)據(jù)結(jié)構(gòu),支持面向?qū)ο缶幊毯彤惓2蹲剑峁┝藦?qiáng)大的標(biāo)準(zhǔn)庫(kù)且支持?jǐn)U展,有很多第三方的模塊(modules)/包(packages)可以使用,如在科學(xué)計(jì)算中常用到的[4]數(shù)值計(jì)算擴(kuò)展包NumPy(Numeric Python),數(shù)據(jù)符號(hào)計(jì)算庫(kù)SymPy(Symbolic mathematics with Python),面向?qū)ο蟮睦L圖庫(kù)Matplotlib,以及本課題中用到的微型的Web 框架-Flask,消息隊(duì)列遙測(cè)傳輸(MQTT)的Python客戶(hù)端paho-mqtt,任務(wù)調(diào)度工具APScheduler等。

簡(jiǎn)單來(lái)說(shuō)Python安裝后,運(yùn)行和開(kāi)發(fā)基本可以分為三種方式:交互式解釋器、命令行腳本和集成開(kāi)發(fā)環(huán)境。為了方便和靈活,本課題采用Anaconda安裝Python開(kāi)發(fā)環(huán)境,以VSCode作為集成開(kāi)發(fā)環(huán)境[5]。

3.2 后端接口與數(shù)據(jù)存取

在本課題中,Web API后臺(tái)接口部分我們采用開(kāi)源的輕量級(jí)Web應(yīng)用程序框架-Flask,它實(shí)現(xiàn)的核心簡(jiǎn)單且具有良好的擴(kuò)展性,既可以開(kāi)發(fā)MVC網(wǎng)絡(luò)程序,也可以提供具有Restful風(fēng)格的Web API。雖然該框架沒(méi)有提供對(duì)ORM(Object Ralational Mapping,對(duì)象關(guān)系映射)的支持把對(duì)象模型表示的對(duì)象映射到基于SQL的關(guān)系模型數(shù)據(jù)庫(kù)結(jié)構(gòu)中去,但我們可以采用Flask擴(kuò)展Flask-SQLAlchemy實(shí)現(xiàn)對(duì)Mysql數(shù)據(jù)庫(kù)的增刪改查操作[6]。

在使用框架的過(guò)程中,可以使用route()裝飾器來(lái)把函數(shù)綁定到URL,通過(guò)把 URL的一部分標(biāo)記為就可以在URL中添加變量,使用route()裝飾器的methods參數(shù)來(lái)處理不同的HTTP方法。如下面的代碼

@app.route('/api/v1.0/products/', methods=['GET'])

def getProductEntityById(pid):

表示函數(shù)getProductEntityById支持HTTP的GET方法,可以使用的參數(shù)為int型,變量名稱(chēng)為pid,當(dāng)客戶(hù)端請(qǐng)求http://192.168.11.124:6688/api/v1.0/2時(shí)會(huì)調(diào)用函數(shù)getProductEntityById(2),在此處假定接口服務(wù)器所在的IP地址為192.168.11.124,F(xiàn)lask應(yīng)用運(yùn)行時(shí)使用的端口為6688。

3.3 即時(shí)通信

在本課題中,為了使視覺(jué)檢測(cè)器和后臺(tái)服務(wù)保持實(shí)時(shí)通信,采用了構(gòu)建于TCP/IP協(xié)議之上基于發(fā)布/訂閱(publish/subscribe)模式的“輕量級(jí)”通訊協(xié)議-MQTT(Message Queuing Telemetry Transport,消息隊(duì)列遙測(cè)傳輸協(xié)議)協(xié)議[7]。在通訊過(guò)程中,MQTT協(xié)議中有三種身份:發(fā)布者(Publish)、代理(Broker)(服務(wù)器)、訂閱者(Subscribe)。其中,消息的發(fā)布者和訂閱者都是客戶(hù)端,消息代理是服務(wù)器,消息發(fā)布者可以同時(shí)是訂閱者。

視覺(jué)檢測(cè)器和訓(xùn)練服務(wù)器軟件均作為Client,經(jīng)過(guò)MQTT Broker代理服務(wù)器通過(guò)主題(Topic)發(fā)布或訂閱的方式進(jìn)行發(fā)送數(shù)據(jù)或接收數(shù)據(jù)。在本項(xiàng)目中我們?cè)O(shè)計(jì)了由Web后臺(tái)服務(wù)發(fā)起視覺(jué)檢測(cè)器訂閱和由視覺(jué)檢測(cè)器發(fā)起Web后臺(tái)服務(wù)訂閱的兩類(lèi)共6個(gè)主題,分別是檢測(cè)器狀態(tài)查詢(xún)(TrainMachine2Detector/DetectorStatus/Inq)、配置檢測(cè)器參數(shù)(TrainMachine2Detector/DetectorPara/Set)、讀取檢測(cè)器參數(shù)(TrainMachine2Detector/DetectorPara/Get)和注冊(cè)通知(Detector2TrainMachine/RegDetectorinfor/Notify)、檢測(cè)器狀態(tài)上報(bào)(Detector2TrainMachine/DetectorStatus/Resp)、檢測(cè)器參數(shù)上傳(Detector2TrainMachine/DetectorPara/Resp)。報(bào)文傳輸?shù)闹饕獌?nèi)容定義在有效載荷(payload)中,如讀取檢測(cè)器參數(shù)時(shí)需要知道是要查詢(xún)哪個(gè)視覺(jué)檢測(cè)器,我們定義的其有效載荷采用JSON格式,其示例為:{"ClientID": "DEV-HA202012-0001"}。

在本課題中我們使用paho-mqtt編寫(xiě)設(shè)計(jì)MQTT客戶(hù)端,它是Eclipse基金會(huì)開(kāi)源項(xiàng)目paho的Python MQTT客戶(hù)端庫(kù),實(shí)現(xiàn)了物聯(lián)網(wǎng)MQTT協(xié)議的 5.0和3.1。該包提供了全功能的客戶(hù)端(Client)模塊和簡(jiǎn)化版的消息(publishing)模塊,方便我們連接MQTT代理服務(wù)器,實(shí)現(xiàn)對(duì)主題的發(fā)布和訂閱[8]。下面的代碼展示了我們通過(guò)用戶(hù)名和密碼登錄MQTT代理服務(wù)器,并為連接、收到消息、訂閱、連接斷開(kāi)等事件指定了回掉函數(shù),我們可以在回掉函數(shù)中針對(duì)相關(guān)信息進(jìn)行處理,如收到訂閱的主題后將相關(guān)內(nèi)容進(jìn)行解析并存儲(chǔ)數(shù)據(jù)庫(kù)中。

try:

client = mqtt.Client(ClientID)

client.username_pw_set(ClientUser, ClientPwd)

client.on_connect = on_connect

client.on_message = on_message

client.on_subscribe = on_subscribe

client.on_disconnect = on_disconnect

client.connect(MqttBroker, Mqttport, 60)

client.loop_forever()

except Exception as e:

print(e)

3.4 定時(shí)服務(wù)

在本課題中,需要在后臺(tái)定時(shí)查詢(xún)訓(xùn)練服務(wù)器的CPU和內(nèi)存使用情況、磁盤(pán)剩余空間等,我們采用了Python第三方庫(kù)APScheduler來(lái)實(shí)現(xiàn)該功能。APscheduler全稱(chēng)Advanced Python Scheduler,作用為在指定的時(shí)間規(guī)則執(zhí)行指定的作業(yè)。指定時(shí)間規(guī)則的方式可以是間隔多久執(zhí)行,可以是指定延遲一定日期時(shí)間的單次執(zhí)行,也可以類(lèi)似Linux系統(tǒng)中Cron風(fēng)格方式執(zhí)行任務(wù)[9]。如下的代碼展示了我們封裝了一個(gè)啟動(dòng)后臺(tái)任務(wù)的函數(shù),該后臺(tái)任務(wù)為一個(gè)。

def StartBackgroundService():

print("StartBackgroundService")

scheduler = BlockingScheduler()

scheduler.add_job(JobShowHardDiskInf, trigger='interval', minutes=1, id='JobShowHardDiskInfId1')

scheduler.start()

print("StartBackgroundService OK")

阻塞式的獨(dú)占式后臺(tái)任務(wù),每隔1分鐘觸發(fā)1次,執(zhí)行的任務(wù)為JobShowHardDiskInf(該函數(shù)執(zhí)行查詢(xún)磁盤(pán)信息并將相關(guān)信息更新到數(shù)據(jù)庫(kù)對(duì)應(yīng)的表中,限于篇幅,此處未予展示)。

3.5 算法交互

在本課題中,由于算法文件是由算法工程師編寫(xiě)的,跟Web展示交互實(shí)施團(tuán)隊(duì)分屬不同的項(xiàng)目,人機(jī)交互模塊與算法文件之間的信息交互是一個(gè)需要解決的問(wèn)題。由于算法文件也是由Python實(shí)現(xiàn)的,人機(jī)交互模塊通過(guò)python的subprocess 模塊的Popen() 方法來(lái)調(diào)用算法文件,如subprocess.Popen(mycmd, shell=True),其中mycmd由函數(shù)getStartTrainingCmdStr根據(jù)相關(guān)信息拼接字符串而成,參數(shù)拼接函數(shù)的實(shí)現(xiàn)如下:

def getStartTrainingCmdStr(mtid,product,algfile,epochs,batchsize):

strCmd = "python "

strCmd += algfile

strCmd += " --mtprogressid '"

strCmd += mtid

strCmd += "' --productmodel '"

strCmd += product

strCmd +="' --epochs "

strCmd += str(epochs)

strCmd += " --batch-size "

strCmd += str(batchsize)

print(strCmd)

return strCmd

對(duì)于訓(xùn)練模型ID為“MTDemo20210808”,產(chǎn)品型號(hào)名稱(chēng)為“DemoProductModel”,算法文件為“train.py”,epochs為400,batchsize為4的啟動(dòng)訓(xùn)練的參數(shù)串mycmd為“python train.py --meprogressid ‘MTDemo20210808 --productmodel ‘DemoProductModel --epochs 400 --batch-size 4”。在算法文件中,通過(guò)argparse可以對(duì)命令行傳入的參數(shù)進(jìn)行解析,如下面的代碼:

if __name__ == '__main__':

parser = argparse.ArgumentParser()

parser.add_argument('--productmodel', type=str, default='motor1', help='id')

可以從輸入的參數(shù)中提取到剛才傳入的產(chǎn)品模型信息為“DemoProductModel”,從而實(shí)現(xiàn)了算法調(diào)用方向算法文件傳入的相關(guān)信息。至于算法文件向人機(jī)交互模塊輸出相關(guān)信息,則可以將相關(guān)的信息按需插入或更新數(shù)據(jù)庫(kù)中的相關(guān)記錄即可,此處不再贅述。

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

本課題采用前端界面Ant Design Pro腳手架,后端采用Python的Flask框架及MQTT客戶(hù)端paho-mqtt,任務(wù)調(diào)度工具APScheduler等第三方軟件包及Python自帶的subprocess模塊等,實(shí)現(xiàn)了后端接口與數(shù)據(jù)存儲(chǔ)、視覺(jué)檢測(cè)器與Web人機(jī)交互界面實(shí)時(shí)通信,后臺(tái)定時(shí)服務(wù)和算法交互等技術(shù)驗(yàn)證,實(shí)現(xiàn)了對(duì)視覺(jué)檢測(cè)器的注冊(cè)信息、狀態(tài)信息和配置信息的管理;對(duì)訓(xùn)練集、算法模型的啟動(dòng)與信息管理等功能。圖2所示為視覺(jué)檢測(cè)器的注冊(cè)信息管理頁(yè)面,該頁(yè)面前端定時(shí)刷新讀取數(shù)據(jù)庫(kù)的相關(guān)信息,當(dāng)有新的視覺(jué)檢測(cè)器注冊(cè)進(jìn)來(lái)的時(shí)候,在該頁(yè)面列表中能夠自動(dòng)添加新注冊(cè)的視覺(jué)檢測(cè)器的相關(guān)信息。

實(shí)踐證明,開(kāi)源且功能強(qiáng)大的Python能夠?qū)崿F(xiàn)電氣設(shè)備智能檢測(cè)系統(tǒng)原型的搭建與相關(guān)技術(shù)驗(yàn)證。本課題的研究為從事相關(guān)工作的同行提供一定的參考價(jià)值。

參考文獻(xiàn):

[1] 趙大偉,陳剛.Linux環(huán)境下Samba服務(wù)器的企業(yè)級(jí)應(yīng)用[J].電腦知識(shí)與技術(shù),2017,13(32):50-52.

[2] 呂晨.基于機(jī)器學(xué)習(xí)的流量分類(lèi)平臺(tái)的研究與實(shí)現(xiàn)[D].西安:西安電子科技大學(xué),2020.

[3]Python軟件基金會(huì).Python教程[EB/OL].[2020-12-20].https://docs.python.org/zh-cn/3/tutorial/index.html.

[4] 姚建盛,李淑梅.Python在科學(xué)計(jì)算中的應(yīng)用[J].數(shù)字技術(shù)與應(yīng)用,2016(11):76.

[5] 李天輝.基于python的數(shù)據(jù)分析可視化研究與實(shí)現(xiàn)[J].電子測(cè)試,2020(20):78-79.

[6] 吳桐.基于Flask框架的物資管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].南京:南京大學(xué),2016.

[7] 林滸,張家銘,楊海波.基于MQTT協(xié)議的即時(shí)消息業(yè)務(wù)設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2017,26(3):219-224.

[8] Python軟件基金會(huì).項(xiàng)目描述[EB/OL]. [2020-12-20].https://pypi.org/project/paho-mqtt/#description.

[9] 李丹.自動(dòng)化測(cè)試在線(xiàn)管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].成都:西南交通大學(xué),2017.

【通聯(lián)編輯:謝媛媛】

主站蜘蛛池模板: 欧美国产视频| 中国一级特黄大片在线观看| 一区二区三区国产精品视频| 国产欧美日韩另类| 亚洲区一区| 青青操视频免费观看| 亚洲成人动漫在线| 亚洲精品黄| 91精品国产麻豆国产自产在线| 中文字幕在线看| 中文字幕在线观| 视频一区亚洲| 伊人福利视频| 亚洲天堂网视频| 狠狠色婷婷丁香综合久久韩国| 综合色在线| 亚洲第一视频区| 91小视频在线播放| 国产精品99久久久久久董美香| 黄色污网站在线观看| 亚洲a免费| 综合色亚洲| 亚洲免费人成影院| 亚洲狠狠婷婷综合久久久久| 色妞永久免费视频| 狠狠色狠狠综合久久| 97视频在线精品国自产拍| 欧美国产日韩在线| 91精品网站| 无码aⅴ精品一区二区三区| 欧美精品aⅴ在线视频| 婷婷六月天激情| 国产精品欧美在线观看| 伊人AV天堂| 无码久看视频| 国产精品第三页在线看| 波多野结衣视频一区二区| 99精品视频在线观看免费播放| 国产无遮挡猛进猛出免费软件| 亚洲美女高潮久久久久久久| 亚洲人网站| 国产一区二区丝袜高跟鞋| WWW丫丫国产成人精品| 国产一级毛片yw| 丁香五月婷婷激情基地| 热这里只有精品国产热门精品| 亚洲国产精品一区二区第一页免 | 亚洲日韩国产精品综合在线观看| 97成人在线观看| 青草91视频免费观看| v天堂中文在线| 五月天在线网站| 丁香婷婷久久| 亚洲人成色77777在线观看| 精品少妇人妻av无码久久| 国产一区二区三区免费观看| 成人中文在线| 亚洲第一成年网| 91精品综合| 欧美性久久久久| 日韩av无码DVD| 国产97公开成人免费视频| 草草影院国产第一页| 无码免费试看| 国产波多野结衣中文在线播放| 亚洲国产精品久久久久秋霞影院| 中文字幕永久视频| 欧美成在线视频| 97综合久久| 香蕉久久国产精品免| 狠狠色狠狠色综合久久第一次| 日本免费福利视频| 亚洲天堂日韩av电影| 91国内外精品自在线播放| 99在线视频免费| 国产精品久久久精品三级| 国产精品永久免费嫩草研究院| AV不卡在线永久免费观看| 国产精品丝袜在线| 人妻丰满熟妇αv无码| 中文一级毛片| 精品福利一区二区免费视频|