黄学彪
2020-09-18 c7df85937f73fb347ee0b19e9c052d2d00a6df6c
ZigbeeApp/Shared/Phone/TemplateData/TemplateDataCommon.cs
@@ -110,6 +110,22 @@
        {
            return 0;
        }
        /// <summary>
        /// 获取失败时的Msg(log显示使用)
        /// </summary>
        /// <returns></returns>
        public virtual List<string> GetFailMsg()
        {
            return new List<string>();
        }
        /// <summary>
        /// 变更Mac缓存(在网关执行完成导入之后执行)
        /// </summary>
        public virtual void ChangedMacMemmory()
        {
        }
    }
    /// <summary>
@@ -216,6 +232,25 @@
    }
    /// <summary>
    /// 云端模板的基本信息
    /// </summary>
    public class CloundModelBaseInfo
    {
        /// <summary>
        /// 模板名字
        /// </summary>
        public string TemplateName = string.Empty;
        /// <summary>
        /// 编辑时间 2020.01.04 19:55格式
        /// </summary>
        public string CreatedOnUtc = string.Empty;
        /// <summary>
        /// 主键
        /// </summary>
        public string Id = string.Empty;
    }
    /// <summary>
    /// 模板住宅的信息
    /// </summary>
    public class TemplateHomeInfo
@@ -262,6 +297,15 @@
            //执行这个命令大约需要5秒
            return 5;
        }
        /// <summary>
        ///  获取失败时的Msg(log显示使用)
        /// </summary>
        /// <returns></returns>
        public override List<string> GetFailMsg()
        {
            //切换手拉控制失败
            return new List<string> { Language.StringByID(R.MyInternationalizationString.uChangeHandPullControlFail) };
        }
    }
    /// <summary>
@@ -307,6 +351,15 @@
            //执行这个命令大约需要5秒
            return 5;
        }
        /// <summary>
        ///  获取失败时的Msg(log显示使用)
        /// </summary>
        /// <returns></returns>
        public override List<string> GetFailMsg()
        {
            //设置窗帘限位点失败
            return new List<string> { Language.StringByID(R.MyInternationalizationString.uCommitCurtainLimitFail) };
        }
    }
    #endregion
@@ -341,6 +394,15 @@
            //执行这个命令大约需要5秒
            return 5;
        }
        /// <summary>
        ///  获取失败时的Msg(log显示使用)
        /// </summary>
        /// <returns></returns>
        public override List<string> GetFailMsg()
        {
            //设置空调模式失败
            return new List<string> { Language.StringByID(R.MyInternationalizationString.uSetAcModeFail) };
        }
    }
    /// <summary>
@@ -371,6 +433,15 @@
            //执行这个命令大约需要5秒
            return 5;
        }
        /// <summary>
        ///  获取失败时的Msg(log显示使用)
        /// </summary>
        /// <returns></returns>
        public override List<string> GetFailMsg()
        {
            //设置空调摆风失败
            return new List<string> { Language.StringByID(R.MyInternationalizationString.uSetAirConditionerSwingFunctionFail) };
        }
    }
    #endregion
@@ -394,7 +465,7 @@
        /// 绑定列表
        /// </summary>
        public List<ZigBee.Device.BindObj.BindListResponseObj> BindList = new List<ZigBee.Device.BindObj.BindListResponseObj>();
        /// <summary>
        /// 获取更改设备配置的命令字符
        /// </summary>
@@ -442,8 +513,13 @@
            }
            var listCommand = new List<string>();
            //清空绑定
            var jObject = new Newtonsoft.Json.Linq.JObject { { "DeviceAddr", this.DeviceMac }, { "Epoint", this.DeviceEpoint }, { "Cluster_ID", 0 }, { "Command", 5006 } };
            listCommand.Add(jObject.ToString());
            listCommand.Add(string.Empty);
            //这个判断是为了针对一路调光器和三路继电器的那个第七回路
            if (this.ListReceiveResult.Count > 0 && string.IsNullOrEmpty(this.ListReceiveResult[0]) == false)
            {
                var jObject = new Newtonsoft.Json.Linq.JObject { { "DeviceAddr", this.DeviceMac }, { "Epoint", this.DeviceEpoint }, { "Cluster_ID", 0 }, { "Command", 5006 } };
                listCommand[0] = jObject.ToString();
            }
            //功能配置
            listCommand.Add(string.Empty);
