wei
2021-03-19 c7c61c603b16c0bf2582d81561bdfbe48ab9440c
HDL_ON/UI/UI2/FuntionControlView/EnvironmentalScience/EnvironmentalSciencePage.cs
@@ -50,6 +50,7 @@
        #region 区域变量
        Room room;
        Sensor sensorTemp = new Sensor();
        #endregion
@@ -285,10 +286,6 @@
            #region 房间顶部切换显示区域
            room = new Room() { roomName = Language.StringByID(StringId.All)};
            //if (DB_ResidenceData.rooms.Count > 0)
            //{
            //    room = DB_ResidenceData.rooms[0];
            //}
            btnFoorDownIcon = new Button()
            {
                Width = Application.GetMinRealAverage(16),
@@ -353,7 +350,7 @@
        {
            sensorListView.RemoveAll();
            int index = 0;
            foreach (var sensor in DB_ResidenceData.functionList.sensorsEnvironmentalScience)
            foreach (var sensor in FunctionList.List.GetEnvirSensorsList())
            {
                LoadSensorDiv(sensor, index);
                index++;
@@ -363,15 +360,14 @@
        /// <summary>
        /// 加载传感器列表
        /// </summary>
        void LoadSensorDiv(Sensor sensor,int index)
        void LoadSensorDiv(Function sensor,int index)
        {
            var levelColorList = sensorTemp.GetLevelColorList(sensor.spk);
            var levelTextList = sensorTemp.GetLevelTextList(sensor.spk);
            if (room.roomId == "" ||  sensor.roomIds.Contains(room.roomId))
            {
                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),
@@ -396,10 +392,10 @@
                    Width = Application.GetRealWidth(48),
                    Height = Application.GetRealWidth(48),
                    OpenAngle = 10,
                    ProgressBarColor = sensor.levelColorList[sensor.curLevel - 1],
                    ProgressBarColor = sensorTemp.GetLevelColorList(sensor.spk)[sensorTemp.GetCurLevel(sensor) - 1],
                    MinValue = 0,
                    MaxValue = 96,
                    Progress = (96 / sensor.levelColorList.Count) * sensor.curLevel,
                    Progress = (96 / sensorTemp.GetLevelColorList(sensor.spk).Count * sensorTemp.GetCurLevel(sensor)),
                    IsClickable = false,
                    ArcColor = CSS_Color.BackgroundColor,
                    ArcWidth = Application.GetRealWidth(4),
@@ -417,15 +413,17 @@
                    TextAlignment = TextAlignment.Center,
                    TextSize = CSS_FontSize.PromptFontSize_SecondaryLevel,
                    TextColor = CSS_Color.FirstLevelTitleColor,
                    TextID = sensor.functionTypeNameId,
                    TextID = sensorTemp.GetFunctionTypeNameId(sensor.spk),
                    Tag = "SensorTitle"
                };
                sensorView.AddChidren(btnSensorTitle);
                btnSensorTitle.MouseUpEventHandler = (sender, e) => {
                    #region
                    var esp = new EnvironmentalSensorPage(sensor);
                    MainPage.BasePageView.AddChidren(esp);
                    esp.LoadPage();
                    MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
                    #endregion
                };
                var btnInfoIcon = new Button()
@@ -451,7 +449,7 @@
                    TextColor = CSS_Color.FirstLevelTitleColor,
                    TextSize = CSS_FontSize.EmphasisFontSize_Secondary,
                    IsBold = true,
                    Text = sensor.values.ToString(),
                    Text = sensor.GetAttrState(FunctionAttributeKey.Value),
                    Tag = "SensorValues"
                };
                sensorView.AddChidren(btnSensorValues);
@@ -463,9 +461,9 @@
                    Width = Application.GetRealWidth(50),
                    Height = Application.GetRealWidth(18),
                    TextAlignment = TextAlignment.CenterLeft,
                    TextColor = sensor.levelColorList[sensor.curLevel - 1],
                    TextColor = levelColorList[sensorTemp.GetCurLevel( sensor) - 1],
                    TextSize = CSS_FontSize.PromptFontSize_SecondaryLevel,
                    TextID = sensor.levelTextList[sensor.curLevel - 1],
                    TextID = levelTextList[sensorTemp.GetCurLevel(sensor) - 1],
                    Tag = "SensorLevel"
                };
                sensorView.AddChidren(btnLevel);
@@ -477,8 +475,10 @@
        /// <summary>
        /// 加载传感器等级相关信息
        /// </summary>
        void LoadInfo(Sensor sensor)
        void LoadInfo(Function sensor)
        {
            var levelColorList = sensorTemp.GetLevelColorList(sensor.spk);
            var levelTextList = sensorTemp.GetLevelTextList(sensor.spk);
            Dialog dialog = new Dialog();
            FrameLayout dialogBodyView = new FrameLayout();
@@ -487,13 +487,12 @@
            {
                dialog.Close();
            };
            VerticalScrolViewLayout infoView = new VerticalScrolViewLayout()
            {
                Gravity = Gravity.CenterHorizontal,
                Y = Application.GetRealHeight(667 - 94 - (sensor.levelColorList.Count * 44) - 20),
                Y = Application.GetRealHeight(667 - 94 - (levelColorList.Count * 44) - 20),
                Width = Application.GetRealWidth(343),
                Height = Application.GetRealHeight(94 + (sensor.levelColorList.Count * 44) + sensor.levelColorList.Count),
                Height = Application.GetRealHeight(94 + (levelColorList.Count * 44) + levelColorList.Count),
                Radius = (uint)Application.GetRealWidth(12),
                BackgroundColor = CSS_Color.MainBackgroundColor,
                Animate = Animate.DownToUp,
@@ -512,21 +511,21 @@
            };
            infoView.AddChidren(btnTitle);
            switch (sensor.functionType)
            switch (sensor.spk)
            {
                case FunctionType.PM25:
                case SPK.SensorPm25:
                    btnTitle.Text = "PM2.5(ug/m²)";
                    break;
                case FunctionType.Temp:
                case SPK.SensorTemperature:
                    btnTitle.Text = Language.StringByID(StringId.Temp) + "(°C)";
                    break;
                case FunctionType.TVOC:
                case SPK.SensorTVOC:
                    btnTitle.Text = "TVOC(PPM)";
                    break;
                case FunctionType.CO2:
                case SPK.SensorCO2:
                    btnTitle.Text = "CO2(PPM)";
                    break;
                case FunctionType.Humidity:
                case SPK.SensorHumidity:
                    btnTitle.Text = Language.StringByID(StringId.Humidity) + "(%)";
                    break;
            }
@@ -569,7 +568,7 @@
                IsBold = true,
                TextID = StringId.ColorValue,
            });
            for (int index = 0; index < sensor.levelTextList.Count; index++)
            for (int index = 0; index < levelTextList.Count; index++)
            {
                infoView.AddChidren(new Button()
                {
@@ -593,7 +592,7 @@
                    TextColor = CSS_Color.FirstLevelTitleColor,
                    TextSize = CSS_FontSize.TextFontSize,
                    IsBold = true,
                    Text = sensor.intervalValue[index]
                    Text = sensorTemp.GetIntervalValue(sensor.spk)[index]
                });
                subInfoView.AddChidren(new Button()
@@ -604,7 +603,7 @@
                    TextColor = CSS_Color.FirstLevelTitleColor,
                    TextSize = CSS_FontSize.TextFontSize,
                    IsBold = true,
                    TextID = sensor.levelTextList[index]
                    TextID = levelTextList[index]
                });
                subInfoView.AddChidren(new Button()
@@ -614,7 +613,7 @@
                    Width = Application.GetRealWidth(38),
                    Height = Application.GetRealHeight(18),
                    Radius = (uint)Application.GetRealWidth(4),
                    BackgroundColor = sensor.levelColorList[index]
                    BackgroundColor = levelColorList[index]
                });
            }