From 7dd4be37cdedaf81ad40990d8cb8dce164d83f4d Mon Sep 17 00:00:00 2001 From: 黄学彪 <hxb@hdlchina.com.cn> Date: 星期二, 19 五月 2020 10:31:16 +0800 Subject: [PATCH] 34444444 --- ZigbeeApp/Shared/Phone/MainPage/ControlForm/Base/DeviceDetailCardCommonForm.cs | 9 ZigbeeApp/Shared/Phone/ZigBee/Common/Application.cs | 11 ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelFangyueFreshAirButtonSettionForm.cs | 72 +++ ZigbeeApp/Shared/Phone/Device/Logic/DoorLockLogic/LockLogicList.cs | 24 - ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlGatewayReceiveLogic.cs | 22 + ZigbeeApp/Shared/Phone/ZigBee/Device/Enum.cs | 4 ZigbeeApp/Shared/Phone/Device/Logic/Method.cs | 2 ZigbeeApp/Shared/R.cs | 26 + ZigbeeApp/Shared/Common/CommonPage.cs | 2 ZigbeeApp/Shared/Phone/Device/Logic/SkipView.cs | 17 ZigbeeApp/Shared/Phone/Device/Logic/Send.cs | 9 ZigbeeApp/Shared/Phone/ZigBee/Device/ZbGateway.cs | 2 ZigbeeApp/Shared/Common/Device.cs | 31 + ZigbeeApp/Shared/Phone/Device/Logic/SoneLogicList.cs | 196 ++++++---- ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlDeviceAttributeLogic.cs | 54 +++ ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelBackLighWithSensorForm.cs | 86 +++- ZigbeeApp/Shared/Phone/MainPage/ControlForm/DevicePmSensorDetailCardForm.cs | 134 +++++-- ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UserDoorLockPage.cs | 43 +- ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlSceneLogic.cs | 5 ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlDeviceOtherLogic.cs | 51 ++ ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/BindTargetsPage.cs | 12 ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlRoomLogic.cs | 4 ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/AddScenePage.cs | 24 + ZigbeeApp/Shared/Phone/ZigBee/Device/CommonDevice.cs | 2 ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/AddDevicePage.cs | 22 + ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelFangyueFreshAirTargetsForm.cs | 190 +++++++++ 26 files changed, 817 insertions(+), 237 deletions(-) diff --git a/ZigbeeApp/Shared/Common/CommonPage.cs b/ZigbeeApp/Shared/Common/CommonPage.cs index 5f5a967..83a2602 100755 --- a/ZigbeeApp/Shared/Common/CommonPage.cs +++ b/ZigbeeApp/Shared/Common/CommonPage.cs @@ -50,7 +50,7 @@ /// <summary> /// 鐗堟湰鍙� /// </summary> - public static string CodeIDString = "1.0.20051301"; + public static string CodeIDString = "1.0.20051801"; /// <summary> /// 娉ㄥ唽鏉ユ簮(0:HDL On 1:Zigbee) /// </summary> diff --git a/ZigbeeApp/Shared/Common/Device.cs b/ZigbeeApp/Shared/Common/Device.cs index 75fe150..00c334c 100755 --- a/ZigbeeApp/Shared/Common/Device.cs +++ b/ZigbeeApp/Shared/Common/Device.cs @@ -732,7 +732,7 @@ /// <returns></returns> public bool DeviceIsCanFixedPosition(CommonDevice device) { - if (device.Type == DeviceType.DoorLock) + if (device.Type == DeviceType.DoorLock || device.Type == DeviceType.PMSensor) { //闂ㄩ攣娌℃湁瀹氫綅鍔熻兘 return false; @@ -1982,6 +1982,16 @@ this.dicDeviceRoomId[listDevice[0].DeviceAddr] = roomId; save = true; } + else + { + //2020.05.18杩藉姞:濡傛灉璁板綍鐨勬埧闂碔D鏄笉瀛樺湪鐨勮瘽,鍒欓噸鏂拌鐩� + var room = HdlRoomLogic.Current.GetRoomById(this.dicDeviceRoomId[listDevice[0].DeviceAddr]); + if (room == null) + { + this.dicDeviceRoomId[listDevice[0].DeviceAddr] = roomId; + save = true; + } + } } if (save == true) @@ -2063,6 +2073,25 @@ HdlAutoBackupLogic.AddOrEditorFile(DirNameResourse.DeviceRoomIdFile); } + /// <summary> + /// 鏍规嵁鎴块棿ID,绉婚櫎鎸囧畾鐨勭湡瀹炵墿鐞嗚澶囩殑鎵�灞炴埧闂磋褰� + /// </summary> + /// <param name="i_RoomId"></param> + public void DeleteRealDeviceByRoomId(string i_RoomId) + { + var listDeleteKey = new List<string>(); + foreach (var deviceAddr in this.dicDeviceRoomId.Keys) + { + if (this.dicDeviceRoomId[deviceAddr] == i_RoomId + && listDeleteKey.Contains(deviceAddr) == false) + { + listDeleteKey.Add(deviceAddr); + } + } + //灏嗙湡瀹炵墿鐞嗚澶囦粠鎴块棿涓Щ闄� + this.DeleteRealDeviceFromRoom(listDeleteKey); + } + #endregion #region 鈻� 璁惧鎺掑簭___________________________ diff --git a/ZigbeeApp/Shared/Phone/Device/Logic/DoorLockLogic/LockLogicList.cs b/ZigbeeApp/Shared/Phone/Device/Logic/DoorLockLogic/LockLogicList.cs index 8790293..6e7edf2 100755 --- a/ZigbeeApp/Shared/Phone/Device/Logic/DoorLockLogic/LockLogicList.cs +++ b/ZigbeeApp/Shared/Phone/Device/Logic/DoorLockLogic/LockLogicList.cs @@ -98,22 +98,20 @@ { continue; } - Common.Logic.LockLogicList.Add(listlogic[j]); + Common.Logic.LockLogicList.Add(logic); //bool yes = false; //for (int a = 0; a < logic.Accounts.Count; a++) //{ // //Option4鏄澶噈ac锛汷ption2鏄澶囩鍙o紱 - // if (logic.Accounts[a]["Option4"].ToString() != Send.CurrentDoorLock.DeviceAddr && logic.Accounts[a]["Option2"].ToString() != Send.CurrentDoorLock.DeviceEpoint.ToString()) + // if (logic.Accounts[a]["Option4"].ToString() != Send.CurrentDoorLock.DeviceAddr) // { // //鏌ユ壘鏄惁鏄偅涓棬閿侊紱 // //濡傛灉涓嶆槸璇ラ棬閿佽仈鍔ㄤ簨浠朵笉鏄剧ず鍑烘潵; // yes = false; - // } // else // { // yes = true; - // } // //if (logic.Accounts[a]["Account"].ToString() == Config.Instance.Guid) // //{ @@ -320,29 +318,17 @@ /// <returns></returns> private bool Exist(Common.Logic logic) { - bool yes = false; for (int j = 0; j < logic.Accounts.Count; j++) { //Option4鏄澶噈ac锛汷ption2鏄澶囩鍙o紱 - if (logic.Accounts[j]["Option4"].ToString() != Send.CurrentDoorLock.DeviceAddr && logic.Accounts[j]["Option2"].ToString() != Send.CurrentDoorLock.DeviceEpoint.ToString()) + if (logic.Accounts[j]["Option4"].ToString() == Send.CurrentDoorLock.DeviceAddr) { //鏌ユ壘鏄惁鏄偅涓棬閿侊紱 //濡傛灉涓嶆槸璇ラ棬閿佽仈鍔ㄤ簨浠朵笉鏄剧ず鍑烘潵; - yes = false; + return true; } - else - { - yes = true; - } - //if (logic.Accounts[j]["Account"].ToString() == Config.Instance.Guid) - //{ - // //鏌ユ壘鑷繁璐﹀彿涓嬬殑鍒涘缓鑱斿姩浜嬩欢锛� - // yes = true; - // break; - //} - } - return yes; + return false; } } } diff --git a/ZigbeeApp/Shared/Phone/Device/Logic/Method.cs b/ZigbeeApp/Shared/Phone/Device/Logic/Method.cs index e4fff88..6178384 100755 --- a/ZigbeeApp/Shared/Phone/Device/Logic/Method.cs +++ b/ZigbeeApp/Shared/Phone/Device/Logic/Method.cs @@ -833,7 +833,7 @@ } if (LogicView.IfString._SoneLogic == if_logic) { - //Sone闂ㄩ攣鑱斿姩浜嬩欢閫昏緫鍒楄〃 + //Sone闂ㄩ攣甯稿紑妯″紡閫昏緫鍒楄〃 Common.Logic.SoneLogicList.Add(CurrentLogic); } diff --git a/ZigbeeApp/Shared/Phone/Device/Logic/Send.cs b/ZigbeeApp/Shared/Phone/Device/Logic/Send.cs old mode 100644 new mode 100755 index c8d17ed..bb8de80 --- a/ZigbeeApp/Shared/Phone/Device/Logic/Send.cs +++ b/ZigbeeApp/Shared/Phone/Device/Logic/Send.cs @@ -22,6 +22,7 @@ return await System.Threading.Tasks.Task.Run(async () => { List<int> logicIdList = new List<int>(); + Action<string, string> action = (topic, data) => { var gatewayID = topic.Split('/')[0]; @@ -30,7 +31,7 @@ { return; } - + if (topic == $"{gatewayID}/Logic/GetLogicList_Respon") { @@ -43,6 +44,7 @@ { var logicId = int.Parse(listIfon["LogicId"].ToString()); logicIdList.Add(logicId); + } } @@ -529,6 +531,10 @@ case 8: { var accounts1 = new JObject(); + if (dictionary.ContainsKey("Type")) + { + accounts1.Add("Type", dictionary["Type"]); + } if (dictionary.ContainsKey("Option4")) { accounts1.Add("Option4", dictionary["Option4"]); @@ -540,7 +546,6 @@ accounts.Add(accounts1); } break; - } } diff --git a/ZigbeeApp/Shared/Phone/Device/Logic/SkipView.cs b/ZigbeeApp/Shared/Phone/Device/Logic/SkipView.cs old mode 100644 new mode 100755 index 7d17c40..852b7dc --- a/ZigbeeApp/Shared/Phone/Device/Logic/SkipView.cs +++ b/ZigbeeApp/Shared/Phone/Device/Logic/SkipView.cs @@ -717,11 +717,12 @@ timeConditionsInfo.Add("DelayTime", "0"); timeConditionsInfo.Add("StartHour", h); timeConditionsInfo.Add("StartMin", m); - timeConditionsInfo.Add("DoorLockOpenDelayTime", timeVlaue.ToString()); + timeConditionsInfo.Add("DoorLockOpenDelayTime", (timeVlaue*60*60).ToString()); + //timeConditionsInfo.Add("DoorLockOpenDelayTime", (timeVlaue * 3600).ToString()); Dictionary<string, object> actionsInfo = new Dictionary<string, object>(); actionsInfo.Add("LinkType", 8); actionsInfo.Add("DeviceAddr", common.DeviceAddr); - actionsInfo.Add("Epoint", common.DeviceEpoint); + actionsInfo.Add("Epoint", "200"); actionsInfo.Add("PassData", "055704010113");//榛樿闂ㄩ攣甯稿叧 Dictionary<string, string> accounts = new Dictionary<string, string>(); @@ -841,22 +842,18 @@ /// <returns></returns> public static bool ExistLogic(Common.Logic logic, ZigBee.Device.DoorLock doorLock) { - bool yes = false; for (int j = 0; j < logic.Accounts.Count; j++) { //Option4鏄澶噈ac锛汷ption2鏄澶囩鍙o紱 - if (logic.Accounts[j]["Option4"].ToString() != doorLock.DeviceAddr && logic.Accounts[j]["Option2"].ToString() != doorLock.DeviceEpoint.ToString()) + if (logic.Accounts[j]["Option4"].ToString() == doorLock.DeviceAddr) { //鏌ユ壘鏄惁鏄偅涓棬閿侊紱 //濡傛灉涓嶆槸璇ラ棬閿佽仈鍔ㄤ簨浠朵笉鏄剧ず鍑烘潵; - yes = false; + return true; } - else - { - yes = true; - } + } - return yes; + return false; } } diff --git a/ZigbeeApp/Shared/Phone/Device/Logic/SoneLogicList.cs b/ZigbeeApp/Shared/Phone/Device/Logic/SoneLogicList.cs old mode 100644 new mode 100755 index 18a2471..a81b5a1 --- a/ZigbeeApp/Shared/Phone/Device/Logic/SoneLogicList.cs +++ b/ZigbeeApp/Shared/Phone/Device/Logic/SoneLogicList.cs @@ -16,7 +16,7 @@ } /// 缁欏緪姊呭埛鏂扮晫闈㈢敤鐨� - public Action<bool> action; + public Action<bool> action; ///绗簩鍧楃涓�绾х埗鎺т欢 FrameLayout fLayout = new FrameLayout(); ///绗笁鍧楃涓�绾х埗鎺т欢 @@ -31,9 +31,17 @@ /// 璁板綍閫変腑鏃堕棿 /// </summary> public int timeValue = 0; + /// <summary> + /// 鏍囪鏄剧ず鎵ц鏃ユ湡(鐢ㄧ綉鍏崇殑锛岃繕鏄敤绯荤粺鐨勬椂闂�) + /// </summary> + public bool _if = false; + /// <summary> + /// 鏃堕棿鎴� + /// </summary> + public int timeLong = 0; public async void Show() { - + #region 鐣岄潰鐨勫竷灞�浠g爜 UserView.HomePage.Instance.ScrollEnabled = false;//閿佷綇宸︽粦 TopView view = new TopView(); @@ -60,11 +68,12 @@ this.AddChidren(middle); #endregion //鏄父寮�妯″紡鍐嶅幓璇诲彇 + if (Send.CurrentDoorLock.IsDoorLockNormallyMode) { //杩涙潵鏇存柊涓�娆� //鏌ユ壘鏄惁瀛樺湪鏃舵晥鎬ц嚜鍔ㄥ寲锛涙湁鐨勮瘽灏辫繑鍥炶嚜鍔ㄥ寲瀵硅薄; - var logic = await SkipView.GetLogicIfon(Send.CurrentDoorLock); + var logic = await SkipView.GetLogicIfon(Send.CurrentDoorLock); if (logic != null) { try @@ -72,6 +81,8 @@ //杩涙潵鏇存柊涓�娆″�� logicId = logic.LogicId; timeValue = int.Parse(logic.Conditions[0]["DoorLockOpenDelayTime"]); + timeLong = int.Parse(logic.Conditions[0]["TriggerTime"]); + } catch { } } @@ -86,7 +97,6 @@ BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor, }; middle.AddChidren(fLayout); - ModeView(); #endregion #region 甯稿紑鑷姩鍖� ///绗笁鍧楃涓�绾х埗鎺т欢 @@ -100,7 +110,7 @@ }; middle.AddChidren(listLogicFl); listLogicFl.SetCornerWithSameRadius(Application.GetRealHeight(58), HDLUtils.RectCornerTopLeft); - + ModeView(); ///娣诲姞甯稿紑鑷姩鍖栫殑鐖舵帶浠� var addLogicfL = new FrameLayout { @@ -163,8 +173,8 @@ actionsInfo.Add("DeviceAddr", Send.CurrentDoorLock.DeviceAddr); actionsInfo.Add("Epoint", "200"); actionsInfo.Add("PassData", "055704010113");//榛樿闂ㄩ攣甯稿叧 - Dictionary<string, string> accounts = new Dictionary<string, string>(); - accounts.Add("Type", "8"); + Dictionary<string, string> accounts = new Dictionary<string, string>(); + accounts.Add("Type", "8"); accounts.Add("Option4", Send.CurrentDoorLock.DeviceAddr.ToString());//鐢ㄤ簬鍒ゆ柇璇嗗埆鏄摢涓棬閿�; accounts.Add("Option2", Send.CurrentDoorLock.DeviceEpoint.ToString()); //new涓�涓柊閫昏緫瀵硅薄锛� @@ -220,7 +230,7 @@ /// <summary> /// 甯稿紑妯″紡寮�鍏冲垏鎹㈠浘鏍囩晫闈� /// </summary> - public void ModeView() + public void ModeView() { fLayout.RemoveAll(); @@ -274,6 +284,7 @@ Send.DelLogic(logicId); } Send.CurrentDoorLock.IsDoorLockNormallyMode = false; + _if = false; ModeView(); } else @@ -296,8 +307,8 @@ var timeTextBtn = new Button { Y = Application.GetRealHeight(127 + 69), - X = Application.GetRealWidth(125), - Width = Application.GetRealWidth(634 + 200), + X = Application.GetRealWidth(86),//125 + Width = Application.GetRealWidth(907),//634 + 200 Height = Application.GetRealHeight(60), TextSize = 15, TextColor = ZigbeeColor.Current.LogicTextBlackColor, @@ -305,20 +316,40 @@ if (logicId != 0) { openModeFl.AddChidren(timeTextBtn); - ///鏈夋椂鏁堟�у父寮�鎵嶆樉绀烘椂闂存潯浠舵枃鏈� - var y = DateTime.Now.Year.ToString();//閭d竴骞� - var m = DateTime.Now.Month.ToString();//閭d竴鏈� - var d = DateTime.Now.ToString("dd");//閭d竴澶� - var h = int.Parse(DateTime.Now.ToString("HH"));//褰撳墠绯荤粺鏃堕棿 - int dayInt = (h + timeValue) / 24;//绠楀嚭鍑犲ぉ鍚庢墽琛� - int hour = (h + timeValue) % 24;//绠楀嚭鍑犲ぉ鍚庨偅涓椂闂存墽琛� - int days = int.Parse(d) + dayInt; string text1 = Language.StringByID(MyInternationalizationString.timeSensitive); string text2 = Language.StringByID(MyInternationalizationString.yearSone); string text3 = Language.StringByID(MyInternationalizationString.monthSone); string text4 = Language.StringByID(MyInternationalizationString.numberSone); - string text5 = Language.StringByID(MyInternationalizationString.executeSone); - timeTextBtn.Text = text1 + y + text2 + m + text3 + days.ToString() + text4 + hour.ToString() + text5; + string text5 = Language.StringByID(MyInternationalizationString.hour1); + string text6 = Language.StringByID(MyInternationalizationString.executeSone); + if (_if) + { + + ///绗竴娆¤繘鏉ヨ鍙栫綉鍏虫椂闂达紱 + var datetime = GetLocalTime(timeLong); + ///鏈夋椂鏁堟�у父寮�鎵嶆樉绀烘椂闂存潯浠舵枃鏈� + var y = datetime.Year.ToString();//閭d竴骞� + var m = datetime.Month.ToString();//閭d竴鏈� + var d = datetime.ToString("dd");//閭d竴澶� + var h = int.Parse(datetime.ToString("HH"));//灏忔椂 + int minute = datetime.Minute;//鍒嗛挓 + timeTextBtn.Text = text1 + y + text2 + m + text3 + d + text4 + h + text5 + minute.ToString() + text6; + + } + else + { + + ///鏈夋椂鏁堟�у父寮�鎵嶆樉绀烘椂闂存潯浠舵枃鏈� + var y = DateTime.Now.Year.ToString();//閭d竴骞� + var m = DateTime.Now.Month.ToString();//閭d竴鏈� + var d = DateTime.Now.ToString("dd");//閭d竴澶� + var h = int.Parse(DateTime.Now.ToString("HH"));//灏忔椂 + int dayInt = (h + timeValue) / 24;//绠楀嚭鍑犲ぉ鍚庢墽琛� + int hour = (h + timeValue) % 24;//绠楀嚭鍑犲ぉ鍚庨偅涓椂闂存墽琛� + int days = int.Parse(d) + dayInt; + int minute = DateTime.Now.Minute;//鍒嗛挓 + timeTextBtn.Text = text1 + y + text2 + m + text3 + days.ToString() + text4 + hour.ToString() + text5 + minute.ToString() + text6; + } } @@ -376,59 +407,59 @@ { LogicView.TipView.ShowConfrimTip(() => - {///鍐嶆纭 - LogicView.TipView.ShowInputTip(true, async (str) => - {///纭鍙戦�佸懡浠� - CommonPage.Loading.Start(); - try - { - ///xm - var result = await UserCenter.DoorLock.DoorLockCommonInfo.SetNormallyOpenModeFuncAsync(Send.CurrentDoorLock); - if (!result) - { - LogicView.TipView.ShowFlashTip(Language.StringByID(MyInternationalizationString.openFailed)); - return; - } - else - { - ///鍥犱负鏈夊父寮�妯″紡涓嬫墠鍙互鍒涘缓澶辨晥閫昏緫锛� - SkipView.GetLogicAll(Send.CurrentDoorLock);//鍒犻櫎涔嬪墠鎵�鏈夊け鏁堥�昏緫 - var addResult = await SkipView.LockAddModifyLogic(int.Parse(str), Send.CurrentDoorLock);//娣诲姞涓�鏉″け鏁堥�昏緫 - if (addResult == 0) - { - ///鍙璇村鏋滃父寮�妯″紡寮�锛屽垱寤鸿嚜鍔ㄥ寲澶辫触锛岄偅涔堝皢瑕佸彂涓�鏉″父寮�妯″紡鍏抽棴鍛戒护; - UserCenter.DoorLock.DoorLockCommonInfo.DelNormallyOpenMode(Send.CurrentDoorLock); - ///鎻愮ず澶辫触 - LogicView.TipView.ShowFlashTip(Language.StringByID(MyInternationalizationString.addFailed)); - return; - } - else - { - logicId = addResult; - timeValue = int.Parse(str); - Send.CurrentDoorLock.IsDoorLockNormallyMode = true; - ModeView(); - ///娣诲姞APP寮�鍚父寮�妯″紡鐨勫巻鍙茶褰� - UserCenter.HdlDeviceDoorLockLogic.Current.AddDoorHistoryLog(Send.CurrentDoorLock,9001,string.Empty); - } + LogicView.TipView.ShowInputTip(true, async (str) => + {///纭鍙戦�佸懡浠� + CommonPage.Loading.Start(); + try + { + ///xm + var result = await UserCenter.DoorLock.DoorLockCommonInfo.SetNormallyOpenModeFuncAsync(Send.CurrentDoorLock); + if (!result) + { + LogicView.TipView.ShowFlashTip(Language.StringByID(MyInternationalizationString.openFailed)); + return; + } + else + { + ///鍥犱负鏈夊父寮�妯″紡涓嬫墠鍙互鍒涘缓澶辨晥閫昏緫锛� + SkipView.GetLogicAll(Send.CurrentDoorLock);//鍒犻櫎涔嬪墠鎵�鏈夊け鏁堥�昏緫 + var addResult = await SkipView.LockAddModifyLogic(int.Parse(str), Send.CurrentDoorLock);//娣诲姞涓�鏉″け鏁堥�昏緫 + if (addResult == 0) + { + ///鍙璇村鏋滃父寮�妯″紡寮�锛屽垱寤鸿嚜鍔ㄥ寲澶辫触锛岄偅涔堝皢瑕佸彂涓�鏉″父寮�妯″紡鍏抽棴鍛戒护; + UserCenter.DoorLock.DoorLockCommonInfo.DelNormallyOpenMode(Send.CurrentDoorLock); + ///鎻愮ず澶辫触 + LogicView.TipView.ShowFlashTip(Language.StringByID(MyInternationalizationString.addFailed)); + return; + } + else + { + logicId = addResult; + timeValue = int.Parse(str); + Send.CurrentDoorLock.IsDoorLockNormallyMode = true; + _if = false; + ModeView(); + ///娣诲姞APP寮�鍚父寮�妯″紡鐨勫巻鍙茶褰� + UserCenter.HdlDeviceDoorLockLogic.Current.AddDoorHistoryLog(Send.CurrentDoorLock, 9001, string.Empty); + } - } - } - catch - { + } + } + catch + { - } - finally - { - Application.RunOnMainThread(() => - { - CommonPage.Loading.Hide(); + } + finally + { + Application.RunOnMainThread(() => + { + CommonPage.Loading.Hide(); - }); - } - }); + }); + } + }); }); @@ -439,12 +470,17 @@ listLogicFl.Height = Application.GetRealHeight(Method.H - 184) - fLayout.Height; listLogicFl.Width = Application.GetRealWidth(1022); listLogicFl.BackgroundColor = ZigbeeColor.Current.LogicBlankBackgroundColor; + + verticalRefresh.Y = Application.GetRealHeight(187); + verticalRefresh.X = Application.GetRealWidth(46); + verticalRefresh.Height = listLogicFl.Height - Application.GetRealHeight(187);//鍔ㄦ�佹敼鍔ㄤ笂涓嬫粦鍔╲iew楂樺害; + verticalRefresh.Width = listLogicFl.Width - Application.GetRealWidth(46); } /// <summary> /// 璇诲彇鑷姩鍖栧垪琛ㄦ暟鎹紱 /// </summary> /// <param name="yes"></param> - private async void Read( bool yes) + private async void Read(bool yes) { if (yes) { @@ -465,7 +501,7 @@ { continue; } - if (SkipView.ExistLogic(logic,Send.CurrentDoorLock)) + if (SkipView.ExistLogic(logic, Send.CurrentDoorLock)) { Common.Logic.SoneLogicList.Add(logic); } @@ -498,6 +534,10 @@ verticalRefresh.RemoveAll(); foreach (var logic in Common.Logic.SoneLogicList) { + if (!SkipView.ExistLogic(logic, Send.CurrentDoorLock)) + { + continue; + } #region 鑷姩鍖栧竷灞�View ///鑷姩鍖栫埗鎺т欢 var fLayoutLogic = new FrameLayout @@ -588,7 +628,7 @@ TextColor = ZigbeeColor.Current.LogicBtnSaveTextColor, }; logicRow.AddRightView(edit); - + ///鍒犻櫎 var del = new Button { @@ -621,6 +661,7 @@ else { //閫昏緫鍏� + logic.IsEnable = 0; typeIconBtn.UnSelectedImagePath = "ZigeeLogic/nofunction.png"; typeBjBtn.BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor; } @@ -654,6 +695,17 @@ }; } } - + + /// <summary> + /// 灏哢NIX鏃堕棿鎴宠浆鎹㈡垚绯荤粺鏃堕棿(绮剧‘鍒扮) + /// <returns></returns> + public DateTime GetLocalTime(int unixTimeStamp) + { + DateTime dtStart = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1)); + long lTime = long.Parse(unixTimeStamp + "0000000"); + TimeSpan toNow = new TimeSpan(lTime); + DateTime dtResult = dtStart.Add(toNow); + return dtResult; + } } } diff --git a/ZigbeeApp/Shared/Phone/MainPage/ControlForm/Base/DeviceDetailCardCommonForm.cs b/ZigbeeApp/Shared/Phone/MainPage/ControlForm/Base/DeviceDetailCardCommonForm.cs index f502459..974445d 100755 --- a/ZigbeeApp/Shared/Phone/MainPage/ControlForm/Base/DeviceDetailCardCommonForm.cs +++ b/ZigbeeApp/Shared/Phone/MainPage/ControlForm/Base/DeviceDetailCardCommonForm.cs @@ -400,6 +400,15 @@ } /// <summary> + /// 璁剧疆PM2.5浼犳劅鍣ㄧ姸鎬佹枃鏈�(涓嶉渶瑕佹寚瀹氥�愬綋鍓嶄袱涓瓧銆�) + /// </summary> + /// <param name="text"></param> + public void SetPmTwoPointFiveStatuText(string text) + { + this.btnStatu.Text = text; + } + + /// <summary> /// 閲嶆柊璁剧疆璁惧鍚嶅瓧鎺т欢鍜岀姸鎬佹帶浠剁殑Y杞� /// </summary> /// <param name="i_NameY">璁惧鍚嶅瓧鎺т欢鐨刌杞�(鐪熷疄鍊�)</param> diff --git a/ZigbeeApp/Shared/Phone/MainPage/ControlForm/DevicePmSensorDetailCardForm.cs b/ZigbeeApp/Shared/Phone/MainPage/ControlForm/DevicePmSensorDetailCardForm.cs index 45f747d..7790e40 100755 --- a/ZigbeeApp/Shared/Phone/MainPage/ControlForm/DevicePmSensorDetailCardForm.cs +++ b/ZigbeeApp/Shared/Phone/MainPage/ControlForm/DevicePmSensorDetailCardForm.cs @@ -11,7 +11,7 @@ /// </summary> public class DevicePmSensorDetailCardForm : DeviceDetailCardCommonForm { - #region 鈻� 鍙橀噺澹版槑___________________________ + #region 鈻� 鍙橀噺澹版槑___________________________ /// <summary> /// 鐣岄潰涓婂彲浠ユ搷浣滅殑鎺т欢 /// </summary> @@ -44,7 +44,7 @@ this.pMSensor = (PMSensor)this.device; //鍏堟竻绌� this.listControl = new List<ButtonBase>(); - InitFreshAirControl(frameWhiteBack); + InitPmControl(frameWhiteBack); UpdateStatus(); } @@ -52,7 +52,7 @@ /// 鍒濆鍖朠M2.5浼犳劅鍣ㄦ帶浠� /// </summary> /// <param name="frameWhiteBack"></param> - private void InitFreshAirControl(FrameLayout frameWhiteBack) + private void InitPmControl(FrameLayout frameWhiteBack) { //婀垮害瀹瑰櫒 var frameHumidityPic = new FrameLayout(); @@ -76,7 +76,7 @@ var btnHumidityStatus = new NormalViewControl(193, 92, true); btnHumidityStatus.Y = Application.GetRealHeight(181); btnHumidityStatus.Text = "20"; - btnHumidityStatus.TextSize = 32; + btnHumidityStatus.TextSize = 30; btnHumidityStatus.TextColor = ZigbeeColor.Current.XMWhite; btnHumidityStatus.TextAlignment = TextAlignment.CenterRight; frameHumidityPic.AddChidren(btnHumidityStatus); @@ -85,7 +85,7 @@ //婀垮害鍗曚綅 var btnHumidityUnit = new NormalViewControl(37 + 81, 40, true); btnHumidityUnit.Y = Application.GetRealHeight(181 + 46); - btnHumidityUnit.X = Application.GetRealWidth(190); + btnHumidityUnit.X = Application.GetRealWidth(180); btnHumidityUnit.Text = "%"; btnHumidityUnit.TextSize = 14; btnHumidityUnit.TextColor = ZigbeeColor.Current.XMWhite; @@ -113,7 +113,7 @@ var btnTemperatureStatus = new NormalViewControl(193, 92, true); btnTemperatureStatus.Y = Application.GetRealHeight(181); btnTemperatureStatus.Text = "20"; - btnTemperatureStatus.TextSize = 32; + btnTemperatureStatus.TextSize = 30; btnTemperatureStatus.TextColor = ZigbeeColor.Current.XMWhite; btnTemperatureStatus.TextAlignment = TextAlignment.CenterRight; frameTemperaturePic.AddChidren(btnTemperatureStatus); @@ -122,7 +122,7 @@ //娓╁害鍗曚綅 var btnTemperatureUnit = new NormalViewControl(40 + 81, 40, true); btnTemperatureUnit.Y = Application.GetRealHeight(181 + 46); - btnTemperatureUnit.X = Application.GetRealWidth(188); + btnTemperatureUnit.X = Application.GetRealWidth(180); btnTemperatureUnit.Text = "鈩�"; btnTemperatureUnit.TextSize = 14; btnTemperatureUnit.TextColor = ZigbeeColor.Current.XMWhite; @@ -147,26 +147,27 @@ framePmPic.AddChidren(btnPmText); //PM2.5鏁版嵁锛堢3涓紝listControl銆�2銆戯級 - var btnPmStatus = new NormalViewControl(109 + 40, 92, true); + var btnPmStatus = new NormalViewControl(162, 92, true); btnPmStatus.Y = Application.GetRealHeight(181); - btnPmStatus.Text = "35"; - btnPmStatus.TextSize = 32; + btnPmStatus.Text = "155"; + btnPmStatus.TextSize = 30; btnPmStatus.TextColor = ZigbeeColor.Current.XMWhite; btnPmStatus.TextAlignment = TextAlignment.CenterRight; framePmPic.AddChidren(btnPmStatus); this.listControl.Add(btnPmStatus); - //PM2.5鍗曚綅 - var btnPmUnit = new NormalViewControl(124 + 15, 43, true); + //PM2.5鍗曚綅 锛堢4涓紝listControl銆�3銆戯級 + var btnPmUnit = new NormalViewControl(120 + 26, 43, true); btnPmUnit.Y = Application.GetRealHeight(181 + 46); - btnPmUnit.X = Application.GetRealWidth(150); + btnPmUnit.X = Application.GetRealWidth(153); btnPmUnit.Text = "渭g/m鲁"; btnPmUnit.TextSize = 14; btnPmUnit.TextColor = ZigbeeColor.Current.XMWhite; btnPmUnit.TextAlignment = TextAlignment.CenterLeft; framePmPic.AddChidren(btnPmUnit); + this.listControl.Add(btnPmUnit); } - #endregion + #endregion #region 鈻� 鏄惁鑾峰彇缃戝叧鍙嶉鐨勭粨鏋淿____________ @@ -236,31 +237,6 @@ } #endregion - #region 鈻� 璁剧疆鏂规硶 - /// <summary> - ///鍛戒护 - ///0:Off - ///1:Low - ///3:High - ///4:On - ///5:Auto - /// 15:Manual - /// </summary> - private void SetFanComand(int command) - { - //妫�娴嬫槸鍚﹁幏鍙栫綉鍏冲弽棣堢殑缁撴灉,濡傛灉缃戝叧娌℃湁鍥炲,鍒欎細寮瑰嚭娑堟伅 - this.StartCheckResponeResult(this.listControl, (result) => - { - //鎺ユ敹鍒扮綉鍏冲洖澶� - if (result == true) - { - } - }); - - - } - #endregion - #region 鈻� 鍒锋柊鐘舵�乢____________ /// <summary> /// 鍒锋柊鐘舵�� @@ -271,9 +247,85 @@ this.listControl[0].Text = pMSensor.currentTemperature.ToString(); this.listControl[1].Text = pMSensor.currentHumidity.ToString(); this.listControl[2].Text = pMSensor.currentPmData.ToString(); - //璁剧疆鐘舵�佹枃瀛� - this.SetStatuText(Language.StringByID(R.MyInternationalizationString.uOpen1)); + //璁剧疆鐘舵�佹枃瀛� + var curText = Language.StringByID(R.MyInternationalizationString.AirQuality) + QuailityType(); + this.SetStatuText(curText); + } + + /// <summary> + /// 璐ㄩ噺绛夌骇 + /// </summary> + private string QuailityType() + { + string curQuality = string.Empty; + + if (pMSensor.currentPmData <= 35 && pMSensor.currentPmData >= 0) + { + curQuality = Language.StringByID(R.MyInternationalizationString.ExcellentAirQuality); + + if (pMSensor.currentPmData < 10) + { + this.listControl[2].Width = Application.GetRealWidth(188 - 70); + this.listControl[3].X = Application.GetRealWidth(180 - 70); + } + else + { + this.listControl[2].Width = Application.GetRealWidth(193 - 40); + this.listControl[3].X = Application.GetRealWidth(137); + } + } + + else if (pMSensor.currentPmData <= 75 && pMSensor.currentPmData > 35) + { + curQuality = Language.StringByID(R.MyInternationalizationString.ExcellentAirQuality); + this.listControl[2].Width = Application.GetRealWidth(193 - 40); + this.listControl[3].X = Application.GetRealWidth(137); + } + else if (pMSensor.currentPmData <= 115 && pMSensor.currentPmData > 75) + { + curQuality = Language.StringByID(R.MyInternationalizationString.ExcellentAirQuality); + + if (pMSensor.currentPmData < 100) + { + this.listControl[2].Width = Application.GetRealWidth(193 - 40); + this.listControl[3].X = Application.GetRealWidth(137); + } + else + { + this.listControl[2].Width = Application.GetRealWidth(162); + this.listControl[3].X = Application.GetRealWidth(153); + } + } + else if (pMSensor.currentPmData <= 150 && pMSensor.currentPmData > 115) + { + curQuality = Language.StringByID(R.MyInternationalizationString.ExcellentAirQuality); + this.listControl[2].Width = Application.GetRealWidth(162); + this.listControl[3].X = Application.GetRealWidth(153); + } + else if (pMSensor.currentPmData <= 250 && pMSensor.currentPmData > 150) + { + curQuality = Language.StringByID(R.MyInternationalizationString.ExcellentAirQuality); + this.listControl[2].Width = Application.GetRealWidth(162); + this.listControl[3].X = Application.GetRealWidth(153); + } + else if (pMSensor.currentPmData > 250) + { + curQuality = Language.StringByID(R.MyInternationalizationString.ExcellentAirQuality); + this.listControl[2].Width = Application.GetRealWidth(162); + this.listControl[3].X = Application.GetRealWidth(153); + } + else + { + curQuality = ""; + this.listControl[2].Width = Application.GetRealWidth(162); + this.listControl[3].X = Application.GetRealWidth(153); + } + //璁剧疆鐘舵�佹枃瀛� + return curQuality; } #endregion + + + } } diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlDeviceAttributeLogic.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlDeviceAttributeLogic.cs index 2083d28..01ce670 100755 --- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlDeviceAttributeLogic.cs +++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlDeviceAttributeLogic.cs @@ -286,6 +286,60 @@ #endregion + #region 鈻� PM2.5_______________________________ + /// <summary> + /// SendPmSensorComand + /// </summary> + /// <param name="device">璁惧</param> + public void SendPmSensorComand(CommonDevice device) + { + if (device == null) + { + return; + } + new System.Threading.Thread(() => + { + SendPmSensorStatuComand(device); + //璇诲彇Pm2.5浼犳劅鍣ㄧ殑娓╁害鏁版嵁 + HdlDeviceAttributeLogic.Current.SendTemperatureStatuComand(device); + //璇诲彇Pm2.5浼犳劅鍣ㄧ殑婀垮害鏁版嵁 + HdlDeviceAttributeLogic.Current.SendHumidityStatuComand(device); + System.Threading.Thread.Sleep(300); + }) + { IsBackground = true }.Start(); + } + + /// <summary> + /// SendFanStatuComand + /// </summary> + /// <param name="device">璁惧</param> + private void SendPmSensorStatuComand(CommonDevice device) + { + if (device == null) + { + return; + } + var jObject = new Newtonsoft.Json.Linq.JObject + { + { "DeviceAddr",device.DeviceAddr }, + { "Epoint", device.DeviceEpoint }, + { "Cluster_ID", (int)Cluster_ID.PmTwoPointFiveMeasurement }, + { "Command", 108 } + }; + var attriBute = new Newtonsoft.Json.Linq.JArray + { + new Newtonsoft.Json.Linq.JObject + { + { "AttriButeId", (int)AttriButeId.MeasuredValue} + } + }; + var data = new Newtonsoft.Json.Linq.JObject { { "AttriBute", attriBute } }; + jObject.Add("Data", data); + device.Gateway?.Send("GetDeviceStatus", jObject.ToString()); + } + + #endregion + #region 鈻� 绐楀笜_______________________________ /// <summary> /// 鍙戦�佽幏鍙栫獥甯樼姸鎬佸懡浠� diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlDeviceOtherLogic.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlDeviceOtherLogic.cs index 6fbdb9e..482c652 100755 --- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlDeviceOtherLogic.cs +++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlDeviceOtherLogic.cs @@ -183,6 +183,57 @@ } return $"{wind}"; } + else if (device.Type == DeviceType.PMSensor) + { + //鍦ㄧ綉鍏虫病鏈夊洖澶嶄箣鍓�,榛樿绂荤嚎 + if (device.HadReadDeviceStatu == false) + { + return Language.StringByID(R.MyInternationalizationString.uOffLine); + } + //绌烘皵璐ㄩ噺 + string curQuality = ""; + //娓╁害 + string temperature = string.Empty; + //婀垮害 + string humidity = string.Empty; + //PM2.5 + string pm = string.Empty; + var pMSensor = device as PMSensor; + if (pMSensor.currentPmData <= 35 && pMSensor.currentPmData >= 0) + { + curQuality = Language.StringByID(R.MyInternationalizationString.ExcellentAirQuality); + } + else if (pMSensor.currentPmData <= 75 && pMSensor.currentPmData > 35) + { + curQuality = Language.StringByID(R.MyInternationalizationString.ExcellentAirQuality); + } + else if (pMSensor.currentPmData <= 115 && pMSensor.currentPmData > 75) + { + curQuality = Language.StringByID(R.MyInternationalizationString.ExcellentAirQuality); + } + else if (pMSensor.currentPmData <= 150 && pMSensor.currentPmData > 115) + { + curQuality = Language.StringByID(R.MyInternationalizationString.ExcellentAirQuality); + } + else if (pMSensor.currentPmData <= 250 && pMSensor.currentPmData > 150) + { + curQuality = Language.StringByID(R.MyInternationalizationString.ExcellentAirQuality); + } + else if (pMSensor.currentPmData > 250) + { + curQuality = Language.StringByID(R.MyInternationalizationString.ExcellentAirQuality); + } + else + { + curQuality = "--"; + } + + humidity = $"{pMSensor.currentHumidity}%"; + temperature = $"{pMSensor.currentTemperature}鈩�"; + pm = $"{pMSensor.currentPmData}渭g/m鲁"; + return $"{curQuality},{pm},{temperature},{humidity}"; + + } else if (device.Type == DeviceType.Thermostat) { //鍦ㄧ綉鍏虫病鏈夊洖澶嶄箣鍓�,榛樿绂荤嚎 diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlGatewayReceiveLogic.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlGatewayReceiveLogic.cs index d9acfff..f64c0b6 100755 --- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlGatewayReceiveLogic.cs +++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlGatewayReceiveLogic.cs @@ -526,6 +526,28 @@ } } #endregion + + #region 鈻� PM2.5鏁版嵁 + //PM2.5鏁版嵁 + else if (report.DeviceStatusReport.CluterID == 1066) + { + foreach (var attData in report.DeviceStatusReport.AttriBute) + { + //PM2.5 + if (attData.AttributeId == (int)AttriButeId.MeasuredValue) + { + + if (attData.AttriButeDataType == 57) + { + ((PMSensor)locadevice).currentPmData = attData.AttriButeData; + } + } + //宸茬粡鎺ユ敹鍒扮姸鎬� + locadevice.HadReadDeviceStatu = true; + } + } + + #endregion } this.DeviceReportPush(report, ReceiveComandDiv.A璁惧灞炴�т笂鎶�); diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlRoomLogic.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlRoomLogic.cs index 8105082..04158ce 100755 --- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlRoomLogic.cs +++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlRoomLogic.cs @@ -290,6 +290,10 @@ Global.DeleteFilebyHomeId(roomFilePath); } HdlAutoBackupLogic.DeleteFile(roomFilePath); + + //鏍规嵁鎴块棿ID,绉婚櫎鎸囧畾鐨勭湡瀹炵墿鐞嗚澶囩殑鎵�灞炴埧闂磋褰� + Common.LocalDevice.Current.DeleteRealDeviceByRoomId(roomId); + //鍒锋柊鎴块棿瑙嗗浘鍒楄〃 this.RefreshRoomListView(); } diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlSceneLogic.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlSceneLogic.cs index 58bbc9f..cab34c9 100755 --- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlSceneLogic.cs +++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlSceneLogic.cs @@ -684,13 +684,14 @@ /// <returns></returns> public string GetZoneById(int sceneId) { - var room =HdlRoomLogic.Current.GetRoomBySceneId(sceneId); + var room = HdlRoomLogic.Current.GetRoomBySceneId(sceneId); if (room == null) { return null; } var floorName = Shared.Common.Config.Instance.Home.GetFloorNameById(room.FloorId); - if (floorName == null) + //鏇存敼浠g爜锛氬鏋渇loorName=鈥溾�濅篃瑕佸垽鏂紝鍚﹀垯鏈夆�滐紝鈥� + if (string.IsNullOrEmpty(floorName)) { return room.Name; } diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/AddDevicePage.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/AddDevicePage.cs index d272cde..441b86e 100755 --- a/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/AddDevicePage.cs +++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/AddDevicePage.cs @@ -354,10 +354,12 @@ continue; } roomTempList.Add(room); - if (roomTempList.Count != 0) - { - curRoom = roomTempList[0]; - } + } + + for (int i = 0; i < roomTempList.Count; i++) + { + var room = roomTempList[i]; + curRoom = roomTempList[0]; var btnRoomFrameLayout = new FrameLayout { @@ -391,6 +393,18 @@ curentOldRoom = btnRoom; curentOldRoomFrameLayout = btnRoomFrameLayout; } + if (index == roomTempList.Count - 1 && index > 3) + { + var btnRoomFrameLayoutEmpty = new FrameLayout + { + Height = Application.GetMinReal(159), + Width = Application.GetMinReal(50), + Y = Application.GetRealHeight(23), + X = Application.GetRealWidth(5), + BorderWidth = 1, + }; + btnHorizontalScrolViewLayout.AddChidren(btnRoomFrameLayoutEmpty); + } EventHandler<MouseEventArgs> eHandlerRoom = (sender, e) => { if (!btnRoom.IsSelected) diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/AddScenePage.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/AddScenePage.cs index e5976fd..29cdfe9 100755 --- a/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/AddScenePage.cs +++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/AddScenePage.cs @@ -490,11 +490,11 @@ { roomTempList.Add(room); } - if (roomTempList.Count != 0) - { - curRoom = roomTempList[0]; - } - + } + for (int i = 0; i < roomTempList.Count; i++) + { + var room = roomTempList[i]; + curRoom = roomTempList[0]; var btnRoomFrameLayout = new FrameLayout { Height = Application.GetMinReal(159), @@ -527,6 +527,20 @@ curentOldRoom = btnRoom; curentOldRoomFrameLayout = btnRoomFrameLayout; } + + if (index == roomTempList.Count - 1 && index > 3) + { + var btnRoomFrameLayoutEmpty = new FrameLayout + { + Height = Application.GetMinReal(159), + Width = Application.GetMinReal(50), + Y = Application.GetRealHeight(23), + X = Application.GetRealWidth(5), + BorderWidth = 1, + }; + btnHorizontalScrolViewLayout.AddChidren(btnRoomFrameLayoutEmpty); + } + EventHandler<MouseEventArgs> eHandlerRoom = (sender, e) => { if (!btnRoom.IsSelected) diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/BindTargetsPage.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/BindTargetsPage.cs index 4f40b43..e4d680a 100755 --- a/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/BindTargetsPage.cs +++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/BindTargetsPage.cs @@ -739,21 +739,27 @@ if (typeModeList == null) { //鍐嶆鍔ㄦ�佽幏鍙栨寜閿敮鎸佺殑澶х被 - CommonPage.Loading.Start(); + Application.RunOnMainThread(() => + { + CommonPage.Loading.Start(); + }); typeModeList = await GetTypeMode(); if (typeModeList == null) { Application.RunOnMainThread(() => { new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance); + CommonPage.Loading.Hide(); }); - CommonPage.Loading.Hide(); dialog.Close(); return; } else { - CommonPage.Loading.Hide(); + Application.RunOnMainThread(() => + { + CommonPage.Loading.Hide(); + }); } } diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelBackLighWithSensorForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelBackLighWithSensorForm.cs index 6181276..dc81c80 100755 --- a/ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelBackLighWithSensorForm.cs +++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelBackLighWithSensorForm.cs @@ -350,22 +350,46 @@ frameColor.ButtonClickEvent += (sender, e) => { - var form = new PanelColorSelectForm(); - form.AddForm(R1, G1, B1); - form.FinishSelectColorEvent += (Rcolor, Gcolor, Bcolor) => - { - R1 = Rcolor; - G1 = Gcolor; - B1 = Bcolor; + PanelColor(btnColor, seekBar1, R1, G1, B1); + }; + btnColorView.ButtonClickEvent += (sender, e) => + { + PanelColor(btnColor, seekBar1, R1, G1, B1); + }; + btnColor.ButtonClickEvent += (sender, e) => + { + PanelColor(btnColor, seekBar1, R1, G1, B1); + }; + btnColorLine.ButtonClickEvent += (sender, e) => + { + PanelColor(btnColor, seekBar1, R1, G1, B1); + }; + btnRight.ButtonClickEvent += (sender, e) => + { + PanelColor(btnColor, seekBar1, R1, G1, B1); + }; + } - this.keyColorData.CloseColorR = Convert.ToString(Rcolor, 16); - this.keyColorData.CloseColorG = Convert.ToString(Gcolor, 16); - this.keyColorData.CloseColorB = Convert.ToString(Bcolor, 16); + /// <summary> + /// PanelColorBefore + /// </summary> + private void PanelColor(NormalViewControl btnColor, SeekBarControl seekBar1, int R1, int G1, int B1) + { + var form = new PanelColorSelectForm(); + form.AddForm(R1, G1, B1); + form.FinishSelectColorEvent += (Rcolor, Gcolor, Bcolor) => + { + R1 = Rcolor; + G1 = Gcolor; + B1 = Bcolor; - btnColor.BackgroundColor = this.GetColorByRGB((byte)Rcolor, (byte)Gcolor, (byte)Bcolor); - //鍙樻洿婊戝姩鏉$殑棰滆壊 - seekBar1.ProgressBarColor = btnColor.BackgroundColor; - }; + this.keyColorData.CloseColorR = Convert.ToString(Rcolor, 16); + this.keyColorData.CloseColorG = Convert.ToString(Gcolor, 16); + this.keyColorData.CloseColorB = Convert.ToString(Bcolor, 16); + + btnColor.BackgroundColor = this.GetColorByRGB((byte)Rcolor, (byte)Gcolor, (byte)Bcolor); + //鍙樻洿婊戝姩鏉$殑棰滆壊 + seekBar1.ProgressBarColor = btnColor.BackgroundColor; }; } @@ -488,25 +512,25 @@ frameColor.ButtonClickEvent += (sender, e) => { - var form = new PanelColorSelectForm(); - form.AddForm(R1, G1, B1); - form.FinishSelectColorEvent += (Rcolor, Gcolor, Bcolor) => - { - R1 = Rcolor; - G1 = Gcolor; - B1 = Bcolor; - - this.keyColorData.OpenColorR = Convert.ToString(Rcolor, 16); - this.keyColorData.OpenColorG = Convert.ToString(Gcolor, 16); - this.keyColorData.OpenColorB = Convert.ToString(Bcolor, 16); - - btnColor.BackgroundColor = this.GetColorByRGB((byte)Rcolor, (byte)Gcolor, (byte)Bcolor); - //鍙樻洿婊戝姩鏉$殑棰滆壊 - seekBar1.ProgressBarColor = btnColor.BackgroundColor; - }; + PanelColor(btnColor, seekBar1, R1, G1, B1); + }; + btnColorView.ButtonClickEvent += (sender, e) => + { + PanelColor(btnColor, seekBar1, R1, G1, B1); + }; + btnColor.ButtonClickEvent += (sender, e) => + { + PanelColor(btnColor, seekBar1, R1, G1, B1); + }; + btnColorLine.ButtonClickEvent += (sender, e) => + { + PanelColor(btnColor, seekBar1, R1, G1, B1); + }; + btnRight.ButtonClickEvent += (sender, e) => + { + PanelColor(btnColor, seekBar1, R1, G1, B1); }; } - #endregion #region 鈻� 鑾峰彇鍒濆鏁版嵁_______________________ diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelFangyueFreshAirButtonSettionForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelFangyueFreshAirButtonSettionForm.cs index 49ce8de..9e91845 100755 --- a/ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelFangyueFreshAirButtonSettionForm.cs +++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelFangyueFreshAirButtonSettionForm.cs @@ -53,6 +53,10 @@ /// 琚粦鐩爣鏄疨M2.5 /// </summary> private CommonDevice bindPMDev; + // <summary> + /// 鎸夐敭涓缁戝畾鐨勭洰鏍囧垪琛� + /// </summary> + public List<BindObj.BindListResponseObj> bindList = new List<BindObj.BindListResponseObj>(); #endregion @@ -241,9 +245,9 @@ var panelBindListRes = await curControlDev.GetDeviceBindAsync(); if (panelBindListRes != null && panelBindListRes.getAllBindResponseData != null) { - foreach (var bDev in panelBindListRes.getAllBindResponseData.BindList) + bindList = panelBindListRes.getAllBindResponseData.BindList; + foreach (var bDev in bindList) { - curControlDev.bindList.Add(bDev); var device = Common.LocalDevice.Current.GetDevice(bDev.BindMacAddr, bDev.BindEpoint); if (device.Type == DeviceType.FreshAir) @@ -255,7 +259,15 @@ { continue; } - bindFreshAirName = device.DeviceEpointName; + if (string.IsNullOrEmpty(bDev.ESName)) + { + bindFreshAirName = device.DeviceEpointName; + } + else + { + bindFreshAirName = bDev.ESName; + } + bindFreshAirDev = device; } if (device.Type == DeviceType.TemperatureSensor) @@ -263,24 +275,68 @@ var bD = device as TemperatureSensor; if (bD.SensorDiv == 1) { - bindTemperatureName = device.DeviceEpointName; + if (string.IsNullOrEmpty(bDev.ESName)) + { + bindTemperatureName = device.DeviceEpointName; + } + else + { + bindTemperatureName = bDev.ESName; + } bindTemperatureDev = device; } if (bD.SensorDiv == 2) { - bindHumidityName = device.DeviceEpointName; + if (string.IsNullOrEmpty(bDev.ESName)) + { + bindHumidityName = device.DeviceEpointName; + } + else + { + bindHumidityName = bDev.ESName; + } + bindHumidityDev = device; } } if (device.Type == DeviceType.FreshAirHumiditySensor) { - bindHumidityName = device.DeviceEpointName; + if (string.IsNullOrEmpty(bDev.ESName)) + { + bindHumidityName = device.DeviceEpointName; + } + else + { + bindHumidityName = bDev.ESName; + } + bindHumidityDev = device; } if (device.Type == DeviceType.PMSensor) { - bindPmName = device.DeviceEpointName; - bindPMDev = device; + if (bDev.BindCluster == 1026) + { + bindTemperatureName = Common.LocalDevice.Current.GetDeviceEpointName(device) + "-" + Language.StringByID(R.MyInternationalizationString.TemperatureSensor); + bindTemperatureDev = device; + } + if (bDev.BindCluster == 1029) + { + bindHumidityName = Common.LocalDevice.Current.GetDeviceEpointName(device) + "-" + Language.StringByID(R.MyInternationalizationString.HumiditySensor); + bindHumidityDev = device; + } + if (bDev.BindCluster == 1066) + { + if (string.IsNullOrEmpty(bDev.ESName)) + { + bindPmName = device.DeviceEpointName; + } + else + { + bindPmName = bDev.ESName; + } + + bindPMDev = device; + } } } result = true; diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelFangyueFreshAirTargetsForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelFangyueFreshAirTargetsForm.cs index cc4040a..1540752 100755 --- a/ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelFangyueFreshAirTargetsForm.cs +++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelFangyueFreshAirTargetsForm.cs @@ -103,10 +103,7 @@ /// PM缁戝畾鐩爣鍥炶皟 /// </summary> public Action<string> actionPMTarget = null; - /// <summary> - /// 鏄惁鑳界偣鍑讳繚瀛樻寜閽� - /// </summary> - private bool canSave = true; + #endregion #region UI璁捐 @@ -337,6 +334,19 @@ } } + if (index == roomTempList.Count - 1 && index > 3) + { + var btnRoomFrameLayoutEmpty = new FrameLayout + { + Height = Application.GetMinReal(159), + Width = Application.GetMinReal(50), + Y = Application.GetRealHeight(23), + X = Application.GetRealWidth(5), + BorderWidth = 1, + }; + btnHorizontalScrolViewLayout.AddChidren(btnRoomFrameLayoutEmpty); + } + EventHandler<MouseEventArgs> eHandlerRoom = (sender, e) => { if (!btnRoom.IsSelected) @@ -475,12 +485,20 @@ break; case 2: devicePic.UnSelectedImagePath = "Device/SensorTemperature.png"; + if (device.Type == DeviceType.PMSensor) + { + btnBindName.Text = Common.LocalDevice.Current.GetDeviceEpointName(device) + "-" + Language.StringByID(R.MyInternationalizationString.TemperatureSensor); + } break; case 3: devicePic.UnSelectedImagePath = "Device/SensorHumidity.png"; + if (device.Type == DeviceType.PMSensor) + { + btnBindName.Text = Common.LocalDevice.Current.GetDeviceEpointName(device) + "-" + Language.StringByID(R.MyInternationalizationString.HumiditySensor); + } break; case 4: - devicePic.UnSelectedImagePath = "Device/FreshAirEpoint.png"; + devicePic.UnSelectedImagePath = "Device/AirQualitySensorEpoint.png"; break; } #endregion @@ -709,7 +727,7 @@ //鑾峰彇鎵�鏈夋埧闂翠腑鍖归厤鐨勮兘缁戠殑鐩爣 currentPanelSupportBindDeviceList = GetAllRoomSupportDeviceList(); - //鑾峰彇闈㈡澘涓瓨鍦ㄧ殑缁戝畾鐩爣 + //鑾峰彇闈㈡澘涓瓨鍦ㄧ殑缁戝畾鐩爣 var panelBindListRes = await this.curControlDev.GetDeviceBindAsync(); if (panelBindListRes != null && panelBindListRes.getAllBindResponseData != null) { @@ -728,17 +746,18 @@ new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance); }); } + targetList.Clear(); //閫変腑鐩爣鍒楄〃 targetList if (currentPanelSupportBindDeviceList.Count != 0 && curControlDev.bindList.Count != 0) { - foreach (var bindDev in currentPanelSupportBindDeviceList) + foreach (var bindDev in curControlDev.bindList) { - var mainKey = bindDev.DeviceAddr + bindDev.DeviceEpoint; - var dev = curControlDev.bindList.Find(obj => (obj != null) && (obj.BindMacAddr + obj.BindEpoint == mainKey)); + var mainKey = bindDev.BindMacAddr + bindDev.BindEpoint; + var dev = currentPanelSupportBindDeviceList.Find(obj => (obj != null) && (obj.DeviceAddr + obj.DeviceEpoint == mainKey)); if (dev != null) { - var device = LocalDevice.Current.GetDevice(bindDev.DeviceAddr, bindDev.DeviceEpoint); + var device = LocalDevice.Current.GetDevice(dev.DeviceAddr, dev.DeviceEpoint); if (device != null) { switch (curDeviceBindType) @@ -767,6 +786,14 @@ oldTargetList.Add(device); } } + if (device.Type == DeviceType.PMSensor) + { + if (bindDev.BindCluster == 1026) + { + targetList.Add(device); + oldTargetList.Add(device); + } + } break; case 3: if (device.Type == DeviceType.TemperatureSensor) @@ -783,9 +810,25 @@ targetList.Add(device); oldTargetList.Add(device); } + if (device.Type == DeviceType.PMSensor) + { + if (bindDev.BindCluster == 1029) + { + targetList.Add(device); + oldTargetList.Add(device); + } + } break; case 4: //PM2.5 + if (device.Type == DeviceType.PMSensor) + { + if (bindDev.BindCluster == 1066) + { + targetList.Add(device); + oldTargetList.Add(device); + } + } break; } @@ -902,6 +945,7 @@ break; case 4: //PM2.5 + removeDevice.BindCluster = 1066; break; } removeDevice.BindMacAddr = bd.DeviceAddr; @@ -948,6 +992,7 @@ btnFinifh.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack; this.RemoveFromParent(); }); + } else { @@ -960,6 +1005,17 @@ }); return; } + } + else + { + Application.RunOnMainThread(() => + { + new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.OperrateFailed), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(CommonPage.Instance); + btnFinifh.Enable = true; + btnFinifh.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack; + CommonPage.Loading.Hide(); + }); + return; } } } @@ -1024,6 +1080,17 @@ var delDevice = DelBindDevice(bd); var delResult = new DelDeviceBindResponseAllData(); delResult = await curControlDev.DelDeviceBindAsync(delDevice); + if (delResult == null || delResult.removeBindResultResponseData == null) + { + Application.RunOnMainThread(() => + { + new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.BindFailed), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(CommonPage.Instance); + btnFinifh.Enable = true; + btnFinifh.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack; + CommonPage.Loading.Hide(); + }); + return; + } if (delResult != null && delResult.removeBindResultResponseData != null) { if (delResult.removeBindResultResponseData.Result != 0) @@ -1049,6 +1116,17 @@ var delDevice = DelBindDevice(curBindDevice); var delResult = new DelDeviceBindResponseAllData(); delResult = await curControlDev.DelDeviceBindAsync(delDevice); + if (delResult == null || delResult.removeBindResultResponseData == null) + { + Application.RunOnMainThread(() => + { + new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.BindFailed), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(CommonPage.Instance); + btnFinifh.Enable = true; + btnFinifh.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack; + CommonPage.Loading.Hide(); + }); + return; + } if (delResult != null && delResult.removeBindResultResponseData != null) { if (delResult.removeBindResultResponseData.Result != 0) @@ -1087,13 +1165,29 @@ break; case 4: //PM2.5 + addBindInfo.BindCluster = 1066; break; } addBindInfo.BindType = 0; addBindInfo.BindMacAddr = de.DeviceAddr; addBindInfo.BindEpoint = de.DeviceEpoint; + addBindeDev.BindName = de.DeviceEpointName; + switch (curDeviceBindType) + { + case 2: + if (de.Type == DeviceType.PMSensor) + { + addBindeDev.BindName = Common.LocalDevice.Current.GetDeviceEpointName(de) + "-" + Language.StringByID(R.MyInternationalizationString.TemperatureSensor); + } + break; + case 3: + if (de.Type == DeviceType.PMSensor) + { + addBindeDev.BindName = Common.LocalDevice.Current.GetDeviceEpointName(de) + "-" + Language.StringByID(R.MyInternationalizationString.HumiditySensor); + } + break; + } addBindeDev.BindList.Add(addBindInfo); - bindName = de.DeviceEpointName; } var dev = new AddedDeviceBindResponseAllData(); @@ -1113,33 +1207,31 @@ { if (dev.addedDeviceBindResponseData.Result == 0) { - curControlDev.bindList = dev.addedDeviceBindResponseData.BindList; targetList.Clear(); - switch (curDeviceBindType) { case 1: if (actionFreshAirTarget != null) { - actionFreshAirTarget(bindName); + actionFreshAirTarget(addBindeDev.BindName); } break; case 2: if (actionTemperatureTarget != null) { - actionTemperatureTarget(bindName); + actionTemperatureTarget(addBindeDev.BindName); } break; case 3: if (actionHumidityTarget != null) { - actionHumidityTarget(bindName); + actionHumidityTarget(addBindeDev.BindName); } break; case 4: if (actionPMTarget != null) { - actionPMTarget(bindName); + actionPMTarget(addBindeDev.BindName); } break; } @@ -1274,6 +1366,7 @@ break; case 4: //PM2.5 + removeDevice.BindCluster = 1066; break; } removeDevice.BindMacAddr = bd.DeviceAddr; @@ -1313,6 +1406,7 @@ foreach (var de in room.ListDevice) { var device = LocalDevice.Current.GetDevice(de); + if (device != null) { //鑾峰彇璁惧绫诲瀷鐨� @@ -1347,6 +1441,17 @@ } break; case 4: + foreach (var de in room.ListDevice) + { + var device = LocalDevice.Current.GetDevice(de); + if (device != null) + { + if (device.Type == DeviceType.PMSensor) + { + roomIncludeMatchDevice.Add(device); + } + } + } break; } @@ -1398,6 +1503,17 @@ roomIncludeMatchTempDevice.Add(device); } } + else if (device.Type == DeviceType.PMSensor) + { + var dev = device as PMSensor; + foreach (var clu in dev.InClusterList) + { + if (clu.InCluster == 1026) + { + roomIncludeMatchTempDevice.Add(device); + } + } + } } } return roomIncludeMatchTempDevice; @@ -1426,6 +1542,17 @@ if (dev.SensorDiv == 2) { roomIncludeMatchHumpDevice.Add(device); + } + } + else if (device.Type == DeviceType.PMSensor) + { + var dev = device as PMSensor; + foreach (var clu in dev.InClusterList) + { + if (clu.InCluster == 1029) + { + roomIncludeMatchHumpDevice.Add(device); + } } } } @@ -1549,6 +1676,24 @@ } break; case 4: + foreach (var r in supportRoomList) + { + if (r.ListDevice.Count == 0) + { + continue; + } + foreach (var deviceKeys in r.ListDevice) + { + var device = LocalDevice.Current.GetDevice(deviceKeys); + if (device != null) + { + if (device.Type == DeviceType.PMSensor) + { + currentPanelBindSupportDeviceListTemp.Add(device); + } + } + } + } break; } return currentPanelBindSupportDeviceListTemp; @@ -1602,6 +1747,17 @@ } break; case 4: + foreach (var deviceKeys in curRoom.ListDevice) + { + var device = LocalDevice.Current.GetDevice(deviceKeys); + if (device != null) + { + if (device.Type == DeviceType.PMSensor) + { + curRoomDeviceListTemp.Add(device); + } + } + } break; } return curRoomDeviceListTemp; diff --git a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UserDoorLockPage.cs b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UserDoorLockPage.cs index 7e93794..7de8403 100755 --- a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UserDoorLockPage.cs +++ b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UserDoorLockPage.cs @@ -83,7 +83,7 @@ /// <summary> /// 涓儴甯冨眬涓棬閿佸悕绉版樉绀� /// </summary> - Button btnDoorLockTitle; + NormalViewControl btnDoorLockTitle; /// <summary> /// 鍒嗕韩 /// </summary> @@ -252,18 +252,15 @@ }; this.midFrameLayout.AddChidren(midTopFrameLayout); - //闂ㄩ攣鏍囬 - btnDoorLockTitle = new Button() - { - Width = Application.GetRealWidth(250), - Height = Application.GetRealHeight(60), - X = Application.GetRealWidth(372), - Y = Application.GetRealHeight(46), - TextColor = Shared.Common.ZigbeeColor.Current.XMBlack, - TextSize = 15, - TextAlignment = TextAlignment.Center, - IsBold = true, - }; + //璁惧鍚嶇О + btnDoorLockTitle = new NormalViewControl(100, 60, true); + btnDoorLockTitle.Y = Application.GetRealHeight(46); + btnDoorLockTitle.TextSize = 15; + btnDoorLockTitle.IsBold = true; + btnDoorLockTitle.Text = Common.LocalDevice.Current.GetDeviceMacName(doorLock); + btnDoorLockTitle.Width = btnDoorLockTitle.GetRealWidthByText(); + btnDoorLockTitle.TextAlignment = TextAlignment.Center; + btnDoorLockTitle.Gravity = Gravity.CenterHorizontal; midTopFrameLayout.AddChidren(btnDoorLockTitle); //璁板綍 @@ -863,7 +860,11 @@ { Application.RunOnMainThread(() => { - NomallyOpenModeInvalidDialog(); + Action<bool> action = (obj) => + { + UpdateNomallyOpenStatus(); + }; + DoorLockCommonInfo.NomallyOpenModeInvalidDialog(doorLock, DoorLockCommonInfo.DoorLockMessType.AppOperate, haveLogicNormallyOpenMode, action); }); } else @@ -893,7 +894,11 @@ { Application.RunOnMainThread(() => { - NomallyOpenModeInvalidDialog(); + Action<bool> action = (obj) => + { + UpdateNomallyOpenStatus(); + }; + DoorLockCommonInfo.NomallyOpenModeInvalidDialog(doorLock, DoorLockCommonInfo.DoorLockMessType.AppOperate, haveLogicNormallyOpenMode, action); }); } } @@ -1043,7 +1048,6 @@ /// </summary> private async void NomallyOpenDialog() { - #region 鍚庣画鐗堟湰 if (UserCenterResourse.UserInfo.AuthorityNo != 1) { this.ShowMassage(ShowMsgType.Tip, Language.StringByID(R.MyInternationalizationString.OnlyMasterOperate)); @@ -1079,18 +1083,19 @@ addLogicPage.action += (w) => { doorLock.IsDoorLockNormallyMode = w; - ///鐣欑粰寰愭鐢ㄧ殑 UpdateNomallyOpenStatus(); + //杩斿洖鎸夐敭娓呯┖褰撳墠閫昏緫瀹氫箟鐨凩ogicAction + UserCenter.DoorLock.DoorLockCommonInfo.LogicAction = null; }; }; HdlCheckLogic.Current.CheckSecondarySecurity(action); - #endregion + } /// <summary> /// 甯稿紑妯″紡澶辨晥澶勭悊 /// </summary> - public void NomallyOpenModeInvalidDialog(bool IsFromReport = false) + private void NomallyOpenModeInvalidDialog(bool IsFromReport = false) { if (!canShowDialog) { diff --git a/ZigbeeApp/Shared/Phone/ZigBee/Common/Application.cs b/ZigbeeApp/Shared/Phone/ZigBee/Common/Application.cs index c446b42..ec0ce95 100755 --- a/ZigbeeApp/Shared/Phone/ZigBee/Common/Application.cs +++ b/ZigbeeApp/Shared/Phone/ZigBee/Common/Application.cs @@ -334,6 +334,10 @@ { //鏈湴Socket public static Socket busSocket; + /// <summary> + /// 璁℃椂鍣� + /// </summary> + private static int timeCount = 0; /// <summary> /// 鍚姩Socket鎺ユ敹鍜屽彂閫佸姛鑳� @@ -406,6 +410,13 @@ private static void CheckConnectiton() { if (busSocket == null) { return; } + timeCount++; + if (timeCount < 20) + { + //姣�10绉掓娴嬩竴娆� + return; + } + timeCount = 0; bool blockingState = busSocket.Blocking; try diff --git a/ZigbeeApp/Shared/Phone/ZigBee/Device/CommonDevice.cs b/ZigbeeApp/Shared/Phone/ZigBee/Device/CommonDevice.cs index 4c6de8a..1c52a82 100755 --- a/ZigbeeApp/Shared/Phone/ZigBee/Device/CommonDevice.cs +++ b/ZigbeeApp/Shared/Phone/ZigBee/Device/CommonDevice.cs @@ -476,6 +476,8 @@ /// 娓╁害娴嬮噺鍔熻兘鐨勮澶囧锛氭俯搴︿紶鎰熷櫒銆傘�傘�� /// <para>1029:Relative Humidity Measurement,璁惧鏀寔鈥滄箍搴︽祴閲忓姛鑳解��</para> /// 婀垮害娴嬮噺鍔熻兘鐨勮澶囧锛氭箍搴︿紶鎰熷櫒銆傘�傘�� + /// <para>1066:Pm2.5 Measurement,璁惧鏀寔鈥減m2.5娴嬮噺鍔熻兘鈥�</para> + /// Pm2.5娴嬮噺鍔熻兘鐨勮澶囧锛歅m2.5浼犳劅鍣ㄣ�傘�傘�� /// </summary> public int InCluster; } diff --git a/ZigbeeApp/Shared/Phone/ZigBee/Device/Enum.cs b/ZigbeeApp/Shared/Phone/ZigBee/Device/Enum.cs index 7943391..0052f69 100755 --- a/ZigbeeApp/Shared/Phone/ZigBee/Device/Enum.cs +++ b/ZigbeeApp/Shared/Phone/ZigBee/Device/Enum.cs @@ -50,6 +50,10 @@ /// </summary> RelativeHumidityMeasurement = 1029, /// <summary> + ///PM2.5娴嬮噺鍔熻兘 + /// </summary> + PmTwoPointFiveMeasurement = 1066, + /// <summary> /// 鎭掓俯鍣ㄥ姛鑳� /// </summary> Thermostat = 513, diff --git a/ZigbeeApp/Shared/Phone/ZigBee/Device/ZbGateway.cs b/ZigbeeApp/Shared/Phone/ZigBee/Device/ZbGateway.cs index 64b9859..f8b36df 100755 --- a/ZigbeeApp/Shared/Phone/ZigBee/Device/ZbGateway.cs +++ b/ZigbeeApp/Shared/Phone/ZigBee/Device/ZbGateway.cs @@ -3218,7 +3218,7 @@ #endregion #region 璁惧鐘舵�佷笂鎶� - else if (topic == gatewayID + "/" + "DeviceStatusReport" + "/" + addr + "/" + epoint + "/" + cluID + "/" + attrId) + if (topic == gatewayID + "/" + "DeviceStatusReport" + "/" + addr + "/" + epoint + "/" + cluID + "/" + attrId) { var deviceID = jobject.Value<int>("Device_ID"); var deviceAddr = jobject.Value<string>("DeviceAddr"); diff --git a/ZigbeeApp/Shared/R.cs b/ZigbeeApp/Shared/R.cs index c2703ae..952dad1 100755 --- a/ZigbeeApp/Shared/R.cs +++ b/ZigbeeApp/Shared/R.cs @@ -578,6 +578,31 @@ /// 绌烘皵璐ㄩ噺浼犳劅鍣� /// </summary> public const int AirQualitySensor = 316; + /// <summary> + /// 浼� + /// </summary> + public const int ExcellentAirQuality = 317; + /// <summary> + /// 鑹� + /// </summary> + public const int GoodAirQuality = 318; + /// <summary> + /// 杞诲害姹℃煋 + /// </summary> + public const int LightPollution = 319; + /// <summary> + /// 涓害姹℃煋 + /// </summary> + public const int Moderatelyolluted = 320; + /// <summary> + /// 閲嶅害姹℃煋 + /// </summary> + public const int HeavyPollution = 321; + /// <summary> + /// 涓ラ噸姹℃煋 + /// </summary> + public const int SeriousPollution = 322; + public readonly static int cancel = 5097; public readonly static int confrim = 5098; @@ -856,6 +881,7 @@ public readonly static int addFailed = 5401; public readonly static int timeSensitive = 5402; public readonly static int executeSone = 5403; + public readonly static int hour1 = 5404; -- Gitblit v1.8.0