陈嘉乐
2020-12-07 56b417e5bcdf4f34ddcda8c7e56fbac6584e615e
HDL_ON/UI/UI2/3-Intelligence/Automation/LogicMethod.cs
@@ -55,17 +55,22 @@
                logicId = sOidBeginsWith + sTimeSpan;
                logicId += "0A";
                logicId += "0A01";
                //0A01 物模型为逻辑, 0001 表示 1 号逻辑功能
                int iTopLogicId = 1;
                logicId += "15";
                logicId += "1501";
                //1501 物模型为逻辑, 0001 表示 1 号逻辑功能
                int maxId = 1;
                Random random = new Random();
                iTopLogicId = random.Next(0, 255);
                iTopLogicId += random.Next(0, 255);
                logicId += iTopLogicId.ToString("X4");//逻辑号 两个byte
                logicId += "1100";
                for (int i = 0; i < Logic.LogicList.Count; i++)
                {
                    string s = Logic.LogicList[i].sid.Substring(20, 4);
                    int iThisSceneId = Convert.ToInt16(s, 16);
                    if (iThisSceneId > maxId)
                        maxId = iThisSceneId ;
                }
                logicId += (maxId+1).ToString("X4");//逻辑号 两个byte
                logicId += "0000";
            }
            catch
            {
@@ -73,6 +78,7 @@
            }
            return logicId;
        }
        /// <summary>
        /// 封装Dictionary对象
        /// </summary>
@@ -95,7 +101,7 @@
        /// <returns></returns>
        public static List<HDL_ON.Entity.Room> GetGatewayRoomList() 
        {
            return HDL_ON.Entity.DB_ResidenceData.rooms;
            return HDL_ON.Entity.DB_ResidenceData.residenceData.Rooms;
        }
        /// <summary>
        /// 获取网关房间列表
@@ -106,8 +112,8 @@
            List<Entity.Room> roomList = new List<Entity.Room>();
            Entity.Room room1 = new Entity.Room();
            room1.name = name;//默认一个房间名为:全部区域
            room1.sid = "全部区域";//默认sid用识别该房间
            room1.roomName = name;//默认一个房间名为:全部区域
            room1.uid = "全部区域";//默认sid用识别该房间
            roomList.Add(room1);//默认添加到房间列表里
            var roomLists = GetGatewayRoomList();
            foreach (var room in roomLists)
@@ -123,7 +129,6 @@
        /// <returns></returns>
        public static List<HDL_ON.Entity.Function> GetGatewayDeviceList()
        {
            return HDL_ON.Entity.DB_ResidenceData.functionList.GetAllFunction();
        }
        /// <summary>
