This commit is contained in:
luosheng
2023-07-18 04:57:09 +08:00
parent 30c13edf0d
commit a1c96a96ca
4 changed files with 6 additions and 7 deletions

View File

@@ -12,11 +12,10 @@ namespace Modbus.Net
/// 添加一个Controller /// 添加一个Controller
/// </summary> /// </summary>
/// <param name="protocolLinker">ProtocolLinker实例</param> /// <param name="protocolLinker">ProtocolLinker实例</param>
/// <param name="param1">第一参数</param> /// <param name="constructorParams">参数</param>
/// <param name="param2">第二参数</param>
/// <param name="connector">Connector实例</param> /// <param name="connector">Connector实例</param>
/// <exception cref="NotImplementedException">如果没有发现控制器,报错</exception> /// <exception cref="NotImplementedException">如果没有发现控制器,报错</exception>
public static void AddController(this IProtocolLinker<byte[], byte[]> protocolLinker, string param1, int param2, IConnector<byte[], byte[]> connector) public static void AddController(this IProtocolLinker<byte[], byte[]> protocolLinker, object[] constructorParams, IConnector<byte[], byte[]> connector)
{ {
IController controller = null; IController controller = null;
var assemblies = AssemblyHelper.GetAllLibraryAssemblies(); var assemblies = AssemblyHelper.GetAllLibraryAssemblies();
@@ -26,7 +25,7 @@ namespace Modbus.Net
var controllerType = assembly.GetType(assembly.GetName().Name + "." + controllerName); var controllerType = assembly.GetType(assembly.GetName().Name + "." + controllerName);
if (controllerType != null) if (controllerType != null)
{ {
controller = assembly.CreateInstance(controllerType.FullName, true, BindingFlags.Default, null, new object[2] { param1, param2 }, null, null) as IController; controller = assembly.CreateInstance(controllerType.FullName, true, BindingFlags.Default, null, constructorParams, null, null) as IController;
break; break;
} }
} }

View File

@@ -31,7 +31,7 @@ namespace Modbus.Net
connectionTimeout = int.Parse(connectionTimeout != null ? connectionTimeout.ToString() : null ?? ConfigurationReader.GetValue("COM:" + com, "ConnectionTimeout")); connectionTimeout = int.Parse(connectionTimeout != null ? connectionTimeout.ToString() : null ?? ConfigurationReader.GetValue("COM:" + com, "ConnectionTimeout"));
isFullDuplex = bool.Parse(isFullDuplex != null ? isFullDuplex.ToString() : null ?? ConfigurationReader.GetValue("COM:" + com, "FullDuplex")); isFullDuplex = bool.Parse(isFullDuplex != null ? isFullDuplex.ToString() : null ?? ConfigurationReader.GetValue("COM:" + com, "FullDuplex"));
BaseConnector = new ComConnector(com + ":" + slaveAddress, baudRate.Value, parity.Value, stopBits.Value, dataBits.Value, handshake.Value, connectionTimeout.Value, isFullDuplex.Value); BaseConnector = new ComConnector(com + ":" + slaveAddress, baudRate.Value, parity.Value, stopBits.Value, dataBits.Value, handshake.Value, connectionTimeout.Value, isFullDuplex.Value);
this.AddController(com, slaveAddress, BaseConnector); this.AddController(new object[2] { com, slaveAddress }, BaseConnector);
} }
} }
} }

View File

@@ -18,7 +18,7 @@
isFullDuplex = bool.Parse(isFullDuplex != null ? isFullDuplex.ToString() : null ?? ConfigurationReader.GetValue("TCP:" + ip + ":" + port, "FullDuplex")); isFullDuplex = bool.Parse(isFullDuplex != null ? isFullDuplex.ToString() : null ?? ConfigurationReader.GetValue("TCP:" + ip + ":" + port, "FullDuplex"));
//初始化连接对象 //初始化连接对象
BaseConnector = new TcpConnector(ip, port, connectionTimeout.Value, isFullDuplex.Value); BaseConnector = new TcpConnector(ip, port, connectionTimeout.Value, isFullDuplex.Value);
this.AddController(ip, port, BaseConnector); this.AddController(new object[2] { ip, port }, BaseConnector);
} }
} }
} }

View File

@@ -18,7 +18,7 @@
isFullDuplex = bool.Parse(isFullDuplex != null ? isFullDuplex.ToString() : null ?? ConfigurationReader.GetValue("UDP:" + ip + ":" + port, "FullDuplex")); isFullDuplex = bool.Parse(isFullDuplex != null ? isFullDuplex.ToString() : null ?? ConfigurationReader.GetValue("UDP:" + ip + ":" + port, "FullDuplex"));
//初始化连接对象 //初始化连接对象
BaseConnector = new UdpConnector(ip, port, connectionTimeout.Value, isFullDuplex.Value); BaseConnector = new UdpConnector(ip, port, connectionTimeout.Value, isFullDuplex.Value);
this.AddController(ip, port, BaseConnector); this.AddController(new object[2] { ip, port }, BaseConnector);
} }
} }
} }