old mode 100755
new mode 100644
| | |
| | | using System;
|
| | | using System.Collections.Generic;
|
| | | using System.Text;
|
| | | using Shared.Common;
|
| | | using ZigBee.Device;
|
| | |
|
| | | namespace Shared.Phone.UserCenter
|
| | | {
|
| | | /// <summary>
|
| | | /// App体验账号的逻辑
|
| | | /// </summary>
|
| | | public class HdlExperienceAccountLogic
|
| | | {
|
| | | #region ■ 变量声明___________________________
|
| | |
|
| | | /// <summary>
|
| | | /// App体验账号的逻辑
|
| | | /// </summary>
|
| | | private static HdlExperienceAccountLogic m_Current = null;
|
| | | /// <summary>
|
| | | /// App体验账号的逻辑
|
| | | /// </summary>
|
| | | public static HdlExperienceAccountLogic Current
|
| | | {
|
| | | get
|
| | | {
|
| | | if (m_Current == null)
|
| | | {
|
| | | m_Current = new HdlExperienceAccountLogic();
|
| | | }
|
| | | return m_Current;
|
| | | }
|
| | | }
|
| | |
|
| | | /// <summary>
|
| | | /// 用来递增生成Mac用的
|
| | | /// </summary>
|
| | | private int DeviceNumber = 0;
|
| | |
|
| | | #endregion
|
| | |
|
| | | #region ■ 初始化_____________________________
|
| | |
|
| | | /// <summary>
|
| | | /// 初始化全部体验数据
|
| | | /// </summary>
|
| | | public void InitAllExperienceData()
|
| | | {
|
| | | //初始化用户
|
| | | this.InitUserInfoData();
|
| | | //初始化住宅
|
| | | this.InitHomeData();
|
| | | //初始化楼层
|
| | | this.InitFloorData();
|
| | | //初始化房间
|
| | | this.InitRoomData();
|
| | | //初始化设备
|
| | | this.InitDeviceData();
|
| | | //初始化场景
|
| | | this.InitSceneData();
|
| | | }
|
| | |
|
| | | #endregion
|
| | |
|
| | | #region ■ 初始化用户_________________________
|
| | |
|
| | | /// <summary>
|
| | | /// 初始化用户
|
| | | /// </summary>
|
| | | private void InitUserInfoData()
|
| | | {
|
| | | UserCenterResourse.UserInfo = new UserInformation();
|
| | | UserCenterResourse.UserInfo.AuthorityNo = 1;//给他管理员称号
|
| | | UserCenterResourse.UserInfo.AuthorityText = Language.StringByID(R.MyInternationalizationString.Administrator);
|
| | | //虚拟账号
|
| | | UserCenterResourse.UserInfo.UserName = Language.StringByID(R.MyInternationalizationString.uVirtualAccount);
|
| | | }
|
| | |
|
| | | #endregion
|
| | |
|
| | | #region ■ 初始化住宅_________________________
|
| | |
|
| | | /// <summary>
|
| | | /// 初始化住宅
|
| | | /// </summary>
|
| | | private void InitHomeData()
|
| | | {
|
| | | //初始化住宅ID
|
| | | string homeId = "abcdefghijklmn";
|
| | | //初始Guid
|
| | | Config.Instance.Guid = "chushiGuid";
|
| | | var path = System.IO.Path.Combine(Shared.IO.FileUtils.RootPath, Config.Instance.Guid, homeId);
|
| | | if (System.IO.Directory.Exists(path) == true)
|
| | | {
|
| | | //再次启动的时候,重新开始
|
| | | System.IO.Directory.Delete(path, true);
|
| | | }
|
| | | System.IO.Directory.CreateDirectory(path);
|
| | |
|
| | | //注意,这里不清空当前住宅列表,保留它之前的住宅列表
|
| | |
|
| | | //创建临时住宅
|
| | | var house = new House() { Id = homeId, Name = Language.StringByID(R.MyInternationalizationString.uMyHome) };
|
| | | house.IsVirtually = true;
|
| | | house.Save(false);
|
| | | Config.Instance.HomeId = house.Id;
|
| | | Config.Instance.Home = House.GetHouseByHouseId(house.Id);
|
| | | }
|
| | |
|
| | | #endregion
|
| | |
|
| | | #region ■ 初始化楼层_________________________
|
| | |
|
| | | /// <summary>
|
| | | /// 初始化楼层
|
| | | /// </summary>
|
| | | private void InitFloorData()
|
| | | {
|
| | | Config.Instance.Home.FloorDics = new Dictionary<string, string>();
|
| | | //Config.Instance.Home.FloorDics["floorKey1"] = "1F";
|
| | | //Config.Instance.Home.FloorDics["floorKey2"] = "2F";
|
| | | //Config.Instance.Home.FloorDics["floorKey3"] = "3F";
|
| | | //Config.Instance.Home.FloorDics["floorKey4"] = "4F";
|
| | | //Config.Instance.Home.FloorDics["floorKey5"] = "5F";
|
| | | }
|
| | |
|
| | | #endregion
|
| | |
|
| | | #region ■ 初始化房间_________________________
|
| | |
|
| | | /// <summary>
|
| | | /// 获取房间样板列表
|
| | | /// </summary>
|
| | | /// <returns></returns>
|
| | | private Dictionary<string, string> GetRoomSampleList()
|
| | | {
|
| | | var dicRoomName = new Dictionary<string, string>();
|
| | | //客厅
|
| | | dicRoomName["KeTing"] = Language.StringByID(R.MyInternationalizationString.uLivingRoom);
|
| | | //阳台
|
| | | dicRoomName["YangTai"] = Language.StringByID(R.MyInternationalizationString.uBalcony);
|
| | | //卧室
|
| | | dicRoomName["WoShi"] = Language.StringByID(R.MyInternationalizationString.uBedroom);
|
| | | //玄关
|
| | | dicRoomName["XuanGuan"] = Language.StringByID(R.MyInternationalizationString.uVestibule);
|
| | | //厨房
|
| | | dicRoomName["ChuFang"] = Language.StringByID(R.MyInternationalizationString.uKitchen);
|
| | | //走廊
|
| | | dicRoomName["ZouLang"] = Language.StringByID(R.MyInternationalizationString.uCorridor);
|
| | |
|
| | | return dicRoomName;
|
| | | }
|
| | |
|
| | | /// <summary>
|
| | | /// 初始化房间
|
| | | /// </summary>
|
| | | private void InitRoomData()
|
| | | {
|
| | | //先刷新容器
|
| | | HdlRoomLogic.Current.InitAllRoom();
|
| | |
|
| | | //获取全部的楼层主键
|
| | | var listFloorKey = this.GetAllFloorKeys();
|
| | | var dicRoomName = this.GetRoomSampleList();
|
| | |
|
| | | //设置初始楼层
|
| | | Config.Instance.Home.CurrentFloorId = listFloorKey[0];
|
| | | foreach (string floorKey in listFloorKey)
|
| | | {
|
| | | foreach (string roomId in dicRoomName.Keys)
|
| | | {
|
| | | //创建新房间
|
| | | var newRoom = new Room();
|
| | | newRoom.Id = floorKey + "_" + roomId;
|
| | | newRoom.Name = dicRoomName[roomId];
|
| | | newRoom.BackgroundImage = "RoomIcon/0.jpg";
|
| | | newRoom.FloorId = floorKey;
|
| | | HdlRoomLogic.Current.AddRoom(newRoom, false);
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | /// <summary>
|
| | | /// 获取全部的楼层主键
|
| | | /// </summary>
|
| | | /// <returns></returns>
|
| | | private List<string> GetAllFloorKeys()
|
| | | {
|
| | | var listKey = new List<string>();
|
| | | foreach (var strKey in Config.Instance.Home.FloorDics.Keys)
|
| | | {
|
| | | listKey.Add(strKey);
|
| | | }
|
| | | if (listKey.Count == 0)
|
| | | {
|
| | | listKey.Add("");
|
| | | }
|
| | | return listKey;
|
| | | }
|
| | |
|
| | | #endregion
|
| | |
|
| | | #region ■ 初始化设备_________________________
|
| | |
|
| | | /// <summary>
|
| | | /// 设置需要创建的虚拟设备列表
|
| | | /// </summary>
|
| | | /// <returns></returns>
|
| | | private List<AddDevicePra> GetVirtualDeviceList()
|
| | | {
|
| | | //floorKey1 _ KeTing YangTai WoShi XuanGuan ChuFang ZouLang
|
| | | var list = new List<AddDevicePra>();
|
| | | //获取全部的楼层主键
|
| | | var listFloorKey = this.GetAllFloorKeys();
|
| | | foreach (var floorKey in listFloorKey)
|
| | | {
|
| | | //客厅
|
| | | list.Add(new AddDevicePra { DeviceType = VirtualDeviceEnum.A2按键面板, RoomId = floorKey + "_KeTing", DeviceCount = 1 });
|
| | | list.Add(new AddDevicePra { DeviceType = VirtualDeviceEnum.A3按键面板, RoomId = floorKey + "_KeTing", DeviceCount = 1 });
|
| | | list.Add(new AddDevicePra { DeviceType = VirtualDeviceEnum.A4按键面板, RoomId = floorKey + "_KeTing", DeviceCount = 2 });
|
| | | list.Add(new AddDevicePra { DeviceType = VirtualDeviceEnum.A空调网关, RoomId = floorKey + "_KeTing", DeviceCount = 1 });
|
| | |
|
| | | //阳台
|
| | | list.Add(new AddDevicePra { DeviceType = VirtualDeviceEnum.A220pir传感器, RoomId = floorKey + "_YangTai", DeviceCount = 1 });
|
| | | list.Add(new AddDevicePra { DeviceType = VirtualDeviceEnum.A卷帘电机, RoomId = floorKey + "_YangTai", DeviceCount = 1 });
|
| | | list.Add(new AddDevicePra { DeviceType = VirtualDeviceEnum.A开合帘电机, RoomId = floorKey + "_YangTai", DeviceCount = 1 });
|
| | | list.Add(new AddDevicePra { DeviceType = VirtualDeviceEnum.A2按键面板, RoomId = floorKey + "_YangTai", DeviceCount = 1 });
|
| | |
|
| | | //卧室
|
| | | list.Add(new AddDevicePra { DeviceType = VirtualDeviceEnum.A1路调光器, RoomId = floorKey + "_WoShi", DeviceCount = 1 });
|
| | | list.Add(new AddDevicePra { DeviceType = VirtualDeviceEnum.A3路继电器, RoomId = floorKey + "_WoShi", DeviceCount = 1 });
|
| | |
|
| | | //玄关
|
| | | list.Add(new AddDevicePra { DeviceType = VirtualDeviceEnum.A空气开关, RoomId = floorKey + "_XuanGuan", DeviceCount = 1 });
|
| | | list.Add(new AddDevicePra { DeviceType = VirtualDeviceEnum.A1路调光器, RoomId = floorKey + "_XuanGuan", DeviceCount = 1 });
|
| | | list.Add(new AddDevicePra { DeviceType = VirtualDeviceEnum.A门窗磁传感器, RoomId = floorKey + "_XuanGuan", DeviceCount = 1 });
|
| | |
|
| | | //厨房
|
| | | list.Add(new AddDevicePra { DeviceType = VirtualDeviceEnum.A4按键面板, RoomId = floorKey + "_ChuFang", DeviceCount = 1 });
|
| | | list.Add(new AddDevicePra { DeviceType = VirtualDeviceEnum.A水浸传感器, RoomId = floorKey + "_ChuFang", DeviceCount = 1 });
|
| | | list.Add(new AddDevicePra { DeviceType = VirtualDeviceEnum.A烟雾传感器, RoomId = floorKey + "_ChuFang", DeviceCount = 1 });
|
| | | list.Add(new AddDevicePra { DeviceType = VirtualDeviceEnum.A燃气传感器, RoomId = floorKey + "_ChuFang", DeviceCount = 1 });
|
| | | list.Add(new AddDevicePra { DeviceType = VirtualDeviceEnum.A吸顶燃气传感器, RoomId = floorKey + "_ChuFang", DeviceCount = 1 });
|
| | |
|
| | | //走廊
|
| | | list.Add(new AddDevicePra { DeviceType = VirtualDeviceEnum.A4按键面板, RoomId = floorKey + "_ZouLang", DeviceCount = 1 });
|
| | | }
|
| | | return list;
|
| | | }
|
| | |
|
| | | /// <summary>
|
| | | /// 初始化设备
|
| | | /// </summary>
|
| | | private void InitDeviceData()
|
| | | {
|
| | | //先刷新容器
|
| | | LocalDevice.Current.ReFreshByLocal();
|
| | | //顺便也整一下网关(有可能它是从实体账号转为虚拟时,没有清空)
|
| | | HdlGatewayLogic.Current.ReFreshByLocal();
|
| | | HdlGatewayLogic.Current.RefreshAppOldSelectGatewayId();
|
| | |
|
| | | Type thisType = m_Current.GetType();
|
| | | //获取需要创建的虚拟设备列表
|
| | | var list = this.GetVirtualDeviceList();
|
| | | foreach (var data in list)
|
| | | {
|
| | | string methordName = "Zigbee" + data.DeviceType.ToString().Substring(1);
|
| | | //反射指定的函数
|
| | | var myMethod = thisType.GetMethod(methordName);
|
| | | myMethod.Invoke(this, new object[] { data.DeviceCount, data.RoomId });
|
| | | }
|
| | | }
|
| | |
|
| | | #endregion
|
| | |
|
| | | #region ■ 初始化场景_________________________
|
| | |
|
| | | /// <summary>
|
| | | /// 初始化场景
|
| | | /// </summary>
|
| | | private void InitSceneData()
|
| | | {
|
| | | //刷新容器
|
| | | HdlSceneLogic.Current.ReFreshByLocal();
|
| | |
|
| | | //获取全部的楼层主键
|
| | | var listFloorKey = this.GetAllFloorKeys();
|
| | | //获取全部的房间模板列表
|
| | | var dicRoom = this.GetRoomSampleList();
|
| | |
|
| | | //floorKey1 _ KeTing YangTai WoShi XuanGuan ChuFang ZouLang
|
| | | int sceneIdNo = 1;
|
| | | //对每一个楼层
|
| | | foreach (var floorKey in listFloorKey)
|
| | | {
|
| | | //对每一个房间
|
| | | foreach (var strKey in dicRoom.Keys)
|
| | | {
|
| | | var room = HdlRoomLogic.Current.GetRoomById(floorKey + "_" + strKey);
|
| | | if (room == null)
|
| | | {
|
| | | continue;
|
| | | }
|
| | | //灯全开
|
| | | var listAdjust1 = this.InitVirtualSceneAdjustList(room, 1);
|
| | | var sceneName = Language.StringByID(R.MyInternationalizationString.uAllLightOpen);
|
| | | var scene = HdlSceneLogic.Current.AddVirtualScene(sceneIdNo, sceneName, listAdjust1);
|
| | | sceneIdNo++;
|
| | | HdlSceneLogic.Current.AddSceneToRoom(room, scene);
|
| | |
|
| | | //灯全关
|
| | | var listAdjust2 = this.InitVirtualSceneAdjustList(room, 0);
|
| | | var sceneName2 = Language.StringByID(R.MyInternationalizationString.uAllLightClose);
|
| | | var scene2 = HdlSceneLogic.Current.AddVirtualScene(sceneIdNo, sceneName2, listAdjust2);
|
| | | sceneIdNo++;
|
| | | HdlSceneLogic.Current.AddSceneToRoom(room, scene2);
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | /// <summary>
|
| | | /// 初始化虚拟场景的执行目标(statu 0:关 1:开)
|
| | | /// </summary>
|
| | | /// <param name="i_room"></param>
|
| | | /// <param name="statu"></param>
|
| | | /// <returns></returns>
|
| | | private List<Scene.DeviceListData> InitVirtualSceneAdjustList(Room i_room, int statu)
|
| | | {
|
| | | var listBind = new List<Scene.DeviceListData>();
|
| | | foreach (var mainKey in i_room.ListDevice)
|
| | | {
|
| | | var device = LocalDevice.Current.GetDevice(mainKey);
|
| | | if (device == null) { continue; }
|
| | | //只要继电器和灯
|
| | | if (device.Type == DeviceType.OnOffOutput
|
| | | || device.Type == DeviceType.DimmableLight)
|
| | | {
|
| | | var data = new Scene.DeviceListData();
|
| | | data.Type = 0;
|
| | | data.DeviceAddr = device.DeviceAddr;
|
| | | data.Epoint = device.DeviceEpoint;
|
| | | data.TaskList.Add(new Safeguard.TaskListInfo() { TaskType = 1, Data1 = statu });
|
| | | listBind.Add(data);
|
| | | }
|
| | | }
|
| | | return listBind;
|
| | | }
|
| | |
|
| | | #endregion
|
| | |
|
| | | #region ■ 创建虚拟设备列表___________________
|
| | |
|
| | | public void Zigbee开合帘电机(int i_DeviceCount, string i_RoomId)
|
| | | {
|
| | | for (int i = 0; i < i_DeviceCount; i++)
|
| | | {
|
| | | var device = new Rollershade() { DeviceAddr = "DeviceAddr" + this.DeviceNumber, DeviceEpoint = 1 };
|
| | | device.WcdType = 4;
|
| | | //设置设备的基本信息
|
| | | this.SetBaseDataToDevice(device, 100, 100, "MWM65B-ZB.20", i_RoomId);
|
| | | this.DeviceNumber++;
|
| | | }
|
| | | }
|
| | |
|
| | | public void Zigbee卷帘电机(int i_DeviceCount, string i_RoomId)
|
| | | {
|
| | | for (int i = 0; i < i_DeviceCount; i++)
|
| | | {
|
| | | var device = new Rollershade() { DeviceAddr = "DeviceAddr" + this.DeviceNumber, DeviceEpoint = 1 };
|
| | | device.WcdType = 0;
|
| | | //设置设备的基本信息
|
| | | this.SetBaseDataToDevice(device, 101, 101, "MVSM35B-ZB.20", i_RoomId);
|
| | | this.DeviceNumber++;
|
| | | }
|
| | | }
|
| | |
|
| | | public void Zigbee4按键面板(int i_DeviceCount, string i_RoomId)
|
| | | {
|
| | | for (int i = 0; i < i_DeviceCount; i++)
|
| | | {
|
| | | //4个干接点
|
| | | for (int j = 1; j <= 4; j++)
|
| | | {
|
| | | var device = new Panel() { DeviceAddr = "DeviceAddr" + this.DeviceNumber, DeviceEpoint = j };
|
| | | //设置设备的基本信息
|
| | | this.SetBaseDataToDevice(device, 200, 200, "MPT4/R4-ZB.18", i_RoomId);
|
| | | }
|
| | | //4个继电器
|
| | | for (int j = 5; j <= 8; j++)
|
| | | {
|
| | | var device = new ToggleLight() { DeviceAddr = "DeviceAddr" + this.DeviceNumber, DeviceEpoint = j };
|
| | | device.DfunctionType = DeviceFunctionType.A灯光;
|
| | | //设置设备的基本信息
|
| | | this.SetBaseDataToDevice(device, 200, 200, "MPT4/R4-ZB.18", i_RoomId);
|
| | | device.DeviceEpointName = Language.StringByID(R.MyInternationalizationString.uLight) + (j - 4);
|
| | | }
|
| | | //1温度探头
|
| | | var device2 = new TemperatureSensor() { DeviceAddr = "DeviceAddr" + this.DeviceNumber, DeviceEpoint = 9 };
|
| | | device2.SensorDiv = 1;
|
| | | //设置设备的基本信息
|
| | | this.SetBaseDataToDevice(device2, 200, 200, "MPT4/R4-ZB.18", i_RoomId);
|
| | |
|
| | | this.DeviceNumber++;
|
| | | }
|
| | | }
|
| | |
|
| | | public void Zigbee3按键面板(int i_DeviceCount, string i_RoomId)
|
| | | {
|
| | | for (int i = 0; i < i_DeviceCount; i++)
|
| | | {
|
| | | //3个干接点
|
| | | for (int j = 1; j <= 3; j++)
|
| | | {
|
| | | var device = new Panel() { DeviceAddr = "DeviceAddr" + this.DeviceNumber, DeviceEpoint = j };
|
| | | //设置设备的基本信息
|
| | | this.SetBaseDataToDevice(device, 201, 201, "MPT3/R3-ZB.18", i_RoomId);
|
| | | }
|
| | | //3个继电器
|
| | | for (int j = 4; j <= 6; j++)
|
| | | {
|
| | | var device = new ToggleLight() { DeviceAddr = "DeviceAddr" + this.DeviceNumber, DeviceEpoint = j };
|
| | | device.DfunctionType = DeviceFunctionType.A灯光;
|
| | | //设置设备的基本信息
|
| | | this.SetBaseDataToDevice(device, 201, 201, "MPT3/R3-ZB.18", i_RoomId);
|
| | | device.DeviceEpointName = Language.StringByID(R.MyInternationalizationString.uLight) + (j - 3);
|
| | | }
|
| | | //1温度探头
|
| | | var device2 = new TemperatureSensor() { DeviceAddr = "DeviceAddr" + this.DeviceNumber, DeviceEpoint = 7 };
|
| | | device2.SensorDiv = 1;
|
| | | //设置设备的基本信息
|
| | | this.SetBaseDataToDevice(device2, 201, 201, "MPT3/R3-ZB.18", i_RoomId);
|
| | |
|
| | | this.DeviceNumber++;
|
| | | }
|
| | | }
|
| | |
|
| | | public void Zigbee2按键面板(int i_DeviceCount, string i_RoomId)
|
| | | {
|
| | | for (int i = 0; i < i_DeviceCount; i++)
|
| | | {
|
| | | //2个干接点
|
| | | for (int j = 1; j <= 2; j++)
|
| | | {
|
| | | var device = new Panel() { DeviceAddr = "DeviceAddr" + this.DeviceNumber, DeviceEpoint = j };
|
| | | //设置设备的基本信息
|
| | | this.SetBaseDataToDevice(device, 202, 202, "MPT2/R2-ZB.18", i_RoomId);
|
| | | }
|
| | | //2个继电器
|
| | | for (int j = 3; j <= 4; j++)
|
| | | {
|
| | | var device = new ToggleLight() { DeviceAddr = "DeviceAddr" + this.DeviceNumber, DeviceEpoint = j };
|
| | | device.DfunctionType = DeviceFunctionType.A灯光;
|
| | | //设置设备的基本信息
|
| | | this.SetBaseDataToDevice(device, 202, 202, "MPT2/R2-ZB.18", i_RoomId);
|
| | | device.DeviceEpointName = Language.StringByID(R.MyInternationalizationString.uLight) + (j - 2);
|
| | | }
|
| | | //1温度探头
|
| | | var device2 = new TemperatureSensor() { DeviceAddr = "DeviceAddr" + this.DeviceNumber, DeviceEpoint = 5 };
|
| | | device2.SensorDiv = 1;
|
| | | //设置设备的基本信息
|
| | | this.SetBaseDataToDevice(device2, 202, 202, "MPT2/R2-ZB.18", i_RoomId);
|
| | |
|
| | | this.DeviceNumber++;
|
| | | }
|
| | | }
|
| | |
|
| | | public void Zigbee简约4按键面板(int i_DeviceCount, string i_RoomId)
|
| | | {
|
| | | for (int i = 0; i < i_DeviceCount; i++)
|
| | | {
|
| | | //4个干接点
|
| | | for (int j = 1; j <= 4; j++)
|
| | | {
|
| | | var device = new Panel() { DeviceAddr = "DeviceAddr" + this.DeviceNumber, DeviceEpoint = j };
|
| | | //设置设备的基本信息
|
| | | this.SetBaseDataToDevice(device, 220, 220, "MPT4R4L/S-ZB.18", i_RoomId);
|
| | | }
|
| | | //4个继电器
|
| | | for (int j = 5; j <= 8; j++)
|
| | | {
|
| | | var device = new ToggleLight() { DeviceAddr = "DeviceAddr" + this.DeviceNumber, DeviceEpoint = j };
|
| | | device.DfunctionType = DeviceFunctionType.A灯光;
|
| | | //设置设备的基本信息
|
| | | this.SetBaseDataToDevice(device, 220, 220, "MPT4R4L/S-ZB.18", i_RoomId);
|
| | | device.DeviceEpointName = Language.StringByID(R.MyInternationalizationString.uLight) + (j - 4);
|
| | | }
|
| | | //1温度探头
|
| | | var device2 = new TemperatureSensor() { DeviceAddr = "DeviceAddr" + this.DeviceNumber, DeviceEpoint = 9 };
|
| | | device2.SensorDiv = 1;
|
| | | //设置设备的基本信息
|
| | | this.SetBaseDataToDevice(device2, 220, 220, "MPT4R4L/S-ZB.18", i_RoomId);
|
| | |
|
| | | this.DeviceNumber++;
|
| | | }
|
| | | }
|
| | |
|
| | | public void Zigbee简约3按键面板(int i_DeviceCount, string i_RoomId)
|
| | | {
|
| | | for (int i = 0; i < i_DeviceCount; i++)
|
| | | {
|
| | | //3个干接点
|
| | | for (int j = 1; j <= 3; j++)
|
| | | {
|
| | | var device = new Panel() { DeviceAddr = "DeviceAddr" + this.DeviceNumber, DeviceEpoint = j };
|
| | | //设置设备的基本信息
|
| | | this.SetBaseDataToDevice(device, 221, 221, "MPT3R3L/S-ZB.18", i_RoomId);
|
| | | }
|
| | | //3个继电器
|
| | | for (int j = 4; j <= 6; j++)
|
| | | {
|
| | | var device = new ToggleLight() { DeviceAddr = "DeviceAddr" + this.DeviceNumber, DeviceEpoint = j };
|
| | | device.DfunctionType = DeviceFunctionType.A灯光;
|
| | | //设置设备的基本信息
|
| | | this.SetBaseDataToDevice(device, 221, 221, "MPT3R3L/S-ZB.18", i_RoomId);
|
| | | device.DeviceEpointName = Language.StringByID(R.MyInternationalizationString.uLight) + (j - 3);
|
| | | }
|
| | | //1温度探头
|
| | | var device2 = new TemperatureSensor() { DeviceAddr = "DeviceAddr" + this.DeviceNumber, DeviceEpoint = 7 };
|
| | | device2.SensorDiv = 1;
|
| | | //设置设备的基本信息
|
| | | this.SetBaseDataToDevice(device2, 221, 221, "MPT3R3L/S-ZB.18", i_RoomId);
|
| | |
|
| | | this.DeviceNumber++;
|
| | | }
|
| | | }
|
| | |
|
| | | public void Zigbee简约2按键面板(int i_DeviceCount, string i_RoomId)
|
| | | {
|
| | | for (int i = 0; i < i_DeviceCount; i++)
|
| | | {
|
| | | //2个干接点
|
| | | for (int j = 1; j <= 2; j++)
|
| | | {
|
| | | var device = new Panel() { DeviceAddr = "DeviceAddr" + this.DeviceNumber, DeviceEpoint = j };
|
| | | //设置设备的基本信息
|
| | | this.SetBaseDataToDevice(device, 222, 222, "MPT2R2L/S-ZB.18", i_RoomId);
|
| | | }
|
| | | //2个继电器
|
| | | for (int j = 3; j <= 4; j++)
|
| | | {
|
| | | var device = new ToggleLight() { DeviceAddr = "DeviceAddr" + this.DeviceNumber, DeviceEpoint = j };
|
| | | device.DfunctionType = DeviceFunctionType.A灯光;
|
| | | //设置设备的基本信息
|
| | | this.SetBaseDataToDevice(device, 222, 222, "MPT2R2L/S-ZB.18", i_RoomId);
|
| | | device.DeviceEpointName = Language.StringByID(R.MyInternationalizationString.uLight) + (j - 2);
|
| | | }
|
| | | //1温度探头
|
| | | var device2 = new TemperatureSensor() { DeviceAddr = "DeviceAddr" + this.DeviceNumber, DeviceEpoint = 5 };
|
| | | device2.SensorDiv = 1;
|
| | | //设置设备的基本信息
|
| | | this.SetBaseDataToDevice(device2, 222, 222, "MPT2R2L/S-ZB.18", i_RoomId);
|
| | |
|
| | | this.DeviceNumber++;
|
| | | }
|
| | | }
|
| | |
|
| | | public void Zigbee220pir传感器(int i_DeviceCount, string i_RoomId)
|
| | | {
|
| | | for (int i = 0; i < i_DeviceCount; i++)
|
| | | {
|
| | | //1个传感器
|
| | | var device = new IASZone() { DeviceAddr = "DeviceAddr" + this.DeviceNumber, DeviceEpoint = 1 };
|
| | | device.IasDeviceType = 13;
|
| | | device.DeviceID = 1026;
|
| | | //设置设备的基本信息
|
| | | this.SetBaseDataToDevice(device, 1200, 1200, "MSPIR01-ZB.10", i_RoomId);
|
| | |
|
| | | //1个继电器
|
| | | var device2 = new ToggleLight() { DeviceAddr = "DeviceAddr" + this.DeviceNumber, DeviceEpoint = 2 };
|
| | | device2.DfunctionType = DeviceFunctionType.A灯光;
|
| | | //设置设备的基本信息
|
| | | this.SetBaseDataToDevice(device2, 1200, 1200, "MSPIR01-ZB.10", i_RoomId);
|
| | | device2.DeviceEpointName = Language.StringByID(R.MyInternationalizationString.uLight) + 1;
|
| | |
|
| | | this.DeviceNumber++;
|
| | | }
|
| | | }
|
| | |
|
| | | public void Zigbee燃气传感器(int i_DeviceCount, string i_RoomId)
|
| | | {
|
| | | for (int i = 0; i < i_DeviceCount; i++)
|
| | | {
|
| | | var device = new IASZone() { DeviceAddr = "DeviceAddr" + this.DeviceNumber, DeviceEpoint = 1 };
|
| | | device.IasDeviceType = 43;
|
| | | device.DeviceID = 1026;
|
| | | //设置设备的基本信息
|
| | | this.SetBaseDataToDevice(device, 1300, 1300, "MSG01/M-ZB.10", i_RoomId);
|
| | |
|
| | | this.DeviceNumber++;
|
| | | }
|
| | | }
|
| | |
|
| | | public void Zigbee吸顶燃气传感器(int i_DeviceCount, string i_RoomId)
|
| | | {
|
| | | for (int i = 0; i < i_DeviceCount; i++)
|
| | | {
|
| | | var device = new IASZone() { DeviceAddr = "DeviceAddr" + this.DeviceNumber, DeviceEpoint = 1 };
|
| | | device.IasDeviceType = 43;
|
| | | device.DeviceID = 1026;
|
| | | //设置设备的基本信息
|
| | | this.SetBaseDataToDevice(device, 1300, 1300, "MGCD01/ZB.10", i_RoomId);
|
| | |
|
| | | this.DeviceNumber++;
|
| | | }
|
| | | }
|
| | |
|
| | | public void Zigbee门窗磁传感器(int i_DeviceCount, string i_RoomId)
|
| | | {
|
| | | for (int i = 0; i < i_DeviceCount; i++)
|
| | | {
|
| | | var device = new IASZone() { DeviceAddr = "DeviceAddr" + this.DeviceNumber, DeviceEpoint = 1 };
|
| | | device.IasDeviceType = 21;
|
| | | device.DeviceID = 1026;
|
| | | //设置设备的基本信息
|
| | | this.SetBaseDataToDevice(device, 1301, 1301, "MSDC01/M-ZB.10", i_RoomId);
|
| | |
|
| | | this.DeviceNumber++;
|
| | | }
|
| | | }
|
| | |
|
| | | public void Zigbee烟雾传感器(int i_DeviceCount, string i_RoomId)
|
| | | {
|
| | | for (int i = 0; i < i_DeviceCount; i++)
|
| | | {
|
| | | var device = new IASZone() { DeviceAddr = "DeviceAddr" + this.DeviceNumber, DeviceEpoint = 1 };
|
| | | device.IasDeviceType = 40;
|
| | | device.DeviceID = 1026;
|
| | | //设置设备的基本信息
|
| | | this.SetBaseDataToDevice(device, 1301, 1301, "MSS01/M-ZB.10", i_RoomId);
|
| | |
|
| | | this.DeviceNumber++;
|
| | | }
|
| | | }
|
| | |
|
| | | public void Zigbee红外传感器(int i_DeviceCount, string i_RoomId)
|
| | | {
|
| | | for (int i = 0; i < i_DeviceCount; i++)
|
| | | {
|
| | | var device = new IASZone() { DeviceAddr = "DeviceAddr" + this.DeviceNumber, DeviceEpoint = 1 };
|
| | | device.IasDeviceType = 13;
|
| | | device.DeviceID = 1026;
|
| | | //设置设备的基本信息
|
| | | this.SetBaseDataToDevice(device, 1303, 1303, "MSPIR01/M-ZB.10", i_RoomId);
|
| | |
|
| | | this.DeviceNumber++;
|
| | | }
|
| | | }
|
| | |
|
| | | public void Zigbee水浸传感器(int i_DeviceCount, string i_RoomId)
|
| | | {
|
| | | for (int i = 0; i < i_DeviceCount; i++)
|
| | | {
|
| | | var device = new IASZone() { DeviceAddr = "DeviceAddr" + this.DeviceNumber, DeviceEpoint = 1 };
|
| | | device.IasDeviceType = 42;
|
| | | device.DeviceID = 1026;
|
| | | //设置设备的基本信息
|
| | | this.SetBaseDataToDevice(device, 1304, 1304, "MSW01/M-ZB.10", i_RoomId);
|
| | |
|
| | | this.DeviceNumber++;
|
| | | }
|
| | | }
|
| | |
|
| | | public void Zigbee紧急按键(int i_DeviceCount, string i_RoomId)
|
| | | {
|
| | | for (int i = 0; i < i_DeviceCount; i++)
|
| | | {
|
| | | var device = new IASZone() { DeviceAddr = "DeviceAddr" + this.DeviceNumber, DeviceEpoint = 1 };
|
| | | device.IasDeviceType = 44;
|
| | | device.DeviceID = 1026;
|
| | | //设置设备的基本信息
|
| | | this.SetBaseDataToDevice(device, 1305, 1305, "MBU01/M-ZB.10", i_RoomId);
|
| | |
|
| | | this.DeviceNumber++;
|
| | | }
|
| | | }
|
| | |
|
| | | public void Zigbee3路继电器(int i_DeviceCount, string i_RoomId)
|
| | | {
|
| | | for (int i = 0; i < i_DeviceCount; i++)
|
| | | {
|
| | | //3个继电器
|
| | | for (int j = 1; j <= 3; j++)
|
| | | {
|
| | | var device = new ToggleLight() { DeviceAddr = "DeviceAddr" + this.DeviceNumber, DeviceEpoint = j };
|
| | | device.DfunctionType = DeviceFunctionType.A灯光;
|
| | | //设置设备的基本信息
|
| | | this.SetBaseDataToDevice(device, 2300, 2300, "MPR0310-ZB.10", i_RoomId);
|
| | | device.DeviceEpointName = Language.StringByID(R.MyInternationalizationString.uLight) + j;
|
| | | }
|
| | | //7个干接点
|
| | | for (int j = 4; j <= 10; j++)
|
| | | {
|
| | | var device = new Panel() { DeviceAddr = "DeviceAddr" + this.DeviceNumber, DeviceEpoint = j };
|
| | | //设置设备的基本信息
|
| | | this.SetBaseDataToDevice(device, 2300, 2300, "MPR0310-ZB.10", i_RoomId);
|
| | | }
|
| | |
|
| | | this.DeviceNumber++;
|
| | | }
|
| | | }
|
| | |
|
| | | public void Zigbee1路调光器(int i_DeviceCount, string i_RoomId)
|
| | | {
|
| | | for (int i = 0; i < i_DeviceCount; i++)
|
| | | {
|
| | | //7个干接点
|
| | | for (int j = 1; j <= 7; j++)
|
| | | {
|
| | | var device = new Panel() { DeviceAddr = "DeviceAddr" + this.DeviceNumber, DeviceEpoint = j };
|
| | | //设置设备的基本信息
|
| | | this.SetBaseDataToDevice(device, 2300, 2300, "MPD0101-ZB.10", i_RoomId);
|
| | | }
|
| | |
|
| | | //1个继电器
|
| | | var device2 = new ToggleLight() { DeviceAddr = "DeviceAddr" + this.DeviceNumber, DeviceEpoint = 8 };
|
| | | device2.DfunctionType = DeviceFunctionType.A灯光;
|
| | | //设置设备的基本信息
|
| | | this.SetBaseDataToDevice(device2, 2300, 2300, "MPD0101-ZB.10", i_RoomId);
|
| | | device2.DeviceEpointName = Language.StringByID(R.MyInternationalizationString.uLight) + 1;
|
| | |
|
| | |
|
| | | this.DeviceNumber++;
|
| | | }
|
| | | }
|
| | |
|
| | | public void Zigbee空调网关(int i_DeviceCount, string i_RoomId)
|
| | | {
|
| | | for (int i = 0; i < i_DeviceCount; i++)
|
| | | {
|
| | | //10个空调应该可以了
|
| | | for (int j = 1; j <= 10; j++)
|
| | | {
|
| | | var device = new AC() { DeviceAddr = "DeviceAddr" + this.DeviceNumber, DeviceEpoint = j };
|
| | | //室温默认26℃
|
| | | device.currentLocalTemperature = 26;
|
| | | device.currentCoolingSetpoint = 26;
|
| | | device.currentHeatingSetpoint = 26;
|
| | | device.currentAutoSetpoint = 26;
|
| | | //设置设备的基本信息
|
| | | this.SetBaseDataToDevice(device, 3600, 3600, "MAC/GW-ZB.10", i_RoomId);
|
| | | }
|
| | | this.DeviceNumber++;
|
| | | }
|
| | | }
|
| | |
|
| | | public void Zigbee空气开关(int i_DeviceCount, string i_RoomId)
|
| | | {
|
| | | for (int i = 0; i < i_DeviceCount; i++)
|
| | | {
|
| | | var device = new AirSwitch() { DeviceAddr = "DeviceAddr" + this.DeviceNumber, DeviceEpoint = 1 };
|
| | | //设置设备的基本信息
|
| | | this.SetBaseDataToDevice(device, 4100, 4100, "MBCI01-ZB.10", i_RoomId);
|
| | | device.DfunctionType = DeviceFunctionType.A开关;
|
| | |
|
| | | this.DeviceNumber++;
|
| | | }
|
| | | }
|
| | |
|
| | | public void Zigbee智能门锁(int i_DeviceCount, string i_RoomId)
|
| | | {
|
| | | for (int i = 0; i < i_DeviceCount; i++)
|
| | | {
|
| | | var device = new ZigBee.Device.DoorLock() { DeviceAddr = "DeviceAddr" + this.DeviceNumber, DeviceEpoint = 1 };
|
| | | //设置设备的基本信息
|
| | | this.SetBaseDataToDevice(device, 2800, 2800, "S-one", i_RoomId);
|
| | | device.DfunctionType = DeviceFunctionType.A开关;
|
| | |
|
| | | this.DeviceNumber++;
|
| | | }
|
| | | }
|
| | |
|
| | | public void Zigbee方悦单开双控面板(int i_DeviceCount, string i_RoomId)
|
| | | {
|
| | | for (int i = 0; i < i_DeviceCount; i++)
|
| | | {
|
| | | //2个干接点
|
| | | for (int j = 1; j <= 2; j++)
|
| | | {
|
| | | var device = new Panel() { DeviceAddr = "DeviceAddr" + this.DeviceNumber, DeviceEpoint = j };
|
| | | //设置设备的基本信息
|
| | | this.SetBaseDataToDevice(device, 240, 240, "MP2B/TILE-ZB.18", i_RoomId);
|
| | | }
|
| | | //1个继电器
|
| | | for (int j = 3; j <= 3; j++)
|
| | | {
|
| | | var device = new ToggleLight() { DeviceAddr = "DeviceAddr" + this.DeviceNumber, DeviceEpoint = j };
|
| | | device.DfunctionType = DeviceFunctionType.A灯光;
|
| | | //设置设备的基本信息
|
| | | this.SetBaseDataToDevice(device, 240, 240, "MP2B/TILE-ZB.18", i_RoomId);
|
| | | device.DeviceEpointName = Language.StringByID(R.MyInternationalizationString.uLight) + (j - 2);
|
| | | }
|
| | | //1温度探头
|
| | | var device2 = new TemperatureSensor() { DeviceAddr = "DeviceAddr" + this.DeviceNumber, DeviceEpoint = 4 };
|
| | | device2.SensorDiv = 1;
|
| | | //设置设备的基本信息
|
| | | this.SetBaseDataToDevice(device2, 240, 240, "MP2B/TILE-ZB.18", i_RoomId);
|
| | |
|
| | | this.DeviceNumber++;
|
| | | }
|
| | | }
|
| | |
|
| | | public void Zigbee方悦双开四控面板(int i_DeviceCount, string i_RoomId)
|
| | | {
|
| | | for (int i = 0; i < i_DeviceCount; i++)
|
| | | {
|
| | | //4个干接点
|
| | | for (int j = 1; j <= 4; j++)
|
| | | {
|
| | | var device = new Panel() { DeviceAddr = "DeviceAddr" + this.DeviceNumber, DeviceEpoint = j };
|
| | | //设置设备的基本信息
|
| | | this.SetBaseDataToDevice(device, 241, 241, "MP4B/TILE-ZB.18", i_RoomId);
|
| | | }
|
| | | //2个继电器
|
| | | for (int j = 5; j <= 6; j++)
|
| | | {
|
| | | var device = new ToggleLight() { DeviceAddr = "DeviceAddr" + this.DeviceNumber, DeviceEpoint = j };
|
| | | device.DfunctionType = DeviceFunctionType.A灯光;
|
| | | //设置设备的基本信息
|
| | | this.SetBaseDataToDevice(device, 241, 241, "MP4B/TILE-ZB.18", i_RoomId);
|
| | | device.DeviceEpointName = Language.StringByID(R.MyInternationalizationString.uLight) + (j - 4);
|
| | | }
|
| | | //1温度探头
|
| | | var device2 = new TemperatureSensor() { DeviceAddr = "DeviceAddr" + this.DeviceNumber, DeviceEpoint = 7 };
|
| | | device2.SensorDiv = 1;
|
| | | //设置设备的基本信息
|
| | | this.SetBaseDataToDevice(device2, 241, 241, "MP4B/TILE-ZB.18", i_RoomId);
|
| | |
|
| | | this.DeviceNumber++;
|
| | | }
|
| | | }
|
| | |
|
| | | public void Zigbee方悦四开八控面板(int i_DeviceCount, string i_RoomId)
|
| | | {
|
| | | for (int i = 0; i < i_DeviceCount; i++)
|
| | | {
|
| | | //8个干接点
|
| | | for (int j = 1; j <= 8; j++)
|
| | | {
|
| | | var device = new Panel() { DeviceAddr = "DeviceAddr" + this.DeviceNumber, DeviceEpoint = j };
|
| | | //设置设备的基本信息
|
| | | this.SetBaseDataToDevice(device, 242, 242, "MP8B/TILE-ZB.18", i_RoomId);
|
| | | }
|
| | | //4个继电器
|
| | | for (int j = 9; j <= 12; j++)
|
| | | {
|
| | | var device = new ToggleLight() { DeviceAddr = "DeviceAddr" + this.DeviceNumber, DeviceEpoint = j };
|
| | | device.DfunctionType = DeviceFunctionType.A灯光;
|
| | | //设置设备的基本信息
|
| | | this.SetBaseDataToDevice(device, 242, 242, "MP8B/TILE-ZB.18", i_RoomId);
|
| | | device.DeviceEpointName = Language.StringByID(R.MyInternationalizationString.uLight) + (j - 8);
|
| | | }
|
| | | //1温度探头
|
| | | var device2 = new TemperatureSensor() { DeviceAddr = "DeviceAddr" + this.DeviceNumber, DeviceEpoint = 13 };
|
| | | device2.SensorDiv = 1;
|
| | | //设置设备的基本信息
|
| | | this.SetBaseDataToDevice(device2, 242, 242, "MP8B/TILE-ZB.18", i_RoomId);
|
| | |
|
| | | this.DeviceNumber++;
|
| | | }
|
| | | }
|
| | |
|
| | | public void Zigbee方悦新风面板(int i_DeviceCount, string i_RoomId)
|
| | | {
|
| | | for (int i = 0; i < i_DeviceCount; i++)
|
| | | {
|
| | | //1新风
|
| | | var device = new FreshAir() { DeviceAddr = "DeviceAddr" + this.DeviceNumber, DeviceEpoint = 1 };
|
| | | //设置设备的基本信息
|
| | | this.SetBaseDataToDevice(device, 250, 250, "MPFA/TILE-ZB.18", i_RoomId);
|
| | |
|
| | | //1温度探头
|
| | | var device2 = new TemperatureSensor() { DeviceAddr = "DeviceAddr" + this.DeviceNumber, DeviceEpoint = 2 };
|
| | | device2.SensorDiv = 1;
|
| | | //设置设备的基本信息
|
| | | this.SetBaseDataToDevice(device2, 250, 250, "MPFA/TILE-ZB.18", i_RoomId);
|
| | |
|
| | | this.DeviceNumber++;
|
| | | }
|
| | | }
|
| | |
|
| | | public void Zigbee方悦新风小模块(int i_DeviceCount, string i_RoomId)
|
| | | {
|
| | | for (int i = 0; i < i_DeviceCount; i++)
|
| | | {
|
| | | //1新风
|
| | | var device = new FreshAir() { DeviceAddr = "DeviceAddr" + this.DeviceNumber, DeviceEpoint = 1 };
|
| | | //设置设备的基本信息
|
| | | this.SetBaseDataToDevice(device, 2310, 2310, "MFA01-ZB.10", i_RoomId);
|
| | |
|
| | | this.DeviceNumber++;
|
| | | }
|
| | | }
|
| | |
|
| | | /// <summary>
|
| | | /// 设置设备的基本信息
|
| | | /// </summary>
|
| | | /// <param name="device"></param>
|
| | | private void SetBaseDataToDevice(CommonDevice device, int HwVersion, int ImgTypeId,
|
| | | string ModelIdentifier, string roomId)
|
| | | {
|
| | | device.DeviceEpointName = string.Empty;
|
| | | device.HadReadDeviceStatu = true;
|
| | | device.DeviceName = string.Empty;
|
| | | device.IsOnline = 1;
|
| | | device.HwVersion = HwVersion;
|
| | | device.ImgTypeId = ImgTypeId;
|
| | | device.DriveCode = 0;
|
| | | device.ManufacturerName = "HDL";
|
| | | device.ModelIdentifier = ModelIdentifier;
|
| | | device.CurrentGateWayId = string.Empty;
|
| | |
|
| | | //默认每个设备都可以定位
|
| | | device.InClusterList.Add(new CommonDevice.InClusterObj { InCluster = 3 });
|
| | | device.OutClusterList.Add(new CommonDevice.OutClusterObj { OutCluster = 3 });
|
| | |
|
| | | //添加虚拟设备
|
| | | LocalDevice.Current.AddVirtualDeviceToMemory(device);
|
| | |
|
| | | var room = HdlRoomLogic.Current.GetRoomById(roomId);
|
| | | if (room != null)
|
| | | {
|
| | | //添加房间
|
| | | HdlRoomLogic.Current.AddDevice(room, device, true);
|
| | | }
|
| | | }
|
| | |
|
| | | #endregion
|
| | |
|
| | | #region ■ 设备枚举___________________________
|
| | |
|
| | | /// <summary>
|
| | | /// 虚拟设备枚举
|
| | | /// </summary>
|
| | | private enum VirtualDeviceEnum
|
| | | {
|
| | | A开合帘电机 = 1,
|
| | | A卷帘电机 = 2,
|
| | | A4按键面板 = 3,
|
| | | A3按键面板 = 4,
|
| | | A2按键面板 = 5,
|
| | | A简约4按键面板 = 7,
|
| | | A简约3按键面板 = 8,
|
| | | A简约2按键面板 = 9,
|
| | | A220pir传感器 = 10,
|
| | | A燃气传感器 = 11,
|
| | | A门窗磁传感器 = 12,
|
| | | A烟雾传感器 = 13,
|
| | | A红外传感器 = 14,
|
| | | A水浸传感器 = 15,
|
| | | A紧急按键 = 16,
|
| | | A3路继电器 = 17,
|
| | | A1路调光器 = 18,
|
| | | A空调网关 = 19,
|
| | | A空气开关 = 20,
|
| | | A智能门锁 = 21,
|
| | | A方悦单开双控面板 = 22,
|
| | | A方悦双开四控面板 = 23,
|
| | | A方悦四开八控面板 = 24,
|
| | | A方悦新风面板 = 25,
|
| | | A方悦新风小模块 = 26,
|
| | | A吸顶燃气传感器 = 27,
|
| | | }
|
| | |
|
| | | #endregion
|
| | |
|
| | | #region ■ 结构体_____________________________
|
| | |
|
| | | /// <summary>
|
| | | /// 添加设备的参数
|
| | | /// </summary>
|
| | | private class AddDevicePra
|
| | | {
|
| | | /// <summary>
|
| | | /// 设备类型
|
| | | /// </summary>
|
| | | public VirtualDeviceEnum DeviceType = VirtualDeviceEnum.A空气开关;
|
| | | /// <summary>
|
| | | /// 添加的设备个数(不是回路数)
|
| | | /// </summary>
|
| | | public int DeviceCount = 1;
|
| | | /// <summary>
|
| | | /// 将设备添加到的房间(不设置表示不添加到房间)
|
| | | /// </summary>
|
| | | public string RoomId = string.Empty;
|
| | | }
|
| | |
|
| | | #endregion
|
| | | }
|
| | | }
|
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Text; |
| | | using Shared.Common; |
| | | using ZigBee.Device; |
| | | |
| | | namespace Shared.Phone.UserCenter |
| | | { |
| | | /// <summary> |
| | | /// App体验账号的逻辑 |
| | | /// </summary> |
| | | public class HdlExperienceAccountLogic |
| | | { |
| | | #region ■ 变量声明___________________________ |
| | | |
| | | /// <summary> |
| | | /// App体验账号的逻辑 |
| | | /// </summary> |
| | | private static HdlExperienceAccountLogic m_Current = null; |
| | | /// <summary> |
| | | /// App体验账号的逻辑 |
| | | /// </summary> |
| | | public static HdlExperienceAccountLogic Current |
| | | { |
| | | get |
| | | { |
| | | if (m_Current == null) |
| | | { |
| | | m_Current = new HdlExperienceAccountLogic(); |
| | | } |
| | | return m_Current; |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 用来递增生成Mac用的 |
| | | /// </summary> |
| | | private int DeviceNumber = 0; |
| | | /// <summary> |
| | | /// 是否是游客体验 |
| | | /// </summary> |
| | | public bool IsExperience |
| | | { |
| | | get { return Config.Instance.Guid == "chushiGuid"; } |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region ■ 初始化_____________________________ |
| | | |
| | | /// <summary> |
| | | /// 初始化全部体验数据 |
| | | /// </summary> |
| | | public void InitAllExperienceData() |
| | | { |
| | | //初始化用户 |
| | | this.InitUserInfoData(); |
| | | //初始化住宅 |
| | | this.InitHomeData(); |
| | | //初始化楼层 |
| | | this.InitFloorData(); |
| | | //初始化房间 |
| | | this.InitRoomData(); |
| | | //初始化设备 |
| | | this.InitDeviceData(); |
| | | //初始化场景 |
| | | this.InitSceneData(); |
| | | //刷新左边刷新房间视图列表 |
| | | HdlRoomLogic.Current.RefreshRoomListView(); |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region ■ 初始化用户_________________________ |
| | | |
| | | /// <summary> |
| | | /// 初始化用户 |
| | | /// </summary> |
| | | private void InitUserInfoData() |
| | | { |
| | | UserCenterResourse.UserInfo = new UserInformation(); |
| | | UserCenterResourse.UserInfo.AuthorityNo = 1;//给他管理员称号 |
| | | UserCenterResourse.UserInfo.AuthorityText = Language.StringByID(R.MyInternationalizationString.Administrator); |
| | | //虚拟账号 |
| | | UserCenterResourse.UserInfo.UserName = Language.StringByID(R.MyInternationalizationString.uVirtualAccount); |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region ■ 初始化住宅_________________________ |
| | | |
| | | /// <summary> |
| | | /// 初始化住宅 |
| | | /// </summary> |
| | | private void InitHomeData() |
| | | { |
| | | //初始化住宅ID |
| | | string homeId = "abcdefghijklmn"; |
| | | //初始Guid |
| | | Config.Instance.Guid = "chushiGuid"; |
| | | var path = System.IO.Path.Combine(Shared.IO.FileUtils.RootPath, Config.Instance.Guid, homeId); |
| | | if (System.IO.Directory.Exists(path) == true) |
| | | { |
| | | //再次启动的时候,重新开始 |
| | | System.IO.Directory.Delete(path, true); |
| | | } |
| | | System.IO.Directory.CreateDirectory(path); |
| | | |
| | | //注意,这里不清空当前住宅列表,保留它之前的住宅列表 |
| | | |
| | | //创建临时住宅 |
| | | var house = new House() { Id = homeId, Name = Language.StringByID(R.MyInternationalizationString.uMyHome) }; |
| | | house.IsVirtually = true; |
| | | house.Save(false); |
| | | Config.Instance.HomeId = house.Id; |
| | | Config.Instance.Home = HdlResidenceLogic.Current.GetHouseByHouseId(house.Id); |
| | | |
| | | //预创建个人中心全部的文件夹 |
| | | HdlFileLogic.Current.CreatAllUserCenterDirectory(); |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region ■ 初始化楼层_________________________ |
| | | |
| | | /// <summary> |
| | | /// 初始化楼层 |
| | | /// </summary> |
| | | private void InitFloorData() |
| | | { |
| | | Config.Instance.Home.FloorDics = new Dictionary<string, string>(); |
| | | //Config.Instance.Home.FloorDics["floorKey1"] = "1F"; |
| | | //Config.Instance.Home.FloorDics["floorKey2"] = "2F"; |
| | | //Config.Instance.Home.FloorDics["floorKey3"] = "3F"; |
| | | //Config.Instance.Home.FloorDics["floorKey4"] = "4F"; |
| | | //Config.Instance.Home.FloorDics["floorKey5"] = "5F"; |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region ■ 初始化房间_________________________ |
| | | |
| | | /// <summary> |
| | | /// 获取房间样板列表 |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | private Dictionary<string, string> GetRoomSampleList() |
| | | { |
| | | var dicRoomName = new Dictionary<string, string>(); |
| | | //客厅 |
| | | dicRoomName["KeTing"] = Language.StringByID(R.MyInternationalizationString.uLivingRoom); |
| | | //阳台 |
| | | dicRoomName["YangTai"] = Language.StringByID(R.MyInternationalizationString.uBalcony); |
| | | //卧室 |
| | | dicRoomName["WoShi"] = Language.StringByID(R.MyInternationalizationString.uBedroom); |
| | | //玄关 |
| | | dicRoomName["XuanGuan"] = Language.StringByID(R.MyInternationalizationString.uVestibule); |
| | | //厨房 |
| | | dicRoomName["ChuFang"] = Language.StringByID(R.MyInternationalizationString.uKitchen); |
| | | //走廊 |
| | | dicRoomName["ZouLang"] = Language.StringByID(R.MyInternationalizationString.uCorridor); |
| | | |
| | | return dicRoomName; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 初始化房间 |
| | | /// </summary> |
| | | private void InitRoomData() |
| | | { |
| | | //先刷新容器 |
| | | HdlRoomLogic.Current.InitAllRoom(); |
| | | |
| | | //获取全部的楼层主键 |
| | | var listFloorKey = this.GetAllFloorKeys(); |
| | | var dicRoomName = this.GetRoomSampleList(); |
| | | |
| | | foreach (string floorKey in listFloorKey) |
| | | { |
| | | foreach (string roomId in dicRoomName.Keys) |
| | | { |
| | | //创建新房间 |
| | | var newRoom = new Room(); |
| | | newRoom.Id = floorKey + "_" + roomId; |
| | | newRoom.Name = dicRoomName[roomId]; |
| | | newRoom.BackgroundImage = "RoomIcon/0.jpg"; |
| | | newRoom.FloorId = floorKey; |
| | | HdlRoomLogic.Current.AddRoom(newRoom, false); |
| | | } |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 获取全部的楼层主键 |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | private List<string> GetAllFloorKeys() |
| | | { |
| | | var listKey = new List<string>(); |
| | | foreach (var strKey in Config.Instance.Home.FloorDics.Keys) |
| | | { |
| | | listKey.Add(strKey); |
| | | } |
| | | if (listKey.Count == 0) |
| | | { |
| | | listKey.Add(""); |
| | | } |
| | | return listKey; |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region ■ 初始化设备_________________________ |
| | | |
| | | /// <summary> |
| | | /// 设置需要创建的虚拟设备列表 |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | private List<AddDevicePra> GetVirtualDeviceList() |
| | | { |
| | | //floorKey1 _ KeTing YangTai WoShi XuanGuan ChuFang ZouLang |
| | | var list = new List<AddDevicePra>(); |
| | | //获取全部的楼层主键 |
| | | var listFloorKey = this.GetAllFloorKeys(); |
| | | foreach (var floorKey in listFloorKey) |
| | | { |
| | | //客厅 |
| | | list.Add(new AddDevicePra { DeviceType = VirtualDeviceEnum.A2按键面板, RoomId = floorKey + "_KeTing", DeviceCount = 1 }); |
| | | list.Add(new AddDevicePra { DeviceType = VirtualDeviceEnum.A3按键面板, RoomId = floorKey + "_KeTing", DeviceCount = 1 }); |
| | | list.Add(new AddDevicePra { DeviceType = VirtualDeviceEnum.A4按键面板, RoomId = floorKey + "_KeTing", DeviceCount = 2 }); |
| | | list.Add(new AddDevicePra { DeviceType = VirtualDeviceEnum.A空调网关, RoomId = floorKey + "_KeTing", DeviceCount = 1 }); |
| | | //list.Add(new AddDevicePra { DeviceType = VirtualDeviceEnum.A国标3路10A继电器小模块, RoomId = floorKey + "_KeTing", DeviceCount = 1 }); |
| | | |
| | | //阳台 |
| | | list.Add(new AddDevicePra { DeviceType = VirtualDeviceEnum.A220pir传感器, RoomId = floorKey + "_YangTai", DeviceCount = 1 }); |
| | | list.Add(new AddDevicePra { DeviceType = VirtualDeviceEnum.A卷帘电机, RoomId = floorKey + "_YangTai", DeviceCount = 1 }); |
| | | list.Add(new AddDevicePra { DeviceType = VirtualDeviceEnum.A开合帘电机, RoomId = floorKey + "_YangTai", DeviceCount = 1 }); |
| | | list.Add(new AddDevicePra { DeviceType = VirtualDeviceEnum.A2按键面板, RoomId = floorKey + "_YangTai", DeviceCount = 1 }); |
| | | |
| | | //卧室 |
| | | list.Add(new AddDevicePra { DeviceType = VirtualDeviceEnum.A1路调光器, RoomId = floorKey + "_WoShi", DeviceCount = 1 }); |
| | | list.Add(new AddDevicePra { DeviceType = VirtualDeviceEnum.A3路继电器, RoomId = floorKey + "_WoShi", DeviceCount = 1 }); |
| | | |
| | | //玄关 |
| | | list.Add(new AddDevicePra { DeviceType = VirtualDeviceEnum.A空气开关, RoomId = floorKey + "_XuanGuan", DeviceCount = 1 }); |
| | | list.Add(new AddDevicePra { DeviceType = VirtualDeviceEnum.A1路调光器, RoomId = floorKey + "_XuanGuan", DeviceCount = 1 }); |
| | | list.Add(new AddDevicePra { DeviceType = VirtualDeviceEnum.A门窗磁传感器, RoomId = floorKey + "_XuanGuan", DeviceCount = 1 }); |
| | | |
| | | //厨房 |
| | | list.Add(new AddDevicePra { DeviceType = VirtualDeviceEnum.A4按键面板, RoomId = floorKey + "_ChuFang", DeviceCount = 1 }); |
| | | list.Add(new AddDevicePra { DeviceType = VirtualDeviceEnum.A水浸传感器, RoomId = floorKey + "_ChuFang", DeviceCount = 1 }); |
| | | list.Add(new AddDevicePra { DeviceType = VirtualDeviceEnum.A烟雾传感器, RoomId = floorKey + "_ChuFang", DeviceCount = 1 }); |
| | | list.Add(new AddDevicePra { DeviceType = VirtualDeviceEnum.A燃气传感器, RoomId = floorKey + "_ChuFang", DeviceCount = 1 }); |
| | | list.Add(new AddDevicePra { DeviceType = VirtualDeviceEnum.A吸顶燃气传感器, RoomId = floorKey + "_ChuFang", DeviceCount = 1 }); |
| | | list.Add(new AddDevicePra { DeviceType = VirtualDeviceEnum.A国标3路10A继电器小模块, RoomId = floorKey + "_ChuFang", DeviceCount = 1 }); |
| | | |
| | | //走廊 |
| | | list.Add(new AddDevicePra { DeviceType = VirtualDeviceEnum.A4按键面板, RoomId = floorKey + "_ZouLang", DeviceCount = 1 }); |
| | | list.Add(new AddDevicePra { DeviceType = VirtualDeviceEnum.A温湿度传感器, RoomId = floorKey + "_ZouLang", DeviceCount = 1 }); |
| | | } |
| | | return list; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 初始化设备 |
| | | /// </summary> |
| | | private void InitDeviceData() |
| | | { |
| | | //先刷新容器 |
| | | LocalDevice.Current.ReFreshByLocal(); |
| | | //顺便也整一下网关(有可能它是从实体账号转为虚拟时,没有清空) |
| | | HdlGatewayLogic.Current.ReFreshByLocal(); |
| | | HdlGatewayLogic.Current.RefreshAppOldSelectGatewayId(); |
| | | |
| | | Type thisType = m_Current.GetType(); |
| | | //获取需要创建的虚拟设备列表 |
| | | var list = this.GetVirtualDeviceList(); |
| | | foreach (var data in list) |
| | | { |
| | | string methordName = "Zigbee" + data.DeviceType.ToString().Substring(1); |
| | | //反射指定的函数 |
| | | var myMethod = thisType.GetMethod(methordName); |
| | | myMethod.Invoke(this, new object[] { data.DeviceCount, data.RoomId }); |
| | | } |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region ■ 初始化场景_________________________ |
| | | |
| | | /// <summary> |
| | | /// 初始化场景 |
| | | /// </summary> |
| | | private void InitSceneData() |
| | | { |
| | | //刷新容器 |
| | | HdlSceneLogic.Current.ReFreshByLocal(); |
| | | |
| | | //获取全部的楼层主键 |
| | | var listFloorKey = this.GetAllFloorKeys(); |
| | | //获取全部的房间模板列表 |
| | | var dicRoom = this.GetRoomSampleList(); |
| | | |
| | | //floorKey1 _ KeTing YangTai WoShi XuanGuan ChuFang ZouLang |
| | | int sceneIdNo = 1; |
| | | //对每一个楼层 |
| | | foreach (var floorKey in listFloorKey) |
| | | { |
| | | //对每一个房间 |
| | | foreach (var strKey in dicRoom.Keys) |
| | | { |
| | | var room = HdlRoomLogic.Current.GetRoomById(floorKey + "_" + strKey); |
| | | if (room == null) |
| | | { |
| | | continue; |
| | | } |
| | | //灯全开 |
| | | var listAdjust1 = this.InitVirtualSceneAdjustList(room, 1); |
| | | var sceneName = Language.StringByID(R.MyInternationalizationString.uAllLightOpen); |
| | | var scene = HdlSceneLogic.Current.AddVirtualScene(sceneIdNo, sceneName, listAdjust1); |
| | | sceneIdNo++; |
| | | HdlSceneLogic.Current.AddSceneToRoom(room, scene); |
| | | |
| | | //灯全关 |
| | | var listAdjust2 = this.InitVirtualSceneAdjustList(room, 0); |
| | | var sceneName2 = Language.StringByID(R.MyInternationalizationString.uAllLightClose); |
| | | var scene2 = HdlSceneLogic.Current.AddVirtualScene(sceneIdNo, sceneName2, listAdjust2); |
| | | sceneIdNo++; |
| | | HdlSceneLogic.Current.AddSceneToRoom(room, scene2); |
| | | } |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 初始化虚拟场景的执行目标(statu 0:关 1:开) |
| | | /// </summary> |
| | | /// <param name="i_room"></param> |
| | | /// <param name="statu"></param> |
| | | /// <returns></returns> |
| | | private List<Scene.DeviceListData> InitVirtualSceneAdjustList(Room i_room, int statu) |
| | | { |
| | | var listBind = new List<Scene.DeviceListData>(); |
| | | foreach (var mainKey in i_room.ListDevice) |
| | | { |
| | | var device = LocalDevice.Current.GetDevice(mainKey); |
| | | if (device == null) { continue; } |
| | | //只要继电器和灯 |
| | | if (device.Type == DeviceType.OnOffOutput |
| | | || device.Type == DeviceType.DimmableLight) |
| | | { |
| | | var data = new Scene.DeviceListData(); |
| | | data.Type = 0; |
| | | data.DeviceAddr = device.DeviceAddr; |
| | | data.Epoint = device.DeviceEpoint; |
| | | data.TaskList.Add(new Safeguard.TaskListInfo() { TaskType = 1, Data1 = statu }); |
| | | listBind.Add(data); |
| | | } |
| | | } |
| | | return listBind; |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region ■ 创建虚拟设备列表___________________ |
| | | |
| | | public void Zigbee开合帘电机(int i_DeviceCount, string i_RoomId) |
| | | { |
| | | for (int i = 0; i < i_DeviceCount; i++) |
| | | { |
| | | var device = new Rollershade() { DeviceAddr = "DeviceAddr" + this.DeviceNumber, DeviceEpoint = 1 }; |
| | | device.WcdType = 4; |
| | | //设置设备的基本信息 |
| | | this.SetBaseDataToDevice(device, 100, 100, "MWM65B-ZB.20", i_RoomId); |
| | | this.DeviceNumber++; |
| | | } |
| | | } |
| | | |
| | | public void Zigbee卷帘电机(int i_DeviceCount, string i_RoomId) |
| | | { |
| | | for (int i = 0; i < i_DeviceCount; i++) |
| | | { |
| | | var device = new Rollershade() { DeviceAddr = "DeviceAddr" + this.DeviceNumber, DeviceEpoint = 1 }; |
| | | device.WcdType = 0; |
| | | //设置设备的基本信息 |
| | | this.SetBaseDataToDevice(device, 101, 101, "MVSM35B-ZB.20", i_RoomId); |
| | | this.DeviceNumber++; |
| | | } |
| | | } |
| | | |
| | | public void Zigbee4按键面板(int i_DeviceCount, string i_RoomId) |
| | | { |
| | | for (int i = 0; i < i_DeviceCount; i++) |
| | | { |
| | | //4个干接点 |
| | | for (int j = 1; j <= 4; j++) |
| | | { |
| | | var device = new Panel() { DeviceAddr = "DeviceAddr" + this.DeviceNumber, DeviceEpoint = j }; |
| | | //设置设备的基本信息 |
| | | this.SetBaseDataToDevice(device, 200, 200, "MPT4/R4-ZB.18", i_RoomId); |
| | | } |
| | | //4个继电器 |
| | | for (int j = 5; j <= 8; j++) |
| | | { |
| | | var device = new ToggleLight() { DeviceAddr = "DeviceAddr" + this.DeviceNumber, DeviceEpoint = j }; |
| | | device.DfunctionType = DeviceFunctionType.A灯光; |
| | | //设置设备的基本信息 |
| | | this.SetBaseDataToDevice(device, 200, 200, "MPT4/R4-ZB.18", i_RoomId); |
| | | device.DeviceEpointName = Language.StringByID(R.MyInternationalizationString.uLight) + (j - 4); |
| | | } |
| | | //1温度探头 |
| | | var device2 = new TemperatureSensor() { DeviceAddr = "DeviceAddr" + this.DeviceNumber, DeviceEpoint = 9 }; |
| | | device2.SensorDiv = 1; |
| | | //设置设备的基本信息 |
| | | this.SetBaseDataToDevice(device2, 200, 200, "MPT4/R4-ZB.18", i_RoomId); |
| | | |
| | | this.DeviceNumber++; |
| | | } |
| | | } |
| | | |
| | | public void Zigbee3按键面板(int i_DeviceCount, string i_RoomId) |
| | | { |
| | | for (int i = 0; i < i_DeviceCount; i++) |
| | | { |
| | | //3个干接点 |
| | | for (int j = 1; j <= 3; j++) |
| | | { |
| | | var device = new Panel() { DeviceAddr = "DeviceAddr" + this.DeviceNumber, DeviceEpoint = j }; |
| | | //设置设备的基本信息 |
| | | this.SetBaseDataToDevice(device, 201, 201, "MPT3/R3-ZB.18", i_RoomId); |
| | | } |
| | | //3个继电器 |
| | | for (int j = 4; j <= 6; j++) |
| | | { |
| | | var device = new ToggleLight() { DeviceAddr = "DeviceAddr" + this.DeviceNumber, DeviceEpoint = j }; |
| | | device.DfunctionType = DeviceFunctionType.A灯光; |
| | | //设置设备的基本信息 |
| | | this.SetBaseDataToDevice(device, 201, 201, "MPT3/R3-ZB.18", i_RoomId); |
| | | device.DeviceEpointName = Language.StringByID(R.MyInternationalizationString.uLight) + (j - 3); |
| | | } |
| | | //1温度探头 |
| | | var device2 = new TemperatureSensor() { DeviceAddr = "DeviceAddr" + this.DeviceNumber, DeviceEpoint = 7 }; |
| | | device2.SensorDiv = 1; |
| | | //设置设备的基本信息 |
| | | this.SetBaseDataToDevice(device2, 201, 201, "MPT3/R3-ZB.18", i_RoomId); |
| | | |
| | | this.DeviceNumber++; |
| | | } |
| | | } |
| | | |
| | | public void Zigbee2按键面板(int i_DeviceCount, string i_RoomId) |
| | | { |
| | | for (int i = 0; i < i_DeviceCount; i++) |
| | | { |
| | | //2个干接点 |
| | | for (int j = 1; j <= 2; j++) |
| | | { |
| | | var device = new Panel() { DeviceAddr = "DeviceAddr" + this.DeviceNumber, DeviceEpoint = j }; |
| | | //设置设备的基本信息 |
| | | this.SetBaseDataToDevice(device, 202, 202, "MPT2/R2-ZB.18", i_RoomId); |
| | | } |
| | | //2个继电器 |
| | | for (int j = 3; j <= 4; j++) |
| | | { |
| | | var device = new ToggleLight() { DeviceAddr = "DeviceAddr" + this.DeviceNumber, DeviceEpoint = j }; |
| | | device.DfunctionType = DeviceFunctionType.A灯光; |
| | | //设置设备的基本信息 |
| | | this.SetBaseDataToDevice(device, 202, 202, "MPT2/R2-ZB.18", i_RoomId); |
| | | device.DeviceEpointName = Language.StringByID(R.MyInternationalizationString.uLight) + (j - 2); |
| | | } |
| | | //1温度探头 |
| | | var device2 = new TemperatureSensor() { DeviceAddr = "DeviceAddr" + this.DeviceNumber, DeviceEpoint = 5 }; |
| | | device2.SensorDiv = 1; |
| | | //设置设备的基本信息 |
| | | this.SetBaseDataToDevice(device2, 202, 202, "MPT2/R2-ZB.18", i_RoomId); |
| | | |
| | | this.DeviceNumber++; |
| | | } |
| | | } |
| | | |
| | | public void Zigbee简约4按键面板(int i_DeviceCount, string i_RoomId) |
| | | { |
| | | for (int i = 0; i < i_DeviceCount; i++) |
| | | { |
| | | //4个干接点 |
| | | for (int j = 1; j <= 4; j++) |
| | | { |
| | | var device = new Panel() { DeviceAddr = "DeviceAddr" + this.DeviceNumber, DeviceEpoint = j }; |
| | | //设置设备的基本信息 |
| | | this.SetBaseDataToDevice(device, 220, 220, "MPT4R4L/S-ZB.18", i_RoomId); |
| | | } |
| | | //4个继电器 |
| | | for (int j = 5; j <= 8; j++) |
| | | { |
| | | var device = new ToggleLight() { DeviceAddr = "DeviceAddr" + this.DeviceNumber, DeviceEpoint = j }; |
| | | device.DfunctionType = DeviceFunctionType.A灯光; |
| | | //设置设备的基本信息 |
| | | this.SetBaseDataToDevice(device, 220, 220, "MPT4R4L/S-ZB.18", i_RoomId); |
| | | device.DeviceEpointName = Language.StringByID(R.MyInternationalizationString.uLight) + (j - 4); |
| | | } |
| | | //1温度探头 |
| | | var device2 = new TemperatureSensor() { DeviceAddr = "DeviceAddr" + this.DeviceNumber, DeviceEpoint = 9 }; |
| | | device2.SensorDiv = 1; |
| | | //设置设备的基本信息 |
| | | this.SetBaseDataToDevice(device2, 220, 220, "MPT4R4L/S-ZB.18", i_RoomId); |
| | | |
| | | this.DeviceNumber++; |
| | | } |
| | | } |
| | | |
| | | public void Zigbee简约3按键面板(int i_DeviceCount, string i_RoomId) |
| | | { |
| | | for (int i = 0; i < i_DeviceCount; i++) |
| | | { |
| | | //3个干接点 |
| | | for (int j = 1; j <= 3; j++) |
| | | { |
| | | var device = new Panel() { DeviceAddr = "DeviceAddr" + this.DeviceNumber, DeviceEpoint = j }; |
| | | //设置设备的基本信息 |
| | | this.SetBaseDataToDevice(device, 221, 221, "MPT3R3L/S-ZB.18", i_RoomId); |
| | | } |
| | | //3个继电器 |
| | | for (int j = 4; j <= 6; j++) |
| | | { |
| | | var device = new ToggleLight() { DeviceAddr = "DeviceAddr" + this.DeviceNumber, DeviceEpoint = j }; |
| | | device.DfunctionType = DeviceFunctionType.A灯光; |
| | | //设置设备的基本信息 |
| | | this.SetBaseDataToDevice(device, 221, 221, "MPT3R3L/S-ZB.18", i_RoomId); |
| | | device.DeviceEpointName = Language.StringByID(R.MyInternationalizationString.uLight) + (j - 3); |
| | | } |
| | | //1温度探头 |
| | | var device2 = new TemperatureSensor() { DeviceAddr = "DeviceAddr" + this.DeviceNumber, DeviceEpoint = 7 }; |
| | | device2.SensorDiv = 1; |
| | | //设置设备的基本信息 |
| | | this.SetBaseDataToDevice(device2, 221, 221, "MPT3R3L/S-ZB.18", i_RoomId); |
| | | |
| | | this.DeviceNumber++; |
| | | } |
| | | } |
| | | |
| | | public void Zigbee简约2按键面板(int i_DeviceCount, string i_RoomId) |
| | | { |
| | | for (int i = 0; i < i_DeviceCount; i++) |
| | | { |
| | | //2个干接点 |
| | | for (int j = 1; j <= 2; j++) |
| | | { |
| | | var device = new Panel() { DeviceAddr = "DeviceAddr" + this.DeviceNumber, DeviceEpoint = j }; |
| | | //设置设备的基本信息 |
| | | this.SetBaseDataToDevice(device, 222, 222, "MPT2R2L/S-ZB.18", i_RoomId); |
| | | } |
| | | //2个继电器 |
| | | for (int j = 3; j <= 4; j++) |
| | | { |
| | | var device = new ToggleLight() { DeviceAddr = "DeviceAddr" + this.DeviceNumber, DeviceEpoint = j }; |
| | | device.DfunctionType = DeviceFunctionType.A灯光; |
| | | //设置设备的基本信息 |
| | | this.SetBaseDataToDevice(device, 222, 222, "MPT2R2L/S-ZB.18", i_RoomId); |
| | | device.DeviceEpointName = Language.StringByID(R.MyInternationalizationString.uLight) + (j - 2); |
| | | } |
| | | //1温度探头 |
| | | var device2 = new TemperatureSensor() { DeviceAddr = "DeviceAddr" + this.DeviceNumber, DeviceEpoint = 5 }; |
| | | device2.SensorDiv = 1; |
| | | //设置设备的基本信息 |
| | | this.SetBaseDataToDevice(device2, 222, 222, "MPT2R2L/S-ZB.18", i_RoomId); |
| | | |
| | | this.DeviceNumber++; |
| | | } |
| | | } |
| | | |
| | | public void Zigbee220pir传感器(int i_DeviceCount, string i_RoomId) |
| | | { |
| | | for (int i = 0; i < i_DeviceCount; i++) |
| | | { |
| | | //1个传感器 |
| | | var device = new IASZone() { DeviceAddr = "DeviceAddr" + this.DeviceNumber, DeviceEpoint = 1 }; |
| | | device.IasDeviceType = 13; |
| | | device.DeviceID = 1026; |
| | | //设置设备的基本信息 |
| | | this.SetBaseDataToDevice(device, 1200, 1200, "MSPIR01-ZB.10", i_RoomId); |
| | | |
| | | //1个继电器 |
| | | var device2 = new ToggleLight() { DeviceAddr = "DeviceAddr" + this.DeviceNumber, DeviceEpoint = 2 }; |
| | | device2.DfunctionType = DeviceFunctionType.A灯光; |
| | | //设置设备的基本信息 |
| | | this.SetBaseDataToDevice(device2, 1200, 1200, "MSPIR01-ZB.10", i_RoomId); |
| | | device2.DeviceEpointName = Language.StringByID(R.MyInternationalizationString.uLight) + 1; |
| | | |
| | | this.DeviceNumber++; |
| | | } |
| | | } |
| | | |
| | | public void Zigbee燃气传感器(int i_DeviceCount, string i_RoomId) |
| | | { |
| | | for (int i = 0; i < i_DeviceCount; i++) |
| | | { |
| | | var device = new IASZone() { DeviceAddr = "DeviceAddr" + this.DeviceNumber, DeviceEpoint = 1 }; |
| | | device.IasDeviceType = 43; |
| | | device.DeviceID = 1026; |
| | | //设置设备的基本信息 |
| | | this.SetBaseDataToDevice(device, 1300, 1300, "MSG01/M-ZB.10", i_RoomId); |
| | | |
| | | this.DeviceNumber++; |
| | | } |
| | | } |
| | | |
| | | public void Zigbee吸顶燃气传感器(int i_DeviceCount, string i_RoomId) |
| | | { |
| | | for (int i = 0; i < i_DeviceCount; i++) |
| | | { |
| | | var device = new IASZone() { DeviceAddr = "DeviceAddr" + this.DeviceNumber, DeviceEpoint = 1 }; |
| | | device.IasDeviceType = 43; |
| | | device.DeviceID = 1026; |
| | | //设置设备的基本信息 |
| | | this.SetBaseDataToDevice(device, 1300, 1300, "MGCD01/ZB.10", i_RoomId); |
| | | |
| | | this.DeviceNumber++; |
| | | } |
| | | } |
| | | |
| | | public void Zigbee门窗磁传感器(int i_DeviceCount, string i_RoomId) |
| | | { |
| | | for (int i = 0; i < i_DeviceCount; i++) |
| | | { |
| | | var device = new IASZone() { DeviceAddr = "DeviceAddr" + this.DeviceNumber, DeviceEpoint = 1 }; |
| | | device.IasDeviceType = 21; |
| | | device.DeviceID = 1026; |
| | | //设置设备的基本信息 |
| | | this.SetBaseDataToDevice(device, 1301, 1301, "MSDC01/M-ZB.10", i_RoomId); |
| | | |
| | | this.DeviceNumber++; |
| | | } |
| | | } |
| | | |
| | | public void Zigbee烟雾传感器(int i_DeviceCount, string i_RoomId) |
| | | { |
| | | for (int i = 0; i < i_DeviceCount; i++) |
| | | { |
| | | var device = new IASZone() { DeviceAddr = "DeviceAddr" + this.DeviceNumber, DeviceEpoint = 1 }; |
| | | device.IasDeviceType = 40; |
| | | device.DeviceID = 1026; |
| | | //设置设备的基本信息 |
| | | this.SetBaseDataToDevice(device, 1301, 1301, "MSS01/M-ZB.10", i_RoomId); |
| | | |
| | | this.DeviceNumber++; |
| | | } |
| | | } |
| | | |
| | | public void Zigbee红外传感器(int i_DeviceCount, string i_RoomId) |
| | | { |
| | | for (int i = 0; i < i_DeviceCount; i++) |
| | | { |
| | | var device = new IASZone() { DeviceAddr = "DeviceAddr" + this.DeviceNumber, DeviceEpoint = 1 }; |
| | | device.IasDeviceType = 13; |
| | | device.DeviceID = 1026; |
| | | //设置设备的基本信息 |
| | | this.SetBaseDataToDevice(device, 1303, 1303, "MSPIR01/M-ZB.10", i_RoomId); |
| | | |
| | | this.DeviceNumber++; |
| | | } |
| | | } |
| | | |
| | | public void Zigbee水浸传感器(int i_DeviceCount, string i_RoomId) |
| | | { |
| | | for (int i = 0; i < i_DeviceCount; i++) |
| | | { |
| | | var device = new IASZone() { DeviceAddr = "DeviceAddr" + this.DeviceNumber, DeviceEpoint = 1 }; |
| | | device.IasDeviceType = 42; |
| | | device.DeviceID = 1026; |
| | | //设置设备的基本信息 |
| | | this.SetBaseDataToDevice(device, 1304, 1304, "MSW01/M-ZB.10", i_RoomId); |
| | | |
| | | this.DeviceNumber++; |
| | | } |
| | | } |
| | | |
| | | public void Zigbee紧急按键(int i_DeviceCount, string i_RoomId) |
| | | { |
| | | for (int i = 0; i < i_DeviceCount; i++) |
| | | { |
| | | var device = new IASZone() { DeviceAddr = "DeviceAddr" + this.DeviceNumber, DeviceEpoint = 1 }; |
| | | device.IasDeviceType = 44; |
| | | device.DeviceID = 1026; |
| | | //设置设备的基本信息 |
| | | this.SetBaseDataToDevice(device, 1305, 1305, "MBU01/M-ZB.10", i_RoomId); |
| | | |
| | | this.DeviceNumber++; |
| | | } |
| | | } |
| | | |
| | | public void Zigbee3路继电器(int i_DeviceCount, string i_RoomId) |
| | | { |
| | | for (int i = 0; i < i_DeviceCount; i++) |
| | | { |
| | | //3个继电器 |
| | | for (int j = 1; j <= 3; j++) |
| | | { |
| | | var device = new ToggleLight() { DeviceAddr = "DeviceAddr" + this.DeviceNumber, DeviceEpoint = j }; |
| | | device.DfunctionType = DeviceFunctionType.A灯光; |
| | | //设置设备的基本信息 |
| | | this.SetBaseDataToDevice(device, 2300, 2300, "MPR0310-ZB.10", i_RoomId); |
| | | device.DeviceEpointName = Language.StringByID(R.MyInternationalizationString.uLight) + j; |
| | | } |
| | | //7个干接点 |
| | | for (int j = 4; j <= 10; j++) |
| | | { |
| | | var device = new Panel() { DeviceAddr = "DeviceAddr" + this.DeviceNumber, DeviceEpoint = j }; |
| | | //设置设备的基本信息 |
| | | this.SetBaseDataToDevice(device, 2300, 2300, "MPR0310-ZB.10", i_RoomId); |
| | | } |
| | | |
| | | this.DeviceNumber++; |
| | | } |
| | | } |
| | | |
| | | public void Zigbee1路调光器(int i_DeviceCount, string i_RoomId) |
| | | { |
| | | for (int i = 0; i < i_DeviceCount; i++) |
| | | { |
| | | //7个干接点 |
| | | for (int j = 1; j <= 7; j++) |
| | | { |
| | | var device = new Panel() { DeviceAddr = "DeviceAddr" + this.DeviceNumber, DeviceEpoint = j }; |
| | | //设置设备的基本信息 |
| | | this.SetBaseDataToDevice(device, 2300, 2300, "MPD0101-ZB.10", i_RoomId); |
| | | } |
| | | |
| | | //1个调光器 |
| | | var device2 = new DimmableLight() { DeviceAddr = "DeviceAddr" + this.DeviceNumber, DeviceEpoint = 8 }; |
| | | device2.DfunctionType = DeviceFunctionType.A灯光; |
| | | //设置设备的基本信息 |
| | | this.SetBaseDataToDevice(device2, 2300, 2300, "MPD0101-ZB.10", i_RoomId); |
| | | device2.DeviceEpointName = Language.StringByID(R.MyInternationalizationString.uLight) + 1; |
| | | |
| | | |
| | | this.DeviceNumber++; |
| | | } |
| | | } |
| | | |
| | | public void Zigbee空调网关(int i_DeviceCount, string i_RoomId) |
| | | { |
| | | var device2 = new OTADevice() { DeviceAddr = "DeviceAddr" + this.DeviceNumber, DeviceEpoint = 200 }; |
| | | //设置设备的基本信息 |
| | | this.SetBaseDataToDevice(device2, 3600, 3600, "MAC/GW-ZB.10", i_RoomId); |
| | | this.DeviceNumber++; |
| | | return; |
| | | for (int i = 0; i < i_DeviceCount; i++) |
| | | { |
| | | //10个空调应该可以了 |
| | | for (int j = 1; j <= 10; j++) |
| | | { |
| | | var device = new AC() { DeviceAddr = "DeviceAddr" + this.DeviceNumber, DeviceEpoint = j }; |
| | | //室温默认26℃ |
| | | device.currentLocalTemperature = 26; |
| | | device.currentCoolingSetpoint = 26; |
| | | device.currentHeatingSetpoint = 26; |
| | | device.currentAutoSetpoint = 26; |
| | | //设置设备的基本信息 |
| | | this.SetBaseDataToDevice(device, 3600, 3600, "MAC/GW-ZB.10", i_RoomId); |
| | | } |
| | | this.DeviceNumber++; |
| | | } |
| | | } |
| | | |
| | | public void Zigbee空气开关(int i_DeviceCount, string i_RoomId) |
| | | { |
| | | for (int i = 0; i < i_DeviceCount; i++) |
| | | { |
| | | var device = new AirSwitch() { DeviceAddr = "DeviceAddr" + this.DeviceNumber, DeviceEpoint = 1 }; |
| | | //设置设备的基本信息 |
| | | this.SetBaseDataToDevice(device, 4100, 4100, "MBCI01-ZB.10", i_RoomId); |
| | | device.DfunctionType = DeviceFunctionType.A开关; |
| | | |
| | | this.DeviceNumber++; |
| | | } |
| | | } |
| | | |
| | | public void Zigbee智能门锁(int i_DeviceCount, string i_RoomId) |
| | | { |
| | | for (int i = 0; i < i_DeviceCount; i++) |
| | | { |
| | | var device = new ZigBee.Device.DoorLock() { DeviceAddr = "DeviceAddr" + this.DeviceNumber, DeviceEpoint = 1 }; |
| | | //设置设备的基本信息 |
| | | this.SetBaseDataToDevice(device, 2800, 2800, "S-one", i_RoomId); |
| | | device.DfunctionType = DeviceFunctionType.A开关; |
| | | |
| | | this.DeviceNumber++; |
| | | } |
| | | } |
| | | |
| | | public void Zigbee方悦单开双控面板(int i_DeviceCount, string i_RoomId) |
| | | { |
| | | for (int i = 0; i < i_DeviceCount; i++) |
| | | { |
| | | //2个干接点 |
| | | for (int j = 1; j <= 2; j++) |
| | | { |
| | | var device = new Panel() { DeviceAddr = "DeviceAddr" + this.DeviceNumber, DeviceEpoint = j }; |
| | | //设置设备的基本信息 |
| | | this.SetBaseDataToDevice(device, 240, 240, "MP2B/TILE-ZB.18", i_RoomId); |
| | | } |
| | | //1个继电器 |
| | | for (int j = 3; j <= 3; j++) |
| | | { |
| | | var device = new ToggleLight() { DeviceAddr = "DeviceAddr" + this.DeviceNumber, DeviceEpoint = j }; |
| | | device.DfunctionType = DeviceFunctionType.A灯光; |
| | | //设置设备的基本信息 |
| | | this.SetBaseDataToDevice(device, 240, 240, "MP2B/TILE-ZB.18", i_RoomId); |
| | | device.DeviceEpointName = Language.StringByID(R.MyInternationalizationString.uLight) + (j - 2); |
| | | } |
| | | //1温度探头 |
| | | var device2 = new TemperatureSensor() { DeviceAddr = "DeviceAddr" + this.DeviceNumber, DeviceEpoint = 4 }; |
| | | device2.SensorDiv = 1; |
| | | //设置设备的基本信息 |
| | | this.SetBaseDataToDevice(device2, 240, 240, "MP2B/TILE-ZB.18", i_RoomId); |
| | | |
| | | this.DeviceNumber++; |
| | | } |
| | | } |
| | | |
| | | public void Zigbee方悦双开四控面板(int i_DeviceCount, string i_RoomId) |
| | | { |
| | | for (int i = 0; i < i_DeviceCount; i++) |
| | | { |
| | | //4个干接点 |
| | | for (int j = 1; j <= 4; j++) |
| | | { |
| | | var device = new Panel() { DeviceAddr = "DeviceAddr" + this.DeviceNumber, DeviceEpoint = j }; |
| | | //设置设备的基本信息 |
| | | this.SetBaseDataToDevice(device, 241, 241, "MP4B/TILE-ZB.18", i_RoomId); |
| | | } |
| | | //2个继电器 |
| | | for (int j = 5; j <= 6; j++) |
| | | { |
| | | var device = new ToggleLight() { DeviceAddr = "DeviceAddr" + this.DeviceNumber, DeviceEpoint = j }; |
| | | device.DfunctionType = DeviceFunctionType.A灯光; |
| | | //设置设备的基本信息 |
| | | this.SetBaseDataToDevice(device, 241, 241, "MP4B/TILE-ZB.18", i_RoomId); |
| | | device.DeviceEpointName = Language.StringByID(R.MyInternationalizationString.uLight) + (j - 4); |
| | | } |
| | | //1温度探头 |
| | | var device2 = new TemperatureSensor() { DeviceAddr = "DeviceAddr" + this.DeviceNumber, DeviceEpoint = 7 }; |
| | | device2.SensorDiv = 1; |
| | | //设置设备的基本信息 |
| | | this.SetBaseDataToDevice(device2, 241, 241, "MP4B/TILE-ZB.18", i_RoomId); |
| | | |
| | | this.DeviceNumber++; |
| | | } |
| | | } |
| | | |
| | | public void Zigbee方悦四开八控面板(int i_DeviceCount, string i_RoomId) |
| | | { |
| | | for (int i = 0; i < i_DeviceCount; i++) |
| | | { |
| | | //8个干接点 |
| | | for (int j = 1; j <= 8; j++) |
| | | { |
| | | var device = new Panel() { DeviceAddr = "DeviceAddr" + this.DeviceNumber, DeviceEpoint = j }; |
| | | //设置设备的基本信息 |
| | | this.SetBaseDataToDevice(device, 242, 242, "MP8B/TILE-ZB.18", i_RoomId); |
| | | } |
| | | //4个继电器 |
| | | for (int j = 9; j <= 12; j++) |
| | | { |
| | | var device = new ToggleLight() { DeviceAddr = "DeviceAddr" + this.DeviceNumber, DeviceEpoint = j }; |
| | | device.DfunctionType = DeviceFunctionType.A灯光; |
| | | //设置设备的基本信息 |
| | | this.SetBaseDataToDevice(device, 242, 242, "MP8B/TILE-ZB.18", i_RoomId); |
| | | device.DeviceEpointName = Language.StringByID(R.MyInternationalizationString.uLight) + (j - 8); |
| | | } |
| | | //1温度探头 |
| | | var device2 = new TemperatureSensor() { DeviceAddr = "DeviceAddr" + this.DeviceNumber, DeviceEpoint = 13 }; |
| | | device2.SensorDiv = 1; |
| | | //设置设备的基本信息 |
| | | this.SetBaseDataToDevice(device2, 242, 242, "MP8B/TILE-ZB.18", i_RoomId); |
| | | |
| | | this.DeviceNumber++; |
| | | } |
| | | } |
| | | |
| | | public void Zigbee方悦新风面板(int i_DeviceCount, string i_RoomId) |
| | | { |
| | | for (int i = 0; i < i_DeviceCount; i++) |
| | | { |
| | | //1新风 |
| | | var device = new FreshAir() { DeviceAddr = "DeviceAddr" + this.DeviceNumber, DeviceEpoint = 1 }; |
| | | //设置设备的基本信息 |
| | | this.SetBaseDataToDevice(device, 250, 250, "MPFA/TILE-ZB.18", i_RoomId); |
| | | |
| | | //1温度探头 |
| | | var device2 = new TemperatureSensor() { DeviceAddr = "DeviceAddr" + this.DeviceNumber, DeviceEpoint = 2 }; |
| | | device2.SensorDiv = 1; |
| | | //设置设备的基本信息 |
| | | this.SetBaseDataToDevice(device2, 250, 250, "MPFA/TILE-ZB.18", i_RoomId); |
| | | |
| | | this.DeviceNumber++; |
| | | } |
| | | } |
| | | |
| | | public void Zigbee方悦新风小模块(int i_DeviceCount, string i_RoomId) |
| | | { |
| | | for (int i = 0; i < i_DeviceCount; i++) |
| | | { |
| | | //1新风 |
| | | var device = new FreshAir() { DeviceAddr = "DeviceAddr" + this.DeviceNumber, DeviceEpoint = 1 }; |
| | | //设置设备的基本信息 |
| | | this.SetBaseDataToDevice(device, 2310, 2310, "MFA01-ZB.10", i_RoomId); |
| | | |
| | | this.DeviceNumber++; |
| | | } |
| | | } |
| | | |
| | | public void Zigbee国标3路10A继电器小模块(int i_DeviceCount, string i_RoomId) |
| | | { |
| | | for (int i = 0; i < i_DeviceCount; i++) |
| | | { |
| | | //4个干接点 |
| | | for (int j = 1; j <= 4; j++) |
| | | { |
| | | var device = new Panel() { DeviceAddr = "DeviceAddr" + this.DeviceNumber, DeviceEpoint = j }; |
| | | //设置设备的基本信息 |
| | | this.SetBaseDataToDevice(device, 2000, 2000, "MLR0310-ZB.20", i_RoomId); |
| | | } |
| | | //3个继电器 |
| | | for (int j = 5; j <= 7; j++) |
| | | { |
| | | var device = new ToggleLight() { DeviceAddr = "DeviceAddr" + this.DeviceNumber, DeviceEpoint = j }; |
| | | device.DfunctionType = DeviceFunctionType.A灯光; |
| | | //设置设备的基本信息 |
| | | this.SetBaseDataToDevice(device, 2000, 2000, "MLR0310-ZB.20", i_RoomId); |
| | | device.DeviceEpointName = Language.StringByID(R.MyInternationalizationString.uLight) + (j - 4); |
| | | } |
| | | |
| | | this.DeviceNumber++; |
| | | } |
| | | } |
| | | |
| | | public void Zigbee温湿度传感器(int i_DeviceCount, string i_RoomId) |
| | | { |
| | | for (int i = 0; i < i_DeviceCount; i++) |
| | | { |
| | | //湿度 |
| | | var device1 = new TemperatureSensor() { DeviceAddr = "DeviceAddr" + this.DeviceNumber, DeviceEpoint = 1, SensorDiv = 2 }; |
| | | //设置设备的基本信息 |
| | | this.SetBaseDataToDevice(device1, 1308, 1308, "MTH01/M-ZB.10", i_RoomId); |
| | | //温度 |
| | | var device2 = new TemperatureSensor() { DeviceAddr = "DeviceAddr" + this.DeviceNumber, DeviceEpoint = 2, SensorDiv = 1 }; |
| | | //设置设备的基本信息 |
| | | this.SetBaseDataToDevice(device2, 1308, 1308, "MTH01/M-ZB.10", i_RoomId); |
| | | |
| | | this.DeviceNumber++; |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 设置设备的基本信息 |
| | | /// </summary> |
| | | /// <param name="device"></param> |
| | | private void SetBaseDataToDevice(CommonDevice device, int HwVersion, int ImgTypeId, |
| | | string ModelIdentifier, string roomId) |
| | | { |
| | | device.DeviceEpointName = string.Empty; |
| | | device.HadReadDeviceStatu = true; |
| | | device.DeviceName = string.Empty; |
| | | device.IsOnline = 1; |
| | | device.HwVersion = HwVersion; |
| | | device.ImgTypeId = ImgTypeId; |
| | | device.DriveCode = 0; |
| | | device.ManufacturerName = "HDL"; |
| | | device.ModelIdentifier = ModelIdentifier; |
| | | device.CurrentGateWayId = string.Empty; |
| | | |
| | | //默认每个设备都可以定位,拥有开关功能 |
| | | device.InClusterList.Add(new CommonDevice.InClusterObj { InCluster = 3 }); |
| | | device.OutClusterList.Add(new CommonDevice.OutClusterObj { OutCluster = 3 }); |
| | | if (device.Type == DeviceType.AirSwitch || device.Type == DeviceType.OnOffOutput |
| | | || device.Type == DeviceType.DimmableLight || device.Type == DeviceType.ColorDimmableLight) |
| | | { |
| | | device.InClusterList.Add(new CommonDevice.InClusterObj { InCluster = 6 }); |
| | | device.OutClusterList.Add(new CommonDevice.OutClusterObj { OutCluster = 6 }); |
| | | } |
| | | if (device.Type == DeviceType.OnOffOutput || device.Type == DeviceType.DimmableLight |
| | | || device.Type == DeviceType.ColorDimmableLight) |
| | | { |
| | | device.InClusterList.Add(new CommonDevice.InClusterObj { InCluster = 8 }); |
| | | } |
| | | if (device.Type == DeviceType.WindowCoveringDevice) |
| | | { |
| | | device.InClusterList.Add(new CommonDevice.InClusterObj { InCluster = 258 }); |
| | | } |
| | | //添加虚拟设备 |
| | | LocalDevice.Current.AddVirtualDeviceToMemory(device); |
| | | |
| | | var room = HdlRoomLogic.Current.GetRoomById(roomId); |
| | | if (room != null) |
| | | { |
| | | //添加房间 |
| | | HdlRoomLogic.Current.AddDevice(room, device, true); |
| | | } |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region ■ 设备枚举___________________________ |
| | | |
| | | /// <summary> |
| | | /// 虚拟设备枚举 |
| | | /// </summary> |
| | | private enum VirtualDeviceEnum |
| | | { |
| | | A开合帘电机 = 1, |
| | | A卷帘电机 = 2, |
| | | A4按键面板 = 3, |
| | | A3按键面板 = 4, |
| | | A2按键面板 = 5, |
| | | A简约4按键面板 = 7, |
| | | A简约3按键面板 = 8, |
| | | A简约2按键面板 = 9, |
| | | A220pir传感器 = 10, |
| | | A燃气传感器 = 11, |
| | | A门窗磁传感器 = 12, |
| | | A烟雾传感器 = 13, |
| | | A红外传感器 = 14, |
| | | A水浸传感器 = 15, |
| | | A紧急按键 = 16, |
| | | A3路继电器 = 17, |
| | | A1路调光器 = 18, |
| | | A空调网关 = 19, |
| | | A空气开关 = 20, |
| | | A智能门锁 = 21, |
| | | A方悦单开双控面板 = 22, |
| | | A方悦双开四控面板 = 23, |
| | | A方悦四开八控面板 = 24, |
| | | A方悦新风面板 = 25, |
| | | A方悦新风小模块 = 26, |
| | | A吸顶燃气传感器 = 27, |
| | | A国标3路10A继电器小模块 = 28, |
| | | A温湿度传感器 = 29, |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region ■ 结构体_____________________________ |
| | | |
| | | /// <summary> |
| | | /// 添加设备的参数 |
| | | /// </summary> |
| | | private class AddDevicePra |
| | | { |
| | | /// <summary> |
| | | /// 设备类型 |
| | | /// </summary> |
| | | public VirtualDeviceEnum DeviceType = VirtualDeviceEnum.A空气开关; |
| | | /// <summary> |
| | | /// 添加的设备个数(不是回路数) |
| | | /// </summary> |
| | | public int DeviceCount = 1; |
| | | /// <summary> |
| | | /// 将设备添加到的房间(不设置表示不添加到房间) |
| | | /// </summary> |
| | | public string RoomId = string.Empty; |
| | | } |
| | | |
| | | #endregion |
| | | } |
| | | } |