wxr
2020-06-16 f6fd8acd7c53c44187e70b4709443318a628f4b5
HDL_ON/UI/UI2/FuntionControlView/EnvironmentalScience/EnvironmentalSciencePage.cs
@@ -19,6 +19,10 @@
        /// 房间选择下拉图标
        /// </summary>
        Button btnFoorDownIcon;
        /// <summary>
        /// 传感器列表区域
        /// </summary>
        FrameLayout sensorListView;
        /// <summary>
        /// 天气名称文本
@@ -39,17 +43,6 @@
        #endregion
        #region 区域变量
        List<System.Threading.Thread> threads = new List<System.Threading.Thread>();
        uint level1Color = 0xFF2172FF;
        uint level2Color = 0xCC4484F4;
        uint level3Color = 0x664484F4;
        uint level4Color = 0xFFADE764;
        uint level5Color = 0xFFFFDD55;
        uint level6Color = 0xFFFF9D54;
        uint level7Color = 0xFFFF3D3D;
        Room room;
        #endregion
@@ -58,16 +51,6 @@
        public EnvironmentalSciencePage()
        {
            bodyView = this;
        }
        public override void RemoveFromParent()
        {
            foreach(var thread in threads)
            {
                thread.Abort();
            }
            threads.Clear();
            base.RemoveFromParent();
        }
        /// <summary>
