using System;
using System.Collections.Generic;
using Newtonsoft.Json.Linq;
using ZigBee.Device;
using ZigBee.Common;
using Shared.Common;
using System.Collections.Specialized;
using System.Net;
using System.IO;
using Shared.R;
namespace Shared.Phone.Device.Logic
{
public class Method
{
//
/// 通过设备找到区域(房间)名称
///
/// Btnregionname.
/// Device.
public static void RoomNmae(Button button, CommonDevice device)
{
button.Text = UserCenter.HdlRoomLogic.Current.GetRoomNameByDevice(device);
}
///
/// 返回楼层所有的房间的列表
///
/// 判断字符串
/// 楼层ID
///
public static List GetRoomList(string type, string floorId = null)
{
var list = new List();
var listAllRoom = UserCenter.HdlRoomLogic.Current.GetAllListRooms();
for (int i = 0; i < listAllRoom.Count; i++)
{
if (type == "action_logicscene" || type == "action_lockscene")
{
if (listAllRoom[i].ListSceneId.Count == 0)
{ ///过滤掉没有场景的房间
continue;
}
}
else
{
///区分出输入条件和输出目标设备
var listdevicetype = GetDevice(type);
var listdevice = GetDeviceUIList(listAllRoom[i], listdevicetype);
if (listdevice.Count == 0)
{
///过滤掉没有设备的房间
continue;
}
}
list.Add(listAllRoom[i]);
}
if (string.IsNullOrEmpty(floorId))
{
//没有楼层直接返回所有的房间;
return list;
}
//某楼层所有的房间;
return list.FindAll((obj) => obj.FloorId == floorId);
}
///
/// 获取房间的设备列表
///
/// 当前房间
/// 设备类型
///
public static List GetDeviceUIList(Common.Room room, List deviceTypelist)
{
var deviceUIlist = new List();
foreach (var deviceKey in room.ListDevice)
{
var device = LocalDevice.Current.GetDevice(deviceKey);
if (device == null)
{
continue;
}
if (!deviceTypelist.Contains(device.Type))
{
//过滤掉不支持的设备
continue;
}
if (device.Type == DeviceType.DoorLock)
{
var myInfo = LocalDevice.Current.GetMyDeviceEnumInfo(new List() { device });
if (myInfo.ConcreteType == DeviceConcreteType.IntelligentLocks_Sone)
{
//暂时不支持S-one门锁;
//过滤掉不支持S-one门锁设备;
continue;
}
}
deviceUIlist.Add(device);
}
return deviceUIlist;
}
///
/// 排列所有设备类型的列表
///
/// 设备列表
///
public static List GetDeviceTypeList(List devicelist)
{
List devicetypelist = new List();
devicetypelist.Clear();
var lightjosn = devicelist.Find((device) => device.Type == DeviceType.DimmableLight || device.Type == DeviceType.OnOffOutput || device.Type == DeviceType.ColorTemperatureLight);
if (lightjosn != null)
{
devicetypelist.Add(Language.StringByID(MyInternationalizationString.Lights));
}
var curtainjosn = devicelist.Find((device) => device.Type == DeviceType.WindowCoveringDevice);
if (curtainjosn != null)
{
devicetypelist.Add(Language.StringByID(MyInternationalizationString.Curtains));
}
var ac = devicelist.Find((device) => device.Type == DeviceType.Thermostat);
if (ac != null)
{
devicetypelist.Add(Language.StringByID(MyInternationalizationString.AC));
}
var onOffSwitchjson = devicelist.Find((device) => device.Type == DeviceType.OnOffSwitch);
if (onOffSwitchjson != null)
{
devicetypelist.Add(Language.StringByID(MyInternationalizationString.OnOffSwitch));
}
var doorLock = devicelist.Find((device) => device.Type == DeviceType.DoorLock);
if (doorLock != null)
{
devicetypelist.Add(Language.StringByID(MyInternationalizationString.doorLock));
}
var airSwitch = devicelist.Find((device) => device.Type == DeviceType.AirSwitch);
if (airSwitch != null)
{
devicetypelist.Add(Language.StringByID(MyInternationalizationString.Airswitch));
}
var iASZonejosn = devicelist.Find((device) => device.Type == DeviceType.IASZone || device.Type == DeviceType.TemperatureSensor);
if (iASZonejosn != null)
{
devicetypelist.Add(Language.StringByID(MyInternationalizationString.sensor));
}
return devicetypelist;
}
///
/// 某个设备类型的列表
///
/// 判断字符串
///
public static List GetDeviceType(string devicetype)
{
List DeviceTypeList = new List();
DeviceTypeList.Clear();
if (devicetype == Language.StringByID(MyInternationalizationString.Lights))
{
DeviceTypeList.Add(DeviceType.OnOffOutput);//0x0101十进制257
DeviceTypeList.Add(DeviceType.DimmableLight);
DeviceTypeList.Add(DeviceType.ColorTemperatureLight);
}
else if (devicetype == Language.StringByID(MyInternationalizationString.Curtains))
{
DeviceTypeList.Add(DeviceType.WindowCoveringDevice);
}
else if (devicetype == Language.StringByID(MyInternationalizationString.OnOffSwitch))
{
DeviceTypeList.Add(DeviceType.OnOffSwitch);
}
else if (devicetype == Language.StringByID(MyInternationalizationString.sensor))
{
DeviceTypeList.Add(DeviceType.IASZone);
DeviceTypeList.Add(DeviceType.TemperatureSensor);
}
else if (devicetype == Language.StringByID(MyInternationalizationString.doorLock))
{
DeviceTypeList.Add(DeviceType.DoorLock);
}
else if (devicetype == Language.StringByID(MyInternationalizationString.Curtains))
{
DeviceTypeList.Add(DeviceType.WindowCoveringDevice);
}
else if (devicetype == Language.StringByID(MyInternationalizationString.AC))
{
DeviceTypeList.Add(DeviceType.Thermostat);
}
else if (devicetype == Language.StringByID(MyInternationalizationString.Airswitch))
{
DeviceTypeList.Add(DeviceType.AirSwitch);
}
return DeviceTypeList;
}
///
/// 显示某个类型设备的图标
///
/// 判断字符串
///
public static string GetDeviceTypeIcon(string devicetype)
{
string patm = "";
if (devicetype == Language.StringByID(MyInternationalizationString.OnOffSwitch))
{
patm = "ZigeeLogic/selectedpanel.png";
}
else if (devicetype == Language.StringByID(MyInternationalizationString.sensor))
{
patm = "ZigeeLogic/selectedsenor.png";
}
else if (devicetype == Language.StringByID(MyInternationalizationString.doorLock))
{
patm = "ZigeeLogic/selecteddoorlock.png";
}
else if (devicetype == Language.StringByID(MyInternationalizationString.Lights))
{
patm = "ZigeeLogic/selectedlight.png";
}
else if (devicetype == Language.StringByID(MyInternationalizationString.Curtains))
{
patm = "ZigeeLogic/selectedcurtain.png";
}
else if (devicetype == Language.StringByID(MyInternationalizationString.AC))
{
patm = "ZigeeLogic/selectedac.png";
}
else if (devicetype == Language.StringByID(MyInternationalizationString.Airswitch))
{
patm = "ZigeeLogic/selectedairswitch.png";
}
return patm;
}
///
/// 显示设备的图标
///
/// 设备对象
/// 显示图标的控件
public static void GetDeviceIcon(CommonDevice device, Button button)
{
string patm = "";
string selectedpatm = "";
switch (device.Type)
{
case DeviceType.OnOffOutput:
{
patm = "ZigeeLogic/light.png";
selectedpatm = "ZigeeLogic/selectedlight.png";
}
break;
case DeviceType.IASZone:
{
var iASZonedevice = device as IASZone;
if (iASZonedevice.DeviceID != 1026)
{
break;
}
patm = $"ZigeeLogic/sensor{iASZonedevice.IasDeviceType}.png";
selectedpatm = $"ZigeeLogic/selectedsensor{iASZonedevice.IasDeviceType}.png";
}
break;
case DeviceType.TemperatureSensor:
{
var temperatureSensor = device as TemperatureSensor;
if (temperatureSensor.SensorDiv == 1)
{
patm = $"ZigeeLogic/temperature.png";
selectedpatm = $"ZigeeLogic/selectedtemperature.png";
}
else
{
patm = "ZigeeLogic/humidity.png";
selectedpatm = "ZigeeLogic/selectedhumidity.png";
}
}
break;
case DeviceType.OnOffSwitch:
{
patm = "ZigeeLogic/panel.png";
selectedpatm = "ZigeeLogic/selectedpanel.png";
}
break;
case DeviceType.DoorLock:
{
patm = "ZigeeLogic/doorlock.png";
selectedpatm = "ZigeeLogic/selecteddoorlock.png";
}
break;
case DeviceType.DimmableLight:
{
patm = "ZigeeLogic/dimmableLight.png";
selectedpatm = "ZigeeLogic/selecteddimmableLight.png";
}
break;
case DeviceType.WindowCoveringDevice:
{
patm = "ZigeeLogic/curtain.png";
selectedpatm = "ZigeeLogic/selectedcurtain.png";
}
break;
case DeviceType.Thermostat:
{
patm = "ZigeeLogic/ac.png";
selectedpatm = "ZigeeLogic/selectedac.png";
}
break;
case DeviceType.AirSwitch:
{
patm = "ZigeeLogic/airswitch.png";
selectedpatm = "ZigeeLogic/selectedairswitch.png";
}
break;
case DeviceType.ColorTemperatureLight:
{
patm = "ZigeeLogic/nightLight.png";
selectedpatm = "ZigeeLogic/nightLightSelected.png";
}
break;
}
button.UnSelectedImagePath = patm;
button.SelectedImagePath = selectedpatm;
}
///
/// 支持的设备
///
/// 判断字符串
///
public static List GetDevice(string type)
{
/// 设备类型列表
List deviceTypeList = new List();
deviceTypeList.Clear();
switch (type)
{
case "condition_logic":
{//自动化支持的条件设备
deviceTypeList.Add(DeviceType.IASZone);
deviceTypeList.Add(DeviceType.OnOffSwitch);
deviceTypeList.Add(DeviceType.OnOffOutput);
deviceTypeList.Add(DeviceType.DoorLock);
deviceTypeList.Add(DeviceType.TemperatureSensor);
}
break;
case "action_logic":
{
//自动化支持的目标设备
deviceTypeList.Add(DeviceType.OnOffOutput);
deviceTypeList.Add(DeviceType.DimmableLight);
deviceTypeList.Add(DeviceType.WindowCoveringDevice);
deviceTypeList.Add(DeviceType.Thermostat);
deviceTypeList.Add(DeviceType.AirSwitch);
deviceTypeList.Add(DeviceType.ColorTemperatureLight);
///门锁特殊
// deviceTypeList.Add(DeviceType.DoorLock);
}
break;
case "condition_mould":
{
//自动化模板支持的条件设备
deviceTypeList.Add(DeviceType.IASZone);
}
break;
case "action_mould":
{ //自动化模板支持的目标设备
deviceTypeList.Add(DeviceType.OnOffOutput);
}
break;
case "action_lockaction":
{//门锁联动事件支持的目标设备
deviceTypeList.Add(DeviceType.OnOffOutput);
deviceTypeList.Add(DeviceType.DimmableLight);
deviceTypeList.Add(DeviceType.WindowCoveringDevice);
deviceTypeList.Add(DeviceType.Thermostat);
deviceTypeList.Add(DeviceType.AirSwitch);
deviceTypeList.Add(DeviceType.ColorTemperatureLight);
///门锁特殊
// deviceTypeList.Add(DeviceType.DoorLock);
}
break;
}
return deviceTypeList;
}
///
/// 更新执行周期的方法
///
/// 显示周期文本
/// 当前逻辑对象
public static void UpdateWeek(Button button, Common.Logic currentLogic)
{
switch (currentLogic.TimeAttribute.Repeat)
{
///0:只执行一次,执行后IsEnable值置;1,今年内执行;2:每天执行;3:每月执行;4:每年执行;5:周重复。
case 0:
{
button.Text = Language.StringByID(MyInternationalizationString.executeonce);
}; break;
case 1: { }; break;
case 2:
{
button.Text = Language.StringByID(MyInternationalizationString.everyday);
}; break;
case 3:
{
string len = "", value = "";
var stringvalue = Convert.ToString(currentLogic.TimeAttribute.MonthDate, 2);
var str = stringvalue.Insert(0, new string('0', 32 - stringvalue.Length));
for (int j = 31; j >= 0; j--)
{
len += str.Substring(j, 1);
}
for (int j = 0; j < len.Length; j++)
{
var strvalue = len.Substring(j, 1);
if (strvalue == "1")
{
value += (j + 1).ToString() + ",";
}
}
button.Text = Language.StringByID(MyInternationalizationString.monthly) + value.TrimEnd(',') + Language.StringByID(MyInternationalizationString.day);
}; break;
case 4:
{
Dictionary dictionary = new Dictionary();
///找出执行的月份和天数
if (currentLogic.TimeAttribute.SelectMonDate.Count != 0)
{
for (int i = 0; i < currentLogic.TimeAttribute.SelectMonDate.Count; i++)
{
var dayvalue = currentLogic.TimeAttribute.SelectMonDate[i];
if (dayvalue != 0)
{
dictionary.Add(i + 1, dayvalue);
}
}
}
if (dictionary.Count != 0 && dictionary.Count == 1)
{
string len = "", leng = "";
int minvalue = 0, Maximum = 0;
foreach (var value in dictionary)
{
///取出月份
var month = value.Key;
///取出日数
var day = value.Value;
var maxvalue = Convert.ToString(day, 2);
var str = maxvalue.Insert(0, new string('0', 32 - maxvalue.Length));
for (int j = 31; j >= 0; j--)
{
len += str.Substring(j, 1);
}
for (int j = 0; j < len.Length; j++)
{
var strvalue = len.Substring(j, 1);
if (strvalue == "1")
{
minvalue = j + 1;
break;
}
}
for (int j = 0; j < len.Length; j++)
{
var strvalue = len.Substring(j, 1);
if (strvalue == "1")
{
Maximum = j + 1;
}
}
if (month.ToString().Length < 2)
{
leng = "0" + month.ToString();
}
else
{
leng = month.ToString();
}
if (minvalue == Maximum)
{
button.Text = Language.StringByID(MyInternationalizationString.everyyear) + leng + "/" + (minvalue.ToString().Length < 2 ? "0" + minvalue.ToString() : minvalue.ToString());
}
else
{
button.Text = Language.StringByID(MyInternationalizationString.everyyear) + leng + "/" + (minvalue.ToString().Length < 2 ? "0" + minvalue.ToString() : minvalue.ToString()) + "-" + leng + "/" + (Maximum.ToString().Length < 2 ? "0" + Maximum.ToString() : Maximum.ToString());
}
}
}
else
{
int b = 0;
string stringtext = "";
foreach (var value in dictionary)
{
string len = "", leng = "";
int minvalue = 0, Maximum = 0;
///取出月份
var month = value.Key;
///取出日数
var day = value.Value;
var maxvalue = Convert.ToString(day, 2);
var str = maxvalue.Insert(0, new string('0', 32 - maxvalue.Length));
for (int j = 31; j >= 0; j--)
{
len += str.Substring(j, 1);
}
if (month.ToString().Length < 2)
{
leng = "0" + month.ToString();
}
else
{
leng = month.ToString();
}
if (b == 0)
{
for (int j = 0; j < len.Length; j++)
{
var strvalue = len.Substring(j, 1);
if (strvalue == "1")
{
minvalue = j + 1;
break;
}
}
stringtext += leng + "/" + (minvalue.ToString().Length < 2 ? "0" + minvalue.ToString() : minvalue.ToString()) + "-";
}
if (b == dictionary.Count - 1)
{
for (int j = 0; j < len.Length; j++)
{
var strvalue = len.Substring(j, 1);
if (strvalue == "1")
{
Maximum = j + 1;
}
}
stringtext += leng + "/" + (Maximum.ToString().Length < 2 ? "0" + Maximum.ToString() : Maximum.ToString());
}
b++;
}
button.Text = Language.StringByID(MyInternationalizationString.everyyear) + stringtext;
}
}; break;
case 5:
{
string len = "", text = "";
List listvalueInt = new List();
listvalueInt.Clear();
var maxvalue = Convert.ToString(currentLogic.TimeAttribute.WeekDay, 2);
var str = maxvalue.Insert(0, new string('0', 8 - maxvalue.Length));
for (int j = 7; j >= 0; j--)
{
len += str.Substring(j, 1);
}
for (int j = 0; j < len.Length; j++)
{
var strvalue = len.Substring(j, 1);
if (strvalue == "1")
{
listvalueInt.Add(j + 1);
if ((j + 1) == 1)
{
text += Language.StringByID(MyInternationalizationString.week1) + Language.StringByID(MyInternationalizationString.mon1) + ",";
//text += Language.StringByID(MyInternationalizationString.mon) + ",";
}
else if ((j + 1) == 2)
{
text += Language.StringByID(MyInternationalizationString.week1) + Language.StringByID(MyInternationalizationString.tue1) + ",";
//text += Language.StringByID(MyInternationalizationString.tue) + ",";
}
else if ((j + 1) == 3)
{
text += Language.StringByID(MyInternationalizationString.week1) + Language.StringByID(MyInternationalizationString.wed1) + ",";
//text += Language.StringByID(MyInternationalizationString.wed) + ",";
}
else if ((j + 1) == 4)
{
text += Language.StringByID(MyInternationalizationString.week1) + Language.StringByID(MyInternationalizationString.thu1) + ",";
//text += Language.StringByID(MyInternationalizationString.thu) + ",";
}
else if ((j + 1) == 5)
{
text += Language.StringByID(MyInternationalizationString.week1) + Language.StringByID(MyInternationalizationString.frl1) + ",";
//text += Language.StringByID(MyInternationalizationString.frl) + ",";
}
else if ((j + 1) == 6)
{
text += Language.StringByID(MyInternationalizationString.week1) + Language.StringByID(MyInternationalizationString.sat1) + ",";
//text += Language.StringByID(MyInternationalizationString.sat) + ",";
}
else if ((j + 1) == 7)
{
text += Language.StringByID(MyInternationalizationString.week1) + Language.StringByID(MyInternationalizationString.sun1) + ",";
//text += Language.StringByID(MyInternationalizationString.sun) + ",";
}
}
}
//暂时隐藏掉,需要显示周末和工作日再放开;
//if (listvalueInt.Count == 5 && !listvalueInt.Contains(6) && !listvalueInt.Contains(7))
//{
// btndisplaycycle.Text = Language.StringByID(MyInternationalizationString.workingday);
//}
//else if (listvalueInt.Count == 2 && listvalueInt.Contains(6) && listvalueInt.Contains(7))
//{
// btndisplaycycle.Text = Language.StringByID(MyInternationalizationString.weekend);
//}
//else if (listvalueInt.Count == 7)
//{
// btndisplaycycle.Text = Language.StringByID(MyInternationalizationString.everyday);
//}
//else
//{
// btndisplaycycle.Text = Language.StringByID(MyInternationalizationString.week1) + text.Replace(Language.StringByID(MyInternationalizationString.week1), "").TrimEnd(',');
//}
button.Text = Language.StringByID(MyInternationalizationString.week1) + text.Replace(Language.StringByID(MyInternationalizationString.week1), "").TrimEnd(',');
//btndisplaycycle.Text = text.TrimEnd(',');
}; break;
}
}
///
///返回设备的方法
///
/// 设备Mac
/// 设备端口
///
public static ZigBee.Device.CommonDevice GetCommonDevice(string DeviceAddr, string Epoint)
{
var device = Common.Logic.LogicDviceList.Find((obj) => { return ((obj.DeviceAddr == DeviceAddr) && (obj.DeviceEpoint.ToString() == Epoint)); });
if (device == null)
{
device = new ZigBee.Device.CommonDevice();
}
return device;
}
///
/// 推送设置的方法
///
///
public static void Push(VerticalScrolViewLayout middle)
{
LogicView.Addview pushview = new LogicView.Addview();
pushview.switchBtn.Visible = true;
pushview.titleBtn.TextID = MyInternationalizationString.pushswitch;
middle.AddChidren(pushview.AddDeviceView());
LogicView.Addview custompushview = new LogicView.Addview();
custompushview.iconBtn.Visible = true;
custompushview.iconBtn.UnSelectedImagePath = "ZigeeLogic/next.png";
custompushview.titleBtn.TextID = MyInternationalizationString.custompush;
custompushview.lineBtn.BackgroundColor = ZigbeeColor.Current.LogicBlankBackgroundColor;
middle.AddChidren(custompushview.AddDeviceView());
EventHandler customclick = (sender, e) =>
{
var CustomText = new CustomText();
UserView.HomePage.Instance.AddChidren(CustomText);
UserView.HomePage.Instance.PageIndex += 1;
CustomText.Show();
};
custompushview.frameLayout.MouseUpEventHandler += customclick;
custompushview.clickBtn.MouseUpEventHandler += customclick;
// bool tag = false;//标记开关状态;
pushview.clickBtn.MouseUpEventHandler += (sender1, e1) =>
{
pushview.switchBtn.IsSelected = !pushview.switchBtn.IsSelected;
if (pushview.switchBtn.IsSelected)
{
LogicView.IfString.Tag = true;
custompushview.frameLayout.Height = Application.GetRealHeight(160);
Common.Logic.CurrentLogic.LogicIsCustomPushText = 1;
pushview.lineBtn.BackgroundColor = ZigbeeColor.Current.LogicRowLayoutLineColor;
}
else
{
LogicView.IfString.Tag = false;
custompushview.frameLayout.Height = Application.GetRealHeight(0);
Common.Logic.CurrentLogic.LogicIsCustomPushText = 0;
pushview.lineBtn.BackgroundColor = ZigbeeColor.Current.LogicBlankBackgroundColor;
}
if (!Config.Instance.Home.IsVirtually)
{
Send.Zj(LogicView.IfString.Tag, Common.Logic.CurrentLogic);
}
};
if (Common.Logic.CurrentLogic.LogicIsCustomPushText == 0)
{
LogicView.IfString.Tag = false;
pushview.switchBtn.IsSelected = false;
custompushview.frameLayout.Height = Application.GetRealHeight(0);
pushview.lineBtn.BackgroundColor = ZigbeeColor.Current.LogicBlankBackgroundColor;
}
else
{
LogicView.IfString.Tag = true;
pushview.switchBtn.IsSelected = true;
custompushview.frameLayout.Height = Application.GetRealHeight(160);
pushview.lineBtn.BackgroundColor = ZigbeeColor.Current.LogicRowLayoutLineColor;
}
}
///
/// 保存自动化的方法
///
/// 判断跳转界面的字符串
/// 逻辑名称
///
/// 当前逻辑
public async static void SaveLogic(string if_logic, string name, bool tag, Common.Logic CurrentLogic)
{
if (CurrentLogic.Conditions.Count == 0 || CurrentLogic.Actions.Count == 0)
{
var alert = new UserCenter.ShowMsgControl(UserCenter.ShowMsgType.Normal,
Language.StringByID(MyInternationalizationString.addnull),
Language.StringByID(MyInternationalizationString.confrim));
alert.Show();
return;
}
if (string.IsNullOrEmpty(name))
{
var alert = new UserCenter.ShowMsgControl(UserCenter.ShowMsgType.Normal,
Language.StringByID(MyInternationalizationString.PleaseEnterLogicName),
Language.StringByID(MyInternationalizationString.confrim));
alert.Show();
return;
}
///先隐藏判断名字相同的功能;
//var logicname = Common.Logic.LogicList.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;
//}
CurrentLogic.LogicName = name;
bool succeed = false;
//判断是新添加逻辑(默认0)还是修改逻辑
CommonPage.Loading.Start();
if (Config.Instance.Home.IsVirtually)
{
if (Common.Logic.LogicList.Count == 0)
{
CurrentLogic.LogicId = 1;
Common.Logic.LogicList.Add(CurrentLogic);
}
if (CurrentLogic.LogicId == 0)
{
bool d = false;
for (int i = 1; i < 50; i++)
{
for (int j = 0; j < Common.Logic.LogicList.Count; j++)
{
if (i != Common.Logic.LogicList[j].LogicId)
{
CurrentLogic.LogicId = i;
Common.Logic.LogicList.Add(CurrentLogic);
d = true;
break;
}
}
if (d)
{
break;
}
}
}
else
{
for (int j = 0; j < Common.Logic.LogicList.Count; j++)
{
if (CurrentLogic.LogicId == Common.Logic.LogicList[j].LogicId)
{
Common.Logic.LogicList.RemoveAt(j);
Common.Logic.LogicList.Insert(j,CurrentLogic);
break;
}
}
}
//自动化逻辑列表
}
else
{
if (CurrentLogic.LogicId == 0)
{
//发送添加逻辑命令
var logicifon = await Send.AddModifyLogic(CurrentLogic);
if (logicifon != null && logicifon.LogicId != 0)
{
succeed = true;
CurrentLogic.LogicId = logicifon.LogicId;
if (LogicView.IfString._Logic == if_logic || LogicView.IfString._SoneLogic == if_logic)
{
//自动化逻辑列表
Common.Logic.LogicList.Add(CurrentLogic);
}
if (LogicView.IfString._LockLogic == if_logic)
{
//门锁联动事件逻辑列表
Common.Logic.LockLogicList.Add(CurrentLogic);
}
if (LogicView.IfString._SoneLogic == if_logic)
{
//Sone门锁常开模式逻辑列表
Common.Logic.SoneLogicList.Add(CurrentLogic);
}
if (tag)
{
Send.Zj(tag, CurrentLogic);
}
}
}
else
{
//发送修改逻辑命令;
//修改命令不需要等待回复;
Send.AddModifyLogic(CurrentLogic);
//编辑默认成功(不考虑网络情况);
succeed = true;
}
}
CommonPage.Loading.Hide();
if (!succeed)//succeed标记是添加成功还是失败
{
//网关回复失败,不关闭界面,让它停留当前界面;
//(原因:考虑到失败重新编辑原来数据给用户带来了麻烦)
///提示:添加自动化失败;
//TipView("添加自动化失败");
//return;
}
UserView.HomePage.Instance.RemoveViewByTag("Logic");//移除所有标记Logic界面
if (LogicView.IfString._Logic == if_logic)
{
//只刷新分类-自动化上下滑动view;
Phone.Category.CategoryMainForm.instance?.RefreshBodyView();
// Category.Category.instance?.RefreshBodyView();
}
else if (LogicView.IfString._LockLogic == if_logic)
{
//跳到门锁联动事件列表界面
UserView.HomePage.Instance.RemoveViewByTag("LockListView");//移除所有标记LockListView界面
var doorLockLogicList = new DoorLockLogic.LockLogicList();
UserView.HomePage.Instance.AddChidren(doorLockLogicList);
UserView.HomePage.Instance.PageIndex += 1;
doorLockLogicList.Show();
}
else if (LogicView.IfString._SoneLogic == if_logic)
{
//跳到Sone门锁联动事件列表界面
//UserView.HomePage.Instance.RemoveViewByTag("SoneLogic");//移除所有标记LockListView界面
//var soneLogicList = new SoneLogicList();
//UserView.HomePage.Instance.AddChidren(soneLogicList);
//UserView.HomePage.Instance.PageIndex += 1;
//soneLogicList.Show();
SoneLogicList.soneLogicList?.RefreshView();
}
}
///
/// 跳入输出目标功能界面的方法
///
/// 设备界面识别字符串
/// 场景界面识别字符串
public static void View(string str1, string str2)
{
var deviceTarget = new DeviceTarget();
UserView.HomePage.Instance.AddChidren(deviceTarget);
UserView.HomePage.Instance.PageIndex += 1;
deviceTarget.Show(str1, str2);
}
///
/// 界面高度
///
public static int H = 1922;
}
}