From fab43407e01474cc4f7b1d0f4b5e43ce1a038ce4 Mon Sep 17 00:00:00 2001
From: wxr <464027401@qq.com>
Date: 星期二, 16 三月 2021 16:51:14 +0800
Subject: [PATCH] Merge branch 'dev-tzy' into temp-wxr

---
 HDL_ON/UI/UI2/FuntionControlView/EnvironmentalScience/EnvironmentalSciencePage.cs |  230 ++++++++++++++++++++++++++++++++++++---------------------
 1 files changed, 145 insertions(+), 85 deletions(-)

diff --git a/HDL_ON/UI/UI2/FuntionControlView/EnvironmentalScience/EnvironmentalSciencePage.cs b/HDL_ON/UI/UI2/FuntionControlView/EnvironmentalScience/EnvironmentalSciencePage.cs
index 1694d48..b830595 100644
--- a/HDL_ON/UI/UI2/FuntionControlView/EnvironmentalScience/EnvironmentalSciencePage.cs
+++ b/HDL_ON/UI/UI2/FuntionControlView/EnvironmentalScience/EnvironmentalSciencePage.cs
@@ -3,6 +3,7 @@
 using HDL_ON.Entity;
 using HDL_ON.UI.CSS;
 using System.Collections.Generic;
+using HDL_ON.DriverLayer;
 
 namespace HDL_ON.UI
 {
@@ -19,6 +20,10 @@
         /// 鎴块棿閫夋嫨涓嬫媺鍥炬爣
         /// </summary>
         Button btnFoorDownIcon;
+        /// <summary>
+        /// 鎴块棿閫夋嫨瑙﹀彂鍖哄煙
+        /// </summary>
+        Button btnRoomClickRow;
         /// <summary>
         /// 浼犳劅鍣ㄥ垪琛ㄥ尯鍩�
         /// </summary>
@@ -45,6 +50,7 @@
         #region 鍖哄煙鍙橀噺
         Room room;
 
+        Sensor sensorTemp = new Sensor();
         #endregion
 
 
@@ -200,7 +206,7 @@
                 Y = Application.GetRealHeight(90),
                 Width = Application.GetRealWidth(24),
                 Height = Application.GetRealWidth(24),
-                UnSelectedImagePath = "Public/DeviceInfoIcon/HumidityIcon.png",
+                UnSelectedImagePath = "FunctionIcon/EnvironmentalScience/HumidityIcon.png",
             };
             topWeatherView.AddChidren(btnHumidityIcon);
 
@@ -223,7 +229,7 @@
                 Y = Application.GetRealHeight(90),
                 Width = Application.GetRealWidth(24),
                 Height = Application.GetRealWidth(24),
-                UnSelectedImagePath = "Public/DeviceInfoIcon/Pm25Icon.png",
+                UnSelectedImagePath = "FunctionIcon/EnvironmentalScience/Pm25Icon.png",
             };
             topWeatherView.AddChidren(btnPm25Icon);
 
@@ -279,11 +285,7 @@
             bodyView.AddChidren(contentView);
 
             #region 鎴块棿椤堕儴鍒囨崲鏄剧ず鍖哄煙
-            room = new Room();
-            if (DB_ResidenceData.residenceData.rooms.Count > 0)
-            {
-                room = DB_ResidenceData.residenceData.rooms[0];
-            }
+            room = new Room() { roomName = Language.StringByID(StringId.All)};
             btnFoorDownIcon = new Button()
             {
                 Width = Application.GetMinRealAverage(16),
@@ -303,9 +305,16 @@
                 TextColor = CSS_Color.FirstLevelTitleColor,
                 TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
                 TextAlignment = TextAlignment.CenterLeft,
-                Text = room.name,
+                Text = room.roomName,
             };
             contentView.AddChidren(btnRoom);
+
+            btnRoomClickRow = new Button()
+            {
+                Height = Application.GetRealHeight(40),
+            };
+            contentView.AddChidren(btnRoomClickRow);
+
             #endregion
 
             sensorListView = new FrameLayout()
@@ -320,16 +329,10 @@
             };
             contentView.AddChidren(sensorListView);
 
