using System;
|
using System.Collections.Generic;
|
using System.Text;
|
using ZigBee.Device;
|
|
namespace Shared.Phone
|
{
|
/// <summary>
|
/// 设备信息界面的设备图标控件(兼容网关)
|
/// </summary>
|
public class DeviceInfoIconControl : FrameLayoutStatuControl
|
{
|
#region ■ 变量声明___________________________
|
|
/// <summary>
|
/// 设备Mac地址
|
/// </summary>
|
private string deviceMac = null;
|
/// <summary>
|
/// 设备端点
|
/// </summary>
|
private int deviceEpoint = -1;
|
/// <summary>
|
/// 网关对象
|
/// </summary>
|
private ZbGateway zbGateway = null;
|
/// <summary>
|
/// 图标控件
|
/// </summary>
|
private NormalViewControl btnIcon = null;
|
|
#endregion
|
|
#region ■ 初始化_____________________________
|
|
/// <summary>
|
/// 设备信息界面的设备图标控件
|
/// </summary>
|
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;
|
}
|
|
/// <summary>
|
/// 初始化(设备)
|
/// </summary>
|
/// <param name="i_device">设备对象</param>
|
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 = HdlDeviceCommonLogic.Current.GetDevicesByMac(deviceMac);
|
if (listDevice.Count == 0)
|
{
|
//对应单纯只有200回路的设备
|
listDevice.Add(HdlDeviceCommonLogic.Current.GetOTADevice(deviceMac));
|
}
|
btnIcon = new NormalViewControl(this.GetPictrueRealSize(121), this.GetPictrueRealSize(121), false);
|
btnIcon.Gravity = Gravity.Center;
|
HdlDeviceCommonLogic.Current.SetDeviceObjectIconToControl(btnIcon, listDevice);
|
this.AddChidren(btnIcon, ChidrenBindMode.BindEvent);
|
}
|
|
/// <summary>
|
/// 初始化(设备端点)
|
/// </summary>
|
/// <param name="i_device">设备对象</param>
|
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;
|
HdlDeviceCommonLogic.Current.SetDeviceIconToControl(btnIcon, HdlDeviceCommonLogic.Current.GetDevice(deviceMacAddr, epoint));
|
this.AddChidren(btnIcon, ChidrenBindMode.BindEvent);
|
}
|
|
/// <summary>
|
/// 初始化(网关)
|
/// </summary>
|
/// <param name="i_gateway">网关对象</param>
|
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 ■ 一般方法___________________________
|
|
/// <summary>
|
/// 重新刷新控件
|
/// </summary>
|
public void RefreshControl()
|
{
|
if (this.deviceEpoint != -1)
|
{
|
//刷新图标
|
HdlDeviceCommonLogic.Current.SetDeviceIconToControl(btnIcon, HdlDeviceCommonLogic.Current.GetDevice(this.deviceMac, this.deviceEpoint));
|
}
|
else if (this.deviceMac != null)
|
{
|
//刷新图标
|
var listDevice = HdlDeviceCommonLogic.Current.GetDevicesByMac(deviceMac);
|
if (listDevice.Count == 0)
|
{
|
//对应单纯只有200回路的设备
|
listDevice.Add(HdlDeviceCommonLogic.Current.GetOTADevice(deviceMac));
|
}
|
HdlDeviceCommonLogic.Current.SetDeviceObjectIconToControl(btnIcon, listDevice);
|
}
|
else
|
{
|
//刷新图标
|
HdlGatewayLogic.Current.SetGatewayIcon(btnIcon, this.zbGateway);
|
}
|
}
|
|
#endregion
|
}
|
}
|