using System; using System.Collections.Generic; using System.Text; using ZigBee.Device; namespace Shared.Phone.UserCenter { /// /// 设备信息界面的设备图标控件(兼容网关) /// public class DeviceInfoIconControl : FrameLayoutStatuControl { #region ■ 变量声明___________________________ /// /// 设备Mac地址 /// private string deviceMac = null; /// /// 设备端点 /// private int deviceEpoint = -1; /// /// 网关对象 /// private ZbGateway zbGateway = null; /// /// 图标控件 /// private NormalViewControl btnIcon = null; #endregion #region ■ 初始化_____________________________ /// /// 设备信息界面的设备图标控件 /// public DeviceInfoIconControl() { //第一层底色 this.Height = this.GetPictrueRealSize(207); this.Width = this.GetPictrueRealSize(207); this.BackgroundColor = UserCenterColor.Current.White; this.Radius = (uint)this.GetPictrueRealSize(207) / 2; this.UseClickStatu = false; } /// /// 初始化(设备) /// /// 设备对象 public void InitControl(CommonDevice i_device) { this.deviceMac = i_device.DeviceAddr; //防止出现误差 int iconWidth = this.GetPictrueRealSize(207) - this.GetPictrueRealSize(12) - this.GetPictrueRealSize(12); //第二层底色 var btnIcon2 = new NormalViewControl(iconWidth, iconWidth, false); btnIcon2.BackgroundColor = 0xfffef1ed; btnIcon2.Radius = (uint)iconWidth / 2; btnIcon2.Gravity = Gravity.Center; this.AddChidren(btnIcon2, ChidrenBindMode.BindEvent); //设备图标 var listDevice = Common.LocalDevice.Current.GetDevicesByMac(deviceMac); if (listDevice.Count == 0) { //对应单纯只有200回路的设备 listDevice.Add(Common.LocalDevice.Current.GetOTADevice(deviceMac)); } btnIcon = new NormalViewControl(this.GetPictrueRealSize(121), this.GetPictrueRealSize(121), false); btnIcon.Gravity = Gravity.Center; Common.LocalDevice.Current.SetDeviceObjectIconToControl(btnIcon, listDevice); this.AddChidren(btnIcon, ChidrenBindMode.BindEvent); } /// /// 初始化(设备端点) /// /// 设备对象 public void InitControl(string deviceMacAddr, int epoint) { this.deviceMac = deviceMacAddr; this.deviceEpoint = epoint; //防止出现误差 int iconWidth = this.GetPictrueRealSize(207) - this.GetPictrueRealSize(12) - this.GetPictrueRealSize(12); //第二层底色 var btnIcon2 = new NormalViewControl(iconWidth, iconWidth, false); btnIcon2.BackgroundColor = 0xfffef1ed; btnIcon2.Radius = (uint)iconWidth / 2; btnIcon2.Gravity = Gravity.Center; this.AddChidren(btnIcon2, ChidrenBindMode.BindEvent); //设备图标 btnIcon = new NormalViewControl(this.GetPictrueRealSize(121), this.GetPictrueRealSize(121), false); btnIcon.Gravity = Gravity.Center; Common.LocalDevice.Current.SetDeviceIconToControl(btnIcon, Common.LocalDevice.Current.GetDevice(deviceMacAddr, epoint)); this.AddChidren(btnIcon, ChidrenBindMode.BindEvent); } /// /// 初始化(网关) /// /// 网关对象 public void InitControl(ZbGateway i_gateway) { this.zbGateway = i_gateway; //防止出现误差 int iconWidth = this.GetPictrueRealSize(207) - this.GetPictrueRealSize(12) - this.GetPictrueRealSize(12); //第二层底色 var btnIcon2 = new NormalViewControl(iconWidth, iconWidth, false); btnIcon2.BackgroundColor = 0xfffef1ed; btnIcon2.Radius = (uint)iconWidth / 2; btnIcon2.Gravity = Gravity.Center; this.AddChidren(btnIcon2, ChidrenBindMode.BindEvent); //设备图标 btnIcon = new NormalViewControl(this.GetPictrueRealSize(121), this.GetPictrueRealSize(121), false); btnIcon.Gravity = Gravity.Center; HdlGatewayLogic.Current.SetGatewayIcon(btnIcon, i_gateway); this.AddChidren(btnIcon, ChidrenBindMode.BindEvent); } #endregion #region ■ 一般方法___________________________ /// /// 重新刷新控件 /// public void RefreshControl() { if (this.deviceEpoint != -1) { //刷新图标 Common.LocalDevice.Current.SetDeviceIconToControl(btnIcon, Common.LocalDevice.Current.GetDevice(this.deviceMac, this.deviceEpoint)); } else if (this.deviceMac != null) { //刷新图标 var listDevice = Common.LocalDevice.Current.GetDevicesByMac(deviceMac); if (listDevice.Count == 0) { //对应单纯只有200回路的设备 listDevice.Add(Common.LocalDevice.Current.GetOTADevice(deviceMac)); } Common.LocalDevice.Current.SetDeviceObjectIconToControl(btnIcon, listDevice); } else { //刷新图标 HdlGatewayLogic.Current.SetGatewayIcon(btnIcon, this.zbGateway); } } #endregion } }