| | |
| | | { |
| | | static AcstParentPage basePage; |
| | | |
| | | VerticalScrolViewLayout bodyView; |
| | | VerticalScrolViewLayout contentView; |
| | | |
| | | string helloText = "上午好"; |
| | | |
| | | #region 天气控件 |
| | | Button btnOutdoorTemp; |
| | |
| | | public AcstParentPage() |
| | | { |
| | | basePage = this; |
| | | this.function = FunctionList.List.GetAcstParentList()[0]; |
| | | this.BackgroundColor = CSS.CSS_Color.BackgroundColor; |
| | | bodyView = new VerticalScrolViewLayout(); |
| | | this.AddChidren(bodyView); |
| | | subViewList = new Dictionary<string, AcstSubControlView>(); |
| | | } |
| | | /// <summary> |
| | | /// 更新天气信息 |
| | | /// </summary> |
| | | public void InitGetWeatherAction() |
| | | { |
| | | MainPage.CityWeatherAction = () => |
| | | { |
| | | Application.RunOnMainThread(() => |
| | | { |
| | | btnOutdoorTemp.Text = MainPage.cityInfo.temperature + "°"; |
| | | btnWeather.Text = MainPage.cityInfo.weather; |
| | | btnHumidityValues.Text = MainPage.cityInfo.humidity + "%"; |
| | | btnHumidityValues.Width = btnHumidityValues.GetTextWidth() + Application.GetRealWidth(10); |
| | | btnPm25Values.Text = MainPage.cityInfo.pm25; |
| | | btnPm25Values.Width = btnPm25Values.GetTextWidth() + Application.GetRealWidth(10); |
| | | }); |
| | | }; |
| | | } |
| | | /// <summary> |
| | | /// 更新主控数据信息 |
| | | /// </summary> |
| | | public static void UpdateAcstParentInfo(Function temp) |
| | | { |
| | | if (basePage == null) |
| | | { |
| | | return; |
| | | } |
| | | Application.RunOnMainThread(() => |
| | | { |
| | | if (basePage.sensorDiyView_Temp != null) |
| | | basePage.sensorDiyView_Temp.UpdateValue(temp.GetAttribute(AcstParent_AttrEnum.room_temp.ToString()).state); |
| | | if (basePage.sensorDiyView_Humi != null) |
| | | basePage.sensorDiyView_Humi.UpdateValue(temp.GetAttribute(AcstParent_AttrEnum.room_humidity.ToString()).state); |
| | | if (basePage.sensorDiyView_Pm25 != null) |
| | | basePage.sensorDiyView_Pm25.UpdateValue(temp.GetAttribute(AcstParent_AttrEnum.pm25.ToString()).state); |
| | | if (basePage.sensorDiyView_Co2 != null) |
| | | basePage.sensorDiyView_Co2.UpdateValue(temp.GetAttribute(AcstParent_AttrEnum.co2.ToString()).state); |
| | | if (basePage.sensorDiyView_Tvoc != null) |
| | | basePage.sensorDiyView_Tvoc.UpdateValue(temp.GetAttribute(AcstParent_AttrEnum.tvoc.ToString()).state); |
| | | if (basePage.sensorDiyView_EleDay != null) |
| | | basePage.sensorDiyView_EleDay.UpdateValue(temp.GetAttribute(AcstParent_AttrEnum.day_electricity.ToString()).state); |
| | | if (basePage.sensorDiyView_EleMonth != null) |
| | | basePage.sensorDiyView_EleMonth.UpdateValue(temp.GetAttribute(AcstParent_AttrEnum.month_electricity.ToString()).state); |
| | | if (basePage.sensorDiyView_EleActivePower != null) |
| | | basePage.sensorDiyView_EleActivePower.UpdateValue(temp.GetAttribute(AcstParent_AttrEnum.active_power.ToString()).state); |
| | | |
| | | |
| | | |
| | | switch (temp.GetAttrState("mode")) |
| | | { |
| | | case "cool"://制冷 |
| | | basePage.btnModeControl.UnSelectedImagePath = "FunctionIcon/Acst/grey/ModeCoolIcon2.png"; |
| | | basePage.btnModeControl.SelectedImagePath = $"FunctionIcon/Acst/{basePage.imageFolder}/ModeCoolIcon2.png"; |
| | | break; |
| | | case "heat"://制热 |
| | | basePage.btnModeControl.UnSelectedImagePath = "FunctionIcon/Acst/grey/ModeHeatIcon2.png"; |
| | | basePage.btnModeControl.SelectedImagePath = $"FunctionIcon/Acst/{basePage.imageFolder}/ModeHeatIcon2.png"; |
| | | break; |
| | | case "fan"://通风 |
| | | basePage.btnModeControl.UnSelectedImagePath = "FunctionIcon/Acst/grey/ModeFanIcon2.png"; |
| | | basePage.btnModeControl.SelectedImagePath = $"FunctionIcon/Acst/{basePage.imageFolder}/ModeFanIcon2.png"; |
| | | break; |
| | | case "dry"://除湿 |
| | | basePage.btnModeControl.UnSelectedImagePath = "FunctionIcon/Acst/grey/ModeDeHumiIcon2.png"; |
| | | basePage.btnModeControl.SelectedImagePath = $"FunctionIcon/Acst/{basePage.imageFolder}/ModeDeHumiIcon2.png"; |
| | | break; |
| | | case "humidity"://加湿 |
| | | basePage.btnModeControl.UnSelectedImagePath = "FunctionIcon/Acst/grey/ModeHumiIcon2.png"; |
| | | basePage.btnModeControl.SelectedImagePath = $"FunctionIcon/Acst/{basePage.imageFolder}/ModeHumiIcon2.png"; |
| | | break; |
| | | case "heat_humidity"://制热加湿 |
| | | basePage.btnModeControl.UnSelectedImagePath = "FunctionIcon/Acst/grey/ModeHeatHumiIcon2.png"; |
| | | basePage.btnModeControl.SelectedImagePath = $"FunctionIcon/Acst/{basePage.imageFolder}/ModeHeatHumiIcon2.png"; |
| | | break; |
| | | } |
| | | switch (temp.GetAttrState("scene")) |
| | | { |
| | | case "at_home"://在家 |
| | | basePage.btnWorkSceneControl.UnSelectedImagePath = "FunctionIcon/Acst/grey/SceneAtHome2.png"; |
| | | basePage.btnWorkSceneControl.SelectedImagePath = $"FunctionIcon/Acst/{basePage.imageFolder}/SceneAtHome2.png"; |
| | | break; |
| | | case "leave_home"://离家 |
| | | basePage.btnWorkSceneControl.UnSelectedImagePath = "FunctionIcon/Acst/grey/SceneAwayHomeIcon2.png"; |
| | | basePage.btnWorkSceneControl.SelectedImagePath = $"FunctionIcon/Acst/{basePage.imageFolder}/SceneAwayHomeIcon2.png"; |
| | | break; |
| | | case "sleep"://睡眠 |
| | | basePage.btnWorkSceneControl.UnSelectedImagePath = "FunctionIcon/Acst/grey/SceneSleepIcon2.png"; |
| | | basePage.btnWorkSceneControl.SelectedImagePath = $"FunctionIcon/Acst/{basePage.imageFolder}/SceneSleepIcon2.png"; |
| | | break; |
| | | } |
| | | basePage.btnModeControl.IsSelected = basePage.btnWorkSceneControl.IsSelected = basePage.btnPowerControl.IsSelected = temp.trait_on_off.state == "on"; |
| | | }); |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 更新子控信息 |
| | | /// </summary> |
| | | /// <param name="temp"></param> |
| | | public static void UpdateAcstSubInfo(Function temp) |
| | | { |
| | | if(basePage == null) |
| | | { |
| | | return; |
| | | } |
| | | Application.RunOnMainThread(() => { |
| | | var view = basePage.subViewList[temp.sid]; |
| | | if(view!= null) |
| | | { |
| | | view.btnSubHumidityValues.Text = temp.GetAttrState(AcstSub_AttrEnum.room_humidity.ToString()) + "%"; |
| | | view.btnSubTempValues.Text = temp.GetAttrState(AcstSub_AttrEnum.room_temp.ToString()) + "°"; |
| | | view.btnSubPower.IsSelected = temp.GetAttrState(AcstSub_AttrEnum.on_off.ToString()) == "on"; |
| | | } |
| | | }); |
| | | } |
| | | |
| | | public void LoadPage() |
| | | { |
| | | var curTime = DateTime.Now; |
| | | string helloText = "上午好"; |
| | | if (Language.CurrentLanguage != "Chinese") |
| | | { |
| | | helloText = "Good morning"; |
| | |
| | | { |
| | | helloText = "Good evening"; |
| | | } |
| | | |
| | | |
| | | curColor = 0xFF9175F3; |
| | | imageFolder = "purple"; |
| | | } |
| | | this.function = FunctionList.List.GetAcstParentList()[0]; |
| | | this.BackgroundColor = CSS.CSS_Color.BackgroundColor; |
| | | //this.AddChidren(new Button() { Height = Application.GetRealHeight(50), BackgroundColor = curColor }); |
| | | contentView = new VerticalScrolViewLayout() { |
| | | Height = Application.GetRealHeight(667 - 56), |
| | | }; |
| | | this.AddChidren(contentView); |
| | | subViewList = new Dictionary<string, AcstSubControlView>(); |
| | | } |
| | | /// <summary> |
| | | /// 更新天气信息 |
| | | /// </summary> |
| | | public void InitGetWeatherAction() |
| | | { |
| | | MainPage.CityWeatherAction = () => |
| | | { |
| | | Application.RunOnMainThread(() => |
| | | { |
| | | btnOutdoorTemp.Text = MainPage.cityInfo.temperature + "°"; |
| | | btnWeather.Text = MainPage.cityInfo.weather; |
| | | btnHumidityValues.Text = MainPage.cityInfo.humidity + "%"; |
| | | btnHumidityValues.Width = btnHumidityValues.GetTextWidth() + Application.GetRealWidth(10); |
| | | btnPm25Values.Text = MainPage.cityInfo.pm25; |
| | | btnPm25Values.Width = btnPm25Values.GetTextWidth() + Application.GetRealWidth(10); |
| | | }); |
| | | }; |
| | | } |
| | | /// <summary> |
| | | /// 更新主控数据信息 |
| | | /// </summary> |
| | | public static void UpdateAcstParentInfo(Function temp) |
| | | { |
| | | try |
| | | { |
| | | if (basePage == null) |
| | | { |
| | | return; |
| | | } |
| | | Application.RunOnMainThread(() => |
| | | { |
| | | if (basePage.sensorDiyView_Temp != null) |
| | | basePage.sensorDiyView_Temp.UpdateValue(temp.GetAttribute(AcstParent_AttrEnum.room_temp.ToString()).state, true); |
| | | if (basePage.sensorDiyView_Humi != null) |
| | | basePage.sensorDiyView_Humi.UpdateValue(temp.GetAttribute(AcstParent_AttrEnum.room_humidity.ToString()).state, true); |
| | | if (basePage.sensorDiyView_Pm25 != null) |
| | | basePage.sensorDiyView_Pm25.UpdateValue(temp.GetAttribute(AcstParent_AttrEnum.pm25.ToString()).state, false); |
| | | if (basePage.sensorDiyView_Co2 != null) |
| | | basePage.sensorDiyView_Co2.UpdateValue(temp.GetAttribute(AcstParent_AttrEnum.co2.ToString()).state, false); |
| | | if (basePage.sensorDiyView_Tvoc != null) |
| | | basePage.sensorDiyView_Tvoc.UpdateValue(temp.GetAttribute(AcstParent_AttrEnum.tvoc.ToString()).state, false); |
| | | if (basePage.sensorDiyView_EleDay != null) |
| | | basePage.sensorDiyView_EleDay.UpdateValue(temp.GetAttribute(AcstParent_AttrEnum.day_electricity.ToString()).state, false); |
| | | if (basePage.sensorDiyView_EleMonth != null) |
| | | basePage.sensorDiyView_EleMonth.UpdateValue(temp.GetAttribute(AcstParent_AttrEnum.month_electricity.ToString()).state, false); |
| | | if (basePage.sensorDiyView_EleActivePower != null) |
| | | basePage.sensorDiyView_EleActivePower.UpdateValue(temp.GetAttribute(AcstParent_AttrEnum.active_power.ToString()).state, false); |
| | | |
| | | |
| | | |
| | | switch (temp.GetAttrState("mode")) |
| | | { |
| | | case "cool"://制冷 |
| | | basePage.btnModeControl.UnSelectedImagePath = "FunctionIcon/Acst/grey/ModeCoolIcon2.png"; |
| | | basePage.btnModeControl.SelectedImagePath = $"FunctionIcon/Acst/{basePage.imageFolder}/ModeCoolIcon2.png"; |
| | | break; |
| | | case "heat"://制热 |
| | | basePage.btnModeControl.UnSelectedImagePath = "FunctionIcon/Acst/grey/ModeHeatIcon2.png"; |
| | | basePage.btnModeControl.SelectedImagePath = $"FunctionIcon/Acst/{basePage.imageFolder}/ModeHeatIcon2.png"; |
| | | break; |
| | | case "fan"://通风 |
| | | basePage.btnModeControl.UnSelectedImagePath = "FunctionIcon/Acst/grey/ModeFanIcon2.png"; |
| | | basePage.btnModeControl.SelectedImagePath = $"FunctionIcon/Acst/{basePage.imageFolder}/ModeFanIcon2.png"; |
| | | break; |
| | | case "dry"://除湿 |
| | | basePage.btnModeControl.UnSelectedImagePath = "FunctionIcon/Acst/grey/ModeDeHumiIcon2.png"; |
| | | basePage.btnModeControl.SelectedImagePath = $"FunctionIcon/Acst/{basePage.imageFolder}/ModeDeHumiIcon2.png"; |
| | | break; |
| | | case "humidity"://加湿 |
| | | basePage.btnModeControl.UnSelectedImagePath = "FunctionIcon/Acst/grey/ModeHumiIcon2.png"; |
| | | basePage.btnModeControl.SelectedImagePath = $"FunctionIcon/Acst/{basePage.imageFolder}/ModeHumiIcon2.png"; |
| | | break; |
| | | case "heat_humidity"://制热加湿 |
| | | basePage.btnModeControl.UnSelectedImagePath = "FunctionIcon/Acst/grey/ModeHeatHumiIcon2.png"; |
| | | basePage.btnModeControl.SelectedImagePath = $"FunctionIcon/Acst/{basePage.imageFolder}/ModeHeatHumiIcon2.png"; |
| | | break; |
| | | } |
| | | switch (temp.GetAttrState("scene")) |
| | | { |
| | | case "at_home"://在家 |
| | | basePage.btnWorkSceneControl.UnSelectedImagePath = "FunctionIcon/Acst/grey/SceneAtHome2.png"; |
| | | basePage.btnWorkSceneControl.SelectedImagePath = $"FunctionIcon/Acst/{basePage.imageFolder}/SceneAtHome2.png"; |
| | | break; |
| | | case "leave_home"://离家 |
| | | basePage.btnWorkSceneControl.UnSelectedImagePath = "FunctionIcon/Acst/grey/SceneAwayHomeIcon2.png"; |
| | | basePage.btnWorkSceneControl.SelectedImagePath = $"FunctionIcon/Acst/{basePage.imageFolder}/SceneAwayHomeIcon2.png"; |
| | | break; |
| | | case "sleep"://睡眠 |
| | | basePage.btnWorkSceneControl.UnSelectedImagePath = "FunctionIcon/Acst/grey/SceneSleepIcon2.png"; |
| | | basePage.btnWorkSceneControl.SelectedImagePath = $"FunctionIcon/Acst/{basePage.imageFolder}/SceneSleepIcon2.png"; |
| | | break; |
| | | } |
| | | basePage.btnModeControl.IsSelected = basePage.btnWorkSceneControl.IsSelected = basePage.btnPowerControl.IsSelected = temp.GetAttrState("on_off") == "on"; |
| | | }); |
| | | }catch (Exception ex) |
| | | { |
| | | MainPage.Log("科技系统更新数据失败"); |
| | | } |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 更新子控信息 |
| | | /// </summary> |
| | | /// <param name="temp"></param> |
| | | public static void UpdateAcstSubInfo(Function temp) |
| | | { |
| | | try |
| | | { |
| | | if (basePage == null) |
| | | { |
| | | return; |
| | | } |
| | | Application.RunOnMainThread(() => |
| | | { |
| | | try |
| | | { |
| | | AcstSubControlView view = null; |
| | | basePage.subViewList.TryGetValue(temp.sid, out view); |
| | | if (view != null) |
| | | { |
| | | view.btnSubHumidityValues.Text = temp.GetAttrState(AcstSub_AttrEnum.room_humidity.ToString()) + "%"; |
| | | view.btnSubTempValues.Text = temp.GetAttrState(AcstSub_AttrEnum.room_temp.ToString()) + "°"; |
| | | view.btnSubPower.IsSelected = temp.GetAttrState(AcstSub_AttrEnum.on_off.ToString()) == "on"; |
| | | } |
| | | } |
| | | catch (Exception ex ) { |
| | | MainPage.Log($"科技系统更新异常1:{ex.Message}"); |
| | | } |
| | | }); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | MainPage.Log($"科技系统更新异常123:{ex.Message}"); |
| | | } |
| | | } |
| | | |
| | | public void LoadPage() |
| | | { |
| | | #region 头部信息区域 |
| | | FrameLayout topView = new FrameLayout() |
| | | { |
| | | Height = Application.GetRealHeight(180), |
| | | BackgroundImagePath = $"FunctionIcon/Acst/{imageFolder}/TopViewBg.png", |
| | | }; |
| | | bodyView.AddChidren(topView); |
| | | contentView.AddChidren(topView); |
| | | |
| | | var backView = new FrameLayout() |
| | | { |
| | |
| | | |
| | | #endregion |
| | | |
| | | bodyView.AddChidren(new Button |
| | | contentView.AddChidren(new Button |
| | | { |
| | | Height = Application.GetRealHeight(8), |
| | | }); |
| | | |
| | | #region 数据 |
| | | var infoView = new FrameLayout() |
| | | { |
| | | Y = topView.Bottom, |
| | | Height = Application.GetRealHeight(104), |
| | | BackgroundColor = CSS.CSS_Color.MainBackgroundColor, |
| | | }; |
| | | bodyView.AddChidren(infoView); |
| | | |
| | | var infoContentView = new FrameLayout() |
| | | { |
| | | Gravity = Gravity.Center, |
| | | Width = Application.GetRealWidth(343), |
| | | Height = Application.GetRealHeight(72), |
| | | BackgroundImagePath = $"FunctionIcon/Acst/{imageFolder}/MsgViewBg.png", |
| | | }; |
| | | infoView.AddChidren(infoContentView); |
| | | |
| | | #region 传感器数据 |
| | | #region 传感器数据总计 |
| | | int sensorCount = 0; |
| | | var tempObj = function.GetAttribute(AcstParent_AttrEnum.room_temp.ToString()); |
| | | if (tempObj != null) |
| | |
| | | { |
| | | sensorCount++; |
| | | } |
| | | |
| | | var sensorListView = new HorizontalScrolViewLayout() |
| | | { |
| | | Width = Application.GetRealWidth(60 * sensorCount), |
| | | Gravity = Gravity.Center, |
| | | }; |
| | | if (sensorCount > 0) |
| | | { |
| | | infoContentView.AddChidren(sensorListView); |
| | | } |
| | | |
| | | if (tempObj != null) |
| | | { |
| | | sensorDiyView_Temp = new SensorDiyView(sensorListView, curColor, tempObj.state == "" ? "--" : tempObj.state, "°", Language.StringByID(StringId.Temp)); |
| | | } |
| | | if (humiObj != null) |
| | | { |
| | | sensorDiyView_Humi = new SensorDiyView(sensorListView, curColor, humiObj.state == "" ? "--" : humiObj.state, "%", Language.StringByID(StringId.Humidity)); |
| | | } |
| | | if (pm25Obj != null) |
| | | { |
| | | sensorDiyView_Pm25 = new SensorDiyView(sensorListView, curColor, pm25Obj.state == "" ? "--" : pm25Obj.state, "", "PM2.5"); |
| | | } |
| | | if (co2Obj != null) |
| | | { |
| | | sensorDiyView_Co2 = new SensorDiyView(sensorListView, curColor, co2Obj.state == "" ? "--" : co2Obj.state, "", "CO2"); |
| | | } |
| | | if (tvocObj != null) |
| | | { |
| | | sensorDiyView_Tvoc = new SensorDiyView(sensorListView, curColor, tvocObj.state == "" ? "--" : tvocObj.state, "", "TVOC"); |
| | | } |
| | | #endregion |
| | | |
| | | #region 能耗数据 |
| | | |
| | | #region 能耗数据统计 |
| | | int energyCount = 0; |
| | | var totalObj = function.GetAttribute(AcstParent_AttrEnum.active_power.ToString()); |
| | | if (totalObj != null) |
| | |
| | | { |
| | | energyCount++; |
| | | } |
| | | var energyListView = new HorizontalScrolViewLayout() |
| | | { |
| | | Width = Application.GetRealWidth(100 * energyCount), |
| | | Gravity = Gravity.Center, |
| | | Visible = false, |
| | | }; |
| | | if (energyCount > 0) |
| | | { |
| | | infoContentView.AddChidren(energyListView); |
| | | } |
| | | if (totalObj != null) |
| | | { |
| | | string text = "用电功率"; |
| | | if (Language.CurrentLanguage != "Chinese") |
| | | { |
| | | text = "Power"; |
| | | } |
| | | |
| | | sensorDiyView_EleActivePower = new SensorDiyView(energyListView, curColor, totalObj.state == "" ? "--" : totalObj.state , "KW", text, 100); |
| | | } |
| | | if (dayObj != null) |
| | | { |
| | | string text = "今日耗电"; |
| | | if (Language.CurrentLanguage != "Chinese") |
| | | { |
| | | text = "Power of today"; |
| | | } |
| | | sensorDiyView_EleDay = new SensorDiyView(energyListView, curColor, dayObj.state == "" ? "--" : dayObj.state , "KW", text,100); |
| | | } |
| | | if (monthObj != null) |
| | | { |
| | | string text = "本月耗电"; |
| | | if (Language.CurrentLanguage != "Chinese") |
| | | { |
| | | text = "Power of month"; |
| | | } |
| | | sensorDiyView_EleMonth = new SensorDiyView(energyListView, curColor, monthObj.state == "" ? "--" : monthObj.state , "KWh", text, 100); |
| | | } |
| | | |
| | | |
| | | var btnChangeClick = new Button(); |
| | | infoView.AddChidren(btnChangeClick); |
| | | |
| | | bool showSensor = true; |
| | | EventHandler<MouseEventArgs> changeInfoEvent = (sender, e) => { |
| | | if (showSensor) |
| | | { |
| | | sensorListView.Visible = false; |
| | | showSensor = false; |
| | | energyListView.Visible = true; |
| | | } |
| | | else |
| | | { |
| | | sensorListView.Visible = true; |
| | | showSensor = true; |
| | | energyListView.Visible = false; |
| | | } |
| | | }; |
| | | if (sensorCount > 0 && energyCount > 0) |
| | | { |
| | | btnChangeClick.MouseUpEventHandler = changeInfoEvent; |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | if (energyCount > 0 || sensorCount > 0) |
| | | { |
| | | var infoView = new FrameLayout() |
| | | { |
| | | Y = topView.Bottom, |
| | | Height = Application.GetRealHeight(104), |
| | | BackgroundColor = CSS.CSS_Color.MainBackgroundColor, |
| | | }; |
| | | contentView.AddChidren(infoView); |
| | | |
| | | var infoContentView = new FrameLayout() |
| | | { |
| | | Gravity = Gravity.Center, |
| | | Width = Application.GetRealWidth(343), |
| | | Height = Application.GetRealHeight(72), |
| | | BackgroundImagePath = $"FunctionIcon/Acst/{imageFolder}/MsgViewBg.png", |
| | | }; |
| | | infoView.AddChidren(infoContentView); |
| | | |
| | | #region 传感器数据 |
| | | |
| | | var sensorListView = new HorizontalScrolViewLayout() |
| | | { |
| | | Width = Application.GetRealWidth(60 * sensorCount), |
| | | Gravity = Gravity.Center, |
| | | }; |
| | | if (sensorCount > 0) |
| | | { |
| | | infoContentView.AddChidren(sensorListView); |
| | | } |
| | | |
| | | if (tempObj != null) |
| | | { |
| | | string tempValues = tempObj.state == "" ? "--" : tempObj.state; |
| | | if (tempValues.Contains(".")) |
| | | { |
| | | tempValues = tempValues.Remove(tempValues.IndexOf('.'), tempValues.Length - tempValues.IndexOf('.')); |
| | | } |
| | | sensorDiyView_Temp = new SensorDiyView(sensorListView, curColor, tempValues, "°","", Language.StringByID(StringId.Temp)); |
| | | } |
| | | if (humiObj != null) |
| | | { |
| | | string humiValues = humiObj.state == "" ? "--" : humiObj.state; |
| | | if (humiValues.Contains(".")) |
| | | { |
| | | humiValues = humiValues.Remove(humiValues.IndexOf('.'), humiValues.Length - humiValues.IndexOf('.')); |
| | | } |
| | | sensorDiyView_Humi = new SensorDiyView(sensorListView, curColor, humiValues , "%", "", Language.StringByID(StringId.Humidity)); |
| | | } |
| | | if (pm25Obj != null) |
| | | { |
| | | sensorDiyView_Pm25 = new SensorDiyView(sensorListView, curColor, pm25Obj.state == "" ? "--" : pm25Obj.state, "", "", "PM2.5"); |
| | | } |
| | | if (co2Obj != null) |
| | | { |
| | | sensorDiyView_Co2 = new SensorDiyView(sensorListView, curColor, co2Obj.state == "" ? "--" : co2Obj.state, "", "", "CO2"); |
| | | } |
| | | if (tvocObj != null) |
| | | { |
| | | sensorDiyView_Tvoc = new SensorDiyView(sensorListView, curColor, tvocObj.state == "" ? "--" : tvocObj.state, "", "", "TVOC"); |
| | | } |
| | | #endregion |
| | | |
| | | #region 能耗数据 |
| | | var energyListView = new HorizontalScrolViewLayout() |
| | | { |
| | | Width = Application.GetRealWidth(100 * energyCount), |
| | | Gravity = Gravity.Center, |
| | | Visible = sensorCount == 0 |
| | | }; |
| | | if (energyCount > 0) |
| | | { |
| | | infoContentView.AddChidren(energyListView); |
| | | } |
| | | if (totalObj != null) |
| | | { |
| | | string text = "用电功率"; |
| | | if (Language.CurrentLanguage != "Chinese") |
| | | { |
| | | text = "Power"; |
| | | } |
| | | sensorDiyView_EleActivePower = new SensorDiyView(energyListView, curColor, totalObj.state == "" ? "--" : totalObj.state, "", "KW", text, 100); |
| | | } |
| | | if (dayObj != null) |
| | | { |
| | | string text = "今日耗电"; |
| | | if (Language.CurrentLanguage != "Chinese") |
| | | { |
| | | text = "Power of today"; |
| | | } |
| | | sensorDiyView_EleDay = new SensorDiyView(energyListView, curColor, dayObj.state == "" ? "--" : dayObj.state, "", "KWh", text, 100); |
| | | } |
| | | if (monthObj != null) |
| | | { |
| | | string text = "本月耗电"; |
| | | if (Language.CurrentLanguage != "Chinese") |
| | | { |
| | | text = "Power of month"; |
| | | } |
| | | sensorDiyView_EleMonth = new SensorDiyView(energyListView, curColor, monthObj.state == "" ? "--" : monthObj.state, "", "KWh", text, 100); |
| | | } |
| | | |
| | | |
| | | var btnChangeClick = new Button(); |
| | | infoView.AddChidren(btnChangeClick); |
| | | |
| | | bool showSensor = true; |
| | | EventHandler<MouseEventArgs> changeInfoEvent = (sender, e) => |
| | | { |
| | | if (showSensor) |
| | | { |
| | | sensorListView.Visible = false; |
| | | showSensor = false; |
| | | energyListView.Visible = true; |
| | | } |
| | | else |
| | | { |
| | | sensorListView.Visible = true; |
| | | showSensor = true; |
| | | energyListView.Visible = false; |
| | | } |
| | | }; |
| | | if (sensorCount > 0 && energyCount > 0) |
| | | { |
| | | btnChangeClick.MouseUpEventHandler = changeInfoEvent; |
| | | } |
| | | |
| | | #endregion |
| | | } |
| | | #endregion |
| | | |
| | | #region 子控列表 |
| | |
| | | { |
| | | Height = Application.GetRealHeight(54-11), |
| | | }; |
| | | bodyView.AddChidren(subTitleView); |
| | | contentView.AddChidren(subTitleView); |
| | | |
| | | var btnCollection = new Button() |
| | | { |
| | |
| | | var btnTitleText2 = new Button() |
| | | { |
| | | X = btnCollection.Right, |
| | | Text = "我的家庭", |
| | | TextID = StringId.MyHome, |
| | | TextSize = 16, |
| | | TextColor = 0xFF242424, |
| | | TextAlignment = TextAlignment.CenterLeft, |
| | |
| | | Height = Application.GetRealHeight(54), |
| | | }; |
| | | subTitleView.AddChidren(btnTitleText2); |
| | | if(Language.CurrentLanguage != "Chinese") |
| | | { |
| | | btnTitleText2.Text = "My Home"; |
| | | } |
| | | |
| | | int subFunctionCount = 0; |
| | | |
| | |
| | | { |
| | | Height = Application.GetRealHeight(88), |
| | | }; |
| | | bodyView.AddChidren(subFunctionListView); |
| | | contentView.AddChidren(subFunctionListView); |
| | | |
| | | |
| | | subFunctionListView.AddChidren(new Button { Width = Application.GetRealWidth(9) }); |
| | | foreach (var sub in FunctionList.List.GetAcstSubList()) |
| | | new System.Threading.Thread(() => |
| | | { |
| | | if (subViewList.ContainsKey(sub.sid)) |
| | | try |
| | | { |
| | | continue; |
| | | } |
| | | #if DEBUG |
| | | System.Threading.Thread.Sleep(200); |
| | | #endif |
| | | |
| | | if (subFunctionCount > 0 && subFunctionCount % 2 == 0) |
| | | { |
| | | subFunctionListView = new HorizontalScrolViewLayout() |
| | | foreach (var sub in FunctionList.List.GetAcstSubList()) |
| | | { |
| | | Height = Application.GetRealHeight(93), |
| | | }; |
| | | bodyView.AddChidren(subFunctionListView); |
| | | subFunctionListView.AddChidren(new Button { Width = Application.GetRealWidth(9) }); |
| | | if (subViewList.ContainsKey(sub.sid)) |
| | | { |
| | | continue; |
| | | } |
| | | |
| | | Application.RunOnMainThread(() => |
| | | { |
| | | if (subFunctionCount > 0 && subFunctionCount % 2 == 0) |
| | | { |
| | | subFunctionListView = new HorizontalScrolViewLayout() |
| | | { |
| | | Height = Application.GetRealHeight(93), |
| | | }; |
| | | contentView.AddChidren(subFunctionListView); |
| | | subFunctionListView.AddChidren(new Button { Width = Application.GetRealWidth(9) }); |
| | | } |
| | | |
| | | AcstSubControlView subFunctionView = new AcstSubControlView(sub, subFunctionListView, imageFolder); |
| | | subViewList.Add(sub.sid, subFunctionView); |
| | | if (basePage != null) |
| | | { |
| | | new System.Threading.Thread(() => |
| | | { |
| | | Control.Ins.SendReadCommand(sub); |
| | | }) |
| | | { IsBackground = true }.Start(); |
| | | } |
| | | subFunctionCount++; |
| | | }); |
| | | |
| | | System.Threading.Thread.Sleep(10); |
| | | } |
| | | } |
| | | |
| | | AcstSubControlView subFunctionView = new AcstSubControlView(sub, subFunctionListView,imageFolder); |
| | | |
| | | subViewList.Add(sub.sid, subFunctionView); |
| | | |
| | | Control.Ins.SendReadCommand(sub); |
| | | |
| | | subFunctionCount++; |
| | | } |
| | | |
| | | catch { } |
| | | finally{ |
| | | |
| | | } |
| | | }).Start(); |
| | | #endregion |
| | | |
| | | bodyView.AddChidren(new Button() |
| | | { |
| | | Height = Application.GetRealHeight(72), |
| | | }); |
| | | |
| | | #region 底部控制栏 |
| | | var bottomView = new FrameLayout() |
| | |
| | | bottomView.AddChidren(btnModeControl); |
| | | btnModeControl.MouseUpEventHandler = (sender3, e3) => |
| | | { |
| | | if(function.trait_on_off.state == "off") |
| | | { |
| | | return; |
| | | } |
| | | //if(function.trait_on_off.state == "off") |
| | | //{ |
| | | // return; |
| | | //} |
| | | Dialog dialog = new Dialog(); |
| | | |
| | | var dialogView = new FrameLayout(); |
| | |
| | | dialog.Close(); |
| | | }; |
| | | |
| | | var dialogContentView = new FrameLayout() { |
| | | var dialogContentView = new VerticalScrolViewLayout() { |
| | | X = Application.GetRealWidth(34), |
| | | Y = Application.GetRealHeight(291), |
| | | Width = Application.GetRealWidth(148), |
| | |
| | | { |
| | | X = Application.GetRealWidth(16), |
| | | Width = Application.GetRealWidth(100), |
| | | TextID = StringId.SelectScene, |
| | | TextID = StringId.SelectMode, |
| | | TextSize = 16, |
| | | TextColor = CSS.CSS_Color.FirstLevelTitleColor, |
| | | IsBold = true, |
| | |
| | | }; |
| | | titleView.AddChidren(btnTitleText); |
| | | |
| | | #region 制冷 |
| | | var coolView = new FrameLayout() |
| | | if (function.GetAttribute(AcstParent_AttrEnum.mode.ToString()).value.Contains(AcstParent_Attr_ModeValueEnum.cool.ToString())) |
| | | { |
| | | X = Application.GetRealWidth(2), |
| | | Y = titleView.Bottom, |
| | | Width = Application.GetRealWidth(144), |
| | | Height = Application.GetRealHeight(44), |
| | | }; |
| | | dialogContentView.AddChidren(coolView); |
| | | coolView.AddChidren(new Button |
| | | { |
| | | Width = Application.GetRealWidth(112), |
| | | Gravity = Gravity.CenterHorizontal, |
| | | Height = 1, |
| | | BackgroundColor = CSS.CSS_Color.DividingLineColor, |
| | | }); |
| | | IconButton coolIconButton = new IconButton("FunctionIcon/Acst/grey/ModeCoolIcon.png", $"FunctionIcon/Acst/{imageFolder}/ModeCoolIcon.png", |
| | | Language.StringByID(StringId.Cool),curColor, function.GetAttrState(AcstParent_AttrEnum.mode.ToString()) == "cool"); |
| | | coolIconButton.Click(()=> { |
| | | dialog.Close(); |
| | | btnModeControl.SelectedImagePath = $"FunctionIcon/Acst/{imageFolder}/ModeCoolIcon2.png"; |
| | | new System.Threading.Thread(() => { |
| | | Dictionary<string, string> d = new Dictionary<string, string>(); |
| | | d.Add(AcstParent_AttrEnum.mode.ToString(), AcstParent_Attr_ModeValueEnum.cool.ToString()); |
| | | Control.Ins.SendWriteCommand(function, d); |
| | | }) { IsBackground = true }.Start(); |
| | | }); |
| | | coolView.AddChidren(coolIconButton); |
| | | #endregion |
| | | #region 制冷 |
| | | var coolView = new FrameLayout() |
| | | { |
| | | X = Application.GetRealWidth(2), |
| | | Width = Application.GetRealWidth(144), |
| | | Height = Application.GetRealHeight(44), |
| | | }; |
| | | dialogContentView.AddChidren(coolView); |
| | | coolView.AddChidren(new Button |
| | | { |
| | | Width = Application.GetRealWidth(112), |
| | | Gravity = Gravity.CenterHorizontal, |
| | | Height = 1, |
| | | BackgroundColor = CSS.CSS_Color.DividingLineColor, |
| | | }); |
| | | IconButton coolIconButton = new IconButton("FunctionIcon/Acst/grey/ModeCoolIcon.png", $"FunctionIcon/Acst/{imageFolder}/ModeCoolIcon.png", |
| | | Language.StringByID(StringId.Cool), curColor, function.GetAttrState(AcstParent_AttrEnum.mode.ToString()) == "cool"); |
| | | coolIconButton.Click(() => |
| | | { |
| | | dialog.Close(); |
| | | btnModeControl.SelectedImagePath = $"FunctionIcon/Acst/{imageFolder}/ModeCoolIcon2.png"; |
| | | new System.Threading.Thread(() => |
| | | { |
| | | Dictionary<string, string> d = new Dictionary<string, string>(); |
| | | d.Add(AcstParent_AttrEnum.mode.ToString(), AcstParent_Attr_ModeValueEnum.cool.ToString()); |
| | | Control.Ins.SendWriteCommand(function, d); |
| | | }) |
| | | { IsBackground = true }.Start(); |
| | | }); |
| | | coolView.AddChidren(coolIconButton); |
| | | #endregion |
| | | } |
| | | |
| | | if (function.GetAttribute(AcstParent_AttrEnum.mode.ToString()).value.Contains(AcstParent_Attr_ModeValueEnum.heat.ToString())) |
| | | { |
| | | #region 制热 |
| | | var heatView = new FrameLayout() |
| | | { |
| | | X = Application.GetRealWidth(2), |
| | | Width = Application.GetRealWidth(144), |
| | | Height = Application.GetRealHeight(44), |
| | | }; |
| | | dialogContentView.AddChidren(heatView); |
| | | heatView.AddChidren(new Button |
| | | { |
| | | Width = Application.GetRealWidth(112), |
| | | Gravity = Gravity.CenterHorizontal, |
| | | Height = 1, |
| | | BackgroundColor = CSS.CSS_Color.DividingLineColor, |
| | | }); |
| | | IconButton heatIconButton = new IconButton("FunctionIcon/Acst/grey/ModeHeatIcon.png", $"FunctionIcon/Acst/{imageFolder}/ModeHeatIcon.png", |
| | | Language.StringByID(StringId.Heat), curColor, function.GetAttrState(AcstParent_AttrEnum.mode.ToString()) == "heat"); |
| | | heatIconButton.Click(() => |
| | | { |
| | | dialog.Close(); |
| | | btnModeControl.SelectedImagePath = $"FunctionIcon/Acst/{imageFolder}/ModeHeatIcon2.png"; |
| | | new System.Threading.Thread(() => |
| | | { |
| | | Dictionary<string, string> d = new Dictionary<string, string>(); |
| | | d.Add("mode", "heat"); |
| | | Control.Ins.SendWriteCommand(function, d); |
| | | }) |
| | | { IsBackground = true }.Start(); |
| | | }); |
| | | heatView.AddChidren(heatIconButton); |
| | | #endregion |
| | | } |
| | | |
| | | #region 制热 |
| | | var heatView = new FrameLayout() |
| | | if (function.GetAttribute(AcstParent_AttrEnum.mode.ToString()).value.Contains(AcstParent_Attr_ModeValueEnum.fan.ToString())) |
| | | { |
| | | X = Application.GetRealWidth(2), |
| | | Y = coolView.Bottom, |
| | | Width = Application.GetRealWidth(144), |
| | | Height = Application.GetRealHeight(44), |
| | | }; |
| | | dialogContentView.AddChidren(heatView); |
| | | heatView.AddChidren(new Button |
| | | { |
| | | Width = Application.GetRealWidth(112), |
| | | Gravity = Gravity.CenterHorizontal, |
| | | Height = 1, |
| | | BackgroundColor = CSS.CSS_Color.DividingLineColor, |
| | | }); |
| | | IconButton heatIconButton = new IconButton("FunctionIcon/Acst/grey/ModeHeatIcon.png", $"FunctionIcon/Acst/{imageFolder}/ModeHeatIcon.png", |
| | | Language.StringByID(StringId.Heat), curColor, function.GetAttrState(AcstParent_AttrEnum.mode.ToString()) == "heat"); |
| | | heatIconButton.Click(() => { |
| | | dialog.Close(); |
| | | btnModeControl.SelectedImagePath = $"FunctionIcon/Acst/{imageFolder}/ModeHeatIcon2.png"; |
| | | new System.Threading.Thread(() => { |
| | | Dictionary<string, string> d = new Dictionary<string, string>(); |
| | | d.Add("mode", "heat"); |
| | | Control.Ins.SendWriteCommand(function, d); |
| | | }) |
| | | { IsBackground = true }.Start(); |
| | | }); |
| | | heatView.AddChidren(heatIconButton); |
| | | #endregion |
| | | #region 通风 |
| | | var fanView = new FrameLayout() |
| | | { |
| | | X = Application.GetRealWidth(2), |
| | | Width = Application.GetRealWidth(144), |
| | | Height = Application.GetRealHeight(44), |
| | | }; |
| | | dialogContentView.AddChidren(fanView); |
| | | fanView.AddChidren(new Button |
| | | { |
| | | Width = Application.GetRealWidth(112), |
| | | Gravity = Gravity.CenterHorizontal, |
| | | Height = 1, |
| | | BackgroundColor = CSS.CSS_Color.DividingLineColor, |
| | | }); |
| | | IconButton fanIconButton = new IconButton("FunctionIcon/Acst/grey/ModeFanIcon.png", $"FunctionIcon/Acst/{imageFolder}/ModeFanIcon.png", |
| | | Language.StringByID(StringId.Ventilated), curColor, function.GetAttrState(AcstParent_AttrEnum.mode.ToString()) == AcstParent_Attr_ModeValueEnum.fan.ToString()); |
| | | fanIconButton.Click(() => |
| | | { |
| | | btnModeControl.SelectedImagePath = $"FunctionIcon/Acst/{imageFolder}/ModeFanIcon2.png"; |
| | | dialog.Close(); |
| | | new System.Threading.Thread(() => |
| | | { |
| | | Dictionary<string, string> d = new Dictionary<string, string>(); |
| | | d.Add("mode", AcstParent_Attr_ModeValueEnum.fan.ToString()); |
| | | Control.Ins.SendWriteCommand(function, d); |
| | | }) |
| | | { IsBackground = true }.Start(); |
| | | }); |
| | | fanView.AddChidren(fanIconButton); |
| | | #endregion |
| | | } |
| | | |
| | | #region 除湿 |
| | | var dehumiView = new FrameLayout() |
| | | if (function.GetAttribute(AcstParent_AttrEnum.mode.ToString()).value.Contains(AcstParent_Attr_ModeValueEnum.dry.ToString())) |
| | | { |
| | | X = Application.GetRealWidth(2), |
| | | Y = heatView.Bottom, |
| | | Width = Application.GetRealWidth(144), |
| | | Height = Application.GetRealHeight(44), |
| | | }; |
| | | dialogContentView.AddChidren(dehumiView); |
| | | dehumiView.AddChidren(new Button |
| | | #region 除湿 |
| | | var dehumiView = new FrameLayout() |
| | | { |
| | | X = Application.GetRealWidth(2), |
| | | Width = Application.GetRealWidth(144), |
| | | Height = Application.GetRealHeight(44), |
| | | }; |
| | | dialogContentView.AddChidren(dehumiView); |
| | | dehumiView.AddChidren(new Button |
| | | { |
| | | Width = Application.GetRealWidth(112), |
| | | Gravity = Gravity.CenterHorizontal, |
| | | Height = 1, |
| | | BackgroundColor = CSS.CSS_Color.DividingLineColor, |
| | | }); |
| | | IconButton dehumiIconButton = new IconButton("FunctionIcon/Acst/grey/ModeDeHumiIcon.png", $"FunctionIcon/Acst/{imageFolder}/ModeDeHumiIcon.png", |
| | | Language.StringByID(StringId.Dry), curColor, function.GetAttrState(AcstParent_AttrEnum.mode.ToString()) == AcstParent_Attr_ModeValueEnum.dry.ToString()); |
| | | dehumiIconButton.Click(() => |
| | | { |
| | | btnModeControl.SelectedImagePath = $"FunctionIcon/Acst/{imageFolder}/ModeDeHumiIcon2.png"; |
| | | dialog.Close(); |
| | | new System.Threading.Thread(() => |
| | | { |
| | | Dictionary<string, string> d = new Dictionary<string, string>(); |
| | | d.Add("mode", AcstParent_Attr_ModeValueEnum.dry.ToString()); |
| | | Control.Ins.SendWriteCommand(function, d); |
| | | }) |
| | | { IsBackground = true }.Start(); |
| | | }); |
| | | dehumiView.AddChidren(dehumiIconButton); |
| | | #endregion |
| | | } |
| | | if (function.GetAttribute(AcstParent_AttrEnum.mode.ToString()).value.Contains(AcstParent_Attr_ModeValueEnum.heat_humidity.ToString())) |
| | | { |
| | | Width = Application.GetRealWidth(112), |
| | | Gravity = Gravity.CenterHorizontal, |
| | | Height = 1, |
| | | BackgroundColor = CSS.CSS_Color.DividingLineColor, |
| | | }); |
| | | IconButton dehumiIconButton = new IconButton("FunctionIcon/Acst/grey/ModeDeHumiIcon.png", $"FunctionIcon/Acst/{imageFolder}/ModeDeHumiIcon.png", |
| | | Language.StringByID(StringId.Humidity), curColor, function.GetAttrState(AcstParent_AttrEnum.mode.ToString()) == AcstParent_Attr_ModeValueEnum.dry.ToString()); |
| | | dehumiIconButton.Click(() => { |
| | | btnModeControl.SelectedImagePath = $"FunctionIcon/Acst/{imageFolder}/ModeDeHumiIcon2.png"; |
| | | dialog.Close(); |
| | | new System.Threading.Thread(() => { |
| | | Dictionary<string, string> d = new Dictionary<string, string>(); |
| | | d.Add("mode", AcstParent_Attr_ModeValueEnum.dry.ToString()); |
| | | Control.Ins.SendWriteCommand(function, d); |
| | | }) |
| | | { IsBackground = true }.Start(); |
| | | }); |
| | | dehumiView.AddChidren(dehumiIconButton); |
| | | #endregion |
| | | |
| | | #region 通风 |
| | | var fanView = new FrameLayout() |
| | | { |
| | | X = Application.GetRealWidth(2), |
| | | Y = dehumiView.Bottom, |
| | | Width = Application.GetRealWidth(144), |
| | | Height = Application.GetRealHeight(44), |
| | | }; |
| | | dialogContentView.AddChidren(fanView); |
| | | fanView.AddChidren(new Button |
| | | { |
| | | Width = Application.GetRealWidth(112), |
| | | Gravity = Gravity.CenterHorizontal, |
| | | Height = 1, |
| | | BackgroundColor = CSS.CSS_Color.DividingLineColor, |
| | | }); |
| | | IconButton fanIconButton = new IconButton("FunctionIcon/Acst/grey/ModeFanIcon.png", $"FunctionIcon/Acst/{imageFolder}/ModeFanIcon.png", |
| | | Language.StringByID(StringId.Ventilated), curColor, function.GetAttrState(AcstParent_AttrEnum.mode.ToString()) == AcstParent_Attr_ModeValueEnum.fan.ToString()); |
| | | fanIconButton.Click(() => { |
| | | btnModeControl.SelectedImagePath = $"FunctionIcon/Acst/{imageFolder}/ModeFanIcon2.png"; |
| | | dialog.Close(); |
| | | new System.Threading.Thread(() => { |
| | | Dictionary<string, string> d = new Dictionary<string, string>(); |
| | | d.Add("mode", AcstParent_Attr_ModeValueEnum.fan.ToString()); |
| | | Control.Ins.SendWriteCommand(function, d); |
| | | }) |
| | | { IsBackground = true }.Start(); |
| | | }); |
| | | fanView.AddChidren(fanIconButton); |
| | | #endregion |
| | | #region 制热除湿 |
| | | var heatHumiView = new FrameLayout() |
| | | { |
| | | X = Application.GetRealWidth(2), |
| | | Width = Application.GetRealWidth(144), |
| | | Height = Application.GetRealHeight(44), |
| | | }; |
| | | dialogContentView.AddChidren(heatHumiView); |
| | | heatHumiView.AddChidren(new Button |
| | | { |
| | | Gravity = Gravity.CenterHorizontal, |
| | | Width = Application.GetRealWidth(112), |
| | | Height = 1, |
| | | BackgroundColor = CSS.CSS_Color.DividingLineColor, |
| | | }); |
| | | IconButton heatHumiIconButton = new IconButton("FunctionIcon/Acst/grey/ModeHeatHumiIcon.png", $"FunctionIcon/Acst/{imageFolder}/ModeHeatHumiIcon.png", |
| | | Language.StringByID(StringId.HeatingAndDehumidification), curColor, function.GetAttrState(AcstParent_AttrEnum.mode.ToString()) == AcstParent_Attr_ModeValueEnum.heat_humidity.ToString()); |
| | | heatHumiIconButton.Click(() => |
| | | { |
| | | btnModeControl.SelectedImagePath = $"FunctionIcon/Acst/{imageFolder}/ModeHeatHumiIcon2.png"; |
| | | dialog.Close(); |
| | | new System.Threading.Thread(() => |
| | | { |
| | | Dictionary<string, string> d = new Dictionary<string, string>(); |
| | | d.Add("mode", AcstParent_Attr_ModeValueEnum.heat_humidity.ToString()); |
| | | Control.Ins.SendWriteCommand(function, d); |
| | | }) |
| | | { IsBackground = true }.Start(); |
| | | }); |
| | | heatHumiView.AddChidren(heatHumiIconButton); |
| | | #endregion |
| | | } |
| | | |
| | | #region 制热除湿 |
| | | var heatHumiView = new FrameLayout() |
| | | if (function.GetAttribute(AcstParent_AttrEnum.mode.ToString()).value.Contains(AcstParent_Attr_ModeValueEnum.humidity.ToString())) |
| | | { |
| | | X = Application.GetRealWidth(2), |
| | | Y = fanView.Bottom, |
| | | Width = Application.GetRealWidth(144), |
| | | Height = Application.GetRealHeight(44), |
| | | }; |
| | | dialogContentView.AddChidren(heatHumiView); |
| | | heatHumiView.AddChidren(new Button |
| | | { |
| | | Gravity = Gravity.CenterHorizontal, |
| | | Width = Application.GetRealWidth(112), |
| | | Height = 1, |
| | | BackgroundColor = CSS.CSS_Color.DividingLineColor, |
| | | }); |
| | | IconButton heatHumiIconButton = new IconButton("FunctionIcon/Acst/grey/ModeHeatHumiIcon.png", $"FunctionIcon/Acst/{imageFolder}/ModeHeatHumiIcon.png", |
| | | Language.StringByID(StringId.HeatingAndDehumidification), curColor, function.GetAttrState(AcstParent_AttrEnum.mode.ToString()) == AcstParent_Attr_ModeValueEnum.heat_humidity.ToString()); |
| | | heatHumiIconButton.Click(() => { |
| | | btnModeControl.SelectedImagePath = $"FunctionIcon/Acst/{imageFolder}/ModeHeatHumiIcon2.png"; |
| | | dialog.Close(); |
| | | new System.Threading.Thread(() => { |
| | | Dictionary<string, string> d = new Dictionary<string, string>(); |
| | | d.Add("mode", AcstParent_Attr_ModeValueEnum.heat_humidity.ToString()); |
| | | Control.Ins.SendWriteCommand(function, d); |
| | | }) |
| | | { IsBackground = true }.Start(); |
| | | }); |
| | | heatHumiView.AddChidren(heatHumiIconButton); |
| | | #endregion |
| | | |
| | | #region 加湿 |
| | | var humiView = new FrameLayout() |
| | | { |
| | | X = Application.GetRealWidth(2), |
| | | Y = heatHumiView.Bottom, |
| | | Width = Application.GetRealWidth(144), |
| | | Height = Application.GetRealHeight(44), |
| | | }; |
| | | dialogContentView.AddChidren(humiView); |
| | | humiView.AddChidren(new Button |
| | | { |
| | | Width = Application.GetRealWidth(112), |
| | | Gravity = Gravity.CenterHorizontal, |
| | | Height = 1, |
| | | BackgroundColor = CSS.CSS_Color.DividingLineColor, |
| | | }); |
| | | IconButton humiIconButton = new IconButton("FunctionIcon/Acst/grey/ModeHumiIcon.png", $"FunctionIcon/Acst/{imageFolder}/ModeHumiIcon.png", |
| | | Language.StringByID(StringId.Humidification), curColor, function.GetAttrState(AcstParent_AttrEnum.mode.ToString()) == AcstParent_Attr_ModeValueEnum.humidity.ToString()); |
| | | humiIconButton.Click(() => { |
| | | btnModeControl.SelectedImagePath = $"FunctionIcon/Acst/{imageFolder}/ModeHumiIcon2.png"; |
| | | dialog.Close(); |
| | | new System.Threading.Thread(() => { |
| | | Dictionary<string, string> d = new Dictionary<string, string>(); |
| | | d.Add("mode", AcstParent_Attr_ModeValueEnum.humidity.ToString()); |
| | | Control.Ins.SendWriteCommand(function, d); |
| | | }) |
| | | { IsBackground = true }.Start(); |
| | | }); |
| | | humiView.AddChidren(humiIconButton); |
| | | #endregion |
| | | #region 加湿 |
| | | var humiView = new FrameLayout() |
| | | { |
| | | X = Application.GetRealWidth(2), |
| | | Width = Application.GetRealWidth(144), |
| | | Height = Application.GetRealHeight(44), |
| | | }; |
| | | dialogContentView.AddChidren(humiView); |
| | | humiView.AddChidren(new Button |
| | | { |
| | | Width = Application.GetRealWidth(112), |
| | | Gravity = Gravity.CenterHorizontal, |
| | | Height = 1, |
| | | BackgroundColor = CSS.CSS_Color.DividingLineColor, |
| | | }); |
| | | IconButton humiIconButton = new IconButton("FunctionIcon/Acst/grey/ModeHumiIcon.png", $"FunctionIcon/Acst/{imageFolder}/ModeHumiIcon.png", |
| | | Language.StringByID(StringId.Humidification), curColor, function.GetAttrState(AcstParent_AttrEnum.mode.ToString()) == AcstParent_Attr_ModeValueEnum.humidity.ToString()); |
| | | humiIconButton.Click(() => |
| | | { |
| | | btnModeControl.SelectedImagePath = $"FunctionIcon/Acst/{imageFolder}/ModeHumiIcon2.png"; |
| | | dialog.Close(); |
| | | new System.Threading.Thread(() => |
| | | { |
| | | Dictionary<string, string> d = new Dictionary<string, string>(); |
| | | d.Add("mode", AcstParent_Attr_ModeValueEnum.humidity.ToString()); |
| | | Control.Ins.SendWriteCommand(function, d); |
| | | }) |
| | | { IsBackground = true }.Start(); |
| | | }); |
| | | humiView.AddChidren(humiIconButton); |
| | | #endregion |
| | | } |
| | | |
| | | dialog.Show(); |
| | | }; |
| | |
| | | |
| | | btnWorkSceneControl.MouseUpEventHandler = (sender2, e2) => |
| | | { |
| | | if (function.trait_on_off.state == "off") |
| | | { |
| | | return; |
| | | } |
| | | //if (function.trait_on_off.state == "off") |
| | | //{ |
| | | // return; |
| | | //} |
| | | Dialog dialog = new Dialog(); |
| | | |
| | | var dialogView = new FrameLayout(); |
| | |
| | | dialog.Close(); |
| | | }; |
| | | |
| | | var dialogContentView = new FrameLayout() |
| | | var dialogContentView = new VerticalScrolViewLayout() |
| | | { |
| | | X = Application.GetRealWidth(194), |
| | | Y = Application.GetRealHeight(419), |
| | | ScrollEnabled = false, |
| | | Width = Application.GetRealWidth(148), |
| | | Height = Application.GetRealHeight(191), |
| | | BackgroundImagePath = "FunctionIcon/Acst/BgChooseScene.png", |
| | |
| | | }; |
| | | titleView.AddChidren(btnTitleText); |
| | | |
| | | #region 在家 |
| | | var atHomeView = new FrameLayout() |
| | | if (function.GetAttribute(AcstParent_AttrEnum.scene.ToString()).value.Contains(AcstParent_Attr_SceneValueEnum.at_home.ToString())) |
| | | { |
| | | X = Application.GetRealWidth(2), |
| | | Y = titleView.Bottom, |
| | | Width = Application.GetRealWidth(144), |
| | | Height = Application.GetRealHeight(44), |
| | | }; |
| | | dialogContentView.AddChidren(atHomeView); |
| | | atHomeView.AddChidren(new Button |
| | | { |
| | | Width = Application.GetRealWidth(112), |
| | | Gravity = Gravity.CenterHorizontal, |
| | | Height = 1, |
| | | BackgroundColor = CSS.CSS_Color.DividingLineColor, |
| | | }); |
| | | IconButton atHomeIconButton = new IconButton("FunctionIcon/Acst/grey/SceneAtHome.png", $"FunctionIcon/Acst/{imageFolder}/SceneAtHome.png", |
| | | #region 在家 |
| | | var atHomeView = new VerticalScrolViewLayout() |
| | | { |
| | | X = Application.GetRealWidth(2), |
| | | //Y = titleView.Bottom, |
| | | Width = Application.GetRealWidth(144), |
| | | Height = Application.GetRealHeight(44), |
| | | }; |
| | | dialogContentView.AddChidren(atHomeView); |
| | | atHomeView.AddChidren(new Button |
| | | { |
| | | Width = Application.GetRealWidth(112), |
| | | Gravity = Gravity.CenterHorizontal, |
| | | Height = 1, |
| | | BackgroundColor = CSS.CSS_Color.DividingLineColor, |
| | | }); |
| | | |
| | | IconButton atHomeIconButton = new IconButton("FunctionIcon/Acst/grey/SceneAtHome.png", $"FunctionIcon/Acst/{imageFolder}/SceneAtHome.png", |
| | | Language.StringByID(StringId.AtHome), curColor, function.GetAttrState(AcstParent_AttrEnum.scene.ToString()) == AcstParent_Attr_SceneValueEnum.at_home.ToString()); |
| | | atHomeIconButton.Click(() => { |
| | | btnModeControl.SelectedImagePath = $"FunctionIcon/Acst/{imageFolder}/SceneAtHome2.png"; |
| | | dialog.Close(); |
| | | new System.Threading.Thread(() => { |
| | | Dictionary<string, string> d = new Dictionary<string, string>(); |
| | | d.Add(AcstParent_AttrEnum.scene.ToString(), AcstParent_Attr_SceneValueEnum.at_home.ToString()); |
| | | Control.Ins.SendWriteCommand(function, d); |
| | | }) |
| | | { IsBackground = true }.Start(); |
| | | }); |
| | | atHomeView.AddChidren(atHomeIconButton); |
| | | #endregion |
| | | atHomeIconButton.Click(() => |
| | | { |
| | | btnWorkSceneControl.SelectedImagePath = $"FunctionIcon/Acst/{imageFolder}/SceneAtHome2.png"; |
| | | dialog.Close(); |
| | | new System.Threading.Thread(() => |
| | | { |
| | | Dictionary<string, string> d = new Dictionary<string, string>(); |
| | | d.Add(AcstParent_AttrEnum.scene.ToString(), AcstParent_Attr_SceneValueEnum.at_home.ToString()); |
| | | Control.Ins.SendWriteCommand(function, d); |
| | | }) |
| | | { IsBackground = true }.Start(); |
| | | }); |
| | | atHomeView.AddChidren(atHomeIconButton); |
| | | #endregion |
| | | } |
| | | |
| | | |
| | | #region 离家 |
| | | var awayHomeView = new FrameLayout() |
| | | if (function.GetAttribute(AcstParent_AttrEnum.scene.ToString()).value.Contains(AcstParent_Attr_SceneValueEnum.leave_home.ToString())) |
| | | { |
| | | X = Application.GetRealWidth(2), |
| | | Y = atHomeView.Bottom, |
| | | Width = Application.GetRealWidth(144), |
| | | Height = Application.GetRealHeight(44), |
| | | }; |
| | | dialogContentView.AddChidren(awayHomeView); |
| | | awayHomeView.AddChidren(new Button |
| | | { |
| | | Width = Application.GetRealWidth(112), |
| | | Gravity = Gravity.CenterHorizontal, |
| | | Height = 1, |
| | | BackgroundColor = CSS.CSS_Color.DividingLineColor, |
| | | }); |
| | | IconButton awayHomeIconButton = new IconButton("FunctionIcon/Acst/grey/SceneAwayHomeIcon.png", $"FunctionIcon/Acst/{imageFolder}/SceneAwayHomeIcon.png", |
| | | Language.StringByID(StringId.AwayHome), curColor, function.GetAttrState(AcstParent_AttrEnum.scene.ToString()) == AcstParent_Attr_SceneValueEnum.leave_home.ToString()); |
| | | awayHomeIconButton.Click(() => { |
| | | btnModeControl.SelectedImagePath = $"FunctionIcon/Acst/{imageFolder}/SceneAwayHomeIcon2.png"; |
| | | dialog.Close(); |
| | | new System.Threading.Thread(() => { |
| | | Dictionary<string, string> d = new Dictionary<string, string>(); |
| | | d.Add("scene", "leave_home"); |
| | | Control.Ins.SendWriteCommand(function, d); |
| | | }) |
| | | { IsBackground = true }.Start(); |
| | | }); |
| | | awayHomeView.AddChidren(awayHomeIconButton); |
| | | #endregion |
| | | #region 离家 |
| | | var awayHomeView = new FrameLayout() |
| | | { |
| | | X = Application.GetRealWidth(2), |
| | | //Y = atHomeView.Bottom, |
| | | Width = Application.GetRealWidth(144), |
| | | Height = Application.GetRealHeight(44), |
| | | }; |
| | | dialogContentView.AddChidren(awayHomeView); |
| | | awayHomeView.AddChidren(new Button |
| | | { |
| | | Width = Application.GetRealWidth(112), |
| | | Gravity = Gravity.CenterHorizontal, |
| | | Height = 1, |
| | | BackgroundColor = CSS.CSS_Color.DividingLineColor, |
| | | }); |
| | | IconButton awayHomeIconButton = new IconButton("FunctionIcon/Acst/grey/SceneAwayHomeIcon.png", $"FunctionIcon/Acst/{imageFolder}/SceneAwayHomeIcon.png", |
| | | Language.StringByID(StringId.AwayHome), curColor, function.GetAttrState(AcstParent_AttrEnum.scene.ToString()) == AcstParent_Attr_SceneValueEnum.leave_home.ToString()); |
| | | awayHomeIconButton.Click(() => |
| | | { |
| | | btnWorkSceneControl.SelectedImagePath = $"FunctionIcon/Acst/{imageFolder}/SceneAwayHomeIcon2.png"; |
| | | dialog.Close(); |
| | | new System.Threading.Thread(() => |
| | | { |
| | | Dictionary<string, string> d = new Dictionary<string, string>(); |
| | | d.Add("scene", "leave_home"); |
| | | Control.Ins.SendWriteCommand(function, d); |
| | | }) |
| | | { IsBackground = true }.Start(); |
| | | }); |
| | | awayHomeView.AddChidren(awayHomeIconButton); |
| | | #endregion |
| | | } |
| | | |
| | | #region 睡眠 |
| | | var sleepView = new FrameLayout() |
| | | |
| | | if (function.GetAttribute(AcstParent_AttrEnum.scene.ToString()).value.Contains(AcstParent_Attr_SceneValueEnum.sleep.ToString())) |
| | | { |
| | | X = Application.GetRealWidth(2), |
| | | Y = awayHomeView.Bottom, |
| | | Width = Application.GetRealWidth(144), |
| | | Height = Application.GetRealHeight(44), |
| | | }; |
| | | dialogContentView.AddChidren(sleepView); |
| | | sleepView.AddChidren(new Button |
| | | { |
| | | Height = 1, |
| | | Gravity = Gravity.CenterHorizontal, |
| | | Width = Application.GetRealWidth(112), |
| | | BackgroundColor = CSS.CSS_Color.DividingLineColor, |
| | | }); |
| | | IconButton sleepIconButton = new IconButton("FunctionIcon/Acst/grey/SceneSleepIcon.png", $"FunctionIcon/Acst/{imageFolder}/SceneSleepIcon.png", |
| | | Language.StringByID(StringId.Sleep), curColor, function.GetAttrState(AcstParent_AttrEnum.scene.ToString()) == AcstParent_Attr_SceneValueEnum.sleep.ToString()); |
| | | sleepIconButton.Click(() => { |
| | | btnModeControl.SelectedImagePath = $"FunctionIcon/Acst/{imageFolder}/SceneSleepIcon2.png"; |
| | | dialog.Close(); |
| | | new System.Threading.Thread(() => { |
| | | Dictionary<string, string> d = new Dictionary<string, string>(); |
| | | d.Add("scene", "sleep"); |
| | | Control.Ins.SendWriteCommand(function, d); |
| | | }) |
| | | { IsBackground = true }.Start(); |
| | | }); |
| | | sleepView.AddChidren(sleepIconButton); |
| | | |
| | | #region 睡眠 |
| | | var sleepView = new FrameLayout() |
| | | { |
| | | X = Application.GetRealWidth(2), |
| | | //Y = awayHomeView.Bottom, |
| | | Width = Application.GetRealWidth(144), |
| | | Height = Application.GetRealHeight(44), |
| | | }; |
| | | dialogContentView.AddChidren(sleepView); |
| | | sleepView.AddChidren(new Button |
| | | { |
| | | Height = 1, |
| | | Gravity = Gravity.CenterHorizontal, |
| | | Width = Application.GetRealWidth(112), |
| | | BackgroundColor = CSS.CSS_Color.DividingLineColor, |
| | | }); |
| | | IconButton sleepIconButton = new IconButton("FunctionIcon/Acst/grey/SceneSleepIcon.png", $"FunctionIcon/Acst/{imageFolder}/SceneSleepIcon.png", |
| | | Language.StringByID(StringId.Sleep), curColor, function.GetAttrState(AcstParent_AttrEnum.scene.ToString()) == AcstParent_Attr_SceneValueEnum.sleep.ToString()); |
| | | sleepIconButton.Click(() => |
| | | { |
| | | btnWorkSceneControl.SelectedImagePath = $"FunctionIcon/Acst/{imageFolder}/SceneSleepIcon2.png"; |
| | | dialog.Close(); |
| | | new System.Threading.Thread(() => |
| | | { |
| | | Dictionary<string, string> d = new Dictionary<string, string>(); |
| | | d.Add("scene", "sleep"); |
| | | Control.Ins.SendWriteCommand(function, d); |
| | | }) |
| | | { IsBackground = true }.Start(); |
| | | }); |
| | | sleepView.AddChidren(sleepIconButton); |
| | | } |
| | | #endregion |
| | | dialog.Show(); |
| | | }; |
| | |
| | | |
| | | InitGetWeatherAction(); |
| | | |
| | | Control.Ins.SendReadCommand(function); |
| | | new System.Threading.Thread(() => |
| | | { |
| | | Control.Ins.SendReadCommand(function); |
| | | }) |
| | | { IsBackground = true }.Start(); |
| | | |
| | | } |
| | | |
| | |
| | | public string Tag; |
| | | public string unitString; |
| | | |
| | | public SensorDiyView(HorizontalScrolViewLayout view,uint color,string value,string unitStr,string text,int setWidth = 60) |
| | | public SensorDiyView(HorizontalScrolViewLayout view,uint color,string value,string unitStr, string unitStr2, string text,int setWidth = 60) |
| | | { |
| | | unitString = unitStr; |
| | | if (string.IsNullOrEmpty(value)) |
| | |
| | | TextAlignment = TextAlignment.Center, |
| | | TextColor = 0xFF949AA5, |
| | | TextSize = 12, |
| | | Text = text, |
| | | Text = text , |
| | | }; |
| | | contentView.AddChidren(btnText); |
| | | |
| | | if(!string.IsNullOrEmpty(unitStr2)) |
| | | { |
| | | btnText.Text += "(" + unitStr2 + ")"; |
| | | } |
| | | |
| | | |
| | | } |
| | | |
| | | public void UpdateValue(string value) |
| | | public void UpdateValue(string value,bool isInt) |
| | | { |
| | | if (value.Contains(".") && isInt) |
| | | { |
| | | value = value.Remove(value.IndexOf('.'), value.Length - value.IndexOf('.')); |
| | | } |
| | | btnValue.Text = value + unitString; |
| | | } |
| | | } |