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/FreshAir.cs | 180 ++++++++++++++++++++++++++++++++++++++++-------------------
1 files changed, 121 insertions(+), 59 deletions(-)
diff --git a/ZigbeeApp/Shared/Phone/ZigBee/Device/FreshAir.cs b/ZigbeeApp/Shared/Phone/ZigBee/Device/FreshAir.cs
index 4a9954a..15d44e8 100755
--- a/ZigbeeApp/Shared/Phone/ZigBee/Device/FreshAir.cs
+++ b/ZigbeeApp/Shared/Phone/ZigBee/Device/FreshAir.cs
@@ -4,7 +4,7 @@
namespace ZigBee.Device
{
[System.Serializable]
- public class FreshAir : Panel
+ public class FreshAir : CommonDevice
{
/// <summary>
/// 璇ョ被锛堟柊椋庡璞★級鍖呭惈鏂伴璁惧鍜屾柊椋庨潰鏉�
@@ -15,24 +15,88 @@
}
/// <summary>
- /// 鎭掓俯璁惧褰撳墠妯″紡
- /// <para>鎭掓俯璁惧鍏峰鍔熻兘锛孲ystemMode Attribute Values濡備笅</para>
- /// <para>0:Off </para>
- /// <para>1:Auto </para>
- /// <para>3:Cool </para>
- /// <para>4:Heat </para>
- /// <para>5:Emergency heating </para>
- /// <para>6:Precooling</para>
- /// <para>7:Fan only </para>
- /// <para>8:Dry </para>
- /// <para>9:Sleep</para>
+ /// 椋庨�熸ā寮�
+ /// <para>5:鑷姩</para>
+ /// <para>6:Smart</para>
+ /// <para>15:鎵嬪姩</para>
/// </summary>
- public int currentSystemMode = 0;
+ [Newtonsoft.Json.JsonIgnore]
+ public int currentFanMode = 0;
+ /// <summary>
+ /// 椋庨�熸。浣�
+ /// <para>1:浣庨</para>
+ /// <para>2:涓</para>
+ /// <para>3:楂橀 </para>
+ /// </summary>
+ [Newtonsoft.Json.JsonIgnore]
+ public int currentFanSpeed = 0;
+ /// <summary>
+ /// 椋庢墖鐘舵��
+ /// <para>0:鍏抽棴 </para>
+ /// <para>4:鎵撳紑 </para>
+ /// </summary>
+ [Newtonsoft.Json.JsonIgnore]
+ public int currentFanStatus = 0;
+
+ /// <summary>
+ /// 鍏抽棴
+ /// </summary>
+ /// <returns>The close.</returns>
+ public async System.Threading.Tasks.Task<SetWritableValueResponAllData> Close()
+ {
+ return await SetFanModeAsync(FanMode.Off);
+ }
+
+ /// <summary>
+ /// 寮�鍚�
+ /// </summary>
+ /// <returns>The open.</returns>
+ public async System.Threading.Tasks.Task<SetWritableValueResponAllData> Open()
+ {
+ return await SetFanModeAsync(FanMode.On);
+ }
+
+ /// <summary>
+ /// 楂橀
+ /// </summary>
+ /// <returns>The close.</returns>
+ public async System.Threading.Tasks.Task<SetWritableValueResponAllData> SetHighSpeed()
+ {
+ return await SetFanModeAsync(FanMode.High);
+ }
+
+ /// <summary>
+ /// 浣庨
+ /// </summary>
+ /// <returns>The open.</returns>
+ public async System.Threading.Tasks.Task<SetWritableValueResponAllData> SetLowSpeed()
+ {
+ return await SetFanModeAsync(FanMode.Low);
+ }
+
+
+ /// <summary>
+ /// 鎵嬪姩
+ /// </summary>
+ /// <returns>The close.</returns>
+ public async System.Threading.Tasks.Task<SetWritableValueResponAllData> SetManual()
+ {
+ return await SetFanModeAsync(FanMode.Manual);
+ }
+
+ /// <summary>
+ /// 鑷姩
+ /// </summary>
+ /// <returns>The open.</returns>
+ public async System.Threading.Tasks.Task<SetWritableValueResponAllData> SetAuto()
+ {
+ return await SetFanModeAsync(FanMode.Auto);
+ }
///<summary >
- ///璁剧疆鎭掓俯鍣ㄨ澶囧綋鍓嶅伐浣滄ā寮�.
+ ///璁剧疆鎭掓俯鍣ㄨ澶囧綋鍓嶉閫�.
/// </summary>
- public async System.Threading.Tasks.Task<SetWritableValueResponAllData> SetSystemModeAsync(AcMode acMode)
+ public async System.Threading.Tasks.Task<SetWritableValueResponAllData> SetFanModeAsync(FanMode fanMode)
{
if (Gateway == null)
{
@@ -48,8 +112,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)
{
@@ -63,7 +126,6 @@
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)
@@ -81,8 +143,8 @@
DebugPrintLog("SetWritableValue_Actions 鍚姩" + "_" + System.DateTime.Now.ToString());
try
{
- var jObject = new JObject { { "DeviceAddr", DeviceAddr }, { "Epoint", DeviceEpoint }, { "Cluster_ID", 513 }, { "Command", 120 } };
- var data = new JObject { { "Undivided", 0 }, { "AttributeId", 28 }, { "AttributeDataType", 48 }, { "AttributeData", (int)acMode } };
+ var jObject = new JObject { { "DeviceAddr", DeviceAddr }, { "Epoint", DeviceEpoint }, { "Cluster_ID", 514 }, { "Command", 120 } };
+ var data = new JObject { { "Undivided", 0 }, { "AttributeId", 0 }, { "AttributeDataType", 48 }, { "AttributeData", (int)fanMode } };
jObject.Add("Data", data);
Gateway.Send("SetWritableValue", jObject.ToString());
}
@@ -107,63 +169,63 @@
});
}
- public enum AcMode
+
+ #region 鈼� 褰撳墠鏂伴寮�鍏崇姸鎬乢___________________
+
+ /// <summary>
+ /// 褰撳墠鏂伴寮�鍏崇姸鎬�
+ /// </summary>
+ /// <param name="freshAir"></param>
+ /// <returns></returns>
+ public bool IsOpen(FreshAir freshAir)
+ {
+ if (freshAir.currentFanStatus == 4)
+ {
+ return true;
+ }
+ return false;
+ }
+
+ #endregion
+
+
+ /// <summary>
+ /// 椋庨�熸。浣�
+ /// </summary>
+ public enum FanMode
{
/// <summary>
- /// 鍏抽棴妯″紡锛堟祴璇曟亽娓╅潰鏉挎椂鍙戠幇锛�2锛�5锛�6锛�7锛�8锛�9閮芥槸鍙互鎵撳紑鐨勶級
+ /// 鍏抽棴
/// </summary>
Off = 0,
/// <summary>
- /// 鑷姩妯″紡
+ /// 浣庨
/// </summary>
- Auto = 1,
+ Low = 1,
/// <summary>
- /// 鍒跺喎妯″紡
+ /// 涓
/// </summary>
- Cool = 3,
+ Medium = 2,
/// <summary>
- /// 鍒剁儹妯″紡
+ /// 楂橀
/// </summary>
- Heat = 4,
+ High = 3,
/// <summary>
- /// 绱ф�ュ埗鐑ā寮�
+ /// 鎵撳紑
/// </summary>
- EmergencyHeating = 5,
+ On = 4,
/// <summary>
- /// 棰勫喎妯″紡
+ /// 鑷姩
/// </summary>
- Precooling = 6,
+ Auto = 5,
/// <summary>
- /// 鍙湁椋庨�熸ā寮�
+ /// Smart
/// </summary>
- FanOnly = 7,
+ Smart = 6,
/// <summary>
- /// 骞茬嚗妯″紡
+ /// 鎵嬪姩
/// </summary>
- Dry = 8,
- /// <summary>
- /// 鐫$湢妯″紡
- /// </summary>
- Sleep = 9
- }
-
- /// <summary>
- /// 鍏抽棴
- /// </summary>
- /// <returns>The close.</returns>
- public async System.Threading.Tasks.Task<SetWritableValueResponAllData> Close()
- {
- return await SetSystemModeAsync(AcMode.Off);
+ Manual = 15,
}
-
- /// <summary>
- /// 寮�鍚�
- /// </summary>
- /// <returns>The open.</returns>
- /// <param name="acMode">Ac mode.</param>
- public async System.Threading.Tasks.Task<SetWritableValueResponAllData> Open(AcMode acMode = AcMode.Cool)
- {
- return await SetSystemModeAsync(acMode);
- }
}
}
--
Gitblit v1.8.0