驱动内注入"设备名"参数

This commit is contained in:
iioter 2022-08-08 15:15:09 +08:00
parent 9b3f464e03
commit e18f6305be
24 changed files with 53 additions and 74 deletions

View File

@ -3,7 +3,6 @@ using IoTClient.Enums;
using PluginInterface; using PluginInterface;
using System; using System;
using System.Text; using System.Text;
using IoTGateway.Model;
using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging;
namespace DriverAllenBradley namespace DriverAllenBradley
@ -15,7 +14,7 @@ namespace DriverAllenBradley
private AllenBradleyClient plc = null; private AllenBradleyClient plc = null;
public ILogger _logger { get; set; } public ILogger _logger { get; set; }
private readonly Device _device; private readonly string _device;
#region #region
[ConfigParameter("设备Id")] [ConfigParameter("设备Id")]
@ -35,12 +34,12 @@ namespace DriverAllenBradley
#endregion #endregion
public AllenBradley(Device device, ILogger logger) public AllenBradley(string device, ILogger logger)
{ {
_device = device; _device = device;
_logger = logger; _logger = logger;
_logger.LogInformation($"Device:[{_device.DeviceName}],Create()"); _logger.LogInformation($"Device:[{device}],Create()");
} }

View File

@ -14,6 +14,5 @@
<ItemGroup> <ItemGroup>
<ProjectReference Include="..\..\PluginInterface\PluginInterface.csproj" /> <ProjectReference Include="..\..\PluginInterface\PluginInterface.csproj" />
<ProjectReference Include="..\..\..\IoTGateway.Model\IoTGateway.Model.csproj" />
</ItemGroup> </ItemGroup>
</Project> </Project>

View File

@ -9,6 +9,5 @@
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<ProjectReference Include="..\..\PluginInterface\PluginInterface.csproj" /> <ProjectReference Include="..\..\PluginInterface\PluginInterface.csproj" />
<ProjectReference Include="..\..\..\IoTGateway.Model\IoTGateway.Model.csproj" />
</ItemGroup> </ItemGroup>
</Project> </Project>

View File

@ -1,5 +1,4 @@
using IoTGateway.Model; using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Logging;
using PluginInterface; using PluginInterface;
namespace DriverFaunc namespace DriverFaunc
@ -23,7 +22,7 @@ namespace DriverFaunc
private int _result = -1; private int _result = -1;
public ILogger _logger { get; set; } public ILogger _logger { get; set; }
private readonly Device _device; private readonly string _device;
public bool IsConnected public bool IsConnected
{ {
@ -44,12 +43,12 @@ namespace DriverFaunc
} }
} }
public Fanuc(Device device, ILogger logger) public Fanuc(string device, ILogger logger)
{ {
_device = device; _device = device;
_logger = logger; _logger = logger;
_logger.LogInformation($"Device:[{_device.DeviceName}],Create()"); _logger.LogInformation($"Device:[{device}],Create()");
} }
public bool Close() public bool Close()

View File

@ -15,6 +15,5 @@
<ItemGroup> <ItemGroup>
<ProjectReference Include="..\..\PluginInterface\PluginInterface.csproj" /> <ProjectReference Include="..\..\PluginInterface\PluginInterface.csproj" />
<ProjectReference Include="..\..\..\IoTGateway.Model\IoTGateway.Model.csproj" />
</ItemGroup> </ItemGroup>
</Project> </Project>

View File

