From 136b9e2fc48249a5ff89874f1080ba94130e7a9e Mon Sep 17 00:00:00 2001
From: xm <1271024303@qq.com>
Date: 星期二, 19 五月 2020 11:12:29 +0800
Subject: [PATCH] Merge branch 'dev-tzy' into dev-2020xm
---
ZigbeeApp/Shared/Phone/Device/Logic/SoneLogicList.cs | 199 +++++++++++++++++++++++++++++++++----------------
1 files changed, 132 insertions(+), 67 deletions(-)
diff --git a/ZigbeeApp/Shared/Phone/Device/Logic/SoneLogicList.cs b/ZigbeeApp/Shared/Phone/Device/Logic/SoneLogicList.cs
index 17e5641..18fe327 100644
--- a/ZigbeeApp/Shared/Phone/Device/Logic/SoneLogicList.cs
+++ b/ZigbeeApp/Shared/Phone/Device/Logic/SoneLogicList.cs
@@ -31,6 +31,14 @@
/// 璁板綍閫変腑鏃堕棿
/// </summary>
public int timeValue = 0;
+ /// <summary>
+ /// 鏍囪鏄剧ず鎵ц鏃ユ湡(鐢ㄧ綉鍏崇殑锛岃繕鏄敤绯荤粺鐨勬椂闂�)
+ /// </summary>
+ public bool _if = false;
+ /// <summary>
+ /// 鏃堕棿鎴�
+ /// </summary>
+ public int timeLong = 0;
public async void Show()
{
@@ -60,11 +68,12 @@
this.AddChidren(middle);
#endregion
//鏄父寮�妯″紡鍐嶅幓璇诲彇
+
if (Send.CurrentDoorLock.IsDoorLockNormallyMode)
{
//杩涙潵鏇存柊涓�娆�
//鏌ユ壘鏄惁瀛樺湪鏃舵晥鎬ц嚜鍔ㄥ寲锛涙湁鐨勮瘽灏辫繑鍥炶嚜鍔ㄥ寲瀵硅薄;
- var logic = await SkipView.GetLogicIfon();
+ var logic = await SkipView.GetLogicIfon(Send.CurrentDoorLock);
if (logic != null)
{
try
@@ -72,6 +81,8 @@
//杩涙潵鏇存柊涓�娆″��
logicId = logic.LogicId;
timeValue = int.Parse(logic.Conditions[0]["DoorLockOpenDelayTime"]);
+ timeLong = int.Parse(logic.Conditions[0]["TriggerTime"]);
+
}
catch { }
}
@@ -86,7 +97,6 @@
BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor,
};
middle.AddChidren(fLayout);
- ModeView();
#endregion
#region 甯稿紑鑷姩鍖�
///绗笁鍧楃涓�绾х埗鎺т欢
@@ -100,7 +110,7 @@
};
middle.AddChidren(listLogicFl);
listLogicFl.SetCornerWithSameRadius(Application.GetRealHeight(58), HDLUtils.RectCornerTopLeft);
-
+ ModeView();
///娣诲姞甯稿紑鑷姩鍖栫殑鐖舵帶浠�
var addLogicfL = new FrameLayout
{
@@ -162,7 +172,11 @@
actionsInfo.Add("LinkType", 8);
actionsInfo.Add("DeviceAddr", Send.CurrentDoorLock.DeviceAddr);
actionsInfo.Add("Epoint", "200");
- actionsInfo.Add("PassData", "055704010113");//榛樿闂ㄩ攣甯稿叧
+ actionsInfo.Add("PassData", "055704010113");//榛樿闂ㄩ攣甯稿叧
+ Dictionary<string, string> accounts = new Dictionary<string, string>();
+ accounts.Add("Type", "8");
+ accounts.Add("Option4", Send.CurrentDoorLock.DeviceAddr.ToString());//鐢ㄤ簬鍒ゆ柇璇嗗埆鏄摢涓棬閿�;
+ accounts.Add("Option2", Send.CurrentDoorLock.DeviceEpoint.ToString());
//new涓�涓柊閫昏緫瀵硅薄锛�
//鏂板闂ㄩ攣甯稿紑妯″紡鑷姩鍖栧叆鍙o紱
Common.Logic.CurrentLogic = new Common.Logic();
@@ -170,7 +184,8 @@
Common.Logic.CurrentLogic.LogicType = 2;//鏍囪閫昏緫绫诲瀷
Common.Logic.CurrentLogic.LogicName = Language.StringByID(MyInternationalizationString.openmode);
Common.Logic.CurrentLogic.Conditions.Add(timeConditionsInfo);//娣诲姞鏉′欢
- Common.Logic.CurrentLogic.Actions.Add(actionsInfo);//娣诲姞鐩爣
+ Common.Logic.CurrentLogic.Actions.Add(actionsInfo);//娣诲姞鐩爣
+ Common.Logic.CurrentLogic.Accounts.Add(accounts);
var oneLogic = new OneLogic();
UserView.HomePage.Instance.AddChidren(oneLogic);
UserView.HomePage.Instance.PageIndex += 1;
@@ -264,10 +279,12 @@
{
if (logicId != 0)
{
+
///鏈夊彲鑳藉彧鏈夊父寮�妯″紡锛屾病鏈夋椂鏁堟�ц嚜鍔ㄥ寲
Send.DelLogic(logicId);
}
Send.CurrentDoorLock.IsDoorLockNormallyMode = false;
+ _if = false;
ModeView();
}
else
@@ -290,8 +307,8 @@
var timeTextBtn = new Button
{
Y = Application.GetRealHeight(127 + 69),
- X = Application.GetRealWidth(125),
- Width = Application.GetRealWidth(634 + 200),
+ X = Application.GetRealWidth(86),//125
+ Width = Application.GetRealWidth(907),//634 + 200
Height = Application.GetRealHeight(60),
TextSize = 15,
TextColor = ZigbeeColor.Current.LogicTextBlackColor,
@@ -299,20 +316,40 @@
if (logicId != 0)
{
openModeFl.AddChidren(timeTextBtn);
- ///鏈夋椂鏁堟�у父寮�鎵嶆樉绀烘椂闂存潯浠舵枃鏈�
- var y = DateTime.Now.Year.ToString();//閭d竴骞�
- var m = DateTime.Now.Month.ToString();//閭d竴鏈�
- var d = DateTime.Now.ToString("dd");//閭d竴澶�
- var h = int.Parse(DateTime.Now.ToString("HH"));//褰撳墠绯荤粺鏃堕棿
- int dayInt = (h + timeValue) / 24;//绠楀嚭鍑犲ぉ鍚庢墽琛�
- int hour = (h + timeValue) % 24;//绠楀嚭鍑犲ぉ鍚庨偅涓椂闂存墽琛�
- int days = int.Parse(d) + dayInt;
string text1 = Language.StringByID(MyInternationalizationString.timeSensitive);
string text2 = Language.StringByID(MyInternationalizationString.yearSone);
string text3 = Language.StringByID(MyInternationalizationString.monthSone);
string text4 = Language.StringByID(MyInternationalizationString.numberSone);
- string text5 = Language.StringByID(MyInternationalizationString.executeSone);
- timeTextBtn.Text = text1 + y + text2 + m + text3 + days.ToString() + text4 + hour.ToString() + text5;
+ string text5 = Language.StringByID(MyInternationalizationString.hour1);
+ string text6 = Language.StringByID(MyInternationalizationString.executeSone);
+ if (_if)
+ {
+
+ ///绗竴娆¤繘鏉ヨ鍙栫綉鍏虫椂闂达紱
+ var datetime = GetLocalTime(timeLong);
+ ///鏈夋椂鏁堟�у父寮�鎵嶆樉绀烘椂闂存潯浠舵枃鏈�
+ var y = datetime.Year.ToString();//閭d竴骞�
+ var m = datetime.Month.ToString();//閭d竴鏈�
+ var d = datetime.ToString("dd");//閭d竴澶�
+ var h = int.Parse(datetime.ToString("HH"));//灏忔椂
+ int minute = datetime.Minute;//鍒嗛挓
+ timeTextBtn.Text = text1 + y + text2 + m + text3 + d + text4 + h + text5 + minute.ToString() + text6;
+
+ }
+ else
+ {
+
+ ///鏈夋椂鏁堟�у父寮�鎵嶆樉绀烘椂闂存潯浠舵枃鏈�
+ var y = DateTime.Now.Year.ToString();//閭d竴骞�
+ var m = DateTime.Now.Month.ToString();//閭d竴鏈�
+ var d = DateTime.Now.ToString("dd");//閭d竴澶�
+ var h = int.Parse(DateTime.Now.ToString("HH"));//灏忔椂
+ int dayInt = (h + timeValue) / 24;//绠楀嚭鍑犲ぉ鍚庢墽琛�
+ int hour = (h + timeValue) % 24;//绠楀嚭鍑犲ぉ鍚庨偅涓椂闂存墽琛�
+ int days = int.Parse(d) + dayInt;
+ int minute = DateTime.Now.Minute;//鍒嗛挓
+ timeTextBtn.Text = text1 + y + text2 + m + text3 + days.ToString() + text4 + hour.ToString() + text5 + minute.ToString() + text6;
+ }
}
@@ -369,66 +406,75 @@
clickBtn.MouseUpEventHandler += (sender, e) =>
{
- LogicView.TipView.ShowConfrimTip(() =>
+ LogicView.TipView.ShowConfrimTip(() =>
+ {///鍐嶆纭
+ LogicView.TipView.ShowInputTip(true, async (str) =>
+ {///纭鍙戦�佸懡浠�
+ CommonPage.Loading.Start();
+ try
+ {
+ ///xm
+ var result = await UserCenter.DoorLock.DoorLockCommonInfo.SetNormallyOpenModeFuncAsync(Send.CurrentDoorLock);
+ if (!result)
+ {
+ LogicView.TipView.ShowFlashTip(Language.StringByID(MyInternationalizationString.openFailed));
+ return;
+ }
+ else
+ {
+ ///鍥犱负鏈夊父寮�妯″紡涓嬫墠鍙互鍒涘缓澶辨晥閫昏緫锛�
+ SkipView.GetLogicAll(Send.CurrentDoorLock);//鍒犻櫎涔嬪墠鎵�鏈夊け鏁堥�昏緫
+ var addResult = await SkipView.LockAddModifyLogic(int.Parse(str), Send.CurrentDoorLock);//娣诲姞涓�鏉″け鏁堥�昏緫
+ if (addResult == 0)
+ {
+ ///鍙璇村鏋滃父寮�妯″紡寮�锛屽垱寤鸿嚜鍔ㄥ寲澶辫触锛岄偅涔堝皢瑕佸彂涓�鏉″父寮�妯″紡鍏抽棴鍛戒护;
+ UserCenter.DoorLock.DoorLockCommonInfo.DelNormallyOpenMode(Send.CurrentDoorLock);
+ ///鎻愮ず澶辫触
+ LogicView.TipView.ShowFlashTip(Language.StringByID(MyInternationalizationString.addFailed));
+ return;
+ }
+ else
+ {
+ logicId = addResult;
+ timeValue = int.Parse(str);
+ Send.CurrentDoorLock.IsDoorLockNormallyMode = true;
+ _if = false;
+ ModeView();
+ ///娣诲姞APP寮�鍚父寮�妯″紡鐨勫巻鍙茶褰�
+ UserCenter.HdlDeviceDoorLockLogic.Current.AddDoorHistoryLog(Send.CurrentDoorLock, 9001, string.Empty);
+ }
- {///鍐嶆纭
- LogicView.TipView.ShowInputTip(true, async (str) =>
- {///纭鍙戦�佸懡浠�
- CommonPage.Loading.Start();
- try
- {
- ///xm
- var result = await UserCenter.DoorLock.DoorLockCommonInfo.SetNormallyOpenModeFuncAsync(Send.CurrentDoorLock);
- if (!result)
- {
- LogicView.TipView.ShowFlashTip(Language.StringByID(MyInternationalizationString.openFailed));
- return;
- }
- else
- {
- ///鍥犱负鏈夊父寮�妯″紡涓嬫墠鍙互鍒涘缓澶辨晥閫昏緫锛�
- SkipView.GetLogicAll();//鍒犻櫎涔嬪墠鎵�鏈夊け鏁堥�昏緫
- var addResult = await SkipView.LockAddModifyLogic(int.Parse(str), Send.CurrentDoorLock);//娣诲姞涓�鏉″け鏁堥�昏緫
- if (addResult == 0)
- {
- ///鍙璇村鏋滃父寮�妯″紡寮�锛屽垱寤鸿嚜鍔ㄥ寲澶辫触锛岄偅涔堝皢瑕佸彂涓�鏉″父寮�妯″紡鍏抽棴鍛戒护;
- UserCenter.DoorLock.DoorLockCommonInfo.DelNormallyOpenMode(Send.CurrentDoorLock);
- ///鎻愮ず澶辫触
- LogicView.TipView.ShowFlashTip(Language.StringByID(MyInternationalizationString.addFailed));
- return;
- }
- logicId = addResult;
- timeValue = int.Parse(str);
- Send.CurrentDoorLock.IsDoorLockNormallyMode = true;
- ModeView();
- //娣诲姞App寮�鍚父寮�妯″紡鐨勫巻鍙茶褰�
- UserCenter.HdlDeviceDoorLockLogic.Current.AddDoorHistoryLog(Send.CurrentDoorLock, 9001, string.Empty);
- }
- }
- catch
- {
- }
- finally
- {
- Application.RunOnMainThread(() =>
- {
- CommonPage.Loading.Hide();
+ }
+ }
+ catch
+ {
- });
- }
- });
+ }
+ finally
+ {
+ Application.RunOnMainThread(() =>
+ {
+ CommonPage.Loading.Hide();
- });
+ });
+ }
+ });
- };
+ });
+
+ };
}
-
listLogicFl.Y = fLayout.Bottom;
listLogicFl.X = Application.GetRealWidth(58);
listLogicFl.Height = Application.GetRealHeight(Method.H - 184) - fLayout.Height;
listLogicFl.Width = Application.GetRealWidth(1022);
listLogicFl.BackgroundColor = ZigbeeColor.Current.LogicBlankBackgroundColor;
+
+ verticalRefresh.Y = Application.GetRealHeight(187);
+ verticalRefresh.X = Application.GetRealWidth(46);
+ verticalRefresh.Height = listLogicFl.Height - Application.GetRealHeight(187);//鍔ㄦ�佹敼鍔ㄤ笂涓嬫粦鍔╲iew楂樺害;
+ verticalRefresh.Width = listLogicFl.Width - Application.GetRealWidth(46);
}
/// <summary>
/// 璇诲彇鑷姩鍖栧垪琛ㄦ暟鎹紱
@@ -454,8 +500,11 @@
if (logic.LogicType != 2)
{
continue;
+ }
+ if (SkipView.ExistLogic(logic, Send.CurrentDoorLock))
+ {
+ Common.Logic.SoneLogicList.Add(logic);
}
- Common.Logic.SoneLogicList.Add(logic);
}
}
}
@@ -485,6 +534,10 @@
verticalRefresh.RemoveAll();
foreach (var logic in Common.Logic.SoneLogicList)
{
+ if (!SkipView.ExistLogic(logic, Send.CurrentDoorLock))
+ {
+ continue;
+ }
#region 鑷姩鍖栧竷灞�View
///鑷姩鍖栫埗鎺т欢
var fLayoutLogic = new FrameLayout
@@ -608,6 +661,7 @@
else
{
//閫昏緫鍏�
+ logic.IsEnable = 0;
typeIconBtn.UnSelectedImagePath = "ZigeeLogic/nofunction.png";
typeBjBtn.BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor;
}
@@ -642,5 +696,16 @@
}
}
+ /// <summary>
+ /// 灏哢NIX鏃堕棿鎴宠浆鎹㈡垚绯荤粺鏃堕棿(绮剧‘鍒扮)
+ /// <returns></returns>
+ public DateTime GetLocalTime(int unixTimeStamp)
+ {
+ DateTime dtStart = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1));
+ long lTime = long.Parse(unixTimeStamp + "0000000");
+ TimeSpan toNow = new TimeSpan(lTime);
+ DateTime dtResult = dtStart.Add(toNow);
+ return dtResult;
+ }
}
}
--
Gitblit v1.8.0