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();
};*/
});
}
}
}