| | |
| | | using HDL_ON.Entity; |
| | | using HDL_ON.UI.CSS; |
| | | using System.Collections.Generic; |
| | | using HDL_ON.DriverLayer; |
| | | |
| | | namespace HDL_ON.UI |
| | | { |
| | |
| | | #region 区域变量 |
| | | Room room; |
| | | |
| | | Sensor sensorTemp = new Sensor(); |
| | | #endregion |
| | | |
| | | |
| | |
| | | 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), |
| | |
| | | TextColor = CSS_Color.FirstLevelTitleColor, |
| | | TextSize = CSS_FontSize.PromptFontSize_FirstLevel, |
| | | TextAlignment = TextAlignment.CenterLeft, |
| | | Text = room.name, |
| | | Text = room.roomName, |
| | | }; |
| | | contentView.AddChidren(btnRoom); |
| | | |
| | |
| | | }; |
| | | 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 |
| | | |
| | |
| | | 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), |
| | |
| | | } |
| | | 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); |
| | | |
| | |
| | | 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() |
| | | { |
| | |
| | | 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); |
| | |
| | | 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(); |
| | |
| | | { |
| | | 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, |
| | |
| | | }; |
| | | 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; |
| | | } |
| | |
| | | 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() |
| | | { |
| | |
| | | TextColor = CSS_Color.FirstLevelTitleColor, |
| | | TextSize = CSS_FontSize.TextFontSize, |
| | | IsBold = true, |
| | | Text = sensor.intervalValue[index] |
| | | Text = sensorTemp.GetIntervalValue(sensor.spk)[index] |
| | | }); |
| | | |
| | | subInfoView.AddChidren(new Button() |
| | |
| | | TextColor = CSS_Color.FirstLevelTitleColor, |
| | | TextSize = CSS_FontSize.TextFontSize, |
| | | IsBold = true, |
| | | TextID = sensor.levelTextList[index] |
| | | TextID = levelTextList[index] |
| | | }); |
| | | |
| | | subInfoView.AddChidren(new Button() |
| | |
| | | Width = Application.GetRealWidth(38), |
| | | Height = Application.GetRealHeight(18), |
| | | Radius = (uint)Application.GetRealWidth(4), |
| | | BackgroundColor = sensor.levelColorList[index] |
| | | BackgroundColor = levelColorList[index] |
| | | }); |
| | | } |
| | | |
| | |
| | | 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); |
| | | |
| | |
| | | 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, |
| | |
| | | dialog.Close(); |
| | | btnRoom.Text = roomName; |
| | | room = roomTemp; |
| | | LoadSenesorList(); |
| | | }; |
| | | } |
| | | |