飛凌RK3399開發板效能試用體驗三(使用QT編寫組態控制元件)

linlinzia發表於2020-10-29

試用飛凌嵌入式OK3399-C開發板

幾年前基於stm32平臺做過一套簡單的組態程式,基本上能滿足公司專案的需求,但是對於一些複雜的功能需求,這套軟硬體就顯得愛莫能助了,並且stm32是在全裸機的條件下開發,整套工程匯出需要藉助上位機開發的介面編輯軟體通過USB讀寫,很是麻煩。一個看似簡單的控制元件繪圖,可能需要編寫大量的程式。一直想著嘗試在QT環境下來做一套功能升級的替代。直到看到這款OK3399-C,不管是硬體資源還是效能,都很合適。大致羅列一下我想到的一些基礎控制元件:

 

1、 按鍵(分普通按鍵和帶狀態鎖的)

2、 動態資料顯示控制元件

3、 靜態文字顯示控制元件

4、 儀表

5、 柱狀圖

6、 曲線圖

7、 狀態顯示

8、 表格

9、 指令碼執行器

10、…

 

本次時間有限,先實現了三個控制元件的顯示:1、兩態按鍵(能繫結圖片和報警訊號,區分點選狀態,釋放狀態和報警狀態)2、儀表(能設定儀表盤的角度區間和量程區間,錶盤顏色,指標顏色等)3、曲線圖,能設定圖示顏色,曲線顏色,X軸測量週期和Y軸測量值範圍等。

按鍵和儀表均通過QPainter實現,曲線圖表初次嘗試使用QT的視覺化檢視實現(貌似做動態曲線不太方便,X軸刻度想做成自定義格式比較麻煩,先湊合用吧,後面再改),使用QT的視覺化試圖需要安裝QtCharts包,OK3399-C提供的QT是不包含此包的。安裝QtCharts的方式如下

 

1、從github克隆原始碼包

git clone https://github.com/qtproject/qtcharts.git

 

2、檢出版本分支

git checkout 5.7(一定要做這一步)

 

3、執行qmake

 

4、執行make

 

5、執行安裝

make install

 

開啟QtCreator

新建工程,ui介面型別選widget和mainwindow均可,名字隨意

QT工程中用Qtcharts需要對pro檔案進行設定

新增 QT +=  chart

我的ui是mainwindow,尺寸選擇1024x600,在mainwindow窗體新增QLable作為所有控制元件的父控制元件。

按鍵,儀表,曲線圖控制元件分別以三個類的方式實現,程式碼結構如下:

控制元件在窗體中的拖動通過捕獲滑鼠事件實現,控制元件最終執行效果如下:

本次專案最終實現的三個控制元件功能只是組態功能中最基本的顯示,曲線圖的拖動效果還存在問題,後期功能開發還包括在頁面編輯中通過新增不同控制元件並編輯相關功能,儲存資料庫或配置檔案,這裡暫定用json來儲存頁面的控制元件配置資訊。至於資料互動,暫定使用RabbitMq和共享記憶體的方式,通過RabbitMq可以將網路中的資料彙集到本機,本機將原始資料幀解析寫入共享記憶體,方便應用程式的本地快速讀寫。

更多產品資訊點此瞭解>>FTE3399-C核心板OK3399-C開發板

相關文章