|
|
@@ -21,6 +21,7 @@ using YSAI.Opc.da.http;
|
|
|
using YSAI.Opc.ua.client;
|
|
|
using YSAI.S7.client;
|
|
|
using YSAI.Unility;
|
|
|
+using static YSAI.Manage.Core.@base.ManageBaseData;
|
|
|
|
|
|
namespace YSAI.Manage.Core.@base
|
|
|
{
|
|
|
@@ -470,32 +471,32 @@ namespace YSAI.Manage.Core.@base
|
|
|
/// </summary>
|
|
|
/// <typeparam name="V">数据类型</typeparam>
|
|
|
/// <param name="data">数据</param>
|
|
|
- /// <param name="Name">数采类型</param>
|
|
|
+ /// <param name="DType">数采类型</param>
|
|
|
/// <param name="SN">实例SN</param>
|
|
|
/// <returns></returns>
|
|
|
- private OperateResult WriteHandler<V>(ConcurrentDictionary<string, V> data, DaqType? Name,string SN)
|
|
|
+ private OperateResult WriteHandler<V>(ConcurrentDictionary<string, V> data, DaqType? DType,string SN)
|
|
|
{
|
|
|
- switch (Name)
|
|
|
+ switch (DType)
|
|
|
{
|
|
|
case DaqType.OpcUa:
|
|
|
operateResult = OpcUaDaqObjArray[SN].Write(data);
|
|
|
if (!operateResult.State)
|
|
|
{
|
|
|
- return Break("Write", false, $"[ {Name.ToString()} ] {operateResult.Message}");
|
|
|
+ return Break("Write", false, $"[ {DType.ToString} ] {operateResult.Message}");
|
|
|
}
|
|
|
break;
|
|
|
case DaqType.OpcDa:
|
|
|
operateResult = OpcDaDaqObjArray[SN].Write(data);
|
|
|
if (!operateResult.State)
|
|
|
{
|
|
|
- return Break("Write", false, $"[ {Name.ToString()} ] {operateResult.Message}");
|
|
|
+ return Break("Write", false, $"[ {DType.ToString} ] {operateResult.Message}");
|
|
|
}
|
|
|
break;
|
|
|
case DaqType.S7:
|
|
|
operateResult = S7DaqObjArray[SN].Write(data);
|
|
|
if (!operateResult.State)
|
|
|
{
|
|
|
- return Break("Write", false, $"[ {Name.ToString()} ] {operateResult.Message}");
|
|
|
+ return Break("Write", false, $"[ {DType.ToString} ] {operateResult.Message}");
|
|
|
}
|
|
|
break;
|
|
|
}
|
|
|
@@ -578,7 +579,7 @@ namespace YSAI.Manage.Core.@base
|
|
|
return Task.Run(() => Init());
|
|
|
}
|
|
|
|
|
|
- public OperateResult On(DaqType? Name, string SN)
|
|
|
+ public OperateResult On(DaqType? DType, string SN)
|
|
|
{
|
|
|
Depart("On");
|
|
|
try
|
|
|
@@ -586,24 +587,24 @@ namespace YSAI.Manage.Core.@base
|
|
|
if (InitState)
|
|
|
{
|
|
|
//每个库的状态识别ID
|
|
|
- string ID = $"{Name.ToString()}-{SN}";
|
|
|
+ string ID = $"{DType.ToString()}-{SN}";
|
|
|
|
|
|
if (!OnState.ContainsKey(ID) || !OnState[ID])
|
|
|
{
|
|
|
- AddressManage? addressManage = basics.AManages.FirstOrDefault(c => c.DType.Equals(Name) && c.SN.Equals(SN));
|
|
|
+ AddressManage? addressManage = basics.AManages.FirstOrDefault(c => c.DType.Equals(DType) && c.SN.Equals(SN));
|
|
|
|
|
|
if (addressManage == null)
|
|
|
{
|
|
|
- return Break("On", false, $"[ {Name.ToString()} ] 地址管理数据为空");
|
|
|
+ return Break("On", false, $"[ {DType.ToString()} ] 地址管理数据为空");
|
|
|
}
|
|
|
|
|
|
- switch (Name)
|
|
|
+ switch (DType)
|
|
|
{
|
|
|
case DaqType.DB:
|
|
|
//判断是否有此实例
|
|
|
if (!DBDaqObjArray.ContainsKey(SN))
|
|
|
{
|
|
|
- return Break("On", false, $"[ {Name.ToString} ] [ {SN} ] 实例不存在");
|
|
|
+ return Break("On", false, $"[ {DType.ToString} ] [ {SN} ] 实例不存在");
|
|
|
}
|
|
|
break;
|
|
|
case DaqType.Modbus:
|
|
|
@@ -611,7 +612,7 @@ namespace YSAI.Manage.Core.@base
|
|
|
//判断是否有此实例
|
|
|
if (!DBDaqObjArray.ContainsKey(SN))
|
|
|
{
|
|
|
- return Break("On", false, $"[ {Name.ToString} ] [ {SN} ] 实例不存在");
|
|
|
+ return Break("On", false, $"[ {DType.ToString} ] [ {SN} ] 实例不存在");
|
|
|
}
|
|
|
|
|
|
break;
|
|
|
@@ -619,33 +620,33 @@ namespace YSAI.Manage.Core.@base
|
|
|
//判断是否有此实例
|
|
|
if (!OpcUaDaqObjArray.ContainsKey(SN))
|
|
|
{
|
|
|
- return Break("On", false, $"[ {Name.ToString} ] [ {SN} ] 实例不存在");
|
|
|
+ return Break("On", false, $"[ {DType.ToString} ] [ {SN} ] 实例不存在");
|
|
|
}
|
|
|
break;
|
|
|
case DaqType.OpcDa:
|
|
|
//判断是否有此实例
|
|
|
if (!OpcDaDaqObjArray.ContainsKey(SN))
|
|
|
{
|
|
|
- return Break("On", false, $"[ {Name.ToString} ] [ {SN} ] 实例不存在");
|
|
|
+ return Break("On", false, $"[ {DType.ToString} ] [ {SN} ] 实例不存在");
|
|
|
}
|
|
|
break;
|
|
|
case DaqType.OpcDaHttp:
|
|
|
//判断是否有此实例
|
|
|
if (!DBDaqObjArray.ContainsKey(SN))
|
|
|
{
|
|
|
- return Break("On", false, $"[ {Name.ToString} ] [ {SN} ] 实例不存在");
|
|
|
+ return Break("On", false, $"[ {DType.ToString} ] [ {SN} ] 实例不存在");
|
|
|
}
|
|
|
break;
|
|
|
case DaqType.S7:
|
|
|
//判断是否有此实例
|
|
|
if (!DBDaqObjArray.ContainsKey(SN))
|
|
|
{
|
|
|
- return Break("On", false, $"[ {Name.ToString} ] [ {SN} ] 实例不存在");
|
|
|
+ return Break("On", false, $"[ {DType.ToString} ] [ {SN} ] 实例不存在");
|
|
|
}
|
|
|
break;
|
|
|
}
|
|
|
|
|
|
- switch (Name)
|
|
|
+ switch (DType)
|
|
|
{
|
|
|
case DaqType.OpcUa:
|
|
|
//OPCUA 自带订阅功能
|
|
|
@@ -661,7 +662,7 @@ namespace YSAI.Manage.Core.@base
|
|
|
operateResult = OpcDaDaqObjArray[SN].UpdateGroupSubscribedState(SN, true);
|
|
|
if (!operateResult.State)
|
|
|
{
|
|
|
- return Break("On", false, $"[ {Name.ToString} ] [ {SN} ] {operateResult.Message}");
|
|
|
+ return Break("On", false, $"[ {DType.ToString} ] [ {SN} ] {operateResult.Message}");
|
|
|
}
|
|
|
break;
|
|
|
case DaqType.DB:
|
|
|
@@ -674,12 +675,12 @@ namespace YSAI.Manage.Core.@base
|
|
|
operateResult = SubscribeObjArray[SN].On();
|
|
|
if (!operateResult.State)
|
|
|
{
|
|
|
- return Break("On", false, $"[ {Name.ToString} ] [ {SN} ] {operateResult.Message}");
|
|
|
+ return Break("On", false, $"[ {DType.ToString} ] [ {SN} ] {operateResult.Message}");
|
|
|
}
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- return Break("On", false, $"[ {Name.ToString} ] [ {SN} ] 订阅不存在");
|
|
|
+ return Break("On", false, $"[ {DType.ToString} ] [ {SN} ] 订阅不存在");
|
|
|
}
|
|
|
break;
|
|
|
}
|
|
|
@@ -705,12 +706,12 @@ namespace YSAI.Manage.Core.@base
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- public Task<OperateResult> OnAsync(DaqType? Name, string SN)
|
|
|
+ public Task<OperateResult> OnAsync(DaqType? DType, string SN)
|
|
|
{
|
|
|
- return Task.Run(() => On(Name, SN));
|
|
|
+ return Task.Run(() => On(DType, SN));
|
|
|
}
|
|
|
|
|
|
- public OperateResult Off(DaqType? Name, string SN)
|
|
|
+ public OperateResult Off(DaqType? DType, string SN)
|
|
|
{
|
|
|
Depart("Off");
|
|
|
try
|
|
|
@@ -718,62 +719,62 @@ namespace YSAI.Manage.Core.@base
|
|
|
if (InitState)
|
|
|
{
|
|
|
//每个库的状态识别ID
|
|
|
- string ID = $"{Name.ToString()}-{SN}";
|
|
|
+ string ID = $"{DType.ToString()}-{SN}";
|
|
|
|
|
|
if (OnState.ContainsKey(ID) || OnState[ID])
|
|
|
{
|
|
|
if (!OffState.ContainsKey(ID) || !OffState[ID])
|
|
|
{
|
|
|
- switch (Name)
|
|
|
+ switch (DType)
|
|
|
{
|
|
|
case DaqType.DB:
|
|
|
//判断是否有此实例
|
|
|
if (!DBDaqObjArray.ContainsKey(SN))
|
|
|
{
|
|
|
- return Break("On", false, $"[ {Name.ToString} ] [ {SN} ] 实例不存在");
|
|
|
+ return Break("On", false, $"[ {DType.ToString} ] [ {SN} ] 实例不存在");
|
|
|
}
|
|
|
break;
|
|
|
case DaqType.Modbus:
|
|
|
//判断是否有此实例
|
|
|
if (!ModbusDaqObjArray.ContainsKey(SN))
|
|
|
{
|
|
|
- return Break("On", false, $"[ {Name.ToString} ] [ {SN} ] 实例不存在");
|
|
|
+ return Break("On", false, $"[ {DType.ToString} ] [ {SN} ] 实例不存在");
|
|
|
}
|
|
|
break;
|
|
|
case DaqType.OpcUa:
|
|
|
//判断是否有此实例
|
|
|
if (!OpcUaDaqObjArray.ContainsKey(SN))
|
|
|
{
|
|
|
- return Break("On", false, $"[ {Name.ToString} ] [ {SN} ] 实例不存在");
|
|
|
+ return Break("On", false, $"[ {DType.ToString} ] [ {SN} ] 实例不存在");
|
|
|
}
|
|
|
break;
|
|
|
case DaqType.OpcDa:
|
|
|
//判断是否有此实例
|
|
|
if (!OpcDaDaqObjArray.ContainsKey(SN))
|
|
|
{
|
|
|
- return Break("On", false, $"[ {Name.ToString} ] [ {SN} ] 实例不存在");
|
|
|
+ return Break("On", false, $"[ {DType.ToString} ] [ {SN} ] 实例不存在");
|
|
|
}
|
|
|
break;
|
|
|
case DaqType.OpcDaHttp:
|
|
|
//判断是否有此实例
|
|
|
if (!OpcDaHttpDaqObjArray.ContainsKey(SN))
|
|
|
{
|
|
|
- return Break("On", false, $"[ {Name.ToString} ] [ {SN} ] 实例不存在");
|
|
|
+ return Break("On", false, $"[ {DType.ToString} ] [ {SN} ] 实例不存在");
|
|
|
}
|
|
|
break;
|
|
|
case DaqType.S7:
|
|
|
//判断是否有此实例
|
|
|
if (!S7DaqObjArray.ContainsKey(SN))
|
|
|
{
|
|
|
- return Break("On", false, $"[ {Name.ToString} ] [ {SN} ] 实例不存在");
|
|
|
+ return Break("On", false, $"[ {DType.ToString} ] [ {SN} ] 实例不存在");
|
|
|
}
|
|
|
break;
|
|
|
}
|
|
|
|
|
|
- switch (Name)
|
|
|
+ switch (DType)
|
|
|
{
|
|
|
case DaqType.OpcUa:
|
|
|
- operateResult = OpcUaDaqObjArray[SN].RemoveSubscribe(basics.AManages.FirstOrDefault(c => c.DType.Equals(Name) && c.SN.Equals(SN)).AddressArray);
|
|
|
+ operateResult = OpcUaDaqObjArray[SN].RemoveSubscribe(basics.AManages.FirstOrDefault(c => c.DType.Equals(DType) && c.SN.Equals(SN)).AddressArray);
|
|
|
if (!operateResult.State)
|
|
|
{
|
|
|
return Break("Off", false, operateResult.Message);
|
|
|
@@ -796,12 +797,12 @@ namespace YSAI.Manage.Core.@base
|
|
|
operateResult = SubscribeObjArray[SN].Off();
|
|
|
if (!operateResult.State)
|
|
|
{
|
|
|
- return Break("Off", false, $"[ {Name.ToString} ] [ {SN} ] {operateResult.Message}");
|
|
|
+ return Break("Off", false, $"[ {DType.ToString} ] [ {SN} ] {operateResult.Message}");
|
|
|
}
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- return Break("On", false, $"[ {Name.ToString} ] [ {SN} ] 订阅不存在");
|
|
|
+ return Break("On", false, $"[ {DType.ToString} ] [ {SN} ] 订阅不存在");
|
|
|
}
|
|
|
break;
|
|
|
}
|
|
|
@@ -832,12 +833,12 @@ namespace YSAI.Manage.Core.@base
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- public Task<OperateResult> OffAsync(DaqType? Name, string SN)
|
|
|
+ public Task<OperateResult> OffAsync(DaqType? DType, string SN)
|
|
|
{
|
|
|
- return Task.Run(() => Off(Name, SN));
|
|
|
+ return Task.Run(() => Off(DType, SN));
|
|
|
}
|
|
|
|
|
|
- public OperateResult Read(DaqType? Name, string SN, string AddressName)
|
|
|
+ public OperateResult Read(DaqType? DType, string SN, string AddressName)
|
|
|
{
|
|
|
Depart("Read");
|
|
|
try
|
|
|
@@ -845,28 +846,28 @@ namespace YSAI.Manage.Core.@base
|
|
|
if (InitState)
|
|
|
{
|
|
|
//每个库的状态识别ID
|
|
|
- string ID = $"{Name.ToString()}-{SN}";
|
|
|
+ string ID = $"{DType.ToString()}-{SN}";
|
|
|
|
|
|
if (OnState.ContainsKey(ID) || OnState[ID])
|
|
|
{
|
|
|
- AddressManage? addressManage = basics.AManages.FirstOrDefault(c => c.DType.Equals(Name) && c.SN.Equals(SN));
|
|
|
+ AddressManage? addressManage = basics.AManages.FirstOrDefault(c => c.DType.Equals(DType) && c.SN.Equals(SN));
|
|
|
if (addressManage == null)
|
|
|
{
|
|
|
- return Break("Read", false, $"[ {Name.ToString()} ] 地址管理数据为空");
|
|
|
+ return Break("Read", false, $"[ {DType.ToString()} ] 地址管理数据为空");
|
|
|
}
|
|
|
AddressDetails? details = addressManage.AddressArray.FirstOrDefault(c => c.AddressName.Equals(AddressName));
|
|
|
if (details == null)
|
|
|
{
|
|
|
- return Break("Read", false, $"[ {Name.ToString()} ] 未查询到({AddressName})地址配置数据");
|
|
|
+ return Break("Read", false, $"[ {DType.ToString()} ] 未查询到({AddressName})地址配置数据");
|
|
|
}
|
|
|
|
|
|
- switch (Name)
|
|
|
+ switch (DType)
|
|
|
{
|
|
|
case DaqType.DB:
|
|
|
//判断是否有此实例
|
|
|
if (!DBDaqObjArray.ContainsKey(SN))
|
|
|
{
|
|
|
- return Break("On", false, $"[ {Name.ToString} ] [ {SN} ] 实例不存在");
|
|
|
+ return Break("On", false, $"[ {DType.ToString} ] [ {SN} ] 实例不存在");
|
|
|
}
|
|
|
break;
|
|
|
case DaqType.Modbus:
|
|
|
@@ -874,7 +875,7 @@ namespace YSAI.Manage.Core.@base
|
|
|
//判断是否有此实例
|
|
|
if (!DBDaqObjArray.ContainsKey(SN))
|
|
|
{
|
|
|
- return Break("On", false, $"[ {Name.ToString} ] [ {SN} ] 实例不存在");
|
|
|
+ return Break("On", false, $"[ {DType.ToString} ] [ {SN} ] 实例不存在");
|
|
|
}
|
|
|
|
|
|
break;
|
|
|
@@ -882,33 +883,33 @@ namespace YSAI.Manage.Core.@base
|
|
|
//判断是否有此实例
|
|
|
if (!OpcUaDaqObjArray.ContainsKey(SN))
|
|
|
{
|
|
|
- return Break("On", false, $"[ {Name.ToString} ] [ {SN} ] 实例不存在");
|
|
|
+ return Break("On", false, $"[ {DType.ToString} ] [ {SN} ] 实例不存在");
|
|
|
}
|
|
|
break;
|
|
|
case DaqType.OpcDa:
|
|
|
//判断是否有此实例
|
|
|
if (!OpcDaDaqObjArray.ContainsKey(SN))
|
|
|
{
|
|
|
- return Break("On", false, $"[ {Name.ToString} ] [ {SN} ] 实例不存在");
|
|
|
+ return Break("On", false, $"[ {DType.ToString} ] [ {SN} ] 实例不存在");
|
|
|
}
|
|
|
break;
|
|
|
case DaqType.OpcDaHttp:
|
|
|
//判断是否有此实例
|
|
|
if (!DBDaqObjArray.ContainsKey(SN))
|
|
|
{
|
|
|
- return Break("On", false, $"[ {Name.ToString} ] [ {SN} ] 实例不存在");
|
|
|
+ return Break("On", false, $"[ {DType.ToString} ] [ {SN} ] 实例不存在");
|
|
|
}
|
|
|
break;
|
|
|
case DaqType.S7:
|
|
|
//判断是否有此实例
|
|
|
if (!DBDaqObjArray.ContainsKey(SN))
|
|
|
{
|
|
|
- return Break("On", false, $"[ {Name.ToString} ] [ {SN} ] 实例不存在");
|
|
|
+ return Break("On", false, $"[ {DType.ToString} ] [ {SN} ] 实例不存在");
|
|
|
}
|
|
|
break;
|
|
|
}
|
|
|
|
|
|
- switch (Name)
|
|
|
+ switch (DType)
|
|
|
{
|
|
|
case DaqType.DB:
|
|
|
operateResult = DBDaqObjArray[SN].Read(new Address() { SN = addressManage.SN, CreationTime = addressManage.CreationTime, AddressArray = new List<AddressDetails>() { details } });
|
|
|
@@ -954,7 +955,7 @@ namespace YSAI.Manage.Core.@base
|
|
|
break;
|
|
|
}
|
|
|
|
|
|
- return Break("Read", false, $"[ {Name.ToString()} ] [ {AddressName} ] {operateResult.Message}");
|
|
|
+ return Break("Read", false, $"[ {DType.ToString()} ] [ {AddressName} ] {operateResult.Message}");
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
@@ -972,12 +973,12 @@ namespace YSAI.Manage.Core.@base
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- public Task<OperateResult> ReadAsync(DaqType? Name, string SN, string AddressName)
|
|
|
+ public Task<OperateResult> ReadAsync(DaqType? DType, string SN, string AddressName)
|
|
|
{
|
|
|
- return Task.Run(()=>Read(Name, SN, AddressName));
|
|
|
+ return Task.Run(()=>Read(DType, SN, AddressName));
|
|
|
}
|
|
|
|
|
|
- public OperateResult Write(DaqType? Name, string SN, string AddressName, string Value, DataType DType)
|
|
|
+ public OperateResult Write(DaqType? DType, string SN, string AddressName, string Value, DataType DaType)
|
|
|
{
|
|
|
Depart("Write");
|
|
|
try
|
|
|
@@ -985,28 +986,28 @@ namespace YSAI.Manage.Core.@base
|
|
|
if (InitState)
|
|
|
{
|
|
|
//每个库的状态识别ID
|
|
|
- string ID = $"{Name.ToString()}-{SN}";
|
|
|
+ string ID = $"{DType.ToString()}-{SN}";
|
|
|
|
|
|
if (OnState.ContainsKey(ID) || OnState[ID])
|
|
|
{
|
|
|
- AddressManage? addressManage = basics.AManages.FirstOrDefault(c => c.DType.Equals(Name) && c.SN.Equals(SN));
|
|
|
+ AddressManage? addressManage = basics.AManages.FirstOrDefault(c => c.DType.Equals(DType) && c.SN.Equals(SN));
|
|
|
if (addressManage == null)
|
|
|
{
|
|
|
- return Break("Write", false, $"[ {Name.ToString()} ] 地址管理数据为空");
|
|
|
+ return Break("Write", false, $"[ {DType.ToString()} ] 地址管理数据为空");
|
|
|
}
|
|
|
AddressDetails? details = addressManage.AddressArray.FirstOrDefault(c => c.AddressName.Equals(AddressName));
|
|
|
if (details == null)
|
|
|
{
|
|
|
- return Break("Write", false, $"[ {Name.ToString()} ] 未查询到({AddressName})地址配置数据");
|
|
|
+ return Break("Write", false, $"[ {DType.ToString()} ] 未查询到({AddressName})地址配置数据");
|
|
|
}
|
|
|
|
|
|
- switch (Name)
|
|
|
+ switch (DType)
|
|
|
{
|
|
|
case DaqType.DB:
|
|
|
//判断是否有此实例
|
|
|
if (!DBDaqObjArray.ContainsKey(SN))
|
|
|
{
|
|
|
- return Break("On", false, $"[ {Name.ToString} ] [ {SN} ] 实例不存在");
|
|
|
+ return Break("On", false, $"[ {DType.ToString} ] [ {SN} ] 实例不存在");
|
|
|
}
|
|
|
break;
|
|
|
case DaqType.Modbus:
|
|
|
@@ -1014,7 +1015,7 @@ namespace YSAI.Manage.Core.@base
|
|
|
//判断是否有此实例
|
|
|
if (!DBDaqObjArray.ContainsKey(SN))
|
|
|
{
|
|
|
- return Break("On", false, $"[ {Name.ToString} ] [ {SN} ] 实例不存在");
|
|
|
+ return Break("On", false, $"[ {DType.ToString} ] [ {SN} ] 实例不存在");
|
|
|
}
|
|
|
|
|
|
break;
|
|
|
@@ -1022,42 +1023,42 @@ namespace YSAI.Manage.Core.@base
|
|
|
//判断是否有此实例
|
|
|
if (!OpcUaDaqObjArray.ContainsKey(SN))
|
|
|
{
|
|
|
- return Break("On", false, $"[ {Name.ToString} ] [ {SN} ] 实例不存在");
|
|
|
+ return Break("On", false, $"[ {DType.ToString} ] [ {SN} ] 实例不存在");
|
|
|
}
|
|
|
break;
|
|
|
case DaqType.OpcDa:
|
|
|
//判断是否有此实例
|
|
|
if (!OpcDaDaqObjArray.ContainsKey(SN))
|
|
|
{
|
|
|
- return Break("On", false, $"[ {Name.ToString} ] [ {SN} ] 实例不存在");
|
|
|
+ return Break("On", false, $"[ {DType.ToString} ] [ {SN} ] 实例不存在");
|
|
|
}
|
|
|
break;
|
|
|
case DaqType.OpcDaHttp:
|
|
|
//判断是否有此实例
|
|
|
if (!DBDaqObjArray.ContainsKey(SN))
|
|
|
{
|
|
|
- return Break("On", false, $"[ {Name.ToString} ] [ {SN} ] 实例不存在");
|
|
|
+ return Break("On", false, $"[ {DType.ToString} ] [ {SN} ] 实例不存在");
|
|
|
}
|
|
|
break;
|
|
|
case DaqType.S7:
|
|
|
//判断是否有此实例
|
|
|
if (!DBDaqObjArray.ContainsKey(SN))
|
|
|
{
|
|
|
- return Break("On", false, $"[ {Name.ToString} ] [ {SN} ] 实例不存在");
|
|
|
+ return Break("On", false, $"[ {DType.ToString} ] [ {SN} ] 实例不存在");
|
|
|
}
|
|
|
break;
|
|
|
}
|
|
|
|
|
|
- switch (Name)
|
|
|
+ switch (DType)
|
|
|
{
|
|
|
case DaqType.OpcDaHttp:
|
|
|
case DaqType.DB:
|
|
|
- return Break("Write", false, $"[ {Name.ToString()} ] 目前不支持写入功能");
|
|
|
+ return Break("Write", false, $"[ {DType.ToString} ] 目前不支持写入功能");
|
|
|
case DaqType.Modbus:
|
|
|
ConcurrentDictionary<ushort, object> pairs = new ConcurrentDictionary<ushort, object>();
|
|
|
try
|
|
|
{
|
|
|
- switch (DType)
|
|
|
+ switch (DaType)
|
|
|
{
|
|
|
case DataType.String:
|
|
|
pairs.TryAdd(int.Parse(AddressName).ToUshort(), Value);
|
|
|
@@ -1082,28 +1083,28 @@ namespace YSAI.Manage.Core.@base
|
|
|
operateResult = ModbusDaqObjArray[SN].Write(pairs);
|
|
|
if (!operateResult.State)
|
|
|
{
|
|
|
- return Break("Write", false, $"[ {Name.ToString()} ] {operateResult.Message}");
|
|
|
+ return Break("Write", false, $"[ {DType.ToString} ] {operateResult.Message}");
|
|
|
}
|
|
|
break;
|
|
|
default:
|
|
|
- switch (DType)
|
|
|
+ switch (DaType)
|
|
|
{
|
|
|
case DataType.String:
|
|
|
ConcurrentDictionary<string, string> str = new ConcurrentDictionary<string, string>();
|
|
|
str.TryAdd(AddressName, Value);
|
|
|
- return WriteHandler(str, Name, SN);
|
|
|
+ return WriteHandler(str, DType, SN);
|
|
|
case DataType.Bool:
|
|
|
ConcurrentDictionary<string, bool> bo = new ConcurrentDictionary<string, bool>();
|
|
|
bo.TryAdd(AddressName, bool.Parse(Value));
|
|
|
- return WriteHandler(bo, Name, SN);
|
|
|
+ return WriteHandler(bo, DType, SN);
|
|
|
case DataType.Double:
|
|
|
ConcurrentDictionary<string, double> dou = new ConcurrentDictionary<string, double>();
|
|
|
dou.TryAdd(AddressName, double.Parse(Value));
|
|
|
- return WriteHandler(dou, Name, SN);
|
|
|
+ return WriteHandler(dou, DType, SN);
|
|
|
case DataType.Int:
|
|
|
ConcurrentDictionary<string, int> ints = new ConcurrentDictionary<string, int>();
|
|
|
ints.TryAdd(AddressName, int.Parse(Value));
|
|
|
- return WriteHandler(ints, Name, SN);
|
|
|
+ return WriteHandler(ints, DType, SN);
|
|
|
default:
|
|
|
return Break("Write", false, "值类型错误");
|
|
|
}
|
|
|
@@ -1127,9 +1128,9 @@ namespace YSAI.Manage.Core.@base
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- public Task<OperateResult> WriteAsync(DaqType? Name, string SN, string AddressName, string Value, DataType DType)
|
|
|
+ public Task<OperateResult> WriteAsync(DaqType? DType, string SN, string AddressName, string Value, DataType DaType)
|
|
|
{
|
|
|
- return Task.Run(()=> Write(Name,SN,AddressName,Value,DType));
|
|
|
+ return Task.Run(()=> Write(DType, SN,AddressName,Value,DaType));
|
|
|
}
|
|
|
|
|
|
public void Dispose()
|
|
|
@@ -1157,5 +1158,30 @@ namespace YSAI.Manage.Core.@base
|
|
|
GC.SuppressFinalize(this);
|
|
|
ThisObjList.Remove(this);
|
|
|
}
|
|
|
+
|
|
|
+ public OperateResult InitSucceedArray()
|
|
|
+ {
|
|
|
+ Depart("InitSucceedArray");
|
|
|
+ try
|
|
|
+ {
|
|
|
+ List<initSucceedArray> array = new List<initSucceedArray>();
|
|
|
+ foreach (var item in DBDaqObjArray) { array.Add(new initSucceedArray { DType = DaqType.DB, SN = item.Key }); }
|
|
|
+ foreach (var item in ModbusDaqObjArray) { array.Add(new initSucceedArray { DType = DaqType.Modbus, SN = item.Key }); }
|
|
|
+ foreach (var item in OpcUaDaqObjArray) { array.Add(new initSucceedArray { DType = DaqType.OpcUa, SN = item.Key }); }
|
|
|
+ foreach (var item in OpcDaDaqObjArray) { array.Add(new initSucceedArray { DType = DaqType.OpcDa, SN = item.Key }); }
|
|
|
+ foreach (var item in OpcDaHttpDaqObjArray) { array.Add(new initSucceedArray { DType = DaqType.OpcDaHttp, SN = item.Key }); }
|
|
|
+ foreach (var item in S7DaqObjArray) { array.Add(new initSucceedArray { DType = DaqType.S7, SN = item.Key }); }
|
|
|
+ return Break("InitSucceedArray", true, RData: array, RType: ResultType.Json);
|
|
|
+ }
|
|
|
+ catch (Exception ex)
|
|
|
+ {
|
|
|
+ return Break("InitSucceedArray", false, ex.Message);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ public Task<OperateResult> InitSucceedArrayAsync()
|
|
|
+ {
|
|
|
+ return Task.Run(() => InitSucceedArray());
|
|
|
+ }
|
|
|
}
|
|
|
}
|