using System;
|
using System.Collections.Generic;
|
using Newtonsoft.Json.Linq;
|
using Shared;
|
using Shared.Common;
|
using Shared.Phone;
|
using Shared.R;
|
using ZigBee.Device;
|
|
namespace Shared.Phone.Device.Logic.DoorLockLogic
|
{
|
public class LockLogicCommunalPage : FrameLayout
|
{
|
|
public LockLogicCommunalPage()
|
{
|
UserView.HomePage.Instance.RemoveViewByTag("LockLogic");
|
Tag = "LockLogic";
|
}
|
EditText logicTextBox;
|
public async void Show(Action action)
|
{
|
|
#region 最上面的布局代码
|
var topRowLayout = new RowLayout
|
{
|
BackgroundColor = ZigbeeColor.Current.LogicTopBackgroundColor,
|
Height = Application.GetRealHeight(184),
|
LineColor = ZigbeeColor.Current.LogicRowLayoutTopLineColor,
|
};
|
this.AddChidren(topRowLayout);
|
|
var titleName = new Button
|
{
|
TextSize = 17,
|
TextColor = ZigbeeColor.Current.LogicTextBlackColor,
|
TextAlignment = TextAlignment.CenterLeft,
|
X = Application.GetRealWidth(176),
|
Width = Application.GetRealWidth(600),
|
Height = Application.GetRealHeight(69),
|
Y = Application.GetRealHeight(92),
|
TextID = MyInternationalizationString.selection,
|
IsBold = true,
|
};
|
topRowLayout.AddChidren(titleName);
|
if (Common.Logic.CurrentLogic.LogicId != 0)
|
{
|
titleName.Text = Language.StringByID(MyInternationalizationString.editlinkageevent);
|
}
|
else
|
{
|
titleName.Text = Language.StringByID(MyInternationalizationString.addlinkageevent);
|
}
|
|
var clickBtn = new Button
|
{
|
Width = Application.GetRealWidth(81 + 51),
|
Height = Application.GetRealHeight(58 + 40),
|
Y = Application.GetRealHeight(98 - 40),
|
};
|
topRowLayout.AddChidren(clickBtn);
|
clickBtn.MouseDownEventHandler += (sender, e) =>
|
{
|
RemoveFromParent();
|
};
|
|
var back = new Button
|
{
|
Width = Application.GetRealWidth(30),
|
Height = Application.GetRealHeight(51),
|
X = Application.GetRealWidth(81),
|
Y = Application.GetRealHeight(98),
|
//Gravity = Gravity.CenterVertical;
|
UnSelectedImagePath = "ZigeeLogic/back.png",
|
};
|
topRowLayout.AddChidren(back);
|
back.MouseDownEventHandler += (sender, e) =>
|
{
|
action();
|
RemoveFromParent();
|
};
|
|
#endregion
|
|
|
var middle = new VerticalScrolViewLayout
|
{
|
Y = topRowLayout.Bottom,
|
Height = Application.GetRealHeight(1920 - 184 - 180),
|
BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor,
|
};
|
this.AddChidren(middle);
|
|
|
#region -----自动化名称 设置名称-----
|
var logicnamefl = new FrameLayout
|
{
|
Height = Application.GetRealHeight(130),
|
BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor,
|
};
|
middle.AddChidren(logicnamefl);
|
|
var text = new Button
|
{
|
Width = Application.GetRealWidth(300),
|
Height = Application.GetRealHeight(60),
|
X = Application.GetRealWidth(58),
|
TextAlignment = TextAlignment.CenterLeft,
|
//Text = "自动化名称",
|
TextID = MyInternationalizationString.automationname,
|
TextColor = ZigbeeColor.Current.LogicTextBlackColor,
|
Y = Application.GetRealHeight(35),
|
TextSize = 15,
|
};
|
logicnamefl.AddChidren(text);
|
|
logicTextBox = new EditText
|
{
|
Y = Application.GetRealHeight(35),
|
Width = Application.GetRealWidth(1080 - 58 - 300),
|
Height = Application.GetRealHeight(60),
|
X = text.Right,
|
TextAlignment = TextAlignment.CenterLeft,
|
TextColor = ZigbeeColor.Current.LogicBtnCancelColor,
|
TextSize = 14,
|
Text = Common.Logic.CurrentLogic.LogicName,
|
//TextID=MyInternationalizationString.automation1,
|
};
|
logicnamefl.AddChidren(logicTextBox);
|
|
var fraline = new FrameLayout
|
{
|
Height = Application.GetRealHeight(30),
|
};
|
middle.AddChidren(fraline);
|
#endregion
|
|
#region -----显示逻辑条件-----
|
|
|
var conditionFrameLayout = new FrameLayout
|
{
|
Height = Application.GetRealHeight(160),
|
BackgroundColor = ZigbeeColor.Current.LogicBlankBackgroundColor,
|
};
|
middle.AddChidren(conditionFrameLayout);
|
|
|
var conditionRowLayout = new RowLayout
|
{
|
Y = Application.GetRealHeight(30),
|
Width = Application.GetRealWidth(965),
|
Height = Application.GetRealHeight(130),
|
X = Application.GetRealWidth(58),
|
LineColor = ZigbeeColor.Current.LogicRowLayoutLineColor,
|
};
|
conditionFrameLayout.AddChidren(conditionRowLayout);
|
|
|
conditionRowLayout.AddChidren(new Button
|
{
|
|
Text = Language.StringByID(MyInternationalizationString.ifcondition),
|
TextAlignment = TextAlignment.CenterLeft,
|
TextColor = ZigbeeColor.Current.LogicTextBlackColor,
|
Width = Application.GetRealWidth(300),
|
Height = Application.GetRealHeight(60),
|
TextSize = 15,
|
Gravity = Gravity.CenterVertical,
|
});
|
|
var conditionadd1 = new Button
|
{
|
|
Y = Application.GetRealHeight(30),
|
Width = Application.GetRealWidth(57),
|
Height = Application.GetRealHeight(130),
|
X = Application.GetRealWidth(965 + 58),
|
|
};
|
conditionFrameLayout.AddChidren(conditionadd1);
|
|
var conditionadd = new Button
|
{
|
|
Width = Application.GetRealWidth(58),
|
Height = Application.GetRealHeight(58),
|
UnSelectedImagePath = "ZigeeLogic/add.png",
|
X = Application.GetRealWidth(965 - 58),
|
Gravity = Gravity.CenterVertical,
|
|
};
|
conditionRowLayout.AddChidren(conditionadd);
|
///添加条件的点击事件
|
EventHandler<MouseEventArgs> conditionaddclick = (sender, e) =>
|
{
|
AddCondition(-1);
|
};
|
conditionadd.MouseUpEventHandler += conditionaddclick;
|
conditionadd1.MouseUpEventHandler += conditionaddclick;
|
List<Dictionary<string, string>> ListConditions = new List<Dictionary<string, string>>();
|
ListConditions.Clear();
|
ListConditions.AddRange(Common.Logic.CurrentLogic.Conditions);
|
ListConditions.Add(new Dictionary<string, string>());
|
for (int i = 0; i < ListConditions.Count; i++)
|
{
|
if (i == (ListConditions.Count - 1))
|
{
|
|
var addfl = new FrameLayout
|
{
|
Height = Application.GetRealHeight(160 + 30 + 50),
|
BackgroundColor = ZigbeeColor.Current.LogicBlankBackgroundColor,
|
};
|
middle.AddChidren(addfl);
|
var addbtn = new Button
|
{
|
Height = Application.GetRealHeight(130 + 50),
|
Width = Application.GetRealWidth(908),
|
Y = Application.GetRealHeight(30),
|
X = Application.GetRealWidth(86),
|
UnSelectedImagePath = "ZigeeLogic/logicaddcolor.png",
|
};
|
addfl.AddChidren(addbtn);
|
|
|
var addtextbtn = new Button
|
{
|
Height = Application.GetRealHeight(58),
|
Width = Application.GetRealWidth(500),
|
Y = Application.GetRealHeight(45 + 30),
|
TextColor = ZigbeeColor.Current.LogicBlankBackgroundColor,
|
TextID = MyInternationalizationString.selectunlockingmode,
|
X = Application.GetRealWidth(290),
|
TextSize = 14,
|
};
|
addfl.AddChidren(addtextbtn);
|
|
EventHandler<MouseEventArgs> addconditionsclick = (sender, e) =>
|
{
|
AddCondition(-1);
|
};
|
addbtn.MouseUpEventHandler += addconditionsclick;
|
addtextbtn.MouseUpEventHandler += addconditionsclick;
|
}
|
else
|
{
|
var devicesFrameLayout = new FrameLayout
|
{
|
Height = Application.GetRealHeight(130),
|
BackgroundColor = ZigbeeColor.Current.LogicBlankBackgroundColor,
|
};
|
middle.AddChidren(devicesFrameLayout);
|
|
///显示图标
|
var conditionIcon = new Button
|
{
|
Width = Application.GetRealWidth(81),
|
Height = Application.GetRealHeight(81),
|
X = Application.GetRealWidth(104),
|
Y = Application.GetRealHeight(25),
|
//UnSelectedImagePath = "ZigeeLogic/time.png",
|
|
};
|
devicesFrameLayout.AddChidren(conditionIcon);
|
|
|
var conditionsRowLayout = new RowLayout
|
{
|
Width = Application.GetRealWidth(800),
|
Height = Application.GetRealHeight(130),
|
X = Application.GetRealWidth(222),
|
LineColor = ZigbeeColor.Current.LogicRowLayoutLineColor,
|
};
|
devicesFrameLayout.AddChidren(conditionsRowLayout);
|
|
var Type = int.Parse(ListConditions[i]["Type"]);
|
var conditions = ListConditions[i];
|
switch (Type)
|
{
|
case 1:
|
{
|
var deviceinof = Common.Logic.LogicDviceList.Find((obj) => { return obj.DeviceAddr == conditions["MacAddr"] && obj.DeviceEpoint.ToString() == conditions["Epoint"]; });
|
if (deviceinof == null)
|
{
|
deviceinof = new ZigBee.Device.CommonDevice();
|
//continue;
|
}
|
///显示设备名称
|
var btndevice = new Button
|
{
|
Y = Application.GetRealHeight(20),
|
Height = Application.GetRealHeight(50),
|
Width = Application.GetRealWidth(400),
|
TextAlignment = TextAlignment.CenterLeft,
|
Text = deviceinof.DeviceEpointName,
|
TextColor = ZigbeeColor.Current.LogicTextBlackColor,
|
TextSize = 14,
|
};
|
conditionsRowLayout.AddChidren(btndevice);
|
|
///区域(房间)名称Button
|
var btnregionname = new Button
|
{
|
Y = btndevice.Bottom + Application.GetRealHeight(10),
|
Width = Application.GetRealWidth(400),
|
TextAlignment = TextAlignment.CenterLeft,
|
Height = Application.GetRealHeight(50),
|
Text = "",//Language.StringByID(MyInternationalizationString.customroom),
|
TextColor = ZigbeeColor.Current.LogicBtnCancelColor,
|
};
|
conditionsRowLayout.AddChidren(btnregionname);
|
///通过设备找到区域(房间)名称
|
Device.Logic.Send.RoomNmae(btnregionname, deviceinof);
|
|
|
var deviceedit = new Button
|
{
|
BackgroundColor = ZigbeeColor.Current.LogicEditBlackColor1,
|
Text = Language.StringByID(MyInternationalizationString.edit),
|
TextColor = ZigbeeColor.Current.LogicBtnSaveTextColor,
|
Tag = i,
|
};
|
conditionsRowLayout.AddRightView(deviceedit);
|
deviceedit.MouseUpEventHandler += (sender, e) =>
|
{
|
|
int intvalue = int.Parse(deviceedit.Tag.ToString());
|
AddCondition(intvalue);
|
};
|
|
///显示设备条件状态控件
|
var devicestatus = new Button
|
{
|
Width = Application.GetRealWidth(400),
|
Height = Application.GetRealHeight(130),
|
Gravity = Gravity.CenterVertical,
|
TextAlignment = TextAlignment.CenterRight,
|
X = Application.GetRealWidth(400),
|
TextColor = ZigbeeColor.Current.LogicBtnCancelColor,
|
TextSize = 14,
|
};
|
conditionsRowLayout.AddChidren(devicestatus);
|
|
switch (deviceinof.Type)
|
{
|
case DeviceType.DoorLock:
|
{
|
conditionIcon.UnSelectedImagePath = "ZigeeLogic/doorlock.png";
|
for (int a = 0; a < Common.Logic.CurrentLogic.Accounts.Count; a++)
|
{
|
if (Common.Logic.CurrentLogic.Accounts[a]["Type"] == "1")
|
{
|
if (Common.Logic.CurrentLogic.Accounts[a]["UserId"] == conditions["AttriButeData2"])
|
{
|
devicestatus.Text = Common.Logic.CurrentLogic.Accounts[a]["Account"];
|
break;
|
}
|
}
|
}
|
}
|
break;
|
}
|
|
}
|
break;
|
}
|
///删除控件
|
var del = new Button
|
{
|
BackgroundColor = ZigbeeColor.Current.LogicDelBlackColor1,
|
Text = Language.StringByID(MyInternationalizationString.del),
|
};
|
conditionsRowLayout.AddRightView(del);
|
del.MouseUpEventHandler += (sender, e) =>
|
{
|
var alert = new Alert(Language.StringByID(MyInternationalizationString.tip), Language.StringByID(MyInternationalizationString.doyouwanttodelete),
|
Language.StringByID(MyInternationalizationString.cancel), Language.StringByID(MyInternationalizationString.confrim));
|
alert.ResultEventHandler += (sender1, e1) =>
|
{
|
if (e1)
|
{
|
Common.Logic.CurrentLogic.Conditions.Remove(conditions);
|
var lockLogicCommunalPage = new LockLogicCommunalPage();
|
UserView.HomePage.Instance.AddChidren(lockLogicCommunalPage);
|
UserView.HomePage.Instance.PageIndex += 1;
|
lockLogicCommunalPage.Show(() => { });
|
}
|
};
|
alert.Show();
|
|
};
|
|
}
|
}
|
|
|
#endregion
|
|
#region ----显示执行目标----
|
|
var targetFrameLayout = new FrameLayout
|
{
|
Height = Application.GetRealHeight(160),
|
BackgroundColor = ZigbeeColor.Current.LogicBlankBackgroundColor,
|
};
|
middle.AddChidren(targetFrameLayout);
|
|
|
var targetRowLayout = new RowLayout
|
{
|
Y = Application.GetRealHeight(30),
|
Width = Application.GetRealWidth(965),
|
Height = Application.GetRealHeight(130),
|
X = Application.GetRealWidth(58),
|
LineColor = ZigbeeColor.Current.LogicRowLayoutLineColor,
|
};
|
targetFrameLayout.AddChidren(targetRowLayout);
|
|
|
var btntargettitle = new Button
|
{
|
|
Text = Language.StringByID(MyInternationalizationString.execute),
|
TextAlignment = TextAlignment.CenterLeft,
|
TextColor = ZigbeeColor.Current.LogicTextBlackColor,
|
Width = Application.GetRealWidth(300),
|
Height = Application.GetRealHeight(60),
|
TextSize = 15,
|
Gravity = Gravity.CenterVertical,
|
};
|
targetRowLayout.AddChidren(btntargettitle);
|
|
var btntargetadd1 = new Button
|
{
|
|
Y = Application.GetRealHeight(30),
|
Width = Application.GetRealWidth(57),
|
Height = Application.GetRealHeight(130),
|
X = Application.GetRealWidth(965 + 58),
|
};
|
targetFrameLayout.AddChidren(btntargetadd1);
|
|
var btntargetadd = new Button
|
{
|
Width = Application.GetRealWidth(58),
|
Height = Application.GetRealHeight(58),
|
UnSelectedImagePath = "ZigeeLogic/add.png",
|
X = Application.GetRealWidth(965 - 58),
|
Gravity = Gravity.CenterVertical,
|
};
|
targetRowLayout.AddChidren(btntargetadd);
|
EventHandler<MouseEventArgs> btntargetaddclick = (sender, e) =>
|
{
|
Common.Logic.CurrentLogic.LogicName = logicTextBox.Text.Trim();
|
var addAction = new AddAction();
|
UserView.HomePage.Instance.AddChidren(addAction);
|
UserView.HomePage.Instance.PageIndex += 1;
|
addAction.Show();
|
};
|
btntargetadd1.MouseUpEventHandler += btntargetaddclick;
|
btntargetadd.MouseUpEventHandler += btntargetaddclick;
|
|
List<Dictionary<string, object>> ListActions = new List<Dictionary<string, object>>();
|
ListActions.Clear();
|
ListActions.AddRange(Common.Logic.CurrentLogic.Actions);
|
ListActions.Add(new Dictionary<string, object>());
|
|
for (int i = 0; i < ListActions.Count; i++)
|
{
|
if (i == (ListActions.Count - 1))
|
{
|
|
var addfl = new FrameLayout
|
{
|
Height = Application.GetRealHeight(160 + 30 + 50),
|
BackgroundColor = ZigbeeColor.Current.LogicBlankBackgroundColor,
|
};
|
middle.AddChidren(addfl);
|
var addbtn = new Button
|
{
|
Height = Application.GetRealHeight(130 + 50),
|
Width = Application.GetRealWidth(908),
|
Y = Application.GetRealHeight(30),
|
X = Application.GetRealWidth(86),
|
UnSelectedImagePath = "ZigeeLogic/logicaddcolor.png",
|
};
|
addfl.AddChidren(addbtn);
|
|
|
var addtextbtn = new Button
|
{
|
Height = Application.GetRealHeight(58),
|
Width = Application.GetRealWidth(300),
|
Y = Application.GetRealHeight(45 + 30),
|
TextColor = ZigbeeColor.Current.LogicBlankBackgroundColor,
|
TextID = MyInternationalizationString.lockaddaction,
|
X = Application.GetRealWidth(390),
|
TextSize = 14,
|
};
|
addfl.AddChidren(addtextbtn);
|
EventHandler<MouseEventArgs> addfunctionclick = (sender, e) =>
|
{
|
Common.Logic.CurrentLogic.LogicName = logicTextBox.Text.Trim();
|
var addAction = new AddAction();
|
UserView.HomePage.Instance.AddChidren(addAction);
|
UserView.HomePage.Instance.PageIndex += 1;
|
addAction.Show();
|
};
|
addbtn.MouseUpEventHandler += addfunctionclick;
|
addtextbtn.MouseUpEventHandler += addfunctionclick;
|
}
|
else
|
{
|
|
var devicesFrameLayout = new FrameLayout
|
{
|
Height = Application.GetRealHeight(130),
|
BackgroundColor = ZigbeeColor.Current.LogicBlankBackgroundColor,
|
};
|
middle.AddChidren(devicesFrameLayout);
|
|
///显示图标
|
var actionsIcon = new Button
|
{
|
Width = Application.GetRealWidth(81),
|
Height = Application.GetRealHeight(81),
|
X = Application.GetRealWidth(104),
|
Y = Application.GetRealHeight(25),
|
// UnSelectedImagePath = "ZigeeLogic/time.png",
|
|
};
|
devicesFrameLayout.AddChidren(actionsIcon);
|
|
|
var actionsrowLayout = new RowLayout
|
{
|
Width = Application.GetRealWidth(800),
|
Height = Application.GetRealHeight(130),
|
X = Application.GetRealWidth(222),
|
LineColor = ZigbeeColor.Current.LogicRowLayoutLineColor,
|
};
|
devicesFrameLayout.AddChidren(actionsrowLayout);
|
|
|
var linkType = int.Parse(ListActions[i]["LinkType"].ToString());
|
var actions = ListActions[i];
|
|
switch (linkType)
|
{
|
case 0:
|
{
|
var obj1 = actions["DeviceAddr"].ToString();
|
var obj2 = actions["Epoint"].ToString();
|
var deviceinof = Common.Logic.LogicDviceList.Find((obj) => { return ((obj.DeviceAddr == obj1) && (obj.DeviceEpoint.ToString() == obj2)); });
|
if (deviceinof == null)
|
{
|
deviceinof = new ZigBee.Device.CommonDevice();
|
//continue;
|
}
|
|
///设备名称Button
|
var btndevicename = new Button
|
{
|
Y = Application.GetRealHeight(20),
|
Height = Application.GetRealHeight(50),
|
Width = Application.GetRealWidth(450),
|
TextAlignment = TextAlignment.CenterLeft,
|
Text = deviceinof.DeviceEpointName,
|
TextColor = ZigbeeColor.Current.LogicTextBlackColor,
|
TextSize = 14,
|
};
|
actionsrowLayout.AddChidren(btndevicename);
|
|
///区域(房间)名称Button
|
var btnregionname = new Button
|
{
|
Y = btndevicename.Bottom + Application.GetRealHeight(10),
|
Width = Application.GetRealWidth(450),
|
TextAlignment = TextAlignment.CenterLeft,
|
Height = Application.GetRealHeight(50),
|
Text = "",//Language.StringByID(MyInternationalizationString.customroom),
|
TextColor = ZigbeeColor.Current.LogicBtnCancelColor,
|
};
|
actionsrowLayout.AddChidren(btnregionname);
|
///通过设备找到区域(房间)名称
|
Device.Logic.Send.RoomNmae(btnregionname, deviceinof);
|
///显示设备条件状态控件
|
var devicestatus = new Button
|
{
|
Width = Application.GetRealWidth(350),
|
Height = Application.GetRealHeight(130),
|
Gravity = Gravity.CenterVertical,
|
TextAlignment = TextAlignment.CenterRight,
|
X = Application.GetRealWidth(450),
|
TextColor = ZigbeeColor.Current.LogicBtnCancelColor,
|
TextSize = 14,
|
};
|
actionsrowLayout.AddChidren(devicestatus);
|
|
///编辑设备状态Button
|
var deviceedit = new Button
|
{
|
BackgroundColor = ZigbeeColor.Current.LogicEditBlackColor1,
|
Text = Language.StringByID(MyInternationalizationString.edit),
|
TextColor = ZigbeeColor.Current.LogicBtnSaveTextColor,
|
};
|
actionsrowLayout.AddRightView(deviceedit);
|
|
///编辑点击事件
|
deviceedit.MouseUpEventHandler += (sender, e) =>
|
{
|
|
var flMain = new FrameLayout { BackgroundColor = ZigbeeColor.Current.LogicViewBackgroundColor };
|
this.AddChidren(flMain);
|
LockAddDevice.CurrentDeviceStateView(flMain, deviceinof, true);
|
};
|
|
|
switch (deviceinof.Type)
|
{
|
case DeviceType.OnOffOutput:
|
{
|
actionsIcon.UnSelectedImagePath = "ZigeeLogic/light.png";
|
|
var TaskList = actions["TaskList"] as List<Dictionary<string, string>>;
|
if (TaskList == null)
|
{
|
continue;
|
}
|
foreach (var status in TaskList)
|
{
|
if (status["TaskType"].ToString() == "1")
|
{
|
if (status["Data1"].ToString() == "0")
|
{
|
devicestatus.Text = Language.StringByID(MyInternationalizationString.close);
|
|
}
|
else if (status["Data1"].ToString() == "1")
|
{
|
devicestatus.Text = Language.StringByID(MyInternationalizationString.open);
|
|
}
|
else if (status["Data1"].ToString() == "2")
|
{
|
|
devicestatus.Text = Language.StringByID(MyInternationalizationString.onoff);
|
}
|
}
|
|
}
|
|
}
|
break;
|
case DeviceType.DimmableLight:
|
{
|
actionsIcon.UnSelectedImagePath = "ZigeeLogic/dimmableLight.png";
|
var TaskList = actions["TaskList"] as List<Dictionary<string, string>>;
|
if (TaskList == null)
|
{
|
continue;
|
}
|
foreach (var status in TaskList)
|
{
|
if (status["TaskType"].ToString() == "3")
|
{
|
var intvalue = int.Parse(status["Data1"]);
|
var lightbrightnessvalue = (intvalue * 100) / 254;
|
devicestatus.Text = lightbrightnessvalue.ToString() + "%";
|
}
|
else if (status["TaskType"].ToString() == "1")
|
{
|
|
if (status["Data1"].ToString() == "0")
|
{
|
devicestatus.Text = Language.StringByID(MyInternationalizationString.close);
|
}
|
else if (status["Data1"].ToString() == "2")
|
{
|
devicestatus.Text = Language.StringByID(MyInternationalizationString.onoff);
|
}
|
}
|
|
|
}
|
|
}
|
break;
|
case DeviceType.WindowCoveringDevice:
|
{
|
actionsIcon.UnSelectedImagePath = "ZigeeLogic/curtain.png";
|
var TaskList = actions["TaskList"] as List<Dictionary<string, string>>;
|
if (TaskList == null)
|
{
|
continue;
|
}
|
foreach (var status in TaskList)
|
{
|
if (status["TaskType"] == "6")
|
{
|
if (status["Data1"] == "0")
|
{
|
devicestatus.Text = Language.StringByID(MyInternationalizationString.open);
|
}
|
else if (status["Data1"] == "1")
|
{
|
devicestatus.Text = Language.StringByID(MyInternationalizationString.close);
|
}
|
else if (status["Data1"] == "5")
|
{
|
devicestatus.Text = status["Data2"] + "%";
|
}
|
}
|
|
}
|
}
|
break;
|
case DeviceType.AirSwitch:
|
{
|
actionsIcon.UnSelectedImagePath = "ZigeeLogic/airswitch.png";
|
|
var TaskList = actions["TaskList"] as List<Dictionary<string, string>>;
|
if (TaskList == null)
|
{
|
continue;
|
}
|
foreach (var status in TaskList)
|
{
|
if (status["TaskType"].ToString() == "1")
|
{
|
if (status["Data1"].ToString() == "0")
|
{
|
devicestatus.Text = Language.StringByID(MyInternationalizationString.close);
|
|
}
|
else if (status["Data1"].ToString() == "1")
|
{
|
devicestatus.Text = Language.StringByID(MyInternationalizationString.open);
|
|
}
|
else if (status["Data1"].ToString() == "2")
|
{
|
|
devicestatus.Text = Language.StringByID(MyInternationalizationString.onoff);
|
}
|
}
|
|
}
|
|
}
|
break;
|
case DeviceType.Thermostat:
|
{
|
actionsIcon.UnSelectedImagePath = "ZigeeLogic/ac.png";
|
|
var TaskList = actions["TaskList"] as List<Dictionary<string, string>>;
|
if (TaskList == null)
|
{
|
continue;
|
}
|
string modetext = "", temperaturetext = "", speedtext = "";
|
bool ifclose = false;
|
foreach (var status in TaskList)
|
{
|
if (TaskList.Count == 1)
|
{
|
//数组只有一个元素说明当前空调状态为关;
|
ifclose = false;
|
//如果空调状态是关;直接跳出for循坏;
|
break;
|
}
|
else
|
{
|
ifclose = true;
|
}
|
|
if (status["TaskType"].ToString() == "5")
|
{
|
if (status["Data1"] == "3")
|
{//3---设置工作模式(1:自动;3:制冷;4:制热;7:送风;8:除湿)
|
switch (status["Data2"])
|
{
|
case "3":
|
{
|
modetext = Language.StringByID(MyInternationalizationString.logiccool);
|
}
|
break;
|
case "4":
|
{
|
modetext = Language.StringByID(MyInternationalizationString.logicheat);
|
}
|
break;
|
case "1":
|
{
|
modetext = Language.StringByID(MyInternationalizationString.logicauto);
|
}
|
break;
|
case "8":
|
{
|
modetext = Language.StringByID(MyInternationalizationString.logicdry);
|
}
|
break;
|
case "7":
|
{
|
modetext = Language.StringByID(MyInternationalizationString.logicfanonly);
|
}
|
break;
|
}
|
}
|
else if (status["Data1"] == "6")
|
{//6---设置风扇模式(1:低风;2:中风;3:高风;)
|
switch (status["Data2"])
|
{
|
case "1":
|
{
|
speedtext = Language.StringByID(MyInternationalizationString.logiclow);
|
}
|
break;
|
|
case "2":
|
{
|
speedtext = Language.StringByID(MyInternationalizationString.logicmedium);
|
}
|
break;
|
case "3":
|
{
|
speedtext = Language.StringByID(MyInternationalizationString.logichigh);
|
}
|
break;
|
|
}
|
}
|
//4---设置加热度数;5---设置制冷、除湿度数;7---设置自动度数
|
else if (status["Data1"] == "4" || status["Data1"] == "5" || status["Data1"] == "7")
|
{
|
var s = int.Parse(status["Data2"]) / 100;
|
temperaturetext = s.ToString();
|
}
|
else if (status["Data1"] == "20")
|
{
|
temperaturetext = "无";
|
}
|
|
|
}
|
|
}
|
if (ifclose)
|
{
|
devicestatus.Text = modetext + ";" + temperaturetext + "℃;" + speedtext;
|
}
|
else
|
{
|
devicestatus.Text = Language.StringByID(MyInternationalizationString.close);
|
|
}
|
}
|
break;
|
|
}
|
|
|
}
|
break;
|
case 2:
|
{
|
|
//在本地查找该场景;
|
var sceneinof = Common.Room.AllRoomSceneUIList.Find((obj) => { return obj.Id.ToString() == actions["DeviceAddr"].ToString(); });
|
//本地没有存在;
|
if (sceneinof == null)
|
{
|
//实现目的:显示出来让可以自己是否删除
|
sceneinof = new SceneUI();
|
#region -----
|
////在网关查找该场景;
|
////标记问题:网络请求,存在视图加载快慢的问题;
|
//sceneinof = await Send.GetScene(int.Parse(actions["DeviceAddr"].ToString()));
|
////网关没有存在;
|
//if (sceneinof == null)
|
//{
|
// //注解:本地和网关都不存在该场景,界面将不会显示该场景;
|
// //sceneinof = new SceneUI();
|
// //移除该场景数据;
|
// Common.Logic.CurrentLogic.Actions.Remove(actions);
|
// //移除该场景视图;
|
// devicesFrameLayout.RemoveFromParent();
|
// continue;
|
//}
|
#endregion
|
}
|
|
|
|
|
actionsIcon.UnSelectedImagePath = "ZigeeLogic/scene.png";
|
///设备名称Button
|
var btndevicename = new Button
|
{
|
Y = Application.GetRealHeight(20),
|
Height = Application.GetRealHeight(50),
|
Width = Application.GetRealWidth(500),
|
TextAlignment = TextAlignment.CenterLeft,
|
Text = sceneinof.Name,
|
TextColor = ZigbeeColor.Current.LogicTextBlackColor,
|
TextSize = 14,
|
};
|
actionsrowLayout.AddChidren(btndevicename);
|
|
///区域(房间)名称Button
|
var btnregionname = new Button
|
{
|
Y = btndevicename.Bottom + Application.GetRealHeight(10),
|
Width = Application.GetRealWidth(500),
|
TextAlignment = TextAlignment.CenterLeft,
|
Height = Application.GetRealHeight(50),
|
Text = "",//Language.StringByID(MyInternationalizationString.customroom),
|
TextColor = ZigbeeColor.Current.LogicBtnCancelColor,
|
};
|
actionsrowLayout.AddChidren(btnregionname);
|
/////通过设备找到区域(房间)名称
|
Common.Room room = new Common.Room();
|
btnregionname.Text = room.GetRoomNameBySceneId(sceneinof.Id);
|
//Send.RoomNmae(btnregionname, deviceinof);
|
|
|
|
}
|
break;
|
|
}
|
///删除控件
|
var del = new Button
|
{
|
BackgroundColor = ZigbeeColor.Current.LogicDelBlackColor1,
|
Text = Language.StringByID(MyInternationalizationString.del),
|
};
|
actionsrowLayout.AddRightView(del);
|
|
del.MouseUpEventHandler += (sender, e) =>
|
{
|
var alert = new Alert(Language.StringByID(MyInternationalizationString.tip), Language.StringByID(MyInternationalizationString.doyouwanttodelete),
|
Language.StringByID(MyInternationalizationString.cancel), Language.StringByID(MyInternationalizationString.confrim));
|
alert.ResultEventHandler += (sender1, e1) =>
|
{
|
if (e1)
|
{
|
Common.Logic.CurrentLogic.Actions.Remove(actions);
|
var lockLogicCommunalPage = new LockLogicCommunalPage();
|
UserView.HomePage.Instance.AddChidren(lockLogicCommunalPage);
|
UserView.HomePage.Instance.PageIndex += 1;
|
lockLogicCommunalPage.Show(() => { });
|
}
|
};
|
alert.Show();
|
|
};
|
|
}
|
}
|
|
#endregion
|
|
#region ----推送设置----
|
|
var fraline1 = new FrameLayout
|
{
|
Height = Application.GetRealHeight(30),
|
};
|
middle.AddChidren(fraline1);
|
|
var pushFrameLayout = new FrameLayout
|
{
|
Height = Application.GetRealHeight(160),
|
BackgroundColor = ZigbeeColor.Current.LogicBlankBackgroundColor,
|
};
|
middle.AddChidren(pushFrameLayout);
|
|
var pushswitchRowlayout = new RowLayout
|
{
|
Y = Application.GetRealHeight(30),
|
Width = Application.GetRealWidth(965),
|
Height = Application.GetRealHeight(130),
|
X = Application.GetRealWidth(58),
|
LineColor = ZigbeeColor.Current.LogicRowLayoutLineColor,
|
};
|
pushFrameLayout.AddChidren(pushswitchRowlayout);
|
|
var btnswitchtxet = new Button
|
{
|
TextAlignment = TextAlignment.CenterLeft,
|
TextColor = ZigbeeColor.Current.LogicTextBlackColor,
|
Width = Application.GetRealWidth(300),
|
Height = Application.GetRealHeight(60),
|
Gravity = Gravity.CenterVertical,
|
TextID = MyInternationalizationString.pushswitch,
|
TextSize = 14,
|
};
|
pushswitchRowlayout.AddChidren(btnswitchtxet);
|
|
var btnswitch = new Button
|
{
|
Width = Application.GetMinRealAverage(104),
|
Height = Application.GetMinRealAverage(63),
|
UnSelectedImagePath = "ZigeeLogic/logicclose.png",
|
SelectedImagePath = "ZigeeLogic/logicopen.png",
|
X = Application.GetRealWidth(965 - 104),
|
Gravity = Gravity.CenterVertical,
|
};
|
pushswitchRowlayout.AddChidren(btnswitch);
|
|
|
var custompushFrameLayout = new FrameLayout
|
{
|
Height = Application.GetRealHeight(0),
|
BackgroundColor = ZigbeeColor.Current.LogicBlankBackgroundColor,
|
};
|
middle.AddChidren(custompushFrameLayout);
|
|
var custompushRowLayout = new RowLayout
|
{
|
Y = Application.GetRealHeight(30),
|
Width = Application.GetRealWidth(965),
|
Height = Application.GetRealHeight(130),
|
X = Application.GetRealWidth(58),
|
LineColor = ZigbeeColor.Current.LogicBlankBackgroundColor,
|
};
|
custompushFrameLayout.AddChidren(custompushRowLayout);
|
|
var btncustompush = new Button
|
{
|
TextID = MyInternationalizationString.custompush,
|
TextAlignment = TextAlignment.CenterLeft,
|
TextColor = ZigbeeColor.Current.LogicTextBlackColor,
|
Width = Application.GetRealWidth(300),
|
Height = Application.GetRealHeight(60),
|
Gravity = Gravity.CenterVertical,
|
TextSize = 14,
|
};
|
custompushRowLayout.AddChidren(btncustompush);
|
|
|
var custompushback = new Button
|
{
|
Width = Application.GetRealWidth(58),
|
Height = Application.GetRealHeight(58),
|
UnSelectedImagePath = "ZigeeLogic/next.png",
|
X = Application.GetRealWidth(965 - 58),
|
Gravity = Gravity.CenterVertical,
|
};
|
custompushRowLayout.AddChidren(custompushback);
|
EventHandler<MouseEventArgs> customclick = (sender, e) =>
|
{
|
var CustomText = new CustomText();
|
UserView.HomePage.Instance.AddChidren(CustomText);
|
UserView.HomePage.Instance.PageIndex += 1;
|
CustomText.Show();
|
|
};
|
btncustompush.MouseUpEventHandler += customclick;
|
custompushback.MouseUpEventHandler += customclick;
|
custompushRowLayout.MouseUpEventHandler += customclick;
|
|
#endregion
|
|
bool tag = false;//标记开关状态;
|
btnswitch.MouseUpEventHandler += (sender1, e1) =>
|
{
|
btnswitch.IsSelected = !btnswitch.IsSelected;
|
if (btnswitch.IsSelected)
|
{
|
tag = true;
|
custompushFrameLayout.Height = Application.GetRealHeight(160);
|
if (Common.Logic.CurrentLogic.LogicId != 0)
|
{
|
Send.Data("添加/更新", "/App/HomeLogicConfig", "POST");
|
}
|
|
}
|
else
|
{
|
tag = false;
|
custompushFrameLayout.Height = Application.GetRealHeight(0);
|
if (Common.Logic.CurrentLogic.LogicId != 0)
|
{
|
Send.Data("删除", "/App/DelHomeLogicConfig", "POST");
|
}
|
|
}
|
};
|
|
var saveFrameLayout = new FrameLayout
|
{
|
Y = middle.Bottom,
|
Height = Application.GetRealHeight(180),
|
BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor,
|
};
|
this.AddChidren(saveFrameLayout);
|
|
var btnsave = new Button
|
{
|
X = Application.GetRealWidth(85),
|
Height = Application.GetRealHeight(130),//194
|
Width = Application.GetRealWidth(910),
|
Radius = (uint)Application.GetRealHeight(60),
|
BackgroundColor = ZigbeeColor.Current.LogicBtnSaveBackgroundColor,
|
TextID = MyInternationalizationString.Save,
|
TextColor = ZigbeeColor.Current.LogicBtnSaveTextColor,
|
TextSize = 16,
|
};
|
saveFrameLayout.AddChidren(btnsave);
|
btnsave.MouseUpEventHandler += async (sender, e) =>
|
{
|
var name = logicTextBox.Text.Trim();
|
if (string.IsNullOrEmpty(logicTextBox.Text.Trim()))
|
{
|
new Alert(Language.StringByID(MyInternationalizationString.Tip), Language.StringByID(MyInternationalizationString.PleaseEnterLogicName), Language.StringByID(MyInternationalizationString.Close)).Show();
|
return;
|
}
|
//var logicname = Common.Logic.LockLogicList.Find((logic) => Common.Logic.CurrentLogic.LogicId != logic.LogicId && logic.LogicName == name);
|
//if (logicname != null)
|
//{
|
// new Alert(Language.StringByID(MyInternationalizationString.Tip), Language.StringByID(MyInternationalizationString.Rename), Language.StringByID(MyInternationalizationString.Close)).Show();
|
// return;
|
//}
|
|
Common.Logic.CurrentLogic.LogicName = name;
|
|
//判断是新添加逻辑(默认0)还是修改逻辑
|
CommonPage.Loading.Start();
|
if (Common.Logic.CurrentLogic.LogicId == 0)
|
{
|
//发送添加逻辑命令
|
var logicifon = await Send.AddModifyLogic(Common.Logic.CurrentLogic);
|
if (logicifon != null && logicifon.LogicId != 0)
|
{
|
Common.Logic.CurrentLogic.LogicId = logicifon.LogicId;
|
Common.Logic.LockLogicList.Add(Common.Logic.CurrentLogic);
|
if (tag)
|
{
|
Send.Data("添加/更新", "/App/HomeLogicConfig", "POST");
|
}
|
}
|
}
|
else
|
{
|
//发送修改逻辑命令
|
Send.AddModifyLogic(Common.Logic.CurrentLogic);
|
}
|
|
CommonPage.Loading.Hide();
|
UserView.HomePage.Instance.RemoveViewByTag("LockLogic");
|
UserView.HomePage.Instance.RemoveViewByTag("LockLogicList");
|
var doorLockLogicList = new LockLogicList();
|
UserView.HomePage.Instance.AddChidren(doorLockLogicList);
|
UserView.HomePage.Instance.PageIndex += 1;
|
doorLockLogicList.Show();
|
};
|
|
}
|
public void AddCondition(int value)
|
{
|
var addCondition = new AddCondition();
|
addCondition.conditionsIndex = value;
|
UserView.HomePage.Instance.AddChidren(addCondition);
|
UserView.HomePage.Instance.PageIndex += 1;
|
addCondition.Show();
|
|
}
|
}
|
}
|