摘 要:針對(duì)煤礦系統(tǒng)的通信現(xiàn)狀,提出利用無(wú)線通信Wi-Fi技術(shù)構(gòu)建井下無(wú)線網(wǎng)絡(luò)的方案,通過(guò)對(duì)井下無(wú)線通信的試驗(yàn)研究,表明利用Wi-Fi技術(shù)的可行性,并在此基礎(chǔ)上設(shè)計(jì)并實(shí)現(xiàn)了基于Wi-Fi技術(shù)的嵌入式礦井安全監(jiān)測(cè)終端。該系統(tǒng)工作效率高、實(shí)時(shí)性強(qiáng)、結(jié)構(gòu)清晰,各組成部分達(dá)到了預(yù)期的目標(biāo),實(shí)現(xiàn)對(duì)井下視頻數(shù)據(jù)的傳送和各個(gè)站點(diǎn)的參數(shù)檢查。試驗(yàn)證明該方案切實(shí)可行并具有良好的市場(chǎng)前景。
關(guān)鍵詞:礦井安全監(jiān)測(cè);無(wú)線通信;Wi-Fi;嵌入式
中圖分類號(hào):TN915 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1004-373X(2010)03-109-05
Embedded Coal Mine Safety Monitoring Terminal Based on Wi-Fi Technology
DENG Xingsong1,ZHU Changping1,2,HAN Qingbang1,SHAN Minglei1,CAI Zhiwei3,WANG Zhen4,CHEN Jiacai5
(1.College of Computer and Information Engineering,Hohai University,Changzhou,213022,China;
2.College of Information and Electrical Engineering,China University of Mining and Technology,Xuzhou,221008,China;
3.College of Mechanical and Electrical Engineering,Hohai University,Changzhou,213022,China;
4.Changzhou Sanheng Technologies Co.Ltd.,Changzhou,213022,China;5.Changzhou Coal Research Institute,Changzhou,213022,China)
Abstract:According to the status of coal mine underground wireless communication,to set up the scheme of the underground wireless network,the feasibility of using Wi-Fi technology through trial study of the underground wireless communication is demonstrated.On the basis of this,the embedded mine safty monitoring terminal based on Wi-Fi technology is designed and implemented,the system possesses efficiency,strong real-time property and clear structure,all of the components have achieved the expected goals,realizing to transmit the video data and check all the parameters of the underground site.The test proves the scheme is feasible and shows good market prospect.
Keywords:coal mine safety monitoring;wireless communication;Wi-Fi;embedded
近年來(lái),我國(guó)煤礦事故時(shí)有發(fā)生,井下安全生產(chǎn)狀況令人擔(dān)憂,特別是瓦斯、水害重特大事故居高不下,普遍存在的問(wèn)題是煤礦井上管理人員不能及時(shí)與井下人員通信以了解井下人員的位置及作業(yè)情況。因此如何快速、準(zhǔn)確地進(jìn)行煤礦安全生產(chǎn)監(jiān)測(cè),實(shí)現(xiàn)產(chǎn)業(yè)管理的科學(xué)化、信息化成為亟待攻克的關(guān)鍵問(wèn)題。隨著通信技術(shù)的發(fā)展以及無(wú)線網(wǎng)絡(luò)技術(shù)的成熟運(yùn)用,應(yīng)對(duì)國(guó)家對(duì)煤炭產(chǎn)業(yè)安全化、信息化的要求,無(wú)線通信技術(shù)開始在礦井中得到運(yùn)用[1]。
1 井下無(wú)線通信技術(shù)
將Wi-Fi技術(shù)運(yùn)用在礦井視為無(wú)線通信技術(shù)的重大突破,Wi-Fi能夠滿足構(gòu)建井下網(wǎng)絡(luò)的帶寬需要。Wi-Fi技術(shù)在地面的短距離無(wú)線通信中已有多年的應(yīng)用,相對(duì)其他無(wú)線寬帶技術(shù)來(lái)說(shuō)比較成熟可靠。目前Wi-Fi主要采用成熟的IEEE 802.11b標(biāo)準(zhǔn),使用24 GHz直接序列擴(kuò)頻(DSSS)技術(shù)。
基于Wi-Fi的井下通信受到很多方面的制約,比如電磁波衰落,噪聲以及多徑效應(yīng)的影響等,這些不利因素使得礦井成為了一個(gè)復(fù)雜、多變、特殊的信號(hào)傳播區(qū)域,因此井下環(huán)境對(duì)于無(wú)線通信的魯棒性來(lái)說(shuō)是一個(gè)重大挑戰(zhàn)[2]。但利用Wi-Fi技術(shù),可以將成熟的地面短距離無(wú)線通信運(yùn)用到井下實(shí)現(xiàn)其價(jià)值增值,對(duì)比傳統(tǒng)的無(wú)線通信技術(shù),采用Wi-Fi技術(shù)價(jià)格相對(duì)低廉,更能滿足井下的低功耗設(shè)計(jì)需要和安全要求。
本文通過(guò)分析井下無(wú)線網(wǎng)絡(luò)信號(hào)強(qiáng)度,信號(hào)質(zhì)量以及天線方向?qū)o(wú)線網(wǎng)絡(luò)的影響,研究并開發(fā)了基于Wi-Fi技術(shù)的井下無(wú)線網(wǎng)絡(luò)安全監(jiān)測(cè)終端,實(shí)現(xiàn)了視頻數(shù)據(jù)和站點(diǎn)重要數(shù)據(jù)信息的無(wú)線傳輸,為礦井安全生產(chǎn)提供了重要的保障。
2 系統(tǒng)測(cè)試原理
2.1 系統(tǒng)組成
如圖1所示,監(jiān)控系統(tǒng)主要由底層信息采集單元、終端、井下無(wú)線局域網(wǎng)和地面監(jiān)控中心四部分組成。最底層信號(hào)采集單元,負(fù)責(zé)采集監(jiān)測(cè)點(diǎn)的瓦斯?jié)舛取⒀鯕鉂舛群蜐駵囟鹊葦?shù)據(jù),并完成與井下控制終端的通信,將所檢測(cè)到的數(shù)據(jù)通過(guò)RS 485總線發(fā)送到現(xiàn)場(chǎng)終端控制單元。井下控制終端,是整個(gè)系統(tǒng)的核心控制部分,它的主要功能如下:一是將底層信號(hào)采集單元上傳的數(shù)據(jù)通過(guò)網(wǎng)絡(luò)服務(wù)的形式進(jìn)行實(shí)時(shí)發(fā)布,發(fā)布的信息可以被第三層的客戶端主機(jī)接收;二是根據(jù)現(xiàn)場(chǎng)所安裝的底層信號(hào)采集單元的數(shù)目,設(shè)置檢測(cè)點(diǎn)的工作方式,如檢測(cè)點(diǎn)的檢測(cè)時(shí)間間隔、數(shù)據(jù)異常的報(bào)警限設(shè)置、底層信號(hào)采集單元數(shù)目設(shè)置等,終端主要采用嵌入式技術(shù),各終端通過(guò)Wi-Fi無(wú)線局域網(wǎng)互聯(lián)、互通,信息共享。井下無(wú)線局域網(wǎng)通過(guò)無(wú)線接入點(diǎn)AP采用2.4 GHz支持的802.11a/b/g模式,及時(shí)采集臨近終端的信息,傳輸?shù)降孛娴谋O(jiān)控中心,對(duì)井下Wi-Fi設(shè)備進(jìn)行控制管理。WLAN有兩種工作模式:Ad Hoc和Infrastructure模式[3],系統(tǒng)采用Infrastructure模式,每一個(gè)客戶將其通信報(bào)文發(fā)向AP,AP轉(zhuǎn)發(fā)所有的通信報(bào)文,這些報(bào)文發(fā)往整個(gè)無(wú)線網(wǎng)絡(luò)。無(wú)線訪問(wèn)節(jié)點(diǎn)負(fù)責(zé)頻段管理及漫游等功能。地面的監(jiān)控管理中心主要工作就是接收終端發(fā)送的數(shù)據(jù),并對(duì)數(shù)據(jù)進(jìn)行處理,建立數(shù)據(jù)庫(kù),以備統(tǒng)計(jì)和查驗(yàn)等。遠(yuǎn)程監(jiān)控終端為普通的PC機(jī),用戶在客戶端主機(jī)上通過(guò)Web瀏覽器遠(yuǎn)程訪問(wèn)嵌入式Web服務(wù)器的主頁(yè),對(duì)瓦斯?jié)舛鹊葦?shù)據(jù)進(jìn)行實(shí)時(shí)監(jiān)測(cè)。
圖1 系統(tǒng)總體設(shè)計(jì)圖
2.2 井下無(wú)線局域網(wǎng)系統(tǒng)測(cè)試
系統(tǒng)試驗(yàn)平臺(tái):Fedora 6(內(nèi)核Linux-2.6.18)操作系統(tǒng),無(wú)線接入點(diǎn)AP(TP LINK),無(wú)線USB網(wǎng)卡VT6656,需要考慮的因素:空直巷道下菲涅爾帶的影響;井下周圍設(shè)備反射對(duì)于收到的信號(hào)強(qiáng)度的影響;多徑效應(yīng)的影響。
基于以上的因素,為了模擬礦井的環(huán)境,將試驗(yàn)環(huán)境設(shè)置在地下,如圖2所示,試驗(yàn)的區(qū)域長(zhǎng)度為50 m,高度為45 m,三個(gè)AP均勻分布,由于井下包含了各種金屬設(shè)備,為有效地仿真這些金屬設(shè)備,將一塊長(zhǎng)度為5 m的金屬板放在據(jù)頂部土墻1 m處,區(qū)域的底部設(shè)置為平滑的墻面,頂部設(shè)置為表面不光滑的墻面,以盡可能模擬井下環(huán)境,將配置了無(wú)線USB網(wǎng)卡的筆記本用來(lái)作為測(cè)試信號(hào)強(qiáng)度RSSI的終端設(shè)備,每隔5 m測(cè)試信號(hào)強(qiáng)度RSSI的變化[4]。
圖2 無(wú)線測(cè)試結(jié)構(gòu)圖
測(cè)量時(shí),固定傳輸速率為54 Mb/s,AP功率為7.2 W,頻段為6,從每個(gè)無(wú)線接入點(diǎn)AP獲得的信號(hào)強(qiáng)度如圖3所示,信號(hào)的強(qiáng)度與終端移動(dòng)的距離成反比,試驗(yàn)的目的還在于利用天線分集技術(shù)測(cè)試多徑抑制性能,以保證在一定程度上無(wú)線網(wǎng)絡(luò)在礦井中的傳輸質(zhì)量,通過(guò)試驗(yàn)最突出的一個(gè)方面就是在隧道的最后15 m處從AP3處接收到的信號(hào)強(qiáng)度有明顯的增強(qiáng)。
圖3 終端與RSSI之間的關(guān)系
模擬井下巷道,盡管存在波導(dǎo)效應(yīng)對(duì)電波傳播的影響及巷道截面(包括形狀尺寸)、拐彎、傾斜、風(fēng)門等影響,但在系統(tǒng)模型建立過(guò)程中,將會(huì)反映在nA,nB,n參數(shù)擬合值的不同,因此選擇的測(cè)試環(huán)境能夠代表實(shí)際的環(huán)境電磁波在巷道傳播路徑上有一個(gè)突變點(diǎn)將路徑分成兩個(gè)本質(zhì)截然不同的區(qū)域,有不同的路徑損耗指數(shù),路徑傳播損耗的具體公式為:
Lf(d1)=Lf(d0)+10nAlg(d1)-10nBlg(df)+n
(1)
式中:d0=1 m為參考點(diǎn)距離;Lf(d0)約為40 dB;d1為終端距離突變點(diǎn)的距離;df為突變點(diǎn)距離AP的距離;nA和nB分別為突變點(diǎn)前后區(qū)域內(nèi)的路徑損耗指數(shù)。如圖4為擬合后終端到AP的距離以及與信號(hào)強(qiáng)度的關(guān)系。
圖4 擬合后終端與RSSI之間的關(guān)系
為了測(cè)試有效的信號(hào)質(zhì)量指標(biāo),在有線網(wǎng)絡(luò)和無(wú)線之間建立了一個(gè)高帶寬的數(shù)據(jù)流,測(cè)試到的信號(hào)質(zhì)量對(duì)建立井下無(wú)線通信有著非常重要的參考價(jià)值,如圖5所示,盡管隨著終端到距離的增加,信號(hào)強(qiáng)度逐漸減弱,但是信號(hào)質(zhì)量卻在部分區(qū)域相對(duì)增加,這是由于周圍金屬物所引起的多徑效應(yīng)造成了碼間干擾,從而減弱了終端到AP的連接性能。
圖5 終端與信號(hào)質(zhì)量的關(guān)系
不同于地面自由空間的無(wú)線Wi-Fi,煤礦井下天線方向的變化對(duì)信號(hào)強(qiáng)度同樣存在影響,如圖6所示,這是因?yàn)樵诘V井環(huán)境下大量金屬存在物的反射從而導(dǎo)致了多徑效應(yīng)和信號(hào)衰落,接收到的信號(hào)強(qiáng)度的這種變化在很大程度上限制了井下無(wú)線Wi-Fi信號(hào)的準(zhǔn)確度。因此對(duì)于井下無(wú)線Wi-Fi來(lái)說(shuō),用多天線代替單天線以及如何提高傳輸?shù)臏?zhǔn)確度將是井下無(wú)線網(wǎng)絡(luò)研究的重點(diǎn)。
圖6 天線方向?qū)π盘?hào)強(qiáng)度的影響
2.3 系統(tǒng)測(cè)試結(jié)論
通過(guò)試驗(yàn)驗(yàn)證了基于井下無(wú)線通信Wi-Fi技術(shù)的試驗(yàn)效果,為井下無(wú)線終端的設(shè)計(jì)提供了試驗(yàn)依據(jù),分別對(duì)信號(hào)強(qiáng)度、信號(hào)質(zhì)量以及天線的方向等情況做了若干試驗(yàn),分析了多徑效應(yīng),噪聲以及信號(hào)衰減對(duì)井下無(wú)線網(wǎng)絡(luò)造成的影響,根據(jù)無(wú)線電磁波在煤礦井下傳輸?shù)倪@些特性以及在工程中實(shí)際的情況,對(duì)井下無(wú)線AP的部署策略如下[5]:
(1) 在必須部署無(wú)線AP的地區(qū)首先部署,剩余地區(qū)再根據(jù)AP的覆蓋范圍進(jìn)行部署。
(2) 在井下巷道中衰減較快的地方,縮減AP與終端之間的距離,在井下長(zhǎng)直型巷道中,適當(dāng)少部署AP。
(3) 彎曲度較大的巷道,優(yōu)先在彎曲處部署AP。
3 井下Wi-Fi終端
3.1 終端設(shè)計(jì)
井下監(jiān)控終端是整個(gè)系統(tǒng)的管理調(diào)度者,負(fù)責(zé)管理底層信號(hào)采集單元,并實(shí)時(shí)地向上層的遠(yuǎn)程控制終端發(fā)布數(shù)據(jù),是整個(gè)系統(tǒng)的樞紐,因此其設(shè)計(jì)對(duì)于整個(gè)系統(tǒng)的性能有舉足輕重的作用。井下監(jiān)控終端主要包含三個(gè)功能:通信功能,主要包括與底層信號(hào)采集單元和遠(yuǎn)程監(jiān)控終端的通信,獲取現(xiàn)場(chǎng)檢測(cè)數(shù)據(jù),通過(guò)網(wǎng)絡(luò)實(shí)時(shí)地向遠(yuǎn)程監(jiān)控終端發(fā)布數(shù)據(jù);實(shí)現(xiàn)友好的人機(jī)交互界面以及簡(jiǎn)潔的用戶輸入方式;作為調(diào)試和下載接口。
根據(jù)以上功能要求,主要硬件系統(tǒng)如圖7所示。軟件系統(tǒng)主要由嵌入式Linux操作系統(tǒng),yaffs文件系統(tǒng),驅(qū)動(dòng)程序,Qt/Qtopia圖形用戶界面,嵌入式SQLite數(shù)據(jù)庫(kù)等組成,其中嵌入式操作系統(tǒng),驅(qū)動(dòng)程序,文件系統(tǒng)是構(gòu)成嵌入式系統(tǒng)的支撐部分;Qt/Qtopia圖形用戶界面為用戶提供了友好的人機(jī)界面,便于操作;嵌入式SQLite數(shù)據(jù)庫(kù)為終端提供信息支持。
圖7 終端硬件結(jié)構(gòu)框圖
3.2 GUI模塊設(shè)計(jì)
嵌入式礦井安全監(jiān)控系統(tǒng)的應(yīng)用軟件是根據(jù)設(shè)計(jì)需求,通過(guò)Linux內(nèi)核的系統(tǒng)調(diào)用各功能模塊完成監(jiān)控系統(tǒng)的各項(xiàng)軟件功能。監(jiān)控系統(tǒng)利用人性化的圖形操作界面,簡(jiǎn)化了設(shè)備的操作;應(yīng)用軟件的各功能模塊采用多線程設(shè)計(jì),提高了系統(tǒng)的運(yùn)行性能;系統(tǒng)的數(shù)據(jù)信息主要包括配置參數(shù),底層系統(tǒng)的數(shù)據(jù)采集和用戶信息,設(shè)計(jì)中采用SQLite數(shù)據(jù)庫(kù)系統(tǒng)對(duì)有關(guān)信息進(jìn)行管理。
根據(jù)設(shè)計(jì)需要,本文目的是利用Qt/Qtopia圖形用戶界面[6](GUI)實(shí)現(xiàn)一個(gè)具有圖形接口界面的顯示終端。用戶可以通過(guò)GUI與系統(tǒng)進(jìn)行交互,實(shí)現(xiàn)利用終端對(duì)信息進(jìn)行采集,并且結(jié)合嵌入式SQLite數(shù)據(jù)庫(kù)[7]對(duì)站點(diǎn)的信息提供數(shù)據(jù)庫(kù)的瀏覽、檢索、插入、修改、刪除等功能,并可以通過(guò)選擇時(shí)間對(duì)歷史數(shù)據(jù)進(jìn)行查詢。
系統(tǒng)啟動(dòng)后要首先進(jìn)入登陸界面,提示輸入用戶名和密碼。若用戶名和密碼與數(shù)據(jù)庫(kù)中的信息吻合則可以允許進(jìn)入本系統(tǒng)主操作界面。主操作界面分為四個(gè)部分:系統(tǒng)操作、實(shí)時(shí)數(shù)據(jù)查詢、用戶管理、歷史數(shù)據(jù)查詢。本文主要描述系統(tǒng)操作界面的實(shí)現(xiàn)。
3.2.1 基于Qt技術(shù)的串口通信程序設(shè)計(jì)實(shí)現(xiàn)
系統(tǒng)操作界面是監(jiān)控終端的核心,主要是通過(guò)Qt實(shí)現(xiàn)比較復(fù)雜的RS 485通信協(xié)議、網(wǎng)絡(luò)文件傳輸、視頻信息的傳送以及判斷報(bào)警的條件,并在符合這個(gè)條件時(shí)輸出控制信號(hào),啟動(dòng)報(bào)警響應(yīng)機(jī)制。
S3C2440A中含有采用RS 485標(biāo)準(zhǔn)進(jìn)行通信的串口0、采用RS 232標(biāo)準(zhǔn)通信的串口1,在Linux的/dev目錄下分別用s3c2410_serial0和s3c2410_serial1表示,終端通過(guò)串口0與底層傳感器控制單元進(jìn)行一對(duì)多的多機(jī)通信。
Linux系統(tǒng)內(nèi)核自帶的串口驅(qū)動(dòng)程序包含了與串口的打開、輸入和輸出操作有關(guān)的功能。因此應(yīng)用層程序?qū)Υ诘牟僮骷词菍?duì)設(shè)備文件s3c2410_serial0和s3c2410_serial1進(jìn)行操作,其編程就是調(diào)用相應(yīng)的open(),write(),read()等函數(shù)。在Linux下的串口編程流程如圖8所示。
圖8 串口編程流程圖
3.2.2 串口數(shù)據(jù)采集實(shí)現(xiàn)通信流程
在串口配置完成后,應(yīng)當(dāng)制定合理的通信協(xié)議來(lái)完成終端與底層傳感器單元之間的數(shù)據(jù)交換。其具體流程如下:終端在RS 485總線上發(fā)送地址標(biāo)識(shí)廣播消息給底層傳感器控制單元,請(qǐng)求底層單元發(fā)送現(xiàn)場(chǎng)信息數(shù)據(jù);每個(gè)底層傳感器控制單元都包含有惟一的地址標(biāo)識(shí)符,標(biāo)識(shí)號(hào)從0開始,每個(gè)控制單元的標(biāo)識(shí)號(hào)依次加1。底層單元收到廣播信息后與自身的地址標(biāo)識(shí)對(duì)照,當(dāng)確定自身為被叫用戶時(shí),底層傳感器控制單元響應(yīng)終端的數(shù)據(jù)請(qǐng)求,將當(dāng)前檢測(cè)到的現(xiàn)場(chǎng)信息通過(guò)RS 485總線發(fā)送給終端。
傳輸?shù)臄?shù)據(jù)幀格式要根據(jù)系統(tǒng)的實(shí)際情況來(lái)確定。在本系統(tǒng)中包含了6個(gè)底層傳感器單元,而且在實(shí)際應(yīng)用中底層傳感器單元的數(shù)目不會(huì)超過(guò)256個(gè),故使用一個(gè)字節(jié)的數(shù)據(jù)就能夠表示終端所發(fā)送的地址標(biāo)識(shí)號(hào)。
底層傳感器單元需要向終端發(fā)送包括本機(jī)地址標(biāo)識(shí)號(hào)、瓦斯?jié)舛取⒀鯕鉂舛群同F(xiàn)場(chǎng)溫濕度等。為保證數(shù)據(jù)傳輸?shù)恼_性,在此還傳輸了校驗(yàn)碼數(shù)據(jù),該數(shù)據(jù)為前面所有發(fā)送字節(jié)的異或。底層傳感器單元共向終端發(fā)送9個(gè)字節(jié)的單元信息,其幀格式如表1所示。
表1 串行通信數(shù)據(jù)幀格式
字節(jié)號(hào)012345678
字節(jié)信息地址信息瓦斯?jié)舛萇2濃度CO濃度水位風(fēng)速溫度信息濕度信息校驗(yàn)碼
為了確保通信過(guò)程的正確性,在程序設(shè)計(jì)中加入了通信超時(shí)檢驗(yàn)、接收數(shù)據(jù)長(zhǎng)度檢查和多次發(fā)送的機(jī)制。當(dāng)終端向底層傳感器控制單元發(fā)送的通信請(qǐng)求在一定時(shí)間內(nèi)沒(méi)有得到響應(yīng),則再次發(fā)送數(shù)據(jù)請(qǐng)求,如果連續(xù)三次請(qǐng)求都不成功則轉(zhuǎn)向?qū)ο乱粋€(gè)底層傳感器控制單元發(fā)出請(qǐng)求,并標(biāo)識(shí)出發(fā)生故障的底層傳感器。
在應(yīng)用程序中,檢測(cè)時(shí)間的間隔可選,在此設(shè)置為每隔3 min集中控制單元要向各個(gè)底層控制單元發(fā)送數(shù)據(jù)請(qǐng)求消息,獲得現(xiàn)場(chǎng)環(huán)境數(shù)據(jù)后,更新系統(tǒng)當(dāng)前數(shù)據(jù),對(duì)串口讀寫的程序流程圖如圖9所示。以上過(guò)程在主程序中通過(guò)Qt定時(shí)器循環(huán)實(shí)現(xiàn)。部分程序如下:
OS_operatorGui::OS_operatorGui(QWidget*parent,const char* name,WFlags fl):
QWidget(parent,name,fl ),judgethread(this),netthread(this)
{ ……
if((fd=MySerial::open_port(fd,2))<0)
{//打開串口錯(cuò)誤}
else Txt_State->insertLine(″Open port success″,-1);
if((MySerial::set_opt(fd,115200,8,′N′,1))<0)
{//設(shè)置串口錯(cuò)誤}
else Txt_State->insertLine(″Set port success″,-1);
……
QTimer *mytime=new QTimer(this);
connect( mytime,SIGNAL(timeout()),this,SLOT(receive_slot()));
mytime->start( 180000,1);
……
}
void OS_operatorGui::receive_slot()//定時(shí)時(shí)間到采集數(shù)據(jù)
{ //串口數(shù)據(jù)采集}
3.2.3 用戶自定義事件在系統(tǒng)操作界面中的應(yīng)用
當(dāng)一個(gè)Qt應(yīng)用程序開始執(zhí)行時(shí),只有一個(gè)線程正在運(yùn)行初始線程。因?yàn)檫@個(gè)原因,把這個(gè)線程作為圖形用戶界面線程,圖形用戶界面線程通過(guò)創(chuàng)建QThread子類的對(duì)象開始新的線程,如果新線程之間要進(jìn)行通信,可以使用互斥量、信號(hào)或者等待條件和共享變量方式通訊。但是這些技術(shù)不能用來(lái)和圖形用戶界面線程進(jìn)行通訊,因?yàn)樗麄儠?huì)鎖住事件循環(huán)并且凍結(jié)用戶界面。非圖形用戶界面和圖形用戶界面線程之間的通訊只能采用投遞自定義的方式。Qt的事件機(jī)制允許在內(nèi)置事件類型之外定義自定義事件類型,并且允許使用QApplication::postEvent()來(lái)投遞這些類型的事件。
圖9 串口讀寫程序流程圖
本系統(tǒng)中終端另一個(gè)重要的功能是報(bào)警和控制動(dòng)作的輸出,當(dāng)瓦斯?jié)舛取⒀鯕夂炕蛘咭谎趸己窟_(dá)到報(bào)警限時(shí),就進(jìn)行報(bào)警并啟動(dòng)風(fēng)機(jī)。此控制功能在RS 485通信協(xié)議中已經(jīng)體現(xiàn)出來(lái),即:
if(Recframe[1]>MaxCH4‖Recframe[3]>CO‖Recframe[2] {FAN=1;ALARM=1;Alarmflag=1;} 上述功能為簡(jiǎn)單的開關(guān)控制,不再細(xì)述。但在報(bào)警的同時(shí),需要通過(guò)系統(tǒng)操作界面的異常處理按鈕,將報(bào)警寫入數(shù)據(jù)庫(kù)的歷史數(shù)據(jù)表中,以備查用。同時(shí)為方便用戶的使用,操作界面同時(shí)提供了網(wǎng)絡(luò)文件傳輸?shù)墓δ埽募l(fā)送通過(guò)采用socket通信,socket通信的程序設(shè)計(jì)主要分為服務(wù)器端和客戶端兩個(gè)部分,本設(shè)計(jì)ARM板上的Linux作為服務(wù)器端,遠(yuǎn)程的監(jiān)控中心作為客戶端,實(shí)現(xiàn)文件的互傳。部分程序如下: void judgeThread::run()//異常處理線程 {myEvent*event=new myEvent(1); QThread::postEvent(receiver,event); } void netThread::run() //網(wǎng)絡(luò)文件傳輸線程 {myEvent *event = new myEvent(2); postEvent(receiver,event); } 為了滿足用戶的需求,Qt系統(tǒng)提供了一個(gè)QCustomEvent類,用于用戶自定義事件,這些自定義事件可以利用QThread::postEvent()或者QApplication::postEvent()并發(fā)給各種控件或其他QObject實(shí)例,而QWidget類的子類可以通過(guò)QWidget::customEvent()事件處理函數(shù)方便地接收到這些自定義的事件。 class myEvent:public QCustomEvent {public: myEvent(int i):QCustomEvent(12345),id(i) {}; int id; }; void OS_operatorGui::customEvent(QCustomEvent *event) { if(event->type() == 12345) { switch( ((myEvent*)event)->id ) { case 1://寫入數(shù)據(jù)庫(kù)歷史數(shù)據(jù)表 break; case 2://網(wǎng)絡(luò)文件傳輸 break; default:OS_operatorGui::customEvent(event); } } } 4 結(jié) 語(yǔ) 煤礦現(xiàn)代化建設(shè)是我國(guó)國(guó)民經(jīng)濟(jì)持續(xù)、穩(wěn)定發(fā)展的重要基礎(chǔ),先進(jìn)的井下安全監(jiān)測(cè)是煤礦現(xiàn)代化建設(shè)的重要組成部分,本文通過(guò)合理的系統(tǒng)設(shè)計(jì),利用無(wú)線Wi-Fi技術(shù)和嵌入式技術(shù)完成礦井安全監(jiān)測(cè)終端的實(shí)驗(yàn)研究,實(shí)現(xiàn)了視頻數(shù)據(jù)及各站點(diǎn)重要信息的傳輸。 參考文獻(xiàn) [1]王瑋,郭成城,李松.無(wú)線Mesh網(wǎng)絡(luò)在礦井通信中的應(yīng)用[J].計(jì)算機(jī)工程,2008,36(6):91-94. [2]Wang Yanfen,Wang Zhenggang,Yu Hongzhen.Simulation Study and Probe on UWB Wireless Comunication in Underground Coal Mine[J].China Univ.of Mining Tech.(English Edition),2006,3(16):296-300. [3]劉乃安.無(wú)限局域網(wǎng)(WLAN)——原理、技術(shù)與應(yīng)用[M].西安:西安電子科技大學(xué)出版社,2004. [4]Ralston J C,Hargrave C O.Localisation of Mobile Underground Mining Equipment Using Wireless Ethernet[A].Conference Record - IAS Annual Meeting[C].2005(1):225-230. [5]湛浩旻.煤礦井下移動(dòng)目標(biāo)定位系統(tǒng)設(shè)計(jì)[D].哈爾濱:哈爾濱工程大學(xué),2007. [6]楊建華,黃宇東,陳安,等.基于ARM/Linux的燃料電池溫度監(jiān)控系統(tǒng)GUI設(shè)計(jì)[J].電子技術(shù)應(yīng)用,2009(7):13-15. [7]解輝,徐玉斌,李建偉,等.基于SQLite的嵌入式數(shù)據(jù)采集系統(tǒng)的研究與采集[J].計(jì)算機(jī)與數(shù)字工程,2008(6):91-95.