From e5f993f52e09eb46878baced83bb8492f147d41c Mon Sep 17 00:00:00 2001 From: WJC <wjc@hdlchina.com.cn> Date: 星期一, 04 十一月 2019 17:58:40 +0800 Subject: [PATCH] 2019-11-04-1 --- ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceMacInfoEditorForm.cs | 385 ++++++++++++++++++++++++++++++++++++++++-------------- 1 files changed, 283 insertions(+), 102 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceMacInfoEditorForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceMacInfoEditorForm.cs index 84aa6f9..d2b5697 100755 --- a/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceMacInfoEditorForm.cs +++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceMacInfoEditorForm.cs @@ -83,14 +83,15 @@ this.ClearBodyFrame(); //鍒濆鍖栨甯� - this.InitFrameTable(); + var tableContr = new InformationEditorControl(); + this.listview = tableContr.InitControl(bodyFrameLayout, Language.StringByID(R.MyInternationalizationString.uInfoEditor), 369, 1368); //鍥剧墖 - var btnPic = new DeviceInfoIconControl(listNewDevice[0]); + var btnPic = new DeviceInfoIconControl(); btnPic.Y = Application.GetRealHeight(92); btnPic.Gravity = Gravity.CenterHorizontal; bodyFrameLayout.AddChidren(btnPic); - btnPic.InitControl(); + btnPic.InitControl(listNewDevice[0]); //璁惧澶囨敞 string caption = Language.StringByID(R.MyInternationalizationString.uDeviceNote); @@ -124,17 +125,46 @@ //鍒掔嚎 btnType.AddBottomLine(); + //鎵�灞炲尯鍩� + var rowBeloneArea = new BelongAreaControl(listview.rowSpace / 2); + listview.AddChidren(rowBeloneArea); + rowBeloneArea.InitControl(Language.StringByID(R.MyInternationalizationString.uBelongArea), this.listNewDevice); + //搴曠嚎 + rowBeloneArea.AddBottomLine(); + + var listCheck = new List<string>(); + rowBeloneArea.SelectRoomEvent += (roomKeys) => + { + foreach (var device in this.listNewDevice) + { + //淇濆瓨杩欎釜璁惧灞炰簬鍝釜鍖哄煙 + device.DeviceRoomId = roomKeys; + device.ReSave(); + var room = Room.CurrentRoom.GetRoomByDevice(device); + string mainKeys = LocalDevice.Current.GetDeviceMainKeys(device); + if (room == null) + { + //杩欓噷鏈夌偣鐗规畩,濡傛灉鍥炶矾娌℃湁璁剧疆鏈夊尯鍩熺殑鏃跺��,鎵嶈缃� + listCheck.Add(mainKeys); + Room.CurrentRoom.ChangedRoom(device, roomKeys); + } + else if (listCheck.Contains(mainKeys) == true) + { + //濡傛灉杩欎釜鍥炶矾涔嬪墠閮借繕娌℃湁鍖哄煙,鍦ㄦ湰鐣岄潰杩樻病鏈夊叧闂箣鍓�,鍙互鏃犳潯浠堕殢渚垮彉鏇� + Room.CurrentRoom.ChangedRoom(device, roomKeys); + } + } + }; + //娣诲姞鍏ㄩ儴鑿滃崟 this.AddAllMenuRow(); + //鍒濆鍖栨甯冨畬鎴� + tableContr.FinishInitControl(bodyFrameLayout, this.listview); + tableContr = null; + //淇濆瓨 var btnFinish = new BottomClickButton(); - //鍊熺敤Y杞村潗鏍�(璁╄繖涓尯鍩熶笉鑳界偣鍑昏彍鍗�) - var frameBack = new FrameLayout(); - frameBack.Y = btnFinish.Yaxis; - frameBack.Height = bodyFrameLayout.Height - btnFinish.Yaxis; - bodyFrameLayout.AddChidren(frameBack); - btnFinish.TextID = R.MyInternationalizationString.uSave; bodyFrameLayout.AddChidren(btnFinish); btnFinish.ButtonClickEvent += (sender, e) => @@ -155,53 +185,6 @@ this.CloseForm(); } }; - - var realHeight = listview.GetChildren(0).Height * listview.ChildrenCount; - if (bodyFrameLayout.Height - btnFinish.Yaxis + realHeight > listview.Height) - { - //淇冧娇琚尅浣忕殑鑿滃崟鑳藉鍚戜笂婊戝姩 - var frameTemp = new FrameLayout(); - frameTemp.Height = frameBack.Height + Application.GetRealHeight(115); - listview.AddChidren(frameTemp); - } - } - - #endregion - - #region 鈻� 鍒濆鍖栨甯僟________________________ - - /// <summary> - /// 鍒濆鍖栨甯� - /// </summary> - private void InitFrameTable() - { - //寮у害鐨勫渾鐨勪竴鍗婄殑楂樺害(鍥哄畾) - int halfRoundHeigth = Application.GetRealHeight(116) / 2; - //寮у害鐨勫渾 - var btnRound = new NormalViewControl(bodyFrameLayout.Width, halfRoundHeigth * 2, false); - btnRound.Y = Application.GetRealHeight(369); - btnRound.BackgroundColor = UserCenterColor.Current.White; - btnRound.Radius = (uint)halfRoundHeigth; - bodyFrameLayout.AddChidren(btnRound); - //鏄庣粏鍒楄〃鐨勬甯冿紝鐧借壊鑳屾櫙(瑕嗙洊寮у害鐨勫渾鐨勫崐杈�) - var detailBackFrame = new FrameLayout(); - detailBackFrame.Y = btnRound.Bottom - btnRound.Height / 2; - detailBackFrame.Height = Application.GetRealHeight(1368);//楂樺害灏辨槸瑕佸畠瓒呰繃 - detailBackFrame.BackgroundColor = UserCenterColor.Current.White; - bodyFrameLayout.AddChidren(detailBackFrame); - - //淇℃伅缂栬緫 - var btnTile = new NormalViewControl(800, 60, true); - btnTile.X = ControlCommonResourse.XXLeft; - btnTile.TextSize = 15; - btnTile.TextColor = UserCenterColor.Current.TextColor2; - btnTile.TextID = R.MyInternationalizationString.uInfoEditor; - detailBackFrame.AddChidren(btnTile); - - this.listview = new VerticalListControl(12); - listview.Y = btnTile.Bottom + Application.GetRealHeight(17); - listview.Height = Application.GetRealHeight(1368) - halfRoundHeigth - btnTile.Bottom - Application.GetRealHeight(17); - detailBackFrame.AddChidren(listview); } #endregion @@ -227,8 +210,19 @@ this.AddDoorLocksTimeRow(); } } + else if (deviceEnumInfo.ConcreteType == DeviceConcreteType.AirConditioner_ZbGateway) + { + //娣诲姞銆愬鍐呮満璁剧疆銆戣(绌鸿皟涓撶敤) + this.AddIndoorUnitSettionRow(); + } else { + //娣诲姞銆愮粦瀹氱洰鏍囥�戣(pir浼犳劅鍣ㄤ笓鐢�) + this.AddPirSensorBindRow(); + //娣诲姞銆愭柟鍚戜笌闄愪綅銆戣(寮�鍚堝笜,鍗峰笜涓撶敤) + this.AddDirectionAndLimitRow(); + //娣诲姞銆愭墜鎷夋帶鍒躲�戣(寮�鍚堝笜涓撶敤) + this.AddHandPullControlRow(); //娣诲姞銆愭寜閿缃�戣(闈㈡澘涓撶敤) this.AddPanelSettionRow(); //娣诲姞銆愬姛鑳借缃�戣 @@ -267,8 +261,13 @@ btnRow.AddRightArrow(); //搴曠嚎 btnRow.AddBottomLine(); + var doorLock = this.listNewDevice[0] as ZigBee.Device.DoorLock; btnRow.ButtonClickEvent += (sender, e) => { + var userManagement = new Shared.Phone.UserCenter.DoorLock.UserManagement(doorLock); + Shared.Phone.UserView.HomePage.Instance.AddChidren(userManagement); + Shared.Phone.UserView.HomePage.Instance.PageIndex += 1; + userManagement.Show(); }; } } @@ -291,17 +290,27 @@ btnRow.UseClickStatu = false; listview.AddChidren(btnRow); btnRow.AddLeftCaption(caption, 600); - //鍚戝彸鍥炬爣 - var btnswitch = btnRow.AddMostRightEmptyIcon(104, 63); - btnRow.ChangedChidrenBindMode(btnswitch, ChidrenBindMode.NotBind); - btnswitch.UnSelectedImagePath = "Item/Switch.png"; - btnswitch.SelectedImagePath = "Item/SwitchSelected.png"; + //寮�鍏冲浘鏍� + var btnswitch = btnRow.AddMostRightSwitchIcon(); //搴曠嚎 btnRow.AddBottomLine(); + if (string.IsNullOrEmpty(ZigBee.Device.DoorLock.RemoteUnlockPassword) == false) + { + btnswitch.IsSelected = true; + } + var doorLock= (ZigBee.Device.DoorLock)listNewDevice[0]; btnswitch.ButtonClickEvent += (sender, e) => { - btnswitch.IsSelected = !btnswitch.IsSelected; + if (btnswitch.IsSelected == true) + { + btnswitch.IsSelected = false; + ZigBee.Device.DoorLock.RemoteUnlockPassword = string.Empty; + return; + } + var frame = new DoorLock.DoorLockCommonLayout(); + frame.RemotePasswordDialog((ZigBee.Device.DoorLock)listNewDevice[0], btnswitch.btnIcon); + frame = null; }; } } @@ -327,8 +336,13 @@ btnRow.AddRightArrow(); //搴曠嚎 btnRow.AddBottomLine(); + var doorLock = this.listNewDevice[0] as ZigBee.Device.DoorLock; btnRow.ButtonClickEvent += (sender, e) => { + var tempPage = new Shared.Phone.UserCenter.DoorLock.TimeSettignPage(doorLock, "DoorLockTime"); + Shared.Phone.UserView.HomePage.Instance.AddChidren(tempPage); + Shared.Phone.UserView.HomePage.Instance.PageIndex += 1; + tempPage.Show(); }; } } @@ -359,45 +373,11 @@ btnFunction.ButtonClickEvent += (sender, e) => { var form = new DevicePanel.PanelButtonSettionForm(); - form.AddForm(listNewDevice[0].DeviceAddr); + form.AddForm(listNewDevice[0]); }; } #endregion - - #region 鈻� 鍔熻兘璁剧疆(閫氱敤)_____________________ - - /// <summary> - /// 娣诲姞銆愬姛鑳借缃�戣 - /// </summary> - private void AddFunctionSettionRow() - { - //鍔熻兘璁剧疆 - string caption = Language.StringByID(R.MyInternationalizationString.uFunctionSettingUp); - var btnFunction = new FrameRowControl(listview.rowSpace / 2); - listview.AddChidren(btnFunction); - btnFunction.AddLeftCaption(caption, 600); - //鍚戝彸鍥炬爣 - btnFunction.AddRightArrow(); - //搴曠嚎 - btnFunction.AddBottomLine(); - btnFunction.ButtonClickEvent += (sender, e) => - { - //娌充笢鐨勯潰鏉胯澶� - if (deviceEnumInfo.BeloneType == DeviceBeloneType.A鎸夐敭闈㈡澘 && deviceEnumInfo.IsHdlDevice == true) - { - var form = new DevicePanel.PanelFunctionSettionForm(); - form.AddForm(listNewDevice[0].DeviceAddr); - } - else - { - var form = new DeviceRelay.DeviceFunctionSettionForm(); - form.AddForm(listNewDevice[0].DeviceAddr); - } - }; - } - - #endregion; #region 鈻� 骞叉帴鐐硅缃�(骞叉帴鐐�)_________________ @@ -429,7 +409,208 @@ btnBackLight.AddBottomLine(); btnBackLight.ButtonClickEvent += (sender, e) => { - var form = new DeviceRelay.DeviceDryContactSettionForm(); + var form = new DeviceDryContactSettionForm(); + form.AddForm(listNewDevice[0]); + }; + } + + #endregion + + #region 鈻� 缁戝畾鐩爣(pir浼犳劅鍣ㄤ笓鐢�)____________ + + /// <summary> + /// 娣诲姞銆愮粦瀹氱洰鏍囥�戣(pir浼犳劅鍣ㄤ笓鐢�) + /// </summary> + private void AddPirSensorBindRow() + { + if (this.deviceEnumInfo.ConcreteType != DeviceConcreteType.Sensor_Pir) + { + return; + } + //缁戝畾鐩爣 + string caption = Language.StringByID(R.MyInternationalizationString.uBindTargets); + var btnFunction = new FrameRowControl(listview.rowSpace / 2); + listview.AddChidren(btnFunction); + btnFunction.AddLeftCaption(caption, 600); + //鍚戝彸鍥炬爣 + btnFunction.AddRightArrow(); + //搴曠嚎 + btnFunction.AddBottomLine(); + btnFunction.ButtonClickEvent += (sender, e) => + { + var form = new DevicePirSensor.PirSensorBindTargetSettionForm(); + form.AddForm((IASZone)this.listNewDevice[0]); + }; + } + + #endregion; + + #region 鈻� 鍔熻兘璁剧疆(閫氱敤)_____________________ + + /// <summary> + /// 娣诲姞銆愬姛鑳借缃�戣 + /// </summary> + private void AddFunctionSettionRow() + { + //鍔熻兘璁剧疆 + string caption = Language.StringByID(R.MyInternationalizationString.uFunctionSettingUp); + var btnFunction = new FrameRowControl(listview.rowSpace / 2); + listview.AddChidren(btnFunction); + btnFunction.AddLeftCaption(caption, 600); + //鍚戝彸鍥炬爣 + btnFunction.AddRightArrow(); + //搴曠嚎 + btnFunction.AddBottomLine(); + btnFunction.ButtonClickEvent += (sender, e) => + { + //娌充笢鐨勯潰鏉胯澶� + if (deviceEnumInfo.BeloneType == DeviceBeloneType.A鎸夐敭闈㈡澘 && deviceEnumInfo.IsHdlDevice == true) + { + var form = new DevicePanel.PanelFunctionSettionForm(); + form.AddForm(listNewDevice[0]); + } + else + { + var form = new DeviceFunctionSettionForm(); + form.AddForm(listNewDevice[0], false); + } + }; + } + + #endregion; + + #region 鈻� 鏂瑰悜涓庨檺浣�(绐楀笜)___________________ + + /// <summary> + /// 娣诲姞銆愭柟鍚戜笌闄愪綅銆戣(绐楀笜涓撶敤) + /// </summary> + private void AddDirectionAndLimitRow() + { + if (deviceEnumInfo.BeloneType != DeviceBeloneType.A绐楀笜) + { + return; + } + var deviceCurtain = (Rollershade)this.listNewDevice[0]; + if (deviceCurtain.WcdType != 4 && deviceCurtain.WcdType != 0) + { + //寮�鍚堝笜,鍗峰笜涓撶敤 + return; + } + + //鏂瑰悜涓庨檺浣� + string caption = Language.StringByID(R.MyInternationalizationString.uDirectionAndLimit); + var btnFunction = new FrameRowControl(listview.rowSpace / 2); + listview.AddChidren(btnFunction); + btnFunction.AddLeftCaption(caption, 600); + //鍚戝彸鍥炬爣 + btnFunction.AddRightArrow(); + //搴曠嚎 + btnFunction.AddBottomLine(); + btnFunction.ButtonClickEvent += (sender, e) => + { + if (deviceCurtain.WcdType == 4) + { + var form = new DeviceCurtain.AutoOpenDirectionAndLimitSettionForm(); + form.AddForm(deviceCurtain); + } + else if (deviceCurtain.WcdType == 0) + { + var form = new DeviceCurtain.SiphonateDirectionAndLimitSettionForm(); + form.AddForm(deviceCurtain); + } + }; + } + + #endregion; + + #region 鈻� 鎵嬫媺鎺у埗(寮�鍚堝笜)___________________ + + /// <summary> + /// 娣诲姞銆愭墜鎷夋帶鍒躲�戣(寮�鍚堝笜涓撶敤) + /// </summary> + private void AddHandPullControlRow() + { + if (deviceEnumInfo.BeloneType != DeviceBeloneType.A绐楀笜) + { + return; + } + var deviceCurtain = (Rollershade)this.listNewDevice[0]; + if (deviceCurtain.WcdType != 4) + { + //寮�鍚堝笜涓撶敤 + return; + } + + //鎵嬫媺鎺у埗 + string caption = Language.StringByID(R.MyInternationalizationString.uHandPullControl); + var btnFunction = new FrameRowControl(listview.rowSpace / 2); + btnFunction.UseClickStatu = false; + listview.AddChidren(btnFunction); + btnFunction.AddLeftCaption(caption, 600); + //寮�鍏冲浘鏍� + var btnSwitch = btnFunction.AddMostRightSwitchIcon(); + //搴曠嚎 + btnFunction.AddBottomLine(); + btnSwitch.ButtonClickEvent += async (sender, e) => + { + //鍒囨崲妯″紡 + var result = await HdlDeviceCurtainLogic.Current.SetHandPullControl(deviceCurtain, !btnSwitch.IsSelected); + if (result == true) + { + btnSwitch.IsSelected = !btnSwitch.IsSelected; + } + }; + + //娣诲姞灞炴�т笂鎶ョ洃鍚� + string mainkeys = LocalDevice.Current.GetDeviceMainKeys(this.listNewDevice[0]); + HdlDeviceAttributeLogic.Current.AddAttributeEvent("HandPullControl", "DeviceStatusReport", (device) => + { + string checkKey = LocalDevice.Current.GetDeviceMainKeys(device); + if (mainkeys != checkKey || device.DeviceStatusReport.CluterID != 258) + { + return; + } + foreach (var attriBute in device.DeviceStatusReport.AttriBute) + { + if (attriBute.AttributeId == 23) + { + //鎵嬫媺鎺у埗 + if (0 < (attriBute.AttriButeData & 0x04)) + { + btnSwitch.IsSelected = true; + } + } + } + }); + //鍙戦�佸懡浠� + deviceCurtain.ReadCurtainDirectionAndMode(); + } + + #endregion; + + #region 鈻� 瀹ゅ唴鏈鸿缃�(绌鸿皟)___________________ + + /// <summary> + /// 娣诲姞銆愬鍐呮満璁剧疆銆戣(绌鸿皟涓撶敤) + /// </summary> + private void AddIndoorUnitSettionRow() + { + if (this.deviceEnumInfo.ConcreteType != DeviceConcreteType.AirConditioner_ZbGateway) + { + return; + } + //瀹ゅ唴鏈鸿缃� + string caption = Language.StringByID(R.MyInternationalizationString.uIndoorUnitSettion); + var btnFunction = new FrameRowControl(listview.rowSpace / 2); + listview.AddChidren(btnFunction); + btnFunction.AddLeftCaption(caption, 600); + //鍚戝彸鍥炬爣 + btnFunction.AddRightArrow(); + //搴曠嚎 + btnFunction.AddBottomLine(); + btnFunction.ButtonClickEvent += (sender, e) => + { + var form = new DeviceAirConditioner.IndoorUnitListForm(); form.AddForm(listNewDevice[0].DeviceAddr); }; } @@ -510,7 +691,7 @@ /// <param name="oTADevice">ota璁惧</param> private void SetDeviceVersionInfo(PicViewControl btnNewVersion, OTADevice oTADevice) { - new System.Threading.Thread(async () => + HdlThreadLogic.Current.RunThread(async () => { bool receiveImageInfo = false; //璁剧疆璁惧鍏ㄩ儴鐨勯暅鍍忎俊鎭� @@ -548,8 +729,7 @@ } }); } - }) - { IsBackground = true }.Start(); + }); } #endregion @@ -621,7 +801,7 @@ { menuCount = 2; } - var frame = new TopRightMenuControl(this, menuCount); + var frame = new TopRightMenuControl(menuCount); if (canTest == true) { //瀹氫綅 @@ -680,6 +860,7 @@ /// </summary> public override void CloseForm() { + HdlDeviceAttributeLogic.Current.RemoveEvent("HandPullControl"); //绉婚櫎鑾峰彇璁惧纭欢淇℃伅鐨勭洃鍚嚎绋� HdlDeviceHardInfoLogic.Current.RemoveDeviceHardInfoThread(listNewDevice[0]); -- Gitblit v1.8.0