|
@@ -3,7 +3,6 @@ using HslCommunication.Profinet.Siemens;
|
|
|
using IMCS.CCS.Common.Redis;
|
|
|
using IMCS.CCS.DeviceProtocol;
|
|
|
using IMCS.CCS.Entitys;
|
|
|
-using IMCS.CCS.Model.vo;
|
|
|
using IMCS.CCS.Services;
|
|
|
using IMCS_CCS.Model.vo;
|
|
|
using IMCS_CCS.Utils;
|
|
@@ -73,6 +72,10 @@ namespace IMCS.CCS.Service.Impl
|
|
|
opcuacUrlContext = Configuration.GetConnectionString("opcuacUrlContext");
|
|
|
}
|
|
|
|
|
|
+ /// <summary>
|
|
|
+ /// 采集数据OPCUA
|
|
|
+ /// </summary>
|
|
|
+ /// <returns></returns>
|
|
|
/// <summary>
|
|
|
/// 采集数据OPCUA
|
|
|
/// </summary>
|
|
@@ -88,7 +91,7 @@ namespace IMCS.CCS.Service.Impl
|
|
|
foreach (Device device in deviceList)
|
|
|
{
|
|
|
List<CcsTagValue> tagValues = new List<CcsTagValue>();
|
|
|
- string redis_key = device.Ip + ":" + device.ProtocolType;
|
|
|
+ string redis_key = "IMCS_CCS:" + device.Ip + ":" + device.ProtocolType;
|
|
|
var data = await _redisService.Database.StringGetAsync(redis_key);
|
|
|
if (data.IsNullOrEmpty)
|
|
|
{
|
|
@@ -162,6 +165,22 @@ namespace IMCS.CCS.Service.Impl
|
|
|
await _redisService.Database.StringSetAsync(redis_key, JsonConvert.SerializeObject(tagValues));
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+ CcsTagValue tagQuery = new CcsTagValue();
|
|
|
+ tagQuery.ProtocolType = device.ProtocolType;
|
|
|
+ tagQuery.Ip = device.Ip;
|
|
|
+ tagValues = _ccsTagValueService.GetList(tagQuery);
|
|
|
+
|
|
|
+ //机床复位
|
|
|
+ CcsTagValue tagValue1 = tagValues.Where(t => t.Address == "ns=2;s=/Plc/M1500.2").FirstOrDefault();
|
|
|
+ CcsTagValue tagValue2 = tagValues.Where(t => t.Address == "ns=2;s=/Plc/M1500.4").FirstOrDefault();
|
|
|
+ if (tagValue1.TagValue == "True" && tagValue2.TagValue == "True")
|
|
|
+ {
|
|
|
+ opcUaReq.Addresses = new List<string>() { "ns=2;s=/Plc/M1999.1" };
|
|
|
+ opcUaReq.Values = new List<string>() { "False" };
|
|
|
+ opcUaReq.Type = OpcUaActionTypeEnum.Write.ToString();
|
|
|
+ await _apiRequestService.RequestAsync(RequsetModeEnum.Post, opcuacUrlContext, opcUaReq, null);
|
|
|
+ }
|
|
|
}
|
|
|
else
|
|
|
{
|
|
@@ -191,7 +210,7 @@ namespace IMCS.CCS.Service.Impl
|
|
|
foreach (Device device in deviceList)
|
|
|
{
|
|
|
List<CcsTagValue> tagValues = new List<CcsTagValue>();
|
|
|
- string redis_key = device.Ip + ":" + device.ProtocolType;
|
|
|
+ string redis_key = "IMCS_CCS:" + device.Ip + ":" + device.ProtocolType;
|
|
|
var data = await _redisService.Database.StringGetAsync(redis_key);
|
|
|
if (data.IsNullOrEmpty)
|
|
|
{
|
|
@@ -290,7 +309,7 @@ namespace IMCS.CCS.Service.Impl
|
|
|
foreach (Device device in deviceList)
|
|
|
{
|
|
|
List<CcsTagValue> tagValues = new List<CcsTagValue>();
|
|
|
- string redis_key = device.Ip + ":" + device.ProtocolType;
|
|
|
+ string redis_key = "IMCS_CCS:" + device.Ip + ":" + device.ProtocolType;
|
|
|
var data = await _redisService.Database.StringGetAsync(redis_key);
|
|
|
if (data.IsNullOrEmpty)
|
|
|
{
|
|
@@ -325,7 +344,7 @@ namespace IMCS.CCS.Service.Impl
|
|
|
return "采集失败,FANUC连不上";
|
|
|
}
|
|
|
else
|
|
|
- {
|
|
|
+ {
|
|
|
//调用发那科采集接口
|
|
|
Result = await _apiRequestService.RequestAsync(RequsetModeEnum.Get, Url + "&fun=All", null, null);
|
|
|
ResponseFanucData fanucData = JsonConvert.DeserializeObject<ResponseFanucData>(Result.Message);
|
|
@@ -370,7 +389,9 @@ namespace IMCS.CCS.Service.Impl
|
|
|
{
|
|
|
List<TaskCallback> list = await _taskCallbackService.GetAllList();
|
|
|
|
|
|
- list = list.Where(x => x.OperateType.Equals(ActionTypeEnum.UploadFile.ToString())).ToList();
|
|
|
+ list = list.Where(x => x.OperateType.Equals(ActionTypeEnum.UploadFile.ToString())
|
|
|
+ || x.OperateType.Equals(ActionTypeEnum.SendLinShift.ToString())
|
|
|
+ || x.OperateType.Equals(ActionTypeEnum.SendLinShiftFine.ToString())).ToList();
|
|
|
string message = "";
|
|
|
try
|
|
|
{
|
|
@@ -443,13 +464,9 @@ namespace IMCS.CCS.Service.Impl
|
|
|
CcsTagValue tagValueQuery = new CcsTagValue();
|
|
|
tagValueQuery.Ip = task.IP;
|
|
|
tagValueQuery.Address = task.Address;
|
|
|
- List<CcsTagValue> tagValues = _ccsTagValueService.GetList(tagValueQuery);
|
|
|
- CcsTagValue tagValue = null;
|
|
|
- if (tagValues != null && tagValues.Count > 0)
|
|
|
- {
|
|
|
- tagValue = tagValues[0];
|
|
|
- }
|
|
|
- else
|
|
|
+ CcsTagValue tagValue = _ccsTagValueService.GetList(tagValueQuery).FirstOrDefault();
|
|
|
+ if (tagValue == null)
|
|
|
+
|
|
|
{
|
|
|
|
|
|
message = message + JsonConvert.SerializeObject(task) + ",此节点没配置;";
|
|
@@ -457,7 +474,7 @@ namespace IMCS.CCS.Service.Impl
|
|
|
continue;
|
|
|
|
|
|
}
|
|
|
- if (tagValue.TagValue.Equals(task.CallbackValue))
|
|
|
+ if (tagValue.TagValue == task.CallbackValue)
|
|
|
{
|
|
|
CallBackRequestData requestData = new CallBackRequestData();
|
|
|
requestData.taskId = long.Parse(task.TaskId);
|
|
@@ -478,7 +495,7 @@ namespace IMCS.CCS.Service.Impl
|
|
|
}
|
|
|
|
|
|
}
|
|
|
- else if (!string.IsNullOrEmpty(task.CallbackValue2) && tagValue.TagValue.Equals(task.CallbackValue2))
|
|
|
+ else if (tagValue.TagValue == task.CallbackValue2)
|
|
|
{
|
|
|
CallBackRequestData requestData = new CallBackRequestData();
|
|
|
requestData.taskId = long.Parse(task.TaskId);
|
|
@@ -510,7 +527,7 @@ namespace IMCS.CCS.Service.Impl
|
|
|
if (tagValues3 != null && tagValues3.Count > 0)
|
|
|
{
|
|
|
CcsTagValue tagValue3 = tagValues3[0];
|
|
|
- if (tagValue3.TagValue.Equals(task.CallbackValue3))
|
|
|
+ if (tagValue3.TagValue == task.CallbackValue3)
|
|
|
{
|
|
|
CallBackRequestData requestData = new CallBackRequestData();
|
|
|
requestData.taskId = long.Parse(task.TaskId);
|
|
@@ -596,7 +613,7 @@ namespace IMCS.CCS.Service.Impl
|
|
|
continue;
|
|
|
|
|
|
}
|
|
|
- if (tagValue.TagValue.Equals(task.CallbackValue))
|
|
|
+ if (tagValue.TagValue == task.CallbackValue)
|
|
|
{
|
|
|
CallBackRequestData requestData = new CallBackRequestData();
|
|
|
requestData.taskId = long.Parse(task.TaskId);
|
|
@@ -629,7 +646,7 @@ namespace IMCS.CCS.Service.Impl
|
|
|
}
|
|
|
|
|
|
}
|
|
|
- else if (!string.IsNullOrEmpty(task.CallbackValue2) && tagValue.TagValue.Equals(task.CallbackValue2))
|
|
|
+ else if (tagValue.TagValue == task.CallbackValue2)
|
|
|
{
|
|
|
CallBackRequestData requestData = new CallBackRequestData();
|
|
|
requestData.taskId = long.Parse(task.TaskId);
|
|
@@ -709,7 +726,7 @@ namespace IMCS.CCS.Service.Impl
|
|
|
Log.Instance.WriteLogAdd("回调异常,此节点没配置" + JsonConvert.SerializeObject(task), LOG_TITLE_CALLBACK);
|
|
|
continue;
|
|
|
}
|
|
|
- if (tagValue.TagValue.Equals(task.CallbackValue))
|
|
|
+ if (tagValue.TagValue == task.CallbackValue)
|
|
|
{
|
|
|
CallBackRequestData requestData = new CallBackRequestData();
|
|
|
requestData.taskId = long.Parse(task.TaskId);
|
|
@@ -769,19 +786,14 @@ namespace IMCS.CCS.Service.Impl
|
|
|
CcsTagValue tagValueQuery = new CcsTagValue();
|
|
|
tagValueQuery.Ip = task.IP;
|
|
|
tagValueQuery.Address = task.Address;
|
|
|
- List<CcsTagValue> tagValues = _ccsTagValueService.GetList(tagValueQuery);
|
|
|
- CcsTagValue tagValue = null;
|
|
|
- if (tagValues != null && tagValues.Count > 0)
|
|
|
- {
|
|
|
- tagValue = tagValues[0];
|
|
|
- }
|
|
|
- else
|
|
|
+ CcsTagValue tagValue = _ccsTagValueService.GetList(tagValueQuery).FirstOrDefault();
|
|
|
+ if (tagValue == null)
|
|
|
{
|
|
|
message = message + JsonConvert.SerializeObject(task) + ",此节点没配置;";
|
|
|
Log.Instance.WriteLogAdd("回调异常,此节点没配置" + JsonConvert.SerializeObject(task), LOG_TITLE_CALLBACK);
|
|
|
continue;
|
|
|
}
|
|
|
- if (tagValue.TagValue.Equals(task.CallbackValue))
|
|
|
+ if (tagValue.TagValue == task.CallbackValue)
|
|
|
{
|
|
|
CallBackRequestData requestData = new CallBackRequestData();
|
|
|
requestData.taskId = long.Parse(task.TaskId);
|
|
@@ -842,19 +854,15 @@ namespace IMCS.CCS.Service.Impl
|
|
|
CcsTagValue tagValueQuery = new CcsTagValue();
|
|
|
tagValueQuery.Ip = task.IP;
|
|
|
tagValueQuery.Address = task.Address;
|
|
|
- List<CcsTagValue> tagValues = _ccsTagValueService.GetList(tagValueQuery);
|
|
|
- CcsTagValue tagValue = null;
|
|
|
- if (tagValues != null && tagValues.Count > 0)
|
|
|
- {
|
|
|
- tagValue = tagValues[0];
|
|
|
- }
|
|
|
- else
|
|
|
+ CcsTagValue tagValue = _ccsTagValueService.GetList(tagValueQuery).FirstOrDefault();
|
|
|
+ if (tagValue == null)
|
|
|
{
|
|
|
+
|
|
|
message = message + JsonConvert.SerializeObject(task) + ",此节点没配置;";
|
|
|
Log.Instance.WriteLogAdd("回调异常,此节点没配置" + JsonConvert.SerializeObject(task), LOG_TITLE_CALLBACK);
|
|
|
continue;
|
|
|
}
|
|
|
- if (tagValue.TagValue.Equals(task.CallbackValue))
|
|
|
+ if (tagValue.TagValue == task.CallbackValue || tagValue.TagValue == task.CallbackValue2)
|
|
|
{
|
|
|
CallBackRequestData requestData = new CallBackRequestData();
|
|
|
requestData.taskId = long.Parse(task.TaskId);
|
|
@@ -893,30 +901,65 @@ namespace IMCS.CCS.Service.Impl
|
|
|
try
|
|
|
{
|
|
|
string message = "MonitorEquipmentStatusJob调度成功";
|
|
|
- List<Device> devices = _deviceService.GetDeviceList();
|
|
|
+ List<Device> devices = new List<Device>() ;
|
|
|
+ string device_redis_key = "IMCS_CCS:DeviceList";
|
|
|
+ var deviceData = await _redisService.Database.StringGetAsync(device_redis_key);
|
|
|
+ if (deviceData.IsNullOrEmpty)
|
|
|
+ {
|
|
|
+ devices = _deviceService.GetDeviceList();
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ devices = JsonConvert.DeserializeObject<List<Device>>(deviceData);
|
|
|
+ }
|
|
|
//ftp不监控
|
|
|
- devices = devices.Where(x => !x.ProtocolType.Equals(ProtocalTypeEnum.FTP.ToString())).ToList();
|
|
|
+ devices = devices.Where(x => !x.ProtocolType.Equals(ProtocalTypeEnum.FTP.ToString()) && x.State).ToList();
|
|
|
CcsTagValue tagQuery = new CcsTagValue();
|
|
|
List<CcsTagValue> tagValues = _ccsTagValueService.GetList(tagQuery);
|
|
|
- List<EquipmentMonitor> equipmentMonitors = await _equipmentMonitorService.GetList();
|
|
|
+ List<EquipmentMonitor> equipmentMonitors = new List<EquipmentMonitor>();
|
|
|
+ string redis_key = "IMCS_CCS:MonitorEquipmentStatusJob";
|
|
|
+ var data = await _redisService.Database.StringGetAsync(redis_key);
|
|
|
+ if (data.IsNullOrEmpty)
|
|
|
+ {
|
|
|
+ equipmentMonitors = await _equipmentMonitorService.GetList();
|
|
|
+ //首次设置redis
|
|
|
+ if (tagValues != null && tagValues.Count > 0)
|
|
|
+ {
|
|
|
+ await _redisService.Database.StringSetAsync(redis_key, JsonConvert.SerializeObject(equipmentMonitors));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ equipmentMonitors = JsonConvert.DeserializeObject<List<EquipmentMonitor>>(data);
|
|
|
+ }
|
|
|
+ //变化的设备
|
|
|
+ List<EquipmentMonitor> changeEquipmentMonitors = new List<EquipmentMonitor>();
|
|
|
foreach (EquipmentMonitor equipment in equipmentMonitors)
|
|
|
{
|
|
|
Device device = devices.Where(x => x.Ip.Equals(equipment.IP)).FirstOrDefault();
|
|
|
if (device == null)
|
|
|
{
|
|
|
- equipment.Status = "离线";
|
|
|
+ if(equipment.Status != "离线")
|
|
|
+ {
|
|
|
+ equipment.Status = "离线";
|
|
|
+ changeEquipmentMonitors.Add(equipment);
|
|
|
+ }
|
|
|
+
|
|
|
continue;
|
|
|
}
|
|
|
- else
|
|
|
- {
|
|
|
- if (equipment.Name == "机械手")
|
|
|
+ else if (equipment.Name == "机械手")
|
|
|
{
|
|
|
CcsTagValue ccsTagValue = tagValues.Where(x => x.Ip.Equals(equipment.IP) && x.Address.Equals(equipment.Address)).FirstOrDefault();
|
|
|
if (ccsTagValue != null)
|
|
|
{
|
|
|
if (ccsTagValue.TagValue == "3")
|
|
|
{
|
|
|
- equipment.Status = "报警";
|
|
|
+ if (equipment.Status != "报警")
|
|
|
+ {
|
|
|
+ equipment.Status = "报警";
|
|
|
+ changeEquipmentMonitors.Add(equipment);
|
|
|
+ }
|
|
|
+
|
|
|
continue;
|
|
|
}
|
|
|
}
|
|
@@ -925,21 +968,48 @@ namespace IMCS.CCS.Service.Impl
|
|
|
{
|
|
|
if (ccsTagValue2.TagValue == "9")
|
|
|
{
|
|
|
- equipment.Status = "报警";
|
|
|
+ if (equipment.Status != "报警")
|
|
|
+ {
|
|
|
+ equipment.Status = "报警";
|
|
|
+ changeEquipmentMonitors.Add(equipment);
|
|
|
+ }
|
|
|
continue;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
if (ccsTagValue2.TagValue == "0" || ccsTagValue2.TagValue == "3" || ccsTagValue2.TagValue == "6" || ccsTagValue2.TagValue == "8")
|
|
|
- {
|
|
|
- equipment.Status = "空闲";
|
|
|
+ {
|
|
|
+ if (equipment.Status != "空闲")
|
|
|
+ {
|
|
|
+ equipment.Status = "空闲";
|
|
|
+ changeEquipmentMonitors.Add(equipment);
|
|
|
+ }
|
|
|
continue;
|
|
|
+ }
|
|
|
+ if (equipment.Status != "生产中")
|
|
|
+ {
|
|
|
+ equipment.Status = "生产中";
|
|
|
+ changeEquipmentMonitors.Add(equipment);
|
|
|
}
|
|
|
- equipment.Status = "生产中";
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ if (equipment.Status != "在线")
|
|
|
+ {
|
|
|
+ equipment.Status = "在线";
|
|
|
+ changeEquipmentMonitors.Add(equipment);
|
|
|
}
|
|
|
}
|
|
|
- _equipmentMonitorService.Update(equipment);
|
|
|
-
|
|
|
+
|
|
|
+ }
|
|
|
+ //变化的修改 并且更新缓存
|
|
|
+ if(changeEquipmentMonitors != null)
|
|
|
+ {
|
|
|
+ foreach (EquipmentMonitor equipment in changeEquipmentMonitors)
|
|
|
+ {
|
|
|
+ await _equipmentMonitorService.Update(equipment);
|
|
|
+ }
|
|
|
+ await _redisService.Database.StringSetAsync(redis_key, JsonConvert.SerializeObject(equipmentMonitors));
|
|
|
|
|
|
}
|
|
|
return message;
|
|
@@ -961,7 +1031,20 @@ namespace IMCS.CCS.Service.Impl
|
|
|
try
|
|
|
{
|
|
|
string message = "";
|
|
|
- List<Device> devices = _deviceService.GetDeviceAllList();
|
|
|
+ List<Device> devices = new List<Device>();
|
|
|
+ List<Device> changeDevices = new List<Device>();
|
|
|
+ string redis_key = "IMCS_CCS:DeviceList";
|
|
|
+ var data = await _redisService.Database.StringGetAsync(redis_key);
|
|
|
+ if (data.IsNullOrEmpty)
|
|
|
+ {
|
|
|
+ devices = _deviceService.GetDeviceAllList();
|
|
|
+ await _redisService.Database.StringSetAsync(redis_key, JsonConvert.SerializeObject(devices));
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ devices = JsonConvert.DeserializeObject<List<Device>>(data);
|
|
|
+ }
|
|
|
+
|
|
|
//ftp不监控
|
|
|
devices = devices.Where(x => !x.ProtocolType.Equals(ProtocalTypeEnum.FTP.ToString())).ToList();
|
|
|
foreach (Device device in devices)
|
|
@@ -980,6 +1063,7 @@ namespace IMCS.CCS.Service.Impl
|
|
|
{
|
|
|
device.State = false;
|
|
|
await _deviceService.UpdateDevice(device);
|
|
|
+ changeDevices.Add(device);
|
|
|
}
|
|
|
s7.Close();
|
|
|
Log.Instance.WriteLogAdd("plc连接失败,或已离线", LOG_TITLE_DEVICE);
|
|
@@ -993,6 +1077,7 @@ namespace IMCS.CCS.Service.Impl
|
|
|
{
|
|
|
device.State = true;
|
|
|
await _deviceService.UpdateDevice(device);
|
|
|
+ changeDevices.Add(device);
|
|
|
}
|
|
|
s7.Close();
|
|
|
Log.Instance.WriteLogAdd("plc连接失败,或已离线", LOG_TITLE_DEVICE);
|
|
@@ -1007,6 +1092,7 @@ namespace IMCS.CCS.Service.Impl
|
|
|
{
|
|
|
device.State = false;
|
|
|
await _deviceService.UpdateDevice(device);
|
|
|
+ changeDevices.Add(device);
|
|
|
}
|
|
|
Log.Instance.WriteLogAdd("plc连接失败,或已离线", LOG_TITLE_DEVICE);
|
|
|
message = message + ",plc连接失败,plc连不上" + s7ex.Message + ",ip:" + device.Ip + ",协议类型:" + device.ProtocolType;
|
|
@@ -1031,6 +1117,7 @@ namespace IMCS.CCS.Service.Impl
|
|
|
if (oldDevice.State)
|
|
|
{
|
|
|
await _deviceService.UpdateDevice(device);
|
|
|
+ changeDevices.Add(device);
|
|
|
}
|
|
|
Log.Instance.WriteLogAdd("OPCUA连接异常,或已离线,ip:" + device.Ip + ",协议类型:" + device.ProtocolType, LOG_TITLE_OPCUA);
|
|
|
message = message + ",OPCUA连接异常,或以离线,ip:" + device.Ip + ",协议类型:" + device.ProtocolType; ;
|
|
@@ -1040,6 +1127,7 @@ namespace IMCS.CCS.Service.Impl
|
|
|
{
|
|
|
device.State = true;
|
|
|
await _deviceService.UpdateDevice(device);
|
|
|
+ changeDevices.Add(device);
|
|
|
Log.Instance.WriteLogAdd("OPCUA连接成功,ip:" + device.Ip + ",协议类型:" + device.ProtocolType, LOG_TITLE_DEVICE);
|
|
|
continue;
|
|
|
}
|
|
@@ -1051,6 +1139,7 @@ namespace IMCS.CCS.Service.Impl
|
|
|
{
|
|
|
device.State = false;
|
|
|
await _deviceService.UpdateDevice(device);
|
|
|
+ changeDevices.Add(device);
|
|
|
}
|
|
|
Log.Instance.WriteLogAdd("OPCUA连接异常,或以离线" + opcex.Message + ",ip:" + device.Ip + ", 协议类型: " + device.ProtocolType, LOG_TITLE_DEVICE);
|
|
|
continue;
|
|
@@ -1071,6 +1160,7 @@ namespace IMCS.CCS.Service.Impl
|
|
|
{
|
|
|
device.State = false;
|
|
|
await _deviceService.UpdateDevice(device);
|
|
|
+ changeDevices.Add(device);
|
|
|
}
|
|
|
Log.Instance.WriteLogAdd("Fanuc连接异常,或已离线,ip:" + device.Ip + ",协议类型:" + device.ProtocolType, LOG_TITLE_OPCUA);
|
|
|
message = message + ",Fanuc连接异常,或以离线,ip:" + device.Ip + ",协议类型:" + device.ProtocolType; ;
|
|
@@ -1083,6 +1173,7 @@ namespace IMCS.CCS.Service.Impl
|
|
|
{
|
|
|
device.State = true;
|
|
|
await _deviceService.UpdateDevice(device);
|
|
|
+ changeDevices.Add(device);
|
|
|
}
|
|
|
Log.Instance.WriteLogAdd("Fanuc连接成功,ip:" + device.Ip + ",协议类型:" + device.ProtocolType, LOG_TITLE_DEVICE);
|
|
|
continue;
|
|
@@ -1095,12 +1186,17 @@ namespace IMCS.CCS.Service.Impl
|
|
|
{
|
|
|
device.State = false;
|
|
|
await _deviceService.UpdateDevice(device);
|
|
|
+ changeDevices.Add(device);
|
|
|
}
|
|
|
Log.Instance.WriteLogAdd("Fanuc连接异常,或以离线" + opcex.Message + ",ip:" + device.Ip + ", 协议类型: " + device.ProtocolType, LOG_TITLE_DEVICE);
|
|
|
continue;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+ if(changeDevices != null)
|
|
|
+ {
|
|
|
+ await _redisService.Database.StringSetAsync(redis_key, JsonConvert.SerializeObject(devices));
|
|
|
+ }
|
|
|
return message;
|
|
|
}
|
|
|
catch (Exception ex)
|