context bind

This commit is contained in:
flower_linux
2026-04-22 17:25:51 +08:00
parent 11bc015444
commit 7459cc0f36
31 changed files with 1427 additions and 31 deletions

View File

@@ -24,7 +24,7 @@ public:
{
m_buf.resize(m_cfg.maxAdu);
}
// 功能 处理收到的数据块
void feedChunk(softbus::core::models::RawBusMessage& in,
std::vector<softbus::core::models::RawBusMessage>& out) override
{
@@ -47,6 +47,7 @@ public:
m_lastActivity = m_lastRx;
if (m_len + n > m_cfg.maxAdu) {
// 功能 如果数据块超过最大长度,则丢弃
LOG_WARNING() << "ModbusRtuFramerPlugin: overflow endpointHash=0x"
<< QString::number(m_endpointHash, 16);
m_len = 0;

View File

@@ -64,6 +64,19 @@ public:
rec.lastSeenMs = rawContext.timestampMs;
m_context.discoverySink->reportUnmapped(rec);
}
// 无 metadata 映射时仍产出 DOM便于 DynamicRuleRegistry 的 transform 等下游逻辑生效
// compositeKey 仍按与映射表相同的算法计算,便于后续在 UI 里绑定映射)
softbus::core::models::DOMMessage pass;
pass.messageId = QStringLiteral("modbus.unmapped:%1").arg(compKey);
pass.timestamp = rawContext.timestampMs;
pass.value = rawValue;
pass.quality = softbus::core::models::DataQuality::GOOD;
pass.attributes.insert(QStringLiteral("sourceEndpoint"), QString::number(rawContext.endpointHash));
pass.attributes.insert(QStringLiteral("compositeKey"), QString::number(compKey));
pass.attributes.insert(QStringLiteral("slaveId"), static_cast<int>(resp->unitId));
pass.attributes.insert(QStringLiteral("registerAddress"), static_cast<int>(addr));
pass.attributes.insert(QStringLiteral("unmapped"), true);
out.push_back(std::move(pass));
continue;
}
softbus::core::models::DOMMessage msg;