HDL Home App 第二版本 旧平台金堂用 正在使用
ZigbeeApp20200519/Shared/Phone/UserCenter/DoorLock/UserDoorLockPage.cs
@@ -17,7 +17,7 @@
        public UserDoorLockPage(Room room, CommonDevice doorLock)
        {
            //徐梅的门锁界面打开(网关全局接收时使用)
            //ControlCommonResourse.IsDoorLockPageOpen = true;
            //ControlCommonResourse.IsDoorLockPageOpen = true;
            this.doorLock = doorLock as ZigBee.Device.DoorLock;
            currentRoom = room;
            deviceUI = doorLock;
@@ -58,7 +58,7 @@
        /// <summary>
        /// 逻辑中是否有常开模式
        /// </summary>
        private bool haveLogicNormallyOpenMode = false;
        private bool haveLogicNormallyOpenMode = false;
        /// <summary>
        /// 当前电量
@@ -200,7 +200,7 @@
        #endregion
        /// <summary>
        /// UI显示
        /// UI显示
        /// </summary>
        public void Show()
        {
@@ -525,7 +525,7 @@
                TextAlignment = TextAlignment.CenterLeft,
            };
            btnCurrentFrameLayout.AddChidren(btnCurrentRoomName);
            #endregion
            #endregion
        }
        #region 音量弹窗
@@ -580,7 +580,7 @@
                ThumbImagePath = "DoorLock/UnLockButton.png",//进度条按钮图标
                ThumbImageHeight = Application.GetRealHeight(81),//进度条按钮图标的高度(默认正方形:宽和高一样)
                ProgressTextColor = ZigbeeColor.Current.LogicBtnCancelColor,
                ProgressTextSize = 12,//显示百分比字体大小
                ProgressTextSize = 12,//显示百分比字体大小
                SeekBarViewHeight = Application.GetRealHeight(17),//进度条的宽度
                Progress = currentVolume,
            };
@@ -705,6 +705,20 @@
                        CommonPage.Loading.Start("");
                    });
                    //放在设备启动的地方
                    //HdlGatewayReceiveLogic
                    //1、启动获取门锁设备对象,
                    //2、再获取当前门锁对象的常开模式
                    var res = await DoorLockCommonInfo.GetNormallyOpenMode(doorLock);
                    if (DoorLockCommonInfo.DoorLockNormallyMode.ContainsKey(doorLock.DeviceAddr + doorLock.DeviceEpoint))
                    {
                        DoorLockCommonInfo.DoorLockNormallyMode[doorLock.DeviceAddr + doorLock.DeviceEpoint] = res;
                    }
                    else
                    {
                        DoorLockCommonInfo.DoorLockNormallyMode.Add(doorLock.DeviceAddr + doorLock.DeviceEpoint, res);
                    }
                    //是否支持常开
                    canOpenNormallyMode = DoorLockCommonInfo.CanNormallyOpen(doorLock);
                    if (canOpenNormallyMode)
@@ -734,18 +748,18 @@
                            }
                            DoorLockCommonInfo.NormallyOpenModeValue(doorLock, tempRes);
                            //Application.RunOnMainThread(async () =>
                            //{
                            //var resTemp = await Shared.Phone.Device.Logic.SkipView.Exist(3, doorLock);
                            //if (resTemp == 1)
                            //{
                            //    haveLogicNormallyOpenMode = true;
                            //}
                            //else if (resTemp == 0)
                            //{
                            //    haveLogicNormallyOpenMode = false;
                            //}
                            //});
                            Application.RunOnMainThread(async () =>
                            {
                                var resTemp = await Shared.Phone.Device.Logic.SkipView.Exist(3, doorLock);
                                if (resTemp == 0)
                                {
                                    haveLogicNormallyOpenMode = false;
                                }
                                else
                                {
                                    haveLogicNormallyOpenMode = true;
                                }
                            });
                        }
                    }
                    else
