modbus rtu 1.2

This commit is contained in:
flower_linux
2026-04-14 15:39:04 +08:00
parent b44f5e275e
commit 4f2ada08c8
31 changed files with 749 additions and 300 deletions

View File

@@ -1,7 +1,7 @@
#include "plugins/protocols/modbus_rtu/parser/ModbusRtuProtocolPlugin.h"
#include "core/plugin_system/IProtocolPlugin.h"
#include "message_bus/pipeline/PipelineContext.h"
#include "core/models/RawBusMessage.h"
#include "message_bus/pipeline/protocol/ProtocolEnvelope.h"
#include "plugins/protocols/modbus_rtu/codec/ModbusRtuCodec.h"
#include "plugins/protocols/modbus_rtu/framer/ModbusRtuFraming.h"
@@ -49,11 +49,10 @@ overloaded(Ts...) -> overloaded<Ts...>;
class ModbusRtuSession final : public IProtocolSession
{
public:
bool parse(const softbus::message_bus::pipeline::PipelineContext& ctx,
bool parse(const softbus::core::models::RawBusMessage& ctx,
softbus::message_bus::pipeline::protocol::ProtocolEnvelope& out) override
{
using softbus::message_bus::pipeline::FrameKind;
if (ctx.frameKind != FrameKind::CompleteFrame || !ctx.payload.valid()) {
if (!ctx.payload.valid()) {
return false;
}
const std::size_t n = ctx.payloadSize ? ctx.payloadSize : ctx.payload.length;
@@ -63,7 +62,11 @@ public:
}
ModbusRtuPdu pdu;
if (!decodeModbusRtu(ctx.direction, p, n, pdu, nullptr)) {
if (!decodeModbusRtu(ctx.direction,
p,
n,
pdu,
nullptr)) {
out.family = ProtocolFamily::None;
out.pdu = {};
return false;