From cbc156bc38d8b8eae7aef60cb186ab2b52fa701f Mon Sep 17 00:00:00 2001 From: wxr <wxr@hdlchina.com.cn> Date: 星期二, 16 七月 2024 13:59:56 +0800 Subject: [PATCH] 增加全部挂断 --- HDL_ON/Entity/Function/Function.cs | 229 +++++++++++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 205 insertions(+), 24 deletions(-) diff --git a/HDL_ON/Entity/Function/Function.cs b/HDL_ON/Entity/Function/Function.cs index 4f6404c..7bcc154 100644 --- a/HDL_ON/Entity/Function/Function.cs +++ b/HDL_ON/Entity/Function/Function.cs @@ -108,6 +108,7 @@ /// 鑾峰彇灞炴�у綋鍓嶇姸鎬� /// </summary> /// <param name="key"></param> + /// <param name="defaultValue">榛樿鍊�</param> /// <returns></returns> public string GetAttrState(string key, string defaultValue = "0") { @@ -120,7 +121,7 @@ if (string.IsNullOrEmpty(attrState.state)) { //浜岀骇鏌ヨkeyValue鍊� - return GetOriginalState(key); + return GetOriginalState(key, defaultValue); } return attrState.state; } @@ -130,13 +131,14 @@ /// 榛樿鍊硷細0 /// </summary> /// <param name="key">璇泙瀹氫箟鐨勫睘鎬у��</param> + /// <param name="defaultValue">榛樿鍊�</param> /// <returns></returns> - public string GetOriginalState(string key) + public string GetOriginalState(string key, string defaultValue) { var originalState = status.Find((s) => s.key == key.ToString()); if (originalState == null || string.IsNullOrEmpty(originalState.value)) { - return "0"; + return defaultValue; } return originalState.value; } @@ -171,6 +173,13 @@ string iconPath = spk.Replace(".", ""); switch (spk) { + case SPK.SensorDryContact2: + case SPK.OtherCommon: + iconPath = "sensordryContact"; + break; + //case SPK.SensorLight: + // iconPath = "lightswitch"; + // break; case SPK.AirSwitchP3: iconPath = "electricalbreaker"; break; @@ -445,20 +454,52 @@ /// </summary> public bool collect = false; - private bool _online = false; - /// <summary> - /// 鏄惁鍦ㄧ嚎 - /// </summary> - public bool online - { + private bool _online; + public bool online { get { + if (spk == SPK.AirSwitchP3|| spk == SPK.ElectricalTvHisense) + { + return _online; + } return true; } set { _online = value; } + } + ///// <summary> + ///// 鏄惁鍦ㄧ嚎 + ///// </summary> + //public bool online + //{ + // get + // { + // if(spk == SPK.AirSwitchP3) + // { + // return _online; + // } + // return true; + // } + // set + // { + // _online = value; + // } + //} + + public bool isOnline() + { + if (spk == SPK.AirSwitchP3) + { + return online; + } + return true; + } + + public void setOnine(bool isOnline) + { + online = isOnline; } /// <summary> @@ -730,9 +771,9 @@ /// <summary> /// 淇濆瓨鎴块棿缁戝畾淇℃伅 /// </summary> - public void UpdataRoomIds() + public async void UpdataRoomIds() { - new System.Threading.Thread(() => + new System.Threading.Thread( () => { var pack = ApiUtlis.Ins.HttpRequest.UpdataDevcieBindRoomInfo(this); //鐩存帴淇濆瓨鏈湴锛� @@ -813,10 +854,10 @@ { foreach (var temp in gc.sids) { - var light = FunctionList.List.GetLightList().Find((obj) => obj.sid == temp.sid); - if (light != null) + var tempDevice = FunctionList.List.GetLightList().Find((obj) => obj.sid == temp.sid); + if (tempDevice != null) { - foreach (var attr in light.attributes) + foreach (var attr in tempDevice.attributes) { if (list.Find((obj) => obj.key == attr.key) == null) { @@ -828,6 +869,43 @@ } } } + else if (spk == SPK.MusicStandard || spk == SPK.AvMusic) + { + list.Add(new FunctionAttributes + { + key = FunctionAttributeKey.OnOff, + curValue = string.Empty, + }); + list.Add(new FunctionAttributes + { + key = FunctionAttributeKey.Volume, + curValue = string.Empty, + }); + list.Add(new FunctionAttributes + { + key = FunctionAttributeKey.SongName, + curValue = string.Empty, + }); + + } + else if (spk == SPK.ElectricalTvHisense) + { + list.Add(new FunctionAttributes + { + key = FunctionAttributeKey.OnOff, + curValue = string.Empty, + }); + list.Add(new FunctionAttributes + { + key = FunctionAttributeKey.SetVolume, + curValue = string.Empty, + }); + list.Add(new FunctionAttributes + { + key = FunctionAttributeKey.Signal, + curValue = string.Empty, + }); + } else { list.AddRange(attributes); @@ -835,6 +913,10 @@ foreach (var attr in list) { + if(attr.key == FunctionAttributeKey.ColorfulBegin || attr.key == FunctionAttributeKey.ColorfulEnd || attr.key == FunctionAttributeKey.ColorfulTime) + { + continue; + } //绐楀笜鍚屾椂鍙戦�佸紑鍏宠窡鐧惧垎姣斾細鏈夐棶棰橈紝 if(spk == SPK.CurtainRoller || spk == SPK.CurtainTrietex || spk == SPK.CurtainDream) { @@ -850,33 +932,64 @@ sFunc.type = "5"; } - string us = ""; switch (attr.key) { case FunctionAttributeKey.SetTemp: + var tt = GetAttribute(FunctionAttributeKey.TempType); + if (tt == null) + { + attr.unit = "掳C"; + } + else + { + if (tt.unit == string.Empty) + { + attr.unit = "掳C"; + } + else + { + if (tt.unit == "C") + { + attr.unit = "掳C"; + } + else if (tt.unit == "F") + { + attr.unit = "掳F"; + } + else + { + attr.unit = tt.unit; + } + } + } + break; case FunctionAttributeKey.RoomTemp: - us = "掳C"; + attr.unit = "掳C"; var tempType = attributes.Find((obj) => obj.key == FunctionAttributeKey.TempType); if (tempType != null) { - us = tempType.curValue.ToString(); + attr.unit = tempType.curValue.ToString(); } break; case FunctionAttributeKey.Percent: case FunctionAttributeKey.Brightness: - us = "%"; + attr.unit = "%"; break; case FunctionAttributeKey.CCT: - us = "K"; + attr.unit = "K"; break; case FunctionAttributeKey.Angle: - us = "掳"; + attr.unit = "掳"; break; } switch (attr.key) { + case FunctionAttributeKey.SongName: + case FunctionAttributeKey.Volume: + case FunctionAttributeKey.SetVolume: + case FunctionAttributeKey.Signal: case FunctionAttributeKey.OnOff: case FunctionAttributeKey.Brightness: case FunctionAttributeKey.Mode: @@ -934,13 +1047,13 @@ vv = 26; } sFunc.status.Add(new SceneFunctionStatus() { - UintString = us, + UintString = attr.unit, key = attr.key, value = Convert.ToInt32(vv).ToString(), max = attr.max, min = attr.min }) ; } else { sFunc.status.Add(new SceneFunctionStatus() { - UintString = us, + UintString = attr.unit, key = attr.key, value = attr.curValue.ToString(), max = attr.max, min = attr.min }); } break; @@ -954,6 +1067,11 @@ /// 鏇存柊鏃堕棿 /// </summary> public DateTime refreshTime = DateTime.MinValue; + /// <summary> + /// 鏈�鍚庢洿鏂扮姸鎬佺殑鏃堕棿 + /// </summary> + [Newtonsoft.Json.JsonIgnore] + public DateTime updateTime = DateTime.MinValue; /// <summary> /// 鑾峰彇鏈湴鎺у埗鏁版嵁 @@ -1088,6 +1206,10 @@ /// 浜戠璐熻矗鐢熸垚 /// </summary> public string deviceId = "0"; + /// <summary> + /// 鍦ㄧ嚎鐘舵�� + /// </summary> + public bool online = true; public List<AttributesStatus> status = new List<AttributesStatus>(); } /// <summary> @@ -1372,7 +1494,12 @@ public const string Temperature = "temperature"; public const string Hcho = "hcho"; public const string Humidity = "humidity"; + /// <summary> + /// 鐓у害 + /// </summary> + public const string Illuminance = "illuminance"; public const string Pm25 = "pm25"; + public const string Pm10 = "pm10"; public const string Tvoc = "tvoc"; /// <summary> /// 鐘舵��,浼犳劅鍣� @@ -1510,6 +1637,32 @@ /// </summary> public const string TotalElectricity = "total_electricity"; + /// <summary> + /// 娴蜂俊tv闊抽噺 + /// </summary> + public const string SetVolume = "set_volume"; + /// <summary> + /// 娴蜂俊tv淇″彿婧�(0:LiveTV;2:PS;3:HDMI_1;4:HDMI_2;5:HDMI_3;6:HDMI_4;11:AV;) + /// </summary> + public const string Signal = "signal"; + + /// <summary> + /// 闊充箰闊抽噺 + /// </summary> + public const string Volume = "volume"; + /// <summary> + /// 姝屾洸鍚� + /// </summary> + public const string SongName = "song_name"; + /// <summary> + /// 鍒楄〃鍚� + /// </summary> + public const string PlaylistName = "playlist_name"; + /// <summary> + /// 鎾斁璺緞 + /// </summary> + public const string Url = "url"; + } /// <summary> @@ -1634,6 +1787,11 @@ /// </summary> public const string Ev_Ipcam = "security.ipcam.ez"; /// <summary> + /// 褰遍煶涓帶 + /// </summary> + public const string AvZkAiks = "av.zk.aiks"; + + /// <summary> /// 钀ょ煶瑙嗛闂ㄩ攣spk鍒楄〃 /// </summary> /// <returns></returns> @@ -1641,6 +1799,20 @@ { var list = new List<string>(); list.Add(VideoDoorLock); + return list; + } + + + /// <summary> + /// 褰遍煶涓帶spk鍒楄〃 + /// </summary> + /// <returns></returns> + public static List<string> GetVideoControlsSPKList() + { + var list = new List<string> + { + AvZkAiks + }; return list; } @@ -1846,6 +2018,8 @@ { var spkList = new List<string>(); spkList.Add(ElectricEnergy); + spkList.Add(AirSwitch); + spkList.Add(AirSwitchP3); return spkList; } #endregion @@ -2037,6 +2211,7 @@ spkList.Add(SensorEnvironment2); spkList.Add(SensorEnvironment3); spkList.Add(SensorHcho); + spkList.Add(SensorLight); return spkList; } /// <summary> @@ -2053,6 +2228,7 @@ spkList.Add(SensorTVOC); spkList.Add(SensorHumidity); spkList.Add(SensorHcho); + spkList.Add(SensorLight); return spkList; } @@ -2066,6 +2242,7 @@ spkList.Add(SensorEnvironment); spkList.Add(SensorEnvironmentHailin); spkList.Add(SensorEnvironment2); spkList.Add(SensorEnvironment3); + return spkList; } @@ -2073,6 +2250,10 @@ #endregion #region 瀹剁數 + /// <summary> + /// 娴蜂俊鐢佃 + /// </summary> + public const string ElectricalTvHisense = "electrical.tv.hisense"; /// <summary> /// 瀹剁數銆佹彃搴� /// </summary> @@ -2125,7 +2306,7 @@ /// <summary> /// 绾㈠鐑按鍣� /// </summary> - public const string HeaterIr = " ir.water_heater"; + public const string HeaterIr = "ir.water_heater"; /// <summary> /// 绾㈠椋庢墖 /// </summary> @@ -2191,7 +2372,7 @@ spkList.Add(ElectricTuyaWaterValve); spkList.Add(ElectricTuyaWaterValve2); spkList.Add(AirSwitch); - spkList.Add(AirSwitchP3); + spkList.Add(ElectricalTvHisense); return spkList; } -- Gitblit v1.8.0