using System; using System.Collections.Generic; using HDL_ON.DriverLayer; using HDL_ON.Entity; using HDL_ON.Stan; using HDL_ON.UI.CSS; using Shared; namespace HDL_ON.UI { public class AcControlPage : DeviceFunctionCardCommonForm { #region ■ 变量声明___________________________ /// /// 空调温度控制控件 /// DiyArcSeekBar arcBar; /// /// 减号按钮 /// Button btnMinus; /// /// 加号按钮 /// Button btnPlus; /// /// 温度按钮 /// Button btnTemp; Button btnTempUint; /// /// 室内温度按钮 /// Button btnIndoorTemp; /// /// 模式按钮 /// Button btnMode; /// /// 扫风按钮 /// Button btnSwing; /// /// 风速按钮 /// Button btnWindSpeed; /// /// 开关按钮 /// Button btnSwitch; AC acFunction = new AC(); /// /// app自己控制的温度数值记录 /// List seltControlTemp = new List(); #endregion #region ■ 初始化_____________________________ /// /// 初始化白色区域的内容 /// public override void InitFrameWhiteContent() { base.ShowColltionButton = false; base.SetTitleText(Language.StringByID(StringId.Electric)); //初始化第一个索引页的内容 this.InitFrameWhiteContent1(); //刷新当前设备的状态缓存 this.RefreshNowDeviceStatuMemory(this.device); //刷新界面状态 this.RefreshFormStatu(); //读取状态 new System.Threading.Thread(() => { Control.Ins.SendReadCommand(device); }) { IsBackground = true }.Start(); } /// /// 初始化第一个索引页的内容 /// private void InitFrameWhiteContent1() { arcBar = new DiyArcSeekBar() { Gravity = Gravity.CenterHorizontal, OpenAngle = 160, ThumbImageHeight = Application.GetRealWidth(50), ProgressBarColor = CSS_Color.MainColor, OfflineProgressBarColor = CSS_Color.PromptingColor2, ArcColor = CSS_Color.BackgroundColor, #if __IOS__ Y = Application.GetRealHeight(120 + 25), Width = Application.GetRealWidth(260 - 40), Height = Application.GetRealWidth(260 - 40), SeekBarPadding = Application.GetRealWidth(8), #else Y = Application.GetRealHeight(120 + 40), Width = Application.GetRealWidth(260 - 40), Height = Application.GetRealWidth(260 - 40), SeekBarPadding = Application.GetRealWidth(7), #endif }; FrameWhiteCentet1.AddChidren(arcBar); arcBar.ThumbImagePath = device.GetAttrState(FunctionAttributeKey.OnOff) == "on" ? "FunctionIcon/AC/DiyThumbIconOn.png" : "FunctionIcon/AC/DiyThumbIcon.png"; arcBar.IsOffline = device.GetAttrState(FunctionAttributeKey.OnOff) == "off"; arcBar.MinValue = device.GetAttribute(FunctionAttributeKey.SetTemp).min; arcBar.MaxValue = device.GetAttribute(FunctionAttributeKey.SetTemp).max; arcBar.Progress = (int)Convert.ToDouble(device.GetAttrState(FunctionAttributeKey.SetTemp)); btnTemp = new Button() { Gravity = Gravity.CenterHorizontal, Y = Application.GetRealHeight(206), Width = Application.GetRealWidth(71), Height = Application.GetRealWidth(60), TextColor = CSS_Color.FirstLevelTitleColor, TextSize = 50, IsBold = true, Text = Convert.ToDouble( device.GetAttrState(FunctionAttributeKey.SetTemp)).ToString(), TextAlignment = TextAlignment.Center, }; FrameWhiteCentet1.AddChidren(btnTemp); btnTempUint = new Button() { X = btnTemp.Right, Y = btnTemp.Y, Width = Application.GetRealWidth(30), Height = Application.GetRealHeight(30), TextColor = CSS_Color.FirstLevelTitleColor, TextSize = CSS_FontSize.EmphasisFontSize_Secondary, IsBold = true, TextAlignment = TextAlignment.CenterLeft, Text = "°C", }; FrameWhiteCentet1.AddChidren(btnTempUint); btnIndoorTemp = new Button() { Gravity = Gravity.CenterHorizontal, Y = btnTemp.Bottom, Width = Application.GetRealWidth(120), Height = Application.GetRealHeight(20), Text = Language.StringByID(StringId.IndoorTemp) + "20°C", TextColor = CSS_Color.PromptingColor1, TextSize = CSS_FontSize.PromptFontSize_FirstLevel, }; FrameWhiteCentet1.AddChidren(btnIndoorTemp); btnMinus = new Button() { X = Application.GetRealWidth(21), Y = Application.GetRealHeight(263), Width = Application.GetRealWidth(32), Height = Application.GetRealWidth(32), UnSelectedImagePath = "Public/MinusSignIcon.png", }; FrameWhiteCentet1.AddChidren(btnMinus); btnPlus = new Button() { X = Application.GetRealWidth(275), Y = Application.GetRealHeight(263), Width = Application.GetRealWidth(32), Height = Application.GetRealWidth(32), UnSelectedImagePath = "Public/PlusSignIcon.png", }; FrameWhiteCentet1.AddChidren(btnPlus); btnMode = new Button() { X = Application.GetRealWidth(60), Y = Application.GetRealHeight(334), Width = Application.GetRealWidth(30), Height = Application.GetRealWidth(30), UnSelectedImagePath = acFunction.GetModeIconPath(device.GetAttrState(FunctionAttributeKey.Mode)), }; FrameWhiteCentet1.AddChidren(btnMode); btnSwing = new Button() { Gravity = Gravity.CenterHorizontal, Y = Application.GetRealHeight(330), Width = Application.GetRealWidth(40), Height = Application.GetRealWidth(40), UnSelectedImagePath = "FunctionIcon/AC/SweepIconNullOn.png", }; if (device.GetAttribute(FunctionAttributeKey.Swing) != null) { FrameWhiteCentet1.AddChidren(btnSwing); } btnWindSpeed = new Button() { X = Application.GetRealWidth(235), Y = Application.GetRealHeight(337), Width = Application.GetRealWidth(30), Height = Application.GetRealWidth(30), UnSelectedImagePath = acFunction.GetFanIconPath(device.GetAttrState(FunctionAttributeKey.FanSpeed)), }; FrameWhiteCentet1.AddChidren(btnWindSpeed); btnSwitch = new Button() { Gravity = Gravity.CenterHorizontal, Y = Application.GetRealHeight(466), Width = Application.GetRealWidth(32), Height = Application.GetRealWidth(32), UnSelectedImagePath = "Public/PowerClose.png", SelectedImagePath = "Public/PowerOpen.png", IsSelected = device.GetAttrState(FunctionAttributeKey.OnOff) == "on" }; FrameWhiteCentet1.AddChidren(btnSwitch); LoadEvent_TempChange(); LoadEvent_AcStatesChange(); LoadDiv_IrView(); } /// /// 加载修改模式区域 /// void LoadDiv_ChangeModeView() { Dialog dialog = new Dialog(); FrameLayout dialogView = new FrameLayout() { BackgroundColor = CSS_Color.DialogTransparentColor1, }; dialog.AddChidren(dialogView); FrameLayout modeChangeView; modeChangeView = new FrameLayout() { X = Application.GetRealWidth(30), Y = Application.GetRealHeight(128), Width = Application.GetRealWidth(160), Height = Application.GetRealHeight(287), BackgroundImagePath = "FunctionIcon/AC/DivBg1.png", }; dialogView.AddChidren(modeChangeView); Button btnTitle; btnTitle = new Button() { X = Application.GetRealWidth(8 + 16), Y = Application.GetRealHeight(8), Width = Application.GetRealWidth(112), Height = Application.GetRealHeight(44), TextID = StringId.ChooseMode, TextAlignment = TextAlignment.CenterLeft, TextColor = CSS_Color.FirstLevelTitleColor, TextSize = CSS_FontSize.EmphasisFontSize_Secondary, }; modeChangeView.AddChidren(btnTitle); Button btnLine = new Button() { X = btnTitle.X, Y = btnTitle.Bottom, Width = Application.GetRealWidth(112), Height = Application.GetRealHeight(1), BackgroundColor = CSS_Color.BackgroundColor, }; modeChangeView.AddChidren(btnLine); var modeList = device.GetAttribute(FunctionAttributeKey.Mode).value; foreach (var m in modeList) { Button btnModeIcon = new Button() { X = btnTitle.X, Y = Application.GetRealHeight(44 * (modeList.IndexOf(m) + 1) + 10 + 8), Width = Application.GetRealWidth(24), Height = Application.GetRealWidth(24), IsSelected = device.GetAttrState(FunctionAttributeKey.Mode) == m, }; modeChangeView.AddChidren(btnModeIcon); Button btnModeText = new Button() { X = Application.GetRealWidth(12) + btnModeIcon.Right, Y = Application.GetRealHeight(44 * (modeList.IndexOf(m) + 1) + 8), Height = Application.GetRealHeight(44), Width = Application.GetRealWidth(90), TextAlignment = TextAlignment.CenterLeft, TextColor = CSS_Color.FirstLevelTitleColor, SelectedTextColor = CSS_Color.MainColor, IsSelected = device.GetAttrState(FunctionAttributeKey.Mode) == m, TextSize = CSS_FontSize.TextFontSize, }; modeChangeView.AddChidren(btnModeText); btnModeIcon.UnSelectedImagePath = acFunction.GetModeIconPath(m, false); btnModeIcon.SelectedImagePath = acFunction.GetModeIconPath(m); btnModeText.Text = acFunction.GetModeAttrText( m); if (modeList.IndexOf(m) < modeList.Count - 1) { modeChangeView.AddChidren(new Button() { X = btnTitle.X, Y = btnModeText.Bottom, Width = Application.GetRealWidth(112), Height = Application.GetRealHeight(1), BackgroundColor = CSS_Color.BackgroundColor, }); } EventHandler eventHandler = (sender, e) => { dialog.Close(); }; EventHandler eventHandler1 = (sender, e) => { btnModeIcon.IsSelected = btnModeText.IsSelected = true; device.SetAttrState(FunctionAttributeKey.Mode, m); btnMode.UnSelectedImagePath = acFunction.GetModeIconPath(m); Dictionary d = new Dictionary(); d.Add(FunctionAttributeKey.Mode, m); Control.Ins.SendWriteCommand(device, d); dialog.Close(); if (device.GetAttrState(FunctionAttributeKey.Mode) == "fan") { arcBar.IsClickable = false; arcBar.IsOffline = true; } else { arcBar.IsOffline = false; arcBar.IsClickable = true; } }; btnModeIcon.MouseUpEventHandler = eventHandler1; btnModeText.MouseUpEventHandler = eventHandler1; dialogView.MouseUpEventHandler = eventHandler; } dialogView.MouseUpEventHandler = (sender, e) => { dialog.Close(); }; dialog.Show(); } /// /// 加载修改扫风模式区域 /// void LoadDiv_ChangeSwingView() { Dialog dialog = new Dialog(); FrameLayout dialogView = new FrameLayout() { BackgroundColor = CSS_Color.DialogTransparentColor1, }; dialog.AddChidren(dialogView); FrameLayout modeChangeView; modeChangeView = new FrameLayout() { Gravity = Gravity.CenterHorizontal, Y = Application.GetRealHeight(128), Width = Application.GetRealWidth(160), Height = Application.GetRealHeight(287), BackgroundImagePath = "FunctionIcon/AC/DivBg2.png", }; dialogView.AddChidren(modeChangeView); Button btnTitle; btnTitle = new Button() { X = Application.GetRealWidth(8 + 16), Y = Application.GetRealHeight(8), Width = Application.GetRealWidth(112), Height = Application.GetRealHeight(44), TextID = StringId.Swing, TextAlignment = TextAlignment.CenterLeft, TextColor = CSS_Color.FirstLevelTitleColor, TextSize = CSS_FontSize.EmphasisFontSize_Secondary, }; modeChangeView.AddChidren(btnTitle); Button btnLine = new Button() { X = btnTitle.X, Y = btnTitle.Bottom, Width = Application.GetRealWidth(112), Height = Application.GetRealHeight(1), BackgroundColor = CSS_Color.BackgroundColor, }; modeChangeView.AddChidren(btnLine); var modeList = device.GetAttribute(FunctionAttributeKey.Swing).value; foreach (var m in modeList) { Button btnModeIcon = new Button() { X = btnTitle.X, Y = Application.GetRealHeight(44 * (modeList.IndexOf(m) + 1) + 10 + 8), Width = Application.GetRealWidth(24), Height = Application.GetRealWidth(24), IsSelected = device.GetAttrState(FunctionAttributeKey.Swing) == m, }; modeChangeView.AddChidren(btnModeIcon); Button btnModeText = new Button() { X = Application.GetRealWidth(12) + btnModeIcon.Right, Y = Application.GetRealHeight(44 * (modeList.IndexOf(m) + 1) + 8), Height = Application.GetRealHeight(44), Width = Application.GetRealWidth(90), TextAlignment = TextAlignment.CenterLeft, TextColor = CSS_Color.FirstLevelTitleColor, SelectedTextColor = CSS_Color.MainColor, IsSelected = device.GetAttrState(FunctionAttributeKey.Swing) == m, TextSize = CSS_FontSize.TextFontSize, }; modeChangeView.AddChidren(btnModeText); if (modeList.IndexOf(m) < modeList.Count - 1) { modeChangeView.AddChidren(new Button() { X = btnTitle.X, Y = btnModeText.Bottom, Width = Application.GetRealWidth(112), Height = Application.GetRealHeight(1), BackgroundColor = CSS_Color.BackgroundColor, }); } btnModeIcon.UnSelectedImagePath = acFunction.GetSwingIconPath(m, false); btnModeIcon.SelectedImagePath = acFunction.GetSwingIconPath(m); btnModeText.Text = acFunction.GetSwingAttrText(m); EventHandler eventHandler = (sender, e) => { dialog.Close(); }; EventHandler eventHandler1 = (sender, e) => { btnModeIcon.IsSelected = btnModeText.IsSelected = true; device.SetAttrState(FunctionAttributeKey.Swing, m); btnSwing.UnSelectedImagePath = acFunction.GetSwingIconPath(m); Dictionary d = new Dictionary(); d.Add(FunctionAttributeKey.Swing, m); Control.Ins.SendWriteCommand(device, d); dialog.Close(); }; btnModeIcon.MouseUpEventHandler = eventHandler1; btnModeText.MouseUpEventHandler = eventHandler1; dialogView.MouseUpEventHandler = eventHandler; } dialogView.MouseUpEventHandler = (sender, e) => { dialog.Close(); }; dialog.Show(); } /// /// 加载修改模式区域 /// void LoadDiv_ChangeFanView() { Dialog dialog = new Dialog(); FrameLayout dialogView = new FrameLayout() { BackgroundColor = CSS_Color.DialogTransparentColor1, }; dialog.AddChidren(dialogView); FrameLayout modeChangeView; modeChangeView = new FrameLayout() { X = Application.GetRealWidth(185), Y = Application.GetRealHeight(172), Width = Application.GetRealWidth(160), Height = Application.GetRealHeight(243), BackgroundImagePath = "FunctionIcon/AC/DivBg2.png", }; dialogView.AddChidren(modeChangeView); Button btnTitle; btnTitle = new Button() { X = Application.GetRealWidth(8 + 16), Y = Application.GetRealHeight(8), Width = Application.GetRealWidth(112), Height = Application.GetRealHeight(44), TextID = StringId.ChooseFan, TextAlignment = TextAlignment.CenterLeft, TextColor = CSS_Color.FirstLevelTitleColor, TextSize = CSS_FontSize.EmphasisFontSize_Secondary, }; modeChangeView.AddChidren(btnTitle); Button btnLine = new Button() { X = btnTitle.X, Y = btnTitle.Bottom, Width = Application.GetRealWidth(112), Height = Application.GetRealHeight(1), BackgroundColor = CSS_Color.BackgroundColor, }; modeChangeView.AddChidren(btnLine); var modeList = device.GetAttribute(FunctionAttributeKey.FanSpeed).value; foreach (var m in modeList) { Button btnFanIcon = new Button() { X = btnTitle.X, Y = Application.GetRealHeight(44 * (modeList.IndexOf(m) + 1) + 10 + 8), Width = Application.GetRealWidth(24), Height = Application.GetRealWidth(24), IsSelected = device.GetAttrState(FunctionAttributeKey.FanSpeed) == m, }; modeChangeView.AddChidren(btnFanIcon); Button btnFanText = new Button() { X = Application.GetRealWidth(12) + btnFanIcon.Right, Y = Application.GetRealHeight(44 * (modeList.IndexOf(m) + 1) + 8), Height = Application.GetRealHeight(44), Width = Application.GetRealWidth(70), TextAlignment = TextAlignment.CenterLeft, TextColor = CSS_Color.FirstLevelTitleColor, SelectedTextColor = CSS_Color.MainColor, IsSelected = device.GetAttrState(FunctionAttributeKey.FanSpeed) == m, TextSize = CSS_FontSize.TextFontSize, }; modeChangeView.AddChidren(btnFanText); btnFanIcon.UnSelectedImagePath = acFunction.GetFanIconPath(m,false); btnFanIcon.SelectedImagePath = acFunction.GetFanIconPath(m); btnFanText.Text = acFunction.GetFanAttrText(m); if (modeList.IndexOf(m) < modeList.Count - 1) { modeChangeView.AddChidren(new Button() { X = btnTitle.X, Y = btnFanText.Bottom, Width = Application.GetRealWidth(112), Height = Application.GetRealHeight(1), BackgroundColor = CSS_Color.BackgroundColor, }); } EventHandler closeDialogEvent = (sender, e) => { dialog.Close(); }; EventHandler eventHandler1 = (sender, e) => { btnFanIcon.IsSelected = btnFanText.IsSelected = true; device.SetAttrState(FunctionAttributeKey.FanSpeed, m); btnWindSpeed.UnSelectedImagePath = acFunction.GetFanIconPath(m); System.Collections.Generic.Dictionary d = new System.Collections.Generic.Dictionary(); d.Add(FunctionAttributeKey.FanSpeed, m); Control.Ins.SendWriteCommand(device, d); //btnWindSpeed.UnSelectedImagePath = btnFanIcon.UnSelectedImagePath; dialog.Close(); }; btnFanIcon.MouseUpEventHandler = eventHandler1; btnFanText.MouseUpEventHandler = eventHandler1; dialogView.MouseUpEventHandler = closeDialogEvent; } dialog.Show(); } /// /// 加载红外遥控器,额外按钮 /// void LoadDiv_IrView() { if (device.spk == SPK.AcIr) { var btnMore = new Button() { Gravity = Gravity.CenterHorizontal, Y = Application.GetRealHeight(334 + 80), Width = Application.GetRealWidth(35), Height = Application.GetRealWidth(35), UnSelectedImagePath = "FunctionIcon/AC/More.png", }; FrameWhiteCentet1.AddChidren(btnMore); btnMore.MouseUpEventHandler = (sender, e) => { LoadDialog_IrMoreView(); }; } } /// /// 加载额外对红外按钮界面 /// void LoadDialog_IrMoreView() { Dialog dialog = new Dialog(); var div = new FrameLayout(); dialog.AddChidren(div); div.MouseUpEventHandler = (sender, e) => { dialog.Close(); }; var bodyView = new FrameLayout() { Y = Application.GetRealHeight(427),//667 Height = Application.GetRealHeight(240), BackgroundColor = CSS_Color.MainBackgroundColor, }; div.AddChidren(bodyView); var contentView = new VerticalScrolViewLayout() { Y = Application.GetRealHeight(16), Gravity = Gravity.CenterHorizontal, Width = Application.GetRealWidth(296+200), }; bodyView.AddChidren(contentView); var row = new FrameLayout() { Height = Application.GetRealHeight(60), Width = Application.GetRealWidth(296), Gravity = Gravity.CenterHorizontal, }; contentView.AddChidren(row); int index = 0; List attrList = new List(); attrList.AddRange(device.attributes); attrList.Add(new FunctionAttributes() { key = "+", }); foreach (var attr in attrList) { if (attr.key == FunctionAttributeKey.Mode || attr.key == FunctionAttributeKey.OnOff || attr.key == FunctionAttributeKey.SetTemp || attr.key == FunctionAttributeKey.SetTempStep || attr.key == FunctionAttributeKey.FanSpeed || attr.key == FunctionAttributeKey.FanManual || attr.key == FunctionAttributeKey.FanAuto ) { continue; } if (index != 0 && index % 3 == 0) { row = new FrameLayout() { Height = Application.GetRealHeight(56), Width = Application.GetRealWidth(296), Gravity = Gravity.CenterHorizontal, }; contentView.AddChidren(row); } if (attr.key == "+") { var addView = new FrameLayout() { Gravity = Gravity.CenterVertical, Width = Application.GetRealWidth(88), Height = Application.GetRealHeight(40), Radius = (uint)Application.GetRealHeight(18), BorderColor = CSS_Color.PromptingColor1, BorderWidth = (uint)Application.GetRealWidth(2), }; if (index % 3 == 1) { addView.Gravity = Gravity.Center; } else if (index % 3 == 2) { addView.X = Application.GetRealWidth(208); } row.AddChidren(addView); var btnAdd = new Button() { Gravity = Gravity.Center, UnSelectedImagePath = "Public/PlusSignIcon.png", Width = Application.GetRealWidth(32), Height = Application.GetRealWidth(32), }; addView.AddChidren(btnAdd); btnAdd.MouseUpEventHandler = (sender, e) => { dialog.Close(); Action action = () => { LoadDialog_IrMoreView(); }; var addButton = new AcControlPage_AddIrButton(action); MainPage.BasePageView.AddChidren(addButton); addButton.Show(device); MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; }; } else { var btn = new Button() { Gravity = Gravity.CenterVertical, Width = Application.GetRealWidth(88), Height = Application.GetRealHeight(40), Radius = (uint)Application.GetRealHeight(18), BorderColor = CSS_Color.PromptingColor1, BorderWidth = (uint)Application.GetRealWidth(2), TextAlignment = TextAlignment.Center, TextSize = CSS_FontSize.TextFontSize, TextColor = CSS_Color.FirstLevelTitleColor, SelectedTextColor = CSS_Color.MainBackgroundColor, SelectedBackgroundColor = CSS_Color.MainColor, }; if (attr.value.Count > 0) { btn.Text = attr.value[0]; } if (index % 3 == 1) { btn.Gravity = Gravity.Center; } else if (index % 3 == 2) { btn.X = Application.GetRealWidth(208); } row.AddChidren(btn); btn.MouseUpEventHandler = (sender, e) => { Dictionary d = new Dictionary(); d.Add(attr.key, ""); Control.Ins.SendWriteCommand(device, d); new System.Threading.Thread(() => { System.Threading.Thread.Sleep(2000); Application.RunOnMainThread(() => { btn.IsSelected = false; }); }) { IsBackground = true }.Start(); }; } index++; } dialog.Show(); } #endregion #region ■ 设备状态反馈_______________________ /// /// 设备状态反馈 /// /// public override void DeviceStatuPush(Function i_LocalDevice) { //不是同一个东西 if (this.device.sid != i_LocalDevice.sid) { return; } //刷新当前设备的状态缓存 this.RefreshNowDeviceStatuMemory(i_LocalDevice); //刷新界面状态 this.RefreshFormStatu(); } #endregion #region ■ 发送各种命令_______________________ /// /// 温度改变模式 /// void LoadEvent_TempChange() { btnMinus.MouseUpEventHandler = (sender, e) => { if (device.trait_on_off.curValue.ToString() == "off" || device.GetAttrState(FunctionAttributeKey.Mode) == "fan") { return; } var temp = (int)Convert.ToDouble(device.GetAttrState(FunctionAttributeKey.SetTemp)); if (temp <= device.GetAttribute(FunctionAttributeKey.SetTemp).min) { return; } temp--; seltControlTemp.Add(temp.ToString()); arcBar.Progress = temp; btnTemp.Text = temp.ToString(); device.SetAttrState(FunctionAttributeKey.SetTemp, temp.ToString()); System.Collections.Generic.Dictionary d = new System.Collections.Generic.Dictionary(); d.Add(FunctionAttributeKey.SetTemp, temp.ToString()); Control.Ins.SendWriteCommand(device, d); }; btnPlus.MouseUpEventHandler = (sender, e) => { if (device.trait_on_off.curValue.ToString() == "off" || device.GetAttrState(FunctionAttributeKey.Mode) == "fan") { return; } var temp = (int)Convert.ToDouble(device.GetAttrState(FunctionAttributeKey.SetTemp)); if (temp >= device.GetAttribute(FunctionAttributeKey.SetTemp).max) { return; } temp++; seltControlTemp.Add(temp.ToString()); arcBar.Progress = temp; btnTemp.Text = temp.ToString(); device.SetAttrState(FunctionAttributeKey.SetTemp, temp.ToString()); System.Collections.Generic.Dictionary d = new System.Collections.Generic.Dictionary(); d.Add(FunctionAttributeKey.SetTemp, temp.ToString()); Control.Ins.SendWriteCommand(device, d); }; arcBar.OnStopTrackingTouchEvent = (sender, e) => { device.SetAttrState(FunctionAttributeKey.SetTemp, arcBar.Progress.ToString()); btnTemp.Text = arcBar.Progress.ToString(); System.Collections.Generic.Dictionary d = new System.Collections.Generic.Dictionary(); d.Add(FunctionAttributeKey.SetTemp, arcBar.Progress.ToString()); Control.Ins.SendWriteCommand(device, d); }; arcBar.OnProgressChangedEvent = (sender, e) => { device.SetAttrState(FunctionAttributeKey.SetTemp, e.ToString()); btnTemp.Text = e.ToString(); }; //arcBar.MouseDownEventHandler = (sender, e) => { // Console.WriteLine("ddd"); // MainPage.BasePageView.ScrollEnabled =false; //}; //arcBar.MouseUpEventHandler = (sender, e) => { // Console.WriteLine("ddd2"); // MainPage.BasePageView.ScrollEnabled = true; //}; } /// /// 控制模式事件 /// void LoadEvent_AcStatesChange() { btnMode.MouseUpEventHandler = (sender, e) => { if (device.trait_on_off.curValue.ToString() == "off") { return; } LoadDiv_ChangeModeView(); }; //扫风改变模式 btnSwing.MouseUpEventHandler = (sender, e) => { if (device.trait_on_off.curValue.ToString() == "off") { return; } LoadDiv_ChangeSwingView(); }; btnWindSpeed.MouseUpEventHandler = (sender, e) => { if (device.trait_on_off.curValue.ToString() == "off") { return; } LoadDiv_ChangeFanView(); }; btnSwitch.MouseUpEventHandler = (sender, e) => { btnSwitch.IsSelected = !btnSwitch.IsSelected; device.trait_on_off.curValue = btnSwitch.IsSelected ? "on" : "off"; if (device.trait_on_off.curValue.ToString() == "on") { arcBar.ThumbImagePath = "FunctionIcon/AC/DiyThumbIconOn.png"; btnSwitch.IsSelected = true; arcBar.IsOffline = false; } else { arcBar.ThumbImagePath = "FunctionIcon/AC/DiyThumbIcon.png"; btnSwitch.IsBold = false; arcBar.IsOffline = true; } System.Collections.Generic.Dictionary d = new System.Collections.Generic.Dictionary(); d.Add(FunctionAttributeKey.OnOff, device.trait_on_off.curValue.ToString()); Control.Ins.SendWriteCommand(device, d); }; } #endregion #region ■ 刷新界面状态_______________________ /// /// 刷新界面状态 /// private void RefreshFormStatu() { Application.RunOnMainThread(() => { btnTemp.Text = Convert.ToDouble( device.GetAttrState(FunctionAttributeKey.SetTemp)).ToString(); btnIndoorTemp.Text = Language.StringByID(StringId.IndoorTemp) + Convert.ToInt32(Convert.ToDouble(device.GetAttrState(FunctionAttributeKey.RoomTemp))) + "°C"; btnMode.SelectedImagePath = acFunction.GetModeIconPath(device.GetAttrState(FunctionAttributeKey.Mode)); btnSwing.SelectedImagePath = acFunction.GetSwingIconPath(device.GetAttrState(FunctionAttributeKey.Swing)); btnWindSpeed.SelectedImagePath = acFunction.GetFanIconPath(device.GetAttrState(FunctionAttributeKey.FanSpeed)); btnMode.UnSelectedImagePath = acFunction.GetModeIconPath(device.GetAttrState(FunctionAttributeKey.Mode),false); btnSwing.UnSelectedImagePath = acFunction.GetSwingIconPath(device.GetAttrState(FunctionAttributeKey.Swing),false); btnWindSpeed.UnSelectedImagePath = acFunction.GetFanIconPath(device.GetAttrState(FunctionAttributeKey.FanSpeed),false); var updataTemp = Convert.ToInt32(Convert.ToDouble(device.GetAttrState(FunctionAttributeKey.SetTemp))); //app自己控制的不用更新,会造成跳动 if (seltControlTemp.Contains(updataTemp.ToString())) { seltControlTemp.Remove(updataTemp.ToString()); } else { arcBar.Progress = updataTemp; } if (device.trait_on_off.curValue.ToString() == "on") { btnMode.IsSelected = btnSwing.IsSelected = btnWindSpeed.IsSelected = true; arcBar.IsOffline = false; btnSwitch.IsSelected = true; arcBar.ThumbImagePath = "FunctionIcon/AC/DiyThumbIconOn.png"; if (device.GetAttrState(FunctionAttributeKey.Mode) == "fan") { arcBar.IsClickable = false; } else { arcBar.IsClickable = true; } } else { btnMode.IsSelected = btnSwing.IsSelected = btnWindSpeed.IsSelected = false; arcBar.IsOffline = true; btnSwitch.IsSelected = false; arcBar.IsClickable = false; arcBar.ThumbImagePath = "FunctionIcon/AC/DiyThumbIcon.png"; } }); } #endregion #region ■ 一般方法___________________________ /// /// 刷新当前设备的状态缓存 /// private void RefreshNowDeviceStatuMemory(Function i_LocalDevice) { } #endregion } }