黄学彪
2020-12-17 9f326f4000847e6167d8166fa2f6a66f53cb3734
ZigbeeApp/Shared/Phone/MainPage/HomeMainPageForm.cs
@@ -74,9 +74,6 @@
                listBodyContr.RecoverTableHeight();
            }
            //初始化默认楼层ID
            this.InitDefultFloorId();
            //初始化头部控件
            this.InitTopFrameLayoutControl();
            //初始化中间控件
@@ -103,7 +100,7 @@
            //楼层图标
            var btnFloorIcon = new IconViewControl(69);
            btnFloorIcon.X = ControlCommonResourse.XXLeft;
            btnFloorIcon.X = HdlControlResourse.XXLeft;
            btnFloorIcon.Gravity = Gravity.CenterVertical;
            btnFloorIcon.UnSelectedImagePath = "Item/Floor.png";
            topFrameLayout.AddChidren(btnFloorIcon);
@@ -138,7 +135,7 @@
            //可视对讲快捷方式
            Shared.Phone.Device.VideoIntercom.VideoMachine.AccountSupportVideo(topFrameLayout);
            //安防快捷方式
            if (UserCenterResourse.ResidenceOption.SafetyShortcut)
            if (HdlUserCenterResourse.ResidenceOption.SafetyShortcut)
            {
                var btnSafety = new Controls.SafetyShortcutControl();
                btnSafety.X = Application.GetRealWidth(860);
@@ -155,7 +152,7 @@
            //住宅名字
            var btnHouseName = new NormalViewControl(700, 95, true);
            btnHouseName.X = ControlCommonResourse.XXLeft;
            btnHouseName.X = HdlControlResourse.XXLeft;
            btnHouseName.Y = Application.GetRealHeight(161);
            btnHouseName.TextSize = 24;
            btnHouseName.TextColor = ZigbeeColor.Current.GXCTextDeepBlackColor;
@@ -191,7 +188,7 @@
        private void InitMidFrameLayoutControl()
        {
            //成员身份不允许添加网关
            if (UserCenterResourse.UserInfo.AuthorityNo == 3)
            if (HdlUserCenterResourse.ResidenceOption.AuthorityNo == 3)
            {
                //初始化场景,功能的切换控件
                this.InitSceneFunctionSwitchControl();
@@ -250,13 +247,13 @@
            btnFunction.TextID = R.MyInternationalizationString.Function;
            btnFunction.TextAlignment = TextAlignment.Center;
            functionSceneView.AddChidren(btnFunction);
            if (UserCenterResourse.ResidenceOption.HomeMainPageSwitchIndex == 1)
            if (HdlUserCenterResourse.ResidenceOption.HomeMainPageSwitchIndex == 1)
            {
                btnScene.IsSelected = true;
                btnScene.TextSize = 17;
                btnScene.IsBold = true;
            }
            else if (UserCenterResourse.ResidenceOption.HomeMainPageSwitchIndex == 2)
            else if (HdlUserCenterResourse.ResidenceOption.HomeMainPageSwitchIndex == 2)
            {
                btnFunction.IsSelected = true;
                btnFunction.TextSize = 17;
@@ -278,7 +275,7 @@
                    return;
                }
                //功能分支选择
                UserCenterResourse.ResidenceOption.HomeMainPageSwitchIndex = 2;
                HdlUserCenterResourse.ResidenceOption.HomeMainPageSwitchIndex = 2;
                btnScene.IsSelected = false;
                btnScene.TextSize = 15;
@@ -298,7 +295,7 @@
                    return;
                }
                //场景分支选择
                UserCenterResourse.ResidenceOption.HomeMainPageSwitchIndex = 1;
                HdlUserCenterResourse.ResidenceOption.HomeMainPageSwitchIndex = 1;
                btnScene.IsSelected = true;
                btnScene.TextSize = 17;
@@ -324,7 +321,7 @@
            this.listBodyContr.frameTable.AddChidren(bg);
            var tip = new NormalViewControl(this.GetPictrueRealSize(717), this.GetPictrueRealSize(58), false);
            tip.Y = Application.GetRealHeight(815);
            tip.Y = bg.Bottom + Application.GetRealHeight(35);
            tip.Gravity = Gravity.CenterHorizontal;
            tip.TextID = R.MyInternationalizationString.NewAccountNeedBingGW;
            tip.TextColor = ZigbeeColor.Current.GXCTextGrayColor;
@@ -332,13 +329,13 @@
            this.listBodyContr.frameTable.AddChidren(tip);
            var addBG = new PicViewControl(971, 366);
            addBG.Y = Application.GetRealHeight(1048);
            addBG.Y = tip.Bottom + Application.GetRealHeight(176);
            addBG.UnSelectedImagePath = "Item/VirtualFrame.png";
            addBG.Gravity = Gravity.CenterHorizontal;
            this.listBodyContr.frameTable.AddChidren(addBG);
            var addGatewayBtn = new IconViewControl(89);
            addGatewayBtn.Y = Application.GetRealHeight(1143);
            addGatewayBtn.Y = tip.Bottom + Application.GetRealHeight(271);
            addGatewayBtn.UnSelectedImagePath = "Item/Add_GW.png";
            addGatewayBtn.Gravity = Gravity.CenterHorizontal;
            this.listBodyContr.frameTable.AddChidren(addGatewayBtn);
@@ -349,7 +346,7 @@
            };
            var addTip = new PicViewControl(717, 58);
            addTip.Y = Application.GetRealHeight(1256);
            addTip.Y = addGatewayBtn.Bottom + Application.GetRealHeight(23);
            addTip.Gravity = Gravity.CenterHorizontal;
            addTip.TextID = R.MyInternationalizationString.AddSmartGW;
            addTip.TextColor = ZigbeeColor.Current.GXCTextBlackColor;
@@ -552,9 +549,9 @@
            var listDevice = new List<CommonDevice>();
            foreach (var mainkeys in HdlRoomLogic.Current.NowMainPageRoom.ListDevice)
            {
                var device = LocalDevice.Current.GetDevice(mainkeys);
                var device = HdlDeviceCommonLogic.Current.GetDevice(mainkeys);
                //判断该设备能否显示在主页
                if (LocalDevice.Current.CanShowInHomeHomeMainPage(device) == false)
                if (HdlDeviceCommonLogic.Current.CanShowInHomeHomeMainPage(device) == false)
                {
                    continue;
                }
@@ -673,7 +670,7 @@
                    cardContr.CardNeedRemoveEvent += () =>
                    {
                        //重置设备卡片控件坐标(卡片需要被删除专用)
                        this.ResetDeviceCardControlLocation(LocalDevice.Current.GetDeviceMainKeys(device));
                        this.ResetDeviceCardControlLocation(HdlDeviceCommonLogic.Current.GetDeviceMainKeys(device));
                    };
                    //设备计数
                    contrCount++;
@@ -685,7 +682,7 @@
                        YY = cardContr.Bottom + this.GetPictrueRealSize(15);
                    }
                    //控件记录到缓存中
                    this.dicDeviceCardControl[LocalDevice.Current.GetDeviceMainKeys(device)] = cardContr;
                    this.dicDeviceCardControl[HdlDeviceCommonLogic.Current.GetDeviceMainKeys(device)] = cardContr;
                    //加缓存,然后发命令
                    listContr.Add(cardContr);
@@ -700,17 +697,31 @@
                        }
                        HdlThreadLogic.Current.RunThread(() =>
                        {
                            for (int i = 0; i < listContr.Count; i++)
                            while (listDeviceBackContr.Parent != null)
                            {
                                if (listDeviceBackContr.Parent == null)
                                bool hadSend = false;
                                for (int i = 0; i < listContr.Count; i++)
                                {
                                    return;
                                    if (listDeviceBackContr.Parent == null)
                                    {
                                        return;
                                    }
                                    //如果还没有接收到数据,则再次发送
                                    if (listContr[i].ReceiveResponeResultStatu() == false)
                                    {
                                        //发送获取状态的命令
                                        listContr[i].SendStatuComand();
                                        hadSend = true;
                                        System.Threading.Thread.Sleep(200);
                                    }
                                }
                                System.Threading.Thread.Sleep(200);
                                //发送获取状态的命令
                                listContr[i].SendStatuComand();
                                if (hadSend == false)
                                {
                                    //如果已经全部回路都接收了网关回复,则不再二次发送
                                    break;
                                }
                                System.Threading.Thread.Sleep(2000);
                            }
                        }, ShowErrorMode.NO);
                    }
                });
