2
wei
2021-03-09 d41f1d4a478c1afcc43f3a5abb0ba76e376bc7c1
HDL_ON/UI/UI0-Stan/Logic/HdlDeviceStatuPushLogic.cs
@@ -38,19 +38,34 @@
        /// 设备状态更新
        /// </summary>
        /// <param name="updateData">云端推送的更新数据</param>
        public Function UpdateDeviceStatu(AlinkControlData updateData)
        public Function UpdateDeviceStatu(string sId ,List<AttributesStatus> updateData)
        {
            var localDevice = FunctionList.List.electricals.Find((obj) => obj.sid == updateData.sid);
            var localDevice = FunctionList.List.GetDeviceFunctionList().Find((obj) => obj.sid == sId);
            if (localDevice != null)
            {
                foreach (var attr in updateData.status)
                {
                    var localAttr = localDevice.attributes.Find((obj) => obj.key == attr.key);
                    if (localAttr != null)
                    {
                        //更改属性值
                        localAttr.curValue = attr.value;
                    }
                foreach (var attr in updateData)
                {
                    //var localAttr2 = localDevice.attributes.Find((obj) => obj.key == attr.key);
                    //if (localAttr2 == null)
                    //{
                    //    //本身它就没有这个属性,则不处理
                    //    continue;
                    //}
                    ////更改属性值
                    //localAttr2.curValue = attr.value;
                    //var localAttr = localDevice.status.Find((obj) => obj.key == attr.key);
                    //if (localAttr == null)
                    //{
                    //    //status是当前设备上报过的属性才会存在,也就是它的个数有可能和attributes不一致
                    //    localAttr = new AttributesStatus() { key = attr.key, value = attr.value };
                    //    localDevice.status.Add(localAttr);
                    //}
                    ////更改属性值
                    //localAttr.value = attr.value;
                    localDevice.SetAttrState(attr.key, attr.value);
                }
                //全部界面推送
                HdlFormLogic.Current.DeviceStatuPush(localDevice);