Skip to content

Commit 9c883de

Browse files
authored
doc(SerialPort): add ISerialPortFactory documentation (#6775)
* doc: 更新 ModbusFactory 文档 * doc: 更新 SocketFactory 文档 * doc: 更新 SocketClient 文档 * doc: 增加菜单 * doc: 增加源码文件映射 * doc: 增加串口通信服务文档 * doc: 更新注意事项 * doc: 增加串口参数配置类文档
1 parent 75a2d5e commit 9c883de

File tree

8 files changed

+112
-14
lines changed

8 files changed

+112
-14
lines changed

src/BootstrapBlazor.Server/Components/Samples/Modbus/ModbusFactories.razor

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,24 @@
11
@page "/modbus-factory"
22
@inject IStringLocalizer<ModbusFactories> Localizer
33

4-
<h3>Modbus 串行通讯服务 <code>IModbusFactory</code></h3>
5-
<h4>组件库内置了 Modbus 串行通讯服务</h4>
4+
<h3>Modbus 串行通信服务 <code>IModbusFactory</code></h3>
5+
<h4>组件库内置了 Modbus 串行通信服务</h4>
66

77
<PackageTips Name="Longbow.Modbus" />
88

9-
<Tips><div>特别注意:本服务需要 <code>Socket</code> 支持,不支持 <code>wasm</code> 模式</div></Tips>
9+
<Tips><div>特别注意:本服务不支持 <code>wasm</code> 模式</div></Tips>
1010

1111
<p class="code-label">1. 服务注入</p>
1212

1313
<Pre>services.AddModbusFactory();</Pre>
1414

15-
<p class="code-label">2. 使用服务</p>
16-
<p>调用 <code>ModbusFactory</code> 实例方法 <code>GetOrCreateTcpMaster</code> 即可得到一个 <code>IModbusClient</code> 实例。内部提供复用机制,调用两次得到的 <code>IModbusClient</code> 为同一对象</p>
17-
1815
<Pre>[Inject]
1916
[NotNull]
2017
private IModbusFactory? ModbusFactory { get; set; }</Pre>
2118

19+
<p class="code-label">2. 使用服务</p>
20+
<p>调用 <code>ModbusFactory</code> 实例方法 <code>GetOrCreateTcpMaster</code> 即可得到一个 <code>IModbusClient</code> 实例。内部提供复用机制,调用两次得到的 <code>IModbusClient</code> 为同一对象</p>
21+
2222
<p class="code-label">3. 通过工厂获得相对应协议 <code>IModbusClient</code> 实例</p>
2323

2424
<p><code>IModbusClient</code> 有两个派生类</p>
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
@page "/serial-port-factory"
2+
@inject IStringLocalizer<SerialPortFactories> Localizer
3+
4+
<h3>SerialPort 串行通信服务 <code>ISerialPortFactory</code></h3>
5+
<h4>组件库内置了 SerialPort 串口通信服务</h4>
6+
7+
<PackageTips Name="Longbow.SerialPort" />
8+
9+
<Tips><div>特别注意:本服务不支持 <code>wasm</code> 模式</div></Tips>
10+
11+
<p class="code-label">1. 服务注入</p>
12+
13+
<Pre>services.AddSerialPortFactory();</Pre>
14+
15+
<Pre>[Inject]
16+
[NotNull]
17+
private ISerialPortFactory? SerialPortFactory { get; set; }</Pre>
18+
19+
<p class="code-label">2. 使用服务</p>
20+
<p>调用 <code>SerialPortFactory</code> 实例方法 <code>GetOrCreate</code> 即可得到一个 <code>ISerialPortClient</code> 实例。内部提供复用机制,调用两次得到的 <code>ISerialPortClient</code> 为同一对象</p>
21+
22+
<p class="code-label">3. 通过工厂获得相对应协议 <code>ISerialPortClient</code> 实例</p>
23+
24+
<p><code>ISerialPortFactory</code> 实例方法</p>
25+
26+
<ul class="ul-demo">
27+
<li>通过 <code>GetOrCreate</code> 获得 <code>ISerialPortClient</code> 实例</li>
28+
<li>通过 <code>Remove</code> 移除指定名称的 <code>ISerialPortClient</code> 实例</li>
29+
</ul>
30+
31+
<Pre>SerialPortFactory.Remove("test");</Pre>
32+
33+
<p>可以通过注入服务直接获得 <code>ISerialPortClient</code> 实例</p>
34+
35+
<Pre>[Inject]
36+
[NotNull]
37+
private ISerialPortClient? SerialPortClient { get; set; }</Pre>
38+
39+
<p><code>ISerialPortClient</code> 实例方法</p>
40+
41+
<ul class="ul-demo">
42+
<li>打开端口方法 <code>OpenAsync</code></li>
43+
<li>发送数据方法 <code>SendAsync</code></li>
44+
<li>接收数据方法 <code>ReceiveAsync</code></li>
45+
<li>关闭端口方法 <code>CloseAsync</code></li>
46+
</ul>
47+
48+
<p class="code-label">4. 串口参数配置类 <code>SerialPortOptions</code></p>
49+
50+
<p>通过此配置类对串口参数进行配置</p>
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
// Licensed to the .NET Foundation under one or more agreements.
2+
// The .NET Foundation licenses this file to you under the Apache 2.0 License
3+
// See the LICENSE file in the project root for more information.
4+
// Maintainer: Argo Zhang([email protected]) Website: https://www.blazor.zone
5+
6+
namespace BootstrapBlazor.Server.Components.Samples.SerialPorts;
7+
8+
/// <summary>
9+
/// ISerialPortFactory 服务说明文档
10+
/// </summary>
11+
public partial class SerialPortFactories
12+
{
13+
14+
}

src/BootstrapBlazor.Server/Components/Samples/Sockets/SocketFactories.razor

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,28 +2,34 @@
22
@inject IStringLocalizer<SocketFactories> Localizer
33

44
<h3>Tcp 套接字服务 <code>ITcpSocketFactory</code></h3>
5-
<h4>组件库内置了 Socket 套接字通讯服务</h4>
5+
<h4>组件库内置了 Socket 套接字通信服务</h4>
66

77
<PackageTips Name="Longbow.TcpSocket" />
88

9-
<Tips><div>特别注意:本服务需要 <code>Socket</code> 支持,不支持 <code>wasm</code> 模式</div></Tips>
9+
<Tips><div>特别注意:本服务不支持 <code>wasm</code> 模式</div></Tips>
1010

1111
<p class="code-label">1. 服务注入</p>
1212

1313
<Pre>services.AddTcpSocketFactory();</Pre>
1414

15-
<p class="code-label">2. 使用服务</p>
16-
<p>调用 <code>TcpSocketFactory</code> 实例方法 <code>GetOrCreate</code> 即可得到一个 <code>ITcpSocketClient</code> 实例。内部提供复用机制,调用两次得到的 <code>ITcpSocketClient</code> 为同一对象</p>
17-
1815
<Pre>[Inject]
1916
[NotNull]
2017
private ITcpSocketFactory? TcpSocketFactory { get; set; }</Pre>
2118

19+
<p class="code-label">2. 使用服务</p>
20+
<p>调用 <code>TcpSocketFactory</code> 实例方法 <code>GetOrCreate</code> 即可得到一个 <code>ITcpSocketClient</code> 实例。内部提供复用机制,调用两次得到的 <code>ITcpSocketClient</code> 为同一对象</p>
21+
2222
<Pre>var client = TcpSocketFactory.GetOrCreate("bb", options =>
2323
{
2424
options.LocalEndPoint = new IPEndPoint(IPAddress.Loopback, 0);
2525
});</Pre>
2626

27+
<p>可以通过注入服务直接获得 <code>ITcpSocketClient</code> 实例</p>
28+
29+
<Pre>[Inject]
30+
[NotNull]
31+
private ITcpSocketClient? TcpSocketClient { get; set; }</Pre>
32+
2733
<p class="code-label">3. 使用方法</p>
2834

2935
<p>注意:以下方法均为线程不安全方法,多线程并发时需要自行处理</p>

src/BootstrapBlazor.Server/Extensions/MenusLocalizerExtensions.cs

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
// See the LICENSE file in the project root for more information.
44
// Maintainer: Argo Zhang([email protected]) Website: https://www.blazor.zone
55

6+
using Longbow.SerialPorts;
67
using Microsoft.AspNetCore.Components.Routing;
78

89
namespace BootstrapBlazor.Server.Extensions;
@@ -97,6 +98,13 @@ public static List<MenuItem> GenerateMenus(this IStringLocalizer<NavMenu> Locali
9798
};
9899
AddModbus(item);
99100

101+
item = new DemoMenuItem()
102+
{
103+
Text = Localizer["SerialPortComponents"],
104+
Icon = "fa-fw fa-solid fa-satellite-dish text-danger"
105+
};
106+
AddSerialPort(item);
107+
100108
item = new DemoMenuItem()
101109
{
102110
Text = Localizer["Services"],
@@ -266,6 +274,21 @@ void AddModbus(DemoMenuItem item)
266274
AddBadge(item, count: 2);
267275
}
268276

277+
void AddSerialPort(DemoMenuItem item)
278+
{
279+
item.Items = new List<DemoMenuItem>
280+
{
281+
new()
282+
{
283+
IsNew = true,
284+
Text = Localizer["SerialPortFactory"],
285+
Url = "serial-port-factory"
286+
}
287+
};
288+
289+
AddBadge(item, count: 2);
290+
}
291+
269292
void AddQuickStar(DemoMenuItem item)
270293
{
271294
item.Items = new List<DemoMenuItem>

src/BootstrapBlazor.Server/Locales/en-US.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4862,7 +4862,9 @@
48624862
"SocketAutoConnect": "Reconnect",
48634863
"SocketDataEntity": "DataEntity",
48644864
"ModbusComponents": "Modbus Services",
4865+
"SerialPortComponents": "SerialPort Services",
48654866
"ModbusFactory": "IModbusFactory",
4867+
"SerialPortFactory": "ISerialPortFactory",
48664868
"NetworkMonitor": "Network Monitor",
48674869
"Toolbar": "Toolbar",
48684870
"OpcDaService": "OpcDaServer",

src/BootstrapBlazor.Server/Locales/zh-CN.json

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4860,9 +4860,11 @@
48604860
"SocketManualReceive": "手动接收数据",
48614861
"DataPackageAdapter": "数据适配器",
48624862
"SocketAutoConnect": "自动重连",
4863-
"SocketDataEntity": "通讯数据转实体类",
4863+
"SocketDataEntity": "通信数据转实体类",
48644864
"ModbusComponents": "串行通信协议 Modbus",
4865-
"ModbusFactory": "通讯服务 IModbusFactory",
4865+
"SerialPortComponents": "串行通信协议 SerialPort",
4866+
"ModbusFactory": "通信服务 IModbusFactory",
4867+
"SerialPortFactory": "通信服务 ISerialPortFactory",
48664868
"NetworkMonitor": "网络状态 NetworkMonitor",
48674869
"Toolbar": "工具栏 Toolbar",
48684870
"OpcDaService": "OpcDaServer 服务",

src/BootstrapBlazor.Server/docs.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -254,7 +254,8 @@
254254
"opc-da": "OpcDa",
255255
"navbar": "Navbars",
256256
"task-board": "TaskBoard",
257-
"modbus-factory": "Modbus\\ModbusFactories"
257+
"modbus-factory": "Modbus\\ModbusFactories",
258+
"serial-port-factory": "SerialPorts\\SerialPortFactories"
258259
},
259260
"video": {
260261
"table": "BV1ap4y1x7Qn?p=1",

0 commit comments

Comments
 (0)