using System;
using Shared.Common;
using Shared.R;
using Shared;
using ZigBee.Device;
using System.Collections.Generic;
namespace Shared.Phone.Device.Logic
{
public class CurrentDeviceState
{
///
/// 选中该设备功能作为条件或者目标的视图方法
///
/// Common.
public static void CurrentDeviceView(FrameLayout flMain, CommonDevice common, bool edit, string str,int intValue)
{
#region -------界面布局部分
//不让当前界面滑动
UserView.HomePage.Instance.ScrollEnabled = false;
CompleteView completeView = new CompleteView();
flMain.AddChidren(completeView.Show(1));
completeView.Btntitle.Text = LocalDevice.Current.GetDeviceEpointName(common);
EventHandler clickcancel = (sender, e) =>
{
if (!edit)
{
UserView.HomePage.Instance.ScrollEnabled = true;
}
flMain.RemoveFromParent();
};
flMain.MouseUpEventHandler += clickcancel;
completeView.Btncancel.MouseUpEventHandler += clickcancel;
mFunView openView = new mFunView();
openView.frameLayout.Y = Application.GetRealHeight(140 + 20);
//completeView.Show(l).AddChidren(openView.Show());
openView.titleBtn.TextID = MyInternationalizationString.open;
mFunView closeView = new mFunView();
closeView.frameLayout.Y = Application.GetRealHeight(140 + 20+160);
// closeView.frameLayout.Y = openView.frameLayout.Bottom;
//completeView.Show(l).AddChidren(closeView.Show());
closeView.titleBtn.TextID = MyInternationalizationString.close;
mFunView takebackView = new mFunView();
takebackView.frameLayout.Y = Application.GetRealHeight(140+20+160+160);
// takebackView.frameLayout.Y = closeView.frameLayout.Bottom;
//completeView.Show(l).AddChidren(takebackView.Show());
takebackView.titleBtn.TextID = MyInternationalizationString.onoff;
takebackView.lineBtn.BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor;
#region -------进度条控件
var horizontalSeekBarRowLien = new RowLayout
{
//Y = openView.frameLayout.Bottom,
Width = Application.GetRealWidth(915),
Height = Application.GetRealHeight(160),
X = Application.GetRealWidth(80),
LineColor = ZigbeeColor.Current.LogicRowLayoutLineColor,
};
var horizontalSeekBarVol = new DiyImageSeekBar
{
//Y = openView.frameLayout.Bottom,//进度条父控件Y坐标
X = Application.GetRealWidth(80),//进度条X坐标
Width = Application.GetRealWidth(915),//进度条的长度
Height = Application.GetRealHeight(160),//进度条父控件高度
IsProgressTextShow = true,//显示百分比
IsClickable = false,//进度条是否滑动
ProgressBarColor = ZigbeeColor.Current.LogicProgressColorSelected,//选中进度条颜色
ThumbImagePath = "ZigeeLogic/progressbtn2.png",//进度条按钮图标
ThumbImageHeight = Application.GetRealHeight(56),//进度条按钮图标的高度(默认正方形:宽和高一样)
ProgressTextColor = ZigbeeColor.Current.LogicBtnCancelColor,
ProgressTextSize = 9,//显示百分比字体大小12
SeekBarViewHeight = Application.GetRealHeight(5),//进度条的高度10
};
#endregion
#endregion
#region -------数据处理部分
#region -------条件
Dictionary deviceConditionsInfo = new Dictionary();
Send.dictionary(deviceConditionsInfo, "Type", "1");
Send.dictionary(deviceConditionsInfo, "IsValid", "1");
Send.dictionary(deviceConditionsInfo, "MacAddr", common.DeviceAddr);
Send.dictionary(deviceConditionsInfo, "Epoint", common.DeviceEpoint.ToString());
Dictionary devices = null;
#endregion
#region -------目标
Dictionary actionsInfo = new Dictionary();
List> taskListInfo = new List>();
actionsInfo.Add("LinkType", 0);
actionsInfo.Add("DeviceAddr", common.DeviceAddr);
actionsInfo.Add("Epoint", common.DeviceEpoint);
actionsInfo.Add("Time", 0);
actionsInfo.Add("TaskList", taskListInfo);
List> TaskList = null;
#endregion
var _if=str.Split('_');
if (edit)
{
if (_if[0]== "condition")
{
var deviceinfo = Common.Logic.CurrentLogic.Conditions[intValue];
if (deviceinfo["Type"] == "1")
{
if (common.DeviceAddr == deviceinfo["MacAddr"] && common.DeviceEpoint.ToString() == deviceinfo["Epoint"])
{
devices = deviceinfo;
}
}
//foreach (var deviceinfo in Common.Logic.CurrentLogic.Conditions)
//{
// if (deviceinfo["Type"] == "1")
// {
// if (common.DeviceAddr == deviceinfo["MacAddr"] && common.DeviceEpoint.ToString() == deviceinfo["Epoint"])
// {
// devices = deviceinfo;
// break;
// }
// }
//}
}
else
{
var deviceinfo = Common.Logic.CurrentLogic.Actions[intValue];
if (deviceinfo["LinkType"].ToString() == "0")
{
if (deviceinfo["DeviceAddr"].ToString() == common.DeviceAddr && deviceinfo["Epoint"].ToString() == common.DeviceEpoint.ToString())
{
TaskList = deviceinfo["TaskList"] as List>;
}
}
//foreach (var deviceinfo in Common.Logic.CurrentLogic.Actions)
//{
// if (deviceinfo["LinkType"].ToString() == "0")
// {
// if (deviceinfo["DeviceAddr"].ToString() == common.DeviceAddr && deviceinfo["Epoint"].ToString() == common.DeviceEpoint.ToString())
// {
// TaskList = deviceinfo["TaskList"] as List>;
// break;
// }
// }
//}
}
}
#endregion
int l = 0;
string SelectedDeviceStatus = "";
switch (common.Type)
{
///灯光
case DeviceType.OnOffOutput:
{
if (_if[0] == "condition")
{
l = 2;
Send.dictionary(deviceConditionsInfo, "Cluster_ID", "6");
Send.dictionary(deviceConditionsInfo, "AttriButeId", "0");
Send.dictionary(deviceConditionsInfo, "Range", "1");
Send.dictionary(deviceConditionsInfo, "AttriButeData2", "0");
#region 灯光View
completeView.Show(l).AddChidren(openView.Show());
completeView.Show(l).AddChidren(closeView.Show());
closeView.lineBtn.BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor;
#endregion
///点击确认事件
openView.clickviewBtn.MouseUpEventHandler += (sender, e) =>
{
openView.selectedIconBtn.Visible = true;
closeView.selectedIconBtn.Visible = false;
openView.titleBtn.TextColor = ZigbeeColor.Current.LogicBtnSelectedColor;
closeView.titleBtn.TextColor = ZigbeeColor.Current.LogicBtnNotSelectedColor;
SelectedDeviceStatus = "OnOffOutput";
Send.dictionary(deviceConditionsInfo, "AttriButeData1", "1");//默认值
};
///点击取消事件
closeView.clickviewBtn.MouseUpEventHandler += (sender, e) =>
{
openView.selectedIconBtn.Visible = false;
closeView.selectedIconBtn.Visible = true;
openView.titleBtn.TextColor = ZigbeeColor.Current.LogicBtnNotSelectedColor;
closeView.titleBtn.TextColor = ZigbeeColor.Current.LogicBtnSelectedColor;
SelectedDeviceStatus = "OnOffOutput";
Send.dictionary(deviceConditionsInfo, "AttriButeData1", "0");//默认值
};
if (edit && devices != null)
{
if (devices["AttriButeId"] == "0")
{
if (devices["AttriButeData1"] == "1")
{
openView.selectedIconBtn.Visible = true;
closeView.selectedIconBtn.Visible = false;
openView.titleBtn.TextColor = ZigbeeColor.Current.LogicBtnSelectedColor;
closeView.titleBtn.TextColor = ZigbeeColor.Current.LogicBtnNotSelectedColor;
}
else
{
openView.selectedIconBtn.Visible = false;
closeView.selectedIconBtn.Visible = true;
openView.titleBtn.TextColor = ZigbeeColor.Current.LogicBtnNotSelectedColor;
closeView.titleBtn.TextColor = ZigbeeColor.Current.LogicBtnSelectedColor;
}
}
}
}
else
{
l = 3;
#region ----初始化设备功能数据----
Dictionary switchdictionary = new Dictionary();
Send.dictionary(switchdictionary, "TaskType", "1");
Send.dictionary(switchdictionary, "Data1", "0");
Send.dictionary(switchdictionary, "Data2", "0");
taskListInfo.Add(switchdictionary);
#endregion
#region 灯光View
completeView.Show(l).AddChidren(openView.Show());
completeView.Show(l).AddChidren(closeView.Show());
//closeView.frameLayout.Y = openView.frameLayout.Bottom;
completeView.Show(l).AddChidren(takebackView.Show());
//takebackView.frameLayout.Y = closeView.frameLayout.Bottom;
takebackView.lineBtn.BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor;
#endregion
///确认事件
openView.clickviewBtn.MouseUpEventHandler += (sender, e) =>
{
SelectedDeviceStatus = "yes";
openView.selectedIconBtn.Visible = true;
closeView.selectedIconBtn.Visible = false;
takebackView.selectedIconBtn.Visible = false;
Send.dictionary(switchdictionary, "Data1", "1");//默认值
};
///取消事件
closeView.clickviewBtn.MouseUpEventHandler += (sender, e) =>
{
SelectedDeviceStatus = "yes";
openView.selectedIconBtn.Visible = false;
closeView.selectedIconBtn.Visible = true;
takebackView.selectedIconBtn.Visible = false;
Send.dictionary(switchdictionary, "Data1", "0");//默认值
};
//取反
takebackView.clickviewBtn.MouseUpEventHandler += (sender, e) =>
{
SelectedDeviceStatus = "yes";
openView.selectedIconBtn.Visible = false;
closeView.selectedIconBtn.Visible = false;
takebackView.selectedIconBtn.Visible = true;
Send.dictionary(switchdictionary, "Data1", "2");//默认值
};
if (edit && TaskList != null)
{
foreach (var value in TaskList)
{
if (value["TaskType"] == "1")
{
var data1 = value["Data1"];
Send.dictionary(switchdictionary, "Data1", data1);
openView.selectedIconBtn.Visible = false;
closeView.selectedIconBtn.Visible = false;
takebackView.selectedIconBtn.Visible = false;
switch (data1)
{
case "1":
{
openView.selectedIconBtn.Visible = true;
}
break;
case "0":
{
closeView.selectedIconBtn.Visible = true;
}
break;
case "2":
{
takebackView.selectedIconBtn.Visible = true;
}
break;
}
}
}
}
}
}
break;
case DeviceType.IASZone:
{
var iASZonedevice = common as IASZone;
if (iASZonedevice.DeviceID != 1026)
{
break;
}
Send.dictionary(deviceConditionsInfo, "Cluster_ID", "1280");
Send.dictionary(deviceConditionsInfo, "AttriButeId", "1281");
Send.dictionary(deviceConditionsInfo, "AttriButeData2", "0");
int timeValue = 0;
///点击确认事件
openView.clickviewBtn.MouseUpEventHandler += (sender, e) =>
{
SelectedDeviceStatus = "IASZone";
openView.titleBtn.TextColor = ZigbeeColor.Current.LogicBtnSelectedColor;
closeView.titleBtn.TextColor = ZigbeeColor.Current.LogicBtnNotSelectedColor;
openView.selectedIconBtn.Visible = true;
closeView.selectedIconBtn.Visible = false;
if (iASZonedevice.IasDeviceType == 13||iASZonedevice.IasDeviceType == 541)
{
closeView.selectedIconBtn.Visible = true;
}
Send.dictionary(deviceConditionsInfo, "Range", "5");
Send.dictionary(deviceConditionsInfo, "AttriButeData1", "1");
};
///点击取消事件
closeView.clickviewBtn.MouseUpEventHandler += (sender, e) =>
{
SelectedDeviceStatus = "IASZone";
openView.titleBtn.TextColor = ZigbeeColor.Current.LogicBtnNotSelectedColor;
closeView.titleBtn.TextColor = ZigbeeColor.Current.LogicBtnSelectedColor;
openView.selectedIconBtn.Visible = false;
closeView.selectedIconBtn.Visible = true;
Send.dictionary(deviceConditionsInfo, "Range", "1");
Send.dictionary(deviceConditionsInfo, "AttriButeData1", "0");
if (iASZonedevice.IasDeviceType == 13|| iASZonedevice.IasDeviceType == 541)
{
SelectedDeviceStatus = "";
closeView.titleBtn.TextColor = ZigbeeColor.Current.LogicBtnNotSelectedColor;
var ignoreTime = new IgnoreTime();
UserView.HomePage.Instance.AddChidren(ignoreTime);
UserView.HomePage.Instance.PageIndex += 1;
ignoreTime.Show(common, closeView.titleBtn.Text, edit, timeValue, _if[1]);
}
};
switch (iASZonedevice.IasDeviceType)
{
case 13:
{
openView.titleBtn.TextID = MyInternationalizationString.someone;
closeView.titleBtn.TextID = MyInternationalizationString.unattendedtime1;
closeView.lineBtn.BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor;
closeView.selectedIconBtn.UnSelectedImagePath = "ZigeeLogic/next.png";
closeView.selectedIconBtn.Visible = true;
completeView.Show(2).AddChidren(openView.Show());
completeView.Show(2).AddChidren(closeView.Show());
}
break;
case 21:
case 22:
{
#region
var view = completeView.Show(3);
openView.titleBtn.TextID = MyInternationalizationString.logicopen;
closeView.titleBtn.TextID = MyInternationalizationString.logicclose;
view.AddChidren(openView.Show());
view.AddChidren(closeView.Show());
takebackView.lineBtn.BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor;
takebackView.selectedIconBtn.Visible = true;
takebackView.titleBtn.TextID = MyInternationalizationString.closetimeout;
takebackView.selectedIconBtn.UnSelectedImagePath = "ZigeeLogic/next.png";
view.AddChidren(takebackView.Show());
takebackView.clickviewBtn.MouseUpEventHandler += (sender, e) =>
{
SelectedDeviceStatus = "";
openView.titleBtn.TextColor = ZigbeeColor.Current.LogicBtnNotSelectedColor;
closeView.titleBtn.TextColor = ZigbeeColor.Current.LogicBtnNotSelectedColor;
openView.selectedIconBtn.Visible = false;
closeView.selectedIconBtn.Visible = false;
var ignoreTime = new IgnoreTime();
UserView.HomePage.Instance.AddChidren(ignoreTime);
UserView.HomePage.Instance.PageIndex += 1;
ignoreTime.Show(common, takebackView.titleBtn.Text, edit, timeValue, _if[1]);
};
#endregion
}
break;
case 40:
{
openView.titleBtn.TextID = MyInternationalizationString.smokescreen;
openView.lineBtn.BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor;
completeView.Show(1).AddChidren(openView.Show());
}
break;
case 42:
{
openView.titleBtn.TextID = MyInternationalizationString.waterleakage;
closeView.titleBtn.TextID = MyInternationalizationString.noleakage;
closeView.lineBtn.BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor;
completeView.Show(2).AddChidren(openView.Show());
completeView.Show(2).AddChidren(closeView.Show());
}
break;
case 43:
{//召元说的
openView.titleBtn.TextID = MyInternationalizationString.gas;
openView.lineBtn.BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor;
completeView.Show(1).AddChidren(openView.Show());
}
break;
case 44:
{
openView.titleBtn.TextID = MyInternationalizationString.emergencybutton;
openView.lineBtn.BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor;
completeView.Show(1).AddChidren(openView.Show());
}
break;
case 277:
{
openView.titleBtn.TextID = MyInternationalizationString.callthepolice;
openView.lineBtn.BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor;
completeView.Show(1).AddChidren(openView.Show());
}
break;
case 541:
{
int _height = 3;
if (edit)
{
_height = 2;
}
var view = completeView.Show(_height);
openView.titleBtn.TextID = MyInternationalizationString.someone;
closeView.titleBtn.TextID = MyInternationalizationString.unattendedtime1;
closeView.selectedIconBtn.UnSelectedImagePath = "ZigeeLogic/next.png";
closeView.selectedIconBtn.Visible = true;
view.AddChidren(openView.Show());
view.AddChidren(closeView.Show());
takebackView.lineBtn.BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor;
takebackView.selectedIconBtn.Visible = true;
takebackView.titleBtn.TextID = MyInternationalizationString.ambientLight;
takebackView.selectedIconBtn.UnSelectedImagePath = "ZigeeLogic/next.png";
if (edit)
{
if (devices["Cluster_ID"] == "1024")
{
flMain.RemoveFromParent();
var illumination = new Illumination();
UserView.HomePage.Instance.AddChidren(illumination);
UserView.HomePage.Instance.PageIndex += 1;
illumination.Show(common, takebackView.titleBtn.Text, int.Parse(devices["AttriButeData1"]), true);
}
else
{
closeView.lineBtn.BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor;
}
}
else
{
view.AddChidren(takebackView.Show());
}
takebackView.clickviewBtn.MouseUpEventHandler += (sender, e) =>
{
SelectedDeviceStatus = "";
openView.titleBtn.TextColor = ZigbeeColor.Current.LogicBtnNotSelectedColor;
openView.selectedIconBtn.Visible = false;
var illumination = new Illumination();
UserView.HomePage.Instance.AddChidren(illumination);
UserView.HomePage.Instance.PageIndex += 1;
illumination.Show(common,takebackView.titleBtn.Text, 0, false);
};
}
break;
default:
{
openView.titleBtn.TextID = MyInternationalizationString.callthepolice;
openView.lineBtn.BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor;
completeView.Show(1).AddChidren(openView.Show());
}
break;
}
if (edit && devices != null)
{
if (devices["AttriButeId"] == "1281")
{
if (devices.ContainsKey("IgnoreTime"))
{
timeValue = int.Parse(devices["IgnoreTime"]);
}
else
{
if (devices["AttriButeData1"] == "1")
{
openView.titleBtn.TextColor = ZigbeeColor.Current.LogicBtnSelectedColor;
closeView.titleBtn.TextColor = ZigbeeColor.Current.LogicBtnNotSelectedColor;
openView.selectedIconBtn.Visible = true;
closeView.selectedIconBtn.Visible = false;
}
else
{
openView.titleBtn.TextColor = ZigbeeColor.Current.LogicBtnNotSelectedColor;
closeView.titleBtn.TextColor = ZigbeeColor.Current.LogicBtnSelectedColor;
openView.selectedIconBtn.Visible = false;
closeView.selectedIconBtn.Visible = true;
}
}
}
}
}
break;
case DeviceType.OnOffSwitch:
{
l = 1;
Send.dictionary(deviceConditionsInfo, "Cluster_ID", "1282");
Send.dictionary(deviceConditionsInfo, "AttriButeId", "1283");
Send.dictionary(deviceConditionsInfo, "Range", "0");//按键特殊
Send.dictionary(deviceConditionsInfo, "AttriButeData1", "0");
Send.dictionary(deviceConditionsInfo, "AttriButeData2", "0");
completeView.Show(l).AddChidren(openView.Show());
openView.titleBtn.Text = Language.StringByID(MyInternationalizationString.OnOffSwitch) + common.DeviceEpoint.ToString();
openView.lineBtn.BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor;
openView.clickviewBtn.MouseUpEventHandler += (sender, e) =>
{
SelectedDeviceStatus = "OnOffSwitch";
openView.selectedIconBtn.Visible = true;
openView.titleBtn.TextColor = ZigbeeColor.Current.LogicBtnSelectedColor;
};
if (edit && devices != null)
{
openView.selectedIconBtn.Visible = true;
openView.titleBtn.TextColor = ZigbeeColor.Current.LogicBtnSelectedColor;
}
}
break;
case DeviceType.DoorLock:
{
flMain.RemoveFromParent();
var memberList = new MemberList();
UserView.HomePage.Instance.AddChidren(memberList);
UserView.HomePage.Instance.PageIndex += 1;
MemberList.edit = false;
memberList.Show(common);
}
break;
case DeviceType.TemperatureSensor:
{
l = 4;
string current = Language.StringByID(MyInternationalizationString.current);
completeView.Show(l);
var temperatureSensor = common as TemperatureSensor;
SelectedDeviceStatus = "TemperatureSensor";
#region 布局View
var PickerViewfra = new FrameLayout
{
Y = Application.GetRealHeight(140),
Height = Application.GetRealHeight(640),
};
completeView.Show(l).AddChidren(PickerViewfra);
var mUIPickerView = new UIPickerView
{
Height = Application.GetRealHeight(640 - 5),
};
PickerViewfra.AddChidren(mUIPickerView);
var mList1 = new List { ">", "<", "=", "≥", "≤" };
var mList2 = new List();
var mList3 = new List();
for (int i = 1; i <= 100; i++)
{
mList2.Add(i.ToString());
}
if (temperatureSensor.SensorDiv == 1)
{
mList3.Add("℃");
Send.dictionary(deviceConditionsInfo, "Cluster_ID", "1026");
Send.dictionary(deviceConditionsInfo, "AttriButeId", "0");
Send.dictionary(deviceConditionsInfo, "Range", "1");//1:等于AttriButeData1时触发动作
Send.dictionary(deviceConditionsInfo, "AttriButeData1", "5000");//默认温度值50℃
Send.dictionary(deviceConditionsInfo, "AttriButeData2", "0");
}
else
{
mList3.Add("%");
Send.dictionary(deviceConditionsInfo, "Cluster_ID", "1029");
Send.dictionary(deviceConditionsInfo, "AttriButeId", "0");
Send.dictionary(deviceConditionsInfo, "Range", "1");//1:等于AttriButeData1时触发动作
Send.dictionary(deviceConditionsInfo, "AttriButeData1", "5000");//默认湿度值50%
Send.dictionary(deviceConditionsInfo, "AttriButeData2", "0");
}
mUIPickerView.setNPicker(mList1, mList2, mList3);
#endregion
mUIPickerView.OnSelectChangeEvent += (s1, s2, s3) =>
{
///温度进率转换*100
var strValue = (int.Parse(mList2[s2]) * 100).ToString();
SelectedDeviceStatus = "TemperatureSensor";
Send.dictionary(deviceConditionsInfo, "AttriButeData1", strValue);
switch (mList1[s1])
{
case ">":
{
Send.dictionary(deviceConditionsInfo, "Range", "0");
}
break;
case "<":
{
Send.dictionary(deviceConditionsInfo, "Range", "2");
}
break;
case "=":
{
Send.dictionary(deviceConditionsInfo, "Range", "1");
}
break;
case "≥":
{
Send.dictionary(deviceConditionsInfo, "Range", "6");
}
break;
case "≤":
{
Send.dictionary(deviceConditionsInfo, "Range", "7");
}
break;
}
};
//默认=,50
int index1 = 2, index2 = 49;
if (edit && devices != null)
{
SelectedDeviceStatus = "";
string s = "";
switch (devices["Range"])
{
case "0":
{
s = ">";
}
break;
case "1":
{
s = "=";
}
break;
case "2":
{
s = "<";
}
break;
case "6":
{
s = "≥";
}
break;
case "7":
{
s = "≤";
}
break;
}
//查找索引
index1 = mList1.IndexOf(s);
//转换温度值/100
var dd = (int.Parse(devices["AttriButeData1"])/100).ToString();
index2 = mList2.IndexOf(dd);
}
///更新最新状态;
mUIPickerView.setCurrentItems(index1, index2, 0);
}
break;
///调光灯光
case DeviceType.DimmableLight:
{
l = 4;
#region ----初始化设备功能数据----
Dictionary switchdictionary = new Dictionary();
Send.dictionary(switchdictionary, "Data2", "0");
taskListInfo.Add(switchdictionary);
completeView.Show(l).AddChidren(openView.Show());
openView.lineBtn.BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor;
horizontalSeekBarRowLien.Y = openView.frameLayout.Bottom;
horizontalSeekBarVol.Y = openView.frameLayout.Bottom;
completeView.Show(l).AddChidren(horizontalSeekBarRowLien);
completeView.Show(l).AddChidren(horizontalSeekBarVol);
closeView.frameLayout.Y = horizontalSeekBarRowLien.Bottom;
completeView.Show(l).AddChidren(closeView.Show());
takebackView.frameLayout.Y = closeView.frameLayout.Bottom;
completeView.Show(l).AddChidren(takebackView.Show());
takebackView.lineBtn.BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor;
#endregion
int Progressvalue = 100;
EventHandler progressclick = (sender, e) =>
{
SelectedDeviceStatus = "yes";
Progressvalue = horizontalSeekBarVol.Progress;
Send.dictionary(switchdictionary, "TaskType", "3");
//最大亮度值是254需要转换;
var lightbrightnessvalue = (254 * horizontalSeekBarVol.Progress) / 100;
Send.dictionary(switchdictionary, "Data1", lightbrightnessvalue.ToString());
};
horizontalSeekBarVol.OnProgressChangedEvent += progressclick;
horizontalSeekBarVol.OnStopTrackingTouchEvent += progressclick;
///确认事件
openView.clickviewBtn.MouseUpEventHandler += (sender, e) =>
{
SelectedDeviceStatus = "yes";
horizontalSeekBarVol.IsClickable = true;
horizontalSeekBarVol.ProgressBarColor = ZigbeeColor.Current.LogicProgressColorSelected;
openView.selectedIconBtn.Visible = true;
closeView.selectedIconBtn.Visible = false;
takebackView.selectedIconBtn.Visible = false;
horizontalSeekBarVol.Progress = Progressvalue;
Send.dictionary(switchdictionary, "TaskType", "3");
//最大亮度值是254需要转换;
var lightbrightnessvalue = (254 * horizontalSeekBarVol.Progress) / 100;
Send.dictionary(switchdictionary, "Data1", lightbrightnessvalue.ToString());
};
///取消事件
closeView.clickviewBtn.MouseUpEventHandler += (sender, e) =>
{
SelectedDeviceStatus = "yes";
horizontalSeekBarVol.IsClickable = false;
horizontalSeekBarVol.ProgressBarColor = ZigbeeColor.Current.LogicProgressColor;
openView.selectedIconBtn.Visible = false;
closeView.selectedIconBtn.Visible = true;
takebackView.selectedIconBtn.Visible = false;
Send.dictionary(switchdictionary, "TaskType", "1");
Send.dictionary(switchdictionary, "Data1", "0");//默认值
};
//取反
takebackView.clickviewBtn.MouseUpEventHandler += (sender, e) =>
{
SelectedDeviceStatus = "yes";
horizontalSeekBarVol.IsClickable = false;
horizontalSeekBarVol.ProgressBarColor = ZigbeeColor.Current.LogicProgressColor;
openView.selectedIconBtn.Visible = false;
closeView.selectedIconBtn.Visible = false;
takebackView.selectedIconBtn.Visible = true;
Send.dictionary(switchdictionary, "TaskType", "1");
Send.dictionary(switchdictionary, "Data1", "2");//默认值
};
if (edit && TaskList != null)
{
foreach (var value in TaskList)
{
var tasktype = value["TaskType"];
var data1 = value["Data1"];
Send.dictionary(switchdictionary, "TaskType", tasktype);
Send.dictionary(switchdictionary, "Data1", data1);
openView.selectedIconBtn.Visible = false;
closeView.selectedIconBtn.Visible = false;
takebackView.selectedIconBtn.Visible = false;
horizontalSeekBarVol.IsClickable = false;
horizontalSeekBarVol.ProgressBarColor = ZigbeeColor.Current.LogicProgressColor;
if (tasktype == "1")
{
if (data1 == "0")
{
closeView.selectedIconBtn.Visible = true;
}
else if (data1 == "2")
{
takebackView.selectedIconBtn.Visible = true;
}
}
else if (tasktype == "3")
{
openView.selectedIconBtn.Visible = true;
horizontalSeekBarVol.IsClickable = true;
horizontalSeekBarVol.ProgressBarColor = ZigbeeColor.Current.LogicProgressColorSelected;
horizontalSeekBarVol.Progress = int.Parse(data1) * 100 / 254;
Progressvalue = horizontalSeekBarVol.Progress;
}
break;
}
}
}
break;
///窗帘
case DeviceType.WindowCoveringDevice:
{
l = 3;
#region ----初始化设备功能数据----
Dictionary switchdictionary = new Dictionary();
Send.dictionary(switchdictionary, "TaskType", "6");
taskListInfo.Add(switchdictionary);
completeView.Show(l).AddChidren(openView.Show());
openView.lineBtn.BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor;
horizontalSeekBarRowLien.Y = openView.frameLayout.Bottom;
horizontalSeekBarVol.Y = openView.frameLayout.Bottom;
completeView.Show(l).AddChidren(horizontalSeekBarRowLien);
completeView.Show(l).AddChidren(horizontalSeekBarVol);
closeView.frameLayout.Y = horizontalSeekBarRowLien.Bottom;
completeView.Show(l).AddChidren(closeView.Show());
closeView.lineBtn.BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor;
#endregion
int Progressvalue = 100;
EventHandler progressclick = (sender, e) =>
{
SelectedDeviceStatus = "yes";
Progressvalue = horizontalSeekBarVol.Progress;
Send.dictionary(switchdictionary, "Data1", "5");
Send.dictionary(switchdictionary, "Data2", horizontalSeekBarVol.Progress.ToString());
};
horizontalSeekBarVol.OnProgressChangedEvent += progressclick;
horizontalSeekBarVol.OnStopTrackingTouchEvent += progressclick;
///确认事件
openView.clickviewBtn.MouseUpEventHandler += (sender, e) =>
{
SelectedDeviceStatus = "yes";
horizontalSeekBarVol.IsClickable = true;
horizontalSeekBarVol.ProgressBarColor = ZigbeeColor.Current.LogicProgressColorSelected;
openView.selectedIconBtn.Visible = true;
closeView.selectedIconBtn.Visible = false;
horizontalSeekBarVol.Progress = Progressvalue;
Send.dictionary(switchdictionary, "Data1", "5");
Send.dictionary(switchdictionary, "Data2", horizontalSeekBarVol.Progress.ToString());
};
///取消事件
closeView.clickviewBtn.MouseUpEventHandler += (sender, e) =>
{
SelectedDeviceStatus = "yes";
horizontalSeekBarVol.IsClickable = false;
horizontalSeekBarVol.ProgressBarColor = ZigbeeColor.Current.LogicProgressColor;
openView.selectedIconBtn.Visible = false;
closeView.selectedIconBtn.Visible = true;
Send.dictionary(switchdictionary, "Data2", "0");
Send.dictionary(switchdictionary, "Data1", "1");//默认值
};
if (edit && TaskList != null)
{
foreach (var value in TaskList)
{
if (value["TaskType"] == "6")
{
if (value["Data1"] == "5")
{
Send.dictionary(switchdictionary, "Data1", "5");
Send.dictionary(switchdictionary, "Data2", value["Data2"]);
horizontalSeekBarVol.IsClickable = true;
horizontalSeekBarVol.ProgressBarColor = ZigbeeColor.Current.LogicProgressColorSelected;
openView.selectedIconBtn.Visible = true;
closeView.selectedIconBtn.Visible = false;
horizontalSeekBarVol.Progress = int.Parse(value["Data2"]);
Progressvalue = horizontalSeekBarVol.Progress;
}
else if (value["Data1"] == "1")
{
Send.dictionary(switchdictionary, "Data1", "1");
openView.selectedIconBtn.Visible = false;
closeView.selectedIconBtn.Visible = true;
horizontalSeekBarVol.IsClickable = false;
horizontalSeekBarVol.ProgressBarColor = ZigbeeColor.Current.LogicProgressColor;
}
}
}
}
}
break;
///空气开关
case DeviceType.AirSwitch:
{
{
l = 3;
#region ----初始化设备功能数据----
Dictionary switchdictionary = new Dictionary();
Send.dictionary(switchdictionary, "TaskType", "1");
Send.dictionary(switchdictionary, "Data1", "0");
Send.dictionary(switchdictionary, "Data2", "0");
taskListInfo.Add(switchdictionary);
#endregion
#region 空气灯光View
completeView.Show(l).AddChidren(openView.Show());
completeView.Show(l).AddChidren(closeView.Show());
completeView.Show(l).AddChidren(takebackView.Show());
takebackView.lineBtn.BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor;
#endregion
///确认事件
openView.clickviewBtn.MouseUpEventHandler += (sender, e) =>
{
SelectedDeviceStatus = "yes";
openView.selectedIconBtn.Visible = true;
closeView.selectedIconBtn.Visible = false;
takebackView.selectedIconBtn.Visible = false;
Send.dictionary(switchdictionary, "Data1", "1");
};
///取消事件
closeView.clickviewBtn.MouseUpEventHandler += (sender, e) =>
{
SelectedDeviceStatus = "yes";
openView.selectedIconBtn.Visible = false;
closeView.selectedIconBtn.Visible = true;
takebackView.selectedIconBtn.Visible = false;
Send.dictionary(switchdictionary, "Data1", "0");
};
//取反
takebackView.clickviewBtn.MouseUpEventHandler += (sender, e) =>
{
SelectedDeviceStatus = "yes";
openView.selectedIconBtn.Visible = false;
closeView.selectedIconBtn.Visible = false;
takebackView.selectedIconBtn.Visible = true;
Send.dictionary(switchdictionary, "Data1", "2");
};
if (edit && TaskList != null)
{
foreach (var value in TaskList)
{
if (value["TaskType"] == "1")
{
var data1 = value["Data1"];
Send.dictionary(switchdictionary, "Data1", data1);
openView.selectedIconBtn.Visible = false;
closeView.selectedIconBtn.Visible = false;
takebackView.selectedIconBtn.Visible = false;
if (data1 == "1")
{
openView.selectedIconBtn.Visible = true;
}
else if (data1 == "0")
{
closeView.selectedIconBtn.Visible = true;
}
else if (data1 == "2")
{
takebackView.selectedIconBtn.Visible = true;
}
break;
}
}
}
}
}
break;
///空调
case DeviceType.Thermostat:
{
l = 6;
#region ----初始化设备功能数据----
var temperaturedictionary = new Dictionary();
var modedictionary = new Dictionary();
var speeddictionary = new Dictionary();
Send.dictionary(temperaturedictionary, "TaskType", "5");
Send.dictionary(modedictionary, "TaskType", "5");
Send.dictionary(modedictionary, "Data1", "3");
Send.dictionary(speeddictionary, "TaskType", "5");
Send.dictionary(speeddictionary, "Data1", "6");
taskListInfo.Add(temperaturedictionary);
taskListInfo.Add(modedictionary);
taskListInfo.Add(speeddictionary);
#endregion
#region 空调View
completeView.Show(l).AddChidren(openView.Show());
#region 空调状态View
var PickerViewfra = new FrameLayout
{
Y = openView.frameLayout.Bottom,
Height = Application.GetRealHeight(640),
};
completeView.Show(l).AddChidren(PickerViewfra);
//遮挡空调滑动view;
var pausePickerViewfra = new FrameLayout
{
Y = openView.frameLayout.Bottom,
Height = Application.GetRealHeight(640),
BackgroundColor = 0x60ffffff,
};
completeView.Show(l).AddChidren(pausePickerViewfra);
var mUIPickerView = new UIPickerView
{
Height = Application.GetRealHeight(640 - 5),
};
PickerViewfra.AddChidren(mUIPickerView);
var line = new Button
{
Y = Application.GetRealHeight(640 - 5),
Width = Application.GetRealWidth(920),
Height = Application.GetRealHeight(5),
X = Application.GetRealWidth(80),
BackgroundColor = ZigbeeColor.Current.LogicRowLayoutLineColor,
};
PickerViewfra.AddChidren(line);
var mList1 = new List();
var mList2 = new List {
Language.StringByID(MyInternationalizationString.logiccool),
Language.StringByID(MyInternationalizationString.logicheat),
Language.StringByID(MyInternationalizationString.logicauto),
Language.StringByID(MyInternationalizationString.logicdry),
Language.StringByID(MyInternationalizationString.logicfanonly),
};
var mList3 = new List{
Language.StringByID(MyInternationalizationString.logiclow),
Language.StringByID(MyInternationalizationString.logicmedium),
Language.StringByID(MyInternationalizationString.logichigh),
};
for (int i = 16; i < 33; i++)
{
mList1.Add(i.ToString() + " " + "℃");
}
mUIPickerView.setNPicker(mList1, mList2, mList3);
///默认状态
#endregion
closeView.frameLayout.Y = PickerViewfra.Bottom;
completeView.Show(l).AddChidren(closeView.Show());
closeView.lineBtn.BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor;
//默认26,自动,中风
int indextemperature = 10, indexmode = 2, indexspeed = 1;
mUIPickerView.OnSelectChangeEvent += (s1, s2, s3) =>
{
indextemperature = s1;
indexmode = s2;
indexspeed = s3;
if (openView.selectedIconBtn.Visible)
{
SelectedDeviceStatus = "yes";
var temperature = mList1[s1].Split(' ')[0];
var modestring = mList2[s2].Split(' ')[0];
var speedstring = mList3[s3].Split(' ')[0];
ModeState(modestring, temperaturedictionary, modedictionary);
var a = int.Parse(temperature) * 100;
Send.dictionary(temperaturedictionary, "Data2", a.ToString());
SpeedState(speedstring, speeddictionary);
}
};
mUIPickerView.setTextColorCenter(ZigbeeColor.Current.LogicBtnCancelColor, 0);
mUIPickerView.setTextColorCenter(ZigbeeColor.Current.LogicBtnCancelColor, 1);
mUIPickerView.setTextColorCenter(ZigbeeColor.Current.LogicBtnCancelColor, 2);
#endregion
if (edit && TaskList != null)
{
foreach (var value in TaskList)
{
if (TaskList.Count == 1)
{
mUIPickerView.setTextColorCenter(ZigbeeColor.Current.LogicBtnCancelColor, 0);
mUIPickerView.setTextColorCenter(ZigbeeColor.Current.LogicBtnCancelColor, 1);
mUIPickerView.setTextColorCenter(ZigbeeColor.Current.LogicBtnCancelColor, 2);
//数组只有一个元素说明当前空调状态为关;
openView.selectedIconBtn.Visible = false;
closeView.selectedIconBtn.Visible = true;
pausePickerViewfra.Height = Application.GetRealHeight(600);
//如果空调状态是关;直接跳出for循坏;
break;
}
else
{
openView.selectedIconBtn.Visible = true;
closeView.selectedIconBtn.Visible = false;
pausePickerViewfra.Height = Application.GetRealHeight(0);
mUIPickerView.setTextColorCenter(ZigbeeColor.Current.LogicBtnSelectedColor, 0);
mUIPickerView.setTextColorCenter(ZigbeeColor.Current.LogicBtnSelectedColor, 1);
mUIPickerView.setTextColorCenter(ZigbeeColor.Current.LogicBtnSelectedColor, 2);
}
if (value["TaskType"] == "5")
{
if (value["Data1"] == "3")
{//3---设置工作模式(1:自动;3:制冷;4:制热;7:送风;8:除湿)
Send.dictionary(modedictionary, "Data2", value["Data2"]);
string modetext = "";
switch (value["Data2"])
{
case "3":
{
modetext = Language.StringByID(MyInternationalizationString.logiccool);
//indexmode = 0;
}
break;
case "4":
{
modetext = Language.StringByID(MyInternationalizationString.logicheat);
// indexmode = 1;
}
break;
case "1":
{
modetext = Language.StringByID(MyInternationalizationString.logicauto);
// indexmode = 2;
}
break;
case "8":
{
modetext = Language.StringByID(MyInternationalizationString.logicdry);
// indexmode = 3;
}
break;
case "7":
{
modetext = Language.StringByID(MyInternationalizationString.logicfanonly);
//indexmode = 4;
}
break;
}
indexmode = mList2.IndexOf(modetext);
}
else if (value["Data1"] == "6")
{//6---设置风扇模式(1:低风;2:中风;3:高风;)
Send.dictionary(speeddictionary, "Data2", value["Data2"]);
string speedtext = "";
switch (value["Data2"])
{
case "1":
{
speedtext = Language.StringByID(MyInternationalizationString.logiclow);
//indexspeed = 0;
}
break;
case "2":
{
speedtext = Language.StringByID(MyInternationalizationString.logicmedium);
// indexspeed = 1;
}
break;
case "3":
{
speedtext = Language.StringByID(MyInternationalizationString.logichigh);
// indexspeed = 2;
}
break;
}
indexspeed = mList3.IndexOf(speedtext);
}
//4-设置加热度数;5-设置制冷、除湿度数;7-设置自动度数
else if (value["Data1"] == "4" || value["Data1"] == "5" || value["Data1"] == "7")
{
var s = int.Parse(value["Data2"]) / 100;
indextemperature = mList1.IndexOf(s.ToString() + " " + "℃");
Send.dictionary(temperaturedictionary, "Data1", value["Data1"]);
Send.dictionary(temperaturedictionary, "Data2", value["Data2"]);
}
}
}
}
///更新最新空调状态;
mUIPickerView.setCurrentItems(indextemperature, indexmode, indexspeed);
///确认事件
openView.clickviewBtn.MouseUpEventHandler += (sender, e) =>
{
mUIPickerView.setTextColorCenter(ZigbeeColor.Current.LogicBtnSelectedColor, 0);
mUIPickerView.setTextColorCenter(ZigbeeColor.Current.LogicBtnSelectedColor, 1);
mUIPickerView.setTextColorCenter(ZigbeeColor.Current.LogicBtnSelectedColor, 2);
mUIPickerView.setCurrentItems(indextemperature, indexmode, indexspeed);
pausePickerViewfra.Height = Application.GetRealHeight(0);
SelectedDeviceStatus = "yes";
openView.selectedIconBtn.Visible = true;
closeView.selectedIconBtn.Visible = false;
//清除之前数据;
taskListInfo.Clear();
//加载新数据;
Send.dictionary(temperaturedictionary, "TaskType", "5");
Send.dictionary(modedictionary, "TaskType", "5");
Send.dictionary(modedictionary, "Data1", "3");
Send.dictionary(speeddictionary, "TaskType", "5");
Send.dictionary(speeddictionary, "Data1", "6");
taskListInfo.Add(temperaturedictionary);
taskListInfo.Add(modedictionary);
taskListInfo.Add(speeddictionary);
var temperature = mList1[indextemperature].Split(' ')[0];
var modestring = mList2[indexmode].Split(' ')[0];
var speedstring = mList3[indexspeed].Split(' ')[0];
ModeState(modestring, temperaturedictionary, modedictionary);
var a = int.Parse(temperature) * 100;
Send.dictionary(temperaturedictionary, "Data2", a.ToString());
SpeedState(speedstring, speeddictionary);
};
///取消事件
closeView.clickviewBtn.MouseUpEventHandler += (sender, e) =>
{
mUIPickerView.setTextColorCenter(ZigbeeColor.Current.LogicBtnCancelColor, 0);
mUIPickerView.setTextColorCenter(ZigbeeColor.Current.LogicBtnCancelColor, 1);
mUIPickerView.setTextColorCenter(ZigbeeColor.Current.LogicBtnCancelColor, 2);
mUIPickerView.setCurrentItems(indextemperature, indexmode, indexspeed);
//清除之前数据;
taskListInfo.Clear();
Send.dictionary(modedictionary, "TaskType", "5");
Send.dictionary(modedictionary, "Data1", "3");
Send.dictionary(modedictionary, "Data2", "0");
//加载新数据;
taskListInfo.Add(modedictionary);
pausePickerViewfra.Height = Application.GetRealHeight(600);
SelectedDeviceStatus = "yes";
openView.selectedIconBtn.Visible = false;
closeView.selectedIconBtn.Visible = true;
};
}
break;
case DeviceType.ColorTemperatureLight: {
flMain.RemoveFromParent();
var nightlight = new Nightlight();
UserView.HomePage.Instance.AddChidren(nightlight);
UserView.HomePage.Instance.PageIndex += 1;
if (edit)
{
nightlight.Show(common, edit, _if[1], Common.Logic.CurrentLogic.Actions[intValue]);
}
else
{
nightlight.Show(common, edit, _if[1]);
}
}
break;
}
completeView.Btncomplete.MouseUpEventHandler += (sender, e) =>
{
//UserView.HomePage.Instance.ScrollEnabled = true;
if (SelectedDeviceStatus != "")
{
if (_if[0] == "condition")
{ //添加条件
LogicIfon.AddDeviceconditions(common, deviceConditionsInfo);
}
else
{ //添加目标
if (SelectedDeviceStatus == "DoorLock")
{//门锁数据特殊,进行特殊处理;
LogicIfon.AddDoorLockActions(common, actionsInfo);
}
else
{
LogicIfon.AddDeviceActions(common, actionsInfo);
}
}
}
else
{
if (!edit)
{
var alert = new UserCenter.ShowMsgControl(UserCenter.ShowMsgType.Normal,
Language.StringByID(MyInternationalizationString.selectdevicestatuscondition),
Language.StringByID(MyInternationalizationString.confrim));
alert.Show();
return;
}
}
flMain.RemoveFromParent();
switch (_if[1])
{
case "logic":
{
//自动化
var logicCommunalPage = new LogicCommunalPage();
UserView.HomePage.Instance.AddChidren(logicCommunalPage);
UserView.HomePage.Instance.PageIndex += 1;
logicCommunalPage.Show(() => { });
}
break;
case "mould":
{
//自动化推荐模板
var templatePage = new TemplatePage();
UserView.HomePage.Instance.AddChidren(templatePage);
UserView.HomePage.Instance.PageIndex += 1;
templatePage.Show();
}
break;
case "lockaction":
{
//门锁联动事件
var lockLogicCommunalPage = new DoorLockLogic.LockLogicCommunalPage();
UserView.HomePage.Instance.AddChidren(lockLogicCommunalPage);
UserView.HomePage.Instance.PageIndex += 1;
lockLogicCommunalPage.Show(() => { });
}
break;
}
};
}
///
/// 空调模式的状态
///
///
///
///
public static void ModeState(string modestring, Dictionary temperaturedictionary, Dictionary modedictionary)
{
if (modestring == Language.StringByID(MyInternationalizationString.logiccool))
{
Send.dictionary(modedictionary, "Data2", "3");
Send.dictionary(temperaturedictionary, "Data1", "5");
}
else if (modestring == Language.StringByID(MyInternationalizationString.logicheat))
{
Send.dictionary(modedictionary, "Data2", "4");
Send.dictionary(temperaturedictionary, "Data1", "4");
}
else if (modestring == Language.StringByID(MyInternationalizationString.logicauto))
{
Send.dictionary(modedictionary, "Data2", "1");
Send.dictionary(temperaturedictionary, "Data1", "7");
}
else if (modestring == Language.StringByID(MyInternationalizationString.logicdry))
{
Send.dictionary(modedictionary, "Data2", "8");
Send.dictionary(temperaturedictionary, "Data1", "5");
}
else if (modestring == Language.StringByID(MyInternationalizationString.logicfanonly))
{
Send.dictionary(temperaturedictionary, "Data1", "20");
Send.dictionary(modedictionary, "Data2", "7");
}
}
///
/// 风速的模式
///
///
///
public static void SpeedState(string speedstring, Dictionary speeddictionary)
{
if (speedstring == Language.StringByID(MyInternationalizationString.logiclow))
{
Send.dictionary(speeddictionary, "Data2", "1");
}
else if (speedstring == Language.StringByID(MyInternationalizationString.logicmedium))
{
Send.dictionary(speeddictionary, "Data2", "2");
}
else if (speedstring == Language.StringByID(MyInternationalizationString.logichigh))
{
Send.dictionary(speeddictionary, "Data2", "3");
}
}
}
}