modbus rtu 1.1 plugins

This commit is contained in:
flower_linux
2026-04-10 10:52:10 +08:00
parent 51175ffd18
commit b44f5e275e
66 changed files with 1088 additions and 1124 deletions

View File

@@ -12,9 +12,13 @@
#include "core/plugin_system/PluginManager.h"
#include "core/plugin_system/IProtocolFramerPlugin.h"
#include "core/plugin_system/IProtocolMapperPlugin.h"
#include "core/models/DOMMessage.h"
#include "core/models/EnrichedMessage.h"
#include "core/memory/LockFreeQueue.h"
#include "core/memory/MemoryPool.h"
#include "core/threading/MutexQueue.h"
#include "message_bus/pipeline/DynamicRuleRegistry.h"
#include "message_bus/pipeline/PipelineContext.h"
#include "message_bus/pipeline/stages/1_framers/PassthroughFramer.h"
@@ -29,9 +33,6 @@ struct PipelineRuntimeConfig
std::size_t framedQueueMax{4096};
std::size_t maxReorderDepth{256};
std::size_t modbusMaxAdu{256};
int modbusInterFrameTimeoutMs{0};
};
struct EndpointFramingState;
@@ -92,9 +93,11 @@ private:
bool runStages234(PipelineContext& ctx);
void ingestMergeItem(MergeItem item);
bool stage2Parser(PipelineContext& ctx);
bool stage3Filter(PipelineContext& ctx);
bool stage4Validator(PipelineContext& ctx);
std::vector<softbus::core::models::DOMMessage> stage2Parser(const PipelineContext& ctx);
bool stage3Filter(softbus::core::models::DOMMessage& message);
bool stage4Validator(const softbus::core::models::DOMMessage& message) const;
softbus::core::models::EnrichedMessage applyTransformAndEnrich(
const PipelineContext& rawCtx, softbus::core::models::DOMMessage& message) const;
private:
softbus::core::memory::LockFreeQueue<PipelineContext> m_ingressQ;
@@ -110,6 +113,10 @@ private:
std::shared_ptr<softbus::message_bus::pipeline::stages::framers::PassthroughFramer> m_passthroughFramer;
std::mutex m_framerSessionMutex;
QHash<QString, std::shared_ptr<softbus::core::plugin_system::IProtocolFramerSession>> m_framerSessions;
std::mutex m_parserSessionMutex;
QHash<QString, std::shared_ptr<softbus::core::plugin_system::IProtocolSession>> m_parserSessions;
std::mutex m_mapperSessionMutex;
QHash<QString, std::shared_ptr<softbus::core::plugin_system::IProtocolMapperSession>> m_mapperSessions;
std::mutex m_seqMutex;
QHash<QString, std::uint64_t> m_nextFrameSeqByEndpoint;