From 9d61367c1fd278f58f721d4c0e69999f89e4485d Mon Sep 17 00:00:00 2001
From: xm <1271024303@qq.com>
Date: 星期四, 12 十二月 2019 14:14:30 +0800
Subject: [PATCH] 添加最新绑定机制
---
ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/ChooseKeyModePage.cs | 409 ++++++++++++++++++++++++++--------------------------------
1 files changed, 182 insertions(+), 227 deletions(-)
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/ChooseKeyModePage.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/ChooseKeyModePage.cs
old mode 100755
new mode 100644
index 215a333..2ec8ba7
--- a/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/ChooseKeyModePage.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/ChooseKeyModePage.cs
@@ -1,6 +1,5 @@
锘縰sing System;
using System.Collections.Generic;
-using Com.Amap.Api.Location;
using Shared.Common;
using ZigBee.Device;
using static ZigBee.Device.BindObj;
@@ -14,14 +13,8 @@
/// <param name="common">Common.</param>
public void Changed(CommonDevice common)
{
- //if (common.Type != ZigBee.Device.DeviceType.OnOffSwitch)
- //{
- // return;
- //}
-
Shared.Application.RunOnMainThread(() =>
{
- //var dev = common as Panel;
});
}
@@ -32,32 +25,32 @@
{
this.currentKey = key;
this.currentModeID = key.panelMode;
- this.oldModeID = key.panelMode;
this.curDeviceBindType = deviceBindType;
this.targetList = targetSelectList;
}
#region 鈼� 鍙橀噺鐢虫槑__________________________
- ZigBee.Device.Panel currentKey;
+ ZigBee.Device.Panel currentKey;//褰撳墠鎸夐敭
//鏄剧ず琚粦瀹氳澶囨垨鍦烘櫙鐨剉iew
- VerticalScrolViewLayout midVerticalScrolViewLayout;
- HorizontalScrolViewLayout btnHorizontalScrolViewLayout;
+ VerticalScrolViewLayout midVerticalScrolViewLayout;//涓儴鍒锋柊鍒楄〃
+ HorizontalScrolViewLayout btnHorizontalScrolViewLayout;//鎴块棿鍒楄〃宸﹀彸婊戝姩甯冨眬
/// <summary>
/// 鎸夐敭閰嶇疆鐨勭洰鏍囧垪琛�
/// </summary>
- List<CommonDevice> targetList = new List<CommonDevice>();
+ List<CommonDevice> targetList = new List<CommonDevice>();//鏈湴涓存椂閫変腑鍒楄〃
/// <summary>
/// 鏂扮殑鎸夐敭閰嶇疆鐩爣鍒楄〃涓紝鐩爣瀹為檯瀛樺湪鎸夐敭涓紝姝ゆ椂瑕佸垹鎺夌殑鏁版嵁
/// </summary>
- List<CommonDevice> oldTargetList = new List<CommonDevice>();
- List<Room> roomList = new List<Room>();
- int currentClusterID = 6;
- public Action<List<BindListResponseObj>> action;
- int currentModeID = 0;
- int oldModeID = 0;
- string curDeviceBindType = "";
+ List<CommonDevice> oldTargetList = new List<CommonDevice>();//鏈湴鏃х殑閫変腑鍒楄〃
+ int currentClusterID = 6;//褰撳墠绨嘔D
+ public Action<List<BindListResponseObj>> action;//鍥炶皟缁戝畾鐩爣椤甸潰鍒锋柊
+ int currentModeID = 0;//褰撳墠妯″紡ID
+ string curDeviceBindType = "";//褰撳墠璁惧缁戝畾绫诲瀷
#endregion
+ /// <summary>
+ /// 鏄剧ず鎸夐敭妯″紡椤�
+ /// </summary>
public void Show()
{
this.TopFrameLayout(this, Language.StringByID(R.MyInternationalizationString.ChooseKeyMode));
@@ -73,6 +66,9 @@
MidFrameLayoutContent();
}
+ /// <summary>
+ /// 涓儴甯冨眬
+ /// </summary>
async void MidFrameLayoutContent()
{
#region UI
@@ -104,11 +100,7 @@
#endregion
#region 鏁版嵁澶勭悊
- roomList = Shared.Common.Room.Lists;
- Shared.Common.Room curRoom = roomList[0];
- int index = 0;
- KeyModeList(roomList[index]);
-
+ KeyModeList();
btnFinifh.MouseUpEventHandler += async (sender, e) =>
{
oldTargetList.Clear();
@@ -122,17 +114,15 @@
if (currentKey.bindList != null)
{
var bindResult = await currentKey.ClearBindInfoAsync();
-
if (bindResult != null && bindResult.clearBindInfoResponseData != null)
{
if (bindResult.clearBindInfoResponseData.Result != 0)
{
Application.RunOnMainThread(() =>
{
+ CommonPage.Loading.Hide();
new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.BindFailed), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnFinifh);
});
- CommonPage.Loading.Hide();
- this.RemoveFromParent();
btnFinifh.Enable = true;
btnFinifh.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack;
return;
@@ -145,53 +135,15 @@
else
{
Application.RunOnMainThread(() =>
- {
+ {
+ CommonPage.Loading.Hide();
new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnFinifh);
});
- CommonPage.Loading.Hide();
btnFinifh.Enable = true;
btnFinifh.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack;
return;
}
}
- //if (oldModeID != 65535 && oldModeID != currentModeID)
- //{
- //var bindResult = await currentKey.ClearBindInfoAsync();
- //if (bindResult.clearBindInfoResponseData != null)
- //{
- // if (bindResult.clearBindInfoResponseData.Result != 0)
- // {
- // Application.RunOnMainThread(() =>
- // {
- // new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.BindFailed), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnFinifh);
- // });
- // CommonPage.Loading.Hide();
- // this.RemoveFromParent();
- // btnFinifh.Enable = true;
- // return;
- // }
- // else
- // {
- // currentKey.bindList.Clear();
- // }
- //}
- //}
- //else
- //{
- // foreach (var bindedDev in currentKey.bindList)
- // {
- // for (int i = 0; i < targetList.Count; i++)
- // {
- // var de = targetList[i];
- // if (de.DeviceAddr == bindedDev.BindMacAddr && de.DeviceEpoint == bindedDev.BindEpoint)
- // {
- // oldTargetList.Add(de);
- // targetList.RemoveAt(i);
- // i--;
- // }
- // }
- // }
- //}
//2銆侀厤缃ā寮�
Panel.SetWritableValueResponAllData temp = null;
@@ -237,193 +189,164 @@
temp = await currentKey.ConfigureHdlKeyValueAsync(Panel.KeyMode.Wcd_Down_Stop);
break;
}
- if (temp != null && temp.setWritableValueResponData != null && temp.setWritableValueResponData.Status == 0)
+ if (temp != null && temp.setWritableValueResponData != null)
{
- ////鍒犻櫎琚嬀鎺夌殑鏁版嵁
- //foreach (var delDev in oldTargetList)
- //{
- // var delDev1 = new BindObj.BindListResponseObj();
- // delDev1.BindType = 0;
- // delDev1.BindCluster = currentClusterID;
- // delDev1.BindMacAddr = delDev.DeviceAddr;
- // delDev1.BindEpoint = delDev.DeviceEpoint;
- // var result = await BindInfo.RemoveTargets(delDev1, currentKey);
-
- // if (result == 0)
- // {
- // var bindSc = currentKey.bindList.Find(obj =>
- // (obj.BindType == 0
- // && obj.BindCluster == currentClusterID
- // && obj.BindMacAddr == delDev.DeviceAddr
- // && obj.BindEpoint == delDev.DeviceEpoint
- // ));
- // currentKey.bindList.Remove(bindSc);
- // }
- //}
-
- //3銆佺粦瀹氭柊鐨勬暟鎹�
- var addBindeDev = new AddBindData();
- addBindeDev.DeviceAddr = currentKey.DeviceAddr;
- addBindeDev.Epoint = currentKey.DeviceEpoint;
-
- foreach (var de in targetList)
+ if (temp.setWritableValueResponData.Status == 0)
{
- if (de.DeviceAddr != null)
+ //3銆佺粦瀹氭柊鐨勬暟鎹�
+ var addBindeDev = new AddBindData();
+ addBindeDev.DeviceAddr = currentKey.DeviceAddr;
+ addBindeDev.Epoint = currentKey.DeviceEpoint;
+
+ foreach (var de in targetList)
{
- var addBindInfo = new AddBindListObj();
- addBindInfo.BindType = 0;
- addBindInfo.BindCluster = currentClusterID;
- addBindInfo.BindMacAddr = de.DeviceAddr;
- addBindInfo.BindEpoint = de.DeviceEpoint;
- addBindeDev.BindList.Add(addBindInfo);
+ if (de.DeviceAddr != null)
+ {
+ var addBindInfo = new AddBindListObj();
+ addBindInfo.BindType = 0;
+ addBindInfo.BindCluster = currentClusterID;
+ addBindInfo.BindMacAddr = de.DeviceAddr;
+ addBindInfo.BindEpoint = de.DeviceEpoint;
+ addBindeDev.BindList.Add(addBindInfo);
+ }
}
- }
- var dev = new AddedDeviceBindResponseAllData();
- dev = await currentKey.AddDeviceBindAsync(addBindeDev);
- if (dev.addedDeviceBindResponseData == null)
- {
- Application.RunOnMainThread(() =>
+ //鏄寒搴﹀啀娆″彂6鍛戒护
+ if (currentClusterID == 8)
{
- new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnFinifh);
- });
- btnFinifh.Enable = true;
- btnFinifh.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack;
+ foreach (var de in targetList)
+ {
+ if (de.DeviceAddr != null)
+ {
+ var addBindInfo = new AddBindListObj();
+ addBindInfo.BindType = 0;
+ addBindInfo.BindCluster = 6;
+ addBindInfo.BindMacAddr = de.DeviceAddr;
+ addBindInfo.BindEpoint = de.DeviceEpoint;
+ addBindeDev.BindList.Add(addBindInfo);
+ }
+ }
+ }
+
+ var dev = new AddedDeviceBindResponseAllData();
+ dev = await currentKey.AddDeviceBindAsync(addBindeDev);
+ if (dev.addedDeviceBindResponseData == null)
+ {
+ Application.RunOnMainThread(() =>
+ {
+ CommonPage.Loading.Hide();
+ new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnFinifh);
+ });
+ btnFinifh.Enable = true;
+ btnFinifh.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack;
+ return;
+ }
+ else
+ {
+ if (dev.addedDeviceBindResponseData.Result == 0)
+ {
+ if (currentClusterID == 8)
+ {
+ foreach (var de in dev.addedDeviceBindResponseData.BindList)
+ {
+ if (de.BindCluster == 8)
+ {
+ currentKey.bindList.Add(de);
+ }
+ }
+ }
+ else
+ {
+ currentKey.bindList = dev.addedDeviceBindResponseData.BindList;
+ }
+ if (action != null)
+ {
+ action(currentKey.bindList);
+ }
+ this.RemoveFromParent();
+ targetList.Clear();
+ CommonPage.Loading.Hide();
+ btnFinifh.Enable = true;
+ btnFinifh.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack;
+ }
+ else if (dev.addedDeviceBindResponseData.Result == 1)
+ {
+ Application.RunOnMainThread(() =>
+ {
+ CommonPage.Loading.Hide();
+ new Tip()
+ {
+ MaxWidth = 150,
+ Text = Language.StringByID(R.MyInternationalizationString.BindFailed),
+ Direction = AMPopTipDirection.Up,
+ CloseTime = 1
+ }.Show(btnFinifh);
+ });
+ btnFinifh.Enable = true;
+ btnFinifh.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack;
+ return;
+ }
+ else
+ {
+ Application.RunOnMainThread(() =>
+ {
+ CommonPage.Loading.Hide();
+ new Tip()
+ {
+ MaxWidth = 150,
+ Text = Language.StringByID(R.MyInternationalizationString.BindUnknownError),
+ Direction = AMPopTipDirection.Up,
+ CloseTime = 1
+ }.Show(btnFinifh);
+ });
+ btnFinifh.Enable = true;
+ btnFinifh.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack;
+ return;
+ }
+ }
}
else
{
- foreach (var ab in dev.addedDeviceBindResponseData?.BindList)
+ Application.RunOnMainThread(() =>
{
- switch (ab.Result)
- {
- case 0:
- currentKey.bindList.Add((BindListResponseObj)ab);
-
- for (int i = 0; i < targetList.Count; i++)
- {
- var de = targetList[i];
- var sc1 = new SceneUI();
- if (de.DeviceAddr == null)
- {
- sc1 = (SceneUI)de;
-
- if (sc1.Id == ab.BindScenesId)
- {
- targetList.RemoveAt(i);
- i--;
- }
- }
- }
- isFinish = true;
- break;
- case 1:
- Application.RunOnMainThread(() =>
- {
- new Tip()
- {
- MaxWidth = 150,
- Text = Language.StringByID(R.MyInternationalizationString.BindErrorAbsence),
- Direction = AMPopTipDirection.Up,
- CloseTime = 1
- }.Show(btnFinifh);
- });
- break;
- case 2:
- var abr = dev.addBindResultResponseData?.Result;
- switch (dev.addBindResultResponseData?.Result)
- {
- case 0:
- currentKey.bindList.Add((BindListResponseObj)ab);
- for (int i = 0; i < targetList.Count; i++)
- {
- var de = targetList[i];
- if (de.DeviceAddr == ab.BindMacAddr && de.DeviceEpoint == ab.BindEpoint)
- {
- targetList.RemoveAt(i);
- i--;
- }
- }
- isFinish = true;
- break;
- case 140:
- Application.RunOnMainThread(() =>
- {
- new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.BindFull), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnFinifh);
- });
- break;
- default:
- Application.RunOnMainThread(() =>
- {
- new Tip() { MaxWidth = 150, Text = ab.ESName + Language.StringByID(R.MyInternationalizationString.BindFailed), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnFinifh);
- });
- break;
- }
- break;
- case 3:
- Application.RunOnMainThread(() =>
- {
- new Tip() { MaxWidth = 150, Text = ab.ESName + Language.StringByID(R.MyInternationalizationString.BindErrorExisted), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnFinifh);
- });
- break;
- case 4:
- Application.RunOnMainThread(() =>
- {
- new Tip() { MaxWidth = 150, Text = ab.ESName + Language.StringByID(R.MyInternationalizationString.BindFailed), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnFinifh);
- });
- break;
- default:
- Application.RunOnMainThread(() =>
- {
- new Tip() { MaxWidth = 150, Text = ab.ESName + Language.StringByID(R.MyInternationalizationString.BindFailed), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnFinifh);
- });
- break;
- }
- }
+ CommonPage.Loading.Hide();
+ new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.ChangeBindMode), Direction = AMPopTipDirection.Up, CloseTime = 2 }.Show(btnFinifh);
+ });
+ btnFinifh.Enable = true;
+ btnFinifh.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack;
+ return;
}
}
else
{
Application.RunOnMainThread(() =>
{
- new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.ChangeBindMode), Direction = AMPopTipDirection.Up, CloseTime = 2 }.Show(btnFinifh);
+ CommonPage.Loading.Hide();
+ new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime), Direction = AMPopTipDirection.Up, CloseTime = 2 }.Show(btnFinifh);
});
btnFinifh.Enable = true;
btnFinifh.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack;
+ return;
}
}
- catch { }
- finally
- {
- if (isFinish)
- {
- if (action != null)
- {
- action(currentKey.bindList);
-
- }
- this.RemoveFromParent();
- }
- else
- {
- this.RemoveFromParent();
- }
+ catch
+ {
CommonPage.Loading.Hide();
btnFinifh.Enable = true;
btnFinifh.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack;
}
};
#endregion
- }
-
+ }
+
/// <summary>
/// 鎸夐敭妯″紡鏄剧ず
/// </summary>
/// <param name="gateway">Gateway.</param>
/// <param name="key">Key.</param>
- void KeyModeList(Shared.Common.Room curRoom)
+ private void KeyModeList()
{
midVerticalScrolViewLayout.RemoveAll();
-
switch (curDeviceBindType)
{
case "AddSwitch":
@@ -441,7 +364,7 @@
}
}
- public void AddSwitchMode()
+ private void AddSwitchMode()
{
Button oldMode = null;
for (int i = 0; i < 3; i++)
@@ -518,6 +441,15 @@
btnChoose.IsSelected = true;
btnChoose.Visible = true;
oldMode = btnChoose;
+ }
+ else if ((currentKey.panelMode == 65535) && i == 0)
+ {
+ //榛樿绗竴涓�
+ btnChoose.IsSelected = true;
+ btnChoose.Visible = true;
+ oldMode = btnChoose;
+ currentModeID = 100;
+ currentKey.panelMode = currentModeID;
}
EventHandler<MouseEventArgs> hander = async (sender, e) =>
@@ -555,9 +487,9 @@
btnModeText.MouseUpEventHandler += hander;
btnChoose.MouseUpEventHandler += hander;
}
- }
-
- public void AddDimmerMode()
+ }
+
+ private void AddDimmerMode()
{
Button oldMode = null;
for (int i = 0; i < 5; i++)
@@ -654,6 +586,15 @@
btnChoose.IsSelected = true;
btnChoose.Visible = true;
oldMode = btnChoose;
+ }
+ else if ((currentKey.panelMode == 65535) && i == 0)
+ {
+ //榛樿绗竴涓�
+ btnChoose.IsSelected = true;
+ btnChoose.Visible = true;
+ oldMode = btnChoose;
+ currentModeID = 200;
+ currentKey.panelMode = currentModeID;
}
EventHandler<MouseEventArgs> hander = (sender, e) =>
@@ -701,9 +642,9 @@
btnChoose.MouseUpEventHandler += hander;
}
- }
-
- public void AddCurtainMode()
+ }
+
+ private void AddCurtainMode()
{
Button oldMode = null;
for (int i = 0; i < 5; i++)
@@ -800,6 +741,15 @@
btnChoose.IsSelected = true;
btnChoose.Visible = true;
oldMode = btnChoose;
+ }
+ else if ((currentKey.panelMode == 65535) && i == 0)
+ {
+ //榛樿绗竴涓�
+ btnChoose.IsSelected = true;
+ btnChoose.Visible = true;
+ oldMode = btnChoose;
+ currentModeID = 300;
+ currentKey.panelMode = currentModeID;
}
EventHandler<MouseEventArgs> hander = (sender, e) =>
@@ -848,6 +798,11 @@
}
}
+ private void FinisfhEventHandler(object sender, MouseEventArgs e)
+ {
+
+ }
+
public void DeviceInfoChange(CommonDevice common, string typeTag)
{
}
--
Gitblit v1.8.0