From f1c3921b08bb22ac6f5db22d620e01d7e8e5c49f Mon Sep 17 00:00:00 2001
From: WJC <wjc@hdlchina.com.cn>
Date: 星期一, 30 十二月 2019 13:32:33 +0800
Subject: [PATCH] 2019-12-30-1

---
 ZigbeeApp/Shared/Common/DeviceUI.cs |  139 ++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 127 insertions(+), 12 deletions(-)

diff --git a/ZigbeeApp/Shared/Common/DeviceUI.cs b/ZigbeeApp/Shared/Common/DeviceUI.cs
index 01b042b..d3034cc 100755
--- 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";
             }
         }
 
@@ -178,38 +178,42 @@
             {
                 case DeviceType.OnOffSwitch:
                     //鎺у埗闈㈡澘
-                    ImagePath= "Device/DryContact.png";
+                    ImagePath = "Device/DryContact.png";
                     break;
                 case DeviceType.OnOffOutput:
                     //缁х數鍣�
-                    ImagePath= "Device/Relay.png";
+                    ImagePath = "Device/Relay.png";
                     break;
                 case DeviceType.DimmableLight:
                     //璋冨厜鐏�
-                    ImagePath= "Device/DimmableLight.png";
+                    ImagePath = "Device/DimmableLight.png";
                     break;
                 case DeviceType.WindowCoveringDevice:
                     //绐楀笜
-                    ImagePath= "Device/Curtain.png";
+                    ImagePath = "Device/Curtain.png";
                     break;
                 case DeviceType.Thermostat:
                     //绌鸿皟
-                    ImagePath= "Device/AirConditioner.png";
+                    ImagePath = "Device/AirConditioner.png";
                     break;
                 case DeviceType.IASZone:
                     //浼犳劅鍣�
-                    ImagePath= "Device/Sensor.png";
+                    ImagePath = "Device/Sensor.png";
                     break;
                 case DeviceType.AirSwitch:
                     //绌烘皵寮�鍏�
-                    ImagePath= "Device/AirSwitch.png";
+                    ImagePath = "Device/AirSwitch.png";
                     break;
                 case DeviceType.Repeater:
                     //涓户鍣�
                     ImagePath = "Device/AirSwitch.png";
                     break;
+                case DeviceType.TemperatureSensor:
+                    //娓╂箍搴︿紶鎰熷櫒
+                    ImagePath = "Device/Sensor.png";
+                    break;
                 default:
-                    ImagePath= "Device/Relay.png";
+                    ImagePath = "Device/Relay.png";
                     break;
             }
             return ImagePath;
@@ -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;
@@ -324,9 +337,9 @@
             var room = Room.CurrentRoom.GetRoomByDevice(CommonDevice);
             if (room == null)
             {
-                return null;
+                return Language.StringByID(R.MyInternationalizationString.UnallocatedArea);
             }
-            var floorName = Shared.Common.Config.Instance.Home.GetFloorNameById(room.FloorId);
+            var floorName = Config.Instance.Home.GetFloorNameById(room.FloorId);
             if (floorName == null)
             {
                 return room.Name;
@@ -335,5 +348,107 @@
         }
 
         #endregion
+
+        /// <summary>
+        /// GetDeviceStatu
+        /// </summary>
+        /// <returns></returns>
+        public string GetDeviceStatu()
+        {
+            var device = CommonDevice;
+            if (device.Type == DeviceType.OnOffOutput)
+            {
+                if ((device as ToggleLight).OnOffStatus == 1)
+                {
+                    return Language.StringByID(R.MyInternationalizationString.Open);
+                }
+                return Language.StringByID(R.MyInternationalizationString.Shut);
+            }
+            else if (device.Type == DeviceType.AirSwitch)
+            {
+                if ((device as ZigBee.Device.AirSwitch).OnOffStatus == 1)
+                {
+                    return Language.StringByID(R.MyInternationalizationString.Open);
+                }
+                return Language.StringByID(R.MyInternationalizationString.Shut);
+            }
+            else if (device.Type == DeviceType.DimmableLight)
+            {
+                if ((device as DimmableLight).OnOffStatus == 0 || (device as DimmableLight).Level == 0)
+                {
+                    return Language.StringByID(R.MyInternationalizationString.Shut);
+                }
+                return $"{(int)((device as DimmableLight).Level * 1.0 / 254 * 100)}%";
+            }
+            else if (device.Type == DeviceType.WindowCoveringDevice)
+            {
+                if ((device as Rollershade).WcdCurrentPositionLiftPercentage == 0)
+                {
+                    return Language.StringByID(R.MyInternationalizationString.Shut);
+                }
+                return $"{(device as Rollershade).WcdCurrentPositionLiftPercentage}%";
+            }
+            else if (device.Type == DeviceType.Thermostat)
+            {
+                //娓╁害锛屾ā寮忥紝椋庨��
+                string tempareture = string.Empty;
+                string model = string.Empty;
+                string wind = string.Empty;
+
+                var ac = CommonDevice as AC;
+
+                if (ac.currentSystemMode == 0)
+                {
+                    return Language.StringByID(R.MyInternationalizationString.Shut);
+                }
+                else if (ac.currentSystemMode == 1)
+                {
+                    model = Language.StringByID(R.MyInternationalizationString.Mode_Auto);
+                    tempareture = $"{ac.currentCoolingSetpoint} 鈩�";
+                }
+                else if (ac.currentSystemMode == 3)
+                {
+                    model = Language.StringByID(R.MyInternationalizationString.Mode_Cool);
+                    tempareture = $"{ac.currentCoolingSetpoint} 鈩�";
+                }
+                else if (ac.currentSystemMode == 4)
+                {
+                    model = Language.StringByID(R.MyInternationalizationString.Mode_Heat);
+                    tempareture = $"{ac.currentHeatingSetpoint} 鈩�";
+                }
+                else if (ac.currentSystemMode == 7)
+                {
+                    model = Language.StringByID(R.MyInternationalizationString.Mode_FanOnly);
+                }
+                else if (ac.currentSystemMode == 8)
+                {
+                    model = Language.StringByID(R.MyInternationalizationString.Mode_Dry);
+                    tempareture = $"{ac.currentCoolingSetpoint} 鈩�";
+                }
+
+                if (ac.currentFanMode == 1)
+                {
+                    wind = Language.StringByID(R.MyInternationalizationString.Fan_Low);
+                }
+                else if (ac.currentFanMode == 2)
+                {
+                    wind = Language.StringByID(R.MyInternationalizationString.Fan_Middle);
+                }
+                else
+                {
+                    wind = Language.StringByID(R.MyInternationalizationString.Fan_Height);
+                }
+
+                if (string.IsNullOrEmpty(tempareture))
+                {
+                    return $"{model},{wind}";
+                }
+                return $"{model},{wind},{tempareture}";
+            }
+            else
+            {
+                return null;
+            }
+        }
     }
 }

--
Gitblit v1.8.0