原创 Qt開發經驗小技巧236-240

關於在頭文件中定義函數使用static關鍵字的血的教訓。 有時候我們需要將一些常用函數寫在一個文件中供很多地方調用,如果寫的是 int doxxx{} 這種,在你多個地方引用的時候,肯定會編譯報錯提示 “重複定義” 的錯誤。 此時你需

原创 Qt編寫物聯網管理平臺50-超強跨平臺

一、前言 跨平臺的需求,除了是用戶的需求外,也是爲了適應日益增長的國產操作系統的發展的需要,當前國產操作系統發展的如火如荼,100%都是圍繞linux系統展開,說的好聽點就是站在巨人的肩膀上開發,不好聽點就是換殼,當然也不乏有實力的廠商投入

原创 Qt開發經驗小技巧231-235

關於c++中繼承多態virtual和override的幾點總結。 子類可以直接使用基類中的protected下的變量和函數。 基類函數沒加virtual,子類有相同函數,實現的是覆蓋。用基類指針調用時,調用到的是基類的函數;用子類指針

原创 Qt編寫物聯網管理平臺49-設備模擬工具

一、前言 本系統專門配備了設備模擬工具,用來在沒有外接真實設備的時候,模擬modbus協議數據,支持多個設備,支持串口和網絡方式,可切換正常數據和報警數據,反應到主程序上。對應主程序中兩種端口,一種是串口端口(這個可以用虛擬串口工具 Vir

原创 Qt編寫物聯網管理平臺48-特色功能設計

一、前言 在物聯網管理平臺的實際現場應用過程中,遇到過大大小小几十個改進的需求點,這些需求點都是實際用戶提出來的,一方面爲了方便用戶使用提高用戶體驗,一方面爲了提升整體的整個系統的完整性,甚至有些需求說的不好聽一點就是造假,比如硬件設備精度

原创 Qt編寫物聯網管理平臺47-通用數據庫設置

一、前言 爲了做這個通用的數據庫組件,專門安裝了虛擬機來安裝各種版本的不同類型的數據庫做測試,包括編譯對應的數據庫插件,我一直堅信的是一切從實際出發+有實際採用發言權,包括不同Qt版本編譯mysql、oracle數據庫插件,以及不同數據庫在

原创 Qt編寫物聯網管理平臺46-雲端數據同步

一、前言 在上一篇文章說的採集數據轉發的基礎上,針對方案一還做了雲端數據同步功能,滿足各式各樣的用戶需求。雲端數據庫同步,相當於把本地採集到的數據實時存儲到雲端,至於這些記錄到了雲端後什麼用途,客戶端軟件這邊不用管,比如一般會用來做web請

原创 Qt編寫物聯網管理平臺45-採集數據轉發

一、前言 本系統嚴格意義上說是一個直連硬件的客戶端軟件,下面接的modbus協議的設備直接通過網絡或者串口和軟件通信,軟件負責解析數據和存儲記錄。有時候客戶想要領導辦公室或者分管這一塊的部門經理辦公室,也安裝一套這樣的軟件,能夠查看到對應設

原创 Qt編寫物聯網管理平臺44-告警郵件轉發

一、前言 上一篇文章說的是告警短信發送,這種效率非常高,缺點也很明顯,需要購買特定的短信硬件設備支持纔行,而且每條短信都要收費,如果要求發送的短信數量特別多,這個費用常年累月下來也是不少的,客戶就不願意了,所以又衍生出了另外一種方式,那就是

原创 Qt編寫物聯網管理平臺43-告警短信轉發

一、前言 系統在運行過程中,會實時採集設備的數據,當採集到的數據發生報警後,可以將報警信息以短信的形式發送給指定的管理員(可以是多個),這樣管理員就算不在現場,也能第一時間知道哪裏發生了報警,可以緊急趕往現場處置。很多時候軟件都是放在現場電

原创 Qt編寫物聯網管理平臺42-數據查詢導出打印

一、前言 本系統存儲的三大類記錄,運行日誌、報警日誌、用戶日誌,這些不同類似的記錄,都需要提供查詢功能,可以按照記錄的時間範圍等條件查詢,查詢的記錄需要做分頁顯示,爲了分頁顯示還特意花了很多時間專門封裝了一個通用分頁控件,分兩部分,一部分專

原创 Qt編寫物聯網管理平臺41-自動清理早期數據

一、前言 隨着時間的增加,存儲的歷史記錄也在不斷增加,如果設備數量很多,存儲間隔很短,不用多久,數據庫中的記錄就非常多,至少是百萬級別起步,而且有些用戶還是需要存儲每一次的採集的數據,這數據量別說一年,就是一個月下來都是恐怖級別的,所以這就

原创 Qt編寫物聯網管理平臺40-類型種類

一、前言 爲了增強本系統的拓展性,做成通用的物聯網管理平臺,特意將控制器主設備類型、探測器子設備類型、對應種類符號等信息,全部做成表格可自定義添加和修改,這樣在控制器信息表和探測器信息表管理的時候,可以自由下拉選擇,而不用去更改源代碼程序,

原创 Qt編寫物聯網管理平臺39-報警聯動

一、前言 本系統支持報警聯動,就是某個探測器報警後,再去下發命令,通知下面的繼電器警號,一般是通過串口發送,由於現場會利用現有的串口線路比如485總線,所以本系統需要做特殊處理,就是公用485通信總線,在報警聯動表中,如果添加的串口號是在端

原创 Qt編寫物聯網管理平臺38-多種數據庫支持

一、前言 本系統設計之初就要求支持多種不同的數據庫,比如sqlite、mysql、postgres、sqlserver等,甚至包括國產數據庫比如人大金倉kingbase等,(由於現在國產化的大力推進,國產數據庫也是必須要支持的),Qt中封裝