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
}
}