#include "CDebugTool.h" #include "ui_CDebugTool.h" #include #include "CommonSheet.h" #include "pub_utility_api/FileUtil.h" CDebugTool::CDebugTool(CSystemResources *pSystemResources, QWidget *parent): m_pSystemResources(pSystemResources), CustomUiMainWindow(parent), m_pFessim(NULL), m_pUpdateThread(NULL), m_pEventFormShow(NULL), ui(new Ui::CDebugTool) { ui->setupUi(this); //setMinimumSize(1200,755); setWindowTitle(tr("调试助手工具")); setWindowIcon(QIcon(":/debug_tool.ico")); CommonSheet sheetStyle; QString sheet; if(sheetStyle.getSheet(sheet)) { setStyleSheet(sheet); }else { LOGERROR("MainWindow::initSheet():获取样式文件失败!"); } initDebugTool(); setTitleWidget(ui->mainmenu); connect(ui->tabWidget,&QTabWidget::currentChanged,this,&CDebugTool::changeTab); } CDebugTool::~CDebugTool() { //releaseResouce(); if(m_pUpdateThread) { delete m_pUpdateThread; m_pUpdateThread =NULL; } delete ui; } void CDebugTool::initDebugTool() { initLogSystem(); initVariable(); initView(); connectSignalSlot(); m_pUpdateThread->start(); } void CDebugTool::initVariable() { m_pRealDataSelect = new CRealDataSelect; m_pRealDataWatch = new CRealDataWatch; m_pRealDatabaseSelect = new CRealDatabaseSelect; m_pRealDatabaseShow = new CRealDatabaseShow; m_pUpdateThread = new CUpdateThread; m_pEventFormShow = new CEventFormShow; } void CDebugTool::initView() { addRealData(); addRealAlarm(); addRealEvent(); addHistoryEvent(); addRealDataBase(); ui->splitter_2->setSizes(QList()<<200<<900); ui->splitter->setSizes(QList()<<200<<900); } void CDebugTool::addRealData() { QGridLayout *gridLayout = new QGridLayout(ui->groupBox_1); gridLayout->setSpacing(6); gridLayout->setContentsMargins(0, 0, 0, 0); gridLayout->addWidget(m_pRealDataSelect, 0, 0, 1, 1); m_pRealDataSelect->setSystemResources(m_pSystemResources); m_pRealDataSelect->initSelect(); gridLayout = new QGridLayout(ui->groupBox_2); gridLayout->setSpacing(6); gridLayout->setContentsMargins(0, 0, 0, 0); gridLayout->addWidget(m_pRealDataWatch, 0, 0, 1, 1); m_pRealDataWatch->setSystemResources(m_pSystemResources); m_pRealDataWatch->initWatch(); ui->textEdit_status->setToolTip("具体状态"); m_pRealDataSelect->setRealDataWatch(m_pRealDataWatch); } void CDebugTool::addRealAlarm() { QGridLayout *gridLayout = new QGridLayout(ui->tab); ui->textEdit_status->setHidden(true); ui->tab->setLayout(gridLayout); gridLayout->setSpacing(6); gridLayout->setContentsMargins(0, 0, 0, 0); gridLayout->addWidget(m_pEventFormShow, 0, 0, 1, 1); m_pEventFormShow->setSystemResources(m_pSystemResources); m_pEventFormShow->initRealModel(); //m_pEventFormShow->setSystemResources(m_pSystemResources); // m_pAlarmFormShow->initSelect(); } void CDebugTool::addRealEvent() { } void CDebugTool::addHistoryEvent() { } void CDebugTool::addRealDataBase() { QGridLayout *gridLayout4 = new QGridLayout(ui->groupBox_4); gridLayout4->setSpacing(6); gridLayout4->setContentsMargins(0, 0, 0, 0); gridLayout4->addWidget(m_pRealDatabaseSelect, 0, 0, 1, 1); m_pRealDatabaseSelect->initRealDb(m_pSystemResources); QGridLayout * gridLayout5 = new QGridLayout(ui->groupBox_5); gridLayout5->setSpacing(6); gridLayout5->setContentsMargins(0, 0, 0, 0); gridLayout5->addWidget(m_pRealDatabaseShow, 0, 0, 1, 1); m_pRealDatabaseShow->initRealDatabaseShow(m_pSystemResources); } void CDebugTool::addNodeStatus() { // QGridLayout *gridLayout = new QGridLayout(ui->tab_nodeStatus); // gridLayout->setSpacing(6); // gridLayout->setContentsMargins(0, 0, 0, 0); // gridLayout->addWidget(m_pNodeStatus, 0, 0, 1, 1); } void CDebugTool::addFessim() { QGridLayout *gridLayout = new QGridLayout(ui->tab_fes); gridLayout->setSpacing(6); gridLayout->setContentsMargins(0, 0, 0, 0); gridLayout->addWidget(m_pFessim, 0, 0, 1, 1); m_pFessim->Init(); } void CDebugTool::initLogSystem() { // QString app = QString::fromStdString(CN_AppName_BASE); // iot_public::StartLogSystem(app.toStdString().c_str(),CN_ProcName_debug_tool.c_str()); // LOGINFO("initLogSystem()成功!"); } void CDebugTool::initMsgBus() { //< 初始化消息总线库 if (!(iot_net::initMsgBus("debugToolAppName", "debugToolProcessName"))) { qDebug() << "Initialize message bus failed, exit !" << endl; LOGERROR("Initialize message bus failed, exit !"); return; } else { qDebug() << "Initialize message bus successed !" << endl; LOGINFO("Initialize message bus successed !"); } iot_service::CDpcdaForApp::initGlobalThread(); return; } void CDebugTool::releaseResouce() { iot_service::CDpcdaForApp::releaseGlobalThread(); //< 释放消息总线库 iot_net::releaseMsgBus(); //< 停止日志系统 //iot_public::StopLogSystem(); } void CDebugTool::connectSignalSlot() { connect(m_pRealDataSelect,SIGNAL(signal_addPoint(QString,uint,QString,uint,QString,QString,QString,QString,QString,QString,QString,int,QString)), m_pRealDataWatch,SLOT(slot_addPoint(QString,uint,QString,uint,QString,QString,QString,QString,QString,QString,QString,int,QString))); connect(m_pUpdateThread,SIGNAL(signal_updateAi(QString,float,uint)), m_pRealDataWatch,SLOT(slot_updateAi(QString,float,uint))); connect(m_pUpdateThread,SIGNAL(signal_updateDi(QString,int,uint)), m_pRealDataWatch,SLOT(slot_updateDi(QString,int,uint))); connect(m_pUpdateThread,SIGNAL(signal_updatePi(QString,double,uint)), m_pRealDataWatch,SLOT(slot_updatePi(QString,double,uint))); connect(m_pUpdateThread,SIGNAL(signal_updateMi(QString,int,uint)), m_pRealDataWatch,SLOT(slot_updateMi(QString,int,uint))); connect(m_pRealDatabaseSelect,SIGNAL(signal_showTable(QString,QVector*,int,int,int,int,QMap,QString,QString)), m_pRealDatabaseShow,SLOT(slot_showTable(QString,QVector*,int,int,int,int,QMap,QString,QString))); connect(m_pRealDatabaseSelect,SIGNAL(signal_showOrHideColumn(int,int)), m_pRealDatabaseShow,SLOT(slot_showOrHindColumn(int,int))); connect(m_pRealDataWatch,SIGNAL(signal_selectTextEdit(QString ,QString , int )), this,SLOT(slot_selectTextEdit(QString,QString, int ))); connect(m_pRealDataWatch,SIGNAL(signal_paging()),m_pRealDataSelect,SLOT(slot_paging())); connect(m_pRealDatabaseShow,SIGNAL(signal_selectTextEdit(QString)), this,SLOT(slot_selectTextEdit(QString))); } void CDebugTool::changeTab(int index) { switch (index) { case 0: ui->textEdit_status->setHidden(true); break; case 1: ui->textEdit_status->setHidden(false); break; case 2:{ ui->textEdit_status->setHidden(false); break; } case 3: { ui->textEdit_status->setHidden(true); if(m_pFessim == NULL) { m_pFessim = new CFessim; addFessim(); } //此处判断是否连接 若连接 则不做处理 若断开状态 则直接调用连接 if(!m_pFessim->isConnect()) { if(!m_pFessim->slot_connect()) { return ; } int index = m_pFessim->getCurrentIndex(); m_pFessim->setActiveWindow(index); } break; } default: break; } } void CDebugTool::slot_selectTextEdit(QString allStatus, QString m_allName, int m_value) { ui->textEdit_status->setReadOnly(true); ui->textEdit_status->setText("当前标签为"+m_allName+", 值为" +QString::number(m_value)+", 状态为" +allStatus); } void CDebugTool::slot_selectTextEdit(QString allQString) { ui->textEdit_status->setReadOnly(true); ui->textEdit_status->setText(allQString); }