黄学彪
2020-07-20 2029e64ec0491f7e511dc15bffaf821bfbabe2de
ZigbeeApp/Shared/Phone/UserCenter/Gateway/Add/WiredGatewaySearchForm.cs
@@ -244,7 +244,7 @@
                        //获取得到新网关,则中断线程
                        break;
                    }
                    Application.RunOnMainThread(() =>
                    HdlThreadLogic.Current.RunMain(() =>
                    {
                        btnRound.X = listPoint[index];
                        index++;
@@ -254,12 +254,13 @@
                        }
                        //正在搜索网关…XXs
                        btnMsg.Text = strMsg + timeCount + "s";
                    });
                    }, ShowErrorMode.NO);
                }
                //搜索结束
                this.isGatewaySearching = false;
                if (maxCount <= 0)
                //2020.07.14追加:倒计时结束时,哪怕是已经绑定了的网关,也显示出来
                if (maxCount <= 0 && listZbGateway.Count == 0)
                {
                    HdlThreadLogic.Current.RunMain(() =>
                    {
@@ -267,7 +268,7 @@
                        this.InitFailMiddleFrame();
                    });
                }
                else if (newGatewayGetting == true)
                else if (newGatewayGetting == true || listZbGateway.Count > 0)
                {
                    HdlThreadLogic.Current.RunMain(() =>
                    {
@@ -363,24 +364,31 @@
                }
                //网关绑定模式
                GatewayBindMode mode = GatewayBindMode.BindAgain;
                //如果是第一次绑定,或者是以前已经绑定过了的
                if (HdlGatewayLogic.Current.HomeIdIsEmpty(way) == true
                    || way.HomeId == Common.Config.Instance.HomeId)
                var mode = GatewayBindMode.BindAgain;
                //住宅ID为空 第一次绑定
                if (HdlGatewayLogic.Current.HomeIdIsEmpty(way) == true)
                {
                    if (way.HomeId != Common.Config.Instance.HomeId)
                    {
                        //第一次绑定,也就是网关住宅ID为空
                        mode = GatewayBindMode.First;
                    }
                    else
                    {
                        //已经绑定过了
                        mode = GatewayBindMode.Binded;
                    }
                    mode = GatewayBindMode.First;
                }
                //住宅ID不相等 需要重新绑定
                else if (way.HomeId != Common.Config.Instance.HomeId)
                {
                    mode = GatewayBindMode.BindAgain;
                }
                //如果本地不存在的话,当做第一次绑定处理
                else if (HdlGatewayLogic.Current.IsGatewayExist(way) == false)
                {
                    mode = GatewayBindMode.First;
                }
                //住宅ID一样,则是已经绑定过了
                else
                {
                    mode = GatewayBindMode.Binded;
                }
                //这两种情况都是需要重新添加(已经绑定过了的,有可能住宅ID没写进去,它有可能是人为的清空住宅ID)
                if (mode == GatewayBindMode.First || mode == GatewayBindMode.Binded)
                {
                    //添加搜索到的网关到缓存(执行网关保存操作)
                    ShowErrorMode showMode = this.dicIdCheckCount[listId[i]] == 0 ? ShowErrorMode.YES : ShowErrorMode.NO;
                    var result = await HdlGatewayLogic.Current.AddNewGateway(way, ShowErrorMode.NO);
                    if (result == false)
                    {
@@ -416,7 +424,12 @@
                if (mode == GatewayBindMode.First || mode == GatewayBindMode.Binded)
                {
                    //我觉得这里需要获取一下新网关的设备列表
                    Common.LocalDevice.Current.SetDeviceToMemmoryByGateway(way);
                    Common.LocalDevice.Current.SetDeviceToMemmoryByGateway(way, true);
                    if (way.IsMainGateWay == true)
                    {
                        //如果它是主网关,则刷新场景列表
                        HdlSceneLogic.Current.RefreshSceneUIList(true);
                    }
                }
            }
            return true;