using System;
|
using System.Collections.Generic;
|
using Shared.Common;
|
using Shared.Phone.UserCenter.Device.Bind;
|
using ZigBee.Common;
|
using ZigBee.Device;
|
|
namespace Shared.Phone.UserCenter.DevicePanel
|
{
|
/// <summary>
|
/// 面板的按键配置界面【该类暂时舍弃】
|
/// </summary>
|
public class PanelSimpleEnvironmentButtonSettionForm : EditorCommonForm
|
{
|
#region ■ 变量声明___________________________
|
|
/// <summary>
|
/// 列表控件
|
/// </summary>
|
private FrameListControl listview = null;
|
/// <summary>
|
/// 设备的某一回路
|
/// </summary>
|
private CommonDevice deviceObj = null;
|
/// <summary>
|
/// 新风目标名字
|
/// </summary>
|
private string bindFreshAirName = string.Empty;
|
/// <summary>
|
/// 温度目标名字
|
/// </summary>
|
private string bindTemperatureName = string.Empty;
|
/// <summary>
|
/// 湿度目标名字
|
/// </summary>
|
private string bindHumidityName = string.Empty;
|
/// <summary>
|
/// PM目标名字
|
/// </summary>
|
private string bindAcName = string.Empty;
|
/// <summary>
|
/// 被绑目标是新风
|
/// </summary>
|
private CommonDevice bindFreshAirDev;
|
/// <summary>
|
/// 被绑目标是温度
|
/// </summary>
|
private CommonDevice bindTemperatureDev;
|
/// <summary>
|
/// 被绑目标是湿度
|
/// </summary>
|
private CommonDevice bindHumidityDev;
|
/// <summary>
|
/// 被绑目标是空调
|
/// </summary>
|
private CommonDevice bindAcDev;
|
// <summary>
|
/// 按键中被绑定的目标列表
|
/// </summary>
|
public List<BindObj.BindListResponseObj> bindList = new List<BindObj.BindListResponseObj>();
|
|
#endregion
|
|
#region ■ 初始化_____________________________
|
|
/// <summary>
|
/// 画面显示(底层会固定调用此方法,借以完成画面创建)
|
/// </summary>
|
/// <param name="i_device">设备的某一回路</param>
|
public void ShowForm(CommonDevice i_device)
|
{
|
this.deviceObj = i_device;
|
//获取数据
|
InitInfo(deviceObj);
|
|
//设置头部信息
|
base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uPanelSettion));
|
|
//初始化中部信息
|
this.InitMiddleFrame();
|
|
//初始化右上角菜单
|
this.InitTopRightMenu();
|
}
|
|
/// <summary>
|
/// 初始化中部信息
|
/// </summary>
|
private void InitMiddleFrame()
|
{
|
//清空bodyFrame
|
this.ClearBodyFrame();
|
|
var listBackControl = new VerticalFrameControl();
|
listBackControl.Height = bodyFrameLayout.Height;
|
bodyFrameLayout.AddChidren(listBackControl);
|
|
//图片
|
var btnPic = new PicViewControl(426, 426);
|
btnPic.Y = Application.GetRealHeight(150);
|
btnPic.UnSelectedImagePath = "RealDevice/ButtonPanelSimpleEnvironment.png";
|
btnPic.Gravity = Gravity.CenterHorizontal;
|
listBackControl.frameTable.AddChidren(btnPic);
|
|
//初始化桌布
|
var tableContr = new InformationEditorControl();
|
this.listview = tableContr.InitControl(listBackControl.frameTable, Language.StringByID(R.MyInternationalizationString.uDeviceEditor), 1028);
|
|
//初始化菜单行
|
this.InitMenuRow();
|
|
//初始化桌布完成
|
tableContr.FinishInitControl();
|
tableContr = null;
|
|
//保存
|
var btnFinish = new BottomClickButton();
|
btnFinish.TextID = R.MyInternationalizationString.uSave;
|
bodyFrameLayout.AddChidren(btnFinish);
|
btnFinish.ButtonClickEvent += (sender, e) =>
|
{
|
//关闭自身
|
this.CloseForm();
|
};
|
}
|
|
/// <summary>
|
/// 初始化菜单行
|
/// </summary>
|
private void InitMenuRow()
|
{
|
this.listview.RemoveAll();
|
//Ac来源
|
this.AddAcRow();
|
//添加新风目标
|
this.AddFreshAirRow();
|
//添加温度来源
|
this.AddTemperatureSensorRow();
|
//添加湿度来源
|
this.AddHumiditySourceRow();
|
//亮度调节
|
this.AddLevelRow();
|
}
|
#endregion
|
|
#region ■ 数据处理_________________________
|
/// <summary>
|
/// 初始化数据
|
/// </summary>
|
void InitInfo(CommonDevice curControlDev)
|
{
|
System.Threading.Tasks.Task.Run(async () =>
|
{
|
try
|
{
|
Application.RunOnMainThread(() =>
|
{
|
CommonPage.Loading.Start("");
|
});
|
|
var result = await GetBindName(curControlDev);
|
if (!result)
|
{
|
|
Application.RunOnMainThread(() =>
|
{
|
new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime) + "(" + "5007" + ")", Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance);
|
});
|
}
|
}
|
catch (Exception ex)
|
{
|
var mess = ex.Message;
|
}
|
finally
|
{
|
Application.RunOnMainThread(() =>
|
{
|
this.InitMenuRow();
|
CommonPage.Loading.Hide();
|
});
|
}
|
});
|
}
|
|
/// <summary>
|
/// 获取绑定目标
|
/// </summary>
|
/// <param name="curControlDev"></param>
|
/// <returns></returns>
|
private async System.Threading.Tasks.Task<bool> GetBindName(CommonDevice curDev)
|
{
|
bool result = false;
|
//获取面板中存在的绑定目标
|
var curControlDev = new CommonDevice();
|
curControlDev.DeviceAddr = curDev.DeviceAddr;
|
curControlDev.CurrentGateWayId = curDev.CurrentGateWayId;
|
curControlDev.Type = curDev.Type;
|
int count = 0;
|
for (int i = 1; i < 3; i++)
|
{
|
curControlDev.DeviceEpoint = i;
|
|
var panelBindListRes = HdlDeviceBindLogic.Current.GetDeviceBindAsync(curControlDev);
|
if (panelBindListRes != null && panelBindListRes.getAllBindResponseData != null)
|
{
|
bindList = panelBindListRes.getAllBindResponseData.BindList;
|
foreach (var bDev in bindList)
|
{
|
var device = HdlDeviceCommonLogic.Current.GetDevice(bDev.BindMacAddr, bDev.BindEpoint);
|
if (device == null)
|
{
|
continue;
|
}
|
if (device.Type == DeviceType.FreshAir)
|
{
|
//获取设备类型的
|
var deviceEnumInfo = HdlDeviceCommonLogic.Current.GetMyDeviceEnumInfo(new List<CommonDevice>() { device });
|
//新风面板的新风设备,则不显示
|
if (deviceEnumInfo.ConcreteType == DeviceConcreteType.ButtonPanel_FangyueFreshAir)
|
{
|
continue;
|
}
|
bindFreshAirName = HdlDeviceCommonLogic.Current.GetDeviceEpointName(device);
|
bindFreshAirDev = device;
|
}
|
else if (device.Type == DeviceType.TemperatureSensor)
|
{
|
var bD = device as TemperatureSensor;
|
if (bD.SensorDiv == 1)
|
{
|
bindTemperatureName = HdlDeviceCommonLogic.Current.GetDeviceEpointName(device);
|
bindTemperatureDev = device;
|
}
|
if (bD.SensorDiv == 2)
|
{
|
bindHumidityName = HdlDeviceCommonLogic.Current.GetDeviceEpointName(device);
|
bindHumidityDev = device;
|
}
|
}
|
else if (device.Type == DeviceType.FreshAirHumiditySensor)
|
{
|
bindHumidityName = HdlDeviceCommonLogic.Current.GetDeviceEpointName(device);
|
bindHumidityDev = device;
|
}
|
else if (device.Type == DeviceType.Thermostat)
|
{
|
bindAcName = HdlDeviceCommonLogic.Current.GetDeviceEpointName(device);
|
bindAcDev = device;
|
}
|
else if (device.Type == DeviceType.PMSensor)
|
{
|
if (bDev.BindCluster == 1026)
|
{
|
bindTemperatureName = HdlDeviceCommonLogic.Current.GetDeviceEpointName(device) + "-" + Language.StringByID(R.MyInternationalizationString.TemperatureSensor);
|
bindTemperatureDev = device;
|
}
|
if (bDev.BindCluster == 1029)
|
{
|
bindHumidityName = HdlDeviceCommonLogic.Current.GetDeviceEpointName(device) + "-" + Language.StringByID(R.MyInternationalizationString.HumiditySensor);
|
bindHumidityDev = device;
|
}
|
}
|
}
|
count++;
|
if (count == 2)
|
{
|
result = true;
|
}
|
}
|
}
|
|
return result;
|
}
|
#endregion
|
|
#region ■ Ac来源_________________________
|
/// <summary>
|
/// Ac来源行
|
/// </summary>
|
private void AddAcRow()
|
{
|
//Ac
|
var rowAc = new FrameRowControl(listview.rowSpace / 2);
|
listview.AddChidren(rowAc);
|
rowAc.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.AcTargets), 600);
|
//底线
|
rowAc.AddBottomLine();
|
//右箭头
|
rowAc.AddRightArrow();
|
var msg = Language.StringByID(R.MyInternationalizationString.nothing);
|
if (!string.IsNullOrEmpty(bindAcName))
|
{
|
msg = bindAcName;
|
}
|
var btnAcStatu = rowAc.AddMostRightView(msg, 700);
|
rowAc.ButtonClickEvent += (sender, e) =>
|
{
|
this.deviceObj.DeviceEpoint = 1;
|
var paneTargetsBaseFormp = new PaneTargetsBaseForm(this.deviceObj, bindAcDev, DeviceBind.BindInfo.BindType.AC);
|
Shared.Phone.UserView.HomePage.Instance.AddChidren(paneTargetsBaseFormp);
|
Shared.Phone.UserView.HomePage.Instance.PageIndex += 1;
|
paneTargetsBaseFormp.Show();
|
|
paneTargetsBaseFormp.actionAcTarget += (bindName) =>
|
{
|
Application.RunOnMainThread(() =>
|
{
|
if (string.IsNullOrEmpty(bindName))
|
{
|
btnAcStatu.Text = Language.StringByID(R.MyInternationalizationString.nothing);
|
}
|
else
|
{
|
btnAcStatu.Text = bindName;
|
}
|
});
|
};
|
};
|
}
|
#endregion
|
|
#region ■ 新风目标_________________________
|
/// <summary>
|
/// 新风目标行
|
/// </summary>
|
private void AddFreshAirRow()
|
{
|
//新风目标
|
var rowNewWind = new FrameRowControl(listview.rowSpace / 2);
|
listview.AddChidren(rowNewWind);
|
rowNewWind.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.uNewWindTarget), 600);
|
//底线
|
rowNewWind.AddBottomLine();
|
//右箭头
|
rowNewWind.AddRightArrow();
|
|
var msg = Language.StringByID(R.MyInternationalizationString.nothing);
|
if (!string.IsNullOrEmpty(bindFreshAirName))
|
{
|
msg = bindFreshAirName;
|
}
|
var btnNewWindStatu = rowNewWind.AddMostRightView(msg, 700);
|
|
rowNewWind.ButtonClickEvent += (sender, e) =>
|
{
|
this.deviceObj.DeviceEpoint = 2;
|
var paneTargetsBaseFormp = new PaneTargetsBaseForm(this.deviceObj, bindAcDev, DeviceBind.BindInfo.BindType.FreshAir);
|
Shared.Phone.UserView.HomePage.Instance.AddChidren(paneTargetsBaseFormp);
|
Shared.Phone.UserView.HomePage.Instance.PageIndex += 1;
|
paneTargetsBaseFormp.Show();
|
paneTargetsBaseFormp.actionFreshAirTarget += (bindName) =>
|
{
|
Application.RunOnMainThread(() =>
|
{
|
if (string.IsNullOrEmpty(bindName))
|
{
|
btnNewWindStatu.Text = Language.StringByID(R.MyInternationalizationString.nothing);
|
}
|
else
|
{
|
btnNewWindStatu.Text = bindName;
|
}
|
});
|
};
|
|
};
|
}
|
#endregion
|
|
#region ■ 温度来源_________________________
|
/// <summary>
|
/// 温度来源行
|
/// </summary>
|
private void AddTemperatureSensorRow()
|
{
|
//温度来源
|
var rowTemPerature = new FrameRowControl(listview.rowSpace / 2);
|
listview.AddChidren(rowTemPerature);
|
rowTemPerature.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.TemperatureSource), 600);
|
//底线
|
rowTemPerature.AddBottomLine();
|
//右箭头
|
rowTemPerature.AddRightArrow();
|
var msg = Language.StringByID(R.MyInternationalizationString.nothing);
|
if (!string.IsNullOrEmpty(bindTemperatureName))
|
{
|
msg = bindTemperatureName;
|
}
|
var btnTemperatureStatu = rowTemPerature.AddMostRightView(msg, 700);
|
rowTemPerature.ButtonClickEvent += (sender, e) =>
|
{
|
this.deviceObj.DeviceEpoint = 1;
|
var paneTargetsBaseFormp = new PaneTargetsBaseForm(this.deviceObj, bindAcDev, DeviceBind.BindInfo.BindType.Temperature);
|
Shared.Phone.UserView.HomePage.Instance.AddChidren(paneTargetsBaseFormp);
|
Shared.Phone.UserView.HomePage.Instance.PageIndex += 1;
|
paneTargetsBaseFormp.Show();
|
paneTargetsBaseFormp.actionTemperatureTarget += (bindName) =>
|
{
|
Application.RunOnMainThread(() =>
|
{
|
if (string.IsNullOrEmpty(bindName))
|
{
|
btnTemperatureStatu.Text = Language.StringByID(R.MyInternationalizationString.nothing);
|
}
|
else
|
{
|
btnTemperatureStatu.Text = bindName;
|
}
|
});
|
};
|
};
|
}
|
#endregion
|
|
#region ■ 湿度来源_________________________
|
/// <summary>
|
/// 湿度来源行
|
/// </summary>
|
private void AddHumiditySourceRow()
|
{
|
//湿度
|
var rowHumidity = new FrameRowControl(listview.rowSpace / 2);
|
listview.AddChidren(rowHumidity);
|
rowHumidity.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.HumiditySource), 600);
|
//底线
|
rowHumidity.AddBottomLine();
|
//右箭头
|
rowHumidity.AddRightArrow();
|
var msg = Language.StringByID(R.MyInternationalizationString.nothing);
|
if (!string.IsNullOrEmpty(bindHumidityName))
|
{
|
msg = bindHumidityName;
|
}
|
var btnHumidityStatu = rowHumidity.AddMostRightView(msg, 700);
|
rowHumidity.ButtonClickEvent += (sender, e) =>
|
{
|
this.deviceObj.DeviceEpoint = 1;
|
var paneTargetsBaseFormp = new PaneTargetsBaseForm(this.deviceObj, bindAcDev, DeviceBind.BindInfo.BindType.Humidity);
|
Shared.Phone.UserView.HomePage.Instance.AddChidren(paneTargetsBaseFormp);
|
Shared.Phone.UserView.HomePage.Instance.PageIndex += 1;
|
paneTargetsBaseFormp.Show();
|
paneTargetsBaseFormp.actionHumidityTarget += (bindName) =>
|
{
|
Application.RunOnMainThread(() =>
|
{
|
if (string.IsNullOrEmpty(bindName))
|
{
|
btnHumidityStatu.Text = Language.StringByID(R.MyInternationalizationString.nothing);
|
}
|
else
|
{
|
btnHumidityStatu.Text = bindName;
|
}
|
});
|
};
|
};
|
}
|
#endregion
|
|
#region ■ 亮度调节_________________________
|
/// <summary>
|
/// 亮度调节行
|
/// </summary>
|
private void AddLevelRow()
|
{
|
//亮度调节
|
var rowLight = new FrameRowControl(listview.rowSpace / 2);
|
listview.AddChidren(rowLight);
|
rowLight.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.uLightRegulation), 600);
|
//底线
|
rowLight.AddBottomLine();
|
//右箭头
|
rowLight.AddRightArrow();
|
rowLight.ButtonClickEvent += (sender, e) =>
|
{
|
var form = new PanelBrightnessAdjustForm();
|
form.AddForm(this.deviceObj);
|
};
|
}
|
#endregion
|
|
#region ■ 右上角菜单_________________________
|
/// <summary>
|
/// 初始化右上角菜单
|
/// </summary>
|
private void InitTopRightMenu()
|
{
|
//检测此回路是否拥有定位功能
|
if (HdlDeviceCommonLogic.Current.DeviceIsCanFixedPosition(deviceObj) == false)
|
{
|
return;
|
}
|
var btnIcon = new MostRightIconControl(69, 69);
|
btnIcon.UnSelectedImagePath = "Item/More.png";
|
topFrameLayout.AddChidren(btnIcon);
|
btnIcon.InitControl();
|
btnIcon.ButtonClickEvent += ((sender, e) =>
|
{
|
//显示右上角菜单界面
|
this.ShowTopRightMenu();
|
});
|
}
|
|
/// <summary>
|
/// 显示右上角菜单界面
|
/// </summary>
|
private void ShowTopRightMenu()
|
{
|
var frame = new TopRightMenuControl(1, 1);
|
//定位
|
string deviceMenu = Language.StringByID(R.MyInternationalizationString.uFixedPosition);
|
frame.AddRowMenu(deviceMenu, "Item/FixedPosition.png", "Item/FixedPositionSelected.png", () =>
|
{
|
//发送定位功能
|
HdlDeviceCommonLogic.Current.SetFixedPositionCommand(deviceObj);
|
});
|
}
|
|
#endregion
|
}
|
}
|