gxc
2019-11-29 ac334861efbf06933e95c62ced0484410f34bece
ZigbeeApp/Shared/Phone/Device/Category/Category.cs
@@ -7,6 +7,7 @@
using Shared.Phone.Device.CommonForm;
using Shared.Phone.Device.AC;
using Shared.Phone.UserCenter.DoorLock;
using Shared.Phone.Device.DeviceLogic;
namespace Shared.Phone.Device.Category
{
@@ -282,6 +283,20 @@
                                                //此属性描述恒温设备正处于哪种模式
                                                ac.currentSystemMode = attriButeList[0].AttriButeData;
                                                ac.LastDateTime = DateTime.Now;
                                                break;
                                            case 4099:
                                                var value = Convert.ToString(attriButeList[0].AttriButeData, 2).PadLeft(16, '0');
                                                var modeStr = value.Substring(value.Length - 5, 5);
                                                for (int j = 0; j < modeStr.Length; j++)
                                                {
                                                    ac.listSupportMode[j] = Convert.ToInt32(modeStr[j]) == 49 ? 1 : 0;
                                                }
                                                break;
                                            case 4097:
                                                //过虑网清洗标志:42
                                                ac.CleanStatu = attriButeList[0].AttriButeData == 42;
                                                break;
                                        }
@@ -611,9 +626,10 @@
            var floors = new SelectFloor ();
            AddChidren(floors);
            floors.Init(580,330,Direction.Right);
            floors.FloorAction += (floorName) =>
            floors.changeFloor = true;
            floors.FloorAction += (floorId) =>
            {
                floorBtn.Text = floorName;
                floorBtn.Text = Config.Instance.Home.GetFloorNameById(floorId);
                RefreshBodyView();
            };
        }
@@ -813,6 +829,7 @@
                    BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor
                };
                functionSceneBodyView.AddChidren(functionTypeScrowView);
                //functionSceneBodyView.SetCornerWithSameRadius(Application.GetRealHeight(50), HDLUtils.RectCornerBottomLeft);
                deviceListScrolView = new VerticalScrolViewLayout
                {
@@ -823,6 +840,8 @@
                    BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor
                };
                functionSceneBodyView.AddChidren(deviceListScrolView);
                //deviceListScrolView.SetCornerWithSameRadius(Application.GetRealHeight(50), HDLUtils.RectCornerTopLeft);
                tempFunctionTypeBtn = new FunctionButton();
                EventHandler<MouseEventArgs> ShowSameTypeFunction = (object typeSender, MouseEventArgs mouseEventArgs) =>
@@ -892,8 +911,7 @@
                            {
                                UserHomeView.ReadStatus(light, () =>
                                {
                                    light.ReadOnOffStatus();
                                    light.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch);
                                    ReadDeviceAttributeLogic.Instance.SendLightStatuComand(deviceUI.CommonDevice);
                                });
                            }
                            else
@@ -901,8 +919,7 @@
                                //防止短时间内多次读取状态
                                if (CommonPage.ReadDeviceStatuSpan < (DateTime.Now - light.LastDateTime).TotalSeconds)
                                {
                                    light.ReadOnOffStatus();
                                    light.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch);
                                    ReadDeviceAttributeLogic.Instance.SendLightStatuComand(deviceUI.CommonDevice);
                                }
                            }
@@ -1011,16 +1028,14 @@
                            {
                                UserHomeView.ReadStatus(airSwitch, () =>
                                {
                                    airSwitch.ReadOnOffStatus();
                                    airSwitch.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch);
                                    ReadDeviceAttributeLogic.Instance.SendLightStatuComand(deviceUI.CommonDevice);
                                });
                            }
                            else
                            {
                                if ((DateTime.Now - airSwitch.LastDateTime).TotalSeconds > CommonPage.ReadDeviceStatuSpan)
                                {
                                    airSwitch.ReadOnOffStatus();
                                    airSwitch.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch);
                                    ReadDeviceAttributeLogic.Instance.SendLightStatuComand(deviceUI.CommonDevice);
                                }
                            }
@@ -1111,18 +1126,14 @@
                            {
                                UserHomeView.ReadStatus(dimmableLight, () =>
                                {
                                    dimmableLight.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch);
                                    dimmableLight.ReadOnOffStatus();
                                    dimmableLight.ReadLevel();
                                    ReadDeviceAttributeLogic.Instance.SendDimmableLightStatuComand(deviceUI.CommonDevice);
                                });
                            }
                            else
                            {
                                if ((DateTime.Now - dimmableLight.LastDateTime).TotalSeconds > CommonPage.ReadDeviceStatuSpan)
                                {
                                    dimmableLight.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch);
                                    dimmableLight.ReadOnOffStatus();
                                    dimmableLight.ReadLevel();
                                    ReadDeviceAttributeLogic.Instance.SendDimmableLightStatuComand(deviceUI.CommonDevice);
                                }
                            }
