From 912cc1e220171d15b1cf9f3d4f0d83e21e943432 Mon Sep 17 00:00:00 2001 From: email <15737449156@163.com> Date: Thu, 14 Aug 2025 14:58:10 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E6=9C=80=E5=90=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- untitled/hmidocument.cpp | 22 +++++++++------------- untitled/modbussimulator.cpp | 4 +--- 2 files changed, 10 insertions(+), 16 deletions(-) diff --git a/untitled/hmidocument.cpp b/untitled/hmidocument.cpp index a6c09cf..8d49108 100644 --- a/untitled/hmidocument.cpp +++ b/untitled/hmidocument.cpp @@ -71,28 +71,24 @@ HMIDocument::~HMIDocument() } void HMIDocument::startSimulation() { - qDebug() <<"123"; - if (m_modbusSimulator && m_modbusSimulator->isRunning()) return; - // 收集所有线圈地址 QSet addresses; - foreach (QGraphicsItem *item, m_scene->items()) { if (auto namedItem = dynamic_cast(item)) { bool ok; int address = namedItem->name().toInt(&ok); - - if (ok && address >= 0 && address <= 4000) { // 限制有效范围 + if (ok && address >= 0 && address <= 4000) + { // 限制有效范围 // 只收集指示灯(ResizableEllipse)的地址 - if (auto ellipseItem = dynamic_cast(item)) { + if (auto ellipseItem = dynamic_cast(item)) + { addresses.insert(address); - // 遍历代码结束后 - qDebug() << "收集到的指示灯地址:" << addresses; // 检查是否正确包含地址(如123) - } else { - // 对按钮(ResizableRectangle)进行处理,但不收集地址 + } + else + { qDebug() << "按钮不收集地址: " << item->type(); } - } else { - // 记录无效地址,方便调试 + } + else { qDebug() << "无效的线圈地址:" << namedItem->name() << "(图形项类型:" << item->type() << ")"; } diff --git a/untitled/modbussimulator.cpp b/untitled/modbussimulator.cpp index 80b029e..9df5ade 100644 --- a/untitled/modbussimulator.cpp +++ b/untitled/modbussimulator.cpp @@ -38,7 +38,6 @@ void PollingWorker::performCoilReading() if (m_coilAddresses->isEmpty()) return; addressesCopy = *m_coilAddresses; } - int minAddress = *std::min_element(addressesCopy.begin(), addressesCopy.end()); int maxAddress = *std::max_element(addressesCopy.begin(), addressesCopy.end()); int count = maxAddress - minAddress + 1; @@ -149,9 +148,8 @@ void ModbusSimulator::stopSimulation() } void ModbusSimulator::setCoilAddresses(const QSet &addresses) -{ //qDebug()<<"这里"; +{ QMutexLocker locker(&m_mutex); - qDebug()<<"这里2"; m_coilAddresses = addresses; }