wei
2021-03-04 2ae36ddb40d28c62b64a2fdd4c3033e7d65d5cfb
HDL_ON/Entity/Function/Function.cs
@@ -89,18 +89,18 @@
        }
        /// <summary>
        /// 获取属性状态
        /// 获取属性当前状态
        /// </summary>
        /// <param name="key"></param>
        /// <returns></returns>
        public string GetAttrState(string key)
        {
            var attrState = status.Find((s) => s.key == key.ToString());
            var attrState = attributes.Find((s) => s.key == key.ToString());
            if(attrState == null)
            {
                return "";
                return "0";
            }
            return attrState.value;
            return attrState.state;
        }
        /// <summary>
        /// 设置属性状态
@@ -110,44 +110,25 @@
        /// <returns>修改结果</returns>
        public bool SetAttrState(string key, string value)
        {
            var attrState = status.Find((s) => s.key == key.ToString());
            if (attrState == null)
            //var attrState = status.Find((s) => s.key == key.ToString());
            var attr = attributes.Find((s) => s.key == key);
            if (attr == null)
            {
                return false;
            }
            else
            {
                attrState.value = value;
                attr.state = value;
            }
            return true;
        }
        #endregion
        #region base info
        /// <summary>
        /// HDL统一协议格式:14bytes
        /// 举例: 来源   厂商代码 通讯方式  产品时间戳   产品类别 物模型类  通道号   大小类别
        ///       1byte   1byte   1byte     4byte       1byte   2byte   2byte   2byte
        /// 来源:00   默认原生态系统数据 、01   网关或者其他A设备、02   调试软件、03   APP应用程序、04   第三方网关或者平台
        /// 厂商代码:01   HDL
        /// 通讯方式:01   HDL Bus、02   Zigbee、03 KNX、04 Z-Wave
        /// 产品时间戳:4bytes   以2020年1月1日算出的时间戳0.1s为单位
        /// 产品类别:01   调光器、02 继电器、03   干接点模块、04   传感器、05 面板
        /// 物模型类型:
        ///     01   开关类:01 开关、02 插座、03
        ///     02   照明: 01 开关、02   调光、03   色温、04   LED
        ///     03   遮阳: 01   窗帘电机、02 百叶窗、03 开合帘、04 卷帘
        ///     04   恒温器:01 空调、02 地暖、03 毛细空调
        ///     05   新风
        ///     06   影音
        ///     07   音乐
        ///     08   能源
        ///     09   安防
        /// 大类别   1bytes   (预留)
        /// 小类别   1byte   (预留)
        /// </summary>      “0001021599F98A04050300010000”
        public string sid = "0301011234567801012301230123";
        /// <summary>
        /// 备注
@@ -187,23 +168,6 @@
        /// attri
        /// </summary>
        public List<FunctionAttributes> attributes = new List<FunctionAttributes>();
        /// <summary>
        /// 功能状态列表
        /// </summary>
        public List<AttributesStatus> status = new List<AttributesStatus>();
        /// <summary>
        /// 获取状态值
        /// </summary>
        /// <returns></returns>
        public string GetStatusValus(string key)
        {
            var d = status.Find((obj) => obj.key == key);
            if(d==null)
            {
                return null;
            }
            return d.value;
        }
        /// <summary>
        /// 房间ID列表
@@ -531,7 +495,7 @@
            sendDataObj.time_stamp = Control.Ins.Get_TimeStamp();
            var acd = new AlinkControlData();
            var acd = new AlinkStatusData();
            acd.sid = sid;
            foreach (var dic in commandDictionary)
            {
@@ -593,7 +557,7 @@
    /// </summary>
    public class AlinkFunctionStatusObj
    {
        public List<AlinkControlData> objects = new List<AlinkControlData>();
        public List<AlinkStatusData> objects = new List<AlinkStatusData>();
        public string time_stamp = "";
        public string id = "";
@@ -609,11 +573,23 @@
        public string time_stamp = "";
    }
    /// <summary>
    /// A协议控制数据
    /// A协议状态数据
    /// </summary>
    public class AlinkControlData
    public class AlinkStatusData
    {
        /*
         mqtt接收的状态数据没有deviceId
        接口反馈的数据有
         */
        /// <summary>
        ///
        /// </summary>
        public string sid = "";
        /// <summary>
        /// 设备ID
        /// 云端负责生成
        /// </summary>
        public string deviceId = "0";
        public List<AttributesStatus> status = new List<AttributesStatus>();
    }
    /// <summary>
@@ -660,6 +636,10 @@
        /// 数据类型
        /// </summary>
        public string data_type = "";
        /// <summary>
        /// 当前状态
        /// </summary>
        public string state = "";
        /// <summary>
        /// 当前值
        /// </summary>
@@ -990,6 +970,14 @@
        /// 凉霸
        /// </summary>
        public const string ClothesHanger = "electrical.racks";
        /// <summary>
        /// 红外宝
        /// </summary>
        public const string IrModule = "ir.module";
        /// <summary>
        /// 红外空调
        /// </summary>
        public const string IrAC = "ir.ac";
        /// <summary>