Files
EJM_Display/Pages/P02_ShieldPage.cpp

237 lines
12 KiB
C++
Raw Normal View History

2025-08-20 23:06:28 +08:00
#include "P02_ShieldPage.h"
#include "ui_P02_ShieldPage.h"
2025-09-15 22:28:43 +08:00
#include <QDebug>
#include <GlobalDefinitions/Variable.h>
#include <QCheckBox>
#include <QLabel>
#include <PublicFunctions/Basic.h>
#include <FileOperation/ConfigFiles.h>
2025-08-20 23:06:28 +08:00
P02_ShieldPage::P02_ShieldPage(QWidget *parent) :
QWidget(parent),
ui(new Ui::P02_ShieldPage)
{
ui->setupUi(this);
2025-09-15 22:28:43 +08:00
m_OpcUaManager = OpcUaManager::instance(); // 全局唯一OPC实例
m_DataCenter = DataCenter::instance(); // 全局唯一DataCenter实例
2025-10-21 11:11:52 +08:00
QTimer::singleShot(1000, this, &P02_ShieldPage::WinInit);
2025-09-15 22:28:43 +08:00
2025-08-20 23:06:28 +08:00
}
P02_ShieldPage::~P02_ShieldPage()
{
delete ui;
}
2025-09-15 22:28:43 +08:00
void P02_ShieldPage::WinInit(){
//所用定时器初始化
QTimer* UIRefresh_Timer = new QTimer(this);
connect(UIRefresh_Timer, &QTimer::timeout, this, &P02_ShieldPage::UIRefreshTimeOut);
UIRefresh_Timer->setInterval(100); // 设置定时器间隔为 1000 毫秒1 秒)
UIRefresh_Timer->start();
2025-10-14 20:05:38 +08:00
for (int row = 1; row < ShieldConfigFile.size()-1; ++row)
2025-09-15 22:28:43 +08:00
{
2025-10-14 20:05:38 +08:00
QLabel* Label = findChild<QLabel*>(QString("TxtStatus_Shield_%1").arg(row-1));
2025-09-15 22:28:43 +08:00
if (Label) {
2025-10-14 20:05:38 +08:00
QString Text = ShieldConfigFile.at(row)[1];
2025-09-15 22:28:43 +08:00
Text.replace("\\n","\n",Qt::CaseInsensitive);
Label->setText(Text);
}
2025-10-21 11:11:52 +08:00
TrueColor.append(getColorStr(ShieldConfigFile.at(row)[2]));
FalseColor.append(getColorStr(ShieldConfigFile.at(row)[3]));
ShieldText.append(getColorStr(ShieldConfigFile.at(row)[4]));
unShieldText.append(getColorStr(ShieldConfigFile.at(row)[5]));
2025-09-15 22:28:43 +08:00
}
}
bool isRefreshBut = true;
2025-09-28 17:14:34 +08:00
void SetStyleStr(QLabel *L,bool Status,QString TStr,QString FStr){
if(L == nullptr) return;
QString Style = "";
if(Status){
Style = TStr;
}else{
Style = FStr;
}
if(L->styleSheet() != Style)
L->setStyleSheet(Style);
}
2025-09-15 22:28:43 +08:00
void P02_ShieldPage::UIRefreshTimeOut(){
2025-10-10 17:44:10 +08:00
if(gPageIndexStr != "P02")
2025-09-15 22:28:43 +08:00
return;
2025-10-16 17:40:00 +08:00
Status1 = getNodeValue("But_Shield.DataStatus1") .toUInt();
Status2 = getNodeValue("But_Shield.DataStatus2") .toUInt();
Shield1 = getNodeValue("But_Shield.isShield1") .toUInt();
Shield2 = getNodeValue("But_Shield.isShield2") .toUInt();
uint32_t TmpBool = getNodeValue("PageBOOLS.B0") .toUInt();
2025-09-28 17:14:34 +08:00
// 急停的显示
for (uint8_t i=0;i<12;i++) {
QString TextObjName = QString("Led_EStop_%1").arg(i);
QLabel* Label = findChild<QLabel*>(TextObjName);
if (Label) {
SetStyleStr(Label,getBitOf32Data(TmpBool, i,false),"color: rgb(255, 0, 0);","color: rgb(0, 255, 0);");
}
}
// ESR状态显示
SetStyleStr(ui->Status_IESR_1,getBitOf32Data(TmpBool, 12,false),"border-image: url(:/Icos/Icos/LED2_Green.png);","border-image: url(:/Icos/Icos/LED1_Rad.png);");
SetStyleStr(ui->Status_IESR_2,getBitOf32Data(TmpBool, 13,false),"border-image: url(:/Icos/Icos/LED2_Green.png);","border-image: url(:/Icos/Icos/LED1_Rad.png);");
SetStyleStr(ui->Status_QESR_1,getBitOf32Data(TmpBool, 14,false),"border-image: url(:/Icos/Icos/LED2_Green.png);","border-image: url(:/Icos/Icos/LED3_Rad (2).png);");
SetStyleStr(ui->Status_QESR_2,getBitOf32Data(TmpBool, 15,false),"border-image: url(:/Icos/Icos/LED2_Green.png);","border-image: url(:/Icos/Icos/LED3_Rad (2).png);");
2025-09-15 22:28:43 +08:00
for (int i = 0; i < 32; ++i) {
QString TextObjName = QString("TxtStatus_Shield_%1").arg(i);
QLabel* Label = findChild<QLabel*>(TextObjName);
if (Label) {
QString StyleStr = "border-image: url(:/Frames/null.png);\n";
if(getBitOf32Data(Status1, i,false)){
StyleStr = StyleStr + TrueColor[i]+"\n";
}else{
StyleStr = StyleStr + FalseColor[i]+"\n";
}
Label->setStyleSheet(StyleStr);
}
}
2025-10-16 17:40:00 +08:00
for (int i = 0; i < 32; ++i) {
QString TextObjName = QString("TxtStatus_Shield_%1").arg(i+32);
QLabel* Label = findChild<QLabel*>(TextObjName);
if (Label) {
QString StyleStr = "border-image: url(:/Frames/null.png);\n";
if(getBitOf32Data(Status2, i,false)){
StyleStr = StyleStr + TrueColor[i+32]+"\n";
}else{
StyleStr = StyleStr + FalseColor[i+32]+"\n";
}
Label->setStyleSheet(StyleStr);
}
}
2025-09-15 22:28:43 +08:00
if(isRefreshBut){
for (int i = 0; i < 32; ++i)
{
QString CheckBoxObjName = QString("But_Shield_%1").arg(i);
// 在当前窗口中查找指定名称的QCheckBox
QCheckBox* checkBox = findChild<QCheckBox*>(CheckBoxObjName);
if (checkBox) {
if(getBitOf32Data(Shield1, i,false)){
checkBox->setChecked(true);
checkBox->setText(ShieldText[i]);
}else{
checkBox->setChecked(false);
checkBox->setText(unShieldText[i]);
}
}
}
for (int i = 0; i < 32; ++i) {
QString CheckBoxObjName = QString("But_Shield_%1").arg(i+32);
// 在当前窗口中查找指定名称的QCheckBox
QCheckBox* checkBox = findChild<QCheckBox*>(CheckBoxObjName);
if (checkBox) {
if(getBitOf32Data(Shield2, i,false)){
checkBox->setChecked(true);
2025-10-16 17:40:00 +08:00
checkBox->setText(ShieldText[i+32]);
2025-09-15 22:28:43 +08:00
}else{
checkBox->setChecked(false);
2025-10-16 17:40:00 +08:00
checkBox->setText(unShieldText[i+32]);
2025-09-15 22:28:43 +08:00
}
}
}
}
}
void P02_ShieldPage::WriteShield( uint8_t var,uint8_t Index,bool Checked){
isRefreshBut = false;
QString TextObjName = QString("But_Shield_%1").arg(var*32+Index);
QCheckBox* checkBox = findChild<QCheckBox*>(TextObjName);
if (checkBox) {
checkBox->setChecked(Checked);
}
int8_t Count = 0;
if(var <2 && Index<32){
2025-10-16 17:40:00 +08:00
QString NodeId = "But_Shield.isShield"+QString::number(var+1);
2025-09-15 22:28:43 +08:00
bool isOK = false;
if(var == 0) {
writeBitOf32Data(Shield1,Index,Checked);
while (!m_OpcUaManager->writeNodeValue(NodeId,Shield1) && Count < 10) {
Count++;
}
}else if(var == 1){
writeBitOf32Data(Shield2,Index,Checked);
while (!m_OpcUaManager->writeNodeValue(NodeId,Shield2) && Count < 10) {
Count++;
}
}
qDebug()<<"屏蔽状态切换,改变后的状态:"<<Checked << " 是否写入成功:" << isOK <<NodeId;
}
isRefreshBut = true;
}
2025-09-28 17:14:34 +08:00
2025-09-15 22:28:43 +08:00
void P02_ShieldPage::on_But_Shield_0_clicked(bool checked){WriteShield(0,0,checked);}
void P02_ShieldPage::on_But_Shield_1_clicked(bool checked){WriteShield(0,1,checked);}
void P02_ShieldPage::on_But_Shield_2_clicked(bool checked){WriteShield(0,2,checked);}
void P02_ShieldPage::on_But_Shield_3_clicked(bool checked){;WriteShield(0,3,checked);}
void P02_ShieldPage::on_But_Shield_4_clicked(bool checked){WriteShield(0,4,checked);}
void P02_ShieldPage::on_But_Shield_5_clicked(bool checked){WriteShield(0,5,checked);}
void P02_ShieldPage::on_But_Shield_6_clicked(bool checked){WriteShield(0,6,checked);}
void P02_ShieldPage::on_But_Shield_7_clicked(bool checked){WriteShield(0,7,checked);}
void P02_ShieldPage::on_But_Shield_8_clicked(bool checked){WriteShield(0,8,checked);}
void P02_ShieldPage::on_But_Shield_9_clicked(bool checked){WriteShield(0,9,checked);}
void P02_ShieldPage::on_But_Shield_10_clicked(bool checked){WriteShield(0,10,checked);}
void P02_ShieldPage::on_But_Shield_11_clicked(bool checked){WriteShield(0,11,checked);}
void P02_ShieldPage::on_But_Shield_12_clicked(bool checked){WriteShield(0,12,checked);}
void P02_ShieldPage::on_But_Shield_13_clicked(bool checked){WriteShield(0,13,checked);}
void P02_ShieldPage::on_But_Shield_14_clicked(bool checked){WriteShield(0,14,checked);}
void P02_ShieldPage::on_But_Shield_15_clicked(bool checked){WriteShield(0,15,checked);}
void P02_ShieldPage::on_But_Shield_16_clicked(bool checked){WriteShield(0,16,checked);}
void P02_ShieldPage::on_But_Shield_17_clicked(bool checked){WriteShield(0,17,checked);}
void P02_ShieldPage::on_But_Shield_18_clicked(bool checked){WriteShield(0,18,checked);}
void P02_ShieldPage::on_But_Shield_19_clicked(bool checked){WriteShield(0,19,checked);}
void P02_ShieldPage::on_But_Shield_20_clicked(bool checked){WriteShield(0,20,checked);}
void P02_ShieldPage::on_But_Shield_21_clicked(bool checked){WriteShield(0,21,checked);}
void P02_ShieldPage::on_But_Shield_22_clicked(bool checked){WriteShield(0,22,checked);}
void P02_ShieldPage::on_But_Shield_23_clicked(bool checked){WriteShield(0,23,checked);}
void P02_ShieldPage::on_But_Shield_24_clicked(bool checked){WriteShield(0,24,checked);}
void P02_ShieldPage::on_But_Shield_25_clicked(bool checked){WriteShield(0,25,checked);}
void P02_ShieldPage::on_But_Shield_26_clicked(bool checked){WriteShield(0,26,checked);}
void P02_ShieldPage::on_But_Shield_27_clicked(bool checked){WriteShield(0,27,checked);}
void P02_ShieldPage::on_But_Shield_28_clicked(bool checked){WriteShield(0,28,checked);}
void P02_ShieldPage::on_But_Shield_29_clicked(bool checked){WriteShield(0,29,checked);}
void P02_ShieldPage::on_But_Shield_30_clicked(bool checked){WriteShield(0,30,checked);}
void P02_ShieldPage::on_But_Shield_31_clicked(bool checked){WriteShield(0,31,checked);}
void P02_ShieldPage::on_But_Shield_32_clicked(bool checked){WriteShield(1,0,checked);}
void P02_ShieldPage::on_But_Shield_33_clicked(bool checked){WriteShield(1,1,checked);}
void P02_ShieldPage::on_But_Shield_34_clicked(bool checked){WriteShield(1,2,checked);}
void P02_ShieldPage::on_But_Shield_35_clicked(bool checked){WriteShield(1,3,checked);}
void P02_ShieldPage::on_But_Shield_36_clicked(bool checked){WriteShield(1,4,checked);}
void P02_ShieldPage::on_But_Shield_37_clicked(bool checked){WriteShield(1,5,checked);}
void P02_ShieldPage::on_But_Shield_38_clicked(bool checked){WriteShield(1,6,checked);}
void P02_ShieldPage::on_But_Shield_39_clicked(bool checked){WriteShield(1,7,checked);}
void P02_ShieldPage::on_But_Shield_40_clicked(bool checked){WriteShield(1,8,checked);}
void P02_ShieldPage::on_But_Shield_41_clicked(bool checked){WriteShield(1,9,checked);}
void P02_ShieldPage::on_But_Shield_42_clicked(bool checked){WriteShield(1,10,checked);}
void P02_ShieldPage::on_But_Shield_43_clicked(bool checked){WriteShield(1,11,checked);}
void P02_ShieldPage::on_But_Shield_44_clicked(bool checked){WriteShield(1,12,checked);}
void P02_ShieldPage::on_But_Shield_45_clicked(bool checked){WriteShield(1,13,checked);}
void P02_ShieldPage::on_But_Shield_46_clicked(bool checked){WriteShield(1,14,checked);}
void P02_ShieldPage::on_But_Shield_47_clicked(bool checked){WriteShield(1,15,checked);}
void P02_ShieldPage::on_But_Shield_48_clicked(bool checked){WriteShield(1,16,checked);}
void P02_ShieldPage::on_But_Shield_49_clicked(bool checked){WriteShield(1,17,checked);}
void P02_ShieldPage::on_But_Shield_50_clicked(bool checked){WriteShield(1,18,checked);}
void P02_ShieldPage::on_But_Shield_51_clicked(bool checked){WriteShield(1,19,checked);}
void P02_ShieldPage::on_But_Shield_52_clicked(bool checked){WriteShield(1,20,checked);}
void P02_ShieldPage::on_But_Shield_53_clicked(bool checked){WriteShield(1,21,checked);}
void P02_ShieldPage::on_But_Shield_54_clicked(bool checked){WriteShield(1,22,checked);}
void P02_ShieldPage::on_But_Shield_55_clicked(bool checked){WriteShield(1,23,checked);}
void P02_ShieldPage::on_But_Shield_56_clicked(bool checked){WriteShield(1,24,checked);}
void P02_ShieldPage::on_But_Shield_57_clicked(bool checked){WriteShield(1,25,checked);}
void P02_ShieldPage::on_But_Shield_58_clicked(bool checked){WriteShield(1,26,checked);}
void P02_ShieldPage::on_But_Shield_59_clicked(bool checked){WriteShield(1,27,checked);}
void P02_ShieldPage::on_But_Shield_60_clicked(bool checked){WriteShield(1,28,checked);}
void P02_ShieldPage::on_But_Shield_61_clicked(bool checked){WriteShield(1,29,checked);}
void P02_ShieldPage::on_But_Shield_62_clicked(bool checked){WriteShield(1,30,checked);}
void P02_ShieldPage::on_But_Shield_63_clicked(bool checked){WriteShield(1,31,checked);}