@ -4,7 +4,6 @@ using System;
using System.Text; using System.Text;
using HslCommunication.CNC.Fanuc; using HslCommunication.CNC.Fanuc;
using HslCommunication; using HslCommunication;
using IoTGateway.Model;
using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging;
namespace DriverFanucHsl namespace DriverFanucHsl
@ -16,7 +15,7 @@ namespace DriverFanucHsl
private FanucSeries0i fanuc; private FanucSeries0i fanuc;
public ILogger _logger { get; set; } public ILogger _logger { get; set; }
private readonly Device _device; private readonly string _device;
#region #region
[ConfigParameter("设备Id")] [ConfigParameter("设备Id")]
@ -36,7 +35,7 @@ namespace DriverFanucHsl
#endregion #endregion
public FanucHsl(Device device, ILogger logger) public FanucHsl(string device, ILogger logger)
{ {
// 授权示例 Authorization example // 授权示例 Authorization example
if (!Authorization.SetAuthorizationCode("输入你的授权号")) if (!Authorization.SetAuthorizationCode("输入你的授权号"))
@ -48,7 +47,7 @@ namespace DriverFanucHsl
_logger = logger; _logger = logger;
_logger.LogInformation($"Device:[{_device.DeviceName}],Create()"); _logger.LogInformation($"Device:[{_device}],Create()");
} }
public bool IsConnected public bool IsConnected

View File

@ -14,6 +14,5 @@
<ItemGroup> <ItemGroup>
<ProjectReference Include="..\..\PluginInterface\PluginInterface.csproj" /> <ProjectReference Include="..\..\PluginInterface\PluginInterface.csproj" />
<ProjectReference Include="..\..\..\IoTGateway.Model\IoTGateway.Model.csproj" />
</ItemGroup> </ItemGroup>
</Project> </Project>

View File

