From 2109463fab2eb1caed189e4f258e0e763c5cea7b Mon Sep 17 00:00:00 2001 From: WJC <wjc@hdlchina.com.cn> Date: 星期四, 07 十一月 2019 11:58:53 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/dev-tzy' into dev-wjc --- ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/BindInfo.cs | 200 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 200 insertions(+), 0 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/BindInfo.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/BindInfo.cs index 1991435..63cb01f 100755 --- a/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/BindInfo.cs +++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/BindInfo.cs @@ -15,6 +15,205 @@ /// 褰撳墠鎸夐敭閰嶇疆鐨勫姛鑳� /// </summary> public static int clusterID = 0; + /// <summary> + /// 璁板綍鏃х殑鐩爣鍒楄〃 + /// </summary> + public static List<CommonDevice> oldTargetList = new List<CommonDevice>(); + + public static async System.Threading.Tasks.Task<int> RemoveTargets(BindObj.BindListResponseObj bindDevice, Panel currentKey) + { + var delDevice = new BindObj.DelDeviceBindData(); + delDevice.DeviceAddr = currentKey.DeviceAddr; + delDevice.Epoint = currentKey.DeviceEpoint; + + if (bindDevice.BindType == 0 || bindDevice.BindType == 1) + { + var removeDevice = new BindObj.RemoveBindListObj(); + removeDevice.BindCluster = bindDevice.BindCluster; + removeDevice.BindType = 0; + removeDevice.BindMacAddr = bindDevice.BindMacAddr; + removeDevice.BindEpoint = bindDevice.BindEpoint; + delDevice.RemoveBindList.Add(removeDevice); + } + else if (bindDevice.BindType == 2) + { + var removeDevice = new BindObj.RemoveBindListObj(); + removeDevice.BindCluster = bindDevice.BindCluster; + removeDevice.BindType = 1; + removeDevice.BindScenesId = bindDevice.BindScenesId; + delDevice.RemoveBindList.Add(removeDevice); + } + var delResult = await currentKey.DelDeviceBindAsync(delDevice); + foreach (var re in delResult.delDeviceBindResponseData.RemoveBindList) + { + switch (re.Result) + { + case 0: + return 0; + break; + case 4: + + if (delResult.removeBindResultResponseData != null) + { + if (delResult.removeBindResultResponseData.Result == 0) + { + return 0; + } + } + break; + } + } + return -1; + } + + /// <summary> + /// 妫�娴嬭璁惧鑳藉惁鏄剧ず + /// </summary> + /// <param name="device"></param> + /// <returns></returns> + public static bool CheckCanShowDevice(ZigBee.Device.CommonDevice device, string curDeviceBindType = "AddSwitch") + { + if (device == null) + { + return false; + } + //濡傛灉鏄紶鎰熷櫒锛屾垨鑰呮槸娌℃湁寮�鍏崇皣鐨勮瘽(杩欓噷鍒ゆ柇鐨勬槸杈撳叆绨�) + if ((device.Type == ZigBee.Device.DeviceType.IASZone) || InMatchDevice(device, curDeviceBindType) == false) + { + return false; + } + return true; + } + + /// <summary> + /// 妫�娴嬭鎴块棿鑳藉惁鏄剧ず + /// </summary> + /// <param name="room"></param> + /// <returns></returns> + public static bool CheckCanShowRoom(Common.Room room, string curDeviceBindType = "AddSwitch") + { + if (room.DeviceUIList.Count == 0) + { + return false; + } + if (room.IsLove == true) + { + return false; + } + foreach (var deviceUi in room.DeviceUIList) + { + //妫�娴嬭璁惧鑳藉惁鏄剧ず + if (CheckCanShowDevice(deviceUi.CommonDevice, curDeviceBindType) == false) + { + continue; + } + + //瀛樺湪璁惧鐨勮瘽锛屾鎴块棿鍙互鏄剧ず + return true; + } + return false; + } + + /// <summary> + /// 妫�娴嬭澶囨槸鍚︽嫢鏈夊紑鍏崇殑鍔熻兘(杈撳叆绨�) + /// </summary> + /// <param name="device"></param> + /// <returns></returns> + public static bool InMatchDevice(CommonDevice device, string curDeviceBindType = "AddSwitch") + { + foreach (var data in device.InClusterList) + { + switch (curDeviceBindType) + { + case "AddSwitch": + //鎷ユ湁on/off鍔熻兘鐨勶紝鎵嶆敮鎸佹祴璇� + if (data.InCluster == 6) + { + return true; + } + break; + case "AddDimmer": + if (data.InCluster == 8) + { + return true; + } + break; + case "AddCurtain": + if (data.InCluster == 258) + { + return true; + } + break; + } + } + return false; + } + + /// <summary> + /// 搴曢儴瀹屾垚鎸夐挳鏄剧ず + /// </summary> + /// <returns></returns> + public static void FinishDisplay(List<Room> roomTempList, Button btnFinish) + { + if (roomTempList.Count == 0) + { + btnFinish.Enable = false; + btnFinish.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMUnSelect; + } + else + { + btnFinish.Enable = true; + btnFinish.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack; + } + } + + /// <summary> + /// 鑾峰彇褰撳墠妤煎眰鍚嶇О + /// </summary> + /// <returns></returns> + public static string GetCurrentKeyAllRoomList() + { + var dicFloor = Common.Room.CurrentRoom.GetFloorSortList(); + foreach (var floorId in dicFloor.Keys) + { + //绗竴涓ゼ灞� + return dicFloor[floorId]; + break; + } + return null; + } + + /// <summary> + /// 鑾峰彇褰撳墠妤煎眰 + /// </summary> + /// <returns></returns> + public static string GetCurrentSelectFloorId() + { + var dicFloor = Common.Room.CurrentRoom.GetFloorSortList(); + foreach (var floorId in dicFloor.Keys) + { + //绗竴涓ゼ灞� + return floorId; + break; + } + return null; + } + + /// <summary> + /// 鑾峰彇褰撳墠妤煎眰鍚嶇О + /// </summary> + /// <returns></returns> + public static string GetCurrentSelectFloorIdName() + { + var dicFloor = Common.Room.CurrentRoom.GetFloorSortList(); + foreach (var floorId in dicFloor.Keys) + { + //绗竴涓ゼ灞� + return dicFloor[floorId]; + break; + } + return null; + } /// <summary> /// 妫�娴嬫帶鍒堕潰鏉�(鎸夐敭绫�)鎵�鎷ユ湁鐨勫姛鑳�,鐜版敮鎸佺殑鏈変互涓嬪嚑绉�(蹇呭畾瀛樺湪閿��,鍑洪敊浼氳繑鍥瀗ull) @@ -617,5 +816,6 @@ // }; //} + } } -- Gitblit v1.8.0