From b7b3e92bed9c4553e30e2901a1877f088a5f8823 Mon Sep 17 00:00:00 2001 From: gxc <guoxuecheng@guoxuechengdeMacBook-Pro.local> Date: 星期一, 04 十一月 2019 17:20:52 +0800 Subject: [PATCH] 2019.11.4 --- ZigbeeApp/Shared/Common/DeviceUI.cs | 336 +++++++++++++++++++++++++++++++++----------------------- 1 files changed, 198 insertions(+), 138 deletions(-) diff --git a/ZigbeeApp/Shared/Common/DeviceUI.cs b/ZigbeeApp/Shared/Common/DeviceUI.cs index cb57e47..1875ac6 100644 --- a/ZigbeeApp/Shared/Common/DeviceUI.cs +++ b/ZigbeeApp/Shared/Common/DeviceUI.cs @@ -15,27 +15,13 @@ #region 鈼� 鍙橀噺____________________________ /// <summary> - /// 鏄惁鏄嚜瀹氫箟鍥剧墖 + /// 璁惧MAC鍦板潃 /// </summary> - public bool IsCustomizeImage = false; - - //DeviceUI_DeviceFilePath - public override bool Equals(object obj) - { - var other= obj as DeviceUI; - if (CommonDevice.DeviceAddr==other.CommonDevice.DeviceAddr && CommonDevice.DeviceEpoint==other.CommonDevice.DeviceEpoint) - { - return true; - } - return false; - //CommonDevice.DeviceEpoint.Equals(other.CommonDevice.DeviceEpoint) && CommonDevice.DeviceAddr.Equals(other.CommonDevice.DeviceAddr); - - } - - public override int GetHashCode() - { - return base.GetHashCode(); - } + public string DeviceAddr = string.Empty; + /// <summary> + /// 璁惧绔偣 + /// </summary> + public int DeviceEpoint = 0; /// <summary> /// 璁惧鏂囦欢 @@ -45,20 +31,58 @@ public string FileName { get - { - return $"DeviceUI_{DeviceFileName}"; + { + var myDevice = Common.LocalDevice.Current.GetDevice(DeviceAddr, DeviceEpoint); + if (myDevice != null) + { + return $"DeviceUI_{myDevice.FilePath}"; + } + return $"DeviceUI_Unkwon"; } } - /// <summary> - /// 璁惧鏂囦欢鍚嶏紙骞堕潪deviceUI璁惧鏂囦欢鍚嶏紝鎸囩殑鏄痙evice锛� - /// </summary> - public string DeviceFileName = string.Empty; - /// <summary> - /// 鍥剧墖 - /// </summary> - public string IconPath = string.Empty; + [Newtonsoft.Json.JsonIgnore] + public ZigBee.Device.CommonDevice CommonDevice + { + get + { + return Common.LocalDevice.Current.GetDevice(DeviceAddr, DeviceEpoint); + } + } + + /// <summary> + /// 鏄惁鏄嚜瀹氫箟鍥剧墖 + /// </summary> + [Newtonsoft.Json.JsonIgnore] + public bool IsCustomizeImage + { + get + { + var myDevice = Common.LocalDevice.Current.GetDevice(DeviceAddr, DeviceEpoint); + if (myDevice != null) + { + return myDevice.IsCustomizeImage; + } + return false; + } + } + /// <summary> + /// 璁惧鍥剧墖 + /// </summary> + [Newtonsoft.Json.JsonIgnore] + public string IconPath + { + get + { + var myDevice = Common.LocalDevice.Current.GetDevice(DeviceAddr, DeviceEpoint); + if (myDevice != null) + { + return myDevice.IconPath; + } + return string.Empty; + } + } /// <summary> /// 璁惧鍥剧墖--鍦ㄧ嚎鎴栬�呴�変腑鐘舵�� /// </summary> @@ -68,51 +92,14 @@ { get { - if (string.IsNullOrEmpty(IconPath)) - { - return string.Empty; - } - var pathArr = IconPath.Split('.'); - if (pathArr == null || string.IsNullOrEmpty(pathArr[0])) - { - return string.Empty; - } - return $"{pathArr[0]}Selected.png"; + var myDevice = Common.LocalDevice.Current.GetDevice(DeviceAddr, DeviceEpoint); + if (myDevice != null) + { + return myDevice.OnlineIconPath; + } + return string.Empty; } } - //[Newtonsoft.Json.JsonIgnore] - //ZigBee.Device.CommonDevice commonDevice; - [Newtonsoft.Json.JsonIgnore] - public ZigBee.Device.CommonDevice CommonDevice - { - get - { - //commonDevice = ZigBee.Device.CommonDevice.CommonDeviceByFilePath(DeviceFilePath); - //return commonDevice; - //if (commonDevice == null) - //{ - // return ReCommonDevice; - //} - //else{ - //return commonDevice; - if (DeviceFileName.Split('_').Length < 4) - { - return null; - } - return Common.LocalDevice.Current.GetDevice(DeviceFileName.Split('_')[2], int.Parse(DeviceFileName.Split('_')[3])); - //} - } - } - - //[Newtonsoft.Json.JsonIgnore] - //public ZigBee.Device.CommonDevice ReCommonDevice - //{ - // get - // { - //commonDevice= ZigBee.Device.CommonDevice.CommonDeviceByFilePath(DeviceFilePath); - //return commonDevice; - // } - //} /// <summary> /// 鎺у埗寤舵椂榛樿鍙嶉鐨勭嚎绋嬪垪琛� @@ -169,64 +156,9 @@ Application.RunOnMainThread(() => { string msg = Language.StringByID(r); - var tip = new Phone.UserCenter.TipViewControl(msg, 1000, 1); - tip.ShowView(); + var tip = new Phone.UserCenter.ShowMsgControl(Phone.UserCenter.ShowMsgType.Tip, msg); + tip.Show(); }); - } - - #endregion - - #region 鈼� 淇濆瓨____________________________ - - /// <summary> - /// 淇濆瓨 - /// </summary> - public void Save() - { - if (Global.IsExistsByHomeId(FileName)) - { - return; - } - ReSave(); - } - - /// <summary> - /// 閲嶆柊淇濆瓨 - /// </summary> - public void ReSave() - { - var paths = DeviceFileName.Split('_'); - if (paths.Length < 3) - { - return; - } - if (IconPath == string.Empty) - { - //鎺у埗闈㈡澘鏄竴涓偣 - if (paths[1] == ZigBee.Device.DeviceType.OnOffSwitch.ToString()) - { - IconPath = "Device/DryContact.png"; - } - else if (paths[1] == ZigBee.Device.DeviceType.ColorDimmableLight.ToString()) - { - //褰╃伅 - IconPath = "Device/ColorDimmableLight.png"; - } - else if (paths[1] == ZigBee.Device.DeviceType.DimmableLight.ToString()) - { - //璋冨厜鍣� - IconPath = "Device/DimmableLight.png"; - } - else if (CommonDevice != null) - { - //鍏朵粬鐨勫浘鏍囨湁鐐圭壒娈� - string unSelectPic = string.Empty; - string selectPic = string.Empty; - LocalDevice.Current.GetDeviceBeloneIcon(new List<CommonDevice> { CommonDevice }, ref unSelectPic, ref selectPic); - IconPath = unSelectPic; - } - } - Global.WriteFileByBytesByHomeId(FileName, System.Text.Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(this))); } #endregion @@ -246,38 +178,38 @@ { 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; default: - ImagePath= "Device/Relay.png"; + ImagePath = "Device/Relay.png"; break; } return ImagePath; @@ -380,5 +312,133 @@ } #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); + } + 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() + { + if (CommonDevice.Type == DeviceType.OnOffOutput) + { + if ((CommonDevice as ToggleLight).OnOffStatus == 1) + { + return Language.StringByID(R.MyInternationalizationString.Open); + } + return Language.StringByID(R.MyInternationalizationString.Shut); + } + else if (CommonDevice.Type == DeviceType.AirSwitch) + { + if ((CommonDevice as ZigBee.Device.AirSwitch).OnOffStatus == 1) + { + return Language.StringByID(R.MyInternationalizationString.Open); + } + return Language.StringByID(R.MyInternationalizationString.Shut); + } + else if (CommonDevice.Type == DeviceType.DimmableLight) + { + if ((CommonDevice as DimmableLight).OnOffStatus == 0 || (CommonDevice as DimmableLight).Level == 0) + { + return Language.StringByID(R.MyInternationalizationString.Shut); + } + return $"{(int)((CommonDevice as DimmableLight).Level * 1.0 / 254 * 100)}%"; + } + else if (CommonDevice.Type == DeviceType.WindowCoveringDevice) + { + if ((CommonDevice as ZigBee.Device.Rollershade).WcdCurrentPositionLiftPercentage == 0) + { + return Language.StringByID(R.MyInternationalizationString.Shut); + } + return $"{(CommonDevice as ZigBee.Device.Rollershade).WcdCurrentPositionLiftPercentage}%"; + } + //else if (CommonDevice.Type == DeviceType.Thermostat) + //{ + ////娓╁害锛屾ā寮忥紝椋庨�� + //string tempareture = string.Empty; + //string model = string.Empty; + //string wind = string.Empty; + //if (TaskList.Count == 0) + //{ + // return null; + //} + //foreach (var taskListInfo in TaskList) + //{ + // if (taskListInfo.Data1 == 3) + // { + // if (taskListInfo.Data2 == 0) + // { + // return Language.StringByID(R.MyInternationalizationString.Shut); + // } + // else if (taskListInfo.Data2 == 1) + // { + // model = Language.StringByID(R.MyInternationalizationString.Mode_Auto); + // } + // else if (taskListInfo.Data2 == 3) + // { + // model = Language.StringByID(R.MyInternationalizationString.Mode_Cool); + // } + // else if (taskListInfo.Data2 == 4) + // { + // model = Language.StringByID(R.MyInternationalizationString.Mode_Heat); + // } + // else if (taskListInfo.Data2 == 7) + // { + // model = Language.StringByID(R.MyInternationalizationString.Mode_FanOnly); + // } + // else if (taskListInfo.Data2 == 8) + // { + // model = Language.StringByID(R.MyInternationalizationString.Mode_Dry); + // } + // } + // else if (taskListInfo.Data1 == 4 || taskListInfo.Data1 == 5) + // { + // tempareture = $"{ taskListInfo.Data2} 鈩�"; + // } + // else if (taskListInfo.Data1 == 6) + // { + // if (taskListInfo.Data2 == 1) + // { + // wind = Language.StringByID(R.MyInternationalizationString.Fan_Low); + // } + // else if (taskListInfo.Data2 == 2) + // { + // wind = Language.StringByID(R.MyInternationalizationString.Fan_Middle); + // } + // else if (taskListInfo.Data2 == 3) + // { + // wind = Language.StringByID(R.MyInternationalizationString.Fan_Height); + // } + // } + //} + //return $"{tempareture},{model},{wind}"; + //} + else + { + return null; + } + } } } -- Gitblit v1.8.0