Răsfoiți Sursa

增加获取参数调节数据接口

MIke 2 ani în urmă
părinte
comite
f59601d6a2
1 a modificat fișierele cu 32 adăugiri și 2 ștergeri
  1. 32 2
      Service/DeviceService.cs

+ 32 - 2
Service/DeviceService.cs

@@ -1087,10 +1087,15 @@ namespace WingDeviceService.Service
             var notify = new DeviceParametersNotification()
             {
                 DeviceCode = deviceCode,
-                ProbeApplication = request.ProbeApplication,
-                Parameter = request.Parameter,
                 IsResponse = true
             };
+            CacheMaintenance.Instance.Get<IControllingParametersManager>().Remove(deviceCode);
+            CacheMaintenance.Instance.Get<IControllingParametersManager>().Add(new CacheControllingParameter()
+            {
+                Code = deviceCode,
+                ProbeApplication = Newtonsoft.Json.JsonConvert.SerializeObject(request.ProbeApplication),
+                Parameter = Newtonsoft.Json.JsonConvert.SerializeObject(request.Parameter),
+            });
             var notificationRequest = new SendNotificationRequest()
             {
                 ClientId = userCode,
@@ -1105,6 +1110,31 @@ namespace WingDeviceService.Service
             return true;
         }
 
+        /// <summary>
+        /// 获取设备参数调节数据请求
+        /// </summary>
+        /// <param name="request"></param>
+        /// <returns></returns>
+        public async Task<DeviceControlParameterDataDTO> GetControlParametersAsync(GetControlParametersRequest request)
+        {
+            var deviceCode = request.DeviceCode;
+            //检查设备编码不为空
+            if (string.IsNullOrWhiteSpace(deviceCode))
+            {
+                ThrowCustomerException(CustomerRpcCode.DeviceCodeIsEmpty, "Required parameter:DeviceCode cannot be empty");
+            }
+            var controlParameterData = CacheMaintenance.Instance.Get<IControllingParametersManager>().Get(request.DeviceCode);
+            if (controlParameterData != null)
+            {
+                return new DeviceControlParameterDataDTO()
+                {
+                    DeviceCode = controlParameterData.Code,
+                    ProbeApplication = controlParameterData.ProbeApplication,
+                    Parameter = controlParameterData.Parameter
+                };
+            }
+            return null;
+        }
         /// <summary>
         /// 用户进入设备直播房间
         /// </summary>