@ -2,7 +2,6 @@
using System; using System;
using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging;
using OpenNETCF.MTConnect; using OpenNETCF.MTConnect;
using Device = IoTGateway.Model.Device;
namespace DriverMTConnect namespace DriverMTConnect
{ {
@ -30,14 +29,14 @@ namespace DriverMTConnect
EntityClient m_client = null; EntityClient m_client = null;
public ILogger _logger { get; set; } public ILogger _logger { get; set; }
private readonly Device _device; private readonly string _device;
public MTConnectClient(Device device, ILogger logger) public MTConnectClient(string device, ILogger logger)
{ {
_device = device; _device = device;
_logger = logger; _logger = logger;
_logger.LogInformation($"Device:[{_device.DeviceName}],Create()"); _logger.LogInformation($"Device:[{_device}],Create()");
} }
public bool Close() public bool Close()

View File

@ -14,6 +14,5 @@
<ItemGroup> <ItemGroup>
<ProjectReference Include="..\..\PluginInterface\PluginInterface.csproj" /> <ProjectReference Include="..\..\PluginInterface\PluginInterface.csproj" />
<ProjectReference Include="..\..\..\IoTGateway.Model\IoTGateway.Model.csproj" />
</ItemGroup> </ItemGroup>
</Project> </Project>

View File

@ -3,7 +3,6 @@ using IoTClient.Enums;
using PluginInterface; using PluginInterface;
using System; using System;
using System.Text; using System.Text;
using IoTGateway.Model;
using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging;
namespace DriverMitsubishi namespace DriverMitsubishi
@ -16,7 +15,7 @@ namespace DriverMitsubishi
private MitsubishiClient plc = null; private MitsubishiClient plc = null;
public ILogger _logger { get; set; } public ILogger _logger { get; set; }
private readonly Device _device; private readonly string _device;
#region #region
[ConfigParameter("设备Id")] [ConfigParameter("设备Id")]
@ -39,12 +38,12 @@ namespace DriverMitsubishi
#endregion #endregion
public Mitsubishi(Device device, ILogger logger) public Mitsubishi(string device, ILogger logger)
{ {
_device = device; _device = device;
_logger = logger; _logger = logger;
_logger.LogInformation($"Device:[{_device.DeviceName}],Create()"); _logger.LogInformation($"Device:[{_device}],Create()");
} }

View File

@ -12,7 +12,6 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ProjectReference Include="..\..\..\IoTGateway.Model\IoTGateway.Model.csproj" />
<ProjectReference Include="..\..\PluginInterface\PluginInterface.csproj" /> <ProjectReference Include="..\..\PluginInterface\PluginInterface.csproj" />
</ItemGroup> </ItemGroup>

View File

@ -1,5 +1,4 @@
using IoTGateway.Model; using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Logging;
using Modbus.Device; using Modbus.Device;
using Modbus.Serial; using Modbus.Serial;
using PluginInterface; using PluginInterface;
@ -23,7 +22,7 @@ namespace DriverModbusMaster
private SerialPortAdapter? _adapter; private SerialPortAdapter? _adapter;
public ILogger _logger { get; set; } public ILogger _logger { get; set; }
private readonly Device _device; private readonly string _device;
#region #region
[ConfigParameter("设备Id")] [ConfigParameter("设备Id")]
@ -67,12 +66,12 @@ namespace DriverModbusMaster
#endregion #endregion
public ModbusMaster(Device device, ILogger logger) public ModbusMaster(string device, ILogger logger)
{ {
_device = device; _device = device;
_logger = logger; _logger = logger;
_logger.LogInformation($"Device:[{_device.DeviceName}],Create()"); _logger.LogInformation($"Device:[{_device}],Create()");
} }
public bool IsConnected public bool IsConnected
@ -102,7 +101,7 @@ namespace DriverModbusMaster
{ {
try try
{ {
_logger.LogInformation($"Device:[{_device.DeviceName}],Connect()"); _logger.LogInformation($"Device:[{_device}],Connect()");
switch (Master_TYPE) switch (Master_TYPE)
{ {
case Master_TYPE.Tcp: case Master_TYPE.Tcp:
@ -163,7 +162,7 @@ namespace DriverModbusMaster
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.LogError($"Device:[{_device.DeviceName}],Connect(),Error", ex); _logger.LogError($"Device:[{_device}],Connect(),Error", ex);
return false; return false;
} }
return IsConnected; return IsConnected;
@ -173,7 +172,7 @@ namespace DriverModbusMaster
{ {
try try
{ {
_logger.LogInformation($"Device:[{_device.DeviceName}],Close()"); _logger.LogInformation($"Device:[{_device}],Close()");
_tcpClient?.Close(); _tcpClient?.Close();
_udpClient?.Close(); _udpClient?.Close();
_serialPort?.Close(); _serialPort?.Close();
@ -181,7 +180,7 @@ namespace DriverModbusMaster
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.LogError($"Device:[{_device.DeviceName}],Close(),Error", ex); _logger.LogError($"Device:[{_device}],Close(),Error", ex);
return false; return false;
} }
} }
@ -194,11 +193,11 @@ namespace DriverModbusMaster
_udpClient?.Dispose(); _udpClient?.Dispose();
_serialPort?.Dispose(); _serialPort?.Dispose();
_master?.Dispose(); _master?.Dispose();
_logger.LogInformation($"Device:[{_device.DeviceName}],Dispose()"); _logger.LogInformation($"Device:[{_device}],Dispose()");
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.LogError($"Device:[{_device.DeviceName}],Dispose(),Error", ex); _logger.LogError($"Device:[{_device}],Dispose(),Error", ex);
} }
} }
@ -220,7 +219,7 @@ namespace DriverModbusMaster
{ {
ret.StatusType = VaribaleStatusTypeEnum.UnKnow; ret.StatusType = VaribaleStatusTypeEnum.UnKnow;
ret.Message = ex.Message; ret.Message = ex.Message;
_logger.LogInformation($"Device:[{_device.DeviceName}],ReadHoldingRegisters(),Error", ex); _logger.LogInformation($"Device:[{_device}],ReadHoldingRegisters(),Error", ex);
} }
return ret; return ret;
@ -245,7 +244,7 @@ namespace DriverModbusMaster
{ {
ret.StatusType = VaribaleStatusTypeEnum.UnKnow; ret.StatusType = VaribaleStatusTypeEnum.UnKnow;
ret.Message = ex.Message; ret.Message = ex.Message;
_logger.LogInformation($"Device:[{_device.DeviceName}],ReadInputRegisters(),Error", ex); _logger.LogInformation($"Device:[{_device}],ReadInputRegisters(),Error", ex);
} }
return ret; return ret;
@ -282,7 +281,7 @@ namespace DriverModbusMaster
{ {
ret.StatusType = VaribaleStatusTypeEnum.UnKnow; ret.StatusType = VaribaleStatusTypeEnum.UnKnow;
ret.Message = ex.Message; ret.Message = ex.Message;
_logger.LogInformation($"Device:[{_device.DeviceName}],ReadCoil(),Error", ex); _logger.LogInformation($"Device:[{_device}],ReadCoil(),Error", ex);
} }
return ret; return ret;
@ -318,7 +317,7 @@ namespace DriverModbusMaster
{ {
ret.StatusType = VaribaleStatusTypeEnum.UnKnow; ret.StatusType = VaribaleStatusTypeEnum.UnKnow;
ret.Message = ex.Message; ret.Message = ex.Message;
_logger.LogInformation($"Device:[{_device.DeviceName}],ReadInput(),Error", ex); _logger.LogInformation($"Device:[{_device}],ReadInput(),Error", ex);
} }
return ret; return ret;
@ -387,7 +386,7 @@ namespace DriverModbusMaster
{ {
ret.StatusType = VaribaleStatusTypeEnum.Bad; ret.StatusType = VaribaleStatusTypeEnum.Bad;
ret.Message = ex.Message; ret.Message = ex.Message;
_logger.LogInformation($"Device:[{_device.DeviceName}],ReadRegistersBuffers(),Error", ex); _logger.LogInformation($"Device:[{_device}],ReadRegistersBuffers(),Error", ex);
} }
} }
@ -497,7 +496,7 @@ namespace DriverModbusMaster
ret.Message = ex.Message; ret.Message = ex.Message;
StartAddress = 0; StartAddress = 0;
ReadCount = 0; ReadCount = 0;
_logger.LogInformation($"Device:[{_device.DeviceName}],AnalyzeAddress(),Error", ex); _logger.LogInformation($"Device:[{_device}],AnalyzeAddress(),Error", ex);
return ret; return ret;
} }
} }
@ -555,7 +554,7 @@ namespace DriverModbusMaster
catch (Exception ex) catch (Exception ex)
{ {
rpcResponse.Description = $"写入失败,[Method]:{method},[Ioarg]:{ioarg},[ex]:{ex}"; rpcResponse.Description = $"写入失败,[Method]:{method},[Ioarg]:{ioarg},[ex]:{ex}";
_logger.LogInformation($"Device:[{_device.DeviceName}],WriteAsync(),Error", ex); _logger.LogInformation($"Device:[{_device}],WriteAsync(),Error", ex);
} }
return rpcResponse; return rpcResponse;
} }

