黄学彪
2019-11-25 160785587667cc0d927f85e44c139ec9dde13a9e
ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceListMainForm.cs
@@ -20,7 +20,7 @@
        /// <summary>
        /// 列表控件
        /// </summary>
        private VerticalListControl listView = null;
        private VerticalListRefreshControl listView = null;
        /// <summary>
        /// 行控件的信息(Keys:Mac地址)
        /// </summary>
@@ -90,8 +90,6 @@
            this.gatewayViewRow = new MyGatewayControl(GatewayResourse.NowSelectGateway);
            bodyFrameLayout.AddChidren(gatewayViewRow);
            gatewayViewRow.InitControl();
            //设置网关接受在线状态推送
            this.AddGatewayOnlinePush();
            //初始化搜索控件
            this.InitSearchControl();
@@ -128,10 +126,29 @@
            txtSearchControl.BindEvent(this.SetRowDataBySearchKeys);
            //列表控件
            listView = new VerticalListControl(29);
            listView = new VerticalListRefreshControl(29);
            listView.Y = txtSearchControl.Bottom + Application.GetRealHeight(29);
            listView.Height = frame.Height - txtSearchControl.Bottom - Application.GetRealHeight(29);
            frame.AddChidren(listView);
            listView.BeginHeaderRefreshingAction += () =>
            {
                //下拉刷新
                HdlThreadLogic.Current.RunThread(() =>
                {
                    //获取全部设备
                    bool result = LocalDevice.Current.SetDeviceToMemmoryByGateway(GatewayResourse.NowSelectGateway);
                    HdlThreadLogic.Current.RunMain(() =>
                    {
                        //隐藏下拉刷新特效
                        listView.EndHeaderRefreshing();
                        if (result == true)
                        {
                            //重新刷新界面
                            this.InitMiddleFrame(false);
                        }
                    });
                });
            };
        }
        #endregion
@@ -173,13 +190,6 @@
                    this.AddDeviceMenuRow(macAddress);
                }
                //添加底部间隙
                var frameTemp = new FrameLayout();
                frameTemp.Height = Application.GetRealHeight(23);
                listView.AddChidren(frameTemp);
                //开启设备属性变更监听
                this.AddDeviceAttributePush();
                //开启网关在线监测的线程
                this.StartGatewayOnlieCheckThread();
                //检测设备新版本
@@ -567,29 +577,7 @@
        #endregion
        #region ■ 设备属性变更推送___________________
        /// <summary>
        /// 设备属性变更推送
        /// </summary>
        /// <param name="device"></param>
        public override void DeviceAttributePush(CommonDevice device)
        {
            if (dicRowInfo.ContainsKey(device.DeviceAddr) == false)
            {
                return;
            }
            var rowInfo = dicRowInfo[device.DeviceAddr];
            Application.RunOnMainThread(() =>
            {
                //刷新菜单
                rowInfo.MenuRow?.RefreshControlInfo(false);
            });
        }
        #endregion
        #region ■ 开启设备在线线程___________________
        #region ■ 设备在线检测_______________________
        /// <summary>
        /// 开启设备在线线程
@@ -609,10 +597,6 @@
            this.StartCheckDeviceOnline();
        }
        #endregion
        #region ■ 设备在线___________________________
        /// <summary>
        /// 开启设备在线监测
        /// </summary>
@@ -623,20 +607,24 @@
            {
                return;
            }
            //添加接收设备在线上报的监听
            HdlGatewayReceiveLogic.Current.AddAttributeEvent("DeviceListFormReceivePushOnline", ReceiveComandDiv.A设备在线上报, this.ReceiveDeviceStatu);
            string gwId = HdlGatewayLogic.Current.GetGatewayId(GatewayResourse.NowSelectGateway);
            HdlThreadLogic.Current.RunThread(() =>
            {
                //这里主要只是获取在线状态
                var zbway = HdlGatewayLogic.Current.GetLocalGateway(gwId);
                var result = Common.LocalDevice.Current.GetDeviceListFromGateway(zbway, false, this.ReceiveDeviceStatuPush, ShowErrorMode.NO);
                var result = Common.LocalDevice.Current.GetDeviceListFromGateway(zbway, false, this.ReceiveDeviceStatu, ShowErrorMode.NO);
            });
        }
        /// <summary>
        /// 接受设备在线推送
        /// 接受设备状态
        /// </summary>
        /// <param name="device"></param>
        private void ReceiveDeviceStatuPush(CommonDevice device)
        private void ReceiveDeviceStatu(CommonDevice device)
        {
            lock (dicRowInfo)
            {
@@ -707,6 +695,29 @@
        #endregion
        #region ■ 传感器报警_________________________
        /// <summary>
        /// 开启传感器报警监视
        /// </summary>
        private void StartCheckDeviceAlarm()
        {
            HdlGatewayReceiveLogic.Current.AddAttributeEvent("DeviceListFormSensor", ReceiveComandDiv.A传感器上报, (device) =>
             {
                 Application.RunOnMainThread(() =>
                 {
                     if (this.dicRowInfo.ContainsKey(device.DeviceAddr) == false)
                     {
                         return;
                     }
                     //显示传感器上报的特效
                     this.dicRowInfo[device.DeviceAddr].MenuRow?.StartSensorPushAppeal();
                 });
             });
        }
        #endregion
        #region ■ 设备新版本_________________________
        /// <summary>
@@ -756,32 +767,6 @@
                    });
                }
            });
        }
        #endregion
        #region ■ 传感器报警_________________________
        /// <summary>
        /// 开启传感器报警监视
        /// </summary>
        private void StartCheckDeviceAlarm()
        {
            HdlDeviceAttributeLogic.Current.AddAttributeEvent("DeviceListFormSensor", "IASInfoReport", (device) =>
             {
                 Application.RunOnMainThread(() =>
                 {
                     if (this.dicRowInfo.ContainsKey(device.DeviceAddr) == false)
                     {
                         return;
                     }
                     var row = this.dicRowInfo[device.DeviceAddr].MenuRow;
                     if (row != null)
                     {
                         row.frameTable.StartSelectStatuAppeal(3000);
                     }
                 });
             });
        }
        #endregion
@@ -851,23 +836,6 @@
        #endregion
        #region ■ 关闭界面___________________________
        /// <summary>
        /// 画面关闭
        /// </summary>
        public override void CloseForm()
        {
            HdlDeviceAttributeLogic.Current.RemoveEvent("DeviceListFormSensor");
            HdlDeviceAttributeLogic.Current.RemoveEvent("DeviceListFormReceivePushOnline");
            GatewayResourse.NowSelectGateway = null;
            base.CloseForm();
        }
        #endregion
        #region ■ 界面重新激活事件___________________
        /// <summary>
@@ -911,6 +879,23 @@
        #endregion
        #region ■ 关闭界面___________________________
        /// <summary>
        /// 画面关闭
        /// </summary>
        public override void CloseFormBefore()
        {
            HdlGatewayReceiveLogic.Current.RemoveEvent("DeviceListFormSensor");
            HdlGatewayReceiveLogic.Current.RemoveEvent("DeviceListFormReceivePushOnline");
            GatewayResourse.NowSelectGateway = null;
            base.CloseFormBefore();
        }
        #endregion
        #region ■ 结构体类___________________________
        /// <summary>