-            int index = 0;
-            foreach(var sensor in DB_ResidenceData.residenceData.functionList.sensorsEnvironmentalScience)
-            {
-                if ( sensor.functionType == FunctionType.WindPower)
-                {
-                    continue;
-                }
-                LoadSensorDiv(sensor, index);
-                index++;
-            }
+            LoadSenesorList();
+
+            LoadEventList();
+
 
             #endregion
 
@@ -339,18 +342,32 @@
             new TopViewDiv(bodyView, Language.StringByID(StringId.EnvironmentalScience)).LoadTopView();
 
         }
+
         /// <summary>
         /// 鍔犺浇浼犳劅鍣ㄥ垪琛�
         /// </summary>
-        void LoadSensorDiv(Sensor sensor,int index)
+        void LoadSenesorList()
         {
-            if (sensor.roomIdList.Contains(room.sid))
+            sensorListView.RemoveAll();
+            int index = 0;
+            foreach (var sensor in FunctionList.List.GetEnvirSensorsList())
+            {
+                LoadSensorDiv(sensor, index);
+                index++;
+            }
+        }
+
+        /// <summary>
+        /// 鍔犺浇浼犳劅鍣ㄥ垪琛�
+        /// </summary>
+        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),
@@ -368,27 +385,22 @@
                 }
                 sensorListView.AddChidren(sensorView);
 
-                var arcBar = new ArcSeekBar()
+                var arcBar = new DiyArcSeekBar()
                 {
-                    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),
+                    OpenAngle = 10,
+                    ProgressBarColor = sensorTemp.GetLevelColorList(sensor.spk)[sensorTemp.GetCurLevel(sensor) - 1],
                     MinValue = 0,
                     MaxValue = 96,
-                    Progress = (96 / sensor.levelColorList.Count) * sensor.curLevel,
-                    //ProgressBarUnitSring = "",
+                    Progress = (96 / sensorTemp.GetLevelColorList(sensor.spk).Count * sensorTemp.GetCurLevel(sensor)),
                     IsClickable = false,
-                    ProgressTextColor = 0x00000000,
                     ArcColor = CSS_Color.BackgroundColor,
-                    //BackgroundColor = 0x33FF0000,
+                    ArcWidth = Application.GetRealWidth(4),
+                    IsThumbImgBtnShow = false,
+                    SeekBarPadding = Application.GetRealWidth(2),
                 };
                 sensorView.AddChidren(arcBar);
 
@@ -401,32 +413,31 @@
                     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
                 };
 
-                if ( sensor.functionType != FunctionType.WindPower)
+                var btnInfoIcon = new Button()
                 {
-                    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);
-                    };
-                }
+                    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()
                 {
@@ -438,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);
@@ -450,22 +461,24 @@
                     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);
 
-                Control.Send(CommandType_A.read, sensor);
+                Control.Ins.SendReadCommand(sensor);
             }
         }
 
         /// <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();
@@ -474,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,
@@ -499,29 +511,21 @@
             };
             infoView.AddChidren(btnTitle);
 
-            switch (sensor.functionType)
+            switch (sensor.spk)
             {
-                case FunctionType.PM10:
-                    btnTitle.Text = "PM1.0(ug/m虏)";
-                    break;
-                case FunctionType.PM25:
+                case SPK.SensorPm25:
                     btnTitle.Text = "PM2.5(ug/m虏)";
                     break;
-                case FunctionType.WindPower:
-
-                    break;
-                //case FunctionType.Noise:
-                //    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;
             }
@@ -564,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()
                 {
@@ -588,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()
@@ -599,7 +603,7 @@
                     TextColor = CSS_Color.FirstLevelTitleColor,
                     TextSize = CSS_FontSize.TextFontSize,
                     IsBold = true,
-                    TextID = sensor.levelTextList[index]
+                    TextID = levelTextList[index]
                 });
 
                 subInfoView.AddChidren(new Button()
@@ -609,7 +613,7 @@
                     Width = Application.GetRealWidth(38),
                     Height = Application.GetRealHeight(18),
                     Radius = (uint)Application.GetRealWidth(4),
-                    BackgroundColor = sensor.levelColorList[index]
+                    BackgroundColor = levelColorList[index]
                 });
             }
 
