New file |
| | |
| | | using System;
|
| | | using System.Collections.Generic;
|
| | | using System.Text;
|
| | | using ZigBee.Device;
|
| | | using System.Threading.Tasks;
|
| | |
|
| | | namespace Shared.Phone.UserCenter
|
| | | {
|
| | | /// <summary>
|
| | | /// PIR传感器的逻辑
|
| | | /// </summary>
|
| | | public class HdlPirSensorLogic
|
| | | {
|
| | | #region ■ 变量声明___________________________
|
| | |
|
| | | /// <summary>
|
| | | /// PIR传感器的逻辑
|
| | | /// </summary>
|
| | | private static HdlPirSensorLogic m_Current = null;
|
| | | /// <summary>
|
| | | /// PIR传感器的逻辑
|
| | | /// </summary>
|
| | | public static HdlPirSensorLogic Current
|
| | | {
|
| | | get
|
| | | {
|
| | | if (m_Current == null)
|
| | | {
|
| | | m_Current = new HdlPirSensorLogic();
|
| | | }
|
| | | return m_Current;
|
| | | }
|
| | | }
|
| | | #endregion
|
| | |
|
| | | #region ■ 光感等级总刻度_____________________
|
| | |
|
| | | /// <summary>
|
| | | /// 获取PIR传感器的【光感等级总刻度】,错误时返回-1
|
| | | /// </summary>
|
| | | /// <param name="iASZone"></param>
|
| | | /// <returns></returns>
|
| | | public async Task<int> GetPirLightAbilitySize(IASZone iASZone)
|
| | | {
|
| | | var data = await iASZone.GetPIRLightAbilitySizeAsync();
|
| | | //共通错误检测
|
| | | string error = HdlCheckLogic.Current.CheckCommonErrorCode(data);
|
| | | if (error != null)
|
| | | {
|
| | | this.ShowErrorMsg(error);
|
| | | return -1;
|
| | | }
|
| | |
|
| | | if (data == null || data.errorMessageBase != null || data.LightLevelCount == -1)
|
| | | {
|
| | | //获取传感器光感等级失败
|
| | | string msg = Language.StringByID(R.MyInternationalizationString.uGetPirSensorLightPerceptionRegulationFail);
|
| | | //拼接上【网关回复超时】的Msg
|
| | | msg = UserCenterLogic.CombineGatewayTimeOutMsg(msg, data);
|
| | |
|
| | | this.ShowErrorMsg(msg);
|
| | | return -1;
|
| | | }
|
| | |
|
| | | return data.LightLevelCount;
|
| | | }
|
| | |
|
| | | #endregion
|
| | |
|
| | | #region ■ 获取灯光配置_______________________
|
| | |
|
| | | /// <summary>
|
| | | /// 获取PIR传感器的【灯光配置】,错误时返回null
|
| | | /// </summary>
|
| | | /// <param name="iASZone"></param>
|
| | | /// <returns></returns>
|
| | | public async Task<IASZone.ConfigureParamates> GetPirSensorLightSettion(IASZone iASZone)
|
| | | {
|
| | | var data = await iASZone.GetPIRSensorParamateAsync();
|
| | | if (data == null || data.configureParamates == null)
|
| | | {
|
| | | //获取传感器灯光设置信息失败
|
| | | string msg = Language.StringByID(R.MyInternationalizationString.uGetPirSensorLightSettionFail);
|
| | | //拼接上【网关回复超时】的Msg
|
| | | msg = UserCenterLogic.CombineGatewayTimeOutMsg(msg, data);
|
| | |
|
| | | this.ShowErrorMsg(msg);
|
| | | return null;
|
| | | }
|
| | | return data.configureParamates;
|
| | | }
|
| | |
|
| | | #endregion
|
| | |
|
| | | #region ■ 设置灯光配置_______________________
|
| | |
|
| | | /// <summary>
|
| | | /// 设置PIR传感器的【灯光配置】
|
| | | /// </summary>
|
| | | /// <param name="iASZone">传感器对象</param>
|
| | | /// <param name="configure">灯光配置</param>
|
| | | /// <returns></returns>
|
| | | public async Task<bool> SetPirSensorLightSettion(IASZone iASZone, IASZone.ConfigureParamates configure)
|
| | | {
|
| | | var result = await iASZone.SetPIRSensorParamateAsync(configure);
|
| | | if (result == null || result.responseData == null)
|
| | | {
|
| | | //设置传感器灯光配置失败
|
| | | string msg = Language.StringByID(R.MyInternationalizationString.uSetPirSensorLightSettionFail);
|
| | | //拼接上【网关回复超时】的Msg
|
| | | msg = UserCenterLogic.CombineGatewayTimeOutMsg(msg, result);
|
| | |
|
| | | this.ShowErrorMsg(msg);
|
| | | return false;
|
| | | }
|
| | | if (result.responseData.status != 0)
|
| | | {
|
| | | //设置传感器灯光配置失败
|
| | | string msg = Language.StringByID(R.MyInternationalizationString.uSetPirSensorLightSettionFail);
|
| | | this.ShowErrorMsg(msg);
|
| | | return false;
|
| | | }
|
| | | //备份设置
|
| | | await HdlGatewayLogic.Current.UpLoadDeviceBackupDataToGateway(iASZone, GatewayBackupEnum.APir灯光配置, configure);
|
| | |
|
| | | return true;
|
| | | }
|
| | |
|
| | | #endregion
|
| | |
|
| | | #region ■ 一般方法___________________________
|
| | |
|
| | | /// <summary>
|
| | | /// 显示错误信息窗口
|
| | | /// </summary>
|
| | | /// <param name="msg"></param>
|
| | | private void ShowErrorMsg(string msg)
|
| | | {
|
| | | Application.RunOnMainThread(() =>
|
| | | {
|
| | | var contr = new ShowMsgControl(ShowMsgType.Error, msg);
|
| | | contr.Show();
|
| | | });
|
| | | }
|
| | |
|
| | | /// <summary>
|
| | | /// 显示Tip信息窗口
|
| | | /// </summary>
|
| | | /// <param name="msg"></param>
|
| | | private void ShowTipMsg(string msg)
|
| | | {
|
| | | Application.RunOnMainThread(() =>
|
| | | {
|
| | | var contr = new UserCenter.ShowMsgControl(ShowMsgType.Tip, msg);
|
| | | contr.Show();
|
| | | });
|
| | | }
|
| | |
|
| | | #endregion
|
| | | }
|
| | | }
|