From a6c8525a85eae4c64b90b651d42b6c1f6d0df90f Mon Sep 17 00:00:00 2001 From: lss <316519258@qq.com> Date: 星期三, 20 五月 2020 09:44:07 +0800 Subject: [PATCH] 2020.5.20 --- ZigbeeApp/Shared/Phone/UserCenter/SmartSound/Forms/SmartSoundControlForm.cs | 109 +++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 103 insertions(+), 6 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/UserCenter/SmartSound/Forms/SmartSoundControlForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/SmartSound/Forms/SmartSoundControlForm.cs index af113da..93a5e94 100644 --- a/ZigbeeApp/Shared/Phone/UserCenter/SmartSound/Forms/SmartSoundControlForm.cs +++ b/ZigbeeApp/Shared/Phone/UserCenter/SmartSound/Forms/SmartSoundControlForm.cs @@ -1,6 +1,7 @@ 锘縰sing System; using System.Collections.Generic; using Shared.Common; +using ZigBee.Device; namespace Shared.Phone.UserCenter.SmartSound { @@ -20,7 +21,7 @@ // iniData();//鍏堝姞杞芥ā鎷熸暟鎹� this.ScrollEnabled = false; - + //璁剧疆鏍囬淇℃伅 base.SetTitleText("璇煶鎺у埗"); @@ -77,19 +78,115 @@ if (isAdd) { mSmartSound = new SmartSound(); + mSmartSound.HomeID = Config.Instance.Home.Id; + mSmartSound.UserID = Config.Instance.Guid; + Dictionary<string, string> floorDictionary = Config.Instance.Home.FloorDics;//妤煎眰鍒楄〃 + if (floorDictionary.Count < 1) { - //娌℃湁妤煎眰 + //娌℃湁妤煎眰,妯℃嫙涓�涓� + SmartSound.Layer layer = new SmartSound.Layer(); + layer.LayerID = "0000"; + layer.LayerName = "涓�妤�"; + layer.RoomList.Clear(); + + //娣诲姞鎴块棿 + SmartSound.Room smartRoom = null; + var roomList = HdlRoomLogic.Current.GetAllListRooms(); + for (int i = 0; i < roomList.Count; i++) + { + Room room = roomList[i]; + smartRoom = new SmartSound.Room(); + layer.RoomList.Add(smartRoom); + + smartRoom.RoomID = room.Id; + smartRoom.RoomName = room.Name; + smartRoom.DeviceList.Clear(); + smartRoom.SceneList.Clear(); + + //娣诲姞璁惧 // 鐏厜銆佺獥甯樸�佸満鏅�佺┖璋� + for (int j = 0; j < room.ListDevice.Count; j++) + { + string key = room.ListDevice[j].ToString(); + var device = LocalDevice.Current.GetDevice(key); + + SmartSound.Device smartDevice = new SmartSound.Device(); + smartDevice.Id = device.DeviceID.ToString();//璁惧 Id + smartDevice.DeviceAddress = device.DeviceAddr;//璁惧 MAC + smartDevice.Epoint = device.DeviceEpoint;//璁惧绔彛 + smartDevice.ClusterID = 0; + smartDevice.DeviceName = device.DeviceName;//璁惧鍚嶇О + smartDevice.NicksName = ""; + smartDevice.DeviceType = getDeviceType(device);//璁惧绫诲瀷 + smartDevice.GatewayID = device.CurrentGateWayId;//缃戝叧 Id + smartDevice.RoomID = room.Id;//鎴块棿 Id + + smartRoom.DeviceList.Add(smartDevice); + + } + + var sceneList = HdlSceneLogic.Current.GetRoomSceneList(room); + //娣诲姞鍦烘櫙 + for (int j = 0; j < sceneList.Count; j++) + { + SceneUI scene = sceneList[j]; + SmartSound.Scene smartScene = new SmartSound.Scene(); + smartScene.Id = scene.DeviceID.ToString(); + smartScene.SceneName = scene.Name; + smartScene.SceneID = scene.Id; + smartScene.DelayTime = scene.DelayTime; + smartScene.ClusterID = 0; + smartScene.NicksName = ""; + smartScene.RoomID = room.Id; + + smartRoom.SceneList.Add(smartScene); + } + } } + } + } + /// <summary> + /// Zigbee璁惧绫诲瀷杞崲涓烘櫤鑳介煶绠变娇鐢ㄧ殑绫诲瀷 + /// </summary> + /// <returns></returns> + private int getDeviceType(ZigBee.Device.CommonDevice device) + { + int type = 0;//1=寮�鍏崇伅锛�2=璋冨厜鐏紝3=RGB 鐏紝4=绐楀笜妯″潡锛�5=寮�鍚堝笜锛�6=鍗峰笜锛�7=绌鸿皟锛�8=闈㈡澘锛�9=鏂伴 - - - + if (device.Type == DeviceType.OnOffOutput && device.DfunctionType == DeviceFunctionType.A鐏厜) + { + type = 1;//杩欓噷闈㈢殑灏辨槸缁х數鍣ㄧ伅鍏変簡 + } + else if (device.Type == DeviceType.DimmableLight) + { + type = 2;//璋冨厜 + } + else if (device.Type == DeviceType.ColorDimmableLight) + { + type = 3; + } + else if (device.Type == DeviceType.WindowCoveringDevice) + { + //绐楀笜 + if (((Rollershade)device).WcdType == 4)//寮�鍚堝笜 + { + type = 5; + } + else if (((Rollershade)device).WcdType == 0)//鍗峰笜 + type = 6;//鍗峰笜 + } + else if (device.Type == DeviceType.Thermostat) + { + type = 7; + } + else if (device.Type == DeviceType.FreshAir) + { + type = 9; } - + return type; } private void iniView() -- Gitblit v1.8.0