|
|
@@ -20,7 +20,22 @@ namespace YSAI.Modbus.client
|
|
|
/// </summary>
|
|
|
public sealed class ModbusClientOperate : IBaseAbstract, IDaq
|
|
|
{
|
|
|
- private static readonly object Lock = new object(); //锁
|
|
|
+ protected override string TAG => "ModbusClientOperate";
|
|
|
+ /// <summary>
|
|
|
+ /// 锁
|
|
|
+ /// </summary>
|
|
|
+ private static readonly object Lock = new object();
|
|
|
+ /// <summary>
|
|
|
+ /// 最大实例数量
|
|
|
+ /// </summary>
|
|
|
+ private static readonly uint MaxInstanceCount = 100;
|
|
|
+ /// <summary>
|
|
|
+ /// 实例数超过限制提示
|
|
|
+ /// </summary>
|
|
|
+ private static readonly string ExceedMaxInstanceCountTips = $"当前实例数量超过最大限制数({MaxInstanceCount}),请检查您的代码是否合理的使用了单例模式";
|
|
|
+ /// <summary>
|
|
|
+ /// 自身对象集合
|
|
|
+ /// </summary>
|
|
|
private static List<ModbusClientOperate> ThisObjList = new List<ModbusClientOperate>(); //自身对象集合
|
|
|
/// <summary>
|
|
|
/// 单例模式
|
|
|
@@ -28,6 +43,10 @@ namespace YSAI.Modbus.client
|
|
|
/// <returns></returns>
|
|
|
public static ModbusClientOperate Instance(Basics basics)
|
|
|
{
|
|
|
+ if (ThisObjList.Count >= MaxInstanceCount)
|
|
|
+ {
|
|
|
+ throw new Exception(ExceedMaxInstanceCountTips);
|
|
|
+ }
|
|
|
ModbusClientOperate? exp = ThisObjList.FirstOrDefault(c => c.basics.Equals(basics));
|
|
|
if (exp == null)
|
|
|
{
|
|
|
@@ -248,9 +267,6 @@ namespace YSAI.Modbus.client
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
- protected override string LogHead => "[ ModbusClientOperate 操作 ]";
|
|
|
- protected override string ClassName => "ModbusClientOperate";
|
|
|
-
|
|
|
public Task<OperateResult> OnAsync()
|
|
|
{
|
|
|
return Task.Run(() => On());
|
|
|
@@ -363,7 +379,7 @@ namespace YSAI.Modbus.client
|
|
|
}
|
|
|
catch (Exception ex)
|
|
|
{
|
|
|
- return Break("On", false, ex.Message, Exc: ex);
|
|
|
+ return Break("On", false, ex.Message, Exception: ex);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -392,7 +408,7 @@ namespace YSAI.Modbus.client
|
|
|
}
|
|
|
catch (Exception ex)
|
|
|
{
|
|
|
- return Break("Off", false, ex.Message, Exc: ex);
|
|
|
+ return Break("Off", false, ex.Message, Exception: ex);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -474,7 +490,7 @@ namespace YSAI.Modbus.client
|
|
|
}
|
|
|
catch (Exception ex)
|
|
|
{
|
|
|
- return Break("ReadCoils", false, ex.Message, Exc: ex);
|
|
|
+ return Break("ReadCoils", false, ex.Message, Exception: ex);
|
|
|
}
|
|
|
}
|
|
|
/// <summary>
|
|
|
@@ -560,7 +576,7 @@ namespace YSAI.Modbus.client
|
|
|
}
|
|
|
catch (Exception ex)
|
|
|
{
|
|
|
- return Break("ReadInputs", false, ex.Message, Exc: ex);
|
|
|
+ return Break("ReadInputs", false, ex.Message, Exception: ex);
|
|
|
}
|
|
|
}
|
|
|
/// <summary>
|
|
|
@@ -644,7 +660,7 @@ namespace YSAI.Modbus.client
|
|
|
}
|
|
|
catch (Exception ex)
|
|
|
{
|
|
|
- return Break("ReadHoldingRegisters", false, ex.Message, Exc: ex);
|
|
|
+ return Break("ReadHoldingRegisters", false, ex.Message, Exception: ex);
|
|
|
}
|
|
|
}
|
|
|
/// <summary>
|
|
|
@@ -730,7 +746,7 @@ namespace YSAI.Modbus.client
|
|
|
}
|
|
|
catch (Exception ex)
|
|
|
{
|
|
|
- return Break("ReadInputRegisters", false, ex.Message, Exc: ex);
|
|
|
+ return Break("ReadInputRegisters", false, ex.Message, Exception: ex);
|
|
|
}
|
|
|
}
|
|
|
/// <summary>
|
|
|
@@ -790,7 +806,7 @@ namespace YSAI.Modbus.client
|
|
|
}
|
|
|
catch (Exception ex)
|
|
|
{
|
|
|
- return Break("WriteSingleCoil", false, ex.Message, Exc: ex);
|
|
|
+ return Break("WriteSingleCoil", false, ex.Message, Exception: ex);
|
|
|
}
|
|
|
}
|
|
|
/// <summary>
|
|
|
@@ -845,7 +861,7 @@ namespace YSAI.Modbus.client
|
|
|
}
|
|
|
catch (Exception ex)
|
|
|
{
|
|
|
- return Break("WriteSingleRegister", false, ex.Message, Exc: ex);
|
|
|
+ return Break("WriteSingleRegister", false, ex.Message, Exception: ex);
|
|
|
}
|
|
|
}
|
|
|
/// <summary>
|
|
|
@@ -900,7 +916,7 @@ namespace YSAI.Modbus.client
|
|
|
}
|
|
|
catch (Exception ex)
|
|
|
{
|
|
|
- return Break("WriteMultipleRegisters", false, ex.Message, Exc: ex);
|
|
|
+ return Break("WriteMultipleRegisters", false, ex.Message, Exception: ex);
|
|
|
}
|
|
|
}
|
|
|
/// <summary>
|
|
|
@@ -955,7 +971,7 @@ namespace YSAI.Modbus.client
|
|
|
}
|
|
|
catch (Exception ex)
|
|
|
{
|
|
|
- return Break("WriteMultipleCoils", false, ex.Message, Exc: ex);
|
|
|
+ return Break("WriteMultipleCoils", false, ex.Message, Exception: ex);
|
|
|
}
|
|
|
}
|
|
|
/// <summary>
|
|
|
@@ -1036,7 +1052,7 @@ namespace YSAI.Modbus.client
|
|
|
}
|
|
|
catch (Exception ex)
|
|
|
{
|
|
|
- return Break("ReadCharHoldingRegisters", false, ex.Message, Exc: ex);
|
|
|
+ return Break("ReadCharHoldingRegisters", false, ex.Message, Exception: ex);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -1105,7 +1121,7 @@ namespace YSAI.Modbus.client
|
|
|
}
|
|
|
catch (Exception ex)
|
|
|
{
|
|
|
- return Break("ReadUshortHoldingRegisters", false, ex.Message, Exc: ex);
|
|
|
+ return Break("ReadUshortHoldingRegisters", false, ex.Message, Exception: ex);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -1174,7 +1190,7 @@ namespace YSAI.Modbus.client
|
|
|
}
|
|
|
catch (Exception ex)
|
|
|
{
|
|
|
- return Break("ReadShortHoldingRegisters", false, ex.Message, Exc: ex);
|
|
|
+ return Break("ReadShortHoldingRegisters", false, ex.Message, Exception: ex);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -1243,7 +1259,7 @@ namespace YSAI.Modbus.client
|
|
|
}
|
|
|
catch (Exception ex)
|
|
|
{
|
|
|
- return Break("ReadUintHoldingRegisters", false, ex.Message, Exc: ex);
|
|
|
+ return Break("ReadUintHoldingRegisters", false, ex.Message, Exception: ex);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -1312,7 +1328,7 @@ namespace YSAI.Modbus.client
|
|
|
}
|
|
|
catch (Exception ex)
|
|
|
{
|
|
|
- return Break("ReadIntHoldingRegisters", false, ex.Message, Exc: ex);
|
|
|
+ return Break("ReadIntHoldingRegisters", false, ex.Message, Exception: ex);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -1381,7 +1397,7 @@ namespace YSAI.Modbus.client
|
|
|
}
|
|
|
catch (Exception ex)
|
|
|
{
|
|
|
- return Break("ReadFloatHoldingRegisters", false, ex.Message, Exc: ex);
|
|
|
+ return Break("ReadFloatHoldingRegisters", false, ex.Message, Exception: ex);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -1428,7 +1444,7 @@ namespace YSAI.Modbus.client
|
|
|
}
|
|
|
catch (Exception ex)
|
|
|
{
|
|
|
- return Break("WriteCharHoldingRegisters", false, ex.Message, Exc: ex);
|
|
|
+ return Break("WriteCharHoldingRegisters", false, ex.Message, Exception: ex);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -1475,7 +1491,7 @@ namespace YSAI.Modbus.client
|
|
|
}
|
|
|
catch (Exception ex)
|
|
|
{
|
|
|
- return Break("WriteUshortHoldingRegisters", false, ex.Message, Exc: ex);
|
|
|
+ return Break("WriteUshortHoldingRegisters", false, ex.Message, Exception: ex);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -1522,7 +1538,7 @@ namespace YSAI.Modbus.client
|
|
|
}
|
|
|
catch (Exception ex)
|
|
|
{
|
|
|
- return Break("WriteShortHoldingRegisters", false, ex.Message, Exc: ex);
|
|
|
+ return Break("WriteShortHoldingRegisters", false, ex.Message, Exception: ex);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -1569,7 +1585,7 @@ namespace YSAI.Modbus.client
|
|
|
}
|
|
|
catch (Exception ex)
|
|
|
{
|
|
|
- return Break("WriteIntHoldingRegisters", false, ex.Message, Exc: ex);
|
|
|
+ return Break("WriteIntHoldingRegisters", false, ex.Message, Exception: ex);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -1616,7 +1632,7 @@ namespace YSAI.Modbus.client
|
|
|
}
|
|
|
catch (Exception ex)
|
|
|
{
|
|
|
- return Break("WriteUintHoldingRegisters", false, ex.Message, Exc: ex);
|
|
|
+ return Break("WriteUintHoldingRegisters", false, ex.Message, Exception: ex);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -1663,7 +1679,7 @@ namespace YSAI.Modbus.client
|
|
|
}
|
|
|
catch (Exception ex)
|
|
|
{
|
|
|
- return Break("WriteFloatHoldingRegisters", false, ex.Message, Exc: ex);
|
|
|
+ return Break("WriteFloatHoldingRegisters", false, ex.Message, Exception: ex);
|
|
|
}
|
|
|
}
|
|
|
#endregion
|
|
|
@@ -1863,7 +1879,7 @@ namespace YSAI.Modbus.client
|
|
|
}
|
|
|
catch (Exception ex)
|
|
|
{
|
|
|
- return Break("ReadFloatInputRegisters", false, ex.Message, Exc: ex);
|
|
|
+ return Break("ReadFloatInputRegisters", false, ex.Message, Exception: ex);
|
|
|
}
|
|
|
}
|
|
|
#endregion
|
|
|
@@ -2076,7 +2092,7 @@ namespace YSAI.Modbus.client
|
|
|
}
|
|
|
catch (Exception ex)
|
|
|
{
|
|
|
- return Break("Subscribe", false, ex.Message, Exc: ex);
|
|
|
+ return Break("Subscribe", false, ex.Message, Exception: ex);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -2102,7 +2118,7 @@ namespace YSAI.Modbus.client
|
|
|
}
|
|
|
catch (Exception ex)
|
|
|
{
|
|
|
- return Break("UnSubscribe", false, ex.Message, Exc: ex);
|
|
|
+ return Break("UnSubscribe", false, ex.Message, Exception: ex);
|
|
|
}
|
|
|
}
|
|
|
|