using Aitex.Core.RT.DataCenter;
using Aitex.Core.RT.Device;
using Aitex.Core.RT.Log;
using MECF.Framework.Common.Device.ResistivityProbe;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace CyberX8_RT.Devices.Resistivity
{
    public class ResistivityController : BaseDevice, IDevice
    {
        #region 常量 
        #endregion

        #region 内部变量

        #endregion

        #region 属性
        /// <summary>
        /// 水阻计数值
        /// </summary>
        public string ResisitivityValue { get { return ReadResisitivityValue(); } }
        #endregion

        /// <summary>
        /// 构造函数
        /// </summary>
        /// <param name="moduleName"></param>
        public ResistivityController(string moduleName) : base(moduleName, moduleName, moduleName, moduleName)
        {
            InitialData();
        }
        /// <summary>
        /// 初始化
        /// </summary>
        /// <returns></returns>
        public bool Initialize()
        {
            ThorntonConfigManager.Instance.InitialDevice(Module.ToString());
            return true;
        }
        /// <summary>
        /// 获取数值
        /// </summary>
        /// <returns></returns>
        private string ReadResisitivityValue()
        {
            return ThorntonConfigManager.Instance.GetResisitivityValueByName(Module.ToString());
        }
        /// <summary>
        /// 初始化数据
        /// </summary>
        private void InitialData()
        {
            DATA.Subscribe($"{Module}.Resistivity", () => ResisitivityValue, Aitex.Core.Util.SubscriptionAttribute.FLAG.IgnoreSaveDB);
        }

        public void Monitor()
        {
        }

        public void Reset()
        {
        }

        public void Terminate()
        {
        }
    }
}