using Aitex.Core.RT.DataCenter;
using Aitex.Core.RT.Device;
using Aitex.Core.Util;
using MECF.Framework.Common.IOCore;
using MECF.Framework.Common.TwinCat;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;
namespace CyberX8_RT.Devices.SRD
{
public class TotalSRDDevice : BaseDevice, IDevice
{
#region 常量
private const string FLUID_CONTAINMENT = "FluidContainment";
private const string WATER_PRESSURE = "WaterPressure";
#endregion
#region 属性
public bool FluidContainment { get; private set; }
public double WaterPressure { get; private set; }
#endregion
///
/// 构造函数
///
///
///
public TotalSRDDevice() : base("SRD", "SRD", "SRD", "SRD")
{
}
///
/// 初始化
///
///
public bool Initialize()
{
SubscribeValueAction();
return true;
}
///
/// 订阅变量数值发生变化
///
private void SubscribeValueAction()
{
IOModuleManager.Instance.SubscribeModuleVariable(Module, WATER_PRESSURE, UpdateVariableValue);
IOModuleManager.Instance.SubscribeModuleVariable(Module, FLUID_CONTAINMENT, UpdateVariableValue);
}
/// 更新变量数值
///
///
///
private void UpdateVariableValue(string variable, object value)
{
if (variable == FLUID_CONTAINMENT)
{
FluidContainment = (bool)value;
}
else if (variable == WATER_PRESSURE)
{
WaterPressure = (double)value;
}
}
public void Monitor()
{
}
public void Reset()
{
}
public void Terminate()
{
}
}
}