@@ -471,6 +547,48 @@
        {
            //执行这个命令大约需要15秒
            return 15;
        }
        /// <summary>
        ///  获取失败时的Msg(log显示使用)
        /// </summary>
        /// <returns></returns>
        public override List<string> GetFailMsg()
        {
            //清空绑定列表失败 , 设备属性变更失败 , 绑定目标设置失败
            return new List<string> {"清空绑定列表失败"
                ,Language.StringByID(R.MyInternationalizationString.uDeviceAttributeChangedFail)
                ,Language.StringByID(R.MyInternationalizationString.uSetBindTargetsFail)};
        }
        /// <summary>
        /// 变更绑定目标的Mac
        /// </summary>
        public override void ChangedMacMemmory()
        {
            //当前选择的模板对象
            var dicChangedMac = new Dictionary<string, string>();
            var dicNowSelect = TemplateCommonLogic.Current.modelData.dicDeviceTemplateSelect;
            foreach (var localMac in dicNowSelect.Keys)
            {
                dicChangedMac[dicNowSelect[localMac]] = localMac;
            }
            foreach (var data in BindList)
            {
                //设备
                if (data.BindType != 2)
                {
                    if (dicChangedMac.ContainsKey(data.BindMacAddr) == false)
                    {
                        //这个东西没有选择模板,则不执行
                        continue;
                    }
                    //替换mac
                    data.BindMacAddr = dicChangedMac[data.BindMacAddr];
                }
            }
            //变更缓存
            TemplateCommonLogic.Current.SaveDeviceMemmoryData(this.DeviceMac, this.DeviceEpoint);
        }
    }
@@ -506,6 +624,15 @@
            //执行这个命令大约需要5秒
            return 5;
        }
        /// <summary>
        ///  获取失败时的Msg(log显示使用)
        /// </summary>
        /// <returns></returns>
        public override List<string> GetFailMsg()
        {
            //设置传感器配置信息失败
            return new List<string> {Language.StringByID(R.MyInternationalizationString.uSetPirSensorSettionFail)};
        }
    }
    #endregion
