陈嘉乐
2020-07-01 2ec9898778d3beda89278e2a53ac0e68b3035d29
ZigbeeApp/Shared/Phone/Device/Logic/LogicCommunalPage.cs
@@ -43,7 +43,7 @@
            var middle = new VerticalScrolViewLayout
            {
                Y = view.topRowLayout.Bottom,
                Height = Application.GetRealHeight(1920 - 184-180),
                Height = Application.GetRealHeight(Method.H - 184-180),
                BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor,
            };
            this.AddChidren(middle);
@@ -101,7 +101,7 @@
            addconditionview.iconBtn.Visible = true;
            addconditionview.titleBtn.TextID = MyInternationalizationString.ifcondition;
            middle.AddChidren(addconditionview.AddDeviceView());
            ///添加条件的点击事件
            addconditionview.clickBtn.MouseUpEventHandler+= (sender, e) =>
            {
@@ -162,7 +162,6 @@
                    LogicView.AddDeviceView addflview = new LogicView.AddDeviceView();
                    addflview.titleBtn.TextID = MyInternationalizationString.addconditions;
                    middle.AddChidren(addflview.AddFl());
                    addflview.clickBtn.MouseUpEventHandler += (sender, e) =>
                    {
                        if (Common.Logic.CurrentLogic.Conditions.Count == 1)
@@ -313,11 +312,7 @@
                                            {
                                                case 13:
                                                    {
                                                        if (intvalue == "1")
                                                        {
                                                            state=Language.StringByID( MyInternationalizationString.someone);
                                                        }
                                                        else
                                                        if (conditions.ContainsKey("IgnoreTime"))
                                                        {
                                                            int minute = int.Parse(conditions["IgnoreTime"]) / 60;
                                                            int second = int.Parse(conditions["IgnoreTime"]) % 60;
@@ -341,48 +336,55 @@
                                                            }
                                                        }
                                                        else
                                                        {
                                                            state = Language.StringByID(MyInternationalizationString.someone);
                                                        }
                                                    }
                                                    break;
                                                case 21:
                                                case 22:
                                                    {
                                                        if (intvalue == "1")
                                                        if (conditions.ContainsKey("IgnoreTime"))
                                                        {
                                                            state =Language.StringByID( MyInternationalizationString.logicopen);
                                                        }
                                                        else
                                                        {
                                                            if (conditions.ContainsKey("IgnoreTime"))
                                                            int minute = int.Parse(conditions["IgnoreTime"]) / 60;
                                                            int second = int.Parse(conditions["IgnoreTime"]) % 60;
                                                            if (minute != 0 && second != 0)
                                                            {
                                                                int minute = int.Parse(conditions["IgnoreTime"]) / 60;
                                                                int second = int.Parse(conditions["IgnoreTime"]) % 60;
                                                                if (minute != 0 && second != 0)
                                                                {
                                                                    state = minute.ToString() + Language.StringByID(MyInternationalizationString.minute) + second.ToString() + Language.StringByID(MyInternationalizationString.second) + Language.StringByID(MyInternationalizationString.closetime);
                                                                }
                                                                else
                                                                {
                                                                    if (minute == 0 && second != 0)
                                                                    {
                                                                        state = second.ToString() + Language.StringByID(MyInternationalizationString.second) + Language.StringByID(MyInternationalizationString.closetime);
                                                                    }
                                                                    if (minute != 0 && second == 0)
                                                                    {
                                                                        state = minute.ToString() + Language.StringByID(MyInternationalizationString.Minute) + Language.StringByID(MyInternationalizationString.closetime);
                                                                    }
                                                                }
                                                                state = minute.ToString() + Language.StringByID(MyInternationalizationString.minute) + second.ToString() + Language.StringByID(MyInternationalizationString.second) + Language.StringByID(MyInternationalizationString.closetime);
                                                            }
                                                            else
                                                            {
                                                                state =Language.StringByID(MyInternationalizationString.logicclose);
                                                                if (minute == 0 && second != 0)
                                                                {
                                                                    state = second.ToString() + Language.StringByID(MyInternationalizationString.second) + Language.StringByID(MyInternationalizationString.closetime);
                                                                }
                                                                if (minute != 0 && second == 0)
                                                                {
                                                                    state = minute.ToString() + Language.StringByID(MyInternationalizationString.Minute) + Language.StringByID(MyInternationalizationString.closetime);
                                                                }
                                                            }
                                                        }
                                                        else
                                                        {
                                                            if (intvalue == "1")
                                                            {
                                                                state = Language.StringByID(MyInternationalizationString.logicopen);
                                                            }
                                                            else
                                                            {
                                                                state = Language.StringByID(MyInternationalizationString.logicclose);
                                                            }
                                                        }
                                                    }
                                                    break;
                                                case 40:
@@ -422,6 +424,44 @@
                                                            state =Language.StringByID( MyInternationalizationString.callthepolice);
                                                        }
                                                    }
                                                    break;
                                                case 541:
                                                    {
                                                        if (conditions["Cluster_ID"] == "1024") {
                                                            state = Language.StringByID(MyInternationalizationString.ambientLight)+"<"+conditions["AttriButeData1"]+"lux"+ Language.StringByID(MyInternationalizationString.hour1);
                                                        }
                                                        else
                                                        {
                                                            if (conditions.ContainsKey("IgnoreTime"))
                                                            {
                                                                int minute = int.Parse(conditions["IgnoreTime"]) / 60;
                                                                int second = int.Parse(conditions["IgnoreTime"]) % 60;
                                                                if (minute != 0 && second != 0)
                                                                {
                                                                    state = minute.ToString() + Language.StringByID(MyInternationalizationString.minute) + second.ToString() + Language.StringByID(MyInternationalizationString.second) + Language.StringByID(MyInternationalizationString.unattendedtime1);
                                                                }
                                                                else
                                                                {
                                                                    if (minute == 0 && second != 0)
                                                                    {
                                                                        state = second.ToString() + Language.StringByID(MyInternationalizationString.second) + Language.StringByID(MyInternationalizationString.unattendedtime1);
                                                                    }
                                                                    if (minute != 0 && second == 0)
                                                                    {
                                                                        state = minute.ToString() + Language.StringByID(MyInternationalizationString.Minute) + Language.StringByID(MyInternationalizationString.unattendedtime1);
                                                                    }
                                                                }
                                                            }
                                                            else
                                                            {
                                                                state = Language.StringByID(MyInternationalizationString.someone);
                                                            }
                                                        }
                                                    }
                                                    break;
                                                default:
@@ -500,16 +540,18 @@
                                                        s = "≤";
                                                    }
                                                    break;
                                            }
                                            }
                                            ///转换温度值/100
                                            string srtValue = (int.Parse(conditions["AttriButeData1"]) / 100).ToString();
                                            if (conditions["Cluster_ID"] == "1026")
                                            {
                                                icon = "ZigeeLogic/temperature.png";
                                                state = s + conditions["AttriButeData1"] + "℃";
                                                state = s + srtValue + "℃";
                                            }
                                            else
                                            {
                                                icon = "ZigeeLogic/humidity.png";
                                                state = s + conditions["AttriButeData1"] + "%";
                                                state = s + srtValue + "%";
                                            }
                                            break;
@@ -562,11 +604,11 @@
                                    {
                                        if (conditions["AtHome"] == "1")
                                        {
                                            state = Language.StringByID(MyInternationalizationString.athome) + radius["Radius"] + "米";
                                            state = Language.StringByID(MyInternationalizationString.athome) + radius["Radius"] + Language.StringByID(MyInternationalizationString.mi);
                                        }
                                        else
                                        {
                                            state = Language.StringByID(MyInternationalizationString.leavehome) + radius["Radius"] + "米";
                                            state = Language.StringByID(MyInternationalizationString.leavehome) + radius["Radius"] + Language.StringByID(MyInternationalizationString.mi);
                                        }
                                    }
                                }