View File

@ -10,7 +10,6 @@
<ItemGroup> <ItemGroup>
<ProjectReference Include="..\..\PluginInterface\PluginInterface.csproj" /> <ProjectReference Include="..\..\PluginInterface\PluginInterface.csproj" />
<ProjectReference Include="..\..\..\IoTGateway.Model\IoTGateway.Model.csproj" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>

View File

@ -5,7 +5,6 @@ using System.Linq;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
using Automation.OPCClient; using Automation.OPCClient;
using IoTGateway.Model;
using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging;
namespace DriverOPCDaClient namespace DriverOPCDaClient
@ -15,7 +14,7 @@ namespace DriverOPCDaClient
OPCClientWrapper opcDaClient = null; OPCClientWrapper opcDaClient = null;
public ILogger _logger { get; set; } public ILogger _logger { get; set; }
private readonly Device _device; private readonly string _device;
#region #region
@ -33,12 +32,12 @@ namespace DriverOPCDaClient
#endregion #endregion
public OPCDaClient(Device device, ILogger logger) public OPCDaClient(string device, ILogger logger)
{ {
_device = device; _device = device;
_logger = logger; _logger = logger;
_logger.LogInformation($"Device:[{_device.DeviceName}],Create()"); _logger.LogInformation($"Device:[{_device}],Create()");
} }

View File

