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

        ?

        基于Qt多線程多串口的綜合導(dǎo)航模擬系統(tǒng)研究與應(yīng)用

        2014-08-07 12:02:41阮福明朱耀強
        天津科技 2014年10期
        關(guān)鍵詞:羅經(jīng)模擬系統(tǒng)線程

        王 斌,阮福明,朱耀強

        (中海油田服務(wù)股份有限公司物探事業(yè)部 天津300451)

        基于Qt多線程多串口的綜合導(dǎo)航模擬系統(tǒng)研究與應(yīng)用

        王 斌,阮福明,朱耀強

        (中海油田服務(wù)股份有限公司物探事業(yè)部 天津300451)

        提出了一種基于Qt多線程多串口的綜合導(dǎo)航模擬系統(tǒng)的數(shù)據(jù)交互及實現(xiàn)方法,詳細(xì)論述了Qt多線程技術(shù)以及多串口通信,通過數(shù)據(jù)提取、時間間隔提取、多線程多串口通信、網(wǎng)絡(luò)通信等 4個步驟實現(xiàn)了綜合導(dǎo)航系統(tǒng)的室內(nèi)模擬,再現(xiàn)了一線作業(yè)場景。為保持槍控數(shù)據(jù)和鳥控數(shù)據(jù)的同步性,提出了基于網(wǎng)絡(luò)的同步方法,能較好地滿足綜合導(dǎo)航系統(tǒng)室內(nèi)數(shù)據(jù)模擬、數(shù)據(jù)交互、再現(xiàn)實際作業(yè)以及人員培訓(xùn)等需求,且其跨平臺技術(shù)使得該模擬系統(tǒng)能支持多平臺、國產(chǎn)綜合導(dǎo)航系統(tǒng)以及進口導(dǎo)航系統(tǒng),具有較好的通用性。

        Qt 多線程 多串口 綜合導(dǎo)航系統(tǒng) 數(shù)據(jù)模擬 INSP

        0 引 言

        海上油氣勘探離不開導(dǎo)航定位。綜合導(dǎo)航系統(tǒng)是海上地震勘探作業(yè)中的控制和指揮中心,導(dǎo)航資料對地震數(shù)據(jù)處理以及后期的鉆井定位起著至關(guān)重要的作用。由于海洋地震勘探作業(yè)流程復(fù)雜,行業(yè)性較強,涉及到多種軟、硬件系統(tǒng)協(xié)同工作,軟件模塊多、功能復(fù)雜,對系統(tǒng)穩(wěn)定性、導(dǎo)航定位精度等方面提出了較高的要求,軟件開發(fā)難度大。目前我國在海洋石油勘探領(lǐng)域,綜合導(dǎo)航系統(tǒng)基本依賴進口,如美國ION公司的Spectra和Orca系統(tǒng),被廣泛應(yīng)用于海上石油地震勘探作業(yè)中。[1]我國在勘探作業(yè)新方法、新技術(shù)等方面受制于人,國際競爭力不強。

        中國海洋石油總公司在20世紀(jì)八九十年代就引進了綜合導(dǎo)航系統(tǒng),公司從“十二五”“863”項目“深水高精度地震勘探系統(tǒng)成套化研制”子課題《海上地震勘探拖纜控制與綜合導(dǎo)航系統(tǒng)研制》開始進行海上地震勘探綜合導(dǎo)航系統(tǒng)研制,在軟件開發(fā)、導(dǎo)航定位等方面取得了一系列可喜的成果,目前已研制出二維綜合導(dǎo)航系統(tǒng),經(jīng)幾次海試后初步具備作業(yè)能力。[2]

        在導(dǎo)航系統(tǒng)的研制過程中,由于接入的導(dǎo)航定位設(shè)備種類眾多,如 DGPS、RGPS、電羅經(jīng)、測深儀、羅經(jīng)鳥、水平鳥、槍陣、水速鳥等,有些設(shè)備可能接入多個,如 DGPS、電羅經(jīng)等,設(shè)備分布于勘探船或者掛載于水下拖曳電纜,接口方式主要是 RS232。在離岸的導(dǎo)航系統(tǒng)日常調(diào)試中,難以做到將各種導(dǎo)航設(shè)備接入數(shù)據(jù)采集箱體,也就難以實時獲取各類原始導(dǎo)航定位數(shù)據(jù),在對導(dǎo)航數(shù)據(jù)采集平臺(INSP,integrated navigation system platform)的數(shù)據(jù)采集調(diào)試以及導(dǎo)航系統(tǒng)軟件與導(dǎo)航數(shù)據(jù)采集平臺的調(diào)試中都比較困難和難以驗證;傳統(tǒng)的調(diào)試工具在發(fā)送數(shù)據(jù)格式上、并發(fā)性、發(fā)送時序等方面不能滿足日常調(diào)試要求,不能做到有效控制;在人員培訓(xùn)中,也不夠直觀和真實,作業(yè)時不能立即上手;在物探船的設(shè)備連接、接線時由于儀器房設(shè)備眾多、接口各異,線路某段經(jīng)常做錯或做反,數(shù)據(jù)收不到時不方便查找問題,需要有數(shù)據(jù)源驗證;在作業(yè)時出現(xiàn)的問題,僅憑導(dǎo)航記錄文件P2、P1文件也無法在室內(nèi)形象地重現(xiàn)。因此,一套能按照時序發(fā)送各種導(dǎo)航定位數(shù)據(jù),能模擬實際海上作業(yè)的室內(nèi)導(dǎo)航模擬系統(tǒng)極為迫切。

        本文提出了一種基于Qt多線程的多串口通信仿真設(shè)計方法,通過數(shù)據(jù)提取、時間間隔提取、多線程多串口通信、網(wǎng)絡(luò)通信等4個步驟實現(xiàn)了綜合導(dǎo)航系統(tǒng)的室內(nèi)模擬,再現(xiàn)了一線作業(yè)場景。

        1 綜合導(dǎo)航系統(tǒng)作業(yè)流程

        1.1 綜合導(dǎo)航系統(tǒng)作業(yè)方式

        海洋地震勘探中,地震勘探船拖曳一條或多條電纜,隨著槍陣激發(fā),拖曳電纜采集地震波反射數(shù)據(jù),船載定位設(shè)備采集導(dǎo)航定位數(shù)據(jù)。船載定位設(shè)備主要有 DPGS、RGPS、電羅經(jīng),測深儀等;槍陣定位設(shè)備主要有槍陣聲學(xué)鳥、RGPS等;拖曳電纜定位設(shè)備主要有頭標(biāo)、尾標(biāo)、羅經(jīng)鳥、聲學(xué)鳥、深度傳感器等;輸出數(shù)據(jù)主要有導(dǎo)航頭段、槍控頭段等。各設(shè)備數(shù)據(jù)通過綜合導(dǎo)航系統(tǒng)數(shù)據(jù)采集平臺發(fā)送給導(dǎo)航系統(tǒng)軟件。各設(shè)備的導(dǎo)航定位原始數(shù)據(jù)記錄在原始導(dǎo)航數(shù)據(jù)文件中,以 UKOOA P2/94格式存儲,將 P2/94格式的原始定位數(shù)據(jù)文件進行解算,解算后的定位數(shù)據(jù)以P1/90格式存儲??碧阶鳂I(yè)中導(dǎo)航系統(tǒng)的定位信號及各系統(tǒng)關(guān)系如圖1所示。

        1.2 綜合導(dǎo)航系統(tǒng)數(shù)據(jù)流程及時間特性

        導(dǎo)航定位設(shè)備具有各自的時間特性,如 DGPS數(shù)據(jù)一般 1,s一次,槍控數(shù)據(jù)一炮一次,電羅經(jīng)數(shù)據(jù)約 0.2~0.4,s一次,因此導(dǎo)航模擬系統(tǒng)發(fā)送數(shù)據(jù)時要按照真實作業(yè)時序發(fā)送。在抽取 P2數(shù)據(jù)時,不但抽取了各原始定位數(shù)據(jù),還抽取了時間間隔數(shù)據(jù),發(fā)送時,讀取間隔數(shù)據(jù)文件發(fā)送。如丟炮時,此炮數(shù)據(jù)標(biāo)記為-1(見表1)。

        圖1 地震勘探船定位信號及各系統(tǒng)關(guān)系圖Fig.1 Positioning signals of a seismic survey vessel and the relations of various systems

        表1 導(dǎo)航定位數(shù)據(jù)的時間特性Tab.1 Time responses of navigation positioning data

        2 Qt及Qt多線程技術(shù)

        2.1 Qt技術(shù)

        Qt工具包是一個跨平臺的C++類庫,并且是使用“一次編寫,隨處編譯”的方式用于構(gòu)建多平臺圖形用戶界程序的一套工具。由于 Qt是一個跨平臺的工具箱,可方便軟件應(yīng)用于絕大多數(shù)操作系統(tǒng)。目前,Qt支持的操作系統(tǒng)包括[3-6]:MS Windows各個系列版本;Macintosh-Max OS X;Unix/X11-Linux,IBM AIX,HP-UX,Sun Solaris,SGI IRIX 等 UNIX 或類UNIX系統(tǒng)。

        另外,在地震數(shù)據(jù)處理中,剖面圖、曲線、三維圖形等都是常見的形態(tài),而 Qt的強大圖形處理機制使其能廣泛應(yīng)用于油氣勘探領(lǐng)域。

        2.2 Qt多線程技術(shù)

        Qt通過 3種形式提供了對線程的支持。它們分別是:平臺無關(guān)的線程類;線程安全的事件投遞;跨線程的信號槽連接。這使得開發(fā)輕巧的多線程 Qt程序更為容易,并能充分利用多處理器機器的優(yōu)勢。多線程編程也是一個有用的模式,它用于解決執(zhí)行較長時間的操作而不至于用戶界面失去響應(yīng)。

        2.3 Qt線程可重入性及線程與界面的響應(yīng)

        在 Qt文檔中,術(shù)語“可重入”與“線程安全”被用來說明一個函數(shù)如何用于多線程程序。假如一個類的任何函數(shù)在此類的多個不同實例上可以被多個線程同時調(diào)用,那么這個類被稱為是“可重入”的。假如不同的線程作用在同一個實例上仍可以正常工作,那么稱之為“線程安全”的。大多數(shù) C++類天生就是可重入的,因為它們僅僅引用成員數(shù)據(jù)[7]它的大多數(shù)非 GUI子類,如 QTimer、QTcpSocket、QUdpSocket、QProcess都是可重入的,因而這些類可以同時用于多線程。但GUI類,特別是QWidget與它的所有子類都是不可重入的,它們僅用于主線程。在實際應(yīng)用中,不能在非主線程中調(diào)用GUI類,常用方法是將耗時的操作放在獨立的線程中,將輸出結(jié)果放到主線程中顯示,可以通過跨線程的信號和槽實現(xiàn)。

        3 基于 Qt多線程的多串口綜合導(dǎo)航模擬系統(tǒng)實現(xiàn)

        3.1 串口擴展

        由于一般計算機很少有3個以上的串口,而發(fā)送至導(dǎo)航系統(tǒng)的導(dǎo)航數(shù)據(jù)大約需要 10多個端口,因此需要擴展,通常臺式機的擴展加串口卡實現(xiàn)較為方便(見圖 2)。

        圖2 多串口卡Fig.2 A multi-serial port card

        通常筆記本不適合裝多串口卡,可以通過安裝USB轉(zhuǎn)多串口線來實現(xiàn),一般 USB可以轉(zhuǎn)出 4串口,可以用兩條 USB轉(zhuǎn)串口線實現(xiàn) 8串口,再加上本地計算機還有其他 USB口,所以可以實現(xiàn)9個以上的串口(見圖3、4)。

        圖3 多串口顯示效果Fig.3 Display effect of Multi-serial ports

        圖4 USB分線擴展器Fig.4 USB junction box

        3.2 實現(xiàn)流程

        實現(xiàn)步驟:數(shù)據(jù)抽取,從 P2文件抽取定位數(shù)據(jù)和時間間隔數(shù)據(jù);設(shè)置通信參數(shù),設(shè)置波特率、數(shù)據(jù)位、奇偶校驗位、停止位、數(shù)據(jù)流控制等;選擇串口,打開串口,如 windows下為“com1”,linux下為“ttyS0”;選擇抽取的導(dǎo)航定位文件和時間間隔文件;將數(shù)據(jù)和時間間隔數(shù)據(jù)通過 Qt多線程多串口數(shù)據(jù)發(fā)送給INSP(綜合導(dǎo)航系統(tǒng)平臺);槍數(shù)據(jù)、鳥數(shù)據(jù)的時間同步設(shè)置及響應(yīng)、數(shù)據(jù)發(fā)送;關(guān)閉串口,關(guān)閉網(wǎng)絡(luò),回放結(jié)束(見圖5)。

        圖5 數(shù)據(jù)模擬過程流程圖Fig.5 Flow chart of the data simulation process

        3.3 編程實現(xiàn)實現(xiàn)方法

        自定義了通信基類 QextSerialBase,繼承了 QIO Device。QIODevice類是輸入/輸出設(shè)備的基類,像QFile、QBuffer和QSocket這些類繼承了 QIODevice,并且適當(dāng)?shù)貙崿F(xiàn)了像write()這樣的虛函數(shù)。

        自定義類 Win_QextSerialPort繼承自 QextSerial Base,該類定義了設(shè)置波特率、數(shù)據(jù)位、停止位、校驗位、停止位等方法。其構(gòu)造函數(shù)以端口名為參數(shù),并提供了事件驅(qū)動等查詢方式。端口設(shè)置結(jié)構(gòu)體:

        另外,還定義了信號 readyRead();它可以查看串口是否有新的數(shù)據(jù)傳來。定義了發(fā)送數(shù)據(jù)的write()方法,基于 Qt實現(xiàn),用于將數(shù)據(jù)通過串口發(fā)送出去,其參數(shù)為QByteArray類型。

        值得注意的是,當(dāng)串口數(shù)大約 9時,windows下打開串口會出錯,常用的串口調(diào)試助手等工具也經(jīng)常有這樣的問題,解決方法是前面要加上前綴[8]"\\.\",例如,槍控系統(tǒng)的串口名為 COM24,加上前綴后為\.\COM24。語句:

        3.4 多線程多串口數(shù)據(jù)發(fā)送實現(xiàn)

        主界面發(fā)送按鈕的槽函數(shù)響應(yīng)時,啟動多線程:

        線程的入口函數(shù)run函數(shù)建立輪詢,并調(diào)用發(fā)送各數(shù)據(jù)的函數(shù):

        在發(fā)送 DGPS、RGPS等數(shù)據(jù)時,按照上述串口發(fā)送方法,打開串口、設(shè)置通信參數(shù),讀取抽取的數(shù)據(jù),按條讀取發(fā)送,并在每條數(shù)據(jù)后加 ,相應(yīng)代碼:

        //讀取數(shù)據(jù)去掉 然后加上 ,其中測深儀的數(shù)據(jù)后綴是 。

        為保證多線程數(shù)據(jù)發(fā)送的完整性,每個發(fā)送數(shù)據(jù)端要加鎖。

        ComDGPS1->write(senddata.toAscii());//發(fā)送串口內(nèi)容,按行發(fā)送,且有回車換行符;

        其中 write()為 Qt的 QIODevice的成員函數(shù)。qint64 QIODevice::write(const QByteArray &byteArray),實現(xiàn)了串口數(shù)據(jù)的發(fā)送,參數(shù)為QbyteArray類型。

        3.5 實際應(yīng)用與軟件運行效果

        通過兩個USB轉(zhuǎn)232分線器以及本地USB口實現(xiàn)多個串口,然后通過RT45轉(zhuǎn)232轉(zhuǎn)換頭將數(shù)據(jù)以RJ45形式接入綜合導(dǎo)航采集平臺(見圖6)。

        經(jīng)測試,模擬系統(tǒng)運行穩(wěn)定,數(shù)據(jù)解析、發(fā)送時序正確,導(dǎo)航數(shù)據(jù)能收到模擬系統(tǒng)發(fā)送的各導(dǎo)航定位數(shù)據(jù),滿足調(diào)試要求。

        圖6 通過RJ45轉(zhuǎn)232接頭接入串口數(shù)據(jù)Fig.6 232 joint serial data via RJ45

        4 結(jié) 語

        本文利用Qt多線程技術(shù)完成了多串口的導(dǎo)航數(shù)據(jù)模擬與發(fā)送,再現(xiàn)了作業(yè)場景,通過網(wǎng)絡(luò)通信獲取預(yù)測炮號,使得炮數(shù)據(jù)和鳥數(shù)據(jù)保持了正確的作業(yè)時序。本系統(tǒng)滿足室內(nèi)系統(tǒng)聯(lián)調(diào)、測試,以及人員培訓(xùn)等需求,且支持國產(chǎn)及進口導(dǎo)航系統(tǒng)的調(diào)試。其跨平臺特征使得系統(tǒng)能運行于 windows和 linux等常見平臺,部署快捷方便,大大降低了傳統(tǒng) windows下C++多線程以及串口通信的實現(xiàn)復(fù)雜性。

        繼續(xù)需要改進的幾個方面有:時序觸發(fā)的精度有待進一步提高,可以通過硬件觸發(fā)板來實現(xiàn),通過配置觸發(fā)時序,正確返回 TB,更接近實際作業(yè)效果;另外,鳥數(shù)據(jù)的發(fā)送目前是串口,三維作業(yè)的羅經(jīng)鳥數(shù)據(jù)、聲學(xué)鳥數(shù)據(jù)等都是基于網(wǎng)絡(luò)傳輸,下一步需將聲學(xué)鳥數(shù)據(jù)和羅經(jīng)鳥數(shù)據(jù)按照網(wǎng)絡(luò)數(shù)據(jù)重新抽取、解析、模擬發(fā)送,使得三維綜合導(dǎo)航作業(yè)得以更新。

        [1]楊世學(xué),劉宇明. SPECTRA綜合導(dǎo)航系統(tǒng)中海洋勘探中的應(yīng)用[J]. 海洋測繪,2002,22(6):22-25.

        [2]朱偉林. 中國近海找油的勘探戰(zhàn)略[J]. 中國海上油氣(地質(zhì)),1997,11(6):407-414.

        [3]蔡志明,李立夏. 精通 Qt4編程[M]. 北京:電子工業(yè)出版社,2008.

        [4]萬長勝. 用 Qt進行面向?qū)ο筌浖脑O(shè)計與開發(fā)[J].核電子學(xué)與探測技術(shù),2004(3):311-313.

        [5]李全虎. 交互界面開發(fā)工具——Qt[J]. 中國科技信息,2005(5):33.

        [6]王愛文. Linux平臺下基于Qt的電子海圖的研究與實現(xiàn)[D]. 黑龍江:哈爾濱工程大學(xué),2004.

        [7]胡雙炎. 一種多串口多線程數(shù)據(jù)采集方法的設(shè)計與應(yīng)用[J]. 職教與經(jīng)濟研究,2011(2):54-58.

        Research and Application of an Integrated Navigation System based on Qt Multi-thread and Multi-serial Technologies

        WANG Bin,RUAN Fuming,ZHU Yaoqiang
        (Geophysical Technology Lab,R&D Centre,China Oilfield Services Limited,Tianjin 300451,China)

        This paper proposed a method of data intercommunication for an Integrated Navigation System which is based on multi-thread and multi-serial of Qt,discussed the Qt multi-threading technology and the multi-serial communication and achieved a laboratory simulation of the integrated navigation system through data extraction,interval time extraction,multi-thread and multi-serial communication and network communication. Practical applications showed that the method was effective in the multi-process communication and data intercommunication of the system.The cross-platform technology allowed the simulation system to support the multi-platform,and support the domestic and import navigation system and its versatility was good.

        Qt;multi-thread;multi-serial;integrated navigation system;data simulation;INSP

        TP319

        A

        1006-8945(2014)10-0066-04

        國家863計劃資助項目(2012AA09A211)。

        2014-09-10

        猜你喜歡
        羅經(jīng)模擬系統(tǒng)線程
        磁羅經(jīng)北極高緯海區(qū)航向誤差分析與補償
        船海工程(2021年1期)2021-03-02 05:32:02
        船上磁羅經(jīng)自差表相關(guān)要求
        中國船檢(2020年10期)2020-11-07 09:56:38
        基于STM32單片機的微電網(wǎng)模擬系統(tǒng)設(shè)計
        電子制作(2018年1期)2018-04-04 01:48:22
        隨機游走對羅經(jīng)方位對準(zhǔn)的精度影響分析
        粒子群算法優(yōu)化的捷聯(lián)羅經(jīng)初始對準(zhǔn)方法
        淺談linux多線程協(xié)作
        基于ARM和Zigbee 的變壓器試驗培訓(xùn)模擬系統(tǒng)
        電子制作(2017年23期)2017-02-02 07:16:50
        虛擬現(xiàn)實焊接培訓(xùn)模擬系統(tǒng)在焊工培訓(xùn)中的應(yīng)用
        焊接(2015年1期)2015-07-18 11:07:32
        紅外通信模擬系統(tǒng)的設(shè)計
        河南科技(2014年24期)2014-02-27 14:19:37
        Linux線程實現(xiàn)技術(shù)研究
        美女视频永久黄网站免费观看国产 | 亚洲熟妇无码八av在线播放| 国产精品久久久久久无码| a级毛片无码久久精品免费| 亚洲精品乱码8久久久久久日本 | 久久久AV无码精品免费| 久久精品国产亚洲5555| 高清高速无码一区二区| 欧美高h视频| 国产成人av一区二区三| 久久午夜一区二区三区| 国产免费一区二区三区精品视频| 国产精品成人亚洲一区| 成年女人18毛片观看| 日本按摩偷拍在线观看| 久久99精品久久久久久琪琪| 隔壁老王国产在线精品| 全黄性性激高免费视频| 人妻 日韩 欧美 综合 制服| 特级毛片a级毛片100免费播放| 亚洲国产日韩欧美一区二区三区 | 大地资源高清在线视频播放| 国产丝袜在线精品丝袜| 色爱区综合五月激情| 亚洲精品国产二区三区在线| 日韩亚洲精选一区二区三区 | 国产午夜在线视频观看| 男人的天堂中文字幕熟女人妻| av鲁丝一区鲁丝二区鲁丝三区| 成人欧美一区二区三区a片| 成年男女免费视频网站| 免费黄色福利| 天堂av在线免费播放| 国产情侣自拍偷拍精品| 日韩女优av一区二区| 亚洲热妇无码av在线播放| 好爽受不了了要高潮了av| 丝袜人妻无码中文字幕综合网| 中文字幕一区乱码在线观看| 免费看黄色亚洲一区久久| 亚洲av色影在线|