From 112692a2e51378deb57970e1509d600c71711fa5 Mon Sep 17 00:00:00 2001 From: Argo Zhang Date: Sun, 21 Sep 2025 14:05:29 +0800 Subject: [PATCH 1/5] =?UTF-8?q?chore:=20=E6=9B=B4=E6=96=B0=E4=BE=9D?= =?UTF-8?q?=E8=B5=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/BootstrapBlazor.Server/BootstrapBlazor.Server.csproj | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/BootstrapBlazor.Server/BootstrapBlazor.Server.csproj b/src/BootstrapBlazor.Server/BootstrapBlazor.Server.csproj index b3232bef323..a21ef3ea185 100644 --- a/src/BootstrapBlazor.Server/BootstrapBlazor.Server.csproj +++ b/src/BootstrapBlazor.Server/BootstrapBlazor.Server.csproj @@ -81,10 +81,10 @@ - - + + - + From 907df5637b2727ec993b0b084157ab2f3c6b231b Mon Sep 17 00:00:00 2001 From: Argo Zhang Date: Sun, 21 Sep 2025 14:46:00 +0800 Subject: [PATCH 2/5] =?UTF-8?q?doc:=20=E6=9B=B4=E6=96=B0=20IModbusResponse?= =?UTF-8?q?=20=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Samples/Modbus/ModbusFactories.razor | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/src/BootstrapBlazor.Server/Components/Samples/Modbus/ModbusFactories.razor b/src/BootstrapBlazor.Server/Components/Samples/Modbus/ModbusFactories.razor index fca509da1ff..a40fb3f7bb5 100644 --- a/src/BootstrapBlazor.Server/Components/Samples/Modbus/ModbusFactories.razor +++ b/src/BootstrapBlazor.Server/Components/Samples/Modbus/ModbusFactories.razor @@ -78,6 +78,26 @@ private IModbusFactory? ModbusFactory { get; set; }
  • 保持寄存器 (Holding Registers) 最大读取数量: 125, 最大写入数量: 123
  • +

    IModbusClient 所有读取返回值均为 IModbusResponse 实例

    其定义如下: + +
    public interface IModbusResponse
    +{
    +  // 获得 原始数据
    +  ReadOnlyMemory<byte> RawData { get; }
    +
    +  // 获得 Longbow.Modbus.IModbusMessageBuilder 实例
    +  IModbusMessageBuilder Builder { get; }
    +}
    + +

    通过调用其扩展方法或者 Builder 属性 IModbusMessageBuilder 实例方法

    + +
      +
    • ReadBoolValuesIModbusResponse 实例中 RawData 转换成布尔数组
    • +
    • ReadUShortValuesIModbusResponse 实例中 RawData 转换成无符号短整型数组
    • +
    + +

    通过接口 IModbusResponse 获得到其原始数据 RawData 可以通过自定义扩展非常方便的扩展出符合自己业务的数据类型。如通过连续 2 个寄存器存储的数据,得到遵循 IEEE 754 标准的 32 位 浮点数

    +

    项目包含 Benchmark 基准测试工程

    private const int NumberOfTask = 10;
    
    From 54e8f99dd17efd143c71bf463839c915a992e939 Mon Sep 17 00:00:00 2001
    From: Argo Zhang 
    Date: Sun, 21 Sep 2025 14:48:59 +0800
    Subject: [PATCH 3/5] =?UTF-8?q?doc:=20=E4=BB=A3=E7=A0=81=E6=A0=BC=E5=BC=8F?=
     =?UTF-8?q?=E5=8C=96?=
    MIME-Version: 1.0
    Content-Type: text/plain; charset=UTF-8
    Content-Transfer-Encoding: 8bit
    
    ---
     .../Components/Samples/Modbus/ModbusFactories.razor             | 2 +-
     1 file changed, 1 insertion(+), 1 deletion(-)
    
    diff --git a/src/BootstrapBlazor.Server/Components/Samples/Modbus/ModbusFactories.razor b/src/BootstrapBlazor.Server/Components/Samples/Modbus/ModbusFactories.razor
    index a40fb3f7bb5..873ffe0a582 100644
    --- a/src/BootstrapBlazor.Server/Components/Samples/Modbus/ModbusFactories.razor
    +++ b/src/BootstrapBlazor.Server/Components/Samples/Modbus/ModbusFactories.razor
    @@ -78,7 +78,7 @@ private IModbusFactory? ModbusFactory { get; set; }
  • 保持寄存器 (Holding Registers) 最大读取数量: 125, 最大写入数量: 123
  • -

    IModbusClient 所有读取返回值均为 IModbusResponse 实例

    其定义如下: +

    IModbusClient 所有读取返回值均为 IModbusResponse 实例

    其定义如下:
    public interface IModbusResponse
     {
    
    From c1aca89cfbd586bfd3036957d13251af1e6d348c Mon Sep 17 00:00:00 2001
    From: Argo Zhang 
    Date: Sun, 21 Sep 2025 14:49:42 +0800
    Subject: [PATCH 4/5] =?UTF-8?q?doc:=20=E4=BB=A3=E7=A0=81=E6=A0=BC=E5=BC=8F?=
     =?UTF-8?q?=E5=8C=96?=
    MIME-Version: 1.0
    Content-Type: text/plain; charset=UTF-8
    Content-Transfer-Encoding: 8bit
    
    ---
     .../Components/Samples/Modbus/ModbusFactories.razor             | 2 +-
     1 file changed, 1 insertion(+), 1 deletion(-)
    
    diff --git a/src/BootstrapBlazor.Server/Components/Samples/Modbus/ModbusFactories.razor b/src/BootstrapBlazor.Server/Components/Samples/Modbus/ModbusFactories.razor
    index 873ffe0a582..22659f597ae 100644
    --- a/src/BootstrapBlazor.Server/Components/Samples/Modbus/ModbusFactories.razor
    +++ b/src/BootstrapBlazor.Server/Components/Samples/Modbus/ModbusFactories.razor
    @@ -93,7 +93,7 @@ private IModbusFactory? ModbusFactory { get; set; }
    • ReadBoolValuesIModbusResponse 实例中 RawData 转换成布尔数组
    • -
    • ReadUShortValuesIModbusResponse 实例中 RawData 转换成无符号短整型数组
    • +
    • ReadUShortValuesIModbusResponse 实例中 RawData 转换成无符号短整型数组

    通过接口 IModbusResponse 获得到其原始数据 RawData 可以通过自定义扩展非常方便的扩展出符合自己业务的数据类型。如通过连续 2 个寄存器存储的数据,得到遵循 IEEE 754 标准的 32 位 浮点数

    From b0d2f71d87a7c497e320dd9a64c5c6737997dd43 Mon Sep 17 00:00:00 2001 From: Argo Zhang Date: Sun, 21 Sep 2025 14:51:18 +0800 Subject: [PATCH 5/5] =?UTF-8?q?doc:=20=E5=A2=9E=E5=8A=A0=E6=B3=A8=E6=84=8F?= =?UTF-8?q?=E4=BA=8B=E9=A1=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Components/Samples/Modbus/ModbusFactories.razor | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/BootstrapBlazor.Server/Components/Samples/Modbus/ModbusFactories.razor b/src/BootstrapBlazor.Server/Components/Samples/Modbus/ModbusFactories.razor index 22659f597ae..67d73af6810 100644 --- a/src/BootstrapBlazor.Server/Components/Samples/Modbus/ModbusFactories.razor +++ b/src/BootstrapBlazor.Server/Components/Samples/Modbus/ModbusFactories.razor @@ -98,6 +98,8 @@ private IModbusFactory? ModbusFactory { get; set; }

    通过接口 IModbusResponse 获得到其原始数据 RawData 可以通过自定义扩展非常方便的扩展出符合自己业务的数据类型。如通过连续 2 个寄存器存储的数据,得到遵循 IEEE 754 标准的 32 位 浮点数

    +

    注意:在将 RawData 转换为自定义类型(如 32 位浮点数)时,需要注意字节序(Endianness)。字节序会影响数据的解释方式,错误的字节序可能导致解析结果不正确。请根据实际设备或协议规范选择合适的字节序进行转换。

    +

    项目包含 Benchmark 基准测试工程

    private const int NumberOfTask = 10;