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);
openView.titleBtn.TextID = MyInternationalizationString.open;
mFunView closeView = new mFunView();
closeView.frameLayout.Y = Application.GetRealHeight(140 + 20 + 160);
closeView.titleBtn.TextID = MyInternationalizationString.close;
mFunView takebackView = new mFunView();
takebackView.frameLayout.Y = Application.GetRealHeight(140 + 20 + 160 + 160);
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 = 12,//显示百分比字体大小12
SeekBarViewHeight = Application.GetRealHeight(6),//进度条的高度10
SeekBarPadding = 30,
};
#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;
}
}
}
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>;
}
}
}
}
#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)
{
closeView.selectedIconBtn.Visible = true;
}
Send.dictionary(deviceConditionsInfo, "Range", "5");
Send.dictionary(deviceConditionsInfo, "AttriButeData1", "3");//支持1和2;1+2=3
};
///点击取消事件
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", "8");//1
Send.dictionary(deviceConditionsInfo, "AttriButeData1", "3");//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:
{
if (common.ModelIdentifier == "MSPIRB-ZB.10")
{
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);
};
}
else
{
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;
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") && devices["IgnoreTime"] != "0")
{
timeValue = int.Parse(devices["IgnoreTime"]);
}
else
{
if (devices["Range"] == "5")
{
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 = LocalDevice.Current.GetDeviceEpointName(common);
//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:
{
//获取设备类型
var deviceEnumInfo = Common.LocalDevice.Current.GetMyDeviceEnumInfo(new List() { common });
//空气质量传感器
if (deviceEnumInfo.ConcreteType == Common.DeviceConcreteType.AirQualitySensor)
{
AirSonser(flMain, SelectedDeviceStatus, edit, common, devices);
}
else
{
//编辑时的状态值
string str1 = "";
string str2 = "";
string str3 = "";
if (edit && devices != null)
{
//温度值
str1 = devices["AttriButeData1"];
//比较关系值
str2 = devices["Range"];
}
var temperatureSensor = common as TemperatureSensor;
if (temperatureSensor.SensorDiv == 1)
{
str3 = "℃";
Send.dictionary(deviceConditionsInfo, "Cluster_ID", "1026");
}
else
{
str3 = "%";
Send.dictionary(deviceConditionsInfo, "Cluster_ID", "1029");
}
Send.dictionary(deviceConditionsInfo, "AttriButeId", "0");
Send.dictionary(deviceConditionsInfo, "AttriButeData2", "0");
completeView.Show(4);
PublicInterface publicInterface = new PublicInterface();
publicInterface.TemperatureShow(completeView.fraView, str3, str2, str1, (relationValueStr, tempValueStr) =>
{
SelectedDeviceStatus = "TemperatureSensor";
Send.dictionary(deviceConditionsInfo, "AttriButeData1", tempValueStr);
Send.dictionary(deviceConditionsInfo, "Range", relationValueStr);
});
}
}
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(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");
}
}
///
/// 空气质量传感器View(特殊处理)
///
///
///
///
///
///
private static void AirSonser(FrameLayout flMain,string SelectedDeviceStatus,bool edit,CommonDevice common, Dictionary dic=null) {
flMain.RemoveAll();
if (edit&&dic!=null) {
AirProperty(flMain, dic, common,"", edit, SelectedDeviceStatus);
}
else
{
PublicInterface publicInterface = new PublicInterface();
var list0 = publicInterface.GetViewList("空气质量传感器");
publicInterface.SingleSelectionShow(flMain, list0, MyInternationalizationString.airqualitysensor, "", (tagText) =>
{
flMain.RemoveAll();
SelectedDeviceStatus = "TemperatureSensor";
AirProperty(flMain, dic, common,tagText, edit, SelectedDeviceStatus);
}, () => { flMain.RemoveFromParent(); });
}
}
///
/// 空气质量传感器属性值(特殊处理)
///
///
///
///
///
///
///
private static void AirProperty(FrameLayout flMain, Dictionary dic,CommonDevice common,string tagText,bool edit, string SelectedDeviceStatus) {
PublicInterface publicInterface = new PublicInterface();
string range = "";
string stateText = "";
if (edit&& dic!=null)
{
range = dic["Range"];
switch (dic["Cluster_ID"])
{
case "1066":
{
if (dic["AttriButeId"] == "57344")
{
tagText = Language.StringByID(MyInternationalizationString.kongqizhiliang);
switch (dic["AttriButeData1"])
{
case "1":
{
stateText = Language.StringByID(MyInternationalizationString.you);
}
break;
case "2":
{
stateText = Language.StringByID(MyInternationalizationString.liang);
}
break;
case "3":
{
stateText = Language.StringByID(MyInternationalizationString.cha);
}
break;
}
}
else
{
tagText = Language.StringByID(MyInternationalizationString.pm25);
///Pm2.5
int intValue = int.Parse(dic["AttriButeData1"]);
if (0 < intValue && intValue < 30)
{
stateText = Language.StringByID(MyInternationalizationString.pmyou);
}
else if (36 < intValue && intValue < 75)
{
stateText = Language.StringByID(MyInternationalizationString.pmliang);
}
else if (76 < intValue && intValue < 115)
{
stateText = Language.StringByID(MyInternationalizationString.pmqingdu);
}
else if (intValue > 115)
{
stateText = Language.StringByID(MyInternationalizationString.pmzhongdu);
}
}
}
break;
case "1037":
{
tagText = Language.StringByID(MyInternationalizationString.co2);
///co2
int intValue = int.Parse(dic["AttriButeData1"]);
if (0 < intValue && intValue < 1000)
{
stateText = Language.StringByID(MyInternationalizationString.co2qingxin);
}
else if (1000 < intValue && intValue < 2000)
{
stateText = Language.StringByID(MyInternationalizationString.co2huizhuo);
}
else if (2000 < intValue && intValue < 5000)
{
stateText = Language.StringByID(MyInternationalizationString.co2queyang);
}
else if (intValue > 5000)
{
stateText = Language.StringByID(MyInternationalizationString.co2yanzhongqueyang);
}
}
break;
case "1026":
{
tagText = Language.StringByID(MyInternationalizationString.sensortemperature);
stateText = dic["AttriButeData1"];
}
break;
case "1029":
{
tagText = Language.StringByID(MyInternationalizationString.sensorhumidity);
stateText = dic["AttriButeData1"];
}
break;
}
}
Dictionary airqualitysensorDic = new Dictionary();
Send.dictionary(airqualitysensorDic, "Type", "1");
Send.dictionary(airqualitysensorDic, "IsValid", "1");
Send.dictionary(airqualitysensorDic, "MacAddr", common.DeviceAddr);
Send.dictionary(airqualitysensorDic, "Epoint", common.DeviceEpoint.ToString());
if (tagText == Language.StringByID(MyInternationalizationString.kongqizhiliang))
{
var list1 = publicInterface.GetViewList("空气质量");
publicInterface.SingleSelectionShow(flMain, list1, MyInternationalizationString.airqualitysensor, stateText, (strText) =>
{
SelectedDeviceStatus = "TemperatureSensor";
string valuaStr = "";
if (strText == Language.StringByID(MyInternationalizationString.you))
{
valuaStr = "1";
}
else if (strText == Language.StringByID(MyInternationalizationString.liang))
{
valuaStr = "2";
}
else if (strText == Language.StringByID(MyInternationalizationString.cha))
{
valuaStr = "3";
}
Send.dictionary(airqualitysensorDic, "Cluster_ID", "1066");
Send.dictionary(airqualitysensorDic, "AttriButeId", "57344");
Send.dictionary(airqualitysensorDic, "AttriButeData1", valuaStr);
Send.dictionary(airqualitysensorDic, "AttriButeData2", "0");
Send.dictionary(airqualitysensorDic, "Range", "1");
AddDic(flMain, SelectedDeviceStatus, edit, common, airqualitysensorDic);
}, () => {
if (edit) { flMain.RemoveFromParent(); }
else
{
AirSonser(flMain, SelectedDeviceStatus, edit, common);
} });
}
else if (tagText == Language.StringByID(MyInternationalizationString.pm25))
{
var list2 = publicInterface.GetViewList("pm2.5");
publicInterface.SingleSelectionShow(flMain, list2, MyInternationalizationString.pm25, stateText, (strText) =>
{
SelectedDeviceStatus = "TemperatureSensor";
string valuaStr = "";
if (strText == Language.StringByID(MyInternationalizationString.pmyou))
{
valuaStr = "18";
}
else if (strText == Language.StringByID(MyInternationalizationString.pmliang))
{
valuaStr = "54";
}
else if (strText == Language.StringByID(MyInternationalizationString.pmqingdu))
{
valuaStr = "105";
}
else if (strText == Language.StringByID(MyInternationalizationString.pmzhongdu))
{
valuaStr = "130";
}
Send.dictionary(airqualitysensorDic, "Cluster_ID", "1066");
Send.dictionary(airqualitysensorDic, "AttriButeId", "0");
Send.dictionary(airqualitysensorDic, "AttriButeData1", valuaStr);
Send.dictionary(airqualitysensorDic, "AttriButeData2", "0");
Send.dictionary(airqualitysensorDic, "Range", "1");
AddDic(flMain, SelectedDeviceStatus, edit, common, airqualitysensorDic);
}, () => {
if (edit) { flMain.RemoveFromParent(); }
else
{
AirSonser(flMain, SelectedDeviceStatus, edit, common);
}
});
}
else if (tagText == Language.StringByID(MyInternationalizationString.co2))
{
var list2 = publicInterface.GetViewList("co2");
publicInterface.SingleSelectionShow(flMain, list2, MyInternationalizationString.co2, stateText, (strText) =>
{
SelectedDeviceStatus = "TemperatureSensor";
string valuaStr = "";
if (strText == Language.StringByID(MyInternationalizationString.co2qingxin))
{
valuaStr = "500";
}
else if (strText == Language.StringByID(MyInternationalizationString.co2huizhuo))
{
valuaStr = "1500";
}
else if (strText == Language.StringByID(MyInternationalizationString.co2queyang))
{
valuaStr = "2500";
}
else if (strText == Language.StringByID(MyInternationalizationString.co2yanzhongqueyang))
{
valuaStr = "5500";
}
Send.dictionary(airqualitysensorDic, "Cluster_ID", "1037");
Send.dictionary(airqualitysensorDic, "AttriButeId", "0");
Send.dictionary(airqualitysensorDic, "AttriButeData1", valuaStr);
Send.dictionary(airqualitysensorDic, "AttriButeData2", "0");
Send.dictionary(airqualitysensorDic, "Range", "1");
AddDic(flMain, SelectedDeviceStatus, edit, common, airqualitysensorDic);
}, () => {
if (edit) { flMain.RemoveFromParent(); }
else
{
AirSonser(flMain, SelectedDeviceStatus, edit, common);
}
});
}
else if (tagText == Language.StringByID(MyInternationalizationString.sensortemperature))
{
//编辑时的状态值
string str1 = range;
string str2 = stateText;
publicInterface.TemperatureShow1(flMain, tagText, "℃", str1, str2, (relationValueStr, tempValueStr) =>
{
SelectedDeviceStatus = "TemperatureSensor";
Send.dictionary(airqualitysensorDic, "Cluster_ID", "1026");
Send.dictionary(airqualitysensorDic, "AttriButeId", "0");
Send.dictionary(airqualitysensorDic, "AttriButeData1", tempValueStr);
Send.dictionary(airqualitysensorDic, "AttriButeData2", "0");
Send.dictionary(airqualitysensorDic, "Range", relationValueStr);
AddDic(flMain, SelectedDeviceStatus, edit, common, airqualitysensorDic);
}, () =>
{
if (edit) { flMain.RemoveFromParent(); }
else
{
AirSonser(flMain, SelectedDeviceStatus, edit, common);
}
});
}
else if (tagText == Language.StringByID(MyInternationalizationString.sensorhumidity))
{
//编辑时的状态值
string str1 = range;
string str2 = stateText;
publicInterface.TemperatureShow1(flMain, tagText, "%", str1, str2, (relationValueStr, tempValueStr) =>
{
SelectedDeviceStatus = "TemperatureSensor";
Send.dictionary(airqualitysensorDic, "Cluster_ID", "1029");
Send.dictionary(airqualitysensorDic, "AttriButeId", "0");
Send.dictionary(airqualitysensorDic, "AttriButeData1", tempValueStr);
Send.dictionary(airqualitysensorDic, "AttriButeData2", "0");
Send.dictionary(airqualitysensorDic, "Range", relationValueStr);
AddDic(flMain, SelectedDeviceStatus, edit, common, airqualitysensorDic);
}, () => {
if (edit) { flMain.RemoveFromParent(); }
else
{
AirSonser(flMain, SelectedDeviceStatus, edit, common);
}
});
}
}
///
/// 空气质量传感器(特殊处理)
///
///
///
///
///
///
private static void AddDic(FrameLayout flMain, string SelectedDeviceStatus, bool edit, CommonDevice common, Dictionary dic )
{
UserView.HomePage.Instance.ScrollEnabled = true;
if (SelectedDeviceStatus != "")
{
//添加条件
LogicIfon.AddDeviceconditions(common, dic);
}
else
{
if (!edit)
{
var alert = new UserCenter.ShowMsgControl(ShowMsgType.Normal,
Language.StringByID(MyInternationalizationString.selectdevicestatuscondition),
Language.StringByID(MyInternationalizationString.confrim));
alert.Show();
return;
}
}
flMain.RemoveFromParent();
//自动化
var logicCommunalPage = new LogicCommunalPage();
UserView.HomePage.Instance.AddChidren(logicCommunalPage);
UserView.HomePage.Instance.PageIndex += 1;
logicCommunalPage.Show(() => { });
}
}
}