246 lines
12 KiB
C++
246 lines
12 KiB
C++
#include "P02_ShieldPage.h"
|
||
#include "ui_P02_ShieldPage.h"
|
||
#include <QDebug>
|
||
#include <GlobalDefinitions/Variable.h>
|
||
#include <QCheckBox>
|
||
#include <QLabel>
|
||
#include <PublicFunctions/Basic.h>
|
||
#include <FileOperation/ConfigFiles.h>
|
||
|
||
P02_ShieldPage::P02_ShieldPage(QWidget *parent) :
|
||
QWidget(parent),
|
||
ui(new Ui::P02_ShieldPage)
|
||
{
|
||
ui->setupUi(this);
|
||
m_OpcUaManager = OpcUaManager::instance(); // 全局唯一OPC实例
|
||
m_DataCenter = DataCenter::instance(); // 全局唯一DataCenter实例
|
||
|
||
WinInit();
|
||
}
|
||
|
||
P02_ShieldPage::~P02_ShieldPage()
|
||
{
|
||
delete ui;
|
||
}
|
||
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();
|
||
|
||
QList<QStringList> FileData = ConfigFiles().ReadFile_Csv("./ProgramConfig/UI_屏蔽界面文本_配置.csv");
|
||
//qDebug()<<FileData.size();
|
||
for (int row = 1; row < FileData.size()-1; ++row)
|
||
{
|
||
QString TextObjName = QString("TxtStatus_Shield_%1").arg(row-1);
|
||
QLabel* Label = findChild<QLabel*>(TextObjName);
|
||
if (Label) {
|
||
QString Text = FileData.at(row)[1];
|
||
Text.replace("\\n","\n",Qt::CaseInsensitive);
|
||
Label->setText(Text);
|
||
}
|
||
TrueColor.append(FileData.at(row)[2]);
|
||
FalseColor.append(FileData.at(row)[3]);
|
||
ShieldText.append(FileData.at(row)[4]);
|
||
unShieldText.append(FileData.at(row)[5]);
|
||
//qDebug()<<row<<FileData.at(row)[1]<<TrueColor[row-1]<<FalseColor[row-1]<<ShieldText[row-1]<<unShieldText[row-1];
|
||
}
|
||
}
|
||
bool isRefreshBut = true;
|
||
|
||
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);
|
||
}
|
||
void P02_ShieldPage::UIRefreshTimeOut(){
|
||
if(this->isHidden())
|
||
return;
|
||
Status1 = gOPC_NodeValue["ns=6;s=::AsGlobalPV:But_Shield.DataStatus1"] .toUInt();
|
||
Status2 = gOPC_NodeValue["ns=6;s=::AsGlobalPV:But_Shield.DataStatus2"] .toUInt();
|
||
Shield1 = gOPC_NodeValue["ns=6;s=::AsGlobalPV:But_Shield.isShield1"] .toUInt();
|
||
Shield2 = gOPC_NodeValue["ns=6;s=::AsGlobalPV:But_Shield.isShield2"] .toUInt();
|
||
uint32_t TmpBool = gOPC_NodeValue["ns=6;s=::AsGlobalPV:PageBOOLS.B0"] .toUInt();
|
||
|
||
// 急停的显示
|
||
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);");
|
||
|
||
|
||
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);
|
||
}
|
||
|
||
}
|
||
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);
|
||
checkBox->setText(ShieldText[i]+32);
|
||
}else{
|
||
checkBox->setChecked(false);
|
||
checkBox->setText(unShieldText[i]+32);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
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(Status1, i,false)){
|
||
StyleStr = StyleStr + TrueColor[i+32]+"\n";
|
||
}else{
|
||
StyleStr = StyleStr + FalseColor[i+32]+"\n";
|
||
}
|
||
Label->setStyleSheet(StyleStr);
|
||
}
|
||
|
||
}
|
||
}
|
||
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){
|
||
QString NodeId = "ns=6;s=::AsGlobalPV:But_Shield.isShield"+QString::number(var+1);
|
||
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;
|
||
}
|
||
|
||
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);}
|