2025-08-26 23:55:59 +08:00

308 lines
8.8 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QIcon>
#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<int>()<<200<<900);
ui->splitter->setSizes(QList<int>()<<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<SAddPointInfo> >("VectorAddPointInfoPtr");
qRegisterMetaType<iot_idl::SRealTimeDataPkg>("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<QString>*,int,int,int,int,QMap<int,bool>,QString,QString)),
m_pRealDatabaseShow,SLOT(slot_showTable(QString,QVector<QString>*,int,int,int,int,QMap<int,bool>,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);
}