From 7b60238359b94125d591678eff105ae2bf47843f Mon Sep 17 00:00:00 2001
From: gxc <guoxuecheng@guoxuechengdeMacBook-Pro.local>
Date: 星期五, 15 十一月 2019 13:16:21 +0800
Subject: [PATCH] 2019.11.15
---
ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceMacInfoEditorForm.cs | 419 +++++++++++++++++++++++++++++++++++++++++++++++------------
1 files changed, 330 insertions(+), 89 deletions(-)
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceMacInfoEditorForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceMacInfoEditorForm.cs
index c6654c0..3fb79d1 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceMacInfoEditorForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceMacInfoEditorForm.cs
@@ -42,15 +42,6 @@
public void ShowForm(string deviceMac)
{
this.listNewDevice = Common.LocalDevice.Current.GetDevicesByMac(deviceMac);
- //鎺掑簭
- this.listNewDevice.Sort((obj1, obj2) =>
- {
- if (obj1.DeviceEpoint > obj2.DeviceEpoint)
- {
- return 1;
- }
- return -1;
- });
this.listDeviceType.Clear();
foreach (var device in listNewDevice)
@@ -87,11 +78,11 @@
this.listview = tableContr.InitControl(bodyFrameLayout, Language.StringByID(R.MyInternationalizationString.uInfoEditor), 369, 1368);
//鍥剧墖
- var btnPic = new DeviceInfoIconControl(listNewDevice[0]);
+ var btnPic = new DeviceInfoIconControl();
btnPic.Y = Application.GetRealHeight(92);
btnPic.Gravity = Gravity.CenterHorizontal;
bodyFrameLayout.AddChidren(btnPic);
- btnPic.InitControl();
+ btnPic.InitControl(listNewDevice[0]);
//璁惧澶囨敞
string caption = Language.StringByID(R.MyInternationalizationString.uDeviceNote);
@@ -104,14 +95,14 @@
btnNote.txtInput.FinishInputEvent += () =>
{
string oldName = Common.LocalDevice.Current.GetDeviceMacName(listNewDevice[0]);
- if (btnNote.Text.Trim() == string.Empty)
+ if (btnNote.Text == string.Empty)
{
btnNote.Text = oldName;
}
- if (oldName != btnNote.Text.Trim())
+ if (oldName != btnNote.Text)
{
//淇敼鍚嶅瓧
- this.DeviceReName(btnNote.Text.Trim(), false);
+ this.DeviceReName(btnNote.Text, false);
}
};
@@ -137,9 +128,6 @@
{
foreach (var device in this.listNewDevice)
{
- //淇濆瓨杩欎釜璁惧灞炰簬鍝釜鍖哄煙
- device.DeviceRoomId = roomKeys;
- device.ReSave();
var room = Room.CurrentRoom.GetRoomByDevice(device);
string mainKeys = LocalDevice.Current.GetDeviceMainKeys(device);
if (room == null)
@@ -154,6 +142,8 @@
Room.CurrentRoom.ChangedRoom(device, roomKeys);
}
}
+ //淇濆瓨璁惧鎴块棿绱㈠紩
+ Common.LocalDevice.Current.SaveRealDeviceRoomId(this.listNewDevice, roomKeys);
};
//娣诲姞鍏ㄩ儴鑿滃崟
@@ -210,8 +200,19 @@
this.AddDoorLocksTimeRow();
}
}
+ else if (deviceEnumInfo.ConcreteType == DeviceConcreteType.AirConditioner_ZbGateway)
+ {
+ //娣诲姞銆愬鍐呮満璁剧疆銆戣(绌鸿皟涓撶敤)
+ this.AddIndoorUnitSettionRow();
+ }
else
{
+ //娣诲姞銆愮粦瀹氱洰鏍囥�戣(pir浼犳劅鍣ㄤ笓鐢�)
+ this.AddPirSensorBindRow();
+ //娣诲姞銆愭柟鍚戜笌闄愪綅銆戣(寮�鍚堝笜,鍗峰笜涓撶敤)
+ this.AddDirectionAndLimitRow();
+ //娣诲姞銆愭墜鎷夋帶鍒躲�戣(寮�鍚堝笜涓撶敤)
+ this.AddHandPullControlRow();
//娣诲姞銆愭寜閿缃�戣(闈㈡澘涓撶敤)
this.AddPanelSettionRow();
//娣诲姞銆愬姛鑳借缃�戣
@@ -251,13 +252,33 @@
//搴曠嚎
btnRow.AddBottomLine();
var doorLock = this.listNewDevice[0] as ZigBee.Device.DoorLock;
- btnRow.ButtonClickEvent += (sender, e) =>
- {
- var userManagement = new Shared.Phone.UserCenter.DoorLock.UserManagement(doorLock);
- Shared.Phone.UserView.HomePage.Instance.AddChidren(userManagement);
- Shared.Phone.UserView.HomePage.Instance.PageIndex += 1;
- userManagement.Show();
- };
+ btnRow.ButtonClickEvent += async (sender, e) =>
+ {
+ if (UserCenterResourse.UserInfo.AuthorityNo == 1)
+ {
+ var userManagement = new Shared.Phone.UserCenter.DoorLock.UserManagement(doorLock);
+ Shared.Phone.UserView.HomePage.Instance.AddChidren(userManagement);
+ Shared.Phone.UserView.HomePage.Instance.PageIndex += 1;
+ userManagement.Show();
+ }
+ else
+ {
+ CommonPage.Loading.Start("");
+ var result = await Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetDoorLockOperateAccess(doorLock, Shared.Common.Config.Instance.Guid);
+ if (result == false)
+ {
+ var userManagement = new Shared.Phone.UserCenter.DoorLock.UserManagement(doorLock);
+ Shared.Phone.UserView.HomePage.Instance.AddChidren(userManagement);
+ Shared.Phone.UserView.HomePage.Instance.PageIndex += 1;
+ userManagement.Show();
+ }
+ else
+ {
+ this.ShowMassage(ShowMsgType.Tip, Language.StringByID(R.MyInternationalizationString.AccountIsFreezed));
+ }
+ CommonPage.Loading.Hide();
+ }
+ };
}
}
@@ -283,24 +304,56 @@
var btnswitch = btnRow.AddMostRightSwitchIcon();
//搴曠嚎
btnRow.AddBottomLine();
- if (string.IsNullOrEmpty(ZigBee.Device.DoorLock.RemoteUnlockPassword) == false)
+
+ var doorLock = (ZigBee.Device.DoorLock)listNewDevice[0];
+ if (string.IsNullOrEmpty(doorLock.RemoteUnlockPassword) == false)
{
btnswitch.IsSelected = true;
}
- var doorLock= (ZigBee.Device.DoorLock)listNewDevice[0];
- btnswitch.ButtonClickEvent += (sender, e) =>
- {
- if (btnswitch.IsSelected == true)
- {
- btnswitch.IsSelected = false;
- ZigBee.Device.DoorLock.RemoteUnlockPassword = string.Empty;
- return;
- }
- var frame = new DoorLock.DoorLockCommonLayout();
- frame.RemotePasswordDialog((ZigBee.Device.DoorLock)listNewDevice[0], btnswitch.btnIcon);
- frame = null;
- };
+ btnswitch.ButtonClickEvent += async (sender, e) =>
+ {
+ if (UserCenterResourse.UserInfo.AuthorityNo == 1)
+ {
+ if (btnswitch.IsSelected == true)
+ {
+ btnswitch.IsSelected = false;
+ doorLock.RemoteUnlockPassword = string.Empty;
+ return;
+ }
+ var frame = new DoorLock.DoorLockCommonLayout();
+ frame.RemotePasswordDialog((ZigBee.Device.DoorLock)listNewDevice[0], btnswitch.btnIcon);
+ frame = null;
+ }
+ else
+ {
+ var result = await Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetDoorLockOperateAccess(doorLock, Shared.Common.Config.Instance.Guid);
+ if (result == false)
+ {
+ var result1 = await Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetDoorLockUnlockAccess(doorLock, Shared.Common.Config.Instance.Guid);
+ if (result1 == true)
+ {
+ if (btnswitch.IsSelected == true)
+ {
+ btnswitch.IsSelected = false;
+ doorLock.RemoteUnlockPassword = string.Empty;
+ return;
+ }
+ var frame = new DoorLock.DoorLockCommonLayout();
+ frame.RemotePasswordDialog((ZigBee.Device.DoorLock)listNewDevice[0], btnswitch.btnIcon);
+ frame = null;
+ }
+ else
+ {
+ this.ShowMassage(ShowMsgType.Tip, Language.StringByID(R.MyInternationalizationString.NoAccess));
+ }
+ }
+ else
+ {
+ this.ShowMassage(ShowMsgType.Tip, Language.StringByID(R.MyInternationalizationString.AccountIsFreezed));
+ }
+ }
+ };
}
}
@@ -325,9 +378,32 @@
btnRow.AddRightArrow();
//搴曠嚎
btnRow.AddBottomLine();
- btnRow.ButtonClickEvent += (sender, e) =>
- {
- };
+ var doorLock = this.listNewDevice[0] as ZigBee.Device.DoorLock;
+ btnRow.ButtonClickEvent += async (sender, e) =>
+ {
+ if (UserCenterResourse.UserInfo.AuthorityNo == 1)
+ {
+ var tempPage = new Shared.Phone.UserCenter.DoorLock.TimeSettignPage(doorLock, "DoorLockTime");
+ Shared.Phone.UserView.HomePage.Instance.AddChidren(tempPage);
+ Shared.Phone.UserView.HomePage.Instance.PageIndex += 1;
+ tempPage.Show();
+ }
+ else
+ {
+ var result = await Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetDoorLockOperateAccess(doorLock, Shared.Common.Config.Instance.Guid);
+ if (result == false)
+ {
+ var tempPage = new Shared.Phone.UserCenter.DoorLock.TimeSettignPage(doorLock, "DoorLockTime");
+ Shared.Phone.UserView.HomePage.Instance.AddChidren(tempPage);
+ Shared.Phone.UserView.HomePage.Instance.PageIndex += 1;
+ tempPage.Show();
+ }
+ else
+ {
+ this.ShowMassage(ShowMsgType.Tip, Language.StringByID(R.MyInternationalizationString.AccountIsFreezed));
+ }
+ }
+ };
}
}
@@ -357,45 +433,11 @@
btnFunction.ButtonClickEvent += (sender, e) =>
{
var form = new DevicePanel.PanelButtonSettionForm();
- form.AddForm(listNewDevice[0].DeviceAddr);
+ form.AddForm(listNewDevice[0]);
};
}
#endregion
-
- #region 鈻� 鍔熻兘璁剧疆(閫氱敤)_____________________
-
- /// <summary>
- /// 娣诲姞銆愬姛鑳借缃�戣
- /// </summary>
- private void AddFunctionSettionRow()
- {
- //鍔熻兘璁剧疆
- string caption = Language.StringByID(R.MyInternationalizationString.uFunctionSettingUp);
- var btnFunction = new FrameRowControl(listview.rowSpace / 2);
- listview.AddChidren(btnFunction);
- btnFunction.AddLeftCaption(caption, 600);
- //鍚戝彸鍥炬爣
- btnFunction.AddRightArrow();
- //搴曠嚎
- btnFunction.AddBottomLine();
- btnFunction.ButtonClickEvent += (sender, e) =>
- {
- //娌充笢鐨勯潰鏉胯澶�
- if (deviceEnumInfo.BeloneType == DeviceBeloneType.A鎸夐敭闈㈡澘 && deviceEnumInfo.IsHdlDevice == true)
- {
- var form = new DevicePanel.PanelFunctionSettionForm();
- form.AddForm(listNewDevice[0].DeviceAddr);
- }
- else
- {
- var form = new DeviceRelay.DeviceFunctionSettionForm();
- form.AddForm(listNewDevice[0].DeviceAddr);
- }
- };
- }
-
- #endregion;
#region 鈻� 骞叉帴鐐硅缃�(骞叉帴鐐�)_________________
@@ -427,7 +469,214 @@
btnBackLight.AddBottomLine();
btnBackLight.ButtonClickEvent += (sender, e) =>
{
- var form = new DeviceRelay.DeviceDryContactSettionForm();
+ var form = new DeviceDryContactSettionForm();
+ form.AddForm(listNewDevice[0]);
+ };
+ }
+
+ #endregion
+
+ #region 鈻� 缁戝畾鐩爣(pir浼犳劅鍣ㄤ笓鐢�)____________
+
+ /// <summary>
+ /// 娣诲姞銆愮粦瀹氱洰鏍囥�戣(pir浼犳劅鍣ㄤ笓鐢�)
+ /// </summary>
+ private void AddPirSensorBindRow()
+ {
+ if (this.deviceEnumInfo.ConcreteType != DeviceConcreteType.Sensor_Pir)
+ {
+ return;
+ }
+ //缁戝畾鐩爣
+ string caption = Language.StringByID(R.MyInternationalizationString.uBindTargets);
+ var btnFunction = new FrameRowControl(listview.rowSpace / 2);
+ listview.AddChidren(btnFunction);
+ btnFunction.AddLeftCaption(caption, 600);
+ //鍚戝彸鍥炬爣
+ btnFunction.AddRightArrow();
+ //搴曠嚎
+ btnFunction.AddBottomLine();
+ btnFunction.ButtonClickEvent += (sender, e) =>
+ {
+ var form = new DevicePirSensor.PirSensorBindTargetSettionForm();
+ form.AddForm((IASZone)this.listNewDevice[0]);
+ };
+ }
+
+ #endregion;
+
+ #region 鈻� 鍔熻兘璁剧疆(閫氱敤)_____________________
+
+ /// <summary>
+ /// 娣诲姞銆愬姛鑳借缃�戣
+ /// </summary>
+ private void AddFunctionSettionRow()
+ {
+ //鍙湁鍥炶矾鏁板ぇ浜�1鎵嶈兘鏈夎繖涓彍鍗�
+ if (Common.LocalDevice.Current.GetDevicesCountByMac(listNewDevice[0].DeviceAddr) == 1)
+ {
+ return;
+ }
+
+ //鍔熻兘璁剧疆
+ string caption = Language.StringByID(R.MyInternationalizationString.uFunctionSettingUp);
+ var btnFunction = new FrameRowControl(listview.rowSpace / 2);
+ listview.AddChidren(btnFunction);
+ btnFunction.AddLeftCaption(caption, 600);
+ //鍚戝彸鍥炬爣
+ btnFunction.AddRightArrow();
+ //搴曠嚎
+ btnFunction.AddBottomLine();
+ btnFunction.ButtonClickEvent += (sender, e) =>
+ {
+ //娌充笢鐨勯潰鏉胯澶�
+ if (deviceEnumInfo.BeloneType == DeviceBeloneType.A鎸夐敭闈㈡澘 && deviceEnumInfo.IsHdlDevice == true)
+ {
+ var form = new DevicePanel.PanelFunctionSettionForm();
+ form.AddForm(listNewDevice[0]);
+ }
+ else
+ {
+ var form = new DeviceFunctionSettionForm();
+ form.AddForm(listNewDevice[0], false);
+ }
+ };
+ }
+
+ #endregion;
+
+ #region 鈻� 鏂瑰悜涓庨檺浣�(绐楀笜)___________________
+
+ /// <summary>
+ /// 娣诲姞銆愭柟鍚戜笌闄愪綅銆戣(绐楀笜涓撶敤)
+ /// </summary>
+ private void AddDirectionAndLimitRow()
+ {
+ if (deviceEnumInfo.BeloneType != DeviceBeloneType.A绐楀笜)
+ {
+ return;
+ }
+ var deviceCurtain = (Rollershade)this.listNewDevice[0];
+ if (deviceCurtain.WcdType != 4 && deviceCurtain.WcdType != 0)
+ {
+ //寮�鍚堝笜,鍗峰笜涓撶敤
+ return;
+ }
+
+ //鏂瑰悜涓庨檺浣�
+ string caption = Language.StringByID(R.MyInternationalizationString.uDirectionAndLimit);
+ var btnFunction = new FrameRowControl(listview.rowSpace / 2);
+ listview.AddChidren(btnFunction);
+ btnFunction.AddLeftCaption(caption, 600);
+ //鍚戝彸鍥炬爣
+ btnFunction.AddRightArrow();
+ //搴曠嚎
+ btnFunction.AddBottomLine();
+ btnFunction.ButtonClickEvent += (sender, e) =>
+ {
+ if (deviceCurtain.WcdType == 4)
+ {
+ var form = new DeviceCurtain.AutoOpenDirectionAndLimitSettionForm();
+ form.AddForm(deviceCurtain);
+ }
+ else if (deviceCurtain.WcdType == 0)
+ {
+ var form = new DeviceCurtain.SiphonateDirectionAndLimitSettionForm();
+ form.AddForm(deviceCurtain);
+ }
+ };
+ }
+
+ #endregion;
+
+ #region 鈻� 鎵嬫媺鎺у埗(寮�鍚堝笜)___________________
+
+ /// <summary>
+ /// 娣诲姞銆愭墜鎷夋帶鍒躲�戣(寮�鍚堝笜涓撶敤)
+ /// </summary>
+ private void AddHandPullControlRow()
+ {
+ if (deviceEnumInfo.BeloneType != DeviceBeloneType.A绐楀笜)
+ {
+ return;
+ }
+ var deviceCurtain = (Rollershade)this.listNewDevice[0];
+ if (deviceCurtain.WcdType != 4)
+ {
+ //寮�鍚堝笜涓撶敤
+ return;
+ }
+
+ //鎵嬫媺鎺у埗
+ string caption = Language.StringByID(R.MyInternationalizationString.uHandPullControl);
+ var btnFunction = new FrameRowControl(listview.rowSpace / 2);
+ btnFunction.UseClickStatu = false;
+ listview.AddChidren(btnFunction);
+ btnFunction.AddLeftCaption(caption, 600);
+ //寮�鍏冲浘鏍�
+ var btnSwitch = btnFunction.AddMostRightSwitchIcon();
+ //搴曠嚎
+ btnFunction.AddBottomLine();
+ btnSwitch.ButtonClickEvent += async (sender, e) =>
+ {
+ //鍒囨崲妯″紡
+ var result = await HdlDeviceCurtainLogic.Current.SetHandPullControl(deviceCurtain, !btnSwitch.IsSelected);
+ if (result == true)
+ {
+ btnSwitch.IsSelected = !btnSwitch.IsSelected;
+ }
+ };
+
+ //娣诲姞灞炴�т笂鎶ョ洃鍚�
+ string mainkeys = LocalDevice.Current.GetDeviceMainKeys(this.listNewDevice[0]);
+ HdlDeviceAttributeLogic.Current.AddAttributeEvent("HandPullControl", "DeviceStatusReport", (device) =>
+ {
+ string checkKey = LocalDevice.Current.GetDeviceMainKeys(device);
+ if (mainkeys != checkKey || device.DeviceStatusReport.CluterID != 258)
+ {
+ return;
+ }
+ foreach (var attriBute in device.DeviceStatusReport.AttriBute)
+ {
+ if (attriBute.AttributeId == 23)
+ {
+ //鎵嬫媺鎺у埗
+ if (0 < (attriBute.AttriButeData & 0x04))
+ {
+ btnSwitch.IsSelected = true;
+ }
+ }
+ }
+ });
+ //鍙戦�佸懡浠�
+ deviceCurtain.ReadCurtainDirectionAndMode();
+ }
+
+ #endregion;
+
+ #region 鈻� 瀹ゅ唴鏈鸿缃�(绌鸿皟)___________________
+
+ /// <summary>
+ /// 娣诲姞銆愬鍐呮満璁剧疆銆戣(绌鸿皟涓撶敤)
+ /// </summary>
+ private void AddIndoorUnitSettionRow()
+ {
+ if (this.deviceEnumInfo.ConcreteType != DeviceConcreteType.AirConditioner_ZbGateway)
+ {
+ return;
+ }
+ //瀹ゅ唴鏈鸿缃�
+ string caption = Language.StringByID(R.MyInternationalizationString.uIndoorUnitSettion);
+ var btnFunction = new FrameRowControl(listview.rowSpace / 2);
+ listview.AddChidren(btnFunction);
+ btnFunction.AddLeftCaption(caption, 600);
+ //鍚戝彸鍥炬爣
+ btnFunction.AddRightArrow();
+ //搴曠嚎
+ btnFunction.AddBottomLine();
+ btnFunction.ButtonClickEvent += (sender, e) =>
+ {
+ var form = new DeviceAirConditioner.IndoorUnitListForm();
form.AddForm(listNewDevice[0].DeviceAddr);
};
}
@@ -618,7 +867,7 @@
{
menuCount = 2;
}
- var frame = new TopRightMenuControl(this, menuCount);
+ var frame = new TopRightMenuControl(menuCount);
if (canTest == true)
{
//瀹氫綅
@@ -650,23 +899,14 @@
/// </summary>
private async void DoDeleteDevice()
{
- //寮�鍚繘搴︽潯
- this.ShowProgressBar();
//鍒犻櫎璁惧
bool result = await Common.LocalDevice.Current.DeleteDevice(listNewDevice);
-
- this.CloseProgressBar();
-
if (result == false)
{
return;
}
-
- Application.RunOnMainThread(() =>
- {
- //鍏抽棴鐣岄潰
- this.CloseForm();
- });
+ //鍏抽棴鐣岄潰
+ this.CloseForm();
}
#endregion
@@ -677,6 +917,7 @@
/// </summary>
public override void CloseForm()
{
+ HdlDeviceAttributeLogic.Current.RemoveEvent("HandPullControl");
//绉婚櫎鑾峰彇璁惧纭欢淇℃伅鐨勭洃鍚嚎绋�
HdlDeviceHardInfoLogic.Current.RemoveDeviceHardInfoThread(listNewDevice[0]);
--
Gitblit v1.8.0