feat(modbus-rtu): add ModbusTransportMode enum (Tcp | RtuOverTcp)
Claude-Session: https://claude.ai/code/session_01GASWkNEi68FSCtvr6rLoEW
This commit is contained in:
@@ -0,0 +1,17 @@
|
|||||||
|
namespace ZB.MOM.WW.OtOpcUa.Driver.Modbus;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Wire transport for a Modbus driver instance. <see cref="Tcp"/> = Modbus/TCP (MBAP + TxId);
|
||||||
|
/// <see cref="RtuOverTcp"/> = RTU framing (address + CRC-16, no MBAP) tunnelled over a socket to
|
||||||
|
/// a serial→Ethernet gateway. Default <see cref="Tcp"/> — existing configs omit the field.
|
||||||
|
/// A direct-serial <c>Rtu</c> member is intentionally NOT reserved here (descoped 2026-07-15);
|
||||||
|
/// do not number-squat it.
|
||||||
|
/// </summary>
|
||||||
|
public enum ModbusTransportMode
|
||||||
|
{
|
||||||
|
/// <summary>Modbus/TCP — 7-byte MBAP header + transaction id (the historical default).</summary>
|
||||||
|
Tcp,
|
||||||
|
|
||||||
|
/// <summary>RTU framing (<c>[addr][PDU][CRC-16]</c>) tunnelled over a socket to a serial→Ethernet gateway.</summary>
|
||||||
|
RtuOverTcp,
|
||||||
|
}
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
using Shouldly;
|
||||||
|
using Xunit;
|
||||||
|
|
||||||
|
namespace ZB.MOM.WW.OtOpcUa.Driver.Modbus.Tests;
|
||||||
|
|
||||||
|
public sealed class ModbusTransportModeTests
|
||||||
|
{
|
||||||
|
[Fact]
|
||||||
|
public void Tcp_is_the_default_zero_member()
|
||||||
|
=> ((ModbusTransportMode)0).ShouldBe(ModbusTransportMode.Tcp);
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public void Exactly_two_members_ship_in_v1()
|
||||||
|
=> Enum.GetNames<ModbusTransportMode>().ShouldBe(["Tcp", "RtuOverTcp"]);
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user