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

        ?

        一種分布式無(wú)線傳感器節(jié)點(diǎn)監(jiān)控系統(tǒng)設(shè)計(jì)

        2019-02-22 04:59:38孫曉陽(yáng)蘇新彥姚金杰
        關(guān)鍵詞:機(jī)軟件線程調(diào)用

        孫曉陽(yáng),蘇新彥,姚金杰,韓 焱

        (1. 中北大學(xué) 信息與通信工程學(xué)院,山西 太原 030051;2. 中北大學(xué) 信息探測(cè)與處理技術(shù)重點(diǎn)實(shí)驗(yàn)室,山西 太原 030051)

        使用分布式測(cè)試系統(tǒng),通過(guò)在不同位置布設(shè)傳感器,可以得到?jīng)_擊波所造成的傷害隨距離的變化規(guī)律,直觀地反映出地下爆炸目標(biāo)的毀傷情況,為地下毀傷評(píng)估提供數(shù)據(jù)支持[1]. 近些年,研究人員為了對(duì)地下爆炸產(chǎn)生的沖擊波等參數(shù)進(jìn)行測(cè)試,開發(fā)了很多分布式微震監(jiān)測(cè)系統(tǒng),如南非的ISS微震監(jiān)測(cè)系統(tǒng)、波蘭的SOS微震檢測(cè)系統(tǒng)、潘一山等研制的礦震監(jiān)測(cè)系統(tǒng)和煤科總院中國(guó)礦業(yè)大學(xué)設(shè)計(jì)的井下爆破震源實(shí)時(shí)監(jiān)測(cè)與定位系統(tǒng)等[2]. 這些系統(tǒng)的設(shè)計(jì)絕大多數(shù)是針對(duì)深層的地下爆炸沖擊波參數(shù)測(cè)試所設(shè)計(jì)的,針對(duì)大區(qū)域的淺層地下爆炸毀傷效能參數(shù)獲取所進(jìn)行的相關(guān)研究和系統(tǒng)設(shè)計(jì)較少,因此本文設(shè)計(jì)了基于LabWindows/CVI的遠(yuǎn)程無(wú)線傳感器節(jié)點(diǎn)監(jiān)控系統(tǒng).

        在靶場(chǎng)內(nèi)進(jìn)行分布式地下毀傷效能測(cè)試的實(shí)施現(xiàn)場(chǎng)一般具有較大危險(xiǎn)性,不適合工作人員在現(xiàn)場(chǎng)進(jìn)行指揮控制; 同時(shí)使用分布式系統(tǒng)進(jìn)行參數(shù)測(cè)試時(shí)對(duì)傳感器節(jié)點(diǎn)的同步性要求比較嚴(yán)格,因此需要針對(duì)分布式測(cè)試系統(tǒng)開發(fā)遠(yuǎn)程的無(wú)線傳感器節(jié)點(diǎn)監(jiān)測(cè)軟件. 選擇在測(cè)量控制領(lǐng)域常用的軟件LabWindows/CVI,用以保證軟件的靈活性、穩(wěn)定性和界面友好性.

        本文主要在軟件設(shè)計(jì)實(shí)現(xiàn)過(guò)程中提出了基于多線程的多傳感器節(jié)點(diǎn)同時(shí)連接和控制方法; 針對(duì)同時(shí)接收傳感器節(jié)點(diǎn)數(shù)據(jù)的正確性,采用線程安全隊(duì)列機(jī)制,完成了控制協(xié)議設(shè)計(jì),實(shí)現(xiàn)了具有數(shù)據(jù)預(yù)處理功能的LabWindows和MATLAB混合編程技術(shù).

        1 系統(tǒng)總體設(shè)計(jì)

        分布式傳感器節(jié)點(diǎn)監(jiān)控系統(tǒng)由硬件系統(tǒng)和軟件系統(tǒng)組成. 硬件系統(tǒng)主要包括:傳感器節(jié)點(diǎn)、匯聚節(jié)點(diǎn)、無(wú)線設(shè)備和主控站4部分,如圖 1 所示. 本文主要針對(duì)安裝在主控站計(jì)算機(jī)的軟件系統(tǒng)進(jìn)行研究.

        圖 1 分布式節(jié)點(diǎn)布設(shè)示意圖Fig.1 A schematic diagram of distributed nodes

        設(shè)計(jì)軟件按照從頂至下的原則,在軟件的界面交互性和系統(tǒng)開放性兩方面進(jìn)行系統(tǒng)的總體設(shè)計(jì). 借助LabWindows良好的人機(jī)交互性能,在軟件操作過(guò)程中給出必要的操作提示和硬件響應(yīng)信息,使軟件界面更友好; 為了使軟件更加靈活、便于修改,采用模塊化設(shè)計(jì),將不同功能劃分為不同的模塊,各模塊通過(guò)接口相互組合,保證了軟件的可擴(kuò)展性、完整性和易維護(hù)性,組成結(jié)構(gòu)如圖 2 所示.

        圖 2 軟件結(jié)構(gòu)圖Fig.2 Structure of the software

        在軟件操作過(guò)程中,首先進(jìn)行軟件的初始化,包括注冊(cè)TCP服務(wù)器端口和開放UDP連接端口,然后等待連接; 已開啟的傳感器節(jié)點(diǎn)開始連接到上位機(jī)軟件,上位機(jī)軟件每接收到一個(gè)新的傳感器連接請(qǐng)求則開啟一個(gè)新的線程來(lái)實(shí)現(xiàn)64臺(tái)傳感器節(jié)點(diǎn)的同時(shí)連接和同步控制; 等待連接穩(wěn)定后,由上位機(jī)發(fā)送自檢指令給傳感器節(jié)點(diǎn),傳感器節(jié)點(diǎn)自檢正常后發(fā)送上行指令給上位機(jī)軟件,上位機(jī)軟件提示可以進(jìn)行下一步操作,由用戶根據(jù)不同需求對(duì)傳感器節(jié)點(diǎn)進(jìn)行參數(shù)配置、參數(shù)信息顯示和文件信息顯示等操作; 待到數(shù)據(jù)采集完成后開始進(jìn)行遠(yuǎn)程的數(shù)據(jù)回傳操作,通過(guò)與MATLAB混合編程對(duì)數(shù)據(jù)進(jìn)行預(yù)處理,最后將處理后的波形保存并顯示在用戶使用界面. 軟件操作流程如圖 3 所示.

        圖 3 軟件操作流程圖Fig.3 Flow chart of the software

        2 實(shí)現(xiàn)方案

        在基于LabWindows/CVI的無(wú)線傳感器節(jié)點(diǎn)監(jiān)測(cè)軟件的實(shí)現(xiàn)過(guò)程中,主要包括多線程、線程安全隊(duì)列、指令協(xié)議、Matlab混合編程等設(shè)計(jì).

        2.1 控制流程多線程設(shè)計(jì)

        針對(duì)LabWindows/CVI中多線程塊模型相同塊內(nèi)資源共享、執(zhí)行速度快等優(yōu)點(diǎn)[3],軟件中利用LabWindows/CVI提供的線程池實(shí)現(xiàn)多線程的創(chuàng)建主要用于同時(shí)同多個(gè)傳感器節(jié)點(diǎn)保持連接,為了應(yīng)對(duì)分布式測(cè)試組網(wǎng)數(shù)據(jù)發(fā)送的突發(fā)性和同時(shí)性,上位機(jī)軟件選擇每建立一個(gè)TCP連接就創(chuàng)建一個(gè)新的線程來(lái)與對(duì)應(yīng)的傳感器節(jié)點(diǎn)進(jìn)行通信,多線程實(shí)現(xiàn)通信的流程如圖 4 所示.

        圖 4 線程內(nèi)流程圖Fig.4 Flow chart of the in-thread

        上位機(jī)軟件初始化過(guò)程中,打開TCP連接之后,每次收到連接請(qǐng)求(TCP_CONNECT),都會(huì)使用CmtScheduleThreadPoolFunction函數(shù)來(lái)利用默認(rèn)線程池創(chuàng)建一個(gè)新的線程,因?yàn)樾陆ǖ木€程為輔助線程,而輔助線程的函數(shù)和主線程的調(diào)用是同時(shí)執(zhí)行的,因此可以保證主線程能夠一直監(jiān)聽(tīng)TCP連接內(nèi)的事件并及時(shí)做出響應(yīng). 在監(jiān)測(cè)到有數(shù)據(jù)請(qǐng)求的事件(TCP_DATAREADY),即傳感器節(jié)點(diǎn)向上位機(jī)發(fā)送數(shù)據(jù)的事件發(fā)生后,會(huì)使用PostDeferredCallToThread函數(shù)來(lái)調(diào)用指定的線程進(jìn)行數(shù)據(jù)分類接收工作.

        創(chuàng)建的每個(gè)新線程,在線程不釋放的前提下一直運(yùn)行ProcessSystemEvents函數(shù),當(dāng)檢測(cè)到有使用PostDeferredCallToThread函數(shù)調(diào)用指定線程的事件發(fā)生時(shí),會(huì)在發(fā)生調(diào)用事件的線程中調(diào)用指定線程,從而完成多傳感器節(jié)點(diǎn)數(shù)據(jù)同時(shí)回傳的操作.

        如果發(fā)生了傳感器節(jié)點(diǎn)掉線的情況(TCP_DISCONNECT),在主線程中就會(huì)檢測(cè)到TCP連接斷開事件,從而結(jié)束斷開的線程,同時(shí)清除相關(guān)的內(nèi)存. CmtWaitForThreadPoolFunctionCompletion函數(shù)使得主線程等待線程池函數(shù)結(jié)束后再退出,保證輔助線程使用的庫(kù)能夠被正確釋放. 由于新線程的建立是使用CmtScheduleThreadPoolFunction函數(shù),因此在釋放的時(shí)候需要調(diào)用CmtReleaseThreadPoolFunctionID函數(shù),在不影響當(dāng)前正在執(zhí)行的進(jìn)程函數(shù)條件下徹底結(jié)束釋放.

        在本上位機(jī)軟件設(shè)計(jì)過(guò)程中有大量的線程在同時(shí)執(zhí)行,存在同一個(gè)變量同時(shí)被多個(gè)線程同時(shí)訪問(wèn)的情況,因此需要使用線程鎖對(duì)這些變量進(jìn)行保護(hù),防止出現(xiàn)邏輯的錯(cuò)誤[4,5]. 使用線程鎖需要在程序初始化的時(shí)候調(diào)用CmtNewLock函數(shù)來(lái)創(chuàng)建一個(gè)保護(hù)數(shù)據(jù)的線程鎖的集合,利用其返回的句柄調(diào)用指定線程鎖. 訪問(wèn)鎖保護(hù)的數(shù)據(jù)和代碼前,必須調(diào)用CmtGetLock函數(shù)來(lái)獲取線程鎖,訪問(wèn)結(jié)束后,必須調(diào)用CmtReleaseLock函數(shù)來(lái)釋放線程鎖. 需要特別注意的是可以在同一線程中多次調(diào)用CmtGetLock函數(shù),但每次調(diào)用都需要調(diào)用CmtReleaseLock函數(shù)來(lái)結(jié)束調(diào)用. 在程序退出時(shí),也必須調(diào)用CmtDiscardLock函數(shù)來(lái)釋放由CmtNewLock函數(shù)創(chuàng)建的線程鎖資源.

        2.2 控制協(xié)議設(shè)計(jì)

        指令發(fā)送的過(guò)程是:上位機(jī)軟件先將控制指令發(fā)送給匯聚節(jié)點(diǎn),然后由匯聚節(jié)點(diǎn)將指令轉(zhuǎn)發(fā)給指定傳感器節(jié)點(diǎn),匯聚節(jié)點(diǎn)如圖 5 所示. 為了保證上位機(jī)軟件與遠(yuǎn)程傳感器節(jié)點(diǎn)的有效通信,上位機(jī)軟件通過(guò)具體分析傳感器節(jié)點(diǎn)的任務(wù),設(shè)計(jì)了通信雙方的通信控制指令協(xié)議.

        圖 5 匯聚節(jié)點(diǎn)Fig.5 Aggregation nodes

        1) 由上位機(jī)軟件給傳感器節(jié)點(diǎn)發(fā)送控制指令. 根據(jù)傳感器節(jié)點(diǎn)需要,由上位機(jī)軟件發(fā)送控制指令,完成上電、自檢、參數(shù)配置、參數(shù)回傳、文件信息回傳、數(shù)據(jù)采集和數(shù)據(jù)回傳等功能,設(shè)計(jì)下行控制指令數(shù)據(jù)格式如表 1 所示.

        表 1 下行控制指令數(shù)據(jù)格式

        由上位機(jī)軟件發(fā)送給傳感器節(jié)點(diǎn)的指令共 9 B,說(shuō)明如下:

        幀頭:占據(jù)2 B.

        指令對(duì)象:占據(jù)1 B,用于指定指令對(duì)象是匯聚節(jié)點(diǎn)還是分布式傳感器節(jié)點(diǎn). 如果代表匯聚節(jié)點(diǎn),則傳感器節(jié)點(diǎn)選擇、指令類型和二級(jí)操作碼為無(wú)效指令.

        傳感器節(jié)點(diǎn)選擇:占據(jù)1 B,0xff表示發(fā)送給所有的傳感器節(jié)點(diǎn),范圍是0x00~0xff,是傳感器節(jié)點(diǎn)的編號(hào).

        指令類型:占據(jù)1 B,表示需要傳感器節(jié)點(diǎn)返回的是狀態(tài)反饋信息還是數(shù)據(jù)信息.

        操作指令:占據(jù)2 B,表示上位機(jī)軟件發(fā)送給傳感器節(jié)點(diǎn)的動(dòng)作信息.

        二級(jí)操作碼:占據(jù)2 B,表示指令到達(dá)匯聚節(jié)點(diǎn)后不做任何處理,直接將指令轉(zhuǎn)發(fā)給分布式傳感器節(jié)點(diǎn),主要針對(duì)傳感器節(jié)點(diǎn)的三軸信息.

        例如給傳感器節(jié)點(diǎn)發(fā)送開始采集命令,控制指令為:0xeb90,0x02,0xff,0x01,0xa900,0xb120.

        2) 分布式傳感器節(jié)點(diǎn)回傳數(shù)據(jù)格式. 傳感器回傳數(shù)據(jù)到上位機(jī)必須先把數(shù)據(jù)發(fā)送給匯聚節(jié)點(diǎn),然后由匯聚節(jié)點(diǎn)統(tǒng)一將數(shù)據(jù)發(fā)送給上位機(jī)軟件. 分布式傳感器數(shù)據(jù)節(jié)點(diǎn)的數(shù)據(jù)有以下3種:參數(shù)配置信息(包括采樣通道數(shù)、采樣頻率和采樣長(zhǎng)度等,共64 B)、傳感器節(jié)點(diǎn)三軸信息([(HMC5883地磁)X+Y+Z]+[(ADXL345加表)X+Y+Z]+結(jié)束碼0XFE共31 B)和傳感器采集的數(shù)據(jù)(每次配置不同,數(shù)據(jù)量不同). 因此匯聚節(jié)點(diǎn)向上位機(jī)軟件發(fā)送的數(shù)據(jù)有:匯聚節(jié)點(diǎn)工作狀態(tài)(包括各開關(guān)狀態(tài)和命令響應(yīng)情況)、匯聚節(jié)點(diǎn)信息(參數(shù)信息和文件信息等)以及轉(zhuǎn)發(fā)傳感器節(jié)點(diǎn)數(shù)據(jù)(傳感器節(jié)點(diǎn)姿態(tài)信息和采集的數(shù)據(jù)等).

        可以將以上數(shù)據(jù)分為兩類:信息量大的沖擊波信號(hào)模塊和信息量小的沖擊波信號(hào)模塊以外的其他模塊.

        讀沖擊波信號(hào)模塊時(shí)的數(shù)據(jù)格式如表 2 所示.

        表 2 沖擊波信號(hào)模塊數(shù)據(jù)格式

        由于匯聚節(jié)點(diǎn)控制模塊所選用ARM芯片的限制,匯聚節(jié)點(diǎn)每次最多能夠向上位機(jī)發(fā)送 2 014 B 的數(shù)據(jù). 但是由于在實(shí)際試驗(yàn)中,匯聚節(jié)點(diǎn)的數(shù)量較多,網(wǎng)絡(luò)帶寬有限,為了保證不發(fā)生網(wǎng)絡(luò)擁塞[6]而造成數(shù)據(jù)丟失,沖擊波信號(hào)模塊每次發(fā)送515 B數(shù)據(jù).

        匯聚節(jié)點(diǎn)號(hào)用于標(biāo)記沖擊波數(shù)據(jù)來(lái)源于眾多匯聚節(jié)點(diǎn)中的哪個(gè)匯聚節(jié)點(diǎn); 因?yàn)閿?shù)據(jù)量大,無(wú)法一次將所有的數(shù)據(jù)發(fā)送給上位機(jī),在分次數(shù)發(fā)送的過(guò)程中為了保證上位機(jī)能夠按照順序存儲(chǔ)數(shù)據(jù),需要對(duì)數(shù)據(jù)幀進(jìn)行順序的標(biāo)定,由數(shù)據(jù)幀號(hào)完成; 最后沖擊波模塊的有效數(shù)據(jù)放在末尾發(fā)送.

        2.3 MATLAB混合編程設(shè)計(jì)

        在小區(qū)域的地下震動(dòng)波傳播過(guò)程中,由于傳輸介質(zhì)自身的復(fù)雜性、不均勻性,震動(dòng)波的反射和折射等影響[7],使得震動(dòng)信號(hào)中有用信號(hào)的能量較弱; 傳感器節(jié)點(diǎn)的不穩(wěn)定性使得信號(hào)的信噪比較低. 諸如上述因素的影響,使得震源定位精度降低. 因此,為了保證準(zhǔn)確定位,需要對(duì)采集的數(shù)據(jù)進(jìn)行濾波降噪、有效數(shù)據(jù)提取等操作.

        基于MATLAB成本較低、計(jì)算靈活、使用方便,且比起Active X技術(shù)等,動(dòng)態(tài)鏈接庫(kù)只需要在目標(biāo)主機(jī)安裝運(yùn)行庫(kù)就能使用等優(yōu)點(diǎn),本文采用基于動(dòng)態(tài)鏈接庫(kù)調(diào)用的LabWIndows/CVI同MATLAB混合編程方法[8-10].

        MATLAB版本的選用:上位機(jī)軟件開發(fā)所使用的LabWIndows/CVI版本為32 b 2017版,因此選用的MATLAB為32 b 2012版.

        在MATLAB中生成動(dòng)態(tài)鏈接庫(kù),選擇好要進(jìn)行編譯的m腳本文件,然后選擇編譯器,此處選擇Microsoft Visual C++ 2010 編譯器,通過(guò)設(shè)置.mcc命令的選項(xiàng),最終除了會(huì)生成C/C++源代碼、.exe可執(zhí)行文件和mex文件之外還會(huì)生成必須添加到LabWIndows/CVI工程文件中的.lib文件和.dll文件[11].

        在使用LabWindows/CVI調(diào)用MATLAB動(dòng)態(tài)鏈接庫(kù)時(shí),首先將.lib文件、.dll文件和.h文件添加到工程文件內(nèi),除此之外,還需要將MATLAB庫(kù)函數(shù)中的mat.h, matrix.h, mclcr.h, tmwtypes.h, wchar.h和win.等文件同時(shí)添加到工程文件內(nèi)進(jìn)行調(diào)用,需要注意的是在MATLAB中用到的函數(shù)不同,需要添加的函數(shù)庫(kù)也有所不同.

        LabWindows/CVI已ANSIC C為核心,以C語(yǔ)言為基礎(chǔ)編程,同MATLAB所使用的數(shù)據(jù)格式不相同,因此最需要注意的是在LabWindows/CVI同MATLAB之間傳遞數(shù)據(jù)的操作,這里可以使用C語(yǔ)言定義的參量傳遞定義,主要函數(shù)使用如表 3 所示.

        表 3 數(shù)據(jù)傳遞函數(shù)

        以上函數(shù)基本可以完成上位機(jī)軟件的數(shù)據(jù)傳遞操作,對(duì)于最終要傳遞到MATLAB中的數(shù)據(jù),數(shù)據(jù)類型一般定義為mxArray *,同時(shí),為了保證能夠?qū)崿F(xiàn)有效傳遞,一般都會(huì)使用void *memcpy(void *dest, const void *src, size_t n)函數(shù)通過(guò)內(nèi)存復(fù)制的方式進(jìn)行賦值. 在成功調(diào)用MATLAB動(dòng)態(tài)鏈接庫(kù)后,可以使用mxGetPr函數(shù),通過(guò)指針讀取最終的處理結(jié)果.

        3 軟件測(cè)試

        實(shí)驗(yàn)進(jìn)行場(chǎng)所位于靶場(chǎng)內(nèi)80 m×60 m的空曠地區(qū),上位機(jī)控制軟件位于距離實(shí)驗(yàn)場(chǎng)3 km遠(yuǎn)的實(shí)驗(yàn)總部,傳感器節(jié)點(diǎn)布設(shè)現(xiàn)場(chǎng)如圖 6 所示.

        實(shí)驗(yàn)?zāi)軌蛲瑫r(shí)對(duì)16個(gè)匯聚節(jié)點(diǎn)進(jìn)行控制,從而實(shí)現(xiàn)對(duì)64個(gè)傳感器節(jié)點(diǎn)的控制和數(shù)據(jù)收發(fā). 在實(shí)驗(yàn)過(guò)程中,匯聚節(jié)點(diǎn)和傳感器節(jié)點(diǎn)沒(méi)有發(fā)生誤操作的現(xiàn)象. 圖 7 為傳感器節(jié)點(diǎn)姿態(tài)信息回傳的結(jié)果.

        圖 6 試驗(yàn)現(xiàn)場(chǎng)Fig.6 The test site

        圖 7 控制部分結(jié)果圖Fig.7 The result of control part

        回傳的數(shù)據(jù)可以通過(guò)上位機(jī)軟件先進(jìn)行預(yù)處理,處理結(jié)果有效實(shí)現(xiàn)去噪,波形較為平滑,如圖 8 所示.

        圖 8 回傳數(shù)據(jù)處理結(jié)果Fig.8 Return data processing results

        通過(guò)對(duì)同一節(jié)點(diǎn)的同一段數(shù)據(jù)進(jìn)行比較,如圖 9 所示,經(jīng)過(guò)預(yù)處理的波形比較平滑,能夠有效用于地下毀傷效能測(cè)試的評(píng)估中.

        圖 9 處理前后數(shù)據(jù)比較Fig.9 Data comparison before and after processing

        4 結(jié) 論

        本文設(shè)計(jì)的基于LabWIndows/CVI無(wú)線傳感器節(jié)點(diǎn)監(jiān)控系統(tǒng),使用多線程技術(shù)實(shí)現(xiàn)了對(duì)傳感器節(jié)點(diǎn)的同步控制,軟件的數(shù)據(jù)傳輸和存儲(chǔ)能夠滿足要求; 通過(guò)對(duì)指令數(shù)據(jù)收發(fā)協(xié)議進(jìn)行設(shè)計(jì),實(shí)現(xiàn)了對(duì)匯聚節(jié)點(diǎn)的有效控制,完成了傳感器節(jié)點(diǎn)的數(shù)據(jù)收發(fā)操作; 通過(guò)對(duì)MATLAB動(dòng)態(tài)鏈接庫(kù)的調(diào)用,實(shí)現(xiàn)了脫離MATLAB龐大的運(yùn)行環(huán)境與MATLAB的混合編程. 同時(shí)上位機(jī)軟件基于模塊化設(shè)計(jì),結(jié)合開發(fā)平臺(tái)的開放性和兼容性,使得本軟件具有可擴(kuò)展性和二次開發(fā)性. 本系統(tǒng)可廣泛應(yīng)用于靶場(chǎng)測(cè)試、震動(dòng)監(jiān)測(cè)等分布式傳感器網(wǎng)絡(luò)監(jiān)測(cè)領(lǐng)域.

        猜你喜歡
        機(jī)軟件線程調(diào)用
        核電項(xiàng)目物項(xiàng)調(diào)用管理的應(yīng)用研究
        LabWindows/CVI下基于ActiveX技術(shù)的Excel調(diào)用
        淺談linux多線程協(xié)作
        基于系統(tǒng)調(diào)用的惡意軟件檢測(cè)技術(shù)研究
        道岔監(jiān)測(cè)系統(tǒng)上位機(jī)軟件設(shè)計(jì)
        基于正交試驗(yàn)法的北斗用戶機(jī)軟件測(cè)試用例設(shè)計(jì)
        PCI-e高速數(shù)據(jù)采集卡的驅(qū)動(dòng)與上位機(jī)軟件設(shè)計(jì)
        電子器件(2015年5期)2015-12-29 08:43:12
        圖形化儀表控制系統(tǒng)上位機(jī)軟件的設(shè)計(jì)與開發(fā)
        利用RFC技術(shù)實(shí)現(xiàn)SAP系統(tǒng)接口通信
        Linux線程實(shí)現(xiàn)技術(shù)研究
        久久久99精品成人片中文字幕| 在线亚洲高清揄拍自拍一品区 | 欧美黑人xxxx又粗又长| 波多野结衣有码| 无码一区久久久久久久绯色AV| 40分钟永久免费又黄又粗| 情av一区二区三区在线观看| 丰满少妇人妻久久久久久| 亚洲国产成人va在线观看天堂 | 色综合中文字幕综合网| 日本二区在线视频观看| 18精品久久久无码午夜福利| 日本做受高潮好舒服视频| 久久综合亚洲色社区| 视频一区视频二区亚洲| 国产免费又色又爽粗视频| 午夜三级a三级三点| 人妻少妇无码中文幕久久| 亚洲成人av在线播放不卡| 少妇一级淫片中文字幕| 日韩一卡2卡3卡4卡新区亚洲| 在线a亚洲视频播放在线观看| 免费看黄在线永久观看| 18禁裸体动漫美女无遮挡网站 | av无码久久久久久不卡网站| 久久精品国产亚洲Av无码偷窍| 亚洲二区精品婷婷久久精品| 日日麻批免费40分钟无码| 色婷婷综合中文久久一本 | 蜜桃视频成年人在线观看| 午夜无码一区二区三区在线观看| 日产精品久久久久久久性色| 99福利影院| 全亚洲高清视频在线观看| 蜜桃久久精品成人无码av| 男人的天堂在线无码视频| 伊人影院成人在线观看| 国产午夜精品av一区二区麻豆| 日本黄页网站免费大全| 亚洲精品日本久久久中文字幕| 日本加勒比精品一区二区视频|