@@ -1046,7 +1057,7 @@
            //让界面别闪烁
            HdlThreadLogic.Current.RunMainInThread(() =>
            {
                if (UserCenterResourse.ResidenceOption.HomeMainPageSwitchIndex == 2)
                if (HdlUserCenterResourse.ResidenceOption.HomeMainPageSwitchIndex == 2)
                {
                    //功能
                    this.ShowFunction();
@@ -1102,11 +1113,11 @@
                HdlThreadLogic.Current.RunMain(() =>
                {
                    //处理一般设备的上报数据
                    string mainKeys = LocalDevice.Current.GetDeviceMainKeys(report);
                    string mainKeys = HdlDeviceCommonLogic.Current.GetDeviceMainKeys(report);
                    if (this.dicDeviceCardControl.ContainsKey(mainKeys) == true)
                    {
                        //刷新卡片信息
                        var locadevice = LocalDevice.Current.GetDevice(mainKeys);
                        var locadevice = HdlDeviceCommonLogic.Current.GetDevice(mainKeys);
                        //已经接收到网关的反馈 2020.05.09:删除Ack主题
                        this.dicDeviceCardControl[mainKeys].SetHadGetResponeResultStatu();
                        //刷新控件
@@ -1129,11 +1140,11 @@
            {
                HdlThreadLogic.Current.RunMain(() =>
                {
                    string mainKeys = LocalDevice.Current.GetDeviceMainKeys(report);
                    string mainKeys = HdlDeviceCommonLogic.Current.GetDeviceMainKeys(report);
                    if (this.dicDeviceCardControl.ContainsKey(mainKeys) == true)
                    {
                        //刷新卡片状态
                        bool bolOnline = Common.LocalDevice.Current.CheckDeviceIsOnline(report);
                        bool bolOnline = HdlDeviceCommonLogic.Current.CheckDeviceIsOnline(report);
                        this.dicDeviceCardControl[mainKeys].SetCardOnlineStatu(bolOnline);
                        return;
                    }
@@ -1157,7 +1168,7 @@
                HdlThreadLogic.Current.RunMain(() =>
                {
                    //处理传感器上报数据
                    string mainKeys = LocalDevice.Current.GetDeviceMainKeys(report);
                    string mainKeys = HdlDeviceCommonLogic.Current.GetDeviceMainKeys(report);
                    if (this.dicDeviceCardControl.ContainsKey(mainKeys) == true)
                    {
                        //开启卡片闪烁特效
@@ -1193,8 +1204,10 @@
                                HdlThreadLogic.Current.RunMain(() =>
                                {
                                    //设备状态必须刷新
                                    string statuText = HdlDeviceOtherLogic.Current.GetDeviceStatu(contr.device);
                                    string statuText = HdlDeviceCommonLogic.Current.GetMainPageDeviceStatuText(contr.device);
                                    contr.SetDeviceStatuText(statuText);
                                    //传感器切换为灰色状态
                                    contr.SwitchCardStatuAppeal(false);
                                }, ShowErrorMode.NO);
                            }
@@ -1265,23 +1278,6 @@
                return false;
            }
            return true;
        }
        /// <summary>
        /// 初始化默认楼层ID
        /// </summary>
        private void InitDefultFloorId()
        {
            if (Config.Instance.Home.CurrentFloorId != string.Empty)
            {
                return;
            }
            var dicFloor = HdlRoomLogic.Current.GetFloorSortList();
            foreach (var floorId in dicFloor.Keys)
            {
                Config.Instance.Home.CurrentFloorId = floorId;
                break;
            }
        }
        #endregion