#include "mainwindow.h" #include "ui_mainwindow.h" #include #include "CommonSheet.h" #include "pub_utility_api/FileUtil.h" MainWindow::MainWindow(CSystemResources *pSystemResources, QWidget *parent) : CustomUiMainWindow(parent), m_pSystemResources(pSystemResources), m_pFessim(NULL), m_pUpdateThread(NULL), m_pEventFormShow(NULL), ui(new Ui::MainWindow) { ui->setupUi(this); //setMinimumSize(1200,755); setWindowTitle(tr("调试助手")); initDebugTool(); setTitleWidget(ui->mainmenu); connect(ui->stackedWidget,&QStackedWidget::currentChanged,this,&MainWindow::changeTab); } MainWindow::~MainWindow() { //releaseResouce(); if(m_pUpdateThread) { delete m_pUpdateThread; m_pUpdateThread =NULL; } delete ui; } void MainWindow::initDebugTool() { initLogSystem(); initVariable(); initView(); connectSignalSlot(); m_pUpdateThread->start(); } void MainWindow::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; m_pCommTool = new CCommTool; } void MainWindow::initView() { addRealData(); addRealAlarm(); addRealEvent(); addHistoryEvent(); addRealDataBase(); addCommTool(); initMenuView(); ui->splitter_2->setSizes(QList()<<200<<900); ui->splitter->setSizes(QList()<<200<<900); ui->memuForm->setButtonClicked(1); ui->stackedWidget->setCurrentIndex(1); } void MainWindow::initMenuView() { QPushButton* btn; btn= new QPushButton(); btn->setObjectName("btn_realdata"); btn->setText(tr("实时数据")); ui->memuForm->addToolBtn(btn,1); btn= new QPushButton(); btn->setObjectName("btn_fessim"); btn->setText(tr("前置数据")); ui->memuForm->addToolBtn(btn,3); btn= new QPushButton(); btn->setObjectName("btn_realdatabase"); btn->setText(tr("实时库表")); ui->memuForm->addToolBtn(btn,2); btn= new QPushButton(); btn->setObjectName("btn_realalarm"); btn->setText(tr("事件信息")); ui->memuForm->addToolBtn(btn,0); btn = new QPushButton(); btn->setObjectName("btn_commtool"); btn->setText(tr("调试工具")); ui->memuForm->addToolBtn(btn,4); } void MainWindow::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 MainWindow::addRealAlarm() { QGridLayout *gridLayout = new QGridLayout(ui->stackedWidgetPage1); ui->textEdit_status->setHidden(true); ui->stackedWidgetPage1->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 MainWindow::addRealEvent() { } void MainWindow::addHistoryEvent() { } void MainWindow::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 MainWindow::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 MainWindow::addFessim() { QGridLayout *gridLayout = new QGridLayout(ui->stackedWidgetPage4); gridLayout->setSpacing(6); gridLayout->setContentsMargins(0, 0, 0, 0); gridLayout->addWidget(m_pFessim, 0, 0, 1, 1); m_pFessim->Init(); } void MainWindow::addCommTool() { QGridLayout *gridLayout = new QGridLayout(ui->stackedWidgetPage5); gridLayout->setSpacing(6); gridLayout->setContentsMargins(0, 0, 0, 0); gridLayout->addWidget(m_pCommTool , 0 , 0 , 1 , 1); } void MainWindow::initLogSystem() { // QString app = QString::fromStdString(CN_AppName_BASE); // iot_public::StartLogSystem(app.toStdString().c_str(),CN_ProcName_debug_tool.c_str()); // LOGINFO("initLogSystem()成功!"); } void MainWindow::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 MainWindow::releaseResouce() { iot_service::CDpcdaForApp::releaseGlobalThread(); //< 释放消息总线库 iot_net::releaseMsgBus(); //< 停止日志系统 //iot_public::StopLogSystem(); } void MainWindow::connectSignalSlot() { qRegisterMetaType< QVector >("VectorAddPointInfoPtr"); qRegisterMetaType("iot_idl::SRealTimeDataPkg"); connect(m_pRealDataSelect,&CRealDataSelect::signal_batchAddPoint, m_pRealDataWatch,&CRealDataWatch::slot_batchAddPoint,Qt::UniqueConnection); connect(m_pUpdateThread,&CUpdateThread::signal_updatePntRealData, m_pRealDataWatch,&CRealDataWatch::slot_updatePntRealData,Qt::UniqueConnection); 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))); connect(ui->memuForm, SIGNAL(buttonClicked(int)),ui->stackedWidget, SLOT(setCurrentIndex(int))); } void MainWindow::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; } case 4:{ ui->textEdit_status->setHidden(true); break; } default: break; } } void MainWindow::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 MainWindow::slot_selectTextEdit(QString allQString) { ui->textEdit_status->setReadOnly(true); ui->textEdit_status->setText(allQString); }