| | |
| | | fanSpeedList = device.GetAttribute(FunctionAttributeKey.FanSpeed).value; |
| | | btnFan.MouseUpEventHandler += (sender, e) => |
| | | { |
| | | if( !btnSwitch.IsSelected){return;} |
| | | var curFanSpeedIndex = fanSpeedList.IndexOf(device.GetAttrState(FunctionAttributeKey.FanSpeed)); |
| | | var sendFanSpeedIndex = curFanSpeedIndex == fanSpeedList.Count - 1 ? 0 : 1+curFanSpeedIndex; |
| | | |
| | | device.SetAttrState(FunctionAttributeKey.FanSpeed, fanSpeedList[sendFanSpeedIndex]); |
| | | new System.Threading.Thread(() => |
| | | if (btnSwitch.IsSelected) |
| | | { |
| | | Dictionary<string, string> d = new Dictionary<string, string>(); |
| | | d.Add(FunctionAttributeKey.FanSpeed, fanSpeedList[sendFanSpeedIndex]); |
| | | Control.Ins.SendWriteCommand(device, d); |
| | | }) |
| | | { IsBackground = true }.Start(); |
| | | RefreshFanSpeed(); |
| | | ShowFanSelectView(); |
| | | } |
| | | }; |
| | | //风速文本 |
| | | this.btnFanView = new NormalViewControl(this.FrameWhiteCentet1.Width / 3, Application.GetRealHeight(18), false); |
| | |
| | | }; |
| | | frameBack.Show(); |
| | | |
| | | var fanAttr = device.GetAttribute(FunctionAttributeKey.FanSpeed); |
| | | if(fanAttr == null) |
| | | { |
| | | return; |
| | | } |
| | | var valueCount = fanAttr.value.Count; |
| | | |
| | | //菜单控件(风速) |
| | | var menuContr = new DialogTitleMenuControl(3, Language.StringByID(StringId.FanSpeed)); |
| | | menuContr.X = Application.GetRealWidth(209); |
| | | menuContr.Y = Application.GetRealHeight(231); |
| | | var menuContr = new DialogTitleMenuControl(valueCount, Language.StringByID(StringId.FanSpeed)); |
| | | //menuContr.X = Application.GetRealWidth(209); |
| | | menuContr.Gravity = Gravity.CenterHorizontal; |
| | | menuContr.Width = Application.GetRealWidth(160); |
| | | menuContr.Height = Application.GetRealHeight(199); |
| | | dialogBody.AddChidren(menuContr); |
| | | |
| | | //1档 |
| | | var iconPath = this.device.GetAttrState(FunctionAttributeKey.FanSpeed) == "low" ? "FunctionIcon/AirFresh/Fan1Select.png" : "FunctionIcon/AirFresh/Fan1.png"; |
| | | menuContr.AddRowMenu(Language.StringByID(StringId.FanOneGear), iconPath, this.device.GetAttrState(FunctionAttributeKey.FanSpeed) == "low", () => |
| | | int count = 0; |
| | | foreach(var fanAttrValue in fanAttr.value) |
| | | { |
| | | frameBack.Close(); |
| | | //发送档位命令 |
| | | this.SendOtherComand(this.btnFan, FunctionAttributeKey.FanSpeed, "low"); |
| | | }); |
| | | bool isSelecte = false; |
| | | var iconPath = "FunctionIcon/AirFresh/Fan1.png"; |
| | | string text = Language.StringByID(StringId.FanOneGear); |
| | | if (fanAttrValue == "low" || fanAttrValue == "level_1") |
| | | { |
| | | text = Language.StringByID(StringId.LowWindSpeed); |
| | | if (this.device.GetAttrState(FunctionAttributeKey.FanSpeed) == "low"|| this.device.GetAttrState(FunctionAttributeKey.FanSpeed) == "level_1") |
| | | { |
| | | iconPath = "FunctionIcon/AirFresh/Fan1Select.png"; |
| | | isSelecte = true; |
| | | } |
| | | } |
| | | else if (fanAttrValue == "medium" || fanAttrValue == "level_2") |
| | | { |
| | | text = Language.StringByID(StringId.MiddleWindSpeed); |
| | | iconPath = "FunctionIcon/AirFresh/Fan2.png"; |
| | | if (this.device.GetAttrState(FunctionAttributeKey.FanSpeed) == "medium" || this.device.GetAttrState(FunctionAttributeKey.FanSpeed) == "level_2") |
| | | { |
| | | iconPath = "FunctionIcon/AirFresh/Fan2Select.png"; |
| | | isSelecte = true; |
| | | } |
| | | } |
| | | else if (fanAttrValue == "high" || fanAttrValue == "level_3") |
| | | { |
| | | text = Language.StringByID(StringId.HighWindSpeed); |
| | | iconPath = "FunctionIcon/AirFresh/Fan3.png"; |
| | | if (this.device.GetAttrState(FunctionAttributeKey.FanSpeed) == "high" || this.device.GetAttrState(FunctionAttributeKey.FanSpeed) == "level_3") |
| | | { |
| | | iconPath = "FunctionIcon/AirFresh/Fan3Select.png"; |
| | | isSelecte = true; |
| | | } |
| | | } |
| | | else if(fanAttrValue == "auto") |
| | | { |
| | | text = Language.StringByID(StringId.Auto); |
| | | iconPath = "FunctionIcon/AirFresh/Fan2.png"; |
| | | if (this.device.GetAttrState(FunctionAttributeKey.FanSpeed) == "auto" ) |
| | | { |
| | | iconPath = "FunctionIcon/AirFresh/Fan2Select.png"; |
| | | isSelecte = true; |
| | | } |
| | | } |
| | | else |
| | | { |
| | | continue; |
| | | } |
| | | |
| | | //2档 |
| | | iconPath = this.device.GetAttrState(FunctionAttributeKey.FanSpeed) == "medium" ? "FunctionIcon/AirFresh/Fan2Select.png" : "FunctionIcon/AirFresh/Fan2.png"; |
| | | menuContr.AddRowMenu(Language.StringByID(StringId.FanTwoGear), iconPath, this.device.GetAttrState(FunctionAttributeKey.FanSpeed) == "medium", () => |
| | | { |
| | | frameBack.Close(); |
| | | //发送档位命令 |
| | | this.SendOtherComand(this.btnFan, FunctionAttributeKey.FanSpeed, "medium"); |
| | | }); |
| | | count++; |
| | | menuContr.AddRowMenu(text, iconPath, isSelecte, () => |
| | | { |
| | | frameBack.Close(); |
| | | //发送档位命令 |
| | | this.SendOtherComand(this.btnFan, FunctionAttributeKey.FanSpeed, fanAttrValue); |
| | | }); |
| | | } |
| | | menuContr.Y = Application.GetRealHeight(231 - (46 * (count-3))); |
| | | |
| | | //3档 |
| | | iconPath = this.device.GetAttrState(FunctionAttributeKey.FanSpeed) == "high" ? "FunctionIcon/AirFresh/Fan3Select.png" : "FunctionIcon/AirFresh/Fan3.png"; |
| | | menuContr.AddRowMenu(Language.StringByID(StringId.FanThreeGear), iconPath, this.device.GetAttrState(FunctionAttributeKey.FanSpeed) == "high", () => |
| | | { |
| | | frameBack.Close(); |
| | | //发送档位命令 |
| | | this.SendOtherComand(this.btnFan, FunctionAttributeKey.FanSpeed, "high"); |
| | | }); |
| | | } |
| | | |
| | | #endregion |
| | |
| | | HdlThreadLogic.Current.RunThread(() => |
| | | { |
| | | //获取发送命令的样板(bus协议是需要一次性把全部命令一起发送的) |
| | | var dic = this.GetSendComandSample(); |
| | | dic[comadKey] = comadValue; |
| | | Dictionary<string, string> dic = new Dictionary<string, string>(); |
| | | dic.Add(comadKey, comadValue); |
| | | Control.Ins.SendWriteCommand(this.device, dic); |
| | | HdlThreadLogic.Current.RunMain(() => |
| | | { |
| | | btnIcon.CanClick = true; |
| | | }); |
| | | }); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 获取发送命令的样板(bus协议是需要一次性把全部命令一起发送的) |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | private Dictionary<string, string> GetSendComandSample() |
| | | { |
| | | var dic = new Dictionary<string, string>(); |
| | | //开关 |
| | | dic[FunctionAttributeKey.OnOff] = this.device.GetAttrState(FunctionAttributeKey.OnOff); |
| | | //风速 |
| | | dic[FunctionAttributeKey.FanSpeed] = this.device.GetAttrState(FunctionAttributeKey.FanSpeed); |
| | | |
| | | return dic; |
| | | } |
| | | |
| | | #endregion |
| | |
| | | |
| | | #endregion |
| | | |
| | | |
| | | |
| | | |
| | | } |
| | | } |