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

Qt跨平臺數字化壓力測量分析監控系統的設計與實現

2012-02-15 03:29:30蔣鵬飛尹華山陳保林
電子設計工程 2012年9期
關鍵詞:單片機數據庫測量

任 韜,孫 立,蔣鵬飛,尹華山,陳保林

(1.南京航空航天大學 電子信息工程學院,江蘇 南京 211100;2.南京航空航天大學 理學院,江蘇 南京 211100;3.南京航空航天大學 機電學院,江蘇 南京 211100)

在應用物理學科的“數字化壓力測量”實驗裝置中,使用了模擬電路,數字電路,傳感器與單片機等學科技術知識。為了完成數據采集與分析,單靠單片機技術所構成的硬件系統架構,雖然可以做到實時的監控,但不利于數據處理的深化與更加深入詳細分析的表達,數據的記錄也會帶來誤差,為了解決這些問題,讓學生能更好的領略到數字化時代的知識,在完成數字化壓力測量檢測儀的基礎上,提出本課題的設計與實現。

PC機具有強大數據處理,圖像顯示以及實時監控的能力,利用PC機的這些特點,同時編寫友好的應用程序來實現數據的采集與分析,具有特殊意義——能夠提升整套測試系統的處理能力的上位機得以呈現。

Qt提供的C++應用程序開發框架,可以輕松實現“一次編寫,隨處編譯”的跨平臺解決方案,編寫的應用程序能完美運行于從windows 98到windows 7,從Mac OSX到Linux,從Solaris,HP-UX到其他基于X11的眾多Unix平臺上。

這讓編寫的應用程序可以運行在不同的系統,很大程度上方便移植[1]。

1 總體架構設計

軟件整體架構包括完善的菜單欄、啟動畫面,工具欄,狀態欄和應用程序主界面。軟件架構[2]如圖1所示。

圖1 軟件架構圖Fig.1 Software construction chart

由啟動畫面進入程序主應用程序,主應用程序初始化界面提供一些必要的操作說明,單擊清除按鈕將會清除說明,然后進入具體應用程序配置,配置完成一些工具按鍵進入使能狀態同時另一些按鍵進入禁止使用狀態。

軟件保留一個按鍵作為切換測量與監控模式,具體的模式由單片機程序決定,默認為測量模式。

Qt是由 C++體系實現[3],采用先進的信號槽機制[1,4],每一個類對應一個功能,about.cpp中的about類提供軟件版本,作者和日期等信息,display.cpp中的Clock類提供數據回歸分析曲線擬合,fader.cpp中FaderWidget類提供對整體程序彈出窗口中淡入淡出效果,mainwindow.cpp中的MainWindow類提供應用程序主體窗口,win_qextserialport.cpp提供的類用于串口配置底層驅動文件。

2 界面布局設計

2.1 菜單欄、工具欄以及狀態欄的實現

菜單可以讓用戶瀏覽應用程序并且可以學會如何處理一些新的事情;上下文菜單和工具欄則提供了對那些常使用的功能進行快速訪問的方法;狀態欄用于顯示狀態提示和其他一些臨時消息。

在Qt中實現這3個子窗口是相通的,原理一樣,實現手法一樣,只是對用戶而言看上去不一樣。Qt里面有一個類,叫做QAction,QAction保存有關于這個動作,也就是action的信息,神奇的是,QAction能夠根據添加的位置來改變自己的樣子,如果添加到菜單中,它就會顯示成一個菜單項;如果添加到工具欄,它就會顯示成一個按鈕,QAction有一個屬性適用于狀態欄顯示setStatusTip。通過這個屬性可以設置狀態欄顯示信息。

example=new QAction(tr(""),this);

example->setIcon(QIcon("")); example->setStatusTip(tr(""));

最后給動作添加一個槽,以便實現了信號槽connect(example,SIGNAL(triggered()),this,SLOT())。

2.2 添加控件的實現

在Qt中每一個控件對應于一個類,向窗口或控件添加其他控件只需指定相關類就完成了添加窗口的操作。

2.3 布局組件的實現

在Qt中使用布局機制來實現控件的位置定位。只要把組件放入某一種布局之中,當需要調整大小或位置的時候,Qt就知道該怎樣進行調整。

Qt一共有 3種主要的 Layout[3],分別是:QHBoxLayout水平方向從左到右布局;QVBoxLayout垂直方向從上到下布局;QGridLayout在一個網格中進行布局。圖2是整體效果。

圖2 界面整體布局Fig.2 Contact surface overall layout

3 數據采集存儲顯示設計

3.1 數據存儲

