From 9cfd22c2c308adc7a7ce38cf96be04a70048de01 Mon Sep 17 00:00:00 2001
From: 陈嘉乐 <cjl@hdlchina.com.cn>
Date: 星期一, 20 七月 2020 15:57:57 +0800
Subject: [PATCH] 2020-07-20-1
---
ZigbeeApp/Shared/Phone/Device/Logic/Method.cs | 202 +++++++++++++++++++++++++++++++++++++++++---------
1 files changed, 166 insertions(+), 36 deletions(-)
diff --git a/ZigbeeApp/Shared/Phone/Device/Logic/Method.cs b/ZigbeeApp/Shared/Phone/Device/Logic/Method.cs
index 16cbc62..050c308 100644
--- a/ZigbeeApp/Shared/Phone/Device/Logic/Method.cs
+++ b/ZigbeeApp/Shared/Phone/Device/Logic/Method.cs
@@ -83,6 +83,16 @@
{
//杩囨护鎺変笉鏀寔鐨勮澶�
continue;
+ }
+ if (device.Type == DeviceType.DoorLock)
+ {
+ var myInfo = LocalDevice.Current.GetMyDeviceEnumInfo(new List<CommonDevice>() { device });
+ if (myInfo.ConcreteType == DeviceConcreteType.IntelligentLocks_Sone)
+ {
+ //鏆傛椂涓嶆敮鎸丼-one闂ㄩ攣;
+ //杩囨护鎺変笉鏀寔S-one闂ㄩ攣璁惧;
+ continue;
+ }
}
deviceUIlist.Add(device);
}
@@ -97,40 +107,47 @@
{
List<string> devicetypelist = new List<string>();
devicetypelist.Clear();
- var lightjosn = devicelist.Find((device) => device.Type == DeviceType.DimmableLight || device.Type == DeviceType.OnOffOutput);
+
+ 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 iASZonejosn = devicelist.Find((device) => device.Type == DeviceType.IASZone || device.Type == DeviceType.TemperatureSensor);
- if (iASZonejosn != null)
- {
- devicetypelist.Add(Language.StringByID(MyInternationalizationString.sensor));
- }
- 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 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;
@@ -149,6 +166,7 @@
{
DeviceTypeList.Add(DeviceType.OnOffOutput);//0x0101鍗佽繘鍒�257
DeviceTypeList.Add(DeviceType.DimmableLight);
+ DeviceTypeList.Add(DeviceType.ColorTemperatureLight);
}
else if (devicetype == Language.StringByID(MyInternationalizationString.Curtains))
{
@@ -299,6 +317,12 @@
selectedpatm = "ZigeeLogic/selectedairswitch.png";
}
break;
+ case DeviceType.ColorTemperatureLight:
+ {
+ patm = "ZigeeLogic/nightLight.png";
+ selectedpatm = "ZigeeLogic/nightLightSelected.png";
+ }
+ break;
}
button.UnSelectedImagePath = patm;
button.SelectedImagePath = selectedpatm;
@@ -333,8 +357,9 @@
deviceTypeList.Add(DeviceType.WindowCoveringDevice);
deviceTypeList.Add(DeviceType.Thermostat);
deviceTypeList.Add(DeviceType.AirSwitch);
+ deviceTypeList.Add(DeviceType.ColorTemperatureLight);
///闂ㄩ攣鐗规畩
- deviceTypeList.Add(DeviceType.DoorLock);
+ // deviceTypeList.Add(DeviceType.DoorLock);
}
break;
case "condition_mould":
@@ -355,8 +380,9 @@
deviceTypeList.Add(DeviceType.WindowCoveringDevice);
deviceTypeList.Add(DeviceType.Thermostat);
deviceTypeList.Add(DeviceType.AirSwitch);
+ deviceTypeList.Add(DeviceType.ColorTemperatureLight);
///闂ㄩ攣鐗规畩
- deviceTypeList.Add(DeviceType.DoorLock);
+ // deviceTypeList.Add(DeviceType.DoorLock);
}
break;
@@ -685,7 +711,11 @@
Common.Logic.CurrentLogic.LogicIsCustomPushText = 0;
pushview.lineBtn.BackgroundColor = ZigbeeColor.Current.LogicBlankBackgroundColor;
}
- Send.Zj(LogicView.IfString.Tag, Common.Logic.CurrentLogic);
+ if (!Config.Instance.Home.IsVirtually)
+ {
+ Send.Zj(LogicView.IfString.Tag, Common.Logic.CurrentLogic);
+
+ }
};
if (Common.Logic.CurrentLogic.LogicIsCustomPushText == 0)
@@ -712,6 +742,16 @@
/// <param name="CurrentLogic">褰撳墠閫昏緫</param>
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,
@@ -732,28 +772,94 @@
bool succeed = false;
//鍒ゆ柇鏄柊娣诲姞閫昏緫(榛樿0)杩樻槸淇敼閫昏緫
CommonPage.Loading.Start();
- if (CurrentLogic.LogicId == 0)
+
+ if (Config.Instance.Home.IsVirtually)
{
- //鍙戦�佹坊鍔犻�昏緫鍛戒护
- var logicifon = await Send.AddModifyLogic(CurrentLogic);
- if (logicifon != null && logicifon.LogicId != 0)
+ if (Common.Logic.LogicList.Count == 0)
{
- succeed = true;
- CurrentLogic.LogicId = logicifon.LogicId;
+ CurrentLogic.LogicId = 1;
Common.Logic.LogicList.Add(CurrentLogic);
- if (tag)
- {
- Send.Zj(tag, 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
{
- //鍙戦�佷慨鏀归�昏緫鍛戒护锛�
- //淇敼鍛戒护涓嶉渶瑕佺瓑寰呭洖澶嶏紱
- Send.AddModifyLogic(CurrentLogic);
- //缂栬緫榛樿鎴愬姛锛堜笉鑰冭檻缃戠粶鎯呭喌锛夛紱
- succeed = true;
+ 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();
@@ -765,17 +871,33 @@
//TipView("娣诲姞鑷姩鍖栧け璐�");
//return;
}
- UserView.HomePage.Instance.RemoveViewByTag("Logic");
+
+ UserView.HomePage.Instance.RemoveViewByTag("Logic");//绉婚櫎鎵�鏈夋爣璁癓ogic鐣岄潰
if (LogicView.IfString._Logic == if_logic)
{
- Category.Category.instance?.RefreshBodyView();
+ //鍙埛鏂板垎绫�-鑷姩鍖栦笂涓嬫粦鍔╲iew锛�
+ Phone.Category.CategoryMainForm.instance?.RefreshBodyView();
+ // Category.Category.instance?.RefreshBodyView();
}
else if (LogicView.IfString._LockLogic == if_logic)
{
+ //璺冲埌闂ㄩ攣鑱斿姩浜嬩欢鍒楄〃鐣岄潰
+ UserView.HomePage.Instance.RemoveViewByTag("LockListView");//绉婚櫎鎵�鏈夋爣璁癓ockListView鐣岄潰
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");//绉婚櫎鎵�鏈夋爣璁癓ockListView鐣岄潰
+ //var soneLogicList = new SoneLogicList();
+ //UserView.HomePage.Instance.AddChidren(soneLogicList);
+ //UserView.HomePage.Instance.PageIndex += 1;
+ //soneLogicList.Show();
+
+ SoneLogicList.soneLogicList?.RefreshView();
}
}
@@ -791,5 +913,13 @@
UserView.HomePage.Instance.PageIndex += 1;
deviceTarget.Show(str1, str2);
}
+
+ /// <summary>
+ /// 鐣岄潰楂樺害
+ /// </summary>
+ public static int H = 1922;
+
+
+
}
}
--
Gitblit v1.8.0