File tree Expand file tree Collapse file tree
src/BootstrapBlazor.Server Expand file tree Collapse file tree Original file line number Diff line number Diff line change 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]
2017private 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 >
Original file line number Diff line number Diff line change 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 >
Original file line number Diff line number Diff line change 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(argo@live.ca) 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+ }
Original file line number Diff line number Diff line change 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]
2017private 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 >
Original file line number Diff line number Diff line change 33// See the LICENSE file in the project root for more information.
44// Maintainer: Argo Zhang(argo@live.ca) Website: https://www.blazor.zone
55
6+ using Longbow . SerialPorts ;
67using Microsoft . AspNetCore . Components . Routing ;
78
89namespace 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 >
Original file line number Diff line number Diff line change 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",
Original file line number Diff line number Diff line change 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 服务",
Original file line number Diff line number Diff line change 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" ,
You can’t perform that action at this time.
0 commit comments