From ff3cfcf62632bf43e51a6b6098c203bf0f5cddbc Mon Sep 17 00:00:00 2001
From: gxc <guoxuecheng@guoxuechengdeMacBook-Pro.local>
Date: 星期二, 24 十二月 2019 19:53:29 +0800
Subject: [PATCH] 2019.12.24

---
 ZigbeeApp/Shared/Common/DeviceUI.cs |  128 +++++++++++++++++++++++++++++++++++++-----
 1 files changed, 113 insertions(+), 15 deletions(-)

diff --git a/ZigbeeApp/Shared/Common/DeviceUI.cs b/ZigbeeApp/Shared/Common/DeviceUI.cs
index 6df30d6..d1d9629 100644
--- a/ZigbeeApp/Shared/Common/DeviceUI.cs
+++ b/ZigbeeApp/Shared/Common/DeviceUI.cs
@@ -35,9 +35,9 @@
                 var myDevice = Common.LocalDevice.Current.GetDevice(DeviceAddr, DeviceEpoint);
                 if (myDevice != null)
                 {
-                    return $"DeviceUI_{myDevice.FilePath}";
+                    return myDevice.FilePath;
                 }
-                return $"DeviceUI_Unkwon";
+                return $"Device_Unkwon";
             }
         }
 
@@ -208,6 +208,10 @@
                     //涓户鍣�
                     ImagePath = "Device/AirSwitch.png";
                     break;
+                case DeviceType.TemperatureSensor:
+                    //娓╂箍搴︿紶鎰熷櫒
+                    ImagePath = "Device/Sensor.png";
+                    break;
                 default:
                     ImagePath = "Device/Relay.png";
                     break;
@@ -304,6 +308,15 @@
                     //涓户鍣�
                     deviceTypeR = R.MyInternationalizationString.Repeater;
                     break;
+                case DeviceType.DoorLock:
+                    //闂ㄩ攣
+                    deviceTypeR = R.MyInternationalizationString.DoorLock;
+                    break;
+
+                case DeviceType.TemperatureSensor:
+                    //娓╁害浼犳劅鍣�
+                    deviceTypeR = R.MyInternationalizationString.TemperatureAndHumiditySensor;
+                    break;
                 default:
                     deviceTypeR = R.MyInternationalizationString.UnknowDevice;
                     break;
