From 00ab3ddb140ba8bb88b5cf572b004a85e1da85e9 Mon Sep 17 00:00:00 2001 From: gxc <guoxuecheng@guoxuechengdeMacBook-Pro.local> Date: 星期四, 02 一月 2020 19:51:56 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/dev-tzy' into DEV_GXC --- ZigbeeApp/Shared/Phone/ZigBee/Device/DoorLock.cs | 149 ++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 146 insertions(+), 3 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/ZigBee/Device/DoorLock.cs b/ZigbeeApp/Shared/Phone/ZigBee/Device/DoorLock.cs index f43d6a7..4379054 100644 --- a/ZigbeeApp/Shared/Phone/ZigBee/Device/DoorLock.cs +++ b/ZigbeeApp/Shared/Phone/ZigBee/Device/DoorLock.cs @@ -492,6 +492,25 @@ /// 浜戠甯愬彿Id -->閿悕 : CloudAccountId (鍙��) /// </summary> public string CloudAccountId = ""; + /// <summary> + /// 绗嚑椤� + /// </summary> + public PageSetting pageSetting = new PageSetting(); + } + + /// <summary> + /// 鑾峰彇闂ㄩ攣 + /// </summary> + public class PageSetting + { + /// <summary> + /// 绗嚑椤� + /// </summary> + public int Page = 1; + /// <summary> + /// 绗嚑椤� + /// </summary> + public int PageSize = 10; } [Serializable] @@ -1188,6 +1207,109 @@ /// <summary> /// 鐢ㄦ埛绠$悊鍙戦�佹暟鎹� + /// userIdList:涓暟涓嶈兘瓒呰繃10涓� + /// </summary> + public string FreezeAccountData(List<int> userIdList, AccessType accessType) + { + string data = ""; + string dataLength = ""; + string dataComand1 = "50"; + string dataComand2 = "04"; + string dataSerialNum = "01"; + string addDataLength = ""; + string delUserTypeStr = ""; + string userIdStr = ""; + try + { + if (userIdList.Count == 0) + { + return null; + } + if (userIdList.Count > 9) + { + return null; + } + var tempLength = 5 + userIdList.Count * 2; + string tempLength1 = Convert.ToString(tempLength, 16); + switch (tempLength1.Length) + { + case 1: + dataLength = "0" + tempLength1.ToUpper(); + break; + case 2: + dataLength = tempLength1.ToUpper(); + break; + } + + var tempAddDataLength = 1 + userIdList.Count * 2; + string tempAddDataLength1 = Convert.ToString(tempAddDataLength, 16); + switch (tempAddDataLength1.Length) + { + case 1: + addDataLength = "0" + tempAddDataLength1.ToUpper(); + break; + case 2: + addDataLength = tempAddDataLength1.ToUpper(); + break; + } + + switch ((int)accessType) + { + case 0: + delUserTypeStr = "00"; + break; + case 1: + delUserTypeStr = "01"; + break; + case 2: + delUserTypeStr = "20"; + break; + case 3: + delUserTypeStr = "21"; + break; + case 4: + delUserTypeStr = "10"; + break; + case 5: + delUserTypeStr = "30"; + break; + case 6: + delUserTypeStr = "31"; + break; + } + + var sbString = new System.Text.StringBuilder(); + foreach (var userId in userIdList) + { + string temp = Convert.ToString(userId, 16); + switch (temp.Length) + { + case 1: + userIdStr = "0" + temp + "00"; + break; + case 2: + userIdStr = temp + "00"; + break; + case 3: + var thirdBit = temp.Substring(temp.Length - 2, 1); + userIdStr = temp + "0" + thirdBit; + break; + case 4: + userIdStr = temp; + break; + } + sbString.Append(userIdStr.ToString().ToUpper()); + } + data = dataLength + dataComand1 + dataComand2 + dataSerialNum + addDataLength + + delUserTypeStr + sbString; + } + catch { }; + + return data; + } + + /// <summary> + /// 鐢ㄦ埛绠$悊鍙戦�佹暟鎹� /// </summary> public string SetUserAccessData(int userId, AccessType accessType) { @@ -1293,7 +1415,7 @@ public enum AccessType { /// <summary> - /// 0x00 鍒犻櫎鍏ㄩ儴鍗曟鐢ㄦ埛 + /// 0x00 鍒犻櫎鍏ㄩ儴涓存椂鐢ㄦ埛 /// </summary> DelAllUsers = 0, /// <summary> @@ -1308,6 +1430,18 @@ /// 0x21 瑙e喕鎸囧畾鐢ㄦ埛 /// </summary> Enable = 3, + /// <summary> + /// 0x10 澶氫釜鎸囧畾鐢ㄦ埛鍒犻櫎 + /// </summary> + DelMoreUsers = 4, + /// <summary> + /// 0x30 澶氫釜鎸囧畾鐢ㄦ埛鍐荤粨 + /// </summary> + DisEnableMoreUsers = 5, + /// <summary> + /// 0x31 澶氫釜鎸囧畾鐢ㄦ埛瑙e喕 + /// </summary> + EnableMoreUsers = 6, } #endregion @@ -2082,6 +2216,8 @@ doorLockUserDetailData.userType = Convert.ToInt32(data[10].ToString() + data[11].ToString(), 16); doorLockUserDetailData.totalNum = Convert.ToInt32(data[12].ToString() + data[13].ToString(), 16); doorLockUserDetailData.currentNum = Convert.ToInt32(data[14].ToString() + data[15].ToString(), 16); + totalNum = doorLockUserDetailData.totalNum; + currentNum = doorLockUserDetailData.currentNum; result = new DoorlockUserInfo { doorLockUserDetailData = doorLockUserDetailData }; DebugPrintLog($"UI鏀跺埌閫氱煡鍚庣殑涓婚_command:0451_{ topic}"); } @@ -2100,15 +2236,22 @@ var data = new JObject { { "PassData", passData } }; jObject.Add("Data", data); Gateway.Send(("ClientDataPassthrough"), jObject.ToString()); - } catch { } - //鎺ユ敹涓�涓寘鏈�澶氱瓑3绉掞紝娌℃湁鏀跺埌灏遍��鍑� + //鎺ユ敹涓�涓寘鏈�澶氱瓑3绉掞紝娌℃湁鏀跺埌灏遍��鍑�,鍗曟鏁版嵁鍖呬笉瓒呰繃30涓敤鎴� while ((DateTime.Now - dateTime).TotalMilliseconds < 3000) { await System.Threading.Tasks.Task.Delay(100); + if (totalNum == currentNum) + { + break; + } } + //if ((DateTime.Now - dateTime).TotalMilliseconds > 3000) + //{ + // result = new DoorlockUserInfo { errorMessageBase = " 鍥炲瓒呮椂锛岃閲嶆柊鎿嶄綔" }; + //} Gateway.Actions -= action; DebugPrintLog("ClientDataPassthrough_Actions 閫�鍑�" + System.DateTime.Now.ToString()); -- Gitblit v1.8.0