using System;
using System.Collections.Generic;
using System.Text;
using System.Threading.Tasks;
using ZigBee.Device;
namespace Shared.Phone.UserCenter.DevicePirSensor
{
///
/// pir传感器的工作模式的菜单界面
///
public class PirSensorWorkModeMenuForm : EditorCommonForm
{
#region ■ 变量声明___________________________
///
/// pir传感器对象
///
private IASZone iASZone = null;
///
/// 传感器的配置信息
///
private IASZone.ConfigureParamates pirConfigure = null;
///
/// 数据是否更改
///
private bool isDataChanged = false;
#endregion
#region ■ 初始化_____________________________
///
/// 画面显示(底层会固定调用此方法,借以完成画面创建)
///
/// pir传感器
public void ShowForm(IASZone i_iASZone)
{
this.iASZone = i_iASZone;
//设置头部信息
base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uWorkMode));
HdlThreadLogic.Current.RunThread(() =>
{
//获取初始数据
var result = this.GetDeviceAllDefultData();
if (result == false)
{
return;
}
HdlThreadLogic.Current.RunMain(() =>
{
//初始化中部信息
this.InitMiddleFrame();
});
});
}
///
/// 初始化中部信息
///
private void InitMiddleFrame()
{
var frameBack = new FrameLayout();
frameBack.Height = Application.GetRealHeight(11);
frameBack.BackgroundColor = UserCenterColor.Current.White;
bodyFrameLayout.AddChidren(frameBack);
var listView = new VerticalListControl(12);
listView.Height = Application.GetRealHeight(700);
listView.Y = frameBack.Bottom;
listView.BackgroundColor = UserCenterColor.Current.White;
bodyFrameLayout.AddChidren(listView);
//添加控制模式行
this.AddControlModeRow(listView);
//添加触发模式行
this.AddTriggerModeRow(listView);
//添加上报间隔行
this.AddReportTimeSpaceRow(listView);
//调整高度
listView.AdjustRealHeight(Application.GetRealHeight(23));
//保存
var btnSave = new BottomClickButton();
btnSave.TextID = R.MyInternationalizationString.uSave;
bodyFrameLayout.AddChidren(btnSave);
btnSave.ButtonClickEvent += (sender, e) =>
{
if (this.isDataChanged == false)
{
//数据没有变更过,关闭界面
this.CloseForm();
return;
}
HdlThreadLogic.Current.RunThread(() =>
{
//保存Pir传感器数据
this.SavePirSensorData();
});
};
//查看模板时,不允许编辑
if (Common.Config.Instance.Home.IsShowTemplate == true)
{
btnSave.CanClick = false;
}
}
#endregion
#region ■ 控制模式___________________________
///
/// 添加控制模式行
///
///
private void AddControlModeRow(VerticalListControl listView)
{
var listSelect = new List();
//全自动模式
listSelect.Add(Language.StringByID(R.MyInternationalizationString.uFullAutoMode));
//半自动模式
listSelect.Add(Language.StringByID(R.MyInternationalizationString.uHafeAutoMode));
//控制模式
var row1 = new FrameRowControl(listView.rowSpace / 2);
listView.AddChidren(row1);
var btnCaption1 = row1.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.uControlMode), 400);
btnCaption1.TextSize = 15;
row1.AddRightArrow();
var btnStatu = row1.AddMostRightView(this.pirConfigure.mode == 0 ? listSelect[1] : listSelect[0], 400);
row1.AddBottomLine();
row1.ButtonClickEvent += (sender, e) =>
{
var form = new BottomItemSelectForm();
form.AddForm(btnCaption1.Text, listSelect, null, this.pirConfigure.mode == 0 ? 1 : 0);
form.FinishSelectEvent += (value) =>
{
this.isDataChanged = true;
btnStatu.Text = listSelect[value];
this.pirConfigure.mode = value == 0 ? 1 : 0;
};
};
//查看模板时,不允许编辑
if (Common.Config.Instance.Home.IsShowTemplate == true)
{
row1.CanClick = false;
}
}
#endregion
#region ■ 触发模式___________________________
///
/// 添加触发模式行
///
///
private void AddTriggerModeRow(VerticalListControl listView)
{
var listSelect = new List();
//调光模式
listSelect.Add(Language.StringByID(R.MyInternationalizationString.uDimmingMode));
//开关模式
listSelect.Add(Language.StringByID(R.MyInternationalizationString.uSwitchMode));
//触发模式
var row2 = new FrameRowControl(listView.rowSpace / 2);
listView.AddChidren(row2);
var btnCaption2 = row2.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.uTriggerMode), 400);
btnCaption2.TextSize = 15;
row2.AddRightArrow();
var btnStatu2 = row2.AddMostRightView(this.pirConfigure.type == 0 ? listSelect[0] : listSelect[1], 400);
row2.AddBottomLine();
row2.ButtonClickEvent += (sender, e) =>
{
var form = new BottomItemSelectForm();
form.AddForm(btnCaption2.Text, listSelect, null, this.pirConfigure.type);
form.FinishSelectEvent += (value) =>
{
this.isDataChanged = true;
btnStatu2.Text = listSelect[value];
this.pirConfigure.type = value;
//如果是调光模式,则进入下一个界面
if (value == 0)
{
var form2 = new PirSensorDimmingModeForm();
form2.AddForm(pirConfigure);
}
};
};
//查看模板时,不允许编辑
if (Common.Config.Instance.Home.IsShowTemplate == true)
{
row2.CanClick = false;
}
}
#endregion
#region ■ 上报间隔___________________________
///
/// 添加上报间隔行
///
///
private void AddReportTimeSpaceRow(VerticalListControl listView)
{
var listTime = new List();
var miao = Language.StringByID(R.MyInternationalizationString.uSecond);
for (int i = 10; i <= 300; i += 5)
{
listTime.Add(i + miao);
}
//让它处于5的整倍数
this.pirConfigure.iasReportPeriod = (this.pirConfigure.iasReportPeriod / 5) * 5;
int index = listTime.IndexOf(this.pirConfigure.iasReportPeriod + miao);
//上报间隔
var row3 = new FrameRowControl(listView.rowSpace / 2);
listView.AddChidren(row3);
var btnCaption3 = row3.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.uReportTimeSpace), 400);
btnCaption3.TextSize = 15;
row3.AddRightArrow();
var btnStatu3 = row3.AddMostRightView(this.pirConfigure.iasReportPeriod + miao, 400);
row3.ButtonClickEvent += (sender, e) =>
{
PickerView.Show(listTime, (value) =>
{
this.isDataChanged = true;
btnStatu3.Text = listTime[value];
this.pirConfigure.iasReportPeriod = Convert.ToInt32(listTime[value].Replace(miao, string.Empty));
}, index == -1 ? 0 : index, btnCaption3.Text,
Language.StringByID(R.MyInternationalizationString.uFinish),
Language.StringByID(R.MyInternationalizationString.uCancel));
};
//查看模板时,不允许编辑
if (Common.Config.Instance.Home.IsShowTemplate == true)
{
row3.CanClick = false;
}
}
#endregion
#region ■ 获取初始数据_______________________
///
/// 获取初始数据
///
///
private bool GetDeviceAllDefultData()
{
//打开进度条
this.ShowProgressBar();
//获取PIR传感器的【配置信息】
this.pirConfigure = HdlDevicePirSensorLogic.Current.GetPirSensorLightSettion(this.iASZone);
if (pirConfigure == null)
{
//关闭进度条
this.CloseProgressBar(ShowReLoadMode.YES);
return false;
}
//关闭进度条
this.CloseProgressBar();
return true;
}
#endregion
#region ■ 数据保存___________________________
///
/// 保存Pir传感器数据
///
private void SavePirSensorData()
{
//打开进度条
this.ShowProgressBar();
//保存配置信息
var result = HdlDevicePirSensorLogic.Current.SetPirSensorSettion(this.iASZone, this.pirConfigure);
//关闭进度条
this.CloseProgressBar();
if (result == true)
{
HdlThreadLogic.Current.RunMain(() =>
{
//界面关闭
this.CloseForm();
});
}
}
#endregion
}
}