From a39e669803d485caa354f0c6facde96905c0c44b Mon Sep 17 00:00:00 2001
From: gxc <guoxuecheng@guoxuechengdeMacBook-Pro.local>
Date: 星期五, 10 一月 2020 12:00:42 +0800
Subject: [PATCH] 2019.1.10
---
ZigbeeApp/Shared/Common/DeviceUI.cs | 270 ++++++++++++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 260 insertions(+), 10 deletions(-)
diff --git a/ZigbeeApp/Shared/Common/DeviceUI.cs b/ZigbeeApp/Shared/Common/DeviceUI.cs
old mode 100755
new mode 100644
index c91f9ec..e2e697b
--- 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;
@@ -312,5 +325,242 @@
}
#endregion
+
+ #region 鈼� 閫氳繃id鑾峰彇璁惧鍖哄煙_____________
+
+ /// <summary>
+ /// GetZone
+ /// </summary>
+ /// <returns></returns>
+ public string GetZone()
+ {
+ var room = Room.CurrentRoom.GetRoomByDevice(CommonDevice);
+ if (room == null)
+ {
+ return Language.StringByID(R.MyInternationalizationString.UnallocatedArea);
+ }
+ if(string.IsNullOrEmpty(room.FloorId))
+ {
+ return room.Name;
+ }
+ var floorName = Config.Instance.Home.GetFloorNameById(room.FloorId);
+ if (floorName == null)
+ {
+ return room.Name;
+ }
+ return $"{floorName},{room.Name}";
+ }
+
+ #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 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)
+ {
+ //绾㈠
+ 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 if (device.Type == DeviceType.TemperatureSensor)
+ {
+ var tempera = CommonDevice as TemperatureSensor;
+ if(tempera.SensorDiv==1)
+ {
+ if (tempera.Temperatrue == 0)
+ {
+ return "--鈩�";
+ }
+ return $"{tempera.Temperatrue}鈩�";
+ }
+ else if(tempera.SensorDiv==2)
+ {
+ if (tempera.Humidity == 0)
+ {
+ return "--%";
+ }
+ return $"{tempera.Humidity}%";
+ }
+ return null;
+ }
+ else
+ {
+ return null;
+ }
+ }
}
}
--
Gitblit v1.8.0