From e22fdb94322e6cec38e5e4a9aec13d431a133fde Mon Sep 17 00:00:00 2001 From: 黄学彪 <hxb@hdlchina.com.cn> Date: 星期二, 28 四月 2020 16:32:35 +0800 Subject: [PATCH] 上传合并后的代码 --- ZigbeeApp/Shared/Phone/UserCenter/DoorLock/DoorLockCommonInfo.cs | 512 ++++++++++++++++++++++++++++++++++++++++---------------- 1 files changed, 364 insertions(+), 148 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/DoorLockCommonInfo.cs b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/DoorLockCommonInfo.cs index 9b0f7c9..bb30fa1 100755 --- a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/DoorLockCommonInfo.cs +++ b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/DoorLockCommonInfo.cs @@ -74,13 +74,33 @@ /// 澶辨晥鏁堟棩鏈熲�滅鈥� /// </summary> public static int InValidDateSecond = 0; - #endregion /// <summary> - /// 鑾峰彇褰撳墠闂ㄩ攣鐨勫父寮�妯″紡 + /// 闂ㄩ攣鎿嶄綔绫诲瀷 + /// </summary> + public enum DoorLockMessType + { + /// <summary> + /// app鎿嶄綔 + /// </summary> + AppOperate = 0, + /// <summary> + /// 閫氳繃闂ㄩ攣鎿嶄綔璁惧涓婃姤 + /// </summary> + DeviceReport = 1, + /// <summary> + /// 閫氳繃鏈嶅姟鍣ㄦ帹閫� + /// </summary> + ServicePush = 2, + } + #endregion + + #region 甯稿紑妯″紡 API + /// <summary> + /// 鑾峰彇褰撳墠闂ㄩ攣鐨勫父寮�妯″紡 /// </summary> /// <param name="doorLock:褰撳墠闂ㄩ攣"></param> - /// <returns></returns> + /// <returns>null:娌℃湁鍥炲 锛� true:闂ㄩ攣甯稿紑锛沠alse锛氶棬閿佸父鍏�</returns> public static async System.Threading.Tasks.Task<bool?> GetNormallyOpenMode(ZigBee.Device.DoorLock doorLock) { bool? IsDoorLockNormallyMode = null; @@ -122,6 +142,343 @@ } /// <summary> + /// 璁剧疆鏈湴闂ㄩ攣鐨勫父寮�妯″紡鍊� + /// </summary> + public static void NormallyOpenModeValue(ZigBee.Device.DoorLock doorLock, bool value) + { + string key = doorLock.DeviceAddr + "_" + doorLock.DeviceEpoint; + if (doorLock.IsDoorLockNormallyMode.ContainsKey(key)) + { + doorLock.IsDoorLockNormallyMode[key] = value; + } + else + { + doorLock.IsDoorLockNormallyMode.Add(key, value); + } + } + + /// <summary> + /// 甯稿紑妯″紡澶辨晥澶勭悊銆愬脊绐椼�� + /// </summary> + /// <param name="doorLock">褰撳墠闂ㄩ攣</param> + /// <param name="doorLockMessType">瀵艰嚧闂ㄩ攣澶辨晥鐨勬搷浣滅被鍨�</param> + /// <param name="haveLogic">缃戝叧涓槸鍚﹀瓨鍦ㄩ�昏緫甯稿紑妯″紡</param> + /// <param name="action">鍥炶皟澶勭悊鏇存柊鍐呭</param> + public static async void NomallyOpenModeInvalidDialog(ZigBee.Device.DoorLock doorLock, DoorLockMessType doorLockMessType, bool haveLogic, Action action = null) + { + //甯稿紑妯″紡鍙兘涓讳汉鎿嶄綔 + if (UserCenterResourse.UserInfo.AuthorityNo != 1) + { + Application.RunOnMainThread(() => + { + string msg0 = Language.StringByID(R.MyInternationalizationString.OnlyMasterOperate); + ShowTipMsg(msg0); + }); + return; + } + + //甯稿紑妯″紡灏嗚鍙栨秷寮圭獥 + string msg = Language.StringByID(R.MyInternationalizationString.NomallyModeIsCanceled).Replace("{0}", "\r\n"); + var confirm = Language.StringByID(R.MyInternationalizationString.SureCancel); + var alert = new ShowDoorLockMsgControl(ShowDoorLockMsgControl.DoorLockMsgType.NomallyOpenMode, msg, confirm); + + if (haveLogic) + { + //鏈夐�昏緫璁剧疆鐨勫脊绐� + alert = new ShowDoorLockMsgControl(ShowDoorLockMsgControl.DoorLockMsgType.CancelNomallyOpenModeWithLogic, msg, confirm); + } + alert.Show(); + + alert.MsgControlClickEvent += async () => + { + if (doorLockMessType == DoorLockMessType.DeviceReport || doorLockMessType == DoorLockMessType.ServicePush) + { + //涓婃姤鈥滃父寮�妯″紡鈥濆凡琚彇娑堬紝app榛樿浜嗏�滃父寮�妯″紡鈥濊鍙栨秷 + DoorLockCommonInfo.NormallyOpenModeValue(doorLock, false); + } + else + { + //淇濇寔甯稿紑 + NormallyOpenModeValue(doorLock, true); + } + action?.Invoke(); + }; + + alert.CancelClickEvent += async () => + { + if (doorLockMessType == DoorLockMessType.DeviceReport || doorLockMessType == DoorLockMessType.ServicePush) + { + //涓婃姤鈥滃父寮�妯″紡鈥濆凡琚彇娑� + Application.RunOnMainThread(() => { CommonPage.Loading.Start(""); }); + //鍏堝垹闄ゅ凡澶辨晥鐨勨�滃父寮�妯″紡鈥濈殑閫昏緫 + //if (resTemp == 1) + //{ + // var restulTemp = await Shared.Phone.Device.Logic.SkipView.Exist(3); + // //if (restulTemp == 3) + // //{ + // // string msg0 = Language.StringByID(R.MyInternationalizationString.CancelLogicNormallyModeFailed2); + // // this.ShowTipMsg(msg0); + // // return; + // //} + //} + + //app閲嶆柊寮�鍚�滃父寮�妯″紡鈥� + var result = await doorLock.SetNormallyOpenModeFuncAsync(true); + if (result == null || result.defaultControlResponseData == null) + { + Application.RunOnMainThread(() => + { + string msg0 = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime); + ShowTipMsg(msg0); + NormallyOpenModeValue(doorLock, false); + CommonPage.Loading.Hide(); + //new Tip() { MaxWidth = 150, Text = msg0, Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(CommonPage.Instance); + }); + action?.Invoke(); + return; + } + if (result.defaultControlResponseData.status != 0) + { + Application.RunOnMainThread(() => + { + string msg1 = Language.StringByID(R.MyInternationalizationString.OpenNormallyOpenModeFailed); + ShowTipMsg(msg1); + NormallyOpenModeValue(doorLock, false); + CommonPage.Loading.Hide(); + //new Tip() { MaxWidth = 150, Text = msg1, Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(CommonPage.Instance); + }); + action?.Invoke(); + return; + } + else + { + //鍒涘缓甯稿紑妯″紡鐨勭壒娈婇�昏緫 + var resu = await Shared.Phone.Device.Logic.SkipView.LockAddModifyLogic(DoorLockCommonInfo.NormallyOpenModeInvalidTime, doorLock); + Application.RunOnMainThread(() => + { + string msg0 = Language.StringByID(R.MyInternationalizationString.OpenNormallyOpenModeSuccess); + ShowTipMsg(msg0); + NormallyOpenModeValue(doorLock, true); + CommonPage.Loading.Hide(); + //new Tip() { MaxWidth = 150, Text = msg0, Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(CommonPage.Instance); + }); + } + } + else + { + //app鎿嶄綔涓嶅彇娑堚�滃父寮�妯″紡鈥� + DoorLockCommonInfo.NormallyOpenModeValue(doorLock, true); + } + action?.Invoke(); + }; + + alert.ConfirmClickEvent += async () => + { + if (doorLockMessType == DoorLockMessType.DeviceReport || doorLockMessType == DoorLockMessType.ServicePush) + { + NormallyOpenModeValue(doorLock, false); + if (haveLogic) + { + var resTemp2 = await Shared.Phone.Device.Logic.SkipView.Exist(3); + //if (resTemp2 == 3) + //{ + // string msg0 = Language.StringByID(R.MyInternationalizationString.CancelLogicNormallyModeFailed); + // this.ShowTipMsg(msg0); + //} + } + } + else + { + //app鎿嶄綔鍙栨秷鈥滃父寮�妯″紡鈥� + Application.RunOnMainThread(() => { CommonPage.Loading.Start(""); }); + var result = await doorLock.SetNormallyOpenModeFuncAsync(false); + if (result == null || result.defaultControlResponseData == null) + { + Application.RunOnMainThread(() => + { + ShowTipMsg(Language.StringByID(R.MyInternationalizationString.GwResponseOvertime)); + CommonPage.Loading.Hide(); + //new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(CommonPage.Instance); + }); + action?.Invoke(); + return; + } + if (result.defaultControlResponseData.status != 0) + { + Application.RunOnMainThread(() => + { + string msg1 = Language.StringByID(R.MyInternationalizationString.CloseNormallyOpenModeFailed); + ShowTipMsg(msg1); + CommonPage.Loading.Hide(); + //new Tip() { MaxWidth = 150, Text = msg1, Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(CommonPage.Instance); + }); + action?.Invoke(); + return; + } + else + { + //娣诲姞App寮�鍚父寮�妯″紡鐨勫巻鍙茶褰� + HdlDeviceDoorLockLogic.Current.AddDoorHistoryLog(doorLock, 9002, string.Empty); + //app纭鍙栨秷鈥滃父寮�妯″紡鈥濇垚鍔� + NormallyOpenModeValue(doorLock, false); + //鍒犻櫎璁剧疆甯稿紑妯″紡鍒涘缓鐨勯�昏緫 + if (haveLogic) + { + var resTemp1 = await Shared.Phone.Device.Logic.SkipView.Exist(3); + //鍥犱负鐩墠鏈哄埗闂锛岄�昏緫缁忓父澶辫触锛屾墍浠ヤ笉鎻愮ず锛屽悗鏈熸満鍒惰鏀癸紝閲嶆柊鍋氫竴涓繖涓晫闈� + //if (resTemp1 == 3) + //{ + //Application.RunOnMainThread(() => + //{ + // string msg0 = Language.StringByID(R.MyInternationalizationString.CancelLogicNormallyModeFailed); + // ShowTipMsg(msg0); + //}); + //} + //else if (resTemp1 == 2) + //{ + //Application.RunOnMainThread(() => + //{ + // string msg0 = Language.StringByID(R.MyInternationalizationString.CloseNormallyOpenModeSuccess); + // ShowTipMsg(msg0); + //}); + } + Application.RunOnMainThread(() => + { + string msg2 = Language.StringByID(R.MyInternationalizationString.CloseNormallyOpenModeSuccess); + ShowTipMsg(msg2); + CommonPage.Loading.Hide(); + }); + } + } + action?.Invoke(); + }; + } + + /// <summary> + /// 鍒犻櫎甯稿紑妯″紡 + /// </summary> + /// <param name="doorLock">褰撳墠闂ㄩ攣</param> + /// <param name="action">鍥炶皟澶勭悊鏇存柊鍐呭</param> + /// <returns></returns> + public static async System.Threading.Tasks.Task<bool> DelNormallyOpenMode(ZigBee.Device.DoorLock doorLock, Action action = null) + { + //app鎿嶄綔鍙栨秷鈥滃父寮�妯″紡鈥� + var result = await doorLock.SetNormallyOpenModeFuncAsync(false); + if (result == null || result.defaultControlResponseData == null || result.defaultControlResponseData.status != 0) + { + action?.Invoke(); + return false; + } + + if (result.defaultControlResponseData.status == 0) + { + //app纭鍙栨秷鈥滃父寮�妯″紡鈥濇垚鍔� + NormallyOpenModeValue(doorLock, false); + action?.Invoke(); + return true; + } + return false; + } + + /// <summary> + /// 鍚姩甯稿紑妯″紡銆愬脊绐椼�� + /// </summary> + /// <param name="doorLock">褰撳墠闂ㄩ攣</param> + /// <param name="action">鍥炶皟澶勭悊鏇存柊鍐呭</param> + public static async void NomallyOpenModeStartDialog(ZigBee.Device.DoorLock doorLock, Action action) + { + //甯稿紑妯″紡鍙兘涓讳汉鎿嶄綔ZigBee.Device.DoorLock doorLock + if (UserCenterResourse.UserInfo.AuthorityNo != 1) + { + Application.RunOnMainThread(() => + { + string msg0 = Language.StringByID(R.MyInternationalizationString.OnlyMasterOperate); + ShowTipMsg(msg0); + }); + return; + } + + //璁剧疆甯稿紑妯″紡鍚庯紝鎮ㄧ殑闂ㄩ攣灏嗗缁堝浜庢墦寮�鐘舵�侊紝纭寮�鍚紵 + string msg = Language.StringByID(R.MyInternationalizationString.SetDoorLockNomallyOpen).Replace("{0}", "\r\n"); + var confirm = Language.StringByID(R.MyInternationalizationString.Confrim); + var alert = new ShowDoorLockMsgControl(ShowDoorLockMsgControl.DoorLockMsgType.Confirm, msg, confirm); + alert.Show(); + + alert.ConfirmClickEvent += async () => + { + Application.RunOnMainThread(() => { CommonPage.Loading.Start(""); }); + var result = await doorLock.SetNormallyOpenModeFuncAsync(true); + if (result == null || result.defaultControlResponseData == null) + { + Application.RunOnMainThread(() => + { + string msg0 = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime); + ShowTipMsg(msg0); + CommonPage.Loading.Hide(); + }); + return; + } + if (result.defaultControlResponseData.status != 0) + { + Application.RunOnMainThread(() => + { + string msg1 = Language.StringByID(R.MyInternationalizationString.OpenNormallyOpenModeFailed); + ShowTipMsg(msg1); + CommonPage.Loading.Hide(); + }); + return; + } + else + { + //娣诲姞App寮�鍚父寮�妯″紡鐨勫巻鍙茶褰� + HdlDeviceDoorLockLogic.Current.AddDoorHistoryLog(doorLock, 9001, string.Empty); + DoorLockCommonInfo.NormallyOpenModeValue(doorLock, true); + action?.Invoke(); + Application.RunOnMainThread(() => + { + NomallyOpenModeInvalidTimeDialog(doorLock); + CommonPage.Loading.Hide(); + }); + } + }; + } + + /// <summary> + /// 甯稿紑妯″紡澶辨晥鏃堕棿澶勭悊銆愬脊绐椼�� + /// </summary> + public static async void NomallyOpenModeInvalidTimeDialog(ZigBee.Device.DoorLock doorLock) + { + //澶辨晥璁剧疆 + string msgTimeInValidSetting = Language.StringByID(R.MyInternationalizationString.DoorLockOpenAllTheTime); + var timeConfrim = Language.StringByID(R.MyInternationalizationString.Confrim); + var alertTimeInValidSetting = new ShowDoorLockMsgControl(ShowDoorLockMsgControl.DoorLockMsgType.InValid, msgTimeInValidSetting, timeConfrim); + alertTimeInValidSetting.Show(); + + alertTimeInValidSetting.InvalidTimeAction += async (obj) => + { + //甯稿紑妯″紡澶辨晥鏃堕棿璁剧疆鎴愬姛 + var temp = int.Parse(obj); + DoorLockCommonInfo.NormallyOpenModeInvalidTime = temp; + //榛樿鍒涘缓甯稿紑妯″紡鐨勭壒娈婇�昏緫 + var res = await Shared.Phone.Device.Logic.SkipView.LockAddModifyLogic(DoorLockCommonInfo.NormallyOpenModeInvalidTime, doorLock); + if (!res) + { + Application.RunOnMainThread(() => + { + //榛樿鍒涘缓甯稿紑妯″紡澶辫触 + string msg0 = Language.StringByID(R.MyInternationalizationString.AddLogicNormallyModeFailed); + var alert = new UserCenter.ShowMsgControl(UserCenter.ShowMsgType.Normal, msg0, Language.StringByID(R.MyInternationalizationString.confrim)); + alert.Show(); + //浜屾鍔犺浇寮圭獥 甯稿紑妯″紡寮�鍚彁绀� + NomallyOpenModeInvalidTimeDialog(doorLock); + }); + } + }; + } + #endregion + + #region 闊抽噺 + /// <summary> /// 闂ㄩ攣鏄惁鏀寔闊抽噺[杩欓噷鏆傛椂鍙湁S-One闂ㄩ攣鏀寔锛孒06C涓嶆敮鎸侊紝鍚庢湡閫氳繃鑳藉姏鍊兼敮鎸乚 /// </summary> /// <param name="doorLock:褰撳墠闂ㄩ攣"></param> @@ -137,6 +494,8 @@ } return false; } + + #endregion #region 浠庝簯绔幏鍙栫殑鏂规硶 /// <summary> @@ -856,7 +1215,7 @@ /// 鏄剧ず閿欒淇℃伅绐楀彛 /// </summary> /// <param name="msg"></param> - private void ShowErrorMsg(string msg) + private static void ShowErrorMsg(string msg) { Application.RunOnMainThread(() => { @@ -869,7 +1228,7 @@ /// 鏄剧ずTip淇℃伅绐楀彛 /// </summary> /// <param name="msg"></param> - private void ShowTipMsg(string msg) + private static void ShowTipMsg(string msg) { Application.RunOnMainThread(() => { @@ -880,148 +1239,5 @@ #endregion - public enum DoorLockMessType - { - /// <summary> - /// app鎿嶄綔 - /// </summary> - AppOperate = 0, - /// <summary> - /// 璁惧涓婃姤 - /// </summary> - DeviceReport = 1, - /// <summary> - /// 鏈嶅姟鍣ㄦ帹閫� - /// </summary> - ServicePush = 2, - } - - /// <summary> - /// 甯稿紑妯″紡澶辨晥澶勭悊 - /// </summary> - public static async void NomallyOpenModeInvalidDialog(ZigBee.Device.DoorLock doorLock, DoorLockMessType doorLockMessType, Action action) - { - if (UserCenterResourse.UserInfo.AuthorityNo != 1) - { - return; - } - string msg = Language.StringByID(R.MyInternationalizationString.NomallyModeIsCanceled).Replace("{0}", "\r\n"); - var confirm = Language.StringByID(R.MyInternationalizationString.SureCancel); - var alert = new ShowDoorLockMsgControl(ShowDoorLockMsgControl.DoorLockMsgType.NomallyOpenMode, msg, confirm); - var resTemp = await Shared.Phone.Device.Logic.SkipView.Exist(); - - if (resTemp == 1) - { - //鏈夐�昏緫璁剧疆鐨勫脊绐� - alert = new ShowDoorLockMsgControl(ShowDoorLockMsgControl.DoorLockMsgType.CancelNomallyOpenModeWithLogic, msg, confirm); - } - alert.Show(); - alert.MsgControlClickEvent += async () => - { - if (doorLockMessType == DoorLockMessType.DeviceReport || doorLockMessType == DoorLockMessType.ServicePush) - { - //鍙栨秷甯稿紑 - NormallyOpenModeValue(doorLock, false); - } - else - { - //淇濇寔甯稿紑 - NormallyOpenModeValue(doorLock, true); - } - action?.Invoke(); - action = null; - }; - alert.CancelClickEvent += async () => - { - if (doorLockMessType == DoorLockMessType.DeviceReport || doorLockMessType == DoorLockMessType.ServicePush) - { - var result = await doorLock.SetNormallyOpenModeFuncAsync(true); - if (result == null || result.defaultControlResponseData == null) - { - string msg0 = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime); - Application.RunOnMainThread(() => - { - new Tip() { MaxWidth = 150, Text = msg0, Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(CommonPage.Instance); - }); - NormallyOpenModeValue(doorLock, false); - return; - } - if (result.defaultControlResponseData.status != 0) - { - string msg1 = Language.StringByID(R.MyInternationalizationString.OpenNormallyOpenModeFailed); - Application.RunOnMainThread(() => - { - new Tip() { MaxWidth = 150, Text = msg1, Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(CommonPage.Instance); - }); - NormallyOpenModeValue(doorLock, false); - return; - } - else - { - NormallyOpenModeValue(doorLock, true); - } - } - else - { - NormallyOpenModeValue(doorLock, true); - } - action?.Invoke(); - action = null; - }; - alert.ConfirmClickEvent += async () => - { - if (doorLockMessType == DoorLockMessType.DeviceReport || doorLockMessType == DoorLockMessType.ServicePush) - { - NormallyOpenModeValue(doorLock, false); - } - else - { - var result = await doorLock.SetNormallyOpenModeFuncAsync(false); - if (result == null || result.defaultControlResponseData == null) - { - Application.RunOnMainThread(() => - { - new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(CommonPage.Instance); - }); - return; - } - if (result.defaultControlResponseData.status != 0) - { - string msg1 = Language.StringByID(R.MyInternationalizationString.CloseNormallyOpenModeFailed); - Application.RunOnMainThread(() => { }); - - new Tip() { MaxWidth = 150, Text = msg1, Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(CommonPage.Instance); - return; - } - else - { - NormallyOpenModeValue(doorLock, false); - string msg2 = Language.StringByID(R.MyInternationalizationString.CloseNormallyOpenModeSuccess); - Application.RunOnMainThread(() => - { - new Tip() { MaxWidth = 150, Text = msg2, Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(CommonPage.Instance); - }); - } - } - action?.Invoke(); - action = null; - }; - } - - /// <summary> - /// 闂ㄩ攣甯稿紑妯″紡鍊� - /// </summary> - public static void NormallyOpenModeValue(ZigBee.Device.DoorLock doorLock, bool value) - { - string key = doorLock.DeviceAddr + "_" + doorLock.DeviceEpoint; - if (doorLock.IsDoorLockNormallyMode.ContainsKey(key)) - { - doorLock.IsDoorLockNormallyMode[key] = value; - } - else - { - doorLock.IsDoorLockNormallyMode.Add(key, value); - } - } } } -- Gitblit v1.8.0