gxc
2019-12-25 944b87b6bcccb095cd73f13f4410fb20faf48f74
ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceSearchForm.cs
@@ -45,6 +45,10 @@
        /// </summary>
        private string gatewayId = string.Empty;
        /// <summary>
        /// 真实网关
        /// </summary>
        private ZbGateway realGateway = null;
        /// <summary>
        /// 进度条
        /// </summary>
        private FrameLayout btnProgressBar = null;
@@ -64,24 +68,25 @@
        /// <summary>
        /// 画面显示(底层会固定调用此方法,借以完成画面创建)
        /// </summary>
        /// <param name="i_formId">画面ID,标记它由哪个界面调用并打开的</param>
        public void ShowForm(string i_formId)
        {
            this.targetFormId = i_formId;
            //设置标题信息
            base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uAddDevice));
            this.gatewayId = HdlGatewayLogic.Current.GetGatewayId(GatewayResourse.NowSelectGateway);
            //初始化中部控件
            this.InitMiddleFrame();
        }
        /// <summary>
        /// 初始化中部控件
        /// </summary>
        private void InitMiddleFrame()
        /// <param name="i_formId">画面ID,标记它由哪个界面调用并打开的</param>
        public void ShowForm(string i_formId)
        {
            this.targetFormId = i_formId;
            //设置标题信息
            base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uAddDevice));
            this.gatewayId = HdlGatewayLogic.Current.GetGatewayId(GatewayResourse.NowSelectGateway);
            HdlGatewayLogic.Current.GetRealGateway(ref this.realGateway, this.gatewayId);
            //初始化中部控件
            this.InitMiddleFrame();
        }
        /// <summary>
        /// 初始化中部控件
        /// </summary>
        private void InitMiddleFrame()
        {
            //清空bodyFrame
            this.ClearBodyFrame();
@@ -102,17 +107,17 @@
            bodyFrameLayout.AddChidren(btnSearch);
            //进度条
            var btnProRow = new FrameLayout();
            btnProRow.Gravity = Gravity.CenterHorizontal;
            btnProRow.Y = Application.GetRealHeight(861);
            btnProRow.Width = Application.GetRealWidth(559);
            btnProRow.Height = Application.GetRealHeight(29);
            var btnProRow = new FrameLayout();
            btnProRow.Gravity = Gravity.CenterHorizontal;
            btnProRow.Y = Application.GetRealHeight(861);
            btnProRow.Width = Application.GetRealWidth(559);
            btnProRow.Height = Application.GetRealHeight(29);
            btnProRow.BackgroundColor = 0xffe6e6e6;
            btnProRow.Radius = (uint)Application.GetRealHeight(29) / 2;
            bodyFrameLayout.AddChidren(btnProRow);
            this.btnProgressBar = new FrameLayout();
            btnProgressBar.Width = 0;
            btnProgressBar.Height = btnProRow.Height;
            bodyFrameLayout.AddChidren(btnProRow);
            this.btnProgressBar = new FrameLayout();
            btnProgressBar.Width = 0;
            btnProgressBar.Height = btnProRow.Height;
            btnProgressBar.Radius = btnProRow.Radius;
            btnProgressBar.BackgroundColor = 0xfffb744a;
            btnProgressBar.Radius = (uint)Application.GetRealHeight(29) / 2;
@@ -144,16 +149,15 @@
                        return;
                    }
                    //让网关允许入网
                    GatewayResourse.NowSelectGateway.AddNewDeviceToGateway(255);
                    this.realGateway.AddNewDeviceToGateway(180);
                    System.Threading.Thread.Sleep(1000);
                }
            });
            //添加监视设备新上报的事件
            GatewayResourse.NowSelectGateway.GwResDataAction += this.AdjustGatewayResultData;
            //开启连接的假想动画效果线程
            this.StartConcetionAnimeteThread();
            this.realGateway.GwResDataAction += this.AdjustGatewayResultData;
            //开启连接的假想动画效果线程
            this.StartConcetionAnimeteThread();
        }
        #endregion
@@ -172,7 +176,7 @@
            if (result == -1)
            {
                //停止接收
                GatewayResourse.NowSelectGateway.GwResDataAction -= this.AdjustGatewayResultData;
                this.realGateway.GwResDataAction -= this.AdjustGatewayResultData;
                Application.RunOnMainThread(() =>
                {
@@ -209,7 +213,7 @@
                //给新设备设置主键属性
                Common.LocalDevice.Current.SetNewDeviceMainKeys(device, jobject);
                device.CurrentGateWayId = HdlGatewayLogic.Current.GetGatewayId(GatewayResourse.NowSelectGateway);
                device.CurrentGateWayId = HdlGatewayLogic.Current.GetGatewayId(this.realGateway);
                //将DeviceInfo的属性设置到主属性中
                Common.LocalDevice.Current.SetDeviceInfoToMain(device, device);
@@ -264,7 +268,7 @@
                    this.waitDeviceTimeOut--;
                }
                //停止接收
                GatewayResourse.NowSelectGateway.GwResDataAction -= this.AdjustGatewayResultData;
                this.realGateway.GwResDataAction -= this.AdjustGatewayResultData;
                System.Threading.Thread.Sleep(500);
                //目前就弄一个
@@ -337,9 +341,17 @@
            HdlThreadLogic.Current.RunThread(() =>
            {
                int index = 1;
                int timeCount = 0;
                while (this.Parent != null)
                {
                    System.Threading.Thread.Sleep(500);
                    timeCount++;
                    if (timeCount >= 240)
                    {
                        //120秒后,再次发送网关设备入网命令
                        this.realGateway.AddNewDeviceToGateway(180);
                        timeCount = 0;
                    }
                    Application.RunOnMainThread(() =>
                    {
                        if (btnRound != null)
@@ -514,19 +526,19 @@
        /// <summary>
        /// 画面关闭
        /// </summary>
        public override void CloseForm()
        {
            base.CloseForm();
        /// </summary>
        public override void CloseFormBefore()
        {
            //停止接收
            GatewayResourse.NowSelectGateway.GwResDataAction -= this.AdjustGatewayResultData;
            this.realGateway.GwResDataAction -= this.AdjustGatewayResultData;
            HdlThreadLogic.Current.RunThread(() =>
            {
                System.Threading.Thread.Sleep(1200);
                //关闭入网模式
                GatewayResourse.NowSelectGateway.AddNewDeviceToGateway(0);
                this.realGateway.AddNewDeviceToGateway(0);
            });
            base.CloseFormBefore();
        }
        #endregion