From 34e965100d635346e2d4cd6e6013bdaed66b3004 Mon Sep 17 00:00:00 2001
From: gxc <guoxuecheng@guoxuechengdeMacBook-Pro.local>
Date: 星期四, 02 一月 2020 19:52:13 +0800
Subject: [PATCH] 2019.1.2-3
---
ZigbeeApp/Shared/Phone/UserView/UserPage.cs | 87 +++++++++++++++++++++++++++++++++++++++----
1 files changed, 79 insertions(+), 8 deletions(-)
diff --git a/ZigbeeApp/Shared/Phone/UserView/UserPage.cs b/ZigbeeApp/Shared/Phone/UserView/UserPage.cs
index efeac10..39d7770 100644
--- a/ZigbeeApp/Shared/Phone/UserView/UserPage.cs
+++ b/ZigbeeApp/Shared/Phone/UserView/UserPage.cs
@@ -4,8 +4,8 @@
using ZigBee.Device;
using Shared.Phone.Device.AC;
using System.Text;
-using Shared.Phone.Device.Account;
-
+using Shared.Phone.Device.Account;
+
namespace Shared.Phone.UserView
{
/// <summary>
@@ -82,7 +82,7 @@
if (common.DeviceStatusReport.AttriBute == null || common.DeviceStatusReport.AttriBute.Count == 0)
{
return;
- }
+ }
switch (myDevice.Type)
{
case DeviceType.OnOffOutput:
@@ -147,10 +147,10 @@
var ac = (AC)myDevice;
ac.DeviceStatusReport = common.DeviceStatusReport;
var attriButeList = ac.DeviceStatusReport.AttriBute;
- foreach(var attList in attriButeList)
+ foreach (var attList in attriButeList)
{
//姝ゅ睘鎬ц〃鏄庡鍐呭綋鍓嶇殑娓╁害 * 100锛屽疄闄呮俯搴︿负鈥淟ocalTemperature / 100鈥濓紝鍗曚綅锛氣剝
- var curTemp = (attList.AttriButeData / 100 < ACControlBase.Temperature_High || attList.AttriButeData / 100 > ACControlBase.Temperature_Low) ? attList.AttriButeData / 100 : ACControlBase.Temperature_Default;
+ var curTemp = (attList.AttriButeData / 100 < ACControlBase.Temperature_High && attList.AttriButeData / 100 > ACControlBase.Temperature_Low) ? attList.AttriButeData / 100 : ACControlBase.Temperature_Default;
switch (attList.AttributeId)
{
case 0:
@@ -193,7 +193,7 @@
var ac = (AC)myDevice;
var attriButeList = common.DeviceStatusReport.AttriBute;
ac.DeviceStatusReport = common.DeviceStatusReport;
- foreach(var attList in attriButeList)
+ foreach (var attList in attriButeList)
{
switch (attList.AttributeId)
{
@@ -247,6 +247,62 @@
myDevice.IsOnline = 1;
myDevice.LastDateTime = DateTime.Now;
}
+ break;
+
+ case DeviceType.TemperatureSensor:
+ //娓╁害
+ if (common.DeviceStatusReport.CluterID == 1026)
+ {
+ var tempera = (TemperatureSensor)myDevice;
+ foreach (var data in common.DeviceStatusReport.AttriBute)
+ {
+ if (data.AttributeId == (int)ZigBee.Device.AttriButeId.MeasuredValue)
+ {
+ if (data.AttriButeData == 0)
+ {
+ tempera.Temperatrue = 0;
+ }
+ else if (data.AttriButeData > 32767)
+ {
+ //璐熸暟(鐗规畩澶勭悊)
+ string strValue = (data.AttriButeData - 65536).ToString();
+ //灏忔暟鐐归渶瑕佷竴浣�
+ strValue = strValue.Substring(0, strValue.Length - 1);
+ tempera.Temperatrue = Convert.ToDecimal(strValue.Insert(strValue.Length - 1, "."));
+ }
+ else
+ {
+ //灏忔暟鐐归渶瑕佷竴浣�
+ string strValue = data.AttriButeData.ToString();
+ strValue = strValue.Substring(0, strValue.Length - 1);
+ tempera.Temperatrue = Convert.ToDecimal(strValue.Insert(strValue.Length - 1, "."));
+ }
+ }
+ }
+ }
+ //婀垮害
+ if (common.DeviceStatusReport.CluterID == 1029)
+ {
+ var tempera = (TemperatureSensor)myDevice;
+ foreach (var data in common.DeviceStatusReport.AttriBute)
+ {
+ if (data.AttributeId == (int)ZigBee.Device.AttriButeId.MeasuredValue)
+ {
+ if (data.AttriButeData == 0)
+ {
+ tempera.Humidity = 0;
+ }
+ else
+ {
+ //灏忔暟鐐归渶瑕佷竴浣�(婀垮害娌℃湁璐熸暟)
+ string strValue = data.AttriButeData.ToString();
+ strValue = strValue.Substring(0, strValue.Length - 1);
+ tempera.Humidity = Convert.ToDecimal(strValue.Insert(strValue.Length - 1, "."));
+ tempera.LastDateTime = DateTime.Now;
+ }
+ }
+ }
+ }
break;
}
}
@@ -261,6 +317,21 @@
myDevice.IsOnline = common.IsOnline;
//璁板綍鍥炲鏃堕棿
myDevice.LastDateTime = DateTime.Now;
+ }
+ else if (typeTag == "IASInfoReport")
+ {
+ try
+ {
+ switch (myDevice.Type)
+ {
+ case DeviceType.IASZone:
+ var iAS = (IASZone)myDevice;
+ iAS.iASInfo = (common as IASZone).iASInfo;
+ iAS.LastDateTime = DateTime.Now;
+ break;
+ }
+ }
+ catch { }
}
}
/// <summary>
@@ -304,9 +375,9 @@
{
BackgroundColor = Shared.Common.ZigbeeColor.Current.MainColor;
ZbGateway.StatusList.Add(this);
- Shared.Application.LocationAction += (lat, lon) =>
+ Shared.Application.LocationAction += (lon, lat) =>
{
- AccountLogic.Instance.ReceiveAppLatAndLon(lat.ToString(), lon.ToString());
+ AccountLogic.Instance.ReceiveAppLatAndLon(lon.ToString(), lat.ToString());
};
}
--
Gitblit v1.8.0