@@ -760,7 +774,7 @@
                    canVolume = DoorLockCommonInfo.CanVolume(doorLock);
                    if (canVolume)
                    {
                        //2、读取音量
                        //2、读取音量
                        var resultRes = await doorLock.GetVolumeAsync();
                        if (resultRes == null || resultRes.volumeResponseData == null)
                        {
@@ -811,14 +825,51 @@
                        CommonPage.Loading.Hide();
                    });
                }
                //定时检测时间变化
                var curDateNow = DateTime.Now;
                var curDateDelay = DateTime.MinValue;
                new System.Threading.Thread(async () =>
                {
                    while (true)
                    {
                        try
                        {
                            curDateNow = DateTime.Now;
                            if (curDateNow > curDateDelay)
                            {
                                //晚上9点提示用户门锁是否还开着
                                if (DoorLockCommonInfo.DoorLockNormallyMode[doorLock.DeviceAddr + doorLock.DeviceEpoint] == true)
                                {
                                    if (curDateNow.Hour == 21)
                                    {
                                        curDateDelay = curDateNow;
                                        curDateDelay = curDateDelay.AddHours(+1);
                                        var result = await Shared.Phone.Device.Logic.SkipView.Exist(3, (ZigBee.Device.DoorLock)doorLock);
                                        HdlThreadLogic.Current.RunMain(() =>
                                        {
                                            //弹出徐梅的那个窗口
                                            DoorLock.DoorLockCommonInfo.NomallyOpenModeInvalidDialog((ZigBee.Device.DoorLock)doorLock, DoorLock.DoorLockCommonInfo.DoorLockMessType.AppOperate,
                                             result != 0 ? true : false, ControlCommonResourse.UpdateDoorLockStatusAction);
                                        });
                                    }
                                }
                            }
                        }
                        catch { }
                        System.Threading.Thread.Sleep(1000 * 60);
                    }
                })
                { IsBackground = true }.Start();
            });
        }
        #endregion
        #region 公共事件处理
        #region 公共事件处理
        /// <summary>
        /// 事件处理
        /// 事件处理
        /// </summary>
        public void ClickHandle()
        {
@@ -882,11 +933,11 @@
                btnCollect.IsSelected = !btnCollect.IsSelected;
                if (btnCollect.IsSelected)
                {
                    HdlRoomLogic.Current.AddLoveDevice(deviceUI);//收藏
                    HdlRoomLogic.Current.AddLoveDevice(deviceUI);//收藏
                }
                else
                {
                    HdlRoomLogic.Current.DeleteLoveDevice(deviceUI);//取消收藏
                    HdlRoomLogic.Current.DeleteLoveDevice(deviceUI);//取消收藏
                }
            };
            btnCollectFrameLayout.MouseDownEventHandler += handerCollect;
@@ -1007,7 +1058,7 @@
        }
        #endregion
        #region 音量
        #region 音量
        /// <summary>
        /// 更新音量
        /// </summary>
@@ -1082,7 +1133,7 @@
        }
        #endregion
        #region 常开模式
        #region 常开模式
        /// <summary>
        /// 常开模式处理
        /// </summary>
@@ -1121,8 +1172,8 @@
                UserView.HomePage.Instance.PageIndex += 1;
                addLogicPage.Show();
                addLogicPage.action += (w) =>
                {
                    doorLock.IsDoorLockNormallyMode = w;
                {
                    DoorLockCommonInfo.NormallyOpenModeValue(doorLock, w);
                    UpdateNomallyOpenStatus();
                    //返回按键清空当前逻辑定义的LogicAction
                    UserCenter.DoorLock.DoorLockCommonInfo.LogicAction = null;
@@ -1130,9 +1181,9 @@
            };
            HdlCheckLogic.Current.CheckSecondarySecurity(action);
        }
        /// <summary>
        }
        /// <summary>
        /// 常开模式状态更新
        /// </summary>
        private void UpdateNomallyOpenStatus()
@@ -1160,7 +1211,7 @@
        }
        #endregion
        #region 开锁处理
        #region 开锁处理
        /// <summary>
        /// 开锁处理
        /// </summary>