From e6a26ee148587327478d9a82624a820c907b6e16 Mon Sep 17 00:00:00 2001 From: wxr <464027401@qq.com> Date: 星期三, 04 十一月 2020 14:58:15 +0800 Subject: [PATCH] 20201104 --- HDL_ON/Entity/Function/Function.cs | 745 +++++++++++++++++++++++++++++--------------------------- 1 files changed, 385 insertions(+), 360 deletions(-) diff --git a/HDL_ON/Entity/Function/Function.cs b/HDL_ON/Entity/Function/Function.cs index 0c3e88b..909a146 100644 --- a/HDL_ON/Entity/Function/Function.cs +++ b/HDL_ON/Entity/Function/Function.cs @@ -1,337 +1,29 @@ 锘縰sing System; using System.Collections.Generic; -using System.Linq; -using Newtonsoft.Json.Linq; -using HDL_ON; using Shared; namespace HDL_ON.Entity { /// <summary> - /// 鍔熻兘灞炴�� - /// 灞炴�у瓧娈佃В鏋愶細attri :灞炴�у唴瀹癸紝value 灞炴�х殑鍊硷紝max 鏈�澶у�� min 鏈�灏忓�� + /// 鍔熻兘绫昏兘婊¤冻鏁版嵁浣跨敤瑕佹眰锛屽瓙绫诲彧鏄负浜嗘柟渚夸娇鐢ㄥ睘鎬� /// </summary> - public class Trait - { - /// <summary> - /// 灞炴�у悕绉� - /// </summary> - public string name; - public List<string> _value_key; - /// <summary> - /// 灞炴�х殑鍊煎垪琛� - /// </summary> - [Newtonsoft.Json.JsonIgnore] - public List<string> value_key { - get - { - return _value_key; - } - set - { - _value_key = value; - } - } - /// <summary> - /// 鏈�澶у�� - /// </summary> - public int max; - /// <summary> - /// 鏈�灏忓�� - /// </summary> - public int min; - - /// <summary> - /// 鏁版嵁绫诲瀷 - /// </summary> - public string data_type = ""; - - /// <summary> - /// 褰撳墠鍊� - /// </summary> - public object value = new object(); - - - //----app鑷畾涔� - /// <summary> - /// 灞炴�у�煎崟浣� - /// </summary> - public string _uintString; - public string uintString { - get - { - if(!string.IsNullOrEmpty( _uintString)) - { - return _uintString; - } - var us = ""; - switch(name) - { - case "temperature": - us = "掳C"; - break; - case "percent": - case "brightness": - us = "%"; - break; - } - return us; - } - } - - /// <summary> - /// 灞炴�у悕绉版樉绀烘枃鏈� - /// 涓嫳鏂囨樉绀� - /// </summary> - public string name_text - { - get - { - string text = ""; - switch (name) - { - case "on_off": - text = Language.StringByID(StringId.OnOff); - break; - case "brightness": - text = Language.StringByID(StringId.Brightness); - break; - case "color": - text = Language.StringByID(StringId.ColorValue); - break; - case "mode": - text = Language.StringByID(StringId.Mode); - break; - case "fan": - text = Language.StringByID(StringId.FanSpeed); - break; - case "temperature": - text = Language.StringByID(StringId.Temp); - break; - case "delay": - text = Language.StringByID(StringId.Delay); - break; - case "cct": - text = "CCT"; - break; - //case "fade_time": - case "percent": - text = Language.StringByID(StringId.PercentAdjustment); - break; - //case "lock": - //case "ico": - //case "swing": - //case "set_ point": - //case "pm25": - //case "volume": - //case "vol_step": - //case "source": - //case "treble": - //case "bass": - //case "playlist": - //case "song_name": - //case "current_status": - //case "enable": - //case "lux": - //case "adjust_value": - //case "range": - //case "humidity": - //case "type": - //case "state": - //case "sensitivity": - //case "pm25value": - } - return text; - } - } - - /// <summary> - /// 鑾峰彇褰撳墠灞炴�х殑鏄剧ず鏂囨湰 - /// 涓嫳鏂囨樉绀� - /// </summary> - public string GetCurValueText() - { - return GetValueText(value.ToString()); - } - - /// <summary> - /// 鑾峰彇鎸囧畾灞炴�х殑鏄剧ず鏂囨湰 - /// 涓嫳鏂囨樉绀� - /// </summary> - public string GetValueText(string value) - { - string text = ""; - value = value.Replace("{}", ""); - switch (name) - { - case "on_off": - text = value == "on" ? Language.StringByID(StringId.On) : Language.StringByID(StringId.OFF); - break; - case "temperature": - case "brightness": - case "percent": - if (text == "") - { - this.value = this.min; - text = this.min.ToString(); - } - else - { - text = value; - } - break; - //case "color": - case "mode": - switch (value) - { - //----绌鸿皟 - case "auto": - text = Language.StringByID(StringId.Auto); - break; - case "cool": - text = Language.StringByID(StringId.Cool); - break; - case "heat": - text = Language.StringByID(StringId.Heat); - break; - case "dry": - text = Language.StringByID(StringId.Dry); - break; - case "fan": - text = Language.StringByID(StringId.AirSupply); - break; - //-----鍦扮儹 - case "day": - text = Language.StringByID(StringId.Day); - break; - case "night": - text = Language.StringByID(StringId.Night); - break; - case "away": - text = Language.StringByID(StringId.Away); - break; - case "normal": - text = Language.StringByID(StringId.Normal); - break; - case "timer": - text = Language.StringByID(StringId.Timer); - break; - default: - if (this.value_key.Contains("cool")) - { - this.value = "cool"; - text = Language.StringByID(StringId.Cool); - } - else if (this.value_key.Contains("day")) - { - this.value = "day"; - text = Language.StringByID(StringId.Day); - } - else - { - foreach (var v in this.value_key) - { - this.value = v; - text = GetCurValueText(); - } - } - break; - } - break; - case "fan": - switch (value) - { - case "high": - text = Language.StringByID(StringId.HighWindSpeed); - break; - case "medium": - text = Language.StringByID(StringId.MiddleWindSpeed); - break; - case "low": - text = Language.StringByID(StringId.LowWindSpeed); - break; - case "auto": - text = Language.StringByID(StringId.Auto); - break; - default: - if (this.value_key.Contains("low")) - { - this.value = "low"; - text = Language.StringByID(StringId.LowWindSpeed); - } - else - { - foreach (var v in this.value_key) - { - this.value = v; - text = GetCurValueText(); - } - } - break; - } - break; - //case "delay": - //case "cct": - //case "fade_time": - //case "lock": - //case "ico": - //case "swing": - //case "set_ point": - //case "pm25": - //case "volume": - //case "vol_step": - //case "source": - //case "treble": - //case "bass": - //case "playlist": - //case "song_name": - //case "current_status": - //case "enable": - //case "lux": - //case "adjust_value": - //case "range": - //case "humidity": - //case "type": - //case "state": - //case "sensitivity": - //case "pm25value": - case "high": - text = Language.StringByID(StringId.HighWindSpeed); - break; - case "medium": - text = Language.StringByID(StringId.MiddleWindSpeed); - break; - case "low": - text = Language.StringByID(StringId.LowWindSpeed); - break; - case "auto": - text = Language.StringByID(StringId.Auto); - break; - } - return text; - } - } - /// <summary> - /// 璁惧鍔熻兘oid - /// </summary> - public class FunctionOid - { - public string oid; - public string name; - public string machine_id; - public string net_id; - public string dev_id; - public string channels; - - - } - - public class Function { public Function() { } + /// <summary> + /// 鏁版嵁瀛樺偍鏂囦欢鍚� + /// </summary> + [Newtonsoft.Json.JsonIgnore] + public string savePath + { + get + { + return "FunctionData_" + sid; + } + } + #region base info /// <summary> /// HDL缁熶竴鍗忚鏍煎紡锛�14bytes @@ -446,20 +138,6 @@ /// 澶囨敞 /// </summary> public string name; - /// <summary> - /// A鍗忚鍘傚晢浠g爜 - /// </summary> - public string vendor_code - { - get - { - string vendorCode = "HDL"; - var code = sid.Substring(0, 4); - if (code == "0001") - vendorCode = "HDL"; - return vendorCode; - } - } /// <summary> /// 鏈�鍚庢帶鍒剁殑涓�娆$姸鎬� @@ -498,18 +176,6 @@ } /// <summary> - /// 寮�鍏崇姸鎬佹枃鏈� - /// </summary> - [Newtonsoft.Json.JsonIgnore] - public string on_off_text - { - get - { - return trait_on_off.value.ToString() == "on" ? Language.StringByID(StringId.On) : Language.StringByID(StringId.OFF); - } - } - - /// <summary> /// 鏄惁鏀惰棌 /// </summary> public bool collection = false; @@ -531,19 +197,6 @@ /// 鍥哄畾鐨勫簭鍙� /// </summary> public int fixedSerialNumber = int.MaxValue; - - /// <summary> - /// 鑾峰彇A鍗忚鎺у埗瀛楃涓� - /// </summary> - /// <param name="command">鎺у埗鍛戒护锛歸rite锛宺ead</param> - /// <returns></returns> - public virtual JObject GetSendJObject(CommandType_A command) - { - var sendJob = new JObject { { "vendor_code", vendor_code }, { "Command", command.ToString() }, { "Type", "device" }, }; - var data = new JObject { { "sid", sid } }; - sendJob.Add("objects", data); - return sendJob; - } public string GetBusId () { @@ -593,5 +246,377 @@ /// 鏇存柊鏃堕棿 /// </summary> public DateTime refreshTime = DateTime.MinValue; + + /// <summary> + /// 鑾峰彇鎺у埗鍙戦�佹暟鎹� + /// </summary> + public AprotocolControlObj GetControlSendData(Dictionary<string, string> commandDictionary) + { + var sendDataObj = new AprotocolControlObj(); + sendDataObj.from_oid = ""; + sendDataObj.to_oid = ""; + sendDataObj.time_stamp = ""; + sendDataObj.type = "device_sid"; + sendDataObj.command = "write"; + + var acoList = new AprotocolControlData(); + acoList.sid = sid; + var aco = new AprotocolControlAttribute(); + foreach(var dic in commandDictionary) + { + aco.name = dic.Key; + aco.value = dic.Value; + acoList.function.Add(aco); + } + + sendDataObj.objects.Add(acoList); + + + return sendDataObj; + } } + + /// <summary> + /// A鍗忚鎺у埗鏁版嵁鐨勫璞� + /// </summary> + public class AprotocolControlObj + { + public List<AprotocolControlData> objects = new List<AprotocolControlData>(); + + public string from_oid = ""; + public string to_oid = ""; + public string time_stamp = ""; + public string type = ""; + public string command = ""; + } + /// <summary> + /// A鍗忚鎺у埗鏁版嵁 + /// </summary> + public class AprotocolControlData + { + + public string sid = ""; + public List<AprotocolControlAttribute> function = new List<AprotocolControlAttribute>(); + } + /// <summary> + /// A鍗忚鎺у埗灞炴�у璞� + /// </summary> + public class AprotocolControlAttribute + { + public string name; + public string value; + } + + /// <summary> + /// 鍔熻兘灞炴�� + /// 灞炴�у瓧娈佃В鏋愶細attri :灞炴�у唴瀹癸紝value 灞炴�х殑鍊硷紝max 鏈�澶у�� min 鏈�灏忓�� + /// </summary> + public class Trait + { + /// <summary> + /// 灞炴�у悕绉� + /// </summary> + public string name; + /// <summary> + /// 灞炴�х殑鍊煎垪琛� + /// </summary> + public List<string> value_key = new List<string>(); + /// <summary> + /// 鏈�澶у�� + /// </summary> + public int max; + /// <summary> + /// 鏈�灏忓�� + /// </summary> + public int min; + + /// <summary> + /// 鏁版嵁绫诲瀷 + /// </summary> + public string data_type = ""; + + /// <summary> + /// 褰撳墠鍊� + /// </summary> + public object value = new object(); + + + //----app鑷畾涔� + /// <summary> + /// 灞炴�у�煎崟浣� + /// </summary> + string _uintString; + [Newtonsoft.Json.JsonIgnore] + public string uintString + { + get + { + if (!string.IsNullOrEmpty(_uintString)) + { + return _uintString; + } + var us = ""; + switch (name) + { + case "temperature": + case "set_temperature": + us = "掳C"; + break; + case "percent": + case "brightness": + us = "%"; + break; + } + return us; + } + } + + /// <summary> + /// 灞炴�у悕绉版樉绀烘枃鏈� + /// 涓嫳鏂囨樉绀� + /// </summary> + [Newtonsoft.Json.JsonIgnore] + public string name_text + { + get + { + string text = ""; + switch (name) + { + case "on_off": + text = Language.StringByID(StringId.OnOff); + break; + case "brightness": + text = Language.StringByID(StringId.Brightness); + break; + case "color": + text = Language.StringByID(StringId.ColorValue); + break; + case "mode": + text = Language.StringByID(StringId.Mode); + break; + case "fan": + text = Language.StringByID(StringId.FanSpeed); + break; + case "temperature": + case "set_temperature": + text = Language.StringByID(StringId.Temp); + break; + case "delay": + text = Language.StringByID(StringId.Delay); + break; + case "cct": + text = "CCT"; + break; + //case "fade_time": + case "percent": + text = Language.StringByID(StringId.PercentAdjustment); + break; + //case "lock": + //case "ico": + //case "swing": + //case "set_point": + //case "pm25": + //case "volume": + //case "vol_step": + //case "source": + //case "treble": + //case "bass": + //case "playlist": + //case "song_name": + //case "current_status": + //case "enable": + //case "lux": + //case "adjust_value": + //case "range": + //case "humidity": + //case "type": + //case "state": + //case "sensitivity": + //case "pm25value": + } + return text; + } + } + + /// <summary> + /// 鑾峰彇褰撳墠灞炴�х殑鏄剧ず鏂囨湰 + /// 涓嫳鏂囨樉绀� + /// </summary> + public string GetCurValueText() + { + return GetValueText(value.ToString()); + } + + /// <summary> + /// 鑾峰彇鎸囧畾灞炴�х殑鏄剧ず鏂囨湰 + /// 涓嫳鏂囨樉绀� + /// </summary> + public string GetValueText(string value) + { + string text = ""; + value = value.Replace("{}", ""); + switch (name) + { + case "on_off": + text = value == "on" ? Language.StringByID(StringId.On) : Language.StringByID(StringId.OFF); + break; + case "temperature": + case "set_temperature": + case "brightness": + case "percent": + if (value == "") + { + this.value = this.min; + text = this.min.ToString(); + } + else + { + text = value; + } + break; + //case "color": + case "mode": + switch (value) + { + //----绌鸿皟 + case "auto": + text = Language.StringByID(StringId.Auto); + break; + case "cool": + text = Language.StringByID(StringId.Cool); + break; + case "heat": + text = Language.StringByID(StringId.Heat); + break; + case "dry": + text = Language.StringByID(StringId.Dry); + break; + case "fan": + text = Language.StringByID(StringId.AirSupply); + break; + //-----鍦扮儹 + case "day": + text = Language.StringByID(StringId.Day); + break; + case "night": + text = Language.StringByID(StringId.Night); + break; + case "away": + text = Language.StringByID(StringId.Away); + break; + case "normal": + text = Language.StringByID(StringId.Normal); + break; + case "timer": + text = Language.StringByID(StringId.Timer); + break; + default: + if (this.value_key.Contains("cool")) + { + this.value = "cool"; + text = Language.StringByID(StringId.Cool); + } + else if (this.value_key.Contains("day")) + { + this.value = "day"; + text = Language.StringByID(StringId.Day); + } + else + { + foreach (var v in this.value_key) + { + this.value = v; + text = GetCurValueText(); + } + } + break; + } + break; + case "fan": + switch (value) + { + case "high": + text = Language.StringByID(StringId.HighWindSpeed); + break; + case "medium": + text = Language.StringByID(StringId.MiddleWindSpeed); + break; + case "low": + text = Language.StringByID(StringId.LowWindSpeed); + break; + case "auto": + text = Language.StringByID(StringId.Auto); + break; + default: + if (this.value_key.Contains("low")) + { + this.value = "low"; + text = Language.StringByID(StringId.LowWindSpeed); + } + else + { + foreach (var v in this.value_key) + { + this.value = v; + text = GetCurValueText(); + } + } + break; + } + break; + //case "delay": + //case "cct": + //case "fade_time": + //case "lock": + //case "ico": + //case "swing": + //case "set_point": + //case "pm25": + //case "volume": + //case "vol_step": + //case "source": + //case "treble": + //case "bass": + //case "playlist": + //case "song_name": + //case "current_status": + //case "enable": + //case "lux": + //case "adjust_value": + //case "range": + //case "humidity": + //case "type": + //case "state": + //case "sensitivity": + //case "pm25value": + case "high": + text = Language.StringByID(StringId.HighWindSpeed); + break; + case "medium": + text = Language.StringByID(StringId.MiddleWindSpeed); + break; + case "low": + text = Language.StringByID(StringId.LowWindSpeed); + break; + case "auto": + text = Language.StringByID(StringId.Auto); + break; + } + return text; + } + } + /// <summary> + /// 璁惧鍔熻兘oid + /// </summary> + public class FunctionOid + { + public string oid; + public string name; + public string machine_id; + public string net_id; + public string dev_id; + public string channels; + } + } -- Gitblit v1.8.0