@@ -145,11 +150,11 @@
            List<HDL_ON.Entity.Function> lists = GetGatewayDeviceList();
            foreach (var dev in lists)
            {
                if (dev.roomIdList.Find((id) => id == room.sid) != null)
                if (dev.roomIds.Find((id) => id == room.uid) != null)
                {
                    deviceLists.Add(dev);
                }
                if (room.sid == "全部区域")
                if (room.uid == "全部区域")
                {
                    //房间名为全部区域时,显示网关全部设备
                    deviceLists = lists;
@@ -207,12 +212,12 @@
            string roomName = "";
            List<HDL_ON.Entity.Room> roomLists = GetGatewayRoomList();
            foreach (var dev in device.roomIdList)
            foreach (var dev in device.roomIds)
            {
                var room = roomLists.Find((c) => c.sid == dev);
                var room = roomLists.Find((c) => c.uid == dev);
                if (room != null)
                {
                    roomName += room.floorName + "." + room.name + ",";
                    roomName += room.floorName + "." + room.roomName + ",";
                }
            }
@@ -229,8 +234,29 @@
            switch (functionType)
            {
                case FunctionType.Relay:
                case FunctionType.RGB:
                case FunctionType.RGBW:
                case FunctionType.ColorTemperature:
                case FunctionType.Dimmer:
                    {
                        strPath = "LogicIcon/lightloguc.png";
                    }
                    break;
                case FunctionType.Curtain:
                case FunctionType.RollingShutter:
                case FunctionType.MotorCurtain:
                    {
                        strPath = "LogicIcon/curtainlogic.png";
                    }
                    break;
                case FunctionType.AC:
                    {
                        strPath = "LogicIcon/airconditionerlogic.png";
                    }
                    break;
                case FunctionType.FloorHeating:
                    {
                        strPath = "LogicIcon/heatlogic.png";
                    }
                    break;
@@ -246,13 +272,13 @@
        {
            List<string> deviceStrTypeList = new List<string>(); 
            deviceStrTypeList.Clear();
            var lightjosn = deviceList.Find((device) => device.functionType == FunctionType.Relay || device.functionType == FunctionType.Dimmer);
            var lightjosn = deviceList.Find((device) => device.functionType == FunctionType.Relay || device.functionType == FunctionType.Dimmer|| device.functionType == FunctionType.ColorTemperature || device.functionType == FunctionType.RGB|| device.functionType == FunctionType.RGBW);
            if (lightjosn != null)
            {
                deviceStrTypeList.Add(Language.StringByID(StringId.Lights));
            }
            var curtainjosn = deviceList.Find((device) => device.functionType ==FunctionType.Curtain);
            var curtainjosn = deviceList.Find((device) => device.functionType ==FunctionType.Curtain|| device.functionType == FunctionType.MotorCurtain|| device.functionType == FunctionType.RollingShutter);
            if (curtainjosn != null)
            {
                deviceStrTypeList.Add(Language.StringByID(StringId.Curtain));
@@ -262,6 +288,11 @@
            if (ac != null)
            {
                deviceStrTypeList.Add(Language.StringByID(StringId.AC));
            }
            var floorHeating = deviceList.Find((device) => device.functionType == FunctionType.FloorHeating);
            if (ac != null)
            {
                deviceStrTypeList.Add(Language.StringByID(StringId.FloorHeating));
            }
            return deviceStrTypeList;
@@ -278,10 +309,23 @@
            {
                functionTypeList.Add(FunctionType.Relay);
                functionTypeList.Add(FunctionType.Dimmer);
                functionTypeList.Add(FunctionType.RGB);
                functionTypeList.Add(FunctionType.RGBW);
                functionTypeList.Add(FunctionType.ColorTemperature);
            }
            else if (deviceType == Language.StringByID(StringId.Curtain))
            {
                functionTypeList.Add(FunctionType.Curtain);
                functionTypeList.Add(FunctionType.RollingShutter);
                functionTypeList.Add(FunctionType.MotorCurtain);
            }
            else if (deviceType == Language.StringByID(StringId.AC))
            {
                functionTypeList.Add(FunctionType.AC);
            }
            else if (deviceType == Language.StringByID(StringId.FloorHeating))
            {
                functionTypeList.Add(FunctionType.FloorHeating);
            }
            return functionTypeList;
@@ -296,11 +340,29 @@
            switch (if_type) {
                case condition_if: {
                        deviceTypeList.Add(FunctionType.Relay);
                        deviceTypeList.Add(FunctionType.RGB);
                        deviceTypeList.Add(FunctionType.RGBW);
                        deviceTypeList.Add(FunctionType.Dimmer);
                        deviceTypeList.Add(FunctionType.ColorTemperature);
                        deviceTypeList.Add(FunctionType.Curtain);
                        deviceTypeList.Add(FunctionType.RollingShutter);
                        deviceTypeList.Add(FunctionType.MotorCurtain);
                        deviceTypeList.Add(FunctionType.AC);
                        deviceTypeList.Add(FunctionType.FloorHeating);
                    }
                    break;
                case target_if:
                    {
                        deviceTypeList.Add(FunctionType.Relay);
                        deviceTypeList.Add(FunctionType.RGB);
                        deviceTypeList.Add(FunctionType.RGBW);
                        deviceTypeList.Add(FunctionType.Dimmer);
                        deviceTypeList.Add(FunctionType.ColorTemperature);
                        deviceTypeList.Add(FunctionType.Curtain);
                        deviceTypeList.Add(FunctionType.RollingShutter);
                        deviceTypeList.Add(FunctionType.MotorCurtain);
                        deviceTypeList.Add(FunctionType.AC);
                        deviceTypeList.Add(FunctionType.FloorHeating);
                    }
                    break;
            }