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; }