From 94e4e5b9fd3da964c44b7b14227d6fe2bbb426d7 Mon Sep 17 00:00:00 2001 From: WJC <wjc@hdlchina.com.cn> Date: 星期四, 02 四月 2020 13:56:39 +0800 Subject: [PATCH] 2020-04-02-2 --- ZigbeeApp/Shared/Phone/Device/AC/ACControl.cs | 185 ++++++++++++++++++++++++++-------------------- 1 files changed, 105 insertions(+), 80 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/Device/AC/ACControl.cs b/ZigbeeApp/Shared/Phone/Device/AC/ACControl.cs index 64f1430..04908bc 100755 --- a/ZigbeeApp/Shared/Phone/Device/AC/ACControl.cs +++ b/ZigbeeApp/Shared/Phone/Device/AC/ACControl.cs @@ -13,7 +13,7 @@ /// <summary> /// The action. /// </summary> - public Action action; + public Action<CommonDevice, Common.Room> action; /// <summary> /// 鏀惰棌鎸夐挳 @@ -22,7 +22,7 @@ /// <summary> /// 浼犺繃鏉ョ殑璁惧 /// </summary> - private DeviceUI device; + private CommonDevice device; /// <summary> /// 浼犺繃鏉ョ殑鎴块棿 /// </summary> @@ -125,15 +125,7 @@ #endregion #region 鈼� 鎺ュ彛___________________________ - /// <summary> - /// 澶勭悊鍙樺寲浜嬩欢 --灏嗗純鐢� 鏀圭敤DeviceInfoChange() - /// </summary> - /// <returns>The changed.</returns> - /// <param name="common">Common.</param> - public void Changed(CommonDevice common) - { - } /// <summary> /// 璁惧鐘舵�佹洿鏂版帴鍙� /// <para>type锛氬鏋滀负 DeviceInComingRespon:璁惧鏂颁笂鎶�</para> @@ -153,11 +145,11 @@ try { var deviceUI = device; - if (deviceUI.CommonDevice == null) + if (deviceUI == null) { return; } - if (deviceUI.CommonDevice.DeviceEpoint != common.DeviceEpoint || deviceUI.CommonDevice.DeviceAddr != common.DeviceAddr) + if (deviceUI.DeviceEpoint != common.DeviceEpoint || deviceUI.DeviceAddr != common.DeviceAddr) { return; } @@ -169,20 +161,18 @@ { return; } - deviceUI.CommonDevice.DeviceStatusReport = common.DeviceStatusReport; + deviceUI.DeviceStatusReport = common.DeviceStatusReport; foreach(var attList in attriButeList) { - var curTemp = (attList.AttriButeData / 100 < ACControlBase.Temperature_High && attList.AttriButeData / 100 > ACControlBase.Temperature_Low) ? attList.AttriButeData / 100 : ACControlBase.Temperature_Default; switch (attList.AttributeId) { case 0: - ac.currentLocalTemperature = curTemp; + ac.currentLocalTemperature = attList.AttriButeData / 100; ac.LastDateTime = DateTime.Now; indoorTemperatureBtn.Text = $"{Language.StringByID(R.MyInternationalizationString.Current)} {ac.currentLocalTemperature} 鈩�"; - //currentTemperatureBtn.Text = $"{ac.currentLocalTemperature} 鈩�"; break; case 17: - ac.currentCoolingSetpoint = curTemp; + ac.currentCoolingSetpoint = attList.AttriButeData / 100; if (ac.currentSystemMode == 3 || ac.currentSystemMode == 8) { mArcScaleSeekBar.Progress = ac.currentCoolingSetpoint; @@ -190,7 +180,7 @@ ac.LastDateTime = DateTime.Now; break; case 18: - ac.currentHeatingSetpoint = curTemp; + ac.currentHeatingSetpoint = attList.AttriButeData / 100; if (ac.currentSystemMode == 4) { mArcScaleSeekBar.Progress = ac.currentHeatingSetpoint; @@ -198,7 +188,7 @@ ac.LastDateTime = DateTime.Now; break; case 4096: - ac.currentAutoSetpoint = curTemp; + ac.currentAutoSetpoint = attList.AttriButeData / 100; if (ac.currentSystemMode == 1) { mArcScaleSeekBar.Progress = ac.currentAutoSetpoint; @@ -217,6 +207,8 @@ fanModeBtn.IsSelected = false; FanSwingModeBtn.IsSelected = false; mArcScaleSeekBar.SetProgressBarColors(ZigbeeColor.Current.GXCWaveSeekBarUnSelectedColor, ZigbeeColor.Current.GXCWaveSeekBarUnSelectedColor); + //濡傛灉鏄叧闂┖璋冪殑璇�,鐩存帴鍙樻殫鍗冲彲 + return; } else if (ac.currentSystemMode == 1 || ac.currentSystemMode == 3 || ac.currentSystemMode == 4 || ac.currentSystemMode == 7 || ac.currentSystemMode == 8) { @@ -236,14 +228,6 @@ //杩囪檻缃戞竻娲楁爣蹇�:42 ac.CleanStatu = attList.AttriButeData == 42; cleanStatu.Visible = ac.CleanStatu; - break; - case 4099: - var value = Convert.ToString(attList.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; } } @@ -299,16 +283,16 @@ { var deviceUI = device; //璁惧涓虹┖ - if (deviceUI.CommonDevice == null) + if (deviceUI == null) { return; } //鏄惁涓哄綋鍓嶈澶� - if (deviceUI.CommonDevice.DeviceEpoint != common.DeviceEpoint || deviceUI.CommonDevice.DeviceAddr != common.DeviceAddr) + if (deviceUI.DeviceEpoint != common.DeviceEpoint || deviceUI.DeviceAddr != common.DeviceAddr) { return; } - if (deviceUI.CommonDevice.Type == DeviceType.Thermostat) + if (deviceUI.Type == DeviceType.Thermostat) { ac.IsOnline = common.IsOnline; ac.LastDateTime = DateTime.Now; @@ -321,22 +305,7 @@ }); } } - /// <summary> - /// Changeds the IL ogic status. - /// </summary> - /// <param name="logic">Logic.</param> - public void ChangedILogicStatus(ZigBee.Device.Logic logic) - { - //throw new NotImplementedException(); - } - /// <summary> - /// Changeds the IS cene status. - /// </summary> - /// <param name="scene">Scene.</param> - public void ChangedISceneStatus(Scene scene) - { - //throw new NotImplementedException(); - } + #endregion #region 鈼� 鏋勯�犳柟娉昣_______________________ @@ -362,8 +331,8 @@ public override void RemoveFromParent() { ZigBee.Device.ZbGateway.StatusList.Remove(this); - //action(); - //action = null; + action(device, room); + action = null; RemoveUpdateControlDeviceStatuAction(); HomePage.Instance.ScrollEnabled = true; if (IsDrawerLockMode) @@ -382,12 +351,12 @@ /// </summary> /// <param name="dev">Device.</param> /// <param name="room">Room.</param> - public void Show(DeviceUI dev, Shared.Common.Room room) + public void Show(CommonDevice dev, Shared.Common.Room room) { device = dev; - zbGateway = this.device.CommonDevice.Gateway; + zbGateway = this.device.Gateway; this.room = room; - this.ac = device.CommonDevice as ZigBee.Device.AC; + this.ac = device as ZigBee.Device.AC; AddTop(); AddBodyView(device); @@ -401,7 +370,7 @@ //鍙戦�佽鍙栫姸鎬佸懡浠� UserView.UserHomeView.ReadStatus(ac, () => { - ReadDeviceAttributeLogic.Instance.SendACStatuComand(device.CommonDevice); + ReadDeviceAttributeLogic.Instance.SendACStatuComand(device); }); } else @@ -409,12 +378,11 @@ //闃叉鐭椂闂村唴澶氭璇诲彇璁惧鐘舵�� if ((DateTime.Now - ac.LastDateTime).TotalSeconds > CommonPage.ReadDeviceStatuSpan) { - ReadDeviceAttributeLogic.Instance.SendACStatuComand(device.CommonDevice); + ReadDeviceAttributeLogic.Instance.SendACStatuComand(device); } } - var de = Shared.Common.Room.LoveRoomDeviceUIFilePathList.Find((obj) => obj == device.FileName); - if (de == null) + if (UserCenter.HdlRoomLogic.Current.IsCollectInRoom(device)==false) { collectionBtn.IsSelected = false; } @@ -458,7 +426,7 @@ /// <summary> /// AddBodyView /// </summary> - public void AddBodyView(DeviceUI device) + public void AddBodyView(CommonDevice device) { bodyFrameLayout = new FrameLayout() { @@ -501,7 +469,7 @@ Width = Application.GetRealWidth(600), Height = Application.GetRealHeight(60), Gravity = Gravity.CenterHorizontal, - Text = device.CommonDevice.DeviceEpointName, + Text = Common.LocalDevice.Current.GetDeviceEpointName(device), TextColor = ZigbeeColor.Current.GXCTextBlackColor, TextSize = 15, IsBold=true @@ -520,18 +488,27 @@ }; itemView.AddChidren(indoorTemperatureBtn); - mArcScaleSeekBar = new ArcScaleSeekBar + var mArcScaleSeekBarFL = new FrameLayout { Y = Application.GetRealHeight(412), - Width = Application.GetRealWidth(671), - Height = Application.GetRealHeight(671), + Width = Application.GetMinRealAverage(671), + Height = Application.GetMinRealAverage(671), + Gravity = Gravity.CenterHorizontal + }; + itemView.AddChidren(mArcScaleSeekBarFL); + + mArcScaleSeekBar = new ArcScaleSeekBar + { + Width = Application.GetMinRealAverage(671), + Height = Application.GetMinRealAverage(671), Gravity = Gravity.CenterHorizontal, MinValue = ACControlBase.Temperature_Low, MaxValue = ACControlBase.Temperature_High, Progress = ACControlBase.GetCurrentModeTemperature(ac), - IsClickable = ACControlBase.IsOpen(ac) + IsClickable = ACControlBase.IsOpen(ac), + ProgressBarUnitSring = string.Empty }; - itemView.AddChidren(mArcScaleSeekBar); + mArcScaleSeekBarFL.AddChidren(mArcScaleSeekBar); if(ACControlBase.IsOpen(ac)) { mArcScaleSeekBar.SetProgressBarColors(ZigbeeColor.Current.GXCArcScaleSeekBarStartColor, ZigbeeColor.Current.GXCArcScaleSeekBarEndColor); @@ -561,35 +538,47 @@ currentModeBtn = new Button() { - Y = Application.GetRealHeight(565), - Height = Application.GetRealHeight(80), + Y = Application.GetMinRealAverage(187), + Height = Application.GetRealHeight(50), Width = Application.GetRealWidth(200), TextColor = ZigbeeColor.Current.GXCTextBlackColor, Gravity = Gravity.CenterHorizontal, Text = ACControlBase.GetModeNameByModeId(ac.currentSystemMode), - TextSize=12 + TextSize = 12 }; - itemView.AddChidren(currentModeBtn); + mArcScaleSeekBarFL.AddChidren(currentModeBtn); reduceTemperatureBtn = new Button() { - X = Application.GetRealWidth(268), - Y = Application.GetRealHeight(650), + X = Application.GetMinRealAverage(132), + Y = Application.GetMinRealAverage(268), Width = Application.GetMinRealAverage(80), Height = Application.GetMinRealAverage(80), UnSelectedImagePath = "AC/Reduce.png" }; - itemView.AddChidren(reduceTemperatureBtn); + mArcScaleSeekBarFL.AddChidren(reduceTemperatureBtn); addTemperatureBtn = new Button() { - X = Application.GetRealWidth(610), - Y = Application.GetRealHeight(650), + X = Application.GetMinRealAverage(452), + Y = Application.GetMinRealAverage(268), Width = Application.GetMinRealAverage(80), Height = Application.GetMinRealAverage(80), UnSelectedImagePath = "AC/Add.png" }; - itemView.AddChidren(addTemperatureBtn); + mArcScaleSeekBarFL.AddChidren(addTemperatureBtn); + + var uintBtn = new Button + { + Y = Application.GetMinRealAverage(369), + Height = Application.GetRealHeight(60), + Width = Application.GetRealWidth(100), + TextColor = ZigbeeColor.Current.GXCTextBlackColor, + Gravity = Gravity.CenterHorizontal, + Text = "鈩�", + TextSize = 18 + }; + mArcScaleSeekBarFL.AddChidren(uintBtn); FanSwingModeBtn = new Button() { @@ -601,7 +590,6 @@ SelectedImagePath = ACControlBase.GetFanSwingModeSelectedImagePathByFanSwingModeId(ac.currentFanSwingMode), IsSelected = ACControlBase.IsOpen(ac) }; - itemView.AddChidren(FanSwingModeBtn); modeBtn = new Button() { @@ -638,6 +626,18 @@ IsSelected = ACControlBase.IsOpen(ac) }; itemView.AddChidren(fanModeBtn); + + if (ac.UseSwingFunction) + { + itemView.AddChidren(FanSwingModeBtn); + } + else + { + modeBtn.X = Application.GetRealWidth(207); + switchBtn.X = Application.GetRealWidth(444); + fanModeBtn.X = Application.GetRealWidth(677); + } + var roomBG = new Button { @@ -881,6 +881,12 @@ /// <param name="mouseEventArgs">The ${ParameterType} instance containing the event data.</param> private void ShowChangeMode_MouseUpEvent(object sender, MouseEventArgs mouseEventArgs) { + if (HadSupportModel() == false) + { + CommonFormResouce.ShowTip(Language.StringByID(R.MyInternationalizationString.AC_Model_None)); + return; + } + int modeItem_X = 80; int modeItem_Height = 150; int modeItem_Width = 449; @@ -1051,13 +1057,32 @@ ACControlBase.ShowACIsCloseTip(); return; } - modeBtn.IsSelected = true; + modeBtn.SelectedImagePath = ACControlBase.GetModeSelectedImagePathByMode(acMode); - modeBtn.UnSelectedImagePath = ACControlBase.GetModeUnSelectedImagePathByMode(acMode); + modeBtn.UnSelectedImagePath = ACControlBase.GetModeUnSelectedImagePathByMode(acMode); + modeBtn.IsSelected = true; currentModeBtn.Text = ACControlBase.GetModeNameByMode(acMode); ac.currentSystemMode = (int)acMode; mArcScaleSeekBar.Progress = ACControlBase.GetCurrentModeTemperature(ac); ac.SetSystemModeAsync(acMode); + } + + /// <summary> + /// 鏄惁閰嶇疆浜嗘ā寮� + /// </summary> + /// <returns></returns> + private bool HadSupportModel() + { + bool hadMode = false; + foreach (var m in ac.listSupportMode) + { + if (m == 1) + { + hadMode = true; + break; + } + } + return hadMode; } #endregion @@ -1356,7 +1381,7 @@ return; } var tempDevice = (CommonDevice)objValue; - if (tempDevice.DeviceEpoint != this.device.CommonDevice.DeviceEpoint || tempDevice.DeviceAddr != this.device.CommonDevice.DeviceAddr) + if (tempDevice.DeviceEpoint != this.device.DeviceEpoint || tempDevice.DeviceAddr != this.device.DeviceAddr) { //涓嶆槸褰撳墠璁惧鐨勬帹閫侊紝鍒欎笉澶勭悊 return; @@ -1393,9 +1418,9 @@ UserView.HomePage.Instance.AddChidren(detailInfo); UserView.HomePage.Instance.PageIndex += 1; detailInfo.Show(device, room); - detailInfo.EditAction = (d,r) => + detailInfo.EditAction += (curDev, curRoom) => { - Show(device, room); + Show(curDev, curRoom); }; } @@ -1412,12 +1437,12 @@ { if (collectionBtn.IsSelected) { - Shared.Common.Room.Lists[0].DeleteDevice(device.FileName); + UserCenter.HdlRoomLogic.Current.DeleteLoveDevice(device); collectionBtn.IsSelected = false; } else { - Shared.Common.Room.Lists[0].AddDevice(device.FileName); + UserCenter.HdlRoomLogic.Current.AddLoveDevice(device); collectionBtn.IsSelected = true; } } -- Gitblit v1.8.0