@@ -589,6 +631,7 @@
                        selecteddevice.selecetddevicestateBtn.Text = state;
                    }
                    ///编辑
                    selecteddevice.edit.Tag = i.ToString();
                    selecteddevice.edit.MouseUpEventHandler += (sender, e) =>
                    {
                        switch (Type)
@@ -621,7 +664,7 @@
                                    {
                                        var flMain = new FrameLayout { BackgroundColor = ZigbeeColor.Current.LogicViewBackgroundColor };
                                        this.AddChidren(flMain);
                                        CurrentDeviceState.CurrentDeviceView(flMain, deviceinof, true, "condition_logic");
                                        CurrentDeviceState.CurrentDeviceView(flMain, deviceinof, true, "condition_logic",int.Parse(selecteddevice.edit.Tag.ToString()));
                                    }
                                    else
                                    {
@@ -682,7 +725,6 @@
            addactionview.iconBtn.Visible = true;
            addactionview.titleBtn.TextID = MyInternationalizationString.execute;
            middle.AddChidren(addactionview.AddDeviceView());
            addactionview.clickBtn.MouseUpEventHandler+= (sender, e) =>
            {
@@ -695,8 +737,6 @@
            ListActions.AddRange(Common.Logic.CurrentLogic.Actions);
            ListActions.Add(new Dictionary<string, object>());
            for (int i = 0; i < ListActions.Count; i++)
            {
                if (i == (ListActions.Count - 1))
@@ -705,8 +745,6 @@
                    LogicView.AddDeviceView addflview = new LogicView.AddDeviceView();
                    addflview.titleBtn.TextID = MyInternationalizationString.addfunction;
                    middle.AddChidren(addflview.AddFl());
                    addflview.clickBtn.MouseUpEventHandler += (sender, e) =>
                    {
                        Common.Logic.CurrentLogic.LogicName = logicTextBox.Text.Trim();
@@ -988,6 +1026,86 @@
                                            }
                                        }
                                        break;
                                    case DeviceType.ColorTemperatureLight:
                                        {
                                            icon = "ZigeeLogic/nightLight.png";
                                            var taskList = actions["TaskList"] as List<Dictionary<string, string>>;
                                            if (taskList == null)
                                            {
                                                continue;
                                            }
                                            foreach (var tasks in taskList)
                                            {
                                                switch (tasks["TaskType"])
                                                {
                                                    case "1":
                                                        {
                                                            if (tasks["Data1"] == "0")
                                                            {
                                                                state += Language.StringByID(MyInternationalizationString.close) + ";";
                                                            }
                                                            else
                                                            {
                                                                state += Language.StringByID(MyInternationalizationString.open) + ";";
                                                            }
                                                        }
                                                        break;
                                                }
                                            }
                                            foreach (var tasks in taskList)
                                            {
                                                switch (tasks["TaskType"])
                                                {
                                                    case "3":
                                                        {
                                                            var intvalue = int.Parse(tasks["Data1"]);
                                                            var lightbrightnessvalue = (intvalue * 100) / 254;
                                                            state += Language.StringByID(MyInternationalizationString.brightness) + lightbrightnessvalue.ToString() + "%;";
                                                        }
                                                        break;
                                                }
                                            }
                                            foreach (var tasks in taskList)
                                            {
                                                switch (tasks["TaskType"])
                                                {
                                                    case "7":
                                                        {
                                                            if (tasks["Data1"] == "0")
                                                            {
                                                                state += Language.StringByID(MyInternationalizationString.buzzer) + Language.StringByID(MyInternationalizationString.close) + ";";
                                                            }
                                                            else
                                                            {
                                                                state += Language.StringByID(MyInternationalizationString.buzzer) + Language.StringByID(MyInternationalizationString.open) + ";";
                                                            }
                                                        }
                                                        break;
                                                }
                                            }
                                            foreach (var tasks in taskList)
                                            {
                                                switch (tasks["TaskType"])
                                                {
                                                    case "8":
                                                        {
                                                            var intvalue = int.Parse(tasks["Data1"]);
                                                            var colorTemperatureValue = 1000000/(intvalue *100);
                                                            state += Language.StringByID(MyInternationalizationString.colorTemperature) + colorTemperatureValue.ToString() + "K";
                                                        }
                                                        break;
                                                }
                                            }
                                            state=state.TrimEnd(';');//去掉最后那个";"
                                        }
                                        break;
                                }
                            }
@@ -1114,6 +1232,7 @@
                        actiondevice.selecetddevicestateBtn.Text = state;
                    }
                    ///编辑
                    actiondevice.edit.Tag = i.ToString();
                    actiondevice.edit.MouseUpEventHandler += (sender, e) =>
                    {
                        switch (linkType)
@@ -1122,9 +1241,19 @@
                            case 0:
                                {
                                    var deviceinof = Method.GetCommonDevice(actions["DeviceAddr"].ToString(), actions["Epoint"].ToString());
                                    var flMain = new FrameLayout { BackgroundColor = ZigbeeColor.Current.LogicViewBackgroundColor };
                                    this.AddChidren(flMain);
                                    CurrentDeviceState.CurrentDeviceView(flMain, deviceinof, true, "action_logic");
                                    if (deviceinof.Type != DeviceType.ColorTemperatureLight)
                                    {
                                        var flMain = new FrameLayout { BackgroundColor = ZigbeeColor.Current.LogicViewBackgroundColor };
                                        this.AddChidren(flMain);
                                        CurrentDeviceState.CurrentDeviceView(flMain, deviceinof, true, "action_logic",int.Parse(actiondevice.edit.Tag.ToString()));
                                    }
                                    else
                                    {
                                        var nightlight = new Nightlight();
                                        UserView.HomePage.Instance.AddChidren(nightlight);
                                        UserView.HomePage.Instance.PageIndex += 1;
                                        nightlight.Show(deviceinof, true, "logic", actions);
                                    }
                                }
                                break;
                            case 6: