版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
10超級終端掌握臺命令行Serial串口調(diào)試工具軟件文檔積分下載可免費供給技術支持,需要本程序源代碼的可聯(lián)系作者。名目\l“_TOC_250024“設計目的 2\l“_TOC_250023“根本功能 2\l“_TOC_250022“開發(fā)環(huán)境 2\l“_TOC_250021“使用說明 2\l“_TOC_250020“頁面介紹 2\l“_TOC_250019“調(diào)試窗口的使用 3\l“_TOC_250018“全局及運行流程 3\l“_TOC_250017“主函數(shù)流程 3\l“_TOC_250016“數(shù)據(jù)發(fā)送流程 4\l“_TOC_250015“數(shù)據(jù)接收流程 4\l“_TOC_250014“全局數(shù)據(jù) 5\l“_TOC_250013“配置數(shù)據(jù) 5\l“_TOC_250012“各功能頁面 5\l“_TOC_250011“串口參數(shù)配置頁面ParamDialog 5\l“_TOC_250010“界面設計 5\l“_TOC_250009“類設計 6\l“_TOC_250008“保存配置文件 7\l“_TOC_250007“加載配置 7顯示端口信息 7指定名稱處理 7指定波特率的處理 7填充候選參數(shù) 8\l“_TOC_250006“顯示UI頁面 8獵取頁面的最配置數(shù)據(jù) 8\l“_TOC_250005“確認保存 8\l“_TOC_250004“主窗口頁面MainWindow 8\l“_TOC_250003“界面設計 8類設計 9\l“_TOC_250002“關閉窗口 11關閉串口 11連接串口 11\l“_TOC_250001“寫串口 11讀串口 11\l“_TOC_250000“處理出錯信息 11快捷發(fā)送頁面 12加載用戶喜好配置 12保存用戶喜好 12掌握臺控件Console 12控件設計 12類設計 12設置掌握臺的編輯狀態(tài) 13自定義粘貼行為 13將數(shù)據(jù)顯示到掌握臺 13按鍵響應處理 14鼠標點擊響應處理 14查找關鍵字 14選項配置頁面ConfigDialog 14界面設計 14類設計 14加載配置 15保存配置文件 15顯示UI頁面 15獵取頁面的最配置數(shù)據(jù) 16加載默認配置按鈕執(zhí)行 16確認保存 16設計目的根本功能WindowsXP以前系統(tǒng)帶的串口超級終端的功能,通過實際使用閱歷,自行編寫超級終端程序??赏瓿扇藱C交互,配置信息保存,底部自帶編輯窗口,可復制文件等功能,格外Console完成交互的狀況下使用。其中串口名稱、波特率可支持自定義,便利跨平臺使用。MARK32023-開發(fā)環(huán)境WindowsQt5.10.1Qt自帶的串口類。使用說明頁面介紹參數(shù)配置頁面如下:加載默認值,可以用在參數(shù)設置亂了的狀況下恢復。確定并保存可保存配置信息到文件,下次打自動顯示。調(diào)試窗口的使用為便利編碼即調(diào)試,設計中使用了調(diào)試窗口,便利掌握臺打印信息。開啟調(diào)試窗口的方法是:在工程代碼名目的.pro工程文件中添加一行:CONFIG+=console#顯示掌握臺提示窗口,以便利調(diào)試MARK-28121全局及運行流程主函數(shù)流程創(chuàng)立應用程序創(chuàng)立應用程序參數(shù)配置對話框創(chuàng)立主窗口加載配置文件否是否完成配置處理消息循環(huán)是顯示主窗口主程序消息循環(huán)數(shù)據(jù)發(fā)送流程發(fā)送流程Console按鈕大事處理keyPressEvent發(fā)送流程Console按鈕大事處理keyPressEvent窗口主窗口槽函數(shù)串口發(fā)送數(shù)據(jù)接收流程當串口獲得數(shù)據(jù)后,將觸發(fā)主窗口中的槽函數(shù),調(diào)用Console中的函數(shù),將數(shù)據(jù)顯示出來。數(shù)據(jù)接收流程如下。接收流程接收流程串口發(fā)送信號調(diào)用主窗口的readData函數(shù)調(diào)用Consle的putData函數(shù)Console完成處理顯示全局數(shù)據(jù)配置數(shù)據(jù)功能:配置數(shù)據(jù)說明:端口配置數(shù)據(jù),可保持到配置文件中typedefstruct{QStringname;//串口端口名稱qint32baudRate;//串口波特率QSerialPort::DataBitsdataBits;//數(shù)據(jù)位數(shù)//實際使用的類型,和string開頭的對應,可便利使用QSerialPort::Parityparity;//校驗QSerialPort::StopBitsstopBits;//停頓位QSerialPort::FlowControlflowControl;//流量掌握QStringstringDataBits;//增加同樣的字符串格式配置,可便利編程及用戶顯示QStringstringParity;//字符串版本QStringstringStopBits;//停頓位QStringstringFlowControl;//流控intlocalEchoEnabled;//是否本地回顯0-不回顯}ConfigData;externConfigDatasetting;//extern以便利引用此頭文件的地方,都可直接使用此全局變量externconstConfigDatadefaultSetting;//定義全局的默認配置數(shù)據(jù)各功能頁面ParamDialog界面設計界面設計如下:類設計類的成員包括:explicitParamDialog(QWidget*parent=0);~ParamDialog;voidloadConfigData(ConfigData&configData);//加載配置voidsetUIConfigData(constConfigData&configData);//依據(jù)配置數(shù)據(jù),重顯示頁面boolfirstConfig=false;//是否已完成第一次配置,用于啟動時推斷用槽函數(shù)包括:privateslots:voidshowPortInfo(intidx);//顯示端口的具體信息voidcheckCustomBaudRatePolicy(intidx);//客戶波特率自定義選項〔Custom〕的處理voidon_btnCancel_clicked;//取消voidon_btnLoadDefaultConfig_clicked;//加載默認配置voidon_btnConfirmSave_clicked;//確定并保存私有函數(shù)及成員:private:voidfillUICandidate;//填充候選參數(shù)boolcheckCustomPortNamePolicy(intidx);//〔Custom〕〔放showPortInfo里面了〕voidsaveConfigFile(constConfigData&configData);//保存配置文件voidupdateSetting;//setting配置Ui::ParamDialog*ui;//QIntValidator*m_intValidator=nullptr;//輸入合法性推斷構(gòu)造函數(shù)如下:ParamDialog::ParamDialog(QWidget*parent):QDialog(parent),ui(newUi::ParamDialog),m_intValidator(newQIntValidator(0,4000000,this))//設定波特率的范圍{ui->setupUi(this);connect(ui->cbSerialPort,QOverload<int>::of(&QComboBox::currentIndexChanged),//連接int的信號this,&ParamDialog::showPortInfo);connect(ui->cbBaudRate, QOverload<int>::of(&QComboBox::currentIndexChanged),//關聯(lián)選擇項轉(zhuǎn)變時調(diào)用的槽this,&ParamDialog::checkCustomBaudRatePolicy);fillUICandidate;//填充待選參數(shù)}保存配置文件函數(shù)功能:保存配置到文件輸入輸出:null返回值:void說明:槽函數(shù)voidParamDialog::saveConfigFile(constConfigData&configData)加載配置函數(shù)功能:加載配置時調(diào)用輸入輸出:ConfigData&configData返回值:void說明:加載.ini配置文件voidParamDialog::loadConfigData(ConfigData&configData)顯示端口信息函數(shù)功能:顯示端口信息輸入輸出:intidx索引項返回值:void說明:槽函數(shù)voidParamDialog::showPortInfo(intidx)指定名稱處理函數(shù)功能:指定名稱處理輸入輸出:intidx索引項返回值:void說明:客戶自定義選項〔Custom〕的處理〔放到showPortInfo里面了〕boolParamDialog::checkCustomPortNamePolicy(intidx)指定波特率的處理函數(shù)功能:指定波特率的處理輸入輸出:intidx索引項返回值:void說明:槽函數(shù)voidParamDialog::checkCustomBaudRatePolicy(intidx)填充候選參數(shù)函數(shù)功能:填充候選參數(shù)輸入輸出:返回值:void說明:槽函數(shù)voidParamDialog::fillUICandidateUI頁面UI頁面輸入輸出:constConfigData&configData返回值:void說明:加載.ini配置文件voidParamDialog::setUIConfigData(constConfigData&configData)獵取頁面的最配置數(shù)據(jù)函數(shù)功能:獵取頁面的最配置數(shù)據(jù)輸入輸出:返回值:voidsetting的值voidParamDialog::updateSetting確認保存函數(shù)功能:確認保存按鈕輸入輸出:返回值:void說明:槽函數(shù)voidParamDialog::on_btnConfirmSave_clickedMainWindow界面設計界面設計如下:類設計類的成員包括:public:explicitMainWindow(QWidget*parent=0);~MainWindow;voidsetUIConfigData(constConfigData&configData);//依據(jù)配置數(shù)據(jù),重顯示頁面,轉(zhuǎn)變配置文件后需調(diào)用一次voidloadFavoriteSettings;//加載用戶操作習慣〔窗口大小〕配置protected:voidcloseEvent(QCloseEvent*event)override;//重寫關閉大事槽函數(shù):privateslots:voidwriteData(constQByteArray&data);//寫串口數(shù)據(jù)槽voidreadData;//讀串口數(shù)據(jù)槽voidhandleError(QSerialPort::SerialPortErrorerror);//處理串口錯誤槽voidon_actionConnect_triggered;//連接//菜單和工具欄項voidon_actionDisconnect_triggered;voidon_actionSettings_triggered;//串口參數(shù)設置voidon_actionOptions_triggered;voidon_actionClear_triggered;voidon_actionFind_triggered;voidon_actionAbout_triggered;voidon_actionQuick_triggered;//快捷發(fā)送私有成員:Ui::MainWindow*ui;voidshowStatusMessage(constQString&message);//顯示信息到狀態(tài)欄voidcloseSerialPort;//關閉串口voidsaveFavoriteSettings;//保存用戶操作習慣〔窗口大小〕到文件中QLabel*m_status=nullptr;Console*m_console=nullptr;QPlainTextEdit*edit=nullptr;//底行編輯功能QSerialPort*m_serial=nullptr;//串口對象指針QLineEdit*keyword;//查找的關鍵字公有成員:ConfigDialog*configDialog=nullptr;//配置對話框構(gòu)造函數(shù)設計如下:MainWindow::MainWindow(QWidget*parent):QMainWindow(parent),ui(newUi::MainWindow),m_status(newQLabel)//狀態(tài)欄控件,m_serial(newQSerialPort(this))//串口對象,configDialog(newConfigDialog)//配置窗口不是主窗口的子窗口{ui->setupUi(this);QVBoxLayout*verticalLayout;//設置垂直布局,用于對頁面的中心主控件布局verticalLayout=newQVBoxLayout(ui->centralWidget);verticalLayout->setSpacing(0);//不留空白verticalLayout->setContentsMargins(0,0,0,0);//m_console=newConsole(ui->centralWidget);//掌握臺控件verticalLayout->addWidget(m_console);//添加到主布局中edit=newQPlainTextEdit(ui->centralWidget);//底部編輯欄控件edit->setMaximumHeight(40);//設置最大高度verticalLayout->addWidget(edit);//添加到主布局中ui->statusBar->addWidget(m_status);//添加狀態(tài)欄keyword=newQLineEdit(this);//查找功能ui->editToolBar->setMaximumWidth(180);//設置查找窗口大小ui->editToolBar->insertWidget(ui->actionFind,keyword);//插入到工具欄中setTabOrder(m_console,edit);//tab挨次setTabOrder(edit,keyword);//ui->actionConnect->setEnabled(true);//可用ui->actionDisconnect->setEnabled(false);//開頭時不行用狀態(tài)ui->actionSettings->setEnabled(true);//ui->actionQuick->setEnabled(false);//將掌握臺控件的用戶編輯信號,關聯(lián)到底部控件的槽connect(m_console,&Console::userEdit,edit,&QPlainTextEdit::setPlainText);connect(ui->actionExit,&QAction::triggered,this,&MainWindow::close);//關聯(lián)退出connect(m_serial,&QSerialPort::errorOccurred,this,&MainWindow::handleError);//關聯(lián)串口錯誤信號槽connect(m_serial,&QSerialPort::readyRead,this,&MainWindow::readData);//關聯(lián)讀取數(shù)據(jù)
connect(m_console,&Console::getData,this,&MainWindow::writeData);//關聯(lián)用戶輸入數(shù)據(jù)的信號槽關閉窗口函數(shù)功能:關閉窗口輸入輸出:QCloseEvent*event返回值:void說明:保存用戶喜好voidMainWindow::closeEvent(QCloseEvent*event)關閉串口函數(shù)功能:關閉串口輸入輸出:返回值:void說明:voidMainWindow::closeSerialPort連接串口函數(shù)功能:連接串口輸入輸出:返回值:說明:voidMainWindow::on_actionConnect_triggered寫串口函數(shù)功能:寫串口輸入輸出:constQByteArray&data返回值:void說明:voidMainWindow::writeData(constQByteArray&data)讀串口函數(shù)功能:讀串口輸入輸出:返回值:void說明:槽函數(shù)voidMainWindow::readData處理出錯信息函數(shù)功能:處理出錯信息輸入輸出:QSerialPort::SerialPortErrorerror返回值:void說明:槽函數(shù)voidMainWindow::handleError(QSerialPort::SerialPortErrorerror)函數(shù)功能:快捷發(fā)送輸入輸出:返回值:void說明:voidMainWindow::on_actionQuick_triggered加載用戶喜好配置函數(shù)功能:加載用戶喜好配置輸入輸出:返回值:void說明:voidMainWindow::loadFavoriteSettings保存用戶喜好voidParamDialog::on_btnConfirmSave_clicked函數(shù)功能:保存用戶喜好配置輸入輸出:返回值:void說明:voidMainWindow::saveFavoriteSettingsConsole控件設計QPlainTextEdit。類設計類的成員包括:signals:voidgetData(constQByteArray&data);//當獵取到用戶鍵盤輸入文本時,發(fā)送該信號以便寫串口voiduserEdit(constQString&text);//發(fā)送用戶需要編輯的文本行,以便在底行編輯publicslots:voidsetLocalEchoEnabled(intset);//設置是否本地自動回顯voidsetEditPos;//設置用戶輸入光標,以到達只有在當前行可編輯狀態(tài)public:explicitConsole(QWidget*parent=nullptr);voidputData(constQByteArray&data);//串口收到數(shù)據(jù)后,向掌握臺界面上顯示數(shù)據(jù)voidfindWord(constQString&word);//查找字符串用protected:voidkeyPressEvent(QKeyEvent*e)override;//重寫按鍵消息voidmousePressEvent(QMouseEvent*e)override;//重寫鼠標按鍵消息//voidmouseDoubleClickEvent(QMouseEvent*e)override;//鼠標雙擊時的處理函數(shù)//voidcontextMenuEvent(QContextMenuEvent*e)override;//彈出右鍵菜單用//voidfocusInEvent(QFocusEvent*e);//當獲得輸入焦點時的處理函數(shù)voidinsertFromMimeData(constQMimeData*source);//插入富文本時調(diào)用〔粘貼或者拖拽到窗口時〕private:boolm_localEchoEnabled=false;//是否翻開本地回顯功能inteditLine=0;//當前編輯行〔放到底部可編輯的〕構(gòu)造函數(shù)設計如下:document->setMaximumBlockCount(200);//200行QPalettep=palette;p.setColor(QPalette::Base,Qt::black);//設置背風光為黑色p.setColor(QPalette::Text,Qt::white);//字體為白色setPalette(p);//設置調(diào)色板顏色// QFontfont=this->font;//設置字體大小參考// font.setPointSize(10);// this->setFont(font);connect(this,&Console::cursorPositionChanged,this,&Console::setEditPos);//光標轉(zhuǎn)變時調(diào)用//connect(this,&Console::textChanged,this,&Console::setEditPos);//文本轉(zhuǎn)變時調(diào)用QScrollBar*bar=verticalScrollBar;//設置滾動條bar->setValue(bar->maximum);//設為最大設置掌握臺的編輯狀態(tài)函數(shù)功能:設置掌握臺的編輯狀態(tài)輸入輸出:返回值:void說明:類似命令行掌握臺,當前行可編輯,其它行不行編輯voidConsole::setEditPos自定義粘貼行為函數(shù)功能:自定義粘貼行為輸入輸出:constQMimeData*source返回值:void說明:假設發(fā)生粘貼或者拖拽時,調(diào)用處理voidConsole::insertFromMimeData(constQMimeData*source)將數(shù)據(jù)顯示到掌握臺函數(shù)功能:將數(shù)據(jù)顯示到掌握臺輸入輸出:constQByteArray&data返回值:void說明:接收到數(shù)據(jù)或者快捷發(fā)送時會調(diào)用voidConsole::putData(constQByteArray&data)按鍵響應處理函數(shù)功能:按鍵響應處理輸入輸出:QKeyEvent*e返回值:void說明:voidConsole::keyPressEvent(QKeyEvent*e)鼠標點擊響應處理函數(shù)功能:鼠標點擊響應處理輸入輸出:QMouseEvent*e返回值:void說明:voidConsole::mousePressEvent(QMouseEvent*e)查找關鍵字函數(shù)功能:查找關鍵字輸入輸出:QMouseEvent*e返回值:void說明:voidConsole::findWord(constQString&word)ConfigDialog界面設計界面設計如下:類設計類的成員包括:public:explicitConfigDialog(QWidget*parent=0);~ConfigDialog;voidloadConfigData(ConfigData&configData);//從配置文件中加載配置voidsetUIConfigData(constConfigData&configData);//依據(jù)配置設置界面privateslots:voidon_btnLoadDefaultConfig_clicked;//加載默認配置voidon_
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年集裝箱租賃運輸框架協(xié)議
- 2024年簡化版離婚合同范本版B版
- 2024智能家居產(chǎn)品采購與技術服務合同
- 2024年股權(quán)轉(zhuǎn)讓合同標的及轉(zhuǎn)讓價格
- 2024水利風景區(qū)建設與經(jīng)營合同
- 2024年度物聯(lián)網(wǎng)支付擔保合同3篇
- 2024年裝飾工程咨詢合同3篇
- 2024年舞蹈工作室與學員合作協(xié)議書范本3篇
- 2024年度渣土運輸合同附帶建設項目環(huán)保驗收服務協(xié)議3篇
- 2024年高端裝備制造技術研發(fā)保密協(xié)議
- 中醫(yī)適宜技術發(fā)展現(xiàn)狀
- 部編人教版四年級數(shù)學上冊期末考試卷(可打印)
- 一例阿爾茨海默病患者的護理查房
- 農(nóng)貿(mào)市場安全生產(chǎn)工作方案
- 咸陽租房合同
- 《鋼筋保護層檢測》課件
- YJ-T 27-2024 應急指揮通信保障能力建設規(guī)范
- 合伙人協(xié)議書決策機制
- 西藏畜牧獸醫(yī)知識培訓課件
- 護理專業(yè)人才培養(yǎng)方案論證報告
- 我的家鄉(xiāng)武漢
評論
0/150
提交評論