| | |
| | | /// 房间选择下拉图标 |
| | | /// </summary> |
| | | Button btnFoorDownIcon; |
| | | /// <summary> |
| | | /// 传感器列表区域 |
| | | /// </summary> |
| | | FrameLayout sensorListView; |
| | | |
| | | /// <summary> |
| | | /// 天气名称文本 |
| | |
| | | |
| | | #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 |
| | |
| | | public EnvironmentalSciencePage() |
| | | { |
| | | bodyView = this; |
| | | } |
| | | |
| | | public override void RemoveFromParent() |
| | | { |
| | | foreach(var thread in threads) |
| | | { |
| | | thread.Abort(); |
| | | } |
| | | threads.Clear(); |
| | | base.RemoveFromParent(); |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | { |
| | | X = Application.GetRealWidth(24), |
| | | Y = Application.GetRealHeight(16), |
| | | Width = Application.GetRealWidth(55), |
| | | Width = Application.GetRealWidth(60), |
| | | Height = Application.GetRealHeight(48), |
| | | TextSize = 42, |
| | | IsBold = true, |
| | |
| | | Text = "10°C", |
| | | }; |
| | | topWeatherView.AddChidren(btnTempUpperLimitText); |
| | | |
| | | |
| | | var btnTempLowerLimit = new Button() |
| | | { |
| | |
| | | contentView.AddChidren(btnRoom); |
| | | #endregion |
| | | |
| | | FrameLayout sensorListView = new FrameLayout() |
| | | sensorListView = new FrameLayout() |
| | | { |
| | | Gravity = Gravity.CenterHorizontal, |
| | | Y = Application.GetRealHeight(50), |
| | |
| | | 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 |
| | |
| | | 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(); |
| | | }; |
| | | |
| | |
| | | Radius = (uint)Application.GetRealWidth(12), |
| | | BackgroundColor = CSS_Color.MainBackgroundColor, |
| | | Animate = Animate.DownToUp, |
| | | ScrollEnabled = false |
| | | ScrollEnabled = false, |
| | | AnimateSpeed = 0.3f, |
| | | }; |
| | | dialogBodyView.AddChidren(infoView); |
| | | |
| | |
| | | }; |
| | | infoView.AddChidren(btnTitle); |
| | | |
| | | switch(sensor.functionType) |
| | | switch (sensor.functionType) |
| | | { |
| | | case FunctionType.PM10: |
| | | btnTitle.Text = "PM1.0(ug/m²)"; |
| | |
| | | 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)"; |
| | |
| | | case FunctionType.Humidity: |
| | | btnTitle.Text = Language.StringByID(StringId.Humidity) + "(%)"; |
| | | break; |
| | | |
| | | |
| | | } |
| | | |
| | | FrameLayout subTitleView = new FrameLayout() |
| | |
| | | IsBold = true, |
| | | TextID = StringId.IntervalValue, |
| | | }); |
| | | |
| | | |
| | | subTitleView.AddChidren(new Button() |
| | | { |
| | |
| | | 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() |
| | | { |
| | |
| | | Height = Application.GetRealWidth(1), |
| | | BackgroundColor = CSS_Color.DividingLineColor, |
| | | }); |
| | | |
| | | |
| | | FrameLayout subInfoView = new FrameLayout() |
| | | { |
| | |
| | | Text = sensor.intervalValue[index] |
| | | }); |
| | | |
| | | |
| | | subInfoView.AddChidren(new Button() |
| | | { |
| | | Gravity = Gravity.CenterHorizontal, |
| | |
| | | TextColor = CSS_Color.FirstLevelTitleColor, |
| | | TextSize = CSS_FontSize.TextFontSize, |
| | | IsBold = true, |
| | | TextID =sensor.levelTextList[index] |
| | | TextID = sensor.levelTextList[index] |
| | | }); |
| | | |
| | | subInfoView.AddChidren(new Button() |
| | |
| | | Radius = (uint)Application.GetRealWidth(4), |
| | | BackgroundColor = sensor.levelColorList[index] |
| | | }); |
| | | |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | dialog.Show(); |
| | | |
| | | } |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// 房间列表点击事件 |