@@ -95,7 +78,7 @@
            {
                X = Application.GetRealWidth(24),
                Y = Application.GetRealHeight(16),
                Width = Application.GetRealWidth(55),
                Width = Application.GetRealWidth(60),
                Height = Application.GetRealHeight(48),
                TextSize = 42,
                IsBold = true,
@@ -163,7 +146,6 @@
                Text = "10°C",
            };
            topWeatherView.AddChidren(btnTempUpperLimitText);
            
            var btnTempLowerLimit = new Button()
            {
@@ -326,7 +308,7 @@
            contentView.AddChidren(btnRoom);
            #endregion
            FrameLayout sensorListView = new FrameLayout()
            sensorListView = new FrameLayout()
            {
                Gravity = Gravity.CenterHorizontal,
                Y = Application.GetRealHeight(50),
@@ -339,121 +321,14 @@
            contentView.AddChidren(sensorListView);
            int index = 0;
            foreach(var sensor in  DB_ResidenceData.residenceData.functionList.sensorsEnvironmentalScience)
            foreach(var sensor in DB_ResidenceData.residenceData.functionList.sensorsEnvironmentalScience)
            {
                if(sensor.functionType == FunctionType.Noise|| sensor.functionType == FunctionType.WindPower)
                if ( sensor.functionType == FunctionType.WindPower)
                {
                    continue;
                }
                if(sensor.roomIdList.Contains(room.sid))
                {
                    FrameLayout sensorView = new FrameLayout()
                    {
                        Width = Application.GetRealWidth(148),
                        Height = Application.GetRealWidth(80),
                        Radius = (uint)Application.GetRealWidth(8),
                        BorderColor = 0x00000000,
                        BorderWidth = 0,
                        BackgroundColor = CSS_Color.MainBackgroundColor,
                        Y = Application.GetRealWidth(92 * (index / 2))
                    };
                    if (index % 2 != 0)
                    {
                        sensorView.X = Application.GetRealWidth(160);
                    }
                    sensorListView.AddChidren(sensorView);
                    var arcBar = new ArcSeekBar()
                    {
                        ProgressBarUnitSring = "°C",
                        X = Application.GetRealWidth(7),
                        Gravity = Gravity.CenterVertical,
                        Width = Application.GetRealWidth(48),
                        Height = Application.GetRealWidth(48),
                        OpenAngle = 1,
                        ThumbColor = 0x00000000,
                        ThumbModeFill = true,
                        ProgressBarColor = sensor.levelColorList[sensor.curLevel - 1],
                        ThumbRadius = 1,
                        ArcWidthWithDefaultStyle = Application.GetRealWidth(3),
                        MinValue = 0,
                        MaxValue = 96,
                        Progress = (96 / sensor.levelColorList.Count) * sensor.curLevel,
                        //ProgressBarUnitSring = "",
                        IsClickable = false,
                        ProgressTextColor = 0x00000000,
                        ArcColor = CSS_Color.BackgroundColor,
                        //BackgroundColor = 0x33FF0000,
                    };
                    sensorView.AddChidren(arcBar);
                    var btnSensorTitle = new Button()
                    {
                        X = Application.GetRealWidth(7),
                        Gravity = Gravity.CenterVertical,
                        Width = Application.GetRealWidth(48),
                        Height = Application.GetRealWidth(48),
                        TextAlignment = TextAlignment.Center,
                        TextSize = CSS_FontSize.PromptFontSize_SecondaryLevel,
                        TextColor = CSS_Color.FirstLevelTitleColor,
                        TextID = sensor.functionTypeNameId
                    };
                    sensorView.AddChidren(btnSensorTitle);
                    btnSensorTitle.MouseUpEventHandler = (sender, e) => {
                        var esp = new EnvironmentalSensorPage(sensor);
                        MainPage.BasePageView.AddChidren(esp);
                        esp.LoadPage();
                        MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
                    };
                    if (sensor.functionType != FunctionType.Noise && sensor.functionType != FunctionType.WindPower)
                    {
                        var btnInfoIcon = new Button()
                        {
                            X = Application.GetRealWidth(120),
                            Width = Application.GetRealWidth(28),
                            Height = Application.GetRealWidth(28),
                            UnSelectedImagePath = "FunctionIcon/EnvironmentalScience/TipInfoIcon.png",
                        };
                        sensorView.AddChidren(btnInfoIcon);
                        btnInfoIcon.MouseUpEventHandler = (sender, e) =>
                        {
                            LoadInfo( sensor);
                        };
                    }
                    var btnSensorValues = new Button()
                    {
                        X = Application.GetRealWidth(72),
                        Y = Application.GetRealWidth(17),
                        Width = Application.GetRealWidth(70),
                        Height = Application.GetRealWidth(30),
                        TextAlignment = TextAlignment.CenterLeft,
                        TextColor = CSS_Color.FirstLevelTitleColor,
                        TextSize = CSS_FontSize.EmphasisFontSize_Secondary,
                        IsBold = true,
                        Text = sensor.values.ToString(),
                    };
                    sensorView.AddChidren(btnSensorValues);
                    var btnLevel = new Button()
                    {
                        X = Application.GetRealWidth(70),
                        Y = btnSensorValues.Bottom,
                        Width = Application.GetRealWidth(50),
                        Height = Application.GetRealWidth(18),
                        TextAlignment = TextAlignment.CenterLeft,
                        TextColor = sensor.levelColorList[sensor.curLevel - 1],
                        TextSize = CSS_FontSize.PromptFontSize_SecondaryLevel,
                        TextID = sensor.levelTextList[sensor.curLevel - 1]
                    };
                    sensorView.AddChidren(btnLevel);
                    index++;
                }
                LoadSensorDiv(sensor, index);
                index++;
            }
            #endregion
@@ -464,19 +339,139 @@
            new TopViewDiv(bodyView, Language.StringByID(StringId.EnvironmentalScience)).LoadTopView();
        }
        /// <summary>
        /// 加载传感器列表
        /// </summary>
        void LoadSensorDiv(Sensor sensor,int index)
        {
            if (sensor.roomIdList.Contains(room.sid))
            {
                var sensorTag = sensor.sid;
                if (sensor.bus_Data != null)
                {
                    sensorTag = ((int)sensor.functionType % 256) + "_" + sensor.bus_Data.SubnetID + "_" + sensor.bus_Data.DeviceID + "_" + sensor.bus_Data.LoopID;
                }
                FrameLayout sensorView = new FrameLayout()
                {
                    Width = Application.GetRealWidth(148),
                    Height = Application.GetRealWidth(80),
                    Radius = (uint)Application.GetRealWidth(8),
                    BorderColor = 0x00000000,
                    BorderWidth = 0,
                    BackgroundColor = CSS_Color.MainBackgroundColor,
                    Y = Application.GetRealWidth(92 * (index / 2)),
                    Tag = sensorTag
                };
                if (index % 2 != 0)
                {
                    sensorView.X = Application.GetRealWidth(160);
                }
                sensorListView.AddChidren(sensorView);
                var arcBar = new ArcSeekBar()
                {
                    ProgressBarUnitSring = "°C",
                    X = Application.GetRealWidth(7),
                    Gravity = Gravity.CenterVertical,
                    Width = Application.GetRealWidth(48),
                    Height = Application.GetRealWidth(48),
                    OpenAngle = 1,
                    ThumbColor = 0x00000000,
                    ThumbModeFill = true,
                    ProgressBarColor = sensor.levelColorList[sensor.curLevel - 1],
                    ThumbRadius = 1,
                    ArcWidthWithDefaultStyle = Application.GetRealWidth(3),
                    MinValue = 0,
                    MaxValue = 96,
                    Progress = (96 / sensor.levelColorList.Count) * sensor.curLevel,
                    //ProgressBarUnitSring = "",
                    IsClickable = false,
                    ProgressTextColor = 0x00000000,
                    ArcColor = CSS_Color.BackgroundColor,
                    //BackgroundColor = 0x33FF0000,
                };
                sensorView.AddChidren(arcBar);
                var btnSensorTitle = new Button()
                {
                    X = Application.GetRealWidth(7),
                    Gravity = Gravity.CenterVertical,
                    Width = Application.GetRealWidth(48),
                    Height = Application.GetRealWidth(48),
                    TextAlignment = TextAlignment.Center,
                    TextSize = CSS_FontSize.PromptFontSize_SecondaryLevel,
                    TextColor = CSS_Color.FirstLevelTitleColor,
                    TextID = sensor.functionTypeNameId,
                    Tag = "SensorTitle"
                };
                sensorView.AddChidren(btnSensorTitle);
                btnSensorTitle.MouseUpEventHandler = (sender, e) => {
                    var esp = new EnvironmentalSensorPage(sensor);
                    MainPage.BasePageView.AddChidren(esp);
                    esp.LoadPage();
                    MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
                };
                if ( sensor.functionType != FunctionType.WindPower)
                {
                    var btnInfoIcon = new Button()
                    {
                        X = Application.GetRealWidth(120),
                        Width = Application.GetRealWidth(28),
                        Height = Application.GetRealWidth(28),
                        UnSelectedImagePath = "FunctionIcon/EnvironmentalScience/TipInfoIcon.png",
                    };
                    sensorView.AddChidren(btnInfoIcon);
                    btnInfoIcon.MouseUpEventHandler = (sender, e) =>
                    {
                        LoadInfo(sensor);
                    };
                }
                var btnSensorValues = new Button()
                {
                    X = Application.GetRealWidth(72),
                    Y = Application.GetRealWidth(17),
                    Width = Application.GetRealWidth(70),
                    Height = Application.GetRealWidth(30),
                    TextAlignment = TextAlignment.CenterLeft,
                    TextColor = CSS_Color.FirstLevelTitleColor,
                    TextSize = CSS_FontSize.EmphasisFontSize_Secondary,
                    IsBold = true,
                    Text = sensor.values.ToString(),
                    Tag = "SensorValues"
                };
                sensorView.AddChidren(btnSensorValues);
                var btnLevel = new Button()
                {
                    X = Application.GetRealWidth(70),
                    Y = btnSensorValues.Bottom,
                    Width = Application.GetRealWidth(50),
                    Height = Application.GetRealWidth(18),
                    TextAlignment = TextAlignment.CenterLeft,
                    TextColor = sensor.levelColorList[sensor.curLevel - 1],
                    TextSize = CSS_FontSize.PromptFontSize_SecondaryLevel,
                    TextID = sensor.levelTextList[sensor.curLevel - 1],
                    Tag = "SensorLevel"
                };
                sensorView.AddChidren(btnLevel);
                Control.Send(CommandType_A.read, sensor);
            }
        }
        /// <summary>
        /// 加载传感器等级相关信息
        /// </summary>
        /// <param name="btnInfo"></param>
        /// <param name="sensor"></param>
        void LoadInfo(Sensor sensor)
        {
            Dialog dialog = new Dialog();
            FrameLayout dialogBodyView = new FrameLayout();
            dialog.AddChidren(dialogBodyView);
            dialogBodyView.MouseUpEventHandler = (sender, e) => {
            dialogBodyView.MouseUpEventHandler = (sender, e) =>
            {
                dialog.Close();
            };
@@ -489,7 +484,8 @@
                Radius = (uint)Application.GetRealWidth(12),
                BackgroundColor = CSS_Color.MainBackgroundColor,
                Animate = Animate.DownToUp,
                ScrollEnabled = false
                ScrollEnabled = false,
                AnimateSpeed = 0.3f,
            };
            dialogBodyView.AddChidren(infoView);
@@ -503,7 +499,7 @@
            };
            infoView.AddChidren(btnTitle);
            switch(sensor.functionType)
            switch (sensor.functionType)
            {
                case FunctionType.PM10:
                    btnTitle.Text = "PM1.0(ug/m²)";
@@ -514,11 +510,10 @@
                case FunctionType.WindPower:
                    break;
                case FunctionType.Noise:
                    break;
                //case FunctionType.Noise:
                //    break;
                case FunctionType.Temp:
                    btnTitle.Text = Language.StringByID(StringId.Temp )+ "(°C)";
                    btnTitle.Text = Language.StringByID(StringId.Temp) + "(°C)";
                    break;
                case FunctionType.TVOC:
                    btnTitle.Text = "TVOC(PPM)";
@@ -529,8 +524,6 @@
                case FunctionType.Humidity:
                    btnTitle.Text = Language.StringByID(StringId.Humidity) + "(%)";
                    break;
            }
            FrameLayout subTitleView = new FrameLayout()
@@ -549,7 +542,6 @@
                IsBold = true,
                TextID = StringId.IntervalValue,
            });
            subTitleView.AddChidren(new Button()
            {
@@ -572,7 +564,7 @@
                IsBold = true,
                TextID = StringId.ColorValue,
            });
            for (int index = 0; index    < sensor.levelTextList.Count;index++)
            for (int index = 0; index < sensor.levelTextList.Count; index++)
            {
                infoView.AddChidren(new Button()
                {
@@ -581,7 +573,6 @@
                    Height = Application.GetRealWidth(1),
                    BackgroundColor = CSS_Color.DividingLineColor,
                });
                FrameLayout subInfoView = new FrameLayout()
                {
@@ -600,7 +591,6 @@
                    Text = sensor.intervalValue[index]
                });
                subInfoView.AddChidren(new Button()
                {
                    Gravity = Gravity.CenterHorizontal,
@@ -609,7 +599,7 @@
                    TextColor = CSS_Color.FirstLevelTitleColor,
                    TextSize = CSS_FontSize.TextFontSize,
                    IsBold = true,
                    TextID =sensor.levelTextList[index]
                    TextID = sensor.levelTextList[index]
                });
                subInfoView.AddChidren(new Button()
@@ -621,17 +611,13 @@
                    Radius = (uint)Application.GetRealWidth(4),
                    BackgroundColor = sensor.levelColorList[index]
                });
            }
            dialog.Show();
        }
        /// <summary>
        /// 房间列表点击事件