@@ -637,8 +641,8 @@
                     X = Application.GetRealWidth(10),
                     Y = Application.GetRealHeight(266),
                     Width = Application.GetRealWidth(160),
-                    Height = Application.GetRealHeight(203),
-                    BackgroundImagePath = "PersonalCenter/HomeListbg.png",
+                    Height = Application.GetRealHeight(110),
+                    BackgroundImagePath = "PersonalCenter/HomeList1bg.png",
                 };
                 dialogBody.AddChidren(dispalyView);
 
@@ -647,14 +651,69 @@
                     X = Application.GetRealWidth(8),
                     Y = Application.GetRealHeight(15),
                     Width = Application.GetRealWidth(150),
-                    Height = Application.GetRealHeight(45 * 4),
+                    Height = Application.GetRealHeight(45 * 2),
+                    ScrollEnabled = false
                 };
                 dispalyView.AddChidren(contentView);
 
-
-                foreach (var roomTemp in DB_ResidenceData.residenceData.rooms)
+                if (SpatialInfo.CurrentSpatial.RoomList.Count < 2)
                 {
-                    string roomName = roomTemp.name;
+                }
+                else if (SpatialInfo.CurrentSpatial.RoomList.Count < 3)
+                {
+                    dispalyView = new FrameLayout()
+                    {
+                        X = Application.GetRealWidth(10),
+                        Y = Application.GetRealHeight(266),
+                        Width = Application.GetRealWidth(160),
+                        Height = Application.GetRealHeight(155),
+                        BackgroundImagePath = "PersonalCenter/HomeList2bg.png",
+                    };
+                    dialogBody.AddChidren(dispalyView);
+
+                    contentView.Height = Application.GetRealHeight(45 * 3);
+                    dispalyView.AddChidren(contentView);
+                }
+                else if (SpatialInfo.CurrentSpatial.RoomList.Count < 4)
+                {
+                    dispalyView = new FrameLayout()
+                    {
+                        X = Application.GetRealWidth(10),
+                        Y = Application.GetRealHeight(266),
+                        Width = Application.GetRealWidth(160),
+                        Height = Application.GetRealHeight(200),
+                        BackgroundImagePath = "PersonalCenter/HomeList3bg.png",
+                    };
+                    dialogBody.AddChidren(dispalyView);
+
+                    contentView.Height = Application.GetRealHeight(45 * 4);
+                    dispalyView.AddChidren(contentView);
+                }
+                else
+                {
+                    dispalyView = new FrameLayout()
+                    {
+                        X = Application.GetRealWidth(10),
+                        Y = Application.GetRealHeight(266),
+                        Width = Application.GetRealWidth(160),
+                        Height = Application.GetRealHeight(245),
+                        BackgroundImagePath = "PersonalCenter/HomeList4bg.png",
+                    };
+                    dialogBody.AddChidren(dispalyView);
+
+                    contentView.Height = Application.GetRealHeight(45 * 5);
+                    contentView.ScrollEnabled = true;
+                    dispalyView.AddChidren(contentView);
+                }
+
+
+                var showListRoom = new List<Room>();
+                showListRoom.Add(new Room() { roomName = Language.StringByID(StringId.All) });
+                showListRoom.AddRange(SpatialInfo.CurrentSpatial.RoomList);
+
+                foreach (var roomTemp in showListRoom) 
+                {
+                    string roomName = roomTemp.roomName;
                     var btnRoomName = new Button()
                     {
                         Gravity = Gravity.CenterHorizontal,
@@ -676,14 +735,15 @@
                         dialog.Close();
                         btnRoom.Text = roomName;
                         room = roomTemp;
+                        LoadSenesorList();
                     };
                 }
 
                 dialog.Show();
             };
 
-            btnRoom.MouseUpEventHandler = eventHandler;
-            btnFoorDownIcon.MouseUpEventHandler = eventHandler;
+            btnRoomClickRow.MouseUpEventHandler = eventHandler;
+            //btnFoorDownIcon.MouseUpEventHandler = eventHandler;
         }
 
 

--
Gitblit v1.8.0