From 66a9965c44ecc32a6696abca876ab9d1cd091584 Mon Sep 17 00:00:00 2001
From: gxc <guoxuecheng@guoxuechengdeMacBook-Pro.local>
Date: 星期五, 28 二月 2020 15:25:13 +0800
Subject: [PATCH] 2020.2.28

---
 ZigbeeApp/Shared/Phone/UserView/UserPage.cs |  445 +++++++++++++++++++++++++++---------------------------
 1 files changed, 222 insertions(+), 223 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/UserView/UserPage.cs b/ZigbeeApp/Shared/Phone/UserView/UserPage.cs
index a051bd3..1dd142f 100644
--- a/ZigbeeApp/Shared/Phone/UserView/UserPage.cs
+++ b/ZigbeeApp/Shared/Phone/UserView/UserPage.cs
@@ -3,7 +3,9 @@
 using Shared.Common;
 using ZigBee.Device;
 using Shared.Phone.Device.AC;
-
+using System.Text;
+using Shared.Phone.Device.Account;
+
 namespace Shared.Phone.UserView
 {
     /// <summary>
@@ -39,7 +41,7 @@
         /// <summary>
         /// 搴曢儴鎸夐挳鏂囧瓧鐨刌鍊�
         /// </summary>
-        private static readonly int tabBarEnumName_Y = 104;
+        private static readonly int tabBarEnumName_Y = 98;
         #endregion
 
         #region 鈼� 鎺ュ彛____________________________
@@ -67,208 +69,233 @@
         /// <param name="typeTag">Type tag.</param>
         public void DeviceInfoChange(CommonDevice common, string typeTag)
         {
-            ///
+            var myDevice = LocalDevice.Current.GetDevice(common.DeviceAddr, common.DeviceEpoint);
+            if (myDevice == null)
+            {
+                return;
+            }
             //璁惧涓婃姤鐘舵�佷腑 褰揅luterID=3,灏辫瘉鏄庤璁惧鍦ㄧ嚎锛岀洿鎺ユ爣璁�
             if (typeTag == "DeviceStatusReport")
             {
                 try
-                {
-                    for (int i = 0; i < Room.AllRoomDeviceUIList.Count; i++)
+                {
+                    if (common.DeviceStatusReport.AttriBute == null || common.DeviceStatusReport.AttriBute.Count == 0)
                     {
-                        var deviceUI = Room.AllRoomDeviceUIList[i];
-                        if (deviceUI.CommonDevice == null)
-                        {
-                            //璁惧涓虹┖
-                            continue;
-                        }
-                        if (common.DeviceAddr != deviceUI.CommonDevice.DeviceAddr || common.DeviceEpoint != deviceUI.CommonDevice.DeviceEpoint)
-                        {
-                            //鍒ゆ柇鏄惁涓哄綋鍓嶈澶�
-                            continue;
-                        }
-                        switch (deviceUI.CommonDevice.Type)
-                        {
-                            case DeviceType.OnOffOutput:
-                                //寮�鍏冲姛鑳�
-                                if ((common as ZigBee.Device.ToggleLight).DeviceStatusReport.CluterID == 6)
+                        return;
+                    }
+                    switch (myDevice.Type)
+                    {
+                        case DeviceType.OnOffOutput:
+                            //寮�鍏冲姛鑳�
+                            if (common.DeviceStatusReport.CluterID == 6)
+                            {
+                                var onOffOutputLight = (ToggleLight)myDevice;
+                                onOffOutputLight.DeviceStatusReport = common.DeviceStatusReport;
+                                onOffOutputLight.OnOffStatus = onOffOutputLight.DeviceStatusReport.AttriBute[0].AttriButeData;
+                                onOffOutputLight.LastDateTime = DateTime.Now;
+                            }
+                            //褰揅luterID=3,灏辫瘉鏄庤璁惧鍦ㄧ嚎锛岀洿鎺ユ爣璁�
+                            if (common.DeviceStatusReport.CluterID == 3)
+                            {
+                                myDevice.IsOnline = 1;
+                                myDevice.LastDateTime = DateTime.Now;
+                            }
+                            break;
+
+                        case DeviceType.AirSwitch:
+                            //寮�鍏冲姛鑳�
+                            if (common.DeviceStatusReport.CluterID == 6)
+                            {
+                                var airSwitch = (AirSwitch)myDevice;
+                                airSwitch.DeviceStatusReport = common.DeviceStatusReport;
+                                airSwitch.OnOffStatus = airSwitch.DeviceStatusReport.AttriBute[0].AttriButeData;
+                                airSwitch.LastDateTime = DateTime.Now;
+                            }
+                            //褰揅luterID=3,灏辫瘉鏄庤璁惧鍦ㄧ嚎锛岀洿鎺ユ爣璁�
+                            if (common.DeviceStatusReport.CluterID == 3)
+                            {
+                                myDevice.IsOnline = 1;
+                                myDevice.LastDateTime = DateTime.Now;
+                            }
+                            break;
+
+                        case DeviceType.WindowCoveringDevice:
+                            if (common.DeviceStatusReport.CluterID == 258)
+                            {
+                                var rollershade = (Rollershade)myDevice;
+                                rollershade.DeviceStatusReport = common.DeviceStatusReport;
+                                var attriButeList = rollershade.DeviceStatusReport.AttriBute;
+                                switch (attriButeList[0].AttributeId)
+                                {
+                                    case 0:
+                                        rollershade.WcdType = attriButeList[0].AttriButeData;
+                                        rollershade.LastDateTime = DateTime.Now;
+                                        break;
+                                }
+                            }
+                            if (common.DeviceStatusReport.CluterID == 3)
+                            {
+                                myDevice.IsOnline = 1;
+                                myDevice.LastDateTime = DateTime.Now;
+                            }
+                            break;
+
+                        case DeviceType.Thermostat:
+                            //AC鍔熻兘
+                            if (common.DeviceStatusReport.CluterID == 513)
+                            {
+                                var ac = (AC)myDevice;
+                                ac.DeviceStatusReport = common.DeviceStatusReport;
+                                var attriButeList = ac.DeviceStatusReport.AttriBute;
+                                foreach (var attList in attriButeList)
                                 {
-                                    var onOffOutputLight = deviceUI.CommonDevice as ZigBee.Device.ToggleLight;
-                                    onOffOutputLight.DeviceStatusReport = (common as ZigBee.Device.ToggleLight).DeviceStatusReport;
-                                    //璁板綍銆佹洿鏂扮姸鎬�
-                                    if (onOffOutputLight.DeviceStatusReport.AttriBute == null || onOffOutputLight.DeviceStatusReport.AttriBute.Count == 0)
-                                    {
-                                        continue;
-                                    }
-                                    onOffOutputLight.OnOffStatus = onOffOutputLight.DeviceStatusReport.AttriBute[0].AttriButeData;
-                                    //璁板綍鍥炲鏃堕棿
-                                    onOffOutputLight.LastDateTime = DateTime.Now;
-                                }
-                                //褰揅luterID=3,灏辫瘉鏄庤璁惧鍦ㄧ嚎锛岀洿鎺ユ爣璁�
-                                if ((common as ZigBee.Device.ToggleLight).DeviceStatusReport.CluterID == 3)
-                                {
-                                    var onOffOutputLight = deviceUI.CommonDevice as ToggleLight;
-                                    onOffOutputLight.IsOnline = 1;
-                                    //璁板綍鍥炲鏃堕棿
-                                    onOffOutputLight.LastDateTime = DateTime.Now;
-                                }
-                                break;
-
-                            case DeviceType.AirSwitch:
-                                //寮�鍏冲姛鑳�
-                                if ((common as ZigBee.Device.AirSwitch).DeviceStatusReport.CluterID == 6)
-                                {
-                                    var airSwitch = deviceUI.CommonDevice as ZigBee.Device.AirSwitch;
-                                    airSwitch.DeviceStatusReport = (common as ZigBee.Device.AirSwitch).DeviceStatusReport;
-                                    //璁板綍銆佹洿鏂扮姸鎬�
-                                    if (airSwitch.DeviceStatusReport.AttriBute == null || airSwitch.DeviceStatusReport.AttriBute.Count == 0)
-                                    {
-                                        return;
-                                    }
-                                    airSwitch.OnOffStatus = airSwitch.DeviceStatusReport.AttriBute[0].AttriButeData;
-                                    //璁板綍鍥炲鏃堕棿
-                                    airSwitch.LastDateTime = DateTime.Now;
-
-                                }
-                                //褰揅luterID=3,灏辫瘉鏄庤璁惧鍦ㄧ嚎锛岀洿鎺ユ爣璁�
-                                if ((common as ZigBee.Device.AirSwitch).DeviceStatusReport.CluterID == 3)
-                                {
-                                    var airSwitch = deviceUI.CommonDevice as AirSwitch;
-                                    airSwitch.IsOnline = 1;
-                                    //璁板綍鍥炲鏃堕棿
-                                    airSwitch.LastDateTime = DateTime.Now;
-                                }
-                                break;
-
-                            case DeviceType.WindowCoveringDevice:
-                                if ((common as ZigBee.Device.Rollershade).DeviceStatusReport.CluterID == 258)
-                                {
-                                    var rollershade = deviceUI.CommonDevice as ZigBee.Device.Rollershade;
-                                    rollershade.DeviceStatusReport = (common as ZigBee.Device.Rollershade).DeviceStatusReport;
-                                    var attriButeList = rollershade.DeviceStatusReport.AttriBute;
-                                    if (attriButeList == null || attriButeList.Count == 0)
-                                    {
-                                        continue;
-                                    }
-                                    switch (attriButeList[0].AttributeId)
+                                    //姝ゅ睘鎬ц〃鏄庡鍐呭綋鍓嶇殑娓╁害 * 100锛屽疄闄呮俯搴︿负鈥淟ocalTemperature / 100鈥濓紝鍗曚綅锛氣剝
+                                    var curTemp = (attList.AttriButeData / 100 < ACControlBase.Temperature_High && attList.AttriButeData / 100 > ACControlBase.Temperature_Low) ? attList.AttriButeData / 100 : ACControlBase.Temperature_Default;
+                                    switch (attList.AttributeId)
                                     {
                                         case 0:
-                                            rollershade.WcdType = attriButeList[0].AttriButeData;
-                                            rollershade.LastDateTime = DateTime.Now;
-                                            break;
-                                    }
-                                }
-                                if ((common as ZigBee.Device.Rollershade).DeviceStatusReport.CluterID == 3)
-                                {
-                                    var rollershade = deviceUI.CommonDevice as ZigBee.Device.Rollershade;
-                                    rollershade.IsOnline = 1;
-                                    //璁板綍鍥炲鏃堕棿
-                                    rollershade.LastDateTime = DateTime.Now;
-                                }
-                                break;
-
-                            case DeviceType.Thermostat:
-                                //AC鍔熻兘
-                                if ((common as ZigBee.Device.AC).DeviceStatusReport.CluterID == 513)
-                                {
-                                    var ac = deviceUI.CommonDevice as ZigBee.Device.AC;
-                                    ac.DeviceStatusReport = (common as ZigBee.Device.AC).DeviceStatusReport;
-                                    var attriButeList = ac.DeviceStatusReport.AttriBute;
-                                    if (attriButeList == null || attriButeList.Count == 0)
-                                    {
-                                        continue;
-                                    }
-                                    switch (attriButeList[0].AttributeId)
-                                    {
-                                        case 0:
-                                            //姝ゅ睘鎬ц〃鏄庡鍐呭綋鍓嶇殑娓╁害 * 100锛屽疄闄呮俯搴︿负鈥淟ocalTemperature / 100鈥濓紝鍗曚綅锛氣剝
-                                            ac.currentLocalTemperature = attriButeList[0].AttriButeData / 100;
+                                            ac.currentLocalTemperature = curTemp;
                                             ac.LastDateTime = DateTime.Now;
                                             break;
-
                                         case 17:
-                                            //姝ゅ睘鎬ц〃鏄庢璁惧褰撳墠鐨勫埗鍐锋俯搴︼紝瀹為檯娓╁害涓衡�淐oolingSetpoint / 100鈥濓紝鍗曚綅锛氣剝銆�
-                                            ac.currentCoolingSetpoint = attriButeList[0].AttriButeData / 100;
+                                            ac.currentCoolingSetpoint = curTemp;
                                             ac.LastDateTime = DateTime.Now;
                                             break;
-
                                         case 18:
-                                            //姝ゅ睘鎬ц〃鏄庢璁惧褰撳墠鐨勫埗鐑俯搴︼紝瀹為檯娓╁害涓衡�淗eatingSetpoint / 100鈥濓紝鍗曚綅锛氣剝銆�
-                                            ac.currentHeatingSetpoint = attriButeList[0].AttriButeData / 100;
+                                            ac.currentHeatingSetpoint = curTemp;
                                             ac.LastDateTime = DateTime.Now;
                                             break;
-
                                         case 4096:
-                                            //姝ゅ睘鎬ц〃鏄庢璁惧褰撳墠鐨勮嚜鍔ㄦ俯搴︼紝瀹為檯娓╁害涓衡�淎utoSetpoint / 100鈥濓紝鍗曚綅锛氣剝銆�
-                                            ac.currentAutoSetpoint = (attriButeList[0].AttriButeData / 100 > ACControlBase.Temperature_High || attriButeList[0].AttriButeData / 100 < ACControlBase.Temperature_Low) ? attriButeList[0].AttriButeData / 100 : ACControlBase.Temperature_Default;
+                                            ac.currentAutoSetpoint = curTemp;
                                             ac.LastDateTime = DateTime.Now;
                                             break;
-
                                         case 28:
-                                            //姝ゅ睘鎬ф弿杩版亽娓╄澶囨澶勪簬鍝妯″紡
-                                            //Off = 0  Auto = 1 Cool = 3 Heat = 4 FanOnly = 7  Dry = 8
-                                            ac.currentSystemMode = attriButeList[0].AttriButeData;
+                                            ac.currentSystemMode = attList.AttriButeData;
                                             ac.LastDateTime = DateTime.Now;
                                             break;
-
+                                        case 4097:
+                                            ac.CleanStatu = attList.AttriButeData == 42;
+                                            break;
                                     }
-
                                 }
-                                //褰揅luterID=3,灏辫瘉鏄庤璁惧鍦ㄧ嚎锛岀洿鎺ユ爣璁�
-                                if ((common as ZigBee.Device.AC).DeviceStatusReport.CluterID == 3)
+                            }
+
+                            if (common.DeviceStatusReport.CluterID == 514)
+                            {
+                                var ac = (AC)myDevice;
+                                var attriButeList = common.DeviceStatusReport.AttriBute;
+                                ac.DeviceStatusReport = common.DeviceStatusReport;
+                                foreach (var attList in attriButeList)
                                 {
-                                    var ac = deviceUI.CommonDevice as AC;
-                                    ac.IsOnline = 1;
-                                    //璁板綍鍥炲鏃堕棿
-                                    ac.LastDateTime = DateTime.Now;
-
-                                }
-                                break;
-
-                            case DeviceType.DimmableLight:
-                                //璋冨厜鐏姛鑳�
-                                //寮�鍏冲姛鑳�
-                                if ((common as ZigBee.Device.DimmableLight).DeviceStatusReport.CluterID == 6)
-                                {
-                                    var dimmableLight = deviceUI.CommonDevice as ZigBee.Device.DimmableLight;
-                                    dimmableLight.DeviceStatusReport = (common as ZigBee.Device.DimmableLight).DeviceStatusReport;
-                                    //璁板綍銆佹洿鏂扮姸鎬�
-                                    if (dimmableLight.DeviceStatusReport.AttriBute == null || dimmableLight.DeviceStatusReport.AttriBute.Count == 0)
-                                    {
-                                        return;
-                                    }
-                                    dimmableLight.OnOffStatus = dimmableLight.DeviceStatusReport.AttriBute[0].AttriButeData;
-                                    //璁板綍鍥炲鏃堕棿
-                                    dimmableLight.LastDateTime = DateTime.Now;
-                                }
-                                //浜害
-                                if ((common as ZigBee.Device.DimmableLight).DeviceStatusReport.CluterID == 8)
-                                {
-                                    var dimmableLight = deviceUI.CommonDevice as ZigBee.Device.DimmableLight;
-                                    dimmableLight.DeviceStatusReport = (common as ZigBee.Device.DimmableLight).DeviceStatusReport;
-                                    var attriButeList = dimmableLight.DeviceStatusReport.AttriBute;
-                                    if (attriButeList == null || attriButeList.Count == 0)
-                                    {
-                                        continue;
-                                    }
-                                    switch (attriButeList[0].AttributeId)
+                                    switch (attList.AttributeId)
                                     {
                                         case 0:
-                                            //姝ゅ睘鎬ц〃鏄庡綋鍓嶄寒搴︾▼搴�
-                                            dimmableLight.Level = attriButeList[0].AttriButeData;
-                                            dimmableLight.LastDateTime = DateTime.Now;
+                                            ac.currentFanMode = attList.AttriButeData;
+                                            ac.LastDateTime = DateTime.Now;
+                                            break;
+                                        case 4096:
+                                            ac.currentFanSwingMode = attList.AttriButeData;
+                                            ac.LastDateTime = DateTime.Now;
                                             break;
                                     }
                                 }
-                                //褰揅luterID=3,灏辫瘉鏄庤璁惧鍦ㄧ嚎锛岀洿鎺ユ爣璁�
-                                if ((common as ZigBee.Device.DimmableLight).DeviceStatusReport.CluterID == 3)
+                            }
+
+                            //褰揅luterID=3,灏辫瘉鏄庤璁惧鍦ㄧ嚎锛岀洿鎺ユ爣璁�
+                            if (common.DeviceStatusReport.CluterID == 3)
+                            {
+                                myDevice.IsOnline = 1;
+                                myDevice.LastDateTime = DateTime.Now;
+                            }
+                            break;
+
+                        case DeviceType.DimmableLight:
+                            //璋冨厜鐏姛鑳�
+                            //寮�鍏冲姛鑳�
+                            if (common.DeviceStatusReport.CluterID == 6)
+                            {
+                                var dimmableLight = (DimmableLight)myDevice;
+                                dimmableLight.DeviceStatusReport = common.DeviceStatusReport;
+                                dimmableLight.OnOffStatus = dimmableLight.DeviceStatusReport.AttriBute[0].AttriButeData;
+                                dimmableLight.LastDateTime = DateTime.Now;
+                            }
+                            //浜害
+                            if (common.DeviceStatusReport.CluterID == 8)
+                            {
+                                var dimmableLight = (DimmableLight)myDevice;
+                                dimmableLight.DeviceStatusReport = common.DeviceStatusReport;
+                                var attriButeList = dimmableLight.DeviceStatusReport.AttriBute;
+                                switch (attriButeList[0].AttributeId)
+                                {
+                                    case 0:
+                                        dimmableLight.Level = attriButeList[0].AttriButeData;
+                                        dimmableLight.LastDateTime = DateTime.Now;
+                                        break;
+                                }
+                            }
+                            //褰揅luterID=3,灏辫瘉鏄庤璁惧鍦ㄧ嚎锛岀洿鎺ユ爣璁�
+                            if (common.DeviceStatusReport.CluterID == 3)
+                            {
+                                myDevice.IsOnline = 1;
+                                myDevice.LastDateTime = DateTime.Now;
+                            }
+                            break;
+
+                        case DeviceType.TemperatureSensor:
+                            //娓╁害
+                            if (common.DeviceStatusReport.CluterID == 1026)
+                            {
+                                var tempera = (TemperatureSensor)myDevice;
+                                foreach (var data in common.DeviceStatusReport.AttriBute)
                                 {
-                                    var dimmableLight = deviceUI.CommonDevice as DimmableLight;
-                                    dimmableLight.IsOnline = 1;
-                                    //璁板綍鍥炲鏃堕棿
-                                    dimmableLight.LastDateTime = DateTime.Now;
+                                    if (data.AttributeId == (int)ZigBee.Device.AttriButeId.MeasuredValue)
+                                    {
+                                        if (data.AttriButeData == 0)
+                                        {
+                                            tempera.Temperatrue = 0;
+                                        }
+                                        else if (data.AttriButeData > 32767)
+                                        {
+                                            //璐熸暟(鐗规畩澶勭悊)
+                                            string strValue = (data.AttriButeData - 65536).ToString();
+                                            //灏忔暟鐐归渶瑕佷竴浣�
+                                            strValue = strValue.Substring(0, strValue.Length - 1);
+                                            tempera.Temperatrue = Convert.ToDecimal(strValue.Insert(strValue.Length - 1, "."));
+                                        }
+                                        else
+                                        {
+                                            //灏忔暟鐐归渶瑕佷竴浣�
+                                            string strValue = data.AttriButeData.ToString();
+                                            strValue = strValue.Substring(0, strValue.Length - 1);
+                                            tempera.Temperatrue = Convert.ToDecimal(strValue.Insert(strValue.Length - 1, "."));
+                                        }
+                                    }
                                 }
-                                break;
-                        }
+                            }
+                            //婀垮害
+                            if (common.DeviceStatusReport.CluterID == 1029)
+                            {
+                                var tempera = (TemperatureSensor)myDevice;
+                                foreach (var data in common.DeviceStatusReport.AttriBute)
+                                {
+                                    if (data.AttributeId == (int)ZigBee.Device.AttriButeId.MeasuredValue)
+                                    {
+                                        if (data.AttriButeData == 0)
+                                        {
+                                            tempera.Humidity = 0;
+                                        }
+                                        else
+                                        {
+                                            //灏忔暟鐐归渶瑕佷竴浣�(婀垮害娌℃湁璐熸暟)
+                                            string strValue = data.AttriButeData.ToString();
+                                            strValue = strValue.Substring(0, strValue.Length - 1);
+                                            tempera.Humidity = Convert.ToDecimal(strValue.Insert(strValue.Length - 1, "."));
+                                            tempera.LastDateTime = DateTime.Now;
+                                        }
+                                    }
+                                }
+                            }
+                            break;
                     }
                 }
                 catch (Exception ex)
@@ -278,61 +305,25 @@
             }
             //璁惧鍦ㄧ嚎鐘舵�佷笂鎶�
             else if (typeTag == "OnlineStatusChange")
+            {
+                myDevice.IsOnline = common.IsOnline;
+                //璁板綍鍥炲鏃堕棿
+                myDevice.LastDateTime = DateTime.Now;
+            }
+            else if (typeTag == "IASInfoReport")
             {
                 try
                 {
-                    for (int i = 0; i < Room.AllRoomDeviceUIList.Count; i++)
-                    {
-                        var deviceUI = Room.AllRoomDeviceUIList[i];
-                        if (deviceUI.CommonDevice == null)
-                        {
-                            //璁惧涓虹┖鎴栬�呮帶浠朵负绌�
-                            continue;
-                        }
-                        if (common.DeviceAddr != deviceUI.CommonDevice.DeviceAddr || common.DeviceEpoint != deviceUI.CommonDevice.DeviceEpoint)
-                        {
-                            //鍒ゆ柇鏄惁涓哄綋鍓嶈澶�
-                            continue;
-                        }
-                        switch (deviceUI.CommonDevice.Type)
-                        {
-                            case DeviceType.OnOffOutput:
-                                var onOffOutputLight = deviceUI.CommonDevice as ToggleLight;
-                                onOffOutputLight.IsOnline = (common as ToggleLight).IsOnline;
-                                //璁板綍鍥炲鏃堕棿
-                                onOffOutputLight.LastDateTime = DateTime.Now;
-                                break;
-                            case DeviceType.AirSwitch:
-                                var airSwitch = deviceUI.CommonDevice as AirSwitch;
-                                airSwitch.IsOnline = (common as AirSwitch).IsOnline;
-                                //璁板綍鍥炲鏃堕棿
-                                airSwitch.LastDateTime = DateTime.Now;
-                                break;
-                            case DeviceType.WindowCoveringDevice:
-                                var rollershade = deviceUI.CommonDevice as ZigBee.Device.Rollershade;
-                                rollershade.IsOnline = (common as Rollershade).IsOnline;
-                                //璁板綍鍥炲鏃堕棿
-                                rollershade.LastDateTime = DateTime.Now;
-                                break;
-                            case DeviceType.Thermostat:
-                                var ac = deviceUI.CommonDevice as ZigBee.Device.AC;
-                                ac.IsOnline = (common as ZigBee.Device.AC).IsOnline;
-                                //璁板綍鍥炲鏃堕棿
-                                ac.LastDateTime = DateTime.Now;
-                                break;
-                            case DeviceType.DimmableLight:
-                                var dimmableLight = deviceUI.CommonDevice as ZigBee.Device.DimmableLight;
-                                dimmableLight.IsOnline = (common as ZigBee.Device.DimmableLight).IsOnline;
-                                //璁板綍鍥炲鏃堕棿
-                                dimmableLight.LastDateTime = DateTime.Now;
-                                break;
-                        }
+                    switch (myDevice.Type)
+                    {
+                        case DeviceType.IASZone:
+                            var iAS = (IASZone)myDevice;
+                            iAS.iASInfo = (common as IASZone).iASInfo;
+                            iAS.LastDateTime = DateTime.Now;
+                            break;
                     }
                 }
-                catch (Exception ex)
-                {
-                    System.Console.WriteLine($"userpage鍔熻兘鍒锋柊-Error:{ex.Message}");
-                }
+                catch { }
             }
         }
         /// <summary>
@@ -376,6 +367,10 @@
         {
             BackgroundColor = Shared.Common.ZigbeeColor.Current.MainColor;
             ZbGateway.StatusList.Add(this);
+            Shared.Application.LocationAction += (lon, lat) =>
+            {
+                AccountLogic.Instance.ReceiveAppLatAndLon(lon.ToString(), lat.ToString());
+            };
         }
 
         /// <summary>
@@ -537,15 +532,18 @@
             if (sender == Instance.homePageIMG || sender == Instance.homePageName)
             {
                 //涓婚〉
+                CommonPage.Instance.IsDrawerLockMode = false;
                 Instance.homePageName.IsSelected = true;
                 Instance.homePageIMG.IsSelected = true;
                 var home = new UserHomeView { };
                 Instance.BodyView.AddChidren(home);
                 home.Show();
+
             }
             else if (sender == Instance.categoryIMG || sender==Instance.categoryName)
             {
                 //鍒嗙被
+                CommonPage.Instance.IsDrawerLockMode = true;
                 Instance.categoryName.IsSelected = true;
                 Instance.categoryIMG.IsSelected = true;
                 var category = new Phone.Device.Category.Category { };
@@ -554,7 +552,8 @@
             }
             else if (sender == Instance.settingIMG || sender==Instance.settingName)
             {
-                 //涓汉涓績
+                //涓汉涓績
+                CommonPage.Instance.IsDrawerLockMode = true;
                 Instance.settingName.IsSelected = true;
                 Instance.settingIMG.IsSelected = true;
                 var form = new UserCenter.UserMain.UserMainForm();

--
Gitblit v1.8.0