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

基于Qt多線程多串口的綜合導航模擬系統研究與應用

2014-08-07 12:02:41阮福明朱耀強
天津科技 2014年10期
關鍵詞:作業

王 斌,阮福明,朱耀強

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

基于Qt多線程多串口的綜合導航模擬系統研究與應用

王 斌,阮福明,朱耀強

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

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

Qt 多線程 多串口 綜合導航系統 數據模擬 INSP

0 引 言

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

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

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

本文提出了一種基于Qt多線程的多串口通信仿真設計方法,通過數據提取、時間間隔提取、多線程多串口通信、網絡通信等4個步驟實現了綜合導航系統的室內模擬,再現了一線作業場景。

1 綜合導航系統作業流程

1.1 綜合導航系統作業方式

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

1.2 綜合導航系統數據流程及時間特性

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

圖1 地震勘探船定位信號及各系統關系圖Fig.1 Positioning signals of a seismic survey vessel and the relations of various systems

表1 導航定位數據的時間特性Tab.1 Time responses of navigation positioning data

2 Qt及Qt多線程技術

2.1 Qt技術

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

另外,在地震數據處理中,剖面圖、曲線、三維圖形等都是常見的形態,而 Qt的強大圖形處理機制使其能廣泛應用于油氣勘探領域。

2.2 Qt多線程技術

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

2.3 Qt線程可重入性及線程與界面的響應

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

3 基于 Qt多線程的多串口綜合導航模擬系統實現

3.1 串口擴展

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

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

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

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

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

3.2 實現流程

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

圖5 數據模擬過程流程圖Fig.5 Flow chart of the data simulation process

3.3 編程實現實現方法

自定義了通信基類 QextSerialBase,繼承了 QIO Device。QIODevice類是輸入/輸出設備的基類,像QFile、QBuffer和QSocket這些類繼承了 QIODevice,并且適當地實現了像write()這樣的虛函數。

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

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

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

3.4 多線程多串口數據發送實現

主界面發送按鈕的槽函數響應時,啟動多線程:

線程的入口函數run函數建立輪詢,并調用發送各數據的函數:

在發送 DGPS、RGPS等數據時,按照上述串口發送方法,打開串口、設置通信參數,讀取抽取的數據,按條讀取發送,并在每條數據后加 ,相應代碼:

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

為保證多線程數據發送的完整性,每個發送數據端要加鎖。

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

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

3.5 實際應用與軟件運行效果

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

經測試,模擬系統運行穩定,數據解析、發送時序正確,導航數據能收到模擬系統發送的各導航定位數據,滿足調試要求。

圖6 通過RJ45轉232接頭接入串口數據Fig.6 232 joint serial data via RJ45

4 結 語

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

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

[1]楊世學,劉宇明. SPECTRA綜合導航系統中海洋勘探中的應用[J]. 海洋測繪,2002,22(6):22-25.

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

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

[4]萬長勝. 用 Qt進行面向對象軟件的設計與開發[J].核電子學與探測技術,2004(3):311-313.

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

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

[7]胡雙炎. 一種多串口多線程數據采集方法的設計與應用[J]. 職教與經濟研究,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

猜你喜歡
作業
作業,我終于打敗你了!
小主人報(2022年1期)2022-08-10 08:28:44
讓人羨慕嫉妒恨的“作業人”
作業聯盟
學生天地(2020年17期)2020-08-25 09:28:54
我愿作業少一點
快來寫作業
一次特殊的作業
誰沒交作業
趣味(數學)(2018年12期)2018-12-29 11:24:10
修改“作業”
跟一群抄作業的講垂直進步?
能源(2016年2期)2016-12-01 05:10:46
作業
故事大王(2016年7期)2016-09-22 17:30:08
主站蜘蛛池模板: 538精品在线观看| 91福利在线观看视频| 久久午夜影院| 色婷婷综合激情视频免费看| 五月婷婷亚洲综合| 秘书高跟黑色丝袜国产91在线 | 91在线播放免费不卡无毒| 成人在线综合| 国产福利免费在线观看| 99在线观看免费视频| 国产毛片不卡| 亚洲AV成人一区二区三区AV| 欧美成人手机在线观看网址| 无码AV高清毛片中国一级毛片| 91色在线观看| 伊人久久大香线蕉aⅴ色| 日本在线免费网站| 欧美一级大片在线观看| 国产极品粉嫩小泬免费看| 日本高清视频在线www色| 成·人免费午夜无码视频在线观看| 日本高清免费一本在线观看 | 日韩久草视频| 一本久道久久综合多人| 国产 在线视频无码| 日韩A∨精品日韩精品无码| 99人体免费视频| 91福利免费| 国产网友愉拍精品| 亚洲无码高清一区| 丁香婷婷久久| 精品第一国产综合精品Aⅴ| 71pao成人国产永久免费视频| 日韩精品少妇无码受不了| 精品无码一区二区三区在线视频| 91成人免费观看在线观看| 国产亚洲精品自在久久不卡| 五月婷婷亚洲综合| 欧美97欧美综合色伦图| 免费毛片全部不收费的| 日韩国产无码一区| 亚洲性网站| 爆乳熟妇一区二区三区| 国模私拍一区二区| 精品久久久无码专区中文字幕| 激情影院内射美女| 99国产在线视频| 久久综合丝袜日本网| 精品国产Av电影无码久久久| 久久成人18免费| 亚洲色图另类| 日本免费一区视频| 91成人在线免费视频| 伊大人香蕉久久网欧美| 激情成人综合网| 亚洲视频色图| 无码中文字幕精品推荐| 在线无码九区| 欧洲成人免费视频| 国产99视频免费精品是看6| 看你懂的巨臀中文字幕一区二区| 91久久偷偷做嫩草影院电| 久久99这里精品8国产| 国产成人综合久久| 成人久久18免费网站| 欧美午夜小视频| 国产精品短篇二区| 国产欧美视频综合二区 | 国产中文一区a级毛片视频| 久久精品这里只有精99品| 久久久黄色片| 国产在线小视频| 美女一级免费毛片| 91探花国产综合在线精品| 国产精品女在线观看| 国产v精品成人免费视频71pao| 97青草最新免费精品视频| 无码丝袜人妻| 欧美在线视频a| 黄色片中文字幕| 999国产精品永久免费视频精品久久| 欧美精品色视频|