在測量模式下通過單擊獲取數據按鈕會獲得來自單片機系統發送過來的實時測量數據。從數據顯示獲取系統采集的時間來精確記錄數據信息。如果不需要在應用程序界面上顯示,可以通過單擊寫入文件按鈕,此時數據將會寫入到具體文件中去,操作者可以保存以自己姓名學號為文件名的文件。Qt中 通過QFile類訪問本地文件系統或者嵌入資源,同時還要使用QTextStream類來操縱文本文件,QTextStream會自動將Unicode編碼同操作系統編碼進行轉化。

3.2 數據分析與擬合

為了方便學生實驗,通過獲取每個學生實驗數據進行回歸分析以及擬合曲線,對應于每個button是由數據增和數據減求得平均值;學生由于誤操作導致獲取的數據不正確,可以通過單擊刪除按鈕刪除該數據,然后重新獲取數據。學生可以通過原始數據擬合曲線和回歸分析后的擬合曲線進行對比。在Qt中沒有具體數據圖表控件,因此需要自定義控件。

3.3 解決方案

利用Qt中繪圖控件QPainter[5]當獲取每個數據時,在屏幕上打印出相對應的點,這樣就能擬合出曲線如圖3所示。同時利用坐標變換translate方法重新定義原點,這樣更有利于坐標的繪制。

圖3 測量曲線擬合圖Fig.3 Survey curve fitting chart

如圖3所示,首先畫出網格坐標軸,然后將獲取到的數據轉化為相對應的具體左邊打印出該點:

paint.drawEllipse(((i+1)*24)+2,-(share[i]/10/5*24)+4,-6,-6);//畫點,最后由回歸分析擬合出數據表達式。

4 數據庫設計

QtSql模塊提供了與平臺以及數據庫種類無關的訪問SQL數據庫接口[1,4]。這個接口由利用Qt的模型/視圖結構將數據庫與用戶界面集成的一套類來集成。

本應用程序采用微軟開發的SQL Server2005作為數據庫引擎,用戶界面采用Qt編寫,當系統處于監控模式時,需要數據的實時監控和存儲,數據量將非常大使用文件存儲不適合,同時利用數據庫提供的查詢語句Select、修改update、刪除delete等語句,可以方便地管理數據庫。

5 軟件美化

5.1 國際化

Qt中國際化[4]的方式有很多種,常使用的QTextCodec類和使用tr()函數,前者將編碼名稱寫到代碼里面,除非使用Unicode編碼,否者編碼依然是一個問題,本軟件系統設計時使用tr()函數實現應用程序的國際化。同時在main函數中增加一個QTranslator對象,這樣應用程序就變成了中文。

5.2 淡入淡出效果

當窗體進行頁面切換時,原頁面的消失和新頁面的顯示并不是瞬間切換的,而是逐漸消隱和逐漸顯現的過程。

本應用程序中實現的fader類就是用于實現這種效果,在響應頁面切換時,新建一個窗體,此窗體是一個與對話框等尺寸的空白窗體,此窗體由透明逐漸變成不透明就完成了淡入淡出的效果[6-10],如圖4所示。

圖4 應用效果圖Fig.4 Application effect chart

6 Qt串口通信

在Qt中沒有特定的串口控制類,采用第三方寫的qextserialport類如圖5,文件中包含QextSerialBase類,Win_Qext-SerialPort類,Posix_QextSerialPort類,QextSerialPort是所有類的子類,是最高的抽象,它屏蔽了平臺特征,使得在任何平臺上都可以使用[7]。

對于串口的讀取方式有Polling模式即查詢模式還有EventDriven事件驅動模式。

圖5 串口工作流程圖Fig.5 Serial port work flow chart

事件驅動方式就是使用處理串口的讀取,一旦有數據到來就會發出readyRead()信號,設計者可以關聯該信號來讀取串口數據。在事件驅動的方式下,串口的讀寫是異步的調用讀寫函數會立即返回,它們不會凍結調用線程。

而查詢方式則不同,讀寫函數是同步執行,信號不能工作在這種模式下,但這種模式下開銷小,需要自己建立定時器來讀取串口數據。

Windows下可以使用兩種方式而在Linux下只能使用查詢 Polling方式[8]。

7 結束語

本軟件測試系統界面直觀、友好,數據存儲方便,分組存儲更能方便學生記錄數據。軟件能后滿足實驗室的測量要求,并且省去了繁瑣的數據記錄、處理的過程。學生可以更直觀地觀測壓力的變化。在通信協議不變的條件下,軟件和硬件平臺可以分別進行改進、擴展,使其更加完善。應用程序的跨平臺性,可以完美運行于各種操作系統,從Windows到Mac OS,從Linux到Unix及一些嵌入式系統上[1,9-10]。

