From 944b87b6bcccb095cd73f13f4410fb20faf48f74 Mon Sep 17 00:00:00 2001 From: gxc <guoxuecheng@guoxuechengdeMacBook-Pro.local> Date: 星期三, 25 十二月 2019 11:21:06 +0800 Subject: [PATCH] 2019.12.25 --- ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceMacInfoEditorForm.cs | 449 ++++++++++++++++++++++++++++++++++++++++++++------------ 1 files changed, 353 insertions(+), 96 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceMacInfoEditorForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceMacInfoEditorForm.cs index c9501cb..5759c49 100755 --- a/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceMacInfoEditorForm.cs +++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceMacInfoEditorForm.cs @@ -42,15 +42,6 @@ public void ShowForm(string deviceMac) { this.listNewDevice = Common.LocalDevice.Current.GetDevicesByMac(deviceMac); - //鎺掑簭 - this.listNewDevice.Sort((obj1, obj2) => - { - if (obj1.DeviceEpoint > obj2.DeviceEpoint) - { - return 1; - } - return -1; - }); this.listDeviceType.Clear(); foreach (var device in listNewDevice) @@ -87,11 +78,11 @@ 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); @@ -104,14 +95,14 @@ btnNote.txtInput.FinishInputEvent += () => { string oldName = Common.LocalDevice.Current.GetDeviceMacName(listNewDevice[0]); - if (btnNote.Text.Trim() == string.Empty) + if (btnNote.Text == string.Empty) { btnNote.Text = oldName; } - if (oldName != btnNote.Text.Trim()) + if (oldName != btnNote.Text) { //淇敼鍚嶅瓧 - this.DeviceReName(btnNote.Text.Trim(), false); + this.DeviceReName(btnNote.Text, false); } }; @@ -137,9 +128,6 @@ { 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) @@ -154,6 +142,8 @@ Room.CurrentRoom.ChangedRoom(device, roomKeys); } } + //淇濆瓨璁惧鎴块棿绱㈠紩 + Common.LocalDevice.Current.SaveRealDeviceRoomId(this.listNewDevice, roomKeys); }; //娣诲姞鍏ㄩ儴鑿滃崟 @@ -210,8 +200,19 @@ this.AddDoorLocksTimeRow(); } } + else if (deviceEnumInfo.ConcreteType == DeviceConcreteType.AirConditioner_ZbGateway) + { + //娣诲姞銆愬鍐呮満璁剧疆銆戣(绌鸿皟涓撶敤) + this.AddIndoorUnitSettionRow(); + } else { + //娣诲姞銆愮粦瀹氱洰鏍囥�戣(pir浼犳劅鍣ㄤ笓鐢�) + this.AddPirSensorBindRow(); + //娣诲姞銆愭柟鍚戜笌闄愪綅銆戣(寮�鍚堝笜,鍗峰笜涓撶敤) + this.AddDirectionAndLimitRow(); + //娣诲姞銆愭墜鎷夋帶鍒躲�戣(寮�鍚堝笜涓撶敤) + this.AddHandPullControlRow(); //娣诲姞銆愭寜閿缃�戣(闈㈡澘涓撶敤) this.AddPanelSettionRow(); //娣诲姞銆愬姛鑳借缃�戣 @@ -251,13 +252,54 @@ //搴曠嚎 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(); - }; + btnRow.ButtonClickEvent += async (sender, e) => + { + if (UserCenterResourse.UserInfo.AuthorityNo == 1) + { + Action action = null; + Action actionNone = null; + action = () => + { + 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(); + }; + actionNone = () => + { + Shared.Phone.UserCenter.DoorLock.DoorLockCommonLayout.SecurityRequest(doorLock, action); + }; + HdlCheckLogic.Current.CheckSecondarySecurity(action, actionNone); + } + else + { + CommonPage.Loading.Start(""); + var result = await Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetDoorLockOperateAccess(doorLock, Shared.Common.Config.Instance.Guid); + if (result == false) + { + Action action = null; + Action actionNone = null; + action = () => + { + 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(); + }; + actionNone = () => + { + Shared.Phone.UserCenter.DoorLock.DoorLockCommonLayout.SecurityRequest(doorLock, action); + }; + HdlCheckLogic.Current.CheckSecondarySecurity(action, actionNone); + + } + else + { + this.ShowMassage(ShowMsgType.Tip, Language.StringByID(R.MyInternationalizationString.AccountIsFreezed)); + } + CommonPage.Loading.Hide(); + } + }; } } @@ -283,24 +325,56 @@ var btnswitch = btnRow.AddMostRightSwitchIcon(); //搴曠嚎 btnRow.AddBottomLine(); - if (string.IsNullOrEmpty(ZigBee.Device.DoorLock.RemoteUnlockPassword) == false) + + var doorLock = (ZigBee.Device.DoorLock)listNewDevice[0]; + if (string.IsNullOrEmpty(doorLock.RemoteUnlockPassword) == false) { btnswitch.IsSelected = true; } - var doorLock= (ZigBee.Device.DoorLock)listNewDevice[0]; - btnswitch.ButtonClickEvent += (sender, e) => - { - 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; - }; + btnswitch.ButtonClickEvent += async (sender, e) => + { + if (UserCenterResourse.UserInfo.AuthorityNo == 1) + { + if (btnswitch.IsSelected == true) + { + btnswitch.IsSelected = false; + doorLock.RemoteUnlockPassword = string.Empty; + return; + } + var frame = new DoorLock.DoorLockCommonLayout(); + frame.RemotePasswordDialog((ZigBee.Device.DoorLock)listNewDevice[0], btnswitch.btnIcon); + frame = null; + } + else + { + var result = await Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetDoorLockOperateAccess(doorLock, Shared.Common.Config.Instance.Guid); + if (result == false) + { + var result1 = await Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetDoorLockUnlockAccess(doorLock, Shared.Common.Config.Instance.Guid); + if (result1 == true) + { + if (btnswitch.IsSelected == true) + { + btnswitch.IsSelected = false; + doorLock.RemoteUnlockPassword = string.Empty; + return; + } + var frame = new DoorLock.DoorLockCommonLayout(); + frame.RemotePasswordDialog((ZigBee.Device.DoorLock)listNewDevice[0], btnswitch.btnIcon); + frame = null; + } + else + { + this.ShowMassage(ShowMsgType.Tip, Language.StringByID(R.MyInternationalizationString.NoAccess)); + } + } + else + { + this.ShowMassage(ShowMsgType.Tip, Language.StringByID(R.MyInternationalizationString.AccountIsFreezed)); + } + } + }; } } @@ -326,13 +400,31 @@ //搴曠嚎 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(); - }; + btnRow.ButtonClickEvent += async (sender, e) => + { + if (UserCenterResourse.UserInfo.AuthorityNo == 1) + { + 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(); + } + else + { + var result = await Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetDoorLockOperateAccess(doorLock, Shared.Common.Config.Instance.Guid); + if (result == false) + { + 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(); + } + else + { + this.ShowMassage(ShowMsgType.Tip, Language.StringByID(R.MyInternationalizationString.AccountIsFreezed)); + } + } + }; } } @@ -362,45 +454,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 鈻� 骞叉帴鐐硅缃�(骞叉帴鐐�)_________________ @@ -432,7 +490,214 @@ 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() + { + //鍙湁鍥炶矾鏁板ぇ浜�1鎵嶈兘鏈夎繖涓彍鍗� + if (Common.LocalDevice.Current.GetDevicesCountByMac(listNewDevice[0].DeviceAddr) == 1) + { + return; + } + + //鍔熻兘璁剧疆 + 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]); + HdlGatewayReceiveLogic.Current.AddAttributeEvent("HandPullControl", ReceiveComandDiv.A璁惧灞炴�т笂鎶�, (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); }; } @@ -492,7 +757,7 @@ btnNewVersion.UnSelectedImagePath = "Item/NewVersion.png"; btnNewVersion.Visible = false; btnNewVersion.X = Application.GetRealWidth(242); - btnNewVersion.Y= Application.GetRealHeight(23); + btnNewVersion.Y = Application.GetRealHeight(23); rowUpDate.AddChidren(btnNewVersion, ChidrenBindMode.BindEventOnly); rowUpDate.ButtonClickEvent += (sender, e) => @@ -562,7 +827,7 @@ /// 璁惧閲嶅懡鍚� /// </summary> /// <param name="i_deviceName">deviceName.</param> - private async void DeviceReName(string i_deviceName,bool closeForm) + private async void DeviceReName(string i_deviceName, bool closeForm) { //寮�鍚繘搴︽潯 this.ShowProgressBar(); @@ -655,23 +920,14 @@ /// </summary> private async void DoDeleteDevice() { - //寮�鍚繘搴︽潯 - this.ShowProgressBar(); //鍒犻櫎璁惧 bool result = await Common.LocalDevice.Current.DeleteDevice(listNewDevice); - - this.CloseProgressBar(); - if (result == false) { return; } - - Application.RunOnMainThread(() => - { - //鍏抽棴鐣岄潰 - this.CloseForm(); - }); + //鍏抽棴鐣岄潰 + this.CloseForm(); } #endregion @@ -680,12 +936,13 @@ /// <summary> /// 鐢婚潰鍏抽棴 /// </summary> - public override void CloseForm() + public override void CloseFormBefore() { + HdlGatewayReceiveLogic.Current.RemoveEvent("HandPullControl"); //绉婚櫎鑾峰彇璁惧纭欢淇℃伅鐨勭洃鍚嚎绋� HdlDeviceHardInfoLogic.Current.RemoveDeviceHardInfoThread(listNewDevice[0]); - base.CloseForm(); + base.CloseFormBefore(); } #endregion -- Gitblit v1.8.0