@ -14,6 +14,5 @@
<ItemGroup> <ItemGroup>
<ProjectReference Include="..\..\PluginInterface\PluginInterface.csproj" /> <ProjectReference Include="..\..\PluginInterface\PluginInterface.csproj" />
<ProjectReference Include="..\..\..\IoTGateway.Model\IoTGateway.Model.csproj" />
</ItemGroup> </ItemGroup>
</Project> </Project>

View File

@ -6,7 +6,6 @@ using Opc.Ua;
using Opc.Ua.Client; using Opc.Ua.Client;
using System.Collections.Generic; using System.Collections.Generic;
using System.Threading.Tasks; using System.Threading.Tasks;
using IoTGateway.Model;
using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging;
using Opc.Ua.Configuration; using Opc.Ua.Configuration;
using OpcUaHelper; using OpcUaHelper;
@ -20,7 +19,7 @@ namespace DriverOPCUaClient
OpcUaClientHelper opcUaClient = null; OpcUaClientHelper opcUaClient = null;
public ILogger _logger { get; set; } public ILogger _logger { get; set; }
private readonly Device _device; private readonly string _device;
#region #region
[ConfigParameter("设备Id")] [ConfigParameter("设备Id")]
@ -37,12 +36,12 @@ namespace DriverOPCUaClient
#endregion #endregion
public OPCUaClient(Device device, ILogger logger) public OPCUaClient(string device, ILogger logger)
{ {
_device = device; _device = device;
_logger = logger; _logger = logger;
_logger.LogInformation($"Device:[{_device.DeviceName}],Create()"); _logger.LogInformation($"Device:[{_device}],Create()");
} }

View File

@ -14,6 +14,5 @@
<ItemGroup> <ItemGroup>
<ProjectReference Include="..\..\PluginInterface\PluginInterface.csproj" /> <ProjectReference Include="..\..\PluginInterface\PluginInterface.csproj" />
<ProjectReference Include="..\..\..\IoTGateway.Model\IoTGateway.Model.csproj" />
</ItemGroup> </ItemGroup>
</Project> </Project>

View File

@ -3,7 +3,6 @@ using IoTClient.Enums;
using PluginInterface; using PluginInterface;
using System; using System;
using System.Text; using System.Text;
using IoTGateway.Model;
using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging;
namespace DriverOmronFins namespace DriverOmronFins
@ -15,7 +14,7 @@ namespace DriverOmronFins
private OmronFinsClient plc = null; private OmronFinsClient plc = null;
public ILogger _logger { get; set; } public ILogger _logger { get; set; }
private readonly Device _device; private readonly string _device;
#region #region
[ConfigParameter("设备Id")] [ConfigParameter("设备Id")]
@ -35,12 +34,12 @@ namespace DriverOmronFins
#endregion #endregion
public OmronFins(Device device, ILogger logger) public OmronFins(string device, ILogger logger)
{ {
_device = device; _device = device;
_logger = logger; _logger = logger;
_logger.LogInformation($"Device:[{_device.DeviceName}],Create()"); _logger.LogInformation($"Device:[{_device}],Create()");
} }

View File

@ -9,6 +9,5 @@
<ItemGroup> <ItemGroup>
<ProjectReference Include="..\..\PluginInterface\PluginInterface.csproj" /> <ProjectReference Include="..\..\PluginInterface\PluginInterface.csproj" />
<ProjectReference Include="..\..\..\IoTGateway.Model\IoTGateway.Model.csproj" />
</ItemGroup> </ItemGroup>
</Project> </Project>

View File

@ -2,7 +2,6 @@
using S7.Net; using S7.Net;
using System; using System;
using System.Text; using System.Text;
using IoTGateway.Model;
using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging;
namespace DriverSiemensS7 namespace DriverSiemensS7
@ -19,7 +18,7 @@ namespace DriverSiemensS7
private Plc plc = null; private Plc plc = null;
public ILogger _logger { get; set; } public ILogger _logger { get; set; }
private readonly Device _device; private readonly string _device;
#region #region
[ConfigParameter("设备Id")] [ConfigParameter("设备Id")]
@ -48,12 +47,12 @@ namespace DriverSiemensS7
#endregion #endregion
public SiemensS7(Device device, ILogger logger) public SiemensS7(string device, ILogger logger)
{ {
_device = device; _device = device;
_logger = logger; _logger = logger;
_logger.LogInformation($"Device:[{_device.DeviceName}],Create()"); _logger.LogInformation($"Device:[{_device}],Create()");
} }

