diff --git a/EJM_JueMao.pro.user b/EJM_JueMao.pro.user index 9cd6fce..0997dd0 100644 --- a/EJM_JueMao.pro.user +++ b/EJM_JueMao.pro.user @@ -1,6 +1,10 @@ +<<<<<<< HEAD +======= + +>>>>>>> f88b815723b08bbfe04dcdec05fc5555cef9352c EnvironmentId diff --git a/FileOperation/ConfigFiles.cpp b/FileOperation/ConfigFiles.cpp index 8025b88..46e5fff 100644 --- a/FileOperation/ConfigFiles.cpp +++ b/FileOperation/ConfigFiles.cpp @@ -66,10 +66,17 @@ void ConfigFiles::SystemConfig(){ // 读取刷新时间配置,失败时自动写入默认值10 +<<<<<<< HEAD TrailRefreshTime = readAndSetDefault(Path,"RefreshTime", "TrailRefreshTime(s)", 10); // 读取UI刷新时间,失败时自动写入默认值100 UIRefreshTime = readAndSetDefault(Path,"RefreshTime", "UIRefreshTime(ms)", 100); +======= + TrailRefreshTime = readAndSetDefault(Path,"RefreshTime", "TrailRefreshTime(s)", 10u); + + // 读取UI刷新时间,失败时自动写入默认值100 + UIRefreshTime = readAndSetDefault(Path,"RefreshTime", "UIRefreshTime(ms)", 100u); +>>>>>>> f88b815723b08bbfe04dcdec05fc5555cef9352c // 读取RTSP地址,失败时自动写入默认URL RTSP_Url = readAndSetDefault(Path,"System", "RTSP_Url", QString("rtsp://admin:sshw1212@192.168.1.64:554/Streaming/Channels/101") diff --git a/LaunchPage.cpp b/LaunchPage.cpp index 870d644..7762efc 100644 --- a/LaunchPage.cpp +++ b/LaunchPage.cpp @@ -21,6 +21,7 @@ void WindowWorker::initialize() // 根据不同页面索引准备不同的数据 switch(m_pageIndex) { case 1:{emit logMessage(QString("线程初始化->准备 主预览 数据...")); +<<<<<<< HEAD }break; case 2:{emit logMessage(QString("线程初始化->准备 屏蔽条件 数据...")); emit logMessage(QString("线程初始化->异步读取 UI_屏蔽界面文本_配置 文件...")); @@ -48,6 +49,36 @@ void WindowWorker::initialize() }break; case 8:{emit logMessage(QString("线程初始化->准备 故障记录 数据...")); emit logMessage(QString("线程初始化->异步读取 UI_报警内容文本_配置 文件")); +======= + + }break; + case 2:{emit logMessage(QString("线程初始化->准备 屏蔽条件 数据...")); + emit logMessage(QString("线程初始化->读取 UI_屏蔽界面文本_配置 文件...")); + ShieldConfigFile = ConfigFiles().ReadFile_Csv(ConfigurationPath + "画面配置/UI_屏蔽界面文本_配置.csv"); + }break; + case 3:{emit logMessage(QString("线程初始化->准备 油泵设备 数据...")); + emit logMessage(QString("线程初始化->读取 UI_油泵界面启停条件_配置 文件...")); + PumpConditionConfigFile = ConfigFiles().ReadFile_Csv(ConfigurationPath + "画面配置/UI_油泵界面启停条件_配置.csv"); + }break; + case 4:{emit logMessage(QString("线程初始化->准备 截割设备 数据...")); + emit logMessage(QString("线程初始化->读取 UI_截割界面启停条件_配置 文件")); + CutConditionConfigFile = ConfigFiles().ReadFile_Csv(ConfigurationPath + "画面配置/UI_截割界面启停条件_配置.csv"); + }break; + case 5:{emit logMessage(QString("线程初始化->准备 装载设备 数据...")); + emit logMessage(QString("线程初始化->读取 UI_装载界面启停条件_配置 文件")); + LoaderConditionConfigFile = ConfigFiles().ReadFile_Csv(ConfigurationPath + "画面配置/UI_装载界面启停条件_配置.csv"); + }break; + case 6:{emit logMessage(QString("线程初始化->准备 运输设备 数据...")); + emit logMessage(QString("线程初始化->读取 UI_运输界面启停条件_配置 文件")); + TransportConditionConfigFile = ConfigFiles().ReadFile_Csv(ConfigurationPath + "画面配置/UI_运输界面启停条件_配置.csv"); + }break; + case 7:{emit logMessage(QString("线程初始化->准备 备用设备 数据...")); + emit logMessage(QString("线程初始化->读取 UI_备用界面启停条件_配置 文件")); + StandbyConditionConfigFile = ConfigFiles().ReadFile_Csv(ConfigurationPath + "画面配置/UI_备用界面启停条件_配置.csv"); + }break; + case 8:{emit logMessage(QString("线程初始化->准备 故障记录 数据...")); + emit logMessage(QString("线程初始化->读取 UI_报警内容文本_配置 文件")); +>>>>>>> f88b815723b08bbfe04dcdec05fc5555cef9352c QList FileData = ConfigFiles().ReadFile_Csv(ConfigurationPath + "画面配置/UI_报警内容文本_配置.csv"); emit logMessage(QString("线程初始化->解析 UI_报警内容文本_配置 文件")); for (int row = 1; row < FileData.size()-1; ++row) diff --git a/Pages/P00_PublicPage.cpp b/Pages/P00_PublicPage.cpp index 531d077..4c251ce 100644 --- a/Pages/P00_PublicPage.cpp +++ b/Pages/P00_PublicPage.cpp @@ -105,6 +105,7 @@ void P00_PublicPage::WinInit() ui->Label_VoiceWidget->move(32,70+576/2); ui->Label_VoiceWidget->hide(); +<<<<<<< HEAD ui->ButToPage_1->setText(gPageName["P01"]); ui->ButToPage_2->setText(gPageName["P02"]); ui->ButToPage_3->setText(gPageName["P03"]); @@ -121,6 +122,24 @@ void P00_PublicPage::WinInit() ui->ButToPage_14->setText(gPageName["P14"]); ui->ButToPage_15->setText(gPageName["P15"]); ui->ButToPage_16->setText(gPageName["P16"]); +======= + ui->But_Page_0->setText(gPageName["P01"]); + ui->But_Page_1->setText(gPageName["P02"]); + ui->But_Page_2->setText(gPageName["P03"]); + ui->But_Page_3->setText(gPageName["P04"]); + ui->But_Page_4->setText(gPageName["P05"]); + ui->But_Page_5->setText(gPageName["P06"]); + ui->But_Page_6->setText(gPageName["P07"]); + ui->But_Page_7->setText(gPageName["P08"]); + ui->But_Page_8->setText(gPageName["P09"]); + ui->But_Page_9->setText(gPageName["P10"]); + ui->But_Page_10->setText(gPageName["P11"]); + ui->But_Page_11->setText(gPageName["P12.0"]); + ui->But_Page_12->setText(gPageName["P13"]); + ui->But_Page_13->setText(gPageName["P14"]); + ui->But_Page_14->setText(gPageName["P15"]); + ui->But_Page_15->setText(gPageName["P16"]); +>>>>>>> f88b815723b08bbfe04dcdec05fc5555cef9352c // 初始化定时器(作为成员变量) UIRefresh_Timer = new QTimer(this); @@ -302,6 +321,7 @@ void P00_PublicPage::on_But_Close_clicked() qApp->quit(); } // 页面切换实现 +<<<<<<< HEAD void P00_PublicPage::on_ButToPage_1_clicked(){ ChangePage( 0, 1, "P01");} void P00_PublicPage::on_ButToPage_2_clicked(){ ChangePage( 1, 2, "P02");} void P00_PublicPage::on_ButToPage_3_clicked(){ ChangePage( 2, 301, "P03");} @@ -318,12 +338,34 @@ void P00_PublicPage::on_ButToPage_13_clicked(){ ChangePage(12, 13, "P13");} void P00_PublicPage::on_ButToPage_14_clicked(){ ChangePage(13, 14, "P14");} void P00_PublicPage::on_ButToPage_15_clicked(){ ChangePage(14, 15, "P15");} void P00_PublicPage::on_ButToPage_16_clicked(){ ChangePage(15, 16, "P16");} +======= +void P00_PublicPage::on_But_Page_0_clicked(){ ChangePage( 0, 1, "P01");} +void P00_PublicPage::on_But_Page_1_clicked(){ ChangePage( 1, 2, "P02");} +void P00_PublicPage::on_But_Page_2_clicked(){ ChangePage( 2, 301, "P03");} +void P00_PublicPage::on_But_Page_3_clicked(){ ChangePage( 3, 401, "P04");} +void P00_PublicPage::on_But_Page_4_clicked(){ ChangePage( 4, 501, "P05");} +void P00_PublicPage::on_But_Page_5_clicked(){ ChangePage( 5, 601, "P06");} +void P00_PublicPage::on_But_Page_6_clicked(){ ChangePage( 6, 7, "P07");} +void P00_PublicPage::on_But_Page_7_clicked(){ ChangePage( 7, 8, "P08");} +void P00_PublicPage::on_But_Page_8_clicked(){ ChangePage( 8, 9, "P09");} +void P00_PublicPage::on_But_Page_9_clicked(){ ChangePage( 9, 10, "P10");} +void P00_PublicPage::on_But_Page_10_clicked(){ ChangePage(10, 11, "P11");} +void P00_PublicPage::on_But_Page_11_clicked(){ ChangePage(11, 12, gPageIndexStr12);} +void P00_PublicPage::on_But_Page_12_clicked(){ ChangePage(12, 13, "P13");} +void P00_PublicPage::on_But_Page_13_clicked(){ ChangePage(13, 14, "P14");} +void P00_PublicPage::on_But_Page_14_clicked(){ ChangePage(14, 15, "P15");} +void P00_PublicPage::on_But_Page_15_clicked(){ ChangePage(15, 16, "P16");} +>>>>>>> f88b815723b08bbfe04dcdec05fc5555cef9352c void P00_PublicPage::ChangePage(uint16_t PageIndex,uint16_t PageNum,QString PageName){ smoothScrollTo(PageIndex); m_opcManager->writeNodeValue("PageContol.CurrentPage", PageNum,5,100); gPageIndexStr = PageName; if(PageNum != 12){ +<<<<<<< HEAD ui->ButToPage_12->setText(gPageName[gPageIndexStr12]); +======= + ui->But_Page_11->setText(gPageName[gPageIndexStr12]); +>>>>>>> f88b815723b08bbfe04dcdec05fc5555cef9352c } } /* 1. 读写属性 */ diff --git a/Pages/P01_MianPage.cpp b/Pages/P01_MianPage.cpp index bfdd00b..afe7551 100644 --- a/Pages/P01_MianPage.cpp +++ b/Pages/P01_MianPage.cpp @@ -357,12 +357,20 @@ void P01_MianPage::UIRefreshTimeOut() TmpBools[9] = getNodeValue("PageBOOLS.B9") .toUInt(); //杂进度条显示 +<<<<<<< HEAD QStringList LevelCor = {"color: #ef4444","color: #f59e0b","#22c55e","color: rgb(0, 233, 253)"}; +======= + QStringList LevelCor = {"rgb(255, 0, 0)","rgb(255, 0, 0)","rgb(0, 255, 0)","rgb(0, 255, 255)"}; +>>>>>>> f88b815723b08bbfe04dcdec05fc5555cef9352c ProgressBar_LCD(ui->PB_SpareTemp,ui->LCD_SpareTemp,"PB_SpareTemp.PageGroup","IN_Sersor.SpareTemp",glMotorTempColor); ProgressBar_LCD(ui->PB_OilLevel,ui->LCD_OilLevel,"PB_OilLevel.PageGroup","IN_Sersor.OilLevel",LevelCor); ProgressBar_LCD(ui->PB_OilTemp,ui->LCD_OilTemp,"PB_OilTemp.PageGroup","IN_Sersor.OilTemp",glMotorTempColor); +<<<<<<< HEAD QStringList NullColor = {"color: rgb(0, 233, 253)","color: rgb(0, 233, 253)","color: rgb(0, 233, 253)","color: rgb(0, 233, 253)"}; +======= + QStringList NullColor = {"rgb(0, 255, 255)","rgb(0, 255, 255)","rgb(0, 255, 255)","rgb(0, 255, 255)"}; +>>>>>>> f88b815723b08bbfe04dcdec05fc5555cef9352c ProgressBar_LCD(ui->PB_PressurePump_1,ui->LCD_PressurePump_1,"PB_PressurePump1.PageGroup","IN_Sersor.Pressure_Pump1",NullColor); ProgressBar_LCD(ui->PB_PressurePump_2,ui->LCD_PressurePump_2,"PB_PressurePump2.PageGroup","IN_Sersor.Pressure_Pump2",NullColor); ProgressBar_LCD(ui->PB_PressurePump_3,ui->LCD_PressurePump_3,"PB_PressurePump3.PageGroup","IN_Sersor.Pressure_Pump3",NullColor); @@ -447,6 +455,12 @@ void P01_MianPage::ProgressBar_LCD(QProgressBar *QPB,QLCDNumber *QLCD,QString No QLCD->display(QString::number(Value,'f',2)); } void P01_MianPage::PB_Refresh(QString Dev){ +<<<<<<< HEAD +======= + uint32_t PB_Group1 = getNodeValue("PB_Curr_"+Dev+".PageGroup1") .toUInt(); + uint32_t PB_Group2 = getNodeValue("PB_Curr_"+Dev+".PageGroup2") .toUInt(); + uint32_t PB_MotorTemp = getNodeValue("PB_Temp_"+Dev+".PageGroup") .toUInt(); +>>>>>>> f88b815723b08bbfe04dcdec05fc5555cef9352c uint32_t PB_Group1 = getNodeValue("PB_Curr_"+Dev+".PageGroup1") .toUInt(); uint32_t PB_Group2 = getNodeValue("PB_Curr_"+Dev+".PageGroup2") .toUInt(); diff --git a/Pages/P08_AlarmPage.cpp b/Pages/P08_AlarmPage.cpp index a2f5c2a..dfcf84d 100644 --- a/Pages/P08_AlarmPage.cpp +++ b/Pages/P08_AlarmPage.cpp @@ -105,9 +105,16 @@ void P08_AlarmPage::UIRefreshTimeOut() uint16_t localOldAlarmCode = m_oldAlarmCode; m_oldAlarmCode = NewAlarmCode; +<<<<<<< HEAD // 解析设备码 + 索引码 uint8_t devCode = NewAlarmCode >> 8; // 高 8 位 uint8_t idxCode = NewAlarmCode & 0xFF; // 低 8 位 +======= + uint16_t NewAlarmCode = getNodeValue("AlarmCode.New").toUInt(); + if (NewAlarmCode == m_oldAlarmCode) + return; + m_oldAlarmCode = NewAlarmCode; +>>>>>>> f88b815723b08bbfe04dcdec05fc5555cef9352c // 格式化字符串 QString timeStr = QDateTime::currentDateTime().toString("MM-dd hh:mm:ss"); diff --git a/Pages/P09_RemotePage.cpp b/Pages/P09_RemotePage.cpp index 5a315a9..f3b119a 100644 --- a/Pages/P09_RemotePage.cpp +++ b/Pages/P09_RemotePage.cpp @@ -45,6 +45,7 @@ void P09_RemotePage::UIRefreshTimeOut() { if(gPageIndexStr != "P09") return; +<<<<<<< HEAD // 使用多核心管理器异步获取数据 MultiCoreManager::instance()->submitTask([this]() { @@ -81,6 +82,13 @@ void P09_RemotePage::UIRefreshTimeOut() uint16_t dX = map(extractUInt32_8BitPart(AK1,2) + 256,0,512.,0,140)- ui->Label_TransportPos->width()/2; uint16_t dY = map(extractUInt32_8BitPart(AK1,3) + 256,0,512.,0,140)- ui->Label_TransportPos->height()/2; ui->Label_TransportPos->move(dX,dY); +======= + QString StyleSheetSet; + uint32_t DK1 = getNodeValue("PageContol.RemoteDKey1") .toUInt(); + uint32_t DK2 = getNodeValue("PageContol.RemoteDKey2") .toUInt(); + uint32_t AK1 = getNodeValue("PageContol.RemoteAKey1") .toUInt(); + uint32_t AK2 = getNodeValue("PageContol.RemoteAKey2") .toUInt(); +>>>>>>> f88b815723b08bbfe04dcdec05fc5555cef9352c // 通用模拟量 SetStyle2( ui->Switch_5 , BitMaps().RemUI_SwitchStyles , extractUInt32_8BitPart(AK2,0) < 127 , extractUInt32_8BitPart(AK2,0) > 127 ); diff --git a/Pages/P11_IsolationPage.cpp b/Pages/P11_IsolationPage.cpp index cc70a1a..0a91b95 100644 --- a/Pages/P11_IsolationPage.cpp +++ b/Pages/P11_IsolationPage.cpp @@ -66,6 +66,18 @@ void P11_IsolationPage::UIRefreshTimeOut() { if(gPageIndexStr != "P11") return; +<<<<<<< HEAD +======= + uint32_t Status = getNodeValue("HMI_LC_Status") .toUInt(); + qDebug()<>>>>>> f88b815723b08bbfe04dcdec05fc5555cef9352c // 使用多核心管理器异步处理数据获取和UI更新 //MultiCoreManager::instance()->submitTask([this]() { diff --git a/Pages/P12_NetworkPage.cpp b/Pages/P12_NetworkPage.cpp index a5e7679..5df7737 100644 --- a/Pages/P12_NetworkPage.cpp +++ b/Pages/P12_NetworkPage.cpp @@ -7,7 +7,10 @@ #include #include #include +<<<<<<< HEAD #include +======= +>>>>>>> f88b815723b08bbfe04dcdec05fc5555cef9352c class ReadOnlyItem : public QTableWidgetItem { public: @@ -238,6 +241,7 @@ void P12_NetworkPage::UIRefreshTimeOut() { if(!gPageIndexStr.contains("P12")) return; +<<<<<<< HEAD // 使用多核心管理器异步处理数据更新 //MultiCoreManager::instance()->submitTask([this]() { @@ -271,6 +275,20 @@ void P12_NetworkPage::UIRefreshTimeOut() QMetaObject::invokeMethod(this, &P12_NetworkPage::UIRefresh_Page0, Qt::QueuedConnection); } //}, "network_page_update_task"); +======= + switch (ui->MainWidget->currentIndex()) { + case 0:UIRefresh_Page0();break; + case 1:TableViewDataUpdate(ui->TableWidget_PLC_1,&mCsvConfig[0]);break; + case 2:TableViewDataUpdate(ui->TableWidget_PLC_2,&mCsvConfig[1]);break; + case 3:TableViewDataUpdate(ui->TableWidget_PLC_3,&mCsvConfig[2]);break; + case 4:TableViewDataUpdate(ui->TableWidget_PLC_4,&mCsvConfig[3]);break; + case 5:TableViewDataUpdate(ui->TableWidget_PLC_5,&mCsvConfig[4]);break; + case 6:TableViewDataUpdate(ui->TableWidget_PLC_6,&mCsvConfig[5]);break; + case 7:TableViewDataUpdate(ui->TableWidget_PLC_7,&mCsvConfig[6]);break; + case 8:TableViewDataUpdate(ui->TableWidget_PLC_8,&mCsvConfig[7]);break; +// case 9:TableViewDataUpdate(ui->TableWidget_PLC_9,&mCsvConfig[8]);break; + } +>>>>>>> f88b815723b08bbfe04dcdec05fc5555cef9352c } void P12_NetworkPage::on_But_Network_0_clicked(){ slideToIndex(0, "P12.0");} diff --git a/Pages/P12_NetworkPage.ui b/Pages/P12_NetworkPage.ui index ff04c1e..a72a0e7 100644 --- a/Pages/P12_NetworkPage.ui +++ b/Pages/P12_NetworkPage.ui @@ -37,7 +37,7 @@ color: #e0f7fa color: #f3f4f6 - 0 + 1 @@ -3405,6 +3405,134 @@ QTableWidget::item { +<<<<<<< HEAD +======= + + + + + 0 + 0 + 1024 + 521 + + + + /* ====== 2. 整个表格 ====== */ +QTableWidget { + border-image: url(:/Frames/Frames/49.png); + gridline-color: cyan; /* 网格线颜色 */ + color: cyan; /* 默认文字颜色 */ + outline: 0; /* 去掉选中虚线框 */ + font: 87 10pt "思源黑体 Heavy"; +} +QTableWidget::item { + text-align: center; + } + + + + + + + + 0 + 0 + 1024 + 521 + + + + /* ====== 2. 整个表格 ====== */ +QTableWidget { + border-image: url(:/Frames/Frames/49.png); + gridline-color: cyan; /* 网格线颜色 */ + color: cyan; /* 默认文字颜色 */ + outline: 0; /* 去掉选中虚线框 */ + font: 87 10pt "思源黑体 Heavy"; +} +QTableWidget::item { + text-align: center; + } + + + + + + + + 0 + 0 + 1024 + 521 + + + + /* ====== 2. 整个表格 ====== */ +QTableWidget { + border-image: url(:/Frames/Frames/49.png); + gridline-color: cyan; /* 网格线颜色 */ + color: cyan; /* 默认文字颜色 */ + outline: 0; /* 去掉选中虚线框 */ + font: 87 10pt "思源黑体 Heavy"; +} +QTableWidget::item { + text-align: center; + } + + + + + + + + 0 + 0 + 1024 + 521 + + + + /* ====== 2. 整个表格 ====== */ +QTableWidget { + border-image: url(:/Frames/Frames/49.png); + gridline-color: cyan; /* 网格线颜色 */ + color: cyan; /* 默认文字颜色 */ + outline: 0; /* 去掉选中虚线框 */ + font: 87 10pt "思源黑体 Heavy"; +} +QTableWidget::item { + text-align: center; + } + + + + + + + + 0 + 0 + 1024 + 521 + + + + /* ====== 2. 整个表格 ====== */ +QTableWidget { + border-image: url(:/Frames/Frames/49.png); + gridline-color: cyan; /* 网格线颜色 */ + color: cyan; /* 默认文字颜色 */ + outline: 0; /* 去掉选中虚线框 */ + font: 87 10pt "思源黑体 Heavy"; +} +QTableWidget::item { + text-align: center; + } + + + +>>>>>>> f88b815723b08bbfe04dcdec05fc5555cef9352c diff --git a/Pages/P301_PumpPage.cpp b/Pages/P301_PumpPage.cpp index 35ff341..edd9bf9 100644 --- a/Pages/P301_PumpPage.cpp +++ b/Pages/P301_PumpPage.cpp @@ -205,7 +205,11 @@ void P301_PumpPage::UIRefreshTimeOut() for (int i = 0; i < 32; ++i) { // 根据索引查找对应的标签控件 +<<<<<<< HEAD QLabel* Label = findChild(QString("Pump_SSConditions_%1").arg(i+1)); +======= + QLabel* Label = findChild(QString("Text_SSConditions_%1").arg(i+1)); +>>>>>>> f88b815723b08bbfe04dcdec05fc5555cef9352c // 如果找到标签 if (Label){ // 基础样式:默认背景图 @@ -236,10 +240,17 @@ void P301_PumpPage::UIRefreshTimeOut() } void P301_PumpPage::TrailRefreshTimeOut(){ +<<<<<<< HEAD ui->Pump_CPW_1->appendPoint(0, getNodeValue("IN_PhasePump.Filtered30_U") .toReal()); ui->Pump_CPW_1->appendPoint(1, getNodeValue("IN_PhasePump.Filtered30_V") .toReal()); ui->Pump_CPW_1->appendPoint(2, getNodeValue("IN_PhasePump.Filtered30_W") .toReal()); ui->Pump_CPW_2->appendPoint(0, getNodeValue("IN_PhasePump.Filtered_Temp") .toDouble()); +======= + ui->CPW_1->appendPoint(0, getNodeValue("IN_PhasePump.Filtered30_U") .toReal()); + ui->CPW_1->appendPoint(1, getNodeValue("IN_PhasePump.Filtered30_V") .toReal()); + ui->CPW_1->appendPoint(2, getNodeValue("IN_PhasePump.Filtered30_W") .toReal()); + ui->CPW_2->appendPoint(0, getNodeValue("IN_PhasePump.Filtered_Temp") .toDouble()); +>>>>>>> f88b815723b08bbfe04dcdec05fc5555cef9352c } diff --git a/Pages/P401_CuttingPage.cpp b/Pages/P401_CuttingPage.cpp index c750e23..4b38e9d 100644 --- a/Pages/P401_CuttingPage.cpp +++ b/Pages/P401_CuttingPage.cpp @@ -169,6 +169,7 @@ void P401_CuttingPage::UIRefreshTimeOut() { if(!gPageIndexStr.contains("P04")) return; +<<<<<<< HEAD // 使用多核心管理器异步获取切割页面数据 //MultiCoreManager::instance()->submitTask([this]() { @@ -277,6 +278,85 @@ void P401_CuttingPage::TrailRefreshTimeOut(){ ui->Cut_CPW_1->appendPoint(1, getNodeValue("IN_PhaseCut.Filtered30_V") .toReal()); ui->Cut_CPW_1->appendPoint(2, getNodeValue("IN_PhaseCut.Filtered30_W") .toReal()); ui->Cut_CPW_2->appendPoint(0,getNodeValue("IN_PhaseCut.Filtered_Temp") .toDouble()); +======= + /************************************* 电机基本信息 *************************************/ + // 从OPC节点获取切割设备电机相关的状态数据(32位无符号整数) + uint32_t PB_Group1 = getNodeValue("PB_Curr_Cut.PageGroup1").toUInt(); // 电流显示组1数据 + uint32_t PB_Group2 = getNodeValue("PB_Curr_Cut.PageGroup2").toUInt(); // 电流显示组2数据 + uint32_t PB_MotorTemp = getNodeValue("PB_Temp_Cut.PageGroup").toUInt(); // 电机温度显示数据 + uint32_t SSConditions = getNodeValue("StartStopConditions.Cut").toUInt(); // 启停条件状态数据 + + // 从32位数据中提取16位百分比值(高16位和低16位拆分) + uint16_t PercentageCurU = static_cast(PB_Group1 >> 16); // U相电流百分比(高16位) + uint16_t PercentageCurV = static_cast(PB_Group1 & 0xFFFF); // V相电流百分比(低16位) + uint16_t PercentageCurW = static_cast(PB_Group2 >> 16); // W相电流百分比(高16位) + uint16_t PercentageTmpColor = static_cast(PB_Group2 & 0xFFFF); // 温度颜色百分比(低16位) + uint16_t PercentageMotorTemp= static_cast(PB_MotorTemp >> 16); // 电机温度百分比(高16位) + uint16_t ColorTemp = static_cast(PB_MotorTemp & 0xFFFF); // 温度颜色值(低16位) + + // 解析颜色值(从百分比中提取个位、十位、百位) + uint8_t ColorU = (PercentageTmpColor / 10) % 10; // U相颜色值(十位) + uint8_t ColorV = (PercentageTmpColor / 100) % 10; // V相颜色值(百位) + uint8_t ColorW = PercentageTmpColor % 10; // W相颜色值(个位) + + // 设置进度条显示(电流和温度) + SetProgressBar(ui->PB_Cur_1, PercentageCurU, ColorU, glMotorCurColor); // U相电流进度条 + SetProgressBar(ui->PB_Cur_2, PercentageCurV, ColorV, glMotorCurColor); // V相电流进度条 + SetProgressBar(ui->PB_Cur_3, PercentageCurW, ColorW, glMotorCurColor); // W相电流进度条 + SetProgressBar(ui->PB_Temp, PercentageMotorTemp, ColorTemp, glMotorTempColor); // 电机温度进度条 + + // 在LCD上显示实际测量值(电流和温度) + ui->LCD_Cur_1->display(getNodeValue("IN_PhaseCut.Filtered30_U").toReal()); // U相电流实际值 + ui->LCD_Cur_2->display(getNodeValue("IN_PhaseCut.Filtered30_V").toReal()); // V相电流实际值 + ui->LCD_Cur_3->display(getNodeValue("IN_PhaseCut.Filtered30_W").toReal()); // W相电流实际值 + ui->LCD_Temp->display(getNodeValue("IN_PhaseCut.Filtered_Temp").toReal()); // 电机温度实际值 + + // 更新32个启停条件状态标签的显示样式 + for (int i = 0; i < 32; ++i) + { + // 根据索引查找对应的标签控件 + QLabel* Label = findChild(QString("Text_SSConditions_%1").arg(i+1)); + // 如果找到标签 + if (Label){ + // 基础样式:默认背景图 + QString StyleStr = "border-image: url(:/Frames/null.png);\n"; + + // 根据状态位设置不同颜色(True/False对应不同样式) + StyleStr += getBitOf32Data(SSConditions, i, false) ? TrueColor[i] + "\n" : FalseColor[i] + "\n"; + // 应用样式到标签 + + Label->setStyleSheet(StyleStr); + } + } + /**************************************************************************************/ + + + + /************************************ 截割油缸压力信息 ***********************************/ + SetProgressBar(ui->PB_1,ui->LCD_1,"PB_Pressure_Cut.PageGroup","IN_Sersor.Pressure_Cut"); + /**************************************************************************************/ + + /************************************ 掏槽油缸压力信息 ***********************************/ + SetProgressBar(ui->PB_2,ui->LCD_2,"PB_Pressure_Cutt.PageGroup","IN_Sersor.Pressure_Cutt"); + /**************************************************************************************/ + + /************************************ 截割喷雾压力信息 ***********************************/ + SetProgressBar(ui->PB_3,ui->LCD_3,"PB_Pressure_CutSpray.PageGroup","IN_Sersor.Pressure_CutSpray"); + /**************************************************************************************/ + + /************************************ 截割喷雾流量信息 ***********************************/ + SetProgressBar(ui->PB_4,ui->LCD_4,"PB_SprayFlow_Cut.PageGroup","IN_Sersor.SprayFlow_Cut"); + /**************************************************************************************/ + + +} + +void P401_CuttingPage::TrailRefreshTimeOut(){ + ui->CPW_1->appendPoint(0, getNodeValue("IN_PhaseCut.Filtered30_U") .toReal()); + ui->CPW_1->appendPoint(1, getNodeValue("IN_PhaseCut.Filtered30_V") .toReal()); + ui->CPW_1->appendPoint(2, getNodeValue("IN_PhaseCut.Filtered30_W") .toReal()); + ui->CPW_2->appendPoint(0,getNodeValue("IN_PhaseCut.Filtered_Temp") .toDouble()); +>>>>>>> f88b815723b08bbfe04dcdec05fc5555cef9352c } diff --git a/Pages/P501_LoaderPage.cpp b/Pages/P501_LoaderPage.cpp index 41ebe29..416a15a 100644 --- a/Pages/P501_LoaderPage.cpp +++ b/Pages/P501_LoaderPage.cpp @@ -246,7 +246,11 @@ void P501_LoaderPage::UIRefreshTimeOut() for (int i = 0; i < 32; ++i) { // 根据索引查找对应的标签控件 +<<<<<<< HEAD QLabel* Label = findChild(QString("Loader_SSConditions_%1").arg(i+1)); +======= + QLabel* Label = findChild(QString("Text_SSConditions_%1").arg(i+1)); +>>>>>>> f88b815723b08bbfe04dcdec05fc5555cef9352c // 如果找到标签 if (Label){ // 基础样式:默认背景图 @@ -268,6 +272,7 @@ void P501_LoaderPage::UIRefreshTimeOut() } void P501_LoaderPage::TrailRefreshTimeOut(){ +<<<<<<< HEAD ui->Loader_CPW_L1->appendPoint(0, getNodeValue("IN_PhaseLoaderL.Filtered30_U") .toReal()); ui->Loader_CPW_L1->appendPoint(1, getNodeValue("IN_PhaseLoaderL.Filtered30_V") .toReal()); ui->Loader_CPW_L1->appendPoint(2, getNodeValue("IN_PhaseLoaderL.Filtered30_W") .toReal()); @@ -277,6 +282,17 @@ void P501_LoaderPage::TrailRefreshTimeOut(){ ui->Loader_CPW_R1->appendPoint(1, getNodeValue("IN_PhaseLoaderR.Filtered30_V") .toReal()); ui->Loader_CPW_R1->appendPoint(2, getNodeValue("IN_PhaseLoaderR.Filtered30_W") .toReal()); ui->Loader_CPW_R2->appendPoint(0,getNodeValue("IN_PhaseLoaderR.Filtered_Temp") .toDouble()); +======= + ui->CPW_L1->appendPoint(0, getNodeValue("IN_PhaseLoaderL.Filtered30_U") .toReal()); + ui->CPW_L1->appendPoint(1, getNodeValue("IN_PhaseLoaderL.Filtered30_V") .toReal()); + ui->CPW_L1->appendPoint(2, getNodeValue("IN_PhaseLoaderL.Filtered30_W") .toReal()); + ui->CPW_L2->appendPoint(0,getNodeValue("IN_PhaseLoaderL.Filtered_Temp") .toDouble()); + + ui->CPW_R1->appendPoint(0, getNodeValue("IN_PhaseLoaderR.Filtered30_U") .toReal()); + ui->CPW_R1->appendPoint(1, getNodeValue("IN_PhaseLoaderR.Filtered30_V") .toReal()); + ui->CPW_R1->appendPoint(2, getNodeValue("IN_PhaseLoaderR.Filtered30_W") .toReal()); + ui->CPW_R2->appendPoint(0,getNodeValue("IN_PhaseLoaderR.Filtered_Temp") .toDouble()); +>>>>>>> f88b815723b08bbfe04dcdec05fc5555cef9352c } void P501_LoaderPage::RotateDev(){ diff --git a/Pages/P601_TransportPage.cpp b/Pages/P601_TransportPage.cpp index a3cb5dd..f0a0c13 100644 --- a/Pages/P601_TransportPage.cpp +++ b/Pages/P601_TransportPage.cpp @@ -246,7 +246,11 @@ void P601_TransportPage::UIRefreshTimeOut() for (int i = 0; i < 32; ++i) { // 根据索引查找对应的标签控件 +<<<<<<< HEAD QLabel* Label = findChild(QString("Transport_SSConditions_%1").arg(i+1)); +======= + QLabel* Label = findChild(QString("Text_SSConditions_%1").arg(i+1)); +>>>>>>> f88b815723b08bbfe04dcdec05fc5555cef9352c // 如果找到标签 if (Label){ // 基础样式:默认背景图 @@ -263,6 +267,7 @@ void P601_TransportPage::UIRefreshTimeOut() } void P601_TransportPage::TrailRefreshTimeOut(){ +<<<<<<< HEAD ui->Transport_CPW_L1->appendPoint(0, getNodeValue("IN_PhaseTransportL.Filtered30_U") .toReal()); ui->Transport_CPW_L1->appendPoint(1, getNodeValue("IN_PhaseTransportL.Filtered30_V") .toReal()); ui->Transport_CPW_L1->appendPoint(2, getNodeValue("IN_PhaseTransportL.Filtered30_W") .toReal()); @@ -272,6 +277,17 @@ void P601_TransportPage::TrailRefreshTimeOut(){ ui->Transport_CPW_R1->appendPoint(1, getNodeValue("IN_PhaseTransportR.Filtered30_V") .toReal()); ui->Transport_CPW_R1->appendPoint(2, getNodeValue("IN_PhaseTransportR.Filtered30_W") .toReal()); ui->Transport_CPW_R2->appendPoint(0,getNodeValue("IN_PhaseTransportR.Filtered_Temp") .toDouble()); +======= + ui->CPW_L1->appendPoint(0, getNodeValue("IN_PhaseTransportL.Filtered30_U") .toReal()); + ui->CPW_L1->appendPoint(1, getNodeValue("IN_PhaseTransportL.Filtered30_V") .toReal()); + ui->CPW_L1->appendPoint(2, getNodeValue("IN_PhaseTransportL.Filtered30_W") .toReal()); + ui->CPW_L2->appendPoint(0,getNodeValue("IN_PhaseTransportL.Filtered_Temp") .toDouble()); + + ui->CPW_R1->appendPoint(0, getNodeValue("IN_PhaseTransportR.Filtered30_U") .toReal()); + ui->CPW_R1->appendPoint(1, getNodeValue("IN_PhaseTransportR.Filtered30_V") .toReal()); + ui->CPW_R1->appendPoint(2, getNodeValue("IN_PhaseTransportR.Filtered30_W") .toReal()); + ui->CPW_R2->appendPoint(0,getNodeValue("IN_PhaseTransportR.Filtered_Temp") .toDouble()); +>>>>>>> f88b815723b08bbfe04dcdec05fc5555cef9352c } void P601_TransportPage::RotateDev(){ diff --git a/Pages/P901_RemotePage.cpp b/Pages/P901_RemotePage.cpp index 84c3915..9babe89 100644 --- a/Pages/P901_RemotePage.cpp +++ b/Pages/P901_RemotePage.cpp @@ -47,6 +47,7 @@ void P901_RemotePage::UIRefreshTimeOut() { if(gPageIndexStr != "P09") return; +<<<<<<< HEAD // 使用多核心管理器异步获取数据 //MultiCoreManager::instance()->submitTask([this]() { @@ -83,6 +84,13 @@ void P901_RemotePage::UIRefreshTimeOut() uint16_t dX = map(extractUInt32_8BitPart(AK1,2) + 256,0,512.,0,140)- ui->Label_TransportPos->width()/2; uint16_t dY = map(extractUInt32_8BitPart(AK1,3) + 256,0,512.,0,140)- ui->Label_TransportPos->height()/2; ui->Label_TransportPos->move(dX,dY); +======= + QString StyleSheetSet; + uint32_t DK1 = getNodeValue("PageContol.RemoteDKey1") .toUInt(); + uint32_t DK2 = getNodeValue("PageContol.RemoteDKey2") .toUInt(); + uint32_t AK1 = getNodeValue("PageContol.RemoteAKey1") .toUInt(); + uint32_t AK2 = getNodeValue("PageContol.RemoteAKey2") .toUInt(); +>>>>>>> f88b815723b08bbfe04dcdec05fc5555cef9352c // 通用模拟量 SetStyle2( ui->Switch_5 , BitMaps().RemUI_SwitchStyles , extractUInt32_8BitPart(AK2,0) < 127 , extractUInt32_8BitPart(AK2,0) > 127 ); diff --git a/Pages/P902_RemotePage.cpp b/Pages/P902_RemotePage.cpp index 2aee19c..8835f89 100644 --- a/Pages/P902_RemotePage.cpp +++ b/Pages/P902_RemotePage.cpp @@ -47,6 +47,7 @@ void P902_RemotePage::UIRefreshTimeOut() { if(gPageIndexStr != "P09") return; +<<<<<<< HEAD // 使用多核心管理器异步获取数据 //MultiCoreManager::instance()->submitTask([this]() { @@ -83,6 +84,13 @@ void P902_RemotePage::UIRefreshTimeOut() uint16_t dX = map(extractUInt32_8BitPart(AK1,2) + 256,0,512.,0,140)- ui->Label_TransportPos->width()/2; uint16_t dY = map(extractUInt32_8BitPart(AK1,3) + 256,0,512.,0,140)- ui->Label_TransportPos->height()/2; ui->Label_TransportPos->move(dX,dY); +======= + QString StyleSheetSet; + uint32_t DK1 = getNodeValue("PageContol.RemoteDKey1") .toUInt(); + uint32_t DK2 = getNodeValue("PageContol.RemoteDKey2") .toUInt(); + uint32_t AK1 = getNodeValue("PageContol.RemoteAKey1") .toUInt(); + uint32_t AK2 = getNodeValue("PageContol.RemoteAKey2") .toUInt(); +>>>>>>> f88b815723b08bbfe04dcdec05fc5555cef9352c // 通用模拟量 SetStyle2( ui->Switch_5 , BitMaps().RemUI_SwitchStyles , extractUInt32_8BitPart(AK2,0) < 127 , extractUInt32_8BitPart(AK2,0) > 127 ); diff --git a/Pictures/批量修改为sRGB图片.ps1 b/Pictures/批量修改为sRGB图片.ps1 new file mode 100644 index 0000000..ae6aa45 --- /dev/null +++ b/Pictures/批量修改为sRGB图片.ps1 @@ -0,0 +1,40 @@ +# 配置图片根目录(已填写你的路径) +$rootDirectory = ".\" + +# 要处理的图片格式(仅处理PNG,可根据需要添加其他格式) +$imageExtensions = @("*.png") + +# ImageMagick的magick命令路径(默认安装路径,需根据实际安装情况修改) +$magickPath = "D:\Application\ImageMagick-7.1.2-Q16-HDRI\magick.exe" + +# 检查magick.exe是否存在 +if (-not (Test-Path $magickPath)) { + Write-Host "错误:未找到magick.exe,请检查ImageMagick安装路径是否正确!" -ForegroundColor Red + Write-Host "提示:默认路径为C:\Program Files\ImageMagick-版本号\magick.exe" -ForegroundColor Yellow + exit +} + +# 递归查找所有图片文件 +$imageFiles = Get-ChildItem -Path $rootDirectory -Include $imageExtensions -Recurse -File + +if ($imageFiles.Count -eq 0) { + Write-Host "未找到任何图片文件" -ForegroundColor Yellow + exit +} + +# 批量处理图片 +foreach ($file in $imageFiles) { + Write-Host "正在处理: $($file.FullName)" + + # 使用magick命令,路径添加引号处理特殊字符 + & $magickPath "$($file.FullName)" -strip "$($file.FullName)" + + # 检查处理结果 + if ($LASTEXITCODE -eq 0) { + Write-Host "✅ 处理成功: $($file.Name)" -ForegroundColor Green + } else { + Write-Host "❌ 处理失败: $($file.Name)" -ForegroundColor Red + } +} + +Write-Host "`n处理完成,共处理了 $($imageFiles.Count) 个文件" -ForegroundColor Cyan