gxc
2020-01-10 b8cbf4a8b6910eefcb83b6d3a39e9b5b5a9cd79e
ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlGatewayLogic.cs
@@ -178,10 +178,18 @@
        /// <returns></returns>
        private ZbGateway GetGatewayFromFile(string file)
        {
            byte[] filebyte = Global.ReadFileByHomeId(file);
            string strvalue = System.Text.Encoding.UTF8.GetString(filebyte);
            var gateway = JsonConvert.DeserializeObject<ZbGateway>(strvalue);
            return gateway;
            try
            {
                byte[] filebyte = Global.ReadFileByHomeId(file);
                string strvalue = System.Text.Encoding.UTF8.GetString(filebyte);
                var gateway = JsonConvert.DeserializeObject<ZbGateway>(strvalue);
                return gateway;
            }
            catch (Exception ex)
            {
                HdlLogLogic.Current.WriteLog(ex);
                return null;
            }
        }
        #endregion
@@ -212,11 +220,13 @@
                }
                return false;
            }
            if (result != 1)
            if (result == -1)
            {
                return false;
            }
            return true;
            //设置网关的经纬度
            bool falge = this.SetGatewaySite(zbGateway, Common.Config.Instance.Home.Longitude, Common.Config.Instance.Home.Latitude);
            return falge;
        }
        /// <summary>
@@ -424,6 +434,12 @@
                this.ShowTipMsg(msg);
                return -1;
            }
            //设置网关的经纬度
            bool falge = this.SetGatewaySite(zbGateway, Common.Config.Instance.Home.Longitude, Common.Config.Instance.Home.Latitude);
            if (falge == false)
            {
                return -1;
            }
            //设置住宅ID到网关
            bool flage2 = await this.SetHomeIdToGateway(zbGateway, Common.Config.Instance.HomeId);
@@ -461,7 +477,7 @@
                    btnMsg.TextID = R.MyInternationalizationString.uGatewayDataIsChangingPleaseWhait;
                });
            }
            await System.Threading.Tasks.Task.Delay(8000);
            await Task.Delay(8000);
            //获取网关的信息
            var result = await zbGateway.GetZbGwInfoAsync();
@@ -473,15 +489,7 @@
                return -1;
            }
            if (result == null)
            {
                //获取网关信息失败
                string msg = Language.StringByID(R.MyInternationalizationString.uGetGatewayInfoFail);
                this.ShowTipMsg(msg);
                return -1;
            }
            if (result.getGwData == null)
            if (result == null || result.getGwData == null)
            {
                //获取网关信息失败
                string msg = Language.StringByID(R.MyInternationalizationString.uGetGatewayInfoFail);
@@ -701,15 +709,15 @@
                bool result = await this.SetHomeIdToGateway(realWay, string.Empty);
                if (result == false)
                {
                    //网关解绑失败
                    //网关解绑失败  不理它,因为网关可以按按键强制搜索得到
                    string msg = Language.StringByID(R.MyInternationalizationString.uGatewayUnBindFail);
                    this.ShowErrorMsg(msg);
                    return false;
                    //this.ShowErrorMsg(msg);
                    //return false;
                }
            }
            //删除云端的网关
            await Phone.UserCenter.HdlGatewayLogic.Current.DeleteDataBaseGateway(zbGatewayID);
            await this.DeleteDataBaseGateway(zbGatewayID);
            //删除网关文件
            this.DeleteGatewayFile(zbGatewayID);
@@ -1840,7 +1848,15 @@
                return;
            }
            var jObject = new Newtonsoft.Json.Linq.JObject { { "Cluster_ID", 0 }, { "Command", 85 } };
            realWay.Send("GwLinuxLocate_Respon", jObject.ToString());
            if (this.IsGatewayExist(zbGateway) == true)
            {
                realWay.Send("GwLinuxLocate_Respon", jObject.ToString());
            }
            else
            {
                //如果这个网关还没有绑定的话,则强制使用本地连接
                realWay.SendLocation("GwLinuxLocate_Respon", System.Text.Encoding.UTF8.GetBytes(jObject.ToString()));
            }
        }
        #endregion
@@ -2129,7 +2145,7 @@
            bool canBreak = false;
            HdlThreadLogic.Current.RunThread(async () =>
            {
                List<string> list = new List<string>() { "NotSetAgain" };
                List<string> list = new List<string>() { "NotSetAgain", "NotCheck" };
                //设置访问接口的参数
                var pra = new GetGatewayPra();
@@ -2213,7 +2229,15 @@
            var jObject = new Newtonsoft.Json.Linq.JObject { { "Cluster_ID", 0 }, { "Command", 2013 } };
            var data = new Newtonsoft.Json.Linq.JObject { { "Longitude", intLongitude }, { "Latitude", intLatitude } };
            jObject.Add("Data", data);
            realWay.Send("Logic/SetSite", jObject.ToString());
            if (this.IsGatewayExist(gateway) == true)
            {
                realWay.Send("Logic/SetSite", jObject.ToString());
            }
            else
            {
                //如果这个网关还没有绑定的话,则强制使用本地连接
                realWay.SendLocation("Logic/SetSite", System.Text.Encoding.UTF8.GetBytes(jObject.ToString()));
            }
            int TimeOut = 0;
            while (result == -1 && TimeOut < 30)
@@ -2253,7 +2277,7 @@
            //获取控制主人账号的Token
            Pra.LoginAccessToken = UserCenterLogic.GetConnectMainToken();
            List<string> listNotShowError = new List<string>() { "NoExist", "NoBind", "NoRecord" };
            List<string> listNotShowError = new List<string>() { "NoExist", "NoBind", "NoRecord", "NotSetAgain" };
            bool result = await UserCenterLogic.GetResultStatuByRequestHttps("App/ReleaseGatewayToHome", true, Pra, listNotShowError);
            if (result == false)
@@ -2522,7 +2546,7 @@
            else if (backType == GatewayBackupEnum.APir灯光配置)
            {
                var recoverData = Newtonsoft.Json.JsonConvert.DeserializeObject<IASZone.ConfigureParamates>(System.Text.Encoding.UTF8.GetString(byteData));
                result = await HdlDevicePirSensorLogic.Current.SetPirSensorLightSettion((IASZone)device, recoverData);
                result = await HdlDevicePirSensorLogic.Current.SetPirSensorSettion((IASZone)device, recoverData);
            }
            else if (backType == GatewayBackupEnum.A干接点颜色调节)
            {