Compare commits

..

2 Commits

Author SHA1 Message Date
jxder
049ae35d11 修改启动工具界面 以及部分逻辑修改 2025-06-16 20:27:07 +08:00
jxder
af3dee2b44 修改启动工具以及部分细节修改 2025-06-16 20:25:02 +08:00
32 changed files with 10070 additions and 301 deletions

View File

@ -41,6 +41,9 @@ call install_nginx.bat
::数据库升级
cd /d "%scriptPath%"
cd "..\product\%OS_DEFINE%_%SETUP_DEBUG_RELEASE%"
set ceshi="..\product\%OS_DEFINE%_%SETUP_DEBUG_RELEASE%"
echo %ceshi%
start db_installer.exe
cd /d "%scriptPath%"

View File

@ -146,7 +146,7 @@ void pj_manager::loadQss()
void pj_manager::initUi()
{
setWindowTitle(tr("工程管理"));
setWindowTitle(tr("工程备份"));
#ifdef OS_LINUX
setWindowIcon( QIcon( ":res/db_manager.png" ) );
#endif

View File

@ -2,7 +2,7 @@
#define CMENUSTRING_H
const char *g_designer_action = QT_TR_NOOP("图形设计");
const char *g_designer_action = QT_TR_NOOP("组态制作");
const char *g_explorer_action = QT_TR_NOOP("图形浏览");
const char *g_file_operation = QT_TR_NOOP("文件(&F)");

View File

@ -17,8 +17,7 @@ SUBDIRS += \
sys_ctrl \
sys_nodeinfo_tran \
show_node_info \
sys_launcher_srv \
sys_file_auto
sys_launcher_srv
sys_dog_auth_api.depends = sys_license_auth_api
sys_dog_auth_check.depends = sys_license_auth_api sys_dog_auth_api

View File

@ -1,6 +1,6 @@
{
"buttoninfo":{
"count":19,
"count":20,
"num0":{
"zh":"人机界面",
"en":"HMI",
@ -44,14 +44,14 @@
"icon":"../../resource/zh/sys_startup/DevModeling.png"
},
"num6":{
"zh":"图形设计",
"zh":"组态制作",
"en":"Graphic\ndesign",
"cmd":"hmi.exe",
"param":"",
"icon":"../../resource/zh/sys_startup/PictureConfiguration.png"
},
"num7":{
"zh":"工程管理",
"zh":"工程备份",
"en":"Project\nmanagement",
"cmd":"db_manager.exe",
"param":"",
@ -134,16 +134,25 @@
"cmd":"tsdb_data_export.exe",
"param":"",
"icon":"../../resource/zh/sys_startup/DatabaseCheck.png"
},
"num19":{
"zh":"启动/停止",
"en":"Start/Stop",
"cmd":"SysCtrl",
"param":"",
"icon":"../../resource/zh/sys_startup/DatabaseCheck.png"
}
},
"page1":
[
"num19",
"num0",
"num4",
"num5",
"num6",
"num7",
"num10"
"num2",
"num10",
"num7"
],
"page3":{
"count":3,

View File

@ -97,7 +97,7 @@ int CKBD104::SetBaseAddr(void *address)
//规约映射表初始化
if(m_ptrCFesBase!=NULL)
{
m_ptrCFesBase->ProtocolRtuInitByParam1((char*)"kbd104");
m_ptrCFesBase->ProtocolRtuInitByParam1((char*)"hmjs104");
//2020-02-13 thxiao ReadConfigParam()需要使用m_ptrCFesBase所以改为SetBaseAddr()处调用
ReadConfigParam();
}
@ -309,20 +309,20 @@ int CKBD104::ReadConfigParam()
if (m_ptrCFesBase == NULL)
return iotFailed;
m_ProtocolId = m_ptrCFesBase->GetProtocolID((char*)"kbd104");
m_ProtocolId = m_ptrCFesBase->GetProtocolID((char*)"hmjs104");
if (m_ProtocolId == -1)
{
LOGDEBUG("ReadConfigParam ProtoclID error");
return iotFailed;
}
LOGINFO("kbd104 ProtoclID=%d", m_ProtocolId);
LOGINFO("hmjs104 ProtoclID=%d", m_ProtocolId);
if (config.load("../../data/fes/", "kbd104.xml") == iotFailed)
if (config.load("../../data/fes/", "hmjs104.xml") == iotFailed)
{
LOGDEBUG("kbd104 load iec104.xml error");
LOGDEBUG("hmjs104 load iec104.xml error");
return iotSuccess;
}
LOGDEBUG("kbd104 load iec104.xml ok");
LOGDEBUG("hmjs104 load iec104.xml ok");
sprintf(strRtuNo,"SYS");
std::string strValue;

View File

@ -419,13 +419,13 @@ int CKBD104DataProcThread::ReadConfigParam()
//默认配置
m_AppData.respTimeoutReset = m_ptrCFesChan->m_Param.RespTimeout;
//if(config.load("C:/ISCS6000_HOME/data/","kbd104.xml")==iotFailed)
if(config.load("../../data/fes/","kbd104.xml")==iotFailed)
//if(config.load("C:/ISCS6000_HOME/data/","hmjs104.xml")==iotFailed)
if(config.load("../../data/fes/","hmjs104.xml")==iotFailed)
{
LOGERROR("kbd104 读取配置文件kbd104.xml失败\n");
LOGERROR("hmjs104 读取配置文件hmjs104.xml失败\n");
return iotFailed;
}
LOGINFO("kbd104 读取配置文件kbd104.xml成功\n");
LOGINFO("hmjs104 读取配置文件hmjs104.xml成功\n");
sprintf(strRtuNo,"RTU%d",m_ptrCFesRtu->m_Param.RtuNo);
if(config.getIntValue(strRtuNo,"alldata_interval",ivalue) == iotSuccess)
{

View File

@ -1,7 +1,7 @@
QT += core
QT -= gui
TARGET = kbd104
TARGET = hmjs104
TEMPLATE = lib
SOURCES += \

View File

@ -1,7 +1,7 @@
#CONFIG -= qt
QT += serialport
TARGET = kbd511s_io
TARGET = hmjs511s_io
TEMPLATE = lib
SOURCES += \

View File

@ -74,7 +74,7 @@ int Ckbd511s_ioRtu::SetBaseAddr(void *address)
//规约映射表初始化
if (m_ptrCFesBase != NULL)
{
m_ptrCFesBase->ProtocolRtuInitByParam1((char*)"kbd511s_io");
m_ptrCFesBase->ProtocolRtuInitByParam1((char*)"hmjs511s_io");
}
return iotSuccess;
@ -83,7 +83,7 @@ int Ckbd511s_ioRtu::SetBaseAddr(void *address)
int Ckbd511s_ioRtu::SetProperty(int IsMainFes)
{
g_kbd511s_ioRtuIsMainFes = IsMainFes;
LOGDEBUG("Ckbd511s_ioRtu::SetProperty g_kbd511s_ioRtuIsMainFes:%d",IsMainFes);
LOGDEBUG("Chmjs511s_ioRtu::SetProperty g_hmjs511s_ioRtuIsMainFes:%d",IsMainFes);
return iotSuccess;
}

View File

@ -322,7 +322,7 @@ void CKBD61850m::InitRTUData()
ProtocolId = -1;
for(i=0;i<m_ptrCFesBase->m_ProtocolNum;i++)
{
if(strstr(m_ptrCFesBase->m_protoclName[i].Name,"kbd61850m")!=NULL)
if(strstr(m_ptrCFesBase->m_protoclName[i].Name,"hmjs61850m")!=NULL)
{
ProtocolId = m_ptrCFesBase->m_protoclName[i].ProtocolId;
break;

View File

@ -1,7 +1,7 @@
QT -= core gui
CONFIG -= qt
TARGET = kbd61850m
TARGET = hmjs61850m
TEMPLATE = lib
SOURCES += \

View File

@ -98,7 +98,7 @@ void AppMngForm::customContext(const QPoint &pos)
emit sigStartApp(item->data(0,Qt::UserRole+1).toString());
});
connect(appStop, &QAction::triggered, [=](){
CLoginDlg dlg;
CLoginDlg dlg(this);
QString perm ="FUNC_NOM_SYSTEM_EXIT";
dlg.setCheckPerm(perm);
dlg.setOkButtonText(tr("验证"));
@ -110,7 +110,7 @@ void AppMngForm::customContext(const QPoint &pos)
}
});
connect(appRestart, &QAction::triggered, [=](){
CLoginDlg dlg;
CLoginDlg dlg(this);
QString perm ="FUNC_NOM_SYSTEM_EXIT";
dlg.setCheckPerm(perm);
dlg.setOkButtonText(tr("验证"));
@ -198,7 +198,7 @@ void AppMngForm::appItemClicked(QTreeWidgetItem *item, int column)
int appStatus = item->data(1,Qt::UserRole).toInt();
if(appStatus == EN_APP_RUNNING)
{
CLoginDlg dlg;
CLoginDlg dlg(this);
QString perm ="FUNC_NOM_SYSTEM_EXIT";
dlg.setCheckPerm(perm);
dlg.setOkButtonText(tr("验证"));
@ -212,7 +212,7 @@ void AppMngForm::appItemClicked(QTreeWidgetItem *item, int column)
{
if(checkAppStatus(item->data(0,Qt::UserRole).toInt())== EN_APP_HALF)//半运行状态
{
CLoginDlg dlg;
CLoginDlg dlg(this);
QString perm ="FUNC_NOM_SYSTEM_EXIT";
dlg.setCheckPerm(perm);
dlg.setOkButtonText(tr("验证"));

View File

@ -36,10 +36,10 @@ ButtonForm::~ButtonForm()
delete ui;
}
void ButtonForm::setTitleHide(bool hide)
{
ui->label->setHidden(hide);
}
//void ButtonForm::setTitleHide(bool hide)
//{
// ui->label->setHidden(hide);
//}
void ButtonForm::addToolButtons(QVector<QString> &buttonVec)
{
@ -62,20 +62,29 @@ void ButtonForm::addToolButtons(QVector<QString> &buttonVec)
continue;
}
QToolButton *toolBtn = new QToolButton(this);
toolBtn->setToolButtonStyle(Qt::ToolButtonTextUnderIcon);
QIcon icon = QIcon(buttonInfo.m_icon);
QSize size(45,45);
toolBtn->setToolButtonStyle(Qt::ToolButtonTextOnly);
//QIcon icon = QIcon(buttonInfo.m_icon);
//QSize size(45,45);
QSize size(20,45);
toolBtn->setIconSize(size);
toolBtn->setMaximumHeight(80);
toolBtn->setMinimumHeight(80);
toolBtn->setMaximumWidth(80);
toolBtn->setMaximumHeight(30);
toolBtn->setMinimumHeight(30);
toolBtn->setMaximumWidth(100);
toolBtn->setMinimumWidth(80);
toolBtn->setIcon(icon);
//toolBtn->setIcon(icon);
toolBtn->setText(m_bIsZh?buttonInfo.m_zh:buttonInfo.m_en);
connect(toolBtn,&QToolButton::clicked,[=](){
executeTask(buttonInfo.m_cmd,buttonInfo.m_param);
});
if(buttonInfo.m_cmd =="SysCtrl")
{
connect(this, &ButtonForm::sigEnableStatus, [=](bool enabled) {
toolBtn->setEnabled(enabled);
});
}
layOut->addWidget(toolBtn);
}
if(m_mode == EN_SYS_STARTUP_PAGE3)
@ -84,13 +93,18 @@ void ButtonForm::addToolButtons(QVector<QString> &buttonVec)
}
}
void ButtonForm::setTitleText(const QString &title)
{
ui->label->setText(title);
}
//void ButtonForm::setTitleText(const QString &title)
//{
// ui->label->setText(title);
//}
void ButtonForm::executeTask(QString cmd,QString param)
{
if(cmd =="SysCtrl")
{
emit sigButtonClick();
return ;
}
if(cmd =="DogCheck")
{
dogCheckDlg();
@ -118,7 +132,7 @@ void ButtonForm::executeTask(QString cmd,QString param)
if(cmd.contains("ReportEdit"))
{
CLoginDlg dlg;
CLoginDlg dlg(this);
QString perm ="FUNC_NOM_RPT_EDIT";
dlg.setCheckPerm(perm);
dlg.setOkButtonText(tr("验证"));

View File

@ -15,14 +15,15 @@ public:
explicit ButtonForm(int mode, bool isZh, QWidget *parent = 0);
~ButtonForm();
void setTitleHide(bool hide);
//void setTitleHide(bool hide);
void addToolButtons(QVector<QString> &buttonVec);
void setTitleText(const QString & title);
//void setTitleText(const QString & title);
signals:
void sigLogText(const QString &logText);
void sigButtonClick();
void sigEnableStatus(bool enabled);
private:
void executeTask(QString cmd, QString param);

View File

@ -6,8 +6,8 @@
<rect>
<x>0</x>
<y>0</y>
<width>548</width>
<height>100</height>
<width>542</width>
<height>46</height>
</rect>
</property>
<property name="windowTitle">
@ -54,25 +54,6 @@
<number>0</number>
</property>
<item row="0" column="0">
<widget class="QLabel" name="label">
<property name="minimumSize">
<size>
<width>0</width>
<height>20</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>16777215</width>
<height>25</height>
</size>
</property>
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QWidget" name="widget" native="true"/>
</item>
</layout>

View File

@ -11,7 +11,9 @@
#include "StatusForm.h"
#include "VersionForm.h"
#include "SetupFunc.h"
#include <QPicture>
#include <QPixmap>
#include <QTabWidget>
#include <QLocalSocket>
#include <QLocalServer>
#include <QGridLayout>
@ -30,6 +32,8 @@
#include <QString>
#include "pub_utility_api/FileUtil.h"
#include <QTabBar>
using namespace sys_startup;
using namespace iot_public;
using namespace iot_idl;
@ -50,6 +54,7 @@ MainWindow::MainWindow(bool isZh, QWidget *parent) :
m_pVersionMng(Q_NULLPTR),
m_pSysTrayIcon(Q_NULLPTR),
m_updateTreeTimer(Q_NULLPTR),
m_startOrStopButtonTimer(Q_NULLPTR),
m_updateSysTimer(Q_NULLPTR),
m_startSysTimer(Q_NULLPTR),
m_stopSysTimer(Q_NULLPTR),
@ -151,6 +156,12 @@ MainWindow::~MainWindow()
delete m_updateTreeTimer;
}
m_updateTreeTimer = Q_NULLPTR;
if(m_startOrStopButtonTimer)
{
m_startOrStopButtonTimer->stop();
delete m_startOrStopButtonTimer;
}
m_startOrStopButtonTimer = Q_NULLPTR;
if(m_updateSysTimer)
{
@ -241,6 +252,7 @@ void MainWindow::startWork()
{
m_brushDataThread->resume();
m_updateTreeTimer->start();
m_startOrStopButtonTimer->start();
m_updateSysTimer->start();
m_dogAndLocalNetTimer->start();
}
@ -250,6 +262,7 @@ void MainWindow::stopWork()
m_dogAndLocalNetTimer->stop();
m_updateSysTimer->stop();
m_updateTreeTimer->stop();
m_startOrStopButtonTimer->stop();
m_brushDataThread->suspend();
}
@ -276,6 +289,7 @@ void MainWindow::initVariables()
if(m_pStartUp == Q_NULLPTR)
{
m_pStartUp = new StartUpForm;
//ui->startUpFrame->setHidden(true);
}
if(m_pAppMng == Q_NULLPTR)
{
@ -330,7 +344,8 @@ void MainWindow::initVariables()
m_brushDataThread->initialize(DataMng::instance()->getDomainId(),1);
m_updateTreeTimer = new QTimer;
m_updateTreeTimer->setInterval(1000);
m_startOrStopButtonTimer = new QTimer;
m_startOrStopButtonTimer->setInterval(1000);
m_checkObj = new OnTimeCheckThread(nullptr);
m_checkThread = new QThread();
m_checkObj->moveToThread(m_checkThread);
@ -373,16 +388,18 @@ void MainWindow::initVariables()
void MainWindow::initUi()
{
setWindowFlags( Qt::Window | Qt::CustomizeWindowHint | Qt::WindowTitleHint | Qt::WindowSystemMenuHint| Qt::WindowCloseButtonHint );
ui->label->setStyleSheet("");
//标题栏
if(m_bIsZh)
{
setWindowTitle(DataMng::instance()->getZhTitle());
m_pSysTrayIcon->setToolTip(DataMng::instance()->getZhTitle());
//setWindowTitle(DataMng::instance()->getZhTitle());
setWindowTitle("运行管理器");
m_pSysTrayIcon->setToolTip("运行管理器");
}else
{
setWindowTitle(DataMng::instance()->getEnTitle());
m_pSysTrayIcon->setToolTip(DataMng::instance()->getEnTitle());
//setWindowTitle(DataMng::instance()->getEnTitle());
setWindowTitle("Run Manager");
m_pSysTrayIcon->setToolTip("Run Manager");
}
//进度条
@ -405,47 +422,33 @@ void MainWindow::initUi()
//首页快捷按钮
ButtonForm *page1form = new ButtonForm(EN_SYS_STARTUP_PAGE1,m_bIsZh,this);
page1form->setTitleHide(true);
//page1form->setTitleHide(true);
QVector<QString> buttons = DataMng::instance()->getPage1ButtonInfo();
page1form->addToolButtons(buttons);
connect(page1form,&ButtonForm::sigLogText,m_pStatusMng,&StatusForm::slotLogText);
connect(page1form,&ButtonForm::sigButtonClick,this,&MainWindow::slotStartOrStop);
connect(this,&MainWindow::sigButtonStatus,page1form,&ButtonForm::sigEnableStatus);
QGridLayout *page1layout = new QGridLayout(ui->customWidget);
page1layout->setSpacing(0);
page1layout->setContentsMargins(0,0,0,0);
page1layout->addWidget(page1form);
//工具箱按钮
QMap<int,SButtonGroup> buttonGroupMap = DataMng::instance()->getPage3ButtonInfo();
QMap<int,SButtonGroup>::iterator it = buttonGroupMap.begin();
QVBoxLayout *page3layout = new QVBoxLayout(ui->boxWidget);
page3layout->setSpacing(20);
while (it != buttonGroupMap.end()) {
ButtonForm *page3form = new ButtonForm(EN_SYS_STARTUP_PAGE3,m_bIsZh,this);
page3form->setTitleText(m_bIsZh ? it.value().m_zh:it.value().m_en);
page3form->addToolButtons(it.value().m_buttonVec);
connect(page3form,&ButtonForm::sigLogText,m_pStatusMng,&StatusForm::slotLogText);
page3layout->addWidget(page3form);
it++;
}
page3layout->addStretch();
//状态栏视图
QGridLayout *statusLayout = new QGridLayout(ui->status_mng);
statusLayout->setSpacing(6);
statusLayout->setContentsMargins(0, 0, 0, 0);
statusLayout->addWidget(m_pStatusMng);
m_pStatusMng->setStyleSheet("background-color: #eaf9ea;");
//版本
QGridLayout *versionLayout = new QGridLayout(ui->verWidget);
versionLayout->setSpacing(6);
versionLayout->setContentsMargins(0, 0, 0, 0);
versionLayout->addWidget(m_pVersionMng);
ui->label->setPixmap(QPixmap(":/images/hmlogo.png"));
}
void MainWindow::initConn()
{
connect(m_updateTreeTimer,&QTimer::timeout,m_pAppMng,&AppMngForm::updateAppTree);
// connect(m_updateTreeTimer,&QTimer::timeout,m_pProcMng,&ProcMngForm::updateProcTree);
connect(m_startOrStopButtonTimer,&QTimer::timeout,this,&MainWindow::slotUpdataStartOrStopStatus);
connect(m_updateSysTimer,&QTimer::timeout,m_checkObj,&OnTimeCheckThread::brush,Qt::QueuedConnection);
connect(m_checkObj,&OnTimeCheckThread::changeTab,m_pStartUp,&StartUpForm::changeIndex,Qt::QueuedConnection);
@ -455,7 +458,7 @@ void MainWindow::initConn()
connect(m_pStartUp,&StartUpForm::sigStartSystem,this,&MainWindow::slotStartSystem);
connect(m_pStartUp,&StartUpForm::sigStopSystem,this,&MainWindow::slotStopSystem);
connect(this,&MainWindow::sigStartFormCanClickButton,m_pStartUp,&StartUpForm::slotStartFormCanClickButton);
connect(m_pProcess,SIGNAL(readyReadStandardOutput()),this,SLOT(outPut()));
connect(m_pProcess,SIGNAL(finished(int,QProcess::ExitStatus)),this,SLOT(finish(int,QProcess::ExitStatus)));
@ -559,7 +562,7 @@ void MainWindow::slotStopSystem()
m_pProcess->start(m_strSysCtrlPath + " -s");
//更新状态
QString text = tr("开始停止系统");
QString text = tr("系统正在停止...");
m_pStatusMng->slotLogText(text);
m_stopSysTimer->start(); //启动停止定时器
m_pProcess->waitForStarted();
@ -1051,6 +1054,9 @@ void MainWindow::startSystem(int res,QProcess::ExitStatus exit)
//7.启动系统
DataMng::instance()->setAllowedStatus(false);
//更新状态
QString text = tr("系统正在启动...");
m_pStatusMng->slotLogText(text);
m_pProcess->start(m_strSysCtrlPath);
m_startSysTimer->start();
m_pProcess->waitForStarted();
@ -1075,6 +1081,17 @@ void MainWindow::tabWidget_currentIdxChanged(int /*index*/)
}
}
void MainWindow::slotStartOrStop()
{
emit sigStartFormCanClickButton();
}
void MainWindow::slotUpdataStartOrStopStatus()
{
bool enable =DataMng::instance()->getAllowedStatus();
emit sigButtonStatus(enable);
}
void MainWindow::closeEvent(QCloseEvent *event)
{
#ifdef KBD_ARM
@ -1167,7 +1184,7 @@ bool MainWindow::checkNet()
{
QNetworkConfigurationManager manager;
#ifdef OS_LINUX
#ifdef OS_LINUX
QList<QNetworkConfiguration> activeConfigs = manager.allConfigurations(QNetworkConfiguration::Active);
bool hasNonLocal = false;
for (int i = 0; i < activeConfigs.size(); i++)
@ -1185,12 +1202,10 @@ bool MainWindow::checkNet()
#endif
)
{
m_pStatusMng->netIsOnline();
return true;
}
else
{
m_pStatusMng->netIsNotOnline();
return false;
}
}
@ -1200,12 +1215,10 @@ void MainWindow::checkDog()
if(!m_ptrDogAuthApi)
{
LOGERROR("创建加密狗实例失败");
m_pStatusMng->dogUncheck();
return ;
}
if(iotSuccess != m_ptrDogAuthApi->checkAuthStatus())
{
m_pStatusMng->dogIsNotHave();
if(m_bLastDogStatus == true)
{
m_bLastDogStatus = false;
@ -1226,7 +1239,6 @@ void MainWindow::checkDog()
delete m_pDogMessBox;
}
m_pDogMessBox = Q_NULLPTR;
m_pStatusMng->dogIsHave();
}
}

View File

@ -7,7 +7,8 @@
#include <boost/make_shared.hpp>
#include <QMessageBox>
#include <QSystemTrayIcon>
#include <QLabel>
#include <QStatusBar>
#include "BrushDataThread.h"
#include "rdb_net_api/CRdbNetApi.h"
#include "net_msg_bus_api/MsgBusApi.h"
@ -15,12 +16,14 @@
#include "pub_utility_api/ProcUtil.h"
#include "sys_dog_auth_api/DogAuthInterface.h"
#include <QPushButton>
class QLocalServer;
class StartUpForm;
class AppMngForm;
class ProcMngForm;
class StatusForm;
class VersionForm;
class QStatusBar;
namespace Ui {
class MainWindow;
@ -45,7 +48,6 @@ public:
void stopWork();
void startAutoStartHmiTimer();
private:
void initSheet();
void initVariables();
@ -78,6 +80,10 @@ signals:
void sigNetIsOnline();
void sigStartFormCanClickButton();
void sigButtonStatus(bool enabled);
public slots:
void slotStartSystem();
@ -114,6 +120,9 @@ public slots:
void tabWidget_currentIdxChanged(int index);
void slotStartOrStop();
void slotUpdataStartOrStopStatus();
protected:
virtual void closeEvent(QCloseEvent *event);
virtual void changeEvent(QEvent* e);
@ -156,6 +165,7 @@ private:
//定时器
QTimer *m_updateTreeTimer; //< 刷新应用和进程定时器
QTimer *m_updateSysTimer; //< 刷新系统状态定时器
QTimer *m_startOrStopButtonTimer; //< 刷新启动停止按钮定时器
QTimer *m_startSysTimer; //< 系统启动定时器
QTimer *m_stopSysTimer; //< 系统启动定时器
QTimer *m_appRestartTimer; //< 应用重启定时器

View File

@ -26,6 +26,7 @@ bool OnTimeCheckThread::isSystemRunning()
void OnTimeCheckThread::brush()
{
if(isSystemRunning())
{
DataMng::instance()->setSysStatus(true);

View File

@ -6,7 +6,7 @@
#include "pub_utility_api/TimeUtil.h"
#include <QMenu>
#include "SheetStyle.h"
using namespace iot_public;
ProcMngForm::ProcMngForm(QWidget *parent) :
@ -14,9 +14,19 @@ ProcMngForm::ProcMngForm(QWidget *parent) :
ui(new Ui::ProcMngForm)
{
ui->setupUi(this);
SheetStyle sheetStyle;
QString sheet;
if(sheetStyle.getSheet(sheet))
{
setStyleSheet(sheet);
}else
{
LOGERROR("MainWindow::initSheet():获取样式文件失败!");
}
m_ntime = (uint64)iot_public::getUTCTimeSec();
ui->procTreeWidget->setContextMenuPolicy(Qt::CustomContextMenu);
initProcTree();
connect(ui->procTreeWidget,&QTreeWidget::customContextMenuRequested,this,&ProcMngForm::customContext);
connect(ui->procTreeWidget,&QTreeWidget::itemClicked,this,&ProcMngForm::procItemClicked);
}
@ -107,7 +117,7 @@ void ProcMngForm::customContext(const QPoint &pos)
emit sigStartProc(curAppId,item->text(1));
});
connect(procStop, &QAction::triggered, [=](){
CLoginDlg dlg;
CLoginDlg dlg(this);
QString perm ="FUNC_NOM_SYSTEM_EXIT";
dlg.setCheckPerm(perm);
dlg.setOkButtonText(tr("验证"));
@ -119,7 +129,7 @@ void ProcMngForm::customContext(const QPoint &pos)
}
});
connect(procRestart, &QAction::triggered, [=](){
CLoginDlg dlg;
CLoginDlg dlg(this);
QString perm ="FUNC_NOM_SYSTEM_EXIT";
dlg.setCheckPerm(perm);
dlg.setOkButtonText(tr("验证"));
@ -131,7 +141,7 @@ void ProcMngForm::customContext(const QPoint &pos)
}
});
connect(procForceStop, &QAction::triggered, [=](){
CLoginDlg dlg;
CLoginDlg dlg(this);
QString perm ="FUNC_NOM_SYSTEM_EXIT";
dlg.setCheckPerm(perm);
dlg.setOkButtonText(tr("验证"));
@ -220,7 +230,7 @@ void ProcMngForm::procItemClicked(QTreeWidgetItem *item, int column)
{
return ;
}
CLoginDlg dlg;
CLoginDlg dlg(this);
QString perm ="FUNC_NOM_SYSTEM_EXIT";
dlg.setCheckPerm(perm);
dlg.setOkButtonText(tr("验证"));

View File

@ -6,13 +6,48 @@
SheetStyle::SheetStyle():
m_stSheet("")
{
std::string strFullPath = iot_public::CFileStyle::getPathOfStyleFile("sys_startup.qss") ;
QFile qssfile(QString::fromStdString(strFullPath)) ;
qssfile.open(QFile::ReadOnly);
if (qssfile.isOpen())
// QString qss = QString();
// std::string strFullPath = iot_public::CFileStyle::getPathOfStyleFile("public.qss","zh","light");
// QFile qssfile1(QString::fromStdString(strFullPath));
// qssfile1.open(QFile::ReadOnly);
// if (qssfile1.isOpen())
// {
// qss += QLatin1String(qssfile1.readAll());
// qssfile1.close();
// }
// strFullPath = iot_public::CFileStyle::getPathOfStyleFile("sys_startup.qss","zh","light") ;
// QFile qssfile(QString::fromStdString(strFullPath)) ;
// qssfile.open(QFile::ReadOnly);
// if (qssfile.isOpen())
// {
// m_stSheet = QLatin1String(qssfile.readAll());
// qssfile.close();
// }
QString qss = QString();
std::string strFullPath = iot_public::CFileStyle::getPathOfStyleFile("public.qss","zh","light");
QFile qssfile1(QString::fromStdString(strFullPath));
qssfile1.open(QFile::ReadOnly);
if (qssfile1.isOpen())
{
m_stSheet = QLatin1String(qssfile.readAll());
qssfile.close();
qss += QLatin1String(qssfile1.readAll());
qssfile1.close();
}
strFullPath = iot_public::CFileStyle::getPathOfStyleFile("sys_startup.qss","zh","light");
QFile qssfile2(QString::fromStdString(strFullPath));
qssfile2.open(QFile::ReadOnly);
if (qssfile2.isOpen())
{
qss += QLatin1String(qssfile2.readAll());
qssfile2.close();
}
if (!qss.isEmpty())
{
m_stSheet = qss;
}
}

View File

@ -16,7 +16,7 @@ StartUpForm::StartUpForm(QWidget *parent) :
ui->setupUi(this);
initVariables();
initView();
initConn();
//initConn();
}
StartUpForm::~StartUpForm()
@ -84,7 +84,7 @@ void StartUpForm::stopSystem()
{
return ;
}
CLoginDlg dlg;
CLoginDlg dlg(this);
QString perm ="FUNC_NOM_SYSTEM_EXIT";
dlg.setCheckPerm(perm);
dlg.setOkButtonText(tr("验证"));
@ -96,6 +96,15 @@ void StartUpForm::stopSystem()
}
}
void StartUpForm::slotStartFormCanClickButton()
{
int index =ui->stackedWidget->currentIndex();
if(index==0)
startSystem();
else if(index == 2)
stopSystem();
}
void StartUpForm::initVariables()
{

View File

@ -45,6 +45,8 @@ public slots:
void stopSystem();
void slotStartFormCanClickButton();
private:

View File

@ -6,6 +6,37 @@ StatusForm::StatusForm(QWidget *parent) :
ui(new Ui::StatusForm)
{
ui->setupUi(this);
ui->pushButton->setStyleSheet(R"(
QPushButton {
background-color: #eaf9ea;
color: #333333;
border: none;
padding: 10px 20px;
font-size: 16px;
/* 只设置右下角圆角 */
border-top-right-radius: 0px;
border-top-left-radius: 0px;
border-bottom-left-radius: 0px;
border-bottom-right-radius: 5px;
}
/* 悬停状态 */
QPushButton:hover {
background-color: #ff0000;
color: white;
}
/* 按下状态 */
QPushButton:pressed {
background-color: #cc0000;
padding-top: 12px; /* 模拟按下效果 */
padding-bottom: 8px;
}
)");
connect(ui->pushButton,&QPushButton::clicked,this,&StatusForm::hideUi);
hideUi();
}
StatusForm::~StatusForm()
@ -15,35 +46,13 @@ StatusForm::~StatusForm()
void StatusForm::slotLogText(const QString &logText)
{
ui->statusText->setText(logText);
ui->statusText->setText(" "+logText);
ui->statusText->show();
ui->pushButton->show();
}
void StatusForm::netIsNotOnline()
void StatusForm::hideUi()
{
ui->netText->setStyleSheet("QLabel{color:red}");
ui->netText->setText(tr("异常"));
}
void StatusForm::netIsOnline()
{
ui->netText->setStyleSheet("QLabel{color:green}");
ui->netText->setText(tr("正常"));
}
void StatusForm::dogUncheck()
{
ui->dogText->setStyleSheet("QLabel{color:red}");
ui->dogText->setText(tr("未检测"));
}
void StatusForm::dogIsNotHave()
{
ui->dogText->setStyleSheet("QLabel{color:red}");
ui->dogText->setText(tr("异常"));
}
void StatusForm::dogIsHave()
{
ui->dogText->setStyleSheet("QLabel{color:green}");
ui->dogText->setText(tr("正常"));
ui->statusText->hide();
ui->pushButton->hide();
}

View File

@ -18,18 +18,7 @@ public:
public slots:
void slotLogText(const QString & logText);
public:
void netIsNotOnline();
void netIsOnline();
void dogUncheck();
void dogIsNotHave();
void dogIsHave();
void hideUi();
private:
Ui::StatusForm *ui;
};

View File

@ -6,10 +6,22 @@
<rect>
<x>0</x>
<y>0</y>
<width>550</width>
<height>27</height>
<width>677</width>
<height>30</height>
</rect>
</property>
<property name="minimumSize">
<size>
<width>0</width>
<height>30</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>16777215</width>
<height>40</height>
</size>
</property>
<property name="windowTitle">
<string>Form</string>
</property>
@ -26,13 +38,18 @@
<property name="bottomMargin">
<number>0</number>
</property>
<property name="spacing">
<number>0</number>
</property>
<item row="0" column="0">
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QSplitter" name="splitter">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<widget class="QLabel" name="statusText">
<property name="minimumSize">
<size>
<width>50</width>
<width>200</width>
<height>0</height>
</size>
</property>
@ -40,62 +57,31 @@
<string/>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
<widget class="QPushButton" name="pushButton">
<property name="minimumSize">
<size>
<width>34</width>
<height>30</height>
</size>
</property>
<property name="sizeHint" stdset="0">
<property name="maximumSize">
<size>
<width>34</width>
<height>30</height>
</size>
</property>
<property name="text">
<string>✕</string>
</property>
<property name="iconSize">
<size>
<width>40</width>
<height>20</height>
<height>40</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QLabel" name="label">
<property name="text">
<string>加密狗状态:</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="dogText">
<property name="minimumSize">
<size>
<width>50</width>
<height>25</height>
</size>
</property>
<property name="text">
<string>正常</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_2">
<property name="text">
<string>本地网络状态:</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="netText">
<property name="minimumSize">
<size>
<width>50</width>
<height>25</height>
</size>
</property>
<property name="text">
<string>正常</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
<resources/>

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.8 KiB

View File

@ -6,10 +6,13 @@
<rect>
<x>0</x>
<y>0</y>
<width>897</width>
<height>471</height>
<width>945</width>
<height>597</height>
</rect>
</property>
<property name="windowTitle">
<string>运行管理器</string>
</property>
<widget class="QWidget" name="centralWidget">
<layout class="QGridLayout" name="gridLayout">
<property name="leftMargin">
@ -28,6 +31,84 @@
<number>0</number>
</property>
<item row="0" column="0">
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QLabel" name="label">
<property name="minimumSize">
<size>
<width>200</width>
<height>40</height>
</size>
</property>
<property name="text">
<string/>
</property>
<property name="pixmap">
<pixmap resource="../../tools/fbd_designer/fbd_plugins/alarmsplitplugin/icon.qrc">:/icon/alarmsplit.png</pixmap>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_2">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Preferred</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QLabel" name="label_2">
<property name="minimumSize">
<size>
<width>200</width>
<height>0</height>
</size>
</property>
<property name="text">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:20pt; color:#52a6ff;&quot;&gt;SPMS电力监控系统&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
<item row="2" column="0">
<widget class="QWidget" name="status_mng" native="true">
<property name="minimumSize">
<size>
<width>0</width>
<height>30</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>16777215</width>
<height>30</height>
</size>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QTabWidget" name="tabWidget">
<property name="currentIndex">
<number>0</number>
@ -69,7 +150,7 @@
</property>
<property name="maximumSize">
<size>
<width>300</width>
<width>0</width>
<height>16777215</height>
</size>
</property>
@ -111,72 +192,14 @@
</item>
</layout>
</widget>
<widget class="QWidget" name="workbox_mng">
<attribute name="title">
<string>工具箱</string>
</attribute>
<layout class="QGridLayout" name="gridLayout_2">
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<property name="horizontalSpacing">
<number>0</number>
</property>
<property name="verticalSpacing">
<number>20</number>
</property>
<item row="0" column="0">
<widget class="QWidget" name="boxWidget" native="true"/>
</item>
</layout>
</widget>
<widget class="QWidget" name="version_mng">
<attribute name="title">
<string>版本</string>
</attribute>
<layout class="QGridLayout" name="gridLayout_4">
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item row="0" column="0">
<widget class="QWidget" name="verWidget" native="true"/>
</item>
</layout>
</widget>
</widget>
</item>
<item row="1" column="0">
<widget class="QWidget" name="status_mng" native="true">
<property name="minimumSize">
<size>
<width>0</width>
<height>40</height>
</size>
</property>
</widget>
</item>
</layout>
</widget>
</widget>
<layoutdefault spacing="6" margin="11"/>
<resources/>
<resources>
<include location="../../tools/fbd_designer/fbd_plugins/alarmsplitplugin/icon.qrc"/>
</resources>
<connections/>
</ui>

View File

@ -26,5 +26,6 @@
<file>auto_start.ico</file>
<file>db_check.ico</file>
<file>dog_auth_check.ico</file>
<file>images/hmlogo.png</file>
</qresource>
</RCC>

File diff suppressed because it is too large Load Diff

View File

@ -6,7 +6,7 @@
QT += gui sql
TARGET = kbd61850dbinterface
TARGET = hmjs61850dbinterface
TEMPLATE = lib
exists($$PWD/../../common.pri) {