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/ZigBee/Device/Panel.cs | 1366 +++++------------------------------------------------------
1 files changed, 121 insertions(+), 1,245 deletions(-)
diff --git a/ZigbeeApp/Shared/Phone/ZigBee/Device/Panel.cs b/ZigbeeApp/Shared/Phone/ZigBee/Device/Panel.cs
index edd263e..aed8f7a 100755
--- a/ZigbeeApp/Shared/Phone/ZigBee/Device/Panel.cs
+++ b/ZigbeeApp/Shared/Phone/ZigBee/Device/Panel.cs
@@ -15,64 +15,36 @@
this.Type = DeviceType.OnOffSwitch;
}
/// <summary>
+ /// 澶氬姛鑳介潰鏉夸腑琚粦瀹氱殑鐩爣
+ /// </summary>
+ [Newtonsoft.Json.JsonIgnore]
+ public System.Collections.Generic.Dictionary<string, List<BindListAllInfo>> bindTargetsFromMutilfunctionPanelList = new System.Collections.Generic.Dictionary<string, List<BindListAllInfo>>();
+ /// <summary>
/// 鎸夐敭妯″紡锛堢鏈夊姛鑳斤級
/// </summary>
public int panelMode = 65535;
/// <summary>
- ///鎸夐敭寮�鐘舵�侊紙鎸囩ず锛変寒搴�
+ ///褰撳墠閫夋嫨鐨勭畝绾﹀鍔熻兘闈㈡澘鐨勭被鍨嬨�愮畝绾﹀鍔熻兘闈㈡澘銆�
+ /// 0:鍦烘櫙 1:寮�鍏� 2:鎻掑骇 3:鐏厜 4:閬槼 5:绌鸿皟 6:鏂伴
/// </summary>
- public int panelDirectionsLevel = -1;
-
- /// <summary>
- /// 鎸夐敭鍏崇姸鎬侊紙鑳屽厜锛変寒搴�
- /// </summary>
- public int panelBacklightLevel = -1;
-
+ [Newtonsoft.Json.JsonIgnore]
+ public int currentMutilfunctionBindType = 0;
/// <summary>
/// 褰撳墠閫夋嫨妯″紡
/// </summary>
+ [Newtonsoft.Json.JsonIgnore]
public string currentKeySelectModeText = "";
/// <summary>
/// 褰撳墠閫夋嫨鐨勬ゼ灞侷D
/// </summary>
+ [Newtonsoft.Json.JsonIgnore]
public string currentSelectFloorId = string.Empty;
/// <summary>
/// 褰撳墠閫夋嫨鐨勬埧闂碔D銆愭柊椋庨潰鏉裤��
/// </summary>
+ [Newtonsoft.Json.JsonIgnore]
public string currentSelectRoomId = string.Empty;
- /// <summary>
- /// 褰撳墠寮�鍏虫ā寮�
- /// </summary>
- public string CurrentSwitchMode = "";
- /// <summary>
- /// 褰撳墠灞炴�фā寮�
- /// </summary>
- public int currentClusterID;
- /// <summary>
- /// 褰撳墠璋冨厜妯″紡
- /// </summary>
- public string CurrentDimmerMode = "";
-
- /// <summary>
- /// 褰撳墠閬槼妯″紡
- /// </summary>
- public string CurrentCurtainMode = "";
-
- /// <summary>
- /// 褰撳墠鎴块棿ID
- /// </summary>
- public string RoomId = "";
-
- /// <summary>
- /// 褰撳墠閫変腑鐨勫満鏅疘D
- /// </summary>
- public string curSelectSceneID = "";
-
- /// <summary>
- /// 鏈湴妤煎眰鎴块棿缁戝畾鍒楄〃
- /// </summary>
- public Dictionary<int, FloorRoomBindObj> FloorRoomBindObjList = new Dictionary<int, FloorRoomBindObj> { };
/// <summary>
/// 缁戝畾鐨勬ゼ灞傛埧闂翠俊鎭�
/// </summary>
@@ -113,12 +85,8 @@
// <summary>
/// 鎸夐敭涓缁戝畾鐨勭洰鏍囧垪琛�
/// </summary>
- public System.Collections.Generic.List<BindListResponseObj> bindList = new System.Collections.Generic.List<BindListResponseObj> { };
-
- /// <summary>
- /// 鎸夐敭鏀寔鐨勭鏈夋ā寮忓垪琛�
- /// </summary>
- public System.Collections.Generic.Dictionary<int, string> priDeviceModeFunList = new System.Collections.Generic.Dictionary<int, string> { };
+ [Newtonsoft.Json.JsonIgnore]
+ public List<BindListResponseObj> bindList = new List<BindListResponseObj>();
/// <summary>
/// 绉佹湁鍔熻兘绫�
@@ -193,8 +161,7 @@
if (topic == gatewayID + "/" + "Error_Respon")
{
- var gatewayTemp = new ZbGateway() { Time = jobject.Value<int>("Time"), DataID = jobject.Value<int>("Data_ID"), CurrentGateWayId = Gateway.getGatewayBaseInfo.gwID };
- var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<ZbGateway.ErrorResponData>(jobject["Data"].ToString());
+ var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<CommonDevice.ErrorResponData>(jobject["Data"].ToString());
if (temp == null)
{
@@ -209,18 +176,17 @@
if (topic == gatewayID + "/" + "ZbDataPassthrough")
{
- var gatewayTemp = new ZbGateway() { DataID = jobject.Value<int>("Data_ID") };
- gatewayTemp.clientDataPassthroughResponseData = Newtonsoft.Json.JsonConvert.DeserializeObject<ClientDataPassthroughResponseData>(jobject["Data"].ToString());
+ var clientDataPassthroughResponseData = Newtonsoft.Json.JsonConvert.DeserializeObject<ClientDataPassthroughResponseData>(jobject["Data"].ToString());
- if (gatewayTemp.clientDataPassthroughResponseData == null)
+ if (clientDataPassthroughResponseData == null)
{
result = new PanelPrivateFunctionsResponseAllInfo { errorMessageBase = "缃戝叧杩斿洖鐨勬暟鎹负绌�" };
}
else
{
- if (gatewayTemp.clientDataPassthroughResponseData?.PassData != null)
+ if (clientDataPassthroughResponseData?.PassData != null)
{
- var data = gatewayTemp.clientDataPassthroughResponseData.PassData;
+ var data = clientDataPassthroughResponseData.PassData;
if (data.Length > 12)
{
@@ -316,7 +282,6 @@
}
break;
}
- panelPrivateFunctionsResponseInfo = tempD;
result = new PanelPrivateFunctionsResponseAllInfo { panelPrivateFunctionsResponseInfo = tempD };
System.Console.WriteLine($"UI鏀跺埌閫氱煡鍚庣殑涓婚_command:0003_{topic}");
}
@@ -363,17 +328,8 @@
/// PIR閰嶇疆鍙傛暟鍥炲
/// </summary>
[System.Serializable]
- public class PanelPrivateFunctionsResponseAllInfo
+ public class PanelPrivateFunctionsResponseAllInfo : ErrorResponCommon
{
- /// <summary>
- /// 閿欒淇℃伅
- /// </summary>
- public string errorMessageBase;
- /// <summary>
- /// 缃戝叧淇℃伅閿欒鍙嶉
- /// <para>褰撶綉鍏虫帴鏀跺埌瀹㈡埛绔俊鎭悗锛屽嚭鐜颁互涓嬪紓甯告儏鍐靛皢鍙嶉閿欒銆�</para>
- /// </summary>
- public ErrorResponData errorResponData;
/// <summary>
/// 鍏夋劅绛夌骇涓暟锛圠ux鑳藉姏锛�
/// <para>鏈夊嚑涓瓑绾у氨鏄剧ず鍑犱釜鍒诲害</para>
@@ -384,7 +340,6 @@
/// <summary>
/// 閰嶇疆鍙傛暟鍥炲
/// </summary>
- public PanelPrivateFunctionsResponseInfo panelPrivateFunctionsResponseInfo;
[System.Serializable]
public class PanelPrivateFunctionsResponseInfo
{
@@ -717,8 +672,7 @@
if (topic == gatewayID + "/" + "Error_Respon")
{
- var gatewayTemp = new ZbGateway() { Time = jobject.Value<int>("Time"), DataID = jobject.Value<int>("Data_ID"), CurrentGateWayId = Gateway.getGatewayBaseInfo.gwID };
- var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<ZbGateway.ErrorResponData>(jobject["Data"].ToString());
+ var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<CommonDevice.ErrorResponData>(jobject["Data"].ToString());
if (temp == null)
{
@@ -733,18 +687,17 @@
if (topic == gatewayID + "/" + "ZbDataPassthrough")
{
- var gatewayTemp = new ZbGateway() { DataID = jobject.Value<int>("Data_ID") };
- gatewayTemp.clientDataPassthroughResponseData = Newtonsoft.Json.JsonConvert.DeserializeObject<ClientDataPassthroughResponseData>(jobject["Data"].ToString());
+ var clientDataPassthroughResponseData = Newtonsoft.Json.JsonConvert.DeserializeObject<ClientDataPassthroughResponseData>(jobject["Data"].ToString());
- if (gatewayTemp.clientDataPassthroughResponseData == null)
+ if (clientDataPassthroughResponseData == null)
{
result = new ResponseAllData { errorMessageBase = "缃戝叧杩斿洖鐨勬暟鎹负绌�" };
}
else
{
- if (gatewayTemp.clientDataPassthroughResponseData?.PassData != null)
+ if (clientDataPassthroughResponseData?.PassData != null)
{
- var data = gatewayTemp.clientDataPassthroughResponseData.PassData;
+ var data = clientDataPassthroughResponseData.PassData;
if (data.Length == 16)
{
var command = data[4].ToString() + data[5].ToString() + data[2].ToString() + data[3].ToString();
@@ -830,7 +783,6 @@
string dataSerialNum = "01";
string addDataLength = "03";
string kStatus = "";
- string kNum = "";
int attributeData = 0;
try
@@ -876,105 +828,6 @@
#endregion
#region 閰嶇疆鎸夐敭鎸囩ず鐏鑹�.
- ///<summary >
- ///閰嶇疆鎸夐敭鎸囩ず鐏鑹�
- /// </summary>
- public async System.Threading.Tasks.Task<ResponseAllData> SetPanelColorInfoAsync(KeyColorData keyColorData, KeyNumStatus keyNumStatus)
- {
- ResponseAllData result = null;
- if (Gateway == null)
- {
- result = new ResponseAllData { errorMessageBase = "褰撳墠娌℃湁缃戝叧" };
- return result;
- }
- return await System.Threading.Tasks.Task.Run(async () =>
- {
- Action<string, string> action = (topic, message) =>
- {
- var gatewayID = topic.Split('/')[0];
- var jobject = Newtonsoft.Json.Linq.JObject.Parse(message);
-
- if (topic == gatewayID + "/" + "Error_Respon")
- {
- var gatewayTemp = new ZbGateway() { Time = jobject.Value<int>("Time"), DataID = jobject.Value<int>("Data_ID"), CurrentGateWayId = Gateway.getGatewayBaseInfo.gwID };
- var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<ZbGateway.ErrorResponData>(jobject["Data"].ToString());
-
- if (temp == null)
- {
- result = new ResponseAllData { errorMessageBase = "缃戝叧閿欒鍥炲锛屼笖鏁版嵁鏄┖" };
- }
-
- else
- {
- result = new ResponseAllData { errorResponData = temp, errorMessageBase = ErrorMess(temp.Error) };
- }
- }
- if (topic == gatewayID + "/" + "ZbDataPassthrough")
- {
- var gatewayTemp = new ZbGateway() { DataID = jobject.Value<int>("Data_ID") };
- gatewayTemp.clientDataPassthroughResponseData = Newtonsoft.Json.JsonConvert.DeserializeObject<ClientDataPassthroughResponseData>(jobject["Data"].ToString());
-
- if (gatewayTemp.clientDataPassthroughResponseData == null)
- {
- result = new ResponseAllData { errorMessageBase = "缃戝叧杩斿洖鐨勬暟鎹负绌�" };
- }
- else
- {
- if (gatewayTemp.clientDataPassthroughResponseData?.PassData != null)
- {
- var data = gatewayTemp.clientDataPassthroughResponseData.PassData;
- if (data.Length == 16)
- {
- var command = data[4].ToString() + data[5].ToString() + data[2].ToString() + data[3].ToString();
- if (command == "0002")
- {
- var tempD = new ResponseData();
- tempD.command = data[12].ToString() + data[13].ToString() + data[10].ToString() + data[11].ToString();
- tempD.status = Convert.ToInt32(data[14].ToString() + data[15].ToString(), 16);
- if (tempD.command == "0401")
- {
- result = new ResponseAllData { responseData = tempD };
- DebugPrintLog($"UI鏀跺埌閫氱煡鍚庣殑涓婚_command:0401_{ topic}");
- }
- }
- }
- }
- }
- }
- };
-
- Gateway.Actions += action;
- System.Console.WriteLine("ClientDataPassthrough_Actions 鍚姩" + System.DateTime.Now.ToString());
-
- try
- {
- var passData = SetPanelColorData(keyColorData, keyNumStatus);
- var jObject = new JObject { { "DeviceAddr", DeviceAddr }, { "Epoint", 200 }, { "Cluster_ID", 64513 }, { "Command", 0 } };
- var data = new JObject { { "PassData", passData } };
- jObject.Add("Data", data);
- Gateway.Send(("ClientDataPassthrough"), jObject.ToString());
- }
- catch { }
-
- var dateTime = DateTime.Now;
- while ((DateTime.Now - dateTime).TotalMilliseconds < 9000)// WaitReceiveDataTime)
- {
- await System.Threading.Tasks.Task.Delay(10);
- if (result != null)
- {
- break;
- }
- }
- if ((DateTime.Now - dateTime).TotalMilliseconds > WaitReceiveDataTime)
- {
- result = new ResponseAllData { errorMessageBase = " 鍥炲瓒呮椂锛岃閲嶆柊鎿嶄綔" };
- }
- Gateway.Actions -= action;
- System.Console.WriteLine("ClientDataPassthrough_Actions 閫�鍑�" + System.DateTime.Now.ToString());
-
- return result;
- });
- }
/// <summary>
/// 缁戝畾璁惧淇℃伅,缃戝叧鍙嶉淇℃伅
@@ -997,136 +850,6 @@
public KeyColorData keyColorData;
}
- /// <summary>
- /// 閰嶇疆鎸夐敭鎸囩ず鐏鑹叉暟鎹�
- /// <para>鍙戦厤缃寜閿寚绀虹伅棰滆壊鍛戒护鏃讹紝姝ゆ椂涓哄彂閫佸埌缃戝叧鐨勯�忎紶鏁版嵁</para>
- /// </summary>
- /// <returns>The passthorugh data.</returns>
- /// <param name="keyColorData">Key color data.</param>
- /// <param name="keyNum">Key number.</param>
- string SetPanelColorData(KeyColorData keyColorData, KeyNumStatus keyNumStatus)
- {
- string data = "";
- string dataLength = "0c";
- string dataComand1 = "01";
- string dataComand2 = "04";
- string dataSerialNum = "01";
- string addDataLength = "08";
- int attributeData = 0;
-
- try
- {
- for (int i = 1; i <= 16; i++)
- {
- Type type = keyNumStatus.GetType();
- var obj = type.InvokeMember("Key" + i, System.Reflection.BindingFlags.GetField, null, keyNumStatus, null);
- int value0 = 0;
- if (Convert.ToBoolean(obj) == true)
- {
- value0 = 1;
- }
- int v = (int)Math.Pow(2, i - 1);
- attributeData += value0 * v;
- }
-
- string td = attributeData.ToString("X4");
- char[] td1 = td.ToCharArray();
- string tempAttributeData = string.Concat(td1[2].ToString(), td1[3].ToString(), td1[0].ToString(), td1[1].ToString());
- string temp = "";
- var tempColor1 = keyColorData.OpenColorR.ToString();
- var sbString1 = new System.Text.StringBuilder();
- switch (tempColor1.Length)
- {
- case 1:
- temp = "0" + tempColor1;
- break;
- case 2:
- temp = tempColor1;
- break;
- }
- sbString1.Append(temp.ToUpper());
-
- var tempColor2 = keyColorData.OpenColorG.ToString();
- var sbString2 = new System.Text.StringBuilder();
- switch (tempColor2.Length)
- {
- case 1:
- temp = "0" + tempColor2;
- break;
- case 2:
- temp = tempColor2;
- break;
- }
- sbString2.Append(temp.ToUpper());
-
- var tempColor3 = keyColorData.OpenColorB.ToString();
- var sbString3 = new System.Text.StringBuilder();
- switch (tempColor3.Length)
- {
- case 1:
- temp = "0" + tempColor3;
- break;
- case 2:
- temp = tempColor3;
- break;
- }
- sbString3.Append(temp.ToUpper());
-
- var tempColor4 = keyColorData.CloseColorR.ToString();
- var sbString4 = new System.Text.StringBuilder();
- switch (tempColor3.Length)
- {
- case 1:
- temp = "0" + tempColor4;
- break;
- case 2:
- temp = tempColor4;
- break;
- }
- sbString4.Append(temp.ToUpper());
-
- var tempColor5 = keyColorData.CloseColorG.ToString();
- var sbString5 = new System.Text.StringBuilder();
- switch (tempColor5.Length)
- {
- case 1:
- temp = "0" + tempColor5;
- break;
- case 2:
- temp = tempColor5;
- break;
- }
- sbString5.Append(temp.ToUpper());
-
- var tempColor6 = keyColorData.CloseColorB.ToString();
- var sbString6 = new System.Text.StringBuilder();
- switch (tempColor6.Length)
- {
- case 1:
- temp = "0" + tempColor6;
- break;
- case 2:
- temp = tempColor6;
- break;
- }
- sbString6.Append(temp.ToUpper());
-
- if (keyColorData != null)
- {
- data = dataLength + dataComand1 + dataComand2 + dataSerialNum + addDataLength +
- tempAttributeData + sbString1 + sbString2 + sbString3 +
- sbString4 + sbString5 + sbString6;
- }
- }
- catch { };
-
- return data;
- }
-
- /// <summary>
- /// 鎸夐敭鎸囩ず鐏鑹蹭俊鎭�
- /// </summary>
- public KeyColorData keyColorData;
// <summary>
/// 鎸夐敭鎸囩ず鐏鑹蹭俊鎭�
/// </summary>
@@ -1251,334 +974,6 @@
}
#endregion
- #region 閰嶇疆鎸夐敭鎸囩ず鐏潰鏉夸寒搴﹀睘鎬�.
- ///<summary >
- ///閰嶇疆鎸夐敭鎸囩ず鐏潰鏉夸寒搴﹀睘鎬�
- /// <para>directionsLevel:鎸囩ず鐏寒搴� 0-100(杩欎釜鏄偣鍑诲悗鐨勫��)</para>
- /// <para>backlightLevel:鑳屽厜鐏寒搴� 0-100(杩欎釜鏄偣鍑诲墠鐨勫��)</para>
- /// </summary>
- public async System.Threading.Tasks.Task<ResponseAllData> SetKeyLevelAsync(int directionsLevel, int backlightLevel)
- {
- ResponseAllData result = null;
- if (Gateway == null)
- {
- result = new ResponseAllData { errorMessageBase = "褰撳墠娌℃湁缃戝叧" };
- return result;
- }
- return await System.Threading.Tasks.Task.Run(async () =>
- {
- Action<string, string> action = (topic, message) =>
- {
- var gatewayID = topic.Split('/')[0];
- var jobject = Newtonsoft.Json.Linq.JObject.Parse(message);
-
- if (topic == gatewayID + "/" + "Error_Respon")
- {
- var gatewayTemp = new ZbGateway() { Time = jobject.Value<int>("Time"), DataID = jobject.Value<int>("Data_ID"), CurrentGateWayId = Gateway.getGatewayBaseInfo.gwID };
- var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<ZbGateway.ErrorResponData>(jobject["Data"].ToString());
-
- if (temp == null)
- {
- result = new ResponseAllData { errorMessageBase = "缃戝叧閿欒鍥炲锛屼笖鏁版嵁鏄┖" };
- }
-
- else
- {
- result = new ResponseAllData { errorResponData = temp, errorMessageBase = ErrorMess(temp.Error) };
- }
- }
- if (topic == gatewayID + "/" + "ZbDataPassthrough")
- {
- var gatewayTemp = new ZbGateway() { DataID = jobject.Value<int>("Data_ID") };
- gatewayTemp.clientDataPassthroughResponseData = Newtonsoft.Json.JsonConvert.DeserializeObject<ClientDataPassthroughResponseData>(jobject["Data"].ToString());
-
- if (gatewayTemp.clientDataPassthroughResponseData == null)
- {
- result = new ResponseAllData { errorMessageBase = "缃戝叧杩斿洖鐨勬暟鎹负绌�" };
- }
- else
- {
- if (gatewayTemp.clientDataPassthroughResponseData?.PassData != null)
- {
- var data = gatewayTemp.clientDataPassthroughResponseData.PassData;
- if (data.Length == 16)
- {
- var command = data[4].ToString() + data[5].ToString() + data[2].ToString() + data[3].ToString();
- if (command == "0002")
- {
- var tempD = new ResponseData();
- tempD.command = data[12].ToString() + data[13].ToString() + data[10].ToString() + data[11].ToString();
- tempD.status = Convert.ToInt32(data[14].ToString() + data[15].ToString(), 16);
- if (tempD.command == "0402")
- {
- result = new ResponseAllData { responseData = tempD };
- DebugPrintLog($"UI鏀跺埌閫氱煡鍚庣殑涓婚_command:0402_{ topic}");
- }
- }
- }
- }
- }
- }
- };
-
- Gateway.Actions += action;
- System.Console.WriteLine("ClientDataPassthrough_Actions 鍚姩" + System.DateTime.Now.ToString());
-
- try
- {
- var passData = SetPanelLevelData(directionsLevel, backlightLevel);
- var jObject = new JObject { { "DeviceAddr", DeviceAddr }, { "Epoint", 200 }, { "Cluster_ID", 64513 }, { "Command", 0 } };
- var data = new JObject { { "PassData", passData } };
- jObject.Add("Data", data);
- Gateway.Send(("ClientDataPassthrough"), jObject.ToString());
- }
- catch { }
-
- var dateTime = DateTime.Now;
- while ((DateTime.Now - dateTime).TotalMilliseconds < 9000)// WaitReceiveDataTime)
- {
- await System.Threading.Tasks.Task.Delay(10);
- if (result != null)
- {
- break;
- }
- }
- if ((DateTime.Now - dateTime).TotalMilliseconds > WaitReceiveDataTime)
- {
- result = new ResponseAllData { errorMessageBase = " 鍥炲瓒呮椂锛岃閲嶆柊鎿嶄綔" };
- }
- Gateway.Actions -= action;
- System.Console.WriteLine("ClientDataPassthrough_Actions 閫�鍑�" + System.DateTime.Now.ToString());
-
- return result;
- });
- }
-
- /// <summary>
- /// 鎺у埗鎸夐敭鎸囩ず鐏�
- /// </summary>
- string SetPanelLevelData(int level1, int level2)
- {
- string data = "";
- string dataLength = "06";
- string dataComand1 = "02";
- string dataComand2 = "04";
- string dataSerialNum = "01";
- string addDataLength = "02";
- string l1 = "";
- string l2 = "";
- try
- {
- var sbString1 = new System.Text.StringBuilder();
- var sbString2 = new System.Text.StringBuilder();
- string temp1 = Convert.ToString(level1, 16);
- string temp2 = Convert.ToString(level2, 16);
-
- switch (temp1.Length)
- {
- case 1:
- l1 = "0" + temp1;
- break;
- case 2:
- l1 = temp1;
- break;
- }
- switch (temp2.Length)
- {
- case 1:
- l2 = "0" + temp2;
- break;
- case 2:
- l2 = temp2;
- break;
- }
- sbString1.Append(l1.ToString().ToUpper());
- sbString2.Append(l2.ToString().ToUpper());
- data = dataLength + dataComand1 + dataComand2 + dataSerialNum + addDataLength +
- sbString1 + sbString2;
- }
- catch { };
-
- return data;
- }
- #endregion
-
- #region 閰嶇疆鎸夐敭鎸囩ず鐏潰鏉胯妭鑳芥ā寮�.
- ///<summary >
- /// 閰嶇疆鎸夐敭鎸囩ず鐏潰鏉胯妭鑳芥ā寮�
- /// <para>modeEnable:鑺傝兘妯″紡浣胯兘</para>
- /// <para>modeTime:鏃犳搷浣滆繘鍏ヨ妭鑳芥ā寮忔椂闂� 0-ffff</para>
- /// <para>鑺傝兘妯″紡浜害:0-100</para>
- /// </summary>
- public async System.Threading.Tasks.Task<ResponseAllData> SetKeyModeAsync(bool modeEnable, int modeTime, int level)
- {
- ResponseAllData result = null;
- if (Gateway == null)
- {
- result = new ResponseAllData { errorMessageBase = "褰撳墠娌℃湁缃戝叧" };
- return result;
- }
- return await System.Threading.Tasks.Task.Run(async () =>
- {
- Action<string, string> action = (topic, message) =>
- {
- var gatewayID = topic.Split('/')[0];
- var jobject = Newtonsoft.Json.Linq.JObject.Parse(message);
-
- if (topic == gatewayID + "/" + "Error_Respon")
- {
- var gatewayTemp = new ZbGateway() { Time = jobject.Value<int>("Time"), DataID = jobject.Value<int>("Data_ID"), CurrentGateWayId = Gateway.getGatewayBaseInfo.gwID };
- var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<ZbGateway.ErrorResponData>(jobject["Data"].ToString());
-
- if (temp == null)
- {
- result = new ResponseAllData { errorMessageBase = "缃戝叧閿欒鍥炲锛屼笖鏁版嵁鏄┖" };
- }
-
- else
- {
- result = new ResponseAllData { errorResponData = temp, errorMessageBase = ErrorMess(temp.Error) };
- }
- }
-
- if (topic == gatewayID + "/" + "ZbDataPassthrough")
- {
- var gatewayTemp = new ZbGateway() { DataID = jobject.Value<int>("Data_ID") };
- gatewayTemp.clientDataPassthroughResponseData = Newtonsoft.Json.JsonConvert.DeserializeObject<ClientDataPassthroughResponseData>(jobject["Data"].ToString());
-
- if (gatewayTemp.clientDataPassthroughResponseData == null)
- {
- result = new ResponseAllData { errorMessageBase = "缃戝叧杩斿洖鐨勬暟鎹负绌�" };
- }
- else
- {
- if (gatewayTemp.clientDataPassthroughResponseData?.PassData != null)
- {
- var data = gatewayTemp.clientDataPassthroughResponseData.PassData;
- if (data.Length == 16)
- {
- var command = data[4].ToString() + data[5].ToString() + data[2].ToString() + data[3].ToString();
- if (command == "0002")
- {
- var tempD = new ResponseData();
- tempD.command = data[12].ToString() + data[13].ToString() + data[10].ToString() + data[11].ToString();
- tempD.status = Convert.ToInt32(data[14].ToString() + data[15].ToString(), 16);
- if (tempD.command == "0403")
- {
- result = new ResponseAllData { responseData = tempD };
- System.Console.WriteLine($"UI鏀跺埌閫氱煡鍚庣殑涓婚_command:0403_{ topic}");
- }
- }
- }
- }
- }
- }
- };
-
- Gateway.Actions += action;
- System.Console.WriteLine("ClientDataPassthrough_Actions 鍚姩" + System.DateTime.Now.ToString());
-
- try
- {
- var passData = SetPanelModeModeData(modeEnable, modeTime, level);
- var jObject = new JObject { { "DeviceAddr", DeviceAddr }, { "Epoint", 200 }, { "Cluster_ID", 64513 }, { "Command", 0 } };
- var data = new JObject { { "PassData", passData } };
- jObject.Add("Data", data);
- Gateway.Send(("ClientDataPassthrough"), jObject.ToString());
- }
- catch { }
-
- var dateTime = DateTime.Now;
- while ((DateTime.Now - dateTime).TotalMilliseconds < 9000)// WaitReceiveDataTime)
- {
- await System.Threading.Tasks.Task.Delay(10);
- if (result != null)
- {
- break;
- }
- }
- if ((DateTime.Now - dateTime).TotalMilliseconds > WaitReceiveDataTime)
- {
- result = new ResponseAllData { errorMessageBase = " 鍥炲瓒呮椂锛岃閲嶆柊鎿嶄綔" };
- }
- Gateway.Actions -= action;
- System.Console.WriteLine("ClientDataPassthrough_Actions 閫�鍑�" + System.DateTime.Now.ToString());
-
- return result;
- });
- }
-
- /// <summary>
- /// 閰嶇疆鎸夐敭鎸囩ず鐏潰鏉胯妭鑳芥ā寮�
- /// </summary>
- string SetPanelModeModeData(bool modeEnable, int modeTime, int modelevel)
- {
- string data = "";
- string dataLength = "08";
- string dataComand1 = "03";
- string dataComand2 = "04";
- string dataSerialNum = "01";
- string addDataLength = "04";
- string mode = "";
- string time = "";
- string level = "";
- try
- {
- if (modeEnable)
- {
- mode = "01";
- }
- else
- {
- mode = "00";
- }
-
- if (modeTime == -1)
- {
- //褰撹妭鑳芥ā寮忔病鏈夌粰鏃堕棿锛岄粯璁ょ粰60绉�
- modeTime = 60;
- }
-
- var tempBytes = new byte[2];
- for (int i = 0; i < 2; i++)
- {
- tempBytes[i] = (byte)(modeTime >> (i * 8) & 0xff);
- }
- var time1 = Convert.ToString(tempBytes[0], 16);
- var time2 = Convert.ToString(tempBytes[1], 16);
- if (time1.Length == 1)
- {
- time1 = "0" + time1;
- }
- if (time2.Length == 1)
- {
- time2 = "0" + time2;
- }
-
- time = (time1 + time2).ToUpper();
-
- var sbString2 = new System.Text.StringBuilder();
- string temp2 = Convert.ToString(modelevel, 16);
- switch (temp2.Length)
- {
- case 1:
- level = "0" + temp2;
- break;
- case 2:
- level = temp2;
- break;
- }
-
- sbString2.Append(level.ToUpper());
- data = dataLength + dataComand1 + dataComand2 + dataSerialNum + addDataLength +
- mode + time + sbString2;
- }
- catch { };
-
- return data;
- }
- #endregion
-
#region 閰嶇疆鎺ヨ繎浼犳劅
///<summary >
/// 閰嶇疆鎺ヨ繎浼犳劅
@@ -1601,8 +996,7 @@
if (topic == gatewayID + "/" + "Error_Respon")
{
- var gatewayTemp = new ZbGateway() { Time = jobject.Value<int>("Time"), DataID = jobject.Value<int>("Data_ID"), CurrentGateWayId = Gateway.getGatewayBaseInfo.gwID };
- var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<ZbGateway.ErrorResponData>(jobject["Data"].ToString());
+ var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<CommonDevice.ErrorResponData>(jobject["Data"].ToString());
if (temp == null)
{
@@ -1617,18 +1011,17 @@
if (topic == gatewayID + "/" + "ZbDataPassthrough")
{
- var gatewayTemp = new ZbGateway() { DataID = jobject.Value<int>("Data_ID") };
- gatewayTemp.clientDataPassthroughResponseData = Newtonsoft.Json.JsonConvert.DeserializeObject<ClientDataPassthroughResponseData>(jobject["Data"].ToString());
+ var clientDataPassthroughResponseData = Newtonsoft.Json.JsonConvert.DeserializeObject<ClientDataPassthroughResponseData>(jobject["Data"].ToString());
- if (gatewayTemp.clientDataPassthroughResponseData == null)
+ if (clientDataPassthroughResponseData == null)
{
result = new ResponseAllData { errorMessageBase = "缃戝叧杩斿洖鐨勬暟鎹负绌�" };
}
else
{
- if (gatewayTemp.clientDataPassthroughResponseData?.PassData != null)
+ if (clientDataPassthroughResponseData?.PassData != null)
{
- var data = gatewayTemp.clientDataPassthroughResponseData.PassData;
+ var data = clientDataPassthroughResponseData.PassData;
if (data.Length == 16)
{
var command = data[4].ToString() + data[5].ToString() + data[2].ToString() + data[3].ToString();
@@ -1717,16 +1110,16 @@
}
#endregion
- #region 鑾峰彇鎸夐敭鎸囩ず鐏紑鍏抽鑹�.
+ #region 鏍℃娓╁害
///<summary >
- ///鑾峰彇鎸夐敭鎸囩ず鐏紑鍏抽鑹�.
+ /// 鏍℃娓╁害
/// </summary>
- public async System.Threading.Tasks.Task<KeyColorDataResponseAllData> GetPanelColorInfoAsync(KeyNum keyNum)
+ public async System.Threading.Tasks.Task<ResponseAllData> CorrectTemperature(double correctValue, int direction = 0, int type = 0)
{
- KeyColorDataResponseAllData result = null;
+ ResponseAllData result = null;
if (Gateway == null)
{
- result = new KeyColorDataResponseAllData { errorMessageBase = "褰撳墠娌℃湁缃戝叧" };
+ result = new ResponseAllData { errorMessageBase = "褰撳墠娌℃湁缃戝叧" };
return result;
}
return await System.Threading.Tasks.Task.Run(async () =>
@@ -1738,100 +1131,45 @@
if (topic == gatewayID + "/" + "Error_Respon")
{
- var gatewayTemp = new ZbGateway() { Time = jobject.Value<int>("Time"), DataID = jobject.Value<int>("Data_ID"), CurrentGateWayId = Gateway.getGatewayBaseInfo.gwID };
- var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<ZbGateway.ErrorResponData>(jobject["Data"].ToString());
+ var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<CommonDevice.ErrorResponData>(jobject["Data"].ToString());
if (temp == null)
{
- result = new KeyColorDataResponseAllData { errorMessageBase = "缃戝叧閿欒鍥炲锛屼笖鏁版嵁鏄┖" };
+ result = new ResponseAllData { errorMessageBase = "缃戝叧閿欒鍥炲锛屼笖鏁版嵁鏄┖" };
}
else
{
- result = new KeyColorDataResponseAllData { errorResponData = temp, errorMessageBase = ErrorMess(temp.Error) };
+ result = new ResponseAllData { errorResponData = temp, errorMessageBase = ErrorMess(temp.Error) };
}
}
if (topic == gatewayID + "/" + "ZbDataPassthrough")
{
- var gatewayTemp = new ZbGateway() { DataID = jobject.Value<int>("Data_ID") };
- gatewayTemp.clientDataPassthroughResponseData = Newtonsoft.Json.JsonConvert.DeserializeObject<ClientDataPassthroughResponseData>(jobject["Data"].ToString());
+ var clientDataPassthroughResponseData = Newtonsoft.Json.JsonConvert.DeserializeObject<ClientDataPassthroughResponseData>(jobject["Data"].ToString());
- if (gatewayTemp.clientDataPassthroughResponseData == null)
+ if (clientDataPassthroughResponseData == null)
{
- result = new KeyColorDataResponseAllData { errorMessageBase = "缃戝叧杩斿洖鐨勬暟鎹负绌�" };
+ result = new ResponseAllData { errorMessageBase = "缃戝叧杩斿洖鐨勬暟鎹负绌�" };
}
else
{
- if (gatewayTemp.clientDataPassthroughResponseData?.PassData != null)
+ if (clientDataPassthroughResponseData?.PassData != null)
{
- var data = gatewayTemp.clientDataPassthroughResponseData.PassData;
- if (data.Length == 24)
+ var data = clientDataPassthroughResponseData.PassData;
+ if (data.Length == 16)
{
var command = data[4].ToString() + data[5].ToString() + data[2].ToString() + data[3].ToString();
- if (command == "0405")
+ if (command == "0002")
{
- var key1 = data[10] + data[11];
- var key = data[10].ToString() + data[11].ToString();
- var tempR = new KeyColorData();
- tempR.OpenColorR = data[12].ToString() + data[13].ToString(); ;
- tempR.OpenColorG = data[14].ToString() + data[15].ToString(); ;
- tempR.OpenColorB = data[16].ToString() + data[17].ToString(); ;
- tempR.CloseColorR = data[18].ToString() + data[19].ToString(); ;
- tempR.CloseColorG = data[20].ToString() + data[21].ToString(); ;
- tempR.CloseColorB = data[22].ToString() + data[23].ToString(); ;
-
- switch (key)
+ var tempD = new ResponseData();
+ tempD.command = data[12].ToString() + data[13].ToString() + data[10].ToString() + data[11].ToString();
+ tempD.status = Convert.ToInt32(data[14].ToString() + data[15].ToString(), 16);
+ if (tempD.command == "0503")
{
- case "01":
- tempR.keyNum = KeyNum.Key1;
- break;
- case "02":
- tempR.keyNum = KeyNum.Key2;
- break;
- case "03":
- tempR.keyNum = KeyNum.Key3;
- break;
- case "04":
- tempR.keyNum = KeyNum.Key4;
- break;
- case "05":
- tempR.keyNum = KeyNum.Key5;
- break;
- case "06":
- tempR.keyNum = KeyNum.Key6;
- break;
- case "07":
- tempR.keyNum = KeyNum.Key7;
- break;
- case "08":
- tempR.keyNum = KeyNum.Key8;
- break;
- case "09":
- tempR.keyNum = KeyNum.Key9;
- break;
- case "0a":
- tempR.keyNum = KeyNum.Key10;
- break;
- case "0b":
- tempR.keyNum = KeyNum.Key11;
- break;
- case "0c":
- tempR.keyNum = KeyNum.Key12;
- break;
- case "0d":
- tempR.keyNum = KeyNum.Key13;
- break;
- case "0e":
- tempR.keyNum = KeyNum.Key14;
- break;
- case "0f":
- tempR.keyNum = KeyNum.Key15;
- break;
+ result = new ResponseAllData { responseData = tempD };
+ DebugPrintLog($"UI鏀跺埌閫氱煡鍚庣殑涓婚_command:0500_{ topic}");
}
- keyColorData = tempR;
- result = new KeyColorDataResponseAllData { keyColorData = tempR };
- System.Console.WriteLine($"UI鏀跺埌閫氱煡鍚庣殑涓婚_command:0404_{ topic}");
}
}
}
@@ -1844,10 +1182,10 @@
try
{
- var passData = GetkeyColorData(keyNum);
+ var passData = CorrectTemperatureData(correctValue,direction, type);
var jObject = new JObject { { "DeviceAddr", DeviceAddr }, { "Epoint", 200 }, { "Cluster_ID", 64513 }, { "Command", 0 } };
var data = new JObject { { "PassData", passData } };
- jObject.Add("Data", data);
+ jObject.Add("Data", data);
Gateway.Send(("ClientDataPassthrough"), jObject.ToString());
}
catch { }
@@ -1863,7 +1201,7 @@
}
if ((DateTime.Now - dateTime).TotalMilliseconds > WaitReceiveDataTime)
{
- result = new KeyColorDataResponseAllData { errorMessageBase = " 鍥炲瓒呮椂锛岃閲嶆柊鎿嶄綔" };
+ result = new ResponseAllData { errorMessageBase = " 鍥炲瓒呮椂锛岃閲嶆柊鎿嶄綔" };
}
Gateway.Actions -= action;
System.Console.WriteLine("ClientDataPassthrough_Actions 閫�鍑�" + System.DateTime.Now.ToString());
@@ -1873,78 +1211,74 @@
}
/// <summary>
- /// 鑾峰彇鎸夐敭鎸囩ず鐏紑鍏抽鑹�
+ /// 鏍℃娓╁害
+ /// [璇ユ潯鍗忚鍙﹀2涓弬鏁癠I鍜岃澶囬兘涓嶉渶瑕侊紝璁惧閮藉悓浜嬭姹備紶鎰熷櫒璺濈鍜屼紶鎰熷櫒瑙﹀彂寤惰繜鏃堕棿閮介粯璁ゆ槸FFFF]
/// </summary>
- string GetkeyColorData(KeyNum keyNum)
+ /// <param name="correctValue">鏍℃娓╁害鍊�</param>
+ /// <returns></returns>
+ string CorrectTemperatureData(double correctValue,int direction=0, int type = 0)
{
string data = "";
- string dataLength = "05";
- string dataComand1 = "04";
- string dataComand2 = "04";
+ string dataLength = "09";
+ string dataComand1 = "03";
+ string dataComand2 = "05";
string dataSerialNum = "01";
- string addDataLength = "01";
- string kNum = "";
-
+ string addDataLength = "05";
+ string typeString = "";
+ string directString = "";
+ string correctValueString = "";
try
{
- switch (keyNum)
+ if (type == 1)
{
- case KeyNum.Key1:
- kNum = "01";
- break;
- case KeyNum.Key2:
- kNum = "02";
- break;
- case KeyNum.Key3:
- kNum = "03";
- break;
- case KeyNum.Key4:
- kNum = "04";
- break;
- case KeyNum.Key5:
- kNum = "05";
- break;
- case KeyNum.Key6:
- kNum = "06";
- break;
- case KeyNum.Key7:
- kNum = "07";
- break;
- case KeyNum.Key8:
- kNum = "08";
- break;
- case KeyNum.Key9:
- kNum = "09";
- break;
- case KeyNum.Key10:
- kNum = "0A";
- break;
- case KeyNum.Key11:
- kNum = "0B";
- break;
- case KeyNum.Key12:
- kNum = "0C";
- break;
- case KeyNum.Key13:
- kNum = "0D";
- break;
- case KeyNum.Key14:
- kNum = "0E";
- break;
- case KeyNum.Key15:
- kNum = "0F";
- break;
- case KeyNum.Key16:
- kNum = "10";
- break;
+ typeString = "0100";
+ }
+ else
+ {
+ typeString = "0000";
}
- data = dataLength + dataComand1 + dataComand2 + dataSerialNum + addDataLength + kNum;
+ if (direction == 1)
+ {
+ directString = "01";
+ }
+ else if (direction == 2)
+ {
+ directString = "02";
+ }
+ else
+ {
+ directString = "00";
+ }
+
+ int curV = (int)(correctValue * 100);
+ var tempBytes = new byte[2];
+ for (int i = 0; i < 2; i++)
+ {
+ tempBytes[i] = (byte)(curV >> (i * 8) & 0xff);
+ }
+ var curV1 = Convert.ToString(tempBytes[0], 16);
+ var curV2 = Convert.ToString(tempBytes[1], 16);
+ if (curV1.Length == 1)
+ {
+ curV1 = "0" + curV1;
+ }
+ if (curV2.Length == 1)
+ {
+ curV2 = "0" + curV2;
+ }
+
+ correctValueString = (curV1 + curV2).ToUpper();
+ data = dataLength + dataComand1 + dataComand2 + dataSerialNum + addDataLength +
+ typeString + directString + correctValueString;
}
catch { };
return data;
}
+ #endregion
+
+ #region 鑾峰彇鎸夐敭鎸囩ず鐏紑鍏抽鑹�.
/// <summary>
/// 鎸夐敭鎸囩ず鐏鑹蹭俊鎭搴旈『搴忓彿(鐫$湢缁勫彿)
@@ -1971,128 +1305,6 @@
#endregion
#region 鑾峰彇鎸夐敭鎸囩ず鐏潰鏉垮紑鍏充寒搴﹂厤缃�.
- ///<summary >
- ///鑾峰彇鎸夐敭鎸囩ず鐏潰鏉垮紑鍏充寒搴﹂厤缃�
- /// </summary>
- public async System.Threading.Tasks.Task<PanelSwitchLevelInfo> GetPanelSwitchLevelAsync(string reserve = "01")
- {
- PanelSwitchLevelInfo result = null;
- if (Gateway == null)
- {
- result = new PanelSwitchLevelInfo { errorMessageBase = "褰撳墠娌℃湁缃戝叧" };
- return result;
- }
- return await System.Threading.Tasks.Task.Run(async () =>
- {
- Action<string, string> action = (topic, message) =>
- {
- var gatewayID = topic.Split('/')[0];
- var jobject = Newtonsoft.Json.Linq.JObject.Parse(message);
-
- if (topic == gatewayID + "/" + "Error_Respon")
- {
- var gatewayTemp = new ZbGateway() { Time = jobject.Value<int>("Time"), DataID = jobject.Value<int>("Data_ID"), CurrentGateWayId = Gateway.getGatewayBaseInfo.gwID };
- var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<ZbGateway.ErrorResponData>(jobject["Data"].ToString());
-
- if (temp == null)
- {
- result = new PanelSwitchLevelInfo { errorMessageBase = "缃戝叧閿欒鍥炲锛屼笖鏁版嵁鏄┖" };
- }
-
- else
- {
- result = new PanelSwitchLevelInfo { errorResponData = temp, errorMessageBase = ErrorMess(temp.Error) };
- }
- }
-
- if (topic == gatewayID + "/" + "ZbDataPassthrough")
- {
- var gatewayTemp = new ZbGateway() { DataID = jobject.Value<int>("Data_ID") };
- gatewayTemp.clientDataPassthroughResponseData = Newtonsoft.Json.JsonConvert.DeserializeObject<ClientDataPassthroughResponseData>(jobject["Data"].ToString());
-
- if (gatewayTemp.clientDataPassthroughResponseData == null)
- {
- result = new PanelSwitchLevelInfo { errorMessageBase = "缃戝叧杩斿洖鐨勬暟鎹负绌�" };
- }
- else
- {
- if (gatewayTemp.clientDataPassthroughResponseData?.PassData != null)
- {
- var data = gatewayTemp.clientDataPassthroughResponseData.PassData;
- if (data.Length == 14)
- {
- var command = data[4].ToString() + data[5].ToString() + data[2].ToString() + data[3].ToString();
- if (command == "0407")
- {
- var level1 = Convert.ToInt32(data[10].ToString() + data[11].ToString(), 16);
- var level2 = Convert.ToInt32(data[12].ToString() + data[13].ToString(), 16);
- panelDirectionsLevel = level1;
- panelBacklightLevel = level2;
- result = new PanelSwitchLevelInfo { panelDirectionsLevel = level1, panelBacklightLevel = level2 };
- System.Console.WriteLine($"UI鏀跺埌閫氱煡鍚庣殑涓婚_command:0406_{ topic}");
- }
- }
- }
- }
- }
- };
-
- Gateway.Actions += action;
- System.Console.WriteLine("ClientDataPassthrough_Actions 鍚姩" + System.DateTime.Now.ToString());
-
- try
- {
- var passData = SendPanelSwitchLevelData(reserve);
- var jObject = new JObject { { "DeviceAddr", DeviceAddr }, { "Epoint", 200 }, { "Cluster_ID", 64513 }, { "Command", 0 } };
- var data = new JObject { { "PassData", passData } };
- jObject.Add("Data", data);
- Gateway.Send(("ClientDataPassthrough"), jObject.ToString());
- }
- catch { }
-
- var dateTime = DateTime.Now;
- while ((DateTime.Now - dateTime).TotalMilliseconds < 9000)//WaitReceiveDataTime)
- {
- await System.Threading.Tasks.Task.Delay(10);
- if (result != null)
- {
- break;
- }
- }
- if ((DateTime.Now - dateTime).TotalMilliseconds > WaitReceiveDataTime)
- {
- result = new PanelSwitchLevelInfo { errorMessageBase = " 鍥炲瓒呮椂锛岃閲嶆柊鎿嶄綔" };
- }
- Gateway.Actions -= action;
- System.Console.WriteLine("ClientDataPassthrough_Actions 閫�鍑�" + System.DateTime.Now.ToString());
-
- return result;
- });
- }
-
- /// <summary>
- /// 鑾峰彇鎸夐敭鎸囩ず鐏潰鏉垮紑鍏充寒搴﹂厤缃暟鎹�
- /// <para>鍙戦厤缃寜閿寚绀虹伅棰滆壊鍛戒护鏃讹紝姝ゆ椂涓哄彂閫佸埌缃戝叧鐨勯�忎紶鏁版嵁</para>
- /// </summary>
- string SendPanelSwitchLevelData(string reserve)
- {
- string data = "";
- string dataLength = "05";
- string dataComand1 = "06";
- string dataComand2 = "04";
- string dataSerialNum = "01";
- string addDataLength = "01";
- string reserveData = reserve;
-
- try
- {
- data = dataLength + dataComand1 + dataComand2 + dataSerialNum + addDataLength +
- reserveData;
- }
- catch { };
-
- return data;
- }
/// <summary>
/// 鎸夐敭鎸囩ず鐏潰鏉垮紑鍏充寒搴﹂厤缃洖澶�
@@ -2110,147 +1322,18 @@
/// </summary>
public ErrorResponData errorResponData;
/// <summary>
- ///鎸夐敭寮�鐘舵�侊紙鎸囩ず锛変寒搴�(杩欎釜鏄偣鍑诲悗鐨勫��)
+ ///鎸夐敭寮�鐘舵�侊紙鎸囩ず锛変寒搴�(杩欎釜鏄偣鍑诲悗鐨勫��,鎴栬�� 1-6骞叉帴鐐圭殑鑳屽厜鐏�)
/// </summary>
public int panelDirectionsLevel = -1;
/// <summary>
- /// 鎸夐敭鍏崇姸鎬侊紙鑳屽厜锛変寒搴�(杩欎釜鏄偣鍑诲墠鐨勫��)
+ /// 鎸夐敭鍏崇姸鎬侊紙鑳屽厜锛変寒搴�(杩欎釜鏄偣鍑诲墠鐨勫��,鎴栬�� 绗竷骞叉帴鐐圭殑鑳屽厜鐏�)
/// </summary>
public int panelBacklightLevel = -1;
}
#endregion
#region 鑾峰彇鎸夐敭鑺傝兘妯″紡閰嶇疆鐘舵��.
- ///<summary >
- ///鑾峰彇鎸夐敭鑺傝兘妯″紡閰嶇疆鐘舵��
- /// </summary>
- public async System.Threading.Tasks.Task<PanelSwitchLevelResponInfo> GetPanelSaveEnergyModeAsync(string reserve = "01")
- {
- PanelSwitchLevelResponInfo result = null;
- if (Gateway == null)
- {
- result = new PanelSwitchLevelResponInfo { errorMessageBase = "褰撳墠娌℃湁缃戝叧" };
- return result;
- }
- return await System.Threading.Tasks.Task.Run(async () =>
- {
- Action<string, string> action = (topic, message) =>
- {
- var gatewayID = topic.Split('/')[0];
- var jobject = Newtonsoft.Json.Linq.JObject.Parse(message);
-
- if (topic == gatewayID + "/" + "Error_Respon")
- {
- var gatewayTemp = new ZbGateway() { Time = jobject.Value<int>("Time"), DataID = jobject.Value<int>("Data_ID"), CurrentGateWayId = Gateway.getGatewayBaseInfo.gwID };
- var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<ZbGateway.ErrorResponData>(jobject["Data"].ToString());
-
- if (temp == null)
- {
- result = new PanelSwitchLevelResponInfo { errorMessageBase = "缃戝叧閿欒鍥炲锛屼笖鏁版嵁鏄┖" };
- }
-
- else
- {
- result = new PanelSwitchLevelResponInfo { errorResponData = temp, errorMessageBase = ErrorMess(temp.Error) };
- }
- }
-
- if (topic == gatewayID + "/" + "ZbDataPassthrough")
- {
- var gatewayTemp = new ZbGateway() { DataID = jobject.Value<int>("Data_ID") };
- gatewayTemp.clientDataPassthroughResponseData = Newtonsoft.Json.JsonConvert.DeserializeObject<ClientDataPassthroughResponseData>(jobject["Data"].ToString());
-
- if (gatewayTemp.clientDataPassthroughResponseData == null)
- {
- result = new PanelSwitchLevelResponInfo { errorMessageBase = "缃戝叧杩斿洖鐨勬暟鎹负绌�" };
- }
- else
- {
- if (gatewayTemp.clientDataPassthroughResponseData?.PassData != null)
- {
- var data = gatewayTemp.clientDataPassthroughResponseData.PassData;
- if (data.Length == 18)
- {
- var command = data[4].ToString() + data[5].ToString() + data[2].ToString() + data[3].ToString();
- if (command == "0409")
- {
- var tempR = new PanelSaveEnergyModeInfo();
- if (data[10].ToString() + data[11].ToString() == "01")
- {
- tempR.enable = true;
- }
- else
- {
- tempR.enable = false;
- }
- tempR.time = Convert.ToInt32(data[14].ToString() + data[15].ToString() + data[12].ToString() + data[13].ToString(), 16);
- tempR.level = Convert.ToInt32(data[16].ToString() + data[17].ToString(), 16);
- panelSaveEnergyModeInfo = tempR;
- result = new PanelSwitchLevelResponInfo { panelSaveEnergyModeInfo = tempR };
- System.Console.WriteLine($"UI鏀跺埌閫氱煡鍚庣殑涓婚_command:0408_{ topic}");
- }
- }
- }
- }
- }
- };
-
- Gateway.Actions += action;
- System.Console.WriteLine("ClientDataPassthrough_Actions 鍚姩" + System.DateTime.Now.ToString());
-
- try
- {
- var passData = SendPanelSaveEnergyModeData(reserve);
- var jObject = new JObject { { "DeviceAddr", DeviceAddr }, { "Epoint", 200 }, { "Cluster_ID", 64513 }, { "Command", 0 } };
- var data = new JObject { { "PassData", passData } };
- jObject.Add("Data", data);
- Gateway.Send(("ClientDataPassthrough"), jObject.ToString());
- }
- catch { }
-
- var dateTime = DateTime.Now;
- while ((DateTime.Now - dateTime).TotalMilliseconds < WaitReceiveDataTime)
- {
- await System.Threading.Tasks.Task.Delay(10);
- if (result != null)
- {
- break;
- }
- }
- if ((DateTime.Now - dateTime).TotalMilliseconds > 9000)// WaitReceiveDataTime)
- {
- result = new PanelSwitchLevelResponInfo { errorMessageBase = " 鍥炲瓒呮椂锛岃閲嶆柊鎿嶄綔" };
- }
- Gateway.Actions -= action;
- System.Console.WriteLine("ClientDataPassthrough_Actions 閫�鍑�" + System.DateTime.Now.ToString());
-
- return result;
- });
- }
-
- /// <summary>
- /// 鑾峰彇鎸夐敭鑺傝兘妯″紡閰嶇疆鐘舵�佹暟鎹�
- /// </summary>
- string SendPanelSaveEnergyModeData(string reserve)
- {
- string data = "";
- string dataLength = "05";
- string dataComand1 = "08";
- string dataComand2 = "04";
- string dataSerialNum = "01";
- string addDataLength = "01";
- string reserveData = reserve;
-
- try
- {
- data = dataLength + dataComand1 + dataComand2 + dataSerialNum + addDataLength +
- reserveData;
- }
- catch { };
-
- return data;
- }
/// <summary>
/// 鑾峰彇鎸夐敭鑺傝兘妯″紡閰嶇疆鐘舵�佹暟鎹洖澶�
@@ -2274,10 +1357,6 @@
public PanelSaveEnergyModeInfo panelSaveEnergyModeInfo;
}
- /// <summary>
- /// 鎸夐敭鑺傝兘妯″紡淇℃伅
- /// </summary>
- public PanelSaveEnergyModeInfo panelSaveEnergyModeInfo;
/// <summary>
/// 鑾峰彇鎸夐敭鑺傝兘妯″紡閰嶇疆鐘舵�佹暟鎹�
/// </summary>
@@ -2321,8 +1400,7 @@
if (topic == gatewayID + "/" + "Error_Respon")
{
- var gatewayTemp = new ZbGateway() { Time = jobject.Value<int>("Time"), DataID = jobject.Value<int>("Data_ID"), CurrentGateWayId = Gateway.getGatewayBaseInfo.gwID };
- var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<ZbGateway.ErrorResponData>(jobject["Data"].ToString());
+ var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<CommonDevice.ErrorResponData>(jobject["Data"].ToString());
if (temp == null)
{
@@ -2337,18 +1415,17 @@
if (topic == gatewayID + "/" + "ZbDataPassthrough")
{
- var gatewayTemp = new ZbGateway() { DataID = jobject.Value<int>("Data_ID") };
- gatewayTemp.clientDataPassthroughResponseData = Newtonsoft.Json.JsonConvert.DeserializeObject<ClientDataPassthroughResponseData>(jobject["Data"].ToString());
+ var clientDataPassthroughResponseData = Newtonsoft.Json.JsonConvert.DeserializeObject<ClientDataPassthroughResponseData>(jobject["Data"].ToString());
- if (gatewayTemp.clientDataPassthroughResponseData == null)
+ if (clientDataPassthroughResponseData == null)
{
result = new PanelProximitySensorResponInfo { errorMessageBase = "缃戝叧杩斿洖鐨勬暟鎹负绌�" };
}
else
{
- if (gatewayTemp.clientDataPassthroughResponseData?.PassData != null)
+ if (clientDataPassthroughResponseData?.PassData != null)
{
- var data = gatewayTemp.clientDataPassthroughResponseData.PassData;
+ var data = clientDataPassthroughResponseData.PassData;
if (data.Length == 20)
{
var command = data[4].ToString() + data[5].ToString() + data[2].ToString() + data[3].ToString();
@@ -2365,7 +1442,6 @@
}
tempR.sensorDistance = Convert.ToInt32(data[14].ToString() + data[15].ToString() + data[12].ToString() + data[13].ToString(), 16);
tempR.sensorDelayTime = Convert.ToInt32(data[18].ToString() + data[19].ToString() + data[16].ToString() + data[17].ToString(), 16);
- panelProximitySensorInfo = tempR;
result = new PanelProximitySensorResponInfo { panelProximitySensorInfo = tempR };
System.Console.WriteLine($"UI鏀跺埌閫氱煡鍚庣殑涓婚_command:0408_{ topic}");
}
@@ -2453,10 +1529,6 @@
}
/// <summary>
- /// 鑾峰彇鎺ヨ繎浼犳劅閰嶇疆
- /// </summary>
- public PanelProximitySensorInfo panelProximitySensorInfo;
- /// <summary>
/// 鑾峰彇鎺ヨ繎浼犳劅閰嶇疆鏁版嵁
/// </summary>
[System.Serializable]
@@ -2466,7 +1538,7 @@
/// 浼犳劅鍣ㄤ娇鑳�
///false-disable true-enable
/// </summary>
- public bool enable;
+ public bool enable= false;
/// <summary>
///浼犳劅鍣ㄨ窛绂�
@@ -2502,8 +1574,7 @@
// if (topic == gatewayID + "/" + "Error_Respon")
// {
- // var gatewayTemp = new ZbGateway() { Time = jobject.Value<int>("Time"), DataID = jobject.Value<int>("Data_ID"), CurrentGateWayId = Gateway.getGatewayBaseInfo.gwID };
- // var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<ZbGateway.ErrorResponData>(jobject["Data"].ToString());
+ // var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<CommonDevice.ErrorResponData>(jobject["Data"].ToString());
// if (temp == null)
// {
@@ -2517,18 +1588,17 @@
// }
// if (topic == gatewayID + "/" + "ZbDataPassthrough")
// {
- // var gatewayTemp = new ZbGateway() { DataID = jobject.Value<int>("Data_ID") };
- // gatewayTemp.clientDataPassthroughResponseData = Newtonsoft.Json.JsonConvert.DeserializeObject<ClientDataPassthroughResponseData>(jobject["Data"].ToString());
+ // var clientDataPassthroughResponseData = Newtonsoft.Json.JsonConvert.DeserializeObject<ClientDataPassthroughResponseData>(jobject["Data"].ToString());
- // if (gatewayTemp.clientDataPassthroughResponseData == null)
+ // if (clientDataPassthroughResponseData == null)
// {
// result = new PanelSleepGroupResponseAllData { errorMessageBase = "缃戝叧杩斿洖鐨勬暟鎹负绌�" };
// }
// else
// {
- // if (gatewayTemp.clientDataPassthroughResponseData?.PassData != null)
+ // if (clientDataPassthroughResponseData?.PassData != null)
// {
- // var data = gatewayTemp.clientDataPassthroughResponseData.PassData;
+ // var data = clientDataPassthroughResponseData.PassData;
// if (data.Length == 14)
// {
// var tempR = new PanelSleepGroupResponseData();
@@ -2873,84 +1943,6 @@
#endregion
#region 閰嶇疆闈㈡澘鍔熻兘
- ///<summary >
- ///閰嶇疆闈㈡澘鍔熻兘
- ///<para>value:缁欓潰鏉块厤缃殑妯″紡</para>
- /// </summary>
- public async System.Threading.Tasks.Task<SetWritableValueResponAllData> ConfigureHdlKeyValueAsync(KeyMode value, int clusterID = 6)
- {
- if (Gateway == null)
- {
- return null;
- }
- return await System.Threading.Tasks.Task.Run(async () =>
- {
- SetWritableValueResponAllData d = null;
- Action<string, string> action = (topic, message) =>
- {
- var gatewayID = topic.Split('/')[0];
- var jobject = Newtonsoft.Json.Linq.JObject.Parse(message);
-
- if (topic == gatewayID + "/" + "Error_Respon")
- {
- var gatewayTemp = new ZbGateway() { Time = jobject.Value<int>("Time"), DataID = jobject.Value<int>("Data_ID"), CurrentGateWayId = Gateway.getGatewayBaseInfo.gwID };
- var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<ZbGateway.ErrorResponData>(jobject["Data"].ToString());
-
- if (temp == null)
- {
- d = new SetWritableValueResponAllData { errorMessageBase = "缃戝叧閿欒鍥炲锛屼笖鏁版嵁鏄┖" };
- }
- else
- {
- d = new SetWritableValueResponAllData { errorResponData = temp, errorMessageBase = ErrorMess(temp.Error) };
- }
- }
-
- if (topic == gatewayID + "/" + "SetWritableValue_Respon")
- {
- var gatewayTemp = new ZbGateway() { DeviceID = jobject.Value<int>("Device_ID"), DeviceAddr = jobject.Value<string>("DeviceAddr"), DeviceEpoint = jobject.Value<int>("Epoint"), DataID = jobject.Value<int>("Data_ID"), CurrentGateWayId = Gateway.getGatewayBaseInfo.gwID };
- var tempData = Newtonsoft.Json.JsonConvert.DeserializeObject<SetWritableValueResponData>(jobject["Data"].ToString());
-
- if (tempData == null)
- {
- d = new SetWritableValueResponAllData { errorMessageBase = "缃戝叧杩斿洖鐨勬暟鎹负绌�" };
- }
- else
- {
- d = new SetWritableValueResponAllData { setWritableValueResponData = tempData };
- System.Console.WriteLine($"UI鏀跺埌閫氱煡鍚庣殑涓婚_{ topic}");
- }
- }
- };
- Gateway.Actions += action;
- System.Console.WriteLine("SetWritableValue_Actions 鍚姩" + "_" + System.DateTime.Now.ToString());
- try
- {
- var jObject = new JObject { { "DeviceAddr", DeviceAddr }, { "Epoint", DeviceEpoint }, { "Cluster_ID", clusterID }, { "Command", 120 } };
- var data = new JObject { { "Undivided", 0 }, { "AttributeId", 6533 }, { "AttributeDataType", 33 }, { "AttributeData", (int)value } };
- jObject.Add("Data", data);
- Gateway.Send("SetWritableValue", jObject.ToString());
- }
- catch { }
-
- var dateTime = DateTime.Now;
- while ((DateTime.Now - dateTime).TotalMilliseconds < WaitReceiveDataTime)
- {
- await System.Threading.Tasks.Task.Delay(10);
- if (d != null)
- {
- break;
- }
- }
- if ((DateTime.Now - dateTime).TotalMilliseconds > WaitReceiveDataTime)
- {
- d = new SetWritableValueResponAllData { errorMessageBase = " 鍥炲瓒呮椂锛岃閲嶆柊鎿嶄綔" };
- }
- Gateway.Actions -= action;
- System.Console.WriteLine("SetWritableValue_Actions 閫�鍑�" + System.DateTime.Now.ToString());
- return d;
- });
- }
/// <summary>
/// 閰嶇疆闈㈡澘鐨勫姛鑳芥ā寮�
@@ -3033,118 +2025,6 @@
}
#region 璇诲彇闈㈡澘鐨勯厤缃俊鎭�
- /// <summary>
- /// 璇诲彇闈㈡澘鐨勯厤缃俊鎭�
- /// </summary>
- public async System.Threading.Tasks.Task<PanelConfigureInfoResponAllData> ReadPanelConfigureInfoAsync(params int[] args)
- {
- if (Gateway == null)
- {
- return null;
- }
- return await System.Threading.Tasks.Task.Run(async () =>
- {
- PanelConfigureInfoResponAllData d = null;
- Action<string, string> action = (topic, message) =>
- {
- var gatewayID = topic.Split('/')[0];//缃戝叧杩斿洖鐨勭綉鍏矷D
- var reportStatus = topic.Split('/')[1];//涓婚涓鸿澶囦笂鎶ョ殑涓婚
- string addr = "";//涓婃姤鐨勮澶嘺ddr
- string epoint = "";//涓婃姤鐨勮澶噀point
- string cluID = "";//涓婃姤鐨勮澶嘽luID
- string attrId = "";//涓婃姤鐨勮澶嘺ttrId
- if (reportStatus == "DeviceStatusReport")
- {
- addr = topic.Split('/')[2];
- epoint = topic.Split('/')[3];
- cluID = topic.Split('/')[4];
- attrId = topic.Split('/')[5];
- }
- var jobject = Newtonsoft.Json.Linq.JObject.Parse(message);
-
- if (topic == gatewayID + "/" + "Error_Respon")
- {
- var gatewayTemp = new ZbGateway() { Time = jobject.Value<int>("Time"), DataID = jobject.Value<int>("Data_ID"), CurrentGateWayId = Gateway.getGatewayBaseInfo.gwID };
- var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<ZbGateway.ErrorResponData>(jobject["Data"].ToString());
-
- if (temp == null)
- {
- d = new PanelConfigureInfoResponAllData { errorMessageBase = "缃戝叧閿欒鍥炲锛屼笖鏁版嵁鏄┖" };
- }
- else
- {
- d = new PanelConfigureInfoResponAllData { errorResponData = temp, errorMessageBase = ErrorMess(temp.Error) };
- }
- }
- else if (topic == gatewayID + "/" + "DeviceStatusReport" + "/" + addr + "/" + epoint + "/" + cluID + "/" + attrId)
- {
- var deviceID = jobject.Value<int>("Device_ID");
- var deviceAddr = jobject.Value<string>("DeviceAddr");
- var tempEpoint = jobject.Value<int>("Epoint");
- var dataId = jobject.Value<int>("Data_ID");
-
- var lightSwitch = new Panel { DeviceID = deviceID, DeviceAddr = deviceAddr, DeviceEpoint = tempEpoint, DataID = dataId };
- lightSwitch.DeviceStatusReport = Newtonsoft.Json.JsonConvert.DeserializeObject<Panel.DeviceStatusReportData>(jobject["Data"].ToString());
- if ((DeviceType)(deviceID) == DeviceType.OnOffSwitch)
- {
- var tempData = Newtonsoft.Json.JsonConvert.DeserializeObject<Panel.DeviceStatusReportData>(jobject["Data"].ToString());
- if (tempData == null)
- {
- d = new PanelConfigureInfoResponAllData { errorMessageBase = "缃戝叧閿欒鍥炲锛屼笖鏁版嵁鏄┖" };
- }
- else
- {
- d = new PanelConfigureInfoResponAllData { deviceStatusReportData = tempData };
- System.Console.WriteLine($"UI鏀跺埌閫氱煡鍚庣殑涓婚_{ topic}");
- }
- }
- }
- };
-
- Gateway.Actions += action;
- System.Console.WriteLine("GetDeviceStatus_Actions 鍚姩" + System.DateTime.Now.ToString());
-
- try
- {
- var JObject = new JObject {
- { "DeviceAddr",DeviceAddr },
- { "Epoint", DeviceEpoint },
- { "Cluster_ID", (int)Device.Cluster_ID.HdlKey },
- { "Command", 108 }
- };
- var attriBute = new JArray{
- new JObject {
- { "AttriButeId", (int)AttriButeId.HdlKey}
- }
- };
- var data = new JObject { { "AttriBute", attriBute } };
- JObject.Add("Data", data);
- Gateway?.Send(("GetDeviceStatus"), JObject.ToString());
- }
- catch
- {
- }
-
- var dateTime = DateTime.Now;
- while ((DateTime.Now - dateTime).TotalMilliseconds < WaitReceiveDataTime)
- {
- await System.Threading.Tasks.Task.Delay(10);
- if (d != null)
- {
- break;
- }
- }
-
- if ((DateTime.Now - dateTime).TotalMilliseconds > WaitReceiveDataTime)
- {
- d = new PanelConfigureInfoResponAllData { errorMessageBase = " 鍥炲瓒呮椂锛岃閲嶆柊鎿嶄綔" };
- }
- Gateway.Actions -= action;
- System.Console.WriteLine("GetDeviceStatus_Actions 閫�鍑�" + System.DateTime.Now.ToString());
-
- return d;
- });
- }
/// <summary>
/// 缃戝叧鎭㈠鍑哄巶璁剧疆杩斿洖鏁版嵁
@@ -3254,10 +2134,6 @@
public GetSceneInfo getSceneInfo;
}
- /// <summary>
- /// 鑾峰彇鍦烘櫙淇℃伅
- /// </summary>
- public GetSceneInfo sceneGetInfo;
/// <summary>
/// 鑾峰彇鍦烘櫙淇℃伅
/// </summary>
--
Gitblit v1.8.0