From dfcb2a1844fd55b57bae23e290b30ec6380e8508 Mon Sep 17 00:00:00 2001
From: chenqiyang <1406175257@qq.com>
Date: 星期五, 26 八月 2022 15:04:22 +0800
Subject: [PATCH] 更新全视通dll
---
ZigbeeApp/Shared/Phone/ZigBee/Device/Airer.cs | 209 ++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 209 insertions(+), 0 deletions(-)
diff --git a/ZigbeeApp/Shared/Phone/ZigBee/Device/Airer.cs b/ZigbeeApp/Shared/Phone/ZigBee/Device/Airer.cs
new file mode 100644
index 0000000..7ce6ad0
--- /dev/null
+++ b/ZigbeeApp/Shared/Phone/ZigBee/Device/Airer.cs
@@ -0,0 +1,209 @@
+锘縰sing System;
+using System.Collections.Generic;
+using Newtonsoft.Json.Linq;
+namespace ZigBee.Device
+{
+ /// <summary>
+ ///娉ㄦ剰浜嬮」锛氭櫨琛f灦,鍙樉绀哄苟瀛樺偍1绔偣锛屽叾浠栫鐐癸紙2锝�5锛夎繃婊わ紝涓嶅瓨鍌�,
+ ///鍥犱负鍏朵粬绔偣鍙湁鎺у埗浣滅敤锛岋紙绔偣2:鎺у埗鐓ф槑锛岀鐐�3:鎺у埗椋庡共锛岀鐐�4:鎺у埗鐑樺共锛岀鐐�5:鎺у埗娑堟瘨锛�
+ /// </summary>
+ [System.Serializable]
+ public class Airer : CommonDevice
+ {
+ public Airer()
+ {
+ this.Type = DeviceType.Airer;
+ }
+
+ /// <summary>
+ /// 寮�鍏夌姸鎬�:0=鍏�,1=寮�,
+ ///娉ㄦ剰浜嬮」锛氭櫨琛f灦,鍙樉绀哄苟瀛樺偍1绔偣锛屽叾浠栫鐐癸紙2锝�5锛夎繃婊わ紝涓嶅瓨鍌�,
+ ///鍥犱负鍏朵粬绔偣鍙湁鎺у埗浣滅敤锛岋紙绔偣2:鎺у埗鐓ф槑锛岀鐐�3:鎺у埗椋庡共锛岀鐐�4:鎺у埗鐑樺共锛岀鐐�5:鎺у埗娑堟瘨锛�
+ /// </summary>
+ [Newtonsoft.Json.JsonIgnore]
+ public int OnOffStatus = 0;
+
+ /// <summary>
+ /// 鐑樺共鐘舵��:0=鍏�,1=寮�,
+ /// </summary>
+ [Newtonsoft.Json.JsonIgnore]
+ public int DryOnOffStatus = 0;
+
+ /// <summary>
+ /// 椋庡共鐘舵��:0=鍏�,1=寮�,
+ /// </summary>
+ [Newtonsoft.Json.JsonIgnore]
+ public int WindOnOffStatus = 0;
+
+ /// <summary>
+ /// 娑堟瘨鐘舵��:0=鍏�,1=寮�,
+ /// </summary>
+ [Newtonsoft.Json.JsonIgnore]
+ public int DisinfectOnOffStatus = 0;
+
+ /// <summary>
+ /// 鐑樺共鏃堕棿
+ /// </summary>
+ [Newtonsoft.Json.JsonIgnore]
+ public int DryTime = 0;
+ /// <summary>
+ /// 鍓╀綑鐑樺共鏃堕棿 (榛樿0绉掞級
+ /// </summary>
+ [Newtonsoft.Json.JsonIgnore]
+ public int DryRemainTime = 0;
+
+ /// <summary>
+ /// 椋庡共鏃堕棿
+ /// </summary>
+ [Newtonsoft.Json.JsonIgnore]
+ public int WindTime = 0;
+ /// <summary>
+ /// 鍓╀綑椋庡共鏃堕棿 (榛樿0绉掞級
+ /// </summary>
+ [Newtonsoft.Json.JsonIgnore]
+ public int WindRemainTime = 0;
+
+ /// <summary>
+ /// 娑堟瘨鏃堕棿
+ /// </summary>
+ [Newtonsoft.Json.JsonIgnore]
+ public int DisinfectTime = 0;
+ /// <summary>
+ /// 鍓╀綑娑堟瘨鏃堕棿 (榛樿0绉掞級
+ /// </summary>
+ [Newtonsoft.Json.JsonIgnore]
+ public int DisinfectRemainTime = 0;
+
+ #region 寮�鍏�
+ ///<summary >
+ ///琛f灦寮�鍏冲仠鎺у埗
+ /// <para>command鐨勫��</para>
+ ///<para>0 : 琛f灦璁惧涓婃媺鎴栨墦寮�</para>
+ ///<para>1: 琛f灦璁惧涓嬮檷鎴栧叧闂�</para>
+ ///<para>2:琛f灦璁惧鍋滄</para>
+ ///<para>娉ㄦ剰浜嬮」锛氭櫨琛f灦,鍙樉绀哄苟瀛樺偍1绔偣锛屽叾浠栫鐐癸紙2锝�5锛夎繃婊わ紝涓嶅瓨鍌�,</para>
+ ///<para>鍥犱负鍏朵粬绔偣鍙湁鎺у埗浣滅敤锛岋紙绔偣2:鎺у埗鐓ф槑锛岀鐐�3:鎺у埗椋庡共锛岀鐐�4:鎺у埗鐑樺共锛岀鐐�5:鎺у埗娑堟瘨锛� </para>
+ /// </summary>
+ public void AirerUpDownStopControl(int command)
+ {
+ var jobject = new JObject { { "DeviceAddr", DeviceAddr }, { "Epoint", DeviceEpoint }, { "Cluster_ID", 258 }, { "Command", command }, { "SendMode", 2 } };
+ Gateway?.Send("DeviceControl", jobject.ToString());
+ System.Console.WriteLine("CurtainOpenControl_鍙戦�佹暟鎹�" + "_" + jobject.ToString() + "_" + System.DateTime.Now.ToString());
+ }
+ #endregion
+
+ #region 鈻� 璁惧鏃堕棿璁剧疆___________________________
+ ///<summary >
+ ///璁惧鏃堕棿璁�
+ ///<para>娉ㄦ剰浜嬮」锛氭櫨琛f灦,鍙樉绀哄苟瀛樺偍1绔偣锛屽叾浠栫鐐癸紙2锝�5锛夎繃婊わ紝涓嶅瓨鍌�,</para>
+ ///<para>鍥犱负鍏朵粬绔偣鍙湁鎺у埗浣滅敤锛岋紙绔偣2:鎺у埗鐓ф槑锛岀鐐�3:鎺у埗椋庡共锛岀鐐�4:鎺у埗鐑樺共锛岀鐐�5:鎺у埗娑堟瘨锛� </para>
+ /// </summary>
+ public async System.Threading.Tasks.Task<SetWritableValueResponAllData> SetAirerTimeAsync(int time, int controlEpoint)
+ {
+ 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 temp = Newtonsoft.Json.JsonConvert.DeserializeObject<CommonDevice.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 tempData = Newtonsoft.Json.JsonConvert.DeserializeObject<SetWritableValueResponData>(jobject["Data"].ToString());
+
+ if (tempData == null)
+ {
+ d = new SetWritableValueResponAllData { errorMessageBase = "缃戝叧杩斿洖鐨勬暟鎹负绌�" };
+ }
+ else
+ {
+ d = new SetWritableValueResponAllData { setWritableValueResponData = tempData };
+ DebugPrintLog($"UI鏀跺埌閫氱煡鍚庣殑涓婚_{ topic}");
+ }
+ }
+ };
+ Gateway.Actions += action;
+ DebugPrintLog("SetWritableValue_Actions 鍚姩" + "_" + System.DateTime.Now.ToString());
+ try
+ {
+ var jObject = new JObject { { "DeviceAddr", DeviceAddr }, { "Epoint", controlEpoint }, { "Cluster_ID", 6 }, { "Command", 120 } };
+ var data = new JObject { { "Undivided", 0 }, { "AttributeId", 16385 }, { "AttributeDataType", 33 }, { "AttributeData", time } };
+ 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;
+ DebugPrintLog("SetWritableValue_Actions 閫�鍑�" + System.DateTime.Now.ToString());
+ return d;
+ });
+ }
+ #endregion
+
+ #region 鈻� 璁惧鏃堕棿璁剧疆___________________________
+ /// <summary>
+ /// 璁剧疆鏃堕棿鍒拌。鏋�
+ ///<para>娉ㄦ剰浜嬮」锛氭櫨琛f灦,鍙樉绀哄苟瀛樺偍1绔偣锛屽叾浠栫鐐癸紙2锝�5锛夎繃婊わ紝涓嶅瓨鍌�,</para>
+ ///<para>鍥犱负鍏朵粬绔偣鍙湁鎺у埗浣滅敤锛岋紙绔偣2:鎺у埗鐓ф槑锛岀鐐�3:鎺у埗椋庡共锛岀鐐�4:鎺у埗鐑樺共锛岀鐐�5:鎺у埗娑堟瘨锛� </para>
+ /// </summary>
+ public async void SetAirerFunTimeDevice(int time, int controlEpoint)
+ {
+ await SetAirerTimeAsync(time, controlEpoint);
+ }
+ #endregion
+
+ #region 寮�鍏�
+ ///<summary >
+ ///寮�鍏虫帶鍒�(浠呯敤浜巆luster=6鐨勮澶囷級
+ /// <para>璁惧鏀寔cluster=6鐨勮澶囨墠鑳借皟鐢ㄨ鎺ュ彛</para>
+ /// <para>command鐨勫��</para>
+ ///<para>0 : 鍏抽棴</para>
+ ///<para>1: 鎵撳紑</para>
+ ///<para>2锛氬彇鍙�</para>
+ /// </summary>
+ public void SwitchControl(int command, int ctrlEpoint)
+ {
+ try
+ {
+ var jobject = new JObject { { "DeviceAddr", DeviceAddr }, { "Epoint", ctrlEpoint }, { "Cluster_ID", 6 }, { "Command", command }, { "SendMode", 2 } };
+ Gateway?.Send(("DeviceControl"), jobject.ToString());
+ System.Console.WriteLine("SwitchControl_鍙戦�佹暟鎹�" + "_" + jobject.ToString() + "_" + System.DateTime.Now.ToString());
+
+ }
+ catch { }
+ }
+ #endregion
+ }
+}
--
Gitblit v1.8.0