整合營銷服務(wù)商

          電腦端+手機端+微信端=數(shù)據(jù)同步管理

          免費咨詢熱線:

          Qt編寫控件屬性設(shè)計器7-串口采集

          Qt編寫控件屬性設(shè)計器7-串口采集

          、前言

          數(shù)據(jù)源是組態(tài)軟件的核心靈魂,少了數(shù)據(jù)源,組態(tài)就是個花架子沒卵用,一般數(shù)據(jù)源有三種方式獲取,串口、網(wǎng)絡(luò)、數(shù)據(jù)庫,至于數(shù)據(jù)規(guī)則是什么,這個用戶自己指定,本設(shè)計器全部采用第一個字節(jié)作為數(shù)據(jù)來演示。

          串口通信在大量的工業(yè)控制領(lǐng)域用的最多,就因為穩(wěn)定兩個字,長期霸占了幾十年的通信規(guī)則,現(xiàn)在還有大量的工業(yè)控制設(shè)備使用的就是串口通信,Qt5以后封裝了串口通信的類,不過據(jù)說不大好用,也不大穩(wěn)定,本人在早期的Qt版本比如Qt5.3時代用過幾次,是有點莫名其妙的問題,后面索性就不在用自帶的了,而是用的第三方開源的qextserialport,主要還是因為本人做過的硬件設(shè)備上面大量的還是Qt4.8的Qt版本,沒法用Qt5,還沒升級到Qt5可能也是考慮到穩(wěn)定性的原因。

          二、實現(xiàn)的功能

          1. 自動加載插件文件中的所有控件生成列表,默認(rèn)自帶的控件超過120個。

          2. 拖曳到畫布自動生成對應(yīng)的控件,所見即所得。

          3. 右側(cè)中文屬性欄,改變對應(yīng)的屬性立即應(yīng)用到對應(yīng)選中控件,直觀簡潔,非常適合小白使用。

          4. 獨創(chuàng)屬性欄文字翻譯映射機制,效率極高,可以非常方便拓展其他語言的屬性欄。

          5. 所有控件的屬性自動提取并顯示在右側(cè)屬性欄,包括枚舉值下拉框等。

          6. 支持手動選擇插件文件,外部導(dǎo)入插件文件。

          7. 可以將當(dāng)前畫布的所有控件配置信息導(dǎo)出到xml文件。

          8. 可以手動選擇xml文件打開控件布局,自動根據(jù)xml文件加載控件。

          9. 可拉動滑動條、勾選模擬數(shù)據(jù)復(fù)選框、文本框輸入,三種方式來生成數(shù)據(jù)應(yīng)用所有控件。

          10. 控件支持八個方位拉動調(diào)整大小,自適應(yīng)任意分辨率,可鍵盤上下左右微調(diào)位置。

          11. 打通了串口采集、網(wǎng)絡(luò)采集、數(shù)據(jù)庫采集三種方式設(shè)置數(shù)據(jù)。

          12. 代碼極其精簡,注釋非常詳細(xì),可以作為組態(tài)的雛形,自行拓展更多的功能。

          13. 純Qt編寫,支持任意Qt版本+任意編譯器+任意系統(tǒng)。

          三、效果圖

          四、核心代碼

          void frmData::initServer()
          {
           //實例化串口類,綁定信號槽
           com=new QextSerialPort(QextSerialPort::EventDriven, this);
           connect(com, SIGNAL(readyRead()), this, SLOT(readDataCom()));
           //實例化網(wǎng)絡(luò)通信客戶端類,綁定信號槽
           tcpClient=new QTcpSocket(this);
           connect(tcpClient, SIGNAL(readyRead()), this, SLOT(readDataClient()));
           //實例化網(wǎng)絡(luò)通信服務(wù)端類,綁定信號槽
           tcpSocket=NULL;
           tcpServer=new QTcpServer(this);
           connect(tcpServer, SIGNAL(newConnection()), this, SLOT(newConnection()));
           //開啟定時器讀取數(shù)據(jù)庫采集數(shù)據(jù)
           timer=new QTimer(this);
           connect(timer, SIGNAL(timeout()), this, SLOT(readDataDb()));
           timer->setInterval(1000);
          }
          void frmData::on_btnOpenCom_clicked()
          {
           if (ui->btnOpenCom->text()=="打開") {
           com->setPortName(App::PortName);
           bool ok=com->open(QIODevice::ReadWrite);
           if (ok) {
           com->setBaudRate((BaudRateType)App::BaudRate);
           setEnable(ui->btnOpenCom, false);
           ui->btnOpenCom->setText("關(guān)閉");
           }
           } else {
           com->close();
           setEnable(ui->btnOpenCom, true);
           ui->btnOpenCom->setText("打開");
           }
          }
          void frmData::readDataCom()
          {
           QByteArray data=com->readAll();
           if (data.length() <=0) {
           return;
           }
           //默認(rèn)取第一個字節(jié)解析,可以自行更改
           quint8 value=data.at(0);
           ui->txtValue->setText(QString::number(value));
           append(1, data.toHex());
          }
          
          

          五、控件介紹

          1. 超過150個精美控件,涵蓋了各種儀表盤、進度條、進度球、指南針、曲線圖、標(biāo)尺、溫度計、導(dǎo)航條、導(dǎo)航欄,flatui、高亮按鈕、滑動選擇器、農(nóng)歷等。遠(yuǎn)超qwt集成的控件數(shù)量。

          2. 每個類都可以獨立成一個單獨的控件,零耦合,每個控件一個頭文件和一個實現(xiàn)文件,不依賴其他文件,方便單個控件以源碼形式集成到項目中,較少代碼量。qwt的控件類環(huán)環(huán)相扣,高度耦合,想要使用其中一個控件,必須包含所有的代碼。

          3. 全部純Qt編寫,QWidget+QPainter繪制,支持Qt4.6到Qt5.12的任何Qt版本,支持mingw、msvc、gcc等編譯器,支持任意操作系統(tǒng)比如windows+linux+mac+嵌入式linux等,不亂碼,可直接集成到Qt Creator中,和自帶的控件一樣使用,大部分效果只要設(shè)置幾個屬性即可,極為方便。

          4. 每個控件都有一個對應(yīng)的單獨的包含該控件源碼的DEMO,方便參考使用。同時還提供一個所有控件使用的集成的DEMO。

          5. 每個控件的源代碼都有詳細(xì)中文注釋,都按照統(tǒng)一設(shè)計規(guī)范編寫,方便學(xué)習(xí)自定義控件的編寫。

          6. 每個控件默認(rèn)配色和demo對應(yīng)的配色都非常精美。

          7. 超過130個可見控件,6個不可見控件。

          8. 部分控件提供多種樣式風(fēng)格選擇,多種指示器樣式選擇。

          9. 所有控件自適應(yīng)窗體拉伸變化。

          10. 集成自定義控件屬性設(shè)計器,支持拖曳設(shè)計,所見即所得,支持導(dǎo)入導(dǎo)出xml格式。

          11. 自帶activex控件demo,所有控件可以直接運行在ie瀏覽器中。

          12. 集成fontawesome圖形字體+阿里巴巴iconfont收藏的幾百個圖形字體,享受圖形字體帶來的樂趣。

          13. 所有控件最后生成一個動態(tài)庫文件(dll或者so等),可以直接集成到qtcreator中拖曳設(shè)計使用。

          14. 目前已經(jīng)有qml版本,后期會考慮出pyqt版本,如果用戶需求量很大的話。

          15. 自定義控件插件開放動態(tài)庫使用(永久免費),無任何后門和限制,請放心使用。

          16. 目前已提供26個版本的dll,其中包括了qt5.12.3 msvc2017 32+64 mingw 32+64 的。

          17. 不定期增加控件和完善控件,不定期更新SDK,歡迎各位提出建議,謝謝!

          18. Qt入門書籍推薦霍亞飛的《Qt Creator快速入門》《Qt5編程入門》,Qt進階書籍推薦官方的《C++ GUI Qt4編程》。

          19. 強烈推薦程序員自我修養(yǎng)和規(guī)劃系列書《大話程序員》《程序員的成長課》《解憂程序員》,受益匪淺,受益終生!

          力/光伏電站箱變測控裝置華世智能HS2002概述:

          一、華世智能HS2002箱變測控裝置的基本參數(shù):

          ?交流電壓:100V、315V、480V、520V、690V、800V自適應(yīng)

          ?交流電流:5A或1A

          ?交、直流裝置電源:220V或110V

          ?頻率:50Hz

          二、華世智能HS2002箱變測控裝置的適用范圍:

          適用于風(fēng)電或光伏箱變低壓側(cè)、光伏分裂變壓器低壓側(cè)的模擬量采集、電量保護、非電量保護、遠(yuǎn)方控制和通訊功能;實現(xiàn)升壓站對風(fēng)電或光伏箱變的遠(yuǎn)程管理和自動化監(jiān)控,滿足“無人值班,少人值守”運行管理要求

          三、華世智能HS2002箱變測控裝置的主要特點:

          3.1、全密封設(shè)計,精心設(shè)計的抗干擾組件,讓抗振和抗電磁干擾能力得到很大提高,以適應(yīng)惡劣環(huán)境。其可分散安裝于開關(guān)柜上運行

          3.2、工業(yè)級集成電路,保障裝置的穩(wěn)定性和可靠性

          3.3、高性能處理器ARM和高分辨率A/D轉(zhuǎn)換器,能就地實時完成電流、電壓、有功功率、無功功率、功率因數(shù)、頻率、電度等的計算;可實時完成保護、測量等

          3.4、保護功能完全不依賴通訊網(wǎng),網(wǎng)絡(luò)癱瘓與否,不影響保護正常運行

          3.5、軟硬件雙看門狗功能,系統(tǒng)同時具有較高的測量精度和抗干擾能力

          3.6、友好的人機界面,全漢化大屏幕液晶顯示,跳閘報告,告警報告,遙信,遙測,定值整定等,都可在液晶上有明確的漢字標(biāo)識,便于用戶使用和掌握

          3.7、RS-485通信、以太網(wǎng)通信、光纖通信接口(選配);組網(wǎng)經(jīng)濟方便:RS485口可接入?yún)R流箱、逆變器等智能設(shè)備,并可完成規(guī)約轉(zhuǎn)換;具CPU插件自有串口,向外提供規(guī)約接口;以太網(wǎng)通訊RJ45口,以太網(wǎng)光口(選配)可組成自愈式光纖環(huán)網(wǎng)

          光伏電站故障位置信號集中報警裝置HS-MFA系列▼

          天焊好了之前設(shè)計的一塊板子,打算燒錄上程序看看效果。

          因為之前設(shè)計的方案是用串口作為信號輸出,所以燒完了就直接接在pc上看串口繪圖了,可是竟然一個數(shù)也沒有


          打開串口監(jiān)視器發(fā)現(xiàn)它發(fā)來的全是一串又一串的亂碼。

          我找來了好多之前在別的板子上跑過沒問題的程序,燒錄,發(fā)現(xiàn)輸出都變成了亂碼,而這些程序在原有的板子上工作的及其正常。

          我用仿真器進了debug,watch window里面的數(shù)幾乎每個都正常,直到串口發(fā)出的前一刻,每次運算都在我的計劃之中。

          那至少可以初步猜測單片機工作應(yīng)該是正常的,問題出在了串口模塊上。

          我首先懷疑了波特率,不過不管是我的單片機程序還是接受的上位機,波特率都是115200,毫無差錯

          我又把程序改成了不同的幾個波特率,從9600、14400到56000,都沒有解決掉亂碼的問題。

          難道我遇到傳說中的電磁兼容問題了嗎?應(yīng)該不會啊就這么簡單的板子,頻率也不高,不過我還是換了更短的串口線,而且在看串口的時候斷掉了仿真器,防止有什么我不知道的干擾,甚至還讓它離電腦遠(yuǎn)了一些

          當(dāng)然了,毫無作用。

          整個一上午大概就是這樣在反復(fù)的嘗試中消失掉的。

          臨近下班的時候,我問工程師大哥這種串口亂碼的問題一般要怎么解決,不管是收還是發(fā),獲得的都是亂碼。大哥和我說,這一般是波特率的問題,我講我已經(jīng)檢查過了,波特率都是匹配的,而且我也換過好幾種了。

          大哥讓我把tx和rx短接起來,看看自發(fā)自收的效果。


          下午來了之后,我嘗試了短接,最簡單的串口收發(fā)程序,發(fā)現(xiàn)是可以的,watch window里面接受的消息和發(fā)送的消息完美的匹配。

          那真的是波特率的問題嗎?難道是電壓不穩(wěn)晶振的頻率不對了?

          我換用了更穩(wěn)定的電源,后來又嘗試自己手動一點一點的改波特率,看看能不能碰出來它現(xiàn)在的波特率是多少。

          很遺憾沒有成功。

          我?guī)缀跸胍艞墸匦屡獕K板子了,準(zhǔn)備最后看下晶振是不是虛焊


          就在這個時候,隨手拿起來板子我的發(fā)現(xiàn)了異常!




          上面寫的是12M而不是我一直使用的8M!!!




          謎題豁然開朗,我按8M外部時鐘設(shè)計的115200Hz的波特率,實際上在12M時鐘的驅(qū)動下變成了172800Hz,果然最終還是波特率不匹配的問題,只是引起波特率變化的地方在硬件上。

          好嘛,原來是我早上焊晶振的時候順手拿的晶振是12Mhz包里面的,直接給我整懵了半天。。。


          再吐槽一波焊接的事情

          我的焊接水平是太差了

          焊單片機的時候那引腳上的錫死活去不掉,張工都教我好多次了,最后還是勞煩張工給我焊好的



          (貼片單片機太難焊了啊)


          當(dāng)然了,之前非常愚蠢的先焊接上的幾個直插件因為礙事先取掉了,孔里留著錫。

          我要重新焊上自然得先把孔通了




          于是就得用上這個大寶貝——吸錫器

          我看人家老哥用的賊熟練,烙鐵一燙,然后吸錫器砰的一聲孔就通了,干干凈凈,我尋思我也試試


          誒怎么錫沒動啊,誒怎么又沒動,啊我這焊盤怎么都看不見了

          反反復(fù)復(fù)終于通了幾個孔,但是也有好幾個孔焊盤讓我給干廢了

          焊上元件以后拿萬用表一量,得嘞,果然不通。

          不通咋辦呢,飛線唄




          還把電位器的塑料封裝焊壞了一塊。

          都弄完了好好測試一下吧

          發(fā)現(xiàn)單片機使能ad的引腳是懸空的

          仔細(xì)看了看發(fā)現(xiàn)對應(yīng)采樣電阻的焊盤是一點沒剩

          好嘛,這要從單片機的引腳飛線嗎

          飛唄,還能咋地

          當(dāng)然我這愚蠢的手藝肯定不能只連一個腳上,不過還好旁邊那個引腳沒用,就這樣吧

          啊我的這塊板子也太丑了,看著自己造的丑陋怪物真是無語凝噎。。。。


          主站蜘蛛池模板: 精品国产亚洲一区二区在线观看 | 久久精品国产一区二区| 国产一区二区三区精品久久呦| 一级毛片完整版免费播放一区 | 黑人一区二区三区中文字幕| 国产一区二区精品久久91| eeuss鲁片一区二区三区| 极品尤物一区二区三区| 亚洲综合激情五月色一区| 国产视频一区在线播放| 久久免费视频一区| 国产香蕉一区二区在线网站| 亚洲国产精品乱码一区二区| 亚洲AⅤ视频一区二区三区| 中文字幕在线一区| 国产高清在线精品一区二区三区| 日本在线视频一区二区三区| 亚洲av色香蕉一区二区三区蜜桃 | 国产激情一区二区三区在线观看| 亚洲高清日韩精品第一区| 性色AV一区二区三区天美传媒| 国产a久久精品一区二区三区| 极品少妇一区二区三区四区| 内射少妇一区27P| 日韩一区精品视频一区二区| 日本高清成本人视频一区| 中文字幕永久一区二区三区在线观看| 一区二区三区视频免费| 福利一区福利二区| 中文字幕一区一区三区| 日韩精品久久一区二区三区| 亚洲AV网一区二区三区| 国产精品无码一区二区三区毛片| 日本高清无卡码一区二区久久| 一区二区三区影院| 78成人精品电影在线播放日韩精品电影一区亚洲 | 中文字幕日韩一区二区不卡| 波多野结衣一区在线| 一色一伦一区二区三区| 在线观看一区二区三区av| 亚洲一区在线视频|