亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于Socket通信的工業(yè)機器人監(jiān)控系統(tǒng)研究

        2017-08-30 00:01:20徐建明潘湘飛
        計算機測量與控制 2017年7期
        關(guān)鍵詞:服務(wù)端線程客戶端

        徐建明,潘湘飛

        (浙江工業(yè)大學(xué) 信息工程學(xué)院,杭州 310023)

        基于Socket通信的工業(yè)機器人監(jiān)控系統(tǒng)研究

        徐建明,潘湘飛

        (浙江工業(yè)大學(xué) 信息工程學(xué)院,杭州 310023)

        針對Epson-G6和Staubli-TX90工業(yè)機器人,研究一種基于Socket通信的工業(yè)機器人監(jiān)控系統(tǒng);系統(tǒng)分為本地監(jiān)控端和Web遠程監(jiān)控端;基于TCP協(xié)議和Socket通信技術(shù),編寫了機器人控制器服務(wù)端程序和MFC類庫開發(fā)的客戶端程序,客戶端分為通訊功能模塊,末端坐標(biāo)軌跡存儲模塊和基于OpenGL類庫的運動姿態(tài)展現(xiàn)模塊;在此基礎(chǔ)上, 基于J2EE架構(gòu)和WebSocket通信協(xié)議編寫了Web遠程監(jiān)控端程序,分為用戶管理模塊和實時監(jiān)控模塊;系統(tǒng)實現(xiàn)了機器人末端坐標(biāo)軌跡的采集并遠程存儲至PostgreSQL數(shù)據(jù)庫,同時通過逆運動學(xué)計算展現(xiàn)了機器人三維運動姿態(tài),并在Web頁面以動態(tài)曲線方式監(jiān)控機器人的末端坐標(biāo)軌跡。

        工業(yè)機器人;Socket通信;J2EE架構(gòu);WebSocket協(xié)議;遠程監(jiān)控

        0 引言

        隨著工業(yè)自動化的發(fā)展,在工業(yè)生產(chǎn)中,工業(yè)機器人已經(jīng)成為一種像數(shù)控機床一樣必不可少的設(shè)備。中國制造2025規(guī)劃提出中國制造業(yè)需要逐步升級到工業(yè)4.0時代。工業(yè)4.0的顯著標(biāo)志是“互聯(lián)網(wǎng)+制造業(yè)”,其中重要一環(huán)便是推動工業(yè)機器人在工業(yè)生產(chǎn)中的大量應(yīng)用,并通過互聯(lián)網(wǎng)絡(luò)實現(xiàn)機器人間的互聯(lián)互通。因而研究針對工業(yè)機器人的遠程監(jiān)控系統(tǒng)顯得越來越重要。

        目前工業(yè)自動化領(lǐng)域?qū)ΡO(jiān)控系統(tǒng)的研究多采用C/S模式。張愛民等人基于Socket套接字設(shè)計了一種工業(yè)機器人遠程監(jiān)控與診斷系統(tǒng)[1],實現(xiàn)對現(xiàn)場工業(yè)機器人運行狀態(tài)信息的查看。然而采用C/S模式的系統(tǒng),客戶端必須安裝相應(yīng)的軟件,使得系統(tǒng)的擴展性和維護性不高。飽勝利等人提出一種采用B/S模式基于J2EE架構(gòu)的實時監(jiān)控系統(tǒng),實現(xiàn)對卷包生產(chǎn)車間設(shè)備實時數(shù)據(jù)的遠程監(jiān)控[2]。浙江大學(xué)的駱曉娟等人提出一種采用Ajax和B/S構(gòu)架的實時監(jiān)測系統(tǒng),基于.Net平臺利用Ajax技術(shù)在Web頁面實現(xiàn)對監(jiān)測數(shù)據(jù)的實時動態(tài)顯示[3]。采用B/S模式的系統(tǒng),軟件安裝,維護和升級更加容易,客戶端只需擁有瀏覽器即可訪問系統(tǒng)。如果將B/S模式引入基于傳統(tǒng)C/S模式的機器人監(jiān)控系統(tǒng)能夠大大提高系統(tǒng)的維護性和擴展性。

        本文以STAUBLI-TX90和EPSON-G6為監(jiān)控對象,基于“C/S+B/S”模式研究一種工業(yè)機器人遠程監(jiān)控系統(tǒng)。系統(tǒng)分為本地監(jiān)控端和Web遠程監(jiān)控端,本地監(jiān)控端基于TCP協(xié)議,采用Socket編程接口和多線程架構(gòu)實現(xiàn)與工業(yè)機器人的通信。Web遠程監(jiān)控端基于J2EE架構(gòu),后端程序采用SSH框架和WebSocket通信協(xié)議編程,前端JSP頁面采用JQuery EasyUI框架設(shè)計。頁面基于Ajax異步方式請求非實時數(shù)據(jù),基于WebSocket通信協(xié)議請求實時監(jiān)控數(shù)據(jù)。WebSocket是HTML5新標(biāo)準中的Web通信機制,能夠在瀏覽器和服務(wù)器間建立長連接,實現(xiàn)穩(wěn)定全雙工實時通信,相對于Ajax輪詢方式更加高效[4]。

        1 系統(tǒng)整體架構(gòu)

        整個系統(tǒng)對STAUBLI-TX90和EPSON-G6工業(yè)機器人的監(jiān)控分為兩個部分:本地監(jiān)控和Web遠程監(jiān)控。整個系統(tǒng)連接框圖如圖1所示。

        圖2 MFC客戶端多線程通信流程框圖

        圖1 系統(tǒng)連接框圖

        本地監(jiān)控部分將STAUBLI-TX90控制器和EPSON-G6控制器通過以太網(wǎng)端口接入交換機,本地監(jiān)控主機與交換機通過網(wǎng)線連接,基于TCP/IP協(xié)議,使用Socket采集機器人末端坐標(biāo)軌跡并存儲到遠程服務(wù)器的數(shù)據(jù)庫中;Web遠程監(jiān)控部分由遠程服務(wù)器和瀏覽器客戶端組成,機器人實時數(shù)據(jù)監(jiān)控采用WebSocket通信機制。使用Tomcat7作為Web應(yīng)用服務(wù)器,部署基于J2EE架構(gòu)開發(fā)的遠程監(jiān)控程序。程序部署完成,用戶通過瀏覽器能夠?qū)崟r訪問機器人的監(jiān)控數(shù)據(jù)。

        2 本地監(jiān)控實現(xiàn)

        本地監(jiān)控端采用C/S(客戶/服務(wù)器)模式,將機器人控制器作為通信服務(wù)端,將基于MFC[5]類庫開發(fā)的C++程序作為通信客戶端,C++語言操作硬件更加容易,而且軟件易于維護。MFC客戶端主要有3個核心功能:與工業(yè)機器人的通信,工業(yè)機器人末端坐標(biāo)軌跡的遠程存儲,工業(yè)機器人三維運動姿態(tài)的實時展現(xiàn)。

        2.1 機器人通信服務(wù)端實現(xiàn)

        將STAUBLI-TX90和EPSON-G6的機器人控制器作為通信服務(wù)端,首先打開網(wǎng)絡(luò)通信端口,設(shè)置控制器為服務(wù)端,偵聽客戶端的連接,使程序變?yōu)樽枞麪顟B(tài),一旦檢測到客戶端連接完成,程序繼續(xù)執(zhí)行,創(chuàng)建兩條同步任務(wù),在機器人運行到目標(biāo)點的同時發(fā)送機器人當(dāng)前實時末端坐標(biāo)給客戶端。

        2.2 MFC客戶端實現(xiàn)

        2.2.1 通信功能

        MFC監(jiān)控客戶端通信功能實現(xiàn)基于Socket接口編程,程序架構(gòu)為多線程架構(gòu)。MFC中線程分為兩種:界面(用戶接口)線程和工作線程。前者用來獨立地處理用戶輸入和響應(yīng)用戶事件,后者用于后臺任務(wù)[6]。監(jiān)控客戶端在界面線程創(chuàng)建套接字,獲取機器人控制器地址和端口號,建立與機器人的連接,在工作子線程完成接收數(shù)據(jù)工作,提高系統(tǒng)效率。同時使用兩個套接字分別與兩臺工業(yè)機器人建立連接,彼此間互不影響。監(jiān)控客戶端多線程通信的程序流程框圖如圖2所示。左側(cè)為界面線程的程序流程圖,右側(cè)為機器人工作子線程的程序流程圖。

        界面線程和工作子線程間通信基于MFC消息映射機制。當(dāng)界面線程與機器人控制器連接通信成功后調(diào)用PostThreadMessage()函數(shù)向工作子線程發(fā)送UM_WORK通知消息,并將該消息放入消息隊列,工作子線程在While循環(huán)條件中通過PeekMessage()函數(shù)不斷檢查消息隊列中是否有界面線程的UM_WORK通知消息,一旦檢測到此消息,使用Recv()函數(shù)將接收到的機器人末端坐標(biāo)數(shù)據(jù)封裝到RecvBuf()字符數(shù)組中,使用SendMessage()函數(shù)將RecvBuf作為消息參數(shù)發(fā)送通知消息到界面線程的各功能模塊。根據(jù)消息映射機制界面線程會調(diào)用對應(yīng)的消息響應(yīng)函數(shù)。

        子線程向界面線程發(fā)送的通知消息主要有3個:WM_RECVDATA消息調(diào)用主窗口的OnRecvData()函數(shù)顯示采集到的機器人末端坐標(biāo)數(shù)據(jù);WM_SQLWRITE消息調(diào)用主窗口的OnSqlWrite()函數(shù),向遠程數(shù)據(jù)庫寫入采集到的機器人末端坐標(biāo)數(shù)據(jù),實現(xiàn)機器人末端坐標(biāo)軌跡的遠程存儲;WM_OPENGLRECV消息調(diào)用運動學(xué)子窗口的OnOpenGLRecv()函數(shù),實現(xiàn)機器人三維運動姿態(tài)的實時展現(xiàn)。

        MFC客戶端主窗口界面如圖3所示。界面上方為EPSON-G6通信部分,下方為STAUBLI-TX90通信部分。在通信信息中設(shè)置機器人控制器的IP地址和端口號,在界面右側(cè)設(shè)置EPSON-G6和STAUBLI- TX90機器人的目標(biāo)坐標(biāo)位置。

        圖3 主窗口運行界面

        2.2.2 末端坐標(biāo)軌跡存儲

        監(jiān)控客戶端將機器人在笛卡爾空間的末端坐標(biāo)軌跡存儲到遠程服務(wù)器的PostgreSQL數(shù)據(jù)庫中,PostgreSQL相對于MySQL數(shù)據(jù)庫而言,在高并發(fā)和大數(shù)據(jù)量情況下處理速度更快。相對于ODBC,DAO等數(shù)據(jù)庫訪問技術(shù),ADO訪問數(shù)據(jù)源更加高效方便并支持遠程數(shù)據(jù)庫的訪問,因此監(jiān)控客戶端采用ADO方式訪問遠程數(shù)據(jù)庫[]。

        首先在數(shù)據(jù)庫中創(chuàng)建兩張機器人數(shù)據(jù)表epson和staubli,分別用來存儲EPSON-G6和STAUBLI-TX90的末端坐標(biāo)軌跡。調(diào)用AfxOleInit()函數(shù)初始化OLE/COM庫,創(chuàng)建_ConnectionPtr對象,通過該對象的Open()方法建立與遠程數(shù)據(jù)庫的連接,當(dāng)子線程向界面線程發(fā)送WM_SQLWRITE消息時,該消息會調(diào)用OnSqlWrite()響應(yīng)函數(shù),在該函數(shù)中通過_RecordsetPtr對象的PutCollect()方法將機器人末端坐標(biāo)軌跡寫入機器人數(shù)據(jù)表。

        2.2.3 三維運動姿態(tài)展現(xiàn)

        根據(jù)采集到的機器人末端坐標(biāo)軌跡,使用OpenGL類庫和運動學(xué)計算展現(xiàn)機器人的三維運動姿態(tài)。OpenGL是一種快速、高質(zhì)量的開放三維圖形程序庫,VC6.0繼承了OpenGL的圖形標(biāo)準,方便了程序設(shè)計人員實現(xiàn)三維圖像的顯示[8]。

        在運動學(xué)子窗口的OnCreate()函數(shù)中調(diào)用InitOpenGL()函數(shù)設(shè)置窗口像素格式,繪圖設(shè)備上下文等,完成OpenGL環(huán)境的初始化。在RenderStockScence()函數(shù)中繪制坐標(biāo)軸,地面等靜態(tài)場景的三維模型,在RenderRobot()函數(shù)中根據(jù)機器人各軸連桿變換關(guān)系繪制機器人三維模型,將機器人各關(guān)節(jié)角的值定義為全局變量。當(dāng)工作子線程向界面線程發(fā)送WM_OPENGLRECV消息時,系統(tǒng)會調(diào)用OnOpenGLRecv()消息響應(yīng)函數(shù),在該函數(shù)中調(diào)用逆運動學(xué)函數(shù)Invkinematics()傳入機器人末端坐標(biāo),計算出當(dāng)前時刻機器人各關(guān)節(jié)角的值,通過SetJointAngle()函數(shù)將計算出的值設(shè)定給關(guān)節(jié)角的全局變量。使用InvalidateRect()函數(shù)重繪窗口,實現(xiàn)機器人三維模型的實時運動,EPSON-G6和STAUBLI-TX90的實時運動姿態(tài)分別如圖4和圖5所示。

        圖4 EPSON-G6三維運動學(xué)姿態(tài)

        圖5 STAUBLI-TX90三維運動學(xué)姿態(tài)

        3 WEB遠程監(jiān)控實現(xiàn)

        WEB遠程監(jiān)控端采用B/S(瀏覽器/服務(wù)器)架構(gòu),基于MVC模式[9]設(shè)計,使用Tomcat7作為Web服務(wù)器。后端程序整合Struts2,Spring,Hibernate框架[10]和WebSocket通信機制實現(xiàn),前端UI界面使用JQuery EasyUI[11]完成。系統(tǒng)使用分層思想,主要分成五層:數(shù)據(jù)庫層,數(shù)據(jù)持久層,業(yè)務(wù)邏輯層,表現(xiàn)層和客戶層。遠程監(jiān)控架構(gòu)框圖如圖6所示。系統(tǒng)主要分為:用戶管理模塊和實時監(jiān)控模塊。數(shù)據(jù)持久層使用Hibernate框架,負責(zé)與數(shù)據(jù)庫層的PostgreSQL數(shù)據(jù)庫交互,在StaubliDao,EpsonDao和UserDao類實現(xiàn)對機器人數(shù)據(jù)表的查詢和對用戶表的增刪改查;業(yè)務(wù)邏輯層使用Spring框架,分別在StaubliService,EpsonService類處理實時監(jiān)控模塊的業(yè)務(wù)邏輯,在UserService類處理用戶管理模塊的業(yè)務(wù)邏輯;表現(xiàn)層使用Struts2框架和Websocket通信機制,處理來自客戶層的Web請求。實時監(jiān)控模塊使用WebSocket協(xié)議與客戶端建立連接,將EpsonSocket和StaubliSocket類作為通信服務(wù)端,用戶管理模塊使用Struts2框架攔截瀏覽器的Ajax異步請求,將UserAction作為請求服務(wù)端,在Struts.xml中配置Url地址對應(yīng)的Action方法和默認攔截器等。

        3.1 用戶管理實現(xiàn)

        用戶管理功能包括用戶登錄校驗和用戶增刪改查。服務(wù)端程序使用Struts2的攔截器機制完成用戶登錄校驗。在Struts.xml中配置自定義LogonCheckInterceptor攔截器類,將Struts2默認攔截器棧設(shè)置為自定義攔截器棧,攔截除myuserLogin()登錄方法外的所有方法。

        在自定義攔截器類的doIntercept()方法中通過判斷session中的user屬性是否為空來完成用戶登錄校驗。分別調(diào)用ajaxaddUser(),ajaxdelUser(),ajaxeditUser()和easyUIListUser()方法完成對用戶表的增刪改查,所有方法都是通過Ajax異步方式請求服務(wù)端。

        3.2 實時監(jiān)控實現(xiàn)

        為了以動態(tài)曲線的方式實時展現(xiàn)機器人末端坐標(biāo)軌跡,客戶端傳統(tǒng)做法是用Ajax輪詢的方式不斷向服務(wù)器發(fā)送異步請求,但高頻率的輪詢不僅會加重服務(wù)器的負載,而且會將大量時間耗費在頻繁的請求和響應(yīng)時延上,使得效率相對低下。系統(tǒng)采用HTML5新標(biāo)準中的WebSocket通信機制實現(xiàn)實時通信。服務(wù)端使用Tomcat7提供的已實現(xiàn)WebSocket API接口標(biāo)準的實現(xiàn)類,基于注解方式開發(fā)。

        服務(wù)端首先偵聽是否有客戶端的連接請求,如果有則建立與客戶端的連接通道,然后繼續(xù)偵聽是否有客戶端發(fā)送的消息,如果有則在WebSocket的onMessage方法中不斷推送封裝成JSON[12]格式的機器人最新數(shù)據(jù)到客戶端。調(diào)用業(yè)務(wù)邏輯層的getLastLine()方法獲取機器人數(shù)據(jù)表最新的一條記錄,調(diào)用JSONArray的fromObject()方法將該條記錄轉(zhuǎn)換為Json格式,調(diào)用session的sendText()方法發(fā)送Json格式的機器人數(shù)據(jù)到客戶端。

        瀏覽器客戶端在頁面上點擊建立連接按鈕,通過新建WebSocket對象建立與服務(wù)端的連接,在其構(gòu)造參數(shù)中傳入需要連接的服務(wù)端url地址,通過send()方法向服務(wù)端發(fā)送通知消息,在onMessage()方法中解析服務(wù)端返回的機器人數(shù)據(jù)。通過JavaScript的eval()方法將從服務(wù)端返回的Json字符串轉(zhuǎn)換為Json對象。通過該Json對象解析出機器人在笛卡爾空間各軸末端坐標(biāo)并存放到數(shù)組中,將其裝載到Highchats圖表庫動態(tài)曲線的數(shù)據(jù)列上,每隔0.5秒重載數(shù)據(jù)列。Web頁面上EPSON-G6和STAUBLI-TX90在笛卡爾空間的末端坐標(biāo)軌跡實時曲線分別如圖7和圖8所示,橫坐標(biāo)為當(dāng)前時間,縱坐標(biāo)為機器人實時末端坐標(biāo)。點擊斷開連接按鈕,調(diào)用Websocket()的close()方法關(guān)閉服務(wù)端與客戶端的連接通道。

        圖7 EPSON-G6實時動態(tài)曲線

        圖8 Staubli-TX90實時動態(tài)曲線

        4 試驗結(jié)果與分析

        通過試驗驗證本系統(tǒng)的可行性,試驗結(jié)果表明本地監(jiān)控MFC客戶端能夠?qū)崿F(xiàn)與工業(yè)機器人控制器的通信,通信效率達到每50 ms收發(fā)一個數(shù)據(jù)包,丟包率不超過5%。瀏覽器客戶端通過WebSocket協(xié)議實現(xiàn)了與服務(wù)端建立連接通道。依據(jù)網(wǎng)絡(luò)情況好壞,首次建立連接耗時在30~40 ms之間,連接建立完成后,推送每條數(shù)據(jù)的網(wǎng)絡(luò)時延極低,基本上能保證Web頁面上監(jiān)控數(shù)據(jù)的實時性。試驗結(jié)果表明借助于Socket多線程的通信架構(gòu),程序模塊化的設(shè)計及WebSocket高效的通信效率使得系統(tǒng)具有較高的穩(wěn)定性和實時性。

        5 結(jié)論

        本文研究了一種基于Socket套接字通信的工業(yè)機器人遠程監(jiān)控系統(tǒng)。以STAUBLI-TX90和EPSON-G6為監(jiān)控對象,結(jié)合Socket通信技術(shù),ADO數(shù)據(jù)庫訪問技術(shù),OpenGL類庫,J2EE架構(gòu)和WebSocket協(xié)議,實現(xiàn)對工業(yè)機器人的本地和遠程實時監(jiān)控。市場上大多數(shù)工業(yè)機器人控制器都有兼容Socket通信的以太網(wǎng)接口,因此本系統(tǒng)的開發(fā)在實現(xiàn)對不同類型工業(yè)機器人的遠程并發(fā)監(jiān)控方面,具有較大的參考價值。

        [1] 張愛民, 孔得鵬, 王倩.工業(yè)機器人的遠程監(jiān)控與診斷系統(tǒng)設(shè)計[J]. 機械,2010,37(10):45-47.

        [2] 飽勝利, 鐘 勇.基于J2EE的實時監(jiān)控系統(tǒng)的設(shè)計與實現(xiàn)[J].計算機工程,2008,34(5):240-242.

        [3] 駱曉娟,許 力.基于AJAX和B/S構(gòu)架的實時監(jiān)測系統(tǒng)[J].工業(yè)控制計算機,2013, 26(4):64-65.

        [4] 薛 隴,彬劉釗遠. 基于WebSocket的網(wǎng)絡(luò)實時通信[J].計算機與數(shù)字工程,2014,42(3):478-481.

        [5] 徐 璇,姜明新,黃 靜, 等.基于MFC的工程軟件界面設(shè)計[J].電子設(shè)計工程, 2011,19(21): 11-13.

        [6] 王 偉.基于MFC的多線程與串口通信[J].電子世界,2013(4):106.

        [7] 索 巖,崔紅志.基于MFC的數(shù)據(jù)庫動態(tài)訪問技術(shù)[J].科技信息,2009(31):46-47.

        [8] 喻 敏,李成剛,李富中, 等.基于OpenGL和MFC的機器人運動控制及標(biāo)定[J].機械設(shè)計與制造工程,2015,44(1):46-49.

        [9] 冉春玉,白炳杉. MVC模式及Struts框架應(yīng)用研究[J]. 武漢理工大學(xué)學(xué)報, 2004, 26(6):66-69.

        [10] 趙 洋,張 麗,王恩東, 等. 基于Struts,Hibernate和Spring的J2EE架構(gòu)研究[J]. 現(xiàn)代電子技術(shù),2009, 32(2):107-110.

        [11] 陳國耀,王清心. 基于jQuery的高校網(wǎng)絡(luò)心理咨詢系統(tǒng)的設(shè)計與實現(xiàn)[J]. 武漢工程大學(xué)學(xué)報,2011,33(10):103-106.

        [12] 高 靜,段會川. JSON數(shù)據(jù)傳輸效率研究[J]. 計算機工程與設(shè)計,2011,32(7):2267-2270.

        Research of Industrial Robot Monitoring System Based on Socket Communication

        Xu Jianming,Pan Xiangfei

        (College of Information Engineering, Zhejiang University of Technology, Hangzhou 310023,China)

        Aiming at Epson-G6 and Staubli-TX90 industrial robots, a kind of industrial robot monitoring system based on Socket communication is studied. It includes a local monitoring terminal and a web remote monitoring terminal. Based on TCP protocol and Socket communication, the server-side in robot controllers and the client using MFC Framework are respectively programmed. The client contains the communication module, the end coordinate trajectories memory module and the motion posture presentation module based on OpenGL class library. On this basis, the web remote monitoring terminal is designed with J2EE architecture and WebSocket protocol, it is made up of a user management module and a real-time monitoring module. The system realizes the acquisition of the end coordinate trajectories of the robots, the storage of the trajectories to a PostgreSQL database and the monitoring of the trajectories by dynamic curve on web pages. At the same time, the 3D motion attitudes of two robots are also presented by the inverse kinematics calculation.

        industrial robot; Socket communication; J2EE architecture; WebSocket protocol; remote monitoring

        2016-12-19;

        2017-02-27。

        國家自然科學(xué)基金面上項目(61374103);浙江省自然科學(xué)基金重點項目(LZ15F030003)。

        徐建明(1970-),男,江西吉安人,教授,碩士研究生導(dǎo)師,主要從事工業(yè)機器人和視覺伺服控制技術(shù)方向的研究。

        1671-4598(2017)07-0070-04

        10.16526/j.cnki.11-4762/tp.2017.07.018

        TP277

        A

        猜你喜歡
        服務(wù)端線程客戶端
        云存儲中基于相似性的客戶-服務(wù)端雙端數(shù)據(jù)去重方法
        縣級臺在突發(fā)事件報道中如何應(yīng)用手機客戶端
        傳媒評論(2018年4期)2018-06-27 08:20:24
        孵化垂直頻道:新聞客戶端新策略
        傳媒評論(2018年4期)2018-06-27 08:20:16
        基于Vanconnect的智能家居瘦客戶端的設(shè)計與實現(xiàn)
        電子測試(2018年10期)2018-06-26 05:53:34
        新時期《移動Web服務(wù)端開發(fā)》課程教學(xué)改革的研究
        在Windows Server 2008上創(chuàng)建應(yīng)用
        淺談linux多線程協(xié)作
        客戶端空間數(shù)據(jù)緩存策略
        Linux線程實現(xiàn)技術(shù)研究
        “鴿子”玩升級 黑你沒商量
        国产麻豆剧传媒精品国产av| 国产精品18久久久久久不卡中国| 亚洲av中文无码乱人伦在线咪咕| 偷拍视频这里只有精品| 欧洲成人一区二区三区| 人妻在线日韩免费视频| 久久精品国产亚洲婷婷| 夜色视频在线观看麻豆| 嫩草伊人久久精品少妇av| 性色av无码久久一区二区三区| 久久精品中文字幕极品| 久久最黄性生活又爽又黄特级片| 在线视频国产91自拍| 强行无套内谢大学生初次| 亚洲一区二区三区av链接| 亚洲伊人伊成久久人综合| 红桃av一区二区三区在线无码av| 成人妇女免费播放久久久| 神马不卡一区二区三级| 青青操视频手机在线免费观看| 国产中文三级全黄| 中文字幕精品无码一区二区| 亚洲AV秘 片一区二区三区| 中文字幕在线乱码av| 国产又粗又黄又爽的大片| 1769国产精品短视频| 女同视频网站一区二区| 精品卡一卡二乱码新区| 性色av无码一区二区三区人妻| 精品国产高清a毛片| 蕾丝女同一区二区三区| 国产精品亚洲а∨无码播放不卡| 日韩国产欧美视频| av天堂一区二区三区| 综合亚洲伊人午夜网| 丰满人妻被中出中文字幕| 麻豆国产成人AV网| 亚洲国产精品成人av在线不卡| 毛片a级毛片免费观看| 97精品国产91久久久久久久| 久久久黄色大片免费看|