From 3aa397ab145382935492b11c1f18c9634e69910b Mon Sep 17 00:00:00 2001 From: xm <1271024303@qq.com> Date: 星期四, 10 十二月 2020 16:45:00 +0800 Subject: [PATCH] 请合并,门锁和晾衣架第一版代码 --- ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceMacInfoEditorForm.cs | 3758 +++++++++++++++++++++++++++++----------------------------- 1 files changed, 1,878 insertions(+), 1,880 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceMacInfoEditorForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceMacInfoEditorForm.cs index 742d473..17ebc9c 100644 --- a/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceMacInfoEditorForm.cs +++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceMacInfoEditorForm.cs @@ -7,1902 +7,1900 @@ using ZigBee.Device; namespace Shared.Phone.UserCenter.Device -{ +{ + /// <summary> + /// 缂栬緫璁惧鐨勪俊鎭�(杩欓噷淇敼鐨勬槸MAC鍚�,杩欎釜鐢婚潰浼氭洿鏀筂AC鐨勭墿鐞嗗悕瀛�) + /// </summary> + public class DeviceMacInfoEditorForm : EditorCommonForm + { + #region 鈻� 鍙橀噺澹版槑___________________________ + /// <summary> - /// 缂栬緫璁惧鐨勪俊鎭�(杩欓噷淇敼鐨勬槸MAC鍚�,杩欎釜鐢婚潰浼氭洿鏀筂AC鐨勭墿鐞嗗悕瀛�) + /// 璁惧瀵硅薄 /// </summary> - public class DeviceMacInfoEditorForm : EditorCommonForm - { - #region 鈻� 鍙橀噺澹版槑___________________________ - - /// <summary> - /// 璁惧瀵硅薄 - /// </summary> - private List<CommonDevice> listNewDevice = null; - /// <summary> - /// 鍒楄〃鎺т欢 - /// </summary> - private FrameListControl listview = null; - /// <summary> - /// 璁惧鐨勮澶囩被鍨� - /// </summary> - private HashSet<DeviceType> listDeviceType = new HashSet<DeviceType>(); - /// <summary> - /// 璁惧鍏蜂綋绫诲瀷鐨勪俊鎭� - /// </summary> - private DeviceEnumInfo deviceEnumInfo = null; - /// <summary> - /// 涓ぎ绌鸿皟鐨勭増鏈帶浠� - /// </summary> - private NormalViewControl btnAirConditionerVersion = null; - /// <summary> - /// 绠�绾﹀鍔熻兘闈㈡澘缁戝畾鐨勬俯搴︾洰鏍囧悕瀛� - /// </summary> - private string bindTemperatureName = string.Empty; - /// <summary> - /// 绠�绾﹀鍔熻兘闈㈡澘缁戝畾鐨勬箍搴︾洰鏍囧悕瀛� - /// </summary> - private string bindHumidityName = string.Empty; - /// <summary> - /// 绠�绾﹀鍔熻兘闈㈡澘缁戝畾琚粦鐩爣鏄俯搴� - /// </summary> - private CommonDevice bindTemperatureDev; - /// <summary> - /// 绠�绾﹀鍔熻兘闈㈡澘缁戝畾琚粦鐩爣鏄箍搴� - /// </summary> - private CommonDevice bindHumidityDev; - /// <summary> - /// 绠�绾﹂潰鏉垮綋鍓峂ac - /// </summary> - private string deviceMacTemp = string.Empty; - // <summary> - /// 绠�绾﹀鍔熻兘闈㈡澘涓缁戝畾鐨勬俯婀垮害鐩爣鍒楄〃 - /// </summary> - private List<BindObj.BindListResponseObj> bindList = new List<BindObj.BindListResponseObj>(); - /// <summary> - /// 绠�绾﹀鍔熻兘闈㈡澘鐨勬帴杩戞劅搴旀暟鎹� - private Panel.PanelProximitySensorInfo proximitySensorsInfo = new Panel.PanelProximitySensorInfo(); - #endregion + private List<CommonDevice> listNewDevice = null; + /// <summary> + /// 鍒楄〃鎺т欢 + /// </summary> + private FrameListControl listview = null; + /// <summary> + /// 璁惧鐨勮澶囩被鍨� + /// </summary> + private HashSet<DeviceType> listDeviceType = new HashSet<DeviceType>(); + /// <summary> + /// 璁惧鍏蜂綋绫诲瀷鐨勪俊鎭� + /// </summary> + private DeviceEnumInfo deviceEnumInfo = null; + /// <summary> + /// 涓ぎ绌鸿皟鐨勭増鏈帶浠� + /// </summary> + private NormalViewControl btnAirConditionerVersion = null; + /// <summary> + /// 绠�绾﹀鍔熻兘闈㈡澘缁戝畾鐨勬俯搴︾洰鏍囧悕瀛� + /// </summary> + private string bindTemperatureName = string.Empty; + /// <summary> + /// 绠�绾﹀鍔熻兘闈㈡澘缁戝畾鐨勬箍搴︾洰鏍囧悕瀛� + /// </summary> + private string bindHumidityName = string.Empty; + /// <summary> + /// 绠�绾﹀鍔熻兘闈㈡澘缁戝畾琚粦鐩爣鏄俯搴� + /// </summary> + private CommonDevice bindTemperatureDev; + /// <summary> + /// 绠�绾﹀鍔熻兘闈㈡澘缁戝畾琚粦鐩爣鏄箍搴� + /// </summary> + private CommonDevice bindHumidityDev; + /// <summary> + /// 绠�绾﹂潰鏉垮綋鍓峂ac + /// </summary> + private string deviceMacTemp = string.Empty; + // <summary> + /// 绠�绾﹀鍔熻兘闈㈡澘涓缁戝畾鐨勬俯婀垮害鐩爣鍒楄〃 + /// </summary> + private List<BindObj.BindListResponseObj> bindList = new List<BindObj.BindListResponseObj>(); + /// <summary> + /// 绠�绾﹀鍔熻兘闈㈡澘鐨勬帴杩戞劅搴旀暟鎹� + private Panel.PanelProximitySensorInfo proximitySensorsInfo = new Panel.PanelProximitySensorInfo(); + #endregion - #region 鈻� 鍒濆鍖朹____________________________ + #region 鈻� 鍒濆鍖朹____________________________ - /// <summary> - /// 鐢婚潰鏄剧ず(搴曞眰浼氬浐瀹氳皟鐢ㄦ鏂规硶锛屽�熶互瀹屾垚鐢婚潰鍒涘缓) - /// </summary> - /// <param name="deviceMac">璁惧mac鍦板潃</param> - 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(); - deviceMacTemp = deviceMac; - foreach (var device in listNewDevice) - { - //鏀堕泦璁惧绫诲瀷 - this.listDeviceType.Add(device.Type); - } - //鑾峰彇杩欎竴鍫嗚澶囨椂灞炰簬浠�涔堢被鍨嬬殑 - this.deviceEnumInfo = Common.LocalDevice.Current.GetMyDeviceEnumInfo(listNewDevice); - - //璁剧疆鏍囬淇℃伅 - base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uDeviceSettion)); - - //鍒濆鍖栧彸涓婅鑿滃崟 - this.InitTopRightMenu(); - - //鍒濆鍖栦腑閮ㄦ帶浠� - this.InitMiddleFrame(); - - //閲嶆柊鑾峰彇纭欢淇℃伅 - this.RefreshHardFirmwareInfo(); - - //绠�绾﹀鍔熻兘闈㈡澘鑾峰彇缁戝畾鐩爣鐨勬樉绀� - if (deviceEnumInfo.ConcreteType == DeviceConcreteType.ButtonPanel_SimpleMultifunction) - { - //绠�绾﹂潰鏉块殢渚夸竴涓洖璺潵鑾峰彇璁惧淇℃伅 - var dev = Common.LocalDevice.Current.GetDevice(deviceMac, 62); - if (dev != null) - { - var key = new ZigBee.Device.Panel(); - key.DeviceAddr = deviceMac; - key.CurrentGateWayId = dev.CurrentGateWayId; - InitBindInfo(key); - } - } - } - - /// <summary> - /// 鍒濆鍖栦腑閮ㄦ帶浠� - /// </summary> - private void InitMiddleFrame() - { - //娓呯┖bodyFrame - this.ClearBodyFrame(); - - var listBackControl = new VerticalFrameControl(); - listBackControl.Height = bodyFrameLayout.Height; - bodyFrameLayout.AddChidren(listBackControl); - - //鍒濆鍖栨甯� - var tableContr = new InformationEditorControl(); - 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; - listBackControl.frameTable.AddChidren(btnPic); - btnPic.InitControl(listNewDevice[0]); - - //璁惧澶囨敞 - string caption = Language.StringByID(R.MyInternationalizationString.uDeviceNote); - string deviceName = Common.LocalDevice.Current.GetDeviceMacName(listNewDevice[0]); - var btnNote = new FrameCaptionInputControl(caption, deviceName, listview.rowSpace / 2); - btnNote.txtInput.MaxByte = 48;//闄愬埗鍙兘杈撳叆48涓瓧鑺� - listview.AddChidren(btnNote); - btnNote.InitControl(); - //鍒掔嚎 - btnNote.AddBottomLine(); - btnNote.txtInput.FinishInputEvent += () => - { - string oldName = Common.LocalDevice.Current.GetDeviceMacName(listNewDevice[0]); - if (btnNote.Text == string.Empty) - { - btnNote.Text = oldName; - } - if (oldName != btnNote.Text) - { - //鏌ョ湅妯℃澘鏃�,涓嶅厑璁哥紪杈� - if (Common.Config.Instance.Home.IsShowTemplate == true) - { - return; - } - //淇敼鍚嶅瓧 - this.DeviceReName(btnNote.Text, false); - } - }; - - //璁惧绫诲瀷 - caption = Language.StringByID(R.MyInternationalizationString.uDeviceType); - deviceName = Common.LocalDevice.Current.GetDeviceObjectText(listNewDevice); - var btnType = new FrameCaptionViewControl(caption, deviceName, listview.rowSpace / 2); - btnType.UseClickStatu = false; - listview.AddChidren(btnType); - btnType.InitControl(); - //鍒掔嚎 - btnType.AddBottomLine(); - - //瀹夎浣嶇疆 - var rowBeloneArea = new BelongAreaControl(listview.rowSpace / 2); - listview.AddChidren(rowBeloneArea); - rowBeloneArea.InitControl(Language.StringByID(R.MyInternationalizationString.uInstallationLocation), this.listNewDevice); - //搴曠嚎 - rowBeloneArea.AddBottomLine(); - //鏌ョ湅妯℃澘鏃�,涓嶅厑璁哥紪杈� - if (Common.Config.Instance.Home.IsShowTemplate == true) - { - rowBeloneArea.CanClick = false; - } - - var listCheck = new List<string>(); - rowBeloneArea.SelectRoomEvent += (roomKeys) => - { - //閫夋嫨鏈垎閰嶆椂,娓呯┖ - if (roomKeys == string.Empty) { listCheck = new List<string>(); } - foreach (var device in this.listNewDevice) - { - 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); - 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) - { - //濡傛灉杩欎釜鍥炶矾涔嬪墠閮借繕娌℃湁鍖哄煙,鍦ㄦ湰鐣岄潰杩樻病鏈夊叧闂箣鍓�,鍙互鏃犳潯浠堕殢渚垮彉鏇� - HdlRoomLogic.Current.ChangedRoom(device, roomKeys); - } - } - //淇濆瓨璁惧鎴块棿绱㈠紩 - Common.LocalDevice.Current.SaveRealDeviceRoomId(this.listNewDevice, roomKeys); - }; - - //娣诲姞鍏ㄩ儴鑿滃崟 - this.AddAllMenuRow(); - - //鍒濆鍖栨甯冨畬鎴� - tableContr.FinishInitControl(); - tableContr = null; - - //淇濆瓨 - var btnFinish = new BottomClickButton(); - btnFinish.TextID = R.MyInternationalizationString.uSave; - bodyFrameLayout.AddChidren(btnFinish); - btnFinish.ButtonClickEvent += (sender, e) => - { - string oldName = Common.LocalDevice.Current.GetDeviceMacName(listNewDevice[0]); - if (btnNote.Text.Trim() == string.Empty) - { - btnNote.Text = oldName; - } - if (oldName != btnNote.Text.Trim()) - { - //淇敼鍚嶅瓧 - this.DeviceReName(btnNote.Text.Trim(), true); - } - else - { - //鍏抽棴鑷韩 - this.CloseForm(); - } - }; - //鏌ョ湅妯℃澘鏃�,涓嶅厑璁哥紪杈� - if (Common.Config.Instance.Home.IsShowTemplate == 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 - - #region 鈻� 娣诲姞鑿滃崟___________________________ - - /// <summary> - /// 娣诲姞鍏ㄩ儴鑿滃崟 - /// </summary> - private void AddAllMenuRow() - { - if (deviceEnumInfo.BeloneType == DeviceBeloneType.A鏅鸿兘闂ㄩ攣) - { - //鍙湁鏄渤涓滅殑璁惧鐨勬椂鍊� - if (deviceEnumInfo.IsHdlDevice == true) - { - //娣诲姞銆愮敤鎴风鐞嗐�戣 - this.AddUserManageRow(); - //娣诲姞銆愯繙绋嬪紑閿併�戣 - this.AddRemoteUnLocksRow(); - //娣诲姞銆愰棬閿佹椂闂淬�戣 - this.AddDoorLocksTimeRow(); - } - } - else if (deviceEnumInfo.ConcreteType == DeviceConcreteType.AirConditioner_ZbGateway) - { - //娣诲姞銆愬鍐呮満璁剧疆銆戣(绌鸿皟涓撶敤) - this.AddIndoorUnitSettionRow(); - } - else if (deviceEnumInfo.ConcreteType == DeviceConcreteType.ButtonPanel_SimpleMultifunction) - { - //绠�绾﹀鍔熻兘闈㈡澘 - this.AddIBindRow(deviceMacTemp); - this.AddProximitySensorsRow(deviceMacTemp); - this.AddFunctionSettionRow(); - this.AddHumiditySourceRow(deviceMacTemp); - this.AddTemperatureSensorRow(deviceMacTemp); - this.DataCorrectionRow(deviceMacTemp); - } - else if (deviceEnumInfo.ConcreteType == DeviceConcreteType.ButtonPanel_SimpleEnvironment) - { - //娣诲姞銆愮粦瀹氱洰鏍囥�戣(绠�绾︾幆澧冮潰鏉跨敤) - this.AddSimplePanelSettionRow(); - } - else - { - //娣诲姞銆愬伐浣滄ā寮忋�戣(pir浼犳劅鍣ㄤ笓鐢�) - this.AddPirSensorWorkModeRow(); - //娣诲姞銆愮粦瀹氱洰鏍囥�戣(pir浼犳劅鍣ㄤ笓鐢�) - this.AddPirSensorBindRow(); - //娣诲姞銆愭柟鍚戜笌闄愪綅銆戣(寮�鍚堝笜,鍗峰笜涓撶敤) - this.AddDirectionAndLimitRow(); - //娣诲姞銆愭墜鎷夋帶鍒躲�戣(寮�鍚堝笜涓撶敤) - this.AddHandPullControlRow(); - //娣诲姞銆愭寜閿缃�戣(鏂规偊涓撶敤) --杩欎釜鏈夊彲鑳藉拰闈㈡澘閲嶅彔 - 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(); - - //娣诲姞銆愮┖璋冩ā鍧楃増鏈�(绌鸿皟涓撶敤)銆戣 - this.AddAirConditionerModelVersionRow(); - - if (deviceEnumInfo.IsHdlDevice == true) - { - //娣诲姞銆愬浐浠跺崌绾с�戣 - this.AddFirmwareUpdateRow(); - } - } - - #endregion - - #region 鈻� 鐢ㄦ埛绠$悊(闂ㄩ攣)_____________________ - - /// <summary> - /// 娣诲姞銆愮敤鎴风鐞嗐�戣锛堥棬閿佷笓鐢級 - /// </summary> - private void AddUserManageRow() - { - //濡傛灉鏄櫤鑳介棬閿� - if (deviceEnumInfo.BeloneType == DeviceBeloneType.A鏅鸿兘闂ㄩ攣) - { - //鐢ㄦ埛绠$悊 - string caption = Language.StringByID(R.MyInternationalizationString.uUserManage); - var btnRow = new FrameRowControl(listview.rowSpace / 2); - listview.AddChidren(btnRow); - btnRow.AddLeftCaption(caption, 600); - //鍚戝彸鍥炬爣 - btnRow.AddRightArrow(); - //搴曠嚎 - btnRow.AddBottomLine(); - var doorLock = this.listNewDevice[0] as ZigBee.Device.DoorLock; - 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); - }; - 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); - }; - HdlCheckLogic.Current.CheckSecondarySecurity(action, actionNone); - - } - else - { - this.ShowMassage(ShowMsgType.Tip, Language.StringByID(R.MyInternationalizationString.AccountIsFreezed)); - } - CommonPage.Loading.Hide(); - } - }; - } - } - - #endregion - - #region 鈻� 杩滅▼寮�閿�(闂ㄩ攣)_____________________ - - /// <summary> - /// 娣诲姞銆愯繙绋嬪紑閿併�戣锛堥棬閿佷笓鐢級 - /// </summary> - private void AddRemoteUnLocksRow() - { - //濡傛灉鏄櫤鑳介棬閿� - if (deviceEnumInfo.BeloneType == DeviceBeloneType.A鏅鸿兘闂ㄩ攣) - { - //杩滅▼寮�閿� - string caption = Language.StringByID(R.MyInternationalizationString.uRemoteUnLocks); - var btnRow = new FrameRowControl(listview.rowSpace / 2); - btnRow.UseClickStatu = false; - listview.AddChidren(btnRow); - btnRow.AddLeftCaption(caption, 600); - //寮�鍏冲浘鏍� - var btnswitch = btnRow.AddMostRightSwitchIcon(); - //搴曠嚎 - btnRow.AddBottomLine(); - - var doorLock = (ZigBee.Device.DoorLock)listNewDevice[0]; - if (string.IsNullOrEmpty(doorLock.RemoteUnlockPassword) == false) - { - btnswitch.IsSelected = true; - } - //濡傛灉褰撳墠浣忓畢鏄櫄鎷熶綇瀹呯殑璇�,璁╂墍鏈夎彍鍗曢兘涓嶈兘鐐瑰嚮 - if (Common.Config.Instance.Home.IsVirtually == true) - { - btnswitch.CanClick = false; - } - - 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)); - } - } - }; - } - } - - #endregion - - #region 鈻� 闂ㄩ攣鏃堕棿(闂ㄩ攣)_____________________ - - /// <summary> - /// 娣诲姞銆愰棬閿佹椂闂淬�戣锛堥棬閿佷笓鐢級 - /// </summary> - private void AddDoorLocksTimeRow() - { - //濡傛灉鏄櫤鑳介棬閿� - if (deviceEnumInfo.BeloneType == DeviceBeloneType.A鏅鸿兘闂ㄩ攣) - { - //闂ㄩ攣鏃堕棿 - string caption = Language.StringByID(R.MyInternationalizationString.uDoorLocksTime); - var btnRow = new FrameRowControl(listview.rowSpace / 2); - listview.AddChidren(btnRow); - btnRow.AddLeftCaption(caption, 600); - //鍚戝彸鍥炬爣 - btnRow.AddRightArrow(); - //搴曠嚎 - btnRow.AddBottomLine(); - var doorLock = this.listNewDevice[0] as ZigBee.Device.DoorLock; - 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)); - } - } - }; - } - } - - #endregion - - #region 鈻� 鎸夐敭璁剧疆(闈㈡澘)_____________________ - - /// <summary> - /// 娣诲姞銆愭寜閿缃�戣(闈㈡澘) - /// </summary> - private void AddPanelSettionRow() - { - //蹇呴』鏄渤涓滆澶�,蹇呴』鏄潰鏉匡紝骞朵笖鏈夊共鎺ョ偣鎵嶈 - if (deviceEnumInfo.IsHdlDevice == false || deviceEnumInfo.BeloneType != DeviceBeloneType.A鎸夐敭闈㈡澘 || listDeviceType.Contains(DeviceType.OnOffSwitch) == false) - { - return; - } - //鎸夐敭璁剧疆 - 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 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 DevicePanel.PanelSettionWithSourceForm(); - form.AddForm(listNewDevice[0]); - }; - } - - #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 || deviceEnumInfo.ConcreteType == DeviceConcreteType.ButtonPanel_FangyueFreshAir) - { - //鏂规偊鐜闈㈡澘鐨勬寜閿厤缃�&鏂规偊鏂伴闈㈡澘鐨勬寜閿厤缃� - var form = new DevicePanel.PanelSettionWithSourceForm(); - form.AddForm(listNewDevice[0]); - } - else - { - var form = new DevicePanel.PanelFangyueButtonSettionForm(); - form.AddForm(listNewDevice[0]); - } - }; - return true; - } - return false; - } - - #endregion - - #region 鈻� 骞叉帴鐐硅缃�(骞叉帴鐐�)_________________ - - /// <summary> - /// 娣诲姞銆愬共鎺ョ偣璁剧疆銆戣 - /// </summary> - private void AddDryContactSettionRow() - { - if (this.listDeviceType.Contains(DeviceType.OnOffSwitch) == false) - { - //蹇呴』鏈変竴璺洖璺槸OnOffSwitch鎵嶈,闈㈡澘鐨勫共鎺ョ偣鐨勮瘽锛屼娇鐢ㄧ殑鏄埆鐨勮彍鍗� - return; - } - if (deviceEnumInfo.IsHdlDevice == true && deviceEnumInfo.BeloneType == DeviceBeloneType.A鎸夐敭闈㈡澘) - { - //娌充笢鐨勯潰鏉跨殑璇濓紝瀹冩湁鑷繁鐨勯厤缃晫闈�, - //濡傛灉鏄涓夋柟璁惧鐨勮瘽锛屼娇鐢ㄦ櫘閫氬共鎺ョ偣鐣岄潰(瀹冭兘浣跨敤缁戝畾鍔熻兘,鏃犺儗鍏夎缃�) - return; - } - - //骞叉帴鐐硅缃� - string caption = Language.StringByID(R.MyInternationalizationString.uDryContactSettion); - var btnBackLight = new FrameRowControl(listview.rowSpace / 2); - listview.AddChidren(btnBackLight); - btnBackLight.AddLeftCaption(caption, 600); - //鍚戝彸鍥炬爣 - btnBackLight.AddRightArrow(); - //搴曠嚎 - btnBackLight.AddBottomLine(); - btnBackLight.ButtonClickEvent += (sender, e) => - { - var form = new DeviceDryContactSettionForm(); - form.AddForm(listNewDevice[0]); - }; - } - - #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> - /// 娣诲姞銆愮粦瀹氱洰鏍囥�戣(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) - { - //鏂伴灏忔ā鍧楀彧鏈変竴涓洖璺紝浣嗚姹傛柊椋庡皬妯″潡鐨勬柊椋庢湁鍔熻兘璁剧疆 - 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; - } - - //鍔熻兘璁剧疆 - 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.ConcreteType == DeviceConcreteType.ButtonPanel_FangyueTwo - || deviceEnumInfo.ConcreteType == DeviceConcreteType.ButtonPanel_FangyueFour - || deviceEnumInfo.ConcreteType == DeviceConcreteType.ButtonPanel_FangyueEight) - { - var form = new DevicePanel.PanelFangyueFunctionSettionForm(); - form.AddForm(listNewDevice[0], deviceEnumInfo); - } - //绠�绾﹀鍔熻兘闈㈡澘 - else if (deviceEnumInfo.ConcreteType == DeviceConcreteType.ButtonPanel_SimpleMultifunction) - { - var form = new DeviceFunctionSettionForm(); - foreach (var dev in listNewDevice) - { - if (dev.Type == DeviceType.OnOffOutput && dev.DeviceEpoint == 62) - { - form.AddForm(dev, true); - } - } + /// <summary> + /// 鐢婚潰鏄剧ず(搴曞眰浼氬浐瀹氳皟鐢ㄦ鏂规硶锛屽�熶互瀹屾垚鐢婚潰鍒涘缓) + /// </summary> + /// <param name="deviceMac">璁惧mac鍦板潃</param> + 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(); + deviceMacTemp = deviceMac; + foreach (var device in listNewDevice) + { + //鏀堕泦璁惧绫诲瀷 + this.listDeviceType.Add(device.Type); + } + //鑾峰彇杩欎竴鍫嗚澶囨椂灞炰簬浠�涔堢被鍨嬬殑 + this.deviceEnumInfo = Common.LocalDevice.Current.GetMyDeviceEnumInfo(listNewDevice); - } - //娌充笢鐨勯潰鏉胯澶� - else 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); - } - }; - } - - /// <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); - }; - } - - #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 += (sender, e) => - { - //鍒囨崲妯″紡 - bool statu = !btnSwitch.IsSelected; - var result = HdlDeviceCurtainLogic.Current.SetHandPullControl(deviceCurtain, statu); - if (result == true) - { - btnSwitch.IsSelected = statu; - } - }; - //鏌ョ湅妯℃澘鏃�,涓嶅厑璁哥紪杈� - if (Common.Config.Instance.Home.IsShowTemplate == true) - { - btnSwitch.CanClick = false; - btnSwitch.IsSelected = TemplateData.TemplateDeviceDataLogic.Current.GetCurtainHandPullControl(deviceCurtain); - return; - } - //濡傛灉鏄櫄鎷熶綇瀹� - if (Common.Config.Instance.Home.IsVirtually == true) - { - btnSwitch.IsSelected = TemplateData.TemplateDeviceDataLogic.Current.GetCurtainHandPullControl(deviceCurtain); - return; - } - - //娣诲姞灞炴�т笂鎶ョ洃鍚� - 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)) - { - HdlThreadLogic.Current.RunMain(() => - { - btnSwitch.IsSelected = true; - }); - } - } - } - }); - //鍙戦�佸懡浠� - deviceCurtain.ReadCurtainDirectionAndMode(); - } - - #endregion; - - #region 鈻� 瀹ゅ唴鏈鸿缃�(绌鸿皟)___________________ - - /// <summary> - /// 娣诲姞銆愬鍐呮満璁剧疆銆戣(绌鸿皟涓撶敤) - /// </summary> - private void AddIndoorUnitSettionRow() - { - 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); - 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); - }; - } - #endregion - - #region 鈻� 绠�绾﹀鍔熻兘闈㈡澘鐢╛__________________ - /// <summary> - /// 娣诲姞銆愮粦瀹氱洰鏍囥�戣 - /// </summary> - private void AddIBindRow(string deviceMac) - { - 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 dev = Common.LocalDevice.Current.GetDevice(deviceMac, 32);//绠�绾﹂潰鏉块殢渚夸竴涓寜閿潵鑾峰彇璁惧 - if (dev != null) - { - var curControlDev = dev as Panel; - var simpleMutilfunctionTargetsPage = new Shared.Phone.UserCenter.DeviceBind.PanelSimpleMutilfunctionTargetsForm(curControlDev); - Shared.Phone.UserView.HomePage.Instance.AddChidren(simpleMutilfunctionTargetsPage); - Shared.Phone.UserView.HomePage.Instance.PageIndex += 1; - simpleMutilfunctionTargetsPage.Show(); - } - }; - } - - #region 鈻� 鎺ヨ繎鎰熷簲___________________________ - - /// <summary> - /// 鎺ヨ繎鎰熷簲琛� - /// </summary> - private void AddProximitySensorsRow(string deviceMac) - { - string proximity = Language.StringByID(R.MyInternationalizationString.ProximitySensors); - var proximitySensors = new FrameRowControl(listview.rowSpace / 2); - listview.AddChidren(proximitySensors); - proximitySensors.AddLeftCaption(proximity, 400); - - //鎺ヨ繎鎰熷簲 - proximitySensors.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.ProximitySensors), 400); - //寮�鍏虫帶浠� - var btnSwitch = proximitySensors.AddMostRightSwitchIcon(); - //搴曠嚎 - proximitySensors.AddBottomLine(); - - btnSwitch.ButtonClickEvent += async (sender, e) => + //璁剧疆鏍囬淇℃伅 + base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uDeviceSettion)); + + //鍒濆鍖栧彸涓婅鑿滃崟 + this.InitTopRightMenu(); + + //鍒濆鍖栦腑閮ㄦ帶浠� + this.InitMiddleFrame(); + + //閲嶆柊鑾峰彇纭欢淇℃伅 + this.RefreshHardFirmwareInfo(); + + //绠�绾﹀鍔熻兘闈㈡澘鑾峰彇缁戝畾鐩爣鐨勬樉绀� + if (deviceEnumInfo.ConcreteType == DeviceConcreteType.ButtonPanel_SimpleMultifunction) + { + //绠�绾﹂潰鏉块殢渚夸竴涓洖璺潵鑾峰彇璁惧淇℃伅 + var dev = Common.LocalDevice.Current.GetDevice(deviceMac, 62); + if (dev != null) + { + var key = new ZigBee.Device.Panel(); + key.DeviceAddr = deviceMac; + key.CurrentGateWayId = dev.CurrentGateWayId; + InitBindInfo(key); + } + } + } + + /// <summary> + /// 鍒濆鍖栦腑閮ㄦ帶浠� + /// </summary> + private void InitMiddleFrame() + { + //娓呯┖bodyFrame + this.ClearBodyFrame(); + + var listBackControl = new VerticalFrameControl(); + listBackControl.Height = bodyFrameLayout.Height; + bodyFrameLayout.AddChidren(listBackControl); + + //鍒濆鍖栨甯� + var tableContr = new InformationEditorControl(); + 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; + listBackControl.frameTable.AddChidren(btnPic); + btnPic.InitControl(listNewDevice[0]); + + //璁惧澶囨敞 + string caption = Language.StringByID(R.MyInternationalizationString.uDeviceNote); + string deviceName = Common.LocalDevice.Current.GetDeviceMacName(listNewDevice[0]); + var btnNote = new FrameCaptionInputControl(caption, deviceName, listview.rowSpace / 2); + btnNote.txtInput.MaxByte = 48;//闄愬埗鍙兘杈撳叆48涓瓧鑺� + listview.AddChidren(btnNote); + btnNote.InitControl(); + //鍒掔嚎 + btnNote.AddBottomLine(); + btnNote.txtInput.FinishInputEvent += () => + { + string oldName = Common.LocalDevice.Current.GetDeviceMacName(listNewDevice[0]); + if (btnNote.Text == string.Empty) + { + btnNote.Text = oldName; + } + if (oldName != btnNote.Text) + { + //鏌ョ湅妯℃澘鏃�,涓嶅厑璁哥紪杈� + if (Common.Config.Instance.Home.IsShowTemplate == true) + { + return; + } + //淇敼鍚嶅瓧 + this.DeviceReName(btnNote.Text, false); + } + }; + + //璁惧绫诲瀷 + caption = Language.StringByID(R.MyInternationalizationString.uDeviceType); + deviceName = Common.LocalDevice.Current.GetDeviceObjectText(listNewDevice); + var btnType = new FrameCaptionViewControl(caption, deviceName, listview.rowSpace / 2); + btnType.UseClickStatu = false; + listview.AddChidren(btnType); + btnType.InitControl(); + //鍒掔嚎 + btnType.AddBottomLine(); + + //瀹夎浣嶇疆 + var rowBeloneArea = new BelongAreaControl(listview.rowSpace / 2); + listview.AddChidren(rowBeloneArea); + rowBeloneArea.InitControl(Language.StringByID(R.MyInternationalizationString.uInstallationLocation), this.listNewDevice); + //搴曠嚎 + rowBeloneArea.AddBottomLine(); + //鏌ョ湅妯℃澘鏃�,涓嶅厑璁哥紪杈� + if (Common.Config.Instance.Home.IsShowTemplate == true) + { + rowBeloneArea.CanClick = false; + } + + var listCheck = new List<string>(); + rowBeloneArea.SelectRoomEvent += (roomKeys) => + { + //閫夋嫨鏈垎閰嶆椂,娓呯┖ + if (roomKeys == string.Empty) { listCheck = new List<string>(); } + foreach (var device in this.listNewDevice) + { + 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); + 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) + { + //濡傛灉杩欎釜鍥炶矾涔嬪墠閮借繕娌℃湁鍖哄煙,鍦ㄦ湰鐣岄潰杩樻病鏈夊叧闂箣鍓�,鍙互鏃犳潯浠堕殢渚垮彉鏇� + HdlRoomLogic.Current.ChangedRoom(device, roomKeys); + } + } + //淇濆瓨璁惧鎴块棿绱㈠紩 + Common.LocalDevice.Current.SaveRealDeviceRoomId(this.listNewDevice, roomKeys); + }; + + //娣诲姞鍏ㄩ儴鑿滃崟 + this.AddAllMenuRow(); + + //鍒濆鍖栨甯冨畬鎴� + tableContr.FinishInitControl(); + tableContr = null; + + //淇濆瓨 + var btnFinish = new BottomClickButton(); + btnFinish.TextID = R.MyInternationalizationString.uSave; + bodyFrameLayout.AddChidren(btnFinish); + btnFinish.ButtonClickEvent += (sender, e) => + { + string oldName = Common.LocalDevice.Current.GetDeviceMacName(listNewDevice[0]); + if (btnNote.Text.Trim() == string.Empty) + { + btnNote.Text = oldName; + } + if (oldName != btnNote.Text.Trim()) + { + //淇敼鍚嶅瓧 + this.DeviceReName(btnNote.Text.Trim(), true); + } + else + { + //鍏抽棴鑷韩 + this.CloseForm(); + } + }; + //鏌ョ湅妯℃澘鏃�,涓嶅厑璁哥紪杈� + if (Common.Config.Instance.Home.IsShowTemplate == 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 + + #region 鈻� 娣诲姞鑿滃崟___________________________ + + /// <summary> + /// 娣诲姞鍏ㄩ儴鑿滃崟 + /// </summary> + private void AddAllMenuRow() + { + if (deviceEnumInfo.BeloneType == DeviceBeloneType.A鏅鸿兘闂ㄩ攣) + { + //鍙湁鏄渤涓滅殑璁惧鐨勬椂鍊� + if (deviceEnumInfo.IsHdlDevice == true) + { + //娣诲姞銆愮敤鎴风鐞嗐�戣 + this.AddUserManageRow(); + //娣诲姞銆愯繙绋嬪紑閿併�戣 + this.AddRemoteUnLocksRow(); + //娣诲姞銆愰棬閿佹椂闂淬�戣 + this.AddDoorLocksTimeRow(); + } + } + else if (deviceEnumInfo.ConcreteType == DeviceConcreteType.AirConditioner_ZbGateway) + { + //娣诲姞銆愬鍐呮満璁剧疆銆戣(绌鸿皟涓撶敤) + this.AddIndoorUnitSettionRow(); + } + else if (deviceEnumInfo.ConcreteType == DeviceConcreteType.ButtonPanel_SimpleMultifunction) + { + //绠�绾﹀鍔熻兘闈㈡澘 + this.AddIBindRow(deviceMacTemp); + this.AddProximitySensorsRow(deviceMacTemp); + this.AddFunctionSettionRow(); + this.AddHumiditySourceRow(deviceMacTemp); + this.AddTemperatureSensorRow(deviceMacTemp); + this.DataCorrectionRow(deviceMacTemp); + } + else if (deviceEnumInfo.ConcreteType == DeviceConcreteType.ButtonPanel_SimpleEnvironment) + { + //娣诲姞銆愮粦瀹氱洰鏍囥�戣(绠�绾︾幆澧冮潰鏉跨敤) + this.AddSimplePanelSettionRow(); + } + else + { + //娣诲姞銆愬伐浣滄ā寮忋�戣(pir浼犳劅鍣ㄤ笓鐢�) + this.AddPirSensorWorkModeRow(); + //娣诲姞銆愮粦瀹氱洰鏍囥�戣(pir浼犳劅鍣ㄤ笓鐢�) + this.AddPirSensorBindRow(); + //娣诲姞銆愭柟鍚戜笌闄愪綅銆戣(寮�鍚堝笜,鍗峰笜涓撶敤) + this.AddDirectionAndLimitRow(); + //娣诲姞銆愭墜鎷夋帶鍒躲�戣(寮�鍚堝笜涓撶敤) + this.AddHandPullControlRow(); + //娣诲姞銆愭寜閿缃�戣(鏂规偊涓撶敤) --杩欎釜鏈夊彲鑳藉拰闈㈡澘閲嶅彔 + 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(); + + //娣诲姞銆愮┖璋冩ā鍧楃増鏈�(绌鸿皟涓撶敤)銆戣 + this.AddAirConditionerModelVersionRow(); + + if (deviceEnumInfo.IsHdlDevice == true) + { + //娣诲姞銆愬浐浠跺崌绾с�戣 + this.AddFirmwareUpdateRow(); + } + } + + #endregion + + #region 鈻� 鐢ㄦ埛绠$悊(闂ㄩ攣)_____________________ + + /// <summary> + /// 娣诲姞銆愮敤鎴风鐞嗐�戣锛堥棬閿佷笓鐢級 + /// </summary> + private void AddUserManageRow() + { + //濡傛灉鏄櫤鑳介棬閿� + if (deviceEnumInfo.BeloneType == DeviceBeloneType.A鏅鸿兘闂ㄩ攣) + { + //鐢ㄦ埛绠$悊 + string caption = Language.StringByID(R.MyInternationalizationString.uUserManage); + var btnRow = new FrameRowControl(listview.rowSpace / 2); + listview.AddChidren(btnRow); + btnRow.AddLeftCaption(caption, 600); + //鍚戝彸鍥炬爣 + btnRow.AddRightArrow(); + //搴曠嚎 + btnRow.AddBottomLine(); + var doorLock = this.listNewDevice[0] as ZigBee.Device.DoorLock; + 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); + }; + 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) { - btnSwitch.IsSelected = !btnSwitch.IsSelected; - proximitySensorsInfo.enable = btnSwitch.IsSelected; + 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); - //绠�绾﹂潰鏉块殢渚夸竴涓洖璺潵鑾峰彇璁惧淇℃伅 - var dev = Common.LocalDevice.Current.GetDevice(deviceMac, 62); - if (dev != null) + } + else + { + this.ShowMassage(ShowMsgType.Tip, Language.StringByID(R.MyInternationalizationString.AccountIsFreezed)); + } + CommonPage.Loading.Hide(); + } + }; + } + } + + #endregion + + #region 鈻� 杩滅▼寮�閿�(闂ㄩ攣)_____________________ + + /// <summary> + /// 娣诲姞銆愯繙绋嬪紑閿併�戣锛堥棬閿佷笓鐢級 + /// </summary> + private void AddRemoteUnLocksRow() + { + //濡傛灉鏄櫤鑳介棬閿� + if (deviceEnumInfo.BeloneType == DeviceBeloneType.A鏅鸿兘闂ㄩ攣) + { + //杩滅▼寮�閿� + string caption = Language.StringByID(R.MyInternationalizationString.uRemoteUnLocks); + var btnRow = new FrameRowControl(listview.rowSpace / 2); + btnRow.UseClickStatu = false; + listview.AddChidren(btnRow); + btnRow.AddLeftCaption(caption, 600); + //寮�鍏冲浘鏍� + var btnswitch = btnRow.AddMostRightSwitchIcon(); + //搴曠嚎 + btnRow.AddBottomLine(); + + var doorLock = (ZigBee.Device.DoorLock)listNewDevice[0]; + if (string.IsNullOrEmpty(doorLock.RemoteUnlockPassword) == false) + { + btnswitch.IsSelected = true; + } + //濡傛灉褰撳墠浣忓畢鏄櫄鎷熶綇瀹呯殑璇�,璁╂墍鏈夎彍鍗曢兘涓嶈兘鐐瑰嚮 + if (Common.Config.Instance.Home.IsVirtually == true) + { + btnswitch.CanClick = false; + } + + 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) { - var key = new ZigBee.Device.Panel(); - key.DeviceAddr = deviceMac; - key.CurrentGateWayId = dev.CurrentGateWayId; - SetProximitySensor(key); + btnswitch.IsSelected = false; + doorLock.RemoteUnlockPassword = string.Empty; + return; } - }; - if (proximitySensorsInfo.enable == true) - { - btnSwitch.IsSelected = true; - } - } - #endregion - - #region 鈻� 鏁版嵁鐭_________________________ - /// <summary> - /// 鏁版嵁鐭琛� - /// </summary> - private void DataCorrectionRow(string deviceMac) - { - //鏁版嵁鐭 - var rowLight = new FrameRowControl(listview.rowSpace / 2); - listview.AddChidren(rowLight); - rowLight.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.DataCorrection), 600); - //搴曠嚎 - rowLight.AddBottomLine(); - //鍙崇澶� - rowLight.AddRightArrow(); - rowLight.ButtonClickEvent += (sender, e) => - { - var dev = Common.LocalDevice.Current.GetDevice(deviceMac, 62);//绠�绾﹂潰鏉块殢渚夸竴涓洖璺潵鑾峰彇璁惧 - var device = new CommonDevice(); - if (dev != null) - { - device.CurrentGateWayId = dev.CurrentGateWayId; - } - device.DeviceAddr = deviceMac; - device.DeviceEpoint = 65; - var form = new Shared.Phone.UserCenter.DevicePanel.DataCorrectionForm(); - form.AddForm(device); - }; - } - #endregion - - /// <summary> - /// 婀垮害鏉ユ簮琛� - /// </summary> - private void AddHumiditySourceRow(string deviceMac) - { - //婀垮害 - 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 dev = Common.LocalDevice.Current.GetDevice(deviceMac, 62);//绠�绾﹂潰鏉块殢渚夸竴涓洖璺潵鑾峰彇璁惧 - var device = new CommonDevice(); - if (dev != null) - { - device.CurrentGateWayId = dev.CurrentGateWayId; - } - device.Type = DeviceType.OnOffSwitch; - device.DeviceAddr = deviceMac; - device.DeviceEpoint = 1;//鑳界粦瀹氭箍搴︾殑鍥炶矾 - var paneTargetsBaseFormp = new PaneTargetsBaseForm(device, bindHumidityDev, BindInfo.BindType.Humidity); - Shared.Phone.UserView.HomePage.Instance.AddChidren(paneTargetsBaseFormp); - Shared.Phone.UserView.HomePage.Instance.PageIndex += 1; - paneTargetsBaseFormp.Show(); - paneTargetsBaseFormp.actionHumidityTarget += (bindName) => - { - HdlThreadLogic.Current.RunMain(() => - { - if (string.IsNullOrEmpty(bindName)) - { - btnHumidityStatu.Text = Language.StringByID(R.MyInternationalizationString.nothing); - } - else - { - btnHumidityStatu.Text = bindName; - } - }); - }; - }; - } - - /// <summary> - /// 娓╁害鏉ユ簮琛� - /// </summary> - private void AddTemperatureSensorRow(string deviceMac) - { - //娓╁害鏉ユ簮 - 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 dev = Common.LocalDevice.Current.GetDevice(deviceMac, 62);//绠�绾﹂潰鏉块殢渚夸竴涓洖璺潵鑾峰彇璁惧 - var device = new CommonDevice(); - if (dev != null) - { - device.CurrentGateWayId = dev.CurrentGateWayId; - } - device.Type = DeviceType.OnOffSwitch; - device.DeviceAddr = deviceMac; - device.DeviceEpoint = 1;//鑳界粦瀹氭俯搴︾殑鍥炶矾 - var paneTargetsBaseFormp = new PaneTargetsBaseForm(device, bindTemperatureDev, BindInfo.BindType.Temperature); - Shared.Phone.UserView.HomePage.Instance.AddChidren(paneTargetsBaseFormp); - Shared.Phone.UserView.HomePage.Instance.PageIndex += 1; - paneTargetsBaseFormp.Show(); - paneTargetsBaseFormp.actionTemperatureTarget += (bindName) => - { - HdlThreadLogic.Current.RunMain(() => - { - if (string.IsNullOrEmpty(bindName)) - { - btnTemperatureStatu.Text = Language.StringByID(R.MyInternationalizationString.nothing); - } - else - { - btnTemperatureStatu.Text = bindName; - } - }); - }; - }; - } - - /// <summary> - ///鍒濆鍖栨暟鎹� - /// </summary> - void InitBindInfo(CommonDevice curControlDev) - { - System.Threading.Tasks.Task.Run(async () => - { - try - { - Application.RunOnMainThread(() => - { - CommonPage.Loading.Start(""); - }); - //璇绘俯婀垮害鏁版嵁 - curControlDev.DeviceEpoint = 1; - var result = await GetBindName(curControlDev); - if (!result) - { - Application.RunOnMainThread(() => - { - new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime) + "(" + "5007_2" + ")", Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance); - }); - 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)); + } + } + }; + } + } - //2銆佽幏璁惧鎺ヨ繎鎰熷簲鍒濆鏁版嵁 - //鎺ヨ繎鎰熷簲(浠栦滑璇撮殢渚挎嬁涓�璺洖璺氨琛屼簡) - proximitySensorsInfo = await HdlDevicePanelLogic.Current.GetDeviceProximitySensorsSettion(curControlDev); - if (proximitySensorsInfo == null) - { - proximitySensorsInfo = new Panel.PanelProximitySensorInfo(); - //鍏抽棴杩涘害鏉� - this.CloseProgressBar(ShowReLoadMode.YES); - return; - } - } - catch (Exception ex) - { - var mess = ex.Message; - } - finally - { - Application.RunOnMainThread(() => - { - //鍒濆鍖栧彸涓婅鑿滃崟 - this.InitTopRightMenu(); - //鍒濆鍖栦腑閮ㄦ帶浠� - this.InitMiddleFrame(); - CommonPage.Loading.Hide(); - }); - } - }); - } - - /// <summary> - /// 鑾峰彇缁戝畾鐨勬俯婀垮害鐩爣 - /// </summary> - /// <param name="curControlDev"></param> - /// <returns></returns> - private async System.Threading.Tasks.Task<bool> GetBindName(CommonDevice curControlDev) - { - bool result = false; - var panelBindListRes = HdlDeviceBindLogic.Current.GetDeviceBindAsync(curControlDev); - if (panelBindListRes != null && panelBindListRes.getAllBindResponseData != null) - { - bindList = panelBindListRes.getAllBindResponseData.BindList; - foreach (var bDev in bindList) - { - var device = Common.LocalDevice.Current.GetDevice(bDev.BindMacAddr, bDev.BindEpoint); - if (device == null) - { - continue; - } - if (device.Type == DeviceType.TemperatureSensor) - { - var bD = device as TemperatureSensor; - if (bD.SensorDiv == 1 && bDev.BindCluster == 1026) - { - if (string.IsNullOrEmpty(bDev.ESName)) - { - bindTemperatureName = Common.LocalDevice.Current.GetDeviceEpointName(device); - } - else - { - bindTemperatureName = bDev.ESName; - } - bindTemperatureDev = device; - } - if (bD.SensorDiv == 2 && bDev.BindCluster == 1029) - { - if (string.IsNullOrEmpty(bDev.ESName)) - { - bindHumidityName = Common.LocalDevice.Current.GetDeviceEpointName(device); - } - else - { - bindHumidityName = bDev.ESName; - } - - bindHumidityDev = device; - } - } - if (device.Type == DeviceType.FreshAirHumiditySensor) - { - if (string.IsNullOrEmpty(bDev.ESName)) - { - bindHumidityName = Common.LocalDevice.Current.GetDeviceEpointName(device); - } - else - { - bindHumidityName = bDev.ESName; - } - - bindHumidityDev = device; - } - } - result = true; - } - return result; + #endregion + + #region 鈻� 闂ㄩ攣鏃堕棿(闂ㄩ攣)_____________________ + + /// <summary> + /// 娣诲姞銆愰棬閿佹椂闂淬�戣锛堥棬閿佷笓鐢級 + /// </summary> + private void AddDoorLocksTimeRow() + { + //濡傛灉鏄櫤鑳介棬閿� + if (deviceEnumInfo.BeloneType == DeviceBeloneType.A鏅鸿兘闂ㄩ攣) + { + //闂ㄩ攣鏃堕棿 + string caption = Language.StringByID(R.MyInternationalizationString.uDoorLocksTime); + var btnRow = new FrameRowControl(listview.rowSpace / 2); + listview.AddChidren(btnRow); + btnRow.AddLeftCaption(caption, 600); + //鍚戝彸鍥炬爣 + btnRow.AddRightArrow(); + //搴曠嚎 + btnRow.AddBottomLine(); + var doorLock = this.listNewDevice[0] as ZigBee.Device.DoorLock; + 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)); + } + } + }; + } + } + + #endregion + + #region 鈻� 鎸夐敭璁剧疆(闈㈡澘)_____________________ + + /// <summary> + /// 娣诲姞銆愭寜閿缃�戣(闈㈡澘) + /// </summary> + private void AddPanelSettionRow() + { + //蹇呴』鏄渤涓滆澶�,蹇呴』鏄潰鏉匡紝骞朵笖鏈夊共鎺ョ偣鎵嶈 + if (deviceEnumInfo.IsHdlDevice == false || deviceEnumInfo.BeloneType != DeviceBeloneType.A鎸夐敭闈㈡澘 || listDeviceType.Contains(DeviceType.OnOffSwitch) == false) + { + return; + } + //鎸夐敭璁剧疆 + 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 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 DevicePanel.PanelSettionWithSourceForm(); + form.AddForm(listNewDevice[0]); + }; + } + + #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 || deviceEnumInfo.ConcreteType == DeviceConcreteType.ButtonPanel_FangyueFreshAir) + { + //鏂规偊鐜闈㈡澘鐨勬寜閿厤缃�&鏂规偊鏂伴闈㈡澘鐨勬寜閿厤缃� + var form = new DevicePanel.PanelSettionWithSourceForm(); + form.AddForm(listNewDevice[0]); + } + else + { + var form = new DevicePanel.PanelFangyueButtonSettionForm(); + form.AddForm(listNewDevice[0]); + } + }; + return true; + } + return false; + } + + #endregion + + #region 鈻� 骞叉帴鐐硅缃�(骞叉帴鐐�)_________________ + + /// <summary> + /// 娣诲姞銆愬共鎺ョ偣璁剧疆銆戣 + /// </summary> + private void AddDryContactSettionRow() + { + if (this.listDeviceType.Contains(DeviceType.OnOffSwitch) == false) + { + //蹇呴』鏈変竴璺洖璺槸OnOffSwitch鎵嶈,闈㈡澘鐨勫共鎺ョ偣鐨勮瘽锛屼娇鐢ㄧ殑鏄埆鐨勮彍鍗� + return; + } + if (deviceEnumInfo.IsHdlDevice == true && deviceEnumInfo.BeloneType == DeviceBeloneType.A鎸夐敭闈㈡澘) + { + //娌充笢鐨勯潰鏉跨殑璇濓紝瀹冩湁鑷繁鐨勯厤缃晫闈�, + //濡傛灉鏄涓夋柟璁惧鐨勮瘽锛屼娇鐢ㄦ櫘閫氬共鎺ョ偣鐣岄潰(瀹冭兘浣跨敤缁戝畾鍔熻兘,鏃犺儗鍏夎缃�) + return; + } + + //骞叉帴鐐硅缃� + string caption = Language.StringByID(R.MyInternationalizationString.uDryContactSettion); + var btnBackLight = new FrameRowControl(listview.rowSpace / 2); + listview.AddChidren(btnBackLight); + btnBackLight.AddLeftCaption(caption, 600); + //鍚戝彸鍥炬爣 + btnBackLight.AddRightArrow(); + //搴曠嚎 + btnBackLight.AddBottomLine(); + btnBackLight.ButtonClickEvent += (sender, e) => + { + var form = new DeviceDryContactSettionForm(); + form.AddForm(listNewDevice[0]); + }; + } + + #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> + /// 娣诲姞銆愮粦瀹氱洰鏍囥�戣(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) + { + //鏂伴灏忔ā鍧楀彧鏈変竴涓洖璺紝浣嗚姹傛柊椋庡皬妯″潡鐨勬柊椋庢湁鍔熻兘璁剧疆 + //鏅捐。鏋堕粯璁ゅ彧瀛樺偍绗竴鍥炶矾锛屽叾浠栧洖璺杩囨护浜� + bool isSpecial = false; + if (deviceEnumInfo.ConcreteType == DeviceConcreteType.Relay_FangyueFreshAirModul) + { + isSpecial = true; } + if (deviceEnumInfo.ConcreteType == DeviceConcreteType.Airer) + { + isSpecial = true; + var dev = listNewDevice[0]; + //鏅捐。鏋堕粯璁ゅ彧瀛樺偍绗竴鍥炶矾锛屽叾浠栧洖璺湪鍔熻兘鐣岄潰闇�瑕佽鍙栨椂闂达紝鎵�浠ユ彁鍓嶄竴涓晫闈㈣幏鍙� + for (int i = 3; i < 6; i++) + { + //娉ㄦ剰锛岃。鏋朵腑鐨勭姸鎬佺敱涓嶅悓绔偣鑾峰彇 + //鍥炶矾3:璇诲彇椋庡共寮�鍏崇姸鎬佸拰鏃堕棿鍊� + //鍥炶矾4:璇诲彇鐑樺共寮�鍏崇姸鎬佸拰鏃堕棿鍊� + //鍥炶矾5:璇诲彇娑堟瘨寮�鍏崇姸鎬佸拰鏃堕棿鍊� + HdlDeviceAttributeLogic.Current.SendAirerComand(dev, i); + } + } + if (!isSpecial) + { + return; + } + } + if (deviceEnumInfo.ConcreteType == DeviceConcreteType.ButtonPanel_FangyueEnvironment + || deviceEnumInfo.ConcreteType == DeviceConcreteType.ButtonPanel_FangyueFreshAir) + { + //鐜闈㈡澘娌℃湁鍔熻兘璁剧疆 + return; + } - #region 鈻� 璁剧疆鏁版嵁___________________________ + //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; + } - /// <summary> - /// 璁剧疆闈㈡澘鎺ヨ繎鎰熷簲鏁版嵁 - /// </summary> - private void SetProximitySensor(CommonDevice curControlDev) - { - System.Threading.Tasks.Task.Run(async () => - { - try - { - Application.RunOnMainThread(() => - { - CommonPage.Loading.Start(""); - }); - //鎺ヨ繎鎰熷簲(鎻愪緵璁惧鐨勫悓浜嬭闅忎究涓�涓洖璺氨琛�) - var result = await HdlDevicePanelLogic.Current.SetProximitySensorStatus(curControlDev, proximitySensorsInfo.enable); - if (result == false) + //鍔熻兘璁剧疆 + 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.ConcreteType == DeviceConcreteType.ButtonPanel_FangyueTwo + || deviceEnumInfo.ConcreteType == DeviceConcreteType.ButtonPanel_FangyueFour + || deviceEnumInfo.ConcreteType == DeviceConcreteType.ButtonPanel_FangyueEight) + { + var form = new DevicePanel.PanelFangyueFunctionSettionForm(); + form.AddForm(listNewDevice[0], deviceEnumInfo); + } + //绠�绾﹀鍔熻兘闈㈡澘鐨勬寜閿厤缃� + else if (deviceEnumInfo.ConcreteType == DeviceConcreteType.ButtonPanel_SimpleMultifunction) + { + foreach (var dev in listNewDevice) + { + if (dev.Type == DeviceType.OnOffOutput && dev.DeviceEpoint == 62) + { + var form = new DeviceFunctionSettionForm(); + form.AddForm(dev, true); + break; + } + } + + } + //娌充笢鐨勯潰鏉胯澶� + else 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); + } + }; + } + + /// <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); + }; + } + + #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 += (sender, e) => + { + //鍒囨崲妯″紡 + bool statu = !btnSwitch.IsSelected; + var result = HdlDeviceCurtainLogic.Current.SetHandPullControl(deviceCurtain, statu); + if (result == true) + { + btnSwitch.IsSelected = statu; + } + }; + //鏌ョ湅妯℃澘鏃�,涓嶅厑璁哥紪杈� + if (Common.Config.Instance.Home.IsShowTemplate == true) + { + btnSwitch.CanClick = false; + btnSwitch.IsSelected = TemplateData.TemplateDeviceDataLogic.Current.GetCurtainHandPullControl(deviceCurtain); + return; + } + //濡傛灉鏄櫄鎷熶綇瀹� + if (Common.Config.Instance.Home.IsVirtually == true) + { + btnSwitch.IsSelected = TemplateData.TemplateDeviceDataLogic.Current.GetCurtainHandPullControl(deviceCurtain); + return; + } + + //娣诲姞灞炴�т笂鎶ョ洃鍚� + 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)) + { + HdlThreadLogic.Current.RunMain(() => { - return; - } - } - catch (Exception ex) - { - var mess = ex.Message; - } - finally - { - Application.RunOnMainThread(() => - { - CommonPage.Loading.Hide(); - }); - } - }); + btnSwitch.IsSelected = true; + }); + } + } } + }); + //鍙戦�佸懡浠� + deviceCurtain.ReadCurtainDirectionAndMode(); + } - #endregion - #endregion + #endregion; - #region 鈻� 鍔熻兘绫诲瀷(绌烘皵寮�鍏充笓鐢�)_____________ + #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(); - //鏌ョ湅妯℃澘鏃�,涓嶅厑璁哥紪杈� - if (Common.Config.Instance.Home.IsShowTemplate == true) - { - rowFunction.CanClick = false; - } - } - - #endregion - - #region 鈻� 閫氱敤淇℃伅___________________________ - - /// <summary> - /// 娣诲姞銆愰�氱敤淇℃伅銆戣 - /// </summary> - private void AddGeneralInformationRow() - { - string caption = Language.StringByID(R.MyInternationalizationString.uGeneralInformation); - var btnGeneral = new FrameRowControl(listview.rowSpace / 2); - listview.AddChidren(btnGeneral); - btnGeneral.AddLeftCaption(caption, 600); - //鍚戝彸鍥炬爣 - btnGeneral.AddRightArrow(); - //搴曠嚎 - btnGeneral.AddBottomLine(); - btnGeneral.ButtonClickEvent += (sender, e) => - { - 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(string.Empty, 900); - if (this.listNewDevice[0] is AC) - { - this.btnAirConditionerVersion.Text = ((AC)this.listNewDevice[0]).AcModelVersion; - } - //搴曠嚎 - rowVersion.AddBottomLine(); - - //鑾峰彇涓ぎ绌鸿皟妯″潡鐨勭増鏈� - this.ReadAirConditionerVersion(); - } - - #endregion - - #region 鈻� 鍥轰欢鍗囩骇___________________________ - - /// <summary> - /// 娣诲姞銆愬浐浠跺崌绾с�戣 - /// </summary> - private void AddFirmwareUpdateRow() - { - //鎷ユ湁200绔彛杩欎釜涓滆タ鐨勬椂鍊欙紝鎵嶄細鏄剧ず杩欎竴琛� - var oTADevice = Common.LocalDevice.Current.GetOTADevice(listNewDevice[0].DeviceAddr); - if (oTADevice == null) - { - return; - } - - //鍥轰欢鍗囩骇 - string caption = Language.StringByID(R.MyInternationalizationString.uFirmwareUpdate); - var rowUpDate = new FrameRowControl(listview.rowSpace / 2); - listview.AddChidren(rowUpDate); - rowUpDate.AddLeftCaption(caption, 600); - //鍚戝彸鍥炬爣 - rowUpDate.AddRightArrow(); - //搴曠嚎 - rowUpDate.AddBottomLine(); - - //鎻愮ず鏈夋柊鐗堟湰 - var btnNewVersion = new PicViewControl(78, 55); - btnNewVersion.UnSelectedImagePath = "Item/NewVersion.png"; - btnNewVersion.Visible = false; - btnNewVersion.X = Application.GetRealWidth(242); - 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; - }; - - //濡傛灉褰撳墠浣忓畢涓嶆槸铏氭嫙浣忓畢 - if (Config.Instance.Home.IsVirtually == false - && Config.Instance.Home.IsShowTemplate == false) - { - //璁剧疆璁惧鐨勭増鏈俊鎭� - this.SetDeviceVersionInfo(btnNewVersion, oTADevice); - } - } - - /// <summary> - /// 璁剧疆璁惧鐨勭増鏈俊鎭� - /// </summary> - /// <param name="btnNewVersion">鏈夋柊鐗堟湰鐨勬彁绀烘帶浠�</param> - /// <param name="oTADevice">ota璁惧</param> - private void SetDeviceVersionInfo(PicViewControl btnNewVersion, OTADevice oTADevice) - { - HdlThreadLogic.Current.RunThread(() => - { - bool receiveImageInfo = false; - //璁剧疆璁惧鍏ㄩ儴鐨勯暅鍍忎俊鎭� - string checkKey = LocalDevice.Current.GetDeviceMainKeys(oTADevice.DeviceAddr, oTADevice.DeviceEpoint); - HdlGatewayReceiveLogic.Current.AddAttributeEvent("SetDeviceVersionInfo", ReceiveComandDiv.A璁惧灞炴�т笂鎶�, (report) => - { - if (report.DeviceStatusReport.CluterID == (int)Cluster_ID.Ota) - { - string mainKey = LocalDevice.Current.GetDeviceMainKeys(report.DeviceAddr, report.DeviceEpoint); - if (checkKey == mainKey) - { - //宸茬粡鎺ユ敹寰楀埌 - receiveImageInfo = true; - } - } - }); - //鍙戦�佸懡浠� - HdlDeviceImageInfoLogic.Current.SetFirmwareVersionComand(oTADevice); - - int count = 5; - while (receiveImageInfo == false && count > 0) - { - //绛夊緟璁惧闀滃儚鐨勫弽棣� - System.Threading.Thread.Sleep(300); - count--; - } - //绉婚櫎浜嬩欢 - HdlGatewayReceiveLogic.Current.RemoveEvent("SetDeviceVersionInfo"); - - oTADevice = Common.LocalDevice.Current.GetOTADevice(listNewDevice[0].DeviceAddr); - //娣诲姞鍗囩骇鍥轰欢淇℃伅(鎴愪笉鎴愬姛閮芥棤鎵�璋�) - var result = HdlFirmwareUpdateLogic.AddFirmwareVersionInfo(FirmwareLevelType.A璁惧, oTADevice.HwVersion.ToString(), oTADevice.ImgTypeId.ToString()); - - //鑾峰彇璁惧鏈�鏂扮増鏈� - var deviceFirmware = HdlFirmwareUpdateLogic.GetFirmwareMostVersionInfo(FirmwareLevelType.A璁惧, - oTADevice.HwVersion.ToString(), - oTADevice.ImgTypeId.ToString(), - oTADevice.ImgVersion); - - if (deviceFirmware != null && deviceFirmware.FirmwareVersion > oTADevice.ImgVersion) - { - HdlThreadLogic.Current.RunMain(() => - { - if (btnNewVersion != null) - { - btnNewVersion.Visible = true; - } - }, ShowErrorMode.NO); - } - }); - } - - #endregion - - #region 鈻� 淇敼鍚嶅瓧___________________________ - - /// <summary> - /// 璁惧閲嶅懡鍚� - /// </summary> - /// <param name="i_deviceName">deviceName.</param> - private void DeviceReName(string i_deviceName, bool closeForm) - { - //淇敼MAC鍚� - string deviceName = i_deviceName.Trim(); - var result = Common.LocalDevice.Current.ReMacName(this.listNewDevice, deviceName); - if (result == false) - { - return; - } - if (closeForm == true) - { - //鍏抽棴鐣岄潰 - this.CloseForm(); - } - else - { - //璁惧澶囨敞淇敼鎴愬姛! - string msg = Language.StringByID(R.MyInternationalizationString.uDeviceReNoteSuccess); - this.ShowMassage(ShowMsgType.Tip, msg); - } - } - - #endregion - - #region 鈻� 鍙充笂瑙掕彍鍗昣________________________ - - /// <summary> - /// 鍒濆鍖栧彸涓婅鑿滃崟 - /// </summary> - private void InitTopRightMenu() - { - //鏌ョ湅妯℃澘鏃�,涓嶅厑璁哥紪杈� - if (Common.Config.Instance.Home.IsShowTemplate == true) - { - return; - } - var btnIcon = new MostRightIconControl(69, 69); - btnIcon.UnSelectedImagePath = "Item/More.png"; - topFrameLayout.AddChidren(btnIcon); - btnIcon.InitControl(); - btnIcon.ButtonClickEvent += ((sender, e) => - { - //鏄剧ず鍙充笂瑙掕彍鍗曠晫闈� - this.ShowTopRightMenu(); - }); - } - - /// <summary> - /// 鏄剧ず鍙充笂瑙掕彍鍗曠晫闈� - /// </summary> - private void ShowTopRightMenu() - { - //妫�娴嬫鍥炶矾鏄惁鎷ユ湁瀹氫綅鍔熻兘(鎷跨鐐规渶灏忕殑閭d釜鍥炶矾鍘诲畾浣�) - bool canTest = Common.LocalDevice.Current.DeviceIsCanFixedPosition(listNewDevice[0]); - - TopRightMenuControl frame = null; - - if (deviceEnumInfo.ConcreteType == DeviceConcreteType.ButtonPanel_SimpleMultifunction) - { - frame = new TopRightMenuControl(3, 1); - } - else - { - frame = new TopRightMenuControl(canTest == true ? 2 : 1, 1); - } - - string deviceMenu = string.Empty; - if (canTest == true) - { - //瀹氫綅 - deviceMenu = Language.StringByID(R.MyInternationalizationString.uFixedPosition); - frame.AddRowMenu(deviceMenu, "Item/FixedPosition.png", "Item/FixedPositionSelected.png", () => - { - //鍙戦�佸畾浣嶅姛鑳� - Common.LocalDevice.Current.SetFixedPositionCommand(listNewDevice[0]); - }); - } - - //鍒犻櫎 - 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, () => - { - //鍒犻櫎鎸囧畾璁惧 - this.DoDeleteDevice(); - }); - }); - - //鍚屾 - deviceMenu = Language.StringByID(R.MyInternationalizationString.Synchronization); - if (Common.LocalDevice.Current.DeviceIsCanFixedPosition(listNewDevice[0])) - { - frame.AddRowMenu(deviceMenu, "", "Item/SynchronizationSelected.png", () => - { - //濡傛灉褰撳墠浣忓畢鏄櫄鎷熶綇瀹�,姝ゅ姛鑳芥棤鏁� - if (Common.Config.Instance.Home.IsVirtually == true) - { - return; - } - - //鍚屾鎸囧畾璁惧 - this.SynchronizationDevice(); - }); - } - - } - - /// <summary> - /// 鍒犻櫎鎸囧畾璁惧 - /// </summary> - private void DoDeleteDevice() - { - HdlThreadLogic.Current.RunThread(async () => - { - //鎵撳紑杩涘害鏉� - this.ShowProgressBar(); - - //鍒犻櫎璁惧 - bool result = await Common.LocalDevice.Current.DeleteDevice(listNewDevice); - //鍏抽棴杩涘害鏉� - this.CloseProgressBar(); - if (result == false) - { - return; - } - HdlThreadLogic.Current.RunMain(() => - { - //鍏抽棴鐣岄潰 - this.CloseForm(); - }); - }); - } - - /// <summary> - /// 鍚屾鎸囧畾璁惧 - /// </summary> - private void SynchronizationDevice() - { - HdlThreadLogic.Current.RunThread(async () => - { - //鎵撳紑杩涘害鏉� - this.ShowProgressBar(); - - //鍚屾璁惧 - bool result = await Common.LocalDevice.Current.SynchronizationDevice(listNewDevice); - //鍏抽棴杩涘害鏉� - this.CloseProgressBar(); - if (result == false) - { - return; - } - }); - } - #endregion - - #region 鈻� 鍏抽棴鐣岄潰___________________________ - - /// <summary> - /// 鐢婚潰鍏抽棴 - /// </summary> - public override void CloseFormBefore() - { - HdlGatewayReceiveLogic.Current.RemoveEvent("HandPullControl"); - HdlGatewayReceiveLogic.Current.RemoveEvent("SetDeviceVersionInfo"); - - //璁惧鏂板叆缃� - if (UserCenterResourse.DicActionForm.ContainsKey("AddDeviceTypeListForm") == true) - { - this.LoadFormMethodByName("DeviceListMainForm", "RefreshDeviceRow", new object[] { listNewDevice[0].DeviceAddr }); - } - - base.CloseFormBefore(); - } - - #endregion - - #region 鈻� 纭欢淇℃伅___________________________ - - /// <summary> - /// 閲嶆柊鑾峰彇纭欢淇℃伅 - /// </summary> - private void RefreshHardFirmwareInfo() - { - if (listNewDevice[0].DriveCode > 0 || Common.Config.Instance.Home.IsShowTemplate == true) - { - //铏氭嫙璁惧娌℃湁杩欑鎿嶄綔 - return; - } - //閲嶆柊鑾峰彇纭欢淇℃伅 - HdlDeviceHardInfoLogic.Current.SetAllHardFirmwareInfoToDevice(listNewDevice[0]); - } - - #endregion - - #region 鈻� 鐣岄潰閲嶆柊婵�娲讳簨浠禵__________________ - - /// <summary> - /// 鑷韩鐨勪笂灞傜晫闈㈠叧闂悗,瀹冭嚜韬浜庢渶涓婂眰鏃�,瑙﹀彂鐨勪簨浠� - /// </summary> - public override int FormActionAgainEvent() - { - //閲嶆柊鑾峰彇涓ぎ绌鸿皟妯″潡鐨勭増鏈� - this.ReadAirConditionerVersion(); - - return 0; - } - - #endregion - - #region 鈻� 涓�鑸柟娉昣__________________________ - - /// <summary> - /// 鑾峰彇涓ぎ绌鸿皟妯″潡鐨勭増鏈� - /// </summary> - private void ReadAirConditionerVersion() - { - if (this.btnAirConditionerVersion == null) - { - return; - } - //濡傛灉鏄櫄鎷熶綇瀹呮垨鑰呭睍绀烘ā鏉跨殑璇� - if (Config.Instance.Home.IsShowTemplate == true || Config.Instance.Home.IsVirtually == true) - { - return; - } - - bool notVersion = true; - if (this.listNewDevice[0] is AC) - { - notVersion = ((AC)this.listNewDevice[0]).AcModelVersion == string.Empty; - } - if (notVersion == true) - { - //鑾峰彇涓� - btnAirConditionerVersion.Text = Language.StringByID(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) - { - if (notVersion == true) - { - //鑾峰彇澶辫触 - HdlThreadLogic.Current.RunMain(() => - { - btnAirConditionerVersion.Text = Language.StringByID(R.MyInternationalizationString.uGettingFail); - }); - } - return; - } - HdlThreadLogic.Current.RunMain(() => - { - string strVersion = result.readACFirewareVersionResponData.FirewareVersion.Replace("-", string.Empty); - if (this.listNewDevice[0] is AC) - { - ((AC)this.listNewDevice[0]).AcModelVersion = strVersion; - this.listNewDevice[0].ReSave(); - } - btnAirConditionerVersion.Text = strVersion; - }); - }); - } - - /// <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 - } + /// <summary> + /// 娣诲姞銆愬鍐呮満璁剧疆銆戣(绌鸿皟涓撶敤) + /// </summary> + private void AddIndoorUnitSettionRow() + { + 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); + 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); + }; + } + #endregion + + #region 鈻� 绠�绾﹀鍔熻兘闈㈡澘鐢╛__________________ + /// <summary> + /// 娣诲姞銆愮粦瀹氱洰鏍囥�戣 + /// </summary> + private void AddIBindRow(string deviceMac) + { + 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 dev = Common.LocalDevice.Current.GetDevice(deviceMac, 32);//绠�绾﹂潰鏉块殢渚夸竴涓寜閿潵鑾峰彇璁惧 + if (dev != null) + { + var curControlDev = dev as Panel; + var simpleMutilfunctionTargetsPage = new Shared.Phone.UserCenter.DeviceBind.PanelSimpleMutilfunctionTargetsForm(curControlDev); + Shared.Phone.UserView.HomePage.Instance.AddChidren(simpleMutilfunctionTargetsPage); + Shared.Phone.UserView.HomePage.Instance.PageIndex += 1; + simpleMutilfunctionTargetsPage.Show(); + } + }; + } + + #region 鈻� 鎺ヨ繎鎰熷簲___________________________ + + /// <summary> + /// 鎺ヨ繎鎰熷簲琛� + /// </summary> + private void AddProximitySensorsRow(string deviceMac) + { + string proximity = Language.StringByID(R.MyInternationalizationString.ProximitySensors); + var proximitySensors = new FrameRowControl(listview.rowSpace / 2); + listview.AddChidren(proximitySensors); + proximitySensors.AddLeftCaption(proximity, 400); + + //鎺ヨ繎鎰熷簲 + proximitySensors.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.ProximitySensors), 400); + //寮�鍏虫帶浠� + var btnSwitch = proximitySensors.AddMostRightSwitchIcon(); + //搴曠嚎 + proximitySensors.AddBottomLine(); + + btnSwitch.ButtonClickEvent += async (sender, e) => + { + btnSwitch.IsSelected = !btnSwitch.IsSelected; + proximitySensorsInfo.enable = btnSwitch.IsSelected; + + //绠�绾﹂潰鏉块殢渚夸竴涓洖璺潵鑾峰彇璁惧淇℃伅 + var dev = Common.LocalDevice.Current.GetDevice(deviceMac, 62); + if (dev != null) + { + var key = new ZigBee.Device.Panel(); + key.DeviceAddr = deviceMac; + key.CurrentGateWayId = dev.CurrentGateWayId; + SetProximitySensor(key); + } + }; + if (proximitySensorsInfo.enable == true) + { + btnSwitch.IsSelected = true; + } + } + #endregion + + #region 鈻� 鏁版嵁鐭_________________________ + /// <summary> + /// 鏁版嵁鐭琛� + /// </summary> + private void DataCorrectionRow(string deviceMac) + { + //鏁版嵁鐭 + var rowLight = new FrameRowControl(listview.rowSpace / 2); + listview.AddChidren(rowLight); + rowLight.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.DataCorrection), 600); + //搴曠嚎 + rowLight.AddBottomLine(); + //鍙崇澶� + rowLight.AddRightArrow(); + rowLight.ButtonClickEvent += (sender, e) => + { + var dev = Common.LocalDevice.Current.GetDevice(deviceMac, 62);//绠�绾﹂潰鏉块殢渚夸竴涓洖璺潵鑾峰彇璁惧 + var device = new CommonDevice(); + if (dev != null) + { + device.CurrentGateWayId = dev.CurrentGateWayId; + } + device.DeviceAddr = deviceMac; + device.DeviceEpoint = 65; + var form = new Shared.Phone.UserCenter.DevicePanel.DataCorrectionForm(); + form.AddForm(device); + }; + } + #endregion + + /// <summary> + /// 婀垮害鏉ユ簮琛� + /// </summary> + private void AddHumiditySourceRow(string deviceMac) + { + //婀垮害 + 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 dev = Common.LocalDevice.Current.GetDevice(deviceMac, 62);//绠�绾﹂潰鏉块殢渚夸竴涓洖璺潵鑾峰彇璁惧 + var device = new CommonDevice(); + if (dev != null) + { + device.CurrentGateWayId = dev.CurrentGateWayId; + } + device.Type = DeviceType.OnOffSwitch; + device.DeviceAddr = deviceMac; + device.DeviceEpoint = 1;//鑳界粦瀹氭箍搴︾殑鍥炶矾 + var paneTargetsBaseFormp = new PaneTargetsBaseForm(device, bindHumidityDev, BindInfo.BindType.Humidity); + Shared.Phone.UserView.HomePage.Instance.AddChidren(paneTargetsBaseFormp); + Shared.Phone.UserView.HomePage.Instance.PageIndex += 1; + paneTargetsBaseFormp.Show(); + paneTargetsBaseFormp.actionHumidityTarget += (bindName) => + { + HdlThreadLogic.Current.RunMain(() => + { + if (string.IsNullOrEmpty(bindName)) + { + btnHumidityStatu.Text = Language.StringByID(R.MyInternationalizationString.nothing); + } + else + { + btnHumidityStatu.Text = bindName; + } + }); + }; + }; + } + + /// <summary> + /// 娓╁害鏉ユ簮琛� + /// </summary> + private void AddTemperatureSensorRow(string deviceMac) + { + //娓╁害鏉ユ簮 + 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 dev = Common.LocalDevice.Current.GetDevice(deviceMac, 62);//绠�绾﹂潰鏉块殢渚夸竴涓洖璺潵鑾峰彇璁惧 + var device = new CommonDevice(); + if (dev != null) + { + device.CurrentGateWayId = dev.CurrentGateWayId; + } + device.Type = DeviceType.OnOffSwitch; + device.DeviceAddr = deviceMac; + device.DeviceEpoint = 1;//鑳界粦瀹氭俯搴︾殑鍥炶矾 + var paneTargetsBaseFormp = new PaneTargetsBaseForm(device, bindTemperatureDev, BindInfo.BindType.Temperature); + Shared.Phone.UserView.HomePage.Instance.AddChidren(paneTargetsBaseFormp); + Shared.Phone.UserView.HomePage.Instance.PageIndex += 1; + paneTargetsBaseFormp.Show(); + paneTargetsBaseFormp.actionTemperatureTarget += (bindName) => + { + HdlThreadLogic.Current.RunMain(() => + { + if (string.IsNullOrEmpty(bindName)) + { + btnTemperatureStatu.Text = Language.StringByID(R.MyInternationalizationString.nothing); + } + else + { + btnTemperatureStatu.Text = bindName; + } + }); + }; + }; + } + + /// <summary> + ///鍒濆鍖栨暟鎹� + /// </summary> + void InitBindInfo(CommonDevice curControlDev) + { + System.Threading.Tasks.Task.Run(async () => + { + try + { + Application.RunOnMainThread(() => + { + CommonPage.Loading.Start(""); + }); + //璇绘俯婀垮害鏁版嵁 + curControlDev.DeviceEpoint = 1; + var result = await GetBindName(curControlDev); + if (!result) + { + Application.RunOnMainThread(() => + { + new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime) + "(" + "5007_2" + ")", Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance); + }); + return; + } + + //2銆佽幏璁惧鎺ヨ繎鎰熷簲鍒濆鏁版嵁 + //鎺ヨ繎鎰熷簲(浠栦滑璇撮殢渚挎嬁涓�璺洖璺氨琛屼簡) + proximitySensorsInfo = await HdlDevicePanelLogic.Current.GetDeviceProximitySensorsSettion(curControlDev); + if (proximitySensorsInfo == null) + { + proximitySensorsInfo = new Panel.PanelProximitySensorInfo(); + //鍏抽棴杩涘害鏉� + this.CloseProgressBar(ShowReLoadMode.YES); + return; + } + } + catch (Exception ex) + { + var mess = ex.Message; + } + finally + { + Application.RunOnMainThread(() => + { + //鍒濆鍖栧彸涓婅鑿滃崟 + this.InitTopRightMenu(); + //鍒濆鍖栦腑閮ㄦ帶浠� + this.InitMiddleFrame(); + CommonPage.Loading.Hide(); + }); + } + }); + } + + /// <summary> + /// 鑾峰彇缁戝畾鐨勬俯婀垮害鐩爣 + /// </summary> + /// <param name="curControlDev"></param> + /// <returns></returns> + private async System.Threading.Tasks.Task<bool> GetBindName(CommonDevice curControlDev) + { + bool result = false; + var panelBindListRes = HdlDeviceBindLogic.Current.GetDeviceBindAsync(curControlDev); + if (panelBindListRes != null && panelBindListRes.getAllBindResponseData != null) + { + bindList = panelBindListRes.getAllBindResponseData.BindList; + foreach (var bDev in bindList) + { + var device = Common.LocalDevice.Current.GetDevice(bDev.BindMacAddr, bDev.BindEpoint); + if (device == null) + { + continue; + } + if (device.Type == DeviceType.TemperatureSensor) + { + var bD = device as TemperatureSensor; + if (bD.SensorDiv == 1 && bDev.BindCluster == 1026) + { + bindTemperatureName = Common.LocalDevice.Current.GetDeviceEpointName(device); + bindTemperatureDev = device; + } + if (bD.SensorDiv == 2 && bDev.BindCluster == 1029) + { + bindHumidityName = Common.LocalDevice.Current.GetDeviceEpointName(device); + bindHumidityDev = device; + } + } + if (device.Type == DeviceType.FreshAirHumiditySensor) + { + bindHumidityName = Common.LocalDevice.Current.GetDeviceEpointName(device); + bindHumidityDev = device; + } + } + result = true; + } + return result; + } + + #region 鈻� 璁剧疆鏁版嵁___________________________ + + /// <summary> + /// 璁剧疆闈㈡澘鎺ヨ繎鎰熷簲鏁版嵁 + /// </summary> + private void SetProximitySensor(CommonDevice curControlDev) + { + System.Threading.Tasks.Task.Run(async () => + { + try + { + Application.RunOnMainThread(() => + { + CommonPage.Loading.Start(""); + }); + //鎺ヨ繎鎰熷簲(鎻愪緵璁惧鐨勫悓浜嬭闅忎究涓�涓洖璺氨琛�) + var result = await HdlDevicePanelLogic.Current.SetProximitySensorStatus(curControlDev, proximitySensorsInfo.enable); + if (result == false) + { + return; + } + } + catch (Exception ex) + { + var mess = ex.Message; + } + finally + { + Application.RunOnMainThread(() => + { + CommonPage.Loading.Hide(); + }); + } + }); + } + + #endregion + #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(); + //鏌ョ湅妯℃澘鏃�,涓嶅厑璁哥紪杈� + if (Common.Config.Instance.Home.IsShowTemplate == true) + { + rowFunction.CanClick = false; + } + } + + #endregion + + #region 鈻� 閫氱敤淇℃伅___________________________ + + /// <summary> + /// 娣诲姞銆愰�氱敤淇℃伅銆戣 + /// </summary> + private void AddGeneralInformationRow() + { + string caption = Language.StringByID(R.MyInternationalizationString.uGeneralInformation); + var btnGeneral = new FrameRowControl(listview.rowSpace / 2); + listview.AddChidren(btnGeneral); + btnGeneral.AddLeftCaption(caption, 600); + //鍚戝彸鍥炬爣 + btnGeneral.AddRightArrow(); + //搴曠嚎 + btnGeneral.AddBottomLine(); + btnGeneral.ButtonClickEvent += (sender, e) => + { + 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(string.Empty, 900); + if (this.listNewDevice[0] is AC) + { + this.btnAirConditionerVersion.Text = ((AC)this.listNewDevice[0]).AcModelVersion; + } + //搴曠嚎 + rowVersion.AddBottomLine(); + + //鑾峰彇涓ぎ绌鸿皟妯″潡鐨勭増鏈� + this.ReadAirConditionerVersion(); + } + + #endregion + + #region 鈻� 鍥轰欢鍗囩骇___________________________ + + /// <summary> + /// 娣诲姞銆愬浐浠跺崌绾с�戣 + /// </summary> + private void AddFirmwareUpdateRow() + { + //鎷ユ湁200绔彛杩欎釜涓滆タ鐨勬椂鍊欙紝鎵嶄細鏄剧ず杩欎竴琛� + var oTADevice = Common.LocalDevice.Current.GetOTADevice(listNewDevice[0].DeviceAddr); + if (oTADevice == null) + { + return; + } + + //鍥轰欢鍗囩骇 + string caption = Language.StringByID(R.MyInternationalizationString.uFirmwareUpdate); + var rowUpDate = new FrameRowControl(listview.rowSpace / 2); + listview.AddChidren(rowUpDate); + rowUpDate.AddLeftCaption(caption, 600); + //鍚戝彸鍥炬爣 + rowUpDate.AddRightArrow(); + //搴曠嚎 + rowUpDate.AddBottomLine(); + + //鎻愮ず鏈夋柊鐗堟湰 + var btnNewVersion = new PicViewControl(78, 55); + btnNewVersion.UnSelectedImagePath = "Item/NewVersion.png"; + btnNewVersion.Visible = false; + btnNewVersion.X = Application.GetRealWidth(242); + 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; + }; + + //濡傛灉褰撳墠浣忓畢涓嶆槸铏氭嫙浣忓畢 + if (Config.Instance.Home.IsVirtually == false + && Config.Instance.Home.IsShowTemplate == false) + { + //璁剧疆璁惧鐨勭増鏈俊鎭� + this.SetDeviceVersionInfo(btnNewVersion, oTADevice); + } + } + + /// <summary> + /// 璁剧疆璁惧鐨勭増鏈俊鎭� + /// </summary> + /// <param name="btnNewVersion">鏈夋柊鐗堟湰鐨勬彁绀烘帶浠�</param> + /// <param name="oTADevice">ota璁惧</param> + private void SetDeviceVersionInfo(PicViewControl btnNewVersion, OTADevice oTADevice) + { + HdlThreadLogic.Current.RunThread(() => + { + bool receiveImageInfo = false; + //璁剧疆璁惧鍏ㄩ儴鐨勯暅鍍忎俊鎭� + string checkKey = LocalDevice.Current.GetDeviceMainKeys(oTADevice.DeviceAddr, oTADevice.DeviceEpoint); + HdlGatewayReceiveLogic.Current.AddAttributeEvent("SetDeviceVersionInfo", ReceiveComandDiv.A璁惧灞炴�т笂鎶�, (report) => + { + if (report.DeviceStatusReport.CluterID == (int)Cluster_ID.Ota) + { + string mainKey = LocalDevice.Current.GetDeviceMainKeys(report.DeviceAddr, report.DeviceEpoint); + if (checkKey == mainKey) + { + //宸茬粡鎺ユ敹寰楀埌 + receiveImageInfo = true; + } + } + }); + //鍙戦�佸懡浠� + HdlDeviceImageInfoLogic.Current.SetFirmwareVersionComand(oTADevice); + + int count = 5; + while (receiveImageInfo == false && count > 0) + { + //绛夊緟璁惧闀滃儚鐨勫弽棣� + System.Threading.Thread.Sleep(300); + count--; + } + //绉婚櫎浜嬩欢 + HdlGatewayReceiveLogic.Current.RemoveEvent("SetDeviceVersionInfo"); + + oTADevice = Common.LocalDevice.Current.GetOTADevice(listNewDevice[0].DeviceAddr); + //娣诲姞鍗囩骇鍥轰欢淇℃伅(鎴愪笉鎴愬姛閮芥棤鎵�璋�) + var result = HdlFirmwareUpdateLogic.AddFirmwareVersionInfo(FirmwareLevelType.A璁惧, oTADevice.HwVersion.ToString(), oTADevice.ImgTypeId.ToString()); + + //鑾峰彇璁惧鏈�鏂扮増鏈� + var deviceFirmware = HdlFirmwareUpdateLogic.GetFirmwareMostVersionInfo(FirmwareLevelType.A璁惧, + oTADevice.HwVersion.ToString(), + oTADevice.ImgTypeId.ToString(), + oTADevice.ImgVersion); + + if (deviceFirmware != null && deviceFirmware.FirmwareVersion > oTADevice.ImgVersion) + { + HdlThreadLogic.Current.RunMain(() => + { + if (btnNewVersion != null) + { + btnNewVersion.Visible = true; + } + }, ShowErrorMode.NO); + } + }); + } + + #endregion + + #region 鈻� 淇敼鍚嶅瓧___________________________ + + /// <summary> + /// 璁惧閲嶅懡鍚� + /// </summary> + /// <param name="i_deviceName">deviceName.</param> + private void DeviceReName(string i_deviceName, bool closeForm) + { + //淇敼MAC鍚� + string deviceName = i_deviceName.Trim(); + var result = Common.LocalDevice.Current.ReMacName(this.listNewDevice, deviceName); + if (result == false) + { + return; + } + if (closeForm == true) + { + //鍏抽棴鐣岄潰 + this.CloseForm(); + } + else + { + //璁惧澶囨敞淇敼鎴愬姛! + string msg = Language.StringByID(R.MyInternationalizationString.uDeviceReNoteSuccess); + this.ShowMassage(ShowMsgType.Tip, msg); + } + } + + #endregion + + #region 鈻� 鍙充笂瑙掕彍鍗昣________________________ + + /// <summary> + /// 鍒濆鍖栧彸涓婅鑿滃崟 + /// </summary> + private void InitTopRightMenu() + { + //鏌ョ湅妯℃澘鏃�,涓嶅厑璁哥紪杈� + if (Common.Config.Instance.Home.IsShowTemplate == true) + { + return; + } + var btnIcon = new MostRightIconControl(69, 69); + btnIcon.UnSelectedImagePath = "Item/More.png"; + topFrameLayout.AddChidren(btnIcon); + btnIcon.InitControl(); + btnIcon.ButtonClickEvent += ((sender, e) => + { + //鏄剧ず鍙充笂瑙掕彍鍗曠晫闈� + this.ShowTopRightMenu(); + }); + } + + /// <summary> + /// 鏄剧ず鍙充笂瑙掕彍鍗曠晫闈� + /// </summary> + private void ShowTopRightMenu() + { + //妫�娴嬫鍥炶矾鏄惁鎷ユ湁瀹氫綅鍔熻兘(鎷跨鐐规渶灏忕殑閭d釜鍥炶矾鍘诲畾浣�) + bool canTest = Common.LocalDevice.Current.DeviceIsCanFixedPosition(listNewDevice[0]); + + TopRightMenuControl frame = null; + + if (deviceEnumInfo.ConcreteType == DeviceConcreteType.ButtonPanel_SimpleMultifunction) + { + frame = new TopRightMenuControl(3, 1); + } + else + { + frame = new TopRightMenuControl(canTest == true ? 2 : 1, 1); + } + + string deviceMenu = string.Empty; + if (canTest == true) + { + //瀹氫綅 + deviceMenu = Language.StringByID(R.MyInternationalizationString.uFixedPosition); + frame.AddRowMenu(deviceMenu, "Item/FixedPosition.png", "Item/FixedPositionSelected.png", () => + { + //鍙戦�佸畾浣嶅姛鑳� + Common.LocalDevice.Current.SetFixedPositionCommand(listNewDevice[0], true); + }); + } + + //鍒犻櫎 + 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, () => + { + //鍒犻櫎鎸囧畾璁惧 + this.DoDeleteDevice(); + }); + }); + + //鍚屾 + deviceMenu = Language.StringByID(R.MyInternationalizationString.Synchronization); + if (Common.LocalDevice.Current.DeviceIsCanFixedPosition(listNewDevice[0])) + { + frame.AddRowMenu(deviceMenu, "", "Item/SynchronizationSelected.png", () => + { + //濡傛灉褰撳墠浣忓畢鏄櫄鎷熶綇瀹�,姝ゅ姛鑳芥棤鏁� + if (Common.Config.Instance.Home.IsVirtually == true) + { + return; + } + + //鍚屾鎸囧畾璁惧 + this.SynchronizationDevice(); + }); + } + + } + + /// <summary> + /// 鍒犻櫎鎸囧畾璁惧 + /// </summary> + private void DoDeleteDevice() + { + HdlThreadLogic.Current.RunThread(async () => + { + //鎵撳紑杩涘害鏉� + this.ShowProgressBar(); + + //鍒犻櫎璁惧 + bool result = await Common.LocalDevice.Current.DeleteDevice(listNewDevice); + //鍏抽棴杩涘害鏉� + this.CloseProgressBar(); + if (result == false) + { + return; + } + HdlThreadLogic.Current.RunMain(() => + { + //鍏抽棴鐣岄潰 + this.CloseForm(); + }); + }); + } + + /// <summary> + /// 鍚屾鎸囧畾璁惧 + /// </summary> + private void SynchronizationDevice() + { + HdlThreadLogic.Current.RunThread(async () => + { + //鎵撳紑杩涘害鏉� + this.ShowProgressBar(); + + //鍚屾璁惧 + bool result = await Common.LocalDevice.Current.SynchronizationDevice(listNewDevice); + //鍏抽棴杩涘害鏉� + this.CloseProgressBar(); + if (result == false) + { + return; + } + }); + } + #endregion + + #region 鈻� 鍏抽棴鐣岄潰___________________________ + + /// <summary> + /// 鐢婚潰鍏抽棴 + /// </summary> + public override void CloseFormBefore() + { + HdlGatewayReceiveLogic.Current.RemoveEvent("HandPullControl"); + HdlGatewayReceiveLogic.Current.RemoveEvent("SetDeviceVersionInfo"); + + //璁惧鏂板叆缃� + if (UserCenterResourse.DicActionForm.ContainsKey("AddDeviceTypeListForm") == true) + { + this.LoadFormMethodByName("DeviceListMainForm", "RefreshDeviceRow", new object[] { listNewDevice[0].DeviceAddr }); + } + + base.CloseFormBefore(); + } + + #endregion + + #region 鈻� 纭欢淇℃伅___________________________ + + /// <summary> + /// 閲嶆柊鑾峰彇纭欢淇℃伅 + /// </summary> + private void RefreshHardFirmwareInfo() + { + if (listNewDevice[0].DriveCode > 0 || Common.Config.Instance.Home.IsShowTemplate == true) + { + //铏氭嫙璁惧娌℃湁杩欑鎿嶄綔 + return; + } + //閲嶆柊鑾峰彇纭欢淇℃伅 + HdlDeviceHardInfoLogic.Current.SetAllHardFirmwareInfoToDevice(listNewDevice[0]); + } + + #endregion + + #region 鈻� 鐣岄潰閲嶆柊婵�娲讳簨浠禵__________________ + + /// <summary> + /// 鑷韩鐨勪笂灞傜晫闈㈠叧闂悗,瀹冭嚜韬浜庢渶涓婂眰鏃�,瑙﹀彂鐨勪簨浠� + /// </summary> + public override int FormActionAgainEvent() + { + //閲嶆柊鑾峰彇涓ぎ绌鸿皟妯″潡鐨勭増鏈� + this.ReadAirConditionerVersion(); + + return 0; + } + + #endregion + + #region 鈻� 涓�鑸柟娉昣__________________________ + + /// <summary> + /// 鑾峰彇涓ぎ绌鸿皟妯″潡鐨勭増鏈� + /// </summary> + private void ReadAirConditionerVersion() + { + if (this.btnAirConditionerVersion == null) + { + return; + } + //濡傛灉鏄櫄鎷熶綇瀹呮垨鑰呭睍绀烘ā鏉跨殑璇� + if (Config.Instance.Home.IsShowTemplate == true || Config.Instance.Home.IsVirtually == true) + { + return; + } + + bool notVersion = true; + if (this.listNewDevice[0] is AC) + { + notVersion = ((AC)this.listNewDevice[0]).AcModelVersion == string.Empty; + } + if (notVersion == true) + { + //鑾峰彇涓� + btnAirConditionerVersion.Text = Language.StringByID(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) + { + if (notVersion == true) + { + //鑾峰彇澶辫触 + HdlThreadLogic.Current.RunMain(() => + { + btnAirConditionerVersion.Text = Language.StringByID(R.MyInternationalizationString.uGettingFail); + }); + } + return; + } + HdlThreadLogic.Current.RunMain(() => + { + string strVersion = result.readACFirewareVersionResponData.FirewareVersion.Replace("-", string.Empty); + if (this.listNewDevice[0] is AC) + { + ((AC)this.listNewDevice[0]).AcModelVersion = strVersion; + this.listNewDevice[0].ReSave(); + } + btnAirConditionerVersion.Text = strVersion; + }); + }); + } + + /// <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