using System; using System.Collections.Generic; using System.Text; namespace Shared.Phone.UserCenter { /// <summary> /// åšæˆä¸€ä¸ªæ˜¾ç¤ºè®¾å¤‡ç±»åž‹+设备MAC备注的RowLayout /// </summary> public class DeviceObjectControl : RowLayoutControl { #region â– å˜é‡å£°æ˜Ž___________________________ /// <summary> /// 设备的Macåœ°å€ /// </summary> public string deviceMac = string.Empty; /// <summary> /// åªä¼šåˆ·æ–°ä¸€æ¬¡ /// </summary> private bool hadRefresh = false; /// <summary> /// ä¼ æ„Ÿå™¨æŽ¨é€ä¸ /// </summary> private bool sensorPushing = false; /// <summary> /// åœ¨çº¿çŠ¶æ€ /// </summary> private bool m_isOnline = true; /// <summary> /// åœ¨çº¿çŠ¶æ€ /// </summary> public bool IsOnline { get { return m_isOnline; } set { if (m_isOnline != value) { m_isOnline = value; //设置在线状æ€çš„特效 this.SetOnlineStatu(m_isOnline); } } } /// <summary> /// å›¾æ ‡æŽ§ä»¶ /// </summary> public IconViewControl btnIcon = null; /// <summary> /// 设备备注控件 /// </summary> private NormalViewControl btnDeviceName = null; /// <summary> /// 设备房间控件 /// </summary> private NormalViewControl btnDeviceRoom = null; #endregion #region â– åˆå§‹åŒ–_____________________________ /// <summary> /// åšæˆä¸€ä¸ªæ˜¾ç¤ºè®¾å¤‡ç±»åž‹+设备MAC备注的RowLayout /// </summary> /// <param name="i_deviceMac">设备的Mac地å€</param> /// <param name="i_ChidrenYaxis">åæŽ§ä»¶Yè½´åç§»é‡(ã€åˆ—表控件的rowSpace/2】å³å¯,䏿‡‚默认为0å³å¯)</param> public DeviceObjectControl(string i_deviceMac, int i_ChidrenYaxis = 0) : base(i_ChidrenYaxis) { this.deviceMac = i_deviceMac; } /// <summary> /// åˆå§‹åŒ–内部控件 /// </summary> public void InitControl() { var listDevice = Common.LocalDevice.Current.GetDevicesByMac(this.deviceMac); if (listDevice.Count == 0) { //针对å•çº¯åªæœ‰ä¸€ä¸ª200端点的设备 listDevice.Add(Common.LocalDevice.Current.GetOTADevice(this.deviceMac)); } //å›¾æ ‡ btnIcon = frameTable.AddLeftIcon(81); Common.LocalDevice.Current.SetDeviceObjectIconToControl(btnIcon, listDevice); //设备 string deviceName = Common.LocalDevice.Current.GetDeviceMacName(listDevice[0]); btnDeviceName = frameTable.AddTopView(deviceName, 800); frameTable.AddChidren(btnDeviceName, ChidrenBindMode.BindEvent); //房间 string roomName = Common.LocalDevice.Current.GeteRealDeviceRoomName(listDevice[0]); btnDeviceRoom = frameTable.AddBottomView(roomName, 800); //底线 frameTable.AddBottomLine(); //设置在线状æ€çš„特效 this.IsOnline = Common.LocalDevice.Current.CheckDeviceIsOnline(listDevice[0]); } #endregion #region ■一般方法___________________________ /// <summary> /// 设置在线状æ€çš„特效 /// </summary> /// <param name="i_isOnline"></param> private void SetOnlineStatu(bool i_isOnline) { if (i_isOnline == false) { btnDeviceName.TextColor = UserCenterColor.Current.TextGrayColor1; } else { btnDeviceName.TextColor = UserCenterColor.Current.TextColor1; } } /// <summary> /// åˆ·æ–°å…¨éƒ¨æ˜¾ç¤ºä¿¡æ¯ /// </summary> /// <param name="compel">是å¦å¼ºåˆ¶æ‰§è¡Œ</param> public void RefreshControlInfo(bool compel = false) { if (hadRefresh == true && compel == false) { return; } hadRefresh = true; var listDevice = Common.LocalDevice.Current.GetDevicesByMac(this.deviceMac); if (listDevice.Count == 0) { //针对å•çº¯åªæœ‰ä¸€ä¸ª200端点的设备 listDevice.Add(Common.LocalDevice.Current.GetOTADevice(this.deviceMac)); } //å›¾æ ‡ Common.LocalDevice.Current.SetDeviceObjectIconToControl(btnIcon, listDevice); //设备 btnDeviceName.Text = Common.LocalDevice.Current.GetDeviceMacName(listDevice[0]); //设备房间 btnDeviceRoom.Text = Common.LocalDevice.Current.GeteRealDeviceRoomName(listDevice[0]); } /// <summary> /// æ˜¾ç¤ºä¼ æ„Ÿå™¨ä¸ŠæŠ¥çš„ç‰¹æ•ˆ /// </summary> public void StartSensorPushAppeal() { if (this.sensorPushing == true) { //ä¼ æ„Ÿå™¨æ£åœ¨ç‰¹æ•ˆä¸ return; } this.sensorPushing = true; HdlThreadLogic.Current.RunThread(() => { //é—ªçƒ5ç§’,é—´éš”400毫秒 int count = 5000 / 400; bool isOpen = false; while (this.Parent != null && count >= 0) { //é—ªçƒç‰¹æ•ˆ HdlThreadLogic.Current.RunMain(() => { isOpen = !isOpen; this.SwitchRowStatuAppeal(isOpen); }, ShowErrorMode.NO); System.Threading.Thread.Sleep(400); count--; } if (this.Parent != null && isOpen == true) { HdlThreadLogic.Current.RunMain(() => { //ç»“æŸæ—¶,é»˜è®¤ä¸ºæ— ç‰¹æ•ˆ this.SwitchRowStatuAppeal(false); }, ShowErrorMode.NO); } this.sensorPushing = false; }, ShowErrorMode.NO); } /// <summary> /// 切æ¢è¡Œé—ªçƒç‰¹æ•ˆ /// </summary> /// <param name="isOpen"></param> private void SwitchRowStatuAppeal(bool isOpen) { if (isOpen == true) { //å›¾æ ‡ btnIcon.IsSelected = true; //设备 btnDeviceName.TextColor = UserCenterColor.Current.TextOrangeColor; //设备房间 btnDeviceRoom.TextColor = UserCenterColor.Current.TextOrangeColor; } else { //å›¾æ ‡ btnIcon.IsSelected = false; //设备 btnDeviceName.TextColor = UserCenterColor.Current.TextColor1; //设备房间 btnDeviceRoom.TextColor = UserCenterColor.Current.TextGrayColor1; } } #endregion } }