using System; using System.Collections.Generic; using Shared.Common; using ZigBee.Device; namespace Shared.Phone.UserCenter.SmartSound { public class SmartSoundControlForm : EditorCommonForm { private SmartSound mSmartSound; public SmartSoundControlForm() { } /// /// 画面显示(底层会固定调用此方法,借以完成画面创建) /// public void ShowForm() { // iniData();//先加载模拟数据 this.ScrollEnabled = false; //设置标题信息 base.SetTitleText("语音控制"); //右上添加按钮 var btnAddDeviceIcon = new MostRightIconControl(69, 69); btnAddDeviceIcon.UnSelectedImagePath = "Item/Add.png"; topFrameLayout.AddChidren(btnAddDeviceIcon); btnAddDeviceIcon.InitControl(); btnAddDeviceIcon.ButtonClickEvent += (sender, e) => { iniView(); }; //初始化中部控件 //this.InitMiddleFrame(); } /// /// 将数据转换为智能音箱使用的数据 /// private void iniData(bool isAdd) { //1.从服务器获取的数据,json反序列化得来 //2.点击"+"将网关的数据转换为 智能音箱使用的数据 /*{ Dictionary ss = Config.Instance.Home.FloorDics;//楼层列表 string currentFloor = Config.Instance.Home.CurrentFloorId;//当前楼层的键 var listRoom = HdlRoomLogic.Current.GetFloorSortRoom("楼层的主键");//获取当前楼层的所有房间 var room = listRoom[0]; for (int i=0;i() { device }); if (myType.BeloneType == DeviceBeloneType.A灯光) { //这里面的就是灯光了 var light = device; // light.DeviceAddr; 设备的地址 // light.DeviceEpoint;//设备的端口 } } for (int i = 0; i < room.ListSceneId.Count; i++) { //场景数据 var device = HdlSceneLogic.Current.GetSceneUIBySceneId(room.ListSceneId[i]); // device.Id;场景 id } }*/ if (isAdd) { mSmartSound = new SmartSound(); mSmartSound.HomeID = Config.Instance.Home.Id; mSmartSound.UserID = Config.Instance.Guid; Dictionary 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); } } } } } /// /// Zigbee设备类型转换为智能音箱使用的类型 /// /// 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() { //房间列表行{房间列表 textView,楼层下拉窗} //显示房间{带选择框的;当选中了房间后需要在底部弹出确认按钮,点击确认跳转到新的界面} var frame = new TopRightMenuControl(2, 2); //创建楼层 frame.AddRowMenu(Language.StringByID(R.MyInternationalizationString.uCreatFloor), "Item/CreatFloor.png", "Item/CreatFloorSelected.png", () => { //创建楼层 //this.CreatOrEditorFloor(null, null, string.Empty, string.Empty); }); //创建房间 frame.AddRowMenu(Language.StringByID(R.MyInternationalizationString.uCreatRoom), "Item/RoomIcon.png", "Item/RoomIconSelected.png", () => { /*var form = new AddNewRoomForm(); form.AddForm(string.Empty); form.FinishEditorEvent += () => { //根据指定模式,初始化桌布控件 this.InitFrameTableByMode(); };*/ }); } } }