context bind
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user