From d41f1d4a478c1afcc43f3a5abb0ba76e376bc7c1 Mon Sep 17 00:00:00 2001 From: wei <kaede@kaededeMacBook-Air.local> Date: 星期二, 09 三月 2021 15:23:25 +0800 Subject: [PATCH] 2 --- HDL_ON/Entity/Function/Function.cs | 427 +++++++++++++++++++++++++++++++++-------------------- 1 files changed, 267 insertions(+), 160 deletions(-) diff --git a/HDL_ON/Entity/Function/Function.cs b/HDL_ON/Entity/Function/Function.cs index a148906..6bf5e6d 100644 --- a/HDL_ON/Entity/Function/Function.cs +++ b/HDL_ON/Entity/Function/Function.cs @@ -23,6 +23,36 @@ public string pageSize = "0"; } + /// <summary> + /// 灞炴�х姸鎬� + /// </summary> + public class AttrState + { + /// <summary> + /// 灞炴�ч敭鍚� + /// </summary> + public string key; + /// <summary> + /// 灞炴�х殑鍊煎垪琛� + /// </summary> + public List<string> value = new List<string>(); + /// <summary> + /// 鏈�澶у�� + /// </summary> + public int max = 100; + /// <summary> + /// 鏈�灏忓�� + /// </summary> + public int min = 0; + /// <summary> + /// 鏁版嵁绫诲瀷 + /// </summary> + public string data_type = ""; + /// <summary> + /// 褰撳墠鍊� + /// </summary> + public string curValue = ""; + } /// <summary> /// 鍔熻兘绫昏兘婊¤冻鏁版嵁浣跨敤瑕佹眰锛屽瓙绫诲彧鏄负浜嗘柟渚夸娇鐢ㄥ睘鎬� @@ -33,29 +63,103 @@ { } - #region base info + #region 浼樺寲鍖哄煙 2021-02-25 /// <summary> - /// HDL缁熶竴鍗忚鏍煎紡锛�14bytes - /// 涓句緥锛� 鏉ユ簮 鍘傚晢浠g爜 閫氳鏂瑰紡 浜у搧鏃堕棿鎴� 浜у搧绫诲埆 鐗╂ā鍨嬬被 閫氶亾鍙� 澶у皬绫诲埆 - /// 1byte 1byte 1byte 4byte 1byte 2byte 2byte 2byte - /// 鏉ユ簮锛�00 榛樿鍘熺敓鎬佺郴缁熸暟鎹� 銆�01 缃戝叧鎴栬�呭叾浠朅璁惧銆�02 璋冭瘯杞欢銆�03 APP搴旂敤绋嬪簭銆�04 绗笁鏂圭綉鍏虫垨鑰呭钩鍙� - /// 鍘傚晢浠g爜锛�01 HDL - /// 閫氳鏂瑰紡锛�01 HDL Bus銆�02 Zigbee銆�03 KNX銆�04 Z-Wave - /// 浜у搧鏃堕棿鎴筹細4bytes 浠�2020骞�1鏈�1鏃ョ畻鍑虹殑鏃堕棿鎴�0.1s涓哄崟浣� - /// 浜у搧绫诲埆锛�01 璋冨厜鍣ㄣ��02 缁х數鍣ㄣ��03 骞叉帴鐐规ā鍧椼��04 浼犳劅鍣ㄣ��05 闈㈡澘 - /// 鐗╂ā鍨嬬被鍨嬶細 - /// 01 寮�鍏崇被锛�01 寮�鍏炽��02 鎻掑骇銆�03 - /// 02 鐓ф槑锛� 01 寮�鍏炽��02 璋冨厜銆�03 鑹叉俯銆�04 LED - /// 03 閬槼锛� 01 绐楀笜鐢垫満銆�02 鐧惧彾绐椼��03 寮�鍚堝笜銆�04 鍗峰笜 - /// 04 鎭掓俯鍣細01 绌鸿皟銆�02 鍦版殩銆�03 姣涚粏绌鸿皟 - /// 05 鏂伴 - /// 06 褰遍煶 - /// 07 闊充箰 - /// 08 鑳芥簮 - /// 09 瀹夐槻 - /// 澶х被鍒� 1bytes 锛堥鐣欙級 - /// 灏忕被鍒� 1byte 锛堥鐣欙級 + /// 鏇存柊鐨勬渶鍚庢椂闂� /// </summary> + public string time_stamp = "1615261019796"; + + public string GeteTime() + { + try + { + DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1)); // 褰撳湴鏃跺尯 + return startTime.AddMilliseconds(Convert.ToDouble(time_stamp)).ToString("s"); + } + catch { + return DateTime.MinValue.ToString("s"); + } + } + /// <summary> + /// 鑾峰彇灞炴�у垪琛� + /// </summary> + /// <returns></returns> + public List<string> GetAttributes() + { + var attrs = new List<string>(); + + foreach(var attr in attributes) + { + attrs.Add(attr.key); + } + return attrs; + } + /// <summary> + /// 鑾峰彇鎸囧畾灞炴�� + /// </summary> + /// <returns></returns> + public FunctionAttributes GetAttribute(string key) + { + var attr = attributes.Find((a) => a.key == key); + return attr; + } + + /// <summary> + /// 鑾峰彇灞炴�у綋鍓嶇姸鎬� + /// </summary> + /// <param name="key"></param> + /// <returns></returns> + public string GetAttrState(string key) + { + var attrState = attributes.Find((s) => s.key == key.ToString()); + if (attrState == null || string.IsNullOrEmpty(attrState.state)) + { + return "0"; + } + return attrState.state; + } + /// <summary> + /// 璁剧疆灞炴�х姸鎬� + /// </summary> + /// <param name="key"></param> + /// <param name="value"></param> + /// <returns>淇敼缁撴灉</returns> + public bool SetAttrState(string key, object value) + { + //var attrState = status.Find((s) => s.key == key.ToString()); + var attr = attributes.Find((s) => s.key == key); + if (attr == null) + { + return false; + } + else + { + attr.state = value.ToString(); + attr.curValue = value.ToString(); + } + return true; + } + + + + + /// <summary> + /// 涓婁竴娆℃墦寮�鐨勪寒搴� + /// 鐏厜绉佹湁灞炴�� + /// </summary> + [Newtonsoft.Json.JsonIgnore] + public int lastBrightness = 100; + + /// <summary> + /// 宸ヤ綔妯″紡瀵瑰簲鐨勫伐浣滄俯搴� + /// 鍦扮儹绉佹湁灞炴�� + /// </summary> + [Newtonsoft.Json.JsonIgnore] + public Dictionary<string, byte> Fh_Mode_Temp = new Dictionary<string, byte>(); + #endregion + + + #region base info public string sid = "0301011234567801012301230123"; /// <summary> /// 澶囨敞 @@ -70,39 +174,6 @@ /// 璁惧spk /// </summary> public string spk = ""; - ///// <summary> - ///// 鍔熻兘绫诲埆 - ///// 濡傦細绌鸿皟绫汇�佺伅鍏夌被銆佺獥甯樼被 - ///// </summary> - //public FunctionCategory Spk_Prefix - //{ - // get - // { - // try - // { - // var _functionCategoryString = sid.Substring(16, 2); - // var _functionCategory = Convert.ToInt32(_functionCategoryString, 16); - // return (FunctionCategory)Enum.ToObject(typeof(FunctionCategory), _functionCategory); - // } - // catch (Exception ex) - // { - // MainPage.Log($"get FunctionCategory error : {ex.Message}"); - // return FunctionCategory.UnKown; - // } - // } - //} - - ///// <summary> - ///// 鍔熻兘绫诲瀷 - ///// </summary> - //public FunctionType spk - //{ - // get - // { - // var _functionTypeString = sid.Substring(16, 4); - // return (FunctionType)Enum.ToObject(typeof(FunctionType), Convert.ToInt32(_functionTypeString, 16)); - // } - //} string spk_Prefix; /// <summary> @@ -122,54 +193,12 @@ return spk_Prefix; } } - string spk_Suffix; - ///// <summary> - ///// spk鍚庣紑 - ///// 灏忕被 - ///// 鍔熻兘绫诲瀷 - ///// </summary> - //public string spk - //{ - // get - // { - // if (string.IsNullOrEmpty(spk_Suffix)) - // { - // try - // { - // spk_Suffix = spk.Split(".")[1]; - // } - // catch - // { - // spk_Suffix = ""; - // } - // } - // return spk_Suffix; - // } - //} - /// <summary> /// A鍗忚鍔熻兘鐨勭壒鎬� /// 濡傦細鏄疉C鍔熻兘锛氱壒鎬э細on_off,mode,fan,temperature /// attri /// </summary> public List<FunctionAttributes> attributes = new List<FunctionAttributes>(); - /// <summary> - /// 鍔熻兘鐘舵�佸垪琛� - /// </summary> - public List<AttributesStatus> status = new List<AttributesStatus>(); - /// <summary> - /// 鑾峰彇鐘舵�佸�� - /// </summary> - /// <returns></returns> - public string GetStatusValus(string key) - { - var d = status.Find((obj) => obj.key == key); - if(d==null) - { - return null; - } - return d.value; - } /// <summary> /// 鎴块棿ID鍒楄〃 @@ -198,12 +227,6 @@ /// 浜戠鏁版嵁淇敼鐨勬渶鍚庢椂闂� /// </summary> public string modifyTime = ""; - /// <summary> - /// 鍒犻櫎鏍囪 - /// 闇�瑕佸垹闄ゆ暟鎹椂锛屾爣璁颁负锛歵rue - /// 鐢变簯绔垹闄ゆ垚鍔熶箣鍚庯紝杩斿洖鏁版嵁鍐嶆竻闄ゆ湰鍦版暟鎹� - /// </summary> - public bool DeleteSign = false; #endregion /// <summary> @@ -271,7 +294,6 @@ public void CollectFunction() { var result = ""; - //var waitPage = new Loading(); new System.Threading.Thread(() => { @@ -290,6 +312,12 @@ { collect = !collect; IMessageCommon.Current.ShowErrorInfoAlter(result); + }); + }else + { + Application.RunOnMainThread(() => + { + UI.HomePage.RefreshFunctionView(); }); } }) @@ -441,36 +469,6 @@ }) { IsBackground = true }.Start(); } - /// <summary> - /// 淇濆瓨鍔熻兘鏁版嵁 - /// </summary> - //public void SaveFunctionData(bool upSevser) - //{ - // if (upSevser) - // { - // new System.Threading.Thread(() => - // { - // var pm = new HttpServerRequest(); - // var pack = pm.UpdataDevcieInfo(this); - // if (pack.Code == StateCode.SUCCESS) - // { - // var ssd = System.Text.Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(this)); - // FileUtlis.Files.WriteFileByBytes(savePath, ssd); - // } - // else - // { - // IMessageCommon.Current.ShowErrorInfoAlter(pack.Code); - // } - // }) - // { IsBackground = true }.Start(); - // } - // else - // { - // var ssd = System.Text.Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(this)); - // FileUtlis.Files.WriteFileByBytes(savePath, ssd); - // } - //} - /// <summary> /// 杞崲鎴愬満鏅姛鑳藉璞� @@ -530,10 +528,10 @@ { var sendDataObj = new AlinkFunctionStatusObj(); sendDataObj.id = Control.Ins.msg_id.ToString(); - sendDataObj.time_stamp = Control.Ins.Get_TimeStamp(); + sendDataObj.time_stamp = Utlis.GetTimestamp(); - var acd = new AlinkControlData(); + var acd = new AlinkStatusData(); acd.sid = sid; foreach (var dic in commandDictionary) { @@ -595,7 +593,7 @@ /// </summary> public class AlinkFunctionStatusObj { - public List<AlinkControlData> objects = new List<AlinkControlData>(); + public List<AlinkStatusData> objects = new List<AlinkStatusData>(); public string time_stamp = ""; public string id = ""; @@ -611,11 +609,23 @@ public string time_stamp = ""; } /// <summary> - /// A鍗忚鎺у埗鏁版嵁 + /// A鍗忚鐘舵�佹暟鎹� /// </summary> - public class AlinkControlData + public class AlinkStatusData { + /* + mqtt鎺ユ敹鐨勭姸鎬佹暟鎹病鏈塪eviceId + 鎺ュ彛鍙嶉鐨勬暟鎹湁 + */ + /// <summary> + /// + /// </summary> public string sid = ""; + /// <summary> + /// 璁惧ID + /// 浜戠璐熻矗鐢熸垚 + /// </summary> + public string deviceId = "0"; public List<AttributesStatus> status = new List<AttributesStatus>(); } /// <summary> @@ -663,22 +673,13 @@ /// </summary> public string data_type = ""; /// <summary> + /// 褰撳墠鐘舵�� + /// </summary> + public string state = ""; + /// <summary> /// 褰撳墠鍊� /// </summary> public object curValue = new object(); - ///// <summary> - ///// curValue鐨勭炕璇戝��,鏈�鍧忕殑缁撴灉涔熷彧浼氳繑鍥瀞tring.Empty - ///// </summary> - //public string realValue - //{ - // get - // { - // var myValue = curValue.ToString(); - // //娌欓洉瀹氫箟鐨刼bject绫诲瀷 - // if (myValue.Contains("{") == true) { return string.Empty; } - // return myValue; - // } - //} } /// <summary> /// 鍔熻兘灞炴�ч敭鍚嶅垪琛� @@ -707,6 +708,11 @@ /// </summary> public const string Mode = "mode"; /// <summary> + /// 宸ヤ綔妯″紡 + /// 鍦扮儹/鍦板喎/鍔熺巼鍦扮儹/鍔熺巼鍦板喎 + /// </summary> + public const string WorkMode = "mode_work"; + /// <summary> /// 椋庨�� /// </summary> public const string FanSpeed = "fan"; @@ -714,6 +720,16 @@ /// 璁剧疆娓╁害 /// </summary> public const string SetTemp = "set_temp"; + /// <summary> + /// 娓╁害妯″紡 + /// 绌鸿皟銆佸湴鐑�//app鑷姞 + /// </summary> + public const string TempType = "temperature_type"; + /// <summary> + /// 鏃堕棿鏍囪 + /// 鍦扮儹//app鑷姞 + /// </summary> + public const string TimeFlag = "time_flag"; /// <summary> /// 寤舵椂 /// </summary> @@ -734,6 +750,75 @@ /// value /// </summary> public const string Value = "value"; + /// <summary> + /// 鐘舵��,浼犳劅鍣� + /// </summary> + public const string Status = "status"; + /// <summary> + /// 鐢甸噺鐘舵�� + /// </summary> + public const string BatteryState = "battery_state"; + /// <summary> + /// 鐑樺共 + /// </summary> + public const string HotDry = "hot_dry"; + /// <summary> + /// 椋庡共 + /// </summary> + public const string WindDry = "wind_dry"; + /// <summary> + /// 娑堟瘨 + /// </summary> + public const string Disinfect = "disinfect"; + /// <summary> + /// 涓婂崌涓嬮檷 + /// </summary> + public const string Position = "position"; + /// <summary> + /// 杩涘害 + /// </summary> + public const string PositionPercent = "position_percent"; + /// <summary> + /// 鐑樺共鏃堕棿 + /// </summary> + public const string HotDryTime = "hot_dry_time"; + /// <summary> + /// 鐑樺共鍓╀綑鏃堕棿 + /// </summary> + public const string HotDryTimeLeft = "hot_dry_time_surplus"; + /// <summary> + /// 椋庡共鏃堕棿 + /// </summary> + public const string WindDryTime = "wind_dry_time"; + /// <summary> + /// 椋庡共鍓╀綑鏃堕棿 + /// </summary> + public const string WindDryTimeLeft = "wind_dry_time_surplus"; + /// <summary> + /// 娑堟瘨鏃堕棿 + /// </summary> + public const string DisinfectTime = "disinfect_time"; + /// <summary> + /// 娑堟瘨鍓╀綑鏃堕棿 + /// </summary> + public const string DisinfectTimeLeft = "disinfect_time_surplus"; + /// <summary> + /// 璐熺瀛� + /// </summary> + public const string Anion = "anion"; + /// <summary> + /// 璐熺瀛愭椂闂� + /// </summary> + public const string AnionTime = "anion_time"; + /// <summary> + /// 璐熺瀛愬墿浣欐椂闂� + /// </summary> + public const string AnionTimeLeft = "anion_time_surplus"; + /// <summary> + /// 鎵撳紑鐧昏(椋庢墖) + /// </summary> + public const string OpenLevel = "openLevel"; + #region tuya /// <summary> @@ -741,6 +826,8 @@ /// </summary> public const string TuyaWaterTime = "countdown_1"; #endregion + + } /// <summary> /// 璁惧鍔熻兘oid @@ -831,6 +918,10 @@ /// </summary> public const string AcStandard = "ac.standard"; /// <summary> + /// 锛堢孩澶栫┖璋冿級 + /// </summary> + public const string AcIr= "ir.ac"; + /// <summary> /// 锛堝湴鐑級 /// </summary> public const string FloorHeatStandard = "floorHeat.standard"; @@ -851,14 +942,6 @@ /// </summary> public const string SensorTemperature = "sensor.temperature"; /// <summary> - /// (绾㈠绉诲姩浼犳劅鍣�) - /// </summary> - public const string SensorPir = "sensor.pir"; - /// <summary> - /// 锛堥棬绐椾紶鎰熷櫒锛� - /// </summary> - public const string SensorDoorWindow = "sensor.doorwindow"; - /// <summary> /// 锛圥M2.5浼犳劅鍣級 /// </summary> public const string SensorPm25 = "sensor.pm25"; @@ -875,6 +958,14 @@ /// </summary> public const string SensorHumidity = "sensor.humidity"; + /// <summary> + /// (绾㈠绉诲姩浼犳劅鍣�) + /// </summary> + public const string SensorPir = "sensor.pir"; + /// <summary> + /// 锛堥棬绐椾紶鎰熷櫒锛� + /// </summary> + public const string SensorDoorWindow = "sensor.doorwindow"; /// <summary> /// 鐑熼浘浼犳劅鍣� /// </summary> @@ -932,6 +1023,18 @@ /// 瀹剁數銆佹秱楦︽按闃� /// </summary> public const string ElectricTuyaWaterValve = "electrical.koiGhMKwLf2ZP81g"; + /// <summary> + /// 鍑夐湼 + /// </summary> + public const string ClothesHanger = "electrical.racks"; + /// <summary> + /// 绾㈠瀹� + /// </summary> + public const string IrModule = "ir.module"; + /// <summary> + /// 绾㈠绌鸿皟 + /// </summary> + public const string IrAC = "ir.ac"; /// <summary> @@ -1013,8 +1116,12 @@ /// 瀹剁數 /// </summary> public const string Electric = "electrical"; + /// <summary> + /// 绾㈠璁惧 + /// </summary> + public const string IR = "ir"; - //Music = 0x09, + } -- Gitblit v1.8.0