@@ -342,39 +355,40 @@
         /// <returns></returns>
         public string GetDeviceStatu()
         {
-            if (CommonDevice.Type == DeviceType.OnOffOutput)
+            var device = CommonDevice;
+            if (device.Type == DeviceType.OnOffOutput)
             {
-                if ((CommonDevice as ToggleLight).OnOffStatus == 1)
+                if ((device as ToggleLight).OnOffStatus == 1)
                 {
                     return Language.StringByID(R.MyInternationalizationString.Open);
                 }
                 return Language.StringByID(R.MyInternationalizationString.Shut);
             }
-            else if (CommonDevice.Type == DeviceType.AirSwitch)
+            else if (device.Type == DeviceType.AirSwitch)
             {
-                if ((CommonDevice as ZigBee.Device.AirSwitch).OnOffStatus == 1)
+                if ((device as ZigBee.Device.AirSwitch).OnOffStatus == 1)
                 {
                     return Language.StringByID(R.MyInternationalizationString.Open);
                 }
                 return Language.StringByID(R.MyInternationalizationString.Shut);
             }
-            else if (CommonDevice.Type == DeviceType.DimmableLight)
+            else if (device.Type == DeviceType.DimmableLight)
             {
-                if ((CommonDevice as DimmableLight).OnOffStatus == 0 || (CommonDevice as DimmableLight).Level == 0)
+                if ((device as DimmableLight).OnOffStatus == 0 || (device as DimmableLight).Level == 0)
                 {
                     return Language.StringByID(R.MyInternationalizationString.Shut);
                 }
-                return $"{(int)((CommonDevice as DimmableLight).Level * 1.0 / 254 * 100)}%";
+                return $"{(int)((device as DimmableLight).Level * 1.0 / 254 * 100)}%";
             }
-            else if (CommonDevice.Type == DeviceType.WindowCoveringDevice)
+            else if (device.Type == DeviceType.WindowCoveringDevice)
             {
-                if ((CommonDevice as Rollershade).WcdCurrentPositionLiftPercentage == 0)
+                if ((device as Rollershade).WcdCurrentPositionLiftPercentage == 0)
                 {
                     return Language.StringByID(R.MyInternationalizationString.Shut);
                 }
-                return $"{(CommonDevice as Rollershade).WcdCurrentPositionLiftPercentage}%";
+                return $"{(device as Rollershade).WcdCurrentPositionLiftPercentage}%";
             }
-            else if (CommonDevice.Type == DeviceType.Thermostat)
+            else if (device.Type == DeviceType.Thermostat)
             {
                 //娓╁害锛屾ā寮忥紝椋庨��
                 string tempareture = string.Empty;
@@ -429,10 +443,94 @@
                 {
                     return $"{model},{wind}";
                 }
-                else
+                return $"{model},{wind},{tempareture}";
+            }
+            else if (device.Type == DeviceType.IASZone)
+            {
+                var ias = CommonDevice as IASZone;
+                var info = Common.LocalDevice.Current.GetNotHdlMyDeviceEnumInfo(new List<CommonDevice> { device },false);
+                if (info.ConcreteType == DeviceConcreteType.Sensor_Infrared)
                 {
-                    return $"{model},{wind},{tempareture}";
+                    //绾㈠
+                    if (ias.iASInfo?.Alarm1 == 1)
+                    {
+                        return Language.StringByID(R.MyInternationalizationString.IASZone_Statu_HavePerson);
+                    }
+                    return Language.StringByID(R.MyInternationalizationString.IASZone_Statu_NoPerson);
                 }
+                else if (info.ConcreteType == DeviceConcreteType.Sensor_Water)
+                {
+                    //姘存蹈
+                    if (ias.iASInfo?.Alarm1 == 1)
+                    {
+                        return Language.StringByID(R.MyInternationalizationString.IASZone_Statu_HaveWater);
+                    }
+                    return Language.StringByID(R.MyInternationalizationString.IASZone_Statu_Normal);
+                }
+                else if (info.ConcreteType == DeviceConcreteType.Sensor_DoorWindow)
+                {
+                    //闂ㄧ獥
+                    if (ias.iASInfo?.Alarm1 == 1)
+                    {
+                        return Language.StringByID(R.MyInternationalizationString.IASZone_Statu_Open);
+                    }
+                    return Language.StringByID(R.MyInternationalizationString.IASZone_Statu_Close);
+                }
+                else if (info.ConcreteType == DeviceConcreteType.Sensor_CarbonMonoxide)
+                {
+                    //鐕冩皵
+                    if (ias.iASInfo?.Alarm1 == 1)
+                    {
+                        return Language.StringByID(R.MyInternationalizationString.IASZone_Statu_Alarm);
+                    }
+                    return Language.StringByID(R.MyInternationalizationString.IASZone_Statu_Safe);
+                }
+                else if (info.ConcreteType == DeviceConcreteType.Sensor_Fire)
+                {
+                    //鐑熼浘
+                    if (ias.iASInfo?.Alarm1 == 1)
+                    {
+                        return Language.StringByID(R.MyInternationalizationString.IASZone_Statu_Alarm);
+                    }
+                    return Language.StringByID(R.MyInternationalizationString.IASZone_Statu_Safe);
+                }
+                else if (info.ConcreteType == DeviceConcreteType.Sensor_Pir)
+                {
+                    //pir
+                    if (ias.iASInfo?.Alarm1 == 1)
+                    {
+                        return Language.StringByID(R.MyInternationalizationString.IASZone_Statu_Alarm);
+                    }
+                    return Language.StringByID(R.MyInternationalizationString.IASZone_Statu_Safe);
+                }
+                else if (info.ConcreteType == DeviceConcreteType.Sensor_Keyfob)
+                {
+                    //閽ュ寵鎵�
+                    if (ias.iASInfo?.Alarm1 == 1)
+                    {
+                        return Language.StringByID(R.MyInternationalizationString.IASZone_Statu_Alarm);
+                    }
+                    return Language.StringByID(R.MyInternationalizationString.IASZone_Statu_Normal);
+                }
+                else if (info.ConcreteType == DeviceConcreteType.Sensor_Motion)
+                {
+                    //杩愬姩浼犳劅鍣�
+                    if (ias.iASInfo?.Alarm1 == 1)
+                    {
+                        return Language.StringByID(R.MyInternationalizationString.IASZone_Statu_Alarm);
+                    }
+                    return Language.StringByID(R.MyInternationalizationString.IASZone_Statu_Normal);
+                }
+                else if (info.ConcreteType == DeviceConcreteType.Sensor_EmergencyButton)
+                {
+                    //绱ф�ユ寜閽�
+                    if (ias.iASInfo?.Alarm1 == 1)
+                    {
+                        return Language.StringByID(R.MyInternationalizationString.IASZone_Statu_Alarm);
+                    }
+                    return Language.StringByID(R.MyInternationalizationString.IASZone_Statu_Normal);
+                }
+                return null;
             }
             else
             {

--
Gitblit v1.8.0