幾年前基于stm32平臺做過一套簡單的組態(tài)程序,基本上能滿足公司項目的需求,但是對于一些復(fù)雜的功能需求,這套軟硬件就顯得愛莫能助了,并且stm32是在全裸機的條件下開發(fā),整套工程導(dǎo)出需要借助上位機開發(fā)的界面編輯軟件通過USB讀寫,很是麻煩。一個看似簡單的控件繪圖,可能需要編寫大量的程序。一直想著嘗試在QT環(huán)境下來做一套功能升級的替代。直到看到這款OK3399-C,不管是硬件資源還是性能,都很合適。大致羅列一下我想到的一些基礎(chǔ)控件:
1、 按鍵(分普通按鍵和帶狀態(tài)鎖的)
2、 動態(tài)數(shù)據(jù)顯示控件
3、 靜態(tài)文本顯示控件
4、 儀表
5、 柱狀圖
6、 曲線圖
7、 狀態(tài)顯示
8、 表格
9、 腳本執(zhí)行器
10、…
本次時間有限,先實現(xiàn)了三個控件的顯示:1、兩態(tài)按鍵(能綁定圖片和報警信號,區(qū)分點擊狀態(tài),釋放狀態(tài)和報警狀態(tài))2、儀表(能設(shè)置儀表盤的角度區(qū)間和量程區(qū)間,表盤顏色,指針顏色等)3、曲線圖,能設(shè)置圖標(biāo)顏色,曲線顏色,X軸測量周期和Y軸測量值范圍等。
按鍵和儀表均通過QPainter實現(xiàn),曲線圖表初次嘗試使用QT的可視化視圖實現(xiàn)(貌似做動態(tài)曲線不太方便,X軸刻度想做成自定義格式比較麻煩,先湊合用吧,后面再改),使用QT的可視化試圖需要安裝QtCharts包,OK3399-C提供的QT是不包含此包的。安裝QtCharts的方式如下
1、從github克隆源碼包
git clone https://github.com/qtproject/qtcharts.git
2、檢出版本分支
git checkout 5.7(一定要做這一步)
3、執(zhí)行qmake
4、執(zhí)行make
5、執(zhí)行安裝
make install
打開QtCreator
新建工程,ui界面類型選widget和mainwindow均可,名字隨意
QT工程中用Qtcharts需要對pro文件進行設(shè)置
添加 QT +=??chart
我的ui是mainwindow,尺寸選擇1024x600,在mainwindow窗體添加QLable作為所有控件的父控件。
按鍵,儀表,曲線圖控件分別以三個類的方式實現(xiàn),代碼結(jié)構(gòu)如下:
控件在窗體中的拖動通過捕獲鼠標(biāo)事件實現(xiàn),控件最終運行效果如下:
本次項目最終實現(xiàn)的三個控件功能只是組態(tài)功能中最基本的顯示,曲線圖的拖動效果還存在問題,后期功能開發(fā)還包括在頁面編輯中通過添加不同控件并編輯相關(guān)功能,保存數(shù)據(jù)庫或配置文件,這里暫定用json來存儲頁面的控件配置信息。至于數(shù)據(jù)交互,暫定使用RabbitMq和共享內(nèi)存的方式,通過RabbitMq可以將網(wǎng)絡(luò)中的數(shù)據(jù)匯集到本機,本機將原始數(shù)據(jù)幀解析寫入共享內(nèi)存,方便應(yīng)用程序的本地快速讀寫。
fqj
電子發(fā)燒友App












































































評論