| | |
| | | public UserDoorLockPage(Room room, CommonDevice doorLock) |
| | | { |
| | | //徐梅的门锁界面打开(网关全局接收时使用) |
| | | ControlCommonResourse.IsDoorLockPageOpen = true; |
| | | //ControlCommonResourse.IsDoorLockPageOpen = true; |
| | | this.doorLock = doorLock as ZigBee.Device.DoorLock; |
| | | currentRoom = room; |
| | | deviceUI = doorLock; |
| | | BackgroundColor = ZigbeeColor.Current.GXCTopViewBackgroundColor; |
| | | ZbGateway.StatusList.Add(this); |
| | | Application.RunOnMainThread(() => |
| | | { |
| | | ControlCommonResourse.UpdateDoorLockStatusAction = (obj) => |
| | | { |
| | | UpdateNomallyOpenStatus(); |
| | | }; |
| | | |
| | | UserCenter.DoorLock.DoorLockCommonInfo.UpdateCurrentDoorlockAction += (DoorlockKey, status) => |
| | | { |
| | | var key = doorLock.DeviceAddr + doorLock.DeviceEpoint; |
| | | if (DoorlockKey == key) |
| | | { |
| | | DoorLockCommonInfo.NormallyOpenModeValue(this.doorLock, status); |
| | | UpdateNomallyOpenStatus(); |
| | | } |
| | | }; |
| | | }); |
| | | } |
| | | |
| | | #region 变量申明 |
| | |
| | | /// <summary> |
| | | /// 逻辑中是否有常开模式
|
| | | /// </summary> |
| | | private bool haveLogicNormallyOpenMode = false; |
| | | private bool haveLogicNormallyOpenMode = false;
|
| | | |
| | | /// <summary> |
| | | /// 当前电量 |
| | |
| | | #endregion |
| | | |
| | | /// <summary>
|
| | | /// UI显示 |
| | | /// UI显示
|
| | | /// </summary> |
| | | public void Show() |
| | | {
|
| | |
| | | TextAlignment = TextAlignment.CenterLeft, |
| | | }; |
| | | btnCurrentFrameLayout.AddChidren(btnCurrentRoomName); |
| | | #endregion |
| | | #endregion |
| | | } |
| | | |
| | | #region 音量弹窗 |
| | |
| | | ThumbImagePath = "DoorLock/UnLockButton.png",//进度条按钮图标 |
| | | ThumbImageHeight = Application.GetRealHeight(81),//进度条按钮图标的高度(默认正方形:宽和高一样) |
| | | ProgressTextColor = ZigbeeColor.Current.LogicBtnCancelColor, |
| | | ProgressTextSize = 12,//显示百分比字体大小 |
| | | ProgressTextSize = 12,//显示百分比字体大小 |
| | | SeekBarViewHeight = Application.GetRealHeight(17),//进度条的宽度 |
| | | Progress = currentVolume, |
| | | }; |
| | |
| | | } |
| | | } |
| | | |
| | | //网关执行逻辑,常开模式失效上报 |
| | | //if (typeTag == "DoorLockAlarmsSendAlarmInform" && tempDevice != null) |
| | | //{ |
| | | // var doorL = (ZigBee.Device.DoorLock)tempDevice; |
| | | |
| | | // if (doorL.DeviceAddr + doorL.DeviceEpoint == doorLock.DeviceAddr + doorLock.DeviceEpoint) |
| | | // { |
| | | // //非主人不弹这个窗口 |
| | | // if (UserCenterResourse.UserInfo.AuthorityNo != 1) |
| | | // { |
| | | // return; |
| | | // } |
| | | // if (doorLock.IsDoorLockNormallyMode) |
| | | // { |
| | | // if (canOpenNormallyMode) |
| | | // { |
| | | // Application.RunOnMainThread(() => |
| | | // { |
| | | // Action<bool> action = (obj) => |
| | | // { |
| | | // UpdateNomallyOpenStatus(); |
| | | // }; |
| | | // DoorLockCommonInfo.NomallyOpenModeInvalidDialog(doorLock, DoorLockCommonInfo.DoorLockMessType.ServicePush, haveLogicNormallyOpenMode, action); |
| | | // }); |
| | | // } |
| | | // } |
| | | // } |
| | | //} |
| | | |
| | | if (typeTag == "DeviceStatusReport" && tempDevice != null) |
| | | { |
| | | if (tempDevice != null) |
| | |
| | | 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) |
| | |
| | | tempRes = false; |
| | | } |
| | | 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) |
| | | if (resTemp == 0) |
| | | { |
| | | haveLogicNormallyOpenMode = false; |
| | | } |
| | | else |
| | | { |
| | | haveLogicNormallyOpenMode = true; |
| | | } |
| | | }); |
| | | } |
| | |
| | | canVolume = DoorLockCommonInfo.CanVolume(doorLock); |
| | | if (canVolume) |
| | | { |
| | | //2、读取音量 |
| | | //2、读取音量 |
| | | var resultRes = await doorLock.GetVolumeAsync(); |
| | | if (resultRes == null || resultRes.volumeResponseData == null) |
| | | { |
| | |
| | | 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() |
| | | { |
| | |
| | | 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; |
| | |
| | | } |
| | | #endregion |
| | | |
| | | #region 音量 |
| | | #region 音量 |
| | | /// <summary> |
| | | /// 更新音量 |
| | | /// </summary> |
| | |
| | | } |
| | | #endregion |
| | | |
| | | #region 常开模式 |
| | | #region 常开模式 |
| | | /// <summary> |
| | | /// 常开模式处理 |
| | | /// </summary> |
| | |
| | | UserView.HomePage.Instance.PageIndex += 1;
|
| | | addLogicPage.Show();
|
| | | addLogicPage.action += (w) =>
|
| | | {
|
| | | doorLock.IsDoorLockNormallyMode = w;
|
| | | { |
| | | DoorLockCommonInfo.NormallyOpenModeValue(doorLock, w); |
| | | UpdateNomallyOpenStatus();
|
| | | //返回按键清空当前逻辑定义的LogicAction |
| | | UserCenter.DoorLock.DoorLockCommonInfo.LogicAction = null; |
| | |
| | | }; |
| | | HdlCheckLogic.Current.CheckSecondarySecurity(action); |
| | | |
| | | } |
| | | |
| | | /// <summary> |
| | | }
|
| | |
|
| | | /// <summary>
|
| | | /// 常开模式状态更新 |
| | | /// </summary> |
| | | private void UpdateNomallyOpenStatus() |
| | |
| | | } |
| | | #endregion |
| | | |
| | | #region 开锁处理 |
| | | #region 开锁处理 |
| | | /// <summary> |
| | | /// 开锁处理 |
| | | /// </summary> |
| | |
| | | public override void RemoveFromParent() |
| | | { |
| | | //徐梅的门锁界面关闭(网关全局接收时使用) |
| | | ControlCommonResourse.IsDoorLockPageOpen = false; |
| | | //ControlCommonResourse.IsDoorLockPageOpen = false; |
| | | ControlCommonResourse.UpdateDoorLockStatusAction = null; |
| | | UserCenter.DoorLock.DoorLockCommonInfo.UpdateCurrentDoorlockAction = null; |
| | | if (IsDrawerLockMode) |
| | | { |
| | | CommonPage.Instance.IsDrawerLockMode = false; |