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/HdlDeviceBindLogic.cs | 106 ++++++++++++++++++++++++++++++++++++++++++++++-------
1 files changed, 92 insertions(+), 14 deletions(-)
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlDeviceBindLogic.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlDeviceBindLogic.cs
index 97a36c8..e255b33 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlDeviceBindLogic.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlDeviceBindLogic.cs
@@ -76,7 +76,7 @@
//濡傛灉褰撳墠浣忓畢鏄櫄鎷熶綇瀹�
if (Common.Config.Instance.Home.IsVirtually == true)
{
- var listBind = ModelData.DeviceModelDataLogic.Current.GetDeviceBindList(device, "Bind/GetDeviceBind");
+ var listBind = TemplateData.TemplateDeviceDataLogic.Current.GetDeviceBindList(device);
return new BindObj.GetDeviceBindResponseAllData()
{
getAllBindResponseData = new BindObj.GetDeviceBindResponseData
@@ -177,7 +177,7 @@
//濡傛灉褰撳墠浣忓畢鏄櫄鎷熶綇瀹�
if (Common.Config.Instance.Home.IsVirtually == true)
{
- return ModelData.DeviceModelDataLogic.Current.AddDeviceBindList(addBindData, "Bind/GetDeviceBind");
+ return TemplateData.TemplateDeviceDataLogic.Current.AddDeviceBindList(addBindData, null);
}
var device = Common.LocalDevice.Current.GetDevice(addBindData.DeviceAddr, addBindData.Epoint);
@@ -191,8 +191,7 @@
}
//淇敼缂撳瓨
- ModelData.DeviceModelDataLogic.Current.AddDeviceBindList(addBindData, "Bind/GetDeviceBind");
-
+ TemplateData.TemplateDeviceDataLogic.Current.AddDeviceBindList(addBindData, result.JsonData[0]);
var tempData = Newtonsoft.Json.JsonConvert.DeserializeObject<BindObj.AddedDeviceBindResponseData>(result.ReceiptData);
return new BindObj.AddedDeviceBindResponseAllData() { addedDeviceBindResponseData = tempData };
}
@@ -225,6 +224,53 @@
jObject.Add("Data", data);
return jObject.ToString();
}
+
+ /// <summary>
+ ///璁惧缁戝畾銆愪竴瀵逛竴 缁戝畾锛屼竴涓寜閿洖璺彧鑳界粦瀹氫竴涓澶囥��
+ /// </summary>
+ public BindObj.AddedDeviceSingleBindResponseAllData AddDeviceSingleBindAsync(BindObj.AddSingleBindData addSingleBindData)
+ {
+ var device = Common.LocalDevice.Current.GetDevice(addSingleBindData.DeviceAddr, addSingleBindData.Epoint);
+ //鑾峰彇鍙戦�佺殑鍛戒护瀛楃
+ var sendData = this.GetAddDeviceListSingleBindCommandText(addSingleBindData);
+ //鍙戦��
+ var result = HdlDeviceCommonLogic.Current.SendJobjectDataToGateway(device, "Bind/SetSingleBind", sendData, "Bind/SetSingleBind_Respon", 20);
+ if (result.ErrorMsg != null || result.ErrorMsgDiv == 0)
+ {
+ return null;
+ }
+
+ var tempData = Newtonsoft.Json.JsonConvert.DeserializeObject<BindObj.AddedDeviceSingleBindResponseData>(result.ReceiptData);
+ return new BindObj.AddedDeviceSingleBindResponseAllData() { addedDeviceSingleBindResponseData = tempData };
+ }
+
+ /// <summary>
+ /// 鑾峰彇娣诲姞璁惧缁戝畾鐨勫懡浠ゅ瓧绗�
+ /// </summary>
+ /// <param name="addBindData"></param>
+ /// <returns></returns>
+ public string GetAddDeviceListSingleBindCommandText(BindObj.AddSingleBindData addSingleBindData)
+ {
+ var jObject = new JObject { { "DeviceAddr", addSingleBindData.DeviceAddr }, { "Epoint", addSingleBindData.Epoint }, { "Cluster_ID", 0 }, { "Command", 5020 } };
+ var data = new JObject { };
+ var bindClusterList = new JArray { };
+ foreach (var cluster in addSingleBindData.BindClusterList)
+ {
+ bindClusterList.Add(cluster);
+ }
+ if (addSingleBindData.BindType == 0)
+ {
+ data = new JObject { { "BindName", addSingleBindData.BindName }, { "BindType", addSingleBindData.BindType }, { "BindClusterList", bindClusterList }, { "BindMacAddr", addSingleBindData.BindMacAddr }, { "BindEpoint", addSingleBindData.BindEpoint } };
+ }
+ else if (addSingleBindData.BindType == 1)
+ {
+ data = new JObject { { "BindName", addSingleBindData.BindName }, { "BindType", addSingleBindData.BindType }, { "BindClusterList", bindClusterList }, { "BindScenesId", addSingleBindData.BindScenesId } };
+
+ }
+ jObject.Add("Data", data);
+ return jObject.ToString();
+ }
+
#endregion
@@ -420,7 +466,7 @@
//濡傛灉褰撳墠浣忓畢鏄櫄鎷熶綇瀹�
if (Common.Config.Instance.Home.IsVirtually == true)
{
- return ModelData.DeviceModelDataLogic.Current.DeleteDeviceBindList(delDeviceBindData);
+ return TemplateData.TemplateDeviceDataLogic.Current.DeleteDeviceBindList(delDeviceBindData);
}
var device = Common.LocalDevice.Current.GetDevice(delDeviceBindData.DeviceAddr, delDeviceBindData.Epoint);
//鑾峰彇闇�瑕佸彂閫佺殑鏁版嵁
@@ -447,7 +493,7 @@
}
//淇敼缂撳瓨
- ModelData.DeviceModelDataLogic.Current.DeleteDeviceBindList(delDeviceBindData);
+ TemplateData.TemplateDeviceDataLogic.Current.DeleteDeviceBindList(delDeviceBindData);
return responseData;
}
@@ -460,7 +506,7 @@
//濡傛灉褰撳墠浣忓畢鏄櫄鎷熶綇瀹�
if (Common.Config.Instance.Home.IsVirtually == true)
{
- return ModelData.DeviceModelDataLogic.Current.ClearDeviceAllBind(device);
+ return TemplateData.TemplateDeviceDataLogic.Current.ClearDeviceAllBind(device);
}
var jObject = new JObject { { "DeviceAddr", device.DeviceAddr }, { "Epoint", device.DeviceEpoint }, { "Cluster_ID", 0 }, { "Command", 5006 } };
@@ -472,7 +518,7 @@
}
//淇敼缂撳瓨
- ModelData.DeviceModelDataLogic.Current.ClearDeviceAllBind(device);
+ TemplateData.TemplateDeviceDataLogic.Current.ClearDeviceAllBind(device);
var tempData = Newtonsoft.Json.JsonConvert.DeserializeObject<BindObj.ClearBindInfoResponseData>(result.ReceiptData);
return new BindObj.ClearBindInfoResponseAllData { clearBindInfoResponseData = tempData };
@@ -533,7 +579,7 @@
return reResult;
}
//缃戝叧ID
- string gatewayID = HdlGatewayLogic.Current.GetGatewayId(device.Gateway);
+ string gatewayID = device.Gateway.GwId;
//閿欒涓婚
string errorTopic = gatewayID + "/" + "Error_Respon";
//妫�娴嬪璞$殑涓婚
@@ -543,6 +589,9 @@
}
bool canbreak = false;
+ BindObj.DelDeviceBindResponseData delDeviceBindData = null;
+ BindObj.RemoveBindResultResponseData removeBindResult = null;
+
Action<string, string> receiptAction = (topic, message) =>
{
var jobject = Newtonsoft.Json.Linq.JObject.Parse(message);
@@ -571,9 +620,38 @@
return;
}
reResult.listReceiptData[i] = jobject["Data"].ToString();
+
if (i == 0)
{
- //鍙湁鏄疊ind/RemoveBind_Respon涓婚,鎵嶈兘涓柇
+ //"Bind/RemoveBind_Respon"涓婚
+ delDeviceBindData = Newtonsoft.Json.JsonConvert.DeserializeObject<BindObj.DelDeviceBindResponseData>(reResult.listReceiptData[i]);
+ }
+ else if (i == 1)
+ {
+ //"Bind/RemoveBindResult"涓婚
+ removeBindResult = Newtonsoft.Json.JsonConvert.DeserializeObject<BindObj.RemoveBindResultResponseData>(reResult.listReceiptData[i]);
+ }
+
+ if (0 < delDeviceBindData.RemoveBindList.FindAll((obj) => obj.BindType == 0 && obj.Result == 1).Count)
+ {
+ canbreak = true;
+ }
+ else if (0 < delDeviceBindData.RemoveBindList.FindAll((obj) => obj.BindType == 0 && obj.Result == 3).Count)
+ {
+ if (removeBindResult != null)
+ {
+ canbreak = true;
+ }
+ }
+ else if (0 < delDeviceBindData.RemoveBindList.FindAll((obj) => obj.BindType == 0 && obj.Result == 2).Count)
+ {
+ if (removeBindResult != null)
+ {
+ canbreak = true;
+ }
+ }
+ else
+ {
canbreak = true;
}
}
@@ -628,7 +706,7 @@
//濡傛灉褰撳墠浣忓畢鏄櫄鎷熶綇瀹�
if (Common.Config.Instance.Home.IsVirtually == true)
{
- return ModelData.DeviceModelDataLogic.Current.ConfigurePanelKeyModel(device, value, clusterID, "SetWritableValue");
+ return TemplateData.TemplateDeviceDataLogic.Current.ConfigurePanelKeyModel(device, value, clusterID, null);
}
//鑾峰彇鍙戦�佹暟鎹�
var sendData = this.GetConfigureHdlKeyCommandText(device.DeviceAddr, device.DeviceEpoint, value, clusterID);
@@ -639,7 +717,7 @@
}
//淇敼缂撳瓨
- ModelData.DeviceModelDataLogic.Current.ConfigurePanelKeyModel(device, value, clusterID, "SetWritableValue");
+ TemplateData.TemplateDeviceDataLogic.Current.ConfigurePanelKeyModel(device, value, clusterID, result.JsonData[0]);
var tempData = Newtonsoft.Json.JsonConvert.DeserializeObject<CommonDevice.SetWritableValueResponData>(result.ReceiptData);
return new CommonDevice.SetWritableValueResponAllData { setWritableValueResponData = tempData };
@@ -651,9 +729,9 @@
public Panel.PanelConfigureInfoResponAllData ReadPanelConfigureInfoAsync(CommonDevice device)
{
//濡傛灉褰撳墠浣忓畢鏄櫄鎷熶綇瀹�
- if (Common.Config.Instance.Home.IsVirtually == true)
+ if (Common.Config.Instance.Home.IsVirtually == true || Common.Config.Instance.Home.IsShowTemplate == true)
{
- return ModelData.DeviceModelDataLogic.Current.ReadPanelConfigureKeyModel(device);
+ return TemplateData.TemplateDeviceDataLogic.Current.ReadPanelConfigureKeyModel(device);
}
var JObject = new JObject {{ "DeviceAddr",device.DeviceAddr },{ "Epoint", device.DeviceEpoint },
--
Gitblit v1.8.0