From 06e83631ac1c0b04e6bce54ba952c9177e637ecc Mon Sep 17 00:00:00 2001
From: WJC <wjc@hdlchina.com.cn>
Date: 星期四, 09 四月 2020 10:42:19 +0800
Subject: [PATCH] 2020-04-09-1
---
ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceMacInfoEditorForm.cs | 912 +++++++++++++++++++++++++++++++++++++++++++++++---------
1 files changed, 765 insertions(+), 147 deletions(-)
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceMacInfoEditorForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceMacInfoEditorForm.cs
index 84aa6f9..083edd8 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceMacInfoEditorForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceMacInfoEditorForm.cs
@@ -2,7 +2,6 @@
using System.Collections.Generic;
using System.Threading.Tasks;
using Shared.Common;
-using Shared.Phone.UserView;
using ZigBee.Device;
namespace Shared.Phone.UserCenter.Device
@@ -30,6 +29,10 @@
/// 璁惧鍏蜂綋绫诲瀷鐨勪俊鎭�
/// </summary>
private DeviceEnumInfo deviceEnumInfo = null;
+ /// <summary>
+ /// 涓ぎ绌鸿皟鐨勭増鏈帶浠�
+ /// </summary>
+ private NormalViewControl btnAirConditionerVersion = null;
#endregion
@@ -42,15 +45,11 @@
public void ShowForm(string deviceMac)
{
this.listNewDevice = Common.LocalDevice.Current.GetDevicesByMac(deviceMac);
- //鎺掑簭
- this.listNewDevice.Sort((obj1, obj2) =>
+ if (listNewDevice.Count == 0)
{
- if (obj1.DeviceEpoint > obj2.DeviceEpoint)
- {
- return 1;
- }
- return -1;
- });
+ //閽堝鍗曠函鍙湁涓�涓�200绔偣鐨勮澶�
+ listNewDevice.Add(Common.LocalDevice.Current.GetOTADevice(deviceMac));
+ }
this.listDeviceType.Clear();
foreach (var device in listNewDevice)
@@ -62,7 +61,7 @@
this.deviceEnumInfo = Common.LocalDevice.Current.GetMyDeviceEnumInfo(listNewDevice);
//璁剧疆鏍囬淇℃伅
- base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uDeviceInfo));
+ base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uDeviceSettion));
//鍒濆鍖栧彸涓婅鑿滃崟
this.InitTopRightMenu();
@@ -83,14 +82,15 @@
this.ClearBodyFrame();
//鍒濆鍖栨甯�
- this.InitFrameTable();
+ var tableContr = new InformationEditorControl();
+ 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);
@@ -103,14 +103,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);
}
};
@@ -124,17 +124,50 @@
//鍒掔嚎
btnType.AddBottomLine();
+ //鎵�灞炲尯鍩�
+ var rowBeloneArea = new BelongAreaControl(listview.rowSpace / 2);
+ listview.AddChidren(rowBeloneArea);
+ rowBeloneArea.InitControl(Language.StringByID(R.MyInternationalizationString.uBelongArea), this.listNewDevice);
+ //搴曠嚎
+ rowBeloneArea.AddBottomLine();
+
+ var listCheck = new List<string>();
+ rowBeloneArea.SelectRoomEvent += (roomKeys) =>
+ {
+ foreach (var device in this.listNewDevice)
+ {
+ if (device is OTADevice)
+ {
+ //閽堝鍗曠函鍙湁涓�涓�200绔偣鐨勮澶�
+ continue;
+ }
+ var room = HdlRoomLogic.Current.GetRoomByDevice(device);
+ string mainKeys = LocalDevice.Current.GetDeviceMainKeys(device);
+ if (room == null)
+ {
+ //杩欓噷鏈夌偣鐗规畩,濡傛灉鍥炶矾娌℃湁璁剧疆鏈夊尯鍩熺殑鏃跺��,鎵嶈缃�
+ listCheck.Add(mainKeys);
+ HdlRoomLogic.Current.ChangedRoom(device, roomKeys);
+ }
+ else if (listCheck.Contains(mainKeys) == true)
+ {
+ //濡傛灉杩欎釜鍥炶矾涔嬪墠閮借繕娌℃湁鍖哄煙,鍦ㄦ湰鐣岄潰杩樻病鏈夊叧闂箣鍓�,鍙互鏃犳潯浠堕殢渚垮彉鏇�
+ HdlRoomLogic.Current.ChangedRoom(device, roomKeys);
+ }
+ }
+ //淇濆瓨璁惧鎴块棿绱㈠紩
+ Common.LocalDevice.Current.SaveRealDeviceRoomId(this.listNewDevice, roomKeys);
+ };
+
//娣诲姞鍏ㄩ儴鑿滃崟
this.AddAllMenuRow();
+ //鍒濆鍖栨甯冨畬鎴�
+ tableContr.FinishInitControl(bodyFrameLayout, this.listview);
+ tableContr = null;
+
//淇濆瓨
var btnFinish = new BottomClickButton();
- //鍊熺敤Y杞村潗鏍�(璁╄繖涓尯鍩熶笉鑳界偣鍑昏彍鍗�)
- var frameBack = new FrameLayout();
- frameBack.Y = btnFinish.Yaxis;
- frameBack.Height = bodyFrameLayout.Height - btnFinish.Yaxis;
- bodyFrameLayout.AddChidren(frameBack);
-
btnFinish.TextID = R.MyInternationalizationString.uSave;
bodyFrameLayout.AddChidren(btnFinish);
btnFinish.ButtonClickEvent += (sender, e) =>
@@ -155,53 +188,6 @@
this.CloseForm();
}
};
-
- var realHeight = listview.GetChildren(0).Height * listview.ChildrenCount;
- if (bodyFrameLayout.Height - btnFinish.Yaxis + realHeight > listview.Height)
- {
- //淇冧娇琚尅浣忕殑鑿滃崟鑳藉鍚戜笂婊戝姩
- var frameTemp = new FrameLayout();
- frameTemp.Height = frameBack.Height + Application.GetRealHeight(115);
- listview.AddChidren(frameTemp);
- }
- }
-
- #endregion
-
- #region 鈻� 鍒濆鍖栨甯僟________________________
-
- /// <summary>
- /// 鍒濆鍖栨甯�
- /// </summary>
- private void InitFrameTable()
- {
- //寮у害鐨勫渾鐨勪竴鍗婄殑楂樺害(鍥哄畾)
- int halfRoundHeigth = Application.GetRealHeight(116) / 2;
- //寮у害鐨勫渾
- var btnRound = new NormalViewControl(bodyFrameLayout.Width, halfRoundHeigth * 2, false);
- btnRound.Y = Application.GetRealHeight(369);
- btnRound.BackgroundColor = UserCenterColor.Current.White;
- btnRound.Radius = (uint)halfRoundHeigth;
- bodyFrameLayout.AddChidren(btnRound);
- //鏄庣粏鍒楄〃鐨勬甯冿紝鐧借壊鑳屾櫙(瑕嗙洊寮у害鐨勫渾鐨勫崐杈�)
- var detailBackFrame = new FrameLayout();
- detailBackFrame.Y = btnRound.Bottom - btnRound.Height / 2;
- detailBackFrame.Height = Application.GetRealHeight(1368);//楂樺害灏辨槸瑕佸畠瓒呰繃
- detailBackFrame.BackgroundColor = UserCenterColor.Current.White;
- bodyFrameLayout.AddChidren(detailBackFrame);
-
- //淇℃伅缂栬緫
- var btnTile = new NormalViewControl(800, 60, true);
- btnTile.X = ControlCommonResourse.XXLeft;
- btnTile.TextSize = 15;
- btnTile.TextColor = UserCenterColor.Current.TextColor2;
- btnTile.TextID = R.MyInternationalizationString.uInfoEditor;
- detailBackFrame.AddChidren(btnTile);
-
- this.listview = new VerticalListControl(12);
- listview.Y = btnTile.Bottom + Application.GetRealHeight(17);
- listview.Height = Application.GetRealHeight(1368) - halfRoundHeigth - btnTile.Bottom - Application.GetRealHeight(17);
- detailBackFrame.AddChidren(listview);
}
#endregion
@@ -213,11 +199,10 @@
/// </summary>
private void AddAllMenuRow()
{
- bool isHdlDevice = Common.LocalDevice.Current.IsHdlDevice(listNewDevice[0]);
if (deviceEnumInfo.BeloneType == DeviceBeloneType.A鏅鸿兘闂ㄩ攣)
{
//鍙湁鏄渤涓滅殑璁惧鐨勬椂鍊�
- if (isHdlDevice == true)
+ if (deviceEnumInfo.IsHdlDevice == true)
{
//娣诲姞銆愮敤鎴风鐞嗐�戣
this.AddUserManageRow();
@@ -227,19 +212,46 @@
this.AddDoorLocksTimeRow();
}
}
+ else if (deviceEnumInfo.ConcreteType == DeviceConcreteType.AirConditioner_ZbGateway)
+ {
+ //娣诲姞銆愬鍐呮満璁剧疆銆戣(绌鸿皟涓撶敤)
+ this.AddIndoorUnitSettionRow();
+ }
else
{
- //娣诲姞銆愭寜閿缃�戣(闈㈡澘涓撶敤)
- this.AddPanelSettionRow();
- //娣诲姞銆愬姛鑳借缃�戣
- this.AddFunctionSettionRow();
+ //娣诲姞銆愬伐浣滄ā寮忋�戣(pir浼犳劅鍣ㄤ笓鐢�)
+ this.AddPirSensorWorkModeRow();
+ //娣诲姞銆愮粦瀹氱洰鏍囥�戣(pir浼犳劅鍣ㄤ笓鐢�)
+ this.AddPirSensorBindRow();
+ //娣诲姞銆愭柟鍚戜笌闄愪綅銆戣(寮�鍚堝笜,鍗峰笜涓撶敤)
+ this.AddDirectionAndLimitRow();
+ //娣诲姞銆愭墜鎷夋帶鍒躲�戣(寮�鍚堝笜涓撶敤)
+ this.AddHandPullControlRow();
+ //娣诲姞銆愭寜閿缃�戣(鏂规偊涓撶敤) --杩欎釜鏈夊彲鑳藉拰闈㈡澘閲嶅彔
+ if (this.AddFangyuePanelSettionRow() == false)
+ {
+ //娣诲姞銆愭寜閿缃�戣(闈㈡澘涓撶敤)
+ this.AddPanelSettionRow();
+ }
+
+ if (this.IsFangyueFreshaAirPanel() == false)
+ {
+ //娣诲姞銆愬姛鑳借缃�戣
+ this.AddFunctionSettionRow();
+ }
+
//娣诲姞銆愬共鎺ョ偣璁剧疆銆戣
this.AddDryContactSettionRow();
}
+ //娣诲姞銆愬姛鑳界被鍨嬨�戣(绌烘皵寮�鍏充笓鐢�)
+ this.AddAirSwitchFunctionTypeRow();
//娣诲姞銆愰�氱敤淇℃伅銆戣
this.AddGeneralInformationRow();
- if (isHdlDevice == true)
+ //娣诲姞銆愮┖璋冩ā鍧楃増鏈�(绌鸿皟涓撶敤)銆戣
+ this.AddAirConditionerModelVersionRow();
+
+ if (deviceEnumInfo.IsHdlDevice == true)
{
//娣诲姞銆愬浐浠跺崌绾с�戣
this.AddFirmwareUpdateRow();
@@ -267,9 +279,55 @@
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)
+ {
+ Action action = null;
+ Action actionNone = null;
+ action = () =>
+ {
+ 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();
+ };
+ actionNone = () =>
+ {
+ Shared.Phone.UserCenter.DoorLock.DoorLockCommonLayout.SecurityRequest(doorLock, action);
+ };
+ HdlCheckLogic.Current.CheckSecondarySecurity(action, actionNone);
+ }
+ else
+ {
+ CommonPage.Loading.Start("");
+ var result = await Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetDoorLockOperateAccess(doorLock, Shared.Common.Config.Instance.Guid);
+ if (result == false)
+ {
+ Action action = null;
+ Action actionNone = null;
+ action = () =>
+ {
+ 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();
+ };
+ actionNone = () =>
+ {
+ Shared.Phone.UserCenter.DoorLock.DoorLockCommonLayout.SecurityRequest(doorLock, action);
+ };
+ HdlCheckLogic.Current.CheckSecondarySecurity(action, actionNone);
+
+ }
+ else
+ {
+ this.ShowMassage(ShowMsgType.Tip, Language.StringByID(R.MyInternationalizationString.AccountIsFreezed));
+ }
+ CommonPage.Loading.Hide();
+ }
+ };
}
}
@@ -291,18 +349,60 @@
btnRow.UseClickStatu = false;
listview.AddChidren(btnRow);
btnRow.AddLeftCaption(caption, 600);
- //鍚戝彸鍥炬爣
- var btnswitch = btnRow.AddMostRightEmptyIcon(104, 63);
- btnRow.ChangedChidrenBindMode(btnswitch, ChidrenBindMode.NotBind);
- btnswitch.UnSelectedImagePath = "Item/Switch.png";
- btnswitch.SelectedImagePath = "Item/SwitchSelected.png";
+ //寮�鍏冲浘鏍�
+ var btnswitch = btnRow.AddMostRightSwitchIcon();
//搴曠嚎
btnRow.AddBottomLine();
- btnswitch.ButtonClickEvent += (sender, e) =>
+ var doorLock = (ZigBee.Device.DoorLock)listNewDevice[0];
+ if (string.IsNullOrEmpty(doorLock.RemoteUnlockPassword) == false)
{
- btnswitch.IsSelected = !btnswitch.IsSelected;
- };
+ btnswitch.IsSelected = true;
+ }
+
+ 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));
+ }
+ }
+ };
}
}
@@ -327,9 +427,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));
+ }
+ }
+ };
}
}
@@ -338,7 +461,7 @@
#region 鈻� 鎸夐敭璁剧疆(闈㈡澘)_____________________
/// <summary>
- /// 娣诲姞銆愭寜閿缃�戣
+ /// 娣诲姞銆愭寜閿缃�戣(闈㈡澘)
/// </summary>
private void AddPanelSettionRow()
{
@@ -359,45 +482,79 @@
btnFunction.ButtonClickEvent += (sender, e) =>
{
var form = new DevicePanel.PanelButtonSettionForm();
- form.AddForm(listNewDevice[0].DeviceAddr);
+ form.AddForm(listNewDevice[0]);
};
}
#endregion
- #region 鈻� 鍔熻兘璁剧疆(閫氱敤)_____________________
+ #region 鈻� 鎸夐敭璁剧疆(鏂规偊)_____________________
/// <summary>
- /// 娣诲姞銆愬姛鑳借缃�戣
+ /// 娣诲姞銆愭寜閿缃�戣(鏂规偊)
/// </summary>
- private void AddFunctionSettionRow()
+ private bool AddFangyuePanelSettionRow()
{
- //鍔熻兘璁剧疆
- 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.ConcreteType == DeviceConcreteType.ButtonPanel_FangyueTwo
+ || deviceEnumInfo.ConcreteType == DeviceConcreteType.ButtonPanel_FangyueFour
+ || deviceEnumInfo.ConcreteType == DeviceConcreteType.ButtonPanel_FangyueEight
+ || deviceEnumInfo.ConcreteType == DeviceConcreteType.ButtonPanel_FangyueEnvironment
+ || deviceEnumInfo.ConcreteType == DeviceConcreteType.ButtonPanel_FangyueFreshAir)
{
- //娌充笢鐨勯潰鏉胯澶�
- if (deviceEnumInfo.BeloneType == DeviceBeloneType.A鎸夐敭闈㈡澘 && deviceEnumInfo.IsHdlDevice == true)
+ //鎸夐敭璁剧疆
+ string caption = Language.StringByID(R.MyInternationalizationString.uPanelSettion);
+ 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 DevicePanel.PanelFunctionSettionForm();
- form.AddForm(listNewDevice[0].DeviceAddr);
- }
- else
- {
- var form = new DeviceRelay.DeviceFunctionSettionForm();
- form.AddForm(listNewDevice[0].DeviceAddr);
- }
- };
+ if (deviceEnumInfo.ConcreteType == DeviceConcreteType.ButtonPanel_FangyueTwo
+ || deviceEnumInfo.ConcreteType == DeviceConcreteType.ButtonPanel_FangyueFour
+ || deviceEnumInfo.ConcreteType == DeviceConcreteType.ButtonPanel_FangyueEight)
+ {
+ //鏂规偊鎸夐敭闈㈡澘[鍗曞紑鍙屾帶/鍙屽紑鍥涙帶/鍥涘紑鍏帶]閰嶇疆
+ var form = new DevicePanel.PanelFangyueButtonSettionForm();
+ form.AddForm(listNewDevice[0]);
+ }
+ else if (deviceEnumInfo.ConcreteType == DeviceConcreteType.ButtonPanel_FangyueEnvironment)
+ {
+ //鏂规偊鐜闈㈡澘鐨勬寜閿厤缃�
+ var form = new DevicePanel.PanelFangyueEnvironmentButtonSettionForm();
+ form.AddForm(listNewDevice[0]);
+ }
+ else
+ {
+ //鏂规偊鏂伴闈㈡澘鐨勬寜閿厤缃�
+ var form = new DevicePanel.PanelFangyueFreshAirButtonSettionForm();
+ form.AddForm(listNewDevice[0]);
+ }
+ };
+ return true;
+ }
+ return false;
}
- #endregion;
+ #endregion
+
+ #region 鈻� 鎸夐敭璁剧疆(鏂规偊)_____________________
+
+ /// <summary>
+ /// 鏄惁鏄柟鎮︽柊椋庨潰鏉�
+ /// </summary>
+ private bool IsFangyueFreshaAirPanel()
+ {
+ if (deviceEnumInfo.ConcreteType == DeviceConcreteType.ButtonPanel_FangyueFreshAir)
+ {
+ return true;
+ }
+ return false;
+ }
+
+ #endregion
#region 鈻� 骞叉帴鐐硅缃�(骞叉帴鐐�)_________________
@@ -429,8 +586,375 @@
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 AddPirSensorWorkModeRow()
+ {
+ if (this.deviceEnumInfo.ConcreteType != DeviceConcreteType.Sensor_Pir
+ || deviceEnumInfo.IsHdlDevice == false)
+ {
+ return;
+ }
+ //宸ヤ綔妯″紡
+ string caption = Language.StringByID(R.MyInternationalizationString.uWorkMode);
+ 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.PirSensorWorkModeMenuForm();
+ form.AddForm((IASZone)this.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;
+ }
+ if (deviceEnumInfo.ConcreteType == DeviceConcreteType.ButtonPanel_FangyueEnvironment
+ || deviceEnumInfo.ConcreteType == DeviceConcreteType.ButtonPanel_FangyueFreshAir)
+ {
+ //鐜闈㈡澘娌℃湁鍔熻兘璁剧疆
+ return;
+ }
+
+ //2020.03.06鏂拌拷鍔狅細濡傛灉鍏ㄩ儴閮芥槸骞叉帴鐐圭殑璇�,涔熶笉鑳芥湁杩欎釜涓滆タ
+ int dryContactCount = 0;
+ for (int i = 0; i < listNewDevice.Count; i++)
+ {
+ if (listNewDevice[i].Type == DeviceType.OnOffSwitch)
+ {
+ dryContactCount++;
+ }
+ }
+ if (listNewDevice.Count == dryContactCount)
+ {
+ //杩欎釜璁惧鍏ㄦ槸骞叉帴鐐�
+ 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.ConcreteType == DeviceConcreteType.ButtonPanel_FangyueTwo
+ || deviceEnumInfo.ConcreteType == DeviceConcreteType.ButtonPanel_FangyueFour
+ || deviceEnumInfo.ConcreteType == DeviceConcreteType.ButtonPanel_FangyueEight)
+ {
+ var form = new DevicePanel.PanelFangyueFunctionSettionForm();
+ form.AddForm(listNewDevice[0]);
+ }
+ //娌充笢鐨勯潰鏉胯澶�
+ else 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) =>
+ {
+ //鍒囨崲妯″紡
+ bool statu = !btnSwitch.IsSelected;
+ var result = await HdlDeviceCurtainLogic.Current.SetHandPullControl(deviceCurtain, statu);
+ if (result == true)
+ {
+ btnSwitch.IsSelected = statu;
+ }
+ };
+
+ //娣诲姞灞炴�т笂鎶ョ洃鍚�
+ string mainkeys = LocalDevice.Current.GetDeviceMainKeys(this.listNewDevice[0]);
+ HdlGatewayReceiveLogic.Current.AddAttributeEvent("HandPullControl", ReceiveComandDiv.A璁惧灞炴�т笂鎶�, (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))
+ {
+ HdlThreadLogic.Current.RunMain(() =>
+ {
+ btnSwitch.IsSelected = true;
+ });
+ }
+ }
+ }
+ });
+ //鍙戦�佸懡浠�
+ deviceCurtain.ReadCurtainDirectionAndMode();
+ }
+
+ #endregion;
+
+ #region 鈻� 瀹ゅ唴鏈鸿缃�(绌鸿皟)___________________
+
+ /// <summary>
+ /// 娣诲姞銆愬鍐呮満璁剧疆銆戣(绌鸿皟涓撶敤)
+ /// </summary>
+ private void AddIndoorUnitSettionRow()
+ {
+ if (this.deviceEnumInfo.ConcreteType != DeviceConcreteType.AirConditioner_ZbGateway
+ || this.listNewDevice[0] is OTADevice)//杩藉姞锛氬崟绾彧鏈�200绔偣鐨勮瘽锛屼笉鏄剧ず杩欎釜鑿滃崟
+ {
+ 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);
+ };
+ }
+
+ #endregion
+
+ #region 鈻� 鍔熻兘绫诲瀷(绌烘皵寮�鍏充笓鐢�)_____________
+
+ /// <summary>
+ /// 娣诲姞銆愬姛鑳界被鍨嬨�戣(绌烘皵寮�鍏充笓鐢�)
+ /// </summary>
+ private void AddAirSwitchFunctionTypeRow()
+ {
+ if (this.deviceEnumInfo.BeloneType != DeviceBeloneType.A鏅鸿兘绌哄紑)
+ {
+ //涓嶆槸绌烘皵寮�鍏�
+ return;
+ }
+
+ //鍔熻兘绫诲瀷
+ string caption = Language.StringByID(R.MyInternationalizationString.uFunctionType);
+ var DfunctionType = this.listNewDevice[0].DfunctionType;
+
+ //鍔熻兘绫诲瀷鐨勭炕璇戝悕瀛�
+ int nowSelectNo = 1;
+ string strType = string.Empty;
+ if (DfunctionType == DeviceFunctionType.A鐏厜)
+ {
+ strType = Language.StringByID(R.MyInternationalizationString.uLight);
+ nowSelectNo = 1;
+ }
+ else if (DfunctionType == DeviceFunctionType.A寮�鍏�)
+ {
+ strType = Language.StringByID(R.MyInternationalizationString.uSwitch);
+ nowSelectNo = 0;
+ }
+ else if (DfunctionType == DeviceFunctionType.A鎻掑骇)
+ {
+ strType = Language.StringByID(R.MyInternationalizationString.uSocket1);
+ nowSelectNo = 2;
+ }
+
+ var btnFunction = new FrameCaptionViewControl(caption, strType, listview.rowSpace / 2);
+ btnFunction.UseClickStatu = true;
+ listview.AddChidren(btnFunction);
+ btnFunction.InitControl();
+ //搴曠嚎
+ btnFunction.AddBottomLine();
+ //鍙崇澶�
+ btnFunction.AddRightArrow();
+ btnFunction.ButtonClickEvent += (sender, e) =>
+ {
+ //鏄剧ず鍒楄〃
+ var listText = new List<string>();
+ listText.Add(Language.StringByID(R.MyInternationalizationString.uSwitch));//寮�鍏�
+ listText.Add(Language.StringByID(R.MyInternationalizationString.uLight));//鐏厜
+ listText.Add(Language.StringByID(R.MyInternationalizationString.uSocket1));//鎻掑骇
+ //鏍囬:閫夋嫨鍔熻兘绫诲瀷
+ var title = Language.StringByID(R.MyInternationalizationString.uSelectFunctionType);
+
+ var form = new BottomItemSelectForm();
+ form.AddForm(title, listText, nowSelectNo);
+ form.FinishSelectEvent += (selectNo) =>
+ {
+ btnFunction.Text = listText[selectNo];
+ nowSelectNo = selectNo;
+ //璁板綍璧峰綋鍓嶉�夋嫨鐨勫姛鑳界被鍨�
+ if (selectNo == 0)
+ {
+ this.listNewDevice[0].DfunctionType = DeviceFunctionType.A寮�鍏�;
+ if (this.listNewDevice[0].IsCustomizeImage == false)
+ {
+ //閲嶆柊璁剧疆鍥剧墖
+ this.listNewDevice[0].IconPath = "Device/Switch.png";
+ }
+ }
+ else if (selectNo == 1)
+ {
+ this.listNewDevice[0].DfunctionType = DeviceFunctionType.A鐏厜;
+ if (this.listNewDevice[0].IsCustomizeImage == false)
+ {
+ //閲嶆柊璁剧疆鍥剧墖
+ this.listNewDevice[0].IconPath = "Device/Light.png";
+ }
+ }
+ else
+ {
+ this.listNewDevice[0].DfunctionType = DeviceFunctionType.A鎻掑骇;
+ if (this.listNewDevice[0].IsCustomizeImage == false)
+ {
+ //閲嶆柊璁剧疆鍥剧墖
+ this.listNewDevice[0].IconPath = "Device/Socket1.png";
+ }
+ }
+ this.listNewDevice[0].ReSave();
+ };
};
}
@@ -456,6 +980,34 @@
var form = new DeviceGeneralInformationForm();
form.AddForm(listNewDevice[0].DeviceAddr);
};
+ }
+
+ #endregion
+
+ #region 鈻� 绌鸿皟妯″潡鐗堟湰(绌鸿皟涓撶敤)_____________
+
+ /// <summary>
+ /// 娣诲姞銆愮┖璋冩ā鍧楃増鏈�戣(娌充笢鐨勪腑澶┖璋�)
+ /// </summary>
+ private void AddAirConditionerModelVersionRow()
+ {
+ if (this.deviceEnumInfo.ConcreteType != DeviceConcreteType.AirConditioner_ZbGateway)
+ {
+ //涓嶆槸涓ぎ绌鸿皟
+ return;
+ }
+ string caption = Language.StringByID(R.MyInternationalizationString.uAirConditionerModelVersion);
+ var rowVersion = new FrameRowControl(listview.rowSpace / 2);
+ rowVersion.UseClickStatu = false;
+ listview.AddChidren(rowVersion);
+ rowVersion.AddLeftCaption(caption, 600);
+ //鐗堟湰
+ this.btnAirConditionerVersion = rowVersion.AddMostRightView("", 800);
+ //搴曠嚎
+ rowVersion.AddBottomLine();
+
+ //鑾峰彇涓ぎ绌鸿皟妯″潡鐨勭増鏈�
+ this.ReadAirConditionerVersion();
}
#endregion
@@ -489,14 +1041,24 @@
btnNewVersion.UnSelectedImagePath = "Item/NewVersion.png";
btnNewVersion.Visible = false;
btnNewVersion.X = Application.GetRealWidth(242);
- btnNewVersion.Y= Application.GetRealHeight(23);
+ btnNewVersion.Y = Application.GetRealHeight(23);
rowUpDate.AddChidren(btnNewVersion, ChidrenBindMode.BindEventOnly);
rowUpDate.ButtonClickEvent += (sender, e) =>
{
+ if (this.deviceEnumInfo.ConcreteType != DeviceConcreteType.AirConditioner_ZbGateway)
+ {
+ //杩欎釜鏄竴鑸澶囩殑鍗囩骇
+ var form = new DeviceFirmwareUpdateForm();
+ form.AddForm(listNewDevice[0].DeviceAddr);
+ }
+ else
+ {
+ //涓ぎ绌鸿皟鐨勫崌绾х殑璇濓紝鏄壒娈婄殑
+ var form = new DeviceAirConditioner.ACZbGatewayUpdateMenuForm();
+ form.AddForm(listNewDevice[0], btnNewVersion.Visible);
+ }
btnNewVersion.Visible = false;
- var form = new DeviceFirmwareInfoForm();
- form.AddForm(listNewDevice[0].DeviceAddr);
};
//璁剧疆璁惧鐨勭増鏈俊鎭�
@@ -510,7 +1072,7 @@
/// <param name="oTADevice">ota璁惧</param>
private void SetDeviceVersionInfo(PicViewControl btnNewVersion, OTADevice oTADevice)
{
- new System.Threading.Thread(async () =>
+ HdlThreadLogic.Current.RunThread(async () =>
{
bool receiveImageInfo = false;
//璁剧疆璁惧鍏ㄩ儴鐨勯暅鍍忎俊鎭�
@@ -548,8 +1110,7 @@
}
});
}
- })
- { IsBackground = true }.Start();
+ });
}
#endregion
@@ -560,7 +1121,7 @@
/// 璁惧閲嶅懡鍚�
/// </summary>
/// <param name="i_deviceName">deviceName.</param>
- private async void DeviceReName(string i_deviceName,bool closeForm)
+ private async void DeviceReName(string i_deviceName, bool closeForm)
{
//寮�鍚繘搴︽潯
this.ShowProgressBar();
@@ -613,15 +1174,21 @@
/// </summary>
private void ShowTopRightMenu()
{
- int menuCount = 1;
- string deviceMenu = string.Empty;
//妫�娴嬫鍥炶矾鏄惁鎷ユ湁瀹氫綅鍔熻兘(鎷跨鐐规渶灏忕殑閭d釜鍥炶矾鍘诲畾浣�)
bool canTest = Common.LocalDevice.Current.DeviceIsCanFixedPosition(listNewDevice[0]);
- if (canTest == true)
+ if (this.deviceEnumInfo.BeloneType == DeviceBeloneType.A鏅鸿兘闂ㄩ攣)
{
- menuCount = 2;
+ canTest = false;
}
- var frame = new TopRightMenuControl(this, menuCount);
+ else if (this.deviceEnumInfo.BeloneType == DeviceBeloneType.A浼犳劅鍣�
+ && this.deviceEnumInfo.ConcreteType != DeviceConcreteType.Sensor_Pir)
+ {
+ //浼犳劅鍣ㄩ櫎浜哖ir閮芥病鏈夊畾浣嶅姛鑳�
+ canTest = false;
+ }
+ var frame = new TopRightMenuControl(canTest == true ? 2 : 1, 1);
+
+ string deviceMenu = string.Empty;
if (canTest == true)
{
//瀹氫綅
@@ -651,24 +1218,26 @@
/// <summary>
/// 鍒犻櫎鎸囧畾璁惧
/// </summary>
- private async void DoDeleteDevice()
+ private void DoDeleteDevice()
{
- //寮�鍚繘搴︽潯
- this.ShowProgressBar();
- //鍒犻櫎璁惧
- bool result = await Common.LocalDevice.Current.DeleteDevice(listNewDevice);
-
- this.CloseProgressBar();
-
- if (result == false)
+ HdlThreadLogic.Current.RunThread(async () =>
{
- return;
- }
+ //鎵撳紑杩涘害鏉�
+ this.ShowProgressBar();
- Application.RunOnMainThread(() =>
- {
- //鍏抽棴鐣岄潰
- this.CloseForm();
+ //鍒犻櫎璁惧
+ bool result = await Common.LocalDevice.Current.DeleteDevice(listNewDevice);
+ //鍏抽棴杩涘害鏉�
+ this.CloseProgressBar();
+ if (result == false)
+ {
+ return;
+ }
+ HdlThreadLogic.Current.RunMain(() =>
+ {
+ //鍏抽棴鐣岄潰
+ this.CloseForm();
+ });
});
}
#endregion
@@ -678,12 +1247,13 @@
/// <summary>
/// 鐢婚潰鍏抽棴
/// </summary>
- public override void CloseForm()
+ public override void CloseFormBefore()
{
+ HdlGatewayReceiveLogic.Current.RemoveEvent("HandPullControl");
//绉婚櫎鑾峰彇璁惧纭欢淇℃伅鐨勭洃鍚嚎绋�
HdlDeviceHardInfoLogic.Current.RemoveDeviceHardInfoThread(listNewDevice[0]);
- base.CloseForm();
+ base.CloseFormBefore();
}
#endregion
@@ -714,8 +1284,56 @@
#endregion
+ #region 鈻� 鐣岄潰閲嶆柊婵�娲讳簨浠禵__________________
+
+ /// <summary>
+ /// 鑷韩鐨勪笂灞傜晫闈㈠叧闂悗,瀹冭嚜韬浜庢渶涓婂眰鏃�,瑙﹀彂鐨勪簨浠�
+ /// </summary>
+ public override int FormActionAgainEvent()
+ {
+ //閲嶆柊鑾峰彇涓ぎ绌鸿皟妯″潡鐨勭増鏈�
+ this.ReadAirConditionerVersion();
+
+ return 0;
+ }
+
+ #endregion
+
#region 鈻� 涓�鑸柟娉昣__________________________
+ /// <summary>
+ /// 鑾峰彇涓ぎ绌鸿皟妯″潡鐨勭増鏈�
+ /// </summary>
+ private void ReadAirConditionerVersion()
+ {
+ if (this.btnAirConditionerVersion == null)
+ {
+ return;
+ }
+ //鑾峰彇涓�....
+ this.btnAirConditionerVersion.TextID = R.MyInternationalizationString.uGetting;
+ HdlThreadLogic.Current.RunThread(async () =>
+ {
+ //璇诲彇绌鸿皟妯″潡鐗堟湰
+ var result = await HdlDeviceAirConditionerLogic.Current.ReadACFirewareVersionAsync(listNewDevice[0]);
+ if (result == null || result.readACFirewareVersionResponData == null || result.readACFirewareVersionResponData.Status != 0)
+ {
+ HdlThreadLogic.Current.RunMain(() =>
+ {
+ //鑾峰彇澶辫触
+ btnAirConditionerVersion.TextID = R.MyInternationalizationString.uGettingFail;
+ });
+ }
+ else
+ {
+ HdlThreadLogic.Current.RunMain(() =>
+ {
+ btnAirConditionerVersion.Text = result.readACFirewareVersionResponData.FirewareVersion.Replace("-", string.Empty);
+ });
+ }
+ });
+ }
+
#endregion
}
}
--
Gitblit v1.8.0