View File

@ -11,6 +11,5 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ProjectReference Include="..\..\PluginInterface\PluginInterface.csproj" /> <ProjectReference Include="..\..\PluginInterface\PluginInterface.csproj" />
<ProjectReference Include="..\..\..\IoTGateway.Model\IoTGateway.Model.csproj" />
</ItemGroup> </ItemGroup>
</Project> </Project>

View File

@ -2,7 +2,6 @@
using SimpleTCP; using SimpleTCP;
using System; using System;
using System.Text; using System.Text;
using IoTGateway.Model;
using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging;
namespace DriverSimTcpClient namespace DriverSimTcpClient
@ -21,7 +20,7 @@ namespace DriverSimTcpClient
private byte[] latestRcvData; private byte[] latestRcvData;
public ILogger _logger { get; set; } public ILogger _logger { get; set; }
private readonly Device _device; private readonly string _device;
#region #region
[ConfigParameter("设备Id")] [ConfigParameter("设备Id")]
@ -47,12 +46,12 @@ namespace DriverSimTcpClient
#endregion #endregion
public SimTcpClient(Device device, ILogger logger) public SimTcpClient(string device, ILogger logger)
{ {
_device = device; _device = device;
_logger = logger; _logger = logger;
_logger.LogInformation($"Device:[{_device.DeviceName}],Create()"); _logger.LogInformation($"Device:[{_device}],Create()");
} }

View File

@ -85,8 +85,8 @@ namespace Plugin
{ {
var settings = DC.Set<DeviceConfig>().Where(x => x.DeviceId == Device.ID).AsNoTracking().ToList(); var settings = DC.Set<DeviceConfig>().Where(x => x.DeviceId == Device.ID).AsNoTracking().ToList();
Type[] types = new Type[2] { typeof(Device) ,typeof(ILogger) }; Type[] types = new Type[2] { typeof(string) ,typeof(ILogger) };
object[] param = new object[2] { Device , _logger }; object[] param = new object[2] { Device.DeviceName , _logger };
ConstructorInfo constructor = driver.Type.GetConstructor(types); ConstructorInfo constructor = driver.Type.GetConstructor(types);
var DeviceObj = constructor.Invoke(param) as IDriver; var DeviceObj = constructor.Invoke(param) as IDriver;

View File

@ -77,11 +77,12 @@ namespace Plugin
{ {
using (var DC = new DataContext(IoTBackgroundService.connnectSetting, IoTBackgroundService.DBType)) using (var DC = new DataContext(IoTBackgroundService.connnectSetting, IoTBackgroundService.DBType))
{ {
var device = DC.Set<Device>().Where(x => x.ID == dapID).AsNoTracking().SingleOrDefault();
var driver = DC.Set<Driver>().Where(x => x.ID == DriverId).AsNoTracking().SingleOrDefault(); var driver = DC.Set<Driver>().Where(x => x.ID == DriverId).AsNoTracking().SingleOrDefault();
var type = DriverInfos.Where(x => x.Type.FullName == driver.AssembleName).SingleOrDefault(); var type = DriverInfos.Where(x => x.Type.FullName == driver.AssembleName).SingleOrDefault();
Type[] types = new Type[1] { typeof(Guid) }; Type[] types = new Type[2] { typeof(string), typeof(ILogger) };
object[] param = new object[1] { Guid.Parse("88888888-8888-8888-8888-888888888888") }; object[] param = new object[2] { device.DeviceName, _logger };
ConstructorInfo constructor = type.Type.GetConstructor(types); ConstructorInfo constructor = type.Type.GetConstructor(types);
var iObj = constructor.Invoke(param) as IDriver; var iObj = constructor.Invoke(param) as IDriver;