@@ -1215,14 +1226,7 @@
                                //发送读取状态命令
                                UserView.UserHomeView.ReadStatus(ac, () =>
                                {
                                    ac.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch);
                                    ac.ReadLocalTemperature();
                                    ac.ReadCoolingSetpoint();
                                    ac.ReadHeatingSetpoint();
                                    ac.ReadAutoSetpoint();
                                    ac.ReadFanMode();
                                    ac.ReadSystemMode();
                                    ac.ReadSystemFansSwingMode();
                                    ReadDeviceAttributeLogic.Instance.SendACStatuComand(deviceUI.CommonDevice);
                                });
                            }
                            else
@@ -1230,20 +1234,13 @@
                                //防止短时间内多次读取设备状态
                                if ((DateTime.Now - ac.LastDateTime).TotalSeconds > CommonPage.ReadDeviceStatuSpan)
                                {
                                    ac.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch);
                                    ac.ReadLocalTemperature();
                                    ac.ReadCoolingSetpoint();
                                    ac.ReadHeatingSetpoint();
                                    ac.ReadAutoSetpoint();
                                    ac.ReadFanMode();
                                    ac.ReadSystemMode();
                                    ac.ReadSystemFansSwingMode();
                                    ReadDeviceAttributeLogic.Instance.SendACStatuComand(deviceUI.CommonDevice);
                                }
                            }
                            var deviceTypeRowLayout = new RowLayout()
                            {
                                Height = Application.GetRealHeight(127 + 35),
                                Height = Application.GetRealHeight(129 + 35),
                                LineColor = ZigbeeColor.Current.GXCBackgroundColor,
                                Tag = deviceUI
                            };
@@ -1328,8 +1325,7 @@
                            {
                                UserHomeView.ReadStatus(rollerShade, () =>
                                {
                                    rollerShade.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch);
                                    rollerShade.ReadWcdCurrentPositionLiftPercentage();
                                    ReadDeviceAttributeLogic.Instance.SendCurtainStatuComand(deviceUI.CommonDevice);
                                });
                            }
                            else
@@ -1337,8 +1333,7 @@
                                //防止短时间内多次读取
                                if ((DateTime.Now - rollerShade.LastDateTime).TotalSeconds > CommonPage.ReadDeviceStatuSpan)
                                {
                                    rollerShade.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch);
                                    rollerShade.ReadWcdCurrentPositionLiftPercentage();
                                    ReadDeviceAttributeLogic.Instance.SendCurtainStatuComand(deviceUI.CommonDevice);
                                }
                            }
@@ -1554,6 +1549,8 @@
                    BorderWidth = 1
                };
                row.AddChidren(roomBtn);
                roomBtn.SetViewShadow(true,5);
                if (room.IsLove)
                {
                    roomBtn.IsSelected = true;
@@ -1687,18 +1684,17 @@
                        {
                            if (delayScenesListResponseInfo.ScenesId == sceneView.scene.Id)
                            {
                                var times = delayScenesListResponseInfo.RemainTime;
                                sceneView.scene.RemainTime = times;
                                sceneView.scene.RemainTime = delayScenesListResponseInfo.RemainTime;
                                new System.Threading.Thread(() =>
                                {
                                    while (times > 0)
                                    while (sceneView.scene.RemainTime > 0)
                                    {
                                        System.Threading.Thread.Sleep(1000);
                                        Application.RunOnMainThread(() =>
                                        {
                                            sceneView.SetTimeText(CommonFormResouce.GetTimeString(times));
                                            sceneView.SetTimeText(CommonFormResouce.GetTimeString(sceneView.scene.RemainTime));
                                        });
                                        times -= 1;
                                        sceneView.scene.RemainTime -= 1;
                                    }
                                    Application.RunOnMainThread(() =>
                                    {
@@ -1716,8 +1712,19 @@
            { IsBackground = true }.Start();
        }
        #endregion
        /// <summary>
        /// GetExecScene
        /// </summary>
        /// <param name="scrolViewLayout"></param>
        private void GetExecScene(VerticalScrolViewLayout scrolViewLayout)
        {
            new System.Threading.Thread(() =>
            {
            })
            { IsBackground = true }.Start();
        }
        #endregion
        #region ◆ 自动化__________________________