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