From 48ba446936b51fffafa7c3600c0dadc6ac0e8c20 Mon Sep 17 00:00:00 2001 From: 陈嘉乐 <cjl@hdlchina.com.cn> Date: 星期五, 10 七月 2020 10:52:13 +0800 Subject: [PATCH] 2020-07-10-01 --- ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceMacInfoEditorForm.cs | 667 ++++++++++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 601 insertions(+), 66 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceMacInfoEditorForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceMacInfoEditorForm.cs index 3fb79d1..c4a9f56 100755 --- a/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceMacInfoEditorForm.cs +++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceMacInfoEditorForm.cs @@ -2,7 +2,6 @@ using System.Collections.Generic; using System.Threading.Tasks; using Shared.Common; -using Shared.Phone.UserView; using ZigBee.Device; namespace Shared.Phone.UserCenter.Device @@ -21,7 +20,7 @@ /// <summary> /// 鍒楄〃鎺т欢 /// </summary> - private VerticalListControl listview = null; + private FrameListControl listview = null; /// <summary> /// 璁惧鐨勮澶囩被鍨� /// </summary> @@ -30,6 +29,10 @@ /// 璁惧鍏蜂綋绫诲瀷鐨勪俊鎭� /// </summary> private DeviceEnumInfo deviceEnumInfo = null; + /// <summary> + /// 涓ぎ绌鸿皟鐨勭増鏈帶浠� + /// </summary> + private NormalViewControl btnAirConditionerVersion = null; #endregion @@ -42,6 +45,11 @@ public void ShowForm(string deviceMac) { this.listNewDevice = Common.LocalDevice.Current.GetDevicesByMac(deviceMac); + if (listNewDevice.Count == 0) + { + //閽堝鍗曠函鍙湁涓�涓�200绔偣鐨勮澶� + listNewDevice.Add(Common.LocalDevice.Current.GetOTADevice(deviceMac)); + } this.listDeviceType.Clear(); foreach (var device in listNewDevice) @@ -53,7 +61,7 @@ this.deviceEnumInfo = Common.LocalDevice.Current.GetMyDeviceEnumInfo(listNewDevice); //璁剧疆鏍囬淇℃伅 - base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uDeviceInfo)); + base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uDeviceSettion)); //鍒濆鍖栧彸涓婅鑿滃崟 this.InitTopRightMenu(); @@ -73,15 +81,19 @@ //娓呯┖bodyFrame this.ClearBodyFrame(); + var listBackControl = new VerticalFrameControl(); + listBackControl.Height = bodyFrameLayout.Height; + bodyFrameLayout.AddChidren(listBackControl); + //鍒濆鍖栨甯� var tableContr = new InformationEditorControl(); - this.listview = tableContr.InitControl(bodyFrameLayout, Language.StringByID(R.MyInternationalizationString.uInfoEditor), 369, 1368); + this.listview = tableContr.InitControl(listBackControl.frameTable, Language.StringByID(R.MyInternationalizationString.uInfoEditor), 1368); //鍥剧墖 var btnPic = new DeviceInfoIconControl(); btnPic.Y = Application.GetRealHeight(92); btnPic.Gravity = Gravity.CenterHorizontal; - bodyFrameLayout.AddChidren(btnPic); + listBackControl.frameTable.AddChidren(btnPic); btnPic.InitControl(listNewDevice[0]); //璁惧澶囨敞 @@ -116,30 +128,49 @@ //鍒掔嚎 btnType.AddBottomLine(); - //鎵�灞炲尯鍩� + //瀹夎浣嶇疆 var rowBeloneArea = new BelongAreaControl(listview.rowSpace / 2); listview.AddChidren(rowBeloneArea); - rowBeloneArea.InitControl(Language.StringByID(R.MyInternationalizationString.uBelongArea), this.listNewDevice); + rowBeloneArea.InitControl(Language.StringByID(R.MyInternationalizationString.uInstallationLocation), this.listNewDevice); //搴曠嚎 rowBeloneArea.AddBottomLine(); var listCheck = new List<string>(); rowBeloneArea.SelectRoomEvent += (roomKeys) => { + //閫夋嫨鏈垎閰嶆椂,娓呯┖ + if (roomKeys == string.Empty) { listCheck = new List<string>(); } foreach (var device in this.listNewDevice) { - var room = Room.CurrentRoom.GetRoomByDevice(device); + if (device is OTADevice) + { + //閽堝鍗曠函鍙湁涓�涓�200绔偣鐨勮澶� + continue; + } + if (roomKeys == string.Empty) + { + //濡傛灉閫夋嫨鐨勬槸鏈垎閰嶏紝鍒欏畠鐨勫叏閮ㄥ洖璺棤鏉′欢鍏ㄩ儴娓呯┖鎴块棿 + HdlRoomLogic.Current.ChangedRoom(device, roomKeys); + continue; + } + var room = HdlRoomLogic.Current.GetRoomByDevice(device); string mainKeys = LocalDevice.Current.GetDeviceMainKeys(device); if (room == null) { //杩欓噷鏈夌偣鐗规畩,濡傛灉鍥炶矾娌℃湁璁剧疆鏈夊尯鍩熺殑鏃跺��,鎵嶈缃� listCheck.Add(mainKeys); - Room.CurrentRoom.ChangedRoom(device, roomKeys); + HdlRoomLogic.Current.ChangedRoom(device, roomKeys); + } + else if (this.deviceEnumInfo.ConcreteType == DeviceConcreteType.ButtonPanel_FangyueFreshAir + && device.Type == DeviceType.FreshAir) + { + //鏂伴闈㈡澘鐨勬柊椋庤澶囷紝鍒欏尯鍩熻窡鐫�妯″潡涓�璧� + HdlRoomLogic.Current.ChangedRoom(device, roomKeys); } else if (listCheck.Contains(mainKeys) == true) { //濡傛灉杩欎釜鍥炶矾涔嬪墠閮借繕娌℃湁鍖哄煙,鍦ㄦ湰鐣岄潰杩樻病鏈夊叧闂箣鍓�,鍙互鏃犳潯浠堕殢渚垮彉鏇� - Room.CurrentRoom.ChangedRoom(device, roomKeys); + HdlRoomLogic.Current.ChangedRoom(device, roomKeys); } } //淇濆瓨璁惧鎴块棿绱㈠紩 @@ -150,7 +181,7 @@ this.AddAllMenuRow(); //鍒濆鍖栨甯冨畬鎴� - tableContr.FinishInitControl(bodyFrameLayout, this.listview); + tableContr.FinishInitControl(); tableContr = null; //淇濆瓨 @@ -175,6 +206,19 @@ this.CloseForm(); } }; + //濡傛灉褰撳墠浣忓畢鏄櫄鎷熶綇瀹呯殑璇�,璁╂墍鏈夎彍鍗曢兘涓嶈兘鐐瑰嚮 + if (Common.Config.Instance.Home.IsVirtually == true) + { + for (int i = 0; i < listview.ChildrenCount; i++) + { + var myRow = listview.GetChildren(i) as FrameRowControl; + if (myRow != null) + { + myRow.UseClickStatu = false; + myRow.CanClick = false; + } + } + } } #endregion @@ -186,11 +230,10 @@ /// </summary> private void AddAllMenuRow() { - bool isHdlDevice = Common.LocalDevice.Current.IsHdlDevice(listNewDevice[0]); if (deviceEnumInfo.BeloneType == DeviceBeloneType.A鏅鸿兘闂ㄩ攣) { //鍙湁鏄渤涓滅殑璁惧鐨勬椂鍊� - if (isHdlDevice == true) + if (deviceEnumInfo.IsHdlDevice == true) { //娣诲姞銆愮敤鎴风鐞嗐�戣 this.AddUserManageRow(); @@ -205,25 +248,64 @@ //娣诲姞銆愬鍐呮満璁剧疆銆戣(绌鸿皟涓撶敤) this.AddIndoorUnitSettionRow(); } + else if (deviceEnumInfo.ConcreteType == DeviceConcreteType.ButtonPanel_SimpleMultifunction) + { + //绠�绾﹀鍔熻兘闈㈡澘 + this.AddIBindRow(); + this.AddFunctionSettionRow(); + this.AddHumiditySourceRow(); + this.AddTemperatureSensorRow(); + + } + else if (deviceEnumInfo.ConcreteType == DeviceConcreteType.ButtonPanel_SimpleEnvironment) + { + //娣诲姞銆愮粦瀹氱洰鏍囥�戣(绠�绾︾幆澧冮潰鏉跨敤) + this.AddSimplePanelSettionRow(); + } else { + //娣诲姞銆愬伐浣滄ā寮忋�戣(pir浼犳劅鍣ㄤ笓鐢�) + this.AddPirSensorWorkModeRow(); //娣诲姞銆愮粦瀹氱洰鏍囥�戣(pir浼犳劅鍣ㄤ笓鐢�) this.AddPirSensorBindRow(); //娣诲姞銆愭柟鍚戜笌闄愪綅銆戣(寮�鍚堝笜,鍗峰笜涓撶敤) this.AddDirectionAndLimitRow(); //娣诲姞銆愭墜鎷夋帶鍒躲�戣(寮�鍚堝笜涓撶敤) this.AddHandPullControlRow(); - //娣诲姞銆愭寜閿缃�戣(闈㈡澘涓撶敤) - this.AddPanelSettionRow(); - //娣诲姞銆愬姛鑳借缃�戣 - this.AddFunctionSettionRow(); + //娣诲姞銆愭寜閿缃�戣(鏂规偊涓撶敤) --杩欎釜鏈夊彲鑳藉拰闈㈡澘閲嶅彔 + if (this.AddFangyuePanelSettionRow() == false) + { + //娣诲姞銆愭寜閿缃�戣(闈㈡澘涓撶敤) + this.AddPanelSettionRow(); + } + //妫�娴嬭兘鍚︽樉绀哄姛鑳借缃殑鑿滃崟 + if (this.CheckCanShowFunctionSettionRow() == true) + { + //娣诲姞銆愬姛鑳借缃�戣 + if (deviceEnumInfo.ConcreteType == DeviceConcreteType.Sensor_PMTwoPointFive) + { + //PM浼犳劅鍣� + this.AddFunctionSettionRowPM(); + } + else + { + this.AddFunctionSettionRow(); + } + + } + //娣诲姞銆愬共鎺ョ偣璁剧疆銆戣 this.AddDryContactSettionRow(); } + //娣诲姞銆愬姛鑳界被鍨嬨�戣(绌烘皵寮�鍏充笓鐢�) + this.AddAirSwitchFunctionTypeRow(); //娣诲姞銆愰�氱敤淇℃伅銆戣 this.AddGeneralInformationRow(); - if (isHdlDevice == true) + //娣诲姞銆愮┖璋冩ā鍧楃増鏈�(绌鸿皟涓撶敤)銆戣 + this.AddAirConditionerModelVersionRow(); + + if (deviceEnumInfo.IsHdlDevice == true) { //娣诲姞銆愬浐浠跺崌绾с�戣 this.AddFirmwareUpdateRow(); @@ -256,10 +338,20 @@ { if (UserCenterResourse.UserInfo.AuthorityNo == 1) { - 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(); + 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); + }; + HdlCheckLogic.Current.CheckSecondarySecurity(action, actionNone); } else { @@ -267,10 +359,21 @@ var result = await Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetDoorLockOperateAccess(doorLock, Shared.Common.Config.Instance.Guid); if (result == false) { - 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(); + 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); + }; + HdlCheckLogic.Current.CheckSecondarySecurity(action, actionNone); + } else { @@ -309,6 +412,11 @@ if (string.IsNullOrEmpty(doorLock.RemoteUnlockPassword) == false) { btnswitch.IsSelected = true; + } + //濡傛灉褰撳墠浣忓畢鏄櫄鎷熶綇瀹呯殑璇�,璁╂墍鏈夎彍鍗曢兘涓嶈兘鐐瑰嚮 + if (Common.Config.Instance.Home.IsVirtually == true) + { + btnswitch.CanClick = false; } btnswitch.ButtonClickEvent += async (sender, e) => @@ -412,7 +520,7 @@ #region 鈻� 鎸夐敭璁剧疆(闈㈡澘)_____________________ /// <summary> - /// 娣诲姞銆愭寜閿缃�戣 + /// 娣诲姞銆愭寜閿缃�戣(闈㈡澘) /// </summary> private void AddPanelSettionRow() { @@ -435,6 +543,83 @@ var form = new DevicePanel.PanelButtonSettionForm(); form.AddForm(listNewDevice[0]); }; + } + + #region 鈻� 绠�绾︾幆澧�(闈㈡澘)_____________________ + + /// <summary> + /// 娣诲姞銆愭寜閿缃�戣绠�绾︾幆澧�(闈㈡澘) + /// </summary> + private void AddSimplePanelSettionRow() + { + //鎸夐敭璁剧疆 + string caption = Language.StringByID(R.MyInternationalizationString.uPanelSettion); + 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 DeviceBind.PanelSimpleEnvironmentTargetsForm(); + + }; + } + + #endregion + + #endregion + + #region 鈻� 鎸夐敭璁剧疆(鏂规偊)_____________________ + + /// <summary> + /// 娣诲姞銆愭寜閿缃�戣(鏂规偊) + /// </summary> + private bool AddFangyuePanelSettionRow() + { + if (deviceEnumInfo.ConcreteType == DeviceConcreteType.ButtonPanel_FangyueTwo + || deviceEnumInfo.ConcreteType == DeviceConcreteType.ButtonPanel_FangyueFour + || deviceEnumInfo.ConcreteType == DeviceConcreteType.ButtonPanel_FangyueEight + || deviceEnumInfo.ConcreteType == DeviceConcreteType.ButtonPanel_FangyueEnvironment + || deviceEnumInfo.ConcreteType == DeviceConcreteType.ButtonPanel_FangyueFreshAir) + { + //鎸夐敭璁剧疆 + string caption = Language.StringByID(R.MyInternationalizationString.uPanelSettion); + var btnFunction = new FrameRowControl(listview.rowSpace / 2); + listview.AddChidren(btnFunction); + btnFunction.AddLeftCaption(caption, 600); + //鍚戝彸鍥炬爣 + btnFunction.AddRightArrow(); + //搴曠嚎 + btnFunction.AddBottomLine(); + btnFunction.ButtonClickEvent += (sender, e) => + { + if (deviceEnumInfo.ConcreteType == DeviceConcreteType.ButtonPanel_FangyueTwo + || deviceEnumInfo.ConcreteType == DeviceConcreteType.ButtonPanel_FangyueFour + || deviceEnumInfo.ConcreteType == DeviceConcreteType.ButtonPanel_FangyueEight) + { + //鏂规偊鎸夐敭闈㈡澘[鍗曞紑鍙屾帶/鍙屽紑鍥涙帶/鍥涘紑鍏帶]閰嶇疆 + var form = new DevicePanel.PanelFangyueButtonSettionForm(); + form.AddForm(listNewDevice[0]); + } + else if (deviceEnumInfo.ConcreteType == DeviceConcreteType.ButtonPanel_FangyueEnvironment) + { + //鏂规偊鐜闈㈡澘鐨勬寜閿厤缃� + var form = new DevicePanel.PanelFangyueEnvironmentButtonSettionForm(); + form.AddForm(listNewDevice[0]); + } + else + { + //鏂规偊鏂伴闈㈡澘鐨勬寜閿厤缃� + var form = new DevicePanel.PanelFangyueFreshAirButtonSettionForm(); + form.AddForm(listNewDevice[0]); + } + }; + return true; + } + return false; } #endregion @@ -476,6 +661,36 @@ #endregion + #region 鈻� 宸ヤ綔妯″紡(pir浼犳劅鍣ㄤ笓鐢�)____________ + + /// <summary> + /// 娣诲姞銆愬伐浣滄ā寮忋�戣(pir浼犳劅鍣ㄤ笓鐢�) + /// </summary> + private void AddPirSensorWorkModeRow() + { + if (this.deviceEnumInfo.ConcreteType != DeviceConcreteType.Sensor_Pir + || deviceEnumInfo.IsHdlDevice == false) + { + return; + } + //宸ヤ綔妯″紡 + string caption = Language.StringByID(R.MyInternationalizationString.uWorkMode); + 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.PirSensorWorkModeMenuForm(); + form.AddForm((IASZone)this.listNewDevice[0]); + }; + } + + #endregion; + #region 鈻� 缁戝畾鐩爣(pir浼犳劅鍣ㄤ笓鐢�)____________ /// <summary> @@ -515,6 +730,31 @@ //鍙湁鍥炶矾鏁板ぇ浜�1鎵嶈兘鏈夎繖涓彍鍗� if (Common.LocalDevice.Current.GetDevicesCountByMac(listNewDevice[0].DeviceAddr) == 1) { + //鏂伴灏忔ā鍧楀彧鏈変竴涓洖璺紝浣嗚姹傛柊椋庡皬妯″潡鐨勬柊椋庢湁鍔熻兘璁剧疆 + if (deviceEnumInfo.ConcreteType != DeviceConcreteType.Relay_FangyueFreshAirModul) + { + return; + } + } + if (deviceEnumInfo.ConcreteType == DeviceConcreteType.ButtonPanel_FangyueEnvironment + || deviceEnumInfo.ConcreteType == DeviceConcreteType.ButtonPanel_FangyueFreshAir) + { + //鐜闈㈡澘娌℃湁鍔熻兘璁剧疆 + return; + } + + //2020.03.06鏂拌拷鍔狅細濡傛灉鍏ㄩ儴閮芥槸骞叉帴鐐圭殑璇�,涔熶笉鑳芥湁杩欎釜涓滆タ + int dryContactCount = 0; + for (int i = 0; i < listNewDevice.Count; i++) + { + if (listNewDevice[i].Type == DeviceType.OnOffSwitch) + { + dryContactCount++; + } + } + if (listNewDevice.Count == dryContactCount) + { + //杩欎釜璁惧鍏ㄦ槸骞叉帴鐐� return; } @@ -529,8 +769,16 @@ btnFunction.AddBottomLine(); btnFunction.ButtonClickEvent += (sender, e) => { + //鏂规偊闈㈡澘 + if (deviceEnumInfo.ConcreteType == DeviceConcreteType.ButtonPanel_FangyueTwo + || deviceEnumInfo.ConcreteType == DeviceConcreteType.ButtonPanel_FangyueFour + || deviceEnumInfo.ConcreteType == DeviceConcreteType.ButtonPanel_FangyueEight) + { + var form = new DevicePanel.PanelFangyueFunctionSettionForm(); + form.AddForm(listNewDevice[0], deviceEnumInfo); + } //娌充笢鐨勯潰鏉胯澶� - if (deviceEnumInfo.BeloneType == DeviceBeloneType.A鎸夐敭闈㈡澘 && deviceEnumInfo.IsHdlDevice == true) + else if (deviceEnumInfo.BeloneType == DeviceBeloneType.A鎸夐敭闈㈡澘 && deviceEnumInfo.IsHdlDevice == true) { var form = new DevicePanel.PanelFunctionSettionForm(); form.AddForm(listNewDevice[0]); @@ -540,6 +788,27 @@ var form = new DeviceFunctionSettionForm(); form.AddForm(listNewDevice[0], false); } + }; + } + + /// <summary> + /// 娣诲姞浼犳劅鍣ㄣ�愬姛鑳借缃�戣 + /// </summary> + private void AddFunctionSettionRowPM() + { + //鍔熻兘璁剧疆 + 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) => + { + var form = new DeviceFunctionSettionForm(); + form.AddForm(listNewDevice[0], false); }; } @@ -617,19 +886,26 @@ var btnSwitch = btnFunction.AddMostRightSwitchIcon(); //搴曠嚎 btnFunction.AddBottomLine(); - btnSwitch.ButtonClickEvent += async (sender, e) => + btnSwitch.ButtonClickEvent += (sender, e) => { //鍒囨崲妯″紡 - var result = await HdlDeviceCurtainLogic.Current.SetHandPullControl(deviceCurtain, !btnSwitch.IsSelected); + bool statu = !btnSwitch.IsSelected; + var result = HdlDeviceCurtainLogic.Current.SetHandPullControl(deviceCurtain, statu); if (result == true) { - btnSwitch.IsSelected = !btnSwitch.IsSelected; + btnSwitch.IsSelected = statu; } }; + //濡傛灉鏄櫄鎷熶綇瀹� + if (Common.Config.Instance.Home.IsVirtually == true) + { + btnSwitch.IsSelected = ModelData.DeviceModelDataLogic.Current.GetCurtainHandPullControl(deviceCurtain); + return; + } //娣诲姞灞炴�т笂鎶ョ洃鍚� string mainkeys = LocalDevice.Current.GetDeviceMainKeys(this.listNewDevice[0]); - HdlDeviceAttributeLogic.Current.AddAttributeEvent("HandPullControl", "DeviceStatusReport", (device) => + HdlGatewayReceiveLogic.Current.AddAttributeEvent("HandPullControl", ReceiveComandDiv.A璁惧灞炴�т笂鎶�, (device) => { string checkKey = LocalDevice.Current.GetDeviceMainKeys(device); if (mainkeys != checkKey || device.DeviceStatusReport.CluterID != 258) @@ -643,7 +919,10 @@ //鎵嬫媺鎺у埗 if (0 < (attriBute.AttriButeData & 0x04)) { - btnSwitch.IsSelected = true; + HdlThreadLogic.Current.RunMain(() => + { + btnSwitch.IsSelected = true; + }); } } } @@ -661,10 +940,12 @@ /// </summary> private void AddIndoorUnitSettionRow() { - if (this.deviceEnumInfo.ConcreteType != DeviceConcreteType.AirConditioner_ZbGateway) + if (this.deviceEnumInfo.ConcreteType != DeviceConcreteType.AirConditioner_ZbGateway + || this.listNewDevice[0] is OTADevice)//杩藉姞锛氬崟绾彧鏈�200绔偣鐨勮瘽锛屼笉鏄剧ず杩欎釜鑿滃崟 { return; } + //瀹ゅ唴鏈鸿缃� string caption = Language.StringByID(R.MyInternationalizationString.uIndoorUnitSettion); var btnFunction = new FrameRowControl(listview.rowSpace / 2); @@ -679,6 +960,142 @@ var form = new DeviceAirConditioner.IndoorUnitListForm(); form.AddForm(listNewDevice[0].DeviceAddr); }; + } + #endregion + + #region 鈻� 绠�绾﹀鍔熻兘闈㈡澘鐢╛__________________ + /// <summary> + /// 娣诲姞銆愮粦瀹氱洰鏍囥�戣 + /// </summary> + private void AddIBindRow() + { + string bindTargets = Language.StringByID(R.MyInternationalizationString.uBindTargets); + var btnBindTargets = new FrameRowControl(listview.rowSpace / 2); + listview.AddChidren(btnBindTargets); + btnBindTargets.AddLeftCaption(bindTargets, 600); + //鍚戝彸鍥炬爣 + btnBindTargets.AddRightArrow(); + //搴曠嚎 + btnBindTargets.AddBottomLine(); + btnBindTargets.ButtonClickEvent += (sender, e) => + { + var form = new DeviceBind.PanelSimpleMutilfunctionTargetsForm(); + }; + } + + /// <summary> + /// 婀垮害鏉ユ簮琛� + /// </summary> + private void AddHumiditySourceRow() + { + //婀垮害 + var rowHumidity = new FrameRowControl(listview.rowSpace / 2); + listview.AddChidren(rowHumidity); + rowHumidity.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.HumiditySource), 600); + //搴曠嚎 + rowHumidity.AddBottomLine(); + //鍙崇澶� + rowHumidity.AddRightArrow(); + var msg = Language.StringByID(R.MyInternationalizationString.nothing); + //if (!string.IsNullOrEmpty(bindHumidityName)) + //{ + // msg = bindHumidityName; + //} + var btnHumidityStatu = rowHumidity.AddMostRightView(msg, 700); + rowHumidity.ButtonClickEvent += (sender, e) => + { + //var key = new Panel(); + //var bindHumiditySensorPage = new Shared.Phone.UserCenter.DeviceBind.PanelSimpleMutilfunctionBindSensorForm(key, bindHumidityDev, 3); + //Shared.Phone.UserView.HomePage.Instance.AddChidren(bindHumiditySensorPage); + //Shared.Phone.UserView.HomePage.Instance.PageIndex += 1; + //bindHumiditySensorPage.Show(); + + //bindHumiditySensorPage.actionHumidityTarget += (bindName) => + //{ + // Application.RunOnMainThread(() => + // { + // if (string.IsNullOrEmpty(bindName)) + // { + // btnHumidityStatu.Text = Language.StringByID(R.MyInternationalizationString.nothing); + // } + // else + // { + // btnHumidityStatu.Text = bindName; + // } + // }); + //}; + }; + } + + /// <summary> + /// 娓╁害鏉ユ簮琛� + /// </summary> + private void AddTemperatureSensorRow() + { + //娓╁害鏉ユ簮 + var rowTemPerature = new FrameRowControl(listview.rowSpace / 2); + listview.AddChidren(rowTemPerature); + rowTemPerature.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.TemperatureSource), 600); + //搴曠嚎 + rowTemPerature.AddBottomLine(); + //鍙崇澶� + rowTemPerature.AddRightArrow(); + var msg = Language.StringByID(R.MyInternationalizationString.nothing); + //if (!string.IsNullOrEmpty(bindTemperatureName)) + //{ + // msg = bindTemperatureName; + //} + var btnTemperatureStatu = rowTemPerature.AddMostRightView(msg, 700); + rowTemPerature.ButtonClickEvent += (sender, e) => + { + //var key = new Panel(); + //var bindTemperatureSensorPage = new Shared.Phone.UserCenter.DeviceBind.PanelFangyueFreshAirTargetsForm(key, bindTemperatureDev, 2); + //Shared.Phone.UserView.HomePage.Instance.AddChidren(bindTemperatureSensorPage); + //Shared.Phone.UserView.HomePage.Instance.PageIndex += 1; + //bindTemperatureSensorPage.Show(); + + //bindTemperatureSensorPage.actionTemperatureTarget += (bindName) => + //{ + // Application.RunOnMainThread(() => + // { + // if (string.IsNullOrEmpty(bindName)) + // { + // btnTemperatureStatu.Text = Language.StringByID(R.MyInternationalizationString.nothing); + // } + // else + // { + // btnTemperatureStatu.Text = bindName; + // } + // }); + //}; + }; + } + #endregion + + #region 鈻� 鍔熻兘绫诲瀷(绌烘皵寮�鍏充笓鐢�)_____________ + + /// <summary> + /// 娣诲姞銆愬姛鑳界被鍨嬨�戣(绌烘皵寮�鍏充笓鐢�) + /// </summary> + private void AddAirSwitchFunctionTypeRow() + { + //2020.04.28鍙樻洿:鏈変釜鍒澶囧畠闄や簡缁х數鍣ㄥ洖璺紝浠�涔堥兘娌℃湁浜�, + //杩欎釜鏃跺�欎篃瑕佺幇瀹炲嚭鏉� + if (this.listNewDevice.Count != 1) + { + return; + } + if (this.listNewDevice[0].Type != DeviceType.OnOffOutput + && this.listNewDevice[0].Type != DeviceType.AirSwitch) + { + return; + } + //鑷畾涔夊姛鑳界被鍨嬫帶浠� + var rowFunction = new DeviceFunctionTypeRowControl(this.listNewDevice[0], listview.rowSpace / 2); + listview.AddChidren(rowFunction); + rowFunction.InitControl(); + //搴曠嚎 + rowFunction.AddBottomLine(); } #endregion @@ -703,6 +1120,34 @@ var form = new DeviceGeneralInformationForm(); form.AddForm(listNewDevice[0].DeviceAddr); }; + } + + #endregion + + #region 鈻� 绌鸿皟妯″潡鐗堟湰(绌鸿皟涓撶敤)_____________ + + /// <summary> + /// 娣诲姞銆愮┖璋冩ā鍧楃増鏈�戣(娌充笢鐨勪腑澶┖璋�) + /// </summary> + private void AddAirConditionerModelVersionRow() + { + if (this.deviceEnumInfo.ConcreteType != DeviceConcreteType.AirConditioner_ZbGateway) + { + //涓嶆槸涓ぎ绌鸿皟 + return; + } + string caption = Language.StringByID(R.MyInternationalizationString.uAirConditionerModelVersion); + var rowVersion = new FrameRowControl(listview.rowSpace / 2); + rowVersion.UseClickStatu = false; + listview.AddChidren(rowVersion); + rowVersion.AddLeftCaption(caption, 600); + //鐗堟湰 + this.btnAirConditionerVersion = rowVersion.AddMostRightView("", 800); + //搴曠嚎 + rowVersion.AddBottomLine(); + + //鑾峰彇涓ぎ绌鸿皟妯″潡鐨勭増鏈� + this.ReadAirConditionerVersion(); } #endregion @@ -736,18 +1181,32 @@ btnNewVersion.UnSelectedImagePath = "Item/NewVersion.png"; btnNewVersion.Visible = false; btnNewVersion.X = Application.GetRealWidth(242); - btnNewVersion.Y= Application.GetRealHeight(23); - rowUpDate.AddChidren(btnNewVersion, ChidrenBindMode.BindEventOnly); + btnNewVersion.Y = Application.GetRealHeight(23); + rowUpDate.AddChidren(btnNewVersion, ChidrenBindMode.BindEvent); rowUpDate.ButtonClickEvent += (sender, e) => { + if (this.deviceEnumInfo.ConcreteType != DeviceConcreteType.AirConditioner_ZbGateway) + { + //杩欎釜鏄竴鑸澶囩殑鍗囩骇 + var form = new DeviceFirmwareUpdateForm(); + form.AddForm(listNewDevice[0].DeviceAddr); + } + else + { + //涓ぎ绌鸿皟鐨勫崌绾х殑璇濓紝鏄壒娈婄殑 + var form = new DeviceAirConditioner.ACZbGatewayUpdateMenuForm(); + form.AddForm(listNewDevice[0], btnNewVersion.Visible); + } btnNewVersion.Visible = false; - var form = new DeviceFirmwareInfoForm(); - form.AddForm(listNewDevice[0].DeviceAddr); }; - //璁剧疆璁惧鐨勭増鏈俊鎭� - this.SetDeviceVersionInfo(btnNewVersion, oTADevice); + //濡傛灉褰撳墠浣忓畢涓嶆槸铏氭嫙浣忓畢 + if (Common.Config.Instance.Home.IsVirtually == false) + { + //璁剧疆璁惧鐨勭増鏈俊鎭� + this.SetDeviceVersionInfo(btnNewVersion, oTADevice); + } } /// <summary> @@ -806,17 +1265,11 @@ /// 璁惧閲嶅懡鍚� /// </summary> /// <param name="i_deviceName">deviceName.</param> - private async void DeviceReName(string i_deviceName,bool closeForm) + private void DeviceReName(string i_deviceName, bool closeForm) { - //寮�鍚繘搴︽潯 - this.ShowProgressBar(); - //淇敼MAC鍚� string deviceName = i_deviceName.Trim(); - var result = await Common.LocalDevice.Current.ReMacName(this.listNewDevice, deviceName); - //鍏抽棴杩涘害鏉� - this.CloseProgressBar(); - + var result = Common.LocalDevice.Current.ReMacName(this.listNewDevice, deviceName); if (result == false) { return; @@ -859,15 +1312,11 @@ /// </summary> private void ShowTopRightMenu() { - int menuCount = 1; - string deviceMenu = string.Empty; //妫�娴嬫鍥炶矾鏄惁鎷ユ湁瀹氫綅鍔熻兘(鎷跨鐐规渶灏忕殑閭d釜鍥炶矾鍘诲畾浣�) bool canTest = Common.LocalDevice.Current.DeviceIsCanFixedPosition(listNewDevice[0]); - if (canTest == true) - { - menuCount = 2; - } - var frame = new TopRightMenuControl(menuCount); + + var frame = new TopRightMenuControl(canTest == true ? 2 : 1, 1); + string deviceMenu = string.Empty; if (canTest == true) { //瀹氫綅 @@ -883,6 +1332,11 @@ deviceMenu = Language.StringByID(R.MyInternationalizationString.uDelete); frame.AddRowMenu(deviceMenu, "Item/DeleteIcon2.png", "Item/DeleteIcon2Selected.png", () => { + //濡傛灉褰撳墠浣忓畢鏄櫄鎷熶綇瀹�,姝ゅ姛鑳芥棤鏁� + if (Common.Config.Instance.Home.IsVirtually == true) + { + return; + } //纭鍒犻櫎璇ヨ澶囧強鍔熻兘锛� string msg = Language.StringByID(R.MyInternationalizationString.uDeleteDeviceMsg); this.ShowMassage(ShowMsgType.Confirm, msg, () => @@ -897,16 +1351,27 @@ /// <summary> /// 鍒犻櫎鎸囧畾璁惧 /// </summary> - private async void DoDeleteDevice() + private void DoDeleteDevice() { - //鍒犻櫎璁惧 - bool result = await Common.LocalDevice.Current.DeleteDevice(listNewDevice); - if (result == false) + HdlThreadLogic.Current.RunThread(async () => { - return; - } - //鍏抽棴鐣岄潰 - this.CloseForm(); + //鎵撳紑杩涘害鏉� + this.ShowProgressBar(); + + //鍒犻櫎璁惧 + bool result = await Common.LocalDevice.Current.DeleteDevice(listNewDevice); + //鍏抽棴杩涘害鏉� + this.CloseProgressBar(); + if (result == false) + { + return; + } + HdlThreadLogic.Current.RunMain(() => + { + //鍏抽棴鐣岄潰 + this.CloseForm(); + }); + }); } #endregion @@ -915,13 +1380,19 @@ /// <summary> /// 鐢婚潰鍏抽棴 /// </summary> - public override void CloseForm() + public override void CloseFormBefore() { - HdlDeviceAttributeLogic.Current.RemoveEvent("HandPullControl"); + HdlGatewayReceiveLogic.Current.RemoveEvent("HandPullControl"); //绉婚櫎鑾峰彇璁惧纭欢淇℃伅鐨勭洃鍚嚎绋� HdlDeviceHardInfoLogic.Current.RemoveDeviceHardInfoThread(listNewDevice[0]); - base.CloseForm(); + //璁惧鏂板叆缃� + if (UserCenterResourse.DicActionForm.ContainsKey("AddDeviceTypeListForm") == true) + { + this.LoadFormMethodByName("DeviceListMainForm", "RefreshDeviceRow", new object[] { listNewDevice[0].DeviceAddr }); + } + + base.CloseFormBefore(); } #endregion @@ -952,8 +1423,72 @@ #endregion + #region 鈻� 鐣岄潰閲嶆柊婵�娲讳簨浠禵__________________ + + /// <summary> + /// 鑷韩鐨勪笂灞傜晫闈㈠叧闂悗,瀹冭嚜韬浜庢渶涓婂眰鏃�,瑙﹀彂鐨勪簨浠� + /// </summary> + public override int FormActionAgainEvent() + { + //閲嶆柊鑾峰彇涓ぎ绌鸿皟妯″潡鐨勭増鏈� + this.ReadAirConditionerVersion(); + + return 0; + } + + #endregion + #region 鈻� 涓�鑸柟娉昣__________________________ + /// <summary> + /// 鑾峰彇涓ぎ绌鸿皟妯″潡鐨勭増鏈� + /// </summary> + private void ReadAirConditionerVersion() + { + if (this.btnAirConditionerVersion == null) + { + return; + } + //鑾峰彇涓�.... + this.btnAirConditionerVersion.TextID = R.MyInternationalizationString.uGetting; + HdlThreadLogic.Current.RunThread(async () => + { + //璇诲彇绌鸿皟妯″潡鐗堟湰 + var result = await HdlDeviceAirConditionerLogic.Current.ReadACFirewareVersionAsync(listNewDevice[0]); + if (result == null || result.readACFirewareVersionResponData == null || result.readACFirewareVersionResponData.Status != 0) + { + HdlThreadLogic.Current.RunMain(() => + { + //鑾峰彇澶辫触 + btnAirConditionerVersion.TextID = R.MyInternationalizationString.uGettingFail; + }); + } + else + { + HdlThreadLogic.Current.RunMain(() => + { + btnAirConditionerVersion.Text = result.readACFirewareVersionResponData.FirewareVersion.Replace("-", string.Empty); + }); + } + }); + } + + /// <summary> + /// 妫�娴嬭兘鍚︽樉绀哄姛鑳借缃殑鑿滃崟 + /// </summary> + /// <returns></returns> + private bool CheckCanShowFunctionSettionRow() + { + //鏂规偊鏂伴闈㈡澘娌℃湁鍔熻兘璁剧疆 + if (deviceEnumInfo.ConcreteType == DeviceConcreteType.ButtonPanel_FangyueFreshAir + || deviceEnumInfo.ConcreteType == DeviceConcreteType.ButtonPanel_FourButtonScene + || deviceEnumInfo.ConcreteType == DeviceConcreteType.ButtonPanel_TwoButtonCurtain) + { + return false; + } + return true; + } + #endregion } } -- Gitblit v1.8.0