From 4f0ab0ad21ce450b7856d50f98322a7899361386 Mon Sep 17 00:00:00 2001
From: 黄学彪 <hxb@hdlchina.com.cn>
Date: 星期二, 22 九月 2020 10:30:01 +0800
Subject: [PATCH] 不要下载这个备份
---
ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlDeviceAttributeLogic.cs | 122 +++++++++++++++-------------------------
1 files changed, 47 insertions(+), 75 deletions(-)
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlDeviceAttributeLogic.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlDeviceAttributeLogic.cs
index 01ce670..ec80f72 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlDeviceAttributeLogic.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlDeviceAttributeLogic.cs
@@ -41,88 +41,28 @@
#region 鈻� 鍐欏叆璁惧灞炴�______________________
/// <summary>
- /// 璁剧疆绌鸿皟鐨勮嚜瀹氫箟妯″紡
+ /// 鑾峰彇鏇存敼璁惧绉佹湁灞炴�х殑鍛戒护
/// </summary>
- /// <param name="device">璁惧瀵硅薄</param>
- /// <param name="clusterId">闀濱D</param>
- /// <param name="attributeId">灞炴�D</param>
- /// <param name="attributeDataType">鏁版嵁绫诲瀷</param>
- /// <param name="attributeData">闇�瑕佸啓鍏ョ殑鏁版嵁(鏁板�兼垨鑰呭瓧绗︿覆)</param>
+ /// <param name="clusterId"></param>
+ /// <param name="attributeId"></param>
+ /// <param name="attributeDataType"></param>
+ /// <param name="attributeData"></param>
/// <returns></returns>
- public async System.Threading.Tasks.Task<CommonDevice.SetWritableValueResponAllData> WriteDeviceAttribute(CommonDevice device, int clusterId, int attributeId, int attributeDataType, object attributeData)
+ public string GetWriteDeviceAttributeText(string DeviceAddr, int DeviceEpoint, int clusterId, int attributeId, int attributeDataType, object attributeData)
{
- var MyGateway = device.Gateway;
- if (MyGateway == null)
+ var jObject = new Newtonsoft.Json.Linq.JObject { { "DeviceAddr", DeviceAddr }, { "Epoint", DeviceEpoint }, { "Cluster_ID", clusterId }, { "Command", 120 } };
+ Newtonsoft.Json.Linq.JObject data = null;
+ if (attributeData is int)
{
- return null;
+ data = new Newtonsoft.Json.Linq.JObject { { "Undivided", 0 }, { "AttributeId", attributeId }, { "AttributeDataType", attributeDataType }, { "AttributeData", Convert.ToInt32(attributeData) } };
}
-
- CommonDevice.SetWritableValueResponAllData d = null;
- Action<string, string> action = (topic, message) =>
+ else
{
- var gatewayID = topic.Split('/')[0];
- var jobject = Newtonsoft.Json.Linq.JObject.Parse(message);
-
- if (topic == gatewayID + "/" + "Error_Respon")
- {
- var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<CommonDevice.ErrorResponData>(jobject["Data"].ToString());
- if (temp == null)
- {
- d = new CommonDevice.SetWritableValueResponAllData { errorMessageBase = "缃戝叧閿欒鍥炲锛屼笖鏁版嵁鏄┖" };
- }
- else
- {
- d = new CommonDevice.SetWritableValueResponAllData { errorResponData = temp, errorMessageBase = HdlCheckLogic.Current.CheckCommonErrorCode(temp.Error) };
- }
- }
-
- if (topic == gatewayID + "/" + "SetWritableValue_Respon")
- {
- var tempData = Newtonsoft.Json.JsonConvert.DeserializeObject<CommonDevice.SetWritableValueResponData>(jobject["Data"].ToString());
- if (tempData == null)
- {
- d = new CommonDevice.SetWritableValueResponAllData { errorMessageBase = "缃戝叧杩斿洖鐨勬暟鎹负绌�" };
- }
- else
- {
- d = new CommonDevice.SetWritableValueResponAllData { setWritableValueResponData = tempData };
- }
- }
- };
- MyGateway.Actions += action;
- try
- {
- var jObject = new Newtonsoft.Json.Linq.JObject { { "DeviceAddr", device.DeviceAddr }, { "Epoint", device.DeviceEpoint }, { "Cluster_ID", clusterId }, { "Command", 120 } };
- Newtonsoft.Json.Linq.JObject data = null;
- if (attributeData is int)
- {
- data = new Newtonsoft.Json.Linq.JObject { { "Undivided", 0 }, { "AttributeId", attributeId }, { "AttributeDataType", attributeDataType }, { "AttributeData", Convert.ToInt32(attributeData) } };
- }
- else
- {
- data = new Newtonsoft.Json.Linq.JObject { { "Undivided", 0 }, { "AttributeId", attributeId }, { "AttributeDataType", attributeDataType }, { "AttributeData", attributeData.ToString() } };
- }
- jObject.Add("Data", data);
- MyGateway.Send("SetWritableValue", jObject.ToString());
+ data = new Newtonsoft.Json.Linq.JObject { { "Undivided", 0 }, { "AttributeId", attributeId }, { "AttributeDataType", attributeDataType }, { "AttributeData", attributeData.ToString() } };
}
- catch { }
+ jObject.Add("Data", data);
- var timeOut = 0;
- while (timeOut <= 30)
- {
- await System.Threading.Tasks.Task.Delay(100);
- if (d != null)
- {
- break;
- }
- timeOut++;
- }
- if (timeOut > 30 && d == null)
- {
- d = new CommonDevice.SetWritableValueResponAllData { errorMessageBase = " 鍥炲瓒呮椂锛岃閲嶆柊鎿嶄綔" };
- }
- MyGateway.Actions -= action;
- return d;
+ return jObject.ToString();
}
#endregion
@@ -435,7 +375,7 @@
/// 鍙戦�佽幏鍙栫伅鍏夌姸鎬佸懡浠�
/// </summary>
/// <param name="device">绐楀笜</param>
- private void SendLevelStatuComand(CommonDevice device)
+ public void SendLevelStatuComand(CommonDevice device)
{
if (device == null)
{
@@ -458,6 +398,38 @@
var data = new Newtonsoft.Json.Linq.JObject { { "AttriBute", attriBute } };
jObject.Add("Data", data);
device.Gateway?.Send(("GetDeviceStatus"), jObject.ToString());
+ }
+
+ #endregion
+
+ #region 鈻� 鑹叉俯鐏痏____________________________
+
+ /// <summary>
+ /// 鍙戦�佽幏鍙栬壊娓╃伅鐘舵�佸懡浠�
+ /// </summary>
+ /// <param name="device"></param>
+ public void SendColorTemperatureLightStatuComand(CommonDevice device)
+ {
+ if (device == null)
+ {
+ return;
+ }
+ var colorDevice = (ColorTemperatureLight)device;
+ new System.Threading.Thread(() =>
+ {
+ colorDevice.ReadOnOffStatus();
+ System.Threading.Thread.Sleep(300);
+ colorDevice.ReadLevel();
+ System.Threading.Thread.Sleep(300);
+ colorDevice.ReadColorTemperature();
+ if (LocalDevice.Current.IsMiniLight(device) == true)
+ {
+ //mini澶滅伅闇�瑕佽鍙栬渹楦e櫒鐘舵��
+ System.Threading.Thread.Sleep(300);
+ colorDevice.ReadBuzzerStatu();
+ }
+ })
+ { IsBackground = true }.Start();
}
#endregion
--
Gitblit v1.8.0