From f71e74b5f0d2716fbf05da016cdaa18d64e09f80 Mon Sep 17 00:00:00 2001 From: xm <1271024303@qq.com> Date: 星期四, 31 十二月 2020 17:01:18 +0800 Subject: [PATCH] 又换完成最新门锁。空气质量传感器完成数据和基本配置功能。开发图表和自动化的同事可下载此代码 --- ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlDeviceAttributeLogic.cs | 468 ++++++++++++++++++++++++++++++++------------------------- 1 files changed, 263 insertions(+), 205 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlDeviceAttributeLogic.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlDeviceAttributeLogic.cs index c87c383..6ad1f05 100644 --- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlDeviceAttributeLogic.cs +++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlDeviceAttributeLogic.cs @@ -1,24 +1,24 @@ -锘縰sing Shared.Common; -using System; -using System.Collections.Generic; -using System.Text; -using ZigBee.Device; - -namespace Shared.Phone.UserCenter +锘縰sing Shared.Common; +using System; +using System.Collections.Generic; +using System.Text; +using ZigBee.Device; + +namespace Shared.Phone.UserCenter { - /// <summary> - /// 璁惧灞炴�х殑閫昏緫绫� - /// </summary> + /// <summary> + /// 璁惧灞炴�х殑閫昏緫绫� + /// </summary> public class HdlDeviceAttributeLogic { - #region 鈻� 鍙橀噺澹版槑___________________________ + #region 鈻� 鍙橀噺澹版槑___________________________ - /// <summary> - /// 灞炴�х殑閫昏緫 + /// <summary> + /// 灞炴�х殑閫昏緫 /// </summary> private static HdlDeviceAttributeLogic m_Current = null; - /// <summary> - /// 灞炴�х殑閫昏緫 + /// <summary> + /// 灞炴�х殑閫昏緫 /// </summary> public static HdlDeviceAttributeLogic Current { @@ -36,18 +36,18 @@ } } - #endregion + #endregion - #region 鈻� 鍐欏叆璁惧灞炴�______________________ + #region 鈻� 鍐欏叆璁惧灞炴�______________________ - /// <summary> - /// 鑾峰彇鏇存敼璁惧绉佹湁灞炴�х殑鍛戒护 - /// </summary> - /// <param name="clusterId"></param> - /// <param name="attributeId"></param> - /// <param name="attributeDataType"></param> - /// <param name="attributeData"></param> - /// <returns></returns> + /// <summary> + /// 鑾峰彇鏇存敼璁惧绉佹湁灞炴�х殑鍛戒护 + /// </summary> + /// <param name="clusterId"></param> + /// <param name="attributeId"></param> + /// <param name="attributeDataType"></param> + /// <param name="attributeData"></param> + /// <returns></returns> public string GetWriteDeviceAttributeText(string DeviceAddr, int DeviceEpoint, int clusterId, int attributeId, int attributeDataType, object attributeData) { var jObject = new Newtonsoft.Json.Linq.JObject { { "DeviceAddr", DeviceAddr }, { "Epoint", DeviceEpoint }, { "Cluster_ID", clusterId }, { "Command", 120 } }; @@ -65,7 +65,7 @@ return jObject.ToString(); } - #endregion + #endregion #region 鈻� 绌鸿皟_______________________________ @@ -88,86 +88,86 @@ { IsBackground = true }.Start(); } - /// <summary> - /// SendThermostatStatuComand - /// </summary> - /// <param name="device">璁惧</param> + /// <summary> + /// SendThermostatStatuComand + /// </summary> + /// <param name="device">璁惧</param> public void SendThermostatStatuComand(CommonDevice device) { if (device == null) { return; } - var jObject = new Newtonsoft.Json.Linq.JObject - { - { "DeviceAddr",device.DeviceAddr }, - { "Epoint", device.DeviceEpoint }, - { "Cluster_ID", (int)Cluster_ID.Thermostat }, - { "Command", 108 } + var jObject = new Newtonsoft.Json.Linq.JObject + { + { "DeviceAddr",device.DeviceAddr }, + { "Epoint", device.DeviceEpoint }, + { "Cluster_ID", (int)Cluster_ID.Thermostat }, + { "Command", 108 } }; - var attriBute = new Newtonsoft.Json.Linq.JArray - { - new Newtonsoft.Json.Linq.JObject - { - { "AttriButeId", (int)AttriButeId.LocalTemperature} - }, - new Newtonsoft.Json.Linq.JObject - { - { "AttriButeId", (int)AttriButeId.CoolingSetpoint} - }, - new Newtonsoft.Json.Linq.JObject - { - { "AttriButeId", (int)AttriButeId.HeatingSetpoint} - }, - new Newtonsoft.Json.Linq.JObject - { - { "AttriButeId", (int)AttriButeId.AutoSetpoint} - }, - new Newtonsoft.Json.Linq.JObject - { - { "AttriButeId", (int)AttriButeId.SystemMode} - }, - new Newtonsoft.Json.Linq.JObject - { - { "AttriButeId", (int)AttriButeId.AcModeSupport} - }, - new Newtonsoft.Json.Linq.JObject - { - { "AttriButeId", (int)AttriButeId.CleanStatu} - } + var attriBute = new Newtonsoft.Json.Linq.JArray + { + new Newtonsoft.Json.Linq.JObject + { + { "AttriButeId", (int)AttriButeId.LocalTemperature} + }, + new Newtonsoft.Json.Linq.JObject + { + { "AttriButeId", (int)AttriButeId.CoolingSetpoint} + }, + new Newtonsoft.Json.Linq.JObject + { + { "AttriButeId", (int)AttriButeId.HeatingSetpoint} + }, + new Newtonsoft.Json.Linq.JObject + { + { "AttriButeId", (int)AttriButeId.AutoSetpoint} + }, + new Newtonsoft.Json.Linq.JObject + { + { "AttriButeId", (int)AttriButeId.SystemMode} + }, + new Newtonsoft.Json.Linq.JObject + { + { "AttriButeId", (int)AttriButeId.AcModeSupport} + }, + new Newtonsoft.Json.Linq.JObject + { + { "AttriButeId", (int)AttriButeId.CleanStatu} + } }; var data = new Newtonsoft.Json.Linq.JObject { { "AttriBute", attriBute } }; jObject.Add("Data", data); device.Gateway?.Send(("GetDeviceStatus"), jObject.ToString()); } - /// <summary> - /// SendFanStatuComand - /// </summary> - /// <param name="device">璁惧</param> + /// <summary> + /// SendFanStatuComand + /// </summary> + /// <param name="device">璁惧</param> private void SendFanStatuComand(CommonDevice device) { if (device == null) { return; } - var jObject = new Newtonsoft.Json.Linq.JObject - { - { "DeviceAddr",device.DeviceAddr }, - { "Epoint", device.DeviceEpoint }, - { "Cluster_ID", (int)Cluster_ID.FanControl }, - { "Command", 108 } + var jObject = new Newtonsoft.Json.Linq.JObject + { + { "DeviceAddr",device.DeviceAddr }, + { "Epoint", device.DeviceEpoint }, + { "Cluster_ID", (int)Cluster_ID.FanControl }, + { "Command", 108 } }; - var attriBute = new Newtonsoft.Json.Linq.JArray - { - new Newtonsoft.Json.Linq.JObject - { - { "AttriButeId", (int)AttriButeId.FanMode} - }, - new Newtonsoft.Json.Linq.JObject - { - { "AttriButeId", (int)AttriButeId.FanSwing} - } + var attriBute = new Newtonsoft.Json.Linq.JArray + { + new Newtonsoft.Json.Linq.JObject + { + { "AttriButeId", (int)AttriButeId.FanMode} + }, + new Newtonsoft.Json.Linq.JObject + { + { "AttriButeId", (int)AttriButeId.FanSwing} + } }; var data = new Newtonsoft.Json.Linq.JObject { { "AttriBute", attriBute } }; jObject.Add("Data", data); @@ -176,11 +176,11 @@ #endregion - #region 鈻� 鏂伴_______________________________ - /// <summary> - /// SendFreshAirStatuComand - /// </summary> - /// <param name="device">璁惧</param> + #region 鈻� 鏂伴_______________________________ + /// <summary> + /// SendFreshAirStatuComand + /// </summary> + /// <param name="device">璁惧</param> public void SendFreshAirStatuComand(CommonDevice device) { if (device == null) @@ -195,29 +195,29 @@ { IsBackground = true }.Start(); } - /// <summary> - /// SendFanStatuComand - /// </summary> - /// <param name="device">璁惧</param> + /// <summary> + /// SendFanStatuComand + /// </summary> + /// <param name="device">璁惧</param> private void SendFreshAirFanStatuComand(CommonDevice device) { if (device == null) { return; } - var jObject = new Newtonsoft.Json.Linq.JObject - { - { "DeviceAddr",device.DeviceAddr }, - { "Epoint", device.DeviceEpoint }, - { "Cluster_ID", (int)Cluster_ID.FanControl }, - { "Command", 108 } + var jObject = new Newtonsoft.Json.Linq.JObject + { + { "DeviceAddr",device.DeviceAddr }, + { "Epoint", device.DeviceEpoint }, + { "Cluster_ID", (int)Cluster_ID.FanControl }, + { "Command", 108 } }; - var attriBute = new Newtonsoft.Json.Linq.JArray - { - new Newtonsoft.Json.Linq.JObject - { - { "AttriButeId", (int)AttriButeId.FanMode} - } + var attriBute = new Newtonsoft.Json.Linq.JArray + { + new Newtonsoft.Json.Linq.JObject + { + { "AttriButeId", (int)AttriButeId.FanMode} + } }; var data = new Newtonsoft.Json.Linq.JObject { { "AttriBute", attriBute } }; jObject.Add("Data", data); @@ -226,11 +226,11 @@ #endregion - #region 鈻� PM2.5_______________________________ - /// <summary> - /// SendPmSensorComand - /// </summary> - /// <param name="device">璁惧</param> + #region 鈻� PM2.5_______________________________ + /// <summary> + /// SendPmSensorComand + /// </summary> + /// <param name="device">璁惧</param> public void SendPmSensorComand(CommonDevice device) { if (device == null) @@ -239,7 +239,7 @@ } new System.Threading.Thread(() => { - SendPmSensorStatuComand(device); + SendPm2P5Comand(device); //璇诲彇Pm2.5浼犳劅鍣ㄧ殑娓╁害鏁版嵁 HdlDeviceAttributeLogic.Current.SendTemperatureStatuComand(device); //璇诲彇Pm2.5浼犳劅鍣ㄧ殑婀垮害鏁版嵁 @@ -249,46 +249,104 @@ { IsBackground = true }.Start(); } - /// <summary> - /// SendFanStatuComand - /// </summary> - /// <param name="device">璁惧</param> - private void SendPmSensorStatuComand(CommonDevice device) + /// <summary> + /// SendFanStatuComand + /// </summary> + /// <param name="device">璁惧</param> + private void SendPm2P5Comand(CommonDevice device) { if (device == null) { return; } - var jObject = new Newtonsoft.Json.Linq.JObject - { - { "DeviceAddr",device.DeviceAddr }, - { "Epoint", device.DeviceEpoint }, - { "Cluster_ID", (int)Cluster_ID.PmTwoPointFiveMeasurement }, - { "Command", 108 } + var jObject = new Newtonsoft.Json.Linq.JObject + { + { "DeviceAddr",device.DeviceAddr }, + { "Epoint", device.DeviceEpoint }, + { "Cluster_ID", (int)Cluster_ID.PmTwoPointFiveMeasurement }, + { "Command", 108 } }; - var attriBute = new Newtonsoft.Json.Linq.JArray - { - new Newtonsoft.Json.Linq.JObject - { - { "AttriButeId", (int)AttriButeId.MeasuredValue} - } + var attriBute = new Newtonsoft.Json.Linq.JArray + { + new Newtonsoft.Json.Linq.JObject + { + { "AttriButeId", (int)AttriButeId.MeasuredValue} + } }; var data = new Newtonsoft.Json.Linq.JObject { { "AttriBute", attriBute } }; jObject.Add("Data", data); device.Gateway?.Send("GetDeviceStatus", jObject.ToString()); } - #endregion + #endregion - #region 鈻� 鏅捐。鏋禵______________________________ - /// <summary> - /// SendAirerComand + #region 鈻� 绌烘皵璐ㄩ噺浼犳劅鍣╛______________________________ + /// <summary> + /// SendAirQualitySensorComand + /// </summary> + /// <param name="device">璁惧</param> + public void SendAirQualitySensorComand(CommonDevice device) + { + if (device == null) + { + return; + } + new System.Threading.Thread(() => + { + SendSwitchStatuComand(device); + //绌烘皵璐ㄩ噺浼犳劅鍣ㄧ殑PM2.5鏁版嵁 + SendPm2P5Comand(device); + //绌烘皵璐ㄩ噺浼犳劅鍣ㄧ殑CO2鏁版嵁 + SendCO2Comand(device); + //绌烘皵璐ㄩ噺浼犳劅鍣ㄧ殑娓╁害鏁版嵁 + HdlDeviceAttributeLogic.Current.SendTemperatureStatuComand(device); + //绌烘皵璐ㄩ噺浼犳劅鍣ㄧ殑婀垮害鏁版嵁 + HdlDeviceAttributeLogic.Current.SendHumidityStatuComand(device); + System.Threading.Thread.Sleep(300); + }) + { IsBackground = true }.Start(); + } + + /// <summary> + /// SendCO2Comand + /// </summary> + /// <param name="device">璁惧</param> + private void SendCO2Comand(CommonDevice device) + { + if (device == null) + { + return; + } + var jObject = new Newtonsoft.Json.Linq.JObject + { + { "DeviceAddr",device.DeviceAddr }, + { "Epoint", device.DeviceEpoint }, + { "Cluster_ID", (int)Cluster_ID.CO2}, + { "Command", 108 } + }; + var attriBute = new Newtonsoft.Json.Linq.JArray + { + new Newtonsoft.Json.Linq.JObject + { + { "AttriButeId", (int)AttriButeId.MeasuredValue} + } + }; + var data = new Newtonsoft.Json.Linq.JObject { { "AttriBute", attriBute } }; + jObject.Add("Data", data); + device.Gateway?.Send("GetDeviceStatus", jObject.ToString()); + } + + #endregion + + #region 鈻� 鏅捐。鏋禵______________________________ + /// <summary> + /// SendAirerComand ///鍥炶矾2:璇诲彇鐓ф槑寮�鍏崇姸鎬� ///鍥炶矾3:璇诲彇椋庡共寮�鍏崇姸鎬佸拰鏃堕棿鍊� ///鍥炶矾4:璇诲彇鐑樺共寮�鍏崇姸鎬佸拰鏃堕棿鍊� ///鍥炶矾5:璇诲彇娑堟瘨寮�鍏崇姸鎬佸拰鏃堕棿鍊� - /// </summary> - /// <param name="device">璁惧</param> + /// </summary> + /// <param name="device">璁惧</param> /// <param name="ctrlEpoint">鎺у埗绔偣</param> public void SendAirerComand(CommonDevice device, int ctrlEpoint) { @@ -304,33 +362,33 @@ { IsBackground = true }.Start(); } - /// <summary> - /// SendAirerStatuComand - /// </summary> - /// <param name="device">璁惧</param> + /// <summary> + /// SendAirerStatuComand + /// </summary> + /// <param name="device">璁惧</param> private void SendAirerStatuComand(CommonDevice device, int ctrlEpoint = 1) { if (device == null) { return; } - var jObject = new Newtonsoft.Json.Linq.JObject - { - { "DeviceAddr",device.DeviceAddr }, - { "Epoint", ctrlEpoint }, - { "Cluster_ID", (int)Cluster_ID.Switch}, - { "Command", 108 } + var jObject = new Newtonsoft.Json.Linq.JObject + { + { "DeviceAddr",device.DeviceAddr }, + { "Epoint", ctrlEpoint }, + { "Cluster_ID", (int)Cluster_ID.Switch}, + { "Command", 108 } }; Newtonsoft.Json.Linq.JArray attriBute = new Newtonsoft.Json.Linq.JArray(); //鏅捐。鏋剁殑鏅捐。鏋剁殑锛堢儤骞诧紝椋庡共锛屾秷姣�,鐓ф槑鐘舵�佽鍙栵級 - attriBute = new Newtonsoft.Json.Linq.JArray - { - new Newtonsoft.Json.Linq.JObject - { - //鏅捐。鏋剁殑鐓ф槑寮�鍏崇姸鎬� - { "AttriButeId", (int)AttriButeId.Switch} - } + attriBute = new Newtonsoft.Json.Linq.JArray + { + new Newtonsoft.Json.Linq.JObject + { + //鏅捐。鏋剁殑鐓ф槑寮�鍏崇姸鎬� + { "AttriButeId", (int)AttriButeId.Switch} + } }; //if (device.DeviceEpoint != 2) @@ -359,32 +417,32 @@ device.Gateway?.Send("GetDeviceStatus", jObject.ToString()); } - #endregion + #endregion #region 鈻� 绐楀笜_______________________________ - /// <summary> - /// 鍙戦�佽幏鍙栫獥甯樼姸鎬佸懡浠� - /// </summary> - /// <param name="device">绐楀笜</param> + /// <summary> + /// 鍙戦�佽幏鍙栫獥甯樼姸鎬佸懡浠� + /// </summary> + /// <param name="device">绐楀笜</param> public void SendCurtainStatuComand(CommonDevice device) { if (device == null) { return; } - var jObject = new Newtonsoft.Json.Linq.JObject - { - { "DeviceAddr",device.DeviceAddr }, - { "Epoint", device.DeviceEpoint }, - { "Cluster_ID", (int)Cluster_ID.WindowCovering }, - { "Command", 108 } + var jObject = new Newtonsoft.Json.Linq.JObject + { + { "DeviceAddr",device.DeviceAddr }, + { "Epoint", device.DeviceEpoint }, + { "Cluster_ID", (int)Cluster_ID.WindowCovering }, + { "Command", 108 } }; - var attriBute = new Newtonsoft.Json.Linq.JArray - { - new Newtonsoft.Json.Linq.JObject - { - { "AttriButeId", (int)AttriButeId.CurrentPositionLiftPercentage} - } + var attriBute = new Newtonsoft.Json.Linq.JArray + { + new Newtonsoft.Json.Linq.JObject + { + { "AttriButeId", (int)AttriButeId.CurrentPositionLiftPercentage} + } }; var data = new Newtonsoft.Json.Linq.JObject { { "AttriBute", attriBute } }; jObject.Add("Data", data); @@ -423,58 +481,58 @@ { IsBackground = true }.Start(); } - /// <summary> - /// 鍙戦�佽幏鍙栫伅鍏夌姸鎬佸懡浠� - /// </summary> - /// <param name="device">绐楀笜</param> + /// <summary> + /// 鍙戦�佽幏鍙栫伅鍏夌姸鎬佸懡浠� + /// </summary> + /// <param name="device">绐楀笜</param> private void SendSwitchStatuComand(CommonDevice device) { if (device == null) { return; } - var jObject = new Newtonsoft.Json.Linq.JObject - { - { "DeviceAddr",device.DeviceAddr }, - { "Epoint", device.DeviceEpoint }, - { "Cluster_ID", (int)Cluster_ID.Switch }, - { "Command", 108 } + var jObject = new Newtonsoft.Json.Linq.JObject + { + { "DeviceAddr",device.DeviceAddr }, + { "Epoint", device.DeviceEpoint }, + { "Cluster_ID", (int)Cluster_ID.Switch }, + { "Command", 108 } }; - var attriBute = new Newtonsoft.Json.Linq.JArray - { - new Newtonsoft.Json.Linq.JObject - { - { "AttriButeId", (int)AttriButeId.Switch} - } + var attriBute = new Newtonsoft.Json.Linq.JArray + { + new Newtonsoft.Json.Linq.JObject + { + { "AttriButeId", (int)AttriButeId.Switch} + } }; var data = new Newtonsoft.Json.Linq.JObject { { "AttriBute", attriBute } }; jObject.Add("Data", data); device.Gateway?.Send(("GetDeviceStatus"), jObject.ToString()); } - /// <summary> - /// 鍙戦�佽幏鍙栫伅鍏夌姸鎬佸懡浠� - /// </summary> - /// <param name="device">绐楀笜</param> + /// <summary> + /// 鍙戦�佽幏鍙栫伅鍏夌姸鎬佸懡浠� + /// </summary> + /// <param name="device">绐楀笜</param> public void SendLevelStatuComand(CommonDevice device) { if (device == null) { return; } - var jObject = new Newtonsoft.Json.Linq.JObject - { - { "DeviceAddr",device.DeviceAddr }, - { "Epoint", device.DeviceEpoint }, - { "Cluster_ID", (int)Cluster_ID.LevelControl }, - { "Command", 108 } + var jObject = new Newtonsoft.Json.Linq.JObject + { + { "DeviceAddr",device.DeviceAddr }, + { "Epoint", device.DeviceEpoint }, + { "Cluster_ID", (int)Cluster_ID.LevelControl }, + { "Command", 108 } }; - var attriBute = new Newtonsoft.Json.Linq.JArray - { - new Newtonsoft.Json.Linq.JObject - { - { "AttriButeId", (int)AttriButeId.LevelControl} - } + var attriBute = new Newtonsoft.Json.Linq.JArray + { + new Newtonsoft.Json.Linq.JObject + { + { "AttriButeId", (int)AttriButeId.LevelControl} + } }; var data = new Newtonsoft.Json.Linq.JObject { { "AttriBute", attriBute } }; jObject.Add("Data", data); @@ -575,6 +633,6 @@ device.Gateway?.Send(("GetDeviceStatus"), jObject.ToString()); } - #endregion - } -} + #endregion + } +} -- Gitblit v1.8.0