@@ -540,21 +667,108 @@
            //执行这个命令大约需要5秒
            return 5;
        }
        /// <summary>
        ///  获取失败时的Msg(log显示使用)
        /// </summary>
        /// <returns></returns>
        public override List<string> GetFailMsg()
        {
            //设置震动反馈配置信息失败
            return new List<string> { Language.StringByID(R.MyInternationalizationString.uSetVibrationFeedbackSettionFail) };
        }
    }
    /// <summary>
    /// 面板背光灯模板数据定义
    /// 面板亮度调节模板数据定义
    /// </summary>
    public class ModelPanelBackLightInfo : TemplateDeviceDataCommon
    public class ModelPanelBrightnessAdjustInfo : TemplateDeviceDataCommon
    {
        /// <summary>
        /// 亮度调节的信息
        /// 按键开状态(指示)亮度(这个是点击后的值,或者 1-6干接点的背光灯)
        /// </summary>
        public ModelPanelSwitchLevelInfo linghtLevelInfo = new ModelPanelSwitchLevelInfo();
        public int panelDirectionsLevel = -1;
        /// <summary>
        /// 按键关状态(背光)亮度(这个是点击前的值,或者 第七干接点的背光灯)
        /// </summary>
        public int panelBacklightLevel = -1;
        /// <summary>
        /// 获取更改设备配置的命令字符
        /// </summary>
        /// <returns></returns>
        public override List<string> GetSendGatewayValue()
        {
            //亮度调节
            var command1 = HdlDevicePanelLogic.Current.GetPanelLevelCommadText(DeviceMac, panelDirectionsLevel, panelBacklightLevel);
            return new List<string>() { command1 };
        }
        /// <summary>
        /// 获取发送命令大概需要的时间(秒)
        /// </summary>
        /// <returns></returns>
        public override int GetSendTime()
        {
            //执行这个命令大约需要8秒
            return 3;
        }
        /// <summary>
        ///  获取失败时的Msg(log显示使用)
        /// </summary>
        /// <returns></returns>
        public override List<string> GetFailMsg()
        {
            //设置亮度调节失败
            return new List<string> { Language.StringByID(R.MyInternationalizationString.uSetLightRegulationFail) };
        }
    }
    /// <summary>
    /// 面板节能模式模板数据定义
    /// </summary>
    public class ModelPanelEnergyModeInfo : TemplateDeviceDataCommon
    {
        /// <summary>
        /// 节能模式
        /// </summary>
        public ZigBee.Device.Panel.PanelSaveEnergyModeInfo energyModeInfo = new ZigBee.Device.Panel.PanelSaveEnergyModeInfo();
        /// <summary>
        /// 获取更改设备配置的命令字符
        /// </summary>
        /// <returns></returns>
        public override List<string> GetSendGatewayValue()
        {
            //节能模式
            var command1 = HdlDevicePanelLogic.Current.GetDeviceEnergyConservationModeCommandText(DeviceMac, energyModeInfo.enable, energyModeInfo.time, energyModeInfo.level);
            return new List<string>() { command1 };
        }
        /// <summary>
        /// 获取发送命令大概需要的时间(秒)
        /// </summary>
        /// <returns></returns>
        public override int GetSendTime()
        {
            //执行这个命令大约需要8秒
            return 3;
        }
        /// <summary>
        ///  获取失败时的Msg(log显示使用)
        /// </summary>
        /// <returns></returns>
        public override List<string> GetFailMsg()
        {
            //节能模式配置失败
            return new List<string> { Language.StringByID(R.MyInternationalizationString.uSetEnergyConservationFail) };
        }
    }
    /// <summary>
    /// 面板指示灯模板数据定义(也叫背光灯)
    /// </summary>
    public class ModelPanelIndicatorLightInfo : TemplateDeviceDataCommon
    {
        /// <summary>
        /// 按键的颜色数据
        /// </summary>
@@ -569,15 +783,10 @@
        /// <returns></returns>
        public override List<string> GetSendGatewayValue()
        {
            //这三个东西的顺序不能变
            //亮度调节
            var command1 = HdlDevicePanelLogic.Current.GetPanelLevelCommadText(DeviceMac, linghtLevelInfo.panelDirectionsLevel, linghtLevelInfo.panelBacklightLevel);
            //节能模式
            var command2 = HdlDevicePanelLogic.Current.GetDeviceEnergyConservationModeCommandText(DeviceMac, energyModeInfo.enable, energyModeInfo.time, energyModeInfo.level);
            //按键指示灯颜色
            var command3 = HdlDevicePanelLogic.Current.GetPanelColorCommandText(DeviceMac, keyColorData, KeyNum);
            var command1 = HdlDevicePanelLogic.Current.GetPanelColorCommandText(DeviceMac, keyColorData, KeyNum);
            return new List<string>() { command1, command2, command3 };
            return new List<string>() { command1 };
        }
        /// <summary>
@@ -587,24 +796,17 @@
        public override int GetSendTime()
        {
            //执行这个命令大约需要8秒
            return 8;
            return 3;
        }
    }
    /// <summary>
    /// 按键指示灯面板开关亮度配置回复
    /// </summary>
    public class ModelPanelSwitchLevelInfo
    {
        /// <summary>
        ///按键开状态(指示)亮度(这个是点击后的值)
        ///  获取失败时的Msg(log显示使用)
        /// </summary>
        public int panelDirectionsLevel = -1;
        /// <summary>
        /// 按键关状态(背光)亮度(这个是点击前的值)
        /// </summary>
        public int panelBacklightLevel = -1;
        /// <returns></returns>
        public override List<string> GetFailMsg()
        {
            //设置按键面板指示灯颜色失败
            return new List<string> { Language.StringByID(R.MyInternationalizationString.uSetPanelPilolightSettionFail) };
        }
    }
    #endregion
@@ -639,6 +841,15 @@
            //执行这个命令大约需要3秒
            return 3;
        }
        /// <summary>
        ///  获取失败时的Msg(log显示使用)
        /// </summary>
        /// <returns></returns>
        public override List<string> GetFailMsg()
        {
            //设备端点名称修改失败
            return new List<string> { "设备端点名称修改失败" };
        }
    }
    /// <summary>
@@ -668,6 +879,15 @@
        {
            //执行这个命令大约需要3秒
            return 3;
        }
        /// <summary>
        ///  获取失败时的Msg(log显示使用)
        /// </summary>
        /// <returns></returns>
        public override List<string> GetFailMsg()
        {
            //设备名称修改失败
            return new List<string> { Language.StringByID(R.MyInternationalizationString.uDeviceReNameFail) };
        }
    }
@@ -718,20 +938,17 @@
        /// </summary>
        A设备绑定列表 = 14,
        /// <summary>
        /// 对象类:ModelPanelBackLightInfo
        /// 对象类:ModelPanelBrightnessAdjustInfo
        /// </summary>
        A面板背光灯 = 15
    }
    /// <summary>
    /// 发送模板数据的区分
    /// </summary>
    public enum ModelDataSendEnum
    {
        A未定义 = -1,
        A私有属性 = 1,
        A私有协议 = 2,
        A透传数据 = 3
        A面板亮度调节 = 15,
        /// <summary>
        /// 对象类:ModelPanelEnergyModeInfo
        /// </summary>
        A面板节能模式 = 16,
        /// <summary>
        /// 也叫背光灯 对象类:ModelPanelIndicatorLightInfo
        /// </summary>
        A面板指示灯 = 17
    }
    #endregion