| | |
| | | /// 更新功能状态 |
| | | /// </summary> |
| | | /// <param name="updataFunction"></param> |
| | | public void UpdataStates(Function updataFunction, FrameLayout view, VerticalScrolViewLayout scrolView,Room room=null) |
| | | public void UpdataStates(Function updataFunction, FrameLayout view, VerticalScrolViewLayout scrolView, Room room = null) |
| | | { |
| | | try |
| | | Application.RunOnMainThread((Action)(() => |
| | | { |
| | | Application.RunOnMainThread(() => |
| | | try |
| | | { |
| | | if (view == null || scrolView == null) |
| | | if (view == null || scrolView == null || updataFunction == null) |
| | | { |
| | | return; |
| | | } |
| | | if(!scrolView.ScrollEnabled) |
| | | if (!scrolView.ScrollEnabled) |
| | | { |
| | | return; |
| | | } |
| | |
| | | continue; |
| | | } |
| | | var viewTag = scrolView.GetChildren(i).Tag.ToString(); |
| | | if (viewTag == updataFunction.sid) |
| | | if (scrolView.GetChildren(i).Tag != null && viewTag == updataFunction.spk + updataFunction.sid) |
| | | { |
| | | if (scrolView.GetChildren(i).Tag != null && scrolView.GetChildren(i).Tag.ToString() == updataFunction.sid) |
| | | //if ( && scrolView.GetChildren(i).Tag.ToString() == updataFunction.sid) |
| | | { |
| | | var fcView = scrolView.GetChildren(i) as FrameLayout; |
| | | for (int j = 0; j < fcView.ChildrenCount; j++) |
| | |
| | | if (fcView.GetChildren(j).Tag == null) |
| | | continue; |
| | | var cTag = fcView.GetChildren(j).Tag.ToString(); |
| | | switch (updataFunction.functionCategory) |
| | | if (SPK.LightSpkList().Contains(updataFunction.spk) || |
| | | SPK.AcSpkList().Contains(updataFunction.spk) || |
| | | SPK.FhSpkList().Contains(updataFunction.spk) || |
| | | SPK.ElectricalSpkList().Contains(updataFunction.spk) || |
| | | SPK.AirFreshSpkList().Contains(updataFunction.spk)) |
| | | { |
| | | case FunctionCategory.Light: |
| | | case FunctionCategory.Thermostat: |
| | | #region 按钮状态更新 |
| | | if (cTag == updataFunction.sid + "_Switch") |
| | | #region 按钮状态更新 |
| | | if (cTag == updataFunction.sid + "_Switch") |
| | | { |
| | | try |
| | | { |
| | | try |
| | | (fcView.GetChildren(j) as Button).IsSelected = updataFunction.trait_on_off.curValue.ToString() == "on"; |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | MainPage.Log($"{this.GetType()} error 0 : {ex.Message}"); |
| | | } |
| | | } |
| | | #endregion |
| | | #region 调光状态进度更新 |
| | | else if (cTag == updataFunction.sid + "_DimmerBar") |
| | | { |
| | | try |
| | | { |
| | | (fcView.GetChildren(j) as DiyImageSeekBar).Progress = Convert.ToInt32(updataFunction.GetAttrState(FunctionAttributeKey.Brightness)); |
| | | if (updataFunction.trait_on_off.curValue.ToString() == "on") |
| | | { |
| | | (fcView.GetChildren(j) as Button).IsSelected = updataFunction.trait_on_off.curValue.ToString() == "on"; |
| | | (fcView.GetChildren(j) as DiyImageSeekBar).ProgressBarColor = CSS.CSS_Color.AuxiliaryColor1; |
| | | } |
| | | catch (Exception ex) |
| | | else |
| | | { |
| | | MainPage.Log($"{this.GetType()} error 0 : {ex.Message}"); |
| | | (fcView.GetChildren(j) as DiyImageSeekBar).ProgressBarColor = CSS.CSS_Color.PromptingColor2; |
| | | } |
| | | } |
| | | #endregion |
| | | #region 调光状态进度更新 |
| | | else if (cTag == updataFunction.sid + "_DimmerBar") |
| | | catch (Exception ex) |
| | | { |
| | | try |
| | | { |
| | | if (updataFunction.trait_on_off.curValue.ToString() == "on") |
| | | { |
| | | (fcView.GetChildren(j) as DiyImageSeekBar).Progress = (updataFunction as Light).brightness; |
| | | (fcView.GetChildren(j) as DiyImageSeekBar).ProgressBarColor = CSS.CSS_Color.AuxiliaryColor1; |
| | | } |
| | | else |
| | | { |
| | | (fcView.GetChildren(j) as DiyImageSeekBar).Progress = (updataFunction as Light).brightness; |
| | | (fcView.GetChildren(j) as DiyImageSeekBar).ProgressBarColor = CSS.CSS_Color.PromptingColor2; |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | MainPage.Log($"{this.GetType()} error 1 : {ex.Message}"); |
| | | } |
| | | MainPage.Log($"{this.GetType()} error 1 : {ex.Message}"); |
| | | } |
| | | #endregion |
| | | #region 功能状态信息更新 |
| | | else if (cTag == updataFunction.functionType + "_laststates_" + updataFunction.sid) |
| | | } |
| | | #endregion |
| | | #region 功能状态信息更新 |
| | | else if (cTag == updataFunction.spk + "_laststates_" + updataFunction.sid) |
| | | { |
| | | try |
| | | { |
| | | try |
| | | { |
| | | (fcView.GetChildren(j) as Button).IsSelected = updataFunction.trait_on_off.curValue.ToString() == "on"; |
| | | (fcView.GetChildren(j) as Button).Text = updataFunction.lastState; |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | MainPage.Log($"{this.GetType()} error 2 : {ex.Message}"); |
| | | } |
| | | (fcView.GetChildren(j) as Button).IsSelected = updataFunction.trait_on_off.curValue.ToString() == "on"; |
| | | (fcView.GetChildren(j) as Button).Text = updataFunction.lastState; |
| | | } |
| | | break; |
| | | #endregion |
| | | case FunctionCategory.Curtain: |
| | | #region 窗帘更新 |
| | | var uCurtain = updataFunction as Curtain; |
| | | if (cTag == updataFunction.functionType + "_off_" + updataFunction.sid) |
| | | catch (Exception ex) |
| | | { |
| | | MainPage.Log($"{this.GetType()} error 2 : {ex.Message}"); |
| | | } |
| | | } |
| | | #endregion |
| | | } |
| | | else if (SPK.CurtainSpkList().Contains(updataFunction.spk)) |
| | | { |
| | | #region 窗帘更新 |
| | | var onoffString = updataFunction.GetAttrState(FunctionAttributeKey.OnOff); |
| | | if (onoffString == "stop") |
| | | { |
| | | return; |
| | | } |
| | | var percent = onoffString == "off" ? 0 : 100; |
| | | if (updataFunction.GetAttributes().Contains(FunctionAttributeKey.Percent)) |
| | | { |
| | | string percentString = updataFunction.GetAttrState(FunctionAttributeKey.Percent); |
| | | int.TryParse(percentString, out percent); |
| | | } |
| | | if (percent == 0) |
| | | { |
| | | if (cTag == updataFunction.sid + "_off") |
| | | { |
| | | try |
| | | { |
| | | (fcView.GetChildren(j) as Button).IsSelected = uCurtain.trait_on_off.curValue.ToString() == "off"; |
| | | (fcView.GetChildren(j) as Button).IsSelected = true; |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | MainPage.Log($"{this.GetType()} error 3 : {ex.Message}"); |
| | | } |
| | | catch { } |
| | | } |
| | | else |
| | | { |
| | | try |
| | | { |
| | | (fcView.GetChildren(j) as Button).IsSelected = uCurtain.trait_on_off.curValue.ToString() == "on"; |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | MainPage.Log($"{this.GetType()} error 4 : {ex.Message}"); |
| | | } |
| | | (fcView.GetChildren(j) as Button).IsSelected = false; |
| | | } |
| | | #endregion |
| | | break; |
| | | case FunctionCategory.Music: |
| | | #region 音乐更新 |
| | | var uMusic = updataFunction as Music.A31MusicModel; |
| | | if (cTag == updataFunction.functionType + "_State_" + updataFunction.sid) |
| | | } |
| | | else |
| | | { |
| | | if (cTag == updataFunction.sid + "_on") |
| | | { |
| | | try |
| | | { |
| | | (fcView.GetChildren(j) as Button).IsSelected = uMusic.A31PlayStatus.status == "play" ; |
| | | (fcView.GetChildren(j) as Button).IsSelected = true; |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | MainPage.Log($"{this.GetType()} error 3 : {ex.Message}"); |
| | | } |
| | | catch { } |
| | | } |
| | | #endregion |
| | | break; |
| | | else |
| | | { |
| | | (fcView.GetChildren(j) as Button).IsSelected = false; |
| | | } |
| | | } |
| | | #endregion |
| | | } |
| | | else if (SPK.MusicSpkList().Contains(updataFunction.spk)) |
| | | { |
| | | #region 音乐更新 |
| | | var uMusic = updataFunction as Music.A31MusicModel; |
| | | if (cTag == updataFunction.spk + "_State_" + updataFunction.sid) |
| | | { |
| | | try |
| | | { |
| | | (fcView.GetChildren(j) as Button).IsSelected = uMusic.A31PlayStatus.status == "play"; |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | MainPage.Log($"{this.GetType()} error 3 : {ex.Message}"); |
| | | } |
| | | } |
| | | #endregion |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | }); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | MainPage.Log($"RoomControlZone Updata States error : {ex.Message}"); |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | MainPage.Log($"RoomControlZone Updata States error : {ex.Message}"); |
| | | } |
| | | })); |
| | | } |
| | | |
| | | } |
| | | } |
| | | } |
| | | } |