From 6fa9d69da922c8049f5acfcbb9ce9fd26811024c Mon Sep 17 00:00:00 2001 From: xm <1271024303@qq.com> Date: 星期四, 16 四月 2020 17:10:57 +0800 Subject: [PATCH] 请合并代码 --- ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceMacInfoEditorForm.cs | 326 ++++++++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 292 insertions(+), 34 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceMacInfoEditorForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceMacInfoEditorForm.cs index abe2b33..4865485 100755 --- a/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceMacInfoEditorForm.cs +++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceMacInfoEditorForm.cs @@ -20,7 +20,7 @@ /// <summary> /// 鍒楄〃鎺т欢 /// </summary> - private VerticalListControl listview = null; + private FrameListControl listview = null; /// <summary> /// 璁惧鐨勮澶囩被鍨� /// </summary> @@ -45,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) @@ -56,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(); @@ -76,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]); //璁惧澶囨敞 @@ -119,30 +128,43 @@ //鍒掔嚎 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 (listCheck.Contains(mainKeys) == true) { //濡傛灉杩欎釜鍥炶矾涔嬪墠閮借繕娌℃湁鍖哄煙,鍦ㄦ湰鐣岄潰杩樻病鏈夊叧闂箣鍓�,鍙互鏃犳潯浠堕殢渚垮彉鏇� - Room.CurrentRoom.ChangedRoom(device, roomKeys); + HdlRoomLogic.Current.ChangedRoom(device, roomKeys); } } //淇濆瓨璁惧鎴块棿绱㈠紩 @@ -153,7 +175,7 @@ this.AddAllMenuRow(); //鍒濆鍖栨甯冨畬鎴� - tableContr.FinishInitControl(bodyFrameLayout, this.listview); + tableContr.FinishInitControl(); tableContr = null; //淇濆瓨 @@ -189,11 +211,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(); @@ -210,26 +231,39 @@ } else { + //娣诲姞銆愬伐浣滄ā寮忋�戣(pir浼犳劅鍣ㄤ笓鐢�) + this.AddPirSensorWorkModeRow(); //娣诲姞銆愮粦瀹氱洰鏍囥�戣(pir浼犳劅鍣ㄤ笓鐢�) this.AddPirSensorBindRow(); //娣诲姞銆愭柟鍚戜笌闄愪綅銆戣(寮�鍚堝笜,鍗峰笜涓撶敤) this.AddDirectionAndLimitRow(); //娣诲姞銆愭墜鎷夋帶鍒躲�戣(寮�鍚堝笜涓撶敤) this.AddHandPullControlRow(); - //娣诲姞銆愭寜閿缃�戣(闈㈡澘涓撶敤) - this.AddPanelSettionRow(); - //娣诲姞銆愬姛鑳借缃�戣 - this.AddFunctionSettionRow(); + //娣诲姞銆愭寜閿缃�戣(鏂规偊涓撶敤) --杩欎釜鏈夊彲鑳藉拰闈㈡澘閲嶅彔 + if (this.AddFangyuePanelSettionRow() == false) + { + //娣诲姞銆愭寜閿缃�戣(闈㈡澘涓撶敤) + this.AddPanelSettionRow(); + } + + if (this.IsFangyueFreshaAirPanel() == false) + { + //娣诲姞銆愬姛鑳借缃�戣 + this.AddFunctionSettionRow(); + } + //娣诲姞銆愬共鎺ョ偣璁剧疆銆戣 this.AddDryContactSettionRow(); } + //娣诲姞銆愬姛鑳界被鍨嬨�戣(绌烘皵寮�鍏充笓鐢�) + this.AddAirSwitchFunctionTypeRow(); //娣诲姞銆愰�氱敤淇℃伅銆戣 this.AddGeneralInformationRow(); //娣诲姞銆愮┖璋冩ā鍧楃増鏈�(绌鸿皟涓撶敤)銆戣 this.AddAirConditionerModelVersionRow(); - if (isHdlDevice == true) + if (deviceEnumInfo.IsHdlDevice == true) { //娣诲姞銆愬浐浠跺崌绾с�戣 this.AddFirmwareUpdateRow(); @@ -273,7 +307,7 @@ }; actionNone = () => { - Shared.Phone.UserCenter.DoorLock.DoorLockCommonLayout.SecurityRequest(doorLock, action); + Shared.Phone.UserCenter.DoorLock.DoorLockCommonLayout.SecurityRequest(doorLock); }; HdlCheckLogic.Current.CheckSecondarySecurity(action, actionNone); } @@ -294,7 +328,7 @@ }; actionNone = () => { - Shared.Phone.UserCenter.DoorLock.DoorLockCommonLayout.SecurityRequest(doorLock, action); + Shared.Phone.UserCenter.DoorLock.DoorLockCommonLayout.SecurityRequest(doorLock); }; HdlCheckLogic.Current.CheckSecondarySecurity(action, actionNone); @@ -439,7 +473,7 @@ #region 鈻� 鎸夐敭璁剧疆(闈㈡澘)_____________________ /// <summary> - /// 娣诲姞銆愭寜閿缃�戣 + /// 娣诲姞銆愭寜閿缃�戣(闈㈡澘) /// </summary> private void AddPanelSettionRow() { @@ -462,6 +496,74 @@ var form = new DevicePanel.PanelButtonSettionForm(); form.AddForm(listNewDevice[0]); }; + } + + #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 + + #region 鈻� 鎸夐敭璁剧疆(鏂规偊)_____________________ + + /// <summary> + /// 鏄惁鏄柟鎮︽柊椋庨潰鏉� + /// </summary> + private bool IsFangyueFreshaAirPanel() + { + if (deviceEnumInfo.ConcreteType == DeviceConcreteType.ButtonPanel_FangyueFreshAir) + { + return true; + } + return false; } #endregion @@ -502,6 +604,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浼犳劅鍣ㄤ笓鐢�)____________ @@ -544,6 +676,27 @@ { 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; + } //鍔熻兘璁剧疆 string caption = Language.StringByID(R.MyInternationalizationString.uFunctionSettingUp); @@ -556,8 +709,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]); + } //娌充笢鐨勯潰鏉胯澶� - 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]); @@ -647,10 +808,11 @@ btnSwitch.ButtonClickEvent += async (sender, e) => { //鍒囨崲妯″紡 - var result = await HdlDeviceCurtainLogic.Current.SetHandPullControl(deviceCurtain, !btnSwitch.IsSelected); + bool statu = !btnSwitch.IsSelected; + var result = await HdlDeviceCurtainLogic.Current.SetHandPullControl(deviceCurtain, statu); if (result == true) { - btnSwitch.IsSelected = !btnSwitch.IsSelected; + btnSwitch.IsSelected = statu; } }; @@ -670,7 +832,10 @@ //鎵嬫媺鎺у埗 if (0 < (attriBute.AttriButeData & 0x04)) { - btnSwitch.IsSelected = true; + HdlThreadLogic.Current.RunMain(() => + { + btnSwitch.IsSelected = true; + }); } } } @@ -688,10 +853,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); @@ -705,6 +872,101 @@ { var form = new DeviceAirConditioner.IndoorUnitListForm(); form.AddForm(listNewDevice[0].DeviceAddr); + }; + } + + #endregion + + #region 鈻� 鍔熻兘绫诲瀷(绌烘皵寮�鍏充笓鐢�)_____________ + + /// <summary> + /// 娣诲姞銆愬姛鑳界被鍨嬨�戣(绌烘皵寮�鍏充笓鐢�) + /// </summary> + private void AddAirSwitchFunctionTypeRow() + { + if (this.deviceEnumInfo.BeloneType != DeviceBeloneType.A鏅鸿兘绌哄紑) + { + //涓嶆槸绌烘皵寮�鍏� + return; + } + + //鍔熻兘绫诲瀷 + string caption = Language.StringByID(R.MyInternationalizationString.uFunctionType); + var DfunctionType = this.listNewDevice[0].DfunctionType; + + //鍔熻兘绫诲瀷鐨勭炕璇戝悕瀛� + int nowSelectNo = 1; + string strType = string.Empty; + if (DfunctionType == DeviceFunctionType.A鐏厜) + { + strType = Language.StringByID(R.MyInternationalizationString.uLight); + nowSelectNo = 1; + } + else if (DfunctionType == DeviceFunctionType.A寮�鍏�) + { + strType = Language.StringByID(R.MyInternationalizationString.uSwitch); + nowSelectNo = 0; + } + else if (DfunctionType == DeviceFunctionType.A鎻掑骇) + { + strType = Language.StringByID(R.MyInternationalizationString.uSocket1); + nowSelectNo = 2; + } + + var btnFunction = new FrameCaptionViewControl(caption, strType, listview.rowSpace / 2); + btnFunction.UseClickStatu = true; + listview.AddChidren(btnFunction); + btnFunction.InitControl(); + //搴曠嚎 + btnFunction.AddBottomLine(); + //鍙崇澶� + btnFunction.AddRightArrow(); + btnFunction.ButtonClickEvent += (sender, e) => + { + //鏄剧ず鍒楄〃 + var listText = new List<string>(); + listText.Add(Language.StringByID(R.MyInternationalizationString.uSwitch));//寮�鍏� + listText.Add(Language.StringByID(R.MyInternationalizationString.uLight));//鐏厜 + listText.Add(Language.StringByID(R.MyInternationalizationString.uSocket1));//鎻掑骇 + //鏍囬:閫夋嫨鍔熻兘绫诲瀷 + var title = Language.StringByID(R.MyInternationalizationString.uSelectFunctionType); + + var form = new BottomItemSelectForm(); + form.AddForm(title, listText, nowSelectNo); + form.FinishSelectEvent += (selectNo) => + { + btnFunction.Text = listText[selectNo]; + nowSelectNo = selectNo; + //璁板綍璧峰綋鍓嶉�夋嫨鐨勫姛鑳界被鍨� + if (selectNo == 0) + { + this.listNewDevice[0].DfunctionType = DeviceFunctionType.A寮�鍏�; + if (this.listNewDevice[0].IsCustomizeImage == false) + { + //閲嶆柊璁剧疆鍥剧墖 + this.listNewDevice[0].IconPath = "Device/Switch.png"; + } + } + else if (selectNo == 1) + { + this.listNewDevice[0].DfunctionType = DeviceFunctionType.A鐏厜; + if (this.listNewDevice[0].IsCustomizeImage == false) + { + //閲嶆柊璁剧疆鍥剧墖 + this.listNewDevice[0].IconPath = "Device/Light.png"; + } + } + else + { + this.listNewDevice[0].DfunctionType = DeviceFunctionType.A鎻掑骇; + if (this.listNewDevice[0].IsCustomizeImage == false) + { + //閲嶆柊璁剧疆鍥剧墖 + this.listNewDevice[0].IconPath = "Device/Socket1.png"; + } + } + this.listNewDevice[0].ReSave(); + }; }; } @@ -806,7 +1068,7 @@ { //涓ぎ绌鸿皟鐨勫崌绾х殑璇濓紝鏄壒娈婄殑 var form = new DeviceAirConditioner.ACZbGatewayUpdateMenuForm(); - form.AddForm((AC)listNewDevice[0], btnNewVersion.Visible); + form.AddForm(listNewDevice[0], btnNewVersion.Visible); } btnNewVersion.Visible = false; }; @@ -924,15 +1186,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) { //瀹氫綅 @@ -1059,7 +1317,7 @@ HdlThreadLogic.Current.RunThread(async () => { //璇诲彇绌鸿皟妯″潡鐗堟湰 - var result = await ((AC)listNewDevice[0]).ReadACFirewareVersionAsync(); + var result = await HdlDeviceAirConditionerLogic.Current.ReadACFirewareVersionAsync(listNewDevice[0]); if (result == null || result.readACFirewareVersionResponData == null || result.readACFirewareVersionResponData.Status != 0) { HdlThreadLogic.Current.RunMain(() => -- Gitblit v1.8.0