[1]Jasmin Blanchette,Mark Summerfield。C++GUI Qt4編程[M].2版.北京:電子工業出版社,2008.

[2]齊治昌,譚慶平,寧洪.軟件工程[M].北京:高等教育出版社,2010.

[3]皮德常.C++程序設計教程 [M].北京:機械工業出版社,2009.

[4]薩默菲爾德.Qt高級編程[M].北京:電子工業出版社,2011.

[5]Qt幫助文檔[EB/OL].www.trolltech.com.

[6]成浩,盧紫毅.Linux窗口程序設計——Qt4精彩實例分析[M].北京:清華大學出版社,2008.

[7]郭天祥.新概念51單片機C語言教程[M].北京:電子工業出版社,2009.

[8]Qt串口通信[EB/OL].www.yafeilinux.com.

[9]蔡志明.精通Qt4編程 [M].2版.北京:電子工業出版社,2011.

[10]鄭阿奇.Qt4開發實踐[M].北京:電子工業出版社,2011.

猜你喜歡
單片機數據庫測量
基于單片機的SPWM控制逆變器的設計與實現
電子制作(2019年13期)2020-01-14 03:15:28
把握四個“三” 測量變簡單
基于單片機的層次漸變暖燈的研究
電子制作(2019年15期)2019-08-27 01:12:10
基于單片機的便捷式LCF測量儀
電子制作(2019年9期)2019-05-30 09:42:02
滑動摩擦力的測量和計算
滑動摩擦力的測量與計算
數據庫
財經(2017年2期)2017-03-10 14:35:35
數據庫
財經(2016年15期)2016-06-03 07:38:02
測量
數據庫
財經(2016年3期)2016-03-07 07:44:46
主站蜘蛛池模板: 欧美亚洲第一页| 亚洲美女一区| 国产精品3p视频| 无码综合天天久久综合网| 福利在线一区| 无码国产伊人| 成年女人a毛片免费视频| 极品国产在线| 精品国产美女福到在线不卡f| 一本一道波多野结衣一区二区 | 亚洲国产成人久久77| 国产经典免费播放视频| 国产91在线|日本| 在线五月婷婷| 亚洲欧美不卡中文字幕| 黄色一级视频欧美| 美女内射视频WWW网站午夜| 国产精品亚洲精品爽爽| 日韩二区三区| 天天综合天天综合| 高清欧美性猛交XXXX黑人猛交| 成人毛片在线播放| 无码AV日韩一二三区| 色噜噜狠狠狠综合曰曰曰| 国产男女XX00免费观看| 青青青国产视频| 97超爽成人免费视频在线播放| 亚洲毛片在线看| 欧美一级在线看| 国产视频自拍一区| 亚洲精品视频在线观看视频| 伊人久久婷婷五月综合97色| 久久久久久久97| 久久精品国产91久久综合麻豆自制| 亚洲六月丁香六月婷婷蜜芽| 日韩东京热无码人妻| 伊人久久婷婷五月综合97色| 成人久久18免费网站| 国产91导航| 久久精品国产精品国产一区| 国产噜噜噜视频在线观看| 色有码无码视频| 日韩AV无码免费一二三区| 国产高清无码第一十页在线观看| 欧美视频免费一区二区三区| 国产精品一线天| 2021国产乱人伦在线播放| 亚洲第一视频网站| 538精品在线观看| 亚洲国产精品无码AV| 精品人妻无码中字系列| 91久久青青草原精品国产| 国产一级α片| 亚洲男人的天堂久久精品| 国产精品va| 国产综合精品日本亚洲777| 成人综合在线观看| 亚洲成人播放| 中文无码精品A∨在线观看不卡| 国产成人精品无码一区二| 成人在线综合| 国产性猛交XXXX免费看| 亚洲男人的天堂在线观看| 青青草国产免费国产| 色哟哟国产精品一区二区| 国产99免费视频| 国产精鲁鲁网在线视频| 欧美激情视频二区| 日韩毛片在线播放| 经典三级久久| 久一在线视频| 亚洲全网成人资源在线观看| 99精品在线看| 99偷拍视频精品一区二区| 欧美在线精品怡红院| 一区二区自拍| 日韩美毛片| 国产亚洲欧美日韩在线观看一区二区| 欧美在线一二区| 亚洲一区二区日韩欧美gif| av无码久久精品| 99热这里只有免费国产精品|