From 25429f085093d89d543a0b90e30d0d62d1b7dac9 Mon Sep 17 00:00:00 2001 From: hxb <hxb@hdlchina.com.cn> Date: 星期二, 30 八月 2022 09:37:38 +0800 Subject: [PATCH] 合并了IOS的代码 --- ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceFunctionSettionForm.cs | 280 +++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 269 insertions(+), 11 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceFunctionSettionForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceFunctionSettionForm.cs index 3b352d4..891aeeb 100755 --- a/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceFunctionSettionForm.cs +++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceFunctionSettionForm.cs @@ -88,7 +88,24 @@ { this.listview = tableContr.InitControl(listBackControl.frameTable, Language.StringByID(R.MyInternationalizationString.uDeviceEditor), 1028); } - else + else if (this.deviceObj.Type == DeviceType.Airer) + { + //鏅捐。鏋惰澶囧彧瀛樺彇鍥炶矾1锛屽鏋滄槸鏅捐。鏋讹紝榛樿绔偣閮芥槸1锛� + this.deviceObj.DeviceEpoint = 1; + this.listview = tableContr.InitControl(listBackControl.frameTable, Language.StringByID(R.MyInternationalizationString.uDeviceEditor), 1342); + } + else if (this.deviceObj.Type == DeviceType.TemperatureSensor) + { + //绌烘皵璐ㄩ噺浼犳劅鍣� + //鑾峰彇璁惧绫诲瀷 + var deviceEnumInfo = Common.LocalDevice.Current.GetMyDeviceEnumInfo(new List<CommonDevice>() { this.deviceObj }); + //绌烘皵璐ㄩ噺浼犳劅鍣� + if (deviceEnumInfo.ConcreteType == Common.DeviceConcreteType.AirQualitySensor) + { + this.listview = tableContr.InitControl(listBackControl.frameTable, Language.StringByID(R.MyInternationalizationString.uDeviceEditor), 1368); + } + } + if (this.listview == null) { this.listview = tableContr.InitControl(listBackControl.frameTable, Language.StringByID(R.MyInternationalizationString.uDeviceEditor), 1128); } @@ -124,8 +141,19 @@ } } } + + //濡傛灉鏄櫨琛f灦銆屾椂闂村厛涓嶅鐞嗐�� + //if (deviceObj.Type == DeviceType.Airer) + //{ + // var airer = deviceObj as Airer; + // SetAirerFunTimeDevice(airer); + //} + //else + //{ //鍏抽棴鑷韩 this.CloseForm(); + //} + }; //濡傛灉褰撳墠鏄睍绀烘ā鏉�,鍒欎笉鑳界紪杈� if (Common.Config.Instance.Home.IsShowTemplate == true) @@ -144,6 +172,7 @@ //鍥炶矾澶囨敞 string caption = Language.StringByID(R.MyInternationalizationString.uDeviceEpointNote); string nameValue = Common.LocalDevice.Current.GetDeviceEpointName(nowSelectDevice); + if (dicDeviceSaveName.ContainsKey(nowSelectDevice.DeviceEpoint) == true) { nameValue = dicDeviceSaveName[nowSelectDevice.DeviceEpoint]; @@ -192,8 +221,32 @@ HdlRoomLogic.Current.ChangedRoom(nowSelectDevice, roomKeys); }; + if (this.deviceObj.Type == DeviceType.TemperatureSensor) + { + //鑾峰彇璁惧绫诲瀷 + var deviceEnumInfo = Common.LocalDevice.Current.GetMyDeviceEnumInfo(new List<CommonDevice>() { this.deviceObj }); + //绌烘皵璐ㄩ噺浼犳劅鍣� + if (deviceEnumInfo.ConcreteType == Common.DeviceConcreteType.AirQualitySensor) + { + //璁惧绫诲瀷 + this.AddDeviceTypeRow(); + } + } + //娣诲姞鍔熻兘绫诲瀷琛� this.AddFunctionTypeRow(); + + if (this.deviceObj.Type == DeviceType.Airer) + { + var airer = this.deviceObj as Airer; + //娣诲姞鐑樺共鏃堕棿琛� + this.AddAirerDryTimeRow(airer); + //娣诲姞椋庡共鏃堕棿琛� + this.AddAirerWindTimeRow(airer); + //娣诲姞娑堟瘨鏃堕棿琛� + this.AddAirerDisinfectTimeRow(airer); + } + //鍒濆鍖栨甯冨畬鎴� tableContr.FinishInitControl(); } @@ -276,7 +329,171 @@ //搴曠嚎 rowFunction.AddBottomLine(); } + #endregion + #region 鈻� 璁惧绫诲瀷___________________________ + + /// <summary> + /// 娣诲姞鍔熻兘绫诲瀷琛� + /// </summary> + private void AddDeviceTypeRow() + { + var caption = Language.StringByID(R.MyInternationalizationString.uDeviceType); + var listNewDevice = new List<CommonDevice>(); + listNewDevice.Add(deviceObj); + var 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(); + } + #endregion + + #region 鈻� 鏅捐。鏋朵笓鐢╛________________________ + #region 鈻� 鐑樺共鏃堕棿_________________________ + /// <summary> + /// 鐑樺共鏃堕棿琛� + /// </summary> + private void AddAirerDryTimeRow(Airer airer) + { + var rowAirer = new AiererTimeControl(listview.rowSpace / 2); + listview.AddChidren(rowAirer); + var text = Language.StringByID(R.MyInternationalizationString.AirerDefault) + 3 + Language.StringByID(R.MyInternationalizationString.AirerHour); + if (airer.DryTime != 0) + { + double result = airer.DryTime / 60.0; + var hour = Math.Round(result, 2); + text = hour + Language.StringByID(R.MyInternationalizationString.AirerHour); + } + rowAirer.InitControl(airer, bodyFrameLayout, Language.StringByID(R.MyInternationalizationString.AirerDryTime), text, 1); + //搴曠嚎 + rowAirer.AddBottomLine(); + rowAirer.SelectTimeEvent += (v1, v2) => + { + //double result = second / 3600.0; + //var hour = Math.Round(result, 1); + //text = hour + Language.StringByID(R.MyInternationalizationString.AirerHour); + //rowAirer.InitControl(airer, bodyFrameLayout, Language.StringByID(R.MyInternationalizationString.AirerDryTime), text, 1); + }; + + } + #endregion + + #region 鈻� 椋庡共鏃堕棿_________________________ + /// <summary> + /// 椋庡共鏃堕棿琛� + /// </summary> + private void AddAirerWindTimeRow(Airer airer) + { + var rowAirer = new AiererTimeControl(listview.rowSpace / 2); + listview.AddChidren(rowAirer); + var text = Language.StringByID(R.MyInternationalizationString.AirerDefault) + 3 + Language.StringByID(R.MyInternationalizationString.AirerHour); + if (airer.WindTime != 0) + { + double result = airer.WindTime / 60.0; + var hour = Math.Round(result, 1); + text = hour + Language.StringByID(R.MyInternationalizationString.AirerHour); + } + rowAirer.InitControl(airer, bodyFrameLayout, Language.StringByID(R.MyInternationalizationString.AirerWindTime), text, 2); + //搴曠嚎 + rowAirer.AddBottomLine(); + rowAirer.SelectTimeEvent += (v1, v2) => + { + //double result = second / 3600.0; + //var hour = Math.Round(result, 1); + //text = hour + Language.StringByID(R.MyInternationalizationString.AirerHour); + //rowAirer.InitControl(airer, bodyFrameLayout, Language.StringByID(R.MyInternationalizationString.AirerDryTime), text, 1); + }; + } + #endregion + + #region 鈻� 娑堟瘨鏃堕棿_________________________ + /// <summary> + /// 娑堟瘨鏃堕棿琛� + /// </summary> + private void AddAirerDisinfectTimeRow(Airer airer) + { + var rowAirer = new AiererTimeControl(listview.rowSpace / 2); + listview.AddChidren(rowAirer); + var text = Language.StringByID(R.MyInternationalizationString.AirerDefault) + 30 + Language.StringByID(R.MyInternationalizationString.AirerMin); + if (airer.DisinfectTime != 0) + { + text = airer.DisinfectTime + Language.StringByID(R.MyInternationalizationString.AirerMin); + } + rowAirer.InitControl(airer, bodyFrameLayout, Language.StringByID(R.MyInternationalizationString.AirerDisinfectTime), text, 3); + //搴曠嚎 + rowAirer.AddBottomLine(); + rowAirer.SelectTimeEvent += (v1, v2) => + { + + }; + } + #endregion + + #region 鈻� 璇诲彇鏃堕棿鍛戒护___________________ + + /// <summary> + /// 璇诲彇鏃堕棿鍛戒护 + /// </summary> + public void ReadAirerFunTimeDevice() + { + + } + + #endregion + + /// <summary> + /// 璁惧鏃堕棿璁剧疆 + /// </summary> + private void SetAirerFunTimeDevice(Airer airer) + { + HdlThreadLogic.Current.RunThread(async () => + { + //鎵撳紑杩涘害鏉� + this.ShowProgressBar(); + + //鍒欒璁剧疆瀵瑰簲鐨勫姛鑳芥椂闂� + List<CommonDevice> listdevice = new List<CommonDevice>(); + + for (int i = 3; i < 6; i++) + { + int time = 0; + listdevice.Add(deviceObj); + switch (i) + { + case 3: + time = airer.WindTime; + break; + case 4: + time = airer.DryTime; + break; + case 5: + time = airer.DisinfectTime; + break; + } + bool result = await Common.LocalDevice.Current.SetAirerTimeDevice(listdevice, airer, time, i); + if (result == false) + { + airer.WindTime = airer.WindRemainTime = 0; + airer.DryTime = airer.DryRemainTime = 0; + airer.DisinfectTime = airer.DisinfectTime = 0; + HdlThreadLogic.Current.RunMainInThread(() => + { + this.InitMiddleFrame(); + }); + //鍏抽棴杩涘害鏉� + this.CloseProgressBar(); + return; + } + } + //鍏抽棴杩涘害鏉� + this.CloseProgressBar(); + //鍏抽棴鑷韩 + this.CloseForm(); + }); + } #endregion #region 鈻� 鍒濆鍖栬澶囧洖璺浘鏍嘷________________ @@ -354,6 +571,39 @@ frameBack.Y = Application.GetRealHeight(153); frameBack.Gravity = Gravity.Center; } + + //濡傛灉鏄櫨琛f灦 + if (deviceObj.Type == DeviceType.Airer) + { + frame.RemoveFromParent(); + frameBorder.Y = Application.GetRealHeight(0); + frameBorder.Height = Application.GetRealHeight(299); + frameBack.BackgroundImagePath = "Airer/Airer216.png"; + frameBack.Width = this.GetPictrueRealSize(207); + frameBack.Height = this.GetPictrueRealSize(207); + frameBack.Y = Application.GetRealHeight(92); + frameBack.Gravity = Gravity.CenterHorizontal; + } + + //濡傛灉鏄┖姘旇川閲忎紶鎰熷櫒 + if (this.deviceObj.Type == DeviceType.TemperatureSensor) + {//绌烘皵璐ㄩ噺浼犳劅鍣� + //鑾峰彇璁惧绫诲瀷 + var deviceEnumInfo = Common.LocalDevice.Current.GetMyDeviceEnumInfo(new List<CommonDevice>() { this.deviceObj }); + //绌烘皵璐ㄩ噺浼犳劅鍣� + if (deviceEnumInfo.ConcreteType == Common.DeviceConcreteType.AirQualitySensor) + { + frame.RemoveFromParent(); + frameBorder.Y = Application.GetRealHeight(0); + frameBorder.Height = Application.GetRealHeight(299); + //鍔犺浇鍥炬爣鎺т欢 + var btnPic = new DeviceInfoIconControl(); + btnPic.Y = Application.GetRealHeight(104); + btnPic.Gravity = Gravity.CenterHorizontal; + listBackControl.frameTable.AddChidren(btnPic); + btnPic.InitControl(deviceObj); + } + } } else { @@ -361,16 +611,20 @@ } } - if (listIcon.Count > 2) + //濡傛灉鏄櫨琛f灦,鏈�5涓洖璺紝浣嗘槸5涓洖璺彧鏄唬琛ㄤ笉鍚屽姛鑳戒娇鐢紝涓嶆槸鐪熷疄鐨勫搴旇澶囷紝鎵�浠ラ粯璁ゅ彧鏄剧ず绗竴鍥炶矾 + if (deviceObj.Type != DeviceType.Airer) { - //璁$畻鐪熷疄楂樺害 - int realHeight = this.GetPictrueRealSize(58 + 58);//涓婁笅闂磋窛 - realHeight += frameBack.ChildrenCount * this.GetPictrueRealSize(124);//鍦嗗湀楂樺害 - realHeight += (frameBack.ChildrenCount - 1) * this.GetPictrueRealSize(60);//鍦嗗湀闂磋窛 - if (realHeight > frameBack.Height) + if (listIcon.Count > 2) { - //鍙樻洿楂樺害 - frameBack.Height = realHeight; + //璁$畻鐪熷疄楂樺害 + int realHeight = this.GetPictrueRealSize(58 + 58);//涓婁笅闂磋窛 + realHeight += frameBack.ChildrenCount * this.GetPictrueRealSize(124);//鍦嗗湀楂樺害 + realHeight += (frameBack.ChildrenCount - 1) * this.GetPictrueRealSize(60);//鍦嗗湀闂磋窛 + if (realHeight > frameBack.Height) + { + //鍙樻洿楂樺害 + frameBack.Height = realHeight; + } } } } @@ -505,10 +759,14 @@ if (nowSelectControl != null) { //鍚屼竴涓笢瑗�,涓嶉笩浠� - if (nowSelectControl.Name == nowContr.Name) + if (this.deviceObj.Type != DeviceType.Airer) { - return; + if (nowSelectControl.Name == nowContr.Name) + { + return; + } } + //涓嶉�夋嫨鐘舵�� nowSelectControl.BorderColor = 0xff979797; nowSelectControl.TextSize = 13; -- Gitblit v1.8.0